roamd is a small, limited HTTP server that is just capable enough to support the roaming access feature of Netscape Communicator 4.5. This could be done with Apache, or another full-fledged Web server, but (a) that requires implementing extra methods (at least PUT), and (b) if you're using a full Web server, there may be security issues. In my case, my Web server is solely for my home LAN, and I didn't want to open up the firewall for it. Since roamd cannot be configured to give access to any files except your stored preferences, and since it is not extensible like a full Web server, I hope it is (or can become) safer than a full Web server.
addr.sin_family
and
then zeroing out addr
); thanks to Philip Flip
Kromer <flip@physics.utexas.edu> for catching this.To build roamd, edit the Makefile to pick the right platform. There are four platforms currently supported by the Makefile: Linux, Solaris, DigitalUnix, and FreeBSD. Find the right PLATFORM= line and uncomment it. Now run "make".
Pick a directory where roamd will keep its files (currently, its only files are the stored preferences). By default, this directory is /etc/roamd; this text will assume you're using the default. Create /etc/roamd; then create the directory /etc/roamd/users; then, for each user that you want to have preferences on the server, create the directory /etc/roamd/users/$LOGIN, where $LOGIN is the user's login name. (Users authenticate to the server with the same login name & password they would use to log in to the Unix system.)
To run roamd, just run its executable. If you want to specify a port other than the default (which is 7500), use the --port option; it takes one argument, which is either a port number or a TCP service name (see /etc/services). If the port number is 0, roamd will pick a free port (and print it out); this is mostly for experimental purposes, so that you can kill roamd and restart it quickly, without having to wait for existing connections to time out. If you want to specify a directory other than /etc/roamd, use the --configDir option. If you do not want roamd to fork a new process for each connection, use the --noFork option.
To set up a Communicator user to access roamd, go into Edit|Preferences and select Roaming Access. Turn on the Enable Roaming Access checkbox and specify a username in the User Name text box. Now click on Server Info, select the HTTP Server radio button, and give the URL. If your hostname is xyzzy, roamd is running on port 7500, and your username is francis, then the URL is http://xyzzy:7500/li/francis (the "/li/" is to partition the namespace in case a future version of roamd needs to support other functionality--silly as that would be).
Now you're set! You can set up user profiles like this on multiple machines; every time you quit out of one, it'll upload its preferences to roamd. (Note that this can lead to "lost write" problems if you run in more than location at once. This is a Communicator limitation...not that I'm sure there's a clean way to get around it; it'd be hard to merge the changes.)
$Revision: 1.17 $ $Author: francis $ $Date: 1999/03/21 01:53:45 $ $Log: readme.html,v $ Revision 1.17 1999/03/21 01:53:45 francis Documenting 0.2.7 Revision 1.16 1999/01/11 16:29:07 francis Documenting the 0.2.6b releaselet Revision 1.15 1999/01/11 16:20:39 francis Documenting the 0.2.6a releaselet Revision 1.14 1998/12/17 20:07:54 francis Disabling the debug in de64(), it being a security risk Revision 1.13 1998/12/13 06:46:33 francis Documenting improved platform support for 0.2.6 Revision 1.12 1998/12/13 06:38:20 francis Documenting changes for 0.2.5 Revision 1.11 1998/12/11 16:33:44 francis Updating for 0.2.4 release Revision 1.10 1998/12/11 16:13:08 francis Updating platform information Revision 1.9 1998/12/09 05:12:25 francis Documenting that it's been tested on FreeBSD. Removing GNU-make-specific code from the Makefile; documenting that. Renumbering as 0.2.3. Revision 1.8 1998/12/09 04:52:41 francis Adding documentation which I should have done for 0.2.1. Releasing as 0.2.2 Revision 1.7 1998/12/09 04:33:50 francis Labelling it 0.2.1 Revision 1.6 1998/12/06 19:48:53 francis Labelling it version 0.2 Revision 1.5 1998/12/06 19:43:11 francis Documenting that MOVE is now supported. Revision 1.4 1998/12/05 01:13:31 francis Fixing a missing end tag Revision 1.3 1998/12/04 22:13:25 francis Removing the duplicate h1 Revision 1.2 1998/12/04 22:03:21 francis Adding license terms to the source files. Adding tryCrypt and tryCrypt.o to the clean target. Deleting tryCrypt from the repository. Adding Index.html and license.html. Linking to license.html from readme.html. A bit of cosmetic work in readme.html. Revision 1.1 1998/12/04 21:38:25 francis Adding the readme; adding parallel access and porting work to the todo list.