1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
|
desired features (in no particular order):
afpd:
return the right version-specific error codes
honor the readonly/deleteinhibit/renameinhibit/copyprotect bits.
via a database (that handles ro media, -db <path>):
Add afp_fileid capabilities - done
Add afp_catalogue
afp_enumerate optimization
server messages in useful places
change afp/ddp child handling to be in line w/ generic?
administrative control program (using asip API?)
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. - done
various toggles to afpd.conf (-timeout, etc.)
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. mmapping
header files is actually pretty slow under linux.
3) change lookup algorithms where appropriate.
ability to interact with hfs desktop databases (either by
changing hfs or changing afpd).
utmp/wtmp support
papd:
DHX authenticated printing logins (does a real Appleshare server
do this?)
Change to samba-style config file.
autoconf/automake system:
Need to separate out the flags and libraries for different
applications, so that we aren't having them all linked with
every library, etc.
things to fix:
cleaner separation of layers.
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. finally, we need to adjust the offspring count
for directories based upon what permissions they
have. i.e., search -> can see directories.
read -> can see files.
we need to map permissions so that these semantics get
followed.
support picking up items from dropboxes without linux-side superuser
intervention
support for system-wide messages; send the main afpd process SIGUSR2
and each of the children should send out the same message.
replacement of a linefeed with the appropriate Macintosh character in
server messaging (currently replaces with a space)
added features:
sped up of_findname and of_dealloc.
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)]
casefolding on a per volume basis.
added "generic" platform support for AFP/tcp.
:ETCDIR:/afppasswd file for randnum passwds
AppleVolumes variable substitions
atalkd: zones on single interfaces and the ability to control
which interfaces get routes between them.
papd: cleartext and noauth logins using Print Server Security
Protocol
CAP-style authenticated printing
fixed errors when spooling to lpr 0.46 queue
|