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