native methods needed by grendel
by Jamie Zawinski
20-Nov-1997
This document lists the system services that Grendel will require to function properly that are not provided by the core Java 1.1 API. Please add to this list as you find more examples.
Service | Platform | Consequence |
---|---|---|
link() system call. | Unix |
Mail file locking cannot work on Unix.
We must have this. It is critical. |
truncate() system call. | All | If an error occurs while appending a message to a folder (such as running out of disk space) it will be impossible to back out the change. The target folder will have had a partial message appended to it (which is spelled ``mail file corruption.'') |
Read/write access to resource fork. | Mac |
Mac users will be unable to exchange files that have resources
(such as executables.)
Without the ability to read the resource fork of a dual-forked Mac
file, we will be unable to generate multipart/
Mac users will find this critical.
|
chmod() and fchmod() system calls. | Unix |
When we create new mail folders, or compact folders, or empty the
trash, the newly-created mail files will be world-readable by default.
The user will be able to correct this by hand later, but it opens a
window during which other users could read their mail.
When sending mail messages, we sometimes create temporary files in the system's /tmp directory. Without fchmod(), those temporary files will be readable by others, exposing the user's outgoing mail to evesdropping as well.
This is a pretty basic security/ |