1 2000-02-28 a sun <asun@asun.cobalt.com>
3 * etc/afpd/directory.h (CNID_INODE): xor the inode a little
6 2000-02-23 a sun <asun@asun.cobalt.com>
8 * etc/afpd/volume.c (creatvol): / is a special case. you can't
9 share it unless you give it a name.
11 2000-02-21 a sun <asun@asun.cobalt.com>
13 * distrib/initscripts/rc.atalk.redhat/cobalt: added changes to
14 make redhat 6.x happier.
16 2000-02-17 a sun <asun@asun.cobalt.com>
18 * libatalk/adouble/ad_lock.c (adf_unlock): off-by-one error with
19 lock removal. this + the log right below fix ragtime.
21 2000-02-16 a sun <asun@asun.cobalt.com>
23 * etc/afpd/fork.c (afp_bytelock): only error on bytelocks
24 positioned at 0x7FFFFFFF if there's no resource fork.
26 2000-02-14 a sun <asun@asun.cobalt.com>
28 * libatalk/adouble/ad_lock.c: re-wrote locking bits so that
29 allocations happen in blocks. added missing case that omnis
32 2000-02-07 a sun <asun@asun.cobalt.com>
34 * bin/nbp/Makefile (install): make nbprgstr/nbpunrgstr with 700
37 * include/atalk/adouble.h (sendfile): change to deal with
40 2000-01-25 a sun <asun@asun.cobalt.com>
42 * etc/afpd/ofork.c: keep track of oforks being used for each
43 directory so that we can update them if the directory tree gets
46 * etc/afpd/directory.c (deletecurdir): remove dangling symlinks on
49 2000-01-24 a sun <asun@asun.cobalt.com>
51 * etc/afpd/directory.h (CNID): moved cnid assignment here along
54 * etc/afpd/directory.c: changed directory search to use red-black
55 trees to improve balance. parent-child tree changed to circular
56 doubly-linked list to speed up insert/remove times. there's still
57 one obstacle to actually freeing red-black tree entries. i need to
58 add an ofork list to struct dir to minimize search times.
60 2000-01-18 a sun <asun@asun.cobalt.com>
62 * etc/afpd/directory.c (dirinsert): detect attempts to add
63 pre-existing entries as just symbolic links.
65 * etc/afpd/filedir.h (CNID): moved inode-cnid assignment here and
66 extended to directories.
68 2000-01-03 a sun <asun@asun.cobalt.com>
70 * etc/uams/uams_pam.c (PAM_conv): surround PAM_BINARY_PROMPT with
73 * etc/afpd/status.c (status_init): fixed a bunch of problems here
74 that manifested under solaris 7.
76 * etc/afpd/main.c (main): use FD_SETSIZE instead of FD_SETSIZE +
80 1999-12-27 a sun <asun@asun.cobalt.com>
82 * libatalk/util/getiface.c: moved interface detection code to here
83 so that i can use if_nameindex() or getifconf() depending upon
86 1999-12-13 a sun <asun@asun.cobalt.com>
88 * libatalk/dsi/dsi_tcp.c (dsi_tcp_init): added if_nameindex()
91 * etc/afpd/afp_options.c (afp_options_parseline): added
92 -server_quantum as an option. using hex would be a good idea.
94 * libatalk/dsi/dsi_opensess.c (dsi_opensession): added bits to set
95 the server quantum. by default, the server quantum is limited to
96 1MB due to a bug in the os 9 appleshare client.
98 * distrib/initscripts/rc.atalk.{cobalt,redhat}: surround nbp stuff
101 * etc/uams/uams_dhx_pam.c (pam_changepw): added dhx-based password
104 1999-12-06 a sun <asun@asun.cobalt.com>
106 * etc/afpd/directory.c (setdirparams): don't error if we can't set
107 the desktop owner/permisssions.
109 1999-11-04 a sun <asun@asun.cobaltnet.com>
111 * etc/afpd/fork.c (afp_openfork): had the ordering wrong on an
114 1999-11-02 a sun <asun@asun.cobaltnet.com>
116 * etc/afpd/afp_dsi.c (afp_over_dsi): flush data for unknown dsi
119 1999-10-28 a sun <asun@asun.cobaltnet.com>
121 * etc/uams/*.c: return FPError_PARAM if the user is unknown.
123 1999-10-27 a sun <asun@asun.cobaltnet.com>
125 * etc/afpd/fork.c (afp_read): if sendfile isn't supported, use the
128 1999-10-25 a sun <asun@asun.cobaltnet.com>
130 * libatalk/nbp/nbp_unrgstr.c (nbp_unrgstr): fix nbp unregisters.
132 1999-10-21 a sun <asun@asun.cobaltnet.com>
134 * etc/afpd/Makefile (install): moved install of afpd earlier per
135 suggestion by steven michaud.
137 1999-10-05 a sun <asun@asun.cobaltnet.com>
139 * etc/uams/uams_randnum.c (afppasswd): for ~/.passwd's, turn
140 ourselves into the user so that nfs is happy.
142 1999-09-19 a sun <asun@adrian5>
144 * libatalk/netddp/netddp_open.c, nbp/*.c: only use the bcast stuff
145 if it's on an os x server machine.
147 1999-09-15 a sun <asun@adrian5>
149 * libatalk/nbp/nbp_unrgstr.c,nbp_lkup.c,nbp_rgstr.c: os x server
150 wants ATADDR_BCAST. that probably means that i need to do
151 multihoming appletalk a little differently. bleah.
153 1999-09-09 <asun@asun.cobaltnet.com>
155 * etc/afpd/directory.c (getdirparams), libatalk/adouble/ad_open.c
156 (ad_open): mondo lameness. i forgot that directory lookups can be
157 done with "." as the directory name. that was auto-hiding
158 them. bleah. i also figured out which bit was the invisible bit
159 for finderinfo information.
161 1999-09-06 Adrian Sun <asun@glazed.cobaltnet.com>
163 * etc/afpd/desktop.c (mtoupath): fixed a bug in codepage support
164 that accidentally crept in.
166 1999-08-31 Adrian Sun <asun@glazed.cobaltnet.com>
168 * etc/afpd/quota.c (getfsquota): use group quotas in quota
169 calculations if the user belongs to a single group. just use the
170 user quotas if the user belongs to multiple groups.
172 * etc/afpd/volume.c (getvolspace): added an options:limitsize to
173 restrict the available space to 2GB. this is for macs running
174 older versions of the operating system with newer versions of the
175 appleshare client. weird huh?
177 * etc/afpd/quota.c (uquota_getvolspace): bleah. 64-bit shifts
178 don't get promoted in the same way as arithmetic operations. added
179 some more casts to deal with that issue.
181 1999-08-24 Adrian Sun <asun@glazed.cobaltnet.com>
183 * man/man?/Makefile: don't re-build .tmp files if they already
184 exist. this gets the install phase to work correctly.
186 1999-08-13 a sun <asun@hecate.darksunrising.blah>
188 * etc/afpd/directory.c, file.c, filedir.c: illegal characters get
189 AFPERR_PARAM. also, reject names with /'s in them if the nohex
192 1999-08-12 a sun <asun@hecate.darksunrising.blah>
194 * etc/afpd/filedir.c,file.c,directory.c: changed error for
195 illegal filenames to AFPERR_EXIST.
197 1999-08-11 a sun <asun@hecate.darksunrising.blah>
199 * etc/afpd/desktop.h (validupath): if usedots is set, .Apple* and
200 .Parent files are no longer valid file names.
202 * etc/afpd/volume.c (volset): added usedots and nohex as
203 options. usedots stops :hex translation of . files while nohex
204 stops :hex translation of everything but . files. in addition,
205 . files created on the unix side are by default hidden.
207 * libatalk/adouble/ad_open.c: initialize more bits.
209 1999-08-10 a sun <asun@hecate.darksunrising.blah>
211 * distrib/initscripts/rc.atalk.redhat (WORKSTATION): use the
212 actual name for nbp registration rather than ATALK_NAME.
214 * sys/solaris/Makefile (kernel): make sure osdefs and machinedefs
215 get used when building the kernel module.
217 * sys/solaris: changed strings.h to string.h
219 1999-08-08 a sun <asun@hecate.darksunrising.blah>
221 * etc/afpd/volume.c (readvolfile): changed volume options into an
222 array of structs to ease maintenance.
224 1999-08-05 a sun <asun@hecate.darksunrising.blah>
226 * etc/afpd/status.c (status_init): change the default icon
227 depending upon whether or not it's an ASIP or an AppleTalk
230 1999-08-04 Adrian Sun <asun@glazed.cobaltnet.com>
232 * etc/atalkd/main.c (setaddr): made a failure with setaddr a
233 little more informative.
235 1999-08-03 Adrian Sun <asun@glazed.cobaltnet.com>
237 * yippee. someone figured what was happening with the installation
238 of the man pages. i got rid of a duplicate entry.
240 1999-08-02 a sun <asun@hecate.darksunrising.blah>
242 * etc/afpd/volume.c (readvolfile): added a per-file way of setting
243 default options. it keys in on a :DEFAULT: label.
245 1999-07-30 a sun <asun@hecate.darksunrising.blah>
247 * moved rc.atalk.* scripts to distrib/initscripts.
249 1999-07-27 a sun <asun@hecate.darksunrising.blah>
251 * contrib/printing: added patch from job@uchicago.edu
253 * etc/afpd/file.c: forgot to initialize struct ad in
256 * etc/afpd/nls/makecode.c: added an empty mapping.
258 * etc/psf/Makefile (install): well cp -d didn't work either. just
261 1999-07-26 a sun <asun@hecate.darksunrising.blah>
263 * sys/solaris/tpi.c (tpi_attach): changed DDI_NT_NET to DDI_PSEUDO
264 (from denny@geekworld.com).
266 * distrib/rpm/netatalk-asun.spec (Summary): incorporated new spec
267 and patch files from inoue.
269 * sys/linux/Makefile (install-sysv): fixed up a bit.
271 * etc/psf/Makefile (install): use cp -d instead of cp -a to make
274 * etc/afpd/afp_options.c (afp_options_parseline): reversed meaning
275 of -icon. now it means to use the yucky bitmap instead of the
278 * bin/afppasswd/Makefile (all): add -Iinclude/openssl for
281 1999-07-18 a sun <asun@hecate.darksunrising.blah>
283 * create links/mangle files in the compile rather than the install
284 phase so that rpm will be happier.
286 1999-07-17 a sun <asun@hecate.darksunrising.blah>
288 * etc/afpd/file.c (afp_createfile), directory (afp_createdir),
289 filedir.c (afp_rename, afp_moveandrename): don't allow the
290 creation/renaming of names with certain characters if mswindows
291 compatibility is enabled.
293 1999-07-16 a sun <asun@hecate.darksunrising.blah>
295 * rc.atalk.redhat: incorporated chkconfig from inoue.
297 1999-07-15 a sun <asun@hecate.darksunrising.blah>
299 * etc/atalkd/config.c (getifconf): wrap check against
300 IFF_MULTICAST behind an #ifdef IFF_MULTICAST.
302 * sys/netbsd/Makefile (LDSHAREDFLAGS): key in on machine type.
304 1999-07-11 a sun <asun@hecate.darksunrising.blah>
306 * contrib/ICDumpSuffixMap: added internet config perl script from
309 * contrib/printing: added contributed solaris printing scripts
310 from job@uchicago.edu.
312 1999-07-10 a sun <asun@hecate.darksunrising.blah>
314 * etc/atalkd/interface.h, rtmp.h: prototyped functions.
316 * etc/atalkd/zip.c: converted bcopy's to memcpy's.
318 * etc/atalkd/nbp.c,rtmp.c: added checks for the interface for
321 * etc/atalkd/main.c: converted bzero/bcopy to memset/memcpy.
323 1999-07-08 a sun <asun@hecate.darksunrising.blah>
325 * libatalk/nbp/nbp_rgstr.c (nbp_rgstr): return EADDRINUSE if the
326 address already exists.
328 1999-07-06 a sun <asun@hecate.darksunrising.blah>
330 * rc.atalk.redhat: changed netatalk.config to netatalk.conf
332 1999-07-05 a sun <asun@hecate.darksunrising.blah>
334 * etc/atalkd/nbp.c (nbp_packet): add interface to nbp struct. this
335 is so that we can filter by interface in the future. however, it
336 doesn't seem to work that well right now. bleah.
338 * etc/atalkd/main.c: fixed up dontroute option so that it doesn't
339 screw up atalkd.conf. also, we need to do a bootaddr if dontroute
342 * libatalk/atp,nbp,netddp; bin/aecho,nbp,getzones,pap;
343 etc/papd,afpd: accept -A <ddp address> as an option so that you
344 can specify the address to be used on a multihomed server. for
345 papd, you use the 'pa' option in papd.conf.
347 1999-07-04 a sun <asun@hecate.darksunrising.blah>
349 * etc/atalkd/config.c (parseline): initialize parseline properly
350 so that we don't get extraneous junk.
352 * etc/afpd/afp_options.c (afp_options_parseline): do
353 gethostbyaddr/gethostbyname's for -ipaddr and -fqdn.
355 * etc/atalkd/config.c (getifconf/readconf): check to see if the
356 supported device can support appletalk addresses. either continue
357 or exit depending upon whether or not it's auto-configed.
359 1999-07-03 a sun <asun@hecate.darksunrising.blah>
361 * etc/afpd/afp_options.c (afp_options_parse): -I (-[no]icon) will
362 toggle the volume icon so that it uses the apple icon instead.
364 * etc/afpd/config.c (AFPConfigInit): added more logic for the
365 -proxy option. here are the rules: -proxy will always try to
366 create a DDP server instance. by default, the proxy server will
367 still allow you to login with an appletalk connection. to prevent
368 that, just set the uamlist to an empty string.
370 1999-07-02 a sun <asun@hecate.darksunrising.blah>
372 * etc/afpd/status.c (status_netaddress): added support for fqdn
373 (not available in the appleshare client yet).
375 1999-07-01 a sun <asun@hecate.darksunrising.blah>
377 * etc/afpd/config.c (DSIConfigInit): application code for proxy
378 setup. it's the -proxy option.
380 * libatalk/dsi/dsi_init/tcp.c (dsi_init/dsi_tcp_init): added
381 support for proxy setup.
383 1999-06-30 a sun <asun@hecate.darksunrising.blah>
385 * etc/afpd/filedir.c (afp_rename): fixed up some error
386 codes. quark express should be happier.
388 * etc/afpd/uam.c (uam_afpserver_option): added
389 UAM_OPTION_HOSTNAME. use this to set PAM_RHOST. i just got a
390 report that setting that fixes pam on solaris machines.
392 1999-06-28 a sun <asun@hecate.darksunrising.blah>
394 * etc/afpd/ofork.c (of_alloc): report out of forks in syslog..
396 * etc/afpd/enumerate.c (afp_enumerate): close an opendir leak.
398 * include/atalk/{dsi,asp}.h: make cmdlen and datalen ints.
400 * etc/afpd/fork.c (afp_write): fixed up error condition.
402 1999-06-26 a sun <asun@hecate.darksunrising.blah>
404 * etc/uams/Makefile (install): changed install location of uams.
406 * sys/linux/Makefile (install-sysv): always install redhat
407 script. netatalk.config script only gets installed if it's not
410 1999-06-23 a sun <asun@hecate.darksunrising.blah>
412 * rc.atalk.redhat: merged in redhat contrib rpm rc.atalk script.
414 * etc/afpd/afp_options.c (afp_options_init): changed default
417 1999-06-22 a sun <asun@hecate.darksunrising.blah>
419 * etc/afpd/config.c (DSIConfigInit): truncate options->server to
420 just the server name here.
422 * etc/afpd/volume.c (volxlate): made $s return something
423 meaningful no matter what.
425 * libatalk/adouble/ad_sendfile.c (ad_readfile): freebsd sendfile
428 1999-06-20 a sun <asun@hecate.darksunrising.blah>
430 * etc/afpd/volume.c (volxlate): added variable substitution. if it
431 doesn't understand the variable, it just spits it back out.
433 (creatvol): display truncated volume name if it's too long.
435 * sys/{generic,solaris}/Makefile: added NO_CRYPTLIB option to deal
436 with oses that have -lcrypt but shouldn't use it.
438 1999-06-11 a sun <asun@hecate.darksunrising.blah>
440 * include/atalk/afp.h: added comments to FPErrors.
442 * etc/afpd/enumerate.c (afp_enumerate): make FPEnumerate do some
445 * include/atalk/util.h: server_lock() returns pid_t.
447 1999-06-10 a sun <asun@hecate.darksunrising.blah>
449 * README.ASUN: added location for both ssleay and openssl.
451 * etc/uams: moved install to LIBDIR/uams. "uams_*" now means "uam
452 server." in the future, there will be "uamc_*." changed the shared
453 library names to match.
455 * include/atalk/atp.h,nbp.h: forgot to include <sys/cdefs.h>
457 * etc/uams/Makefile: openssl-0.9.3c uses <openssl/*.h> so add that
460 * sys/{solaris,ultrix}/Makefile: just use -I../sys/generic instead
463 * include/atalk/uam.h, etc/uams/uam_*.c, etc/afpd/uam.c: added uam
464 type field. do type check.
466 * etc/uams/uam_*pam.c: added a couple more error codes.
468 1999-06-08 a sun <asun@hecate.darksunrising.blah>
470 * etc/afpd/nls/Makefile (codepage.h): make sure that a link to
471 codepage.h gets made.
473 * libatalk/*/Makefile: make sure that the profiled directory gets
476 * etc/afpd/directory.c (afp_mapname): removed an extraneous line
477 that was causing mapname to fail.
479 1999-06-07 a sun <asun@hecate.darksunrising.blah>
481 * etc/atalkd/main.c (main): added a note to check the syslog if
482 atalkd can't be setup.
484 * sys/linux/Makefile: added -DNEED_QUOTACTL_WRAPPER to the list of
485 auto-detected #defines.
487 1999-06-06 a sun <asun@hecate.darksunrising.blah>
489 * etc/afpd/fork.c (afp_write): argh. i moved things around a
490 little too much and ended up with an uninitialized eid. strangely,
491 the compiler didn't complain. simplified bits a little as
492 well. also, FPWrite was returning the wrong error messages. on
493 64-bit filesystems, the offset can wraparound. so, report a disk
494 full error if that's going to happen. egcs-19990602 gets one
495 memcpy right and another wrong on my udb. bleah.
497 (afp_read): fixed the error messages here as well.
499 1999-06-05 a sun <asun@hecate.darksunrising.blah>
501 * Makefile, sys/generic, sys/{ultrix,solaris}/Makefile: create
502 some links on the fly if they're missing.
504 * etc/afpd/directory.c (copydir): fixed a leaking opendir and
505 re-arranged a little.
507 1999-06-04 a sun <asun@hecate.darksunrising.blah>
509 * etc/afpd: prototyped everything here and moved the FP functions
512 * libatalk/util/bprint.c: moved all of the bprints to here.
514 * libatalk/asp, include/atalk/asp.h: prototyped asp functions.
516 * include/atalk/atp.h, libatalk/atp: prototyped atp functions.
518 * libatalk/nbp, include/atalk/nbp.h: added prototypes for nbp
521 * bin/afppasswd/Makefile (afppasswd): fixed a misspelling in the
524 * bin/afppasswd/afppasswd.c: added -a option so that root can add
525 new users. turned all of the options into bits. added newlines to
528 1999-06-03 a sun <asun@hecate.darksunrising.blah>
530 * sys/freebsd/Makefile: turn on sendfile support if running on a
533 1999-06-02 a sun <asun@hecate.darksunrising.blah>
535 * etc/uams/uam_dhx_pam.c: fixed memory freeing part of pam
536 conversation function.
538 * sys/*/Makefile: check at make time to see if -lrpcsvc and
539 -lcrypt should be included in the appropriate places.
541 1999-05-28 a sun <asun@hecate.darksunrising.blah>
543 * etc/afpd/file.c (deletefile): added more error checking here as
546 * etc/afpd/directory.c (renamedir): added a couple a few more
549 * sys/sunos/Makefile: sunos should really work now.
551 1999-05-27 a sun <asun@hecate.darksunrising.blah>
553 * include/atalk/afp.h: added in a couple new error codes (one
554 deals with password setting policy, the other with maximum logins
557 * etc/afpd/fork.c (afp_openfork): try to re-open files on
558 read-only volumes as read-only.
560 1999-05-26 a sun <asun@hecate.darksunrising.blah>
562 * sys/solaris/Makefile: fixed a few bobbles here. solaris uses
563 uname -p. other oses seem to use uname -m for the same information.
565 * etc/uams/uam_pam.c (pam_changepw): added check for same
568 * etc/uams/uam_randnum.c (randnum_changepw): added in cracklib and
569 same password checks.
571 * sys/osx/Makefile: moved the os x server stuff into its own build
574 * sys/linux/Makefile, sys/solaris/Makefile: key in on OSVERSION
575 and MACHINETYPE for some stuff.
577 1999-05-25 a sun <asun@hecate.darksunrising.blah>
579 * sys/sunos/Makefile: various bits to make stuff work with sunos
582 1999-05-25 a sun <asun@purgatorius.zoology.washington.edu>
584 * etc/afpd/file.c (copyfile): only copy the header file if newname
587 * etc/afpd/directory.c (copydir): make sure to balk if the
588 directory already exists. in addition, make sure to preserve the
591 1999-05-24 a sun <asun@hecate.darksunrising.blah>
593 * bin/afppasswd/afppasswd.c: global password updating utility for
594 the randnum authentication method.
596 1999-05-22 a sun <asun@hecate.darksunrising.blah>
598 * etc/uams/uam_randnum.c (afppasswd): added in global password
599 file for the randnum authentication method. it looks for a .key
600 file as well to handle encryption.
602 * etc/afpd/afp_options.c (afp_options_parseline): added
603 -passwdfile as an option so that you can specify a global randnum
604 password file if desired.
606 * etc/afpd/volume.c (readvolfile): we now have rwlist and rolist
607 as an AppleVolumes.* option. if the user is in the rolist, the
608 volume gets set as readonly. if there's a rwlist, and the user
609 isn't in it, the volume also gets set as readonly.
611 1999-05-21 a sun <asun@hecate.darksunrising.blah>
613 * libatalk/adouble/ad_lock.c (ad_fcntl_lock): plug a leak if we
614 can't allocate the reference counting variable.
616 * etc/uams/uam_*.c: make sure that uam_setup returns an error
619 1999-05-19 a sun <asun@hecate.darksunrising.blah>
621 * include/atalk/paths.h (_PATH_LOCKDIR): added os x server's
622 /var/run as the lock file directory.
624 * etc/afpd/fork.c (afp_write): kanehara@tpk.toppan.co.jp reported
625 a problem with FPWrite getting a request count of 0. that's
628 * etc/afpd/Makefile: bleah. for some reason, pam doesn't like to
629 load itself from a shared library. i've compensated by linking it
632 * etc/uams/uam_dhx_passwd.c: okay. DHX now works. something's
633 still screwy with the dhx_pam stuff though.
635 1999-05-18 a sun <asun@hecate.darksunrising.blah>
637 * etc/afpd/uam.c (uam_getname): i forgot that getname modified the
638 username to fit what's in pw->pw_name if necessary.
640 1999-05-16 a sun <asun@hecate.darksunrising.blah>
642 * etc/uams/uam_dhx_passwd/pam.c: almost ready versions of the DHX
643 authentication method. i'm still missing a little info to get it
646 * bin/megatron/nad.c (nad_header_read): if there isn't a mac name,
647 create it from the unix name.
649 * bin/megatron/megatron.c (megatron): oops. need to turn fdCreator
650 and fdType into strings.
652 1999-05-16 a sun <asun@pelvetia>
654 * etc/afpd/uam.c (uam_afpserver_option): changed the interface a
655 little. now, you pass in an int * if you want to either get/set
656 the size of the option. added in UAM_OPTION_RANDNUM for generic
657 (4-byte granularity) random number generation.
659 * etc/afpd/switch.c: added afp_logout to preauth_switch.
661 1999-05-15 a sun <asun@hecate.darksunrising.blah>
663 * bin/megatron/macbin.c (bin_open): make error message for
664 macbinary files more informative.
666 (test_header): added more macbinary tests. it now has a workaround
667 for apple's incorrectly generated macbinary files.
669 1999-05-14 a sun <asun@hecate.darksunrising.blah>
671 * sys/solaris/Makefile: added shared library generation bits.
673 * etc/uams: moved server-side uams here.
675 * include/netatalk/endian.h: fixed some solaris bits.
677 * etc/afpd/config.c (configfree): don't do an asp_close. instead,
678 do an atp_close and free the asp object. oh yeah, as afpd needs
679 to export symbols to its modules, make sure you don't do anything
680 more exciting than strip --strip-debug with it.
682 1999-05-12 a sun <asun@hecate.darksunrising.blah>
684 * various places that use sigaction: zero out struct sigaction so
685 that we don't send something confusing. also make sure that we
686 don't set a timer unless we already have a sigaction set.
688 * etc/afpd/fork.c (afp_openfork): don't error on trying to open an
689 empty resource fork read-only. also, added back in the bit of code
690 that prevented locks from being attempted on non-existent resource
693 * etc/afpd/afp_options.c (getoption): added a uamlist commandline
696 * libatalk/netddp/netddp_open.c: don't bind if nothing was passed
699 * libatalk/nbp/nbp_unrgstr.c (nbp_unrgstr): oops. forgot to
700 convert this over to use by the netddp interface.
702 1999-05-12 a sun <asun@pelvetia>
704 * etc/afpd/uam.c: os x server's runtime library loader is
705 braindead. as a result, i've switched to using an exported struct
708 * bin/aecho,getzones: changed these to use the netddp interface.
710 * libatalk/nbp/nbp_rgstr.c,unrgstr.c: fixed more leaky bits.
712 * libatalk/netddp: abstracted the ddp interface to netddp. besides
713 the prior socket-driven interface, there's now an os x server
714 interface. so, instead of calling socket/sendto/recvfrom, you call
715 netddp_open/netddp_sendto/netddp_recvfrom.
717 1999-05-11 a sun <asun@pelvetia>
719 * libatalk/nbp/nbp_lkup.c: oh my. nbp_lookup was fd leaky if there
722 * etc/atalkd/main.c (main): make sure that if -dontroute is
723 selected for all but one interface, that interface also gets
726 1999-05-10 a sun <asun@hecate.darksunrising.blah>
728 * etc/afpd/auth.c: re-wrote to deal with plug-in uams. it's much
729 smaller than it used to be.
731 1999-05-09 a sun <asun@hecate.darksunrising.blah>
733 * etc/afpd/uams/uam_guest.c, uam_pam.c, uam_passwd.c,
734 uam_randnum.c: uam modules. these should probably be moved out of
735 afpd (and into something like etc/uam_server) when the printing
736 stuff gets uam support.
738 1999-05-08 a sun <asun@hecate.darksunrising.blah>
740 * etc/afpd/uam.c: interface to user authentication modules.
741 it should eventually be moved to libatalk, but that's not
742 necessary until the printing uam stuff is done. everything is from
743 the server-side perspective, but that's only because there aren't
744 any client-side uses right now.
746 * libatalk/util/module.c: generic interface to run-time library
747 loading functions. right now, the dlfcn family and os x server's
748 NS-style way of doing things are the ones understood. in addition,
749 there's a DLSYM_PREPEND_UNDERSCORE for those systems that need it.
751 * libatalk/asp/asp_write.c (asp_wrtcont): log both the read and
752 write part of write continuations.
754 1999-05-07 a sun <asun@hecate.darksunrising.blah>
756 * etc/atalkd: added the ability to turn off routing for particular
757 interfaces. specify -dontroute for each interface that you don't
760 1999-05-06 a sun <asun@hecate.darksunrising.blah>
762 * etc/afpd/auth.c: got rid of global clrtxtname and switched to
765 1999-05-04 a sun <asun@hecate.darksunrising.blah>
767 * libatalk/dsi/dsi_write.c (dsi_write): dsi_write could loop
768 forever if there's a problem while it's being used. that's fixed.
770 1999-05-01 a sun <asun@hecate.darksunrising.blah>
772 * etc/afpd/directory.c (renamedir,copydir,deletedir): added bits
773 so that renaming a directory works across filesystems.
775 1999-04-27 a sun <asun@hecate.darksunrising.blah>
777 * etc/afpd/fork.c (getforkparams): report mtime if it's > than
778 what's stored in the header file.
780 * config/afpd.conf: incorporated a patch by Stefan Bethke to make
781 afpd.conf more understandable.
783 * sys/solaris/if.c: many of the firstnet/lastnet bits weren't
784 endian converted. that's fixed.
786 * libatalk/adouble/ad_lock.c (adf_find(x)lock): F_RD/WRLCK aren't
787 necessarily ORable, so use ADLOCK_RD/WR instead.
789 (ad_fcntl_unlock): erk. fixed a typo that had the resource fork
790 unlock accidentally getting the data fork locks.
792 1999-04-24 a sun <asun@hecate.darksunrising.blah>
794 * etc/afpd/fork.c (afp_openfork): always try to create a resource
797 1999-04-21 a sun <asun@hecate.darksunrising.blah>
799 * libatalk/adouble/ad_open.c, ad_read.c/ad_write.c, ad_flush.c:
800 turned the mmapped header stuff into and #ifdef
801 USE_MMAPPED_HEADERS option.
803 * libatalk/adouble/ad_open.c (ad_header_read): darn. i forgot that
804 the hfs fs doesn't currently have mmappable header files. rather
805 than implement that, i just reverted back to a modified version
806 of the old way of reading headers.
808 1999-04-15 a sun <asun@hecate.darksunrising.blah>
810 * etc/afpd/fork.c (afp_bytelock): byte locks become read locks on
813 (afp_openfork): deal with read-only data forks that don't have
814 corresponding .AppleDouble files. we can't really do anything with
815 deny locks in this case. just make sure that read locks are set.
817 * etc/afpd/file.c (getfilparams): oops. got the parentheses wrong
818 around FILPBIT_FINFO.
820 * etc/afpd/fork.c (afp_read): as we share open files now, check
821 for fork type against of_flags instead of just checking to see if
822 the file is open. this fixes a bug that caused resource forks to
823 get filled with data fork information.
825 1999-04-09 a sun <asun@porifera.zoology.washington.edu>
827 * sys/generic/Makefile: AFP/tcp now compiles on irix with quota
830 1999-04-09 a sun <asun@mead1.u.washington.edu>
832 * sys/generic/Makefile: AFP/tcp now compiles on aix with quota
835 1999-04-09 a sun <asun@saul6.u.washington.edu>
837 * sys/generic/Makefile: AFP/tcp part now compiles on digital unix
838 with quota support enabled.
840 1999-04-08 a sun <asun@hecate.darksunrising.blah>
842 * etc/afpd/volume.c, fork.c, file.c, directory.c, filedir.c,
843 config/AppleVolumes.default: added read-only volume option.
845 * etc/afpd/quota.c (uquota_getvolspace): modified for os x
848 1999-04-03 a sun <asun@hecate.darksunrising.blah>
850 * bin/megatron/macbin.c (bin_write): only pad if we need to do so
851 (from <jk@espy.org>).
852 (bin_header_write/read): fixed up screwed up file date
853 generation/reading with macbinary files.
855 * bin/megatron: changed all of the bcopy/bzero/bcmp's to
856 memcpy/memset/memcmp's. added macbinary III support.
858 * bin/megatron/macbin.c (bin_open): added --stdout as an option so
859 that we can stream macbinary file creation to stdout.
861 * bin/megatron/megatron.c: incorporated information patch (--header
862 and --macheader) from <fmorton@base2inc.com>.
865 1999-04-02 a sun <asun@hecate.darksunrising.blah>
867 * etc/afpd: whee! there are no more bcopy/bcmp's in this
870 * libatalk: changed the bcopy/bzero's to memcpy/memset's. added in
871 dummy ints for some of the files that can get compiled to empty
872 objects. check for the type of msync() available as well.
874 1999-03-31 a sun <asun@hecate.darksunrising.blah>
876 * INSTALL/README.GENERIC: added information for a generic
877 architecture. It includes the information needed to get netatalk
878 to compile on a random unix platform.
880 * etc/afpd/quota.c: moved the quota stuff here so that we can
881 #ifdef it out on a machine without quota support.
883 1999-03-30 a sun <asun@hecate.darksunrising.blah>
885 * libatalk/adouble/ad_lock.c: reference count the locked ranges as
886 well. this prevents multiple read locks on the same byte range
887 from disappearing if one user disappears.
889 (ad_fcntl_lock): here are the current rules for file
891 1) if there's a appledouble header, we use the beginning
892 of that for both data and resource forks.
893 2) if there isn't, we use the end of the data fork (or past the
894 end on 64-bit machines)
896 1999-03-28 a sun <asun@hecate.darksunrising.blah>
898 * libatalk/adouble/ad_open.c (ad_refresh): okay. mmapping the
899 appledouble entry parts is done.
901 * libatalk/cnid/cnid_add.c (cnid_add): prevent anyone from adding
904 1999-03-27 a sun <asun@hecate.darksunrising.blah>
906 * libatalk/adouble/ad_open.c (ad_refresh): started making the
907 appledouble header parsing more generic so that we can read in
908 arbitrary appledouble header files. i just mmap the parts that we
911 1999-03-22 a sun <asun@hecate.darksunrising.blah>
913 * etc/afpd/file.c (afp_copyfile): return the correct error
914 response on a failed copy. also, error if the file is already open
915 to prevent problems with locks. we really need to ad_lock
918 1999-03-21 a sun <asun@hecate.darksunrising.blah>
920 * etc/afpd/volume.c (readvolfile): switched volume options to
921 using ':' as a delimiter as that's one of the characters that's
922 not allowed as part of a mac filename.
923 (volset): changed access to allow/deny
925 * etc/afpd/auth.c (noauth_login): make sure that the username gets
928 1999-03-17 a sun <asun@hecate.darksunrising.blah>
930 * NOTE to myself: jeremy allison said that samba uses refcounts to
931 prevent close() from killing all the byte locks. so, i've started
932 converting afpd to using refcounting as well. luckily, we already
933 have of_findname, so we know when files are open. in cases where
934 files are already open, this will replace an ad_open with a lookup
937 * etc/afpd/directory.c (getdirparams/getfilparams): check for
938 NULL names when getting directory/file names.
940 * etc/afpd/directory.{c,h} (DIRDID_ROOT/DIRDID_ROOT_PARENT): make
941 sure these are always in network byte order.
943 1999-03-15 a sun <asun@hecate.darksunrising.blah>
945 * etc/afpd/fork.c (afp_openfork): okay, fixed the file
946 synchronization bits. now, we use two bytes to do the read/write
947 stuff. when access is needed, a read lock is attempted. if a deny
948 lock is needed, a write lock is attempted. we even handle the
949 access None mode now by saving the access modes.
951 * etc/afpd/fork.h (AFPFORK_ACCMASK): started adding bits so that
952 we can obey all of the file synchronization rules.
954 * etc/afpd/fork.c (afp_bytelock): got the meaning of the clearbit
955 reversed. with helios lantest's lock/unlock 4000 times test, it
956 looks like i get <1 second overhead on my machine when using byte
957 locks. NOTE: this will get a little worse when serialization gets
958 added. in addition, 0x80000000 only works for 64-bit machines. i
959 reserve the last allowable bit for 32-bit machines.
961 actually, both 64-bit machines and 32-bit machines use 0x7FFFFFFF
962 now as i'm able to trigger a kernel oops in linux with the 64-bit
965 (afp_read/afp_write): make sure to use the same offset when doing
968 1999-03-14 a sun <asun@hecate.darksunrising.blah>
970 * libatalk/adouble/ad_lock.c: i went and implemented a bunch of
971 stuff to get byte locks to work correctly (except for the
972 serialization) only to discover that files that use byte locks
973 also request a deny write mode. luckily, byte locks only cover up
974 to 0x7FFFFFFF. so, i'll just use 0x80000000 for the
975 synchronization locks.
977 1999-03-08 a sun <asun@hecate.darksunrising.blah>
979 * sys/{*bsd,ultrix,solaris,linux}/Makefile (depend): surround
980 DEPS with double quotes so that multiple defines work.
982 1999-03-06 a sun <asun@hecate.darksunrising.blah>
984 * libatalk/adouble/ad_write.c, ad_read.c: make off off_t in size.
986 * libatalk/adouble/ad_flush.c (adf_fcntl_relock), ad_lock.c
987 (adf_fcntl_locked): okay. fcntl locks now check against multiple
988 programs on the same machine opening the same file. current
989 problems with the mechanism that i don't want to fix unless
991 1) there's a race during the relock phase. serialization
993 2) it assumes that each fd only locks a single contiguous
994 range at a time. keeping a list of locked ranges would
997 also, i changed the default to using fcntl locks. if the above two
998 are really necessary, i'll probably switch to something a little
999 more featureful like the berkeley db's lock manager.
1001 (note to myself: stuff new from asun2.1.3 from 1999-03-03)
1003 1999-03-05 a sun <asun@hecate.darksunrising.blah>
1005 * libatalk/adouble/ad_lock.c: got rid of the endflag checks to
1006 reduce system calls a little.
1008 * etc/afpd/auth.c (getname): do a case-insensitive compare on the
1011 * sys/solaris/Makefile: added 64-bit solaris patch from
1012 <jason@pattosoft.com.au>.
1014 1999-03-03 a sun <asun@hecate.darksunrising.blah>
1016 * include/netatalk/endian.h: make solaris 2.5 complain less.
1018 * bin/adv1tov2/adv1tov2.c, libatalk/adouble/ad_open.c (ad_v1tov2):
1019 fixed a couple problems with the adv1tov2 stuff.
1021 1999-02-26 a sun <asun@hecate.darksunrising.blah>
1023 * etc/afpd/volume.c (afp_openvol): erk. the volume password gets
1024 aligned along an even boundary.
1026 1999-02-23 a sun <asun@hecate.darksunrising.blah>
1028 * etc/afpd/volume.c (readvolfile): added volume password support.
1030 1999-02-14 a sun <asun@hecate.darksunrising.blah>
1032 * etc/atalkd/multicast.c (addmulti): added FreeBSD's data-link
1033 layer multicast setting bits.
1035 * libatalk/adouble/ad_open.c (ad_v1tov2): make sure to stick in
1036 prodos field info when converting.
1038 * rc.atalk.redhat: added pidof checking in case the machine
1039 crashes. also added rc.atalk.wrapper to the redhat rc script
1042 1999-02-07 a sun <asun@hecate.darksunrising.blah>
1044 * etc/afpd/fork.c (afp_setforkparams): make sure to do better
1045 error detection here and more fully report error conditions.
1047 (flushfork): make sure to flush the header if necessary (rfork
1048 length changed or modification date needs to be set).
1050 (afp_write): ugh. this wasn't returning the right values for the
1051 last byte written if the endflag was set. in addition, it was
1052 setting the modification date. that should be left to FPCloseFork
1053 and FPFlush(Fork). this fixes a problem that shows up with
1056 NOTE: as of now, changes to the rfork info are the only things
1057 that aren't flushed immediately when altered.
1059 * etc/afpd/fork.c (get/setforkparams), ofork.c: what ugliness. we
1060 need to report bitmap errors if we try to fiddle with the wrong
1061 fork. i added an of_flags field to keep things sorted.
1063 * libatalk/adouble/ad_open.c (ad_v1tov2): oops. in all of the
1064 movement, i forgot to make sure that the pre-asun2.2.0 features
1067 1999-02-06 a sun <asun@hecate.darksunrising.blah>
1069 * etc/afpd/filedir.c (afp_moveandrename): make sure to save the
1070 old name even when it's a directory.
1072 * globals.h: added oldtmp and newtmp to AFPObj to reduce the
1073 number of buffers used. use these when needed in afp_* calls.
1075 * etc/afpd/directory.c (deletecurdir): delete stray .AppleDouble
1076 files when deleting a directory.
1078 1999-02-05 a sun <asun@hecate.darksunrising.blah>
1080 * etc/afpd/file.c (afp_createfile): fixed a hard create error
1083 * fixed up a few bobbles in the netatalk-990130 merge.
1085 * the noadouble option should be pretty much implemented. here's
1087 when a directory is created, the corresponding
1088 .AppleDouble directory is not.
1090 comments, dates, and other file attributes will get
1091 silently ignored and not result in the creation of a new
1092 .AppleDouble directory.
1094 however, if anything possessing a resource fork is copied
1095 into that directory, the corresponding .AppleDouble
1096 directory will be created. once this happens, any
1097 other file in the directory can acquire an AppleDouble
1098 header file in the future.
1100 1999-02-03 a sun <asun@hecate.darksunrising.blah>
1102 * merged in the rest of netatalk-990130.
1104 * sys/solaris: merged in netatalk-990130 changes.
1106 * etc/afpd/file.c,fork.c,desktop.c libatalk/adouble/ad_sendfile.c:
1107 tested and fixed the sendfile bits on linux. it looks like linux
1108 doesn't permit socket -> file sendfiles yet.
1110 * etc/afpd/fork.c (afp_read): we can't stream FPRead's with
1111 newline character checking on.
1113 1999-02-02 a sun <asun@hecate.darksunrising.blah>
1115 * etc/afpd/fork.c (afp_flush), ofork.c (of_flush): FPFlush
1116 operates on a per-volume basis.
1118 1999-01-31 a sun <asun@hecate.darksunrising.blah>
1120 * etc/afpd/file.c (copyfile): sendfile bits added here also.
1122 * etc/afpd/desktop.c (afp_geticon): added sendfile bits here as
1125 * libatalk/adouble/ad_sendfile.c (ad_writefile/ad_readfile):
1126 implemented sendfile bits. currently, there's support for linux
1127 and freebsd. unfortunately, freebsd's implementation doesn't allow
1128 file->file or socket->file copies. bleah.
1130 1999-01-30 a sun <asun@hecate.darksunrising.blah>
1132 * etc/afpd/file.c (setfilparams), directory (setdirparams),
1133 volume.c (volset): added in the beginnings of a NOADOUBLE option
1134 for those that don't want AppleDouble headers to be created by
1135 default. it doesn't really work that well right now.
1137 1999-01-29 a sun <asun@hecate.darksunrising.blah>
1139 * libatalk/adouble/ad_open.c (ad_v1tov2): separated v1tov2 bits
1140 from ad_refresh. made broken v1 header checking the default. fixed
1141 broken v1 date checking. now, it just checks to see if the v1
1142 MDATE is > than st_mtime by 5 years.
1144 * etc/afpd/directory.c: make date setting alter directory dates as
1147 1999-01-24 a sun <asun@hecate.darksunrising.blah>
1149 * etc/afpd/afp_dsi.c (alarm_handler,afp_over_dsi): added a
1150 CHILD_RUNNING flag to prevent afpd from timing out on long copies.
1152 1999-01-21 a sun <asun@hecate.darksunrising.blah>
1154 * etc/afpd/volume.c (afp_openvol), libatalk/cnid/cnid_nextid.c:
1155 shift the beginning of the fake did's if necessary.
1157 * libatalk/adouble/ad_open.c (ad_refresh): fixed screwed-up date
1160 * libatalk/cnid/cnid_add.c,cnid_open.c,cnid_close.c: made some
1161 changes so that the CNIDs will still work even when the .AppleDB
1162 directory is read-only. if you're still allowed to create files on
1163 these volumes, you'll get a temporary id for those.
1165 1999-01-20 a sun <asun@hecate.darksunrising.blah>
1167 * libatalk/cnid/{cnid_close.c,cnid_open.c}: added bits so that log
1168 files get cleared out on cnid_close() if it's the last user for a
1171 1999-01-18 a sun <asun@hecate.darksunrising.blah>
1173 * etc/afpd/volume.c (afp_setvolparams): added FPSetVolParms. this
1174 allows us to set the backup date on the server.
1176 * etc/afpd/file.c (afp_exchangefiles): whee! we now have
1177 FPExchangeFiles. we also have FPDeleteID, so that only leaves us
1178 with FPCatSearch to do.
1180 1999-01-16 a sun <asun@hecate.darksunrising.blah>
1182 * sys/solaris/ddp.c (ddp_rput): added a couple htons()'s for the
1185 1999-01-11 a sun <asun@hecate.darksunrising.blah>
1187 * etc/afpd/volume.c (volset, afp_openvol): you can now specify a
1188 dbpath= in AppleVolumes.* for the CNID database.
1190 * libatalk/adouble/ad_open.c (ad_refresh): if we build in an
1191 appledouble v1 environment, turn on v1compat by default.
1193 1999-01-10 a sun <asun@hecate.darksunrising.blah>
1195 * libatalk/adouble/ad_open.c (ad_refresh): added v1compat option
1196 to handle broken ad headers.
1198 * etc/afpd/file.c (setfilparams): we need to make sure that we
1199 flush the file if we've created it even if there's an error. the
1200 magic number/version don't get saved if we don't.
1202 * etc/afpd/appl.c, etc/afpd/directory.c, etc/afpd/desktop.c: added
1205 1998-12-30 a sun <asun@hecate.darksunrising.blah>
1207 * etc/afpd/volume.c (afp_openvol): got rid of unnecessary v_did.
1209 * etc/afpd/file.c (afp_resolveid, afp_createid): added these two
1212 * well, what do you know? the cnid stuff compiles in.
1214 1998-12-29 a sun <asun@hecate.darksunrising.blah>
1216 * etc/afpd/fork.c, directory.c, file.c, filedir.c, volume.c,
1217 enumerate.c: added in stubs for CNID database conditional on
1218 AD_VERSION > AD_VERSION1.
1220 * etc/afpd/nls/makecode.c: added iso8859-1 mapping.
1222 1998-12-27 a sun <asun@hecate.darksunrising.blah>
1224 * bin/adv1tov2/adv1tov2.c: turn non-printable ascii characters
1225 into hex code as well.
1227 1998-12-21 a sun <asun@hecate.darksunrising.blah>
1229 * etc/afpd/auth.c: fixed FPChangePW for 2-way randnums.
1231 1998-12-15 a sun <asun@hecate.darksunrising.blah>
1233 * etc/afpd/fork.c (read_file/write_file): do crlf translation in
1234 both directions so that we can recover from problems if
1237 1998-12-14 a sun <asun@hecate.darksunrising.blah>
1239 * bin/adv1tov2/adv1tov2.c: small utility program that recursively
1240 descends a directory and converts everything it sees into
1243 1998-12-13 a sun <asun@hecate.darksunrising.blah>
1245 * libatalk/adouble/ad_flush.c (ad_rebuild_header): moved the
1246 header rebuilding here so that ad_refresh can use it.
1248 * libatalk/adouble/ad_open.c (ad_refresh): added locking to v1->v2
1251 * bin/megatron/asingle.c: yuk. removed all of
1252 the duplicate stuff here and had it use the #defines in adouble.h.
1254 * libatalk/adouble/ad_open.c (ad_refresh): finished v1 -> v2
1255 conversion routine. we still need a shortname creator and a cnid
1256 database for the v2 features to be useful.
1258 1998-12-11 a sun <asun@hecate.darksunrising.blah>
1260 * libatalk/adouble/ad_open.c (ad_refresh): punt if we get a file
1261 that we don't understand.
1263 1998-12-10 a sun <asun@hecate.darksunrising.blah>
1265 * etc/afpd/desktop.c (utompath,mtoupath): simplified the codepage
1266 stuff. also made sure to lower/upper the 8-bit characters as
1269 * libatalk/util/strdicasecmp.c: the casemapping had a few wrong
1272 * etc/afpd/fork.c (getforkparams): make sure that the ROpen/DOpen
1273 attribute bits are in the correct byte ordering.
1275 1998-12-09 a sun <asun@hecate.darksunrising.blah>
1277 * etc/afpd/volume.c (volset): made prodos an option to options=
1278 flag. also added crlf as an option.
1280 * libatalk/adouble/ad_open.c (ad_refresh): fix up times if
1282 (ad_open): deal correctly with 0-length files by treating them as
1285 * etc/afpd/volume.c (getvolparams), file.c (get/setfilparams),
1286 fork.c (getforkparams), directory.c (get/setdirparams): finished
1287 adding appledouble version 1 and 2 date conversion. also added
1290 * etc/afpd/volume.c (getvolparams): make sure to flush the header
1291 file if we needed to fiddle with it.
1293 * libatalk/adouble/ad_date.c, ad_attr.c: date/attribute
1294 setting/retrieval code.
1296 * libatalk/adouble/ad_open.c (ad_open): initialize date
1297 structures here instead of elsewhere.
1299 1998-12-07 a sun <asun@hecate.darksunrising.blah>
1301 * etc/afpd/directory.c, fork.c, volume.c, file.c: added unix<->afp
1302 time conversion code.
1304 1998-12-05 a sun <asun@hecate.darksunrising.blah>
1306 * etc/afpd/volume.c (volset): changed prodos setting to
1309 1998-12-04 a sun <asun@hecate.darksunrising.blah>
1311 * etc/afpd/volume.c (volset): okay. you now have the following
1312 options to casefold: lowercase,uppercase,xlatelower,xlateupper
1313 tolower -> lowercases everything in both directions
1314 toupper -> uppercases everything in both directions
1315 xlatelower -> client sees lowercase, server sees uppercase
1316 xlateupper -> client sees uppercase, server sees lowercase
1318 NOTE: you only should use this if you really need to do so. this
1319 and the codepage option can cause mass confusion if applied
1320 blindly to pre-existing directories.
1322 1998-12-03 a sun <asun@hecate.darksunrising.blah>
1324 * etc/afpd/desktop.c (utompath,mtoupath), etc/afpd/volume.h: added
1325 multiple options to casefold. bits 0 and 1 deal with MTOU, and
1326 bits 2 and 3 deal with UTOM. i did it that way so that you can
1327 casefold in one direction only or in both directions if
1328 desired. needless to say, setting both bits for UTOM or MTOU
1329 doesn't make any sense. right now, toupper takes precedence in
1330 MTOU, and tolower takes precedence in UTOM.
1332 1998-12-02 a sun <asun@hecate.darksunrising.blah>
1334 * etc/afpd/afp_options.c (afp_options_*): added -uampath and
1335 -codepagepath to the list of available options. they specify the
1336 directories to look for uam modules and codepages,
1337 respectively. currently, -uampath doesn't do anything.
1339 * etc/afpd/volume.c (readvolfile): spruced up options to
1340 AppleVolumes files. now you can have mtoufile=<codepage.x>,
1341 utomfile=<codepage.y>, casefold=<num> for volumes.
1343 * etc/afpd/desktop.c (utompath,mtoupath): added
1344 codepage/casefolding support. casefold is currently an int that
1345 could have multiple actions. right now, i just lowercase in
1346 mtoupath and uppercase in utompath.
1348 * etc/afpd/ofork.c (of_alloc, of_findname, of_rename): added vol
1349 as an additional specifier so that we don't have problems with
1350 the same path names on multiple volumes.
1352 1998-11-29 a sun <asun@purgatorius.zoology.washington.edu>
1354 * etc/afpd/volume.c (getvolparams): added AFP2.1 volume attribute
1357 1998-11-24 a sun <asun@purgatorius.zoology.washington.edu>
1359 * etc/atalkd/config.c (readconf, getifconf): added IFF_SLAVE to
1360 prevent atalkd from trying to use a slave channel.
1362 1998-11-23 a sun <asun@purgatorius.zoology.washington.edu>
1364 * etc/afpd/volume.c (getvolparams): we shouldn't set the custom
1365 icon bit by default on the root directory. that screws up pre-OS 8
1368 1998-11-19 a sun <asun@purgatorius.zoology.washington.edu>
1370 * libatalk/dsi/dsi_getsess.c (dsi_getsession): ignore SIGPIPE's
1371 so that we can gracefully shut down the server side.
1373 * etc/afpd/afp_dsi.c (afp_over_dsi), etc/afpd/afp_options.c,
1374 libatalk/dsi/dsi_getsess.c (dsi_getsession),
1375 libatalk/asp/asp_getsess.c (asp_getsession): made the tickle timer
1376 interval an option (-tickleval <sec>).
1378 * etc/afpd/afp_dsi.c (afp_dsi_timedown): added child.die so that
1379 we don't stomp on a shutdown timer. libatalk/dsi/dsi_read.c,
1380 dsi_write.c both save/restore the old timer, so they don't really
1381 care what the actual value is.
1383 1998-11-18 a sun <asun@purgatorius.zoology.washington.edu>
1385 * due to the recent obsession with bug fixing and low-level dsi
1386 cleanups, i've decided that this should really be asun2.1.1
1387 instead of asun2.1.0a.
1389 1998-11-17 a sun <asun@purgatorius.zoology.washington.edu>
1391 * libatalk/dsi/dsi_tcp.c (dsi_tcp_open): moved the afpd connection
1392 announcement here from etc/afpd/afp_dsi.c.
1394 * libatalk/dsi/dsi_stream.c: moved all of the read/write functions
1395 into here as they're pretty generic. now, the protocol specific
1396 stuff only handles open and close.
1398 * etc/afpd/fork.c (afp_read/write), desktop.c (afp_geticon),
1399 file.c (copyfile), include/atalk/dsi.h (dsi_writefile/readfile):
1400 added initial stubs for sendfile support. i still need to go
1401 through and calculate the appropriate offsets to use.
1403 * libatalk/dsi/dsi_read.c, dsi_write.c: disable the interval timer
1404 instead of just ignoring it.
1406 * etc/afpd/desktop.c (afp_geticon), etc/afpd/fork.c (afp_read),
1407 libatalk/dsi/dsi_read.c (dsi_readinit, dsi_readinit): modified the
1408 dsi_read interface to return errors so that i can kill things
1411 1998-11-16 a sun <asun@purgatorius.zoology.washington.edu>
1413 * libatalk/dsi/dsi_tcp.c (dsi_tcp_send/dsi_tcp_write): erk. read()
1414 and write() treat a return of 0 differently.
1416 1998-11-16 a sun <asun@hecate.darksunrising.blah>
1418 * libatalk/dsi/dsi_read.c (dsi_readinit): make sure to stick in
1421 1998-11-15 a sun <asun@purgatorius.zoology.washington.edu>
1423 * etc/afpd/fork.c (afp_read): re-ordered some of the checks here
1424 to return earlier on 0-sized files.
1426 1998-11-13 a sun <asun@purgatorius.zoology.washington.edu>
1428 * etc/afpd/afp_dsi.c (afp_over_dsi): moved the dsi->noreply toggle
1429 check to here from dsi_cmdreply.
1431 1998-11-11 a sun <asun@purgatorius.zoology.washington.edu>
1433 * etc/atalkd/zip.c (zip_packet): make sure to copy multicast zone
1434 back out. (reported by Michael Zuelsdorff <micha@dolbyco.han.de>)
1436 1998-11-09 a sun <asun@purgatorius.zoology.washington.edu>
1438 * etc/afpd/directory.c (getdirparams): changed unknown bit reply
1439 code to AFPERR_BITMAP instead of AFPERR_PARAM.
1441 1998-11-06 a sun <asun@purgatorius.zoology.washington.edu>
1443 * etc/afpd/enumerate.c (afp_enumerate), directory.c (renamedir):
1444 fixed a couple of failed realloc leaks.
1446 * etc/afpd/filedir.c (afp_moveandrename, afp_rename): added bits
1447 to deal with case-insensitive, case-preserving filesystems.
1449 1998-10-30 a sun <asun@purgatorius.zoology.washington.edu>
1451 * etc/afpd/auth.c: fixed randnum password changing check.
1453 1998-10-27 a sun <asun@purgatorius.zoology.washington.edu>
1455 * etc/atalkd/main.c: add a check for SIOCATALKDIFADDR if
1458 * etc/afpd/volume.c (getvolparams): ad_open had the wrong
1461 * etc/afpd/unix.c (setdeskowner): added a little extra space to
1462 prevent buffer overflows here.
1464 1998-10-26 a sun <asun@purgatorius.zoology.washington.edu>
1466 * sys/linux/Makefile: fixed PAM message.
1468 * sys/solaris/Makefile: make failure to ln -s a non-fatal error.
1470 * etc/papd/session.c, bin/pap/pap.c: changed sequence count to
1471 wrap from 0 -> 1 instead of from 0xFFFF -> 1.
1473 * etc/afpd/filedir.c (afp_rename, afp_moveandrename): actually, we
1474 should check against the entire unix name.
1476 1998-10-21 a sun <asun@purgatorius.zoology.washington.edu>
1478 * etc/afpd/filedir.c (afp_rename, afp_moveandrename): make sure
1479 to check against mac name.
1481 1998-10-19 a sun <asun@purgatorius.zoology.washington.edu>
1483 * etc/afpd/auth.c (afp_changepw): make password changing deal
1484 correctly with "real" user names. also, moved seteuid() to before
1485 the pam_authenticate() bit as shadow passwords need that.
1487 * etc/afpd/enumerate.c (afp_enumerate): make sure to check the mac
1488 name against MACFILELEN.
1490 1998-10-16 a sun <asun@purgatorius.zoology.washington.edu>
1492 * etc/afpd/file.c (renamefile), filedir.c (afp_rename),
1493 directory.c (renamedir): use strndiacasecmp() for AFPERR_SAMEOBJ
1494 checks. also make sure test occurs before checking to see if the
1497 1998-10-15 a sun <asun@purgatorius.zoology.washington.edu>
1499 * etc/afpd/auth.c (afp_changepw): fixed a bit of brain damage. i
1500 forgot that password changing needs root privileges to work.
1502 * etc/afpd/auth.c (PAM_conversation): the supplied code was
1503 incorrect. i cleaned it up a bit.
1505 * sys/linux/Makefile: fixed the installation bits.
1507 1998-10-14 a sun <asun@purgatorius.zoology.washington.edu>
1509 * etc/afpd/auth.c (afp_changepw): don't kill the connection here
1510 if there's a problem.
1512 1998-10-10 a sun <asun@purgatorius.zoology.washington.edu>
1514 * etc/afpd/enumerate.c, fork.c, ofork.c, file.c,
1515 globals.h, directory.c, auth.c: #defined MACFILELEN and used
1516 that. also made sure that files > MACFILELEN never show up.
1518 1998-09-25 a sun <asun@purgatorius.zoology.washington.edu>
1520 * etc/{afpd,papd,atalkd}/bprint.c (bprint): got rid of the
1521 spurious pointer dereference.
1523 * etc/afpd/ofork.c (of_alloc/of_rename): allocate the max mac file
1524 length so that we don't need to realloc.
1526 * etc/afpd/filedir.c (afp_rename, afp_moveandrename): make sure to
1527 return AFPERR_BUSY if the dest has an ofork open.
1529 * etc/afpd/file.c (renamefile), directory.c (renamedir), filedir.c
1530 (afp_rename): return AFPERR_SAMEOBJ if source == dest
1532 1998-09-21 a sun <asun@purgatorius.zoology.washington.edu>
1534 * etc/afpd: went through and looked for places that needed to use
1535 curdir instead of dir. i think i have them all right now.
1537 * etc/afpd/filedir.c (afp_moveandrename): wasn't keeping track of
1538 curdir correctly. what this really means is that cname should be
1539 fixed to return everything it changes as opposed to changing a
1542 1998-09-19 a sun <asun@purgatorius.zoology.washington.edu>
1544 * etc/afpd/config.c (configinit): do the right thing if
1545 AFPConfigInit fails.
1547 1998-09-18 a sun <asun@purgatorius.zoology.washington.edu>
1549 * etc/afpd/config.c (ASP/DSIConfigInit, configfree): how
1550 embarrassing. i wasn't doing refcounts correctly.
1552 1998-09-17 a sun <asun@purgatorius.zoology.washington.edu>
1554 * etc/afpd/nfsquota.c (getnfsquota): ultrix uses dqb_bwarn instead
1557 * sys/ultrix/Makefile: ultrix understands the old rquota format.
1559 * etc/afpd/ofork.c (of_findname): erk. forgot to only search in
1560 the current directory.
1561 (of_rename): erk. changed it to handle renaming a file that has
1562 been opened multiple times.
1564 * etc/atalkd: made sure that if you don't specify -router, things
1565 are as they were before.
1567 1998-09-13 a sun <asun@purgatorius.zoology.washington.edu>
1569 * etc/afpd/status.c (status_flags): forgot to turn on password
1570 setting if randnum passwords are being used.
1572 1998-09-11 a sun <asun@purgatorius.zoology.washington.edu>
1574 * etc/afpd/unix.c (setdirmode): erk. make sure only to setgid on
1577 * bin/aecho/aecho.c (main): incorporated -c <num> (ala ping) patch
1578 from "Fred Lindberg" <lindberg@id.wustl.edu>.
1580 1998-09-03 a sun <asun@purgatorius.zoology.washington.edu>
1582 * etc/afpd/directory.c (afp_closedir, afp_opendir): added these in
1583 for more AFP 2.0 compliance. unfortunately, apple's appleshare
1584 client doesn't like non-fixed directory ids.
1586 1998-08-31 a sun <asun@purgatorius.zoology.washington.edu>
1588 * etc/afpd/volume.c (accessvol): the accessible volume list can
1589 now be controlled by groups and usernames. just use something of
1590 the following form: @group,name,name2,@group2,name3
1592 NOTE: you can't have any spaces, and the parser forces you to
1593 include all options. in this case, there are some apple II options
1594 that need to be entered. they need to go away soon anyway.
1596 * etc/afpd/auth.c (getname): oops. i forgot to copy the gecos
1597 field into a temporary buffer before calling strtok.
1599 1998-08-29 a sun <asun@hecate.darksunrising.blah>
1601 * etc/atalkd/main.c (as_timer), rtmp.c (rtmp_delzones): when the
1602 last router on an interface goes down, we need to delete the
1603 interface's zone table.
1605 1998-08-28 a sun <asun@purgatorius.zoology.washington.edu>
1607 * etc/afpd/status.c (afp_getsrvrinfo): although it's never used,
1608 i've added this in to increase AFP compliance.
1610 * etc/afpd/auth.c (afp_getuserinfo): added FPGetUserInfo -- this
1611 should make afpd compatible with OS 8.5's Nav Services.
1613 * etc/atalkd/config.c,main.c: -router now specifies router mode
1614 with any number of interfaces.
1616 1998-08-27 a sun <asun@purgatorius.zoology.washington.edu>
1618 * etc/atalkd/main.c (as_timer): well, i figured out how to set up
1619 atalkd as a single-interface router. now, you can get zones with
1620 only single interfaces! i'm only waiting on wes for the approved
1621 configuration toggle.
1623 1998-08-26 a sun <asun@purgatorius.zoology.washington.edu>
1625 * libatalk/adouble/ad_lock.c, include/atalk/adouble.h: turned the
1626 ADLOCK_* into real #defines and added translations in the
1627 lock-type specific functions. this should make it easier to
1628 recompile things without screwing up.
1630 1998-08-26 a sun <asun@hecate.darksunrising.blah>
1632 * etc/atalkd/nbp.c (nbp_packet): forgot to handle another local
1635 1998-08-25 a sun <asun@hecate.darksunrising.blah>
1637 * etc/afpd/status.c (status_server): changed status_server to
1638 use only the obj part of obj:type@zone-style names.
1640 * etc/atalkd/nbp.c (nbp_packet): unregistering wasn't handling
1641 zones properly. it was matching on anything but the actual zone.
1643 1998-08-18 a sun <asun@purgatorius.zoology.washington.edu>
1645 * etc/afpd/auth.c (clrtxt_login): added pam_set_time(PAM_TTY) so
1646 that solaris' pam session setup doesn't crap out.
1648 1998-08-17 a sun <asun@purgatorius.zoology.washington.edu>
1650 * etc/atalkd/multicast.c (zone_bcast): fixed to do the right thing
1651 with zip multicast info.
1653 1998-08-15 a sun <asun@purgatorius.zoology.washington.edu>
1655 * etc/afpd/nfsquota.c: made the old-style rquota fields dependent
1656 upon -DUSE_OLD_RQUOTA and defined that for sunos. also included
1657 <sys/time.h> for ultrix breakage.
1659 1998-08-13 a sun <asun@purgatorius.zoology.washington.edu>
1661 * etc/afpd/filedir.c (afp_rename), etc/afpd/ofork.c (of_rename): i
1662 knew that speeding up of_findname would be useful. in any case, i
1663 discovered the source of yet another small AFP non-compliance that
1664 was confusing WordPerfect. on an afp_rename, we also need to
1665 rename the corresponding ofork. i've added an of_rename() to do
1668 1998-08-13 a sun <asun@hecate>
1670 * etc/afpd/ofork.c (of_dealloc,of_alloc): sped up dealloc by
1671 sticking refnum in ofork.
1673 1998-08-12 a sun <asun@hecate>
1675 * etc/afpd/fork.c (afp_openfork): added already open attribute
1678 * etc/afpd/ofork.c: added a hashed of_findname.
1680 1998-08-06 a sun <asun@purgatorius.zoology.washington.edu>
1682 * etc/afpd/fork.c (afp_openfork): fixed a problem with opening
1683 forks from read-only non-appledouble media.
1685 1998-07-23 a sun <asun@purgatorius.zoology.washington.edu>
1687 * etc/afpd/afs.c (afs_getvolspace), etc/afpd/volume.c
1688 (getvolspace): modified them to treak afs like the other
1689 getvolspaces w.r.t. VolSpace.
1691 1998-07-21 a sun <asun@purgatorius.zoology.washington.edu>
1693 * etc/afpd/unix.c (mountp): erk. i forgot that symlinks are often
1694 used for filesystems. nfs quotas sometimes failed as a
1695 result. that's fixed now.
1697 1998-07-20 a sun <asun@purgatorius.zoology.washington.edu>
1699 * etc/afpd/auth.c (login): added a -DRUN_AS_USER #define so that
1700 it's simple to run the server process as a non-root user.
1702 1998-07-17 a sun <asun@purgatorius.zoology.washington.edu>
1704 * etc/afpd/nfsquota.c (callaurpc, getnfsquota), volume.h: it turns
1705 out that i was opening lots of sockets with callaurpc. now, the
1706 socket gets saved and reused.
1708 NOTE: quota-1.55-9 from redhat 5.x doesn't return the correct size
1709 for rquota's bsize. unless fixed, rquota will report incorrect
1712 1998-07-08 a sun <asun@purgatorius.zoology.washington.edu>
1714 * etc/afpd/uam/README: added some preliminary ideas on a
1715 plug-in uam architecture. in addition, this should allow arbitrary
1716 afp function replacement. eventually, auth.c should get a
1719 1998-07-07 a sun <asun@purgatorius.zoology.washington.edu>
1721 * etc/afpd/nfsquota.c: added headers and redefined a couple
1722 structure fields so that sunos4 compiles.
1724 * libatalk/compat/rquota_xdr.c: compile if we're using glibc <
1725 2. this should get redhat 4.2 machines. NOTE: they're still
1726 missing librpcsvc.a, so they'll need to remove that from the
1729 1998-07-06 a sun <asun@purgatorius.zoology.washington.edu>
1731 * libatalk/compat/rquota_xdr.c: it turns out that solaris is
1732 missing a couple functions needed for rquota support. here they
1735 * etc/afpd/unix.c (mountp): fixed the nfs detection for
1736 solaris. we still need bsd and ultrix.
1738 1998-07-05 a sun <asun@hecate>
1740 * include/atalk/adouble.h: marked out space for appledouble v2.
1742 1998-07-04 a sun <asun@hecate>
1744 * etc/afpd: plugged up some ad_open leaks. made sure that we don't
1745 get negative numbers for length fields and such.
1747 1998-07-04 a sun <asun@hecate>
1749 * etc/afpd/nfsquota.c (getnfsquota): added nfs rquota
1750 support. Robert J. Marinchick <rjm8m@majink1.itc.virginia.edu>
1751 provided the initial bits from the bsd quota program.
1753 * etc/afpd/unix.c (getquota): made getquota call getfsquota or
1754 getnfsquota depending upon the type of fs.
1756 * etc/afpd/unix.c (mountp/special): munged mountp and
1757 special to return either the nfs mount point or the fs
1758 device. set the vol->v_nfs flag if it's nfs.
1760 * etc/afpd/volume.c (getvolspace): xbfree and xbtotal will now
1761 honor results returned from uquota_getvolspace.
1763 1998-06-29 a sun <asun@purgatorius.zoology.washington.edu>
1765 * etc/afpd/file.c (copyfile): mmapping the file copy only helps on
1766 multiple copies. as that's not the case here, i've reverted to
1767 just doing read + write.
1769 1998-06-28 a sun <asun@purgatorius.zoology.washington.edu>
1771 * sys/linux/Makefile: fixed the redhat-style atalk
1772 installation. also, it doesn't over-write an existing
1773 /etc/rc.d/init.d/atalk file.
1775 * etc/afpd, libatalk/adouble/ad_write.c: removed <sys/file.h> and
1776 </usr/ucbinclude/sys/file.h> so that we rely upon adouble.h.
1778 1998-06-19 a sun <asun@purgatorius.zoology.washington.edu>
1780 * changed sys/linux/Makefile to install a redhat-style sysv atalk
1781 script instead of the bsd one.
1783 * include/atalk/adouble.h: moved same-name list stub to struct
1786 Thu Jun 18 18:20:28 1998 a sun <asun@purgatorius>
1788 * changed to asunx.y.z notation as i was getting tired of
1789 increasing numbers. as this version is undergoing a fairly
1790 substantial overhaul, i bumped it to 2.1.0. don't ask why asun1.0
1791 never existed. i just started at 2.0.
1793 * ofork (etc/afpd/{ofork.c,ofork.h,fork.c}: put in skeleton code
1794 for hashed-by-name oforks and oforks which group by name to help
1795 with byte locks and of_findname.
1797 * adouble (include/atalk/adouble.h): started implementing
1798 appledouble v2. mostly, i added bits to headers. v2 has wonderful
1799 bits that should make prodos support much less clunky, allow
1800 persistent dids, and allow msdos support.
1802 * finder info: added bits to directory.c and file.c describing the
1803 actual contents of finder info (from IM: Toolbox
1804 Essentials). also, set default directory view to an allowed value
1805 thanks to a suggestion from the appledouble v2 specs. that should
1806 help with read-only media.
1808 * etc/afpd/{directory.c,volume.c,afs.c,directory.h}: added
1809 DIRDID_ROOT and DIRDID_ROOT_PARENT so people know that these did's
1812 Wed Jun 17 11:54:49 1998 a sun <asun@purgatorius>
1814 * well, i'm starting a changelog as i keep forgetting what i've
1817 * locks: revamped them to be more in line with what should
1818 happen. currently, i've reverted back to flock-style locks as i'll
1819 need to stick in more code to get fcntl-style locks to work
1820 properly. specifically, i think modifying of_alloc/of_dealloc to
1821 keep track of locks, fds, and names should solve the problem with
1822 fcntl locks being process-specific and not fd specific.