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