-*- Indented-Text -*-

Open bugs, missing features, and potential enhancements:

* Writing .finderinfo. Maybe not necessary.

* AppleSingle and AppleDouble format.

* Speedups. Large folders are slow. Maybe we should save the folder
  index of a folder entry upon lookup or create?  search_file could
  then start by checking if it still is at the same location.

* What happens if you move a file that is open (in UNIX), and then try
  to read/write more?  If the corresponding fork has been closed by
  afpmount (due to inactivity timeout, or open fork cache filling up),
  the reopen will fail, as the file ID is no longer found in the (old)
  parent folder.  Tough luck.

* Fix CAP name translation mode. There probably are some deficiencies
  here. 

* After a period of inactivity, various AFP operations sometimes start
  returning errors -1069 or -1070.  Usually doing afplogin again
  helps.  What is happening?  Related to this, the login_again stuff
  probably doesn't work at all.  Maybe this problem went away when I
  added the periodic abSleep call to my_svc_run().

* Use a better AFP uid to UNIX uid mapping, that can handle possible
  huge AFP uids (we now simple index a table, we should use a hash
  table). 

* /etc/mtab updating

  On HP-UX the /etc/mnttab file (which is called /etc/mtab in SunOS and
  probably most other systems) is updated automatically by the syncer
  process (called update on SunOS and others). As I developed afpmount
  on HP-UX, I didn't worry about updating mnttab. Code to do the
  necessary updates on SunOS is needed...

  I looked at the mount(8) man page from SunOS, and a possible fix would
  be to do something like this after mounting:

  #ifdef NEED_MOUNT_F
	  {
	    char cmd[80];
	    sprintf(cmd, "/etc/mount -f -t nfs %s:pid=%d %s",
		    progname, getpid(), mountpoint);
	    system(cmd);
	  }
  #endif

  I don't know how to handle removing the entry at unmounting. Maybe the
  unmount system call could be replaced by a system("/etc/umount
  mountpoint"), which also updates mtab.

  Another possibility is to update mtab using the getmntent(3) routines.
