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