]> arthur.barton.de Git - netatalk.git/blob - ChangeLog
added contrib/shell_utils/cleanappledouble.pl script from Heath Kehoe <hakehoe@avalon...
[netatalk.git] / ChangeLog
1
2 2001-04-02  jeff b  <jeff@univrel.pr.uconn.edu>  
3
4         * contrib/shell_utils/Makefile.am, contrib/shell_utils/cleanappledouble.pl:
5         added cleanappledouble.pl script from Heath Kehoe <hakehoe@avalon.net>
6
7 2001-03-26  jeff b  <jeff@univrel.pr.uconn.edu>  
8
9         * etc/afpd/quota.c: fix compile dbtob problem on Linux from Sam
10         Noble <ns@shadow.org>
11
12         * configure.in, etc/uams/Makefile.am, etc/uams/uams_krb4/Makefile.am:
13         moved -shared into LDSHAREDFLAGS to fix Solaris build problems
14         from Bob Rogers <rogers-netatalk-devel@rgrjr.dyndns.org> and
15         Akop Pogosian <akopps@csua.berkeley.edu>
16
17 2001-03-22  Lance Levsen  <lance.l@dontspam.home.com>
18
19         * etc/uams/Makefile.am: Added $LDFLAGS to fix broken compile due
20         to inability to find libcrypto. libcrypto is defined in LDFLAGS as
21         "-L$ssldir/lib" in configure.
22
23 2001-03-22 12:57 EST  jeff b  <jeff@univrel.pr.uconn.edu>  
24
25         * configure.in: patch for OpenBSD compile reported by Jean-Phillipe
26         Rey <jprey@ads.ecp.fr>
27
28 2001-03-21 09:35 EST  jeff b  <jeff@univrel.pr.uconn.edu>  
29
30         * etc/afpd/ofork.c, include/atalk/adouble.h, libatalk/adouble/ad_open.c:
31         patch from Jonathan Paisley (jonp@chem.gla.ac.uk)
32
33 2001-03-14 13:30 EST  jeff b  <jeff@univrel.pr.uconn.edu>  
34
35         * configure.in: patch from Yoshinobu Ishizaki to fix problems with
36         Linux 2.0.x builds (Patch #408256)
37
38         * etc/afpd/file.c: used patch at http://www.avalon.net/~hakehoe/
39         to fix deleting/emptying trash problems (Patch #408218)
40
41 2001-03-14 11:00 EST  jeff b  <jeff@univrel.pr.uconn.edu>  
42
43         * libatalk/adouble/ad_open.c: fixed O_RDWR kludge in ad_mode call
44         which was causing file creation problems
45
46 2001-03-09 09:42 EST  jeff b  <jeff@univrel.pr.uconn.edu>  
47
48         * sys/solaris/Makefile: fixed problems noted by Akop Pogosian in Solaris
49         build, most notably paths, and reference to lp2pap.sh in the wrong
50         place
51
52 2001-03-07 15:30 EST  jeff b  <jeff@univrel.pr.uconn.edu>  
53
54         Released 1.5pre5
55
56         * distrib/rpm/netatalk-redhat.spec, distrib/rpm/netatalk-mandrake.spec:
57         updated for 1.5pre5 release
58
59 2001-03-07 10:34 EST  jeff b  <jeff@univrel.pr.uconn.edu>  
60
61         * etc/afpd/volume.c: changed VOLOPT_MAX to be 9 if FORCE_UIDGID is not
62         defined (thanks to Axel Bringenberg <A.Bringenberg@srz-berlin.de>)
63
64 2001-03-07 10:14 EST  jeff b  <jeff@univrel.pr.uconn.edu>  
65
66         * ChangeLog: started using timestamps in ChangeLog
67
68         * etc/uams/uams_krb4/Makefile.am: fixed reference to send_to_kdc.c typo
69         (thanks to Sebastian Rittau)
70
71 2001-03-06 13:40  Lance Levsen <l.levsen@printwest.com>
72
73         * FAQ, README, README.ASUN, INSTALL.txt: Moved FAQ, AND READMEs to
74         docs/, where they should be.
75
76         * INSTALL/INSTALL.txt: Added ./INSTALL/INSTALL.txt
77
78         * INSTALL/FAQ, README, README.ASUN: Moved README.ASUN, README,
79         FAQ to ./INSTALL
80
81 2001-03-06 11:47  Andrew Morgan <morgan@orst.edu>
82
83         * TODO: A few updates to papd entry.
84
85         * README.MORGAN: Removed README.MORGAN because that information in
86         now in papd's man page.
87
88         * man/man8/papd.8.tmpl: Updated papd man page to match current
89         code.  Added descriptions of authenticated printing and other new
90         papd options.
91
92 2001-02-28 15:43  Marc J. Millar <itlm019@mailbox.ucdavis.edu>
93
94         * libatalk/adouble/ad_open.c: AppleDouble directory creation
95         debugging
96         
97 2001-02-28  jeff b  <jeff@univrel.pr.uconn.edu>  
98
99         * etc/afpd/directory.c, etc/afpd/file.c, etc/afpd/filedir.c,
100         etc/afpd/unix.c, etc/afpd/unix.h, etc/afpd/volume.h,
101         etc/afpd/volume.c, man/man5/AppleVolumes.default.5.tmpl: added
102         "dropbox" to available option if DROPKLUDGE is used during
103         compile 
104
105 2001-02-27  jeff b  <jeff@univrel.pr.uconn.edu>  
106
107         * README: updated 1.5+ install instructions to include list of
108         required and recommended packages
109
110         * etc/uams/uams_*.c: cleanups, addition of CVS Id tag to C source
111
112         * configure.in, acconfig.h: change USE_AFS to AFS to be the same as
113         all of the defines in the codebase
114
115         * etc/uams/uams_dhx_pam.c: fixed DHX login using this module (last
116         patch made with syslog()'s didn't include any brackets) 
117         (Bug #233756)
118
119         * distrib/initscripts/.cvsignore: removed pulling of atalk
120
121         * configure.in, etc/uams/Makefile.am: conditional compilation support
122         for PGP UAM module using --enable-pgp-uam
123
124         * configure.in, etc/uams/Makefile.am, etc/uams/uams_krb4/Makefile.am,
125         etc/uams/uams_krb4/.cvsignore, etc/uams/uams_krb4/*.c: modifications
126         for future Kerberos module reintegration
127
128 2001-02-26  jeff b  <jeff@univrel.pr.uconn.edu>  
129
130         * configure.in: added /usr/local/ssl to list of SSL paths to check, to
131         help kludge compilation on Mac OS X from Marcel <lammerse@xs4all.nl>
132
133         * distrib/initscripts/rc.atalk.redhat.tmpl: adjusted to echo warning
134         instead of dumping out if appletalk module not present, from
135         Steven Karen <karelsf@users.sourceforge.net> (Bug #404087)
136
137         * configure.in, contrib/timelord/timelord.c: applied patch from Wes
138         Hardaker <hardaker@users.sourceforge.net> (Patch #402245), with
139         suitable configure.in fixes
140
141 2001-02-23  jeff b  <jeff@univrel.pr.uconn.edu>  
142
143         * etc/afpd/desktop.c, etc/afpd/codepage.c, etc/afpd/nls/makecode.c:
144         patch from Axel Barnitzek <barney@users.sourceforge.net> to fix
145         broken codepage support.
146
147         * ChangeLog: started updaing ChangeLog with important patch/fix
148         information, as it is *never* up to date.
149
150         * configure.in, acconfig.h: implemented AFS configuration option
151         patch from Wes Hardaker <hardaker@users.sourceforge.net>
152
153         * VERSION: bumped up version to 1.5pre5, since 1.5pre4 was kind of
154         paperbag-ish
155
156         * autogen.sh: make libtoolize copy instead of linking files to
157         avoid problems, thanks to Wes Hardaker <hardaker@users.sourceforge.net>
158
159 2001-02-20  jeff b  <jeff@univrel.pr.uconn.edu>
160
161         Released 1.5pre4
162         - Debian packaging in tree
163         - Numerous Makefile/build fixes
164         - .cvsignore implemented
165         - Solaris build fixes
166
167 2001-01-02  jeff b  <jeff@univrel.pr.uconn.edu>
168
169         * etc/afpd/uid.c, etc/afpd/uid.h, ...: added support for forcing
170         uid/gid per volume for afpd
171
172 2000-09-22  Roland Schulz <rdschulz@abarrach.franken.de>
173
174         * etc/afpd/volume.c (setvoltime): fix for multiple clients
175         writing to same volume.
176
177 2000-02-28  a sun  <asun@asun.cobalt.com>
178
179         * etc/afpd/directory.h (CNID_INODE): xor the inode a little
180         differently. 
181
182 2000-02-23  a sun  <asun@asun.cobalt.com>
183
184         * etc/afpd/volume.c (creatvol): / is a special case. you can't
185         share it unless you give it a name.
186
187 2000-02-21  a sun  <asun@asun.cobalt.com>
188
189         * distrib/initscripts/rc.atalk.redhat/cobalt: added changes to
190         make redhat 6.x happier.
191
192 2000-02-17  a sun  <asun@asun.cobalt.com>
193
194         * libatalk/adouble/ad_lock.c (adf_unlock): off-by-one error with
195         lock removal. this + the log right below fix ragtime.
196
197 2000-02-16  a sun  <asun@asun.cobalt.com>
198
199         * etc/afpd/fork.c (afp_bytelock): only error on bytelocks
200         positioned at 0x7FFFFFFF if there's no resource fork.
201
202 2000-02-14  a sun  <asun@asun.cobalt.com>
203
204         * libatalk/adouble/ad_lock.c: re-wrote locking bits so that
205         allocations happen in blocks. added missing case that omnis
206         database triggers.
207
208 2000-02-07  a sun  <asun@asun.cobalt.com>
209
210         * bin/nbp/Makefile (install): make nbprgstr/nbpunrgstr with 700
211         permissions. 
212
213         * include/atalk/adouble.h (sendfile): change to deal with
214         <sys/sendfile.h> 
215
216 2000-01-25  a sun  <asun@asun.cobalt.com>
217
218         * etc/afpd/ofork.c: keep track of oforks being used for each
219         directory so that we can update them if the directory tree gets
220         modified. 
221
222         * etc/afpd/directory.c (deletecurdir): remove dangling symlinks on
223         delete. 
224
225 2000-01-24  a sun  <asun@asun.cobalt.com>
226
227         * etc/afpd/directory.h (CNID): moved cnid assignment here along
228         with helpful macros.
229
230         * etc/afpd/directory.c: changed directory search to use red-black
231         trees to improve balance. parent-child tree changed to circular
232         doubly-linked list to speed up insert/remove times.  there's still
233         one obstacle to actually freeing red-black tree entries. i need to
234         add an ofork list to struct dir to minimize search times.
235
236 2000-01-18  a sun  <asun@asun.cobalt.com>
237
238         * etc/afpd/directory.c (dirinsert): detect attempts to add
239         pre-existing entries as just symbolic links. 
240
241         * etc/afpd/filedir.h (CNID): moved inode-cnid assignment here and
242         extended to directories.
243
244 2000-01-03  a sun  <asun@asun.cobalt.com>
245
246         * etc/uams/uams_pam.c (PAM_conv): surround PAM_BINARY_PROMPT with
247         an #ifdef.
248
249         * etc/afpd/status.c (status_init): fixed a bunch of problems here
250         that manifested under solaris 7.
251
252         * etc/afpd/main.c (main): use FD_SETSIZE instead of FD_SETSIZE +
253         1.
254         
255
256 1999-12-27  a sun  <asun@asun.cobalt.com>
257
258         * libatalk/util/getiface.c: moved interface detection code to here
259         so that i can use if_nameindex() or getifconf() depending upon
260         what's available.
261
262 1999-12-13  a sun  <asun@asun.cobalt.com>
263
264         * libatalk/dsi/dsi_tcp.c (dsi_tcp_init): added if_nameindex()
265         based interface code.
266
267         * etc/afpd/afp_options.c (afp_options_parseline): added
268         -server_quantum as an option. using hex would be a good idea.
269
270         * libatalk/dsi/dsi_opensess.c (dsi_opensession): added bits to set
271         the server quantum. by default, the server quantum is limited to
272         1MB due to a bug in the os 9 appleshare client.
273
274         * distrib/initscripts/rc.atalk.{cobalt,redhat}: surround nbp stuff
275         with double quotes.
276
277         * etc/uams/uams_dhx_pam.c (pam_changepw): added dhx-based password
278         changing for pam.
279
280 1999-12-06  a sun  <asun@asun.cobalt.com>
281
282         * etc/afpd/directory.c (setdirparams): don't error if we can't set
283         the desktop owner/permisssions.
284
285 1999-11-04  a sun  <asun@asun.cobaltnet.com>
286
287         * etc/afpd/fork.c (afp_openfork): had the ordering wrong on an
288         openfork. 
289
290 1999-11-02  a sun  <asun@asun.cobaltnet.com>
291
292         * etc/afpd/afp_dsi.c (afp_over_dsi): flush data for unknown dsi
293         commands. 
294
295 1999-10-28  a sun  <asun@asun.cobaltnet.com>
296
297         * etc/uams/*.c: return FPError_PARAM if the user is unknown. 
298
299 1999-10-27  a sun  <asun@asun.cobaltnet.com>
300
301         * etc/afpd/fork.c (afp_read): if sendfile isn't supported, use the
302         old looping method.
303
304 1999-10-25  a sun  <asun@asun.cobaltnet.com>
305
306         * libatalk/nbp/nbp_unrgstr.c (nbp_unrgstr): fix nbp unregisters.
307
308 1999-10-21  a sun  <asun@asun.cobaltnet.com>
309
310         * etc/afpd/Makefile (install): moved install of afpd earlier per
311         suggestion by steven michaud.
312
313 1999-10-05  a sun  <asun@asun.cobaltnet.com>
314
315         * etc/uams/uams_randnum.c (afppasswd): for ~/.passwd's, turn
316         ourselves into the user so that nfs is happy.
317
318 1999-09-19  a sun  <asun@adrian5>
319
320         * libatalk/netddp/netddp_open.c, nbp/*.c: only use the bcast stuff
321         if it's on an os x server machine.
322
323 1999-09-15  a sun  <asun@adrian5>
324
325         * libatalk/nbp/nbp_unrgstr.c,nbp_lkup.c,nbp_rgstr.c: os x server
326         wants ATADDR_BCAST. that probably means that i need to do
327         multihoming appletalk a little differently. bleah.
328
329 1999-09-09    <asun@asun.cobaltnet.com>
330
331         * etc/afpd/directory.c (getdirparams), libatalk/adouble/ad_open.c
332         (ad_open): mondo lameness. i forgot that directory lookups can be
333         done with "." as the directory name. that was auto-hiding
334         them. bleah. i also figured out which bit was the invisible bit
335         for finderinfo information.
336
337 1999-09-06  Adrian Sun  <asun@glazed.cobaltnet.com>
338
339         * etc/afpd/desktop.c (mtoupath): fixed a bug in codepage support
340         that accidentally crept in.
341
342 1999-08-31  Adrian Sun  <asun@glazed.cobaltnet.com>
343
344         * etc/afpd/quota.c (getfsquota): use group quotas in quota
345         calculations if the user belongs to a single group. just use the
346         user quotas if the user belongs to multiple groups.
347
348         * etc/afpd/volume.c (getvolspace): added an options:limitsize to
349         restrict the available space to 2GB. this is for macs running
350         older versions of the operating system with newer versions of the
351         appleshare client. weird huh?
352
353         * etc/afpd/quota.c (uquota_getvolspace): bleah. 64-bit shifts
354         don't get promoted in the same way as arithmetic operations. added
355         some more casts to deal with that issue.
356
357 1999-08-24  Adrian Sun  <asun@glazed.cobaltnet.com>
358
359         * man/man?/Makefile: don't re-build .tmp files if they already
360         exist. this gets the install phase to work correctly.
361
362 1999-08-13  a sun  <asun@hecate.darksunrising.blah>
363
364         * etc/afpd/directory.c, file.c, filedir.c: illegal characters get
365         AFPERR_PARAM. also, reject names with /'s in them if the nohex
366         option is used.
367
368 1999-08-12  a sun  <asun@hecate.darksunrising.blah>
369
370         * etc/afpd/filedir.c,file.c,directory.c: changed error for
371         illegal filenames to AFPERR_EXIST.
372
373 1999-08-11  a sun  <asun@hecate.darksunrising.blah>
374
375         * etc/afpd/desktop.h (validupath): if usedots is set, .Apple* and
376         .Parent files are no longer valid file names.
377
378         * etc/afpd/volume.c (volset): added usedots and nohex as
379         options. usedots stops :hex translation of . files while nohex
380         stops :hex translation of everything but . files. in addition,
381         . files created on the unix side are by default hidden.
382
383         * libatalk/adouble/ad_open.c: initialize more bits.
384
385 1999-08-10  a sun  <asun@hecate.darksunrising.blah>
386
387         * distrib/initscripts/rc.atalk.redhat (WORKSTATION): use the
388         actual name for nbp registration rather than ATALK_NAME.
389
390         * sys/solaris/Makefile (kernel): make sure osdefs and machinedefs
391         get used when building the kernel module.
392
393         * sys/solaris: changed strings.h to string.h
394
395 1999-08-08  a sun  <asun@hecate.darksunrising.blah>
396
397         * etc/afpd/volume.c (readvolfile): changed volume options into an
398         array of structs to ease maintenance.
399
400 1999-08-05  a sun  <asun@hecate.darksunrising.blah>
401
402         * etc/afpd/status.c (status_init): change the default icon
403         depending upon whether or not it's an ASIP or an AppleTalk
404         connection. 
405
406 1999-08-04  Adrian Sun  <asun@glazed.cobaltnet.com>
407
408         * etc/atalkd/main.c (setaddr): made a failure with setaddr a 
409         little more informative.
410
411 1999-08-03  Adrian Sun  <asun@glazed.cobaltnet.com>
412
413         * yippee. someone figured what was happening with the installation
414         of the man pages. i got rid of a duplicate entry.
415
416 1999-08-02  a sun  <asun@hecate.darksunrising.blah>
417
418         * etc/afpd/volume.c (readvolfile): added a per-file way of setting
419         default options. it keys in on a :DEFAULT: label.
420
421 1999-07-30  a sun  <asun@hecate.darksunrising.blah>
422
423         * moved rc.atalk.* scripts to distrib/initscripts.
424
425 1999-07-27  a sun  <asun@hecate.darksunrising.blah>
426
427         * contrib/printing: added patch from job@uchicago.edu
428
429         * etc/afpd/file.c: forgot to initialize struct ad in
430         some places.
431
432         * etc/afpd/nls/makecode.c: added an empty mapping.
433
434         * etc/psf/Makefile (install): well cp -d didn't work either. just
435         use tar.
436
437 1999-07-26  a sun  <asun@hecate.darksunrising.blah>
438
439         * sys/solaris/tpi.c (tpi_attach): changed DDI_NT_NET to DDI_PSEUDO
440         (from denny@geekworld.com).
441
442         * distrib/rpm/netatalk-asun.spec (Summary): incorporated new spec
443         and patch files from inoue.
444
445         * sys/linux/Makefile (install-sysv): fixed up a bit.
446
447         * etc/psf/Makefile (install): use cp -d instead of cp -a to make
448         *bsd happier.
449
450         * etc/afpd/afp_options.c (afp_options_parseline): reversed meaning
451         of -icon. now it means to use the yucky bitmap instead of the
452         apple icon.
453
454         * bin/afppasswd/Makefile (all): add -Iinclude/openssl for
455         afppasswd as well. 
456
457 1999-07-18  a sun  <asun@hecate.darksunrising.blah>
458
459         * create links/mangle files in the compile rather than the install
460         phase so that rpm will be happier.
461
462 1999-07-17  a sun  <asun@hecate.darksunrising.blah>
463
464         * etc/afpd/file.c (afp_createfile), directory (afp_createdir),
465           filedir.c (afp_rename, afp_moveandrename): don't allow the
466           creation/renaming of names with certain characters if mswindows
467           compatibility is enabled.
468
469 1999-07-16  a sun  <asun@hecate.darksunrising.blah>
470
471         * rc.atalk.redhat: incorporated chkconfig from inoue.
472
473 1999-07-15  a sun  <asun@hecate.darksunrising.blah>
474
475         * etc/atalkd/config.c (getifconf): wrap check against
476         IFF_MULTICAST behind an #ifdef IFF_MULTICAST.
477
478         * sys/netbsd/Makefile (LDSHAREDFLAGS): key in on machine type.
479
480 1999-07-11  a sun  <asun@hecate.darksunrising.blah>
481
482         * contrib/ICDumpSuffixMap: added internet config perl script from
483         inoue. 
484
485         * contrib/printing: added contributed solaris printing scripts
486         from job@uchicago.edu.
487
488 1999-07-10  a sun  <asun@hecate.darksunrising.blah>
489
490         * etc/atalkd/interface.h, rtmp.h: prototyped functions.
491
492         * etc/atalkd/zip.c: converted bcopy's to memcpy's.
493
494         * etc/atalkd/nbp.c,rtmp.c: added checks for the interface for
495         dontroute cases.
496
497         * etc/atalkd/main.c: converted bzero/bcopy to memset/memcpy.
498
499 1999-07-08  a sun  <asun@hecate.darksunrising.blah>
500
501         * libatalk/nbp/nbp_rgstr.c (nbp_rgstr): return EADDRINUSE if the
502         address already exists.
503
504 1999-07-06  a sun  <asun@hecate.darksunrising.blah>
505
506         * rc.atalk.redhat: changed netatalk.config to netatalk.conf
507
508 1999-07-05  a sun  <asun@hecate.darksunrising.blah>
509
510         * etc/atalkd/nbp.c (nbp_packet): add interface to nbp struct. this
511         is so that we can filter by interface in the future. however, it
512         doesn't seem to work that well right now. bleah. 
513
514         * etc/atalkd/main.c: fixed up dontroute option so that it doesn't
515         screw up atalkd.conf. also, we need to do a bootaddr if dontroute
516         is set. 
517
518         * libatalk/atp,nbp,netddp; bin/aecho,nbp,getzones,pap;
519         etc/papd,afpd: accept -A <ddp address> as an option so that you
520         can specify the address to be used on a multihomed server. for
521         papd, you use the 'pa' option in papd.conf.
522
523 1999-07-04  a sun  <asun@hecate.darksunrising.blah>
524
525         * etc/atalkd/config.c (parseline): initialize parseline properly
526         so that we don't get extraneous junk.
527
528         * etc/afpd/afp_options.c (afp_options_parseline): do
529         gethostbyaddr/gethostbyname's for -ipaddr and -fqdn.
530
531         * etc/atalkd/config.c (getifconf/readconf): check to see if the
532         supported device can support appletalk addresses. either continue
533         or exit depending upon whether or not it's auto-configed.
534
535 1999-07-03  a sun  <asun@hecate.darksunrising.blah>
536
537         * etc/afpd/afp_options.c (afp_options_parse): -I (-[no]icon) will
538         toggle the volume icon so that it uses the apple icon instead.
539
540         * etc/afpd/config.c (AFPConfigInit): added more logic for the
541         -proxy option. here are the rules: -proxy will always try to
542         create a DDP server instance. by default, the proxy server will
543         still allow you to login with an appletalk connection. to prevent
544         that, just set the uamlist to an empty string.
545
546 1999-07-02  a sun  <asun@hecate.darksunrising.blah>
547
548         * etc/afpd/status.c (status_netaddress): added support for fqdn
549         (not available in the appleshare client yet).
550
551 1999-07-01  a sun  <asun@hecate.darksunrising.blah>
552
553         * etc/afpd/config.c (DSIConfigInit): application code for proxy
554         setup. it's the -proxy option.
555
556         * libatalk/dsi/dsi_init/tcp.c (dsi_init/dsi_tcp_init): added
557         support for proxy setup.
558
559 1999-06-30  a sun  <asun@hecate.darksunrising.blah>
560
561         * etc/afpd/filedir.c (afp_rename): fixed up some error
562         codes. quark express should be happier.
563
564         * etc/afpd/uam.c (uam_afpserver_option): added
565         UAM_OPTION_HOSTNAME. use this to set PAM_RHOST. i just got a
566         report that setting that fixes pam on solaris machines.
567
568 1999-06-28  a sun  <asun@hecate.darksunrising.blah>
569
570         * etc/afpd/ofork.c (of_alloc): report out of forks in syslog..
571
572         * etc/afpd/enumerate.c (afp_enumerate): close an opendir leak. 
573
574         * include/atalk/{dsi,asp}.h: make cmdlen and datalen ints.
575
576         * etc/afpd/fork.c (afp_write): fixed up error condition.
577
578 1999-06-26  a sun  <asun@hecate.darksunrising.blah>
579
580         * etc/uams/Makefile (install): changed install location of uams.
581
582         * sys/linux/Makefile (install-sysv): always install redhat
583         script. netatalk.config script only gets installed if it's not
584         there already.
585
586 1999-06-23  a sun  <asun@hecate.darksunrising.blah>
587
588         * rc.atalk.redhat: merged in redhat contrib rpm rc.atalk script.
589
590         * etc/afpd/afp_options.c (afp_options_init): changed default
591         maxusers to 20.
592
593 1999-06-22  a sun  <asun@hecate.darksunrising.blah>
594
595         * etc/afpd/config.c (DSIConfigInit): truncate options->server to
596         just the server name here.
597
598         * etc/afpd/volume.c (volxlate): made $s return something
599         meaningful no matter what.
600
601         * libatalk/adouble/ad_sendfile.c (ad_readfile): freebsd sendfile
602         wants an off_t.
603
604 1999-06-20  a sun  <asun@hecate.darksunrising.blah>
605
606         * etc/afpd/volume.c (volxlate): added variable substitution. if it
607         doesn't understand the variable, it just spits it back out.
608         
609         (creatvol): display truncated volume name if it's too long.
610
611         * sys/{generic,solaris}/Makefile: added NO_CRYPTLIB option to deal
612         with oses that have -lcrypt but shouldn't use it.
613
614 1999-06-11  a sun  <asun@hecate.darksunrising.blah>
615
616         * include/atalk/afp.h: added comments to FPErrors.
617
618         * etc/afpd/enumerate.c (afp_enumerate): make FPEnumerate do some
619         more error checking.
620
621         * include/atalk/util.h: server_lock() returns pid_t. 
622
623 1999-06-10  a sun  <asun@hecate.darksunrising.blah>
624
625         * README.ASUN: added location for both ssleay and openssl.
626
627         * etc/uams: moved install to LIBDIR/uams. "uams_*" now means "uam
628         server." in the future, there will be "uamc_*." changed the shared
629         library names to match.
630
631         * include/atalk/atp.h,nbp.h: forgot to include <sys/cdefs.h>
632
633         * etc/uams/Makefile: openssl-0.9.3c uses <openssl/*.h> so add that
634         to the include path.
635
636         * sys/{solaris,ultrix}/Makefile: just use -I../sys/generic instead
637         of doing a link.
638
639         * include/atalk/uam.h, etc/uams/uam_*.c, etc/afpd/uam.c: added uam
640         type field. do type check.
641
642         * etc/uams/uam_*pam.c: added a couple more error codes. 
643
644 1999-06-08  a sun  <asun@hecate.darksunrising.blah>
645
646         * etc/afpd/nls/Makefile (codepage.h): make sure that a link to
647         codepage.h gets made.
648
649         * libatalk/*/Makefile: make sure that the profiled directory gets
650         created.
651         
652         * etc/afpd/directory.c (afp_mapname): removed an extraneous line
653         that was causing mapname to fail.
654
655 1999-06-07  a sun  <asun@hecate.darksunrising.blah>
656
657         * etc/atalkd/main.c (main): added a note to check the syslog if
658         atalkd can't be setup.
659
660         * sys/linux/Makefile: added -DNEED_QUOTACTL_WRAPPER to the list of
661         auto-detected #defines.
662
663 1999-06-06  a sun  <asun@hecate.darksunrising.blah>
664
665         * etc/afpd/fork.c (afp_write): argh. i moved things around a
666         little too much and ended up with an uninitialized eid. strangely,
667         the compiler didn't complain. simplified bits a little as
668         well. also, FPWrite was returning the wrong error messages. on
669         64-bit filesystems, the offset can wraparound. so, report a disk
670         full error if that's going to happen. egcs-19990602 gets one
671         memcpy right and another wrong on my udb. bleah.
672         
673         (afp_read): fixed the error messages here as well.
674
675 1999-06-05  a sun  <asun@hecate.darksunrising.blah>
676
677         * Makefile, sys/generic, sys/{ultrix,solaris}/Makefile: create
678         some links on the fly if they're missing.
679
680         * etc/afpd/directory.c (copydir): fixed a leaking opendir and
681         re-arranged a little.
682
683 1999-06-04  a sun  <asun@hecate.darksunrising.blah>
684
685         * etc/afpd: prototyped everything here and moved the FP functions
686         into include files.
687
688         * libatalk/util/bprint.c: moved all of the bprints to here.
689
690         * libatalk/asp, include/atalk/asp.h: prototyped asp functions.
691
692         * include/atalk/atp.h, libatalk/atp: prototyped atp functions. 
693
694         * libatalk/nbp, include/atalk/nbp.h: added prototypes for nbp
695         functions. 
696
697         * bin/afppasswd/Makefile (afppasswd): fixed a misspelling in the
698         install phase.
699
700         * bin/afppasswd/afppasswd.c: added -a option so that root can add
701         new users. turned all of the options into bits. added newlines to
702         each entry.
703
704 1999-06-03  a sun  <asun@hecate.darksunrising.blah>
705
706         * sys/freebsd/Makefile: turn on sendfile support if running on a
707         FreeBSD 3+ machine.
708
709 1999-06-02  a sun  <asun@hecate.darksunrising.blah>
710
711         * etc/uams/uam_dhx_pam.c: fixed memory freeing part of pam
712         conversation function.
713
714         * sys/*/Makefile: check at make time to see if -lrpcsvc and
715         -lcrypt should be included in the appropriate places. 
716
717 1999-05-28  a sun  <asun@hecate.darksunrising.blah>
718
719         * etc/afpd/file.c (deletefile): added more error checking here as
720         well. 
721
722         * etc/afpd/directory.c (renamedir): added a couple a few more
723         error bits. 
724
725         * sys/sunos/Makefile: sunos should really work now. 
726
727 1999-05-27  a sun  <asun@hecate.darksunrising.blah>
728
729         * include/atalk/afp.h: added in a couple new error codes (one
730         deals with password setting policy, the other with maximum logins
731         by any user).
732
733         * etc/afpd/fork.c (afp_openfork): try to re-open files on
734         read-only volumes as read-only.
735
736 1999-05-26  a sun  <asun@hecate.darksunrising.blah>
737
738         * sys/solaris/Makefile: fixed a few bobbles here. solaris uses
739         uname -p. other oses seem to use uname -m for the same information.
740
741         * etc/uams/uam_pam.c (pam_changepw): added check for same
742         password. 
743
744         * etc/uams/uam_randnum.c (randnum_changepw): added in cracklib and
745         same password checks.
746
747         * sys/osx/Makefile: moved the os x server stuff into its own build
748         directory. 
749
750         * sys/linux/Makefile, sys/solaris/Makefile: key in on OSVERSION
751         and MACHINETYPE for some stuff.  
752
753 1999-05-25  a sun  <asun@hecate.darksunrising.blah>
754
755         * sys/sunos/Makefile: various bits to make stuff work with sunos
756         again. 
757
758 1999-05-25  a sun  <asun@purgatorius.zoology.washington.edu>
759
760         * etc/afpd/file.c (copyfile): only copy the header file if newname
761         is specified. 
762
763         * etc/afpd/directory.c (copydir): make sure to balk if the
764         directory already exists. in addition, make sure to preserve the
765         timestamps. 
766
767 1999-05-24  a sun  <asun@hecate.darksunrising.blah>
768
769         * bin/afppasswd/afppasswd.c: global password updating utility for
770         the randnum authentication method. 
771
772 1999-05-22  a sun  <asun@hecate.darksunrising.blah>
773
774         * etc/uams/uam_randnum.c (afppasswd): added in global password
775         file for the randnum authentication method. it looks for a .key
776         file as well to handle encryption.
777
778         * etc/afpd/afp_options.c (afp_options_parseline): added
779         -passwdfile as an option so that you can specify a global randnum
780         password file if desired.
781
782         * etc/afpd/volume.c (readvolfile): we now have rwlist and rolist
783         as an AppleVolumes.* option. if the user is in the rolist, the
784         volume gets set as readonly. if there's a rwlist, and the user
785         isn't in it, the volume also gets set as readonly.
786
787 1999-05-21  a sun  <asun@hecate.darksunrising.blah>
788
789         * libatalk/adouble/ad_lock.c (ad_fcntl_lock): plug a leak if we
790         can't allocate the reference counting variable.
791
792         * etc/uams/uam_*.c: make sure that uam_setup returns an error
793         code. 
794
795 1999-05-19  a sun  <asun@hecate.darksunrising.blah>
796
797         * include/atalk/paths.h (_PATH_LOCKDIR): added os x server's
798         /var/run as the lock file directory.
799
800         * etc/afpd/fork.c (afp_write): kanehara@tpk.toppan.co.jp reported
801         a problem with FPWrite getting a request count of 0. that's
802         fixed. 
803
804         * etc/afpd/Makefile: bleah. for some reason, pam doesn't like to
805         load itself from a shared library. i've compensated by linking it
806         into afpd again.
807
808         * etc/uams/uam_dhx_passwd.c: okay. DHX now works. something's
809         still screwy with the dhx_pam stuff though.
810
811 1999-05-18  a sun  <asun@hecate.darksunrising.blah>
812
813         * etc/afpd/uam.c (uam_getname): i forgot that getname modified the
814         username to fit what's in pw->pw_name if necessary.
815
816 1999-05-16  a sun  <asun@hecate.darksunrising.blah>
817
818         * etc/uams/uam_dhx_passwd/pam.c: almost ready versions of the DHX
819         authentication method. i'm still missing a little info to get it
820         all right.
821
822         * bin/megatron/nad.c (nad_header_read): if there isn't a mac name,
823         create it from the unix name. 
824
825         * bin/megatron/megatron.c (megatron): oops. need to turn fdCreator
826         and fdType into strings.
827
828 1999-05-16  a sun  <asun@pelvetia>
829
830         * etc/afpd/uam.c (uam_afpserver_option): changed the interface a
831         little. now, you pass in an int * if you want to either get/set
832         the size of the option. added in UAM_OPTION_RANDNUM for generic 
833         (4-byte granularity) random number generation.
834
835         * etc/afpd/switch.c: added afp_logout to preauth_switch.
836
837 1999-05-15  a sun  <asun@hecate.darksunrising.blah>
838
839         * bin/megatron/macbin.c (bin_open): make error message for
840         macbinary files more informative.
841         
842         (test_header): added more macbinary tests. it now has a workaround
843         for apple's incorrectly generated macbinary files.
844
845 1999-05-14  a sun  <asun@hecate.darksunrising.blah>
846
847         * sys/solaris/Makefile: added shared library generation bits.
848
849         * etc/uams: moved server-side uams here. 
850
851         * include/netatalk/endian.h: fixed some solaris bits. 
852
853         * etc/afpd/config.c (configfree): don't do an asp_close. instead,
854         do an atp_close and free the asp object. oh yeah, as afpd needs
855         to export symbols to its modules, make sure you don't do anything
856         more exciting than strip --strip-debug with it.
857
858 1999-05-12  a sun  <asun@hecate.darksunrising.blah>
859
860         * various places that use sigaction: zero out struct sigaction so
861         that we don't send something confusing. also make sure that we
862         don't set a timer unless we already have a sigaction set.
863
864         * etc/afpd/fork.c (afp_openfork): don't error on trying to open an
865         empty resource fork read-only. also, added back in the bit of code
866         that prevented locks from being attempted on non-existent resource
867         forks.
868
869         * etc/afpd/afp_options.c (getoption): added a uamlist commandline
870         option (-U list). 
871
872         * libatalk/netddp/netddp_open.c: don't bind if nothing was passed
873         in. 
874
875         * libatalk/nbp/nbp_unrgstr.c (nbp_unrgstr): oops. forgot to
876         convert this over to use by the netddp interface.
877
878 1999-05-12  a sun  <asun@pelvetia>
879
880         * etc/afpd/uam.c: os x server's runtime library loader is
881         braindead. as a result, i've switched to using an exported struct
882         with the uam's name.
883
884         * bin/aecho,getzones: changed these to use the netddp interface.
885
886         * libatalk/nbp/nbp_rgstr.c,unrgstr.c: fixed more leaky bits.
887
888         * libatalk/netddp: abstracted the ddp interface to netddp. besides
889         the prior socket-driven interface, there's now an os x server
890         interface. so, instead of calling socket/sendto/recvfrom, you call
891         netddp_open/netddp_sendto/netddp_recvfrom.
892
893 1999-05-11  a sun  <asun@pelvetia>
894
895         * libatalk/nbp/nbp_lkup.c: oh my. nbp_lookup was fd leaky if there
896         was a problem.
897
898         * etc/atalkd/main.c (main): make sure that if -dontroute is
899         selected for all but one interface, that interface also gets
900         -dontroute set.
901
902 1999-05-10  a sun  <asun@hecate.darksunrising.blah>
903
904         * etc/afpd/auth.c: re-wrote to deal with plug-in uams. it's much
905         smaller than it used to be.
906
907 1999-05-09  a sun  <asun@hecate.darksunrising.blah>
908
909         * etc/afpd/uams/uam_guest.c, uam_pam.c, uam_passwd.c,
910         uam_randnum.c: uam modules. these should probably be moved out of
911         afpd (and into something like etc/uam_server) when the printing
912         stuff gets uam support.
913
914 1999-05-08  a sun  <asun@hecate.darksunrising.blah>
915
916         * etc/afpd/uam.c: interface to user authentication modules.
917         it should eventually be moved to libatalk, but that's not
918         necessary until the printing uam stuff is done. everything is from
919         the server-side perspective, but that's only because there aren't
920         any client-side uses right now.
921
922         * libatalk/util/module.c: generic interface to run-time library
923         loading functions. right now, the dlfcn family and os x server's
924         NS-style way of doing things are the ones understood. in addition,
925         there's a DLSYM_PREPEND_UNDERSCORE for those systems that need it.
926
927         * libatalk/asp/asp_write.c (asp_wrtcont): log both the read and
928         write part of write continuations.
929
930 1999-05-07  a sun  <asun@hecate.darksunrising.blah>
931
932         * etc/atalkd: added the ability to turn off routing for particular
933         interfaces. specify -dontroute for each interface that you don't
934         want to route.
935
936 1999-05-06  a sun  <asun@hecate.darksunrising.blah>
937
938         * etc/afpd/auth.c: got rid of global clrtxtname and switched to
939         using obj->username.
940
941 1999-05-04  a sun  <asun@hecate.darksunrising.blah>
942
943         * libatalk/dsi/dsi_write.c (dsi_write): dsi_write could loop
944         forever if there's a problem while it's being used. that's fixed.
945
946 1999-05-01  a sun  <asun@hecate.darksunrising.blah>
947
948         * etc/afpd/directory.c (renamedir,copydir,deletedir): added bits
949         so that renaming a directory works across filesystems.
950
951 1999-04-27  a sun  <asun@hecate.darksunrising.blah>
952
953         * etc/afpd/fork.c (getforkparams): report mtime if it's > than
954         what's stored in the header file.
955
956         * config/afpd.conf: incorporated a patch by Stefan Bethke to make
957         afpd.conf more understandable.
958
959         * sys/solaris/if.c: many of the firstnet/lastnet bits weren't
960         endian converted. that's fixed.
961
962         * libatalk/adouble/ad_lock.c (adf_find(x)lock): F_RD/WRLCK aren't
963         necessarily ORable, so use ADLOCK_RD/WR instead.
964         
965         (ad_fcntl_unlock): erk. fixed a typo that had the resource fork
966         unlock accidentally getting the data fork locks.
967
968 1999-04-24  a sun  <asun@hecate.darksunrising.blah>
969
970         * etc/afpd/fork.c (afp_openfork): always try to create a resource
971         fork if asked.
972
973 1999-04-21  a sun  <asun@hecate.darksunrising.blah>
974
975         * libatalk/adouble/ad_open.c, ad_read.c/ad_write.c, ad_flush.c:
976         turned the mmapped header stuff into and #ifdef
977         USE_MMAPPED_HEADERS option.
978
979         * libatalk/adouble/ad_open.c (ad_header_read): darn. i forgot that
980         the hfs fs doesn't currently have mmappable header files. rather
981         than implement that, i just reverted back to a modified version
982         of the old way of reading headers.
983
984 1999-04-15  a sun  <asun@hecate.darksunrising.blah>
985
986         * etc/afpd/fork.c (afp_bytelock): byte locks become read locks on
987         read-only files.
988         
989         (afp_openfork): deal with read-only data forks that don't have
990         corresponding .AppleDouble files. we can't really do anything with
991         deny locks in this case. just make sure that read locks are set.
992
993         * etc/afpd/file.c (getfilparams): oops. got the parentheses wrong
994         around FILPBIT_FINFO. 
995
996         * etc/afpd/fork.c (afp_read): as we share open files now, check
997         for fork type against of_flags instead of just checking to see if
998         the file is open. this fixes a bug that caused resource forks to
999         get filled with data fork information.
1000
1001 1999-04-09  a sun  <asun@porifera.zoology.washington.edu>
1002
1003         * sys/generic/Makefile: AFP/tcp now compiles on irix with quota
1004         support.
1005
1006 1999-04-09  a sun  <asun@mead1.u.washington.edu>
1007
1008         * sys/generic/Makefile: AFP/tcp now compiles on aix with quota
1009         support.
1010
1011 1999-04-09  a sun  <asun@saul6.u.washington.edu>
1012
1013         * sys/generic/Makefile: AFP/tcp part now compiles on digital unix
1014         with quota support enabled.
1015
1016 1999-04-08  a sun  <asun@hecate.darksunrising.blah>
1017
1018         * etc/afpd/volume.c, fork.c, file.c, directory.c, filedir.c,
1019         config/AppleVolumes.default: added read-only volume option.
1020
1021         * etc/afpd/quota.c (uquota_getvolspace): modified for os x
1022         server. 
1023
1024 1999-04-03  a sun  <asun@hecate.darksunrising.blah>
1025
1026         * bin/megatron/macbin.c (bin_write): only pad if we need to do so 
1027         (from <jk@espy.org>).   
1028         (bin_header_write/read): fixed up screwed up file date
1029         generation/reading with macbinary files. 
1030
1031         * bin/megatron: changed all of the bcopy/bzero/bcmp's to 
1032         memcpy/memset/memcmp's. added macbinary III support.
1033
1034         * bin/megatron/macbin.c (bin_open): added --stdout as an option so
1035         that we can stream macbinary file creation to stdout.
1036
1037         * bin/megatron/megatron.c: incorporated information patch (--header
1038           and --macheader) from <fmorton@base2inc.com>.
1039
1040
1041 1999-04-02  a sun  <asun@hecate.darksunrising.blah>
1042
1043         * etc/afpd: whee! there are no more bcopy/bcmp's in this
1044         directory. 
1045
1046         * libatalk: changed the bcopy/bzero's to memcpy/memset's. added in
1047         dummy ints for some of the files that can get compiled to empty
1048         objects. check for the type of msync() available as well.
1049
1050 1999-03-31  a sun  <asun@hecate.darksunrising.blah>
1051
1052         * INSTALL/README.GENERIC: added information for a generic
1053         architecture. It includes the information needed to get netatalk
1054         to compile on a random unix platform.
1055
1056         * etc/afpd/quota.c: moved the quota stuff here so that we can
1057         #ifdef it out on a machine without quota support.
1058
1059 1999-03-30  a sun  <asun@hecate.darksunrising.blah>
1060
1061         * libatalk/adouble/ad_lock.c: reference count the locked ranges as
1062         well. this prevents multiple read locks on the same byte range
1063         from disappearing if one user disappears.
1064         
1065         (ad_fcntl_lock): here are the current rules for file
1066         synchronization:
1067            1) if there's a appledouble header, we use the beginning
1068               of that for both data and resource forks.
1069            2) if there isn't, we use the end of the data fork (or past the
1070               end on 64-bit machines)
1071         
1072 1999-03-28  a sun  <asun@hecate.darksunrising.blah>
1073
1074         * libatalk/adouble/ad_open.c (ad_refresh): okay. mmapping the
1075         appledouble entry parts is done. 
1076
1077         * libatalk/cnid/cnid_add.c (cnid_add): prevent anyone from adding
1078         in an illegal cnid.
1079
1080 1999-03-27  a sun  <asun@hecate.darksunrising.blah>
1081
1082         * libatalk/adouble/ad_open.c (ad_refresh): started making the
1083         appledouble header parsing more generic so that we can read in
1084         arbitrary appledouble header files. i just mmap the parts that we
1085         need. 
1086
1087 1999-03-22  a sun  <asun@hecate.darksunrising.blah>
1088
1089         * etc/afpd/file.c (afp_copyfile): return the correct error
1090         response on a failed copy. also, error if the file is already open
1091         to prevent problems with locks. we really need to ad_lock
1092         this during the copy
1093
1094 1999-03-21  a sun  <asun@hecate.darksunrising.blah>
1095
1096         * etc/afpd/volume.c (readvolfile): switched volume options to
1097         using ':' as a delimiter as that's one of the characters that's
1098         not allowed as part of a mac filename.
1099         (volset): changed access to allow/deny
1100
1101         * etc/afpd/auth.c (noauth_login): make sure that the username gets
1102         set. 
1103
1104 1999-03-17  a sun  <asun@hecate.darksunrising.blah>
1105
1106         * NOTE to myself: jeremy allison said that samba uses refcounts to
1107         prevent close() from killing all the byte locks. so, i've started
1108         converting afpd to using refcounting as well. luckily, we already
1109         have of_findname, so we know when files are open. in cases where
1110         files are already open, this will replace an ad_open with a lookup
1111         into a hash table.
1112
1113         * etc/afpd/directory.c (getdirparams/getfilparams): check for
1114         NULL names when getting directory/file names.
1115
1116         * etc/afpd/directory.{c,h} (DIRDID_ROOT/DIRDID_ROOT_PARENT): make
1117         sure these are always in network byte order.
1118
1119 1999-03-15  a sun  <asun@hecate.darksunrising.blah>
1120
1121         * etc/afpd/fork.c (afp_openfork): okay, fixed the file
1122         synchronization bits. now, we use two bytes to do the read/write
1123         stuff. when access is needed, a read lock is attempted. if a deny
1124         lock is needed, a write lock is attempted. we even handle the
1125         access None mode now by saving the access modes.
1126
1127         * etc/afpd/fork.h (AFPFORK_ACCMASK): started adding bits so that
1128         we can obey all of the file synchronization rules.
1129
1130         * etc/afpd/fork.c (afp_bytelock): got the meaning of the clearbit
1131         reversed. with helios lantest's lock/unlock 4000 times test, it
1132         looks like i get <1 second overhead on my machine when using byte
1133         locks. NOTE: this will get a little worse when serialization gets
1134         added. in addition, 0x80000000 only works for 64-bit machines. i
1135         reserve the last allowable bit for 32-bit machines. 
1136
1137         actually, both 64-bit machines and 32-bit machines use 0x7FFFFFFF
1138         now as i'm able to trigger a kernel oops in linux with the 64-bit
1139         code. 
1140         
1141         (afp_read/afp_write): make sure to use the same offset when doing
1142         a tmplock.
1143
1144 1999-03-14  a sun  <asun@hecate.darksunrising.blah>
1145
1146         * libatalk/adouble/ad_lock.c: i went and implemented a bunch of
1147         stuff to get byte locks to work correctly (except for the
1148         serialization) only to discover that files that use byte locks
1149         also request a deny write mode. luckily, byte locks only cover up
1150         to 0x7FFFFFFF. so, i'll just use 0x80000000 for the
1151         synchronization locks.
1152
1153 1999-03-08  a sun  <asun@hecate.darksunrising.blah>
1154
1155         * sys/{*bsd,ultrix,solaris,linux}/Makefile (depend): surround 
1156         DEPS with double quotes so that multiple defines work.
1157
1158 1999-03-06  a sun  <asun@hecate.darksunrising.blah>
1159
1160         * libatalk/adouble/ad_write.c, ad_read.c: make off off_t in size. 
1161
1162         * libatalk/adouble/ad_flush.c (adf_fcntl_relock), ad_lock.c
1163         (adf_fcntl_locked): okay. fcntl locks now check against multiple
1164         programs on the same machine opening the same file. current
1165         problems with the mechanism that i don't want to fix unless
1166         necessary: 
1167                 1) there's a race during the relock phase. serialization
1168                    would solve that.
1169                 2) it assumes that each fd only locks a single contiguous
1170                    range at a time. keeping a list of locked ranges would
1171                    solve that. 
1172         
1173         also, i changed the default to using fcntl locks. if the above two
1174         are really necessary, i'll probably switch to something a little
1175         more featureful like the berkeley db's lock manager.
1176
1177         (note to myself: stuff new from asun2.1.3 from 1999-03-03)
1178         
1179 1999-03-05  a sun  <asun@hecate.darksunrising.blah>
1180
1181         * libatalk/adouble/ad_lock.c: got rid of the endflag checks to
1182         reduce system calls a little. 
1183
1184         * etc/afpd/auth.c (getname): do a case-insensitive compare on the
1185         login name as well.
1186
1187         * sys/solaris/Makefile: added 64-bit solaris patch from
1188         <jason@pattosoft.com.au>.
1189
1190 1999-03-03  a sun  <asun@hecate.darksunrising.blah>
1191
1192         * include/netatalk/endian.h: make solaris 2.5 complain less.
1193
1194         * bin/adv1tov2/adv1tov2.c, libatalk/adouble/ad_open.c (ad_v1tov2):
1195         fixed a couple problems with the adv1tov2 stuff.
1196
1197 1999-02-26  a sun  <asun@hecate.darksunrising.blah>
1198
1199         * etc/afpd/volume.c (afp_openvol): erk. the volume password gets
1200         aligned along an even boundary.
1201
1202 1999-02-23  a sun  <asun@hecate.darksunrising.blah>
1203
1204         * etc/afpd/volume.c (readvolfile): added volume password support. 
1205
1206 1999-02-14  a sun  <asun@hecate.darksunrising.blah>
1207
1208         * etc/atalkd/multicast.c (addmulti): added FreeBSD's data-link
1209         layer multicast setting bits.
1210
1211         * libatalk/adouble/ad_open.c (ad_v1tov2): make sure to stick in
1212         prodos field info when converting.
1213
1214         * rc.atalk.redhat: added pidof checking in case the machine
1215         crashes. also added rc.atalk.wrapper to the redhat rc script
1216         installation. 
1217
1218 1999-02-07  a sun  <asun@hecate.darksunrising.blah>
1219
1220         * etc/afpd/fork.c (afp_setforkparams): make sure to do better
1221         error detection here and more fully report error conditions.
1222         
1223         (flushfork): make sure to flush the header if necessary (rfork
1224         length changed or modification date needs to be set).
1225
1226         (afp_write): ugh. this wasn't returning the right values for the
1227         last byte written if the endflag was set. in addition, it was
1228         setting the modification date. that should be left to FPCloseFork
1229         and FPFlush(Fork). this fixes a problem that shows up with
1230         QuarkXPress. 
1231
1232         NOTE: as of now, changes to the rfork info are the only things
1233         that aren't flushed immediately when altered. 
1234
1235         * etc/afpd/fork.c (get/setforkparams), ofork.c: what ugliness. we
1236         need to report bitmap errors if we try to fiddle with the wrong
1237         fork. i added an of_flags field to keep things sorted.
1238
1239         * libatalk/adouble/ad_open.c (ad_v1tov2): oops. in all of the
1240         movement, i forgot to make sure that the pre-asun2.2.0 features
1241         still compile.
1242
1243 1999-02-06  a sun  <asun@hecate.darksunrising.blah>
1244
1245         * etc/afpd/filedir.c (afp_moveandrename): make sure to save the
1246         old name even when it's a directory.
1247
1248         * globals.h: added oldtmp and newtmp to AFPObj to reduce the
1249         number of buffers used. use these when needed in afp_* calls.
1250
1251         * etc/afpd/directory.c (deletecurdir): delete stray .AppleDouble
1252         files when deleting a directory.
1253
1254 1999-02-05  a sun  <asun@hecate.darksunrising.blah>
1255
1256         * etc/afpd/file.c (afp_createfile): fixed a hard create error
1257         check bug. 
1258
1259         * fixed up a few bobbles in the netatalk-990130 merge.
1260
1261         * the noadouble option should be pretty much implemented. here's
1262         how it goes:
1263                 when a directory is created, the corresponding
1264                 .AppleDouble directory is not.
1265                 
1266                 comments, dates, and other file attributes will get
1267                 silently ignored and not result in the creation of a new
1268                 .AppleDouble directory.
1269
1270                 however, if anything possessing a resource fork is copied
1271                 into that directory, the corresponding .AppleDouble
1272                 directory will be created. once this happens, any
1273                 other file in the directory can acquire an AppleDouble
1274                 header file in the future.
1275                 
1276 1999-02-03  a sun  <asun@hecate.darksunrising.blah>
1277
1278         * merged in the rest of netatalk-990130.
1279
1280         * sys/solaris: merged in netatalk-990130 changes.
1281
1282         * etc/afpd/file.c,fork.c,desktop.c libatalk/adouble/ad_sendfile.c:
1283         tested and fixed the sendfile bits on linux. it looks like linux
1284         doesn't permit socket -> file sendfiles yet.
1285
1286         * etc/afpd/fork.c (afp_read): we can't stream FPRead's with
1287         newline character checking on.
1288
1289 1999-02-02  a sun  <asun@hecate.darksunrising.blah>
1290
1291         * etc/afpd/fork.c (afp_flush), ofork.c (of_flush): FPFlush
1292         operates on a per-volume basis.
1293
1294 1999-01-31  a sun  <asun@hecate.darksunrising.blah>
1295
1296         * etc/afpd/file.c (copyfile): sendfile bits added here also.
1297
1298         * etc/afpd/desktop.c (afp_geticon): added sendfile bits here as
1299         well. 
1300
1301         * libatalk/adouble/ad_sendfile.c (ad_writefile/ad_readfile):
1302         implemented sendfile bits. currently, there's support for linux
1303         and freebsd. unfortunately, freebsd's implementation doesn't allow
1304         file->file or socket->file copies. bleah.
1305
1306 1999-01-30  a sun  <asun@hecate.darksunrising.blah>
1307
1308         * etc/afpd/file.c (setfilparams), directory (setdirparams),
1309         volume.c (volset): added in the beginnings of a NOADOUBLE option
1310         for those that don't want AppleDouble headers to be created by
1311         default. it doesn't really work that well right now.
1312
1313 1999-01-29  a sun  <asun@hecate.darksunrising.blah>
1314
1315         * libatalk/adouble/ad_open.c (ad_v1tov2): separated v1tov2 bits
1316         from ad_refresh. made broken v1 header checking the default. fixed
1317         broken v1 date checking. now, it just checks to see if the v1
1318         MDATE is > than st_mtime by 5 years.
1319
1320         * etc/afpd/directory.c: make date setting alter directory dates as
1321         well. 
1322
1323 1999-01-24  a sun  <asun@hecate.darksunrising.blah>
1324
1325         * etc/afpd/afp_dsi.c (alarm_handler,afp_over_dsi): added a
1326         CHILD_RUNNING flag to prevent afpd from timing out on long copies.
1327
1328 1999-01-21  a sun  <asun@hecate.darksunrising.blah>
1329
1330         * etc/afpd/volume.c (afp_openvol), libatalk/cnid/cnid_nextid.c:
1331         shift the beginning of the fake did's if necessary.
1332
1333         * libatalk/adouble/ad_open.c (ad_refresh): fixed screwed-up date
1334         detection code.
1335
1336         * libatalk/cnid/cnid_add.c,cnid_open.c,cnid_close.c: made some
1337         changes so that the CNIDs will still work even when the .AppleDB
1338         directory is read-only. if you're still allowed to create files on
1339         these volumes, you'll get a temporary id for those.
1340
1341 1999-01-20  a sun  <asun@hecate.darksunrising.blah>
1342
1343         * libatalk/cnid/{cnid_close.c,cnid_open.c}: added bits so that log
1344         files get cleared out on cnid_close() if it's the last user for a
1345         volume.
1346
1347 1999-01-18  a sun  <asun@hecate.darksunrising.blah>
1348
1349         * etc/afpd/volume.c (afp_setvolparams): added FPSetVolParms. this
1350         allows us to set the backup date on the server.
1351
1352         * etc/afpd/file.c (afp_exchangefiles): whee! we now have
1353         FPExchangeFiles. we also have FPDeleteID, so that only leaves us
1354         with FPCatSearch to do.
1355
1356 1999-01-16  a sun  <asun@hecate.darksunrising.blah>
1357
1358         * sys/solaris/ddp.c (ddp_rput): added a couple htons()'s for the
1359         net addresses.
1360
1361 1999-01-11  a sun  <asun@hecate.darksunrising.blah>
1362
1363         * etc/afpd/volume.c (volset, afp_openvol): you can now specify a
1364         dbpath= in AppleVolumes.* for the CNID database.
1365
1366         * libatalk/adouble/ad_open.c (ad_refresh): if we build in an
1367         appledouble v1 environment, turn on v1compat by default.
1368
1369 1999-01-10  a sun  <asun@hecate.darksunrising.blah>
1370
1371         * libatalk/adouble/ad_open.c (ad_refresh): added v1compat option
1372         to handle broken ad headers.
1373
1374         * etc/afpd/file.c (setfilparams): we need to make sure that we
1375         flush the file if we've created it even if there's an error.  the
1376         magic number/version don't get saved if we don't.
1377
1378         * etc/afpd/appl.c, etc/afpd/directory.c, etc/afpd/desktop.c: added
1379         DIRBITS to mkdirs.
1380
1381 1998-12-30  a sun  <asun@hecate.darksunrising.blah>
1382
1383         * etc/afpd/volume.c (afp_openvol): got rid of unnecessary v_did.
1384
1385         * etc/afpd/file.c (afp_resolveid, afp_createid): added these two
1386         in. 
1387
1388         * well, what do you know? the cnid stuff compiles in. 
1389
1390 1998-12-29  a sun  <asun@hecate.darksunrising.blah>
1391
1392         * etc/afpd/fork.c, directory.c, file.c, filedir.c, volume.c,
1393         enumerate.c: added in stubs for CNID database conditional on
1394         AD_VERSION > AD_VERSION1.
1395
1396         * etc/afpd/nls/makecode.c: added iso8859-1 mapping.
1397
1398 1998-12-27  a sun  <asun@hecate.darksunrising.blah>
1399
1400         * bin/adv1tov2/adv1tov2.c: turn non-printable ascii characters
1401         into hex code as well.
1402
1403 1998-12-21  a sun  <asun@hecate.darksunrising.blah>
1404
1405         * etc/afpd/auth.c: fixed FPChangePW for 2-way randnums.
1406
1407 1998-12-15  a sun  <asun@hecate.darksunrising.blah>
1408
1409         * etc/afpd/fork.c (read_file/write_file): do crlf translation in
1410         both directions so that we can recover from problems if
1411         necessary. 
1412
1413 1998-12-14  a sun  <asun@hecate.darksunrising.blah>
1414
1415         * bin/adv1tov2/adv1tov2.c: small utility program that recursively
1416         descends a directory and converts everything it sees into
1417         AppleDouble v2.
1418
1419 1998-12-13  a sun  <asun@hecate.darksunrising.blah>
1420
1421         * libatalk/adouble/ad_flush.c (ad_rebuild_header): moved the
1422         header rebuilding here so that ad_refresh can use it.
1423
1424         * libatalk/adouble/ad_open.c (ad_refresh): added locking to v1->v2
1425         conversion.
1426
1427         * bin/megatron/asingle.c: yuk. removed all of
1428         the duplicate stuff here and had it use the #defines in adouble.h.  
1429
1430         * libatalk/adouble/ad_open.c (ad_refresh): finished v1 -> v2
1431         conversion routine. we still need a shortname creator and a cnid
1432         database for the v2 features to be useful. 
1433
1434 1998-12-11  a sun  <asun@hecate.darksunrising.blah>
1435
1436         * libatalk/adouble/ad_open.c (ad_refresh): punt if we get a file
1437         that we don't understand.
1438
1439 1998-12-10  a sun  <asun@hecate.darksunrising.blah>
1440
1441         * etc/afpd/desktop.c (utompath,mtoupath): simplified the codepage
1442         stuff. also made sure to lower/upper the 8-bit characters as
1443         well. 
1444
1445         * libatalk/util/strdicasecmp.c: the casemapping had a few wrong
1446         characters. 
1447
1448         * etc/afpd/fork.c (getforkparams): make sure that the ROpen/DOpen
1449         attribute bits are in the correct byte ordering.
1450
1451 1998-12-09  a sun  <asun@hecate.darksunrising.blah>
1452
1453         * etc/afpd/volume.c (volset): made prodos an option to options=
1454         flag. also added crlf as an option.
1455
1456         * libatalk/adouble/ad_open.c (ad_refresh): fix up times if
1457         necessary. 
1458         (ad_open): deal correctly with 0-length files by treating them as
1459         newly created. 
1460
1461         * etc/afpd/volume.c (getvolparams), file.c (get/setfilparams),
1462         fork.c (getforkparams), directory.c (get/setdirparams): finished
1463         adding appledouble version 1 and 2 date conversion. also added
1464         attribute setting. 
1465         
1466         * etc/afpd/volume.c (getvolparams): make sure to flush the header
1467         file if we needed to fiddle with it. 
1468
1469         * libatalk/adouble/ad_date.c, ad_attr.c: date/attribute
1470         setting/retrieval code. 
1471
1472         * libatalk/adouble/ad_open.c (ad_open): initialize date
1473         structures here instead of elsewhere. 
1474
1475 1998-12-07  a sun  <asun@hecate.darksunrising.blah>
1476
1477         * etc/afpd/directory.c, fork.c, volume.c, file.c: added unix<->afp
1478         time conversion code. 
1479
1480 1998-12-05  a sun  <asun@hecate.darksunrising.blah>
1481
1482         * etc/afpd/volume.c (volset): changed prodos setting to
1483         prodos=true. 
1484
1485 1998-12-04  a sun  <asun@hecate.darksunrising.blah>
1486
1487         * etc/afpd/volume.c (volset): okay. you now have the following
1488         options to casefold: lowercase,uppercase,xlatelower,xlateupper
1489                 tolower    -> lowercases everything in both directions
1490                 toupper    -> uppercases everything in both directions
1491                 xlatelower -> client sees lowercase, server sees uppercase
1492                 xlateupper -> client sees uppercase, server sees lowercase
1493
1494         NOTE: you only should use this if you really need to do so. this
1495         and the codepage option can cause mass confusion if applied
1496         blindly to pre-existing directories.
1497         
1498 1998-12-03  a sun  <asun@hecate.darksunrising.blah>
1499
1500         * etc/afpd/desktop.c (utompath,mtoupath), etc/afpd/volume.h: added
1501         multiple options to casefold. bits 0 and 1 deal with MTOU, and
1502         bits 2 and 3 deal with UTOM. i did it that way so that you can
1503         casefold in one direction only or in both directions if
1504         desired. needless to say, setting both bits for UTOM or MTOU
1505         doesn't make any sense. right now, toupper takes precedence in
1506         MTOU, and tolower takes precedence in UTOM.
1507
1508 1998-12-02  a sun  <asun@hecate.darksunrising.blah>
1509
1510         * etc/afpd/afp_options.c (afp_options_*): added -uampath and
1511         -codepagepath to the list of available options. they specify the
1512         directories to look for uam modules and codepages,
1513         respectively. currently, -uampath doesn't do anything.
1514
1515         * etc/afpd/volume.c (readvolfile): spruced up options to
1516         AppleVolumes files. now you can have mtoufile=<codepage.x>,
1517         utomfile=<codepage.y>, casefold=<num> for volumes.
1518
1519         * etc/afpd/desktop.c (utompath,mtoupath): added
1520         codepage/casefolding support. casefold is currently an int that
1521         could have multiple actions. right now, i just lowercase in
1522         mtoupath and uppercase in utompath.
1523
1524         * etc/afpd/ofork.c (of_alloc, of_findname, of_rename): added vol
1525         as an additional specifier so that we don't have problems with
1526         the same path names on multiple volumes. 
1527
1528 1998-11-29  a sun  <asun@purgatorius.zoology.washington.edu>
1529
1530         * etc/afpd/volume.c (getvolparams): added AFP2.1 volume attribute
1531         bits. 
1532
1533 1998-11-24  a sun  <asun@purgatorius.zoology.washington.edu>
1534
1535         * etc/atalkd/config.c (readconf, getifconf): added IFF_SLAVE to
1536         prevent atalkd from trying to use a slave channel.
1537
1538 1998-11-23  a sun  <asun@purgatorius.zoology.washington.edu>
1539
1540         * etc/afpd/volume.c (getvolparams): we shouldn't set the custom
1541         icon bit by default on the root directory. that screws up pre-OS 8
1542         systems.
1543
1544 1998-11-19  a sun  <asun@purgatorius.zoology.washington.edu>
1545
1546         * libatalk/dsi/dsi_getsess.c (dsi_getsession): ignore SIGPIPE's
1547         so that we can gracefully shut down the server side.
1548
1549         * etc/afpd/afp_dsi.c (afp_over_dsi), etc/afpd/afp_options.c,
1550         libatalk/dsi/dsi_getsess.c (dsi_getsession),
1551         libatalk/asp/asp_getsess.c (asp_getsession): made the tickle timer
1552         interval an option (-tickleval <sec>).
1553         
1554         * etc/afpd/afp_dsi.c (afp_dsi_timedown): added child.die so that
1555         we don't stomp on a shutdown timer. libatalk/dsi/dsi_read.c,
1556         dsi_write.c both save/restore the old timer, so they don't really
1557         care what the actual value is. 
1558         
1559 1998-11-18  a sun  <asun@purgatorius.zoology.washington.edu>
1560
1561         * due to the recent obsession with bug fixing and low-level dsi
1562         cleanups, i've decided that this should really be asun2.1.1
1563         instead of asun2.1.0a.
1564
1565 1998-11-17  a sun  <asun@purgatorius.zoology.washington.edu>
1566
1567         * libatalk/dsi/dsi_tcp.c (dsi_tcp_open): moved the afpd connection
1568         announcement here from etc/afpd/afp_dsi.c. 
1569         
1570         * libatalk/dsi/dsi_stream.c: moved all of the read/write functions
1571         into here as they're pretty generic. now, the protocol specific
1572         stuff only handles open and close. 
1573
1574         * etc/afpd/fork.c (afp_read/write), desktop.c (afp_geticon),
1575         file.c (copyfile), include/atalk/dsi.h (dsi_writefile/readfile):
1576         added initial stubs for sendfile support. i still need to go
1577         through and calculate the appropriate offsets to use. 
1578
1579         * libatalk/dsi/dsi_read.c, dsi_write.c: disable the interval timer
1580         instead of just ignoring it.
1581
1582         * etc/afpd/desktop.c (afp_geticon), etc/afpd/fork.c (afp_read),
1583         libatalk/dsi/dsi_read.c (dsi_readinit, dsi_readinit): modified the
1584         dsi_read interface to return errors so that i can kill things
1585         gracefully. 
1586
1587 1998-11-16  a sun  <asun@purgatorius.zoology.washington.edu>
1588
1589         * libatalk/dsi/dsi_tcp.c (dsi_tcp_send/dsi_tcp_write): erk. read()
1590         and write() treat a return of 0 differently. 
1591
1592 1998-11-16  a sun  <asun@hecate.darksunrising.blah>
1593
1594         * libatalk/dsi/dsi_read.c (dsi_readinit): make sure to stick in
1595         the error code.
1596
1597 1998-11-15  a sun  <asun@purgatorius.zoology.washington.edu>
1598
1599         * etc/afpd/fork.c (afp_read): re-ordered some of the checks here
1600         to return earlier on 0-sized files.
1601
1602 1998-11-13  a sun  <asun@purgatorius.zoology.washington.edu>
1603
1604         * etc/afpd/afp_dsi.c (afp_over_dsi): moved the dsi->noreply toggle
1605         check to here from dsi_cmdreply.
1606
1607 1998-11-11  a sun  <asun@purgatorius.zoology.washington.edu>
1608
1609         * etc/atalkd/zip.c (zip_packet): make sure to copy multicast zone
1610         back out. (reported by Michael Zuelsdorff <micha@dolbyco.han.de>)
1611
1612 1998-11-09  a sun  <asun@purgatorius.zoology.washington.edu>
1613
1614         * etc/afpd/directory.c (getdirparams): changed unknown bit reply
1615         code to AFPERR_BITMAP instead of AFPERR_PARAM.
1616
1617 1998-11-06  a sun  <asun@purgatorius.zoology.washington.edu>
1618
1619         * etc/afpd/enumerate.c (afp_enumerate), directory.c (renamedir):
1620         fixed a couple of failed realloc leaks.
1621
1622         * etc/afpd/filedir.c (afp_moveandrename, afp_rename): added bits
1623         to deal with case-insensitive, case-preserving filesystems.
1624
1625 1998-10-30  a sun  <asun@purgatorius.zoology.washington.edu>
1626
1627         * etc/afpd/auth.c: fixed randnum password changing check. 
1628
1629 1998-10-27  a sun  <asun@purgatorius.zoology.washington.edu>
1630
1631         * etc/atalkd/main.c: add a check for SIOCATALKDIFADDR if
1632         SIOCDIFADDR fails.
1633         
1634         * etc/afpd/volume.c (getvolparams): ad_open had the wrong
1635         parameters. 
1636
1637         * etc/afpd/unix.c (setdeskowner): added a little extra space to
1638         prevent buffer overflows here.
1639
1640 1998-10-26  a sun  <asun@purgatorius.zoology.washington.edu>
1641
1642         * sys/linux/Makefile: fixed PAM message.
1643
1644         * sys/solaris/Makefile: make failure to ln -s a non-fatal error. 
1645
1646         * etc/papd/session.c, bin/pap/pap.c: changed sequence count to
1647         wrap from 0 -> 1 instead of from 0xFFFF -> 1.
1648
1649         * etc/afpd/filedir.c (afp_rename, afp_moveandrename): actually, we
1650         should check against the entire unix name.
1651         
1652 1998-10-21  a sun  <asun@purgatorius.zoology.washington.edu>
1653
1654         * etc/afpd/filedir.c (afp_rename, afp_moveandrename): make sure
1655         to check against mac name.
1656
1657 1998-10-19  a sun  <asun@purgatorius.zoology.washington.edu>
1658
1659         * etc/afpd/auth.c (afp_changepw): make password changing deal
1660         correctly with "real" user names. also, moved seteuid() to before
1661         the pam_authenticate() bit as shadow passwords need that.
1662
1663         * etc/afpd/enumerate.c (afp_enumerate): make sure to check the mac
1664         name against MACFILELEN.
1665
1666 1998-10-16  a sun  <asun@purgatorius.zoology.washington.edu>
1667
1668         * etc/afpd/file.c (renamefile), filedir.c (afp_rename),
1669         directory.c (renamedir): use strndiacasecmp() for AFPERR_SAMEOBJ
1670         checks. also make sure test occurs before checking to see if the
1671         destination exists.
1672
1673 1998-10-15  a sun  <asun@purgatorius.zoology.washington.edu>
1674
1675         * etc/afpd/auth.c (afp_changepw): fixed a bit of brain damage. i
1676         forgot that password changing needs root privileges to work.
1677
1678         * etc/afpd/auth.c (PAM_conversation): the supplied code was
1679         incorrect. i cleaned it up a bit.
1680
1681         * sys/linux/Makefile: fixed the installation bits.
1682
1683 1998-10-14  a sun  <asun@purgatorius.zoology.washington.edu>
1684
1685         * etc/afpd/auth.c (afp_changepw): don't kill the connection here
1686         if there's a problem.
1687
1688 1998-10-10  a sun  <asun@purgatorius.zoology.washington.edu>
1689
1690         * etc/afpd/enumerate.c, fork.c, ofork.c, file.c,
1691         globals.h, directory.c, auth.c: #defined MACFILELEN and used
1692         that. also made sure that files > MACFILELEN never show up.
1693
1694 1998-09-25  a sun  <asun@purgatorius.zoology.washington.edu>
1695
1696         * etc/{afpd,papd,atalkd}/bprint.c (bprint): got rid of the
1697         spurious pointer dereference.
1698
1699         * etc/afpd/ofork.c (of_alloc/of_rename): allocate the max mac file
1700         length so that we don't need to realloc.
1701
1702         * etc/afpd/filedir.c (afp_rename, afp_moveandrename): make sure to
1703         return AFPERR_BUSY if the dest has an ofork open.
1704
1705         * etc/afpd/file.c (renamefile), directory.c (renamedir), filedir.c
1706         (afp_rename): return AFPERR_SAMEOBJ if source == dest
1707
1708 1998-09-21  a sun  <asun@purgatorius.zoology.washington.edu>
1709
1710         * etc/afpd: went through and looked for places that needed to use
1711         curdir instead of dir. i think i have them all right now.
1712
1713         * etc/afpd/filedir.c (afp_moveandrename): wasn't keeping track of
1714         curdir correctly. what this really means is that cname should be
1715         fixed to return everything it changes as opposed to changing a
1716         global variable. 
1717
1718 1998-09-19  a sun  <asun@purgatorius.zoology.washington.edu>
1719
1720         * etc/afpd/config.c (configinit): do the right thing if
1721         AFPConfigInit fails.
1722
1723 1998-09-18  a sun  <asun@purgatorius.zoology.washington.edu>
1724
1725         * etc/afpd/config.c (ASP/DSIConfigInit, configfree): how 
1726         embarrassing. i wasn't doing refcounts correctly.
1727
1728 1998-09-17  a sun  <asun@purgatorius.zoology.washington.edu>
1729
1730         * etc/afpd/nfsquota.c (getnfsquota): ultrix uses dqb_bwarn instead
1731         of dqb_btimelimit.
1732
1733         * sys/ultrix/Makefile: ultrix understands the old rquota format. 
1734
1735         * etc/afpd/ofork.c (of_findname): erk. forgot to only search in
1736         the current directory. 
1737         (of_rename): erk. changed it to handle renaming a file that has
1738         been opened multiple times.
1739
1740         * etc/atalkd: made sure that if you don't specify -router, things
1741         are as they were before. 
1742
1743 1998-09-13  a sun  <asun@purgatorius.zoology.washington.edu>
1744
1745         * etc/afpd/status.c (status_flags): forgot to turn on password
1746         setting if randnum passwords are being used.
1747
1748 1998-09-11  a sun  <asun@purgatorius.zoology.washington.edu>
1749
1750         * etc/afpd/unix.c (setdirmode): erk. make sure only to setgid on
1751         directories. 
1752
1753         * bin/aecho/aecho.c (main): incorporated -c <num> (ala ping) patch
1754         from "Fred Lindberg" <lindberg@id.wustl.edu>.
1755
1756 1998-09-03  a sun  <asun@purgatorius.zoology.washington.edu>
1757
1758         * etc/afpd/directory.c (afp_closedir, afp_opendir): added these in
1759         for more AFP 2.0 compliance. unfortunately, apple's appleshare
1760         client doesn't like non-fixed directory ids.
1761
1762 1998-08-31  a sun  <asun@purgatorius.zoology.washington.edu>
1763
1764         * etc/afpd/volume.c (accessvol): the accessible volume list can
1765         now be controlled by groups and usernames. just use something of
1766         the following form: @group,name,name2,@group2,name3
1767
1768         NOTE: you can't have any spaces, and the parser forces you to
1769         include all options. in this case, there are some apple II options
1770         that need to be entered. they need to go away soon anyway.
1771
1772         * etc/afpd/auth.c (getname): oops. i forgot to copy the gecos
1773         field into a temporary buffer before calling strtok.
1774
1775 1998-08-29  a sun  <asun@hecate.darksunrising.blah>
1776
1777         * etc/atalkd/main.c (as_timer), rtmp.c (rtmp_delzones): when the 
1778         last router on an interface goes down, we need to delete the
1779         interface's zone table.
1780
1781 1998-08-28  a sun  <asun@purgatorius.zoology.washington.edu>
1782
1783         * etc/afpd/status.c (afp_getsrvrinfo): although it's never used,
1784         i've added this in to increase AFP compliance.
1785
1786         * etc/afpd/auth.c (afp_getuserinfo): added FPGetUserInfo -- this
1787         should make afpd compatible with OS 8.5's Nav Services.
1788
1789         * etc/atalkd/config.c,main.c: -router now specifies router mode
1790         with any number of interfaces.
1791
1792 1998-08-27  a sun  <asun@purgatorius.zoology.washington.edu>
1793
1794         * etc/atalkd/main.c (as_timer): well, i figured out how to set up
1795         atalkd as a single-interface router. now, you can get zones with
1796         only single interfaces! i'm only waiting on wes for the approved
1797         configuration toggle.
1798
1799 1998-08-26  a sun  <asun@purgatorius.zoology.washington.edu>
1800
1801         * libatalk/adouble/ad_lock.c, include/atalk/adouble.h: turned the
1802         ADLOCK_* into real #defines and added translations in the
1803         lock-type specific functions. this should make it easier to
1804         recompile things without screwing up.
1805
1806 1998-08-26  a sun  <asun@hecate.darksunrising.blah>
1807
1808         * etc/atalkd/nbp.c (nbp_packet): forgot to handle another local
1809         zone case.
1810
1811 1998-08-25  a sun  <asun@hecate.darksunrising.blah>
1812
1813         * etc/afpd/status.c (status_server): changed status_server to
1814         use only the obj part of obj:type@zone-style names.
1815
1816         * etc/atalkd/nbp.c (nbp_packet): unregistering wasn't handling
1817         zones properly. it was matching on anything but the actual zone.
1818
1819 1998-08-18  a sun  <asun@purgatorius.zoology.washington.edu>
1820
1821         * etc/afpd/auth.c (clrtxt_login): added pam_set_time(PAM_TTY) so
1822         that solaris' pam session setup doesn't crap out.
1823
1824 1998-08-17  a sun  <asun@purgatorius.zoology.washington.edu>
1825
1826         * etc/atalkd/multicast.c (zone_bcast): fixed to do the right thing
1827         with zip multicast info.
1828
1829 1998-08-15  a sun  <asun@purgatorius.zoology.washington.edu>
1830
1831         * etc/afpd/nfsquota.c: made the old-style rquota fields dependent
1832         upon -DUSE_OLD_RQUOTA and defined that for sunos. also included
1833         <sys/time.h> for ultrix breakage.
1834
1835 1998-08-13  a sun  <asun@purgatorius.zoology.washington.edu>
1836
1837         * etc/afpd/filedir.c (afp_rename), etc/afpd/ofork.c (of_rename): i
1838         knew that speeding up of_findname would be useful. in any case, i
1839         discovered the source of yet another small AFP non-compliance that
1840         was confusing WordPerfect. on an afp_rename, we also need to
1841         rename the corresponding ofork. i've added an of_rename() to do
1842         this.
1843
1844 1998-08-13  a sun  <asun@hecate>
1845
1846         * etc/afpd/ofork.c (of_dealloc,of_alloc): sped up dealloc by
1847         sticking refnum in ofork.
1848
1849 1998-08-12  a sun  <asun@hecate>
1850
1851         * etc/afpd/fork.c (afp_openfork): added already open attribute
1852         bits.
1853
1854         * etc/afpd/ofork.c: added a hashed of_findname.
1855
1856 1998-08-06  a sun  <asun@purgatorius.zoology.washington.edu>
1857
1858         * etc/afpd/fork.c (afp_openfork): fixed a problem with opening
1859         forks from read-only non-appledouble media.
1860
1861 1998-07-23  a sun  <asun@purgatorius.zoology.washington.edu>
1862
1863         * etc/afpd/afs.c (afs_getvolspace), etc/afpd/volume.c
1864         (getvolspace): modified them to treak afs like the other
1865         getvolspaces w.r.t. VolSpace.
1866
1867 1998-07-21  a sun  <asun@purgatorius.zoology.washington.edu>
1868
1869         * etc/afpd/unix.c (mountp): erk. i forgot that symlinks are often
1870         used for filesystems. nfs quotas sometimes failed as a
1871         result. that's fixed now.
1872
1873 1998-07-20  a sun  <asun@purgatorius.zoology.washington.edu>
1874
1875         * etc/afpd/auth.c (login): added a -DRUN_AS_USER #define so that
1876         it's simple to run the server process as a non-root user.
1877
1878 1998-07-17  a sun  <asun@purgatorius.zoology.washington.edu>
1879
1880         * etc/afpd/nfsquota.c (callaurpc, getnfsquota), volume.h: it turns
1881         out that i was opening lots of sockets with callaurpc. now, the
1882         socket gets saved and reused.
1883
1884         NOTE: quota-1.55-9 from redhat 5.x doesn't return the correct size
1885         for rquota's bsize. unless fixed, rquota will report incorrect
1886         values. 
1887         
1888 1998-07-08  a sun  <asun@purgatorius.zoology.washington.edu>
1889
1890         * etc/afpd/uam/README: added some preliminary ideas on a
1891         plug-in uam architecture. in addition, this should allow arbitrary
1892         afp function replacement. eventually, auth.c should get a
1893         bit cleaner.
1894
1895 1998-07-07  a sun  <asun@purgatorius.zoology.washington.edu>
1896
1897         * etc/afpd/nfsquota.c: added headers and redefined a couple
1898         structure fields so that sunos4 compiles.
1899
1900         * libatalk/compat/rquota_xdr.c: compile if we're using glibc <
1901         2. this should get redhat 4.2 machines. NOTE: they're still
1902         missing librpcsvc.a, so they'll need to remove that from the
1903         etc/afpd/Makefile. 
1904
1905 1998-07-06  a sun  <asun@purgatorius.zoology.washington.edu>
1906
1907         * libatalk/compat/rquota_xdr.c: it turns out that solaris is
1908         missing a couple functions needed for rquota support. here they
1909         are. 
1910
1911         * etc/afpd/unix.c (mountp): fixed the nfs detection for
1912         solaris. we still need bsd and ultrix.
1913
1914 1998-07-05  a sun  <asun@hecate>
1915
1916         * include/atalk/adouble.h: marked out space for appledouble v2. 
1917
1918 1998-07-04  a sun  <asun@hecate>
1919
1920         * etc/afpd: plugged up some ad_open leaks. made sure that we don't
1921         get negative numbers for length fields and such.
1922         
1923 1998-07-04  a sun  <asun@hecate>
1924
1925         * etc/afpd/nfsquota.c (getnfsquota): added nfs rquota
1926         support. Robert J. Marinchick <rjm8m@majink1.itc.virginia.edu>
1927         provided the initial bits from the bsd quota program. 
1928
1929         * etc/afpd/unix.c (getquota): made getquota call getfsquota or
1930         getnfsquota depending upon the type of fs. 
1931
1932         * etc/afpd/unix.c (mountp/special): munged mountp and
1933         special to return either the nfs mount point or the fs
1934         device. set the vol->v_nfs flag if it's nfs.
1935
1936         * etc/afpd/volume.c (getvolspace): xbfree and xbtotal will now
1937         honor results returned from uquota_getvolspace.
1938         
1939 1998-06-29  a sun  <asun@purgatorius.zoology.washington.edu>
1940
1941         * etc/afpd/file.c (copyfile): mmapping the file copy only helps on
1942         multiple copies. as that's not the case here, i've reverted to
1943         just doing read + write.
1944         
1945 1998-06-28  a sun  <asun@purgatorius.zoology.washington.edu>
1946
1947         * sys/linux/Makefile: fixed the redhat-style atalk
1948         installation. also, it doesn't over-write an existing
1949         /etc/rc.d/init.d/atalk file.
1950
1951         * etc/afpd, libatalk/adouble/ad_write.c: removed <sys/file.h> and
1952         </usr/ucbinclude/sys/file.h> so that we rely upon adouble.h.
1953
1954 1998-06-19  a sun  <asun@purgatorius.zoology.washington.edu>
1955
1956         * changed sys/linux/Makefile to install a redhat-style sysv atalk
1957         script instead of the bsd one.
1958
1959         * include/atalk/adouble.h: moved same-name list stub to struct
1960         ad_adf. 
1961         
1962 Thu Jun 18 18:20:28 1998  a sun  <asun@purgatorius>
1963
1964         * changed to asunx.y.z notation as i was getting tired of
1965         increasing numbers. as this version is undergoing a fairly
1966         substantial overhaul, i bumped it to 2.1.0. don't ask why asun1.0
1967         never existed. i just started at 2.0.
1968
1969         * ofork (etc/afpd/{ofork.c,ofork.h,fork.c}: put in skeleton code
1970         for hashed-by-name oforks and oforks which group by name to help
1971         with byte locks and of_findname.
1972
1973         * adouble (include/atalk/adouble.h): started implementing
1974         appledouble v2. mostly, i added bits to headers. v2 has wonderful
1975         bits that should make prodos support much less clunky, allow
1976         persistent dids, and allow msdos support.
1977
1978         * finder info: added bits to directory.c and file.c describing the
1979         actual contents of finder info (from IM: Toolbox
1980         Essentials). also, set default directory view to an allowed value
1981         thanks to a suggestion from the appledouble v2 specs. that should
1982         help with read-only media.
1983
1984         * etc/afpd/{directory.c,volume.c,afs.c,directory.h}: added
1985         DIRDID_ROOT and DIRDID_ROOT_PARENT so people know that these did's
1986         are reserved.
1987         
1988 Wed Jun 17 11:54:49 1998  a sun  <asun@purgatorius>
1989
1990         * well, i'm starting a changelog as i keep forgetting what i've
1991         done. 
1992
1993         * locks: revamped them to be more in line with what should
1994         happen. currently, i've reverted back to flock-style locks as i'll
1995         need to stick in more code to get fcntl-style locks to work
1996         properly. specifically, i think modifying of_alloc/of_dealloc to
1997         keep track of locks, fds, and names should solve the problem with
1998         fcntl locks being process-specific and not fd specific.
1999