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