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