1 ($Id: ChangeLog,v 1.13 2001-02-28 16:53:23 rufustfirefly Exp $)
3 2001-02-28 jeff b <jeff@univrel.pr.uconn.edu>
5 * etc/afpd/directory.c, etc/afpd/file.c, etc/afpd/filedir.c,
6 etc/afpd/unix.c, etc/afpd/unix.h, etc/afpd/volume.h,
7 etc/afpd/volume.c, man/man5/AppleVolumes.default.5.tmpl: added
8 "dropbox" to available option if DROPKLUDGE is used during
11 2001-02-27 jeff b <jeff@univrel.pr.uconn.edu>
13 * README: updated 1.5+ install instructions to include list of
14 required and recommended packages
16 * etc/uams/uams_*.c: cleanups, addition of CVS Id tag to C source
18 * configure.in, acconfig.h: change USE_AFS to AFS to be the same as
19 all of the defines in the codebase
21 * etc/uams/uams_dhx_pam.c: fixed DHX login using this module (last
22 patch made with syslog()'s didn't include any brackets)
25 * distrib/initscripts/.cvsignore: removed pulling of atalk
27 * configure.in, etc/uams/Makefile.am: conditional compilation support
28 for PGP UAM module using --enable-pgp-uam
30 * configure.in, etc/uams/Makefile.am, etc/uams/uams_krb4/Makefile.am,
31 etc/uams/uams_krb4/.cvsignore, etc/uams/uams_krb4/*.c: modifications
32 for future Kerberos module reintegration
34 2001-02-26 jeff b <jeff@univrel.pr.uconn.edu>
36 * configure.in: added /usr/local/ssl to list of SSL paths to check, to
37 help kludge compilation on Mac OS X from Marcel <lammerse@xs4all.nl>
39 * distrib/initscripts/rc.atalk.redhat.tmpl: adjusted to echo warning
40 instead of dumping out if appletalk module not present, from
41 Steven Karen <karelsf@users.sourceforge.net> (Bug #404087)
43 * configure.in, contrib/timelord/timelord.c: applied patch from Wes
44 Hardaker <hardaker@users.sourceforge.net> (Patch #402245), with
45 suitable configure.in fixes
47 2001-02-23 jeff b <jeff@univrel.pr.uconn.edu>
49 * etc/afpd/desktop.c, etc/afpd/codepage.c, etc/afpd/nls/makecode.c:
50 patch from Axel Barnitzek <barney@users.sourceforge.net> to fix
51 broken codepage support.
53 * ChangeLog: started updaing ChangeLog with important patch/fix
54 information, as it is *never* up to date.
56 * configure.in, acconfig.h: implemented AFS configuration option
57 patch from Wes Hardaker <hardaker@users.sourceforge.net>
59 * VERSION: bumped up version to 1.5pre5, since 1.5pre4 was kind of
62 * autogen.sh: make libtoolize copy instead of linking files to
63 avoid problems, thanks to Wes Hardaker <hardaker@users.sourceforge.net>
65 2001-02-20 jeff b <jeff@univrel.pr.uconn.edu>
68 - Debian packaging in tree
69 - Numerous Makefile/build fixes
70 - .cvsignore implemented
73 2001-01-02 jeff b <jeff@univrel.pr.uconn.edu>
75 * etc/afpd/uid.c, etc/afpd/uid.h, ...: added support for forcing
76 uid/gid per volume for afpd
78 2000-09-22 Roland Schulz <rdschulz@abarrach.franken.de>
80 * etc/afpd/volume.c (setvoltime): fix for multiple clients
81 writing to same volume.
83 2000-02-28 a sun <asun@asun.cobalt.com>
85 * etc/afpd/directory.h (CNID_INODE): xor the inode a little
88 2000-02-23 a sun <asun@asun.cobalt.com>
90 * etc/afpd/volume.c (creatvol): / is a special case. you can't
91 share it unless you give it a name.
93 2000-02-21 a sun <asun@asun.cobalt.com>
95 * distrib/initscripts/rc.atalk.redhat/cobalt: added changes to
96 make redhat 6.x happier.
98 2000-02-17 a sun <asun@asun.cobalt.com>
100 * libatalk/adouble/ad_lock.c (adf_unlock): off-by-one error with
101 lock removal. this + the log right below fix ragtime.
103 2000-02-16 a sun <asun@asun.cobalt.com>
105 * etc/afpd/fork.c (afp_bytelock): only error on bytelocks
106 positioned at 0x7FFFFFFF if there's no resource fork.
108 2000-02-14 a sun <asun@asun.cobalt.com>
110 * libatalk/adouble/ad_lock.c: re-wrote locking bits so that
111 allocations happen in blocks. added missing case that omnis
114 2000-02-07 a sun <asun@asun.cobalt.com>
116 * bin/nbp/Makefile (install): make nbprgstr/nbpunrgstr with 700
119 * include/atalk/adouble.h (sendfile): change to deal with
122 2000-01-25 a sun <asun@asun.cobalt.com>
124 * etc/afpd/ofork.c: keep track of oforks being used for each
125 directory so that we can update them if the directory tree gets
128 * etc/afpd/directory.c (deletecurdir): remove dangling symlinks on
131 2000-01-24 a sun <asun@asun.cobalt.com>
133 * etc/afpd/directory.h (CNID): moved cnid assignment here along
136 * etc/afpd/directory.c: changed directory search to use red-black
137 trees to improve balance. parent-child tree changed to circular
138 doubly-linked list to speed up insert/remove times. there's still
139 one obstacle to actually freeing red-black tree entries. i need to
140 add an ofork list to struct dir to minimize search times.
142 2000-01-18 a sun <asun@asun.cobalt.com>
144 * etc/afpd/directory.c (dirinsert): detect attempts to add
145 pre-existing entries as just symbolic links.
147 * etc/afpd/filedir.h (CNID): moved inode-cnid assignment here and
148 extended to directories.
150 2000-01-03 a sun <asun@asun.cobalt.com>
152 * etc/uams/uams_pam.c (PAM_conv): surround PAM_BINARY_PROMPT with
155 * etc/afpd/status.c (status_init): fixed a bunch of problems here
156 that manifested under solaris 7.
158 * etc/afpd/main.c (main): use FD_SETSIZE instead of FD_SETSIZE +
162 1999-12-27 a sun <asun@asun.cobalt.com>
164 * libatalk/util/getiface.c: moved interface detection code to here
165 so that i can use if_nameindex() or getifconf() depending upon
168 1999-12-13 a sun <asun@asun.cobalt.com>
170 * libatalk/dsi/dsi_tcp.c (dsi_tcp_init): added if_nameindex()
171 based interface code.
173 * etc/afpd/afp_options.c (afp_options_parseline): added
174 -server_quantum as an option. using hex would be a good idea.
176 * libatalk/dsi/dsi_opensess.c (dsi_opensession): added bits to set
177 the server quantum. by default, the server quantum is limited to
178 1MB due to a bug in the os 9 appleshare client.
180 * distrib/initscripts/rc.atalk.{cobalt,redhat}: surround nbp stuff
183 * etc/uams/uams_dhx_pam.c (pam_changepw): added dhx-based password
186 1999-12-06 a sun <asun@asun.cobalt.com>
188 * etc/afpd/directory.c (setdirparams): don't error if we can't set
189 the desktop owner/permisssions.
191 1999-11-04 a sun <asun@asun.cobaltnet.com>
193 * etc/afpd/fork.c (afp_openfork): had the ordering wrong on an
196 1999-11-02 a sun <asun@asun.cobaltnet.com>
198 * etc/afpd/afp_dsi.c (afp_over_dsi): flush data for unknown dsi
201 1999-10-28 a sun <asun@asun.cobaltnet.com>
203 * etc/uams/*.c: return FPError_PARAM if the user is unknown.
205 1999-10-27 a sun <asun@asun.cobaltnet.com>
207 * etc/afpd/fork.c (afp_read): if sendfile isn't supported, use the
210 1999-10-25 a sun <asun@asun.cobaltnet.com>
212 * libatalk/nbp/nbp_unrgstr.c (nbp_unrgstr): fix nbp unregisters.
214 1999-10-21 a sun <asun@asun.cobaltnet.com>
216 * etc/afpd/Makefile (install): moved install of afpd earlier per
217 suggestion by steven michaud.
219 1999-10-05 a sun <asun@asun.cobaltnet.com>
221 * etc/uams/uams_randnum.c (afppasswd): for ~/.passwd's, turn
222 ourselves into the user so that nfs is happy.
224 1999-09-19 a sun <asun@adrian5>
226 * libatalk/netddp/netddp_open.c, nbp/*.c: only use the bcast stuff
227 if it's on an os x server machine.
229 1999-09-15 a sun <asun@adrian5>
231 * libatalk/nbp/nbp_unrgstr.c,nbp_lkup.c,nbp_rgstr.c: os x server
232 wants ATADDR_BCAST. that probably means that i need to do
233 multihoming appletalk a little differently. bleah.
235 1999-09-09 <asun@asun.cobaltnet.com>
237 * etc/afpd/directory.c (getdirparams), libatalk/adouble/ad_open.c
238 (ad_open): mondo lameness. i forgot that directory lookups can be
239 done with "." as the directory name. that was auto-hiding
240 them. bleah. i also figured out which bit was the invisible bit
241 for finderinfo information.
243 1999-09-06 Adrian Sun <asun@glazed.cobaltnet.com>
245 * etc/afpd/desktop.c (mtoupath): fixed a bug in codepage support
246 that accidentally crept in.
248 1999-08-31 Adrian Sun <asun@glazed.cobaltnet.com>
250 * etc/afpd/quota.c (getfsquota): use group quotas in quota
251 calculations if the user belongs to a single group. just use the
252 user quotas if the user belongs to multiple groups.
254 * etc/afpd/volume.c (getvolspace): added an options:limitsize to
255 restrict the available space to 2GB. this is for macs running
256 older versions of the operating system with newer versions of the
257 appleshare client. weird huh?
259 * etc/afpd/quota.c (uquota_getvolspace): bleah. 64-bit shifts
260 don't get promoted in the same way as arithmetic operations. added
261 some more casts to deal with that issue.
263 1999-08-24 Adrian Sun <asun@glazed.cobaltnet.com>
265 * man/man?/Makefile: don't re-build .tmp files if they already
266 exist. this gets the install phase to work correctly.
268 1999-08-13 a sun <asun@hecate.darksunrising.blah>
270 * etc/afpd/directory.c, file.c, filedir.c: illegal characters get
271 AFPERR_PARAM. also, reject names with /'s in them if the nohex
274 1999-08-12 a sun <asun@hecate.darksunrising.blah>
276 * etc/afpd/filedir.c,file.c,directory.c: changed error for
277 illegal filenames to AFPERR_EXIST.
279 1999-08-11 a sun <asun@hecate.darksunrising.blah>
281 * etc/afpd/desktop.h (validupath): if usedots is set, .Apple* and
282 .Parent files are no longer valid file names.
284 * etc/afpd/volume.c (volset): added usedots and nohex as
285 options. usedots stops :hex translation of . files while nohex
286 stops :hex translation of everything but . files. in addition,
287 . files created on the unix side are by default hidden.
289 * libatalk/adouble/ad_open.c: initialize more bits.
291 1999-08-10 a sun <asun@hecate.darksunrising.blah>
293 * distrib/initscripts/rc.atalk.redhat (WORKSTATION): use the
294 actual name for nbp registration rather than ATALK_NAME.
296 * sys/solaris/Makefile (kernel): make sure osdefs and machinedefs
297 get used when building the kernel module.
299 * sys/solaris: changed strings.h to string.h
301 1999-08-08 a sun <asun@hecate.darksunrising.blah>
303 * etc/afpd/volume.c (readvolfile): changed volume options into an
304 array of structs to ease maintenance.
306 1999-08-05 a sun <asun@hecate.darksunrising.blah>
308 * etc/afpd/status.c (status_init): change the default icon
309 depending upon whether or not it's an ASIP or an AppleTalk
312 1999-08-04 Adrian Sun <asun@glazed.cobaltnet.com>
314 * etc/atalkd/main.c (setaddr): made a failure with setaddr a
315 little more informative.
317 1999-08-03 Adrian Sun <asun@glazed.cobaltnet.com>
319 * yippee. someone figured what was happening with the installation
320 of the man pages. i got rid of a duplicate entry.
322 1999-08-02 a sun <asun@hecate.darksunrising.blah>
324 * etc/afpd/volume.c (readvolfile): added a per-file way of setting
325 default options. it keys in on a :DEFAULT: label.
327 1999-07-30 a sun <asun@hecate.darksunrising.blah>
329 * moved rc.atalk.* scripts to distrib/initscripts.
331 1999-07-27 a sun <asun@hecate.darksunrising.blah>
333 * contrib/printing: added patch from job@uchicago.edu
335 * etc/afpd/file.c: forgot to initialize struct ad in
338 * etc/afpd/nls/makecode.c: added an empty mapping.
340 * etc/psf/Makefile (install): well cp -d didn't work either. just
343 1999-07-26 a sun <asun@hecate.darksunrising.blah>
345 * sys/solaris/tpi.c (tpi_attach): changed DDI_NT_NET to DDI_PSEUDO
346 (from denny@geekworld.com).
348 * distrib/rpm/netatalk-asun.spec (Summary): incorporated new spec
349 and patch files from inoue.
351 * sys/linux/Makefile (install-sysv): fixed up a bit.
353 * etc/psf/Makefile (install): use cp -d instead of cp -a to make
356 * etc/afpd/afp_options.c (afp_options_parseline): reversed meaning
357 of -icon. now it means to use the yucky bitmap instead of the
360 * bin/afppasswd/Makefile (all): add -Iinclude/openssl for
363 1999-07-18 a sun <asun@hecate.darksunrising.blah>
365 * create links/mangle files in the compile rather than the install
366 phase so that rpm will be happier.
368 1999-07-17 a sun <asun@hecate.darksunrising.blah>
370 * etc/afpd/file.c (afp_createfile), directory (afp_createdir),
371 filedir.c (afp_rename, afp_moveandrename): don't allow the
372 creation/renaming of names with certain characters if mswindows
373 compatibility is enabled.
375 1999-07-16 a sun <asun@hecate.darksunrising.blah>
377 * rc.atalk.redhat: incorporated chkconfig from inoue.
379 1999-07-15 a sun <asun@hecate.darksunrising.blah>
381 * etc/atalkd/config.c (getifconf): wrap check against
382 IFF_MULTICAST behind an #ifdef IFF_MULTICAST.
384 * sys/netbsd/Makefile (LDSHAREDFLAGS): key in on machine type.
386 1999-07-11 a sun <asun@hecate.darksunrising.blah>
388 * contrib/ICDumpSuffixMap: added internet config perl script from
391 * contrib/printing: added contributed solaris printing scripts
392 from job@uchicago.edu.
394 1999-07-10 a sun <asun@hecate.darksunrising.blah>
396 * etc/atalkd/interface.h, rtmp.h: prototyped functions.
398 * etc/atalkd/zip.c: converted bcopy's to memcpy's.
400 * etc/atalkd/nbp.c,rtmp.c: added checks for the interface for
403 * etc/atalkd/main.c: converted bzero/bcopy to memset/memcpy.
405 1999-07-08 a sun <asun@hecate.darksunrising.blah>
407 * libatalk/nbp/nbp_rgstr.c (nbp_rgstr): return EADDRINUSE if the
408 address already exists.
410 1999-07-06 a sun <asun@hecate.darksunrising.blah>
412 * rc.atalk.redhat: changed netatalk.config to netatalk.conf
414 1999-07-05 a sun <asun@hecate.darksunrising.blah>
416 * etc/atalkd/nbp.c (nbp_packet): add interface to nbp struct. this
417 is so that we can filter by interface in the future. however, it
418 doesn't seem to work that well right now. bleah.
420 * etc/atalkd/main.c: fixed up dontroute option so that it doesn't
421 screw up atalkd.conf. also, we need to do a bootaddr if dontroute
424 * libatalk/atp,nbp,netddp; bin/aecho,nbp,getzones,pap;
425 etc/papd,afpd: accept -A <ddp address> as an option so that you
426 can specify the address to be used on a multihomed server. for
427 papd, you use the 'pa' option in papd.conf.
429 1999-07-04 a sun <asun@hecate.darksunrising.blah>
431 * etc/atalkd/config.c (parseline): initialize parseline properly
432 so that we don't get extraneous junk.
434 * etc/afpd/afp_options.c (afp_options_parseline): do
435 gethostbyaddr/gethostbyname's for -ipaddr and -fqdn.
437 * etc/atalkd/config.c (getifconf/readconf): check to see if the
438 supported device can support appletalk addresses. either continue
439 or exit depending upon whether or not it's auto-configed.
441 1999-07-03 a sun <asun@hecate.darksunrising.blah>
443 * etc/afpd/afp_options.c (afp_options_parse): -I (-[no]icon) will
444 toggle the volume icon so that it uses the apple icon instead.
446 * etc/afpd/config.c (AFPConfigInit): added more logic for the
447 -proxy option. here are the rules: -proxy will always try to
448 create a DDP server instance. by default, the proxy server will
449 still allow you to login with an appletalk connection. to prevent
450 that, just set the uamlist to an empty string.
452 1999-07-02 a sun <asun@hecate.darksunrising.blah>
454 * etc/afpd/status.c (status_netaddress): added support for fqdn
455 (not available in the appleshare client yet).
457 1999-07-01 a sun <asun@hecate.darksunrising.blah>
459 * etc/afpd/config.c (DSIConfigInit): application code for proxy
460 setup. it's the -proxy option.
462 * libatalk/dsi/dsi_init/tcp.c (dsi_init/dsi_tcp_init): added
463 support for proxy setup.
465 1999-06-30 a sun <asun@hecate.darksunrising.blah>
467 * etc/afpd/filedir.c (afp_rename): fixed up some error
468 codes. quark express should be happier.
470 * etc/afpd/uam.c (uam_afpserver_option): added
471 UAM_OPTION_HOSTNAME. use this to set PAM_RHOST. i just got a
472 report that setting that fixes pam on solaris machines.
474 1999-06-28 a sun <asun@hecate.darksunrising.blah>
476 * etc/afpd/ofork.c (of_alloc): report out of forks in syslog..
478 * etc/afpd/enumerate.c (afp_enumerate): close an opendir leak.
480 * include/atalk/{dsi,asp}.h: make cmdlen and datalen ints.
482 * etc/afpd/fork.c (afp_write): fixed up error condition.
484 1999-06-26 a sun <asun@hecate.darksunrising.blah>
486 * etc/uams/Makefile (install): changed install location of uams.
488 * sys/linux/Makefile (install-sysv): always install redhat
489 script. netatalk.config script only gets installed if it's not
492 1999-06-23 a sun <asun@hecate.darksunrising.blah>
494 * rc.atalk.redhat: merged in redhat contrib rpm rc.atalk script.
496 * etc/afpd/afp_options.c (afp_options_init): changed default
499 1999-06-22 a sun <asun@hecate.darksunrising.blah>
501 * etc/afpd/config.c (DSIConfigInit): truncate options->server to
502 just the server name here.
504 * etc/afpd/volume.c (volxlate): made $s return something
505 meaningful no matter what.
507 * libatalk/adouble/ad_sendfile.c (ad_readfile): freebsd sendfile
510 1999-06-20 a sun <asun@hecate.darksunrising.blah>
512 * etc/afpd/volume.c (volxlate): added variable substitution. if it
513 doesn't understand the variable, it just spits it back out.
515 (creatvol): display truncated volume name if it's too long.
517 * sys/{generic,solaris}/Makefile: added NO_CRYPTLIB option to deal
518 with oses that have -lcrypt but shouldn't use it.
520 1999-06-11 a sun <asun@hecate.darksunrising.blah>
522 * include/atalk/afp.h: added comments to FPErrors.
524 * etc/afpd/enumerate.c (afp_enumerate): make FPEnumerate do some
527 * include/atalk/util.h: server_lock() returns pid_t.
529 1999-06-10 a sun <asun@hecate.darksunrising.blah>
531 * README.ASUN: added location for both ssleay and openssl.
533 * etc/uams: moved install to LIBDIR/uams. "uams_*" now means "uam
534 server." in the future, there will be "uamc_*." changed the shared
535 library names to match.
537 * include/atalk/atp.h,nbp.h: forgot to include <sys/cdefs.h>
539 * etc/uams/Makefile: openssl-0.9.3c uses <openssl/*.h> so add that
542 * sys/{solaris,ultrix}/Makefile: just use -I../sys/generic instead
545 * include/atalk/uam.h, etc/uams/uam_*.c, etc/afpd/uam.c: added uam
546 type field. do type check.
548 * etc/uams/uam_*pam.c: added a couple more error codes.
550 1999-06-08 a sun <asun@hecate.darksunrising.blah>
552 * etc/afpd/nls/Makefile (codepage.h): make sure that a link to
553 codepage.h gets made.
555 * libatalk/*/Makefile: make sure that the profiled directory gets
558 * etc/afpd/directory.c (afp_mapname): removed an extraneous line
559 that was causing mapname to fail.
561 1999-06-07 a sun <asun@hecate.darksunrising.blah>
563 * etc/atalkd/main.c (main): added a note to check the syslog if
564 atalkd can't be setup.
566 * sys/linux/Makefile: added -DNEED_QUOTACTL_WRAPPER to the list of
567 auto-detected #defines.
569 1999-06-06 a sun <asun@hecate.darksunrising.blah>
571 * etc/afpd/fork.c (afp_write): argh. i moved things around a
572 little too much and ended up with an uninitialized eid. strangely,
573 the compiler didn't complain. simplified bits a little as
574 well. also, FPWrite was returning the wrong error messages. on
575 64-bit filesystems, the offset can wraparound. so, report a disk
576 full error if that's going to happen. egcs-19990602 gets one
577 memcpy right and another wrong on my udb. bleah.
579 (afp_read): fixed the error messages here as well.
581 1999-06-05 a sun <asun@hecate.darksunrising.blah>
583 * Makefile, sys/generic, sys/{ultrix,solaris}/Makefile: create
584 some links on the fly if they're missing.
586 * etc/afpd/directory.c (copydir): fixed a leaking opendir and
587 re-arranged a little.
589 1999-06-04 a sun <asun@hecate.darksunrising.blah>
591 * etc/afpd: prototyped everything here and moved the FP functions
594 * libatalk/util/bprint.c: moved all of the bprints to here.
596 * libatalk/asp, include/atalk/asp.h: prototyped asp functions.
598 * include/atalk/atp.h, libatalk/atp: prototyped atp functions.
600 * libatalk/nbp, include/atalk/nbp.h: added prototypes for nbp
603 * bin/afppasswd/Makefile (afppasswd): fixed a misspelling in the
606 * bin/afppasswd/afppasswd.c: added -a option so that root can add
607 new users. turned all of the options into bits. added newlines to
610 1999-06-03 a sun <asun@hecate.darksunrising.blah>
612 * sys/freebsd/Makefile: turn on sendfile support if running on a
615 1999-06-02 a sun <asun@hecate.darksunrising.blah>
617 * etc/uams/uam_dhx_pam.c: fixed memory freeing part of pam
618 conversation function.
620 * sys/*/Makefile: check at make time to see if -lrpcsvc and
621 -lcrypt should be included in the appropriate places.
623 1999-05-28 a sun <asun@hecate.darksunrising.blah>
625 * etc/afpd/file.c (deletefile): added more error checking here as
628 * etc/afpd/directory.c (renamedir): added a couple a few more
631 * sys/sunos/Makefile: sunos should really work now.
633 1999-05-27 a sun <asun@hecate.darksunrising.blah>
635 * include/atalk/afp.h: added in a couple new error codes (one
636 deals with password setting policy, the other with maximum logins
639 * etc/afpd/fork.c (afp_openfork): try to re-open files on
640 read-only volumes as read-only.
642 1999-05-26 a sun <asun@hecate.darksunrising.blah>
644 * sys/solaris/Makefile: fixed a few bobbles here. solaris uses
645 uname -p. other oses seem to use uname -m for the same information.
647 * etc/uams/uam_pam.c (pam_changepw): added check for same
650 * etc/uams/uam_randnum.c (randnum_changepw): added in cracklib and
651 same password checks.
653 * sys/osx/Makefile: moved the os x server stuff into its own build
656 * sys/linux/Makefile, sys/solaris/Makefile: key in on OSVERSION
657 and MACHINETYPE for some stuff.
659 1999-05-25 a sun <asun@hecate.darksunrising.blah>
661 * sys/sunos/Makefile: various bits to make stuff work with sunos
664 1999-05-25 a sun <asun@purgatorius.zoology.washington.edu>
666 * etc/afpd/file.c (copyfile): only copy the header file if newname
669 * etc/afpd/directory.c (copydir): make sure to balk if the
670 directory already exists. in addition, make sure to preserve the
673 1999-05-24 a sun <asun@hecate.darksunrising.blah>
675 * bin/afppasswd/afppasswd.c: global password updating utility for
676 the randnum authentication method.
678 1999-05-22 a sun <asun@hecate.darksunrising.blah>
680 * etc/uams/uam_randnum.c (afppasswd): added in global password
681 file for the randnum authentication method. it looks for a .key
682 file as well to handle encryption.
684 * etc/afpd/afp_options.c (afp_options_parseline): added
685 -passwdfile as an option so that you can specify a global randnum
686 password file if desired.
688 * etc/afpd/volume.c (readvolfile): we now have rwlist and rolist
689 as an AppleVolumes.* option. if the user is in the rolist, the
690 volume gets set as readonly. if there's a rwlist, and the user
691 isn't in it, the volume also gets set as readonly.
693 1999-05-21 a sun <asun@hecate.darksunrising.blah>
695 * libatalk/adouble/ad_lock.c (ad_fcntl_lock): plug a leak if we
696 can't allocate the reference counting variable.
698 * etc/uams/uam_*.c: make sure that uam_setup returns an error
701 1999-05-19 a sun <asun@hecate.darksunrising.blah>
703 * include/atalk/paths.h (_PATH_LOCKDIR): added os x server's
704 /var/run as the lock file directory.
706 * etc/afpd/fork.c (afp_write): kanehara@tpk.toppan.co.jp reported
707 a problem with FPWrite getting a request count of 0. that's
710 * etc/afpd/Makefile: bleah. for some reason, pam doesn't like to
711 load itself from a shared library. i've compensated by linking it
714 * etc/uams/uam_dhx_passwd.c: okay. DHX now works. something's
715 still screwy with the dhx_pam stuff though.
717 1999-05-18 a sun <asun@hecate.darksunrising.blah>
719 * etc/afpd/uam.c (uam_getname): i forgot that getname modified the
720 username to fit what's in pw->pw_name if necessary.
722 1999-05-16 a sun <asun@hecate.darksunrising.blah>
724 * etc/uams/uam_dhx_passwd/pam.c: almost ready versions of the DHX
725 authentication method. i'm still missing a little info to get it
728 * bin/megatron/nad.c (nad_header_read): if there isn't a mac name,
729 create it from the unix name.
731 * bin/megatron/megatron.c (megatron): oops. need to turn fdCreator
732 and fdType into strings.
734 1999-05-16 a sun <asun@pelvetia>
736 * etc/afpd/uam.c (uam_afpserver_option): changed the interface a
737 little. now, you pass in an int * if you want to either get/set
738 the size of the option. added in UAM_OPTION_RANDNUM for generic
739 (4-byte granularity) random number generation.
741 * etc/afpd/switch.c: added afp_logout to preauth_switch.
743 1999-05-15 a sun <asun@hecate.darksunrising.blah>
745 * bin/megatron/macbin.c (bin_open): make error message for
746 macbinary files more informative.
748 (test_header): added more macbinary tests. it now has a workaround
749 for apple's incorrectly generated macbinary files.
751 1999-05-14 a sun <asun@hecate.darksunrising.blah>
753 * sys/solaris/Makefile: added shared library generation bits.
755 * etc/uams: moved server-side uams here.
757 * include/netatalk/endian.h: fixed some solaris bits.
759 * etc/afpd/config.c (configfree): don't do an asp_close. instead,
760 do an atp_close and free the asp object. oh yeah, as afpd needs
761 to export symbols to its modules, make sure you don't do anything
762 more exciting than strip --strip-debug with it.
764 1999-05-12 a sun <asun@hecate.darksunrising.blah>
766 * various places that use sigaction: zero out struct sigaction so
767 that we don't send something confusing. also make sure that we
768 don't set a timer unless we already have a sigaction set.
770 * etc/afpd/fork.c (afp_openfork): don't error on trying to open an
771 empty resource fork read-only. also, added back in the bit of code
772 that prevented locks from being attempted on non-existent resource
775 * etc/afpd/afp_options.c (getoption): added a uamlist commandline
778 * libatalk/netddp/netddp_open.c: don't bind if nothing was passed
781 * libatalk/nbp/nbp_unrgstr.c (nbp_unrgstr): oops. forgot to
782 convert this over to use by the netddp interface.
784 1999-05-12 a sun <asun@pelvetia>
786 * etc/afpd/uam.c: os x server's runtime library loader is
787 braindead. as a result, i've switched to using an exported struct
790 * bin/aecho,getzones: changed these to use the netddp interface.
792 * libatalk/nbp/nbp_rgstr.c,unrgstr.c: fixed more leaky bits.
794 * libatalk/netddp: abstracted the ddp interface to netddp. besides
795 the prior socket-driven interface, there's now an os x server
796 interface. so, instead of calling socket/sendto/recvfrom, you call
797 netddp_open/netddp_sendto/netddp_recvfrom.
799 1999-05-11 a sun <asun@pelvetia>
801 * libatalk/nbp/nbp_lkup.c: oh my. nbp_lookup was fd leaky if there
804 * etc/atalkd/main.c (main): make sure that if -dontroute is
805 selected for all but one interface, that interface also gets
808 1999-05-10 a sun <asun@hecate.darksunrising.blah>
810 * etc/afpd/auth.c: re-wrote to deal with plug-in uams. it's much
811 smaller than it used to be.
813 1999-05-09 a sun <asun@hecate.darksunrising.blah>
815 * etc/afpd/uams/uam_guest.c, uam_pam.c, uam_passwd.c,
816 uam_randnum.c: uam modules. these should probably be moved out of
817 afpd (and into something like etc/uam_server) when the printing
818 stuff gets uam support.
820 1999-05-08 a sun <asun@hecate.darksunrising.blah>
822 * etc/afpd/uam.c: interface to user authentication modules.
823 it should eventually be moved to libatalk, but that's not
824 necessary until the printing uam stuff is done. everything is from
825 the server-side perspective, but that's only because there aren't
826 any client-side uses right now.
828 * libatalk/util/module.c: generic interface to run-time library
829 loading functions. right now, the dlfcn family and os x server's
830 NS-style way of doing things are the ones understood. in addition,
831 there's a DLSYM_PREPEND_UNDERSCORE for those systems that need it.
833 * libatalk/asp/asp_write.c (asp_wrtcont): log both the read and
834 write part of write continuations.
836 1999-05-07 a sun <asun@hecate.darksunrising.blah>
838 * etc/atalkd: added the ability to turn off routing for particular
839 interfaces. specify -dontroute for each interface that you don't
842 1999-05-06 a sun <asun@hecate.darksunrising.blah>
844 * etc/afpd/auth.c: got rid of global clrtxtname and switched to
847 1999-05-04 a sun <asun@hecate.darksunrising.blah>
849 * libatalk/dsi/dsi_write.c (dsi_write): dsi_write could loop
850 forever if there's a problem while it's being used. that's fixed.
852 1999-05-01 a sun <asun@hecate.darksunrising.blah>
854 * etc/afpd/directory.c (renamedir,copydir,deletedir): added bits
855 so that renaming a directory works across filesystems.
857 1999-04-27 a sun <asun@hecate.darksunrising.blah>
859 * etc/afpd/fork.c (getforkparams): report mtime if it's > than
860 what's stored in the header file.
862 * config/afpd.conf: incorporated a patch by Stefan Bethke to make
863 afpd.conf more understandable.
865 * sys/solaris/if.c: many of the firstnet/lastnet bits weren't
866 endian converted. that's fixed.
868 * libatalk/adouble/ad_lock.c (adf_find(x)lock): F_RD/WRLCK aren't
869 necessarily ORable, so use ADLOCK_RD/WR instead.
871 (ad_fcntl_unlock): erk. fixed a typo that had the resource fork
872 unlock accidentally getting the data fork locks.
874 1999-04-24 a sun <asun@hecate.darksunrising.blah>
876 * etc/afpd/fork.c (afp_openfork): always try to create a resource
879 1999-04-21 a sun <asun@hecate.darksunrising.blah>
881 * libatalk/adouble/ad_open.c, ad_read.c/ad_write.c, ad_flush.c:
882 turned the mmapped header stuff into and #ifdef
883 USE_MMAPPED_HEADERS option.
885 * libatalk/adouble/ad_open.c (ad_header_read): darn. i forgot that
886 the hfs fs doesn't currently have mmappable header files. rather
887 than implement that, i just reverted back to a modified version
888 of the old way of reading headers.
890 1999-04-15 a sun <asun@hecate.darksunrising.blah>
892 * etc/afpd/fork.c (afp_bytelock): byte locks become read locks on
895 (afp_openfork): deal with read-only data forks that don't have
896 corresponding .AppleDouble files. we can't really do anything with
897 deny locks in this case. just make sure that read locks are set.
899 * etc/afpd/file.c (getfilparams): oops. got the parentheses wrong
900 around FILPBIT_FINFO.
902 * etc/afpd/fork.c (afp_read): as we share open files now, check
903 for fork type against of_flags instead of just checking to see if
904 the file is open. this fixes a bug that caused resource forks to
905 get filled with data fork information.
907 1999-04-09 a sun <asun@porifera.zoology.washington.edu>
909 * sys/generic/Makefile: AFP/tcp now compiles on irix with quota
912 1999-04-09 a sun <asun@mead1.u.washington.edu>
914 * sys/generic/Makefile: AFP/tcp now compiles on aix with quota
917 1999-04-09 a sun <asun@saul6.u.washington.edu>
919 * sys/generic/Makefile: AFP/tcp part now compiles on digital unix
920 with quota support enabled.
922 1999-04-08 a sun <asun@hecate.darksunrising.blah>
924 * etc/afpd/volume.c, fork.c, file.c, directory.c, filedir.c,
925 config/AppleVolumes.default: added read-only volume option.
927 * etc/afpd/quota.c (uquota_getvolspace): modified for os x
930 1999-04-03 a sun <asun@hecate.darksunrising.blah>
932 * bin/megatron/macbin.c (bin_write): only pad if we need to do so
933 (from <jk@espy.org>).
934 (bin_header_write/read): fixed up screwed up file date
935 generation/reading with macbinary files.
937 * bin/megatron: changed all of the bcopy/bzero/bcmp's to
938 memcpy/memset/memcmp's. added macbinary III support.
940 * bin/megatron/macbin.c (bin_open): added --stdout as an option so
941 that we can stream macbinary file creation to stdout.
943 * bin/megatron/megatron.c: incorporated information patch (--header
944 and --macheader) from <fmorton@base2inc.com>.
947 1999-04-02 a sun <asun@hecate.darksunrising.blah>
949 * etc/afpd: whee! there are no more bcopy/bcmp's in this
952 * libatalk: changed the bcopy/bzero's to memcpy/memset's. added in
953 dummy ints for some of the files that can get compiled to empty
954 objects. check for the type of msync() available as well.
956 1999-03-31 a sun <asun@hecate.darksunrising.blah>
958 * INSTALL/README.GENERIC: added information for a generic
959 architecture. It includes the information needed to get netatalk
960 to compile on a random unix platform.
962 * etc/afpd/quota.c: moved the quota stuff here so that we can
963 #ifdef it out on a machine without quota support.
965 1999-03-30 a sun <asun@hecate.darksunrising.blah>
967 * libatalk/adouble/ad_lock.c: reference count the locked ranges as
968 well. this prevents multiple read locks on the same byte range
969 from disappearing if one user disappears.
971 (ad_fcntl_lock): here are the current rules for file
973 1) if there's a appledouble header, we use the beginning
974 of that for both data and resource forks.
975 2) if there isn't, we use the end of the data fork (or past the
976 end on 64-bit machines)
978 1999-03-28 a sun <asun@hecate.darksunrising.blah>
980 * libatalk/adouble/ad_open.c (ad_refresh): okay. mmapping the
981 appledouble entry parts is done.
983 * libatalk/cnid/cnid_add.c (cnid_add): prevent anyone from adding
986 1999-03-27 a sun <asun@hecate.darksunrising.blah>
988 * libatalk/adouble/ad_open.c (ad_refresh): started making the
989 appledouble header parsing more generic so that we can read in
990 arbitrary appledouble header files. i just mmap the parts that we
993 1999-03-22 a sun <asun@hecate.darksunrising.blah>
995 * etc/afpd/file.c (afp_copyfile): return the correct error
996 response on a failed copy. also, error if the file is already open
997 to prevent problems with locks. we really need to ad_lock
1000 1999-03-21 a sun <asun@hecate.darksunrising.blah>
1002 * etc/afpd/volume.c (readvolfile): switched volume options to
1003 using ':' as a delimiter as that's one of the characters that's
1004 not allowed as part of a mac filename.
1005 (volset): changed access to allow/deny
1007 * etc/afpd/auth.c (noauth_login): make sure that the username gets
1010 1999-03-17 a sun <asun@hecate.darksunrising.blah>
1012 * NOTE to myself: jeremy allison said that samba uses refcounts to
1013 prevent close() from killing all the byte locks. so, i've started
1014 converting afpd to using refcounting as well. luckily, we already
1015 have of_findname, so we know when files are open. in cases where
1016 files are already open, this will replace an ad_open with a lookup
1019 * etc/afpd/directory.c (getdirparams/getfilparams): check for
1020 NULL names when getting directory/file names.
1022 * etc/afpd/directory.{c,h} (DIRDID_ROOT/DIRDID_ROOT_PARENT): make
1023 sure these are always in network byte order.
1025 1999-03-15 a sun <asun@hecate.darksunrising.blah>
1027 * etc/afpd/fork.c (afp_openfork): okay, fixed the file
1028 synchronization bits. now, we use two bytes to do the read/write
1029 stuff. when access is needed, a read lock is attempted. if a deny
1030 lock is needed, a write lock is attempted. we even handle the
1031 access None mode now by saving the access modes.
1033 * etc/afpd/fork.h (AFPFORK_ACCMASK): started adding bits so that
1034 we can obey all of the file synchronization rules.
1036 * etc/afpd/fork.c (afp_bytelock): got the meaning of the clearbit
1037 reversed. with helios lantest's lock/unlock 4000 times test, it
1038 looks like i get <1 second overhead on my machine when using byte
1039 locks. NOTE: this will get a little worse when serialization gets
1040 added. in addition, 0x80000000 only works for 64-bit machines. i
1041 reserve the last allowable bit for 32-bit machines.
1043 actually, both 64-bit machines and 32-bit machines use 0x7FFFFFFF
1044 now as i'm able to trigger a kernel oops in linux with the 64-bit
1047 (afp_read/afp_write): make sure to use the same offset when doing
1050 1999-03-14 a sun <asun@hecate.darksunrising.blah>
1052 * libatalk/adouble/ad_lock.c: i went and implemented a bunch of
1053 stuff to get byte locks to work correctly (except for the
1054 serialization) only to discover that files that use byte locks
1055 also request a deny write mode. luckily, byte locks only cover up
1056 to 0x7FFFFFFF. so, i'll just use 0x80000000 for the
1057 synchronization locks.
1059 1999-03-08 a sun <asun@hecate.darksunrising.blah>
1061 * sys/{*bsd,ultrix,solaris,linux}/Makefile (depend): surround
1062 DEPS with double quotes so that multiple defines work.
1064 1999-03-06 a sun <asun@hecate.darksunrising.blah>
1066 * libatalk/adouble/ad_write.c, ad_read.c: make off off_t in size.
1068 * libatalk/adouble/ad_flush.c (adf_fcntl_relock), ad_lock.c
1069 (adf_fcntl_locked): okay. fcntl locks now check against multiple
1070 programs on the same machine opening the same file. current
1071 problems with the mechanism that i don't want to fix unless
1073 1) there's a race during the relock phase. serialization
1075 2) it assumes that each fd only locks a single contiguous
1076 range at a time. keeping a list of locked ranges would
1079 also, i changed the default to using fcntl locks. if the above two
1080 are really necessary, i'll probably switch to something a little
1081 more featureful like the berkeley db's lock manager.
1083 (note to myself: stuff new from asun2.1.3 from 1999-03-03)
1085 1999-03-05 a sun <asun@hecate.darksunrising.blah>
1087 * libatalk/adouble/ad_lock.c: got rid of the endflag checks to
1088 reduce system calls a little.
1090 * etc/afpd/auth.c (getname): do a case-insensitive compare on the
1093 * sys/solaris/Makefile: added 64-bit solaris patch from
1094 <jason@pattosoft.com.au>.
1096 1999-03-03 a sun <asun@hecate.darksunrising.blah>
1098 * include/netatalk/endian.h: make solaris 2.5 complain less.
1100 * bin/adv1tov2/adv1tov2.c, libatalk/adouble/ad_open.c (ad_v1tov2):
1101 fixed a couple problems with the adv1tov2 stuff.
1103 1999-02-26 a sun <asun@hecate.darksunrising.blah>
1105 * etc/afpd/volume.c (afp_openvol): erk. the volume password gets
1106 aligned along an even boundary.
1108 1999-02-23 a sun <asun@hecate.darksunrising.blah>
1110 * etc/afpd/volume.c (readvolfile): added volume password support.
1112 1999-02-14 a sun <asun@hecate.darksunrising.blah>
1114 * etc/atalkd/multicast.c (addmulti): added FreeBSD's data-link
1115 layer multicast setting bits.
1117 * libatalk/adouble/ad_open.c (ad_v1tov2): make sure to stick in
1118 prodos field info when converting.
1120 * rc.atalk.redhat: added pidof checking in case the machine
1121 crashes. also added rc.atalk.wrapper to the redhat rc script
1124 1999-02-07 a sun <asun@hecate.darksunrising.blah>
1126 * etc/afpd/fork.c (afp_setforkparams): make sure to do better
1127 error detection here and more fully report error conditions.
1129 (flushfork): make sure to flush the header if necessary (rfork
1130 length changed or modification date needs to be set).
1132 (afp_write): ugh. this wasn't returning the right values for the
1133 last byte written if the endflag was set. in addition, it was
1134 setting the modification date. that should be left to FPCloseFork
1135 and FPFlush(Fork). this fixes a problem that shows up with
1138 NOTE: as of now, changes to the rfork info are the only things
1139 that aren't flushed immediately when altered.
1141 * etc/afpd/fork.c (get/setforkparams), ofork.c: what ugliness. we
1142 need to report bitmap errors if we try to fiddle with the wrong
1143 fork. i added an of_flags field to keep things sorted.
1145 * libatalk/adouble/ad_open.c (ad_v1tov2): oops. in all of the
1146 movement, i forgot to make sure that the pre-asun2.2.0 features
1149 1999-02-06 a sun <asun@hecate.darksunrising.blah>
1151 * etc/afpd/filedir.c (afp_moveandrename): make sure to save the
1152 old name even when it's a directory.
1154 * globals.h: added oldtmp and newtmp to AFPObj to reduce the
1155 number of buffers used. use these when needed in afp_* calls.
1157 * etc/afpd/directory.c (deletecurdir): delete stray .AppleDouble
1158 files when deleting a directory.
1160 1999-02-05 a sun <asun@hecate.darksunrising.blah>
1162 * etc/afpd/file.c (afp_createfile): fixed a hard create error
1165 * fixed up a few bobbles in the netatalk-990130 merge.
1167 * the noadouble option should be pretty much implemented. here's
1169 when a directory is created, the corresponding
1170 .AppleDouble directory is not.
1172 comments, dates, and other file attributes will get
1173 silently ignored and not result in the creation of a new
1174 .AppleDouble directory.
1176 however, if anything possessing a resource fork is copied
1177 into that directory, the corresponding .AppleDouble
1178 directory will be created. once this happens, any
1179 other file in the directory can acquire an AppleDouble
1180 header file in the future.
1182 1999-02-03 a sun <asun@hecate.darksunrising.blah>
1184 * merged in the rest of netatalk-990130.
1186 * sys/solaris: merged in netatalk-990130 changes.
1188 * etc/afpd/file.c,fork.c,desktop.c libatalk/adouble/ad_sendfile.c:
1189 tested and fixed the sendfile bits on linux. it looks like linux
1190 doesn't permit socket -> file sendfiles yet.
1192 * etc/afpd/fork.c (afp_read): we can't stream FPRead's with
1193 newline character checking on.
1195 1999-02-02 a sun <asun@hecate.darksunrising.blah>
1197 * etc/afpd/fork.c (afp_flush), ofork.c (of_flush): FPFlush
1198 operates on a per-volume basis.
1200 1999-01-31 a sun <asun@hecate.darksunrising.blah>
1202 * etc/afpd/file.c (copyfile): sendfile bits added here also.
1204 * etc/afpd/desktop.c (afp_geticon): added sendfile bits here as
1207 * libatalk/adouble/ad_sendfile.c (ad_writefile/ad_readfile):
1208 implemented sendfile bits. currently, there's support for linux
1209 and freebsd. unfortunately, freebsd's implementation doesn't allow
1210 file->file or socket->file copies. bleah.
1212 1999-01-30 a sun <asun@hecate.darksunrising.blah>
1214 * etc/afpd/file.c (setfilparams), directory (setdirparams),
1215 volume.c (volset): added in the beginnings of a NOADOUBLE option
1216 for those that don't want AppleDouble headers to be created by
1217 default. it doesn't really work that well right now.
1219 1999-01-29 a sun <asun@hecate.darksunrising.blah>
1221 * libatalk/adouble/ad_open.c (ad_v1tov2): separated v1tov2 bits
1222 from ad_refresh. made broken v1 header checking the default. fixed
1223 broken v1 date checking. now, it just checks to see if the v1
1224 MDATE is > than st_mtime by 5 years.
1226 * etc/afpd/directory.c: make date setting alter directory dates as
1229 1999-01-24 a sun <asun@hecate.darksunrising.blah>
1231 * etc/afpd/afp_dsi.c (alarm_handler,afp_over_dsi): added a
1232 CHILD_RUNNING flag to prevent afpd from timing out on long copies.
1234 1999-01-21 a sun <asun@hecate.darksunrising.blah>
1236 * etc/afpd/volume.c (afp_openvol), libatalk/cnid/cnid_nextid.c:
1237 shift the beginning of the fake did's if necessary.
1239 * libatalk/adouble/ad_open.c (ad_refresh): fixed screwed-up date
1242 * libatalk/cnid/cnid_add.c,cnid_open.c,cnid_close.c: made some
1243 changes so that the CNIDs will still work even when the .AppleDB
1244 directory is read-only. if you're still allowed to create files on
1245 these volumes, you'll get a temporary id for those.
1247 1999-01-20 a sun <asun@hecate.darksunrising.blah>
1249 * libatalk/cnid/{cnid_close.c,cnid_open.c}: added bits so that log
1250 files get cleared out on cnid_close() if it's the last user for a
1253 1999-01-18 a sun <asun@hecate.darksunrising.blah>
1255 * etc/afpd/volume.c (afp_setvolparams): added FPSetVolParms. this
1256 allows us to set the backup date on the server.
1258 * etc/afpd/file.c (afp_exchangefiles): whee! we now have
1259 FPExchangeFiles. we also have FPDeleteID, so that only leaves us
1260 with FPCatSearch to do.
1262 1999-01-16 a sun <asun@hecate.darksunrising.blah>
1264 * sys/solaris/ddp.c (ddp_rput): added a couple htons()'s for the
1267 1999-01-11 a sun <asun@hecate.darksunrising.blah>
1269 * etc/afpd/volume.c (volset, afp_openvol): you can now specify a
1270 dbpath= in AppleVolumes.* for the CNID database.
1272 * libatalk/adouble/ad_open.c (ad_refresh): if we build in an
1273 appledouble v1 environment, turn on v1compat by default.
1275 1999-01-10 a sun <asun@hecate.darksunrising.blah>
1277 * libatalk/adouble/ad_open.c (ad_refresh): added v1compat option
1278 to handle broken ad headers.
1280 * etc/afpd/file.c (setfilparams): we need to make sure that we
1281 flush the file if we've created it even if there's an error. the
1282 magic number/version don't get saved if we don't.
1284 * etc/afpd/appl.c, etc/afpd/directory.c, etc/afpd/desktop.c: added
1287 1998-12-30 a sun <asun@hecate.darksunrising.blah>
1289 * etc/afpd/volume.c (afp_openvol): got rid of unnecessary v_did.
1291 * etc/afpd/file.c (afp_resolveid, afp_createid): added these two
1294 * well, what do you know? the cnid stuff compiles in.
1296 1998-12-29 a sun <asun@hecate.darksunrising.blah>
1298 * etc/afpd/fork.c, directory.c, file.c, filedir.c, volume.c,
1299 enumerate.c: added in stubs for CNID database conditional on
1300 AD_VERSION > AD_VERSION1.
1302 * etc/afpd/nls/makecode.c: added iso8859-1 mapping.
1304 1998-12-27 a sun <asun@hecate.darksunrising.blah>
1306 * bin/adv1tov2/adv1tov2.c: turn non-printable ascii characters
1307 into hex code as well.
1309 1998-12-21 a sun <asun@hecate.darksunrising.blah>
1311 * etc/afpd/auth.c: fixed FPChangePW for 2-way randnums.
1313 1998-12-15 a sun <asun@hecate.darksunrising.blah>
1315 * etc/afpd/fork.c (read_file/write_file): do crlf translation in
1316 both directions so that we can recover from problems if
1319 1998-12-14 a sun <asun@hecate.darksunrising.blah>
1321 * bin/adv1tov2/adv1tov2.c: small utility program that recursively
1322 descends a directory and converts everything it sees into
1325 1998-12-13 a sun <asun@hecate.darksunrising.blah>
1327 * libatalk/adouble/ad_flush.c (ad_rebuild_header): moved the
1328 header rebuilding here so that ad_refresh can use it.
1330 * libatalk/adouble/ad_open.c (ad_refresh): added locking to v1->v2
1333 * bin/megatron/asingle.c: yuk. removed all of
1334 the duplicate stuff here and had it use the #defines in adouble.h.
1336 * libatalk/adouble/ad_open.c (ad_refresh): finished v1 -> v2
1337 conversion routine. we still need a shortname creator and a cnid
1338 database for the v2 features to be useful.
1340 1998-12-11 a sun <asun@hecate.darksunrising.blah>
1342 * libatalk/adouble/ad_open.c (ad_refresh): punt if we get a file
1343 that we don't understand.
1345 1998-12-10 a sun <asun@hecate.darksunrising.blah>
1347 * etc/afpd/desktop.c (utompath,mtoupath): simplified the codepage
1348 stuff. also made sure to lower/upper the 8-bit characters as
1351 * libatalk/util/strdicasecmp.c: the casemapping had a few wrong
1354 * etc/afpd/fork.c (getforkparams): make sure that the ROpen/DOpen
1355 attribute bits are in the correct byte ordering.
1357 1998-12-09 a sun <asun@hecate.darksunrising.blah>
1359 * etc/afpd/volume.c (volset): made prodos an option to options=
1360 flag. also added crlf as an option.
1362 * libatalk/adouble/ad_open.c (ad_refresh): fix up times if
1364 (ad_open): deal correctly with 0-length files by treating them as
1367 * etc/afpd/volume.c (getvolparams), file.c (get/setfilparams),
1368 fork.c (getforkparams), directory.c (get/setdirparams): finished
1369 adding appledouble version 1 and 2 date conversion. also added
1372 * etc/afpd/volume.c (getvolparams): make sure to flush the header
1373 file if we needed to fiddle with it.
1375 * libatalk/adouble/ad_date.c, ad_attr.c: date/attribute
1376 setting/retrieval code.
1378 * libatalk/adouble/ad_open.c (ad_open): initialize date
1379 structures here instead of elsewhere.
1381 1998-12-07 a sun <asun@hecate.darksunrising.blah>
1383 * etc/afpd/directory.c, fork.c, volume.c, file.c: added unix<->afp
1384 time conversion code.
1386 1998-12-05 a sun <asun@hecate.darksunrising.blah>
1388 * etc/afpd/volume.c (volset): changed prodos setting to
1391 1998-12-04 a sun <asun@hecate.darksunrising.blah>
1393 * etc/afpd/volume.c (volset): okay. you now have the following
1394 options to casefold: lowercase,uppercase,xlatelower,xlateupper
1395 tolower -> lowercases everything in both directions
1396 toupper -> uppercases everything in both directions
1397 xlatelower -> client sees lowercase, server sees uppercase
1398 xlateupper -> client sees uppercase, server sees lowercase
1400 NOTE: you only should use this if you really need to do so. this
1401 and the codepage option can cause mass confusion if applied
1402 blindly to pre-existing directories.
1404 1998-12-03 a sun <asun@hecate.darksunrising.blah>
1406 * etc/afpd/desktop.c (utompath,mtoupath), etc/afpd/volume.h: added
1407 multiple options to casefold. bits 0 and 1 deal with MTOU, and
1408 bits 2 and 3 deal with UTOM. i did it that way so that you can
1409 casefold in one direction only or in both directions if
1410 desired. needless to say, setting both bits for UTOM or MTOU
1411 doesn't make any sense. right now, toupper takes precedence in
1412 MTOU, and tolower takes precedence in UTOM.
1414 1998-12-02 a sun <asun@hecate.darksunrising.blah>
1416 * etc/afpd/afp_options.c (afp_options_*): added -uampath and
1417 -codepagepath to the list of available options. they specify the
1418 directories to look for uam modules and codepages,
1419 respectively. currently, -uampath doesn't do anything.
1421 * etc/afpd/volume.c (readvolfile): spruced up options to
1422 AppleVolumes files. now you can have mtoufile=<codepage.x>,
1423 utomfile=<codepage.y>, casefold=<num> for volumes.
1425 * etc/afpd/desktop.c (utompath,mtoupath): added
1426 codepage/casefolding support. casefold is currently an int that
1427 could have multiple actions. right now, i just lowercase in
1428 mtoupath and uppercase in utompath.
1430 * etc/afpd/ofork.c (of_alloc, of_findname, of_rename): added vol
1431 as an additional specifier so that we don't have problems with
1432 the same path names on multiple volumes.
1434 1998-11-29 a sun <asun@purgatorius.zoology.washington.edu>
1436 * etc/afpd/volume.c (getvolparams): added AFP2.1 volume attribute
1439 1998-11-24 a sun <asun@purgatorius.zoology.washington.edu>
1441 * etc/atalkd/config.c (readconf, getifconf): added IFF_SLAVE to
1442 prevent atalkd from trying to use a slave channel.
1444 1998-11-23 a sun <asun@purgatorius.zoology.washington.edu>
1446 * etc/afpd/volume.c (getvolparams): we shouldn't set the custom
1447 icon bit by default on the root directory. that screws up pre-OS 8
1450 1998-11-19 a sun <asun@purgatorius.zoology.washington.edu>
1452 * libatalk/dsi/dsi_getsess.c (dsi_getsession): ignore SIGPIPE's
1453 so that we can gracefully shut down the server side.
1455 * etc/afpd/afp_dsi.c (afp_over_dsi), etc/afpd/afp_options.c,
1456 libatalk/dsi/dsi_getsess.c (dsi_getsession),
1457 libatalk/asp/asp_getsess.c (asp_getsession): made the tickle timer
1458 interval an option (-tickleval <sec>).
1460 * etc/afpd/afp_dsi.c (afp_dsi_timedown): added child.die so that
1461 we don't stomp on a shutdown timer. libatalk/dsi/dsi_read.c,
1462 dsi_write.c both save/restore the old timer, so they don't really
1463 care what the actual value is.
1465 1998-11-18 a sun <asun@purgatorius.zoology.washington.edu>
1467 * due to the recent obsession with bug fixing and low-level dsi
1468 cleanups, i've decided that this should really be asun2.1.1
1469 instead of asun2.1.0a.
1471 1998-11-17 a sun <asun@purgatorius.zoology.washington.edu>
1473 * libatalk/dsi/dsi_tcp.c (dsi_tcp_open): moved the afpd connection
1474 announcement here from etc/afpd/afp_dsi.c.
1476 * libatalk/dsi/dsi_stream.c: moved all of the read/write functions
1477 into here as they're pretty generic. now, the protocol specific
1478 stuff only handles open and close.
1480 * etc/afpd/fork.c (afp_read/write), desktop.c (afp_geticon),
1481 file.c (copyfile), include/atalk/dsi.h (dsi_writefile/readfile):
1482 added initial stubs for sendfile support. i still need to go
1483 through and calculate the appropriate offsets to use.
1485 * libatalk/dsi/dsi_read.c, dsi_write.c: disable the interval timer
1486 instead of just ignoring it.
1488 * etc/afpd/desktop.c (afp_geticon), etc/afpd/fork.c (afp_read),
1489 libatalk/dsi/dsi_read.c (dsi_readinit, dsi_readinit): modified the
1490 dsi_read interface to return errors so that i can kill things
1493 1998-11-16 a sun <asun@purgatorius.zoology.washington.edu>
1495 * libatalk/dsi/dsi_tcp.c (dsi_tcp_send/dsi_tcp_write): erk. read()
1496 and write() treat a return of 0 differently.
1498 1998-11-16 a sun <asun@hecate.darksunrising.blah>
1500 * libatalk/dsi/dsi_read.c (dsi_readinit): make sure to stick in
1503 1998-11-15 a sun <asun@purgatorius.zoology.washington.edu>
1505 * etc/afpd/fork.c (afp_read): re-ordered some of the checks here
1506 to return earlier on 0-sized files.
1508 1998-11-13 a sun <asun@purgatorius.zoology.washington.edu>
1510 * etc/afpd/afp_dsi.c (afp_over_dsi): moved the dsi->noreply toggle
1511 check to here from dsi_cmdreply.
1513 1998-11-11 a sun <asun@purgatorius.zoology.washington.edu>
1515 * etc/atalkd/zip.c (zip_packet): make sure to copy multicast zone
1516 back out. (reported by Michael Zuelsdorff <micha@dolbyco.han.de>)
1518 1998-11-09 a sun <asun@purgatorius.zoology.washington.edu>
1520 * etc/afpd/directory.c (getdirparams): changed unknown bit reply
1521 code to AFPERR_BITMAP instead of AFPERR_PARAM.
1523 1998-11-06 a sun <asun@purgatorius.zoology.washington.edu>
1525 * etc/afpd/enumerate.c (afp_enumerate), directory.c (renamedir):
1526 fixed a couple of failed realloc leaks.
1528 * etc/afpd/filedir.c (afp_moveandrename, afp_rename): added bits
1529 to deal with case-insensitive, case-preserving filesystems.
1531 1998-10-30 a sun <asun@purgatorius.zoology.washington.edu>
1533 * etc/afpd/auth.c: fixed randnum password changing check.
1535 1998-10-27 a sun <asun@purgatorius.zoology.washington.edu>
1537 * etc/atalkd/main.c: add a check for SIOCATALKDIFADDR if
1540 * etc/afpd/volume.c (getvolparams): ad_open had the wrong
1543 * etc/afpd/unix.c (setdeskowner): added a little extra space to
1544 prevent buffer overflows here.
1546 1998-10-26 a sun <asun@purgatorius.zoology.washington.edu>
1548 * sys/linux/Makefile: fixed PAM message.
1550 * sys/solaris/Makefile: make failure to ln -s a non-fatal error.
1552 * etc/papd/session.c, bin/pap/pap.c: changed sequence count to
1553 wrap from 0 -> 1 instead of from 0xFFFF -> 1.
1555 * etc/afpd/filedir.c (afp_rename, afp_moveandrename): actually, we
1556 should check against the entire unix name.
1558 1998-10-21 a sun <asun@purgatorius.zoology.washington.edu>
1560 * etc/afpd/filedir.c (afp_rename, afp_moveandrename): make sure
1561 to check against mac name.
1563 1998-10-19 a sun <asun@purgatorius.zoology.washington.edu>
1565 * etc/afpd/auth.c (afp_changepw): make password changing deal
1566 correctly with "real" user names. also, moved seteuid() to before
1567 the pam_authenticate() bit as shadow passwords need that.
1569 * etc/afpd/enumerate.c (afp_enumerate): make sure to check the mac
1570 name against MACFILELEN.
1572 1998-10-16 a sun <asun@purgatorius.zoology.washington.edu>
1574 * etc/afpd/file.c (renamefile), filedir.c (afp_rename),
1575 directory.c (renamedir): use strndiacasecmp() for AFPERR_SAMEOBJ
1576 checks. also make sure test occurs before checking to see if the
1579 1998-10-15 a sun <asun@purgatorius.zoology.washington.edu>
1581 * etc/afpd/auth.c (afp_changepw): fixed a bit of brain damage. i
1582 forgot that password changing needs root privileges to work.
1584 * etc/afpd/auth.c (PAM_conversation): the supplied code was
1585 incorrect. i cleaned it up a bit.
1587 * sys/linux/Makefile: fixed the installation bits.
1589 1998-10-14 a sun <asun@purgatorius.zoology.washington.edu>
1591 * etc/afpd/auth.c (afp_changepw): don't kill the connection here
1592 if there's a problem.
1594 1998-10-10 a sun <asun@purgatorius.zoology.washington.edu>
1596 * etc/afpd/enumerate.c, fork.c, ofork.c, file.c,
1597 globals.h, directory.c, auth.c: #defined MACFILELEN and used
1598 that. also made sure that files > MACFILELEN never show up.
1600 1998-09-25 a sun <asun@purgatorius.zoology.washington.edu>
1602 * etc/{afpd,papd,atalkd}/bprint.c (bprint): got rid of the
1603 spurious pointer dereference.
1605 * etc/afpd/ofork.c (of_alloc/of_rename): allocate the max mac file
1606 length so that we don't need to realloc.
1608 * etc/afpd/filedir.c (afp_rename, afp_moveandrename): make sure to
1609 return AFPERR_BUSY if the dest has an ofork open.
1611 * etc/afpd/file.c (renamefile), directory.c (renamedir), filedir.c
1612 (afp_rename): return AFPERR_SAMEOBJ if source == dest
1614 1998-09-21 a sun <asun@purgatorius.zoology.washington.edu>
1616 * etc/afpd: went through and looked for places that needed to use
1617 curdir instead of dir. i think i have them all right now.
1619 * etc/afpd/filedir.c (afp_moveandrename): wasn't keeping track of
1620 curdir correctly. what this really means is that cname should be
1621 fixed to return everything it changes as opposed to changing a
1624 1998-09-19 a sun <asun@purgatorius.zoology.washington.edu>
1626 * etc/afpd/config.c (configinit): do the right thing if
1627 AFPConfigInit fails.
1629 1998-09-18 a sun <asun@purgatorius.zoology.washington.edu>
1631 * etc/afpd/config.c (ASP/DSIConfigInit, configfree): how
1632 embarrassing. i wasn't doing refcounts correctly.
1634 1998-09-17 a sun <asun@purgatorius.zoology.washington.edu>
1636 * etc/afpd/nfsquota.c (getnfsquota): ultrix uses dqb_bwarn instead
1639 * sys/ultrix/Makefile: ultrix understands the old rquota format.
1641 * etc/afpd/ofork.c (of_findname): erk. forgot to only search in
1642 the current directory.
1643 (of_rename): erk. changed it to handle renaming a file that has
1644 been opened multiple times.
1646 * etc/atalkd: made sure that if you don't specify -router, things
1647 are as they were before.
1649 1998-09-13 a sun <asun@purgatorius.zoology.washington.edu>
1651 * etc/afpd/status.c (status_flags): forgot to turn on password
1652 setting if randnum passwords are being used.
1654 1998-09-11 a sun <asun@purgatorius.zoology.washington.edu>
1656 * etc/afpd/unix.c (setdirmode): erk. make sure only to setgid on
1659 * bin/aecho/aecho.c (main): incorporated -c <num> (ala ping) patch
1660 from "Fred Lindberg" <lindberg@id.wustl.edu>.
1662 1998-09-03 a sun <asun@purgatorius.zoology.washington.edu>
1664 * etc/afpd/directory.c (afp_closedir, afp_opendir): added these in
1665 for more AFP 2.0 compliance. unfortunately, apple's appleshare
1666 client doesn't like non-fixed directory ids.
1668 1998-08-31 a sun <asun@purgatorius.zoology.washington.edu>
1670 * etc/afpd/volume.c (accessvol): the accessible volume list can
1671 now be controlled by groups and usernames. just use something of
1672 the following form: @group,name,name2,@group2,name3
1674 NOTE: you can't have any spaces, and the parser forces you to
1675 include all options. in this case, there are some apple II options
1676 that need to be entered. they need to go away soon anyway.
1678 * etc/afpd/auth.c (getname): oops. i forgot to copy the gecos
1679 field into a temporary buffer before calling strtok.
1681 1998-08-29 a sun <asun@hecate.darksunrising.blah>
1683 * etc/atalkd/main.c (as_timer), rtmp.c (rtmp_delzones): when the
1684 last router on an interface goes down, we need to delete the
1685 interface's zone table.
1687 1998-08-28 a sun <asun@purgatorius.zoology.washington.edu>
1689 * etc/afpd/status.c (afp_getsrvrinfo): although it's never used,
1690 i've added this in to increase AFP compliance.
1692 * etc/afpd/auth.c (afp_getuserinfo): added FPGetUserInfo -- this
1693 should make afpd compatible with OS 8.5's Nav Services.
1695 * etc/atalkd/config.c,main.c: -router now specifies router mode
1696 with any number of interfaces.
1698 1998-08-27 a sun <asun@purgatorius.zoology.washington.edu>
1700 * etc/atalkd/main.c (as_timer): well, i figured out how to set up
1701 atalkd as a single-interface router. now, you can get zones with
1702 only single interfaces! i'm only waiting on wes for the approved
1703 configuration toggle.
1705 1998-08-26 a sun <asun@purgatorius.zoology.washington.edu>
1707 * libatalk/adouble/ad_lock.c, include/atalk/adouble.h: turned the
1708 ADLOCK_* into real #defines and added translations in the
1709 lock-type specific functions. this should make it easier to
1710 recompile things without screwing up.
1712 1998-08-26 a sun <asun@hecate.darksunrising.blah>
1714 * etc/atalkd/nbp.c (nbp_packet): forgot to handle another local
1717 1998-08-25 a sun <asun@hecate.darksunrising.blah>
1719 * etc/afpd/status.c (status_server): changed status_server to
1720 use only the obj part of obj:type@zone-style names.
1722 * etc/atalkd/nbp.c (nbp_packet): unregistering wasn't handling
1723 zones properly. it was matching on anything but the actual zone.
1725 1998-08-18 a sun <asun@purgatorius.zoology.washington.edu>
1727 * etc/afpd/auth.c (clrtxt_login): added pam_set_time(PAM_TTY) so
1728 that solaris' pam session setup doesn't crap out.
1730 1998-08-17 a sun <asun@purgatorius.zoology.washington.edu>
1732 * etc/atalkd/multicast.c (zone_bcast): fixed to do the right thing
1733 with zip multicast info.
1735 1998-08-15 a sun <asun@purgatorius.zoology.washington.edu>
1737 * etc/afpd/nfsquota.c: made the old-style rquota fields dependent
1738 upon -DUSE_OLD_RQUOTA and defined that for sunos. also included
1739 <sys/time.h> for ultrix breakage.
1741 1998-08-13 a sun <asun@purgatorius.zoology.washington.edu>
1743 * etc/afpd/filedir.c (afp_rename), etc/afpd/ofork.c (of_rename): i
1744 knew that speeding up of_findname would be useful. in any case, i
1745 discovered the source of yet another small AFP non-compliance that
1746 was confusing WordPerfect. on an afp_rename, we also need to
1747 rename the corresponding ofork. i've added an of_rename() to do
1750 1998-08-13 a sun <asun@hecate>
1752 * etc/afpd/ofork.c (of_dealloc,of_alloc): sped up dealloc by
1753 sticking refnum in ofork.
1755 1998-08-12 a sun <asun@hecate>
1757 * etc/afpd/fork.c (afp_openfork): added already open attribute
1760 * etc/afpd/ofork.c: added a hashed of_findname.
1762 1998-08-06 a sun <asun@purgatorius.zoology.washington.edu>
1764 * etc/afpd/fork.c (afp_openfork): fixed a problem with opening
1765 forks from read-only non-appledouble media.
1767 1998-07-23 a sun <asun@purgatorius.zoology.washington.edu>
1769 * etc/afpd/afs.c (afs_getvolspace), etc/afpd/volume.c
1770 (getvolspace): modified them to treak afs like the other
1771 getvolspaces w.r.t. VolSpace.
1773 1998-07-21 a sun <asun@purgatorius.zoology.washington.edu>
1775 * etc/afpd/unix.c (mountp): erk. i forgot that symlinks are often
1776 used for filesystems. nfs quotas sometimes failed as a
1777 result. that's fixed now.
1779 1998-07-20 a sun <asun@purgatorius.zoology.washington.edu>
1781 * etc/afpd/auth.c (login): added a -DRUN_AS_USER #define so that
1782 it's simple to run the server process as a non-root user.
1784 1998-07-17 a sun <asun@purgatorius.zoology.washington.edu>
1786 * etc/afpd/nfsquota.c (callaurpc, getnfsquota), volume.h: it turns
1787 out that i was opening lots of sockets with callaurpc. now, the
1788 socket gets saved and reused.
1790 NOTE: quota-1.55-9 from redhat 5.x doesn't return the correct size
1791 for rquota's bsize. unless fixed, rquota will report incorrect
1794 1998-07-08 a sun <asun@purgatorius.zoology.washington.edu>
1796 * etc/afpd/uam/README: added some preliminary ideas on a
1797 plug-in uam architecture. in addition, this should allow arbitrary
1798 afp function replacement. eventually, auth.c should get a
1801 1998-07-07 a sun <asun@purgatorius.zoology.washington.edu>
1803 * etc/afpd/nfsquota.c: added headers and redefined a couple
1804 structure fields so that sunos4 compiles.
1806 * libatalk/compat/rquota_xdr.c: compile if we're using glibc <
1807 2. this should get redhat 4.2 machines. NOTE: they're still
1808 missing librpcsvc.a, so they'll need to remove that from the
1811 1998-07-06 a sun <asun@purgatorius.zoology.washington.edu>
1813 * libatalk/compat/rquota_xdr.c: it turns out that solaris is
1814 missing a couple functions needed for rquota support. here they
1817 * etc/afpd/unix.c (mountp): fixed the nfs detection for
1818 solaris. we still need bsd and ultrix.
1820 1998-07-05 a sun <asun@hecate>
1822 * include/atalk/adouble.h: marked out space for appledouble v2.
1824 1998-07-04 a sun <asun@hecate>
1826 * etc/afpd: plugged up some ad_open leaks. made sure that we don't
1827 get negative numbers for length fields and such.
1829 1998-07-04 a sun <asun@hecate>
1831 * etc/afpd/nfsquota.c (getnfsquota): added nfs rquota
1832 support. Robert J. Marinchick <rjm8m@majink1.itc.virginia.edu>
1833 provided the initial bits from the bsd quota program.
1835 * etc/afpd/unix.c (getquota): made getquota call getfsquota or
1836 getnfsquota depending upon the type of fs.
1838 * etc/afpd/unix.c (mountp/special): munged mountp and
1839 special to return either the nfs mount point or the fs
1840 device. set the vol->v_nfs flag if it's nfs.
1842 * etc/afpd/volume.c (getvolspace): xbfree and xbtotal will now
1843 honor results returned from uquota_getvolspace.
1845 1998-06-29 a sun <asun@purgatorius.zoology.washington.edu>
1847 * etc/afpd/file.c (copyfile): mmapping the file copy only helps on
1848 multiple copies. as that's not the case here, i've reverted to
1849 just doing read + write.
1851 1998-06-28 a sun <asun@purgatorius.zoology.washington.edu>
1853 * sys/linux/Makefile: fixed the redhat-style atalk
1854 installation. also, it doesn't over-write an existing
1855 /etc/rc.d/init.d/atalk file.
1857 * etc/afpd, libatalk/adouble/ad_write.c: removed <sys/file.h> and
1858 </usr/ucbinclude/sys/file.h> so that we rely upon adouble.h.
1860 1998-06-19 a sun <asun@purgatorius.zoology.washington.edu>
1862 * changed sys/linux/Makefile to install a redhat-style sysv atalk
1863 script instead of the bsd one.
1865 * include/atalk/adouble.h: moved same-name list stub to struct
1868 Thu Jun 18 18:20:28 1998 a sun <asun@purgatorius>
1870 * changed to asunx.y.z notation as i was getting tired of
1871 increasing numbers. as this version is undergoing a fairly
1872 substantial overhaul, i bumped it to 2.1.0. don't ask why asun1.0
1873 never existed. i just started at 2.0.
1875 * ofork (etc/afpd/{ofork.c,ofork.h,fork.c}: put in skeleton code
1876 for hashed-by-name oforks and oforks which group by name to help
1877 with byte locks and of_findname.
1879 * adouble (include/atalk/adouble.h): started implementing
1880 appledouble v2. mostly, i added bits to headers. v2 has wonderful
1881 bits that should make prodos support much less clunky, allow
1882 persistent dids, and allow msdos support.
1884 * finder info: added bits to directory.c and file.c describing the
1885 actual contents of finder info (from IM: Toolbox
1886 Essentials). also, set default directory view to an allowed value
1887 thanks to a suggestion from the appledouble v2 specs. that should
1888 help with read-only media.
1890 * etc/afpd/{directory.c,volume.c,afs.c,directory.h}: added
1891 DIRDID_ROOT and DIRDID_ROOT_PARENT so people know that these did's
1894 Wed Jun 17 11:54:49 1998 a sun <asun@purgatorius>
1896 * well, i'm starting a changelog as i keep forgetting what i've
1899 * locks: revamped them to be more in line with what should
1900 happen. currently, i've reverted back to flock-style locks as i'll
1901 need to stick in more code to get fcntl-style locks to work
1902 properly. specifically, i think modifying of_alloc/of_dealloc to
1903 keep track of locks, fds, and names should solve the problem with
1904 fcntl locks being process-specific and not fd specific.