The Mozilla
Organization
At A Glance
Feedback
Get Involved
Newsgroups
License Terms
Newsbot
Developer Docs
Roadmap
Projects
Ports
Module Owners
Hacking
Get the Source
Build It
Testing
Download
Bugzilla
Bug Writing
Tools
View Source
Tree Status
New Checkins
Submit A Bug
FAQ
Search

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/appledouble messages. Without the ability to write the resource fork of a Mac file, we will be unable to decode multipart/appledouble messages.

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/privacy issue.

Copyright © 1998-1999 The Mozilla Organization.
Last modified September 9, 1998.