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