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