2 2001-02-23 jeff b <jeff@univrel.pr.uconn.edu>
4 * etc/afpd/desktop.c, etc/afpd/codepage.c, etc/afpd/nls/makecode.c:
5 patch from Axel Barnitzek <barney@users.sourceforge.net> to fix
6 broken codepage support.
8 * ChangeLog: started updaing ChangeLog with important patch/fix
9 information, as it is *never* up to date.
11 * configure.in, acconfig.h: implemented AFS configuration option
12 patch from Wes Hardaker <hardaker@users.sourceforge.net>
14 * VERSION: bumped up version to 1.5pre5, since 1.5pre4 was kind of
17 * autogen.sh: make libtoolize copy instead of linking files to
18 avoid problems, thanks to Wes Hardaker <hardaker@users.sourceforge.net>
20 2001-02-20 jeff b <jeff@univrel.pr.uconn.edu>
23 - Debian packaging in tree
24 - Numerous Makefile/build fixes
25 - .cvsignore implemented
28 2001-01-02 jeff b <jeff@univrel.pr.uconn.edu>
30 * etc/afpd/uid.c, etc/afpd/uid.h, ...: added support for forcing
31 uid/gid per volume for afpd
33 2000-09-22 Roland Schulz <rdschulz@abarrach.franken.de>
35 * etc/afpd/volume.c (setvoltime): fix for multiple clients
36 writing to same volume.
38 2000-02-28 a sun <asun@asun.cobalt.com>
40 * etc/afpd/directory.h (CNID_INODE): xor the inode a little
43 2000-02-23 a sun <asun@asun.cobalt.com>
45 * etc/afpd/volume.c (creatvol): / is a special case. you can't
46 share it unless you give it a name.
48 2000-02-21 a sun <asun@asun.cobalt.com>
50 * distrib/initscripts/rc.atalk.redhat/cobalt: added changes to
51 make redhat 6.x happier.
53 2000-02-17 a sun <asun@asun.cobalt.com>
55 * libatalk/adouble/ad_lock.c (adf_unlock): off-by-one error with
56 lock removal. this + the log right below fix ragtime.
58 2000-02-16 a sun <asun@asun.cobalt.com>
60 * etc/afpd/fork.c (afp_bytelock): only error on bytelocks
61 positioned at 0x7FFFFFFF if there's no resource fork.
63 2000-02-14 a sun <asun@asun.cobalt.com>
65 * libatalk/adouble/ad_lock.c: re-wrote locking bits so that
66 allocations happen in blocks. added missing case that omnis
69 2000-02-07 a sun <asun@asun.cobalt.com>
71 * bin/nbp/Makefile (install): make nbprgstr/nbpunrgstr with 700
74 * include/atalk/adouble.h (sendfile): change to deal with
77 2000-01-25 a sun <asun@asun.cobalt.com>
79 * etc/afpd/ofork.c: keep track of oforks being used for each
80 directory so that we can update them if the directory tree gets
83 * etc/afpd/directory.c (deletecurdir): remove dangling symlinks on
86 2000-01-24 a sun <asun@asun.cobalt.com>
88 * etc/afpd/directory.h (CNID): moved cnid assignment here along
91 * etc/afpd/directory.c: changed directory search to use red-black
92 trees to improve balance. parent-child tree changed to circular
93 doubly-linked list to speed up insert/remove times. there's still
94 one obstacle to actually freeing red-black tree entries. i need to
95 add an ofork list to struct dir to minimize search times.
97 2000-01-18 a sun <asun@asun.cobalt.com>
99 * etc/afpd/directory.c (dirinsert): detect attempts to add
100 pre-existing entries as just symbolic links.
102 * etc/afpd/filedir.h (CNID): moved inode-cnid assignment here and
103 extended to directories.
105 2000-01-03 a sun <asun@asun.cobalt.com>
107 * etc/uams/uams_pam.c (PAM_conv): surround PAM_BINARY_PROMPT with
110 * etc/afpd/status.c (status_init): fixed a bunch of problems here
111 that manifested under solaris 7.
113 * etc/afpd/main.c (main): use FD_SETSIZE instead of FD_SETSIZE +
117 1999-12-27 a sun <asun@asun.cobalt.com>
119 * libatalk/util/getiface.c: moved interface detection code to here
120 so that i can use if_nameindex() or getifconf() depending upon
123 1999-12-13 a sun <asun@asun.cobalt.com>
125 * libatalk/dsi/dsi_tcp.c (dsi_tcp_init): added if_nameindex()
126 based interface code.
128 * etc/afpd/afp_options.c (afp_options_parseline): added
129 -server_quantum as an option. using hex would be a good idea.
131 * libatalk/dsi/dsi_opensess.c (dsi_opensession): added bits to set
132 the server quantum. by default, the server quantum is limited to
133 1MB due to a bug in the os 9 appleshare client.
135 * distrib/initscripts/rc.atalk.{cobalt,redhat}: surround nbp stuff
138 * etc/uams/uams_dhx_pam.c (pam_changepw): added dhx-based password
141 1999-12-06 a sun <asun@asun.cobalt.com>
143 * etc/afpd/directory.c (setdirparams): don't error if we can't set
144 the desktop owner/permisssions.
146 1999-11-04 a sun <asun@asun.cobaltnet.com>
148 * etc/afpd/fork.c (afp_openfork): had the ordering wrong on an
151 1999-11-02 a sun <asun@asun.cobaltnet.com>
153 * etc/afpd/afp_dsi.c (afp_over_dsi): flush data for unknown dsi
156 1999-10-28 a sun <asun@asun.cobaltnet.com>
158 * etc/uams/*.c: return FPError_PARAM if the user is unknown.
160 1999-10-27 a sun <asun@asun.cobaltnet.com>
162 * etc/afpd/fork.c (afp_read): if sendfile isn't supported, use the
165 1999-10-25 a sun <asun@asun.cobaltnet.com>
167 * libatalk/nbp/nbp_unrgstr.c (nbp_unrgstr): fix nbp unregisters.
169 1999-10-21 a sun <asun@asun.cobaltnet.com>
171 * etc/afpd/Makefile (install): moved install of afpd earlier per
172 suggestion by steven michaud.
174 1999-10-05 a sun <asun@asun.cobaltnet.com>
176 * etc/uams/uams_randnum.c (afppasswd): for ~/.passwd's, turn
177 ourselves into the user so that nfs is happy.
179 1999-09-19 a sun <asun@adrian5>
181 * libatalk/netddp/netddp_open.c, nbp/*.c: only use the bcast stuff
182 if it's on an os x server machine.
184 1999-09-15 a sun <asun@adrian5>
186 * libatalk/nbp/nbp_unrgstr.c,nbp_lkup.c,nbp_rgstr.c: os x server
187 wants ATADDR_BCAST. that probably means that i need to do
188 multihoming appletalk a little differently. bleah.
190 1999-09-09 <asun@asun.cobaltnet.com>
192 * etc/afpd/directory.c (getdirparams), libatalk/adouble/ad_open.c
193 (ad_open): mondo lameness. i forgot that directory lookups can be
194 done with "." as the directory name. that was auto-hiding
195 them. bleah. i also figured out which bit was the invisible bit
196 for finderinfo information.
198 1999-09-06 Adrian Sun <asun@glazed.cobaltnet.com>
200 * etc/afpd/desktop.c (mtoupath): fixed a bug in codepage support
201 that accidentally crept in.
203 1999-08-31 Adrian Sun <asun@glazed.cobaltnet.com>
205 * etc/afpd/quota.c (getfsquota): use group quotas in quota
206 calculations if the user belongs to a single group. just use the
207 user quotas if the user belongs to multiple groups.
209 * etc/afpd/volume.c (getvolspace): added an options:limitsize to
210 restrict the available space to 2GB. this is for macs running
211 older versions of the operating system with newer versions of the
212 appleshare client. weird huh?
214 * etc/afpd/quota.c (uquota_getvolspace): bleah. 64-bit shifts
215 don't get promoted in the same way as arithmetic operations. added
216 some more casts to deal with that issue.
218 1999-08-24 Adrian Sun <asun@glazed.cobaltnet.com>
220 * man/man?/Makefile: don't re-build .tmp files if they already
221 exist. this gets the install phase to work correctly.
223 1999-08-13 a sun <asun@hecate.darksunrising.blah>
225 * etc/afpd/directory.c, file.c, filedir.c: illegal characters get
226 AFPERR_PARAM. also, reject names with /'s in them if the nohex
229 1999-08-12 a sun <asun@hecate.darksunrising.blah>
231 * etc/afpd/filedir.c,file.c,directory.c: changed error for
232 illegal filenames to AFPERR_EXIST.
234 1999-08-11 a sun <asun@hecate.darksunrising.blah>
236 * etc/afpd/desktop.h (validupath): if usedots is set, .Apple* and
237 .Parent files are no longer valid file names.
239 * etc/afpd/volume.c (volset): added usedots and nohex as
240 options. usedots stops :hex translation of . files while nohex
241 stops :hex translation of everything but . files. in addition,
242 . files created on the unix side are by default hidden.
244 * libatalk/adouble/ad_open.c: initialize more bits.
246 1999-08-10 a sun <asun@hecate.darksunrising.blah>
248 * distrib/initscripts/rc.atalk.redhat (WORKSTATION): use the
249 actual name for nbp registration rather than ATALK_NAME.
251 * sys/solaris/Makefile (kernel): make sure osdefs and machinedefs
252 get used when building the kernel module.
254 * sys/solaris: changed strings.h to string.h
256 1999-08-08 a sun <asun@hecate.darksunrising.blah>
258 * etc/afpd/volume.c (readvolfile): changed volume options into an
259 array of structs to ease maintenance.
261 1999-08-05 a sun <asun@hecate.darksunrising.blah>
263 * etc/afpd/status.c (status_init): change the default icon
264 depending upon whether or not it's an ASIP or an AppleTalk
267 1999-08-04 Adrian Sun <asun@glazed.cobaltnet.com>
269 * etc/atalkd/main.c (setaddr): made a failure with setaddr a
270 little more informative.
272 1999-08-03 Adrian Sun <asun@glazed.cobaltnet.com>
274 * yippee. someone figured what was happening with the installation
275 of the man pages. i got rid of a duplicate entry.
277 1999-08-02 a sun <asun@hecate.darksunrising.blah>
279 * etc/afpd/volume.c (readvolfile): added a per-file way of setting
280 default options. it keys in on a :DEFAULT: label.
282 1999-07-30 a sun <asun@hecate.darksunrising.blah>
284 * moved rc.atalk.* scripts to distrib/initscripts.
286 1999-07-27 a sun <asun@hecate.darksunrising.blah>
288 * contrib/printing: added patch from job@uchicago.edu
290 * etc/afpd/file.c: forgot to initialize struct ad in
293 * etc/afpd/nls/makecode.c: added an empty mapping.
295 * etc/psf/Makefile (install): well cp -d didn't work either. just
298 1999-07-26 a sun <asun@hecate.darksunrising.blah>
300 * sys/solaris/tpi.c (tpi_attach): changed DDI_NT_NET to DDI_PSEUDO
301 (from denny@geekworld.com).
303 * distrib/rpm/netatalk-asun.spec (Summary): incorporated new spec
304 and patch files from inoue.
306 * sys/linux/Makefile (install-sysv): fixed up a bit.
308 * etc/psf/Makefile (install): use cp -d instead of cp -a to make
311 * etc/afpd/afp_options.c (afp_options_parseline): reversed meaning
312 of -icon. now it means to use the yucky bitmap instead of the
315 * bin/afppasswd/Makefile (all): add -Iinclude/openssl for
318 1999-07-18 a sun <asun@hecate.darksunrising.blah>
320 * create links/mangle files in the compile rather than the install
321 phase so that rpm will be happier.
323 1999-07-17 a sun <asun@hecate.darksunrising.blah>
325 * etc/afpd/file.c (afp_createfile), directory (afp_createdir),
326 filedir.c (afp_rename, afp_moveandrename): don't allow the
327 creation/renaming of names with certain characters if mswindows
328 compatibility is enabled.
330 1999-07-16 a sun <asun@hecate.darksunrising.blah>
332 * rc.atalk.redhat: incorporated chkconfig from inoue.
334 1999-07-15 a sun <asun@hecate.darksunrising.blah>
336 * etc/atalkd/config.c (getifconf): wrap check against
337 IFF_MULTICAST behind an #ifdef IFF_MULTICAST.
339 * sys/netbsd/Makefile (LDSHAREDFLAGS): key in on machine type.
341 1999-07-11 a sun <asun@hecate.darksunrising.blah>
343 * contrib/ICDumpSuffixMap: added internet config perl script from
346 * contrib/printing: added contributed solaris printing scripts
347 from job@uchicago.edu.
349 1999-07-10 a sun <asun@hecate.darksunrising.blah>
351 * etc/atalkd/interface.h, rtmp.h: prototyped functions.
353 * etc/atalkd/zip.c: converted bcopy's to memcpy's.
355 * etc/atalkd/nbp.c,rtmp.c: added checks for the interface for
358 * etc/atalkd/main.c: converted bzero/bcopy to memset/memcpy.
360 1999-07-08 a sun <asun@hecate.darksunrising.blah>
362 * libatalk/nbp/nbp_rgstr.c (nbp_rgstr): return EADDRINUSE if the
363 address already exists.
365 1999-07-06 a sun <asun@hecate.darksunrising.blah>
367 * rc.atalk.redhat: changed netatalk.config to netatalk.conf
369 1999-07-05 a sun <asun@hecate.darksunrising.blah>
371 * etc/atalkd/nbp.c (nbp_packet): add interface to nbp struct. this
372 is so that we can filter by interface in the future. however, it
373 doesn't seem to work that well right now. bleah.
375 * etc/atalkd/main.c: fixed up dontroute option so that it doesn't
376 screw up atalkd.conf. also, we need to do a bootaddr if dontroute
379 * libatalk/atp,nbp,netddp; bin/aecho,nbp,getzones,pap;
380 etc/papd,afpd: accept -A <ddp address> as an option so that you
381 can specify the address to be used on a multihomed server. for
382 papd, you use the 'pa' option in papd.conf.
384 1999-07-04 a sun <asun@hecate.darksunrising.blah>
386 * etc/atalkd/config.c (parseline): initialize parseline properly
387 so that we don't get extraneous junk.
389 * etc/afpd/afp_options.c (afp_options_parseline): do
390 gethostbyaddr/gethostbyname's for -ipaddr and -fqdn.
392 * etc/atalkd/config.c (getifconf/readconf): check to see if the
393 supported device can support appletalk addresses. either continue
394 or exit depending upon whether or not it's auto-configed.
396 1999-07-03 a sun <asun@hecate.darksunrising.blah>
398 * etc/afpd/afp_options.c (afp_options_parse): -I (-[no]icon) will
399 toggle the volume icon so that it uses the apple icon instead.
401 * etc/afpd/config.c (AFPConfigInit): added more logic for the
402 -proxy option. here are the rules: -proxy will always try to
403 create a DDP server instance. by default, the proxy server will
404 still allow you to login with an appletalk connection. to prevent
405 that, just set the uamlist to an empty string.
407 1999-07-02 a sun <asun@hecate.darksunrising.blah>
409 * etc/afpd/status.c (status_netaddress): added support for fqdn
410 (not available in the appleshare client yet).
412 1999-07-01 a sun <asun@hecate.darksunrising.blah>
414 * etc/afpd/config.c (DSIConfigInit): application code for proxy
415 setup. it's the -proxy option.
417 * libatalk/dsi/dsi_init/tcp.c (dsi_init/dsi_tcp_init): added
418 support for proxy setup.
420 1999-06-30 a sun <asun@hecate.darksunrising.blah>
422 * etc/afpd/filedir.c (afp_rename): fixed up some error
423 codes. quark express should be happier.
425 * etc/afpd/uam.c (uam_afpserver_option): added
426 UAM_OPTION_HOSTNAME. use this to set PAM_RHOST. i just got a
427 report that setting that fixes pam on solaris machines.
429 1999-06-28 a sun <asun@hecate.darksunrising.blah>
431 * etc/afpd/ofork.c (of_alloc): report out of forks in syslog..
433 * etc/afpd/enumerate.c (afp_enumerate): close an opendir leak.
435 * include/atalk/{dsi,asp}.h: make cmdlen and datalen ints.
437 * etc/afpd/fork.c (afp_write): fixed up error condition.
439 1999-06-26 a sun <asun@hecate.darksunrising.blah>
441 * etc/uams/Makefile (install): changed install location of uams.
443 * sys/linux/Makefile (install-sysv): always install redhat
444 script. netatalk.config script only gets installed if it's not
447 1999-06-23 a sun <asun@hecate.darksunrising.blah>
449 * rc.atalk.redhat: merged in redhat contrib rpm rc.atalk script.
451 * etc/afpd/afp_options.c (afp_options_init): changed default
454 1999-06-22 a sun <asun@hecate.darksunrising.blah>
456 * etc/afpd/config.c (DSIConfigInit): truncate options->server to
457 just the server name here.
459 * etc/afpd/volume.c (volxlate): made $s return something
460 meaningful no matter what.
462 * libatalk/adouble/ad_sendfile.c (ad_readfile): freebsd sendfile
465 1999-06-20 a sun <asun@hecate.darksunrising.blah>
467 * etc/afpd/volume.c (volxlate): added variable substitution. if it
468 doesn't understand the variable, it just spits it back out.
470 (creatvol): display truncated volume name if it's too long.
472 * sys/{generic,solaris}/Makefile: added NO_CRYPTLIB option to deal
473 with oses that have -lcrypt but shouldn't use it.
475 1999-06-11 a sun <asun@hecate.darksunrising.blah>
477 * include/atalk/afp.h: added comments to FPErrors.
479 * etc/afpd/enumerate.c (afp_enumerate): make FPEnumerate do some
482 * include/atalk/util.h: server_lock() returns pid_t.
484 1999-06-10 a sun <asun@hecate.darksunrising.blah>
486 * README.ASUN: added location for both ssleay and openssl.
488 * etc/uams: moved install to LIBDIR/uams. "uams_*" now means "uam
489 server." in the future, there will be "uamc_*." changed the shared
490 library names to match.
492 * include/atalk/atp.h,nbp.h: forgot to include <sys/cdefs.h>
494 * etc/uams/Makefile: openssl-0.9.3c uses <openssl/*.h> so add that
497 * sys/{solaris,ultrix}/Makefile: just use -I../sys/generic instead
500 * include/atalk/uam.h, etc/uams/uam_*.c, etc/afpd/uam.c: added uam
501 type field. do type check.
503 * etc/uams/uam_*pam.c: added a couple more error codes.
505 1999-06-08 a sun <asun@hecate.darksunrising.blah>
507 * etc/afpd/nls/Makefile (codepage.h): make sure that a link to
508 codepage.h gets made.
510 * libatalk/*/Makefile: make sure that the profiled directory gets
513 * etc/afpd/directory.c (afp_mapname): removed an extraneous line
514 that was causing mapname to fail.
516 1999-06-07 a sun <asun@hecate.darksunrising.blah>
518 * etc/atalkd/main.c (main): added a note to check the syslog if
519 atalkd can't be setup.
521 * sys/linux/Makefile: added -DNEED_QUOTACTL_WRAPPER to the list of
522 auto-detected #defines.
524 1999-06-06 a sun <asun@hecate.darksunrising.blah>
526 * etc/afpd/fork.c (afp_write): argh. i moved things around a
527 little too much and ended up with an uninitialized eid. strangely,
528 the compiler didn't complain. simplified bits a little as
529 well. also, FPWrite was returning the wrong error messages. on
530 64-bit filesystems, the offset can wraparound. so, report a disk
531 full error if that's going to happen. egcs-19990602 gets one
532 memcpy right and another wrong on my udb. bleah.
534 (afp_read): fixed the error messages here as well.
536 1999-06-05 a sun <asun@hecate.darksunrising.blah>
538 * Makefile, sys/generic, sys/{ultrix,solaris}/Makefile: create
539 some links on the fly if they're missing.
541 * etc/afpd/directory.c (copydir): fixed a leaking opendir and
542 re-arranged a little.
544 1999-06-04 a sun <asun@hecate.darksunrising.blah>
546 * etc/afpd: prototyped everything here and moved the FP functions
549 * libatalk/util/bprint.c: moved all of the bprints to here.
551 * libatalk/asp, include/atalk/asp.h: prototyped asp functions.
553 * include/atalk/atp.h, libatalk/atp: prototyped atp functions.
555 * libatalk/nbp, include/atalk/nbp.h: added prototypes for nbp
558 * bin/afppasswd/Makefile (afppasswd): fixed a misspelling in the
561 * bin/afppasswd/afppasswd.c: added -a option so that root can add
562 new users. turned all of the options into bits. added newlines to
565 1999-06-03 a sun <asun@hecate.darksunrising.blah>
567 * sys/freebsd/Makefile: turn on sendfile support if running on a
570 1999-06-02 a sun <asun@hecate.darksunrising.blah>
572 * etc/uams/uam_dhx_pam.c: fixed memory freeing part of pam
573 conversation function.
575 * sys/*/Makefile: check at make time to see if -lrpcsvc and
576 -lcrypt should be included in the appropriate places.
578 1999-05-28 a sun <asun@hecate.darksunrising.blah>
580 * etc/afpd/file.c (deletefile): added more error checking here as
583 * etc/afpd/directory.c (renamedir): added a couple a few more
586 * sys/sunos/Makefile: sunos should really work now.
588 1999-05-27 a sun <asun@hecate.darksunrising.blah>
590 * include/atalk/afp.h: added in a couple new error codes (one
591 deals with password setting policy, the other with maximum logins
594 * etc/afpd/fork.c (afp_openfork): try to re-open files on
595 read-only volumes as read-only.
597 1999-05-26 a sun <asun@hecate.darksunrising.blah>
599 * sys/solaris/Makefile: fixed a few bobbles here. solaris uses
600 uname -p. other oses seem to use uname -m for the same information.
602 * etc/uams/uam_pam.c (pam_changepw): added check for same
605 * etc/uams/uam_randnum.c (randnum_changepw): added in cracklib and
606 same password checks.
608 * sys/osx/Makefile: moved the os x server stuff into its own build
611 * sys/linux/Makefile, sys/solaris/Makefile: key in on OSVERSION
612 and MACHINETYPE for some stuff.
614 1999-05-25 a sun <asun@hecate.darksunrising.blah>
616 * sys/sunos/Makefile: various bits to make stuff work with sunos
619 1999-05-25 a sun <asun@purgatorius.zoology.washington.edu>
621 * etc/afpd/file.c (copyfile): only copy the header file if newname
624 * etc/afpd/directory.c (copydir): make sure to balk if the
625 directory already exists. in addition, make sure to preserve the
628 1999-05-24 a sun <asun@hecate.darksunrising.blah>
630 * bin/afppasswd/afppasswd.c: global password updating utility for
631 the randnum authentication method.
633 1999-05-22 a sun <asun@hecate.darksunrising.blah>
635 * etc/uams/uam_randnum.c (afppasswd): added in global password
636 file for the randnum authentication method. it looks for a .key
637 file as well to handle encryption.
639 * etc/afpd/afp_options.c (afp_options_parseline): added
640 -passwdfile as an option so that you can specify a global randnum
641 password file if desired.
643 * etc/afpd/volume.c (readvolfile): we now have rwlist and rolist
644 as an AppleVolumes.* option. if the user is in the rolist, the
645 volume gets set as readonly. if there's a rwlist, and the user
646 isn't in it, the volume also gets set as readonly.
648 1999-05-21 a sun <asun@hecate.darksunrising.blah>
650 * libatalk/adouble/ad_lock.c (ad_fcntl_lock): plug a leak if we
651 can't allocate the reference counting variable.
653 * etc/uams/uam_*.c: make sure that uam_setup returns an error
656 1999-05-19 a sun <asun@hecate.darksunrising.blah>
658 * include/atalk/paths.h (_PATH_LOCKDIR): added os x server's
659 /var/run as the lock file directory.
661 * etc/afpd/fork.c (afp_write): kanehara@tpk.toppan.co.jp reported
662 a problem with FPWrite getting a request count of 0. that's
665 * etc/afpd/Makefile: bleah. for some reason, pam doesn't like to
666 load itself from a shared library. i've compensated by linking it
669 * etc/uams/uam_dhx_passwd.c: okay. DHX now works. something's
670 still screwy with the dhx_pam stuff though.
672 1999-05-18 a sun <asun@hecate.darksunrising.blah>
674 * etc/afpd/uam.c (uam_getname): i forgot that getname modified the
675 username to fit what's in pw->pw_name if necessary.
677 1999-05-16 a sun <asun@hecate.darksunrising.blah>
679 * etc/uams/uam_dhx_passwd/pam.c: almost ready versions of the DHX
680 authentication method. i'm still missing a little info to get it
683 * bin/megatron/nad.c (nad_header_read): if there isn't a mac name,
684 create it from the unix name.
686 * bin/megatron/megatron.c (megatron): oops. need to turn fdCreator
687 and fdType into strings.
689 1999-05-16 a sun <asun@pelvetia>
691 * etc/afpd/uam.c (uam_afpserver_option): changed the interface a
692 little. now, you pass in an int * if you want to either get/set
693 the size of the option. added in UAM_OPTION_RANDNUM for generic
694 (4-byte granularity) random number generation.
696 * etc/afpd/switch.c: added afp_logout to preauth_switch.
698 1999-05-15 a sun <asun@hecate.darksunrising.blah>
700 * bin/megatron/macbin.c (bin_open): make error message for
701 macbinary files more informative.
703 (test_header): added more macbinary tests. it now has a workaround
704 for apple's incorrectly generated macbinary files.
706 1999-05-14 a sun <asun@hecate.darksunrising.blah>
708 * sys/solaris/Makefile: added shared library generation bits.
710 * etc/uams: moved server-side uams here.
712 * include/netatalk/endian.h: fixed some solaris bits.
714 * etc/afpd/config.c (configfree): don't do an asp_close. instead,
715 do an atp_close and free the asp object. oh yeah, as afpd needs
716 to export symbols to its modules, make sure you don't do anything
717 more exciting than strip --strip-debug with it.
719 1999-05-12 a sun <asun@hecate.darksunrising.blah>
721 * various places that use sigaction: zero out struct sigaction so
722 that we don't send something confusing. also make sure that we
723 don't set a timer unless we already have a sigaction set.
725 * etc/afpd/fork.c (afp_openfork): don't error on trying to open an
726 empty resource fork read-only. also, added back in the bit of code
727 that prevented locks from being attempted on non-existent resource
730 * etc/afpd/afp_options.c (getoption): added a uamlist commandline
733 * libatalk/netddp/netddp_open.c: don't bind if nothing was passed
736 * libatalk/nbp/nbp_unrgstr.c (nbp_unrgstr): oops. forgot to
737 convert this over to use by the netddp interface.
739 1999-05-12 a sun <asun@pelvetia>
741 * etc/afpd/uam.c: os x server's runtime library loader is
742 braindead. as a result, i've switched to using an exported struct
745 * bin/aecho,getzones: changed these to use the netddp interface.
747 * libatalk/nbp/nbp_rgstr.c,unrgstr.c: fixed more leaky bits.
749 * libatalk/netddp: abstracted the ddp interface to netddp. besides
750 the prior socket-driven interface, there's now an os x server
751 interface. so, instead of calling socket/sendto/recvfrom, you call
752 netddp_open/netddp_sendto/netddp_recvfrom.
754 1999-05-11 a sun <asun@pelvetia>
756 * libatalk/nbp/nbp_lkup.c: oh my. nbp_lookup was fd leaky if there
759 * etc/atalkd/main.c (main): make sure that if -dontroute is
760 selected for all but one interface, that interface also gets
763 1999-05-10 a sun <asun@hecate.darksunrising.blah>
765 * etc/afpd/auth.c: re-wrote to deal with plug-in uams. it's much
766 smaller than it used to be.
768 1999-05-09 a sun <asun@hecate.darksunrising.blah>
770 * etc/afpd/uams/uam_guest.c, uam_pam.c, uam_passwd.c,
771 uam_randnum.c: uam modules. these should probably be moved out of
772 afpd (and into something like etc/uam_server) when the printing
773 stuff gets uam support.
775 1999-05-08 a sun <asun@hecate.darksunrising.blah>
777 * etc/afpd/uam.c: interface to user authentication modules.
778 it should eventually be moved to libatalk, but that's not
779 necessary until the printing uam stuff is done. everything is from
780 the server-side perspective, but that's only because there aren't
781 any client-side uses right now.
783 * libatalk/util/module.c: generic interface to run-time library
784 loading functions. right now, the dlfcn family and os x server's
785 NS-style way of doing things are the ones understood. in addition,
786 there's a DLSYM_PREPEND_UNDERSCORE for those systems that need it.
788 * libatalk/asp/asp_write.c (asp_wrtcont): log both the read and
789 write part of write continuations.
791 1999-05-07 a sun <asun@hecate.darksunrising.blah>
793 * etc/atalkd: added the ability to turn off routing for particular
794 interfaces. specify -dontroute for each interface that you don't
797 1999-05-06 a sun <asun@hecate.darksunrising.blah>
799 * etc/afpd/auth.c: got rid of global clrtxtname and switched to
802 1999-05-04 a sun <asun@hecate.darksunrising.blah>
804 * libatalk/dsi/dsi_write.c (dsi_write): dsi_write could loop
805 forever if there's a problem while it's being used. that's fixed.
807 1999-05-01 a sun <asun@hecate.darksunrising.blah>
809 * etc/afpd/directory.c (renamedir,copydir,deletedir): added bits
810 so that renaming a directory works across filesystems.
812 1999-04-27 a sun <asun@hecate.darksunrising.blah>
814 * etc/afpd/fork.c (getforkparams): report mtime if it's > than
815 what's stored in the header file.
817 * config/afpd.conf: incorporated a patch by Stefan Bethke to make
818 afpd.conf more understandable.
820 * sys/solaris/if.c: many of the firstnet/lastnet bits weren't
821 endian converted. that's fixed.
823 * libatalk/adouble/ad_lock.c (adf_find(x)lock): F_RD/WRLCK aren't
824 necessarily ORable, so use ADLOCK_RD/WR instead.
826 (ad_fcntl_unlock): erk. fixed a typo that had the resource fork
827 unlock accidentally getting the data fork locks.
829 1999-04-24 a sun <asun@hecate.darksunrising.blah>
831 * etc/afpd/fork.c (afp_openfork): always try to create a resource
834 1999-04-21 a sun <asun@hecate.darksunrising.blah>
836 * libatalk/adouble/ad_open.c, ad_read.c/ad_write.c, ad_flush.c:
837 turned the mmapped header stuff into and #ifdef
838 USE_MMAPPED_HEADERS option.
840 * libatalk/adouble/ad_open.c (ad_header_read): darn. i forgot that
841 the hfs fs doesn't currently have mmappable header files. rather
842 than implement that, i just reverted back to a modified version
843 of the old way of reading headers.
845 1999-04-15 a sun <asun@hecate.darksunrising.blah>
847 * etc/afpd/fork.c (afp_bytelock): byte locks become read locks on
850 (afp_openfork): deal with read-only data forks that don't have
851 corresponding .AppleDouble files. we can't really do anything with
852 deny locks in this case. just make sure that read locks are set.
854 * etc/afpd/file.c (getfilparams): oops. got the parentheses wrong
855 around FILPBIT_FINFO.
857 * etc/afpd/fork.c (afp_read): as we share open files now, check
858 for fork type against of_flags instead of just checking to see if
859 the file is open. this fixes a bug that caused resource forks to
860 get filled with data fork information.
862 1999-04-09 a sun <asun@porifera.zoology.washington.edu>
864 * sys/generic/Makefile: AFP/tcp now compiles on irix with quota
867 1999-04-09 a sun <asun@mead1.u.washington.edu>
869 * sys/generic/Makefile: AFP/tcp now compiles on aix with quota
872 1999-04-09 a sun <asun@saul6.u.washington.edu>
874 * sys/generic/Makefile: AFP/tcp part now compiles on digital unix
875 with quota support enabled.
877 1999-04-08 a sun <asun@hecate.darksunrising.blah>
879 * etc/afpd/volume.c, fork.c, file.c, directory.c, filedir.c,
880 config/AppleVolumes.default: added read-only volume option.
882 * etc/afpd/quota.c (uquota_getvolspace): modified for os x
885 1999-04-03 a sun <asun@hecate.darksunrising.blah>
887 * bin/megatron/macbin.c (bin_write): only pad if we need to do so
888 (from <jk@espy.org>).
889 (bin_header_write/read): fixed up screwed up file date
890 generation/reading with macbinary files.
892 * bin/megatron: changed all of the bcopy/bzero/bcmp's to
893 memcpy/memset/memcmp's. added macbinary III support.
895 * bin/megatron/macbin.c (bin_open): added --stdout as an option so
896 that we can stream macbinary file creation to stdout.
898 * bin/megatron/megatron.c: incorporated information patch (--header
899 and --macheader) from <fmorton@base2inc.com>.
902 1999-04-02 a sun <asun@hecate.darksunrising.blah>
904 * etc/afpd: whee! there are no more bcopy/bcmp's in this
907 * libatalk: changed the bcopy/bzero's to memcpy/memset's. added in
908 dummy ints for some of the files that can get compiled to empty
909 objects. check for the type of msync() available as well.
911 1999-03-31 a sun <asun@hecate.darksunrising.blah>
913 * INSTALL/README.GENERIC: added information for a generic
914 architecture. It includes the information needed to get netatalk
915 to compile on a random unix platform.
917 * etc/afpd/quota.c: moved the quota stuff here so that we can
918 #ifdef it out on a machine without quota support.
920 1999-03-30 a sun <asun@hecate.darksunrising.blah>
922 * libatalk/adouble/ad_lock.c: reference count the locked ranges as
923 well. this prevents multiple read locks on the same byte range
924 from disappearing if one user disappears.
926 (ad_fcntl_lock): here are the current rules for file
928 1) if there's a appledouble header, we use the beginning
929 of that for both data and resource forks.
930 2) if there isn't, we use the end of the data fork (or past the
931 end on 64-bit machines)
933 1999-03-28 a sun <asun@hecate.darksunrising.blah>
935 * libatalk/adouble/ad_open.c (ad_refresh): okay. mmapping the
936 appledouble entry parts is done.
938 * libatalk/cnid/cnid_add.c (cnid_add): prevent anyone from adding
941 1999-03-27 a sun <asun@hecate.darksunrising.blah>
943 * libatalk/adouble/ad_open.c (ad_refresh): started making the
944 appledouble header parsing more generic so that we can read in
945 arbitrary appledouble header files. i just mmap the parts that we
948 1999-03-22 a sun <asun@hecate.darksunrising.blah>
950 * etc/afpd/file.c (afp_copyfile): return the correct error
951 response on a failed copy. also, error if the file is already open
952 to prevent problems with locks. we really need to ad_lock
955 1999-03-21 a sun <asun@hecate.darksunrising.blah>
957 * etc/afpd/volume.c (readvolfile): switched volume options to
958 using ':' as a delimiter as that's one of the characters that's
959 not allowed as part of a mac filename.
960 (volset): changed access to allow/deny
962 * etc/afpd/auth.c (noauth_login): make sure that the username gets
965 1999-03-17 a sun <asun@hecate.darksunrising.blah>
967 * NOTE to myself: jeremy allison said that samba uses refcounts to
968 prevent close() from killing all the byte locks. so, i've started
969 converting afpd to using refcounting as well. luckily, we already
970 have of_findname, so we know when files are open. in cases where
971 files are already open, this will replace an ad_open with a lookup
974 * etc/afpd/directory.c (getdirparams/getfilparams): check for
975 NULL names when getting directory/file names.
977 * etc/afpd/directory.{c,h} (DIRDID_ROOT/DIRDID_ROOT_PARENT): make
978 sure these are always in network byte order.
980 1999-03-15 a sun <asun@hecate.darksunrising.blah>
982 * etc/afpd/fork.c (afp_openfork): okay, fixed the file
983 synchronization bits. now, we use two bytes to do the read/write
984 stuff. when access is needed, a read lock is attempted. if a deny
985 lock is needed, a write lock is attempted. we even handle the
986 access None mode now by saving the access modes.
988 * etc/afpd/fork.h (AFPFORK_ACCMASK): started adding bits so that
989 we can obey all of the file synchronization rules.
991 * etc/afpd/fork.c (afp_bytelock): got the meaning of the clearbit
992 reversed. with helios lantest's lock/unlock 4000 times test, it
993 looks like i get <1 second overhead on my machine when using byte
994 locks. NOTE: this will get a little worse when serialization gets
995 added. in addition, 0x80000000 only works for 64-bit machines. i
996 reserve the last allowable bit for 32-bit machines.
998 actually, both 64-bit machines and 32-bit machines use 0x7FFFFFFF
999 now as i'm able to trigger a kernel oops in linux with the 64-bit
1002 (afp_read/afp_write): make sure to use the same offset when doing
1005 1999-03-14 a sun <asun@hecate.darksunrising.blah>
1007 * libatalk/adouble/ad_lock.c: i went and implemented a bunch of
1008 stuff to get byte locks to work correctly (except for the
1009 serialization) only to discover that files that use byte locks
1010 also request a deny write mode. luckily, byte locks only cover up
1011 to 0x7FFFFFFF. so, i'll just use 0x80000000 for the
1012 synchronization locks.
1014 1999-03-08 a sun <asun@hecate.darksunrising.blah>
1016 * sys/{*bsd,ultrix,solaris,linux}/Makefile (depend): surround
1017 DEPS with double quotes so that multiple defines work.
1019 1999-03-06 a sun <asun@hecate.darksunrising.blah>
1021 * libatalk/adouble/ad_write.c, ad_read.c: make off off_t in size.
1023 * libatalk/adouble/ad_flush.c (adf_fcntl_relock), ad_lock.c
1024 (adf_fcntl_locked): okay. fcntl locks now check against multiple
1025 programs on the same machine opening the same file. current
1026 problems with the mechanism that i don't want to fix unless
1028 1) there's a race during the relock phase. serialization
1030 2) it assumes that each fd only locks a single contiguous
1031 range at a time. keeping a list of locked ranges would
1034 also, i changed the default to using fcntl locks. if the above two
1035 are really necessary, i'll probably switch to something a little
1036 more featureful like the berkeley db's lock manager.
1038 (note to myself: stuff new from asun2.1.3 from 1999-03-03)
1040 1999-03-05 a sun <asun@hecate.darksunrising.blah>
1042 * libatalk/adouble/ad_lock.c: got rid of the endflag checks to
1043 reduce system calls a little.
1045 * etc/afpd/auth.c (getname): do a case-insensitive compare on the
1048 * sys/solaris/Makefile: added 64-bit solaris patch from
1049 <jason@pattosoft.com.au>.
1051 1999-03-03 a sun <asun@hecate.darksunrising.blah>
1053 * include/netatalk/endian.h: make solaris 2.5 complain less.
1055 * bin/adv1tov2/adv1tov2.c, libatalk/adouble/ad_open.c (ad_v1tov2):
1056 fixed a couple problems with the adv1tov2 stuff.
1058 1999-02-26 a sun <asun@hecate.darksunrising.blah>
1060 * etc/afpd/volume.c (afp_openvol): erk. the volume password gets
1061 aligned along an even boundary.
1063 1999-02-23 a sun <asun@hecate.darksunrising.blah>
1065 * etc/afpd/volume.c (readvolfile): added volume password support.
1067 1999-02-14 a sun <asun@hecate.darksunrising.blah>
1069 * etc/atalkd/multicast.c (addmulti): added FreeBSD's data-link
1070 layer multicast setting bits.
1072 * libatalk/adouble/ad_open.c (ad_v1tov2): make sure to stick in
1073 prodos field info when converting.
1075 * rc.atalk.redhat: added pidof checking in case the machine
1076 crashes. also added rc.atalk.wrapper to the redhat rc script
1079 1999-02-07 a sun <asun@hecate.darksunrising.blah>
1081 * etc/afpd/fork.c (afp_setforkparams): make sure to do better
1082 error detection here and more fully report error conditions.
1084 (flushfork): make sure to flush the header if necessary (rfork
1085 length changed or modification date needs to be set).
1087 (afp_write): ugh. this wasn't returning the right values for the
1088 last byte written if the endflag was set. in addition, it was
1089 setting the modification date. that should be left to FPCloseFork
1090 and FPFlush(Fork). this fixes a problem that shows up with
1093 NOTE: as of now, changes to the rfork info are the only things
1094 that aren't flushed immediately when altered.
1096 * etc/afpd/fork.c (get/setforkparams), ofork.c: what ugliness. we
1097 need to report bitmap errors if we try to fiddle with the wrong
1098 fork. i added an of_flags field to keep things sorted.
1100 * libatalk/adouble/ad_open.c (ad_v1tov2): oops. in all of the
1101 movement, i forgot to make sure that the pre-asun2.2.0 features
1104 1999-02-06 a sun <asun@hecate.darksunrising.blah>
1106 * etc/afpd/filedir.c (afp_moveandrename): make sure to save the
1107 old name even when it's a directory.
1109 * globals.h: added oldtmp and newtmp to AFPObj to reduce the
1110 number of buffers used. use these when needed in afp_* calls.
1112 * etc/afpd/directory.c (deletecurdir): delete stray .AppleDouble
1113 files when deleting a directory.
1115 1999-02-05 a sun <asun@hecate.darksunrising.blah>
1117 * etc/afpd/file.c (afp_createfile): fixed a hard create error
1120 * fixed up a few bobbles in the netatalk-990130 merge.
1122 * the noadouble option should be pretty much implemented. here's
1124 when a directory is created, the corresponding
1125 .AppleDouble directory is not.
1127 comments, dates, and other file attributes will get
1128 silently ignored and not result in the creation of a new
1129 .AppleDouble directory.
1131 however, if anything possessing a resource fork is copied
1132 into that directory, the corresponding .AppleDouble
1133 directory will be created. once this happens, any
1134 other file in the directory can acquire an AppleDouble
1135 header file in the future.
1137 1999-02-03 a sun <asun@hecate.darksunrising.blah>
1139 * merged in the rest of netatalk-990130.
1141 * sys/solaris: merged in netatalk-990130 changes.
1143 * etc/afpd/file.c,fork.c,desktop.c libatalk/adouble/ad_sendfile.c:
1144 tested and fixed the sendfile bits on linux. it looks like linux
1145 doesn't permit socket -> file sendfiles yet.
1147 * etc/afpd/fork.c (afp_read): we can't stream FPRead's with
1148 newline character checking on.
1150 1999-02-02 a sun <asun@hecate.darksunrising.blah>
1152 * etc/afpd/fork.c (afp_flush), ofork.c (of_flush): FPFlush
1153 operates on a per-volume basis.
1155 1999-01-31 a sun <asun@hecate.darksunrising.blah>
1157 * etc/afpd/file.c (copyfile): sendfile bits added here also.
1159 * etc/afpd/desktop.c (afp_geticon): added sendfile bits here as
1162 * libatalk/adouble/ad_sendfile.c (ad_writefile/ad_readfile):
1163 implemented sendfile bits. currently, there's support for linux
1164 and freebsd. unfortunately, freebsd's implementation doesn't allow
1165 file->file or socket->file copies. bleah.
1167 1999-01-30 a sun <asun@hecate.darksunrising.blah>
1169 * etc/afpd/file.c (setfilparams), directory (setdirparams),
1170 volume.c (volset): added in the beginnings of a NOADOUBLE option
1171 for those that don't want AppleDouble headers to be created by
1172 default. it doesn't really work that well right now.
1174 1999-01-29 a sun <asun@hecate.darksunrising.blah>
1176 * libatalk/adouble/ad_open.c (ad_v1tov2): separated v1tov2 bits
1177 from ad_refresh. made broken v1 header checking the default. fixed
1178 broken v1 date checking. now, it just checks to see if the v1
1179 MDATE is > than st_mtime by 5 years.
1181 * etc/afpd/directory.c: make date setting alter directory dates as
1184 1999-01-24 a sun <asun@hecate.darksunrising.blah>
1186 * etc/afpd/afp_dsi.c (alarm_handler,afp_over_dsi): added a
1187 CHILD_RUNNING flag to prevent afpd from timing out on long copies.
1189 1999-01-21 a sun <asun@hecate.darksunrising.blah>
1191 * etc/afpd/volume.c (afp_openvol), libatalk/cnid/cnid_nextid.c:
1192 shift the beginning of the fake did's if necessary.
1194 * libatalk/adouble/ad_open.c (ad_refresh): fixed screwed-up date
1197 * libatalk/cnid/cnid_add.c,cnid_open.c,cnid_close.c: made some
1198 changes so that the CNIDs will still work even when the .AppleDB
1199 directory is read-only. if you're still allowed to create files on
1200 these volumes, you'll get a temporary id for those.
1202 1999-01-20 a sun <asun@hecate.darksunrising.blah>
1204 * libatalk/cnid/{cnid_close.c,cnid_open.c}: added bits so that log
1205 files get cleared out on cnid_close() if it's the last user for a
1208 1999-01-18 a sun <asun@hecate.darksunrising.blah>
1210 * etc/afpd/volume.c (afp_setvolparams): added FPSetVolParms. this
1211 allows us to set the backup date on the server.
1213 * etc/afpd/file.c (afp_exchangefiles): whee! we now have
1214 FPExchangeFiles. we also have FPDeleteID, so that only leaves us
1215 with FPCatSearch to do.
1217 1999-01-16 a sun <asun@hecate.darksunrising.blah>
1219 * sys/solaris/ddp.c (ddp_rput): added a couple htons()'s for the
1222 1999-01-11 a sun <asun@hecate.darksunrising.blah>
1224 * etc/afpd/volume.c (volset, afp_openvol): you can now specify a
1225 dbpath= in AppleVolumes.* for the CNID database.
1227 * libatalk/adouble/ad_open.c (ad_refresh): if we build in an
1228 appledouble v1 environment, turn on v1compat by default.
1230 1999-01-10 a sun <asun@hecate.darksunrising.blah>
1232 * libatalk/adouble/ad_open.c (ad_refresh): added v1compat option
1233 to handle broken ad headers.
1235 * etc/afpd/file.c (setfilparams): we need to make sure that we
1236 flush the file if we've created it even if there's an error. the
1237 magic number/version don't get saved if we don't.
1239 * etc/afpd/appl.c, etc/afpd/directory.c, etc/afpd/desktop.c: added
1242 1998-12-30 a sun <asun@hecate.darksunrising.blah>
1244 * etc/afpd/volume.c (afp_openvol): got rid of unnecessary v_did.
1246 * etc/afpd/file.c (afp_resolveid, afp_createid): added these two
1249 * well, what do you know? the cnid stuff compiles in.
1251 1998-12-29 a sun <asun@hecate.darksunrising.blah>
1253 * etc/afpd/fork.c, directory.c, file.c, filedir.c, volume.c,
1254 enumerate.c: added in stubs for CNID database conditional on
1255 AD_VERSION > AD_VERSION1.
1257 * etc/afpd/nls/makecode.c: added iso8859-1 mapping.
1259 1998-12-27 a sun <asun@hecate.darksunrising.blah>
1261 * bin/adv1tov2/adv1tov2.c: turn non-printable ascii characters
1262 into hex code as well.
1264 1998-12-21 a sun <asun@hecate.darksunrising.blah>
1266 * etc/afpd/auth.c: fixed FPChangePW for 2-way randnums.
1268 1998-12-15 a sun <asun@hecate.darksunrising.blah>
1270 * etc/afpd/fork.c (read_file/write_file): do crlf translation in
1271 both directions so that we can recover from problems if
1274 1998-12-14 a sun <asun@hecate.darksunrising.blah>
1276 * bin/adv1tov2/adv1tov2.c: small utility program that recursively
1277 descends a directory and converts everything it sees into
1280 1998-12-13 a sun <asun@hecate.darksunrising.blah>
1282 * libatalk/adouble/ad_flush.c (ad_rebuild_header): moved the
1283 header rebuilding here so that ad_refresh can use it.
1285 * libatalk/adouble/ad_open.c (ad_refresh): added locking to v1->v2
1288 * bin/megatron/asingle.c: yuk. removed all of
1289 the duplicate stuff here and had it use the #defines in adouble.h.
1291 * libatalk/adouble/ad_open.c (ad_refresh): finished v1 -> v2
1292 conversion routine. we still need a shortname creator and a cnid
1293 database for the v2 features to be useful.
1295 1998-12-11 a sun <asun@hecate.darksunrising.blah>
1297 * libatalk/adouble/ad_open.c (ad_refresh): punt if we get a file
1298 that we don't understand.
1300 1998-12-10 a sun <asun@hecate.darksunrising.blah>
1302 * etc/afpd/desktop.c (utompath,mtoupath): simplified the codepage
1303 stuff. also made sure to lower/upper the 8-bit characters as
1306 * libatalk/util/strdicasecmp.c: the casemapping had a few wrong
1309 * etc/afpd/fork.c (getforkparams): make sure that the ROpen/DOpen
1310 attribute bits are in the correct byte ordering.
1312 1998-12-09 a sun <asun@hecate.darksunrising.blah>
1314 * etc/afpd/volume.c (volset): made prodos an option to options=
1315 flag. also added crlf as an option.
1317 * libatalk/adouble/ad_open.c (ad_refresh): fix up times if
1319 (ad_open): deal correctly with 0-length files by treating them as
1322 * etc/afpd/volume.c (getvolparams), file.c (get/setfilparams),
1323 fork.c (getforkparams), directory.c (get/setdirparams): finished
1324 adding appledouble version 1 and 2 date conversion. also added
1327 * etc/afpd/volume.c (getvolparams): make sure to flush the header
1328 file if we needed to fiddle with it.
1330 * libatalk/adouble/ad_date.c, ad_attr.c: date/attribute
1331 setting/retrieval code.
1333 * libatalk/adouble/ad_open.c (ad_open): initialize date
1334 structures here instead of elsewhere.
1336 1998-12-07 a sun <asun@hecate.darksunrising.blah>
1338 * etc/afpd/directory.c, fork.c, volume.c, file.c: added unix<->afp
1339 time conversion code.
1341 1998-12-05 a sun <asun@hecate.darksunrising.blah>
1343 * etc/afpd/volume.c (volset): changed prodos setting to
1346 1998-12-04 a sun <asun@hecate.darksunrising.blah>
1348 * etc/afpd/volume.c (volset): okay. you now have the following
1349 options to casefold: lowercase,uppercase,xlatelower,xlateupper
1350 tolower -> lowercases everything in both directions
1351 toupper -> uppercases everything in both directions
1352 xlatelower -> client sees lowercase, server sees uppercase
1353 xlateupper -> client sees uppercase, server sees lowercase
1355 NOTE: you only should use this if you really need to do so. this
1356 and the codepage option can cause mass confusion if applied
1357 blindly to pre-existing directories.
1359 1998-12-03 a sun <asun@hecate.darksunrising.blah>
1361 * etc/afpd/desktop.c (utompath,mtoupath), etc/afpd/volume.h: added
1362 multiple options to casefold. bits 0 and 1 deal with MTOU, and
1363 bits 2 and 3 deal with UTOM. i did it that way so that you can
1364 casefold in one direction only or in both directions if
1365 desired. needless to say, setting both bits for UTOM or MTOU
1366 doesn't make any sense. right now, toupper takes precedence in
1367 MTOU, and tolower takes precedence in UTOM.
1369 1998-12-02 a sun <asun@hecate.darksunrising.blah>
1371 * etc/afpd/afp_options.c (afp_options_*): added -uampath and
1372 -codepagepath to the list of available options. they specify the
1373 directories to look for uam modules and codepages,
1374 respectively. currently, -uampath doesn't do anything.
1376 * etc/afpd/volume.c (readvolfile): spruced up options to
1377 AppleVolumes files. now you can have mtoufile=<codepage.x>,
1378 utomfile=<codepage.y>, casefold=<num> for volumes.
1380 * etc/afpd/desktop.c (utompath,mtoupath): added
1381 codepage/casefolding support. casefold is currently an int that
1382 could have multiple actions. right now, i just lowercase in
1383 mtoupath and uppercase in utompath.
1385 * etc/afpd/ofork.c (of_alloc, of_findname, of_rename): added vol
1386 as an additional specifier so that we don't have problems with
1387 the same path names on multiple volumes.
1389 1998-11-29 a sun <asun@purgatorius.zoology.washington.edu>
1391 * etc/afpd/volume.c (getvolparams): added AFP2.1 volume attribute
1394 1998-11-24 a sun <asun@purgatorius.zoology.washington.edu>
1396 * etc/atalkd/config.c (readconf, getifconf): added IFF_SLAVE to
1397 prevent atalkd from trying to use a slave channel.
1399 1998-11-23 a sun <asun@purgatorius.zoology.washington.edu>
1401 * etc/afpd/volume.c (getvolparams): we shouldn't set the custom
1402 icon bit by default on the root directory. that screws up pre-OS 8
1405 1998-11-19 a sun <asun@purgatorius.zoology.washington.edu>
1407 * libatalk/dsi/dsi_getsess.c (dsi_getsession): ignore SIGPIPE's
1408 so that we can gracefully shut down the server side.
1410 * etc/afpd/afp_dsi.c (afp_over_dsi), etc/afpd/afp_options.c,
1411 libatalk/dsi/dsi_getsess.c (dsi_getsession),
1412 libatalk/asp/asp_getsess.c (asp_getsession): made the tickle timer
1413 interval an option (-tickleval <sec>).
1415 * etc/afpd/afp_dsi.c (afp_dsi_timedown): added child.die so that
1416 we don't stomp on a shutdown timer. libatalk/dsi/dsi_read.c,
1417 dsi_write.c both save/restore the old timer, so they don't really
1418 care what the actual value is.
1420 1998-11-18 a sun <asun@purgatorius.zoology.washington.edu>
1422 * due to the recent obsession with bug fixing and low-level dsi
1423 cleanups, i've decided that this should really be asun2.1.1
1424 instead of asun2.1.0a.
1426 1998-11-17 a sun <asun@purgatorius.zoology.washington.edu>
1428 * libatalk/dsi/dsi_tcp.c (dsi_tcp_open): moved the afpd connection
1429 announcement here from etc/afpd/afp_dsi.c.
1431 * libatalk/dsi/dsi_stream.c: moved all of the read/write functions
1432 into here as they're pretty generic. now, the protocol specific
1433 stuff only handles open and close.
1435 * etc/afpd/fork.c (afp_read/write), desktop.c (afp_geticon),
1436 file.c (copyfile), include/atalk/dsi.h (dsi_writefile/readfile):
1437 added initial stubs for sendfile support. i still need to go
1438 through and calculate the appropriate offsets to use.
1440 * libatalk/dsi/dsi_read.c, dsi_write.c: disable the interval timer
1441 instead of just ignoring it.
1443 * etc/afpd/desktop.c (afp_geticon), etc/afpd/fork.c (afp_read),
1444 libatalk/dsi/dsi_read.c (dsi_readinit, dsi_readinit): modified the
1445 dsi_read interface to return errors so that i can kill things
1448 1998-11-16 a sun <asun@purgatorius.zoology.washington.edu>
1450 * libatalk/dsi/dsi_tcp.c (dsi_tcp_send/dsi_tcp_write): erk. read()
1451 and write() treat a return of 0 differently.
1453 1998-11-16 a sun <asun@hecate.darksunrising.blah>
1455 * libatalk/dsi/dsi_read.c (dsi_readinit): make sure to stick in
1458 1998-11-15 a sun <asun@purgatorius.zoology.washington.edu>
1460 * etc/afpd/fork.c (afp_read): re-ordered some of the checks here
1461 to return earlier on 0-sized files.
1463 1998-11-13 a sun <asun@purgatorius.zoology.washington.edu>
1465 * etc/afpd/afp_dsi.c (afp_over_dsi): moved the dsi->noreply toggle
1466 check to here from dsi_cmdreply.
1468 1998-11-11 a sun <asun@purgatorius.zoology.washington.edu>
1470 * etc/atalkd/zip.c (zip_packet): make sure to copy multicast zone
1471 back out. (reported by Michael Zuelsdorff <micha@dolbyco.han.de>)
1473 1998-11-09 a sun <asun@purgatorius.zoology.washington.edu>
1475 * etc/afpd/directory.c (getdirparams): changed unknown bit reply
1476 code to AFPERR_BITMAP instead of AFPERR_PARAM.
1478 1998-11-06 a sun <asun@purgatorius.zoology.washington.edu>
1480 * etc/afpd/enumerate.c (afp_enumerate), directory.c (renamedir):
1481 fixed a couple of failed realloc leaks.
1483 * etc/afpd/filedir.c (afp_moveandrename, afp_rename): added bits
1484 to deal with case-insensitive, case-preserving filesystems.
1486 1998-10-30 a sun <asun@purgatorius.zoology.washington.edu>
1488 * etc/afpd/auth.c: fixed randnum password changing check.
1490 1998-10-27 a sun <asun@purgatorius.zoology.washington.edu>
1492 * etc/atalkd/main.c: add a check for SIOCATALKDIFADDR if
1495 * etc/afpd/volume.c (getvolparams): ad_open had the wrong
1498 * etc/afpd/unix.c (setdeskowner): added a little extra space to
1499 prevent buffer overflows here.
1501 1998-10-26 a sun <asun@purgatorius.zoology.washington.edu>
1503 * sys/linux/Makefile: fixed PAM message.
1505 * sys/solaris/Makefile: make failure to ln -s a non-fatal error.
1507 * etc/papd/session.c, bin/pap/pap.c: changed sequence count to
1508 wrap from 0 -> 1 instead of from 0xFFFF -> 1.
1510 * etc/afpd/filedir.c (afp_rename, afp_moveandrename): actually, we
1511 should check against the entire unix name.
1513 1998-10-21 a sun <asun@purgatorius.zoology.washington.edu>
1515 * etc/afpd/filedir.c (afp_rename, afp_moveandrename): make sure
1516 to check against mac name.
1518 1998-10-19 a sun <asun@purgatorius.zoology.washington.edu>
1520 * etc/afpd/auth.c (afp_changepw): make password changing deal
1521 correctly with "real" user names. also, moved seteuid() to before
1522 the pam_authenticate() bit as shadow passwords need that.
1524 * etc/afpd/enumerate.c (afp_enumerate): make sure to check the mac
1525 name against MACFILELEN.
1527 1998-10-16 a sun <asun@purgatorius.zoology.washington.edu>
1529 * etc/afpd/file.c (renamefile), filedir.c (afp_rename),
1530 directory.c (renamedir): use strndiacasecmp() for AFPERR_SAMEOBJ
1531 checks. also make sure test occurs before checking to see if the
1534 1998-10-15 a sun <asun@purgatorius.zoology.washington.edu>
1536 * etc/afpd/auth.c (afp_changepw): fixed a bit of brain damage. i
1537 forgot that password changing needs root privileges to work.
1539 * etc/afpd/auth.c (PAM_conversation): the supplied code was
1540 incorrect. i cleaned it up a bit.
1542 * sys/linux/Makefile: fixed the installation bits.
1544 1998-10-14 a sun <asun@purgatorius.zoology.washington.edu>
1546 * etc/afpd/auth.c (afp_changepw): don't kill the connection here
1547 if there's a problem.
1549 1998-10-10 a sun <asun@purgatorius.zoology.washington.edu>
1551 * etc/afpd/enumerate.c, fork.c, ofork.c, file.c,
1552 globals.h, directory.c, auth.c: #defined MACFILELEN and used
1553 that. also made sure that files > MACFILELEN never show up.
1555 1998-09-25 a sun <asun@purgatorius.zoology.washington.edu>
1557 * etc/{afpd,papd,atalkd}/bprint.c (bprint): got rid of the
1558 spurious pointer dereference.
1560 * etc/afpd/ofork.c (of_alloc/of_rename): allocate the max mac file
1561 length so that we don't need to realloc.
1563 * etc/afpd/filedir.c (afp_rename, afp_moveandrename): make sure to
1564 return AFPERR_BUSY if the dest has an ofork open.
1566 * etc/afpd/file.c (renamefile), directory.c (renamedir), filedir.c
1567 (afp_rename): return AFPERR_SAMEOBJ if source == dest
1569 1998-09-21 a sun <asun@purgatorius.zoology.washington.edu>
1571 * etc/afpd: went through and looked for places that needed to use
1572 curdir instead of dir. i think i have them all right now.
1574 * etc/afpd/filedir.c (afp_moveandrename): wasn't keeping track of
1575 curdir correctly. what this really means is that cname should be
1576 fixed to return everything it changes as opposed to changing a
1579 1998-09-19 a sun <asun@purgatorius.zoology.washington.edu>
1581 * etc/afpd/config.c (configinit): do the right thing if
1582 AFPConfigInit fails.
1584 1998-09-18 a sun <asun@purgatorius.zoology.washington.edu>
1586 * etc/afpd/config.c (ASP/DSIConfigInit, configfree): how
1587 embarrassing. i wasn't doing refcounts correctly.
1589 1998-09-17 a sun <asun@purgatorius.zoology.washington.edu>
1591 * etc/afpd/nfsquota.c (getnfsquota): ultrix uses dqb_bwarn instead
1594 * sys/ultrix/Makefile: ultrix understands the old rquota format.
1596 * etc/afpd/ofork.c (of_findname): erk. forgot to only search in
1597 the current directory.
1598 (of_rename): erk. changed it to handle renaming a file that has
1599 been opened multiple times.
1601 * etc/atalkd: made sure that if you don't specify -router, things
1602 are as they were before.
1604 1998-09-13 a sun <asun@purgatorius.zoology.washington.edu>
1606 * etc/afpd/status.c (status_flags): forgot to turn on password
1607 setting if randnum passwords are being used.
1609 1998-09-11 a sun <asun@purgatorius.zoology.washington.edu>
1611 * etc/afpd/unix.c (setdirmode): erk. make sure only to setgid on
1614 * bin/aecho/aecho.c (main): incorporated -c <num> (ala ping) patch
1615 from "Fred Lindberg" <lindberg@id.wustl.edu>.
1617 1998-09-03 a sun <asun@purgatorius.zoology.washington.edu>
1619 * etc/afpd/directory.c (afp_closedir, afp_opendir): added these in
1620 for more AFP 2.0 compliance. unfortunately, apple's appleshare
1621 client doesn't like non-fixed directory ids.
1623 1998-08-31 a sun <asun@purgatorius.zoology.washington.edu>
1625 * etc/afpd/volume.c (accessvol): the accessible volume list can
1626 now be controlled by groups and usernames. just use something of
1627 the following form: @group,name,name2,@group2,name3
1629 NOTE: you can't have any spaces, and the parser forces you to
1630 include all options. in this case, there are some apple II options
1631 that need to be entered. they need to go away soon anyway.
1633 * etc/afpd/auth.c (getname): oops. i forgot to copy the gecos
1634 field into a temporary buffer before calling strtok.
1636 1998-08-29 a sun <asun@hecate.darksunrising.blah>
1638 * etc/atalkd/main.c (as_timer), rtmp.c (rtmp_delzones): when the
1639 last router on an interface goes down, we need to delete the
1640 interface's zone table.
1642 1998-08-28 a sun <asun@purgatorius.zoology.washington.edu>
1644 * etc/afpd/status.c (afp_getsrvrinfo): although it's never used,
1645 i've added this in to increase AFP compliance.
1647 * etc/afpd/auth.c (afp_getuserinfo): added FPGetUserInfo -- this
1648 should make afpd compatible with OS 8.5's Nav Services.
1650 * etc/atalkd/config.c,main.c: -router now specifies router mode
1651 with any number of interfaces.
1653 1998-08-27 a sun <asun@purgatorius.zoology.washington.edu>
1655 * etc/atalkd/main.c (as_timer): well, i figured out how to set up
1656 atalkd as a single-interface router. now, you can get zones with
1657 only single interfaces! i'm only waiting on wes for the approved
1658 configuration toggle.
1660 1998-08-26 a sun <asun@purgatorius.zoology.washington.edu>
1662 * libatalk/adouble/ad_lock.c, include/atalk/adouble.h: turned the
1663 ADLOCK_* into real #defines and added translations in the
1664 lock-type specific functions. this should make it easier to
1665 recompile things without screwing up.
1667 1998-08-26 a sun <asun@hecate.darksunrising.blah>
1669 * etc/atalkd/nbp.c (nbp_packet): forgot to handle another local
1672 1998-08-25 a sun <asun@hecate.darksunrising.blah>
1674 * etc/afpd/status.c (status_server): changed status_server to
1675 use only the obj part of obj:type@zone-style names.
1677 * etc/atalkd/nbp.c (nbp_packet): unregistering wasn't handling
1678 zones properly. it was matching on anything but the actual zone.
1680 1998-08-18 a sun <asun@purgatorius.zoology.washington.edu>
1682 * etc/afpd/auth.c (clrtxt_login): added pam_set_time(PAM_TTY) so
1683 that solaris' pam session setup doesn't crap out.
1685 1998-08-17 a sun <asun@purgatorius.zoology.washington.edu>
1687 * etc/atalkd/multicast.c (zone_bcast): fixed to do the right thing
1688 with zip multicast info.
1690 1998-08-15 a sun <asun@purgatorius.zoology.washington.edu>
1692 * etc/afpd/nfsquota.c: made the old-style rquota fields dependent
1693 upon -DUSE_OLD_RQUOTA and defined that for sunos. also included
1694 <sys/time.h> for ultrix breakage.
1696 1998-08-13 a sun <asun@purgatorius.zoology.washington.edu>
1698 * etc/afpd/filedir.c (afp_rename), etc/afpd/ofork.c (of_rename): i
1699 knew that speeding up of_findname would be useful. in any case, i
1700 discovered the source of yet another small AFP non-compliance that
1701 was confusing WordPerfect. on an afp_rename, we also need to
1702 rename the corresponding ofork. i've added an of_rename() to do
1705 1998-08-13 a sun <asun@hecate>
1707 * etc/afpd/ofork.c (of_dealloc,of_alloc): sped up dealloc by
1708 sticking refnum in ofork.
1710 1998-08-12 a sun <asun@hecate>
1712 * etc/afpd/fork.c (afp_openfork): added already open attribute
1715 * etc/afpd/ofork.c: added a hashed of_findname.
1717 1998-08-06 a sun <asun@purgatorius.zoology.washington.edu>
1719 * etc/afpd/fork.c (afp_openfork): fixed a problem with opening
1720 forks from read-only non-appledouble media.
1722 1998-07-23 a sun <asun@purgatorius.zoology.washington.edu>
1724 * etc/afpd/afs.c (afs_getvolspace), etc/afpd/volume.c
1725 (getvolspace): modified them to treak afs like the other
1726 getvolspaces w.r.t. VolSpace.
1728 1998-07-21 a sun <asun@purgatorius.zoology.washington.edu>
1730 * etc/afpd/unix.c (mountp): erk. i forgot that symlinks are often
1731 used for filesystems. nfs quotas sometimes failed as a
1732 result. that's fixed now.
1734 1998-07-20 a sun <asun@purgatorius.zoology.washington.edu>
1736 * etc/afpd/auth.c (login): added a -DRUN_AS_USER #define so that
1737 it's simple to run the server process as a non-root user.
1739 1998-07-17 a sun <asun@purgatorius.zoology.washington.edu>
1741 * etc/afpd/nfsquota.c (callaurpc, getnfsquota), volume.h: it turns
1742 out that i was opening lots of sockets with callaurpc. now, the
1743 socket gets saved and reused.
1745 NOTE: quota-1.55-9 from redhat 5.x doesn't return the correct size
1746 for rquota's bsize. unless fixed, rquota will report incorrect
1749 1998-07-08 a sun <asun@purgatorius.zoology.washington.edu>
1751 * etc/afpd/uam/README: added some preliminary ideas on a
1752 plug-in uam architecture. in addition, this should allow arbitrary
1753 afp function replacement. eventually, auth.c should get a
1756 1998-07-07 a sun <asun@purgatorius.zoology.washington.edu>
1758 * etc/afpd/nfsquota.c: added headers and redefined a couple
1759 structure fields so that sunos4 compiles.
1761 * libatalk/compat/rquota_xdr.c: compile if we're using glibc <
1762 2. this should get redhat 4.2 machines. NOTE: they're still
1763 missing librpcsvc.a, so they'll need to remove that from the
1766 1998-07-06 a sun <asun@purgatorius.zoology.washington.edu>
1768 * libatalk/compat/rquota_xdr.c: it turns out that solaris is
1769 missing a couple functions needed for rquota support. here they
1772 * etc/afpd/unix.c (mountp): fixed the nfs detection for
1773 solaris. we still need bsd and ultrix.
1775 1998-07-05 a sun <asun@hecate>
1777 * include/atalk/adouble.h: marked out space for appledouble v2.
1779 1998-07-04 a sun <asun@hecate>
1781 * etc/afpd: plugged up some ad_open leaks. made sure that we don't
1782 get negative numbers for length fields and such.
1784 1998-07-04 a sun <asun@hecate>
1786 * etc/afpd/nfsquota.c (getnfsquota): added nfs rquota
1787 support. Robert J. Marinchick <rjm8m@majink1.itc.virginia.edu>
1788 provided the initial bits from the bsd quota program.
1790 * etc/afpd/unix.c (getquota): made getquota call getfsquota or
1791 getnfsquota depending upon the type of fs.
1793 * etc/afpd/unix.c (mountp/special): munged mountp and
1794 special to return either the nfs mount point or the fs
1795 device. set the vol->v_nfs flag if it's nfs.
1797 * etc/afpd/volume.c (getvolspace): xbfree and xbtotal will now
1798 honor results returned from uquota_getvolspace.
1800 1998-06-29 a sun <asun@purgatorius.zoology.washington.edu>
1802 * etc/afpd/file.c (copyfile): mmapping the file copy only helps on
1803 multiple copies. as that's not the case here, i've reverted to
1804 just doing read + write.
1806 1998-06-28 a sun <asun@purgatorius.zoology.washington.edu>
1808 * sys/linux/Makefile: fixed the redhat-style atalk
1809 installation. also, it doesn't over-write an existing
1810 /etc/rc.d/init.d/atalk file.
1812 * etc/afpd, libatalk/adouble/ad_write.c: removed <sys/file.h> and
1813 </usr/ucbinclude/sys/file.h> so that we rely upon adouble.h.
1815 1998-06-19 a sun <asun@purgatorius.zoology.washington.edu>
1817 * changed sys/linux/Makefile to install a redhat-style sysv atalk
1818 script instead of the bsd one.
1820 * include/atalk/adouble.h: moved same-name list stub to struct
1823 Thu Jun 18 18:20:28 1998 a sun <asun@purgatorius>
1825 * changed to asunx.y.z notation as i was getting tired of
1826 increasing numbers. as this version is undergoing a fairly
1827 substantial overhaul, i bumped it to 2.1.0. don't ask why asun1.0
1828 never existed. i just started at 2.0.
1830 * ofork (etc/afpd/{ofork.c,ofork.h,fork.c}: put in skeleton code
1831 for hashed-by-name oforks and oforks which group by name to help
1832 with byte locks and of_findname.
1834 * adouble (include/atalk/adouble.h): started implementing
1835 appledouble v2. mostly, i added bits to headers. v2 has wonderful
1836 bits that should make prodos support much less clunky, allow
1837 persistent dids, and allow msdos support.
1839 * finder info: added bits to directory.c and file.c describing the
1840 actual contents of finder info (from IM: Toolbox
1841 Essentials). also, set default directory view to an allowed value
1842 thanks to a suggestion from the appledouble v2 specs. that should
1843 help with read-only media.
1845 * etc/afpd/{directory.c,volume.c,afs.c,directory.h}: added
1846 DIRDID_ROOT and DIRDID_ROOT_PARENT so people know that these did's
1849 Wed Jun 17 11:54:49 1998 a sun <asun@purgatorius>
1851 * well, i'm starting a changelog as i keep forgetting what i've
1854 * locks: revamped them to be more in line with what should
1855 happen. currently, i've reverted back to flock-style locks as i'll
1856 need to stick in more code to get fcntl-style locks to work
1857 properly. specifically, i think modifying of_alloc/of_dealloc to
1858 keep track of locks, fds, and names should solve the problem with
1859 fcntl locks being process-specific and not fd specific.