desired features (in no particular order):
    afpd:
        via a database (that handles ro media, -db <path>):
        	Add afp_fileid capabilities - done
        	Add afp_catalogue
		afp_enumerate optimization
		cname expansion to handle 8+3 and 255-unicode.
        server messages in useful places 
        Other useful bits of AFP 2.0/2.1. are there any?
	change afp/ddp child handling to be in line w/ generic?
        administrative control program (using asip API?)
        redo uams as dynamically loaded libraries.
	appledouble v2 (gets us persistent DIDs). we'll need a did
	        database for non-hfs volumes. i think mmapping a
	        bitmap with dids at the root level should work.
		also, v2 gets us much better prodos support and
		provides for shortname support. shortname support can
		be dealt with via symlinks to !<name> files.
	variable substitutions where appropriate. expanded afpd.conf
	various toggles to afpd.conf (-timeout, etc.)
	separate appletalk from tcp/ip stuff more.
	figure out more ways of optimizing things. current places
	        of interest:
		1) reading/writing. currently there's character 
		   replacement. we should have a better way of doing
		   it that speeds things up the no-replacement case.
		   i've already done that for the crlf case.
		2) use of mmap where appropriate. NOTE: this will only
                   be a win if we mmap heavily used files. likely
		   candidates include file-based databases.
		3) change lookup algorithms where appropriate. 
	ability to interact with hfs desktop databases (either by
	        changing hfs or changing afpd).
	add one more level of indirection via <atalk_dir>/etc/netatalk_key
	    and use that so that ~/.passwd isn't readable? 
	have a means of turning off .AppleDouble generation and depend upon
	    file mapping and such for these files? done
		
    atalkd: it would be great if we had two capabilities --
		1) zones on single interfaces -- DONE!
		2) ability to control which interfaces get routes between
		   them.

    papd: implementing uams would be a good idea
	 
        
things to fix:
        cleaner separation of layers.
	fcntl-style byte locks. currently, opening the same file
	        multiple times within the same process will get
	        trounced. in addition, we need byte locks for correct
		Trash Can usage. i think this is solvable by keeping
		around a mapping of locks -> fds -> files through an
		expanded adouble. here's the strategy:
		    of_findname to get any existing forks.
		    call ad_open with existing ad file
		    attach that ad to a list of "same name" ad's
		    all locks on "same name" list get checked
		    on ad_close, reset locks for all the other ones. 
		    (we can optimize this a little by coalescing
		     all of the whole file locks)
		    we need to serialize the byte locks. to do that,
		     i'll probably use /var/lock or the equivalent to
		     store a temporary whole file lock.
	AFP <-> Unix permissions. there are a couple cases where they 
		don't map perfectly. in particular, gid == 0 means
		ignore group permissions while uid == 0 means anybody
                can fiddle with this file. in addition, we need to be
		able to still change permissions on a directory with u-a
		set.
        real variable DIDs for now: it turns out that afpd lies about
                this and says that it's doing fixed dids. bad bad
                bad. i just have to implement Open/CloseDir and fiddle
                a little with did assignment. argh. apple's appleshare
		client doesn't like non-fixed directory ids. 

added features:
	more of AFP 2.0!
	sped up of_findname and of_dealloc.
	increased AFP compliance w.r.t. open forks and renames:
	        wordperfect and simpletext now both work!
        nfs quota support
	solaris beta STREAMS driver added.
	64-bit cleanup
	cleaner startup/takedown
        added debug messages to dsi_write areas.
	fixed server info unexpected disconnects (due to OT bug).
        afp/ddp and afp/tcp cohabitation. afp/ddp and afp/tcp can
	operate separately now (-T turns off tcp, -D turns off ddp).
	incorporated the netbsd patches 
		[source: wrstuden@loki.stanford.edu (Bill Studenmund)]
	added/fixed quota support for linux/bsd4.4
	codepage support/casefolding on a per volume basis.
	expanded per-volume options
