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