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