]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/blob - contrib/amd/ChangeLog
MFC r368207,368607:
[FreeBSD/stable/10.git] / contrib / amd / ChangeLog
1 2014-10-28  Christos Zoulas <christos@zoulas.com>
2
3         *******************************************************************
4         *** Released am-utils-6.2                                       ***
5         *******************************************************************
6
7         * add ylwrap.amd, sick and tired of patching broken ylwrap.
8
9 2014-09-05  Christos Zoulas <christos@zoulas.com>
10
11         * factor out the size check for both readdir methods
12           (raven at themaw.net)
13
14 2014-09-03  Christos Zoulas <christos@zoulas.com>
15
16         * configure test for 64 bit xdr function (raven at themaw.net)
17
18 2014-09-01  Christos Zoulas <christos@zoulas.com>
19
20         * bug fix from raven at themaw.net to prevent writing v3 handle
21           to a v2 structure.
22
23 2014-07-21  Christos Zoulas <christos@zoulas.com>
24
25         * fix permission problems with access
26         * auto_nfs_version = 3 now works for me.
27
28 2014-07-20  Christos Zoulas <christos@zoulas.com>
29
30         * refresh some autoconf files
31         * force autoconf version since earlier versions don't work
32         * changes from raven at themaw.net to support NFSv3 for automounted
33           toplevel filesystems presented to the list in May. A few bug fixes
34           and integration changes by me. The code now works well enough to
35           mount the filesystem with NFSv3 and automount children but readdir
36           does not work yet (so no listing of automounted filesystems).
37           The new code is not enabled by default. To enable use
38                 auto_nfs_version = 3
39           in your configuration file.
40
41 2014-03-26  Christos Zoulas <christos@zoulas.com>
42
43         From Ian Kent <ikent@redhat.com>
44
45         * use mktemp in scripts/fixrmtab
46         * fix documentatio nits
47         * [linux] Add ext2, ext3, ext4 specific mount options
48         * fix tcpwrappers (hosts.{allow,deny} problems for specific host
49           entries
50
51 2014-03-20  Christos Zoulas <christos@zoulas.com>
52
53
54         * don't background autofs umount
55         * avoid fh NULL dereference on umount
56         * handle ENOENT umount return for autofs mounts
57         * fix error message in get_nfs_version
58         * fix debug log deadlock
59         * [linux] retry umount on EBUSY
60         * handle failed umount on exit
61
62 2014-03-09  Christos Zoulas <christos@zoulas.com>
63
64         * Remove BSD advertising clause.
65         * Remove expn program which is not used by anything
66
67 2013-12-05  Christos Zoulas <christos@zoulas.com>
68
69         * Change the way we handle multiple lex scanners and yacc parsers
70           in a single program. Our old patch to ylwrap does not work anymore
71           because the bison parsers need shared symbols that start with yy
72           and we can't easily select which ones work. So now we use -P and
73           -p to let lex and yacc do the work for us. This requires a patch
74           to ylwrap, but it is smaller.
75
76
77 2013-12-05  Christos Zoulas <christos@zoulas.com>
78
79         * Change the way we handle multiple lex scanners and yacc parsers
80           in a single program. Our old patch to ylwrap does not work anymore
81           because the bison parsers need shared symbols that start with yy
82           and we can't easily select which ones work. So now we use -P and
83           -p to let lex and yacc do the work for us. This requires a patch
84           to ylwrap, but it is smaller.
85
86 2013-05-14  Christos Zoulas <christos@zoulas.com>
87
88         * update to handle new autoconf and regen files
89
90 2012-11-23  Christos Zoulas <christos@zoulas.com>
91
92         * recognize mountport=, noacl options
93         * simplify the bootstrap process, by forcing
94           all the files to be rebuild with autoreconf -f - i
95
96 2012-10-03  Christos Zoulas <christos@zoulas.com>
97
98         * add missing ops_nfs4.c to the Makefile.am
99
100 2012-09-14  Christos Zoulas <christos@zoulas.com>
101
102         * add locking option handling for lustre
103         * fix noatime, nodiratime, mandlock for linux
104
105 2012-07-25  Christos Zoulas <christos@zoulas.com>
106
107         * bug fixes for lustre rhost parsing
108
109 2012-06-27  Christos Zoulas <christos@zoulas.com>
110
111         * Disable 1/2-baked sun map support to avoid SIGSEGV
112
113 2012-06-16  Christos Zoulas <christos@zoulas.com>
114
115         *******************************************************************
116         *** Released am-utils-6.2-rc1                                   ***
117         *******************************************************************
118
119         * Fix libtool.m4 to work with later versions of autoconf.
120         * In buildall, use eval so that quoted strings work
121         * Centralize nfs version checking function, and introduce
122           new configuration variable nfs_vers_ping, which is the
123           max version we ping for. This is not documented yet, because
124           there might be a better way separate the max version we can
125           use vs the max version we ping for.
126
127 2012-06-09  Christos Zoulas <christos@zoulas.com>
128
129         * fix issue with parsing nfsv4 security option strings
130
131 2012-05-01  Christos Zoulas <christos@zoulas.com>
132
133         * Handle EPERM return from v4 file handles
134           in old linux kernels
135
136 2012-03-09  Christos Zoulas <christos@zoulas.com>
137
138         * fix linux autofs detection
139         * fix wrong types in new amq mount xdr processing
140
141 2012-01-25  Christos Zoulas <christos@zoulas.com>
142
143         * FreeBSD portability fixes
144
145 2012-01-23  Christos Zoulas <christos@zoulas.com>
146
147         * Avoid type punned warnings
148
149 2011-12-29  Christos Zoulas <christos@zoulas.com>
150
151         * fix bug I introduced in get_nfs_version that caused it to return 0
152         * add direct support for ext{2,3,4}
153
154 2011-12-15  Christos Zoulas <christos@zoulas.com>
155
156         * Include <linux/fs.h> on linux, to grab extra mount flags
157         * Add support for lustre
158
159 2011-11-28  Christos Zoulas <christos@zoulas.com>
160
161         * For nfsl mounts, match against either the short local
162           host name or the fqdn name.
163
164 2011-10-06  Christos Zoulas <christos@zoulas.com>
165
166         * Add NFSv4 support (loosely based on Ramya's code).
167           Currently if the NFSv4 mount fails with ENOENT we fail
168           back to NFSv3, unless -DNO_FALLBACK.
169         * Replace strdup with xstrdup. It is not nice to replace
170           system functions with ones that behave differently.
171         * Add various consistency checks (caller function checks
172           variable for NULL, but callee does not).
173         * Fix error handling in various paths.
174         * Don't check before using XFREE(). free(NULL) works.
175
176 2011-09-15  Christos Zoulas <christos@zoulas.com>
177
178         * amq -i addition (prints info about the map files)
179
180 2011-09-14  Christos Zoulas <christos@zoulas.com>
181
182         * Solaris OS and compiler fixes from:
183                 Hofmann, Frank <Frank.Hofmann@morganstanley.com>
184                 Sayle, Alex <Alex.Sayle@morganstanley.com>
185           - (void)&var generates warnings, removed
186           - __inline is invalid, changed with inline
187           - <sys/socket.h> and other headers have extra dependendcies
188                         `
189 2011-08-11  Christos Zoulas <christos@zoulas.com>
190
191         * fix potential buffer overflow in expand_error()
192           (Richard Kettlewell). Does not seem to be exploitable.
193
194         * simplify %option parsing to appease ancient flex.
195
196 2011-06-21  Christos Zoulas <christos@zoulas.com>
197
198         * add support for linux autofs version 5 (untested)
199
200 2011-06-18  Christos Zoulas <christos@zoulas.com>
201
202         * roll back to an older version of libtool that works
203
204         * newer versions of config.guess and config.sub
205
206         * minor fixes to buildall
207
208 2011-05-19  Christos Zoulas <christos@zoulas.com>
209
210         * m4/macros/libtool.m4: for AIX AC_LANG_PROGRAM is incorrectly
211           used and the latest autoconf gives an error. For now just
212           quote it.
213
214         * configure.in: Fedora Core 15 and RedHat 6 now don't define
215           af_family_t in <linux/socket.h>, but in <bits/sockaddr.h>.
216           Include <sys/socket.h> so that we get <bits/sockaddr.h>
217           indirectly. This caused the <linux/nfs_mount.h> detection
218           test to fail.
219
220 2010-11-24  Erez Zadok  <ezk@fsl.cs.sunysb.edu>
221
222         * m4/macros/os_cflags.m4: for linux, define _GNU_SOURCE (to get
223         definitions for O_LARGEFILE and more).
224
225 2010-11-20  Christos Zoulas <christos@zoulas.com>
226
227         * Update news items, add release readme, mark as rc1
228
229         * Fix addopts code to work with options that are key=value
230           when the built-in hasmntopt() code is not used. The problem
231           was that the code passed "key=" to hasmntopt not "key".
232
233 2009-12-10  Christos Zoulas <christos@zoulas.com>
234
235         * Copy all fields of the am_opts structure
236           When we introduced am_loc we also added a function to
237           create a duplicate of an am_opts structure. As it turns
238           out, that only made a partial copy of the struct and some
239           fields (e.g. opt_cache) was left blank in the new structure.
240           Unfortunately any code that was checking the options
241           through the mntfs structure was mislead by the partial
242           copy: caching was disabled completely, for example, and
243           since browsing relies on caching being enabled it wasn't
244           working either.
245           From: Krisztian Kovacs <Kris.Kovacs@morganstanley.com>
246
247         * Initialize RPC authentication flavor to AUTH_UNIX instead
248           of zero. RHEL 5 uses version 6 of the mount_arg structure
249           that includes the desired RPC authorization flavour.
250           Unfortunately amd initializes that value to zero, meaning
251           AUTH_NULL, resulting in all NFS servers denying operations.
252           From: Krisztian Kovacs <Kris.Kovacs@morganstanley.com>
253
254         * Make sure to remove nodes in the proper order when going
255           down. Depending on what order the nodes got created it's
256           possible that the parent of a node has a bigger am_mapno
257           (index in exported_ap[]) so that it gets freed before
258           its child while the child's am_parent pointer is still
259           pointing to the already freed block of memory.
260           This change makes sure that umount_exported() cleans up
261           all children of a node first before freeing the node.
262           From: Krisztian Kovacs <Kris.Kovacs@morganstanley.com>
263
264         * Fix Linux-specific stuff in ops_tmpfs.c
265           AUTOFS_TMPFS_FS_FLAGS is defined only in the Linux-specific
266           conf_linux.c file, so it cannot be built on Solaris.
267           From: Krisztian Kovacs <Kris.Kovacs@morganstanley.com>
268
269         * Add missing parenthesis to fix defined(XXX
270           From: Krisztian Kovacs <Kris.Kovacs@morganstanley.com>
271
272         * In the previous commit we've already made a change that
273           makes this code unnecessary since the node is returned
274           even if the backing file server is known to be down.
275           Since the code path is unused it should be removed.
276           From: Krisztian Kovacs <Kris.Kovacs@morganstanley.com>
277
278         * amfs_generic_lookup_child() tries to find an alternate
279           file server if it detects that the current one is down.
280           However, in the comparison used to decide if a possible
281           mount is the same as the current one it compares the am_loc
282           pointers instead of the actual mntfs pointers. Since
283           amfs_lookup_one_location() creates a brand new am_loc
284           structure for the returned mntfs structure the am_loc
285           pointer will be different even if the mntfs it's pointing
286           to is the same.
287           This tricks amfs_generic_lookup_child() think it has
288           found an alternate file server while it hasn't and thus
289           starts multiple racing mounts for the very same node and
290           mntfs.
291           From: Krisztian Kovacs <Kris.Kovacs@morganstanley.com>
292
293         * In the new am_loc scheme mounted mntfs structures still
294           have their mf_fo structure left intact. So when restart
295           creates a fake mntfs for an already mounted filesystem it
296           should not free mf_fo right away.
297           From: Krisztian Kovacs <Kris.Kovacs@morganstanley.com>
298
299         * Setting the error flag of the mntfs for which the share
300           is already mounted results in the mount point not being
301           removed when it times out. (Amd considers it an error
302           mntfs and thus umount becomse a no-op.)
303           From: Krisztian Kovacs <Kris.Kovacs@morganstanley.com>
304
305         * Right now AMD sets all timeout values to their defaults
306           even if you explicitly set them to zero. This patch
307           introduces separate flags that store if the respective
308           values have been set and the code path setting default
309           values checks these flags instead of testing the values
310           for zero. [Linux only]
311           From: Krisztian Kovacs <Kris.Kovacs@morganstanley.com>
312
313         * Fix mntfs related lookup/(un)mount race conditions, by
314           introducing a new structure linking an mntfs to a node.
315           From: Krisztian Kovacs <Kris.Kovacs@morganstanley.com>
316
317         * We have to free the buffers allocated by the XDR routines when
318           decoding the mount response after copying them to their final place.
319           From: Krisztian Kovacs <Kris.Kovacs@morganstanley.com>
320
321 2009-12-09  Christos Zoulas <christos@zoulas.com>
322
323         * Free continuation in amfs_retry() if we don't call amfs_bgmount()
324           Normally it's amfs_bgmount() which frees the continuation. However, if
325           the mount is already in progress and we're in amfs_retry() for another
326           node we don't try mounting the filesystem once again. Still, we have
327           to free the continuation as we won't get called again and thus would
328           leak the continuation structure and our am_loc references.
329           From: Krisztian Kovacs <Kris.Kovacs@morganstanley.com>
330
331         * Fix use-after-free and double free of mntfs private data
332           ops_nfs.c(nfs_init) does not clear private data pointer after free().
333           This leads to use-after-free and double free in case mount() fails.
334           (found by valgrind)
335           From: Krisztian Kovacs <Kris.Kovacs@morganstanley.com>
336
337 2009-11-23  Christos Zoulas <christos@zoulas.com>
338
339         * The temporary filename buffer was leaked in lock_mtab().
340           From: Krisztian Kovacs <Kris.Kovacs@morganstanley.com>
341
342 2009-10-27  Christos Zoulas <christos@zoulas.com>
343
344         * Deal with errno.h->sys/errno.h better
345
346 2009-10-26  Christos Zoulas <christos@zoulas.com>
347
348         * Fix issue with autoconf 2.63
349
350         * Fix compile warnings for gcc-4.4.x
351
352 2009-04-15  Christos Zoulas <christos@zoulas.com>
353
354         * Share the LDAP connection between different maps to save resources
355           on the LDAP server. (Olaf Flebbe <o.flebbe@science-computing.de>)
356
357 2009-03-20  Christos Zoulas <christos@zoulas.com>
358
359         * Fix largefile re-definitions
360
361         * Fix compilation error caused in previous patch
362
363 2009-02-19  Christos Zoulas <christos@zoulas.com>
364
365         * Add a synchronous unmount amq rpc that will wait for the remote
366           filesystem to be unmounted, or return an error. Enabled by amq -uu
367
368 2009-01-11  Erez Zadok  <ezk@fsl.cs.sunysb.edu>
369
370         * amd/ops_udf.c: don't define functions/variables which may not be
371         used.
372
373         * amd/ops_tmpfs.c (mount_tmpfs): force gcc not to complain about
374         unused variables.
375
376         * config.guess.long: properly support Fedora Core.
377
378 2009-01-09  Christos Zoulas <christos@zoulas.com>
379
380         * Fix nfs mounts on linux 2.6.26 by explicitly initializing context.
381
382         * Treat an empty sublink as an unset sublink; this allows us to
383           say sublink:=; in a spec to override the default. (This produces
384           Bad selector error, but it works. XXX: We need to decide how to
385           unset a selector. I proposed an unset keyword a while ago).
386
387 2009-01-06  Christos Zoulas <christos@zoulas.com>
388
389         * re-renerate all generated files with newer versions of the
390           auto-tools.
391
392         * move INSTALL to INSTALL.am-utils to avoid conflicts
393
394         * fix incompatibilities with new m4 and new autoconf.
395
396         * add UDF filesystem support.
397
398         * fix NetBSD nfs file handle detection.
399         
400 2009-01-02  Christos Zoulas <christos@zoulas.com>
401
402         * add nocasetrans, nojoliet, rrcaseins for cd9660 filesystems
403
404 2008-12-03  Christos Zoulas <christos@zoulas.com>
405
406         * allow ldap queries try a comma-separated list of servers given as:
407
408                 ldap_hostports = host1:port1,host2,host3:port3
409
410           original patch from Florian Geyer
411
412 2008-09-19  Christos Zoulas <christos@zoulas.com>
413
414         * the auth_create gid on NetBSD is int
415
416         * deal with lossage from flex -P
417
418         * fix missing/incorrect prototypes
419
420 2008-09-17  Christos Zoulas <christos@zoulas.com>
421
422         * fix manual page section issues (sorting, non-existant)
423
424         * add missing forward declarations
425
426         * avoid null pointer derefs (coverity)
427
428         * more portable endian detection support
429
430         * implement tmpfs support
431
432         * use sizeof var instead of constant
433
434         * fix yyerror declaration and definition
435
436         * fix yy function renaming, and correct some renaming issues.
437
438         * work around automake < 1.9 issue where ylwrap is not being run
439           for a single yacc or lex file.
440
441         * NetBSD
442           - handle headers that need other headers to compile
443           - add exfs and tmpfs specific glue
444           - add options log, noatime, nocoredump, nodevmtime, softdep,
445             symperm, union
446           - NetBSD's new mount system call needs the size of the opaque
447             filesystem specific structure, but passing 0 for now works.
448             We would need to change a lot more code to pass the size from
449             the fs-specific calls, so for now punt.
450           - recvfrom takes socklen_t * on NetBSD
451           - handle newer NetBSD using statvfs
452           - NetBSD calls its ufs ffs
453
454         * Linux
455           - Most recent kernels have trouble with trying to parse the pid
456             hostname and do locking. What before was a silent failure, now
457             there is a warning printed and the mount is rejected. This is
458             the simplest fix:
459             (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=479884)
460
461 2007-04-13  Erez Zadok  <ezk@cs.sunysb.edu>
462
463         * amd/sun_map.c (sun_append_str): When translating '&' from Sun
464         automounter maps, replace it with "${key}" in the Amd map, not
465         with the value of the key at the time.  This way '*' maps work
466         too.
467
468         * config.guess.long: don't use -q option to grep because some
469         systems don't support it.  Bug fix for solaris.
470
471 2007-03-11  Christos Zoulas  <christos@zoulas.com>
472
473         * amd/opts.c (expand_op): Don't call xstrlcpy() to truncate a
474         string.  It causes spurious xstrlcpy() syslog() errors.  Use
475         memcpy() and explicitly terminate the string.
476
477 2007-01-20  Erez Zadok  <ezk@cs.sunysb.edu>
478
479         * updated copyright year to 2007 on all files.
480
481 2006-12-27  Erez Zadok  <ezk@cs.sunysb.edu>
482
483         * minor new port: ia64-hp-hpux11.23
484
485         * m4/macros/check_libwrap_severity.m4 (LIBS): also test if caller
486         needs to define rfc931_timeout.
487
488         * amd/sun2amd.c: define rfc931_timeout and allow/deny_severity for
489         libwrap.
490
491         * amd/amq_svc.c: some versions of libwrap require the caller to
492         define rfc931_timeout in addition to allow/deny_severity.
493
494         * amd/amfs_toplvl.c (amfs_toplvl_init): properly detect when
495         forced unmount functionality exists for all systems.
496
497         * libamu/mount_fs.c (compute_nfs_args): reset nfs_args_t->pathconf
498         only if field exists.
499
500         * conf/nfs_prot/nfs_prot_hpux11.h: prevent HPUX 11.23 from
501         including <tiuser> or <sys/tiuser> (TLI definitions are already
502         included from elsewhere).
503
504         * configure.in: detect nfs_args_t->pathconf field.
505
506 2006-11-27  Erez Zadok  <ezk@cs.sunysb.edu>
507
508         * doc/Makefile.am: properly publish html files using newer
509         text2html.
510
511 2006-11-27  Erez Zadok  <ezk@shekel.local>
512
513         * doc/Makefile.am: obfuscate emails in ChangeLog before it is
514         published on web site.
515
516         * obfuscate many more emails in the distro, esp. of files which get
517         posted on the am-utils web site.
518
519 2006-11-26  Erez Zadok  <ezk@shekel.local>
520
521         * minor new port: i386-apple-darwin8.8.1.
522
523         * doc/am-utils.texi: remove obvious URLs used by spammers, and
524         replace them with links to the am-utils web site, which uses PNG
525         images to obfuscate the actual email/mailman URLs.
526
527 2006-10-30  Erez Zadok  <ezk@cs.sunysb.edu>
528
529         * doc/am-utils.texi (Password maps): minor typo reported by
530         Christoph P. Kukulies.
531
532 2006-10-26  Erez Zadok  <ezk@cs.sunysb.edu>
533
534         * minor new port: i386-pc-linux-fc6.
535
536         * m4/macros/linux_headers.m4: handle newer Linux kernels which
537         removed UTS_RELEASE from <linux/version.h>.
538
539 2006-10-25  Erez Zadok  <ezk@cs.sunysb.edu>
540
541         * minor new ports: i386-pc-linux-centos4.4 and
542         powerpc-apple-darwin8.7.0.
543
544         * config.guess.long: recognize CentOS Linux.
545
546 2006-06-20  Erez Zadok  <ezk@cs.sunysb.edu>
547
548         * minor new port: i386-pc-solaris2.11-nexentaos (GNU/OpenSolaris).
549
550         * config.guess.long: recognize NexentaOS (GNU/OpenSolaris)
551
552         * config.guess, config.sub: updates from latest official GNU
553         distributions.
554
555 2006-05-11  Erez Zadok  <ezk@cs.sunysb.edu>
556
557         * Minor new ports: i386-unknown-freebsd6.1 (RELEASE),
558         powerpc-apple-darwin8.6.0, and i386-unknown-openbsd3.9.
559
560 2006-05-10  Erez Zadok  <ezk@cs.sunysb.edu>
561
562         * libamu/mount_fs.c (compute_nfs_attrcache_flags): fix signedness
563         problems on IRIX-6.5.
564
565         * conf/autofs/autofs_solaris_v1.c (xdr_umntrequest): fix
566         signedness problems on IRIX-6.5.
567
568 2006-05-01  Erez Zadok  <ezk@cs.sunysb.edu>
569
570         * configure.in: check if libc already includes dbm functionality
571         (as in FreeBSD 6), then don't bother to check specific libraries
572         such as libdbm, gdbm, etc.
573
574 2006-04-21  Erez Zadok  <ezk@cs.sunysb.edu>
575
576         * configure.in: detect G/DBM support via gdbm_compat library
577         (Debian 3.1).
578
579         * minor new port: powerpc-apple-darwin8.5.0
580
581 2006-04-20  Erez Zadok  <ezk@cs.sunysb.edu>
582
583         * scripts/amd.conf-sample, scripts/amd.conf.5, doc/am-utils.texi,
584         NEWS: document new nfs_allow_any_interface parameter.
585
586         * include/am_compat.h (INADDR_LOOPBACK): define INADDR_LOOPBACK if
587         not defined, since some systems don't have it.
588
589 2006-04-20  Nick Williams <Nick.Williams@morganstanley.com>
590
591         * libamu/wire.c (is_interface_local): new boolena function to
592         determine if address represents any of the local interfaces.
593         (getwire): more properly check if address equals INADDR_LOOPBACK,
594         not if IFF_LOOPBACK is not (the latter isn't as correct).
595
596         * include/am_utils.h: extern for new is_interface_local() function.
597
598         * conf/transp/transp_{sockets,tli}.c: don't define INADDR_LOOPBACK
599         here but in am_compat.h
600
601         * amd/nfs_prot_svc.c (nfs_program_2): if
602         nfs_allow_any_interface=yes, then allow NFS packets from any local
603         interface (not just 127.0.0.1).
604
605         * amd/conf.c (gopt_nfs_allow_any_interface): implement the new
606         amd.conf parameter nfs_allow_any_interface.
607
608         * amd/amd.h (CFM_NFS_ANY_INTERFACE): define new global flag when
609         al interfaces are acceptable for local NFS packets.
610
611 2006-04-18  Christos Zoulas  <christos@zoulas.com>
612
613         * amd/opts.c: Add support for optionally specifying the hostname
614         to match against the netgroup in the netgrp and netgrpd selectors.
615
616 2006-04-16  Erez Zadok  <ezk@cs.sunysb.edu>
617
618         * libamu/mtab.c (hasmntval): fix inverted meaning of error from
619         hasmntvalerr().
620
621 2006-04-14  Erez Zadok  <ezk@cs.sunysb.edu>
622
623         * libamu/mount_fs.c (compute_nfs_attrcache_flags): use new
624         hasmntvalerr() function to set attribute cache values only if they
625         were set (regardless whether they were set to zero or a non-zero
626         value).  Before, we were unable to distinguish between an error to
627         parse an option, and a user who actually wanted to set an
628         attribute-cache value to 0.  This now fixes an important
629         performance bug that Amd was turning off the attribute caches even
630         for regular (non-automounter) NFS mounts.
631
632         * libamu/mtab.c (hasmntvalerr): new function to set the value of
633         an option into an integer, but ONLY if that options was set and
634         parsed correctly.  This function returns 1 on error, 0 on success
635         (instead of always setting the option value to 0).
636         (hasmntval): wrapper function around hasmntvalerr, which maintains
637         backwards compatibility (always sets option value to 0, even on
638         error to parse the option).
639
640         * amd/nfs_subr.c (fh_to_mp3): use long int printf format for
641         fhh_pid.
642
643 2006-04-05  Christos Zoulas  <christos@zoulas.com>
644
645         * amd/amfs_generic.c (amfs_lookup_mntfs): fix use-after-free bug
646         (Coverity).
647
648 2006-03-27  Erez Zadok  <ezk@cs.sunysb.edu>
649
650         * doc/am-utils.texi, scripts/{amd.conf.5,amd.conf-sample}:
651         document new nfs_retransmit_counter_toplvl and
652         nfs_retry_interval_toplvl global amd.conf parameters.
653
654         * amd/conf.c (gopt_nfs_retransmit_counter_toplvl,
655         (gopt_nfs_retry_interval_toplvl): parse amd.conf
656         nfs_retransmit_counter_toplvl and nfs_retry_interval_toplvl global
657         parameters.
658
659         * amd/amfs_toplvl.c (amfs_toplvl_mount): support setting toplvl
660         timeo/retrans parameters for Amd's toplvl mounts, separately from
661         all other UDP or NFS mounts.
662
663         * amd/amd.h: define a new timeo/retrans parameter for toplvl
664         mounts.
665
666 2006-03-22  Erez Zadok  <ezk@cs.sunysb.edu>
667
668         * minor new port: i386-pc-linux-suse10.1 (beta 8).
669
670 2006-03-21  Christos Zoulas  <christos@zoulas.com>
671
672         * amd/am_ops.c (merge_opts): Remove useless check found by
673         Coverity; xmalloc never returns NULL.
674
675 2006-03-21  Erez Zadok  <ezk@cs.sunysb.edu>
676
677         * minor new ports: i386-pc-linux-fc5.
678
679         * amd/info_ldap.c: as of Linux Fedora Core 5 (which comes with
680         openldap-2.3.9), the ldap.h headers deprecate several functions
681         used in this file, such as ldap_unbind.  You get compile errors
682         about missing extern definitions.  Those externs are still in
683         <ldap.h>, but surrounded by an ifdef LDAP_DEPRECATED.  I am
684         turning on that ifdef at the top of info_ldap.c, under the
685         assumption that the functions may be deprecated, but they still
686         work for this (older?) version of the LDAP API.  It gets am-utils
687         to compile, but it is not clear if it will work perfectly.
688
689         * libamu/xdr_func.c (xdr_am_mountres3_ok), amq/amq_xdr.c
690         (xdr_amq_mount_tree, xdr_amq_mount_tree_p,
691         xdr_amq_mount_info_list, xdr_amq_mount_tree_list), amq/amq.c
692         (show_mti), amd/amq_subr.c (xdr_amq_setopt, xdr_amq_mount_subtree,
693         xdr_amq_mount_tree, xdr_amq_mount_tree_list, xdr_amq_mount_tree),
694         libamu/xdr_func.c (xdr_am_mountres3_ok): use casing magic to stop
695         GCC-4.1 from complaining about "dereferencing type-punned pointer
696         will break strict-aliasing rules" here (but not elsewhere).
697
698 2006-03-20  Christos Zoulas  <christos@zoulas.com>
699
700         * libamu/wire.c: avoid potential dereferencing of a NULL pointer
701         (Coverity).
702
703         * hlfsd/homedir.c (delay): remove unnecessary check for NULL
704         pointer (Coverity).
705
706         * fsinfo/fsi_analyze.c (analyze_dkmounts, analyze_mounts,
707         analyze_mounts): avoid potential dereferencing of a NULL pointer
708         (Coverity).
709
710         * conf/transp/transp_sockets.c (create_amq_service): avoid
711         potential dereferencing of a NULL pointer (Coverity).
712
713         * amd/sched.c (sigchld): properly check for the end of the waiting
714         process list (Coverity).
715
716         * amd/mapc.c (mapc_create): initialize 'modify' to zero (Coverity).
717
718         * amd/autil.c (amfs_mkcacheref, am_unmounted): avoid potential
719         dereferencing of a NULL pointer (Coverity).
720
721         * amd/amfs_generic.c (amfs_lookup_mntfs): free def_opts before
722         reusing it (memory leak bug detected by Coverity).
723         (amfs_bgmount): avoid potential dereferencing of a NULL pointer
724         (Coverity).
725
726         * amd/am_ops.c (merge_opts): no need to check if newstr is NULL
727         (bug detected by Coverity).
728
729 2006-03-08  Ion Badulescu  <ionut@moisil.badula.org>
730
731         * amd/nfs_subr.c (mp_to_fh): fixed old-style filehandles--the pid
732         comparison was failing.
733
734 2006-03-08  Erez Zadok  <ezk@cs.sunysb.edu>
735
736         * configure.in: properly test for either <gdbm/ndbm.h> or
737         <gdbm-ndbm.h> (unfortunately, Autoconf will map both names to the
738         same $ac_cv_* variable name).  Some systems support one header or
739         another.  Patch inspired by work Debian did.
740
741 2006-02-16  Daniel P. Ottavio  <ottavio@vm.fsl.cs.sunysb.edu>
742
743         * amd/sum_map_tok.l: Fixed a bug in a regular expression that
744         prevented dashes in hostnames.  This was posted in BZ by Thomas
745         A. Fine.
746
747         * README.sun2amd: Fixed a typo.  Sentence mentions use of autofs
748         type when it should be host type.
749
750 2006-01-04  Erez Zadok  <ezk@cs.sunysb.edu>
751
752         * doc/am-utils.texi (auto_attrcache Parameter): revise discussion
753         to mention pros and cons of turning on/off this parameter,
754         including impact on Amd's performance, and ways to improve
755         performance while minimizing the window of vulnerability in which
756         kernel may return the wrong (cached) attributes.
757
758 2006-01-02  Erez Zadok  <ezk@cs.sunysb.edu>
759
760         * updated copyright year to 2006 on all files.
761
762 2005-12-20  Erez Zadok  <ezk@cs.sunysb.edu>
763
764         * include/am_utils.h, conf/transp/transp_tli.c (amu_svc_register,
765         register_autofs_service): use a consistent prototype for the
766         dispatch function of the autofs service de/registration functions.
767
768 2005-12-03  Erez Zadok  <ezk@cs.sunysb.edu>
769
770         * minor new ports: i386-unknown-netbsdelf2.1,
771         i386-unknown-netbsdelf3.0 (RELEASE), and i386-unknown-openbsd3.8.
772
773 2005-12-02  Erez Zadok  <ezk@cs.sunysb.edu>
774
775         * m4/macros/check_field.m4: remove double inclusion of msdosfs
776         headers, which are included in mount_header1.h (netbsd 2.1 doesn't
777         protect <msdosfs/msdosfsmount.h> which causes compile errors).
778
779 2005-11-08  Erez Zadok  <ezk@cs.sunysb.edu>
780
781         * minor new port: i386-unknown-freebsd6.0 (RELEASE)
782
783 2005-10-26  Erez Zadok  <ezk@cs.sunysb.edu>
784
785         * amd/amq_subr.c (amqproc_pawd_1_svc): repeatedly resolve path in
786         Amd, not in pawd (to avoid repeated network RPCs).
787
788         * amq/pawd.c (transform_dir): move repeated path resolution into Amd.
789
790 2005-10-25  Erez Zadok  <ezk@cs.sunysb.edu>
791
792         * amq/pawd.c (transform_dir): resolve path repeatedly until
793         finished.  Bug fix from Jonathan Chen <jon+amd-at-spock.org>.
794         Added safety check to prevent infinite loops.
795
796 2005-10-19  Erez Zadok  <ezk@cs.sunysb.edu>
797
798         * doc/am-utils.texi (opts Option): document new pcfs options
799         longname, nowin95, shortname, user=N, group=N, mask=N, and
800         dirmask=N.
801
802         * amd/ops_pcfs.c (mount_pcfs): process new pcfs options longname,
803         nowin95, shortname, user=N, group=N, mask=N, and dirmask=N.
804
805         * include/am_compat.h: provide compatibility mnttab string names,
806         if needed, for pcfs mount options longname, nowin95, shortname,
807         user=N, group=N, mask=N, and dirmask=N.
808
809         * include/am_utils.h: extern for hasmntstr().
810
811         * libamu/mtab.c (hasmntstr): new function to return the string
812         value following a mount option, up to the next comma-delimited
813         options.
814
815         * configure.in: check for mnttab and pcfs options longname,
816         nowin95, and shortname.
817
818         * Makefile.am (EXTRA_DIST_M4): distribute new macro
819         check_mnt2_pcfs_opt.m4.
820
821         * m4/macros/check_mnt2_pcfs_opt.m4: new macro to check for pcfs
822         mnttab and mount options.
823
824 2005-10-18  Erez Zadok  <ezk@cs.sunysb.edu>
825
826         * libamu/mount_fs.c (print_nfs_args): print nfs_args->addr
827         correctly, depending if it's a pointer or not.
828
829         * conf/sa_dref/sa_dref_*.h: for each NFS_SA_DREF macro, also
830         #define NFS_ARGS_T_ADDR_IS_POINTER if nfs_args->addr is a pointer
831         or an embedded structure, so we can tell how to print it.
832
833         * libamu/mount_fs.c (print_nfs_args): print nfs_args->addrlen
834         field, if it exists.
835
836         * configure.in: check for nfs_args->addrlen field.
837
838         * wire-test/wire-test.c (main), libamu/mount_fs.c
839         (print_nfs_args), fixmount/fixmount.c (inetresport,
840         clnt_create_timeout), amq/pawd.c (transform_dir), amq/amq.c
841         (main), amd/srvr_nfs.c (find_nfs_srvr), amd/autil.c
842         (amfs_mount): document that as per POSIX, we don't need to set the
843         sa_len/sin_len fields in struct sockaddr/sockaddr_in.  The field
844         is used only internally in the kernel.  See
845         www.awprofessional.com/articles/article.asp?p=169505&seqNum=2&rl=1
846
847         * fixmount/fixmount.c (inetresport): initialize sockaddr_in
848         structure before filling in some fields.
849
850 2005-10-11  Erez Zadok  <ezk@cs.sunysb.edu>
851
852         * doc/am-utils.texi (nfs_vers, nfs_proto parameters): clarify and
853         correct mistaken description of nfs_proto.
854
855 2005-10-10  Erez Zadok  <ezk@cs.sunysb.edu>
856
857         *******************************************************************
858         *** Released am-utils-6.1a1                                     ***
859         *******************************************************************
860
861         * README.sun2amd: revised.
862
863 2005-10-09  Daniel P. Ottavio  <dottavio@ic.sunysb.edu>
864
865         * amd/info_nis.c (nis_search): Bug fix for bugzilla #428; make
866         sure that sun_entry2amd() is not called when yp_match() returns an
867         error, this is done by checking that 'res' is 0.  Bug fix (same
868         BZ#); free the output allocated by yp_match() instead of freeing
869         the return value of sun_entry2amd().
870
871         * amd/sun_map.c (sun_entry2amd): Fix a comment.
872
873         * README.sun2amd: Made a first pass at describing the status of
874         the sun2amd feature.
875         Moved the date.
876
877 2005-10-09  Erez Zadok  <ezk@cs.sunysb.edu>
878
879         * README.sun2amd: place holder.
880
881         * Makefile.am (EXTRA_DIST): distribute new README.sun2amd file.
882
883 2005-10-07  Erez Zadok  <ezk@cs.sunysb.edu>
884
885         * m4/macros/check_mnttab_type.m4: move the test for MOUNT_* to the
886         very end, after the test using getvfsbyname().
887
888         * m4/macros/expand_run_string.m4: if the string value returned is
889         empty, consider it invalid.
890
891         * m4/macros/check_varargs_macros.m4: rewrite macro so it'll
892         try and compile the varargs test, not just cpp it.  Some systems
893         pass the old cpp test, but not when you actually try to compile
894         the code (Tru64's cc).
895
896         * conf/autofs/autofs_solaris_v1.h: redefine
897         autofs_strdup_space_hack as a macro to str3cat(NULL,(s)," ","").
898         This works everywhere and we avoid linking problems, inline
899         functions, etc.
900
901         * conf/autofs/autofs_solaris_v1.c (autofs_mount_fs): remove
902         autofs_strdup_space_hack() function altogether.
903
904         * m4/macros/os_cflags.m4: remove hack that hardcodes pte_t=u_int.
905
906         * configure.in: test for <sys/immu.h> header.
907         Test for pte_t, but only on IRIX6 systems.
908
909         * Makefile.am (EXTRA_DIST_M4): distribute new type_pte_t.m4 file.
910
911         * m4/macros/type_pte_t.m4: new test for existence of pte_t
912         typedef, needed on some IRIX-6.5/gcc systems.
913
914         * m4/macros/header_templates.m4: add missing templates for
915         HAVE_EXTERN_GETDTABLESIZE, HAVE_EXTERN_GETWD, and
916         HAVE_EXTERN_UALARM.
917
918         * amd/info_exec.c (exec_map_open): break assignment from inside
919         conditional, to work around an IRIX-6.5 cc bug.
920
921         * amd/Makefile.am (amd_LDADD, sun2amd_LDADD): put libaminfo.a
922         before libamu.la.  Some linkers (e.g., IRIX-6.5) incorrectly
923         complain about undefined symbols.
924
925         * fsinfo/fsi_util.c (set_ether_if), amd/map.c (unmount_mp),
926         libamu/xutil.c (expand_error), libamu/strutil.c (xsnprintf): avoid
927         comparison between signed and unsigned integers.
928
929         * conf/autofs/autofs_solaris_v1.h, conf/autofs/autofs_solaris_v1.c
930         (autofs_strdup_space_hack): move "space_hack" function from static
931         inline in header, into the only source file that needs it.  This
932         is cleaner and also prevents linking problem with some compilers
933         that won't apply CPP macros inside static inline functions (for
934         the strl* functions).
935
936         * amq/pawd.c (find_mt, find_mlp): remove obsolete, inefficient
937         code.
938         (transform_dir): call the new, efficient amqproc_pawd_1() routine.
939
940         * amq/amq_clnt.c (amqproc_pawd_1): AMQPROC_PAWD wrapper routine.
941
942         * amq/amq.h (amqproc_pawd_1): extern for amq's AMQPROC_PAWD
943         wrapper routine.
944
945         * amd/amq_svc.c (amq_program_1): dispatch point for
946         amqproc_pawd_1_svc.
947
948         * amd/amq_subr.c (amqproc_pawd_1_svc): moved pawd's path-matching
949         functionality into Amd, where it can be done a lot more
950         efficiently.  We don't have to construct and ship a whole export
951         tree from Amd to pawd.  We just get a variable-length
952         xdr_wrapstring for the user's path, iterate over the entire export
953         list inside Amd, and return only a matched string if found
954         (otherwise we return "" to indicate that there was no match, and
955         let pawd printf the same string it sent over).
956
957         * amd/amd.h: extern for amqproc_pawd_1_svc, amd's service routine
958         the AMQPROC_PAWD RPC.
959
960 2005-10-06  Erez Zadok  <ezk@cs.sunysb.edu>
961
962         * ltmain.sh, m4/macros/libtool.m4: update to libtool-1.5.20.
963         Fixes Tru64 bugs when using ksh.
964
965         * amd/amfs_toplvl.c (amfs_toplvl_mount): break complex ifdef macro
966         into two sections, to workaround a C99 varargs-macro bug in
967         gcc-3.2.2 (RH9).
968
969         * libamu/wire.c (print_wires): convert argument-less xsnprintf to
970         xstrlcpy.
971
972         * include/am_utils.h: use new HAVE_C99_VARARGS_MACROS or
973         HAVE_GCC_VARARGS_MACROS to pass file name and line number to
974         xsnprintf/xvsnprintf.
975
976         * libamu/strutil.c (xsnprintf, xvsnprintf): if debugging is on,
977         then also print the source file name and line number that called
978         xsnprintf/xvsnprintf with a buffer that wasn't large enough (most
979         likely an am-utils bug).
980
981         * Makefile.am (EXTRA_DIST_M4): distribute new
982         check_varargs_macros.m4 file.
983
984         * configure.in: execute new AMU_VARARGS_MACROS test.
985
986         * m4/macros/check_varargs_macros.m4: new test to check what style
987         of variable-length argument macros, if any, does the
988         compiler/pre-processor supports.
989
990         * conf/autofs/autofs_solaris_v2_v3.c (autofs_lookup_2_req)
991         conf/autofs/autofs_solaris_v1.c (autofs_mount_1_req), amd/opts.c,
992         amd/nfs_subr.c (nfsproc_lookup_2_svc), amd/nfs_start.c
993         (mount_automounter), amd/get_args.c (get_args), amd/amfs_toplvl.c,
994         amd/amfs_auto.c (amfs_auto_mount), amd/amd.h, amd/amd.c (main):
995         use sizeof() instead of fixed SIZEOF_* macros.
996
997         * libamu/strutil.c (xstrlcat, xstrlcpy), include/am_utils.h
998         (DEBUG): if debugging is on, then also print the source file name
999         and line number that called xstrl* with a buffer that wasn't large
1000         enough (most likely an am-utils bug)
1001
1002         * include/am_compat.h (INADDR_NONE): define in a common location,
1003         if OS doesn't have it, use 0xffffffffU which should work with any
1004         ANSI compiler.
1005
1006         * fixmount/fixmount.c, libamu/wire.c: remove local definition of
1007         INADDR_NONE.
1008
1009         * amd/amfs_toplvl.c (amfs_toplvl_mount), amd/amfs_auto.c
1010         (amfs_auto_mount): use common SIZEOF_OPTS in definition and call
1011         to autofs_get_opts.
1012
1013         * amd/amd.h (SIZEOF_OPTS): moved #define to common header.
1014
1015 2005-10-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1016
1017         * amd/opts.c (expand_op): Need to check BUFSPACE for env for
1018         vlen+1.  Likewise for cp and strlen(cp)+1.
1019
1020         * amd/amfs_toplvl.c (amfs_toplvl_mount) [HAVE_FS_AUTOFS]: Pass new
1021         size argument to autofs_get_opts.
1022
1023 2005-10-05  Erez Zadok  <ezk@cs.sunysb.edu>
1024
1025         * amq/pawd.c (transform_dir): was using UDP only.  Now will also
1026         try TCP if UDP failed.  Destroy client after use to avoid leftover
1027         TCP sockets in the kernel.
1028
1029         * libamu/hasmntopt.c (amu_hasmntopt): increase size of MNTMAXSTR
1030         from 128 to to 256, because some users have really long option
1031         strings.  Suggestion from jon+amd-at-spock.org.
1032
1033         * amd/opts.c (expand_op): should check BUFSPACE for vlen+1, not
1034         just vlen.  Bug discovered when started using xstrlcpy().
1035
1036         * ALL: convert from using strcat to the safer xstrlcat, and from
1037         strcpy to safer xstrlcpy.
1038
1039 2005-10-04  Erez Zadok  <ezk@cs.sunysb.edu>
1040
1041         * hlfsd/hlfsd.h: remove old fatalerror() and ERRM macros.
1042
1043         * hlfsd/hlfsd.c (fatalerror): new function instead of macro.
1044         Easier to use xstrlcat in this new function.
1045
1046         * amd/amd.h, include/am_utils.h, amd/amd.c: moved 'hostd' extern
1047         from am_utils.h to amd.h, and define its size as a macro that
1048         could be passed to xstrl*().
1049
1050         * ALL: convert from using sprintf to the safer xsnprintf.
1051
1052         * mk-amd-map/Makefile.am (LDADD): link with libamu to get
1053         xsnprintf().
1054
1055         * amd/amd.h, amd/amd.c, include/am_utils.h: moved pid_fsname
1056         extern from am_utils.h to amd.h, and define its size as a macro
1057         that could be passed to xsnprintf().
1058
1059 2005-10-02  Erez Zadok  <ezk@cs.sunysb.edu>
1060
1061         * libamu/Makefile.am: use strutil.c, not util.c.
1062
1063         * libamu/strutil.c: rename from util.c to explain better purpose
1064         of file.  Move xvsnprintf and xsnprintf from xutil.c to this file.
1065
1066         * libamu/xutil.c: explain purpose of file.  Move mkdirs/rmdirs
1067         code from old util.c.
1068
1069 2005-10-01  Erez Zadok  <ezk@cs.sunysb.edu>
1070
1071         * m4/macros/header_templates.m4: templates for FFS.
1072
1073         * m4/macros/check_mnttab_type.m4: on BSD44 systems, check for file
1074         system mount table name via the MOUNT_* mount(2) macros (because
1075         BSD44 keeps the mount table in the kernel).
1076
1077         * configure.in: synchronise order of searching for mnttab entries
1078         and mount names.  The new order is "ext3 ext2 ffs ufs 4.2 4.3 4.4
1079         efs xfs jfs ultrix" (which would prefer ffs on BSD44 instead of
1080         ufs, and ext3 instead of ext2 on Linux).
1081
1082         * include/am_defs.h: include <sys/statvfs.h> if it exists.
1083
1084         * conf/nfs_prot/nfs_prot_netbsd1_4.h: NetBSD 3 has both statfs()
1085         and statvfs(), but the latter is preferred, so #define to use
1086         statvfs.
1087
1088         * configure.in: check for statfs(), statvfs(), and
1089         <sys/statvfs.h>.
1090
1091         * config.guess.long: strip trailing '.' on "netbsdelf3.0."
1092         (Beta).  Workaround for bug in config.guess.
1093
1094         * config.{guess,sub}: update to latest versions.
1095
1096 2005-09-30  Christos Zoulas  <christos@zoulas.com>
1097
1098         * fsinfo/fsi_util.c (set_ether_if): use INADDR_NONE instead of
1099         hard-coded value of -1.
1100
1101         * include/amq_defs.h (AMQ_STRLEN): increase default size from 2KB
1102         to 16KB.  We can afford it these days.
1103
1104         * libamu/strcasecmp.c (strcasecmp): use unsigned chars in
1105         tolower() to avoid sign/size promotion bugs.
1106
1107         * libamu/xutil.c (switch_to_logfile): don't output to LOG_CONS by
1108         default (it's unfriendly).  If user really wants to, they can set
1109         it in /etc/syslog.conf.
1110
1111 2005-09-29  Erez Zadok  <ezk@cs.sunysb.edu>
1112
1113         * amq/pawd.c (find_mt): if the auto mount type is used, pawd could
1114         go into an infinite loop since the mt_directory and mt_mountpoint
1115         fields are the same for auto mounts.  Solution: ignore type auto
1116         mounts, similar to toplvl.  Bug fix from Jonathan Chen
1117         <jon+amd@spock.org>.
1118
1119         * README.attrcache: document test-attrcache script.
1120
1121         * scripts/Makefile.am (noinst_SCRIPTS): build test-attrcache
1122         script.
1123
1124         * configure.in: build scripts/test-attrcache script and chmod it
1125         so it can be executed in place.
1126
1127         * scripts/test-attrcache.in: script to test the NFS attribute
1128         cache using Amd.
1129
1130 2005-09-26  Erez Zadok  <ezk@cs.sunysb.edu>
1131
1132         * hlfsd/stubs.c (nfsproc_getattr_2_svc, nfsproc_lookup_2_svc,
1133         nfsproc_readlink_2_svc, nfsproc_readdir_2_svc), hlfsd/hlfsd.c
1134         (hlfsd_init): use new clocktime() function.
1135
1136 2005-09-18  Erez Zadok  <ezk@cs.sunysb.edu>
1137
1138         * README.attrcache: document netbsd's patchs to support noac.
1139
1140         * libamu/mount_fs.c (compute_nfs_attrcache_flags): cleanup the
1141         code that sets the ac{reg,dir}{min,max} fields so it also sets the
1142         appropriate nfs_args->flags such as MNT2_NFS_OPT_ACREGMIN.
1143
1144         * configure.in: check for nfs_args fields acregmax and acdirmax.
1145
1146         * README.attrcache: new file documenting in detail OS bugs
1147         relating to attribute caching, which can affect Amd's reliability
1148         under heavy load.
1149         Update status of freebsd and openbsd.
1150
1151         * doc/Makefile.am: install README.attrcache file as attrache.txt
1152         file on am-utils Web site.
1153
1154         * Makefile.am (EXTRA_DIST): include README.attrcache in distro.
1155
1156         * BUGS, NEWS, doc/am-utils.texi (auto_attrcache Parameter),
1157         scripts/amd.conf.5, scripts/amd.conf-sample: document attribute
1158         cache bugs on some OSs.
1159
1160 2005-09-17  Erez Zadok  <ezk@cs.sunysb.edu>
1161
1162         * libamu/xutil.c (clocktime): newly implemented routine.  Uses
1163         gettimeofday() each time to return a high-resolution clock time,
1164         and does not "cache" the last time.  Returns time in seconds, just
1165         like the old implementation.  If passed a non-null argument, will
1166         fill it in with the current time in seconds+microseconds.
1167
1168         * libamu/xutil.c: remove actual declaration of clock_valid, and
1169         another never-used declaration for xclock_valid.
1170
1171         * include/am_utils.h: remove defunct definition of clocktime()
1172         macro and clock_valid variable.  Add extern for new definition.
1173
1174         * libamu/mount_fs.c (mount_fs), hlfsd/homedir.c (homedir,
1175         hlfsd_diskspace, hlfsd_getpwent, plt_reset, table_add),
1176         hlfsd/hlfsd.c (main, hlfsd_init, reload, cleanup),
1177         conf/mtab/mtab_mach3.c (open_locked_mtab), conf/mtab/mtab_file.c
1178         (open_locked_mtab), amd/nfs_start.c (do_select, run_rpc),
1179         amd/autil.c (host_normalize): remove defunct clock_valid.
1180
1181         * amd/nfs_subr.c (nfsproc_getattr_2_svc): Print microseconds for
1182         node's mtime.
1183         (fh_to_mp3): use new clocktime() to update mtime and get a better
1184         time resolution.
1185
1186         * amd/mapc.c (mapc_reload_map): change prototype from returning
1187         void to returning an int.  If reloading was needed and succeeded,
1188         return 1; else return 0.
1189         (mapc_sync): update mtime of parent node if needed.  This is a
1190         CRITICAL FIX, to ensure that the kernel flushes its DNLC/dcache
1191         when we run "amq -f" manually or when a map is reloaded.
1192
1193         * amd/map.c (new_ttl): update am_ttl and na_atime in one shot.
1194         (init_map): use new clocktime().
1195         (unmount_mp): if the OS doesn't support a "symttl" option, then
1196         update the mtime of the parent node using the clocktime(); but if
1197         the time hasn't gotten changed because of rapid Amd accesses on
1198         systems that don't have a micro-second NFS-client resolution, then
1199         increment mtime by one arbitrarily (this could, on some systems
1200         and under pathological cases, result in mtime's that are in the
1201         future).
1202
1203         * amd/autil.c (forcibly_timeout_mp): MAJOR BUG FIX: force mtime
1204         update of parent dir, to prevent DNLC/dcache from caching the old
1205         entry, which could result in ESTALE errors, bad symlinks, and
1206         more.
1207         (am_mounted): record mount time, and update am_stats at the same
1208         time, using the double-action redone clocktime() routine.
1209         (am_mounted): update parent's mtime from that of the child.
1210         (am_unmounted): when unmounting an entry, update mtime of parent
1211         node.
1212
1213         * amd/amfs_generic.c (amfs_bgmount): now that clocktime() doesn't
1214         remember it's last non-zero value, save it in a temporary variable
1215         to avoid a TOCTOU problem (between an "if" and a "dlog").
1216
1217         * libamu/xutil.c (show_time_host_and_name),
1218         conf/autofs/autofs_linux.c (autofs_mounted, autofs_timeout_mp),
1219         amd/srvr_nfs.c (nfs_keepalive_callback, nfs_keepalive_timeout)
1220         (find_nfs_srvr), amd/rpc_fwd.c (fwd_alloc), amd/nfs_subr.c
1221         (nfsproc_getattr_2_svc), amd/nfs_start.c (do_select, run_rpc),
1222         amd/mapc.c (root_init), amd/map.c(map_flush_srvr, timeout_mp),
1223         amd/info_ndbm.c (ndbm_init), amd/info_ldap.c (amu_ldap_rebind),
1224         amd/info_file.c (file_open), amd/info_exec.c (fgets_timed,
1225         exec_search), amd/clock.c (timeout, softclock), amd/autil.c
1226         (forcibly_timeout_mp), amd/amfs_generic.c (amfs_retry,
1227         amfs_bgmount, amfs_generic_mount_child), amd/amd.c (main): pass
1228         NULL to clocktime().
1229
1230 2005-09-15  Erez Zadok  <ezk@cs.sunysb.edu>
1231
1232         * amd/nfs_subr.c (nfsproc_getattr_2_svc): initialize 'retry', just
1233         in case.
1234         (fh_to_mp3): increment amd_stats.d_stale counter only if we are
1235         actually returning ESTALE.
1236
1237         * amd/info_exec.c (exec_parse_qanswer), amd/info_file.c
1238         (file_search_or_reload), amd/info_hesiod.c (hesiod_search),
1239         amd/info_ldap.c (amu_ldap_search), amd/info_ndbm.c (search_ndbm),
1240         amd/info_nis.c (nis_search), amd/info_nisplus.c (nisplus_search,
1241         nisplus_search): don't dereference mnt_map->cfm which may be null
1242         if we're not using an amd.conf file.
1243
1244 2005-09-14  Erez Zadok  <ezk@cs.sunysb.edu>
1245
1246         * libamu/xutil.c (unregister_amq): if failed to de-register Amd
1247         from portmapper, report it under dlog (debugging), not as an
1248         annoying plog that always shows up.
1249
1250 2005-09-13  Erez Zadok  <ezk@cs.sunysb.edu>
1251
1252         * mk-amd-map/mk-amd-map.c (read_file_file), libamu/util.c
1253         (strsplit), libamu/hasmntopt.c (nextmntopt), amd/sun_map.c
1254         (sun_entry2amd), amd/sun2amd.c (sun2amd_convert_convert),
1255         amd/mapc.c (mapc_add_kv), amd/info_file.c (file_search_or_reload),
1256         amd/info_exec.c (exec_parse_qanswer): cast isspace() and isascii()
1257         arg to unsigned char, which is safer as per Christos.
1258
1259         * amd/sun_map.c (sun_entry2amd): isspace takes an int, not a char.
1260
1261         * configure.in: keep a dummy unused AM_PROG_LEX, because old
1262         Automake (1.6.3) looks for it if you refer to LEX in your
1263         Makefile.am files.  Silly thing, fixed in newer versions of
1264         Automake (1.9.2).
1265
1266 2005-09-11  Erez Zadok  <ezk@cs.sunysb.edu>
1267
1268         * Makefile.am (EXTRA_DIST_M4): add prog_{lex,yacc}.m4 to distro.
1269
1270         * configure.in: use new macros AMU_PROG_YACC and AMU_PROG_LEX.
1271
1272         * m4/macros/prog_yacc.m4: new macro to check if bison/yacc/byacc
1273         exist, but exist with an error if none found.
1274
1275         * m4/macros/prog_lex.m4: new macro to check if f/lex exist, but
1276         exit with an error if not found (am-utils requires f/lex).
1277
1278 2005-09-07  Erez Zadok  <ezk@cs.sunysb.edu>
1279
1280         * minor new port: powerpc-apple-darwin8.2.0.
1281
1282         * m4/macros/type_auth_create_gidlist.m4: Old macosx used "gid_t"
1283         but all newer ones (10.4+) use int.
1284
1285         * m4/macros/type_recvfrom_fromlen.m4: Old macosx used "int" for
1286         6th arg of recvfrom(), but all newer ones (10.4+) use socklen_t.
1287
1288         * minor new port: i386-pc-linux-deb3.1.
1289
1290 2005-09-02  Erez Zadok  <ezk@cs.sunysb.edu>
1291
1292         * conf/mount/mount_linux.c: If autoconf didn't find any disk-based
1293         file system on this system (probably because /proc isn't mounted),
1294         then provide some default definition for this file to compile.
1295
1296 2005-08-28  Daniel P. Ottavio  <dottavio@ic.sunysb.edu>
1297
1298         * amd/sun_map.c (sun_entry2amd) : Wipe out any trailing white
1299         spaces or '\n' before passing strings to the parser.
1300
1301         * amd/amd.h : oops, reverting bad changes
1302
1303         * amd/info_file.c : oops, reverting bad changes
1304
1305         * amd/mapc.c : oops, reverting bad changes
1306
1307         * amd/sun_map_parse.y : oops, reverting bad changes
1308
1309 2005-08-27  Erez Zadok  <ezk@cs.sunysb.edu>
1310
1311         * libamu/xutil.c: amd_program_number is a u_long now.
1312         (unregister_amq): if pmap_unset failed to de-register Amd from the
1313         portmapper, print an error message.
1314         (get_amd_program_number): returns a u_long now.
1315         (set_amd_program_number): take a u_long now.
1316
1317         * include/am_utils.h: get_amd_program_number() returns u_long now.
1318         set_amd_program_number() takes a u_long now.
1319
1320         * amq/amq.c: amd_program_number is a u_long, not int.
1321
1322         * amd/nfs_start.c (mount_automounter): when registering Amd with
1323         the portmapper (for Amq service), don't fail if just one of TCP or
1324         UDP failed to register, but only if both transports failed.  That
1325         way Amq can still contact Amd using the transport that did
1326         register correctly.  However, now, if both transports failed to
1327         register, then set amd_state to "Done" so it would shutdown
1328         cleanly.
1329
1330         * conf/transp/transp_{sockets,tli{}.c (amu_svc_register): better
1331         comments.
1332
1333         * libamu/xutil.c: debug_flags should always be initialized to
1334         D_CONTROL (amq,daemon,fork).
1335         (debug_option): allow setting initial immutable debug_flags via
1336         amd.conf; afterward, prevent it (i.e., one tries it via "amq -D").
1337
1338         * Makefile.am (DISTCLEANFILES): also remove amu_autofs_prot.h,
1339         config.cache.old, and dbgcf.h on "make distclean".
1340         (CLEANFILES): remove dbgcf on plain "make clean".
1341
1342         * amd/Makefile.am (DISTCLEANFILES): also remove ops_autofs.c on
1343         "make distclean".
1344
1345 2005-08-27  Daniel P. Ottavio  <dottavio@ic.sunysb.edu>
1346
1347         * amd/info_file.c (file_search_or_reload): Changed the key
1348         variable that is passed to the sun_entry2amd.
1349
1350         * amd/mapc.c (mapc_add_kv): Add support for multiple entries
1351         packed into one line.  This is a workaround for handling Sun style
1352         mounts that contains multiple entries on one line: "multi-mount
1353         entries".  The sun2amd conversion tools will convert such entries
1354         into type:=auto and pack each of the auto-entries into one line
1355         separated by '\n'.  The mapc_add_kv function will now recognize
1356         such entries and add then.
1357
1358         * amd/sun2amd.c (sun2amd_convert): Add print statement that
1359         includes the line number during a parser failure.
1360
1361         * sun_map.c: Fix the AMD_MAP_PREF_KW definition.  Fix spelling.
1362         (sun_mountpts2amd): removed this function
1363         (sun_hsfs2amd): added some more comments
1364         (sun_nfs2amd): moved support for multi-mount entries from this
1365         function to sun_multi2amd().
1366         (sun_multi2amd): New function to handle multi-mount entries.  This
1367         function will convert the Sun version to an Amd type:=auto.  Each
1368         extra auto entry will be appended to the same line separated by a
1369         '\n'.
1370         (sun_entry2amd): Fixed a bug if-statement.  This function now
1371         checks for multi-mount entries.
1372
1373         * amd/sun_map.h: Add a fstype member to the sun_mountpt struct.
1374
1375         * amd/sun_map_parse.y: Parser now supports fstype for multi-mount
1376         entries.
1377
1378         * amd/sun_map_tok.l: No longer print the line and column number
1379         when parsing.  This is because the parser is handed strings not
1380         files.  Therefore, the line number will always be 1.  It is now up
1381         to the higher level tools to echo line information during error
1382         when they feed the parser.
1383
1384 2005-08-24  Erez Zadok  <ezk@cs.sunysb.edu>
1385
1386         * configure.in: wrap all LDAP and HESIOD tests in test whether
1387         --with-OPT was used.
1388
1389 2005-08-20  Daniel P. Ottavio  <dottavio@ic.sunysb.edu>
1390
1391         * amd/sun_map.c: Clean up #defines
1392         (sun_entry2amd) : Verify that the key and entry values passed are
1393         not NULL.  Free the Sun entry struct when done.
1394
1395         * amd/sun_map.h: Add some "not implemented yet" comments to the
1396         map and mmap structures.
1397
1398         * amd/sun_map_parse.y: Removed automap include functionality, it
1399         will need to be re-implemented using a pre-processor.
1400         Clean up function calls.
1401
1402 2005-08-16  Daniel P. Ottavio  <dottavio@ic.sunysb.edu>
1403
1404         * amd/sun2amd.c (sun2amd_convert): If the input line is too long
1405         don't return an error just null terminate and continue.  Fix bug:
1406         the map key was not written.
1407
1408         * amd/sun_map.c: Add a new Amd device, and cdfs constant.
1409         (sun_locations2amd): Write the NFS type keyword
1410         for each host of the mount entry.  Add a space between each mount
1411         location.
1412         (sun_hsfs2amd): New function to support hsfs to
1413         cdfs.
1414         (sun_nfs2amd): Don't write the nfs type here.  Fix
1415         comments.
1416         (sun_entry2amd): Change function parameter var for
1417         clarity.  Add support for hsfs.
1418
1419         * amd/sun_map_parse.y (sun_map_parse_read): Reset the entry list
1420         after it has been returned.
1421
1422 2005-08-16  Erez Zadok  <ezk@cs.sunysb.edu>
1423
1424         * amd/get_args.c (get_args): initialize debug_flags if they've
1425         never been set.
1426
1427 2005-08-15  Erez Zadok  <ezk@cs.sunysb.edu>
1428
1429         * amd/mapc.c (mapc_create): mapc find takes 4th arg, the mount
1430         point.  Now, we can properly initialize the cfm structure of the
1431         mnt_map, so we can have access to the flags (e.g., SUN_MAP_SYNTAX)
1432         inside each info_*.c file.
1433         (mapc_find): takes 4rd arg (mntpt) and passes it to calls to
1434         mapc_create.
1435         (root_newmap): pass NULL as 4th arg (mntpt).
1436
1437         * amd/amfs_generic.c (amfs_parse_defaults): remove ugly hack to
1438         initialize map cfm structure (including flags) so late.
1439
1440         * amd/autil.c (amfs_mkcacheref): pass mount point as 4th arg to
1441         mapc_find.
1442
1443         * amd/amfs_root.c (amfs_root_mount): pass NULL as new 4th arg to
1444         mapc_find.
1445
1446         * amd/amd.h: extern for mapc_find changed to pass the mount point.
1447
1448         * libamu/xutil.c: debug_flags should be unsigned.
1449         (dbg_opt): fix comments for updated debug_flags, add "defaults".
1450         (debug_option): Don't allow "immutable" (D_IMMUTABLE) flags to be
1451         changed, because they could mess Amd's state and only make sense
1452         to be set once when Amd starts.  Currently these immutable flags
1453         are "daemon," "fork," "amq," and "mtab."  If Amd not compiled with
1454         debugging, set default "control" options (daemon,fork,amq).
1455         (unregister_amq): proper use of D_AMQ.
1456
1457         * include/am_utils.h: define new D_BASIC, D_CONTROL, D_DEFAULT,
1458         D_IMMUTABLE, and D_MASK.  Updated definitions of D_ALL and D_TEST.
1459         debug_flags extern should be unsigned.
1460
1461         * scripts/amd.conf-sample (debug_options): mention new "defaults"
1462         option.
1463
1464         * scripts/amd.conf.5,doc/am-utils.texi: document new debug option
1465         "defaults" and properly explain the corrected meanings of
1466         "daemon," "fork," "amq," and their "no" inversions.  Better
1467         explain "all" and "test" too.  Correct default debug_mtab file to
1468         /tmp/mtab.
1469
1470         * hlfsd/stubs.c (nfsproc_readlink_2_svc): proper use of D_FORK.
1471
1472         * hlfsd/homedir.c (homedir): proper use of D_FORK.
1473
1474         * hlfsd/hlfsd.c (main, hlfsd_init, cleanup): proper use of
1475         D_DAEMON.
1476
1477         * amd/nfs_start.c (mount_automounter): proper use of D_AMQ.
1478
1479         * amd/amd.h (DEBUG_MNTTAB_FILE): change default to /tmp/mtab,
1480         which is more common on more systems (instead of /tmp/mnttab).
1481
1482         * amd/amd.c (main): properly use D_DAEMON.
1483
1484 2005-08-14  Erez Zadok  <ezk@cs.sunysb.edu>
1485
1486         * libamu/xutil.c (xlog_opt): define new pseudo log_option named
1487         "defaults", which is an alias for "fatal,error,user,warning,info".
1488
1489         * scripts/amd.conf.5, doc/am-utils.texi, amd/amd.8: document new
1490         log_option "defaults".
1491
1492         * amq/amq.8: typo.  Arg name for -D is "debug_options" not
1493         "log_options".
1494
1495         * libamu/xutil.c: make xlog_level static, and initialize it to
1496         XLOG_DEFAULT.
1497         (cmdoption): take unsigned int as flags argument, and print any
1498         errors as XLOG_ERROR (which cannot be turned off).
1499         (switch_option): remove old code which disallowed you from turning
1500         off flags that were set when Amd started up.  Now, you can turn
1501         any log option on/off at start time or later on (via amq -x),
1502         other than the two mandatory options (fatal+error).
1503
1504         * include/am_utils.h (XLOG_*): remove unused XLOG_DEFSTR.  Define
1505         XLOG_MASK to mask out unused flag bits.  Define XLOG_DEFAULT to be
1506         what it was before (fatal + error + user + warning + info), but
1507         use the new mask.  Remove extern's for xlog_level and
1508         xlog_level_init.  Change extern for cmdoption() to take an
1509         unsigned flags argument.
1510
1511         * doc/am-utils.texi, amq/amq.8, scripts/amd.conf.5, amd/amd.8:
1512         document mandatory log options
1513         (fatal+error) which cannot be turned off and are always on by
1514         default.  They must be on so that Amd can report crucial errors,
1515         including those related to setting flags on/off.
1516
1517         * hlfsd/hlfsd.c (main): remove hack to initialize log_options.
1518
1519         * wire-test/wire-test.c: remove reference to unused xlog_level.
1520
1521         * amd/mapc.c (mapc_create): 'alloc' flags variable should be
1522         unsigned.
1523
1524         * amd/get_args.c (get_args): no need for hack using
1525         xlog_level_init.
1526
1527         * amd/Makefile.am: separate sources common to amd and sun2amd into
1528         a special, locally-built only, static library called libaminfo.a.
1529
1530         * libamu/xutil.c (real_plog, xsnprintf): call new xvsnprintf()
1531         wrapper function.
1532         (xvsnprintf): new function which already gets a va_list.  This was
1533         needed to avoid nesting va_list's (which apparently isn't
1534         allowed).
1535
1536         * include/am_utils.h: prototype for new xvsnprintf wrapper.
1537
1538         * configure.in: sinclude([vers.m4]) version number file.
1539
1540         * vers.m4: new file to separate version number out of
1541         configure.in, useful for nightly snapshot script to generate
1542         nightly version string.
1543
1544         * Makefile.am (EXTRA_DIST_M4): include vers.m4 in distro.
1545
1546 2005-08-14  Daniel P. Ottavio  <dottavio@ic.sunysb.edu>
1547
1548         * amd/info_file.c: add key to sun_entry2amd()'s parameters
1549
1550         * amd/info_hesiod.c: add key to sun_entry2amd()'s parameters
1551
1552         * amd/info_ldap.c: add key to sun_entry2amd()'s parameters
1553
1554         * amd/info_ndbm.c: add key to sun_entry2amd()'s parameters
1555
1556         * amd/info_nis.c: add key to sun_entry2amd()'s parameters
1557
1558         * amd/info_nisplus.c: add key to sun_entry2amd()'s parameters
1559
1560         * amd/sun_map.c: New functions to support sun translation to amd.
1561         The function sun_entry2amd's parameters were expanded to include
1562         the key value.  sun_entry_2amd() now returns NULL on error.
1563
1564         * amd/sun_map.h: Expand sun_entry2amd's parameters to include key
1565         value.
1566
1567         * amd/sun_map_parse.y: Change how file system types are parsed out
1568         of the list of options for each entry.  The previous way was not
1569         working properly so now we just look for the 'fstype' keyword in
1570         each option.  If it exists we copy its key value.
1571         Added some comments to sun_map_parse_read().
1572
1573         * amd/amd.h: Added an extern from info_file.c called
1574         file_read_line().  Previously this function was static but is now
1575         used in sun2amd.c.
1576
1577         * amd/info_file.c: Changed the static function read_line() to a
1578         public function called file_read_line().  This function is now
1579         used in sun2amd.c
1580
1581         * amd/sun2amd.8: Filled in the contents of this man page.  This is
1582         a conversion utility that converts Sun maps to Amd maps.
1583
1584         * amd/sun2amd.c: Implemented a working version of this utility.
1585
1586 2005-08-11  Erez Zadok  <ezk@cs.sunysb.edu>
1587
1588         * amd/sun_map_parse.y: instead of using a custom FOO_alloc()
1589         function, use Amd's CALLOC(struct FOO) macro.
1590
1591         * amd/sun_map.h: remove extern definitions to functions no longer
1592         needed.
1593
1594         * amd/sun_map.c: removed superfluous *_alloc() functions, some of
1595         which caused conflicts with same-named symbols in the parser
1596         (since we rename 'yyalloc' to 'sun_map_alloc').
1597
1598         * configure.in: keep AC_INIT on same line, for nightly snapshot
1599         build script.
1600
1601         * amd/Makefile.am: f/lex libraries are incompatible with multiple
1602         scanners, so don't link Amd with libl.a/libfl.a.
1603
1604 2005-08-10  Daniel P. Ottavio  <dottavio@ic.sunysb.edu>
1605
1606         * amd/sun_map_tok.l: Clean up regular expression so HPUX stops
1607         whining.
1608
1609 2005-08-09  Daniel P. Ottavio  <dottavio@ic.sunysb.edu>
1610
1611         * amd/sun_map_parse.y: Moved license below special yacc bracket to
1612         be portable with HPUX's yacc.  Clean up externs.
1613
1614         * amd/sun_map_tok.l: Moved license below special lex bracket to be
1615         portable with HPUX's lex.  Fixed definitions to allow for a
1616         non-flex lex to parse strings instead of files.  Added some casts
1617         to strlcpy usage to silence warnings.  Moved the % options because
1618         HPUX was complaining,
1619
1620 2005-08-08  Daniel P. Ottavio  <dottavio@ic.sunysb.edu>
1621
1622         * amd/sun_map_tok.l: Applied some definition goop to handle the
1623         ECHO symbol that lex defines.  This symbol causes problems on
1624         RedHat-EL-powerPC platforms.  Replaced strncpy with strlcpy.
1625         Renamed the function sun_map_yyinput to sun_map_input.  This
1626         function is a utility function that is not generated by lex.
1627         Therefore, the 'yy' may cause confusion.
1628
1629 2005-08-08  Erez Zadok  <ezk@cs.sunysb.edu>
1630
1631         * amd/sun_map_tok.l: allocate more output slots so lex scanners
1632         don't run out of memory.
1633
1634         * amd/sun_map_parse.y: declare extern for sun_map_parse().
1635
1636         * libamu/xutil.c (xsnprintf): ensure proper comparisons between
1637         signed and unsigned quantities.
1638
1639 2005-08-06  Erez Zadok  <ezk@cs.sunysb.edu>
1640
1641         * libamu/util.c, amd/autil.c (strsplit): moved strsplit() function
1642         from Amd code to to libamu, so sun2amd could use it.
1643
1644         * amd/Makefile.am (sbin_PROGRAMS): build sun2amd binary and man
1645         page.
1646         (EXTRA_sun2amd_OBJECTS): sun2amd needs to link with all info_*.c files
1647
1648         * amd/sun2amd.8: placeholder for man page.
1649
1650         * amd/sun2amd.c: placeholder for C version of translator from Sun
1651         syntax maps to Amd maps.
1652
1653         * */*.[0-9]: include file name in nroff source comment.
1654
1655         * ALL: use '0' properly when assigning or passing it to functions.
1656         If in the context pointer, use NULL.  If in the context of a
1657         single char (say within a string), the use '\0'.  This is just to
1658         make the code clearer.
1659
1660         * m4/macros/header_templates.m4: template for HAVE_MAP_SUN.
1661
1662         * amd/mapc.c (maptypes): add placeholder for Sun-syntax map
1663         methods.
1664
1665         * amd/Makefile.am (EXTRA_amd_SOURCES): compile info_sun.c
1666
1667         * amd/info_sun.c: placeholder for meta info parser to get info
1668         from Sun automount-style /etc/auto_master, possibly following
1669         into multiple info services (via /etc/nsswitch.conf).
1670
1671         * libamu/xutil.c (xsnprintf): if vsnprintf truncated the output
1672         string to avoid an overflow, print an error.  Include some code to
1673         break out any possible infinite loop between plog() and
1674         xsnprintf().
1675         (real_plog): now we can use (carefully) xsnprintf() directly.
1676
1677         * amd/sun_map.[hc]: cleanup and formatting.
1678
1679         * amd/sun_map_parse.y: to match the literal string "fstype=" use
1680         double quotes, not single quotes.
1681
1682         * amd/get_args.c (get_args): call conf_parse() using conf_in.
1683
1684         * amd/amd.h: use renamed parser symbols (yyparse -> conf_parse;
1685         yyin -> conf_in).
1686
1687         * ylwrap: Enhance wrapper to avoid the #define hacks done by Gdb,
1688         and suggested by the Automake manual.  This enhanced parser will
1689         prefix each conflicting yacc/lex symbol with a unique name
1690         produced from INPUT.  For example, if INPUT is foo_parse.y, then
1691         yyparse() becomes foo_parse().  This requires that both your .l
1692         and corresponding .y files have the same prefix (e.g., foo_parse.y
1693         and foo_tok.l).
1694
1695         * amd/Makefile.am (BUILT_SOURCES): define which yacc/lex .h/.c
1696         source files are built automatically, and therefore should not be
1697         in the distro (IMHO), and should be cleaned upon "make clean".
1698         (amd_SOURCES): include new sun_map_parse.y and sun_map_tok.l files.
1699
1700         * ylwrap: new file needed because we have two parsers now.
1701
1702         * amd/sun_map_{parse.y,tok.l}: cleanup and formatting.
1703
1704 2005-08-06  Daniel P. Ottavio  <dottavio@ic.sunysb.edu>
1705
1706         * amd/Makefile.am: Added new files sun_map.h, sun_map.c,
1707         sun_map_parse.y, and sun_map_tok.l.  These files add support for
1708         parsing Sun style maps.  The yacc/lex files needed custom rules so
1709         they don't cause symbol conflicts with each other.
1710
1711         * amd/amd.h: Added "#define INFO_MAX_LINE_LEN" that specifies the
1712         line limit for info services.
1713
1714         * amd/info_exec.c: Replaced MAX_LINE_LEN with INFO_MAX_LINE_LEN
1715
1716         * amd/info_file.c: Replaced MAX_LINE_LEN with INFO_MAX_LINE_LEN,
1717         added support for parsing Sun style maps.  The support for Sun
1718         maps is done using the sun_entry2amd() function.  This function is
1719         called for each entry line that is read only when Sun parsing is
1720         enabled.  For each entry line that is passed to the function a
1721         copy of the Amd equivalent is returned.
1722
1723         * amd/sun_map.h: new header file for Sun style map support
1724
1725         * amd/sun_map.c: new source file for Sun style map support, clean
1726         up comments, additional sun2amd conversion routines
1727
1728         * amd/sun_map_parse.y: new yacc file for parsing Sun style maps,
1729         fix copyright notice, put filename below license.
1730
1731         * amd/sun_map_tok.l: new lex file for parsing Sun style maps, fix
1732         copyright notice, put filename below license.
1733
1734         * amd/get_args.c: replace usage of strlcat with xstrlcat
1735
1736         * include/am_utils.h: added 'extern void xstrlcat()'
1737
1738         * libamu/util.c: Added a xstrlcat() function that wraps the
1739         syscall strlcat() so that string truncations can be logged.
1740
1741 2005-08-06  Erez Zadok  <ezk@cs.sunysb.edu>
1742
1743         * amd/info_file.c (file_search, file_reload): pass mnt_map to
1744         file_search_or_reload.
1745         (file_search_or_reload): ensure that mnt_map is never NULL.
1746
1747         * amd/info_nis.c (nis_search): call sun_entry2amd() if
1748         sun_map_syntax=yes.
1749
1750         * amd/info_ldap.c (amu_ldap_search): call sun_entry2amd() if
1751         sun_map_syntax=yes.
1752
1753         * amd/info_hesiod.c (hesiod_search): call sun_entry2amd() if
1754         sun_map_syntax=yes.
1755
1756         * amd/info_ndbm.c (ndbm_search): pass mnt_map to search_ndbm.
1757         (search_ndbm): call sun_entry2amd() if sun_map_syntax=yes.
1758
1759         * amd/info_nisplus.c (nisplus_search): call sun_entry2amd() if
1760         sun_map_syntax=yes.
1761
1762         * amd/info_exec.c (exec_search): pass mnt_map to
1763         exec_parse_qanswer.
1764         (exec_parse_qanswer): call sun_entry2amd() if sun_map_syntax=yes.
1765
1766         * doc/am-utils.texi (sun_map_syntax Parameter): document new
1767         common parameter.
1768
1769         * scripts/amd.conf.5: selectors_in_defaults is a common parameter,
1770         not just [global].  Use consistent capitalization of Amd/Amq.
1771         Document new sun_map_syntax parameter.
1772
1773         * scripts/amd.conf-sample: properly list all of the parameters
1774         which are common to both the [global] and the per-map sections.
1775         (sun_map_syntax): example of new parameter.
1776
1777         * doc/am-utils.texi (Common Parameters): selectors_in_defaults is
1778         a common parameter, not just [global].
1779
1780         * scripts/amd.conf-sample (sun_map_syntax): example of new flag.
1781
1782         * amd/conf.c ({ropt,gopt}_sun_map_syntax): new function to parse
1783         sun_map_syntax flag (global or per map).
1784
1785         * amd/amd.h (CFM_SUN_MAP_SYNTAX): new flag for users to say if the
1786         map uses Sun automounter syntax.
1787
1788         * cvs-server.txt: update instructions after branching 6.1-stable.
1789
1790 2005-08-02  Erez Zadok  <ezk@cs.sunysb.edu>
1791
1792         *******************************************************************
1793         *** Released am-utils-6.1.1                                     ***
1794         *******************************************************************
1795
1796         * libamu/xutil.c (xsnprintf): "unsafe" alternative to vsnprintf is
1797         vsprintf, not sprintf.
1798
1799         * conf/umount/umount_osf.c (umount_fs): refer to proper formal
1800         parameter name.
1801         (umount2_fs): pass second arg to umount().
1802
1803         * ALL: remove CVS ID and put actual file name in source.
1804
1805         * conf/autofs/*.[hc]: proper copyright headers.
1806
1807         * whitespace reformatting.  Remove remaining '%W%' SCCS IDs.
1808
1809         * amd/mntfs.c (free_mntfs): don't discard the last reference to an
1810         mntfs that had been mounted already.  It won't have the
1811         MFF_RESTARTED flag on, as it gets turned off after the entry is
1812         mounted, but it will have the MFF_RSTKEEP flag on.
1813
1814         * amd/autil.c (mf_mounted), amd/restart.c (restart_fake_mntfs):
1815         show the mntfs's flags.
1816
1817 2005-08-01  Erez Zadok  <ezk@cs.sunysb.edu>
1818
1819         * conf/mtab/mtab_linux.c: removed unused code.  Cleanup.
1820         (handler): removed this bad signal handler.
1821         (lock_mtab): Redhat's original code set a signal handler called
1822         "handler()" for all non-ALRM signals.  The handler called
1823         unlock_mntlist(), plog'ed the signal name, and then exit(1)!
1824         Never, ever, exit() from inside a utility function.  This messed
1825         up Amd's careful signal-handling code, and caused Amd to abort
1826         uncleanly only any other "innocent" signal
1827         (even simple SIGUSR1), leaving behind a hung Amd mnt point.  That
1828         code should have at least restored the signal handlers' states
1829         upon a successful mtab unlocking.  Anyway, that handler was
1830         unnecessary, because will call unlock_mntlist() properly anyway on
1831         exit.
1832
1833         * conf/mtab/mtab_{file,isc3,mach3,linux}.c (unlock_mntlist): dlog
1834         message that we're inside the unlock_mntlist function.
1835
1836         * amd/amd.c (main): use new setup_sighandler() for Amd's four main
1837         signals (INT, TERM, HUP, and CHLD).
1838         (main) Add SIGINT and SIGTERM to masked_sigs, used in
1839         nfs_start.c:do_select() for setjmp/longjmp code; the MASK was set
1840         to all four signals if !HAVE_SIGACTION, but only to HUP+CHLD if we
1841         HAVE_SIGACTION.  So this change makes Amd behave consistently.
1842
1843         * include/am_utils.h: extern for new setup_sighandler().
1844
1845         * libamu/xutil.c (setup_sighandler): new utility function to setup
1846         a single signal-handler regardless of what method is supported by
1847         this OS.
1848         (going_down): call unlock_mntlist() when exiting, to ensure that
1849         Amd will remove any leftover mtab lock files, if any.
1850
1851         * amd/restart.c (restart_automounter_nodes): cleanup function.
1852
1853         * minor new port: i386-pc-linuxoldld-deb3.1.
1854
1855         * configure.in: include <sys/types.h> before <linux/socket.h> to
1856         get the definition of size_t on Debian-3.1r0a.
1857
1858 2005-07-29  Erez Zadok  <ezk@cs.sunysb.edu>
1859
1860         * amd/srvr_nfs.c (find_nfs_srvr): don't blindly copy the hostent
1861         IP address.  First check if it differs from the existing one of
1862         the fserver, and copy only if it changed.  If it did change, flush
1863         the fhandle cache to avoid a stale fhandle being reused.  This
1864         allows Amd to detect IP address changes even for an fserver that
1865         lost one or more NFS pings, but not enough to be declared totally
1866         down.  We handle the "totally down" fserver case in
1867         check_fs_addr_change().
1868
1869         * amd/ops_nfs.c (nfs_umount), amd/sched.c (sched_task),
1870         amd/nfs_subr.c (nfs_quick_reply): code clarity.
1871
1872         * conf/mount/mount_linux.c (linux_nfs_error): dlog mappings of
1873         errnos to NFS errors.
1874
1875         * conf/umount/umount_linux.c (umount2_fs): cleanup code.  Trying
1876         stat() seems doomed to hang at times, so don't try stat at all,
1877         because umount2() appears to be clever enough to never hang.
1878
1879 2005-07-25  Erez Zadok  <ezk@cs.sunysb.edu>
1880
1881         * amd/amd.h (FSF_FORCE_UNMOUNT): new flag used to indicate that a
1882         particular fserver may need forced/lazy unmounts when it's mntfs's
1883         are unmounted.
1884
1885         * amd/ops_nfs.c (nfs_umount): a simple unmount returned EBUSY, and
1886         the user specified forced_unmounts=yes in amd.conf, and this
1887         fserver was flagged with FSF_FORCE_UNMOUNT, and the OS supports
1888         forced/lazy unmounts, then try forced/lazy unmounts.  This should
1889         allow a hung mount point to be removed.
1890
1891         * amd/srvr_nfs.c (find_nfs_srvr): move away IP-address change
1892         detection code to its own function.
1893         (check_fs_addr_change): new function to detect if the IP address
1894         of a downed host has changed, and do various cleanups and fixups
1895         to try and recover as best from that situation (e.g., flushing
1896         various caches).  Also set the FSF_FORCE_UNMOUNT flag for the
1897         fserver in question.
1898         (flush_srvr_nfs_cache): pass fserver as argument, so we can
1899         selectively flush the NFS cache for a single fserver (or all of
1900         them, if you pass NULL).
1901
1902         * libamu/xutil.c (switch_to_logfile): truncate a regular-file log
1903         file if user passed non-zero "truncate_log" flag.
1904
1905         * include/am_utils.h: switch_to_logfile() now takes a 3rd arg.
1906
1907         * amd/get_args.c (get_args): pass "truncate_log" flag as per
1908         amd.conf global settings.
1909
1910         * amd/conf.c (gopt_truncate_log): store global value of
1911         truncate_log flag.
1912
1913         * amd/amq_subr.c (amqproc_setopt_1_svc), hlfsd/hlfsd.c (main,
1914         reload): don't truncate log file when calling switch_to_logfile().
1915
1916         * amd/amd.h (CFM_TRUNCATE_LOG): new flag.  Fix comment typo.
1917
1918         * NEWS, doc/am-utils.texi (truncate_log Parameter),
1919         scripts/amd.conf.5, scripts/amd.conf-sample (log_file): document
1920         new truncate_log amd.conf parameter.
1921
1922         * amd/conf.c (gopt_forced_unmounts): check Linux kernel version
1923         and alert if your version may be too old for MNT_FORCE to work
1924         (before 2.4.0) or for MNT_DETACH to work (before 2.6.0).
1925         Otherwise it may be impossible to pin down the exact kernel
1926         version in which we should enable this feature.
1927
1928         * conf/umount/umount_linux.c (umount2_fs): if MNT_FORCE returned
1929         EBUSY, then don't try to stat(2) before MNT_DETACH because it
1930         could hang.
1931
1932 2005-07-21  Erez Zadok  <ezk@cs.sunysb.edu>
1933
1934         * conf/umount/umount_linux.c (umount_fs): cleanup this function,
1935         breaking long "if" statements using "goto out".
1936
1937         * conf/umount/umount_{aix,bsd44,osf,default,linux}.c (umount_fs):
1938         call new utility function umount2_fs() as needed (EBUSY, EIO, or
1939         ESTALE).
1940
1941         * conf/umount/umount_{aix,bsd44,osf,default,linux}.c (umount2_fs):
1942         define a new utility function to invoke forcible/lazy unmounts
1943         without touching any mtab files.  This separate utility function
1944         is useful because it can be called from elsewhere.
1945
1946         * amd/amfs_toplvl.c (amfs_toplvl_init): new function, called
1947         before Amd mounts toplvl mounts, which gives us a hook for cleanup
1948         of a previously dead Amd.  In our case, if the user asked for
1949         forced_unmounts, and the OS supports it, then we try forced/lazy
1950         unmounts on any previous toplvl mounts.  This is useful if a
1951         previous Amd died and left behind toplvl mount points (this Amd
1952         will clean them up!).  WARNING: Don't use forced/lazy unmounts if
1953         you have another valid Amd running, because this code WILL force
1954         those valid toplvl mount points to be detached as well!
1955
1956         * amd/amfs_toplvl.c (amfs_toplvl_umount): don't unconditionally
1957         try forced/lazy unmounts because it will prevent a normal Amd from
1958         terminating and cleaning up properly (self-deadlocking: detached
1959         mounts hang the parent Amd on a stat).  Since we already do
1960         unmounts in the background, then try a safer policy: after trying
1961         the normal unmounts a few times (5 sec), escalate and try forced
1962         unmounts a few times (5 more seconds), and if even that failed,
1963         then try the ultimate -- detached unmounts (which always succeed).
1964         This allows Amd to first try and shutdown cleanly, and gradually
1965         try more forcible ways to shutdown.  On Linux, this procedure will
1966         cleanly shutdown Amd even if there are processes with their CWD on
1967         Amd's mount points (which normally result in EBUSY).
1968
1969 2005-07-20  Erez Zadok  <ezk@cs.sunysb.edu>
1970
1971         * Makefile.am (EXTRA_DIST_CONF): add new umount_aix.c to distro.
1972
1973         * conf/umount/umount_aix.c: easier if AIX has its own unmount
1974         helper file.
1975
1976         * m4/macros/check_umount_style.m4: AIX needs its own unmount style
1977         file.
1978
1979         * doc/am-utils.texi (forced_unmounts Parameter): @xref -> @pxref.
1980
1981 2005-07-19  Erez Zadok  <ezk@cs.sunysb.edu>
1982
1983         * conf/nfs_prot/nfs_prot_aix5_2.h: define compatible
1984         forced-unmount flag.
1985
1986         * conf/umount/umount_default.c (umount_fs): if regular umount got
1987         EBUSY, EIO, or ESTALE, then try forced unmount, if supported.  Try
1988         umount2 (Solaris) or uvmount (AIX).
1989
1990         * conf/umount/umount_{bsd44,osf}.c (umount_fs): if default
1991         umount() failed with EIO or ESTALE, also try forced unmount.
1992
1993 2005-07-18  Erez Zadok  <ezk@cs.sunysb.edu>
1994
1995         * amd/autil.c (amfs_mount), amd/amfs_toplvl.c
1996         (amfs_toplvl_umount): enable forced/lazy unmounts only if user
1997         asked for it (and dlog it).
1998
1999         * scripts/amd.conf.5: document new force_unmount global parameter.
2000
2001         * doc/am-utils.texi (forced_unmounts Parameter): document new
2002         global parameter.
2003
2004         * amd/conf.c (gopt_forced_unmounts): process forced_unmounts
2005         option (default "no").  Exit with an error if user specified the
2006         option as "yes" but configure couldn't find support for either the
2007         MNT_FORCE or MNT_DETACH flags.
2008
2009         * scripts/amd.conf-sample (forced_unmounts): example usage of new
2010         option.
2011
2012         * amd/amd.h (CFM_FORCED_UNMOUNTS): new flag for forced_unmounts
2013         option.
2014
2015         * m4/macros/header_templates.m4: templates for _DETACH and _FORCE.
2016
2017         * configure.in: check for generic u/mount options "detach" and
2018         "force".
2019
2020         * include/am_utils.h (UMOUNT_FS, umount_fs): new prototypes.
2021         Define AMU_UMOUNT flags for force, detach, and autofs.
2022
2023         * amd/amfs_toplvl.c (amfs_toplvl_umount): pass _FORCE and _DETACH
2024         unmount flags unconditionally.  Pass them to UMOUNT_FS().
2025
2026         * conf/nfs_prot/nfs_prot_linux.h: define MNT_FORCE and MNT_DETACH
2027         if needed, because some Linux systems don't define them
2028         (presumably because it would be too dangerous to expose these
2029         flags to users).
2030
2031         * amd/autil.c (amfs_mount): if mount(2) failed with ESTALE or EIO,
2032         then assume that we're in trouble, possibly because a previous
2033         mount is hung.  So, first try to force a lazy unmount of the old
2034         mount.  If the forced unmount worked, then try again to mount the
2035         desired file system.  If the forced unmount failed, then don't
2036         retry: just return an error.
2037
2038         * amd/amfs_generic.c (amfs_generic_umount), amd/amfs_host.c
2039         (amfs_host_umount), amd/ops_cachefs.c (cachefs_umount),
2040         amd/ops_cdfs.c (cdfs_umount), amd/ops_efs.c (efs_umount),
2041         amd/ops_lofs.c (lofs_umount), amd/ops_nfs.c (nfs_umount),
2042         amd/ops_pcfs.c (pcfs_umount), amd/ops_ufs.c (ufs_umount),
2043         amd/ops_xfs.c (xfs_umount), conf/umount/umount_bsd44.c
2044         (umount_fs), conf/umount/umount_default.c (umount_fs),
2045         conf/umount/umount_linux.c (umount_fs), conf/umount/umount_osf.c
2046         (umount_fs): compute and use unmount specific flags.
2047
2048 2005-07-16  Erez Zadok  <ezk@cs.sunysb.edu>
2049
2050         * configure.in: better help for users, if nfs_args can't be found.
2051
2052 2005-07-15  Erez Zadok  <ezk@cs.sunysb.edu>
2053
2054         * BUGS: more details on AIX's need to install bos.net.nfs.adt
2055         before configuring am-utils (else configure cannot find struct
2056         nfs_args on AIX).
2057
2058 2005-07-10  Erez Zadok  <ezk@cs.sunysb.edu>
2059
2060         * amd/srvr_nfs.c (find_nfs_srvr): flush NFS handle cache if the IP
2061         address of a down server had changed.
2062
2063         * amd/info_union.c (union_reload): use safer xsnprintf() routine.
2064
2065         * amd/srvr_nfs.c (find_nfs_srvr): check to see if the IP address
2066         of a named but down fserver changed (i.e., the previous IP address
2067         is no longer responding).  If so, then reset the fserver to the
2068         new IP address, and set the fserver's flags such that the function
2069         will fall through to doing the usual NFS version/proto checks and
2070         pinging.  (This should fix one case of bug #308.)
2071
2072         * conf/umount/umount_linux.c (umount_fs): warn if plain umount()
2073         failed, before we try to ignore any errors or try optional
2074         umount2(), possibly with forced/lazy unmount.
2075         (umount_fs): dlog when unmount succeeded.
2076
2077 2005-07-08  Erez Zadok  <ezk@cs.sunysb.edu>
2078
2079         * conf/mount/mount_linux.c: add a couple more NFSv2 error codes
2080         that are compatible with NFSv3.
2081
2082 2005-07-07  Erez Zadok  <ezk@cs.sunysb.edu>
2083
2084         * m4/macros/header_templates.m4: extern template for strlcat().
2085
2086         * amd/get_args.c (get_version_string): use safer strlcat (or
2087         replacement strlcat).  Use new wrapper xsnprintf() function, which
2088         will use the safer vsnprintf() if available, else default to plain
2089         sprintf.
2090
2091         * configure.in: check for existence of strlcat() and its extern,
2092         replacing with libamu/strlcat.c as needed.
2093
2094         * libamu/Makefile.am (EXTRA_DIST): add strlcat.c to distro.
2095
2096         * include/am_defs.h: optional strlcat() extern.
2097
2098         * include/am_utils.h: extern for new xvsnprintf().
2099
2100         * configure.in: overdue new major libtool shlib version.
2101         Check for snprintf function and extern.
2102
2103 2005-07-06  Erez Zadok  <ezk@cs.sunysb.edu>
2104
2105         * conf/nfs_prot/nfs_prot_aix4_3.h: cleanup struct
2106         aix4_nfs_args_bis.
2107
2108         * Makefile.am (EXTRA_DIST_CONF): include mount_aix3.c in
2109         distribution.
2110
2111         * conf/mount/mount_aix.c: mount style for aix 5.x and newer.
2112
2113         * conf/mount/mount_aix3.c: mount styles for aix 3.x/4.x.
2114
2115         * m4/macros/check_mount_style.m4: split mount styles for
2116         aix3.x/4.x and the newer (and better) aix 5.x code.
2117
2118 2005-07-05  Erez Zadok  <ezk@cs.sunysb.edu>
2119
2120         * amq/pawd.c (getawd): avoid buffer overflow.  Bug fix from Graeme
2121         Wilford <G.Wilford@surrey.ac.uk>.
2122
2123 2005-06-30  Erez Zadok  <ezk@cs.sunysb.edu>
2124
2125         * amd/map.c (get_next_exported_ap): Avoid running off the end of
2126         the exported_ap[] array.  Patch from jon+amd-at-spock.org.  Fixed
2127         bug #301.
2128
2129 2005-06-25  Erez Zadok  <ezk@cs.sunysb.edu>
2130
2131         * Makefile.am (EXTRA_DIST_CONF): distribute new mtab_linux.c.
2132
2133         * conf/mtab/mtab_linux.c (rewrite_mtab): variable declarations
2134         must come before C code.
2135
2136         * conf/mtab/mtab_linux.c: Linux-specific mount table hanlding
2137         that's safe (uses locks, handles symlinks to /proc/mounts, etc.).
2138         Patch from Red Hat, which they adapted from mtab_file.c.  Minor
2139         fixes to this file.
2140
2141         * m4/macros/check_mnttab_style.m4: Use Linux-specific mount table
2142         handling.
2143
2144 2005-06-24  Erez Zadok  <ezk@cs.sunysb.edu>
2145
2146         * conf/mount/mount_aix.c (mount_aix3): minor cleanup of filehandle
2147         copying code.
2148
2149 2005-06-23  Erez Zadok  <ezk@cs.sunysb.edu>
2150
2151         * conf/nfs_prot/nfs_prot_hpux.h: add extern for h_errno, which may
2152         be missing from older hpux10 systems.
2153
2154         * configure.in: update bug-reporting address to list
2155         https://bugzilla.am-utils.org/ as well as the mailing list.
2156
2157         * Makefile.am (EXTRA_DIST_M4): distribute new type_rpcvers_t.m4
2158         macro.
2159
2160         * conf/transp/transp_tli.c (get_nfs_version): always use
2161         rpcvers_t, now that it'll be automatically discovered.
2162
2163         * configure.in: check for rpcvers_t type.
2164
2165         * m4/macros/type_rpcvers_t.m4: new macro to check for type of
2166         rpcvers_t (Some Solaris versions need it).
2167
2168         * conf/nfs_prot/nfs_prot_sunos5_8.h: don't define INADDR_NONE
2169         here, but in the actual source files that may need it.
2170
2171         * libamu/wire.c (INADDR_NONE): define INADDR_NONE if not defined
2172         already.
2173
2174         * include/am_defs.h: define extern for sleep(3) if needed.
2175
2176         * m4/macros/header_templates.m4: template for sleep(3) extern.
2177
2178         * configure.in: check for extern for sleep(3), which is missing
2179         from some old (and buggy) versions of gcc's fixinc'ed headers.
2180
2181         * conf/nfs_prot/nfs_prot_aix4_3.h: update definition of struct
2182         nfs_args from actual system headers.
2183
2184         * conf/mount/mount_aix.c (mount_aix3): fix name of aix4 "bis"
2185         structure.
2186
2187 2005-06-22  Erez Zadok  <ezk@cs.sunysb.edu>
2188
2189         * BUGS: update Solaris information about use of f/lex and
2190         yacc/bison.
2191
2192 2005-06-20  Erez Zadok  <ezk@cs.sunysb.edu>
2193
2194         * minor new port: i386-pc-linux-suse9.3.
2195
2196 2005-06-20  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2197
2198         * configure.in (linux/nfs_mount.h): Move __KERNEL__ definition up
2199         so u32 is available for <linux/sunrpc/msg_prot.h>.
2200
2201 2005-06-16  Erez Zadok  <ezk@cs.sunysb.edu>
2202
2203         * amd/mapc.c (maptypes): move MAP_EXEC after MAP_FILE, because
2204         exec maps will always match when users use amd with command line
2205         args (not amd.conf).  Using that legacy way, unfortunately, means
2206         that Amd will use it's hard-coded info-service search path, which
2207         doesn't work for everyone.  It's much better to use amd.conf and
2208         specify what you want exactly.
2209
2210 2005-06-15  Erez Zadok  <ezk@cs.sunysb.edu>
2211
2212         * minor new port: i386-pc-linux-fc4 (gcc4 catches more bugs).
2213
2214         * m4/macros/type_recvfrom_fromlen.m4: linux systems use unsigned
2215         int as the type of recvfrom()'s 6th argument.
2216
2217         * m4/macros/type_yp_order_outorder.m4: linux systems use unsigned
2218         int as the type of yp_order()'s 3rd argument.
2219
2220 2005-06-15  Erez Zadok  <ezk@cs.sunysb.edu>
2221
2222         * scripts/amd.conf-sample (map_type): typo, said mount_type
2223         instead of map_type for the 'exec' example.
2224
2225 2005-06-11  Erez Zadok  <ezk@cs.sunysb.edu>
2226
2227         *******************************************************************
2228         *** Released am-utils-6.1                                       ***
2229         *******************************************************************
2230
2231 2005-06-04  Erez Zadok  <ezk@cs.sunysb.edu>
2232
2233         * amd/ops_nfs.c (mount_nfs_fh): set timeo/retrans mount options
2234         only if the user specified them in amd.conf or elsewhere.  If they
2235         were not specified, don't do anything, which would let the OS use
2236         its own defaults.
2237
2238         * amd/get_args.c (get_args): negative timeo/retrans are "good" in
2239         that they represent uninitialized values (meaning to let the OS
2240         use it's default values).  So only check if user specified a value
2241         equal to zero (invalid).
2242
2243         * amd/amd.h: define AMU_TYPE_NONE so we know when users didn't
2244         specify timeo/retrans at all.
2245
2246 2005-06-03  Erez Zadok  <ezk@cs.sunysb.edu>
2247
2248         *******************************************************************
2249         *** Released am-utils-6.1-rc7                                   ***
2250         *******************************************************************
2251
2252         * m4/macros/os_cflags.m4 (CFLAGS): use custom-OS C flags for
2253         configuring, not just for building.  That way the two phases
2254         (configure and compile) are in sync.  This fixes getwire() on
2255         OSF/1 systems.
2256
2257         * conf/nfs_prot/nfs_prot_sunos5_8.h: define INADDR_NONE if not
2258         defined in system headers.
2259
2260 2005-06-01  Erez Zadok  <ezk@cs.sunysb.edu>
2261
2262         * libamu/Makefile.am (EXTRA_DIST): remove alloca.c as it's no
2263         longer needed.
2264
2265 2005-05-28  Erez Zadok  <ezk@cs.sunysb.edu>
2266
2267         * completed set of fixes for irix6.5.
2268
2269         * Minor new ports alpha-unknown-linux-gentoo1.4.16
2270         alphaev56-dec-osf4.0f, mips-unknown-linux-gentoo1.4.16, and
2271         sparc64-unknown-linux-gentoo1.4.16, and mips-sgi-irix6.5.  Test
2272         those systems with both cc and gcc, where possible.
2273
2274         * include/am_xdr_func.h: remove trailing comma at end of enum
2275         list.
2276
2277         * m4/macros/os_cflags.m4: with gcc 3.4.3 on irix-6.5, we get pte_t
2278         undefined.  So give it a dummy value.
2279
2280         * libamu/alloca.c: remove file from distro.
2281
2282         * configure.in: don't call AC_FUNC_ALLOCA any more.
2283
2284         * include/am_defs.h: remove header fixups for <alloca.h>, now that
2285         we don't need it.
2286
2287         * amd/amq_svc.c (amqsvc_is_client_allowed): rewrite function to
2288         avoid only use of alloca() in am-utils, and to use strdup
2289         explicitly.  This way we can avoid using alloca, a feature that's
2290         not portable on various systems.
2291
2292         * amq/amq.c: remove unused lint/rcsid cruft.
2293
2294 2005-05-27  Erez Zadok  <ezk@cs.sunysb.edu>
2295
2296         * conf/checkmount/checkmount_osf.c (fixmount_check_mount): add
2297         extra parentheses around assignments in "if" expressions (gcc
2298         complains).
2299
2300         * conf/nfs_prot/nfs_prot_osf4.h: add missing extern definitions
2301         for plock, hstrerror, getmntinfo, alloca, xdr_exportnode, and
2302         xdr_groups.
2303
2304         * configure.in: check for <linux/socket.h>, which, if found,
2305         appears to be preferable to <sys/socket.h>.  Use it to find
2306         <linux/nfs_mount.h>.  On some Linux systems
2307         (Gentoo), both exist but only one must be included, or else you
2308         get redefined structure errors.
2309
2310         * libamu/wire.c (is_network_member): check if masknum is
2311         INADDR_NONE, not "< 0" because it's an unsigned quantity.
2312
2313         * libamu/util.c (xstrlcpy): remove useless test for size_t < 0,
2314         because it's an unsigned quantity.
2315
2316 2005-05-26  Erez Zadok  <ezk@cs.sunysb.edu>
2317
2318         *******************************************************************
2319         *** Released am-utils-6.1-rc6                                   ***
2320         *******************************************************************
2321
2322 2005-05-25  Erez Zadok  <ezk@cs.sunysb.edu>
2323
2324         * conf/nfs_prot/nfs_prot_aix5_2.h: AIX 5.3 complains about
2325         missing definition of struct thread_credentials in <sys/vfs.h>
2326         but trying to bring that definition in drags a whole lot of other
2327         messy stuff.  So just provide a dummy definition for this
2328         structure.
2329
2330 2005-05-24  Erez Zadok  <ezk@cs.sunysb.edu>
2331
2332         * Makefile.am (EXTRA_DIST_M4): distribute m4/macros/libtool.m4.
2333
2334         * m4/macros/header_templates.m4: template for HAVE_EXTERN_MNTCTL.
2335
2336         * m4/macros/check_extern.m4: include <sys/vmount.h> on AIX
2337         systems, so we can find extern definition for mntctl().
2338
2339         * conf/mtab/mtab_aix.c, conf/checkmount/checkmount_aix.c: only
2340         define an extern for mntctl() if needed.
2341
2342         * amd/ops_nfs.c (prime_nfs_fhandle_cache): never, ever, use C++
2343         style comments in C code.  Some C compilers don't accept it.
2344
2345         * amd/info_ldap.c (amu_ldap_init, get_ldap_timestamp): force cast
2346         of "time_t *ts" to u_long, to avoid complaints on AIX 5.2 with
2347         xlC.
2348
2349         * amd/get_args.c: rename symbol conf_file to amu_conf_file to
2350         avoid conflict with libldap.a from openldap-2.0.21 on AIX 5.2.
2351         Oh, when will people who develop libraries learn to always prefix
2352         their exported symbols with a library-specific name?
2353
2354         * configure.in: check for mntctl() extern on AIX systems.
2355
2356         * ltmain.sh: update from latest libtool-1.5.18, so we can properly
2357         build on AIX 5.2/5.3 with cc and with gcc.
2358
2359         * m4/macros/libtool.m4: update from latest libtool-1.5.18.  This
2360         time, and from now on, we must include libtool.m4 from the libtool
2361         distribution itself.  That way we ensure that we use an ltmain.sh
2362         that matches the appropriate libtool M4 macros.  This makes
2363         am-utils no longer dependent on having libtool installed on a
2364         given system on which you run bootstrap.
2365
2366 2005-05-23  Erez Zadok  <ezk@cs.sunysb.edu>
2367
2368         * minor new port: i386-pc-linux-deb3.0.
2369
2370 2005-05-22  Erez Zadok  <ezk@cs.sunysb.edu>
2371
2372         * minor new ports: i386-unknown-netbsdelf2.0.2 and
2373         i386-unknown-openbsd3.7.
2374
2375 2005-05-20  Erez Zadok  <ezk@cs.sunysb.edu>
2376
2377         * minor new ports: i386-pc-linux-gentoo1.4.16 and
2378         powerpc-unknown-linux-yellowdog2.3.
2379
2380         * include/{mount_headers2.h, am_defs.h}: safer setup before
2381         inclusion of <linux/nfs_mount.h>, which is broken on several
2382         systems.
2383
2384         * configure.in: test for <linux/nfs2.h>.  Separate special test
2385         for <linux/nfs_mount.h> because we need to define __KERNEL__ for
2386         that test, as well as optionally define struct nfs2_fh for some
2387         systems (gentoo with 2.4 kernel, yellowdog 2.3, and others).
2388
2389         * config.guess.long: support Gentoo and Yellow Dog Linux distros.
2390
2391 2005-05-18  Erez Zadok  <ezk@cs.sunysb.edu>
2392
2393         * minor new ports: i386-pc-linux-suse9.2 and
2394         i386-unknown-freebsd5.4.
2395
2396         * amd/nfs_subr.c: use NFS_FHSIZE, not FHSIZE.
2397
2398 2005-05-17  Erez Zadok  <ezk@cs.sunysb.edu>
2399
2400         *******************************************************************
2401         *** Released am-utils-6.1-rc5                                   ***
2402         *******************************************************************
2403
2404         * amd/info_ldap.c (amu_ldap_init): change plog to dlog, to avoid
2405         sending annoying warning for a minor issue.
2406
2407 2005-05-17  Ion Badulescu <ionut@moisil.badula.org>
2408
2409         * amd/nfs_subr.c: check for NULL pointer before dereferencing it.
2410
2411 2005-05-16  Erez Zadok  <ezk@cs.sunysb.edu>
2412
2413         * minor new ports: powerpc-apple-darwin7.9.0.
2414
2415         * m4/macros/host_macros.m4: if a NetBSD system, remove 'elf' part
2416         from OS name because it's no longer relevant.  Also, don't include
2417         the major OS version number in the OS name because that's also
2418         unnecessary (and users can always use $osver in maps).
2419
2420         * amd/nfs_subr.c: use [1] for out-of-band pointer at the end of
2421         struct am_fh, because it's the most portable method.  Bug fix
2422         suggestion from Dan Riley <dsr at mail.lns.cornell.edu>.  Better
2423         fix from Ion Badulescu: use [FHSIZE-sizeof(u_int)] which is the
2424         actual size we use.
2425
2426         * amd/amfs_generic.c (amfs_lookup_mntfs): reset currently used
2427         def_opts to options given in -opts, appended with the /default
2428         options.  Bug fix suggestion from Dan Riley <dsr at
2429         mail.lns.cornell.edu>.
2430
2431 2005-05-13  Erez Zadok  <ezk@cs.sunysb.edu>
2432
2433         *******************************************************************
2434         *** Released am-utils-6.1-rc4                                   ***
2435         *******************************************************************
2436
2437 2005-05-11  Daniel P. Ottavio  <dottavio@ic.sunysb.edu>
2438
2439         * amd/amd.c (main) : fixed memory leak detected by valgrind
2440
2441         * amd/info_ldap.c (amu_ldap_init) : fixed memory leak detected by
2442         valgrind
2443
2444 2005-05-11  Erez Zadok  <ezk@cs.sunysb.edu>
2445
2446         * m4/macros/{check_checkmount_style.m4, check_mnttab_style.m4,
2447         check_nfs_fh_dref.m4, check_nfs_prot_headers.m4,
2448         check_nfs_sa_dref.m4, check_umount_style.m4, os_cflags.m4}: check
2449         for "macosx" as valid OS string, so we compile properly on Darwin
2450         systems.
2451
2452         *******************************************************************
2453         *** Released am-utils-6.1-rc3                                   ***
2454         *******************************************************************
2455
2456         * rerun bootstrap to get a working configure script that actually
2457         checks for limits.h and dependent linux autofs/nfs headers.
2458
2459         * configure.in: remove redundant check for limits.h.
2460
2461 2005-05-09  Erez Zadok  <ezk@cs.sunysb.edu>
2462
2463         *******************************************************************
2464         *** Released am-utils-6.1-rc2                                   ***
2465         *******************************************************************
2466
2467 2005-05-08  Erez Zadok  <ezk@cs.sunysb.edu>
2468
2469         * amd/amfs_generic.c (amfs_lookup_mntfs): removed redundant use of
2470         old_def_opts variable.
2471
2472 2005-05-08  Daniel P. Ottavio  <dottavio@ic.sunysb.edu>
2473
2474         * amd/amfs_generic.c (amfs_lookup_mntfs) : Make sure when a map
2475         entry has a single dash '-', that the default options are reset.
2476         This functionality was somehow lost from earlier releases and
2477         reported by Dan Riley <dsr@mail.lns.cornell.edu>.
2478
2479 2005-05-05  Erez Zadok  <ezk@cs.sunysb.edu>
2480
2481         * config.guess.long: detect SuSE Enterprise Server and call it
2482         "sles" not "suse".
2483
2484 2005-05-02  Erez Zadok  <ezk@cs.sunysb.edu>
2485
2486         * doc/am-utils.texi (amd): document proper use of
2487         /etc/hosts.allow.  Don't spawn a new Amd process because Amd will
2488         get confused if someone else waitpid's on its children (which
2489         often do important un/mount work).  Issue reported by Francis
2490         Montagnac <Francis.Montagnac at sophia.inria.fr>.
2491
2492         * minor new ports: powerpc64-unknown-linux-rhel4, and
2493         powerpc64-unknown-linux-sles9.
2494
2495 2005-05-01  Daniel P. Ottavio  <dottavio@ic.sunysb.edu>
2496
2497         * amd/amfs_host.c (amfs_host_umount): We do not want to pass
2498         ENOENT as an error because if the directory does not exists our
2499         work is done anyway.
2500
2501         * conf/umount/umount_linux.c (umount_fs): If we are successful or
2502         there was an ENOENT, remove the mount entry from the mtab file.
2503
2504 2005-05-01  Ion Badulescu  <ionut@moisil.badula.org>
2505
2506         * amd/nfs_subr.c: am_fh definition moved here from amd.h;
2507         restructured to better reflect its duality (old/new filehandles)
2508         (fh_to_mp3): fhh_gen is always used, even for new style f/h
2509         (mp_to_fh): ditto
2510
2511         * amd/amd.h: moved am_fh definition to nfs_subr.c (which is the
2512         only place where it's used)
2513
2514 2005-04-30  Erez Zadok  <ezk@cs.sunysb.edu>
2515
2516         * m4/macros/host_macros.m4: use sw_vers on Apple machines to find
2517         out more appropriate OS name (macosx) and OS version (10.3.x) than
2518         uname(3) reports.
2519
2520 2005-04-29  Erez Zadok  <ezk@cs.sunysb.edu>
2521
2522         * config.guess, config.sub, doc/texinfo.tex: updates from latest
2523         official GNU distributions.
2524
2525         * m4/macros/host_macros.m4: for macosx, change architecture value
2526         from "Power Macintosh" to "powerpc".
2527
2528         * libamu/util.c (xstrlcpy): format 'len' parameter as u_long, not
2529         int (it's a size_t).
2530
2531 2005-04-16  Erez Zadok  <ezk@cs.sunysb.edu>
2532
2533         * scripts/amd.conf.5, doc/am-utils.texi (normalize_slashes
2534         Parameter), scripts/amd.conf-sample: document new
2535         normalize_slashes global configuration parameter.
2536
2537         * amd/opts.c (deslashify, normalize_slash): don't touch trailing
2538         slashes, even if multiples of them, if user said
2539         normalize_slashes=no in amd.conf.
2540
2541         * amd/conf.c (gopt_normalize_slashes): new function to record if
2542         to normalize slashes or not.
2543
2544         * amd/amd.h (CFM_NORMALIZE_SLASHES): new flag to decide if to
2545         normalize double-slashes or not ("yes" by default).
2546
2547         * amd/autil.c (am_mounted): pass TRUE when calling mf_mounted.
2548         This is the parent mntfs which does the mf->mf_fo
2549         (am_opts type), and we're passing TRUE here to tell mf_mounted to
2550         actually free the am_opts.
2551
2552         * amd/autil.c (mf_mounted): Be careful when calling free_ops and
2553         XFREE here.  Some pseudo file systems like nfsx call this
2554         function, even though it would be called by the lower-level amd
2555         file system functions.  nfsx needs to call this function because
2556         of the other actions it takes.  So we pass a boolean from the
2557         caller (yes, not so clean workaround) to determine if we should
2558         free or not.  If we're not freeing (often because we're called
2559         from a callback function), then just to be sure, we'll zero out
2560         the am_opts structure and set the pointer to NULL.  The parent
2561         mntfs node owns this memory and is going to free it with a call to
2562         mf_mounted(mntfs,TRUE).
2563
2564         * amd/amd.h: pass flag to mf_mounted, to free or not to free the
2565         am_opts.
2566
2567         * amd/amfs_nfsx.c (amfs_nfsx_cont): call mf_mounted with FALSE to
2568         tell it not to free the am_opts, to avoid double free.
2569
2570         * include/am_defs.h: include limits.h if found.
2571
2572         * configure.in: check for limits.h.  Check for certain Linux
2573         headers such as auto_fs.h after checking for limits.h, and include
2574         the latter if it exists, because some Linux headers depend on
2575         limits.h.  This prevents warnings during configure time.
2576
2577 2005-04-12  Erez Zadok  <ezk@cs.sunysb.edu>
2578
2579         * amd/amfs_toplvl.c (amfs_toplvl_mount): do NOT set retrans/timeo
2580         values from default global UDP settings, because it can cause
2581         unexpected timeouts in Amd on slow systems.  The default that each
2582         OS provides for these toplvl NFS mounts should be OK, or else you
2583         can use the map_options entry.
2584
2585 2005-04-09  Daniel P. Ottavio  <dottavio@ic.sunysb.edu>
2586
2587         * amd/nfs_subr.c (mp_to_fh): Replace xstrlcpy with memcpy because the
2588         source buffer is treated more as a filehandle than a string.
2589
2590         * amd/nfs_subr.c (fh_to_mp3): Replace xstrlcpy with memcpy because the
2591         source buffer is treated more as a filehandle than a string.
2592
2593         * amd/opts.c (free_op): No longer need to assign pointer to NULL
2594         after XFREE.
2595
2596         * amd/opts.c (expand_op): Revert back to using strncpy() instead
2597         of xstrlcpy.  The code is correct and relies on the semantics of
2598         strncpy.
2599
2600         * libamu/mount_fs.c (compute_nfs_args): Leave XXX warning that use
2601         of xstrlcpy in NFS_HN_DREF may corrupt a struct nfs_args, or
2602         truncate our concocted "hostname:/path" string prematurely if the
2603         nap->hostname field is ever less than 64 bytes long
2604         (MAXHOSTNAMELEN).
2605
2606         * libamu/util.c (xstrlcpy): Return immediately if len is 0 to
2607         avoid unnecessary work.  Log an error and return if len is less
2608         than 0.
2609
2610 2005-04-07  Erez Zadok  <ezk@cs.sunysb.edu>
2611
2612         * include/am_utils.h (XFREE): XFREE() should nullify the pointer
2613         even when compiling without debugging.  It's safer this way.
2614
2615         * libamu/xutil.c (am_set_hostname),
2616         hlfsd/stubs.c (nfsproc_lookup_2_svc),
2617         fsinfo/fsinfo.c (fsi_get_args),
2618         fixmount/fixmount.c (is_same_host, remove_mount, main),
2619         conf/mtab/mtab_isc3.c (mnt_dup, mtab_of),
2620         conf/mount/mount_svr4.c (mount_svr4),
2621         conf/mount/mount_linux.c (setup_loop_device),
2622         conf/hn_dref/hn_dref_linux.h (NFS_HN_DREF),
2623         conf/hn_dref/hn_dref_isc3.h (NFS_HN_DREF),
2624         amd/opts.c (expand_op),
2625         amd/ops_nfs.c (mount_nfs_fh),
2626         amd/nfs_subr.c (fh_to_mp3, mp_to_fh),
2627         amd/amfs_host.c (amfs_host_mount),
2628         amd/am_ops.c (merge_opts):
2629         use the new xstrlcpy instead of strncpy.
2630
2631         * conf/checkmount/checkmount_{default,svr4}.c
2632         (fixmount_check_mount): document why NOT to use xstrlcpy.
2633
2634         * libamu/xutil.c: am_hostname need not be MAXHOSTNAMELEN+1 any
2635         more, just MAXHOSTNAMELEN.
2636
2637         * libamu/xutil.c (real_plog): use strlcpy (not xstrlcpy to avoid
2638         recursion, since xstrlcpy may use plog).
2639
2640         * libamu/util.c (xstrlcpy): truncating a string is serious.  Use
2641         XLOG_ERROR not XLOG_WARNING.
2642
2643 2005-04-06  Erez Zadok  <ezk@cs.sunysb.edu>
2644
2645         * include/am_utils.h: external definition for new xstrlcpy
2646         function.
2647
2648         * libamu/util.c (xstrlcpy): new function.  Similar to strncpy, but
2649         uses strlcpy to guarantee that the resulting string is null
2650         terminated, and also warn if the resulting string was truncated.
2651
2652         * libamu/xutil.c (get_server_pid): move this function from util.c
2653         which is for general-purpose utilities.
2654
2655         * m4/macros/header_templates.m4: template for HAVE_EXTERN_STRLCPY.
2656
2657         * include/am_defs.h: provide extern definition for strlcpy, if
2658         needed.
2659
2660         * libamu/Makefile.am (EXTRA_DIST): include strlcpy.c in distro.
2661
2662         * configure.in: search for strlcpy and its extern.
2663
2664         * amq/pawd.c (find_mt): It only handles *some* filesystem types,
2665         so it breaks on direct xfs mounts for example.  The fix (from
2666         Christos Zoulas) is simple: We need to exclude toplvl to avoid
2667         infinite recursion, but all other fs's are game.
2668
2669 2005-03-31  Erez Zadok  <ezk@cs.sunysb.edu>
2670
2671         * amd/nfs_subr.c (fh_to_mp3): strncpy may not null terminate if
2672         copying exactly len bytes, so add null just to be safe.
2673
2674 2005-03-30  Daniel P. Ottavio  <dottavio@ic.sunysb.edu>
2675
2676         * amd/nfs_subr.c (fh_to_mp3): Increased the n of strncpy()
2677         to make sure it null terminates.
2678
2679 2005-03-29  Daniel P. Ottavio  <dottavio@ic.sunysb.edu>
2680
2681         * amd/nfs_subr.c (fh_to_mp3): Fix memset bug. In this case
2682         the memset can be removed because strncpy() should padd the
2683         buffer with NULLs anyway.
2684
2685 2005-03-21  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2686
2687         * include/am_defs.h: Clarify comment.
2688
2689 2005-03-21  Erez Zadok  <ezk@cs.sunysb.edu>
2690
2691         * include/am_defs.h: undefine "GROUP" so Solaris 10 with gcc-2.96
2692         won't complain about a conflict for this definition between
2693         <rpcsvc/nis.h> and <sys/acl.h>.
2694
2695 2005-03-20  Erez Zadok  <ezk@cs.sunysb.edu>
2696
2697         * amd/readdir.c (amfs_readdir_browsable): use %p, not %lx.
2698
2699         * libamu/mount_fs.c (print_nfs_args): print pointer with %p, not
2700         %lx.
2701
2702 2005-03-18  Erez Zadok  <ezk@cs.sunysb.edu>
2703
2704         *******************************************************************
2705         *** Released am-utils-6.1-rc1                                   ***
2706         *******************************************************************
2707
2708 2005-03-18  Erez Zadok  <ezk@cs.sunysb.edu>
2709
2710         * conf/transp/transp_tli.c (get_nfs_version): use proper type for
2711         versout on Solaris (rpcvcers_t).
2712
2713         * amd/mapc.c (mapc_showtypes): if last map type to print, don't
2714         append newline or comma to it.
2715
2716         * libamu/mount_fs.c (print_nfs_args): cast struct netbuf pointer
2717         to %lx because on Solaris 10 sparc gcc-3.4.3 complains about
2718         casting it to an int (size is different).
2719
2720         * configure.in, NEWS: prepare for 6.1-rc1 release.
2721
2722 2005-03-17  Erez Zadok  <ezk@cs.sunysb.edu>
2723
2724         * scripts/amd2ldif.in, ldap.schema: fixes by Adam Morley
2725         <adam-at-gmi-dot-com> to synchronize what amd2ldif does vs. what
2726         the ldap.schema expects.
2727
2728         * amd/map.c (exported_ap_free): We're using a free-list data
2729         structure and re-using malloc'ed objects.  So, to be safe, memset
2730         entire structure when it's freed, not just the pointer.
2731         (umount_exported): bug fix to on-exit code.  Don't run
2732         am_unmounted() unless unmount_mp() didn't run, since the latter
2733         already calls am_unmounted().  This way we avoid a double-free
2734         bug.
2735
2736 2005-03-15  Erez Zadok  <ezk@cs.sunysb.edu>
2737
2738         * tasks: updates.  Executable maps is supported.  NFSv4 and
2739         FreeBSD autofs isn't.
2740
2741         * Makefile.am (EXTRA_DIST): include FAQ in distro.
2742
2743         * doc/Makefile.am (alldocs): install README.lda and README.osx.
2744
2745         * FAQ: new file, better late than never.
2746
2747 2005-03-14  Erez Zadok  <ezk@cs.sunysb.edu>
2748
2749         * scripts/amd2ldif.in: patch to add the amdMapName attribute to
2750         the amdMapTimestamp object when amd2ldif converts it.  This is
2751         necessary if you are using type:=auto mounts and want those
2752         mountmaps looked up through LDAP.  Patch from Jim Zajkowski
2753         <jim.zajkowski@gmail.com>.
2754
2755 2005-03-12  Erez Zadok  <ezk@cs.sunysb.edu>
2756
2757         * minor new ports: i386-pc-linux-rhel4.
2758
2759         * minor new ports: powerpc-apple-darwin7.8.0.
2760
2761 2005-03-10  Erez Zadok  <ezk@cs.sunysb.edu>
2762
2763         * amd/ops_nfs.c (prime_nfs_fhandle_cache): rearrange code so it's
2764         cleaner.
2765
2766         * ltmain.sh: upgrade from libtool-1.5.6.
2767
2768         * m4/macros/check_{fs_mntent,mnttab_type,mount_type}.m4: check for
2769         Linux 2.6 kernel modules, which have a .ko extension, not .o.  Now
2770         we can properly detect which file systems exist on Linux 2.6 based
2771         systems (SLES9, RHEL4, Fedora, etc.).
2772
2773 2005-03-09  Erez Zadok  <ezk@cs.sunysb.edu>
2774
2775         * m4/macros/host_macros.m4: find out what's the OS software
2776         distribution name, if any.
2777
2778         * m4/macros/header_templates.m4: template for DISTRO_NAME.
2779
2780         * amd/get_args.c (get_version_string): print again full_os, os,
2781         osver, and vendor (bug fix).
2782         (get_version_string): print distribution name, if known (e.g.,
2783         rh9, suse8, etc.).
2784
2785         * amd/mapc.c (mapc_showtypes): wrap around list of supported map.
2786
2787 2005-03-08  Erez Zadok  <ezk@cs.sunysb.edu>
2788
2789         * amd/map.c (umount_exported): when unmounting file systems on
2790         exit (when amd.conf global unmount_on_exit=yes), use unmount_mp()
2791         instead of unmount_node() because the latter always unmounts in
2792         the foreground, whereas the former unmounts in the bg/fg as
2793         needed.  Unmounting always in the foreground has two problems: (1)
2794         if the unmount hangs, amd hangs, and (2) for type:=program, the
2795         unmount script is execve'd(!) thus replacing the main amd process,
2796         which never gets to finish up, leaving the amd mount points hung.
2797
2798         * NEWS: mention new feature of executable maps.
2799
2800         * AUTHORS: Acknowledge Erik Kline.
2801
2802         * scripts/amd.conf.5: document executable maps and
2803         exec_map_timeout parameter.
2804
2805         * scripts/amd.conf-sample: examples of an executable map and
2806         exec_map_timeout.
2807
2808         * m4/macros/header_templates.m4: template for HAVE_MAP_EXEC.
2809
2810         * doc/am-utils.texi: document Executable maps and exec_map_timeout
2811         parameter.
2812
2813         * amd/conf.c (gopt_exec_map_timeout): function to parse
2814         exec_map_timeout [global] parameter.
2815
2816         * amd/amd.h (AMFS_EXEC_MAP_TIMEOUT): define default executable map
2817         timeout to 10 seconds, and a global placeholder for the
2818         configurable value.
2819
2820         * amd/amd.c (init_global_options): initialize default executable
2821         map timeout.
2822
2823         * amd/Makefile.am (EXTRA_amd_SOURCES): include info_exec.c in
2824         tarball.
2825
2826         * configure.in: enable executable maps.
2827
2828         * amd/mapc.c: define executable map functions and behavior.
2829
2830         * amd/info_exec.c: executable map implementation from Erik Kline
2831         <ekline at ekline dot com>, modified, cleaned-up, and fixed.
2832
2833 2005-03-07  Erez Zadok  <ezk@cs.sunysb.edu>
2834
2835         * amd/info_file.c (file_init_or_mtime): consolidate identical
2836         file_init and file_mtime into one function.
2837
2838 2005-03-05  Erez Zadok  <ezk@cs.sunysb.edu>
2839
2840         * doc/am-utils.texi (Program Filesystem): if umount/unmount are
2841         not specified, Amd uses "umount ${fs}" by default.
2842
2843         * amd/amfs_program.c (amfs_program_match): if neither unmount nor
2844         umount parameters are specified, use the default userland umount
2845         program with "umount ${fs}".  This way type:=program doesn't have
2846         to specify the umount program for basic unmounting actions.
2847         (amfs_program_init): save unmount program string in mf_private
2848         only if it's NULL, not based on mf_refc.
2849
2850         * configure.in: auto-detect name of userland unmount program.
2851
2852         * aux_conf.h.in (UNMOUNT_PROGRAM): macro for default userland
2853         unmount program.
2854
2855         * amd/ops_cachefs.c (cachefs_init): save unmount program string in
2856         mf_private only if it's NULL, not based on mf_refc.
2857
2858         * configure.in: don't "discover" inheritance file system any more,
2859         since we don't have the .c file for it.
2860
2861         * amd/get_args.c (get_version_string): hack to still show that we
2862         support the inherit file system in output of amd -v.
2863
2864 2005-03-05  Ion Badulescu  <ionut@moisil.badula.org>
2865
2866         * amd/amfs_inherit.c: removed, dead code
2867
2868         * amd/Makefile.am,
2869         amd/am_ops.c,
2870         amd/amd.h,
2871         conf/autofs/autofs_linux.h,
2872         conf/autofs/autofs_solaris_v1.h,
2873         conf/autofs/autofs_solaris_v2_v3.h,
2874         m4/macros/header_templates.m4: removed references to amfs_inherit.c
2875
2876 2005-03-05  Erez Zadok  <ezk@cs.sunysb.edu>
2877
2878         * amd/autil.c (am_mounted): completely rewrite the unmount
2879         no/timeout code to (1) make more sense for odd conditions, and (2)
2880         allow utimeout=N mount options to override FS_NOTIMEOUT default
2881         flags for disk-based file systems such as ufs, pcfs, cdfs, etc.
2882
2883         * libamu/mount_fs.c (mount_fs): use safer XFREE() not free().
2884
2885         * conf/umount/umount_linux.c (umount_fs): strtok is destructive,
2886         so use strdup'ed string.
2887
2888         * conf/mount/mount_linux.c (parse_opts): strtok is destructive, so
2889         use strdup'ed string.
2890
2891 2005-03-04  Erez Zadok  <ezk@cs.sunysb.edu>
2892
2893         * scripts/amd.conf.5, doc/am-utils.texi (cache_duration
2894         Parameter): clarify actual behavior: this Parameter affects
2895         initial mount timeout as well as the linear backoff what happens
2896         the initial failed EBUSY unmount.
2897
2898         * doc/am-utils.texi (opts Option): better explanation of
2899         utimeout=N mount pseudo-option.
2900
2901         * amd/amd.h (AM_TTL, AM_TTL_W): better comments, minor cleanup.
2902
2903 2005-03-02  Daniel P. Ottavio  <dottavio@ic.sunysb.edu>
2904
2905         * AUTHORS: add Dan Ottavio.
2906
2907         * scripts/amd.conf.5: document new debug_mtab_file option.
2908
2909         * scripts/amd.conf-sample (debug_mtab_file): show example.
2910
2911         * doc/am-utils.texi (debug_mtab_file Parameter): document new
2912         option.
2913
2914         * conf/mtab/mtab_{file,mach3}.c (open_locked_mtab): if mtab file
2915         doesn't exist by the time Amd tries to exist, return a 0 rather
2916         than hang indefinitely.
2917
2918         * amd/conf.c (gopt_debug_mtab_file): new function to parse
2919         debug_mtab_file option.
2920
2921         * amd/amd.h: placeholder for debug_mtab_file string.
2922         Define default debug_mtab_file to "/tmp/mtab".
2923
2924         * NEWS: document new debug_mtab_file option.
2925
2926 2005-03-02  Erez Zadok  <ezk@cs.sunysb.edu>
2927
2928         * conf/transp/transp_{sockets,tli}.c (amu_get_myaddress): when
2929         users want Amd's NFS service to bind to some arbitrary "localhost"
2930         address, show which address was actually resolved and bound to.
2931
2932 2005-03-01  Erez Zadok  <ezk@cs.sunysb.edu>
2933
2934         * amd/srvr_nfs.c (start_nfs_pings): move code from elsewhere
2935         (update_nfs_pingval) that initializes the pinger, as well as turns
2936         it on/off as needed, and handles changing its value.  This is to
2937         avoid races and other infinite-loop conditions that could result
2938         in ping storms.
2939
2940         * amd/srvr_amfs_auto.c (amfs_generic_find_srvr): when creating a
2941         new file server structure, default the ping value to AM_PINGER
2942         (30sec) and set the FSF_PING_UNINIT flag.
2943
2944         * amd/amd.h (FSF_PING_UNINIT): new flag to tell whether the NFS
2945         pinger had been initialized for a given file server.
2946
2947         * scripts/ctl-amd.in (stop): no need to check if
2948         /var/lock/subsys/amd file exists if you do an rm -f afterward.
2949         Ensure that proper return value is returned from script.
2950
2951         * NEWS, doc/am-utils.texi (opts Option): update meaning of ping=N
2952         so that if N=-1, pings are off; if N=0, pings are set to the
2953         default value (currently 30 seconds).
2954
2955 2005-02-28  Erez Zadok  <ezk@cs.sunysb.edu>
2956
2957         * amd/nfs_prot_svc.c (nfs_program_2): on TLI system, try to call
2958         __rpc_get_local_uid to verify if the RPC call through the
2959         local host interface came from UID 0.
2960
2961         * configure.in: look for internal libnsl function
2962         __rpc_get_local_uid (seems to be available on all known TLI
2963         systems, Solaris and HP-UX 11).
2964
2965         * conf/transp/transp_tli.c (amu_svc_getcaller): unnecessary
2966         function for TLI systems (and it violated a array's bounds,
2967         discovered with libumem.so).
2968         (bind_resv_port, bind_resv_port_only_udp, get_autofs_address):
2969         just to be on the safe side, set struct t_bind's qlen field to non
2970         zero (64 by default).  This value cannot be zero for TCP
2971         connections, and it's unclear if it's good to have it zero for UDP
2972         connections, so setting it to 64 is safer.
2973
2974 2005-02-27  Erez Zadok  <ezk@cs.sunysb.edu>
2975
2976         * doc/am-utils.texi (opts Option, Keep-alives): update text on
2977         ping option.
2978
2979         * amd/srvr_nfs.c (update_nfs_pingval): new function to update NFS
2980         server ping values, turn them off, or re-enable them.
2981         (find_nfs_srvr): call update_nfs_pingval() as needed.
2982
2983         * hlfsd/hlfsd.c (reaper, cleanup): don't use exit(3) in a signal
2984         handler, but use _exit(2) instead.
2985
2986         * amd/amd.c (parent_exit): This signal handler is called during
2987         Amd initialization.  The parent forks a child to do all the hard
2988         automounting work, and waits for a SIGQUIT signal from the child.
2989         When the parent gets the signal it's supposed to call this handler
2990         and exit(3), thus completing the daemonizing process.  Alas, on
2991         some systems, especially Linux 2.4/2.6 with Glibc, exit(3) doesn't
2992         always terminate the parent process.  Worse, the parent process
2993         now refuses to accept any more SIGQUIT signals -- they are
2994         blocked.  What's really annoying is that this doesn't happen all
2995         the time, suggesting a race condition somewhere.
2996         (This happens even if I change the logic to use another signal.)
2997         I traced this to something which exit(3) does in addition to
2998         exiting the process, probably some atexit() stuff or other
2999         side-effects related to signal handling.  Either way, since at
3000         this stage the parent process just needs to terminate, I'm simply
3001         calling _exit(2).  Note also that the OpenGroup doesn't list
3002         exit(3) as a recommended "Base Interface" but they do list
3003         _exit(2) as one.  This fix seems to work reliably all the time.
3004
3005         * scripts/wait4amd2die.in: change default to recognize that amd is
3006         down more quickly (check every 3 seconds instead of 5).
3007
3008 2005-02-26  Erez Zadok  <ezk@cs.sunysb.edu>
3009
3010         * libamu/xutil.c (amu_release_controlling_tty): warn if closing
3011         stdin/stdout/stderr failed.  No need for tempfd.
3012
3013         * scripts/ctl-{amd,hlfsd}.in: before running any real program in
3014         these shell scripts, chdir to "/" to avoid possible hangs with
3015         existing NFS mounts.  This was causing ctl-amd's forked
3016         grand-child amd process to hang if restartable_mounts=no.  Go
3017         figure.
3018
3019 2005-02-25  Erez Zadok  <ezk@cs.sunysb.edu>
3020
3021         * minor new port ia64-unknown-linux-rhel4
3022
3023         * fsinfo/fsi_util.c (set_ether_if): avoid u_long casting to -1
3024         (RHEL4 gcc 3.4.3 ia64 compiler complains).
3025
3026 2005-02-24  Erez Zadok  <ezk@cs.sunysb.edu>
3027
3028         * minor new port i386-unknown-freebsd6.0 (6.0-CURRENT-SNAP001).
3029
3030 2005-02-23  Erez Zadok  <ezk@cs.sunysb.edu>
3031
3032         * minor new port: i386-pc-linux-rhel3.
3033
3034         * INSTALL: major update of the compatibility list.
3035
3036         * m4/macros/os_cflags.m4: set AMU_CFLAGS not AM_CFLAGS.
3037
3038 2005-02-22  Erez Zadok  <ezk@cs.sunysb.edu>
3039
3040         * scripts/amd.conf.5, doc/am-utils.texi (preferred_amq_port):
3041         document new preferred_amq_port [global] option.
3042
3043         * scripts/amd.conf-sample (preferred_amq_port): example.
3044
3045         * include/am_utils.h: add preferred_amq_port to prototype.
3046
3047         * conf/transp/transp_tli.c (bind_preferred_amq_port): new function
3048         to bind the Amq RPC service for UDP and TCP to a preferred port
3049         (or to any port if preferred_amq_port==0).
3050         (create_amq_service): decide if to bind to RPC_ANYFD, or to a
3051         requested port.
3052
3053         * conf/transp/transp_sockets.c (create_amq_service): if
3054         preferred_amq_port is greater than 0, then bind to that port for
3055         both UDP and TCP.  If preferred_amq_port==0, then bind to any
3056         port.
3057
3058         * amd/nfs_start.c (mount_automounter): pass global
3059         preferred_amq_port value to create_amq_service().
3060
3061         * amd/conf.c (gopt_preferred_amq_port): new function to parse
3062         amd.conf value for preferred_amq_port.
3063
3064         * amd/amd.h: placeholder for preferred_amq_port.
3065
3066 2005-02-21  Erez Zadok  <ezk@cs.sunysb.edu>
3067
3068         * conf/transp/transp_tli.c (bind_resv_port_only_udp): rename old
3069         bindnfs_port to a more proper name.  This function binds the NFS
3070         service to a specified port, and only for UDP.
3071
3072         * conf/transp/transp_tli.c: cleanup some code, rename some
3073         functions, in preparation for RPC amq port specification code.
3074
3075 2005-02-19  Erez Zadok  <ezk@cs.sunysb.edu>
3076
3077         * */Makefile.am: don't redefine CFLAGS or LDFLAGS; they are
3078         reserved for users to pass them on the command line.  Instead, use
3079         autoconf's internal AM_CFLAGS and AM_LDFLAGS.
3080
3081         * depcomp, install-sh, missing, mkinstalldirs: update from latest
3082         versions of Automake 1.9.2.
3083
3084         * m4/macros/*.m4: properly quote AC_DEFUN'ed macro name, and fix
3085         regexp/patsubst M4 commands.  Newer versions of autoconf (e.g.,
3086         v2.59) complain about those.
3087
3088 2005-02-17  Erez Zadok  <ezk@cs.sunysb.edu>
3089
3090         * amd/opts.c (f_xhost): if we don't have hstrerror, just print the
3091         value of h_errno.
3092
3093         * configure.in: include -lresolv if it defines the hstrerror()
3094         function and not already available in existing libraries.
3095
3096         * minor new port: powerpc-apple-darwin7.7.0.
3097
3098         * amd/nfs_subr.c (mp_to_fh): pathlen should be u_int because it is
3099         later compared against an unsigned quantity (complaint from gcc
3100         3.3 on SuSE 8.2)
3101
3102         * include/am_utils.h: remove unnecessary (and conflicting) extern
3103         for bind_resv_port2(), which is declared as static in
3104         transp_tli.c.
3105
3106         * doc/am-utils.texi, scripts/amd.conf.5, scripts/amd.conf-sample,
3107         NEWS: document four new amd.conf options: nfs_retry_interval_udp,
3108         nfs_retransmit_counter_udp nfs_retry_interval_tcp, and
3109         nfs_retransmit_counter_tcp.
3110
3111         * amd/ops_nfs.c (mount_nfs_fh): set timeo/retrans values based on
3112         wether nfs_proto was "udp" or "tcp".
3113
3114         * amd/amfs_toplvl.c (amfs_toplvl_mount): set retrans/timeo values
3115         from default UDP settings (because toplvl mounts are UDP for now).
3116
3117         * amd/get_args.c (get_args): use parameters to -t option to set
3118         both UDP and TCP timeo/retrans values.
3119
3120         * amd/conf.c: (gopt_nfs_retransmit_counter_udp,
3121         (gopt_nfs_retransmit_counter_tcp, gopt_nfs_retry_interval_udp
3122         (gopt_nfs_retry_interval_tcp): new functions to parse UDP and TCP
3123         retrans/timeo parameters separately.
3124         (gopt_nfs_retry_interval, gopt_nfs_retransmit_counter): if
3125         specified, use it to set defaults for both UDP and TCP.
3126
3127         * amd/amd.c (init_global_options): initialize default values of
3128         both UDP and TCP retrans/timeo values to -1.
3129
3130         * amd/amd.h (AMU_TYPE_{TCP,UDP,MAX}): define separate retrans and
3131         timeo values, one for udp mounts and another for tcp mounts.
3132
3133 2005-02-16  Erez Zadok  <ezk@cs.sunysb.edu>
3134
3135         * README.osx: new file with some instructions for Mac OS-X users,
3136         courtesy Kevin Layer.
3137
3138         * amd/get_args.c (get_args): move call to switch_to_logfile()
3139         after processing -v, so we don't print "no logfile defined; using
3140         stderr" when we're about to print version info and exit anyway.
3141
3142         * minor new port: powerpc-ibm-aix5.3.0.0.
3143
3144         * hlfsd/hlfsd.c (main): rewrite code to avoid negative array
3145         references.
3146
3147         * conf/checkmount/checkmount_aix.c: remove extern definition for
3148         mntctl(), since AIX 5.3 has it in <sys/vmount.h>.
3149
3150         * amd/info_union.c (union_reload): rewrite code to avoid negative
3151         array references.
3152
3153         * amd/opts.c (split_opts, expand_op): rewrite code to avoid
3154         negative array references.
3155
3156         * conf/mtab/mtab_aix.c: remove extern definition for mntctl(),
3157         since AIX 5.3 has it in <sys/vmount.h>.
3158
3159         * libamu/xutil.c (real_plog): rewrite code to avoid negative array
3160         references.
3161
3162         * libamu/wire.c (is_network_member): rearrange code slightly to
3163         avoid negative array references (AIX 5.3 xlC 7.0 compiler
3164         complains about it).
3165
3166 2005-01-26  Erez Zadok  <ezk@cs.sunysb.edu>
3167
3168         * doc/am-utils.texi (xhost Selector Function): document new
3169         selector function.
3170
3171         * amd/opts.c (f_xhost): new function for use when matching the
3172         "host" selector for the current host's name.  This function will
3173         now match the primary host name as well as all known aliases
3174         (CNAMES) that gethostbyname() returns.  This function now supports
3175         a new function selector called xhost(ARG); the old host==ARG
3176         selector is unharmed.
3177
3178 2005-01-17  Ion Badulescu  <ionut@moisil.badula.org>
3179
3180         * NEWS: document the ability to restart old mount points
3181
3182         * amd/map.c (mount_auto_node): force the fileid of the
3183         root to be 1, so that it won't change between restarts; use the
3184         root filesystem's own methods instead of hard-coding the use of
3185         the default methods
3186
3187         * conf/transp/transp_tli.c (create_nfs_service): better cleanup on
3188         error conditions.
3189         (bind_resv_port2): allow the caller to request a certain port.
3190
3191         * conf/transp/transp_sockets.c (bind_resv_port): allow the caller
3192         to request a certain port.
3193         (create_nfs_service): better cleanup on error conditions.
3194
3195         * amd/restart.c (restart_automounter_nodes): new function, takes
3196         care of restarting automounter NFS mount points (autofs will come
3197         later).
3198         (restart): skip all automounter mount points.
3199
3200         * amd/nfs_subr.c (fh_to_mp3, mp_to_fh): new filehandle
3201         implementation: if the path to the node is shorter than sizeof(fh)
3202         chars (currently 32 chars for a NFSv2 fh), simply store it inside
3203         the fh. For longer paths, keep the old implementation.
3204
3205         * amd/nfs_start.c (mount_automounter): reorder things so that
3206         restarting the toplvl filesystems occurs before anything else (so
3207         that we can grab all the ports we need before we accidentally use
3208         them for something else).
3209
3210         * amd/mntfs.c (locate_mntfs): remove dead code; add special
3211         handling of restarted toplvl filesystems.
3212
3213         * amd/mapc.c (root_keyiter): fix up a comment.
3214
3215         * amd/map.c (path_to_exported_ap): new function, searches for and
3216         returns a node by the path to it.
3217         (get_root_nfs_fh): remove unnecessary fiddling with the root fh.
3218
3219         * config.guess.long: support Red Hat Enterprise Linux
3220
3221 2005-01-17  Erez Zadok  <ezk@cs.sunysb.edu>
3222
3223         * libamu/util.c (rmdirs): prevent amd from logging 'Read-only
3224         filesystem' errors when the mount point has an ancestor (i.e. '/')
3225         that is mounted read-only.  Patch from David Rage <rage@ucl.ac.uk>.
3226
3227 2005-01-17  Ion Badulescu  <ionut@moisil.badula.org>
3228
3229         * conf/umount/umount_linux.c (umount_fs): Linux doesn't need the
3230         autofs space hack
3231
3232         * conf/umount/umount_default.c (umount_fs): there is no need for
3233         HAVE_LOOP_DEV, now that Linux has its own dedicated umount_linux.c
3234
3235 2005-01-17  Erez Zadok  <ezk@cs.sunysb.edu>
3236
3237         * doc/am-utils.texi (Automatic Unmounting): document new umount2()
3238         behavior on Linux.
3239
3240         * conf/umount/umount_linux.c (umount_fs): new file.  On Linux, if
3241         umount(2) failed with EIO or ESTALE, try umount2(2) with
3242         MNT_FORCE+MNT_DETACH.  Based on patch from Christos Zoulas
3243         <christos@zoulas.com>.
3244
3245         * m4/macros/check_umount_style.m4: pick new linux umount style.
3246
3247         * Makefile.am (EXTRA_DIST_CONF): distribute new umount_linux.c
3248         file.
3249
3250 2005-01-16  Erez Zadok  <ezk@cs.sunysb.edu>
3251
3252         * conf/nfs_prot/nfs_prot_aix{4_2,4_3,5_1,5_2}.h,
3253         m4/macros/struct_nfs_args.m4: minor cleanups for quicker execution
3254         of "nfs_args" test.
3255
3256 2005-01-13  Erez Zadok  <ezk@cs.sunysb.edu>
3257
3258         * amd/get_args.c (show_usage): separate function to print usage
3259         string.
3260         (get_args) Call show_usage() from get_args when needed, then exit.
3261
3262         * amd/get_args.c (get_version_string): print also domain, host,
3263         and hostd.
3264         (get_args): print version string at the very end, after all other
3265         values had been initialized.  Patch from Christos Zoulas
3266         <christos@zoulas.com>.
3267
3268         * conf/transp/transp_sockets.c (check_pmap_up, get_nfs_version),
3269         conf/transp/transp_tli.c (check_pmap_up): correct an inconsistency
3270         in timeouts in the RPC code between socket and TLI
3271         implementations.  The clntudp_create timeout has a different
3272         meaning than the clnt_call timeout.  Set the timeout of the create
3273         to 2 seconds which means retry if no answer in two seconds, and
3274         the timeout call to 6 seconds, which will give us consistently 2
3275         to 3 pings.  This is useful on occasional network UDP loss where a
3276         single packet loss would wrongfully mark a server down.  (The TLI
3277         code is the one that had the problem occurs.)  Patch from Christos
3278         Zoulas <christos@zoulas.com>.
3279
3280         * libamu/mount_fs.c (compute_nfs_attrcache_flags): make sure code
3281         compiles even for systems that don't have the nfs_args
3282         ac{reg,dir}{min,max} fields.
3283
3284         * amd/amfs_toplvl.c (set_auto_attrcache_timeout): just to be safe,
3285         add "noac" if amd.conf option auto_attrcache was set to 0.  This
3286         should hopefully make the compute_nfs_attrcache_flags patch even
3287         safer.
3288
3289         * libamu/mount_fs.c (compute_nfs_attrcache_flags): separate
3290         function to compute attribute-cache values.  This function now
3291         computes attribute-cache flags for BOTH Amd's automount points
3292         (NFS) as well as any normal NFS mount that Amd performs.
3293         (compute_nfs_args, compute_automounter_nfs_args): call
3294         compute_nfs_attrcache_flags to figure out attribute-cache related
3295         flags.  Patch from Christos Zoulas <christos@zoulas.com>.
3296
3297         * scripts/amd.conf-sample: show examples of new global options
3298         domain_strip and auto_attrcache.
3299
3300         * scripts/amd.conf.5: document new global options domain_strip and
3301         auto_attrcache.  Add warning to auto_attrcache use in case of
3302         ESTALE.
3303
3304         * doc/am-utils.texi: minor cleanups and document new global
3305         options domain_strip and auto_attrcache.  Add warning to
3306         auto_attrcache use in case of ESTALE.
3307
3308         * amd/conf.c (gopt_auto_attrcache): parse new global amd.conf
3309         option auto_attrcache.
3310         (gopt_domain_strip): parse new global amd.conf option
3311         domain_strip.  Part of a patch from Christos Zoulas
3312         <christos@zoulas.com>.
3313
3314         * amd/autil.c (host_normalize): don't call domain_strip()
3315         unconditionally, but depend on the new global amd.conf flag
3316         domain_strip.
3317
3318         * amd/amfs_toplvl.c (set_auto_attrcache_timeout): new function to
3319         set attribute cache timeout value given other configured global
3320         defaults.
3321         (amfs_toplvl_mount): set automount point attribute cache option
3322         value to "noac" if attrcache=0, else set it to whatever
3323         set_auto_attrcache_timeout() returns.
3324
3325         * amd/amd.h (CFM_DOMAIN_STRIP, CFM_DEFAULT_FLAGS): flag to decide
3326         if to strip the domain from the host name or not, default options
3327         set to strip the domain.
3328         Store global value of automount attribute cache timeout value.
3329
3330         * amd/amd.c (init_global_options): add flag to record automount
3331         point attribute cache value.
3332
3333         * amd/amd.c (do_memory_locking): new function to encapsulate all
3334         of the memory-locking functionality, which was in main() before.
3335         Also added a call to madvise(), just in case.
3336         (main): call do_memory_locking() to pin process memory if amd.conf
3337         asked for it, but do so after the main Amd process daemonizes,
3338         because mlock/mlockall is not inherited by fork() by default.
3339         Slightly restructured patch from Jonathan Chen
3340         <jon+amd@spock.org>.
3341
3342         * configure.in: check for madvise(2).
3343
3344         * config.guess, config.sub: updates for latest official GNU
3345         versions.
3346
3347         * m4/GNUmakefile: update paths to "make update"
3348
3349 2005-01-12  Erez Zadok  <ezk@cs.sunysb.edu>
3350
3351         * conf/nfs_prot/nfs_prot_hpux11.h: define an nfs_fh3 structure
3352         that's compatible for HPUX11 as well as NFSv3.
3353
3354         * include/am_defs.h: On AIX 5.2, both <resolv.h> and
3355         <arpa/nameser_compat.h> define MAXDNAME, if compiling with gcc
3356         -D_USE_IRS (so that we get extern definitions for hstrerror() and
3357         others).  So undef MAXDNAME before it gets redefined.
3358
3359         * include/am_defs.h: Solaris 10 (build 72) defines GROUP_OBJ in
3360         <sys/acl.h>, which is included in many other header files.
3361         <rpcsvc/nis.h> uses GROUP_OBJ inside enum zotypes.  So if you're
3362         unlucky enough to include both headers, you get a compile error
3363         because the two symbols conflict.  Temp hack: undefine acl.h's
3364         GROUP_OBJ before including nis.h, because we don't need acl.h for
3365         am-utils.
3366
3367         * m4/macros/os_cflags.m4: turn -D_USE_IRS for AIX5+ so that
3368         certain extern definitions of resolver functions become available.
3369
3370         * amd/opts.c (expand_op): use #define for expand_error string
3371         because some compilers complain about the use of static const
3372         char[] inside a varargs function.
3373
3374         * minor new port i386-unknown-netbsdelf1.6.2.
3375
3376         * new port i386-unknown-netbsdelf2.0.
3377
3378         * minor port i386-unknown-freebsd5.3.
3379
3380         * libamu/mount_fs.c (compute_nfs_args): don't compare
3381         nap->maxgrouplist against NULL but against 0 directly, because on
3382         FreeBSD 4.3, NULL is defined is (void *)0 and gcc 3.4 complains
3383         about a type mismatch.
3384
3385         * minor port i386-pc-linux-fc3 (Fedora Core 3).
3386
3387 2005-01-11  Erez Zadok  <ezk@cs.sunysb.edu>
3388
3389         * hlfsd/hlfsd.c (main): use sigsuspend() over sigpause(), because
3390         FC3 doesn't have proper extern definition for the defunct
3391         sigpause().
3392
3393         * configure.in: look for sigsuspend().
3394
3395 2005-01-01  Erez Zadok  <ezk@cs.sunysb.edu>
3396
3397         * updated copyright year to 2005 on all files.
3398
3399 2004-11-29  Erez Zadok  <ezk@cs.sunysb.edu>
3400
3401         * scripts/amd.conf.5: Small fixes to typos in man page, from
3402         Thomas Klausner <tk@giga.or.at>.
3403
3404 2004-10-22  Erez Zadok  <ezk@cs.sunysb.edu>
3405
3406         * ldap.schema: add this file to distribution.
3407
3408 2004-09-15  Erez Zadok  <ezk@cs.sunysb.edu>
3409
3410         * doc/am-utils.texi: fix old URLs.
3411
3412 2004-09-01  Erez Zadok  <ezk@cs.sunysb.edu>
3413
3414         * conf/mtab/mtab_aix.c (read_mtab): avoid a race condition between
3415         multiple calls to mntctl().  Patch suggested by Michael van Elst
3416         <M.van.Elst@science-computing.de>.
3417
3418 2004-08-07  Erez Zadok  <ezk@cs.sunysb.edu>
3419
3420         * doc/am-utils.texi (Program Filesystem): document how to get
3421         double slashes in Amd maps.
3422
3423         * amd/opts.c (normalize_slash): support escaped slashes, needed
3424         for SMB mounts.  Use '\\\/\\\/' in a string to get a double slash.
3425
3426 2004-08-06  Erez Zadok  <ezk@cs.sunysb.edu>
3427
3428         * amd/amfs_program.c (amfs_program_match): bug fix.  Complain if
3429         both opt_unmount and opt_umount are missing, not when just one of
3430         them is missing.
3431
3432 2004-08-03  Erez Zadok  <ezk@cs.sunysb.edu>
3433
3434         * amq/pawd.c (find_mt): recognize "linkx" type mounts.  Patch from
3435         Hauke Fath <hauke@Espresso.Rhein-Neckar.DE>.  Support "nfsx" while
3436         we're at it.
3437
3438         * doc/am-utils.texi: mention bugzilla.  Fix broken URL HREF's.
3439
3440 2004-08-02  Erez Zadok  <ezk@cs.sunysb.edu>
3441
3442         * amq/pawd.c (find_mt): recognize "host" type mounts.  Patch from
3443         Dan Nelson <dnelson@allantgroup.com>.
3444
3445 2004-07-30  Erez Zadok  <ezk@cs.sunysb.edu>
3446
3447         * doc/am-utils.texi, NEWS: minor typos fixed.
3448
3449 2004-07-30  Erez Zadok  <ezk@play.cs.columbia.edu>
3450
3451         * include/am_xdr_func.h: cannot have field-less structure; put a
3452         dummy field in.
3453
3454         * conf/autofs/autofs_solaris_v2_v3.c (xdr_autofs_rddirargs): cast
3455         2nd arg of xdr_u_int to a u_int*, not int*.
3456         (autofs_mount_2_req): don't use C++ // comments.
3457
3458 2004-07-30  Erez Zadok  <ezk@cs.sunysb.edu>
3459
3460         * m4/macros/{try_compile_anyfs,check_field}.m4: include
3461         <fs/msdosfs/msdosfsmount.h> if it exists.  Part of a set of
3462         FreeBSD 5 patches from Martin Blapp <mb@imp.ch>.
3463
3464         * include/am_defs.h: include <fs/msdosfs/msdosfsmount.h> if it
3465         exists.
3466
3467         * amd/ops_pcfs.c (mount_pcfs): set pcfs_args_t.dirmask field to
3468         0777 by default.
3469
3470         * configure.in: check for pcfs_args_t.dirmask field.  Check for
3471         existence of <fs/msdosfs/msdosfsmount.h>, new on FreeBSD 5.
3472
3473 2004-07-29  Erez Zadok  <ezk@cs.sunysb.edu>
3474
3475         * minor new port: i386-pc-linux-fc2 (Fedora Core 2).
3476
3477         * amd/info_ldap.c (amu_ldap_rebind): don't use ldap_enable_cache()
3478         unless the function exists in libldap and the extern is in
3479         <ldap.h>.  Recently, openldap removed the extern from ldap.h, but
3480         left the function in libldap, for binary compatibility; however
3481         ldap_enable_cache and related functions have been deprecated (and
3482         no longer listed in the header files), and therefore should be
3483         avoided.
3484
3485         * m4/macros/check_extern_ldap.m4: new macro to check for
3486         LDAP-specific externs.  This is separate from check_extern.m4 so
3487         as to avoid breaking the general-purpose macro with LDAP-specific
3488         headers.
3489
3490         * m4/macros/header_templates.m4: extern template for new
3491         HAVE_EXTERN_LDAP_ENABLE_CACHE.
3492
3493         * configure.in: call new check_extern_ldap.m4 macro.
3494
3495         * Makefile.am (EXTRA_DIST_M4): distribute new check_extern_ldap.m4
3496         macro.
3497
3498         * config.guess.long: distinguish between redhat and fedora-core
3499         releases.
3500
3501 2004-07-23  Erez Zadok  <ezk@cs.sunysb.edu>
3502
3503         * Minor new port i386-pc-linux-suse8.2: minor new port to SuSE
3504         8.2.  This systems' latest GCC (gcc version 3.3 20030226
3505         prerelease) correctly caught a lot of possibly bad comparisons
3506         between signed and unsigned quantities.
3507
3508         * hlfsd/homedir.c (table_add, plt_search): changed first arg of
3509         both functions to u_int.
3510
3511         * hlfsd/hlfsd.h, hlfsd/hlfsd.c: change 'cache_interval' to u_int.
3512         Changed proto for plt_search arg to u_int.
3513
3514         * amq/amq.c (show_mi, main): change 'i' to u_int.
3515
3516         * amq/pawd.c (find_mlp): change 'i' to u_int.
3517
3518         * amd/srvr_nfs.c (find_nfs_srvr): change proto_nfs_version to
3519         u_int.
3520
3521         * amd/amd.h: change prototype of vreaddir and amfs_error_readdir
3522         to use u_int count parameter.
3523
3524         * amd/ops_TEMPLATE.c (foofs_readdir), amd/amfs_error.c
3525         (amfs_error_readdir): change 'count' parameter in proto to u_int.
3526
3527         * amd/amd.h: change proto of amfs_generic_readdir() to use u_int
3528         count parameter.
3529
3530         * amd/readdir.c (make_entry_chain): preflen should be u_int.
3531         (amfs_readdir_browsable): change 'count' to u_int.
3532         (amfs_generic_readdir): change 'count' to u_int.
3533
3534         * amd/amd.h: amu_global_options's portmap_program field should be
3535         u_long, not int (to match RPC conventions).  Change am_fh's
3536         fhh_gen field to u_int, to match am_gen field in struct am_node.
3537
3538         * amd/conf.c (gopt_portmap_program): use atol() instead of atoi()
3539         to avoid size differences.
3540
3541         * conf/mount/mount_linux.c (find_unused_loop_device): cast to int
3542         to avoid comparison between chars and integers.
3543
3544         * libamu/mount_fs.c (get_hex_string): change 'i' to u_int to avoid
3545         comparisons between signed and unsigned integers.
3546
3547 2004-07-13  Erez Zadok  <ezk@cs.sunysb.edu>
3548
3549         * minor new port: i386-pc-linux-suse9.1.
3550
3551         * include/am_defs.h: don't use __kernel_dev_t for dev_t on Linux,
3552         because SuSE wants __kernel_old_dev_t.  Instead, just define it
3553         directly to what they both use: an unsigned short.
3554
3555 2004-05-27  Erez Zadok  <ezk@cs.sunysb.edu>
3556
3557         * minor new port: i386-unknown-freebsd4.10
3558
3559 2004-04-29  Ion Badulescu  <ionut@moisil.badula.org>
3560
3561         * amd/amfs_generic.c (amfs_lookup_one_mntfs): fix the creation of
3562         mountpoints for autofs-based sublinks the right way
3563
3564 2004-04-28  Ion Badulescu  <ionut@moisil.badula.org>
3565
3566         Fixes for various memory management problems discovered by
3567         Rainer's purify run:
3568
3569         * conf/transp/transp_tli.c (check_pmap_up): zero out struct
3570         timeval before using;
3571         (get_nfs_version): ditto
3572
3573         * amd/map.c (umount_exported): make sure we don't try to free the
3574         same am_node multiple times, by setting its corresponding
3575         exported_ap slot to null
3576
3577         * amd/get_args.c (get_version_string): a static pointer is pretty
3578         pointless, make it automatic
3579
3580         * amd/conf.c (gopt_debug_options): remove unnecessary strdup();
3581         (gopt_log_options): ditto
3582         (gopt_print_version): free version string after using it
3583
3584         * amd/autil.c (mf_mounted): free mntfs->mf_fo instead of leaking
3585         it
3586
3587         * amd/amfs_generic.c (amfs_lookup_one_mntfs): use the CALLOC macro
3588         (amfs_lookup_mntfs): free def_opts on return
3589
3590         * amd/amd.c (daemon_mode): zero out struct sigaction before using
3591         it;
3592         (main): ditto
3593
3594 2004-04-27  Ion Badulescu  <ionut@moisil.badula.org>
3595
3596         * amd/amfs_generic.c (amfs_lookup_one_mntfs): force FS_MKMNT on
3597         the real mount of an autofs-based sublink
3598
3599 2004-04-25  Ion Badulescu  <ionut@moisil.badula.org>
3600
3601         * amd/map.c (free_map_if_success): avoid dereferencing a pointer
3602         to potentially freed memory
3603
3604 2004-02-26  Erez Zadok  <ezk@cs.sunysb.edu>
3605
3606         * minor new port: i386-unknown-freebsd5.2.1.
3607
3608 2004-01-30  Ion Badulescu  <ion@guppy.limebrokerage.com>
3609
3610         * scripts/ctl-hlfsd.in: don't run hlfsd with -D fork
3611
3612 2004-01-25  Erez Zadok  <ezk@cs.sunysb.edu>
3613
3614         * minor new port: sparc64-unknown-linux-deb3.0
3615
3616         * config.guess.long: recoognize Debian Linux.
3617
3618 2004-01-22  Erez Zadok  <ezk@cs.sunysb.edu>
3619
3620         * conf/transp/transp_tli.c (amu_get_myaddress): use
3621         htonl(INADDR_LOOPBACK) and define INADDR_LOOPBACK if not already
3622         available.
3623
3624 2004-01-21  Erez Zadok  <ezk@cs.sunysb.edu>
3625
3626         * wire-test/wire-test.c, hlfsd/hlfsd.c (main): pass NULL as second
3627         parameter to amu_get_myaddress().
3628
3629         * conf/transp/transp_tli.c (amu_get_myaddress): resolve value of
3630         localhost_address amd.conf parameter, if defined (else default to
3631         HOST_SELF_CONNECT).
3632         Removed htonl() around socket address copying (I think it was
3633         wrong) since plog("My IP address is...") in amd.c was printing
3634         addresses wrong on Solaris x86..
3635
3636         * conf/transp/transp_sockets.c (amu_get_myaddress): comment out
3637         old DEBUG code that warns if 127.0.0.1 isn't the same as what
3638         get_myaddress() reports.  Add code to resolve value of
3639         localhost_address amd.conf parameter, if defined (else default to
3640         127.0.0.1).
3641
3642         * amd/conf.c (gopt_localhost_address): new function to parse
3643         amd.conf parameter localhost_address.
3644
3645         * amd/amd.h: global field to store amd.conf localhost_address
3646         parameter.
3647
3648         * amd/amd.c (main): call amu_get_myaddress with global option,
3649         which could have been set in amd.conf.
3650
3651         * NEWS, doc/am-utils.texi, scripts/amd.conf-sample,
3652         scripts/amd.conf.5: document new option localhost_address.
3653
3654 2004-01-20  Ion Badulescu  <ionut@moisil.badula.org>
3655
3656         * amd/conf.c (gopt_nfs_allow_insecure_port): support function for
3657         the new "nfs_allow_insecure_port" amd.conf directive
3658
3659         * amd/nfs_prot_svc.c (nfs_program_2): complain about the insecure
3660         port and drop the request only if the "nfs_allow_insecure_port"
3661         option is not set in amd.conf
3662
3663         * doc/am-utils.texi (Global Parameters): documented the new
3664         amd.conf directive "nfs_allow_insecure_port"
3665
3666         * scripts/amd.conf.5 (nfs_allow_insecure_port): ditto
3667
3668         * scripts/amd.conf-sample (nfs_allow_insecure_port): added the
3669         "nfs_allow_insecure_port" directive
3670
3671 2004-01-20  Erez Zadok  <ezk@cs.sunysb.edu>
3672
3673         * doc/am-utils.texi: amd-workers is defunct.
3674
3675 2004-01-19  Erez Zadok  <ezk@cs.sunysb.edu>
3676
3677         * cvs-server.txt: updated instructions
3678
3679 2004-01-18  Erez Zadok  <ezk@cs.sunysb.edu>
3680
3681         * minor new port: i386-unknown-freebsd5.2.
3682
3683 2004-01-05  Erez Zadok  <ezk@cs.sunysb.edu>
3684
3685         * MIRRORS.{txt,html}: verify each mirror site, update to new
3686         locations (if found), and remove stale mirrors URLs.
3687
3688         * updated copyright year to 2004 on all files.
3689
3690 2004-01-03  Erez Zadok  <ezk@cs.sunysb.edu>
3691
3692         * MIRRORS.txt: track status.
3693
3694         * Makefile.am (install-snapshot): new directory to install
3695         snapshots (now that am-utils home page is moved).
3696
3697 2004-01-02  Erez Zadok  <ezk@cs.sunysb.edu>
3698
3699         * INSTALL, README.autofs: remove forced text-mode.
3700
3701         * doc/am-utils.texi: fix Amd book URL.
3702
3703         * Makefile.am (EXTRA_DIST): include new mirror files in tarball.
3704
3705         * AUTHORS, BUGS, README, README.y2k, configure.in,
3706         doc/am-utils.texi: revisions to use newer URLs for Web site, FTP,
3707         and mailing lists.
3708
3709         * MIRRORS.{html,txt}: updates.
3710
3711         * doc/Makefile.am: install mirror lists officially.
3712
3713 2004-01-01  Erez Zadok  <ezk@cs.sunysb.edu>
3714
3715         * tasks: things to do after migrating ftp/Web sites.
3716
3717 2003-12-09  Erez Zadok  <ezk@cs.sunysb.edu>
3718
3719         * fsinfo/fsinfo.8: fixed typo (unbalanced []) in man page.  Bug
3720         report from Eric S. Raymond <esr@thyrsus.com>.
3721
3722 2003-11-18  Erez Zadok  <ezk@cs.sunysb.edu>
3723
3724         * Makefile.am (EXTRA_DIST_M4): exclude removed file
3725         m4/macros/struct_nfs_fh3.m4 from distro.
3726
3727 2003-10-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3728
3729         * libamu/xdr_func.c (xdr_am_nfs_fh3): Use AM_FHSIZE3 instead of
3730         FHSIZE3 (may be undefined).
3731
3732 2003-10-24  Ion Badulescu  <ion@guppy.limebrokerage.com>
3733
3734         Compile fix for Solaris7 with LDAP:
3735
3736         * include/am_defs.h: moved the ldap headers before am_nfs_prot.h
3737         to facilitate using ldap types in it
3738
3739         * conf/nfs_prot/nfs_prot_sunos5_7.h: add a couple of ldap
3740         definitions that Sun left out of their headers
3741
3742 2003-10-24  Ion Badulescu  <ionut@moisil.badula.org>
3743
3744         * conf/nfs_prot/nfs_prot_*.h: remove all NFSv3-related
3745         definitions, they are now defined globally
3746
3747         * libamu/xdr_func.c: unconditionally define all xdr functions
3748         needed for NFSv3, but with an am_ prefix to prevent namespace
3749         collisions
3750
3751         * amd/amfs_host.c, amd/ops_nfs.c, amd/srvr_nfs.c,
3752         libamu/mount_fs.c: added the am_ prefix to all
3753         structures and functions having to do with NFSv3 to prevent
3754         namespace collisions
3755
3756         * include/am_utils.h: moved definition of am_nfs_handle to ...
3757
3758         * include/am_xdr_func.h: ... here. Also define AM_FHSIZE3,
3759         am_nfs_fh3, AM_NFSPROC3_LOOKUP, am_nfsstat3, am_fhandle3,
3760         am_mountstat3, am_mountres3_ok, am_mountres3, am_filename3,
3761         am_diropargs3, am_LOOKUP3args, am_LOOKUP3resok, am_LOOKUP3resfail,
3762         am_LOOKUP3res here; remove cross-platform compile helper macros
3763         AMU_LOOKUP3RES_*.
3764
3765         * include/am_defs.h: include am_xdr_func.h before am_utils.h to
3766         provide definitions for NFS filehandles
3767
3768         * amd/amd.h: removed declaration for xdr_mountres3
3769
3770         * doc/am-utils.text: minor warning fix
3771
3772         * BUGS: document the autoconf warnings when trying to compile
3773         system header files in isolation
3774
3775 2003-10-23  Ion Badulescu  <ionut@moisil.badula.org>
3776
3777         * m4/macros/struct_nfs_fh3.m4: removed, not needed
3778
3779         * configure.in: check if struct mounta has the optptr field;
3780         removed all NFSv3-related checks, we implement everything
3781         internally now
3782
3783         * conf/autofs/autofs_solaris_v2_v3.c (autofs_mount_2_free): don't
3784         touch mnt->optptr unless HAVE_MOUNTA_OPTPTR is defined
3785
3786 2003-10-22  Ion Badulescu  <ionut@moisil.badula.org>
3787
3788         * m4/macros/struct_nfs_fh3.m4: removed, not used anymore
3789
3790         * libamu/xdr_func.c (xdr_am_nfs_fh3): update xdr_am_nfs_fh3
3791         comments
3792
3793         * configure.in: don't check for xdr_nfs_fh3 and struct nfs_fh3, we
3794         always use our own
3795
3796 2003-10-22  Ion Badulescu  <ion@guppy.limebrokerage.com>
3797
3798         * BUGS: document the limitations of bind mounts on Linux
3799
3800 2003-10-21  Ion Badulescu  <ionut@moisil.badula.org>
3801
3802         * buildall: added support for -i (make install)
3803
3804 2003-10-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3805
3806         * NEWS: New minor port i386-pc-solaris2.10 (Solaris 10).
3807         * INSTALL: Mention its test status.
3808
3809 2003-10-16  Erez Zadok  <ezk@cs.sunysb.edu>
3810
3811         * amd/ops_nfs.c (nfs_init): declare as static to match forward
3812         definition at top of file.
3813
3814         * conf/nfs_prot/nfs_prot_{hpux11, netbsd1_4,openbsd,aix5_2}.h:
3815         added missing definitions for LOOKUP3res, diropargs3, etc.
3816
3817 2003-10-15  Erez Zadok  <ezk@cs.sunysb.edu>
3818
3819         * libamu/xdr_func.c (xdr_LOOKUP3res, xdr_am_nfs_fh3),
3820         libamu/mount_fs.c (compute_nfs_args), amd/ops_nfs.c
3821         (got_nfs_fh_mount, got_nfs_fh_webnfs, prime_nfs_fhandle_cache,
3822         webnfs_lookup), amd/amfs_host.c (fetch_fhandle): Attempt to
3823         cleanup some inconsistencies with how we treat NFSv3 file handles.
3824         Whenever we need to get data out of a filehandle given to us, we
3825         assume that it uses the OS's native fhandle structure
3826         (often struct nfs_fh3).  When we store the fhandle data for our
3827         own use, however, we store it in one of two ways.  The first, is
3828         that we use the system's default nfs_fh3 structure; the second is
3829         that we define out own struct am_nfs_fh3 in nfs_prot.h (and go
3830         through an elaborate autoconf song-and-dance to "discover" it as a
3831         native fh3 handle structure).  It appears that we do the latter,
3832         instead of using the system's default fhandle structure, simply to
3833         avoid extra malloc's and free's, because whereas nfsv2's fhandle
3834         structure is a simple 32-byte buffer, nfsv3's fhandle structures
3835         often just define a "char *" for the fhandle data, and the caller
3836         must malloc/free the space inside as needed.  Our code was never
3837         written with constructor/destructor callbacks for these nfsv3
3838         filehandles.  Moreover, we carefully wrote our own am_nfs_fh3
3839         structure so IT JUST SO HAPPENS to align with most (hopefully all)
3840         of the fhandle structures for v3: first four bytes are the length
3841         fields and the next four bytes are the fhandle data.  Sigh.
3842         Having this inconsistent use of v3 filehandles can be a real bear,
3843         because we simply cannot avoid using the system's default fhandle
3844         structure indirectly, through things like diropargs3 in
3845         xdr_diropargs3(), which has inside of it a reference to the
3846         system's default nfs_fh3 structure.  ANYWAY, the current fix I've
3847         come up with is to generalize the way we dereference field names
3848         within the nfs_fh3 structure (whether ours or the system's) and
3849         the same for the system's LOOKUP3res structure.  I'm not pleased
3850         with this fix; I'd rather we don't use our own am_nfs_fh3
3851         structure at all.
3852
3853         * libamu/xdr_func.c (xdr_am_nfs_fh3): always define this
3854         function if we have NFS3, because we often use our own,
3855         incompatible am_nfs_fh3 structure.
3856
3857         * include/am_xdr_func.h: We cannot use the native system's
3858         xdr_nfs_fh3 because we are defining our own incompatible
3859         am_hfs_fh3 structure for some systems.
3860
3861         * include/am_xdr_func.h: Define default values for field names of
3862         struct nfs_fh3 and LOOKUP3res.
3863
3864         * doc/am-utils.texi (debug_options Parameter): minor typo fixed.
3865
3866         * conf/nfs_prot/nfs_prot_freebsd3.h: FreeBSD uses different fields
3867         names for struct nfs_fh3 and LOOKUP3res, so override the default
3868         names here.
3869
3870         * configure.in: AMU_CHECK_FS_MNTENT(nfs3) test before
3871         AMU_STRUCT_NFS_FH3, because the latter depends on the former.
3872
3873         * amd/ops_nfs.c (prime_nfs_fhandle_cache): add {} to disambiguate
3874         and clarify if-the-else clauses.
3875
3876 2003-10-13  Ion Badulescu  <ionut@moisil.badula.org>
3877
3878         * amd/get_args.c (get_version_string): change "Built by" to
3879         "Configured by", and add a new "Built by" line using the variables
3880         below
3881
3882         * m4/update_build_version (vers): add BUILD_USER, BUILD_HOST, and
3883         BUILD_DATE to build_version.h
3884
3885         * amd/mntfs.c (locate_mntfs): fix restarted filesystems: mf_fo
3886         must be initialized even for them, otherwise we lose opt_sublink
3887         (and perhaps other options as well). Report from Rainer Orth.
3888
3889         * amd/amfs_generic.c (amfs_bgmount): The fix for the mf_fo NULL
3890         pointer dereferencing was a bit too aggressive and could end up
3891         not processing the sublink option if the filesystem was already
3892         mounted.
3893
3894 2003-10-11  Ion Badulescu  <ionut@moisil.badula.org>
3895
3896         Fix restarted filesystem by disabling the amfs_inherit filesystem
3897         and moving the restarting logic into the generic code. The old
3898         code is still there, will be removed sometime in the near future.
3899
3900         * amd/mntfs.c (locate_mntfs): disable amfs_inherit and simply
3901         return the pointer to the restarted filesystem
3902         (free_mntfs): check for the MFF_RESTART flag instead of the
3903         amfs_inherit ops
3904
3905         * amd/autil.c (mf_mounted): remove the MFF_RESTART flag once the
3906         filesystem is in use
3907
3908         * amd/amfs_nfsx.c (amfs_nfsx_init): only call fs_init() if the
3909         filesystem is not being restarted
3910         (amfs_nfsx_remount): if the filesystem is already mounted,
3911         short-circuit the code and just continue
3912
3913         * amd/amfs_generic.c (amfs_bgmount): only call fs_init() if the
3914         filesystem is not being restarted; remove hack that was used to
3915         work around an amfs_inherit problem
3916
3917 2003-10-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3918
3919         Use WebNFS to obtain file handles for mount(2).
3920
3921         * NEWS: Document WebNFS support.
3922
3923         * configure.in: Check for public mount option.
3924         * include/am_compat.h (MNTTAB_OPT_PUBLIC): Define if missing.
3925         * doc/am-utils.texi (opts Option): Renamed webnfs to public,
3926         update description.
3927
3928         * amd/amd.h (FSF_WEBNFS): New mntfs flag.
3929         * include/am_utils.h (RPC_XID_WEBNFS): New XID type.
3930
3931         * amd/amfs_host.c (amfs_host_mount, amfs_host_umounted): Reject
3932         WebNFS mount/umount attempts.
3933         * amd/ops_nfs.c (got_nfs_fh_mount): Renamed from got_nfs_fh.
3934         (got_nfs_fh_webnfs): New function.
3935         (flush_nfs_fhandle_cache): Don't invalidate port for WebNFS servers.
3936         (prime_nfs_fhandle_cache): Likewise.
3937         Remove unconditional return of public file handle for WebNFS, but
3938         get NFS file handles via mountd or WebNFS instead.
3939         (webnfs_lookup): New function.
3940         (nfs_umounted): Don't inform mountd if MFF_WEBNFS.
3941         * amd/rpc_fwd.c (fwd_packet, fwd_reply): Send/receive WebNFS
3942         packets.
3943         * amd/srvr_nfs.c (recompute_portmap): Don't contact portmap for
3944         WebNFS servers.
3945         Mention host in info message.
3946         (find_nfs_srvr): Handle public mount option.
3947         Prefer NFSv3/tcp if the client supports it.
3948         Allow port mount option to override default or result from portmap
3949         lookup.
3950
3951         * libamu/xdr_func.c (xdr_diropargs3, xdr_filename3,
3952         xdr_LOOKUP3args, xdr_LOOKUP3res, xdr_LOOKUP3resfail,
3953         xdr_LOOKUP3resok, xdr_nfs_fh3, xdr_nfsstat3): New functions.
3954         * include/am_xdr_func.h: Declare them.
3955         * configure.in: Check for them.
3956         * conf/nfs_prot/nfs_prot_linux.h: Provide missing NFSv3
3957         definitions and types.
3958
3959 2003-10-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3960
3961         Support IRIX 6 private mount option.
3962
3963         * configure.in (AC_CHECK_MNTTAB_OPTS): Check for private option
3964         name string.
3965         (AC_CHECK_MNT2_NFS_OPTS): Check for private NFS mount option (IRIX 6).
3966         * aux/macros/header_templates.m4 (MNTTAB_OPT_PRIVATE,
3967         MNT2_NFS_OPT_PRIVATE): Provide templates.
3968         * include/am_compat.h (MNTTAB_OPT_PRIVATE): Define if missing.
3969         * doc/am-utils.texi (opts Option): Document it.
3970
3971 2003-10-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3972
3973         * doc/am-utils.texi (opts Option): Fix Tru64 UNIX name in proplist
3974         mount option.
3975
3976 2003-10-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3977
3978         * libamu/mount_fs.c (compute_nfs_args) [HAVE_NFS_ARGS_T_FH_LEN]:
3979         Don't reference removed fh3.
3980
3981 2003-10-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3982
3983         * NEWS: New minor port sparc-sun-solaris2.10 (Solaris 10).
3984
3985         * INSTALL: Mention test status of various ports.
3986         Describe IRIX 6 autofs status.
3987
3988 2003-10-09  Ion Badulescu  <ionut@moisil.badula.org>
3989
3990         * NEWS: updated
3991
3992         * amd/amfs_generic.c (amfs_bgmount): don't use mf_fo until after
3993         we've done all the tests and we know we have a valid and mountable
3994         mntfs. Otherwise we could end up dereferencing null pointers.
3995
3996         * amd/amd.h: fixed a copy&paste comment bug
3997
3998         * amd/am_ops.c (ops_match): minor code cleanup
3999
4000         * doc/am-utils.texi: fixed various typos; added warning about the
4001         racy nature of nfsx; removed duplicated listing of debug options;
4002         added paragraph about signals supported by hlfsd; removed the long
4003         list of (maybe) supported platforms since it duplicates the list
4004         in INSTALL.
4005
4006 2003-10-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4007
4008         Simplify FD_SET etc. use.
4009
4010         * include/am_defs.h (FD_SET, FD_ISSET, FD_CLR, FD_ZERO): Provide
4011         if missing.
4012         (rpc_pending_now, run_rpc): Use them.
4013         * configure.in: Check for fds_bits field in fd_set.
4014         * amd/nfs_start.c (run_rpc): Use it.
4015
4016 2003-10-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4017
4018         Improve RPC XID handling.
4019
4020         * amd/rpc_fwd.c (fwd_packet, fwd_reply): Always log xid.
4021         Convert xid to/from host/network byte order.
4022
4023 2003-10-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4024
4025         Use NFS V2/V3 file handles instead of mount results.
4026
4027         * include/am_utils.h (am_nfs_fhandle): Use NFS V2/V3 file handles
4028         only, not MOUNTPROC_MNT results.
4029         * amd/amfs_host.c (fetch_fhandle): Use local variables to store
4030         MOUNTPROC_MNT results.
4031         * amd/autil.c (amfs_mount): Use new am_nfs_fhandle_t.
4032         * amd/ops_nfs.c (struct fh_cache): New member fh_status.
4033         (got_nfs_fh): Use local variables to store MOUNTPROC_MNT results.
4034         Store MOUNTPROC_MNT errors in fh_status.
4035         (prime_nfs_fhandle_cache): Get fh_error from fh_status.
4036         * hlfsd/hlfsd.c (main): Use new am_nfs_fhandle_t.
4037         * libamu/mount_fs.c (compute_nfs_args): Copy NFS V2/V3 file
4038         handles straight from new am_nfs_fhandle_t.
4039
4040 2003-10-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4041
4042         * amd/clock.c (CID_ALLOC): Remove unused argument.
4043         (timeout): Likewise.
4044
4045         * amd/ops_nfs.c (FHID_ALLOC): Remove unused argument.
4046         (prime_nfs_fhandle_cache): Likewise.
4047         (call_mountd): Use UDPMSGSIZE instead of magic constant.
4048
4049         * amd/rpc_fwd.c (XID_ALLOC): Remove unused argument.
4050         (fwd_packet): Likewise.
4051         Handle TLOOK error from t_rcvudata().
4052
4053 2003-09-30  Ion Badulescu  <ionut@moisil.badula.org>
4054
4055         * NEWS: updated
4056
4057         * libamu/mount_fs.c (mount_fs): don't try to recreate the mount
4058         point if the mount fails with ENOENT: in the best case we would be
4059         papering over a bug, and in the worst case we could cause a
4060         deadlock (with autofs). If there are races, they need to be
4061         exposed and fixed properly.
4062
4063         * conf/autofs/autofs_solaris_v1.h,
4064           conf/autofs/autofs_solaris_v2_v3.h,
4065           conf/autofs/autofs_linux.h: (AUTOFS_NFSX_FS_FLAGS): autofs
4066         semantics don't allow us to mount nfsx directly onto an autofs
4067         mountpoint, so disallow it
4068
4069         * amd/amfs_nfsx.c (amfs_nfsx_match): more restrictive sanity check
4070         to avoid trying to memmove(foo, bar, (unsigned)-1) due to invalid
4071         map entries...
4072         (amfs_nfsx_cont): amfs_retry does most of the cleanup work for us
4073         in the upper layer, so don't do anything else beside wakeup() on
4074         success
4075         (amfs_nfsx_remount): only create the mountpoints as we need them,
4076         avoids creating them on the wrong filesystem in the case of
4077         hierarchical mounts; fix crash-generating typo (m should really be
4078         mf and I swear I hate single-character variable names)
4079
4080         * amd/amfs_generic.c (amfs_cont): one more dlog
4081         (amfs_bgmount): amazingly enough, even foreground mounts can be
4082         backgrounded (in the case of nfsx), so account for this
4083         possibility and permit retries
4084
4085         * m4/macros/check_autofs_style.m4 (AMU_AUTOFS_PROT_HEADER): define
4086         and AC_SUBST it as ${top_builddir}/amu_autofs_prot.h
4087
4088         * amd/Makefile.am ($(amd_OBJECTS) $(EXTRA_amd_OBJECTS)): depend on
4089         @AMU_AUTOFS_PROT_HEADER@
4090
4091 2003-09-29  Erez Zadok  <ezk@urd.fsl.cs.sunysb.edu>
4092
4093         * minor new port mipsel-unknown-linux-rhPS2 (Linux on Sony
4094         PlayStation 2)
4095
4096         * amd/srvr_nfs.c (find_nfs_srvr): don't run code that expects
4097         "char protocols[]" unless MNTTAB_OPT_PROTO is defined.
4098
4099 2003-09-26  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4100
4101         Consolidate alloca support.
4102
4103         * amd/amq_svc.c: Move alloca support ...
4104         * include/am_defs.h: ... here.
4105         * amd/conf_parse.y: Remove alloca support.
4106         * fsinfo/fsi_gram.y: Likewise.
4107
4108 2003-09-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4109
4110         Handle Solaris 10.
4111         * m4/macros/check_nfs_prot_headers.m4
4112         (AMU_CHECK_NFS_PROT_HEADERS): Don't use wildcards for
4113         sunos5.[0-3], solaris 2.[0-3], there were no micro releases.
4114         Explicitly match sunos5*, solaris2* for Solaris 8 and beyond.
4115
4116         * m4/macros/os_cflags.m4 (AMU_OS_CFLAGS): Dont use wildcards for
4117         solaris2.[0-5], sunos5.[0-5], but explicitly handle Solaris 2.5
4118         micro releases to cope with Solaris 2.5.1.
4119         Explicitly match solaris2*, sunos5*.
4120
4121 2003-09-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4122
4123         * amd/amq_svc.c: Provide alloca prerequisites.
4124
4125         * conf/transp/transp_tli.c (register_autofs_service): Fix typo.
4126
4127 2003-09-23  Ion Badulescu  <ion@opteron.tower-research.com>
4128
4129         * minor new port: x86_64-unknown-linux-rh2.9.5AS. (Red Hat
4130         Enterprise Linux 3.0 beta running on a 64-bit AMD64 platform)
4131
4132 2003-09-22  Ion Badulescu  <ionut@buggy.badula.org>
4133
4134         * conf/autofs/autofs_solaris_v1.c (autofs_mount_fs): compile fix
4135
4136 2003-09-19  Ion Badulescu  <ionut@moisil.badula.org>
4137
4138         * amd/amfs_nfsl.c (amfs_nfsl_match): checking opt_fs is not always
4139         enough, we should lstat() the sublink if it's defined.
4140         (amfs_nfsl_ffserver): ditto
4141         (ALL): Removed some obsolete comments. The nfsl code is now little
4142         more than a very straight-forward switch between link and nfs.
4143
4144         * amd/amfs_link.c (amfs_link_match): more up-to-date explanation
4145         for the prepend-the-dot hack for type link; also, the sublink is
4146         already normalized and absolute, so take advantage of that
4147
4148         * amd/amfs_generic.c (amfs_lookup_one_mntfs): the sublink is
4149         already normalized and absolute, so take advantage of that
4150
4151         * amd/am_ops.c (ops_match): normalize the sublink here, early into
4152         the matching process
4153
4154         * amd/autil.c (am_mounted): be consistent and accept both
4155         "nounmount" and "noumount" as pseudo mount options (same as
4156         "unmount" and "umount" nearby)
4157
4158         * amd/Makefile.am (build_version.h): fixed dependencies (depends
4159         on amd_OBJECTS, not OBJECTS -- which doesn't even exist)
4160
4161 2003-09-19  Erez Zadok  <ezk@dhcp8.fsl.cs.sunysb.edu>
4162
4163         * amd/amq_subr.c (amqproc_export_1_svc): force double casting to
4164         avoid gcc-3.3 complaints on Solaris 9 about "dereferencing
4165         type-punned pointer will break strict-aliasing rules".
4166
4167 2003-09-16  Ion Badulescu  <ionut@moisil.badula.org>
4168
4169         * Released beta version 6.1b4
4170
4171 2003-09-15  Ion Badulescu  <ionut@moisil.badula.org>
4172
4173         * doc/am-utils.texi (opts Option): removed documentation for old
4174         ignore_portmapper mount option, documented the new webnfs option
4175
4176         * NEWS: webnfs support
4177
4178         * amd/srvr_nfs.c (find_nfs_srvr): set MFF_WEBNFS if the "webnfs"
4179         (former "ignore_portmapper") mount option is present
4180
4181         * amd/ops_nfs.c (prime_nfs_fhandle_cache): generate a public
4182         filehandle (all zeros) if MFF_WEBNFS is set
4183         (nfs_umounted): don't talk to mountd if MFF_WEBNFS is set
4184
4185         * amd/amd.h (MFF_WEBNFS): new flag, obvious meaning
4186
4187 2003-09-13  Ion Badulescu  <ionut@moisil.badula.org>
4188
4189         * amd/srvr_nfs.c: renamed np_xid to global_xid; sanitized the
4190         NPXID_ALLOC macro and renamed it to XID_ALLOC; renamed start_ping
4191         to create_ping_payload; renamed nfs_pinged to
4192         nfs_keepalive_callback; renamed nfs_timed_out to
4193         nfs_keepalive_timeout; renamed nfs_srvr_port to get_mountd_port;
4194         made ping_buf and ping_len arrays with one element for each
4195         supported nfs version
4196
4197         * amd/amd.h: renamed nfs_srvr_port() to get_mountd_port()
4198
4199         * amd/amfs_host.c (amfs_host_init): ditto
4200
4201         * amd/ops_nfs.c (call_mountd): ditto
4202
4203 2003-09-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4204
4205         * BUGS: Mention fix for broken Solaris 8 <rpcsvc/autofs_prot.h>
4206         patches.
4207
4208 2003-08-31  Erez Zadok  <ezk@filer.fsl.cs.sunysb.edu>
4209
4210         * amd/autil.c (strealloc): don't call malloc_verify() unless it
4211         exists.
4212
4213         * configure.in: move "OPTION PROCESSING" section (opt_debug etc.)
4214         after we figure out PROG_CC and other compiler features, because
4215         some of the option processing macros need a compiler to function.
4216
4217         * libamu/xutil.c: don't define variables that won't be used unless
4218         mallinfo() and malloc_verify() exist.
4219         (real_plog): don't call checkup_mem unless
4220         mallocinfo() and malloc_verify() exist.
4221         (checkup_mem): don't define this function unless mallocinfo() and
4222         malloc_verify() exist.
4223
4224         * m4/macros/opt_debug.m4: check for functions malloc_verify and
4225         mallinfo in general libraries and then in libmapmalloc and
4226         libmalloc.  These seem to have disappeared in FreeBSD 5.x.
4227
4228         * libamu/xutil.c (dxfree): print pointer using %p
4229
4230 2003-08-29  Erez Zadok  <ezk@a-opendarwin.fsl.cs.sunysb.edu>
4231
4232         * configure.in: start 6.1b4-pre officially (belated)
4233
4234         * minor new port: i686-apple-darwin6.6
4235
4236 2003-08-27  Ion Badulescu  <ionut@moisil.badula.org>
4237
4238         * conf/autofs/autofs_solaris_v1.c: convert relative targets to
4239         absolute paths when using lofs mounts
4240
4241         * conf/autofs/autofs_solaris_v2_v3.c: ditto
4242
4243         * conf/autofs/autofs_linux.c: ditto
4244
4245 2003-08-27  Ion Badulescu  <ionut@buggy.badula.org>
4246
4247         * README.autofs: added a paragraph about the resource consumption
4248         of auto maps over autofs
4249
4250         * amd/amfs_generic.c (amfs_lookup_one_mntfs): moved the setting of
4251         the MFF_IS_AUTOFS flag from init_mntfs() to
4252         amfs_lookup_one_mntfs(), where it belongs
4253
4254         * amd/mntfs.c (init_mntfs): ditto
4255
4256 2003-08-27  Ion Badulescu  <ion@guppy.limebrokerage.com>
4257
4258         * amd/ops_nfs.c (got_nfs_fh): make the error EACCES if we are
4259         denied a filehandle by the server (used to be EIO)
4260
4261 2003-08-27  Erez Zadok  <ezk@a-bsdi42.fsl.cs.sunysb.edu>
4262
4263         * conf/nfs_prot/nfs_prot_bsdi3.h: support na_uid and na_gid.
4264
4265 2003-08-27  Ion Badulescu  <ionut@moisil.badula.org>
4266
4267         * conf/autofs/autofs_linux.c (autofs_mount_succeeded): force
4268         daemon-initiated timeouts on autofs filesystems, since apparently
4269         they appear as "always busy" to the kernel-based expiration routine
4270
4271 2003-08-26  Ion Badulescu  <ionut@buggy.badula.org>
4272
4273         * NEWS: updated
4274
4275         * conf/autofs/autofs_linux.h (AUTOFS_LINK_FS_FLAGS): remove
4276         FS_ON_AUTOFS
4277         (AUTOFS_LINKX_FS_FLAGS): ditto
4278
4279         * conf/autofs/autofs_solaris_v1.h (AUTOFS_LINK_FS_FLAGS): remove
4280         FS_ON_AUTOFS
4281         (AUTOFS_LINKX_FS_FLAGS): ditto
4282
4283         * conf/autofs/autofs_solaris_v2_v3.h (AUTOFS_LINK_FS_FLAGS): remove
4284         FS_ON_AUTOFS
4285         (AUTOFS_LINKX_FS_FLAGS): ditto
4286
4287         * amd/amfs_generic.c (amfs_lookup_one_mntfs): don't modify the
4288         original opt_fs, instead store the new mount point for autofs in a
4289         temporary variable and pass it around. Fixes a problem with the
4290         link side of nfsl.
4291
4292 2003-08-25  Ion Badulescu  <ionut@moisil.badula.org>
4293
4294         * NEWS: updated
4295
4296         * amd/ops_nfs.c (prime_nfs_fhandle_cache): use get_mntfs_wchan to
4297         initialize the fh_wchan member of the cache entry
4298         (prime_nfs_fhandle_cache): use get_mntfs_wchan for the wchan_t
4299         argument of call_mountd()
4300
4301         * amd/map.c (free_map_if_success): use get_mntfs_wchan for the
4302         wchan_t argument of wakeup()
4303
4304         * amd/amfs_nfsx.c (amfs_nfsx_cont): use get_mntfs_wchan for the
4305         wchan_t argument of wakeup_task() and wakeup()
4306
4307         * amd/amfs_host.c (amfs_host_init): use get_mntfs_wchan for the
4308         wchan_t argument of nfs_srvr_port()
4309
4310         * amd/amfs_generic.c (ALL): use get_mntfs_wchan for the wchan_t
4311         argument of sched_task() and wakeup()
4312         (amfs_retry): minor cleanup
4313         (amfs_bgmount): call nfs_quick_reply on failure
4314
4315         * amd/sched.c (get_mntfs_wchan): new function which calls the
4316         member function get_wchan if defined, otherwise returns the mntfs
4317         pointer itself
4318
4319         * amd/amfs_inherit.c (amfs_inherit_get_wchan): new function,
4320         calls get_mntfs_wchan() on the inherited filesystem
4321
4322         * amd/amfs_*.c, amd/ops_*.c: initialize the new get_wchan member
4323         of the ops to 0
4324
4325         * amd/amd.h: new function type vget_wchan
4326         (struct mntfs): new member get_wchan which returns the waiting
4327         channel associated with the mntfs (normally itself)
4328
4329 2003-08-22  Ion Badulescu  <ion@guppy.limebrokerage.com>
4330
4331         * conf/mount/mount_linux.c (parse_opts): minor cleanup
4332
4333         * conf/autofs/autofs_linux.c (autofs_handle_fdset): added missing
4334         break in case autofs_ptype_expire_multi
4335
4336 2003-08-22  Ion Badulescu  <ionut@moisil.badula.org>
4337
4338         * conf/autofs/autofs_solaris_v1.h: undefine autofs support if
4339         autofs_args_t cannot be determined (hopefully fixes a reported
4340         IRIX 6.5.4 problem).
4341
4342         * conf/autofs/autofs_solaris_v1.c: wrap entire file in #ifdef
4343         HAVE_FS_AUTOFS / #endif (see above)
4344
4345         * conf/autofs/autofs_linux.h: undefine autofs support if the
4346         necessary header files are not found (fixes a reported RedHat 6.2
4347         Sparc problem).
4348
4349         * conf/autofs/autofs_linux.c: wrap entire file in #ifdef
4350         HAVE_FS_AUTOFS / #endif (see above)
4351
4352         * libamu/mount_fs.c (compute_nfs_args): only use MNT2_NFS_OPT_SOFT
4353         if autoconf detected it (fixes a reported RedHat 6.2 Alpha problem).
4354
4355         * amd/map.c (unmount_mp, unmount_exported): move the code that
4356         changes the fattr from NFLNK to NFDIR from unmount_mp to
4357         unmount_exported, it was causing troubles (ESTALE) after failed
4358         unmounts. This is still very very unclean, but it's the same as the
4359         old 6.0 code.
4360
4361 2003-08-22  Nick Williams <Nick.Williams@morganstanley.com>
4362
4363         * amd/info_ldap.c (amu_ldap_init): don't try to pass a null
4364         pointer as a string to plog, Solaris (and other OS's) don't like
4365         it and will dump core.
4366
4367 2003-08-13  Ion Badulescu  <ion@guppy.limebrokerage.com>
4368
4369         * amd/amd.h: introduced two new types, wchan_t and opaque_t, as
4370         aliases of voidp. This makes reading the code easier on the eyes. :)
4371
4372         * ALL: replace various instances of voidp with wchan_t and
4373         opaque_t, as appropriate
4374
4375 2003-08-13  Ion Badulescu  <ionut@nicu.badula.org>
4376
4377         * NEWS, configure.in: bumped version up to 6.1b4-pre
4378
4379 2003-08-13  Ion Badulescu  <ionut@moisil.badula.org>
4380
4381         * Released beta version 6.1b3
4382
4383 2003-08-13  Ion Badulescu  <ion@guppy.limebrokerage.com>
4384
4385         * conf/autofs/autofs_linux.c (autofs_mount_fs): HACK: always use
4386         symlinks for host mounts; assorted fixes for the symlink mode
4387
4388 2003-08-05  Ion Badulescu  <ionut@moisil.badula.org>
4389
4390         * conf/umount/umount_default.c (umount_fs): enable space hack
4391         handling for autofs v1
4392
4393         * amd/map.c (get_first_exported_ap, get_next_exported_ap): new
4394         functions that facilitate iterating through the list of
4395         mountpoints
4396
4397         * amd/amfs_union.c (amfs_union_mounted): use get_first_exported_ap
4398         and get_next_exported_ap
4399
4400         * conf/autofs/autofs_solaris_v2_v3.c (autofs_unmount_2_req): ditto
4401
4402 2003-08-04  Erez Zadok  <ezk@ulkesh.dyn.optonline.net>
4403
4404         * configure.in: check if system stores mount tables in files
4405         (usually in /etc), and configure couldn't find a definition for
4406         either struct mntent or struct mnttab.  If so, abort configure
4407         because this could be a new/misconfigured system, or a bug in
4408         am-utils.
4409
4410 2003-08-04  Ion Badulescu  <ionut@moisil.badula.org>
4411
4412         * conf/autofs/autofs_solaris_v2_v3.c (autofs_umount_fs): fix
4413         compile warning
4414
4415 2003-08-04  Ion Badulescu  <ionut@buggy.badula.org>
4416
4417         * conf/autofs/autofs_linux.c (autofs_mount_fs): don't call
4418         ops->mount_fs() for an already mounted filesystem
4419         (autofs_umount_fs): only call ops->umount_fs() if we're holding
4420         the last reference to the filesystem
4421
4422         * conf/autofs/autofs_solaris_v1.c (autofs_mount_fs): ditto
4423         (autofs_umount_fs): ditto
4424
4425         * conf/autofs/autofs_solaris_v2_v3.c (autofs_mount_fs): ditto
4426         (autofs_umount_fs): ditto
4427
4428         * amd/amfs_generic.c (amfs_lookup_mntfs): remove the shortcut for
4429         already-mounted filesystems
4430         (amfs_cont): only release the autofs_fh if the filesystem is not
4431         mounted; add another comment about the NFS_SCALEDOWN hack
4432         (amfs_bgmount): if the mntfs is already mounted, skip just the
4433         filesystem initialization, but do call mount_node()
4434
4435         * amd/map.c (mount_node): always call autofs_mount_fs(), but only
4436         call ops->mount_fs() if the mntfs is not yet mounted
4437         (unmount_node): always call autofs_umount_fs(), but only call
4438         ops->umount_fs() if the refcount on the mntfs equals 1.
4439
4440 2003-08-02  Erez Zadok  <ezk@filer.fsl.cs.sunysb.edu>
4441
4442         * conf/nfs_prot/nfs_prot_openbsd.h: include <ufs/ufs/ufsmount.h>
4443         here with the proper workarounds for openbsd3.3 (define MAXQUOTAS,
4444         define dummy struct netexport, and include <ufs/ufs/extattr.h>
4445         wrapped in _KERNEL).
4446
4447         * conf/nfs_prot/nfs_prot_freebsd3.h: include <ufs/ufs/ufsmount.h>
4448         here with the proper workarounds for freebsd5.1 (define dummy
4449         struct ufs_extattr_per_mount).
4450
4451         * conf/nfs_prot/nfs_prot_bsdi2.h: include <ufs/ufs/ufsmount.h>
4452         here with the proper workarounds for bsdi2 (define MAXQUOTAS and
4453         dummy struct netexport).
4454
4455         * include/mount_headers1.h: do not include <ufs/ufs/ufsmount.h>
4456         here, b/c every *BSD system has some sort of problem in including
4457         this header file, which includes ugly workarounds.  Inclusion of
4458         this header was already moved out of am_defs.h (used to compile
4459         amd), but we forgot to move it out of mount_headers1.h (used to
4460         configure).  The specific inclusion of ufsmount.h is now in the OS
4461         specific nfs_prot.h file.
4462
4463         * configure.in: if configure could not find any definition for
4464         "struct nfs_args", abort configure with an explanatory message.
4465         There's no point in continuing, as this could be a system bug,
4466         buggy am-utils, or a new system to which am-utils wasn't ported to
4467         yet.
4468
4469         * minor new port: i386-pc-solaris2.9
4470
4471 2003-08-01  Ion Badulescu  <ionut@buggy.badula.org>
4472
4473         * doc/am-utils.texi (NFS-Link Filesystem): make the documentation
4474         match the code (as well as basic logic operations: the negation of
4475         'a or b' is 'not a and not b', not 'not a or not b')
4476
4477 2003-08-01  Erez Zadok  <ezk@filer.fsl.cs.sunysb.edu>
4478
4479         * minor new port: i386-unknown-openbsd3.3.
4480
4481         * m4/macros/check_libwrap_severity.m4: new macro to check if
4482         libwrap includes the integer variables deny_severity and
4483         allow_severity, since some libwrap implementations do and others
4484         don't.  The test tries to compile and run a simple empty main()
4485         program, then the same program while defining these two variables:
4486         comparing the results of the two tests, we can tell whether we
4487         should define NEED_LIBWRAP_SEVERITY_VARIABLES.
4488
4489         * Makefile.am (EXTRA_DIST_M4): distribute new macro
4490         check_libwrap_severity.m4.
4491
4492         * m4/macros/header_templates.m4: template for HAVE_LIBWRAP (which
4493         we must define explicitly since we've overridden the
4494         action-if-found in AC_CHECK_LIB(wrap).  Also template for
4495         NEED_LIBWRAP_SEVERITY_VARIABLES.
4496
4497         * amd/amq_svc.c: if libwrap does not include the severity
4498         variables, then define and initialize them here.
4499
4500         * amd/Makefile.am (LIBS): explicitly include @WRAPLIB@ only for
4501         Amd binary.  Other am-utils binaries don't need -lwrap.
4502
4503         * configure.in: if libwrap is found, only define it in @WRAPLIB@,
4504         so we don't automatically link every am-utils binary with -lwrap.
4505         Run test for existence of severity variables in libwrap.
4506
4507 2003-07-31  Erez Zadok  <ezk@filer.fsl.cs.sunysb.edu>
4508
4509         * conf/nfs_prot/nfs_prot_openbsd.h: define struct fattr fields uid
4510         and gid.
4511
4512         * configure.in: move check for AC_CHECK_LIB(libwrap) as far down
4513         as possible because on modern tcpwrapper systems such as openbsd,
4514         the caller must provide two symbols: deny_severity and
4515         allow_severity, which determine the logging level of rejected and
4516         requested requests, respectively.  If this check happens too
4517         early, then $LIBS includes -lwrap, which causes many subsequent
4518         tests that need to run a compiled program to fail with missing
4519         symbols.
4520
4521         * m4/macros/header_templates.m4: fix typo in template for
4522         readdirplus.
4523
4524         * configure.in: check for <ufs/ufs/extattr.h> (OpenBSD 3.3)
4525
4526         * minor new port: i386-unknown-netbsdelf1.6.1.
4527
4528         * configure.in: save state before system-specific tests are run.
4529
4530         * m4/macros/check_gnu_getopt.m4: do NOT abort ./configure just
4531         because the compiled test program failed to run.
4532
4533 2003-08-01  Ion Badulescu  <ionut@buggy.badula.org>
4534
4535         * NEWS, README.autofs: updated
4536
4537         * libamu/mount_fs.c (mount_fs): added support for the space hack
4538
4539         * doc/am-utils.texi: mention than UFS/XFS/EFS/CacheFS filesystems
4540         are not expired by default; correct and expand the section
4541         describing the program filesystem
4542
4543         * conf/autofs/autofs_solaris_v2_v3.h (AUTOFS_*_FS_FLAGS): add
4544         FS_ON_AUTOFS for supported filesystems
4545
4546         * conf/autofs/autofs_solaris_v2_v3.c (autofs_mount_fs): call
4547         mf->mount_fs()
4548         (autofs_umount_fs): call mf->umount_fs()
4549
4550         * conf/autofs/autofs_solaris_v1.h (autofs_strdup_space_hack): add
4551         prototype for malloc()
4552         (AUTOFS_*_FS_FLAGS): lose the FS_MKMNT flags, add FS_ON_AUTOFS for
4553         supported filesystems
4554
4555         * conf/autofs/autofs_solaris_v1.c (autofs_mount_fs): add support
4556         for the space hack; call mf->mount_fs()
4557         (autofs_umount_fs): add support for the space hack; call
4558         mf->umount_fs()
4559         (autofs_mount_succeeded): add support for the space hack
4560
4561         * conf/autofs/autofs_linux.h: lose the FS_MKMNT flags, add
4562         FS_ON_AUTOFS for supported filesystems
4563
4564         * conf/autofs/autofs_linux.c (AUTOFS_MAX_VERSION): define to
4565         AUTOFS_MAX_PROTO_VERSION instead of hardcoding to 4
4566         (autofs_mounted): host mounts are now supported on all autofs
4567         versions, remove the hack to turn it off on v3
4568         (autofs_mount_fs): call mf->mount_fs(), create/remove mountpoints
4569         as needed
4570         (autofs_umount_fs): call mf->umount_fs(), remove mountpoints on
4571         success
4572         (ALL): use '#if AUTOFS_MAX_VERSION >= 4' instead of
4573         '#ifdef autofs_ptype_expire_multi'
4574
4575         * amd/map.c (mount_node): autofs_mount_fs() now calls
4576         mf->mount_fs() internally
4577         (unmount_node): autofs_umount_fs() now calls mf->umount_fs()
4578         internally
4579
4580         * amd/autil.c (am_mounted): minor cleanup
4581
4582         * amd/amfs_program.c (amfs_program_ops): added FS_MKMNT to
4583         nfs_fs_flags
4584
4585         * amd/amfs_generic.c (amfs_lookup_one_mntfs): use the FS_ON_AUTOFS
4586         flag instead of hardcoding filesystem types
4587         (amfs_bgmount): better mount_type logging
4588
4589         * amd/amd.h (FS_ON_AUTOFS): new flag which tells the code that
4590         this filesystem can be mounted directly onto an autofs mountpoint
4591
4592 2003-07-31  Ion Badulescu  <ionut@buggy.badula.org>
4593
4594         * amd/amfs_nfsl.c (amfs_nfsl_umount): fix copy&paste error (was
4595         calling amfs_link_ops.umount_fs() for NFS filesystems)
4596         (amfs_nfsl_umounted): remove rmdirs() hack, it is now handled
4597         properly elsewhere
4598         (amfs_nfsl_ffserver): remove FS_MKMNT from mf_fsflags if we're
4599         using link (not NFS)
4600
4601 2003-07-31  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4602
4603         * README.autofs: Correct IRIX spelling.
4604         AutoFS support exists only on IRIX 6.
4605         Update IRIX 6 status.
4606
4607         Allow AutoFS V1 support to compile on IRIX 6.
4608         * conf/autofs/autofs_solaris_v1.c (autofs_mount_1_req): Add
4609         SVCXPRT * arg.
4610         Remove superfluous \n from dlog messages.
4611         (autofs_unmount_1_req): Likewise.
4612         Switch to get_exported_ap.
4613         (autofs_program_1): Invoke handlers with additional transp arg.
4614         * conf/autofs/autofs_solaris_v1.h: Use autofs_args_t to define
4615         autofs_fh_t, struct auto_args doesn't exist on IRIX 6.
4616
4617         * conf/mount/mount_irix6.c (mount_irix) [HAVE_FS_AUTOFS]: Support
4618         AutoFS mounts.
4619         [HAVE_FS_LOFS]: Likewise for lofs mounts.
4620
4621         * conf/nfs_prot/nfs_prot_irix6.h (AUTOFS_CONFTYPE): Define.
4622         Don't disable AutoFS support any more.
4623
4624         * conf/transp/transp_sockets.c [HAVE_FS_AUTOFS && AUTOFS_PROG]
4625         (register_autofs_service): Define autofs_xprt.
4626
4627         * m4/macros/check_autofs_style.m4 (AMU_CHECK_AUTOFS_STYLE): Update
4628         Solaris 8+ comment to mention AutoFS V4.
4629         (irix6*): Enable AutoFS V1 support on IRIX 6.
4630
4631 2003-07-30  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
4632
4633         * NEWS, doc/am-utils.texi, scripts/amd.conf.5: revised explanation
4634         of autofs_use_lofs.
4635
4636 2003-07-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4637
4638         * amd/ops_efs.c (efs_mount): Replace on_autofs arg with
4639         MFF_ON_AUTOFS flag.
4640         (efs_umount): Likewise.
4641
4642 2003-07-30  Erez Zadok  <ezk@filer.fsl.cs.sunysb.edu>
4643
4644         * conf/umount/umount_bsd44.c (umount_fs): convert to new way of
4645         unmounting which takes autofs into account.
4646
4647 2003-07-30  Ion Badulescu  <ionut@moisil.badula.org>
4648
4649         * ALL: renamed MFF_AUTOFS to MFF_IS_AUTOFS; removed mf_real_mount
4650         hack; pass a new on_autofs argument to mount/umount function,
4651         based on the MFF_ON_AUTOFS mntfs flag
4652
4653         * NEWS, README.autofs: updated
4654
4655         * scripts/amd.conf.5: document new option autofs_use_lofs
4656
4657         * scripts/amd.conf-sample (autofs_use_lofs): document new option
4658
4659         * m4/macros/check_autofs_style.m4 (am_utils_link_files): symlink
4660         the autofs header as amu_autofs_prot.h instead of slurping it into
4661         aux_conf.h
4662
4663         * libamu/mount_fs.c (mount_fs): removed old stub, renamed
4664         mount_fs2 to mount_fs, added new argument on_autofs
4665
4666         * doc/am-utils.texi (Direct Automount Filesystem): document
4667         problems with nfs direct mounts on modern kernels, document good
4668         autofs support for direct mounts on Solaris
4669         (autofs_use_lofs Parameter): document this new option
4670         (browsable_dirs Parameter): note that mount storms are avoided
4671         when using autofs
4672
4673         * conf/umount/umount_bsd44.c (umount_fs): removed old stub,
4674         renamed umount_fs2 to umount_fs
4675
4676         * conf/umount/umount_osf.c (umount_fs): removed old stub,
4677         renamed umount_fs2 to umount_fs, added new argument on_autofs
4678
4679         * conf/umount/umount_default.c (umount_fs): ditto as above; return
4680         an error on ENOENT instead of faking success
4681
4682         * conf/autofs/autofs_solaris_v2_v3.c (autofs_lookup_2_req): much
4683         simplified, now only consults the map for existance of the key and
4684         returns success if key is found
4685         (autofs_mount_2_req): request symlinks if CFM_AUTOFS_USE_LOFS is
4686         not on;
4687         (autofs_mount_2_free): implemented
4688         (autofs_unmount_2_req): use get_exported_ap() instead of
4689         referencing export_ap directly
4690         (autofs_mount_succeeded): remove code for replying to lookup
4691         requests, now only mount requests can end up here
4692         (autofs_mount_failed): ditto
4693
4694         * conf/autofs/autofs_solaris_v1.h (AUTOFS_HOST_FS_FLAGS): removed
4695         FS_AUTOFS
4696         (AUTOFS_DIRECT_FS_FLAGS): added FS_DIRECTORY
4697
4698         * conf/autofs/autofs_solaris_v2_v3.h (AUTOFS_HOST_FS_FLAGS): removed
4699         FS_AUTOFS
4700         (AUTOFS_DIRECT_FS_FLAGS): added FS_DIRECTORY
4701         (AUTOFS_LINK_FS_FLAGS): added FS_MBACKGROUND
4702
4703         * conf/autofs/autofs_linux.c (autofs_bind_umount): new function,
4704         factored out of autofs_umount_fs()
4705         (autofs_mount_fs): renamed from autofs_link_mount() and expanded
4706         to deal with filesystems mounted indirectly (via lofs/bind
4707         mounts) on autofs and to observe the new CFM_AUTOFS_USE_LOFS flag
4708         (autofs_umount_fs): ditto, from autofs_link_umount()
4709
4710         * conf/autofs/autofs_solaris_v1.c (autofs_mount_fs): ditto
4711         * (autofs_umount_fs): ditto
4712
4713         * conf/autofs/autofs_solaris_v2_v3.c (autofs_mount_fs): ditto
4714         * (autofs_umount_fs): ditto
4715
4716         * amd/opts.c: made fs_static static
4717
4718         * amd/ops_nfs.c: made nfs_init, nfs_match, nfs_mount, nfs_umount
4719         and nfs_umounted static
4720         (mount_nfs_fh): removed unnecessary arguments
4721
4722         * amd/ops_cachefs.c (cachefs_ops): use amfs_generic_find_srvr for
4723         the ffserver method, because using NULL causes problems
4724
4725         * amd/ops_cdfs.c (cdfs_ops): ditto
4726
4727         * amd/ops_efs.c (efs_ops): ditto
4728
4729         * amd/ops_lofs.c (lofs_ops): ditto
4730
4731         * amd/ops_pcfs.c (pcfs_ops): ditto
4732
4733         * amd/ops_ufs.c (ufs_ops): ditto
4734
4735         * amd/ops_xfs.c (xfs_ops): ditto
4736
4737         * amd/nfs_subr.c (fh_to_mp3, fh_to_mp, mp_to_fh): moved here from
4738         map.c
4739
4740         * amd/nfs_start.c: use get_exported_ap() instead of referencing
4741         exported_ap directly
4742
4743         * amd/mntfs.c (locate_mntfs): new function, factored out of
4744         find_mntfs
4745         (locate_mntfs): special-case FS_DIRECT filesystems: for direct
4746         mounts we will have two filesystems mounted on the same m/p
4747         (realloc_mntfs): removed the old EZK hack for failovers
4748
4749         * amd/map.c (get_exported_ap): new function that returns an
4750         exported_ap member by its index
4751         (root_node,exported_ap,exported_ap_size,first_free_map,last_used_map):
4752         made static
4753         (fh_to_mp3, fh_to_mp, mp_to_fh): moved to nfs_subr.c
4754         (get_root_ap): removed unused second argument
4755         (unmount_mp): moved the mk_fattr(NFDIR) here from umount_exported
4756         to catch more cases
4757         (mount_node): call autofs_mount_fs after ops->mount_fs for autofs
4758         nodes
4759         (unmount_node): call autofs_umount_fs before ops->umount_fs for
4760         autofs nodes
4761
4762         * amd/conf.c: new global option "autofs_use_lofs", takes yes/no
4763         values
4764
4765         * amd/autil.c (amfs_mount): take an extra argument (mf)
4766         (amfs_mount): call autofs_compute_mount_flags() for mounts
4767         directly on autofs m/p
4768         (am_unmounted): document and avoid the race between am_umounted()
4769         at shutdown time and amfs_cont()
4770
4771         * amd/amfs_union.c (amfs_union_mounted): use get_exported_ap()
4772         instead of referencing internal map variables directly
4773
4774         * amd/amq_subr.c (amqproc_export_1_svc): ditto
4775
4776         * amd/amfs_toplvl.c (amfs_toplvl_ops): removed FS_AUTOFS from
4777         nfs_fs_flags
4778         (amfs_toplvl_mount): pass extra argument (mf) to amfs_mount()
4779         (amfs_toplvl_umount): refuse to attempt the unmount if the
4780         mountpoint is not a directory
4781
4782         * amd/amfs_nfsx.c (amfs_nfsx_init): propagate the MFF_ON_AUTOFS
4783         flag into the nfs f/s at the bottom of the stack
4784
4785         * amd/amfs_nfsl.c: call nfs and link member functions through
4786         their respective am_ops structures, not directly
4787
4788         * amd/amfs_linkx.c (amfs_linkx_umount): new static stub
4789
4790         * amd/amfs_link.c: made amfs_link_mount() and amfs_link_umount()
4791         static functions
4792         (amfs_link_mount): removed call to autofs_link_mount()
4793         (amfs_link_umount): removed call to autofs_link_umount()
4794
4795         * amd/amfs_host.c (amfs_host_ops): removed FS_AUTOFS from
4796         nfs_fs_flags
4797         (do_mount): removed superfluous function arguments
4798
4799         * amd/amfs_direct.c (amfs_direct_ops): removed FS_AUTOFS from
4800         nfs_fs_flags
4801
4802         * amd/amfs_auto.c (amfs_auto_ops): removed FS_AUTOFS from
4803         nfs_fs_flags
4804         (amfs_auto_mount): pass extra argument (mf) to amfs_mount
4805
4806         * amd/amd.h (CFM_AUTOFS_USE_LOFS): new flag, tells amd whether to
4807         use lofs-mounts or symlinks when mounting on autofs
4808         (CFM_DEFAULT_FLAGS): added CFM_AUTOFS_USE_LOFS
4809         (VLOOK_LOOKUP): new flag, will merely check if a key exists
4810         (MFF_IS_AUTOFS): renamed from MFF_AUTOFS
4811         (MFF_ON_AUTOFS): new flag, tells amd if a f/s is mounted directly
4812         on an autofs m/p, or indirectly via a lofs mount/symlink
4813         (fh_to_mp2): macro expanded throughout the code and removed
4814         (mntfs): removed mf_real_mount hack
4815         (autofs_mount_fs): renamed from autofs_link_mount
4816         (autofs_umount_fs): renamed from autofs_link_umount
4817         (mount_lofs): exposed
4818         various other cleanups, functions/variables made static and removed
4819
4820         * aux_conf.h.in: removed @am_utils_autofs_style@, it is now
4821         included directly as amu_autofs_prot.h
4822
4823 2003-07-24  Erez Zadok  <ezk@whitestar.dyn.optonline.net>
4824
4825         * doc/am-utils.texi, scripts/amd.conf.5: document that
4826         use_tcpwrappers is "yes" by default.
4827
4828         * amd/amd.c (init_global_options): set default global options.
4829
4830         * amd/amd.h (CFM_DEFAULT_FLAGS): define default options which
4831         are always on (plock and use_tcpwrappers).
4832
4833         * scripts/amd.conf-sample: reorganize values per option so default
4834         one is listed first.
4835
4836 2003-07-23  Erez Zadok  <ezk@filer.fsl.cs.sunysb.edu>
4837
4838         * tasks: trim old stuff.  Discuss new parser.
4839
4840         * amd/conf.c (set_conf_kv): initialize the very first map in conf
4841         file from global defaults.  Bug fix which was introduced after
4842         conf.c code restructuring.
4843
4844 2003-07-18  Erez Zadok  <ezk@filer.fsl.cs.sunysb.edu>
4845
4846         * m4/macros/header_templates.m4: template for
4847         HAVE_EXTERN_HOSTS_CTL.
4848
4849         * include/am_defs.h: define extern for hosts_ctl() if needed.
4850
4851         * configure.in (AMU_CHECK_EXTERNS): check for extern definition
4852         for libwrap's hosts_ctl() (FreeBSD 5.0 doesn't have it).
4853
4854         * m4/macros/check_extern.m4: include tcpd.h if it and libwrap exist.
4855
4856 2003-07-18  Erez Zadok  <ezk@cs.sunysb.edu>
4857
4858         * hlfsd/hlfsd.h: redundant extern for mboxfile removed.
4859
4860         * amd/amq_svc.c (amq_program_1): only check for tcpwrappers if
4861         amd.conf global option use_tcpwrappers=yes.
4862
4863         * scripts/amd.conf.5, scripts/amd.conf-sample (use_tcpwrappers),
4864         doc/am-utils.texi (use_tcpwrappers Parameter): document new
4865         amd.conf global option.
4866
4867         * amd/conf.c (gopt_use_tcpwrappers): define a new amd.conf global
4868         option called use_tcpwrappers ("no" by default).
4869
4870         * amd/amq_svc.c (amqsvc_is_client_allowed): include tcpd/libwrap
4871         code only if both libwrap and tcpd.h exist.
4872         (amq_program_1): log warning when an Amq service client is denied,
4873         and a debug message when a client is allowed.
4874
4875         * amd/amd.h (CFM_USE_TCPWRAPPERS): define [global] amd.conf flag.
4876         (AMD_SERVICE_NAME): define AMD_SERVICE_NAME for tcpd/libwrap.
4877
4878         * include/am_defs.h: include tcpd.h if available and libwrap
4879         available.
4880
4881         * configure.in: check for tcpd.h.
4882
4883 2003-07-18  Erez Zadok  <ezk@filer.fsl.cs.sunysb.edu>
4884
4885         * scripts/expn.1, amd/amd.8 amq/amq.8, fixmount/fixmount.8,
4886         hlfsd/hlfsd.8, scripts/expn.1: remove ".PD 0" nroff command
4887         because it removes useful spaces in between paragraphs.  Based on
4888         smaller patch from Philippe Troin <phil@fifi.org>.
4889
4890 2003-07-17  Philippe Troin  <phil@fifi.org>
4891
4892         * amq/amq.8: Document the libwrap/amd behavior.
4893
4894         * amd/amq_svc.c (libwrap_check_client): New function to validate
4895         an amq connection with libwrap.
4896         (amq_program_1): Call libwrap_check_client() and close the
4897         connection if libwrap does not allow it.
4898
4899         * configure.in: Check for the tcp wrappers library.
4900
4901 2003-07-17  Erez Zadok  <ezk@filer.fsl.cs.sunysb.edu>
4902
4903         * amd/amq_subr.c (amqproc_mnttree_1_svc, amqproc_stats_1_svc,
4904         amqproc_getmntfs_1_svc, xdr_amq_mount_tree), hlfsd/hlfsd.c
4905         (hlfsd_init): cast pointers to void* before casting them to
4906         another type, to avoid gcc-3.3 -Wall warnings.
4907
4908         * fsinfo/*.[hc]: rename fsinfo function log() to fsi_log(), to
4909         avoid conflict with builtin function in gcc-3.3.
4910
4911 2003-07-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4912
4913         * scripts/amd.conf-sample: Remove obsolete comment.
4914
4915 2003-07-16  Erez Zadok  <ezk@cs.sunysb.edu>
4916
4917         * amd/info_file.c (read_line): check for errors from fgets().
4918         Although rare, they can occur upon disk or network failures.
4919         Patch from Nick Williams <Nick.Williams@morganstanley.com>.
4920
4921 2003-07-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4922
4923         * BUGS (Solaris 8): Update patch revisions, mention old autofs
4924         patches, fix filenames and rpcgen command.
4925
4926 2003-07-15  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
4927
4928         * doc/am-utils.texi (map_defaults Parameter): document new
4929         map_defaults option.
4930
4931         * scripts/amd.conf.5: document new map_defaults option.
4932
4933         * scripts/amd.conf-sample (map_type): show examples of new
4934         map_defaults option.
4935
4936         * amd/mapc.c (mapc_create): initialize mnt_map->cfm field to NULL.
4937
4938         * amd/get_args.c (get_args): call process_all_regular_maps().
4939
4940         * amd/conf.c: keep head and tail of cfm list.
4941         (init_cf_map): reworked reset_cf_map.  This one doesn't reset a
4942         globaly reused cfm, but rather just inherits [global] options.
4943         (set_conf_kv): just store global/map options without actually
4944         creating any mnt_map's.  Essentially, we now parse the whole
4945         amd.conf file, and then try to process the maps one at a time.
4946         (process_one_regular_map): new function to process one map, just
4947         renamed from process_regular_map.
4948         (process_all_regular_maps): new exported function to process all
4949         maps.  No need for hacky process_last_map().
4950         (find_cf_map): new exported function to return a cf_map_t given a
4951         map's mount point (e.g., /home or /net).
4952
4953         * amd/amfs_generic.c (amfs_parse_defaults): find if amd.conf
4954         specificed a map_defaults for a given map.  If so, use that
4955         instead of the /defaults that came from the map itself.  Also
4956         restructure code a bit so it's not one huge long "if" statement.
4957
4958         HACK ALERT: there's no easy way to find out what the map mount
4959         point is at this point, so I am forced to initialize the
4960         mnt_map->cfm field here for the first time, upon the very first
4961         search for a /defaults entry in this map.  This initialization is
4962         much better done in mapc_create(), but it's impossible to do that
4963         there with the current code structure.
4964
4965         * amd/amd.h: struct cf_map becomes linked list.  struct mnt_map
4966         includes pointer to cf_map_t, amd.conf defaults and options for a
4967         given map. extern cleanups.
4968
4969 2003-07-15  Erez Zadok  <ezk@filer.fsl.cs.sunysb.edu>
4970
4971         * amd/info_hesiod.c (hesiod_search): It's not possible to have a
4972         key such as ".access" in a hesiod map as that would imply a null
4973         node in the DNS tree.  So a lookup for such a key must clearly
4974         fail.  With the current info_hesiod.c it does (after calling
4975         hes{,iod}_resolve) but returns an error that confuses some
4976         programs - eg. apache.  This patch shortcuts the process and just
4977         returns ENOENT for any key starting with ".".  Patch submitted by
4978         by Mark Davies <mark@mcs.vuw.ac.nz>.
4979
4980         * include/am_utils.h (CALLOC): redefine macro to use xzalloc, not
4981         fsinfo's own xcalloc.
4982
4983         * fsinfo/fsi_util.c (xcalloc): remove redundant function.
4984
4985 2003-07-14  Erez Zadok  <ezk@cs.sunysb.edu>
4986
4987         * include/am_compat.h (MNTTAB_OPT_XLATECOOKIE): The NetBSD
4988         xlatecookie NFS option doesn't work as MNTTAB_OPT_XLATECOOKIE is
4989         never defined.  Define it as needed.  Patch from Mark Davies
4990         <mark@mcs.vuw.ac.nz>.
4991
4992 2003-07-14  Ion Badulescu  <lionut@gonzales.badula.org>
4993
4994         * BUGS (Note): document the Solaris 8 bug (the upgrade to autofs
4995         v4 without updating all the header files)
4996
4997 2003-07-13  Ion Badulescu  <lionut@gonzales.badula.org>
4998
4999         * NEWS, tasks: updated
5000
5001         * amd/amfs_generic.c (free_continuation): free _all_ mntfs's in
5002         the am_mfarray, unconditionally
5003         (amfs_bgmount): call free_mntfs when we're done with a mntfs, call
5004         dup_mntfs when starting processing of a new one; make sure we
5005         always go through 'goto failed' for a failed mntfs; use the error
5006         code returned by autofs_get_fh()
5007
5008         * conf/autofs/autofs_linux.c (autofs_get_fh): return proper error
5009         codes in case of problems
5010
5011 2003-07-13  Erez Zadok  <ezk@filer.fsl.cs.sunysb.edu>
5012
5013         * BUGS: Document buggy behavior of Solaris /usr/ccs/bin/lex.  In
5014         short, use flex.
5015
5016 2003-07-13  Erez Zadok  <ezk@a-hpux11.fsl.cs.sunysb.edu>
5017
5018         * fsinfo/fsi_lex.l, amd/conf_tok.l: allocate more output slots so
5019         lex scanners don't run out of mem.
5020
5021 2003-07-13  Ion Badulescu  <lionut@gonzales.badula.org>
5022
5023         * amd/amfs_generic.c (amfs_lookup_mntfs): ditto as below for the
5024         special provision
5025
5026         * amd/mntfs.c (find_mntfs): compare the filesystem type
5027         (i.e. mf_ops) in addition to mf_info; the special provision
5028         mentioned below is really for any filesystem already mounted on
5029         our mount point, not just for inherited filesystems
5030
5031 2003-07-13  Erez Zadok  <ezk@whitestar.dyn.optonline.net>
5032
5033         * doc/Makefile.am (install-html): build per-chapter HTML manual,
5034         as well as manual in one big HTML file.
5035
5036         * doc/am-utils.texi: Minor corrections.  Ack Ion's autofs work.
5037         Ack maintainers.  New section on How to get additionl info,
5038         including the Amd book.  Correct stale URLs and Emails.
5039
5040         * amd/amd.8, amq/amq.8, amq/pawd.1, fixmount/fixmount.8,
5041         fsinfo/fsinfo.8, hlfsd/hlfsd.8, mk-amd-map/mk-amd-map.8,
5042         scripts/amd.conf.5, scripts/automount2amd.8,
5043         wire-test/wire-test.8: include references to info pages, proper
5044         authors, am-utils Web page, and amd book.
5045
5046 2003-07-13  Ion Badulescu  <lionut@gonzales.badula.org>
5047
5048         * amd/mntfs.c (find_mntfs): re-add the check for mf_info, but with
5049         a special provision for inherited filesystems. This unbreaks the
5050         handling of parallel mounts
5051
5052         * amd/amfs_generic.c (amfs_lookup_mntfs): for restarted
5053         filesystems, there can be no alternative mntfs to try to mount
5054
5055 2003-07-13  Erez Zadok  <ezk@cs.sunysb.edu>
5056
5057         * amd/amd.8: reference am-utils info page in amd man page, as per
5058         Thomas Klausner <wiz@danbala.ifoer.tuwien.ac.at>.
5059
5060         * fsinfo/fsinfo.h, fsinfo/fsinfo.c (fsi_get_args): don't use
5061         yywrap() if it doesn't exist.
5062
5063         * amd/conf_parse.y, amd/conf_tok.l, fsinfo/fsi_gram.y,
5064         fsinfo/fsi_lex.l: fixes to support old flex 2.5.4, as well as the
5065         newer flex 2.5.31 (beta development).  These include resolving
5066         conflicts with yylineno, unput() vs. nounput(), etc.
5067
5068 2003-07-13  Ion Badulescu  <lionut@gonzales.badula.org>
5069
5070         * amd/amfs_generic.c (amfs_cont): check for (am_error > 0) before
5071         calling assign_error_mntfs()
5072         (amfs_generic_mount_child): ditto
5073
5074         * amd/autil.c (assign_error_mntfs): move the check for
5075         (am_error > 0) up into the caller, it's less confusing that way
5076
5077         * tasks: some updates
5078
5079         * conf/transp/transp_tli.c (check_pmap_up): new function which
5080         detects if the remote portmapper is functional
5081         (amu_clnt_create_best_version): removed
5082         (get_nfs_version): use a much simplified version of the old
5083         amu_clnt_create_best_version(), based on clnt_create_vers() and
5084         its _timed() counterpart
5085
5086         * conf/transp/transp_sockets.c (check_pmap_up): new function which
5087         detects if the remote portmapper is functional
5088         (pmap_ping): deleted
5089         (get_nfs_version): removed calls to pmap_ping, already done by
5090         caller
5091
5092         * amd/srvr_nfs.c: call check_pmap_up() before continuing with
5093         get_nfs_version()
5094
5095         * amd/amfs_generic.c: updated a couple of log messages
5096
5097         * configure.in: detect clnt_create_vers and clnt_create_vers_timed;
5098         changed LIBTOOL versioning to 3:0:0
5099
5100 2003-07-12  Ion Badulescu  <lionut@gonzales.badula.org>
5101
5102         * conf/autofs/autofs_linux.h (AUTOFS_HOST_FS_FLAGS): removed
5103         FS_AUTOFS because the host mount cannot be a top level mount
5104         (AUTOFS_DIRECT_FS_FLAGS): removed FS_AUTOFS because Linux autofs
5105         doesn't support direct mounts
5106
5107 2003-07-12  Erez Zadok  <ezk@whitestar.dyn.optonline.net>
5108
5109         * amd/conf_parse.y, amd/conf_tok.l: pretty comments on # cpp
5110         macros.
5111
5112 2003-07-10  Ion Badulescu  <ionut@buggy.badula.org>
5113
5114         * include/am_utils.h (dlog): improved version for gcc, using
5115         vararg macros
5116
5117         * amd/rpc_fwd.c (fwd_packet): unused variable when compiling
5118         without debugging
5119
5120 2003-07-10  Erez Zadok  <ezk@filer.fsl.cs.sunysb.edu>
5121
5122         * include/am_utils.h (dlog): change the #define of non-debugging
5123         dlog to "nothing" so that all that'll be left behind is a list of
5124         args in parenthesis (arg,arg,...).  GCC and other native C
5125         compilers seem OK with it, even if it doesn't optimize away the
5126         whole debugging line.
5127
5128         * ltmain.sh: was from libtool 1.4.2.  updated to libtool 1.4.3,
5129         the latest on RH9 systems (but is not the latest libtool
5130         available).  Stay with stable version in preparation for 6.1
5131         release.
5132
5133         * config.{guess,sub}, doc/texinfo.tex: update to latest off of
5134         ftp.gnu.org.
5135
5136 2003-07-09  Erez Zadok  <ezk@filer.fsl.cs.sunysb.edu>
5137
5138         * amd/amfs_inherit.c (amfs_inherit_inherit): don't use // C++
5139         style comments: breaks non-C++ compilers (like AIX xlC 6)
5140
5141 2003-07-02  Ion Badulescu  <ionut@buggy.badula.org>
5142
5143         * doc/am-utils.texi (opts Option): document ignore_portmapper option
5144
5145         * conf/transp/transp_sockets.c (get_nfs_version): better
5146         protocol/version cycling while probing remote server; better log
5147         messages
5148
5149         * amd/srvr_nfs.c (start_ping): improved log message
5150         (find_nfs_srvr): always use requested nfs_version/nfs_proto; make
5151         sure we have a valid NFS port; start the server as "valid, down" if
5152         the remote portmapper tells us the NFS service is not running;
5153         implement the "ignore_portmapper" pseudo-mount option
5154
5155         * amd/rpc_fwd.c (fwd_packet): better debug messages
5156
5157         * amd/ops_nfs.c (got_nfs_fh): log a messages if a root fh is
5158         denied; call wakeup even if mountd call fails
5159
5160         * amd/amq_subr.c (xdr_amq_mount_info_qelem): use FSRV_ISUP/ISDOWN
5161         instead of checking the flags directly
5162         * amd/srvr_amfs_auto.c (free_srvr): ditto
5163
5164         * amd/amfs_generic.c (amfs_bgmount): refined some error/debug
5165         messages
5166
5167         * amd/amd.h (FSRV_ERROR): new macro
5168         (FSRV_ISDOWN, FSRV_ISUP): a server that doesn't exist (i.e. it's a
5169         local filesystem) is always up
5170
5171 2003-06-30  Erez Zadok  <ezk@cs.sunysb.edu>
5172
5173         * amd/autil.c (am_mounted): set AMF_NOTIMEOUT if either unmount or
5174         umount options are present.
5175
5176         * doc/am-utils.texi (Program Filesystem): document alias options
5177         to unmount:=, umount:=.
5178
5179         * amd/opts.c (expansions): initialize opt_umount.
5180         (to_free): initialize opt_umount.
5181
5182         * amd/amfs_program.c (amfs_program_match): ensure that only one of
5183         umount:= or unmount:= options are specified, but that at least one
5184         of them is listed.
5185
5186         * amd/amd.h: support unmount:=XXX as well as umount:=XXX (too
5187         annoying in type:program, when one forgets the 'n' in "unmount").
5188         They are two separate fields, so we can catch mistakes when
5189         someone tries to define both options.
5190
5191         * doc/am-utils.texi (Program Filesystem): explain that both mount
5192         and unmount options must be specified.  Correct example to show
5193         both.
5194
5195 2003-06-25  Erez Zadok  <ezk@cs.sunysb.edu>
5196
5197         * XXX: beginning of new amd.conf option map_defaults: will parse
5198         the option and set remember it in the right places.  Need to
5199         document this and actually hook it up with the rest of the code.
5200         Any volunteers? :-)
5201
5202         * scripts/amd.conf-sample (map_defaults): example of map_defaults
5203         amd.conf option.
5204
5205         * amd/conf.c (reset_cf_map): initialize global and per-mount
5206         map_defaults.
5207         (gopt_map_defaults): parse global map_defaults.
5208         (process_regular_option,ropt_map_defaults): parse per-map
5209         map_defaults amd.conf option.
5210
5211         * amd/amd.h: a place to store global and per-mount map_defaults.
5212
5213         * BUGS: more notes about AIX 5.2 problems and how to overcome
5214         them.
5215
5216 2003-06-10  Erez Zadok  <ezk@cs.sunysb.edu>
5217
5218         * doc/Makefile.am: force version.texi to be rebuilt regardless of
5219         maintainer mode.  Silly Automake will not build version.texi if
5220         maintainer mode is off (this is hardcoded into the automake perl
5221         script!).  According to the Automake maintainers, users should
5222         always build in CVS trees with maintainer-mode on; but what if I
5223         don't want to?!  I don't want to distribute Makefiles with
5224         maintained rules in them to users.  The Automake maintainers also
5225         say that "make dist" will rebuild version.texi no matter what.  I
5226         find that not to be the case.  It failed to run a "make" before
5227         "make dist" because version.texi doesn't exist!  Chicken and Egg
5228         situation.  So, until Automake deals with version.texi in a more
5229         flexible and friendly manner, I adapted a rule to build
5230         version.texi and inserted it in this Makefile.am.
5231
5232 2003-06-09  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
5233
5234         * mk-amd-map/mk-amd-map.c (main): open temp db file using O_EXCL,
5235         next best thing to using mkstemp().  Patch from Hendrik Scholz
5236         <hscholz@raisdorf.net>.
5237
5238 2003-05-08  Ion Badulescu  <ion@guppy.limebrokerage.com>
5239
5240         * libamu/mount_fs.c (compute_automounter_mount_flags): use
5241         MNT2_GEN_OPT_AUTOMNTFS if available; minor cleanup
5242
5243         * m4/macros/header_templates.m4: added template for
5244         MNT2_GEN_OPT_AUTOMOUNTED
5245
5246 2003-05-01  Ion Badulescu  <ionut@nicu.badula.org>
5247
5248         * amd/ops_xfs.c (mount_xfs): compile fix (s/genflags/flags/)
5249
5250 2003-04-23  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
5251
5252         * conf/transp/transp_sockets.c (create_amq_service): minor cpp
5253         directive indentation and commenting.
5254
5255 2003-04-22  Ion Badulescu  <ionut@moisil.badula.org>
5256
5257         * conf/transp/transp_sockets.c (create_amq_service): Ugly *BSD fix
5258         for an RPC library DoS issue (original patch from Martin Blapp,
5259         massaged into something more digestable by me)
5260
5261 2003-04-14  Ion Badulescu  <ionut@moisil.badula.org>
5262
5263         * conf/autofs/autofs_solaris_v2_v3.c: removed autofs_free_data(),
5264         left over from the recent cleanup
5265
5266 2003-04-13  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
5267
5268         * doc/Makefile.am (DVIPS): use proper options for dvips.
5269
5270         * doc/am-utils.texi (opts Option): document new 'unmount' option,
5271         and better explain the 'nounmount' option.  Also some misc options
5272         for better generation of html manual.
5273
5274         * doc/Makefile.am (install-html): support newer texi2html 4.0
5275         options, as older options were renamed or changed behavior.
5276
5277         * amd/autil.c (am_mounted): support new 'unmount' option, to allow
5278         all file system mounts to timeout and thus expire.  This option is
5279         useful for removable local media such as CD-ROMs, USB drives,
5280         etc. so they can expire when not in use, and get unmounted (such
5281         drives can get work out when they keep spinning).  Patch from
5282         Christos Zoulas <christos@zoulas.com> (originally from Koji
5283         Imada).
5284
5285 2003-04-10  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
5286
5287         * configure.in: use AM_MAINTAINER_MODE, so maintainer-only rules
5288         do not get added to Makefiles by default (they are confusing to
5289         users who don't have autotools installed).
5290
5291 2003-04-09  Ion Badulescu  <ion@guppy.limebrokerage.com>
5292
5293         * amd/mntfs.c (find_mntfs): revert the "change of philosophy" (see
5294         the 2001-05-23 entry) back to the 6.0 code
5295
5296 2003-04-04  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
5297
5298         * libamu/xutil.c (switch_to_logfile): don't try to print logfile
5299         if it is null (strlen core dump on solaris).  Bug report from John
5300         P. Rouillard <rouilj@ieee.org>.
5301
5302 2003-03-31  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
5303
5304         * fsinfo/fsinfo.8: typo co-ordinate -> coordinate.  Typo report
5305         from Perry E. Metzger" <perry@piermont.com>.
5306
5307 2003-03-25  Erez Zadok  <ezk@filer.fsl.cs.sunysb.edu>
5308
5309         * include/am_defs.h: Don't include malloc.h if stdlib.h exists,
5310         because modern systems (e.g., BSD) complain if you use malloc.h
5311         instead of stdlib.h.  Let's hope there are no systems out
5312         there that need both.
5313
5314 2003-03-20  Erez Zadok  <ezk@suse73.fsl.cs.sunysb.edu>
5315
5316         * minor new port: sparc64-unknown-linux-suse7.3.
5317
5318 2003-03-20  Erez Zadok  <ezk@a-freebsd5.fsl.cs.sunysb.edu>
5319
5320         * minor new port: i386-unknown-freebsd5.0.
5321
5322         * configure.in: detect nfsclient/nfsargs.h.
5323
5324         * conf/nfs_prot/nfs_prot_freebsd3.h: include
5325         <nfsclient/nfsargs.h>, needed in FreeBSD 5.0.
5326
5327 2003-03-15  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
5328
5329         * amd/amd.8, amd/amd.8, fixmount/fixmount.8, hlfsd/hlfsd.8,
5330         scripts/amd.conf.5, scripts/expn.1: minor spell checking and
5331         extraneous space elimination.
5332
5333 2003-03-07  Ion Badulescu  <ionut@buggy.badula.org>
5334
5335         * conf/autofs/autofs_linux.c (autofs_get_fh): don't leak file
5336         descriptors if limit exceeded
5337         (autofs_mounted): call autofs_get_mp(); init am_autofs_ttl
5338         (autofs_release_fh): release pending_mounts and pending_umounts
5339         queues
5340         (autofs_timeout_mp): update am_autofs_ttl instead of am_ttl
5341
5342         * amd/mntfs.c (init_mntfs): delete initialization of removed
5343         mf_autofs_fh
5344         (uninit_mntfs): delete call to autofs_release_fh()
5345
5346         * amd/map.c (init_map): init autofs_fh to 0, delete initialization
5347         of removed autofs_data
5348         (free_map): release autofs_fh after unmounting map; delete call to
5349         autofs_free_data()
5350         (umount_exported): call autofs_release_mp() prior to unmounting
5351         autofs f/s
5352         (unmount_mp): ditto
5353         (free_map_if_success): call autofs_get_mp() if unmounting fails
5354         (timeout_mp): use the dedicated am_autofs_ttl timeout for f/s-wide
5355         timeouts instead of the per-mountpoint am_ttl
5356
5357         * amd/autil.c (am_unmounted): release autofs_fh after unmounting
5358         autofs f/s
5359
5360         * amd/amfs_generic.c (amfs_cont): release autofs_fh if mounting
5361         autofs f/s fails;
5362         (amfs_bgmount): ditto
5363
5364         * amd/amd.h: moved autofs_fh from mntfs to am_node, since it's
5365         more related to the mount point than to the f/s mounted;
5366         added am_autofs_ttl to am_node, for running expirations on entire
5367         filesystems
5368
5369         * conf/autofs/autofs_*: autofs_get_fh() returns int instead of
5370         autofs_fh_t *; autofs_release_fh() now takes an am_node * parameter
5371         instead of autofs_fh_t *, in an effort to not deal with
5372         autofs-specific data structures outside autofs code;
5373         new methods autofs_get_mp() and autofs_release_mp(), which
5374         acquire/release autofs resources to allow clean unmount attempts;
5375         nuke autofs_data_t, never used
5376
5377         * amd/amd.h: prototypes for new and changed autofs functions
5378
5379 2003-03-07  Ion Badulescu  <ion@guppy.limebrokerage.com>
5380
5381         * amd/nfs_subr.c (do_readlink): eliminate third argument, never used
5382         (nfsproc_getattr_2_svc): reorganize the code a bit
5383
5384         * amd/map.c (mk_fattr): take a nfsfattr * argument instead of an
5385         am_node * argument
5386
5387         * amd/amd.h: changed prototype for mk_fattr()
5388
5389         * amd/autil.c (am_unmounted): when remounting, use the parent
5390         node's lookup_child() and mount_child() operations, not the
5391         generic ones
5392
5393         * amd/amfs_generic.c (amfs_cont): minor code optimization
5394
5395 2003-03-06  Ion Badulescu  <ion@guppy.limebrokerage.com>
5396
5397         * amd/amfs_auto.c: lots of renames and code moving:
5398         amfs_auto_match() -> amfs_generic_match(), moved to generic;
5399         amfs_auto_mkcacheref() -> amfs_mkcacheref(), moved to autil.c;
5400         amfs_auto_mounted() -> amfs_generic_mounted(), moved to generic;
5401         amfs_auto_umount() -> amfs_generic_umount(), moved to generic;
5402         free_continuation(): moved to generic, made static;
5403         assign_error_mntfs(): moved to autil.c;
5404         amfs_auto_cont() -> amfs_cont(), moved to generic, made static;
5405         amfs_auto_retry() -> amfs_retry(), moved to generic, made static;
5406         try_mount() + mount_node() -> mount_node(), moved to map.c
5407         amfs_auto_bgmount() -> amfs_bgmount(), moved to generic;
5408         amfs_parse_defaults(): moved to generic;
5409         amfs_auto_lookup_node() -> amfs_lookup_node(), moved to generic;
5410         amfs_auto_lookup_one_mntfs() -> amfs_lookup_one_mntfs(), in generic;
5411         amfs_auto_lookup_mntfs() -> amfs_lookup_mntfs(), moved to generic;
5412         amfs_auto_mount_child() -> amfs_generic_mount_child(), in generic;
5413         amfs_auto_lookup_child() -> amfs_generic_lookup_child(), in generic;
5414         next_nonerror_node(): moved to autil.c;
5415         amfs_auto_readdir() -> amfs_generic_readdir(), moved to readdir;
5416         amfs_auto_readdir_browsable() -> amfs_readdir_browsable(), in readdir;
5417
5418         * amd/amfs_toplvl.c: mount_amfs_toplvl() renamed to amfs_mount()
5419         and moved to autil.c
5420
5421         * amd/readdir.c, amd/amfs_generic.c: new files with stuff ripped
5422         out of amd/amfs_auto.c
5423
5424         * amd/amd.h: struct continuation moved to generic.c; prototypes
5425         for the renamed functions; NumChild renamed to NumChildren
5426
5427         * amd/map.c: collaped unmount_node_wrap() and unmount_node() into
5428         the latter
5429
5430         * amd/mapc.c: key_already_in_chain(): moved to readdir.c;
5431         make_entry_chain(): moved to readdir.c;
5432
5433         * amd/srvr_amfs_auto.c: find_amfs_auto_srvr() renamed to
5434         amfs_generic_find_srvr()
5435
5436         * amd/amfs_*.c: adjustments for the renames above
5437
5438         * amd/ops_*.c: low-level filesystems don't need a find_server()
5439         method
5440
5441         * amd/Makefile.am: added amfs_generic.c and readdir.c
5442
5443         * doc/am-utils.texi: minor clarification for auto maps
5444
5445 2003-03-06  Ion Badulescu  <ion@guppy.limebrokerage.com>
5446
5447         * amd/amd.h: moved lots and lots of amd-only stuff here, from
5448         include/am_utils.h; changed task_fun, cb_fun and fwd_fun typedefs
5449         to be function typedefs, not pointer to function typedefs
5450
5451         * include/am_utils.h: see above
5452
5453         * amd/ops_nfs.c, amd/rpc_fwd.c, amd/sched.c: adjustments for
5454         function typedef changes
5455
5456 2003-03-05  Erez Zadok  <ezk@cs.sunysb.edu>
5457
5458         * BUGS: record IBM's patch number for the AIX 5.2 NFS over IPv6
5459         bug.
5460
5461 2003-02-02  Erez Zadok  <ezk@siamese.fsl.cs.sunysb.edu>
5462
5463         * NEWS: minor new port: ia64-unknown-linux-rh2.1AS
5464
5465 2003-01-31  Ion Badulescu  <ion@console.limebrokerage.com>
5466
5467         * m4/macros/os_cflags.m4: rhapsody and darwin are the same
5468
5469         * amd/autil.c (mount_node): vastly simplified, just a wrapper now
5470
5471         * amd/amfs_inherit.c (amfs_inherit_mount): remove the am_mounted()
5472         hack, we now do it properly in the generic code
5473
5474         * amd/amfs_auto.c (amfs_auto_bgmount): get the autofs_fh _before_
5475         forking the child; set and reset MFF_MOUNTING here, not in
5476         mount_node(), because the latter might be running in child
5477         context; call am_mounted() after a successful foreground mount
5478
5479 2003-01-29  Ion Badulescu  <ionut@moisil.badula.org>
5480
5481         * configure.in: new flag --with[out]-ndbm; don't pull in libldap
5482         if building --without-ldap; look for the gdbm/ndbm.h header; make
5483         explicit the dependency between the ndbm headers and libraries;
5484         define NEW_DBM_H as the ndbm header that should be used
5485
5486         * include/am_defs.h: simply include NEW_DBM_H for ndbm stuff,
5487         instead of trying to second-guess configure
5488
5489         * m4/macros/header_templates.m4: new template for NEW_DBM_H
5490
5491         * m4/macros/check_map_funcs.m4:
5492         (ac_upcase_map_name): use the third argument correctly
5493
5494         * ltmain.sh: working version from libtool-1.4.2-7
5495
5496         * buildall: print the entire configure command, including extra
5497         arguments; pass each of the extra arguments separately, not
5498         commingled into one
5499
5500 2003-01-28  Ion Badulescu  <ion@guppy.limebrokerage.com>
5501
5502         * include/am_utils.h (DEBUG_MNTTAB): define outside of #ifdef
5503         DEBUG; it is not used without DEBUG, but it is referenced at
5504         compile time. Bug report from John Kilburg <john@physics.unlv.edu>.
5505         (D_ALL): don't include D_XDRTRACE, too verbose and normally
5506         unnecessary
5507
5508 2003-01-28  Erez Zadok  <ezk@cs.sunysb.edu>
5509
5510         * ltmain.sh, config.guess, config.sub, doc/texinfo.tex: updates
5511         from latest official GNU versions.
5512
5513 2003-01-25  Erez Zadok  <ezk@cs.sunysb.edu>
5514
5515         * BUGS (Note): document AIX-5.1 NFS-client side bug (hangs in
5516         vmount).
5517
5518 2003-01-25  Ion Badulescu  <ionut@moisil.badula.org>
5519
5520         * Released beta version 6.1b2
5521
5522 2003-01-24  Ion Badulescu  <ionut@moisil.badula.org>
5523
5524         * amd/autil.c (am_unmounted): reset MFF_MKMNT from mf_flags when
5525         calling rmdirs() on mountpoint
5526
5527         * amd/amfs_auto.c (amfs_auto_bgmount): ditto
5528
5529         * amd/amfs_nfsl.c (amfs_nfsl_umounted): ditto
5530
5531         * doc/am-utils.texi (opts Option): "sftlookup" -> "softlookup"
5532
5533         * NEWS: "sftlookup" -> "softlookup"
5534
5535         * amd/ops_nfs.c (nfs_mount): "sftlookup" -> "softlookup", also
5536         check for "nosoftlookup" in combination with "soft"
5537
5538 2003-01-23  Ion Badulescu  <ion@guppy.limebrokerage.com>
5539
5540         * m4/macros/check_nfs_fh_dref.m4: darwin/rhapsody is another
5541         freebsd22 derivative
5542
5543         * NEWS: updated for Darwin changes
5544
5545         * .cvsignore: added A.i386-apple-darwin6.0
5546
5547         * m4/macros/os_cflags.m4: add -D_P1003_1B_VISIBLE to cflags for
5548         Darwin
5549
5550 2003-01-23  Erez Zadok  <ezk@cs.sunysb.edu>
5551
5552         * conf/mount/mount_aix.c (mount_aix3): clean back this file from
5553         all the debugging cruft that is no longer needed (and really was
5554         never needed in the first place).
5555
5556 2003-01-10  Erez Zadok  <ezk@cs.sunysb.edu>
5557
5558         * scripts/test-amd.{misc,conf}: simple amd.conf and amd.misc
5559         (map) files for testing basic amd functionality such as whether it
5560         can mount its own mount NFS points.
5561
5562 2002-12-28  Ion Badulescu  <ionut@moisil.badula.org>
5563
5564         * amd/srvr_nfs.c (start_nfs_pings): don't set FSF_PINGING if
5565         pings are disabled
5566
5567         * libamu/xdr_func.c (xdr_ftype): use a local enum_t variable
5568         instead of casting the pointer to (enum_t *)
5569         (xdr_mountstat3): ditto
5570         (xdr_nfsstat): ditto
5571
5572         * libamu/misc_rpc.c (make_rpc_packet): fix make_rpc_packet() on
5573         64-bit big-endian platforms, bug report from Bill Fenner
5574         <fenner@research.att.com>
5575
5576         * configure.in: increase library patchlevel
5577
5578         * libamu/xutil.c (amu_release_controlling_tty): close and reopen
5579         file descriptors 0,1,2 before calling setsid()
5580
5581 2002-12-27  Erez Zadok  <ezk@cs.sunysb.edu>
5582
5583         * updated copyright year to 2003 on all files
5584
5585 2002-12-10  Erez Zadok  <ezk@localhost.localdomain>
5586
5587         * rename "aux/" subdir into "m4/" so as to avoid problems with
5588         MS-DOS systems (where "AUX" is a reserved name).  This required
5589         fixing numerous files.
5590
5591 2002-12-10  Erez Zadok  <ezk@filer.fsl.cs.sunysb.edu>
5592
5593         * configure.in: don't check for bad hasmntopt() function if
5594         hasmntopt() doesn't exist on the system, because we will replace
5595         it with our own version anyway.
5596
5597         * conf/transp/transp_sockets.c (amu_get_myaddress): use "%lx" in
5598         dlog because htonl() returns a u_long.
5599
5600 2002-12-10  Erez Zadok  <ezk@localhost.localdomain>
5601
5602         * include/am_defs.h: use system's hasmntopt() only if it is found
5603         and it is not buggy.
5604
5605         * libamu/hasmntopt.c (nextmntopt): isspace() takes an int, not a
5606         char.
5607
5608         * amd/am_ops.c, amd/amfs_auto.c, amd/autil.c, amd/nfs_subr.c,
5609         amd/ops_cdfs.c, amd/ops_nfs.c, amd/srvr_nfs.c, libamu/hasmntopt.c,
5610         libamu/mount_fs.c, libamu/mtab.c: rename all uses of hasmntopt()
5611         to amu_hasmntopt().  Don't use hasmntopt() directly any more!
5612
5613         * aux/macros/func_bad_hasmntopt.m4: new M4 macro to test for a bad
5614         hasmntopt() function, which incorrectly finds the option "soft" in
5615         a string "hard,softlookup,ro".
5616
5617         * libamu/hasmntopt.c (hasmntopt): use 'const' on two args to
5618         hasmntopt(), to match what most systems use.
5619
5620         * aux/macros/header_templates.m4: template for HAVE_BAD_HASMNTOPT.
5621
5622         * configure.in: invoke test for bad hasmntopt()
5623
5624         * NEWS: minor new port, i386-pc-linux-rh8.0.
5625         Mention autofs-v4 on solaris9 works.
5626
5627         * bootstrap: remove any autom4te-*.cache directories, now that
5628         autoconf uses a version number for them.
5629
5630 2002-12-09  Ion Badulescu  <ionut@moisil.badula.org>
5631
5632         Patches from Christos Zoulas:
5633
5634         -1- am_utils.h: add full prototypes
5635         -2- amfs_auto.c make functions static and add prototypes
5636         -3- map.c: kill double free
5637         -5- transp_sockets.c: add full prototypes
5638
5639 2002-12-09  Ion Badulescu  <ionut@moisil.badula.org>
5640
5641         * NEWS: updated
5642
5643         * doc/am-utils.texi (opts Option): document sftlookup
5644
5645         * conf/autofs/autofs_solaris_v2_v3.c: compile fixes
5646
5647 2002-11-22  Erez Zadok  <ezk@filer.fsl.cs.sunysb.edu>
5648
5649         * amd/info_ldap.c (amu_ldap_rebind): gopt.ldap_cache_seconds is
5650         %ld not %d.
5651
5652 2002-11-21  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
5653
5654         * {amd,fsinfo}/Makefile.am: remove special rules for processing
5655         yacc/lex files, now that autoconf/automake properly handle them
5656         better (esp. now that bison 1.75 behaves differently than older
5657         bison versions).
5658
5659 2002-11-21  Erez Zadok  <ezk@cs.sunysb.edu>
5660
5661         * config.guess.long: updated script so it will properly find the
5662         version number of the new Itanium 2 machines running "Red Hat
5663         Linux Advanced Workstation release 2.1AW (Derry)".  The script now
5664         will report ia64-unknown-linux-rh2.1AW.
5665
5666 2002-11-20  Ion Badulescu  <ionut@moisil.badula.org>
5667
5668         * amfs_auto_bgmount(): almost complete rewrite
5669
5670         * fixed amfs_inherit to do the right thing and not dereference
5671         freed mntfs'es
5672
5673         * #if 0'ed bogus code in fh_to_mp3() -- it is now done properly in
5674         amfs_autofs_lookup_child()
5675
5676         * release the autofs_fh only in one place
5677
5678         * remove the mountpoint only if mf_refc == 1
5679
5680         * print the mntfs type in free_mntfs()
5681
5682         * new pseudo-mount option 'sftlookup' which causes lookups to
5683         mounted shares from downed servers to return EIO; the default
5684         depends on whether the mount is 'hard' or 'soft'
5685
5686         * improved querying of supported NFS versions on the server --
5687         don't even try if it's known to be down
5688
5689         * solaris autofs mount code moved to transp_{sockets,tli}.c
5690
5691         * incipient (non-functional) AIX autofs support
5692
5693 2002-11-11  Ion Badulescu  <ion@guppy.limebrokerage.com>
5694
5695         * doc/am-utils.texi (Keep-alives): removed outdated info about not
5696         maintaining the state of TCP NFS servers
5697
5698 2002-11-04  Ion Badulescu  <ion@guppy.limebrokerage.com>
5699
5700         * include/am_utils.h: prototype for ops_search()
5701
5702         * amd/am_ops.c (ops_search): new function for searching the right
5703         set of ops for a given filesystem type
5704
5705         * amd/restart.c (restart): cleanup and split into two functions in
5706         preparation for handling the restart of amd's own mount points
5707         (restart_fake_mntfs): new function, factored out from restart()
5708
5709 2002-11-04  Ion Badulescu  <ionut@buggy.badula.org>
5710
5711         * amd/ops_cdfs.c (mount_cdfs): remove special code for loop device
5712         (cdfs_umount): ditto
5713
5714         * conf/mount/mount_linux.c (mount_linux): factor it out to
5715         mount_linux_nfs() and mount_linux_nonfs()
5716         (mount_linux_nonfs): generalize loop device support to all
5717         filesystems (not just cdfs); make it automatic for anything that's
5718         a regular file
5719         (parse_opts): deprecate the explicit "loop" mount option
5720         (do_mount_linux): minor cleanup
5721
5722         * conf/umount/umount_default.c (umount_fs2): release loop device
5723         on umount()
5724
5725 2002-11-03  Erez Zadok  <ezk@cnm20>
5726
5727         * include/am_defs.h: moved #include of net/if.h above net/route.h,
5728         because on AIX 5.2 if.h is needed for route.h (let's hope it
5729         doesn't break things on other systems).
5730
5731         * include/am_defs.h: AIX 5.2 needs struct sigevent from signal.h
5732         to be defined, but I don't want to move the inclusion of signal.h
5733         this early into this file.  Luckily, amd doesn't need the size of
5734         this structure in any other structure that it uses.  So we
5735         sidestep it for now.
5736
5737         * conf/nfs_prot/nfs_prot_aix5_2.h: AIX 5.2 wants 'struct pathcnf',
5738         but I couldn't find its definition anywhere.  Luckily, amd doesn't
5739         need the size of this structure in any other structure that it
5740         uses.  So we sidestep it for now.
5741
5742 2002-11-02  Erez Zadok  <ezk@cs.sunysb.edu>
5743
5744         * config.guess, config.sub, doc/texinfo.tex: updates from
5745         the latest GNU distributions (2002-09-05).
5746
5747 2002-10-30  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
5748
5749         * conf/nfs_prot/nfs_prot_aix5_2.h: add more definitions from
5750         mount.h for NFSOPT_* and NFSMNT_*.
5751         Don't use typedefs that aren't found in system header files.
5752
5753 2002-10-30  Erez Zadok  <ezk@cs.sunysb.edu>
5754
5755         * Makefile.am (EXTRA_DIST_CONF): distribute nfs_prot_aix5_2.h.
5756
5757         * conf/nfs_prot/nfs_prot_aix5_2.h: new file.
5758
5759         * aux/macros/struct_nfs_args.m4 (ac_cv_have_struct_nfs_args): look
5760         for "struct aux52_nfs_args".
5761
5762         * aux/macros/check_nfs_prot_headers.m4: define new header file for
5763         AIX 5.2.
5764
5765 2002-10-21  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
5766
5767         * scripts/amd.conf.5 (ldap_proto_version): document in amd.conf
5768         man page.
5769
5770         * scripts/amd.conf-sample (ldap_proto_version): show example of use
5771
5772         * doc/am-utils.texi (ldap_proto_version Parameter): document new
5773         amd.conf option.
5774
5775         * amd/conf.c (gopt_ldap_proto_version): new conf function to
5776         support ldap_proto_version amd.conf parameter.
5777
5778         * amd/amd.h: field to hold LDAP protocol version.
5779
5780         * amd/amd.c (init_global_options): set default for
5781         ldap_proto_version.  ldap_proto_version patch from George Ross
5782         <gdmr@dcs.ed.ac.uk> and Tim Colles <timc@inf.ed.ac.uk>.
5783
5784         * amd/info_ldap.c (amu_ldap_unbind): ignore SIGPIPE errors while
5785         unbinding from an LDAP server that may have been restarted.  Fix
5786         from George Ross <gdmr@dcs.ed.ac.uk>.
5787
5788 2002-09-17  Ion Badulescu  <ion@guppy.limebrokerage.com>
5789
5790         * remove all autoconf stuff added for sys_nerr
5791
5792         * amq/amq.c, libamu/xutil.c, hlfsd/hlfsd.c: always use strerror
5793
5794         * libamu/strerror.c: more explicit text for unknown errno's
5795
5796 2002-10-01  Erez Zadok  <ezk@cs.sunysb.edu>
5797
5798         * include/am_defs.h: define "extern int sys_err" if needed.
5799
5800         * aux/macros/header_templates.m4: template for
5801         HAVE_EXTERN_SYS_NERR.
5802
5803         * hlfsd/hlfsd.h, libamu/xutil.c (expand_error), amq/amq.c
5804         (show_mi): remove "extern int sys_err"
5805
5806         * configure.in: execute test for "extern int sys_err"
5807
5808         * Makefile.am (EXTRA_DIST_AUX): distribute new extern_sys_err.m4 file.
5809
5810         * aux/macros/extern_sys_nerr.m4: new test to check for existence
5811         of "extern int sys_nerr" definition in system headers.
5812
5813 2002-09-17  Ion Badulescu  <ion@guppy.limebrokerage.com>
5814
5815         * libamu/xutil.c (dbg_opt): bring comments in line with the code
5816
5817         * hlfsd/hlfsd.c (main): use amuDebug() instead of touching
5818         debug_flags directly
5819
5820         * amd/amd.c (main): don't init debug_flags, leave it as zero (no
5821         debugging by default)
5822
5823 2002-09-11  Ion Badulescu  <ion@guppy.limebrokerage.com>
5824
5825         Debug code sanitization:
5826
5827         - amuDebug() becomes an expression, and explicit if() statements
5828         are added around it throughout the code
5829         - amuDebugNo() goes away (ugh!)
5830         - D_AMQ, D_DAEMON and D_FORK reverse their meaning
5831         - D_ALL contains only options that don't affect amd's functionality
5832
5833 2002-09-04  Ion Badulescu  <ion@guppy.limebrokerage.com>
5834
5835         * amd/amfs_auto.c (free_continuation): avoid double-free'ing the
5836         mntfs if there was an error/timeout
5837
5838 2002-09-04  Ion Badulescu  <ion@guppy.limebrokerage.com>
5839
5840         * amd/amfs_auto.c (amfs_auto_lookup_mntfs): use ereturn() instead
5841         of "return NULL" to signal an error to the upper layers
5842         (amfs_auto_mount): use strdup so the string can be free'd later on
5843         [Debian bug report from Matt Chapman <matthewc@cse.unsw.edu.au>]
5844
5845 2002-09-03  Ion Badulescu  <ion@guppy.limebrokerage.com>
5846
5847         Patches from George Ross <gdmr@dcs.ed.ac.uk>:
5848
5849         * amd/amfs_auto.c (assign_error_mntfs): do not discard old mntfs,
5850         it will be done in free_continuation(); assorted debugging messages
5851
5852         * amd/srvr_nfs.c (nfs_timed_out): allocate a new XID on server
5853         timeout to avoid problems with late ping replies
5854
5855         * amd/mntfs.c (free_mntfs): sanity check for mf_refc; assorted
5856         debugging messages
5857
5858         * amd/map.c (unmount_node): more verbose debug message
5859
5860 2002-07-29  Ion Badulescu  <ion@guppy.limebrokerage.com>
5861
5862         * amd/amfs_auto.c (amfs_auto_lookup_mntfs): prevent deferencing
5863         de-allocated memory in str3cat
5864         (amfs_auto_lookup_mntfs): check for buffer overflow
5865
5866 2002-07-11  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
5867
5868         * scripts/expn.{1,in}: fixed typos as reported by Thomas Klausner
5869         <wiz@danbala.ifoer.tuwien.ac.at>.
5870
5871 2002-06-26  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
5872
5873         * doc/Makefile.am (install-html): don't use locally hacked
5874         texi2html features.
5875
5876         * conf/transp/transp_sockets.c (amu_get_myaddress): Most modern
5877         systems should use 127.0.0.1 as the localhost address over which
5878         you can do NFS mounts.  In the past we found that some NFS clients
5879         may not allow mounts from localhost.  So we used get_myaddress()
5880         and that seemed to work.  Alas, on some other systems,
5881         get_myaddress() may return one of the interface addresses at
5882         random, and thus use a less efficient IP address than 127.0.0.1.
5883         The solution is to hard-code 127.0.0.1, but still check if
5884         get_myaddress() returns a different value and warn about it.
5885
5886         * doc/am-utils.texi: don't use ':' in @cindex entries.
5887
5888 2002-06-25  Ion Badulescu  <ion@guppy.limebrokerage.com>
5889
5890         * Released beta version 6.1b1
5891
5892 2002-06-24  Ion Badulescu  <ionut@moisil.badula.org>
5893
5894         * aux/macros/struct_nfs_args.m4: added test for aix51_nfs_args
5895
5896         * conf/nfs_prot/nfs_prot_aix5_1.h: rename aix42_nfs_args to
5897         aix51_nfs_args, rename unknown fields to u<number>, add the
5898         unknown new field into the middle of the old 4.2 structure
5899
5900 2002-06-24  Ion Badulescu  <ion@guppy.limebrokerage.com>
5901
5902         * include/am_compat.h: better test for struct netconfig
5903         (!HAVE_NETCONFIG_H && !HAVE_SYS_NETCONFIG_H)
5904
5905         * aux/macros/check_nfs_prot_headers.m4: added new header for aix5.1+
5906
5907         * buildall: fix 'buildall -b' on hpux9 and aix5.1
5908
5909 2002-06-24  Ion Badulescu  <ionut@buggy.badula.org>
5910
5911         * INSTALL: updated
5912
5913         * conf/autofs/autofs_solaris_v1.c (autofs_link_mount): compile fix
5914         (autofs_link_umount): ditto
5915
5916         * amd/mntfs.c (init_mntfs): don't use autofs if !amd_use_autofs
5917
5918 2002-06-23  Ion Badulescu  <ionut@moisil.badula.org>
5919
5920         * conf/autofs/autofs_linux.c: compile fixes for autofs v3
5921
5922 2002-06-23  Ion Badulescu  <ionut@moisil.badula.org>
5923
5924         * conf/autofs/autofs_solaris_v2_v3.c (autofs_mounted): no
5925         expirations needed;
5926         (autofs_timeout_mp): likewise
5927
5928         * conf/autofs/autofs_solaris_v1.c (autofs_mounted): no expirations
5929         needed;
5930         (autofs_timeout_mp): likewise
5931
5932         * conf/autofs/autofs_linux.c (autofs_mounted): set the first
5933         expiration interval
5934
5935         * amd/autil.c (am_mounted): call autofs_mounted here, instead of
5936         in mf_mounted()
5937
5938         * amd/amd.h (NEVER): moved here from map.c
5939         (autofs_mounted): change argument from mntfs* to am_node*
5940
5941 2002-06-23  Ion Badulescu  <lionut@gonzales.badula.org>
5942
5943         * conf/autofs/autofs_linux.c (autofs_mounted): set the kernel
5944         timeout on the autofs mountpoint to cache_duration (gopt.am_timeo)
5945         (autofs_timeout_mp): don't update the ttl if we're going down
5946
5947         * amd/map.c (timeout_mp): don't call autofs_timeout_mp unless the
5948         timeout on that particular am_node has expired
5949
5950         * conf/autofs/autofs_linux.c (autofs_timeout_mp): really update
5951         the ttl, as per the comment (compilers are not very good at
5952         translating comments into code...)
5953
5954         * amd/amfs_auto.c (amfs_auto_lookup_one_mntfs): strdup am_path
5955         instead of opt_rfs into opt_fs for autofs, thus avoiding conflicts
5956         between link mounts pointing to the same target
5957
5958 2002-06-23  Ion Badulescu  <lionut@gonzales.badula.org>
5959
5960         * conf/autofs/autofs_linux.c (send_fail, send_ready): new helper
5961         functions for sending messages back to the kernel
5962         (autofs_expire_one): initial implementation of the kernel-based
5963         expiration handler
5964         (autofs_handle_expire): call autofs_expire_one()
5965         (autofs_handle_expire_multi): ditto
5966         (autofs_umount_succeeded): search pending_umounts, send message
5967         back to the kernel
5968         (autofs_umount_failed): ditto
5969         (autofs_mount_succeeded): tell amd core not to expire autofs entries
5970         (autofs_timeout_mp): expiration function for autofs filesystems
5971         (autofs_timeout_mp_task): helper function for autofs_timeout_mp
5972
5973         * conf/autofs/autofs_linux.h: new struct autofs_pending_umount for
5974         keeping tracking of pending umounts
5975         (autofs_fh_t) rename pending to pending_mounts, add pending_umounts
5976
5977         * conf/autofs/autofs_solaris_v1.c (autofs_timeout_mp): stub
5978
5979         * conf/autofs/autofs_solaris_v2_v3.c (autofs_timeout_mp): stub
5980
5981         * amd/map.c (timeout_mp): call autofs_timeout_mp() for autofs
5982         filesystems
5983
5984         * amd/autil.c (mf_mounted): move here the call autofs_mounted()
5985         from amfs_auto_mounted().
5986
5987 2002-06-22  Erez Zadok  <ezk@whitestar.dyn.optonline.net>
5988
5989         * amd/nfs_start.c (mount_automounter): Security fix.  if user sets
5990         -D noamq, don't even create listening socket.  Suggestion by Ed
5991         Ravin <eravin@panix.com>.
5992
5993 2002-06-22  Ion Badulescu  <lionut@gonzales.badula.org>
5994
5995         * hlfsd/homedir.c (homedir): use setgid() instead of setegid()
5996
5997         * ALL: #ifdef cleanups, unify some TLI/socket function prototypes
5998
5999 2002-06-22  Erez Zadok  <ezk@whitestar.dyn.optonline.net>
6000
6001         * conf/nfs_prot/nfs_prot_netbsd1_4.h: minor port to support
6002         na_gid and na_uid.  NetBSD patch from Jun-ichiro itojun Hagino
6003         <itojun@iijlab.net>.
6004
6005         * doc/am-utils.texi (Option): document xlatecookie mount option.
6006
6007         * libamu/mount_fs.c (compute_nfs_args): support "xlatecookie"
6008         NFS mount option.  Patch from Matthias Scheler <tron@zhadum.de>
6009         for NetBSD.
6010
6011 2002-06-22  Ion Badulescu  <ionut@edgar.badula.org>
6012
6013         * conf/autofs/autofs_solaris_v1.h: add FS_MBACKGROUND to
6014         AUTOFS_LINK_FS_FLAGS
6015
6016         * conf/autofs/autofs_solaris_v1.c: convert link mounts to lofs
6017         mounts in autofs_link_mount/umount
6018
6019 2002-06-22  Ion Badulescu  <lionut@gonzales.badula.org>
6020
6021         * configure.in: check for devid inside struct umntrequest
6022
6023         * conf/autofs/autofs_solaris_v2_v3.c (xdr_umntrequest): handle the
6024         new umntrequest structure in v4.
6025         (autofs_unmount_2_req): ditto
6026
6027         * README.autofs: updated for Solaris 2.5/2.5.1
6028
6029 2002-06-22  Erez Zadok  <ezk@whitestar.dyn.optonline.net>
6030
6031         * configure.in: only define LDAP/Hesiod if both the headers and
6032         the libraries exist, and the user didn't explicitly disable those
6033         maps.
6034
6035 2002-06-22 Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
6036
6037         * doc/am-utils.texi: fix typos.  Can't use ":" in @cindex entries.
6038
6039 2002-06-22  Erez Zadok  <ezk@whitestar.dyn.optonline.net>
6040
6041         * doc/am-utils.texi, scripts/amd.conf.5, scripts/amd.conf-sample,
6042         amd/amd.8, amd/get_args.c (get_args): document amd -A option.
6043
6044         * amd/get_args.c (get_args): support "amd -A arg" option to
6045         override the system's detected architecture.  Patch from George
6046         Ross <gdmr@dcs.ed.ac.uk>.
6047
6048         * amd/info_ldap.c (amu_ldap_rebind): don't use ldap_enable_cache()
6049         if the system doesn't have it.
6050
6051         * configure.in: detect existence of ldap_enable_cache function,
6052         because it doesn't exist on Solaris 9's latest ldap libraries.
6053
6054         * amd/info_ldap.c: LDAP patches from George Ross
6055         <gdmr@dcs.ed.ac.uk>.  Rework of old code, support for wildcards in
6056         LDAP queries, and an FD leak fix.
6057
6058 2002-06-22  Ion Badulescu  <lionut@gonzales.badula.org>
6059
6060         * buildall: use ksh for configure on aix5.1; pass the extra
6061         arguments after "--" to configure, not to make
6062
6063         * Makefile.am: added nfs_prot_aix4_3.h to EXTRA_DIST_CONF
6064
6065         * conf/mount/mount_aix.c (mount_aix3): if the NFSv3 mount fails
6066         with EINVAL and we have MOUNT_TYPE_NFS3_BIS defined, retry the
6067         mount with the alternative nfs3_args structure
6068
6069         * conf/nfs_prot/nfs_prot_aix4_3.h: added alternative nfs3_args
6070         structure, similar to that in aix5.1, for a hack that tries to
6071         compensate for IBM's brain fart
6072
6073         * conf/nfs_prot/nfs_prot_aix5_1.h: new nfs_prot header for aix5.1+
6074
6075         * aux/macros/check_nfs_prot_headers.m4: added new header for aix5.1+
6076
6077         * BUGS: update for direct mounts on Linux; document the brokenness
6078         of /bin/sh on AIX 5.1 and HP-UX 9
6079
6080         * NEWS: aix5.1 port, aix4.3 workaround
6081
6082 2002-06-22 Erez Zadok <ezk@agora.fsl.cs.sunysb.edu>
6083
6084         * ltmain.sh: use libtool 1.4d, needed support for newer AIX.
6085
6086 2002-06-21  Ion Badulescu  <ion@guppy.limebrokerage.com>
6087
6088         * aux/macros/check_autofs_style.m4: enable autofs_v2_v3 for
6089         all solaris2.6+, not just for 2.[6-8]
6090
6091         * conf/autofs/autofs_default.h: disable autofs if configure
6092         detects it
6093
6094 2002-06-21  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
6095
6096         * aux/macros/with_addon.m4: correct M4 quoting.
6097
6098         * aux/macros/cache_check_dynamic.m4: correct M4 quoting.
6099
6100         * bootstrap: show version of autotools being used.  Helps
6101         maintainer debugging.
6102
6103         * configure.in: new proper syntax for libtool and
6104         ansi2knr-filtering rules, required by autoconf 1.53 and higher.
6105
6106 2002-06-21  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
6107
6108         * aux/GNUmakefile: new search paths for "update" target.
6109
6110         * config.guess, config.sub, doc/texinfo.tex, ltmain: updates from
6111         the latest GNU distributions.
6112
6113 2002-06-11  Ion Badulescu  <ion@guppy.limebrokerage.com>
6114
6115         * amd/amfs_auto.c (amfs_auto_lookup_child): split part of this
6116         function into the new amfs_auto_lookup_one_child function; return
6117         null if all ivecs failed to match
6118
6119 2002-05-30  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
6120
6121         * config.guess.long: support SuSE version names in long
6122         config.guess format.
6123
6124 2002-05-01  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
6125
6126         * scripts/lostaltmail.in (vrfy_user): unlink temp files if too
6127         small.
6128
6129 2002-04-07  Ion Badulescu  <ionut@moisil.badula.org>
6130
6131         * hlfsd/hlfsd.c (main): compile fix for --enable-debug=no
6132
6133 2002-03-29  Ion Badulescu  <ionut@moisil.badula.org>
6134
6135         * README.autofs: solaris 2.5/2.5.1 info, other minor changes
6136
6137         * doc/am-utils.texi (History): document solaris 2.5+ support
6138
6139         * include/am_utils.h: new member in struct mntfs: mfs_real_mount;
6140         autofs_fs_flags becomes conditional of HAVE_AUTOFS_FS; new
6141         prototype for umount_fs2(); extra argument for UMOUNT_FS()
6142
6143         * hlfsd/hlfsd.c: use the new mount_fs2() and UMOUNT_FS()
6144
6145         * libamu/mount_fs.c (mount_fs): wrapper around the new mount_fs2()
6146         function; swap mntdir and real_mntdir as necessary for solaris 2.5
6147         autofs support
6148
6149         * conf/umount/umount_default.c (umount_fs2): swap mntdir and
6150         real_mntdir as necessary for solaris 2.5 autofs support
6151
6152         * conf/umount/umount_*.c (umount_fs): wrapper around the new
6153         umount_fs2() function
6154         (umount_fs2): new function which takes the real mountpoint as an
6155         extra argument
6156
6157         * conf/nfs_prot/nfs_prot_sunos5_5.h: allow autofs support to be
6158         compiled in
6159
6160         * conf/autofs/autofs_solaris_v1.h (autofs_strdup_space_hack): new
6161         function that appends a space at the end of a string (the famous
6162         "Autofs Space Protocol")
6163
6164         * conf/autofs/autofs_solaris_v1.c: almost complete reimplementation
6165
6166         * conf/autofs/autofs_*.h (AUTOFS_*_FS_FLAGS): add
6167         system-specific definitions for these macros
6168
6169         * conf/autofs/autofs_linux.c (create_autofs_service): remove hacks
6170         which are now handled properly by more generic code
6171         (autofs_link_umount): complain if umount_fs() fails, rmdir the
6172         mountpoint on success
6173         (autofs_umount_succeeded): remove the rmdirs() code, now handled
6174         by generic code
6175         (autofs_mount_succeeded): ditto
6176
6177         * amd/nfs_start.c (checkup): implement it as an emtpy stub if
6178         DEBUG is not defined
6179         (run_rpc): call autofs_add_fdset() after umount_exported() to
6180         avoid passing invalid file descriptors to select(); use plog()
6181         instead of perror()
6182
6183         * amd/mntfs.c (init_mntfs): initialize mf_real_mount from mp
6184         (uninit_mntfs): free mf_real_mount
6185
6186         * amd/autil.c (am_unmounted): don't remove the mount point if a
6187         remount is pending, also don't make the removal conditional on not
6188         being an autofs mount point
6189
6190         * amd/amfs_nfsx.c (amfs_nfsx_remount): call mkdirs() on
6191         mf->mf_real_mount instead of mf->mf_mount
6192
6193         * amd/amfs_nfsl.c, amd/amfs_nfsx.c: (amfs_nfsl_umounted): call
6194         rmdirs() on mf->mf_real_mount instead of mf->mf_mount
6195
6196         * amd/amfs_host.c (make_mntpt): change the third argument to be
6197         the mountpoint, not the entire mntfs structure
6198         (do_mount): takes real_mntdir as an extra argument
6199
6200         * amd/amfs_auto.c (amfs_auto_bgmount): move the creation of the
6201         mountpoint here from try_mount(), otherwise the change to mf_flags
6202         is lost for background mounts; remove the mountpoint if we created
6203         it and the mount fails
6204         (amfs_auto_lookup_mntfs): re-initialize mf->mf_real_mount using
6205         autofs_strdup_space_hack() if NEED_AUTOFS_SPACE_HACK is defined
6206
6207         * amfs_*.c, ops_*.c: initialize autofs_fs_flags using the
6208         AUTOFS_*_FS_FLAGS macro defined in the system-specific autofs
6209         header; UMOUNT_FS() takes mf->mf_real_mount as an extra argument;
6210         mount_fs() becomes mount_fs2() and takes mf->mf_real_mount as an
6211         extra argument
6212
6213         * amd/amd.h, amd/ops_nfs.c, amd/amfs_host.c: mount_nfs_fh takes
6214         the real mountpoint as an additional argument
6215
6216 2002-03-28  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
6217
6218         * amd/ops_cdfs.c (mount_cdfs): correctly interpret error return
6219         values back from mount_fs().  Return correct error number from
6220         this function.
6221
6222         * conf/mount/mount_linux.c (do_mount_linux): cleanup loop mount
6223         cruft from this function, moved elsewhere.
6224         (mount_linux): prepare for loop-device mounts of ISO images.
6225
6226 2002-03-28  Ion Badulescu  <ionut@buggy.badula.org>
6227
6228         * libamu/Makefile.am (EXTRA_DIST): added strerror.c
6229
6230         * libamu/strerror.c: strerror() implementation for systems lacking it
6231
6232         * doc/am-utils.texi (History): rewrote the history :) about autofs
6233         support
6234
6235         * conf/autofs/autofs_solaris_v2_v3.c: updated copyright;
6236         (autofs_unmount_2_req): minor cleanup
6237         (create_autofs_service): print log message
6238         (destroy_autofs_service): ditto
6239
6240         * conf/autofs/autofs_linux.c: updated copyright
6241
6242         * amd/nfs_start.c (mount_automounter): move the debug message into
6243         create_autofs_service()
6244
6245         * amd/amd.c (main): call destroy_autofs_service() before
6246         going_down(), not after
6247
6248         * configure.in: added strerror to AC_CHECK_FUNCS(); disable ldap
6249         if the ldap headers are not found
6250
6251 2002-03-28  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
6252
6253         * amd/info_ldap.c: patch from "Sebastien Bahloul"
6254         <sebastien.bahloul@medasys.org> to fix a simple initialization bug
6255         and change "HE" to HE_ENT so as to compile on HPUX.
6256
6257 2002-02-26  Erez Zadok  <ezk@t3.fsl.cs.sunysb.edu>
6258
6259         * conf/nfs_prot/nfs_prot_freebsd3.h (na_uid): freebsd4.5 uses nfs
6260         atttributes field named "uid".  So #define na_uid to it.
6261
6262 2002-02-12  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
6263
6264         * scripts/lostaltmail.in: don't verify user if -noverify option
6265         was turned on.  fix comment typo.
6266
6267 2002-02-11  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
6268
6269         * amd/Makefile.am (TESTS): enable one test script, test1.sh.
6270
6271         * amd/test1.sh: re-commit simple test script.
6272
6273 2002-02-11  Ion Badulescu  <ion@guppy.limebrokerage.com>
6274
6275         * Released snapshot 6.1a5
6276
6277         * NEWS: Solaris autofs readdir() support, Linux autofs sublink fix
6278
6279         * README: require newer auto-tools, update mailing list address
6280
6281         * README.autofs: major update
6282
6283         * configure.in: version changed to 6.1a5
6284
6285 2002-02-11  Ion Badulescu  <ionut@moisil.badula.org>
6286
6287         * conf/autofs/autofs_linux.c (autofs_link_mount): don't do a
6288         stat() on the am_link if called from the parent amd, to prevent
6289         deadlocks
6290
6291         * amd/autil.c (am_unmounted): call amfs_link_ops.umount_fs if the
6292         fstype is not link but we have a sublink (Linux autofs needs this)
6293         (am_mounted): call amfs_link_ops.mount_fs if the fstype is not
6294         link but we have a sublink (Linux autofs needs this)
6295
6296         * amd/amfs_auto.c (amfs_auto_bgmount): print the real mountpoint,
6297         not the amd entry point
6298
6299 2002-02-09  Ion Badulescu  <ionut@moisil.badula.org>
6300
6301         * conf/autofs/autofs_solaris_v2_v3.c (amd_rddirres): new custom
6302         structure for returning the results from readdir_2()
6303         (xdr_amd_putrddirres): renamed from xdr_autofs_putrddirres,
6304         changed to process our internal format (which is essentially the
6305         NFS readdir format)
6306         (xdr_autofs_getrddirres): not needed, deleted
6307         (xdr_amd_rddirres): renamed from xdr_autofs_rddirres, other
6308         changes to handle amd_rddirres instead of autofs_rddirres
6309         (autofs_lookup_2_req): return AUTOFS_NONE instead of
6310         AUTOFS_MOUNT_RQ, to prevent mount storms during ls -F
6311         (autofs_readdir_2_req): implemented
6312         (autofs_readdir_2_free): not needed, deleted
6313         (autofs_program_2): changes from autofs_rddirres to amd_rddirres
6314         (autofs_get_fh): changed initialization of the fh->map member, it
6315         now gets the mountpoint path because it makes it easier to
6316         implement readdir
6317         (autofs_release_fh): put #ifdef HAVE_AUTOFS_ARGS_T_ADDR around
6318         code touching fh->addr
6319         (destroy_autofs_service): new function, deregister the autofs
6320         service with the portmapper on exit
6321
6322         * conf/autofs/autofs_linux.c (autofs_handle_missing): update
6323         statistics
6324         (destroy_autofs_service): new stub
6325
6326         * amd/mapc.c (mapc_find): fixed indentation
6327
6328         * amd/map.c (find_ap_recursive): renamed from find_ap2(), made
6329         static
6330
6331         * amd/amd.h: removed prototype for find_ap2(), added prototype for
6332         destroy_autofs_service()
6333
6334         * amd/amd.c (main): call destroy_autofs_service() before going
6335         down
6336
6337 2002-02-07  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
6338
6339         * aux/macros/check_field.m4: need also a new version of
6340         AC_CHECK_MEMBERS (plural).
6341
6342 2002-02-06  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
6343
6344         * aux/macros/check_field.m4: include a fixed version of
6345         AC_CHECK_MEMBER.  g/cc will fail to check a member if the .member
6346         is itself a data structure, because you cannot compare, in C, a
6347         data structure against NULL; you can compare a native data type
6348         (int, char) or a pointer.  Solution: do what I did in my original
6349         member checking macro: try to take the address of the member.  You
6350         can always take the address of anything.
6351
6352 2002-01-31  Erez Zadok  <ezk@localhost.localdomain>
6353
6354         * remove old '%W%' SCCS IDs from all sources.
6355
6356 2002-01-21  Ion Badulescu  <ionut@moisil.badula.org>
6357
6358         * conf/mount/mount_linux.c (mount_linux): fix breakage introduced
6359         by the loop device mount support. Linux mount takes a real string
6360         as the last argument, unless the mount type is NFS, NCP, or SMB.
6361
6362 2002-01-20  Erez Zadok  <ezk@localhost.localdomain>
6363
6364         * hlfsd/hlfsd.h (HLFSD_VERSION): up version of hlfsd to 1.2,
6365         because we made some important changes.
6366
6367 2002-01-20  Ion Badulescu  <lionut@gonzales.badula.org>
6368
6369         * include/am_utils.h (D_ALL): do not include D_MTAB and D_HRTIME
6370         by default
6371
6372         * NEWS: document latest changes
6373
6374         * amd/map.c (unmount_mp): same fix as for hlfsd, update the
6375         seconds field in mtime because Linux ignores the useconds field
6376
6377         * hlfsd/homedir.c: made some global vars static
6378         (plt_init): remove all trailing '/' chars from root's home;
6379         use root's home, not the username (silly bugfix)
6380
6381 2002-01-20  Ion Badulescu  <lionut@gonzales.badula.org>
6382
6383         * hlfsd/homedir.c (homedir): don't special case uid 0 as having /
6384         as home; instead use the root account's home
6385         (plt_init): properly initialize root_home from the root account's
6386         home directory, or as "" if root doesn't exist
6387         (plt_reset): free root_home
6388
6389 2002-01-20  Erez Zadok  <ezk@localhost.localdomain>
6390
6391         * hlfsd/stubs.c (nfsproc_{lookup,getattr}_2_svc): non-SYMTTL code.
6392         Increment seconds, not microseconds (which are ignored by NFS).
6393         Set symlink owner to euid.
6394
6395         * hlfsd/homedir.c (homedir): pass gid to this function, so we can
6396         also change the effective GID of the process writing to the user's
6397         home dir, as well as the group of the hlfsd symlink.
6398         (homedir): run setegid in the right places.
6399
6400 2002-01-15  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
6401
6402         * scripts/redhat-ctl-amd.in: refer to @sbindir@ not
6403         ${prefix}/sbin.
6404
6405         * scripts/ctl-{amd,hlfsd}.in: refer to @sysconfdir@ not
6406         ${prefix}/etc.  Bug report from "A Braunsdorf"
6407         <ab@eas.purdue.edu>.
6408
6409 2002-01-13  Erez Zadok  <ezk@localhost.localdomain>
6410
6411         * configure.in: only check for clock_gettime if --enable-debug was
6412         used.
6413
6414         * aux/macros/opt_debug.m4: define a cache variable to record value
6415         of debug option used.
6416
6417         * libamu/xutil.c (show_time_host_and_name): do not use
6418         clock_gettime unless debugging was compiled in.  This way, if
6419         debugging is not compiled, we don't bother linking with librt,
6420         libpthread, and a whole lot of other libraries that aren't that
6421         necessary (esp. on Linux).
6422
6423 2002-01-12  Erez Zadok  <ezk@wavy.dyn.optonline.net>
6424
6425         * doc/am-utils.texi (opts Option): document loop option.
6426
6427         * include/am_utils.h: each mounted file system (mntfs) should
6428         optionally store the loop device used in the field mf_loopdev.
6429
6430         * conf/nfs_prot/nfs_prot_linux.h: define HAVE_LOOP_DEVICE and some
6431         loop function extern definitions.  For now this code is here
6432         because we only support loop devices on Linux.
6433
6434         * conf/mount/mount_linux.c: recognize "loop" as a valid iso9660
6435         mount option.
6436         (parse_opts): when skipping over unknown mount options, skip over
6437         "loop" (since it was given in amd map entry), but not over
6438         loop=/dev/loopX, because the latter will go into /etc/mtab.
6439         (do_mount_linux): override actual cdfs mounted  device name
6440         because with loop devices you don't mount the .iso file directly,
6441         but the /dev/loopX device that was setup for it.
6442         (show_loop, is_loop_device, find_unused_loop_device,
6443         setup_loop_device, delete_loop_device): support code for loop
6444         devices.
6445
6446         * amd/ops_cdfs.c (mount_cdfs): pass loop device name to function.
6447         setup loop device before isofs mount, if "loop" option was given,
6448         before actual mount(2).
6449         (cdfs_mount): pass loopdev name to mount_cdfs().
6450         (cdfs_umount): delete/unset loop device after a successful
6451         unmount, if a loop device was used.
6452
6453         * amd/mntfs.c (init_mntfs): initialize mf_loopdev to NULL.
6454
6455         * include/am_compat.h: If loop device (header file) exists, define
6456         mount table option MNTTTAB_OPT_LOOP.
6457
6458         * conf/nfs_prot/nfs_prot_linux.h: hack: define HAVE_LOOP_DEVICE
6459         here until we have a better way to detect /dev/loop devices.
6460
6461         * include/am_defs.h: include <linux/loop.h> if it exists.  Define
6462         LARGEFILE support macros, possibly needed for loop devices.
6463         Redefine dev_t apropriately for loop devices.
6464
6465         * configure.in: check for <linux/loop.h>.
6466
6467 2002-01-10  Ion Badulescu  <ion@guppy.limebrokerage.com>
6468
6469         * conf/mount/mount_linux.c (mount_linux): tcp _must_ have a timeo
6470         parameter 2 orders of magnitude larger than udp (patch from Trond
6471         Myklebust)
6472
6473 2002-01-09  Erez Zadok  <ezk@localhost.localdomain>
6474
6475         * aux/macros/linux_headers.m4: properly [quote] a long string in
6476         m4 and use AC_MSG_WARN.
6477
6478         * ALL: put /* comments */ on #else/#endif lines everywhere.
6479
6480         * configure.in, aux/macros/with_addon.m4: due to limitation of
6481         AC_HELP_STRING, pass 2nd arg to AMU_WITH_ADDON, listing name of
6482         package for help string.
6483
6484         * doc/am-utils.texi (FSinfo): fixed various texinfo errors in the
6485         FSinfo section of the manual.
6486         (map_reload_interval Parameter): document new amd.conf global
6487         parameter.
6488
6489         * scripts/amd.conf.5 document new global option
6490         map_reload_interval.  Sort entries for nfs_vers and nfs_proto
6491         alphabetically.
6492
6493         * amd/nfs_start.c (do_select): increment do_mapc_reload's value by
6494         global map_reload_interval value, not by fixed ONE_HOUR.
6495
6496         * amd/amd.c (main): increment do_mapc_reload's value by global
6497         map_reload_interval value, not by fixed ONE_HOUR.
6498
6499         * scripts/amd.conf-sample (map_reload_interval): usage example
6500
6501         * amd/amd.c (init_global_options): initialize map_reload_interval
6502         to 3600 seconds.
6503
6504         * amd/conf.c (gopt_map_reload_interval): support a new global
6505         amd.conf option map_reload_interval, to determine how often (in
6506         seconds) Amd should check if the map source has changed and then
6507         reload it it.  This value was hard-coded to one hour, now it's the
6508         default if not otherwise specified.
6509
6510         * doc/am-utils.texi (plock Parameter): document plock=yes option
6511         as using mlockall(2) if found.
6512
6513         * scripts/amd.conf.5: document -S option as using mlockall(2) if
6514         found.
6515
6516         * include/am_defs.h: include <sys/mman.h> if it exists.
6517
6518         * configure.in: check for mlockall() function.  Check for
6519         sys/mman.h.
6520
6521         * amd/amd.c (main): support mlockall() on systems that have it and
6522         don't have plock(3) for plock=yes.  On systems that have both,
6523         will try plock() first and then mlockall(), until one of them (if
6524         any) succeeds.
6525
6526 2002-01-09  Erez Zadok  <ezk@whitestar.dyn.optonline.net>
6527
6528         * aux/macros/opt_debug.m4, opt_cppflags.m4, opt_amu_cflags.m4,
6529         with_addon.m4 (ac_upcase): fix help string formatting using
6530         AC_HELP_STRING.
6531
6532         * amd/test1.sh: simple test script for "make check".  Runs "amd
6533         -v".
6534
6535         * amd/Makefile.am (TESTS): add one simple test script, running
6536         "amd -v" and checking its return value.  More tests can be added.
6537
6538         * aux/macros/linux_headers.m4: use AC_MSG_WARN directly.
6539
6540         * aux/macros/*.m4: avoid the cumbersome "changequote" M4 command.
6541         Instead, list bracketed regexp patterns in [[double brackets]].
6542
6543         * aux/macros/header_templates.m4: remove all unnecessary
6544         HAVE_FIELD_* definitions, now that we're using autoconf's new
6545         AC_CHECK_MEMBERS.
6546
6547         * aux/macros/field_mntent_t_mnt_time_string.m4: don't call
6548
6549         * configure.in: use new syntax for AMU_CHECK_FIELD
6550
6551         * aux/macros/check_field.m4: use new and simpler macro
6552         AC_CHECK_MEMBERS.  Change all sources to use HAVE_aggregate.member
6553         instead of HAVE_FIELD_aggregate.member.
6554
6555         * aux/amdgrep: simple utility script to egrep the am-utils sources
6556         for any pattern.
6557
6558         * aux/macros/{check_mnttab_style.m4, check_mount_style.m4,
6559         check_umount_style.m4, check_network_transport_type.m4}: use newer
6560         AC_LIBOBJ macros instead of modifying $LIBOBJS directly
6561
6562         * aux/macros/func_bad_memcmp.m4: redefine to use native
6563         AC_FUNC_MEMCMP, and then define HAVE_BAD_MEMCMP as needed.
6564
6565         * fsinfo/fsi_gram.y, amd/conf_parse.y: indent #pragma command so
6566         pre-ANSI C compilers will ignore it.
6567
6568         * conf/autofs/autofs_linux.c (autofs_link_mount): call s/getpgrp()
6569         correctly depending on whether it takes a void or a 0.
6570
6571         * configure.in: check if s/getpgrp() takes void or a 0.
6572
6573 2002-01-08  Erez Zadok  <ezk@whitestar.dyn.optonline.net>
6574
6575         * configure.in: use the newer AC_CONFIG_LINKS instead of
6576         AC_LINK_FILES.
6577
6578         * aux/macros/check_autofs_style.m4, check_checkmount_style.m4,
6579         check_mnttab_style.m4, check_mount_style.m4,
6580         check_network_transport_type.m4, check_umount_style.m4,
6581         check_nfs_prot_headers.m4: removed backward compatible code for
6582         pre-autoconf-2.14.
6583
6584 2002-01-07  Erez Zadok  <ezk@whitestar.dyn.optonline.net>
6585
6586         * doc/Makefile.am: define @SET_MAKE@ for AC_PROG_MAKE_SET macro, since
6587         this Makefile could explicitly chdir to other directories and run
6588         make there.
6589         (install-ps): use ${MAKE} with ${MFLAGS}.
6590
6591         * Makefile.am (EXTRA_DIST_AUX): distribute new package_*.m4 files.
6592         Define @SET_MAKE@ for AC_PROG_MAKE_SET macro, since this Makefile
6593         could explicitly chdir to other directories and run make there.
6594         (install-snapshot): use ${MAKE} ${MFLAGS}, not hardcoded "make".
6595
6596         * configure.in: call AC_PROG_MAKE_SET to check if make program
6597         defines $MAKE variable.
6598
6599         * amd/get_args.c (get_version_string): use new PACKAGE_* macros
6600         and also report the bug-reporting address.
6601
6602         * aux/macros/package_{name,version}.m4, header_templates.m4: using
6603         new PACKAGE_{NAME,VERSION,BUGREPORT} macros.
6604
6605         * aux/macros/name_bugreport.m4: simple macro to print out the
6606         bug-reporting address which was configured in AC_INIT.
6607
6608         * bootstrap: remove new autoconf messages about misuse of
6609         m4_patsubst and m4_regexp (internal GNU M4 macros).
6610
6611         * configure.in: remove old comment above AC_OUTPUT.
6612         Use AC_CONFIG_FILES and AC_OUTPUT separately.
6613         Fix AC_REVISION use.
6614         Add AC_COPYRIGHT.
6615         Use new style for AC_INIT, listing package name, version, and
6616         bug-reporting address.
6617         Call new AMU_PACKAGE_* macros.
6618
6619         * updated copyright year to 2002 on all files
6620
6621         * configure.in: using newly renamed am-utils macros (AMU_*)
6622
6623         * aux/macros/*.m4: renamed ALL am-utils specific macros so they
6624         start with AMU_*, not AC_*.  That way it is easier to distinguish
6625         between macros that come with am-utils and those that are part of
6626         Autoconf or Automake.  It helps to identify those am-utils macros
6627         that can be removed once there is generic support for them in a
6628         future version of Autoconf.
6629
6630         * bootstrap: run automake --copy
6631         remove autom4te.cache dir before rerunning autoconf
6632
6633 2001-12-13  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
6634
6635         * scripts/amd.conf.5: correct title to section 5, not 8.  Correct
6636         reversed meaning of nfs_proto and nfs_vers parameters.  Typos
6637         reported by Peter Breitenlohner <peb@mppmu.mpg.de>.
6638
6639 2001-12-02  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
6640
6641         * scripts/ctl-amd.in: run "test" or "[" in front of -x/-f
6642
6643         * scripts/ctl-hlfsd.in: run "test" or "[" in front of -x/-f
6644
6645 2001-12-02  Ion Badulescu  <ionut@moisil.badula.org>
6646
6647         * hlfsd/homedir.c (plt_print): fix typo (s/plot/plog/) in
6648         non-mkstemp code
6649
6650         * scripts/ctl-amd.in: touch/remove /var/lock/subsys/amd to make RH
6651         happy
6652
6653         * scripts/ctl-hlfsd.in: ditto (for hlfsd)
6654
6655         * conf/mtab/mtab_file.c (rewrite_mtab): fchmod(644) the file we
6656         get from mkstemp(), otherwise samba becomes very unhappy (sigsegv)
6657
6658         * conf/mtab/mtab_mach3.c (rewrite_mtab): ditto
6659
6660 2001-11-29  Ion Badulescu  <ion@guppy.limebrokerage.com>
6661
6662         * tasks: updated
6663
6664         * NEWS: document the fixed autofs fd leak
6665
6666         * amq/amq.8: better document the -f option
6667
6668 2001-11-29  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
6669
6670         * libamu/mount_fs.c (mnt_flags): same this as for nolock option
6671         handling, do for maxgrps.
6672
6673 2001-11-29  Ion Badulescu  <ion@guppy.limebrokerage.com>
6674
6675         * conf/autofs/autofs_linux.c (hash_init): determine the max number
6676         of fd's at runtime, use it to dynamically scale the hash and list
6677         arrays
6678         (autofs_get_fh): sanity check, don't allow a pipe() fd greater
6679         than autofs_max_fds
6680         (autofs_release_fh): close our end of the pipe here (no clue why
6681         or when it got commented out)
6682         (autofs_mounted): set kernelfd to -1 after closing it
6683
6684 2001-11-28  Philippe Troin  <phil@fifi.org>
6685
6686         * libamu/mount_fs.c (mnt_flags): Drop nolock from generic mount
6687         opts.
6688         (compute_nfs_args): Added nolock handling.
6689         Adapted from an original patch from Avery Pennarun <apenwarr@nit.ca>.
6690
6691 2001-11-27  Erez Zadok  <ezk@a-hpux11i.fsl.cs.sunysb.edu>
6692
6693         * ported to ia64-hp-hpux11.20 using HP's ANSI/C compiler.
6694         Couldn't use bison/flex because of 32-bit vs. 64-bit binaries
6695         issues.  Had to use HP's own yacc/lex.
6696
6697 2001-11-26  Erez Zadok  <ezk@a-hpux11i.fsl.cs.sunysb.edu>
6698
6699         * */Makefile.am: don't use $(OBJECTS) directly because it is no
6700         longer automatically defined now that Automake has automatic
6701         dependency tracking (which I turn off).  Instead, hard-code
6702         minimal dependencies on am-utils' header files to depend on
6703         PROG_OBJECTS (where PROG is the program name being built).  This
6704         was discovered by using HP's non-GNU make program.
6705
6706         * amd/nfs_start.c (checkup): cast getpagesize() return val to
6707         long, to avoid conflicts in division of a long by an int (on
6708         hpux11i, with their ANSI/C compiler).
6709
6710         * INSTALL, doc/am-utils.texi: port updates
6711
6712         * minor new ports: ia64-hp-hpux11.20, i386-unknown-freebsd5.0,
6713         i386-unknown-freebsd4.4, i386-pc-linux-rh7.2,
6714         ia64-unknown-linux-rh7.1.
6715
6716         * include/am_defs.h: actually declare extern definition for
6717         xdr_callmsg() if it doesn't already exist.
6718
6719         * aux/macros/header_templates.m4: declare template for
6720         HAVE_EXTERN_XDR_CALLMSG.
6721
6722         * configure.in: check for extern definition for xdr_callmsg()
6723         because hpux11 has that function but a bad <rpc/xdr.h> header file
6724         that doesn't define it in the right place.
6725
6726         * libamu/mount_fs.c (print_nfs_args): cast ->rdev to u_long b/c
6727         on hpux11 its type is dev_t.
6728
6729         * conf/nfs_prot/nfs_prot_hpux11.h: don't support autofs on hpux11
6730         yet.
6731
6732 2001-11-16  Erez Zadok  <ezk@fsl-gw.fsl.cs.sunysb.edu>
6733
6734         * buildall (Usage): separate $cnf_flags and $extra_cnf_flags due
6735         to /bin/sh limitations.
6736
6737         * bootstrap (cmd): turn back on --ignore-deps (this Automake may
6738         have problems)
6739
6740         * libamu/xutil.c: remove __attribute__ format_arg statement for
6741         expand_error() because this function, although taking a
6742         printf-like string, does not use it in a printf function; it only
6743         expands a non-printf amd-special syntax %m.
6744
6745 2001-11-14  Erez Zadok  <ezk@fsl-gw.fsl.cs.sunysb.edu>
6746
6747         * conf/nfs_prot/nfs_prot_linux.h: define KERNEL_VERSION macro
6748         before using it because older Linux systems don't define this
6749         (e.g., Red Hat 4.2)
6750
6751 2001-11-13  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
6752
6753         * configure.in: convert to using autoconfig 2.52.  Use new macros.
6754         AC_MSG_NOTICE for messages; AH_TOP and AH_BOTTOM to top and bottom
6755         parts of autogenerated config.h.in; increase autoconf
6756         pre-requisite to version 2.50; use AC_DISABLE_SHARED not
6757         AM_DISABLE_SHARED.
6758
6759         * aux/macros/cache_check_dynamic.m4: finally I can use the new
6760         $ECHO_N syntax in macros instead of $ac_n, since I'm using a new
6761         autoconf.  Isn't it nice to be such forward looking and having
6762         placed a comment "XXX: use the next line for autoconf-2.14 and
6763         newer"... :-)
6764
6765         * aux/macros/save_state.m4: highlight message with ***'s
6766
6767         * aux/macros/host_macros.m4: use proper M4 quoting ([], not "")
6768
6769         * config.{guess,sub}: upated from latest prep ftp distributions
6770
6771         * depcomp, missing, mkinstalldirs: upated from latest Automake 1.5
6772
6773         * ltmain.sh: updated from latest Libtool 1.4.2
6774
6775         * bootstrap: finally, new autoconf doesn't print silly "AC_TRY_RUN
6776         called without default to allow cross compiling" warnings.  And,
6777         it only took like 3+ years to fix this.  But, now it has anoter,
6778         albeit less annoying warning (which the manual says to ignore):
6779         "AC_PROG_LEX invoked multiple times".
6780         When autoheader is run, don't treat the "all clear" message
6781         "config.h.in is update" as an error.
6782
6783         * ltconfig: removed. not needed with latest version of libtool
6784
6785         * aux/macros/header_templates.m4: replaces acconfig.h and defines
6786         all CPP macros we use in this package, including their
6787         accompanying C /* comments */.
6788
6789         * acconfig.h: removed. replaced by new autoconf system to generate
6790         header templates using AH_TEMPLATE macros and such.
6791
6792         * aux/macros/msg.m4: removed.  Replaced with new macro
6793         AC_MSG_NOTICE
6794
6795         * Makefile.am (EXTRA_DIST_AUX): remove aux/macros/msg.m4.  Add
6796         aux/macros/header_templates.m4
6797
6798         * configure.in: early, in host_macros.m4, I'm renaming silly linux
6799         $host_os names such as linux-gnu and lignux to plain "linux".
6800         Alas, RMS finally had his way and libtool will NOT recognize
6801         "linux" as a valid system, only "linux-gnu".  Sigh.  Rich, I know
6802         you're responsible to Linux's fame.  Kudos to you and your
6803         cohorts.  But please don't force the rest of us to use those ugly
6804         or long names.  Solution: temporarily name $host_os to "linux-gnu"
6805         before calling the AC_PROG_LIBTOOL macro, then name it back to
6806         "linux".  (That way I don't have to maintain my own version of
6807         ltmain.sh.
6808
6809         * buildall: force running configure -C (to create and use a local
6810         config.cache file).  New default behavior for autoconf is NOT to
6811         use cache files.  Yeah, that's gonna fly real well with am-utils,
6812         with its 700+ automatic tests.
6813
6814         * conf/mtab/mtab_mach3.c (rewrite_mtab): use mkstemp instead of
6815         mktemp, if the former is available.
6816
6817         * conf/mtab/mtab_file.c (rewrite_mtab): use mkstemp instead of
6818         mktemp, if the former is available.
6819
6820         * mk-amd-map/mk-amd-map.c (main): use mkstemp instead of mktemp,
6821         if the former is available.
6822
6823         * aux/macros/check_nfs_socket_connection.m4: AC_DEFINE calls must
6824         be on a separate line, as per new Autoconf manual, to avoid some
6825         Bourne Shell syntactical bizarreness.
6826
6827 2001-11-13  Erez Zadok  <ezk@a-rh71i.fsl.cs.suunysb.edu>
6828
6829         * amd/amfs_auto.c (amfs_auto_readdir_browsable): cast to u_long,
6830         for IA64 Linux.
6831
6832 2001-11-12  Ion Badulescu  <ionut@buggy.badula.org>
6833
6834         * libamu/mtab.c (hasmntval): strtol can return a non-NULL pointer
6835         pointing to '\0' on success, so we need to allow for it. This
6836         fixes the problem with rejecting numerical mount options if they
6837         are the last option in the string.
6838
6839         * configure.in: increased library patchlevel
6840
6841         * NEWS: document the parsing bug
6842
6843 2001-10-29  Ion Badulescu  <ionut@moisil.badula.org>
6844
6845         * configure.in: bumped version up to 6.1a5-pre
6846
6847         * NEWS: fixed speeling mistaike
6848
6849 2001-10-29  Ion Badulescu  <ionut@moisil.badula.org>
6850
6851         * released snapshot am-utils-6.1a4
6852
6853 2001-10-26  Ion Badulescu  <ionut@moisil.badula.org>
6854
6855         These changes fix autofs support for sublinks. While it is not
6856         perfect by any means and is hardly better than non-autofs, at
6857         least it works.
6858
6859         * conf/autofs/autofs_solaris_v2_v3.c (autofs_lookup_2_req): don't
6860         reply if the mount is in progress
6861         (autofs_mount_succeeded): handle both delayed lookups and mounts
6862         (autofs_mount_failed): ditto
6863
6864         * amd/amfs_auto.c (amfs_auto_lookup_mntfs): don't dispose of the
6865         original opt_fs if we have a sublink
6866
6867 2001-10-23  Ion Badulescu  <ionut@moisil.badula.org>
6868
6869         * amd/amfs_auto.c (amfs_auto_lookup_mntfs): fixed silly typo (mf
6870         instead of new_mf) which was causing null pointer error when
6871         sublinks were being used
6872
6873 2001-10-22  Ion Badulescu  <ionut@moisil.badula.org>
6874
6875         * README.autofs: updated
6876
6877         * NEWS: updated
6878
6879         * INSTALL: updated
6880
6881         * AUTHORS: added myself
6882
6883         * doc/am-utils.texi: updated
6884
6885         * conf/autofs/autofs_solaris_v2_v3.c (xdr_autofs_rddirargs): use
6886         xdr_u_int() and cast things to (int) to appease Solaris 2.7 compile
6887         (autofs_readdir_2_req): cast req->rda_offset to (int), same as
6888         above
6889
6890 2001-10-22  Ion Badulescu  <ionut@moisil.badula.org>
6891
6892         Autofs direct mounts have been verified to work on Solaris2.[67].
6893
6894         * conf/autofs/autofs_solaris_v2_v3.c (autofs_lookup_2_req):
6895         retrieve the uid and gid from the lookup request
6896         (autofs_mount_2_req): skip the first char in the name (it's a
6897         leading '/') if this is a direct mount
6898
6899         * amd/amfs_direct.c (amfs_direct_ops): use amfs_auto_lookup_child
6900         and amfs_auto_mount_child for amfs_direct's methods
6901
6902         * amd/amfs_auto.c (amfs_auto_lookup_child): don't leak an am_node
6903         if the mntfs lookup fails
6904
6905 2001-10-21  Ion Badulescu  <ionut@moisil.badula.org>
6906
6907         * include/am_utils.h (AMF_REMOUNT): new flag, marks the node as
6908         pending a remount
6909         (mntfs): new member mf_fsflags, holds a copy of the filesystem's
6910         fs_flags
6911         (am_ops): new member autofs_fs_flags, holds the filesystem's flags
6912         when mounted onto an autofs node; fs_flags renamed to nfs_fs_flags
6913
6914         * conf/autofs/autofs_linux.c (create_autofs_service): turn on
6915         FS_MKMNT for amfs_auto and FS_MBACKGROUND for amfs_link
6916         (autofs_umount_succeeded): don't rmdir the mountpoint if a remount
6917         is needed [lest the access that triggered the remount will fail]
6918
6919         * amd/mntfs.c (init_mntfs): copy the filesystem's nfs_fs_flags
6920         into mf_fsflags on initialization
6921
6922         * amd/autil.c (am_unmounted): start the remounting right away if
6923         the node is marked as needing a remount [fixes the Linux autofs
6924         deadlock when mount/unmount collide]
6925
6926         * amd/amfs_auto.c (amfs_auto_lookup_node): mark the node as
6927         needing a remount if a mount request comes in while we're
6928         unmounting it
6929         (amfs_auto_lookup_mntfs): copy the filesystem's autofs_fs_flags
6930         into mf_fsflags if this is an autofs node
6931
6932         * amd/amfs_*.c, amd/ops_*.c: added initialization for the new
6933         autofs_fs_flags member of am_ops
6934
6935 2001-10-20  Ion Badulescu  <ionut@moisil.badula.org>
6936
6937         With these changes, Solaris 2.[67] autofs support is finally
6938         functional!
6939
6940         * conf/autofs/autofs_solaris_v2_v3.c (autofs_readdir_2_req): stub
6941         (autofs_readdir_2_free, xdr_autofs_rddirargs, xdr_autofs_putrddirres,
6942         xdr_autofs_getrddirres, xdr_autofs_rddirres): new functions
6943         (autofs_lookup_2_req): do an actual lookup here, and tell the
6944         kernel to create a symlink if necessary
6945         (autofs_mount_2_req): no need to am_autofs_data
6946         (autofs_program_2): enable AUTOFS_READDIR
6947         (autofs_link_mount): no code needed here
6948         (autofs_link_umount): return success
6949         (autofs_mount_succeeded): lstat real mount points; don't mark
6950         symlinks as NOTIMEOUT
6951
6952         * amd/mntfs.c (init_mntfs): mf_dev and mf_rdev don't exist anymore
6953
6954         * amd/map.c (init_map): init am_dev and am_rdev to -1
6955         (free_map): free am_mfarray and all mntfs's listed
6956
6957         * amd/autil.c (mf_mounted): move the lstat of the node to the
6958         autofs-specific code
6959
6960         * amd/amfs_link.c (amfs_link_ops): don't background symlink creation
6961
6962 2001-10-18  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6963
6964         * aux/macros/os_cflags.m4 (irix6*): Enforce N32 ABI/mips3 ISA with cc.
6965         * BUGS: Explain this.
6966
6967 2001-10-02  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
6968
6969         * doc/am-utils.texi (redhat-ctl-amd): document new script.
6970
6971         * scripts/Makefile.am: build redhat-ctl-amd but do not install it.
6972
6973         * scripts/redhat-ctl-amd.in: new script, useful to correctly
6974         control Amd on Red Hat Linux systems.  Script adapted from ctl-amd
6975         and Red Hat's own rc.d script.
6976
6977 2001-10-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6978
6979         * conf/nfs_prot/nfs_prot_osf5.h: Renamed from nfs_prot_osf5_1.h.
6980         (MNT2_NFS_OPT_AUTO): Disable.
6981         * Makefile.am (EXTRA_DIST_CONF): Reflect new name.
6982         * aux/macros/check_nfs_prot_headers.m4: Use this file for all
6983         Tru64 UNIX V5 and up releases.
6984
6985 2001-09-24  Ion Badulescu  <ionut@moisil.badula.org>
6986
6987         * include/mount_headers1.h (MFS): define as 1 instead of nothing,
6988         to fix compile problems on OS X (patch from Ahmon Dancy)
6989
6990         * aux/macros/try_compile_anyfs.m4 (MFS): ditto
6991
6992 2001-08-13  Erez Zadok  <ezk@fsl-gw.fsl.cs.sunysb.edu>
6993
6994         * doc/am-utils.texi (in_network Selector Variable): document
6995         expanded syntax
6996
6997         * libamu/wire.c (is_network_member): support for network/netmask
6998         as well as network/bits syntax in in_network()
6999
7000 2001-08-11  Erez Zadok  <ezk@a-linux64.fsl.cs.sunysb.edu>
7001
7002         * amq/amq.c (show_mti): print full four digits for year, and print
7003         it in MM/DD/YYYY format, not in YY/MM/DD format.
7004
7005 2001-08-11  Ion Badulescu  <lionut@gonzales.badula.org>
7006
7007         * conf/autofs/autofs_solaris_v2_v3.c (autofs_lookup_2_req):
7008         initial attempt to do something useful -- but commented out for now
7009         (autofs_link_mount): create an action structure with a link
7010         request and pass it up
7011         (autofs_mount_2_req): pass the link request to the kernel
7012         (autofs_free_data): new helper function
7013
7014         * conf/autofs/autofs_linux.h: added definition for autofs_data_t
7015
7016         * conf/autofs/autofs_solaris_v2_v3.h: ditto
7017
7018         * amd/map.c (init_map): initialize am_autofs_data
7019         (free_map): call the autofs cleanup function if necessary
7020
7021         * include/am_utils.h (am_node): added private data and cleanup
7022         function for autofs
7023
7024         * tasks: removed some obsolete entries
7025
7026 2001-08-11  Erez Zadok  <ezk@a-solaris8.fsl.cs.sunysb.edu>
7027
7028         * amd/map.c (free_map_if_success): run autofs_umount_failed() only
7029         if this mount node is of type autofs.
7030
7031 2001-08-11  Ion Badulescu  <lionut@gonzales.badula.org>
7032
7033         * amd/amd.h: removed mf_array from struct continuation (moved into
7034         am_node)
7035
7036         * include/am_utils.h: removed VLOOK_LOOKUP; renamed vlookuppn to
7037         vlookup_child; added vmount_child; added mount_child to the fs_ops
7038         API; added prototypes for amfs_auto_mount_child and
7039         amfs_error_mount_child
7040
7041         * amd/map.c (init_map): initialize am_mfarray to 0
7042
7043         * amd/amfs_*, amd/ops_*: new API function mount_child, old API
7044         function lookuppn renamed to lookup_child
7045
7046         * amd/amfs_auto.c: renamed amfs_auto_lookuppn1 to
7047         amfs_auto_lookup_node; renamed amfs_auto_lookuppn2 to
7048         amfs_auto_lookup_mntfs; renamed amfs_auto_lookuppn3 to
7049         amfs_auto_mount_child; moved the freeing of the error mntfs in the
7050         newly allocated am_node from lookup_mntfs to mount_child; make
7051         sure lookup_child returns a negative error if the node needs to be
7052         mounted; removed the call to lookuppn3 from lookup_child
7053
7054         * amd/amfs_error.c: added stub implementations of
7055         amfs_error_lookup_child and amfs_error_mount_child
7056
7057         * amd/amfs_direct.c, amd/amfs_union.c, amd/map.c, amd/nfs_subr.c,
7058         conf/autofs/autofs_linux.c, conf/autofs/autofs_solaris_v2_v3.c:
7059         call both lookup_child and mount_child, instead of the old
7060         lookuppn API method
7061
7062 2001-07-19  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7063
7064         * amd/get_args.c (get_args): a better way to handle GNU and
7065         non-GNU getopts without strdup-ing the getopt string.
7066
7067 2001-07-04  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7068
7069         * amd/info_ldap.c (amu_ldap_rebind): The first time you called
7070         amu_ldap_init, aldh->ldap is not set.  So when amu_ldap_rebind is
7071         called, this function is absolutely sure to return 0.  Then
7072         amu_ldap_init return 0 without having opened any LDAP connection.
7073         This is not the correct behavior.
7074         (get_ldap_timestamp, amu_ldap_search): error to free an object
7075         ("entry") that is automatically freed by the library.  Patch from
7076         Sebastien Bahloul <sebastien.bahloul@mangoosta.fr>.
7077
7078 2001-07-19  Ion Badulescu  <ionut@moisil.badula.org>
7079
7080         * AUTHORS (variables): added Philippe Troin
7081
7082         * Makefile.am (EXTRA_DIST): added bootstrap
7083
7084         * include/am_compat.h (xfs_args_t): define as u_int if the
7085         filesystem is supported but we can't autodetect the type for
7086         xfs_args_t. This allows Linux to mount xfs filesystems.
7087
7088 2001-07-12  Philippe Troin  <phil@fifi.org>
7089
7090         * doc/am-utils.texi: Added @dircategory Administration.
7091
7092 2001-07-12  Philippe Troin  <phil@fifi.org>
7093
7094         * aux/macros/with_addon.m4: Created. Wrapper around AC_ARG_WITH
7095         with only the `yes' and `no' as possible answers.
7096
7097         * configure.in: Added support for disabling LDAP and HESIOD even
7098         if the supporting libraries are found.
7099
7100         * Makefile.am (EXTRA_DIST_AUX): Added with_addon.m4 macro file.
7101
7102 2001-07-12  Philippe Troin  <phil@fifi.org>
7103
7104         * include/am_compat.h: Removed forced definition of MNTTAB_OPT_DEV
7105         if MNT2_GEN_OPT_NODEV was found. Actually, the dev= (SVR4) options
7106         and the linux nodev options are different beasts.
7107
7108         * conf/mount/mount_linux.c (opt_map): Removed the MNTTAB_OPT_DEV
7109         entry (not really necessary on linux).
7110
7111 2001-07-12  Philippe Troin  <phil@fifi.org>
7112
7113         * amd/get_args.c (get_args): Prepend "+" to the getopt string if
7114         HAVE_GNU_GETOPT to avoid getting all options (even the ones after
7115         the first non-option argument) slurped in by GNU getopt.
7116
7117         * aux/macros/check_gnu_getopt.m4: Created. Defines HAVE_GNU_GETOPT
7118         if GNU/glibc getopt implementation is detected.
7119
7120         * configure.in: Added call to AC_CHECK_GNU_GETOPT.
7121
7122         * acconfig.h: Document HAVE_GNU_GETOPT.
7123
7124         * Makefile.am (EXTRA_DIST_AUX): Added check_gnu_getopt.m4 macro file.
7125
7126 2001-06-25  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7127
7128         * LSM.am-utils, NEWS, README.y2k, ChangeLog: make sure all
7129         am-utils URL references use www.am-utils.org, not the columbia
7130         URL.
7131
7132 2001-06-08  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7133
7134         * conf/transp/transp_sockets.c (create_nfs_service): cast to
7135         u_long to ensure clean compile on freebsd5 and bsdi2.
7136
7137 2001-05-23  Ion Badulescu  <ionut@moisil.badula.org>
7138
7139         WARNING: WORK IN PROGRESS
7140
7141         It works for me on Linux (both autofs and nfs mounts), for nfs and
7142         link, but I won't make any guarantees outside those.
7143
7144         * amd/mntfs.c (find_mntfs): reuse the mntfs only if both the mount
7145         point and the device/fileserver are the same. This is an important
7146         change of philosophy, watch out for memory leaks!
7147
7148         * amd/map.c (get_ap_child): helper function for
7149         amfs_auto_lookuppn, creates a new am_node for key fname, inits it,
7150         and inserts it into all necessary structures
7151
7152         * amd/amfs_auto.c (free_continuation): free unused mntfs's; don't
7153         free any of the removed fields
7154         (amfs_auto_lookuppn, amfs_auto_bgmount): split lookuppn into three
7155         subfunctions, including some code stolen from bgmount; lookuppn
7156         now generates an array of possible mntfs to try mounting, and
7157         bgmount will actually try to mount each of them.
7158         (amfs_auto_lookuppn[123]): the three new subfunctions for lookuppn
7159         (amfs_parse_defaults): new helper function for lookuppn
7160
7161 2001-05-19  Erez Zadok  <ezk@kosh.dyn.optonline.net>
7162
7163         * conf/mount/mount_linux.c: typo: added comma after '0' element.
7164
7165 2001-05-19  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
7166
7167         * conf/autofs/autofs_linux.c (AUTOFS_MAX_VERSION): allow using
7168         autofs-v4 again
7169         (autofs_get_opts): don't pass pgrp, the kernel will get it
7170         automatically anyway, not to mention that we were passing bogus
7171         data if amd was not daemonized.
7172
7173         * conf/mount/mount_linux.c (linux_nfs_error): don't special case
7174         the 0 result, just put it into the translation list
7175
7176 2001-05-19  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
7177
7178         * conf/mount/mount_linux.c (linux_nfs_error): don't report success
7179         (0) as error (NE_IO)!
7180
7181 2001-05-18  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
7182
7183         * amd/amfs_host.c (amfs_host_mount): don't fail the mount if at
7184         least one share is already mounted
7185
7186 2001-05-17  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
7187
7188         * libamu/util.c (str3cat): updated comment
7189
7190         * include/am_utils.h: added VLOOK_LOOKUP and FS_DIRECT
7191
7192         * conf/autofs/autofs_linux.c (autofs_get_fh): removed obsolete comment
7193         (autofs_mounted): disable autofs support for host f/s if version < 4
7194         (create_autofs_service): turn on FS_MKMNT on auto f/s if using autofs
7195         (autofs_umount_succeeded): use rmdirs instead of rmdir
7196         (autofs_mount_failed): ditto
7197
7198         * amd/opts.c (expand_op): align the debugging messages
7199
7200         * amd/map.c (mount_auto_node): use am_node *mp instead of casting
7201         the void *arg; update the comment
7202
7203         * amd/autil.c (am_mounted): check the FS_DIRECT flag instead of
7204         comparing to &amfs_direct_ops
7205         (mount_node): ifs_mount doesn't exist, make note of it in the
7206         comment
7207
7208         * amd/amfs_direct.c (amfs_direct_ops): added FS_DIRECT to fs_flags
7209
7210         * amd/amfs_auto.c (amfs_auto_mount): removed the autofs hack to
7211         create the mountpoint directory for auto f/s; it is now handled in
7212         autofs_linux.c
7213         (amfs_auto_bgmount): renamed the mpe parameter to mp_error;
7214         renamed dont_retry to retry and reverted its meaning as well;
7215         moved the mp variable up one scope and made use of it throughout
7216         the function;
7217         (amfs_auto_readdir): whitespace
7218         (amfs_auto_readdir_browsable): whitespace, also some debugging
7219
7220         * amd/am_ops.c (vops): updated a comment
7221
7222         * .cvsignore: added A.i386-pc-linux-rh7.[01]
7223
7224 2001-05-01  Ion Badulescu  <ionut@gonzales.dev.hydraweb.com>
7225
7226         * conf/mount/mount_linux.c: fixed stupid error in the linux
7227         nfs_errormap[], which was mapping ENOENT to success!!!
7228
7229 2001-04-28  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
7230
7231         * BUGS: added info about the direct mount problems on Linux and
7232         about the kernel patches on www.am-utils.org.
7233
7234         * conf/autofs/autofs_solaris_v2_v3.c (autofs_unmount_2_req):
7235         removed obsolete comment
7236
7237         * amd/autil.c (forcibly_timeout_mp): always log a message when the
7238         forced unmount request is ignored
7239         (mf_mounted): don't lstat unless this is an autofs mount point,
7240         lest we deadlock
7241
7242         * amd/amfs_auto.c (amfs_auto_bgmount): don't gratuitously add
7243         MFF_MKMNT to the flags, it causes deadlocks later on when
7244         unmounting
7245
7246 2001-04-14  Erez Zadok  <ezk@whitestar.dyn.optonline.net>
7247
7248         * COPYING: update copyright year
7249
7250         * amd/amfs_auto.c, amd/amfs_host.c, amd/amfs_nfsx.c,
7251         amd/amfs_toplvl.c, amd/amfs_union.c, amd/conf.c, amd/info_nis.c,
7252         amd/info_nisplus.c, amd/mapc.c, amd/nfs_subr.c, amd/ops_nfs.c,
7253         amd/rpc_fwd.c, amd/srvr_amfs_auto.c, amd/srvr_nfs.c,
7254         conf/autofs/autofs_solaris_v1.c, conf/mtab/mtab_file.c,
7255         conf/mtab/mtab_isc3.c, conf/mtab/mtab_svr4.c,
7256         conf/transp/transp_sockets.c, conf/transp/transp_tli.c,
7257         libamu/mount_fs.c, libamu/mtab.c: rewritten various dlog/plog
7258         messages for clarity, to avoid duplication, to better recognize
7259         what the message means and where it ran, and to fix typos.
7260
7261         * amd/nfs_subr.c (nfsproc_lookup_2_svc): moved trace message of
7262         function's name to the beginning of the function, before any other
7263         messages are logged.
7264
7265 2001-04-14  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
7266
7267         * conf/mount/mount_linux.c (do_mount_linux): removed plog() of
7268         binary data
7269
7270 2001-04-05  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
7271
7272         * include/am_defs.h: define NFSCLIENT, NFS, PCFS, LOFS, RFS,
7273         MSDOSFS, MFS and CD9660 to 1, so that both #if FOO and #ifdef FOO
7274         work (needed for MacOS X); removed duplicate definition of NFS.
7275
7276 2001-03-29  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
7277
7278         * amd/amd.h, amd/amfs_auto.c, amd/conf.c,
7279         doc/am-utils.texi,
7280         scripts/amd.conf-sample, scripts/amd.conf.5:
7281         renamed selectors_on_default to selectors_in_defaults,
7282         kept the former as a deprecated option;
7283         renamed CFM_ENABLE_DEFAULT_SELECTORS to CFM_SELECTORS_IN_DEFAULTS;
7284         renamed gopt_selectors_on_default() to gopt_selectors_in_defaults()
7285
7286 2001-03-19  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
7287
7288         * amd/amfs_toplvl.c, amd/amfs_auto.c, amd/srvr_nfs.c,
7289         include/am_utils.h: compile fixes for --enable-debug=no
7290
7291 2001-03-15  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
7292
7293         * NEWS: updated
7294
7295         * README.autofs: updated
7296
7297         * conf/mount/mount_linux.c (linux_version_code): export the fn
7298
7299         * conf/nfs_prot/nfs_prot_linux.h: ditto
7300
7301         * conf/autofs/autofs_linux.c (create_autofs_service): verify the
7302         kernel version here, and turn off bind_works if the kernel is
7303         older than 2.4.0.
7304         (autofs_link_mount): don't touch bind_works here, it's useless
7305         b/c we're in a child process; remove the mountpoint directory if
7306         the bind mount fails
7307
7308         * amd/opts.c (eval_fs_opts): changed some annoying debugging plogs
7309         into dlogs
7310
7311         * conf/autofs/autofs_linux.c (autofs_link_mount): zero out the
7312         mntent struct before initializing it
7313
7314 2001-03-14  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
7315
7316         * conf/mount/mount_linux.c (parse_opts): added support for lofs
7317         (mount_linux): support lofs through bind mounts and/or FiST lofs
7318
7319         * scripts/ctl-hlfsd.in: search for /var/spool/mail in addition to
7320         /var/mail and /usr/spool/mail
7321
7322         * conf/nfs_prot/nfs_prot_linux.h (MS_BIND): add define for it, if
7323         kernel is newer than 2.4.0
7324         (MNTTYPE_LOFS): ditto
7325
7326         * conf/autofs/autofs_solaris_v2_v3.c (autofs_link_umount): new stub
7327         (autofs_lookup_failed): removed stub
7328
7329         * conf/autofs/autofs_linux.c (autofs_lookup_failed): moved up in
7330         the file, made static;
7331         (autofs_link_mount): activate MNT2_GEN_OPT_BIND code; use stat()
7332         and friends to determine if bind mounts can be used and to trigger
7333         further cascading mounts; return proper error codes
7334         (autofs_link_umount): distinguish between symlinks and bind mounts
7335         and handle both correctly
7336         (autofs_umount_succeeded): remove call to autofs_link_umount()
7337
7338         * amd/map.c (umount_exported): try to unmount all mount points on
7339         an autofs filesystem; this isn't really needed and will be removed
7340         when we start handling restarting autofs mounts
7341
7342         * amd/amfs_link.c (amfs_link_[u]mount): call autofs_link_[u]mount,
7343         if necessary
7344
7345         * amd/amfs_auto.c (amfs_auto_bgmount): fixed a bug that was
7346         causing the wrong mntfs to be selected when using autofs; removed
7347         call to autofs_link_mount() (moved where it belongs, in
7348         amfs_link.c)
7349
7350         * amd/amfs_link.c: added FS_MBACKGROUND to fs flags -- cleaner
7351         solution is needed, because background mounting is only necessary
7352         for linux autofs + bind mounts
7353
7354         * amd/amd.h: removed prototype for autofs_lookup_failed (internal
7355         static function for linux autofs); added prototype for
7356         autofs_link_umount
7357
7358         * configure.in: bump up library patchlevel
7359
7360 2001-02-28  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
7361
7362         * aux/macros/check_mount_trap.m4,
7363         aux/macros/check_nfs_fh_dref.m4,
7364         aux/macros/check_nfs_prot_headers.m4,
7365         aux/macros/type_recvfrom_fromlen.m4,
7366         aux/macros/type_yp_order_outorder.m4:
7367         Fixed newer freebsd's fh type, expanded more aix3, osf2, hpux9 to
7368         aix[1-3], osf[1-3] and hpux[6-9].
7369
7370 2001-02-28  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7371
7372         * check_mount_style.m4, check_mount_trap.m4,
7373         check_network_transport_type.m4, check_nfs_fh_dref.m4,
7374         check_nfs_prot_headers.m4, check_nfs_sa_dref.m4,
7375         check_nfs_socket_connection.m4, os_cflags.m4,
7376         type_yp_order_outorder.m4: small fixes to Ion's cleanup, and more
7377         cleanup (use [[0-1]] instead of M4 changequote commands).
7378
7379         * Makefile.am: removed unused conf/trap/trap_hpux11.h
7380
7381 2001-02-27  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
7382
7383         * aux/macros/check_network_transport_type.m4,
7384         aux/macros/check_mount_style.m4,
7385         aux/macros/check_mount_trap.m4,
7386         aux/macros/check_network_transport_type.m4,
7387         aux/macros/check_nfs_fh_dref.m4,
7388         aux/macros/check_nfs_prot_headers.m4,
7389         aux/macros/check_nfs_sa_dref.m4,
7390         aux/macros/check_nfs_socket_connection.m4,
7391         aux/macros/os_cflags.m4,
7392         aux/macros/type_auth_create_gidlist.m4,
7393         aux/macros/type_recvfrom_fromlen.m4,
7394         aux/macros/type_yp_order_outorder.m4:
7395         Reworked the scripts, so that a new _unknown_ version of a known OS
7396         will use the option for the newest _known_ version of that OS. For
7397         example, when freebsd6 comes out, it will use the stuff for
7398         freebsd5, not the stuff for freebsd2. This makes configure more
7399         likely to succeed on new systems/versions.
7400
7401         * Makefile.am (EXTRA_DIST_AUX): added check_autofs_style.m4 (grr)
7402
7403 2001-02-24  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7404
7405         * Makefile.am (install-snapshot): use a different symlink target
7406         for the experimental snapshots.
7407
7408 2001-02-23  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7409
7410         * Makefile.am (EXTRA_DIST_CONF): include nfs_prot_darwin.h in
7411         distributions.
7412
7413 2001-02-22  Erez Zadok  <ezk@earth.cs.columbia.edu>
7414
7415         * released snapshot am-utils-6.1a3
7416
7417         * amd/Makefile.am (EXTRA_amd_SOURCES): don't forget to distribute
7418         get_args.c
7419
7420 2001-02-21  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7421
7422         * libamu/mtab.c: added the functions hasmnteq and haseq to
7423         ease checks for non-numeric values in opt=value strings.
7424         Recoded hasmntval to qualify input as numeric, allow hex and
7425         octal strings on rhs of =, and log when the value is missing
7426         or invalid.
7427
7428         * conf/mount/mount_linux.c: revised mount_linux to use new
7429         hasmnteq function to extract type of non-nfs mounts, and added
7430         a log message to catch possible failure of strdup.
7431
7432         * amd/am_ops.c: revised merge_ops to use new haseq function
7433
7434         * amd/srvr_nfs.c: revised find_nfs_srvr to use hasmnteq to
7435         discover protocol setting.
7436
7437         * include/am_utils.h: added function prototypes for hasmnteq
7438         and haseq
7439
7440 2001-02-19  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
7441
7442         * include/mount_headers2.h (_LINUX_NFS3_H): define it, to avoid
7443         pulling in unwanted declarations from 2.2.19pre and 2.4.1ac
7444
7445         * include/am_defs.h (_LINUX_NFS3_H): ditto
7446
7447         * conf/nfs_prot/nfs_prot_linux.h: whitespace, comments
7448
7449 2001-02-19  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7450
7451         * aux/macros/check_fs_mntent.m4 (ac_safe): remove debugging "echo"
7452         command.
7453
7454 2001-02-18  Erez Zadok  <ezk@earth.cs.columbia.edu>
7455
7456         * aux/macros/mount_headers.m4, include/mount_headers[12].h: split
7457         mount_headers.h in two because one relative header (nfs_prot.h)
7458         file cannot be included inside another from the start directory of
7459         the first (it's relative to the directory of the first).
7460
7461 2001-02-09  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
7462
7463         * AUTHORS: added Ahmon Dancy <dancy@franz.com>
7464
7465         * (all): added Darwin/Rhapsody/Apple OS X support from Ahmon Dancy
7466
7467         * aux/macros/mount_headers.m4: moved all the C code into a
7468         separate file, include/mount_headers.h; the effect is that
7469         configure goes down in size by a factor of 2.5!
7470
7471         * include/mount_headers.h: new file, with C code from
7472         aux/macros/mount_headers.m4
7473
7474 2001-02-01  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
7475
7476         * conf/mount/mount_linux.c: made linux_nfs_error() more robust.
7477
7478 2001-02-01  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7479
7480         * released snapshot am-utils-6.1a2
7481
7482         * updated ltmain.sh and ltconfig from latest stable version of
7483         libtool-1.3.5
7484
7485 2001-02-01  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
7486
7487         * conf/nfs_prot/nfs_prot_linux.h (nfs_error): moved the definition
7488         of nfs_error here, from mount_linux.c, so that it can actually be
7489         used.
7490
7491         * conf/mount/mount_linux.c: added unused errno 41 to the
7492         nfs_errormap array, lest the following errno's get shifted up by
7493         one!
7494
7495 Sat Jan 13 00:04:38 2001  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7496
7497         * amd/amd.h (autofs_lookuppn): Fixup whitespace.
7498         * amd/amfs_auto.c (amfs_auto_bgmount): Likewise.
7499         * amd/amfs_error.c: (amfs_error_match): Likewise.
7500         * amd/amfs_host.c (fetch_fhandle): Fixup whitespace.  Remove
7501         unnecessary temporary variable.
7502         * amd/info_file.c (read_line): Likewise.
7503         (search_or_reload_file): Likewise.
7504         * amd/info_ldap.c (get_ldap_timestamp): Likewise.
7505         * amd/map.c (get_root_ap): Likewise.
7506         * amd/nfs_prot_svc.c: Likewise.
7507         * amd/ops_TEMPLATE.c (foofs_match, foofs_lookuppn,
7508         foofs_readlink, foofs_ffserver): Likewise.
7509         * amd/ops_autofs.c (autofs_bgmount): Likewise.
7510         * amd/ops_lofs.c (lofs_match): Likewise.
7511         * amd/ops_nfs.c (got_nfs_fh): Fixup whitespace.
7512         * amd/ops_xfs.c (xfs_match): Likewise.
7513         * amd/srvr_amfs_auto.c (srvrlog): Line break.
7514         * amd/srvr_nfs.c (got_portmap, call_portmap, nfs_pinged,
7515         nfs_srvr_port): Fixup whitespace.
7516         * conf/nfs_prot/nfs_prot_bsdi2.h: Likewise.
7517         * conf/nfs_prot/nfs_prot_hpux.h: Likewise.
7518         * conf/nfs_prot/nfs_prot_hpux11.h: Likewise.
7519         * conf/nfs_prot/nfs_prot_irix5.h: Likewise.
7520         * conf/nfs_prot/nfs_prot_irix6.h: Likewise.
7521         * conf/nfs_prot/nfs_prot_nextstep.h: Likewise.
7522         * conf/nfs_prot/nfs_prot_osf2.h: Likewise.
7523         * conf/nfs_prot/nfs_prot_osf4.h: Likewise.
7524         * conf/nfs_prot/nfs_prot_osf5_1.h: Likewise.
7525         * conf/nfs_prot/nfs_prot_sunos3.h: Likewise.
7526         * conf/nfs_prot/nfs_prot_sunos4.h: Likewise.
7527         * conf/nfs_prot/nfs_prot_ultrix.h: Likewise.
7528         * conf/transp/transp_tli.c (get_mount_client): Likewise.
7529         * hlfsd/nfs_prot_svc.c: Likewise.
7530         * include/am_defs.h (sys_errlist): Likewise.
7531         * include/am_utils.h (am_get_progname, am_get_hostname,
7532         amq_program_1): Likewise.
7533         (nfsxprt): Moved declaration.
7534
7535 Fri Jan 12 23:31:45 2001  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7536
7537         Removed support for amq -M.
7538
7539         * acconfig.h (ENABLE_AMQ_MOUNT): Removed.
7540         * aux/macros/opt_amq_mount.m4: Removed.
7541         * Makefile.am (EXTRA_DIST_AUX): Don't distribute
7542         opt_amq_mount.m4.
7543         * configure.in (AC_OPT_AMQ_MOUNT): Removed invocation.
7544
7545         * amd/amq_subr.c (ok_security, amqproc_mount_1_svc): Removed.
7546         * amd/amq_svc.c (amq_program_1): Removed amq -M support.
7547         * amq/amq.c (mount_map): Removed.
7548         (main): Removed -M option handling.
7549         Removed transport-type specific CLIENT creation.
7550         (get_secure_amd_client, amq_bind_resv_port, privsock): Removed.
7551
7552         * amq/amq.8: Removed -M documentation.
7553         * doc/am-utils.texi (Top-level Filesystem): Removed amq -M
7554         reference, but retain comment on mount -t amd.
7555         (Controlling Amd): Likewise.
7556
7557         * tasks: Removed this task.
7558
7559 Fri Jan 12 23:18:26 2001  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7560
7561         * conf/autofs/autofs_*.c: Bump copyright year to 2001.
7562         * hlfsd/hlfsd.h (HLFSD_VERSION): Likewise.
7563
7564         * aux/macros/check_autofs_style.m4: Renamed solaris[12] styles to
7565         solaris_v1, solaris_v2_v3 to reflect that these are AutoFS
7566         protocol version numbers, not solaris versions.
7567         * conf/autofs/autofs_solaris[12].[ch]: Renamed to
7568         autofs_solaris_{v1, 2_v3}.[ch] to reflect this.
7569         * Makefile.am (EXTRA_DIST_CONF): Likewise.
7570
7571         * aux/macros/check_autofs_style.m4: Use solaris2 style for both
7572         versions 2 and 3 of the AutoFS protocol.
7573
7574         Handle missing AUTOFS_POSTUNMOUNT, AUTOFS_POSTMOUNT (unnecessary
7575         with Solaris 8 mntfs).
7576
7577         * conf/autofs/autofs_solaris2.c (xdr_postumntreq, xdr_postumntres,
7578         xdr_postmountreq, xdr_postmountres, autofs_postunmount_2_req,
7579         autofs_postmount_2_req ): Don't define for version 3.
7580         (autofs_program_2): Don't handle AUTOFS_POSTUNMOUNT,
7581         AUTOFS_POSTMOUNT if missing.
7582
7583         * conf/nfs_prot/nfs_prot_sunos5_8.h: Enable AutoFS support.
7584
7585         * aux/macros/check_autofs_style.m4: Use empty autofs_default.[ch]
7586         files on systems without existing autofs port.
7587         * conf/autofs/autofs_default.[ch]: New files, empty.
7588         * Makefile.am (EXTRA_DIST_CONF): Distribute them.
7589         * INSTALL: With this change, Solaris 8 and Tru64 5.1 compile and
7590         link.
7591
7592 2001-01-12  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7593
7594         * Makefile.am (EXTRA_DIST): distribute new LDAP files.
7595
7596         * README.ldap, ldap-id.txt, ldap-id.ms: LDAP status information,
7597         proposed Schema, and internet draft.
7598
7599 Fri Jan 12 22:27:07 2001  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7600
7601         * Support Tru64 UNIX V5.1:
7602
7603         * conf/nfs_prot/nfs_prot_osf5_1.h: New file.
7604
7605         * Makefile.am (EXTRA_DIST_CONF): Distribute it.
7606
7607         * aux/macros/check_nfs_prot_headers.m4: Tru64 UNIX V5.1 has
7608         AutoFS, need to disable it until a port exists.
7609
7610         * INSTALL, doc/am-utils.texi (Supported Platforms): Mention new
7611         minor port.
7612
7613 2001-01-09  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7614
7615         * ALL: bump copyright year to 2001.
7616
7617 2001-01-05  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7618
7619         * acconfig.h: correct comments for NODEV/NONDEV mount options
7620
7621 Fri Jan  5 05:12:02 2001  Erez Zadok  <ezk@subzero.cs.columbia.edu>
7622
7623         * libamu/xdr_func.c: removed ugly casts to "groups*", now that
7624         irix6's nfs_prot.h is fixed.
7625
7626         * conf/nfs_prot/nfs_prot_irix6.h: copied relevant parts of
7627         <rpcsvc/mount.h> here so we don't have to include this header.
7628
7629 2001-01-04  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7630
7631         * conf/nfs_prot/nfs_prot_irix6.h: redefine "groups" typedef to
7632         struct groups, not the pointer to this struct.
7633
7634         * include/am_xdr_func.h: prototype should take "groups *" as 2nd
7635         arg.
7636
7637         * libamu/xdr_func.c (xdr_groupnode, xdr_exportnode): change
7638         casting of second arg of xdr_groups to "groups *".  It's only
7639         needed for irix6, due to problems with xdr_groups on that platform.
7640         (xdr_groups): prototype should take "groups *" as 2nd arg.
7641
7642         * conf/nfs_prot/nfs_prot_aix*.h: correct xdr_groups extern
7643         definition.  Report from Ahmon Dancy <dancy@franz.com>.
7644
7645 2000-12-06  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
7646
7647         * include/am_defs.h: force non-inclusion of <linux/fs.h> via
7648         <linux/auto_fs.h>
7649
7650         * conf/autofs/autofs_linux.c (autofs_mounted): rename
7651         AUTOFS_MIN_PROTO_VERSION to AUTOFS_MIN_VERSION (leftover from
7652         previous commit)
7653
7654         * configure.in: fixed libtool version
7655
7656 2000-12-02  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
7657
7658         * doc/am-utils.texi (opts Option): document lock/nolock
7659
7660 2000-12-02  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
7661
7662         * conf/autofs/autofs_linux.h: added struct autofs_pending_mount;
7663         modified autofs_fh_t to have a linked list of autofs_pending_mount;
7664         added some support for autofs4
7665
7666         * conf/autofs/autofs_linux.c: use a linked list for pending
7667         request, to allow for handling multiple simultaneous request;
7668         incipient non-functional support for autofs4; incipient
7669         non-functional support for bind-mounting
7670
7671         * amd/amd.c (main): print a warning if PROCLOCK is requested but
7672         the O/S doesn't support it
7673
7674         * libamu/mount_fs.c (mnt_flags): allow the use of the "nolock"
7675         option
7676
7677         * include/am_defs.h: don't include <linux/fs.h> on a glibc2
7678         system; include <linux/auto_fs4.h> if it exists, instead of
7679         <linux/auto_fs.h>
7680
7681         * include/am_compat.h: define the "nolock" mnttab option if the
7682         NONLM NFS mount option is defined
7683
7684         * acconfig.h: added MNT2_NFS_OPT_NONLM, MNT2_GEN_OPT_BIND
7685
7686         * configure.in: added detection of the NONLM Linux NFS mount
7687         option; added a clarification for the library versioning rules and
7688         increased the minor level; added detection of <linux/auto_fs4.h>
7689         and the MS_BIND generic mount option
7690
7691 2000-11-29  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
7692
7693         * Enabled Solaris 2.7 autofs support (tested, works)
7694
7695         * Updated NEWS, README.autofs
7696
7697         * Updated Makefile's, make dist is now fixed
7698
7699         * Fixed potential memory leak in map.c
7700
7701         * Fixed autofs style detection for solaris 2.[67]
7702
7703         * Added a few casts in autofs_solaris2.c, needed on Solaris 2.7
7704
7705 2000-11-28  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
7706
7707         More Solaris 2.[67] work in progress:
7708
7709         * changed the API for the mount/umount methods: fmount/fumount are
7710         gone, and mount/umount now take two arguments (am_node and mntfs)
7711
7712         * changed the semantics of the MFF_AUTOFS flag: MFF_AUTOFS now
7713         means the mntfs is a filesystem of type autofs, and AMF_AUTOFS
7714         means the am_node is a node on a filesystem of type autofs.
7715
7716         * renamed nfs_program_2_transp to current_transp so it can be used
7717         with autofs
7718
7719         * renamed quick_reply() to nfs_quick_reply()
7720
7721         * added two more autofs methods: autofs_umount_failed() and
7722         autofs_compute_mount_flags() -- it turns out that on sol2.6 the
7723         autofs mounts MUST be overlay'ed
7724
7725         * moved the autofs_mount_succeeded() into am_mounted()
7726
7727         * made amd *not* timeout autofs mounts -- the kernel will do it
7728         for us
7729
7730         * store dev and rdev of a mounted filesystem in the mntfs
7731         structure, to help autofs
7732
7733         * moved the rmdirs() call from uninit_mntfs() to am_umounted(), to
7734         prevent deadlocking with autofs
7735
7736         * amd/Makefile.am: shuffled things around to make
7737         update_build_version be the last thing that runs
7738
7739 2000-11-27  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
7740
7741         * split amd/ops_autofs.c into conf/autofs/autofs_<system>.c files
7742         and made configure create a symlink to the appropriate one
7743
7744         * moved the xdr autofs functions from libamu/xdr_func.c into the
7745         system-specific conf/autofs/autofs*.c
7746
7747         * added some more experimental code to the sol2.6 autofs support,
7748         but it's by no means functional
7749
7750 2000-11-27  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
7751
7752         * libamu/wire.c (getwire_lookup): truncate the hostname to
7753         MAXHOSTNAMELEN characters.
7754
7755 2000-11-26  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7756
7757         * include/am_utils.h (MAXHOSTNAMELEN): if not defined, set this to
7758         256 bytes, not 64.   Suggestion form Kris Kennaway
7759         <kris@FreeBSD.org>.
7760
7761 2000-11-26  Erez Zadok  <ezk@dmath5.geometrie.tuwien.ac.at>
7762
7763         * configure.in (AC_CHECK_MNT2_NFS_OPTS): check for NFS mount
7764         options kerb, rdirplus, readdirsize, and xlatecookie
7765         (NetBSD-1.5K).
7766
7767         * acconfig.h: recognize NFS mount options rdirplus, readdirsize,
7768         and xlatecookie (NetBSD-1.5K)
7769
7770 2000-11-24  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7771
7772         * amd/srvr_nfs.c: comment on NFS proto search order.
7773
7774         * libamu/xutil.c (real_plog): don't try to write the last byte of
7775         the fmt buf.  security suggtion from NetBSD: Thomas Klausner
7776         <wiz@danbala.ifoer.tuwien.ac.at>
7777
7778 2000-11-22  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
7779
7780         * amd/amfs_auto.c (amfs_auto_bgmount): removed the initialization of
7781         fattr.na_fileid, it is now done in map.c when the map is initialized
7782
7783         * amd/map.c (init_map): initialize fattr.na_fileid to am_gen, not
7784         to 0, to avoid cache aliasing problems on Linux (and to follow the
7785         NFS spec!)
7786
7787 2000-11-22  Thomas Klausner <wiz@danbala.ifoer.tuwien.ac.at>
7788
7789         * libamu/mount_fs.c (mount_fs): avoid using extra limited-size buf
7790         (security)
7791
7792         * libamu/xutil.c, fsinfo/fsinfo.h, include/am_utils.h: use
7793         __attribute__, __format__, and __printf__ for GCC string auditing.
7794
7795         * wire-test/wire-test.8: this is not a section 8L man page.
7796
7797         * libamu/xutil.c (expand_error): don't use sys_nerr on systems
7798         that support strerror().
7799         (dplog): fmt is const
7800         (plog): fmt is const
7801         (real_plog): fmt is const.  use new expand_error function with its
7802         new return value. be more careful about running off the end of
7803         char[] fixed size buffers.
7804
7805         * libamu/wire.c (getwire): fix alignment error on alpha using an
7806         extra automatic storage variable ifrpool.
7807
7808         * hlfsd/hlfsd.c (fatal): use proper printf style to plog.
7809
7810         * fsinfo/fsinfo.c (find_username): getlogin() returns a const.
7811
7812         * fsinfo/fsi_util.c (error, lerror, lwarning, fatal, log): use
7813         vfprintf.
7814
7815         * fsinfo/fsi_lex.l (yyerror): use vfprintf.
7816
7817         * fixmount/fixmount.8: this is not a section 8L man page.
7818
7819         * doc/am-utils.texi (Hesiod maps): fixed typo.
7820
7821         * amd/sched.c (do_task_notify): typo in comment.
7822
7823         * amd/opts.c (expand_op): expand_error[] is a const char *.
7824
7825         * amd/amd.c (main): use proper printf style to plog.
7826
7827 2000-11-22  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7828
7829         * libamu/mount_fs.c (mnt_flags, compute_nfs_args): recognize
7830         proplist mnttab flag.  Bug fix from Wolfram Klaus
7831         <klaus@physik.fu-berlin.de>.
7832
7833 2000-11-19  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7834
7835         * updated config.guess, config.sub, and doc/texinfo.tex from
7836         mirrors
7837
7838         * Makefile.am (update): proper updating of config.* and texinfo
7839         from mirrors.
7840
7841         * aux/macros/check_nfs_prot_headers.m4: newer netbsd systems
7842         reports their system name as "netbsdelf" in config.guess.
7843
7844 2000-11-13  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7845
7846         * doc/am-utils.texi (opts Option): document new mount option
7847         "proplist"
7848
7849         * include/am_compat.h: define amd mount option "proplist" if the
7850         system doesn't recognize it, but the NFS bit flag exists.
7851
7852         * configure.in, acconfig.h: recognize/support "proplist" NFS mount
7853         option in Amd, useful under DU-4.0 to process ACLs over NFS
7854         mounts.
7855
7856 2000-11-10  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
7857
7858         * conf/mount/mount_linux.c (mount_linux): removed unnecessary
7859         rsize/wsize defaults -- performance killers on 2.2.18+ and 2.4.0+
7860
7861 2000-10-16  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7862
7863         * scripts/am-eject.in: accept "cdrom" and "floppy" as arguments.
7864
7865 2000-11-05  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
7866
7867         Too many changes to list them here. Here's a high level
7868         description:
7869
7870         * Forward-ported the Linux fixes from 6.0.5pre
7871
7872         * Got rid of a mountain of #ifdef DEBUG, replaced with smart
7873         header-file #ifdef's
7874
7875         * and, the grand finale: initial Solaris 2.6 autofs
7876         support. Compiles, mounts, gets requests; all the
7877         infrastructure is in place to actually implement the calls. Linux
7878         autofs might be a bit broken, but only compile-time so it'll be
7879         easy to fix.
7880
7881 2000-11-01  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7882
7883         * MIRRORS (Note): added a mirror at ufl.edu
7884
7885 2000-10-11  Erez Zadok  <ezk@lorien.dev.hydraweb.com>
7886
7887         * amq/amq.8: synchronize Amq's options with reality
7888
7889         * amq/amq.c (main): synchronize Amq's usage() string with reality
7890
7891 2000-10-10  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7892
7893         * scripts/ctl-amd.in: add targets condrestart (redhat) and
7894         reload.
7895
7896 2000-10-04  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7897
7898         * scripts/lostaltmail.in (vrfy_user): ensure that MAILDIR is
7899         defined.
7900
7901 2000-09-18  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7902
7903         * amd/opts.c (backslash): Bell char (ASCII 007) should be \g, not
7904         \a.
7905
7906 2000-09-17  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7907
7908         * include/am_utils.h: removed unused field opt_autopref
7909
7910         * amd/opts.c: removed unused variable $autopref
7911
7912 2000-09-05  Erez Zadok  <ezk@aladdin.dev.hydraweb.com>
7913
7914         * conf/mtab/mtab_svr4.c (lockfile): function not needed unless
7915         MOUNT_TABLE_ON_FILE is defined.
7916         mtlckname static var is onlyneeded if MOUNT_TABLE_ON_FILE.
7917         (update_mnttab_fields): only needed if MOUNT_TABLE_ON_FILE.
7918
7919 2000-09-03  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7920
7921         * buildall (Usage): typo in usage string
7922
7923 2000-08-25  Erez Zadok  <ezk@lynn.soscorp.com>
7924
7925         * conf/mount/mount_linux.c (mount_linux): MNT2_NFS_OPT_VER3 may
7926         is no defined on older Linux systems (kernel 2.0.36)
7927
7928 2000-08-19  Erez Zadok  <ezk@earth.cs.columbia.edu>
7929
7930         * scripts/amd.conf.5: correct swapped descriptions for ldap_base
7931         and ldap_hostports.
7932
7933         * doc/am-utils.texi: correct swapped descriptions for ldap_base
7934         and ldap_hostports.
7935
7936         * scripts/amd.conf-sample: swap examples for ldap_base and
7937         ldap_hostports.
7938
7939 2000-08-13  Erez Zadok  <ezk@earth.cs.columbia.edu>
7940
7941         * scripts/amd.conf-sample: -O is CLI equivalent to "os"
7942         amd.conf parameter
7943
7944 2000-07-30  Erez Zadok  <ezk@earth.cs.columbia.edu>
7945
7946         * scripts/amd.conf-sample (nfs_retransmit_counter): correct
7947         meaning and use of parameter
7948
7949 2000-07-23  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7950
7951         * doc/am-utils.texi: updated URLs to www.am-utils.org.
7952
7953 2000-07-04  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7954
7955         * doc/am-utils.texi (Supported Platforms): document osf4.0f
7956
7957 2000-06-19  Erez Zadok  <ezk@vir.cs.columbia.edu>
7958
7959         * doc/am-utils.texi (dollar Selector Variable): document
7960         ${dollar}.
7961
7962         * amd/opts.c: special new variable ${dollar} which expands into a
7963         literal '$' sign.  Otherwise there is no way to include a literal
7964         dollar symbol in an amd map.
7965
7966 2000-06-11  Ion Badulescu  <ib42@moisil.cs.columbia.edu>
7967
7968         * amd/opts.c (eval_selectors): don't deref opt after it's been
7969         XFREE'd
7970
7971 2000-06-11  Erez Zadok  <ezk@earth.cs.columbia.edu>
7972
7973         * amd/opts.c: move mount_type expansion until later in the list,
7974         so common variable are "hit" first.
7975
7976 2000-06-11  Ion Badulescu  <ib42@moisil.cs.columbia.edu>
7977
7978         * amd/opts.c (split_opts, eval_selectors): split old function
7979         eval_opts into two, one that only splits non-selectors and
7980         assigns the values to fs_static, and one that only evaluates
7981         selectors; also simplified the rather obfuscated logic inside
7982         these functions
7983         (expand_op): made it take a char * instead of a structure from
7984         which it was using only one field (a char *). Also now returns a
7985         char * instead of modifying said structure in place
7986         (expand_opts): deal with the change above
7987         (expand_selectors): renamed from expand_key
7988         (expand_options): new function, expands non-selectors; it's the
7989         complement of expand_selectors, both of which are just wrappers
7990         around expand_op()
7991         (eval_fs_opts): use the new split_opts, eval_selectors to allow
7992         using options (like ${rhost}) in selectors
7993
7994 2000-06-11  Ion Badulescu  <ionut@moisil.cs.columbia.edu>
7995
7996         * config.guess.long: munge config.guess' output so that intel
7997         linux appears as i386-pc-linux
7998
7999 Fri Jun  9 16:06:56 2000  Erez Zadok  <ezk@defiant.dev.hydraweb.com>
8000
8001         * conf/nfs_prot/nfs_prot_bsdi2.h: getifaddrs() on bsdi2 is broken.
8002         Don't use it.
8003
8004 2000-06-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8005
8006         * amd/mapc.c (maptypes): Change default allocation mode to
8007         MAPC_INC where reload support is missing to avoid warning in
8008         mapc_create().
8009
8010 2000-06-09  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8011
8012         * conf/nfs_prot/nfs_prot_sunos5_5.h: turn off autofs support for
8013         solaris 2.5 until a full port can be done.
8014
8015 2000-06-07  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8016
8017         * Makefile.am, aux/GNUmakefile: fix maintainer rules to update
8018         config.* and texinfo.tex files.
8019
8020         * amd/nfs_subr.c (nfsproc_getattr_2_svc): Don't conditionalize the
8021         mtime update of the symlinks on the SYMTTL option, but rather
8022         delay unmount of what was looked up using am_timeo_w.  Patch from
8023         Nick Williams <Nick.Williams@msdw.com>.  As Nick says "Basically:
8024         during unmount, increment the parent dir's mtime (fixes
8025         people doing amq -u). During stat, increase the TTL (to fix bad-luck
8026         timeouts), but leave the mtime alone."
8027
8028         (nfsproc_lookup_2_svc, nfsproc_readlink_2_svc, unlink_or_rmdir,
8029         nfsproc_readdir_2_svc): correctly update d_drops stats for amq -s.
8030         Patch from Nick Williams <Nick.Williams@msdw.com>.
8031
8032         * amd/map.c (unmount_mp): update mtime of amd symlink to further
8033         reduce the chances of race conditions between unmounting and
8034         looking up an entry again.  Patch from Nick Williams
8035         <Nick.Williams@msdw.com>.
8036
8037         * README: updated instructions
8038
8039         * bootstrap: remove log file before existing
8040
8041 2000-06-06  Erez Zadok  <ezk@aladdin.dev.hydraweb.com>
8042
8043         * configure.in: no longer using aux/ subdir. don't force autoconf
8044         2.14. comment out (but leave explanation) everything that's needed
8045         for autoconf 2.14, so for now it works with autoconf-2.13, but the
8046         code is ready for 2.14 when it is released.  Similar changes to
8047         make code work with automake-1.4, until the next release comes
8048         out.
8049
8050         * libamu/Makefile.am: include definitions that are required in
8051         automake 1.4, but won't be necessary when the next release of
8052         automake comes out (see XXX comments).
8053
8054         * cache_check_dynamic.m4, check_checkmount_style.m4,
8055         check_mnttab_style.m4, check_mount_style.m4,
8056         check_network_transport_type.m4, check_nfs_prot_headers.m4,
8057         check_umount_style.m4: use symlink creation code that works for
8058         both autoconf 2.13 and 2.14 (when the latter comes out).
8059
8060         * bootstrap: new script for maintainers to run to update autoconf,
8061         automake, and libtool related files.  Has the same effect as
8062         "buildall -K".
8063
8064         * removed dependencies on CVS versions of autoconf, automake, and
8065         libtool, especially the modified automake I had.  This is so that
8066         maintainers could built the auto* files out of the latest released
8067         GNU autoconf, automake, and libtool.  However, without my nice
8068         patches to automake, many files that used to live in the aux/
8069         subdir now were moved to the top level source directory: acconfig.h,
8070         acinclude.m4, aclocal.m4, aux_conf.h.in, config.guess,
8071         config.guess.long, config.h.in, config.sub, configure.in, depcomp,
8072         install-sh, ltconfig, ltmain.sh, missing, and mkinstalldirs.  Also
8073         texinfo.tex and mdate-sh moved from aux/ dir to doc/ dir.
8074
8075 2000-06-05  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8076
8077         * cvs-server.txt: instructions for maintainers to access the CVS
8078         server for am-utils.
8079
8080 2000-06-03  Ion Badulescu  <ionut@moisil.cs.columbia.edu>
8081
8082         * amd/restart.c (restart): grr.. passing around initialized
8083         structures is *really* bad habit. memset(mo, 0) so at least we can
8084         test for NULL pointers...
8085
8086 2000-06-02  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8087
8088         * amd/am_ops.c (ops_match): changed XLOG_USER messages about
8089         merging addopts options to the more appropriate XLOG_INFO.  Patch
8090         submitted by Tom Schmidt <tschmidt@micron.com>.
8091
8092         * config.{guess,sub}: make sure chmod'ed a+rx.  Updated from
8093         latest GNU copies.
8094
8095 2000-05-30  Ion Badulescu  <ionut@moisil.cs.columbia.edu>
8096
8097         * aux/configure.in: bump up the version to 6.1a2
8098
8099 2000-05-29  Ion Badulescu  <ionut@moisil.cs.columbia.edu>
8100
8101         * released snapshot am-utils-6.1a1
8102
8103 2000-05-29  Ion Badulescu  <ionut@moisil.cs.columbia.edu>
8104
8105         * amd/ops_autofs.c (autofs_mounted): retrieve the autofs protocol
8106         version and store it in the fh
8107         (autofs_get_opts): support protocol version 4
8108
8109         * amd/mntfs.c (uninit_mntfs): clear the autofs fh pointer after
8110         releasing it
8111
8112         * conf/transp/transp_sockets.c (amu_svc_getcaller): cast result of
8113         svc_getcaller() to sockaddr_in, to appease glibc 2.2
8114
8115         * amd/amfs_auto.c (amfs_auto_bgmount): if the filesystem wants
8116         autofs handling and the parent is already handled by autofs,
8117         handle this filesystem as well
8118         (amfs_auto_mount): create the mountpoint for an autofs mount
8119         (amfs_auto_umount): do a real UMOUNT_FS() call for autofs mounts
8120
8121         * include/am_utils.h (FS_AUTOFS): new flag signalling that the
8122         filesystem wants autofs handling; toplvl, auto, host and direct
8123         have this flag, at least for now
8124
8125 2000-05-28  Erez Zadok  <ezk@mulberry.mcl.cs.columbia.edu>
8126
8127         * doc/am-utils.texi (Network Filesystem Group): minor typos
8128
8129 2000-05-28  Ion Badulescu  <ionut@moisil.cs.columbia.edu>
8130
8131         * amd/autil.c (am_unmounted): check mp->am_parent before dereferencing
8132
8133         * amd/srvr_nfs.c (find_nfs_srvr): if NFS_SCALEDOWN, force
8134         version=2 and proto=udp and try again
8135
8136         * amd/ops_nfs.c (prime_nfs_fhandle_cache): take an explicit mntfs
8137         instead of a voidp; handle the NFS_SCALEDOWN case by removing the
8138         cached server entry and re-querying the server
8139
8140         * amd/amfs_toplvl.c (amfs_toplvl_mount): removed ugly if
8141         statement, assign mnttype from the fs-specific mf_ops->fs_type
8142         instead
8143
8144         * amd/amfs_nfsx.c (amfs_nfsx_init): call fs_init() only if it's
8145         defined;
8146         (amfs_nfsx_remount): removed superfluous check for fmount_fs -- it
8147         always exists
8148         (amfs_nfsx_umount): removed the hacked am_node -- umounted() now
8149         takes an mntfs; call umounted() only if it's defined
8150
8151         * amd/amfs_auto.c: removed amfs_auto_umounted and moved its
8152         functionality into am_umounted().
8153         (amfs_auto_cont): Linux hack: if we got an EINVAL, mark the mntfs
8154         as needing an "NFS scaledown" and retry the operation
8155
8156         * amd/amfs_*.c: changed all fmount/fumount functions to
8157         mount/umount and made them take an am_node instead of an
8158         mntfs. This is a first step towards an amfs/ops API separation.
8159
8160         * amd/{amfs,ops}_*.c: changed the umounted() function to take an
8161         mntfs instead of an am_node
8162
8163 2000-05-28  Ion Badulescu  <ionut@moisil.cs.columbia.edu>
8164
8165         * amd/amfs_toplvl.c (mount_amfs_toplvl): init error to 0 to shut
8166         up gcc
8167
8168         * aux/macros/check_hide_mount_type.m4: revert to the 6.0 version
8169         which always defines HIDE_MOUNT_TYPE
8170
8171         * amd/ops_autofs.c (autofs_mounted): remove MFF_AUTOFS
8172         initialization -- now done in init_mntfs()
8173
8174         * amd/mntfs.c (init_mntfs): init mf_flags to MFF_AUTOFS if we are
8175         mounting an autofs-style map
8176
8177         * amd/*.c: use the MFF_AUTOFS flag instead of doing a costly STREQ
8178
8179         * amd/amfs_toplvl.c (mount_amfs_toplvl): MTYPE_TYPE is not
8180         necessarily a string type, so handle the nfs/autofs separation
8181         differently
8182
8183         * amd/amfs_auto.c (amfs_auto_bgmount): removed initialization of
8184         opt_mount_type (now done in ops_match())
8185
8186         * amd/am_ops.c (ops_match): need to initialize opt_mount_type if
8187         it's not initialized yet
8188
8189 2000-05-27  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8190
8191         * libamu/wire.c (getwire_lookup): handle calling irs_gen_acc with
8192         one or two arguments (bsdi3 vs. bsdi4)
8193
8194 2000-05-27  Ion Badulescu  <ib42@chestnut.mcl.cs.columbia.edu>
8195
8196         * libamu/xutil.c (amu_release_controlling_tty): removed an unused
8197         variable from the previous patch
8198
8199 2000-05-26  Ion Badulescu  <ionut@moisil.cs.columbia.edu>
8200
8201         * aux/macros/check_autofs_style.m4: fixed substitution for default
8202         case
8203
8204         * libamu/xutil.c (amu_release_controlling_tty): close standard
8205         file descriptors, re-open them as /dev/null
8206
8207         * include/am_defs.h: don't try to include both <ndbm.h> and
8208         <db1/ndbm.h>, it really doesn't work
8209
8210 2000-05-16  Ion Badulescu  <ib42@earth.cs.columbia.edu>
8211
8212         * hlfsd/stubs.c (nfsproc_lookup_2_svc): added code to update mtime
8213         on lookup if MNT2_NFS_OPT_SYMTTL is not defined (copied from
8214         getattr).  This fixes the problem introduced by the Linux nfsv3
8215         patches.
8216
8217 2000-05-12  Ion Badulescu  <ionut@moisil.cs.columbia.edu>
8218
8219         * Makefile.am (EXTRA_DIST_CONF): added conf/autofs/autofs_linux.h
8220
8221 2000-05-10  Ion Badulescu  <ib42@earth.cs.columbia.edu>
8222
8223         * amd/ops_autofs.c (autofs_handle_fdset): call
8224         autofs_lookup_failed instead of autofs_mount_failed, if the name
8225         is not in the map
8226         (autofs_umount_{succeeded,failed}): pass the actual mount point,
8227         not its parent, as it's needed for clean-up;
8228
8229         * amd/autil.c (am_unmounted): notify autofs that the umount
8230         succeeded
8231
8232         * amd/amfs_link.c (amfs_link_[u]mount): autofs link notification
8233         moved elsewhere
8234
8235 2000-05-09  Ion Badulescu  <ionut@moisil.cs.columbia.edu>
8236
8237         * amd/amfs_auto.c (amfs_auto_bgmount): initialize opt_mount_type
8238         if necessary;
8239         (amfs_auto_mounted): test if opt_mount_type is NULL first
8240         (amfs_auto_mount): revert earlier change
8241
8242         * amd/ops_autofs.c (autofs_mount_failed): remove autofs directory
8243         if mount failed
8244
8245 2000-05-09  Ion Badulescu  <ionut@moisil.cs.columbia.edu>
8246
8247         * amd/ops_autofs.c (autofs_link_mount): use am_link as target
8248
8249         * amd/map.c (unmount_mp): release file handle for autofs f/s about
8250         to be unmounted; this leak was preventing the unmount altogether
8251
8252         * amd/amfs_auto.c (amfs_auto_umount): removed autofs-specific
8253         code, was broken
8254         (amfs_auto_bgmount): nfs mounts + sublinks is a valid combination,
8255         handle it
8256
8257 2000-05-07  Ion Badulescu  <ib42@moisil.cs.columbia.edu>
8258
8259         * Merged changes from stable branch
8260
8261 2000-04-30  Erez Zadok  <ezk@beetle.mcl.cs.columbia.edu>
8262
8263         * include/am_defs.h, aux/macros/mount_headers.m4,
8264         aux/macros/try_compile_anyfs.m4: include linux/kdev_t.h and
8265         linux/list.h before including linux/fs.h, and define __KERNEL__
8266         for those two headers.  All of this to get a couple of definitions
8267         that are needed in the new struct vfsmount.
8268
8269         * aux/configure.in: look for <linux/kdev_t.h> and <linux/list.h>.
8270
8271         * include/am_defs.h, aux/macros/mount_headers.m4: avoid conflicts
8272         between linux/in.h. and netinet/in.h (linux-2.3.99-pre6), by
8273         defining _LINUX_IN_H so it doesn't get included.
8274
8275 2000-04-03  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8276
8277         * minor new ports: i686-pc-linux-gnu-rh6.2,
8278         i386-unknown-freebsdelf3.4, i586-pc-linux-gnu-rh6.2.
8279
8280 2000-04-03  Erez Zadok  <ezk@vir.cs.columbia.edu>
8281
8282         * aux/acconfig.h: move all #undef macros above @TOP@, so they can
8283         be recognized by pickier autoconf.
8284
8285 2000-04-03  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8286
8287         * aux/macros/cache_check_dynamic.m4 (ac_tmp): use correct echo -n
8288         or \c.
8289
8290 2000-03-25  Erez Zadok  <ezk@beetle.mcl.cs.columbia.edu>
8291
8292         * include/am_defs.h: ditto
8293
8294         * aux/macros/{mount_headers,try_compile_anyfs}.m4: force
8295         non-inclusion of <linux/string.h>.  Breaks build on newer 2.3
8296         kernels.
8297
8298 2000-02-26  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8299
8300         * doc/am-utils.texi (Amq -w option): document new amq -w option.
8301
8302         * amq/amq.8: document new amq -w option.
8303
8304         * amq/amq.c: disable last remains of insecure amq -M code.
8305         (main): add amq -H option to show usage.
8306         (main): new amq -w option, translates getpwd() into an amd path.
8307
8308 2000-02-25  Ion Badulescu  <ionut@moisil.cs.columbia.edu>
8309
8310         * libamu/util.c (get_server_pid): new function
8311
8312         * hlfsd/hlfsd.c (main): make use of HIDE_MOUNT_TYPE
8313
8314         * conf/transp/transp_sockets.c: removed create_autofs_service
8315
8316         * conf/mount/mount_linux.c: added autofs mount options; split
8317         mount_linux into two functions, itself and do_mount_linux
8318
8319         * aux/macros/check_hide_mount_type.m4: better failover
8320
8321         * aux/configure.in: changed version to 6.1a1; added
8322         AC_CHECK_AUTOFS_STYLE
8323
8324         * aux/aux_conf.h.in: added @am_utils_autofs_style@
8325
8326         * amd/opts.c: added "mount_type" option
8327
8328         * amd/ops_autofs.c: ifdef-ed out solaris code; moved all autofs
8329         variables in here; split create_autofs_service into sun and linux
8330         specific functions
8331
8332         * amd/nfs_start.c: removed autofs-specific variables
8333
8334         * amd/map.c (get_root_nfs_fh): renamed root_fh to get_root_nfs_fh
8335         (get_root_ap): renamed root_ap to get_root_ap
8336
8337         * amd/amfs_toplvl.c (amfs_toplvl_ops): replaced
8338         amfs_toplvl_mounted with amfs_auto_mounted
8339         (mount_amfs_toplvl): moved code around, added autofs handling
8340         (amfs_toplvl_mounted): removed
8341
8342         * amd/amfs_nfsl.c (amfs_nfsl_ops): removed amfs_auto_fu?mount,
8343         replaced with amfs_nfsl_u?mount
8344
8345         * amd/amfs_linkx.c (amfs_linkx_ops): removed amfs_auto_fumount,
8346         replaced with amfs_link_umount
8347
8348         * amd/amfs_link.c (amfs_link_ops): removed amfs_auto_fu?mount,
8349         replaced with amfs_link_u?mount
8350
8351         * amd/amfs_direct.c (amfs_direct_ops): changed "mounted" function
8352         from amfs_toplvl_mounted to amfs_auto_mounted
8353
8354         * all: added autofs hooks throughout the code
8355
8356         * amd/am_ops.c (vops): autofs_ops doesn't belong in here, removed
8357
8358         * README.autofs: linux status update
8359
8360 2000-02-24  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8361
8362         * minor new port: alphaev6-dec-osf5.0
8363
8364         * doc/am-utils.texi (Supported Platforms): hpux-11 supports NFSv3,
8365         but only for UDP.
8366
8367         * released snapshot am-utils-6.0.4s3
8368
8369         * conf/nfs_prot/nfs_prot_hpux11.h: support NFSv3 in hpux-11.  Note
8370         that hpux-11 NFSv3 supports UDP only, and trying TCP locks up the
8371         kernel!  Must set nfs_proto=udp in amd.conf [global].
8372
8373         * aux/config.guess.long: set and export PATH separately.  DU5
8374         /bin/sh doesn't like setting it on the command line in a
8375         back-tick'ed `script`.
8376
8377 2000-02-24  Ion Badulescu  <ionut@moisil.cs.columbia.edu>
8378
8379         * Makefile.am: removed struct_nfs_mount_data.m4
8380
8381         * aux/macros/struct_nfs_mount_data.m4: deleted
8382
8383         * aux/acconfig.h: removed definition for HAVE_NFS_MOUNT_DATA
8384
8385         * aux/configure.in: removed check for struct nfs_mount_data
8386
8387 2000-02-24  Ion Badulescu  <ib42@beetle.mcl.cs.columbia.edu>
8388
8389         * amd/amfs_auto.c (amfs_auto_bgmount): changed log message to
8390         avoid having 'failed' in a message not indicating a failure
8391         (amfs_auto_lookuppn): ditto
8392
8393         * amd/ops_autofs.c (autofs_bgmount): ditto
8394         (autofs_lookuppn): ditto
8395
8396 2000-02-24  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8397
8398         * added .cvsignore files into the CVS repository.
8399
8400         * remove files which can be regenerated: .in, configure, some
8401         files in aux/, and more.
8402
8403 2000-02-20  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8404
8405         * doc/am-utils.texi (nfs_vers/nfs_proto): description of two
8406         parameters was reversed.  Reported by Paul Jenner
8407         <p.jenner@eim.surrey.ac.uk>.
8408
8409 2000-02-16  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8410
8411         * released snapshot am-utils-6.0.4s2
8412
8413         * amd/mntfs.c (realloc_mntfs): don't fallback on certain ops such
8414         as inherit, error, and toplvl (failover code).
8415
8416         * amd/conf.c (gopt_nfs_vers, gopt_nfs_proto): two new (documented)
8417         global options in amd.conf: one to set the NFS version globally
8418         (i.e., nfs_vers=2), and one to set the NFS protocol globally
8419         (i.e., nfs_proto=udp).
8420
8421         * amd/mntfs.c (realloc_mntfs): attempt to fix the failover code,
8422         so when a matching mount entry failed, try the next one.
8423
8424 2000-02-15  Erez Zadok  <ezk@moisil.cs.columbia.edu>
8425
8426         * amd/amfs_auto.c: a new debug option "readdir" to trace the
8427         progress of the browsable_dirs code.
8428
8429         * conf/mount/mount_linux.c (mount_linux): ensure that the new
8430         linux NFSv3 code works for v2-only machines.
8431
8432 2000-02-14  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8433
8434         * aux/configure.in: cleanup unused dnl entries.
8435
8436         * conf/mount/mount_linux.c (parse_opts): typo: check for string
8437         equality, not string inequality for pcfs and cdfs.
8438
8439         * aux/acconfig.h: look for MNT2_NFS_OPT_INTR as well.
8440
8441         * libamu/mount_fs.c (compute_mount_flags): check for INTR and
8442         NOINTR options as well (intr was never passed to linux mount
8443         syscall).
8444
8445 2000-02-10  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8446
8447         * released snapshot am-utils-6.0.4s1
8448
8449         * aux/GNUmakefile: buildall -k (for maintainers) temporarily now
8450         ignores autoconf warnings: "The macro `AC_OUTPUT_COMMANDS' is
8451         obsolete".  It is harmless but annoying, and will be fixed when
8452         autoconf and automake in their respective CVS trees are working
8453         and in sync again.
8454
8455         * scripts/amd.conf.5: document -D hrtime,xdrtrace
8456
8457         * all man pages: update copyright to 2000.
8458
8459         * doc/am-utils.texi: update copyright to 2000.
8460
8461 Wed Feb  9 14:22:31 2000  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8462
8463         * include/am_utils.h (D_XDRTRACE): Define.
8464         (D_TEST): Disable here.
8465
8466         * libamu/xutil.c (dbg_opt): Handle it.
8467
8468         * doc/am-utils.texi (-D-Option): Document it.
8469
8470         * libamu/xdr_func.c: Use it instead of D_TRACE.
8471
8472         * include/am_utils.h (D_HRTIME): Define.
8473
8474         * doc/am-utils.texi (-D-Option): Document it.
8475
8476         * libamu/xutil.c (show_time_host_and_name): Print high-resolution
8477         timestamp if available and activated.
8478
8479         * aux/configure.in (clock_gettime): Check for it in -lrt and
8480         -lposix4.
8481
8482         * hlfsd/hlfsd.c (mnttab_file_name): Initialize to MNTTAB_FILE_NAME
8483         if defined, even for some systems with in kernel mount tables.
8484
8485 2000-02-08  Ion Badulescu  <ionut@moisil.cs.columbia.edu>
8486
8487         * aux/macros/mount_headers.m4: remove #if 0 around linux/nfs.h to
8488         allow compiles against libc5
8489
8490         * aux/macros/check_mnttab_type.m4: avoid detecting nfs3 under
8491         linux when the kernel doesn't support it
8492
8493         * include/am_compat.h: add workaround for linux efs
8494
8495 2000-02-08  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8496
8497         * aux/configure.in: test for ANSI C compiler (before AC_C_CONST).
8498         Comment out unused AC_STRUCT_ST_RDEV (which is obsolete anyway).
8499
8500 2000-02-07  Ion Badulescu  <ionut@moisil.cs.columbia.edu>
8501
8502         * libamu/mount_fs.c (compute_nfs_args): turn on VER3 option for
8503         nfs (linux NFSv3).
8504
8505         * include/am_defs.h: avoid reinclusion of some header files under
8506         linux.
8507
8508         * conf/nfs_prot/nfs_prot_linux.h: support NFSv3.
8509
8510         * conf/mount/mount_linux.c (mount_linux): support nfs mount
8511          (implementation) version 4 for NFSv3.
8512
8513         * aux/macros/try_compile_nfs.m4: use AC_MOUNT_HEADERS.
8514
8515         * aux/macros/mount_headers.m4: don't include <linux/fs.h> (may
8516         need to fix the code on other linux machines).
8517
8518         * aux/macros/check_mnttab_type.m4 (ac_safe): ditto.
8519
8520         * aux/macros/check_fs_mntent.m4 (ac_safe): check for nfs3 option
8521         under linux (depends on ac_cv variable, is that a good idea?)
8522
8523         * added NFSv3 support for linux
8524
8525         * aux/{configure.in,acconfig.h}: new option ver3
8526
8527         * aux/macros/mount_headers.m4: commented out inclusion of
8528         linux/fs.h, it's not needed on rh61 (and actually generates
8529         conflicts), we should see if it's still needed on libc5 systems
8530
8531         * aux/macros/try_compile_nfs.m4: use AC_MOUNT_HEADERS rather than
8532         try to have its own (out of date) list of headers and ifdef's and
8533         ...
8534
8535 2000-02-07  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8536
8537         *******************************************************************
8538         *** Released am-utils-6.0.3                                     ***
8539         *******************************************************************
8540
8541 2000-02-06  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8542
8543         * conf/mount/mount_default.c: dummy empty file to work around a
8544         limitation of automake (it looks for LIBBOBJS in aclocal.m4 and
8545         processes them even if they are optional, enclosed in if/else).
8546
8547 2000-01-29  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8548
8549         * released snapshot am-utils-6.0.3s5
8550
8551 2000-01-25  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8552
8553         * update to use latest version of autoconf, automake, and libtool.
8554
8555         * aux/GNUmakefile (depcomp): "make update" should also update the
8556         depcomp script.
8557
8558         * Makefile.am (EXTRA_DIST_AUX): include depcomp in distribution.
8559
8560         * aux/configure.in: use renamed AC_CHECK_AMU_FS.
8561
8562         * aux/macros/check_amu_fs.m4: renamed macro name and file name to
8563         say AMU_FS, not AM_FS.
8564
8565         * aux/acconfig.h: renamed HAVE_AM_FS_* to HAVE_AMU_FS_* because
8566         latest version of autoconf doesn't handle it (bug in 2.14a)
8567
8568         * aux/configure.in: require version 2.14 of autoconf.
8569
8570         * amd/mapc.c (mapc_reload_map): more fixes from Nick Williams.
8571
8572         * doc/am-utils.texi (Automount Filesystem): document type:=auto
8573         map browsability option.
8574
8575         * amd/mapc.c (make_entry_chain): patch from Steven Danz
8576         <sdanz@awc.kc.noaa.gov> to allow browsable auto maps.
8577
8578 2000-01-24  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8579
8580         * released snapshot am-utils-6.0.3s4
8581
8582         * amd/mapc.c (mapc_reload_map): fixes to sync maps even if they
8583         are set to mapcache:=sync.  Fix from Nick Williams
8584         <Nick.Williams@msdw.com>.
8585
8586 2000-01-20  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8587
8588         * released snapshot am-utils-6.0.3s3
8589
8590         * minor port to i386-unknown-netbsd1.4.1
8591
8592         * amd/nfs_subr.c (nfsproc_getattr_2_svc): patch from Nick Williams
8593         <Nick.Williams@msdw.com> to fix (or reduce the incidence of) stale
8594         file handles when doing rapid mounts and umounts in succession
8595         such as "ls /vol/foo ; amq -u /vol/foo ; ls /vol/foo"
8596
8597 2000-01-18  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8598
8599         * minor port to i386-pc-bsdi4.1.
8600
8601 2000-01-13  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8602
8603         * libamu/wire.c (getwire_lookup): pass NULL as conf_file (2nd)
8604         argument to irs_gen_acc(), which was changed in bsdi 4.1.
8605
8606 2000-01-12  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8607
8608         * amd/get_args.c (get_args): don't use MNTTAB_FILE_NAME for
8609         systems with in-kernel mount tables unless this macro is defined
8610         (Solaris 8).
8611
8612 2000-01-01  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8613
8614         * ALL: bump copyright year to 2000.
8615
8616 1999-12-16  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8617
8618         * conf/mount/mount_svr4.c (mount_svr4): optionstr exists on
8619         solaris 7, but should not be used unless MAX_MNTOPT_STR also
8620         exists (solaris 8).
8621
8622         * doc/am-utils.texi (opts Option): document new mount option:
8623         optionstr.
8624
8625 Fri Dec 10 01:31:53 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8626
8627         * conf/trap/trap_svr4.h (MOUNT_TRAP): Pass mount option string to
8628         mount_svr4().
8629         (mount_svr4): Adapt prototype.
8630         * conf/mount/mount_svr4.c (mount_svr4): Pass them to kernel so
8631         they are evaluated and show up in Solaris 8 in-kernel mnttab.
8632
8633         * aux/configure.in: Check for new Solaris 8 MS_OPTIONSTR mount(2)
8634         option.
8635         * aux/acconfig.h (MNT2_GEN_OPT_OPTIONSTR): Provide template.
8636
8637 1999-12-10  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8638
8639         * released snapshot am-utils-6.0.3s2
8640
8641 1999-12-09  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8642
8643         * doc/am-utils.texi (opts Option): document noexec and nomnttab
8644         (new to Solaris 8).
8645
8646         * Makefile.am (EXTRA_DIST_CONF): include nfs_prot_sunos5_8.h in
8647         distribution.
8648
8649         * applied fixes from Rainer Orth for Solaris 8.
8650
8651         * libamu/wire.c (getwire): increment the cp pointer in the loop
8652         body, because the ioctl() inside the "for" loop will overwrite the
8653         ifr structure, thus not detecting all of the interfaces.  Bug
8654         reported and fixed by Amitha Perera <perera@cs.rpi.edu>.
8655
8656 Thu Dec  9 19:09:38 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8657
8658         * conf/mtab/mtab_svr4.c (unlockmnttab, lockmnttab): No-ops if
8659         MOUNT_TABLE_ON_FILE.
8660
8661         * amd/get_args.c (get_args): Initialize mnttab_file_name even for
8662         in-kernel mount table.  conf/mtab/mtab_svr4.c (read_mtab) depends
8663         on a non-NULL value.
8664
8665         * amd/info_ldap.c (get_ldap_timestamp): Don't peek into opaque
8666         LDAP structure to get error code, but use it directly.
8667         (amu_ldap_search): Likewise.
8668
8669         * conf/nfs_prot/nfs_prot_sunos5_7.h: Rip superfluous and wrong
8670         ldap support.
8671         * conf/nfs_prot/nfs_prot_sunos5_8.h: Likewise.
8672
8673         * conf/nfs_prot/nfs_prot_sunos5_8.h: New file, doesn't typedef
8674         nfsstat, already in <nfs/nfs.h>.
8675         * aux/macros/check_nfs_prot_headers.m4: Use it for all Solaris
8676         versions beyond 7.
8677         Allow for micro versions of SunOS 5.[67].
8678
8679         * aux/configure.in: Check for new Solaris 8 Beta Refresh
8680         MS_NOMNTTAB mount(2) option.
8681         * aux/macros/check_mnttab_location.m4: Use it to test for
8682         mntfs-based in-kernel mnttab.
8683
8684         * aux/macros/os_cflags.m4: Treat Solaris 8 and higher like 2.6/7.
8685
8686         * aux/macros/check_fs_headers.m4: Revert test for duplicate
8687         objects.
8688         * aux/macros/check_fs_mntent.m4: Likewise
8689
8690         * aux/macros/HEADER: Fixed typo.
8691
8692         * include/am_defs.h: Likewise.
8693
8694 1999-12-01  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8695
8696         * aux/macros/*.m4: prepare for hpux-12 (assume same as hpux-11)
8697
8698 1999-11-16  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8699
8700         * BUGS: document glibc-2.1 nis file descriptor leak in yp_bind.
8701
8702         * amd/info_ldap.c (string2he): updated function which does not
8703         corrupt strings when called more than once.  Patch from
8704         JOHANN.PFEFFERL.JP@germany.agfa.com.
8705
8706 1999-11-15  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8707
8708         * MIRRORS (Asia): two new mirrors in Japan.
8709
8710 1999-11-10  Erez Zadok  <ezk@kosh.cs.columbia.edu>
8711
8712         * doc/am-utils.texi: document new variables for ${uid} and ${gid}.
8713
8714         * amd/nfs_subr.c (nfsproc_lookup_2_svc): find the uid/gid of the
8715         last lookup from the RPC credentials.
8716
8717         * aux/configure.in: upped version-info to 4:0:2 because I've added
8718         a new interface to libamu.
8719
8720         * libamu/misc_rpc.c (getcreds): moved function from hlfsd to here,
8721         so it can be used by amd.
8722
8723         * amd/opts.c: new variables ${uid} and ${gid}.
8724
8725 1999-10-15  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8726
8727         * scripts/ctl-amd.in: add "status" command that tells you if amd
8728         is running on not (same output as RedHat scripts).
8729         Added start_msg and stop_msg targets as they are used on HPUX.
8730         reported by Jon Peatfield <J.S.Peatfield@damtp.cam.ac.uk>.
8731
8732 1999-10-13  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8733
8734         * released snapshot am-utils-6.0.3s1
8735
8736 1999-10-12  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8737
8738         * amd/amd.c (main): On AIX you must lower the stack size using
8739         ulimit() before calling plock.  Otherwise plock will reserve a lot
8740         of memory space based on your maximum stack size limit.  Since it
8741         is not easily possible to tell what should the limit be, I print a
8742         warning before calling plock(). See the manual pages for
8743         ulimit(1,3,4) on your AIX system.
8744
8745         * include/am_defs.h: define default extern for vsnprintf()
8746
8747         * aux/configure.in: check for extern definition for vsnprintf()
8748
8749 1999-10-08  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8750
8751         * amd/amfs_auto.c (amfs_auto_bgmount): patch from Nick Williams
8752         <njw@ms.com>.  SYMPTOMS: 'occasionally' sublinks do not point to
8753         the correct location, but to the top level of the mountpoint and
8754         an (error-hook) is seen being mounted in the log file. This causes
8755         things to Go Wrong(TM).
8756         CAUSE: When evaluating two locations which are requested
8757         'practically simultaneously', and the two locations resolve to the
8758         same NFS mountpoint (but different sublinks), the later request
8759         will be "deferred" and retried after wakeup when the first mount
8760         succeeds. To do this, it rewinds the options location string to
8761         re-evaluate the location when the mount is retried. However, it
8762         shouldn't rewind the options for two reasons: (a) the semantics of
8763         the map language say you shouldn't and (b) the NFS mount reference
8764         is not reset at the same time, meaning that on the retry it will
8765         have an options structure out-of-sync with the mount
8766         structure. The "shortcut" code when retrying the mount sees the
8767         mount structure is already filled in and does not fully evaluate
8768         the options structure.... so if the first location is not the one
8769         which ties in with the mountpoint (see ordering in the
8770         recreate-by), you're now well messed up.
8771
8772         * BUGS: mention aix4.3 plock() bug (memory usage blows up and
8773         plock fails)
8774
8775 1999-10-07  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8776
8777         * aux/GNUmakefile: certain files should be copied if they are
8778         newer, not also if they are bigger: install-sh, ltconfig,
8779         ltmain.sh, mdate-sh, missing, mkinstalldirs, and texinfo.tex.
8780
8781         * minor new port: i586-pc-linux-gnu-rh6.1 (RedHat Linux 6.1)
8782
8783 1999-10-05  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8784
8785         * aux/macros/check_nfs_prot_headers.m4: prepare for OSF-5.
8786
8787         * aux/macros/check_nfs_fh_dref.m4: prepare for Tru64, aka OSF-5.
8788
8789 1999-09-30  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8790
8791         *******************************************************************
8792         *** Released am-utils-6.0.2                                     ***
8793         *******************************************************************
8794
8795 1999-09-27  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8796
8797         * conf/mount/mount_linux.c (mount_linux): print the updated mount
8798         flags.
8799
8800         * doc/am-utils.texi: document $full_os and $vendor.
8801
8802         * scripts/amd.conf-sample: examples of $full_os and $vendor.
8803
8804         * scripts/amd.conf.5: document $full_os and $vendor.
8805
8806         * amd/conf.c: add support for $full_os and $vendor.
8807
8808 1999-09-26  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8809
8810         * doc/am-utils.texi (netgrp Selector Function): don't give
8811         examples with old single '=' assignment variable.  Use foo:=bar.
8812
8813         * amd/amfs_auto.c (amfs_auto_bgmount): corectly indent long
8814         comment describing this complex function.
8815
8816         * doc/Makefile.am (alldocs): do install-ps last (because distiller
8817         is slow) and install-html next to last (because texi2html is also
8818         slow).
8819
8820         * amd/amd.8: Major fixes to the description of the option -t
8821         timeout.retransmit.
8822
8823         * doc/am-utils.texi: better description of "trace" debug option.
8824         amd -H (not -v) shows log_options and debug_options.  Major fixes
8825         to the description of amd -t timeout.retransmit, and the amd.conf
8826         parameters nfs_retransmit_counter and nfs_retry_interval.
8827
8828         * scripts/amd.conf.5: better description of "trace" debug option.
8829         amd -H (not -v) shows log_options and debug_options.  Major fixes
8830         to the description of the parameters nfs_retransmit_counter and
8831         nfs_retry_interval.
8832
8833 1999-09-25  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8834
8835         * doc/am-utils.texi (Automount Filesystem): cache:= is not a mount
8836         option, but a mount map option.
8837
8838         * libamu/xutil.c (switch_to_logfile): log the name of the log file
8839         we switched into, after the log file had been [re]opened.
8840
8841 1999-09-24  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8842
8843         * amd/mapc.c (mapc_reload_map): count and show the number of times
8844         a map was reloaded.  Only reload a map if its modify-time was
8845         updated.  But amq -f forced a reload no matter what.
8846
8847         * amd/amd.h: new flag to struct mnt_map to count number of times a
8848         map was reloaded.
8849
8850         * amd/mapc.c (mapc_reload_map): attempt to reload the map without
8851         losing current data by reloading into a temp copy, and switching
8852         the hashes round only if the reload was successful.  Patch from Jon
8853         Peatfield <J.S.Peatfield@damtp.cam.ac.uk>.
8854         (mapc_sync): mapc_reload_map() always succeeds.
8855
8856 1999-09-22  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8857
8858         * amd/info_ldap.c (amu_ldap_rebind): don't busy-loop trying to
8859         rebind to an LDAP server forever.  Try up to 10 times.
8860
8861         * fsinfo/fsi_lex.l (yyerror): rework code that will never happen
8862
8863         * released snapshot am-utils-6.0.2s2
8864
8865         * aux/configure.in: bumped library version-info to 3:2:1, since
8866         some libamu code got changed.
8867
8868         * libamu/xutil.c (real_plog): use vsnprintf, not vsprintf, which
8869         is better and more secure.  Fix from "David O'Brien"
8870         <obrien@NUXI.com>.
8871
8872         * aux/configure.in: check for vsnprintf.
8873
8874 1999-09-21  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8875
8876         * aux/macros/linux_headers.m4: use AC_MSG_ERROR.
8877
8878         * aux/macros/opt_{cppflags,ldflags,libs,amu_cflags}.m4: the ARG is
8879         not optional.  Make sure ARG is supplied else flag an error.
8880
8881 1999-09-18  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8882
8883         * minor port i386-unknown-freebsdelf3.3
8884
8885         * released snapshot am-utils-6.0.2s1
8886
8887 1999-09-17  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8888
8889         * aux/configure.in (AC_CHECK_FUNCS): check for getitimer().
8890
8891         * include/am_defs.h: extern definition for getitimer().
8892
8893         * aux/configure.in: use AC_CHECK_EXTERNS.  Look for getitimer()
8894         extern.
8895
8896         * aux/macros/check_extern.m4: define a simple AC_CHECK_EXTERNS
8897         that calls AC_CHECK_EXTERN in a loop.  This saves repeated code in
8898         configure.
8899
8900         * aux/macros/type_auth_create_gidlist.m4: AIX 4.x systems use
8901         'int' as the 5th arg to authunix_create().
8902
8903         * aux/macros/type_recvfrom_fromlen.m4: all AIX 4.x systems use a
8904         size_t for the 6th arg of recvfrom().
8905
8906         * aux/macros/os_cflags.m4: define _XOPEN_EXTENDED_SOURCE for
8907         aix4.x systems.
8908
8909         * libamu/mount_fs.c (print_nfs_args): cast some values to int, to
8910         avoid gcc -Wall errors.
8911
8912         * scripts/expn.in: use sockaddr_in(), not pack() to correctly fill
8913         in a struct sockaddr_in.  On Solaris x86 hosts, using pack()
8914         results in byte-misaligned values.   Bug fix from Jeffrey C Honig
8915         <jch@BSDI.COM>.
8916
8917         * libamu/mount_fs.c (compute_automounter_mount_flags): turn on
8918         automntfs (ignore on bsdi-4.1) flag.
8919         (compute_automounter_nfs_args): ditto.
8920
8921         * aux/acconfig.h: add new flag for automntfs (ignore)
8922
8923         * aux/configure.in: check for new automntfs flag (bsdi-4.1).
8924
8925 1999-09-14  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8926
8927         * MIRRORS: added new site in Germany.  Updated status of umn.edu
8928         and ferginc.com, who may no longer be mirroring am-utils.
8929
8930 1999-09-08  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8931
8932         *******************************************************************
8933         *** Released am-utils-6.0.1                                     ***
8934         *******************************************************************
8935
8936 1999-09-08  Erez Zadok  <ezk@cs.columbia.edu>
8937
8938         * aux/macros/mount_headers.m4: bsdi-2.1 needs MAXQUOTAS and struct
8939         netexport defined.
8940
8941         * aux/macros/try_compile_anyfs.m4: bsdi-2.1 needs MAXQUOTAS and
8942         struct netexport defined.
8943
8944 1999-09-07  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8945
8946         * aux/macros/check_field.m4 (ac_upcase_var_name): include
8947         <ifaddrs.h> so we can detect fields within struct ifaddrs.
8948
8949         * libamu/wire.c (getwire): bsdi-2.1 uses a second arg to
8950         getifaddrs() and struct ifaddrs has no ifa_next field.
8951
8952         * aux/configure.in: check if 'struct ifaddrs' has a field
8953         ifa_next.
8954
8955         * include/amq_defs.h (AMQ_STRLEN): double size of amq string
8956         length to 2048 bytes.
8957
8958         * conf/nfs_prot/nfs_prot_netbsd1_4.h: include several more nfs
8959         header files and ufs/ufs/ufsmount.h.  Bug reported by <Christos
8960         Zoulas> christos@zoulas.com.
8961
8962         * aux/macros/try_compile_anyfs.m4: include <ufs/ufs/ufsmount.h>.
8963         Bug reported by <Christos Zoulas> christos@zoulas.com.
8964
8965         * aux/macros/mount_headers.m4: include <ufs/ufs/ufsmount.h>
8966
8967 1999-09-06  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8968
8969         * libamu/xutil.c (expand_error): use strerror if available instead
8970         of sys_errlist.  Bug reported by <Christos Zoulas>
8971         christos@zoulas.com.
8972
8973         * hlfsd/hlfsd.c (fatal): use strerror if available instead of
8974         sys_errlist.
8975
8976         * amq/amq.c (show_mi): use strerror if available instead of
8977         sys_errlist.
8978
8979         * aux/macros/check_nfs_prot_headers.m4: make sure netbsd1.4
8980         nfs_prot header is used for any future (1.5 etc.) netbsd systems.
8981
8982         * amq/pawd.c (find_mt): check for type nfsl as well.  Fix from
8983         "Andrew J. Korty" <ajk@purdue.edu>
8984
8985 1999-08-29  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8986
8987         * doc/am-utils.texi (Supported Platforms): updates for redhat
8988         systems.
8989
8990         * INSTALL: updates for redhat systems.
8991
8992         * libamu/wire.c (getwire_lookup): spell "succeeded" correctly
8993
8994 1999-08-28  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8995
8996         * scripts/ctl-amd.in: sleep 1 second between killing amd and
8997         restarting it, because amq may respond that amd is down, where in
8998         fact it is still trying to unmount itself after unmapping itself
8999         from the portmapper.
9000
9001         * aux/config.guess.long: new script to print long version of
9002         config.guess output.
9003
9004         * buildall (host_alias): use long version of config.guess.
9005
9006 1999-08-27  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9007
9008         * scripts/ctl-{amd,hlfsd}.in: update RH tags for start/stop
9009         scripts.
9010
9011 1999-08-24  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9012
9013         * released snapshot am-utils-6.0.1s11
9014
9015         * libamu/xutil.c (expand_error): make sure expanding the string
9016         with textual version of errno doesn't overrun the 1024 bytes
9017         buffer.
9018         (real_plog): null terminate msg, just in case.
9019
9020         * amq/amq.c (main): don't getopt -M option and don't process it
9021         unless ENABLE_AMQ_MOUNT is on.
9022
9023         * amd/amq_svc.c (amq_program_1): all code that relates to amq -M
9024         is conditional on #ifdef ENABLE_AMQ_MOUNT.
9025
9026         * amd/amq_subr.c: remove amqproc_mount_1_svc() function invoked
9027         when amq -M code is disabled.  Not taking any chances.
9028
9029 1999-08-23  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9030
9031         * released snapshot am-utils-6.0.1s10
9032
9033 Sun Aug 22 16:18:59 1999  Erez Zadok  <ezk@subzero.cs.columbia.edu>
9034
9035         * libamu/wire.c (getwire_lookup): if getnetbyaddr failed (e.g., on
9036         128.59.16.0), try to shift the network out of zeros (e.g.,
9037         128.59.16) and try again.  Irix 6.4 requires short network
9038         numbers.
9039
9040 1999-08-22  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9041
9042         * libamu/wire.c (getwire_lookup): correctly compute subnet using
9043         netmask.
9044
9045         * libamu/mount_fs.c (compute_automounter_nfs_args): require that
9046         Amd's own NFS mounts use reserved ports (if possible).  IP packet
9047         security fix from Jeffrey C Honig <jch@BSDI.COM>.
9048
9049         * conf/transp/transp_tli.c (create_autofs_service): use correct
9050         autofs_port.  IP packet security fix from Jeffrey C Honig
9051         <jch@BSDI.COM>.
9052
9053         * conf/transp/transp_sockets.c (bindnfs_port): remove unnecessary
9054         function.  IP packet security fix from Jeffrey C Honig
9055         <jch@BSDI.COM>.
9056         (create_nfs_service): use bind_resv_port() directly.  ensure that
9057         privileged ports are used.  IP packet security fix from Jeffrey C
9058         Honig <jch@BSDI.COM>.
9059
9060         * amd/nfs_prot_svc.c (nfs_program_2): verify that requests come
9061         from reserved ports and from a local IP address.  IP packet
9062         security fix from Jeffrey C Honig <jch@BSDI.COM>.
9063
9064         * amd/amq_subr.c (ok_security): use IPPORT_RESERVED, instead of
9065         hard-coded 1024.  IP packet security fix from Jeffrey C Honig
9066         <jch@BSDI.COM>.
9067         (amqproc_mount_1_svc): provide information on the caller making an
9068         amq -M request.  IP packet security fix from Jeffrey C Honig
9069         <jch@BSDI.COM>.
9070
9071         * amd/map.c (free_map_if_success): If the program doing an unmount
9072         of a program filesystem fails, amd tries to interpret the return
9073         code as an errno.  Fix from Jeffrey C Honig <jch@BSDI.COM>.
9074
9075         * amd/info_nis.c (determine_nis_domain): don't always print
9076         warning about NIS domain name not being set, even if NIS is not in
9077         use.
9078
9079 1999-08-21  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9080
9081         * amd/info_ldap.c (get_ldap_timestamp): initialize variable err.
9082         (amu_ldap_search): initialize variable err.
9083
9084 1999-08-16  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9085
9086         * libamu/wire.c: written using getifaddrs() for BSD systems,
9087         contributed by BSDI, Jeffrey C Honig <jch@BSDI.COM>).
9088
9089 1999-08-15  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9090
9091         * include/am_utils.h (SALLOC): a simple macro to allocate N bytes.
9092
9093         * aux/configure.in: check for irs.h and ifaddrs.h.
9094         Increase libamu.so --version-info to 3:1:1 since we've changed the
9095         source code for the library.
9096         Check for getifaddrs() function.
9097
9098 1999-08-14  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9099
9100         * libamu/mount_fs.c (print_nfs_args): print fields namlen and
9101         bsize if they exist.
9102
9103         * conf/mount/mount_linux.c (mount_linux): set nfs_args_t->namlen
9104         and ->bsize fields correctly, if those fields exist.  This is a
9105         bug in that amd neglected to set these fields, but told the
9106         kernel it is mounting the nfs_args_t structure using mount version
9107         3 (which requires both bsize and namlen fields).
9108
9109         * aux/configure.in: test for two new nfs_args_t fields (used on
9110         newer linux with mount versions 2 and 3): bsize and namlen.
9111
9112         * doc/am-utils.texi (netgrpd Selector Function): document new
9113         selector function.
9114
9115         * amd/opts.c (f_netgrpd): new amd map function netgrpd(ARG) to
9116         test if the current host (fully-qualified name) is in the ARG host
9117         netgroup.  The netgrp() function uses the short form of a host
9118         name.  Patch from Christophe Kalt <Christophe-Kalt@deshaw.com>.
9119
9120         * doc/am-utils.texi (automount2amd): document new script.
9121
9122         * scripts/Makefile.am: create, install, and distribute
9123         automount2amd perl script and its man page.
9124
9125         * scripts/automount2amd.8: new man page for automount2amd.
9126
9127         * scripts/automount2amd.in: new file, contributed a in 1993 by
9128         Mike Walker <mike@tab00.larc.nasa.gov>.  Fixed to use addopts for
9129         any automount map options specified.
9130
9131 1999-08-09  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9132
9133         * released snapshot am-utils-6.0.1s9
9134
9135 1999-08-09  Erez Zadok  <ezk@beetle.mcl.cs.columbia.edu>
9136
9137         * amd/amfs_auto.c (DOT_DOT_COOKIE): set the NFS cookie of '..' to
9138         1.
9139         (amfs_auto_readdir): use DOT_DOT_COOKIE instead of (u_int)~0.
9140         (amfs_auto_readdir_browsable): use DOT_DOT_COOKIE instead of
9141         (u_int)~0.
9142
9143         * amd/mapc.c (make_entry_chain): NFS cookies should be
9144         monotonically increasing, because Linux 2.3 expects that, even
9145         though it is not in the spec (RFC-1094) for NFS V2.
9146
9147 1999-08-06  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9148
9149         * aux/macros/check_lib_funcs.m4: removed unused macro.
9150
9151         * aux/macros/linux_headers.m4: new macro to ensure that linux
9152         kernel headers match running kernel version.
9153
9154         * aux/acconfig.h: define HOST_HEADER_VERSION so we can check if
9155         amd is configured on linux hosts that run one kernel but have
9156         headers for a different version.
9157
9158         * amd/info_nis.c (nis_isup, nis_search, nis_init): fixes for the
9159         logic which uses nis_isup and has_yp_order.  Make sure it is used
9160         correctly , esp. for NIS+ in NIS-compatibility mode.  Bug fix from
9161         Peter Breitenlohner <peb@mppmu.mpg.de>.
9162
9163         * include/am_defs.h: fix conflicts on linux 2.2 systems with older
9164         libc5.  Bug fix from Peter Breitenlohner <peb@mppmu.mpg.de>.
9165
9166         * scripts/lostaltmail.in: use sockaddr_in(), not pack() to
9167         correctly fill in a struct sockaddr_in.  On Solaris x86 hosts,
9168         using pack() results in byte-misaligned values.
9169
9170 1999-08-02  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9171
9172         * conf/mtab/mtab_aix.c (mnt_dup): add support for nfs3
9173         mounting, as per Dale Talcott <aeh@quest.cc.purdue.edu>.  Also use
9174         better macros for case statement.
9175
9176         * conf/nfs_prot/nfs_prot_sunos5_7.h: don't include ldap structures
9177         unless ldap is actually available.
9178
9179         * use updated config.guess and config.sub.  Use newer automake
9180         that fixes problems with distributing optional libamu files
9181         (clnt_sperrno.c, hasmntopt.c, strcasecmp.c, strdup.c, strstr.c,
9182         and ualarm.c)
9183
9184 1999-07-19  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9185
9186         * minor port i386-unknown-openbsd2.5
9187
9188 1999-07-17  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9189
9190         * minor ports to freebsdelf 3.[0-2] and 4.0 completed
9191
9192         * aux/macros/check_nfs_prot_headers.m4: support freebsdelf
9193
9194         * aux/macros/check_nfs_socket_connection.m4: support freebsdelf
9195
9196 1999-06-24  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9197
9198         * released snapshot am-utils-6.0.1s8
9199
9200 1999-06-23  Erez Zadok  <ezk@beetle.mcl.cs.columbia.edu>
9201
9202         * include/am_defs.h: avoid various header conflicts on
9203         RedHat/Linux 6.0 and kernels 2.2.10 or newer.
9204
9205         * aux/configure.in: look for <db1/ndbm.h> (RedHat/Linux 6.0 and
9206         kernel 2.2.10)
9207
9208         * amd/amfs_program.c (amfs_program_exec): make sure logfp is
9209         initialized dynamically to stderr if needed.
9210
9211         * libamu/xutil.c (dplog): make sure logfp is initialized
9212         dynamically to stderr if needed.
9213         (plog): ditto.
9214
9215         * amd/amfs_program.c (amfs_program_exec): set logfp to stderr if
9216         not initialized.
9217
9218         * libamu/xutil.c: don't initialize logfp statically to stderr,
9219         because on RedHat/Linux 6.0 (kernel 2.2.10) stderr can no longer
9220         be manipulated like a variable.
9221
9222         * include/am_defs.h: avoid more conflicts between <linux/fs.h> and
9223         <sys/mount.h> on 2.2 linux kernels.
9224         include <db1/ndbm.h> as needed (RedHat/Linux 6.0)
9225
9226 1999-04-20  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9227
9228         * all Makefile.am: use AMU_NFS_PROT_HEADER (not *_HEADERS)
9229
9230         * aux/macros/check_nfs_prot_headers.m4 (AMU_NFS_PROT_HEADER):
9231         renamed AC_SUBST name from *_HEADERS to *_HEADER so that automake
9232         won't attempt to add it to the header files to distribute.
9233
9234 1999-04-19  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9235
9236         * aux/GNUmakefile: invoke aclocal with new --altdir flag.
9237
9238 1999-04-16  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9239
9240         * minor new port: i386-unknown-netbsd1.4 (ALPHA)
9241
9242         * aux/macros/check_field.m4: no need to include <cdfs/cdfsmount.h>
9243         and <isofs/cd9660/cd9660_mount.h> because they are also included
9244         from MOUNT_HEADERS.  Causes multiple inclusion of unprotected
9245         headers on netbsd-1.4_ALPHA.
9246
9247 1999-04-15  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9248
9249         * aux/macros/extern_sys_errlist.m4 (pattern): netbsd-1.4_ALPHA's
9250         sys_errlist extern doesn't end with [].
9251
9252         * aux/macros/check_nfs_prot_headers.m4: netbsd 1.4 support.
9253
9254 1999-04-11  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9255
9256         * newer automake wants texinfo.tex to be in aux/ not doc/
9257
9258 1999-03-30  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9259
9260         * amd/conf_parse.y: alloca support.
9261
9262         * fsinfo/fsi_gram.y: alloca support.
9263
9264         * libamu/Makefile.am (libamu_la_LIBADD): compile alloca.o if
9265         needed.
9266
9267         * aux/configure.in: test for alloca support.  Needed because bison
9268         generates parsers that use alloca, and hpux9 does have alloca and
9269         its /bin/cc doesn't support it builtin (the way gcc does).
9270
9271         * libamu/alloca.c: new file, needed on hpux9 with /bin/cc.  Taken
9272         verbatim from bison-1.25.
9273
9274         * include/am_defs.h: fixed typo #errir -> #error
9275
9276         * released snapshot am-utils-6.0.1s7
9277
9278         * README.y2k: more information about am-utils' compatibility, from
9279         Paul Balyoz <pbalyoz@sedona.ch.intel.com>.
9280
9281         * scripts/lostaltmail.in (Splice_in_resent_headers): ensure Y2K
9282         compliant format.  Patch from Paul Balyoz
9283         <pbalyoz@sedona.ch.intel.com>
9284
9285         * doc/am-utils.texi (Supported Platforms): hpux10.20 could have
9286         nfs v.3 support (with some vendor patches), but it is turned off.
9287
9288         * aux/macros/os_cflags.m4: use ansi compiler options on hpux.
9289
9290         * conf/nfs_prot/nfs_prot_hpux.h: Turn off NFS V.3 support to avoid
9291         confusing am-utils.  10.20 with some patches has incomplete
9292         support.  Patch from Jon Peatfield
9293         <J.S.Peatfield@damtp.cam.ac.uk>.
9294
9295 1999-03-24  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9296
9297         * minor port i386-pc-bsdi4.0.1
9298
9299 1999-03-20  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9300
9301         * doc/am-utils.texi (Supported Platforms): add forgotten listing
9302         for powerpc-linux.
9303
9304 1999-03-18  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9305
9306         * scripts/amd.conf.5: fix typo.  From Jeffrey C Honig
9307         <jch@BSDI.COM>.
9308
9309         * doc/am-utils.texi: document iso9660 options norrip, gens, and
9310         extatt.
9311         (opts Option): documented dumbtimr and noauto options.  From
9312         Jeffrey C Honig <jch@BSDI.COM>.
9313
9314         * include/am_compat.h: define default strings for options norrip,
9315         gens, and extatt.
9316
9317         * amd/ops_cdfs.c (mount_cdfs): support options norrip, gens, and
9318         extatt.
9319
9320         * aux/macros/mount_headers.m4: also include
9321         <isofs/cd9660/cd9660_mount.h> as needed.
9322
9323         * aux/configure.in: check for isofs mount options for bsdi4:
9324         norrip, gens, and extatt.  Reported by Jeffrey C Honig
9325         <jch@BSDI.COM>.
9326
9327         * aux/macros/check_mnt2_cdfs_opt.m4: check for ISOFSMNT_* flags
9328         (bsdi4).
9329
9330 1999-03-17  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9331
9332         * conf/nfs_prot/nfs_prot_freebsd3.h: ditto.
9333
9334         * conf/nfs_prot/nfs_prot_bsdi3.h: include <ufs/ufs/ufsmount.h>,
9335         for bsdi4, as per Jeffrey C Honig <jch@BSDI.COM>.
9336
9337 1999-03-15  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9338
9339         * get latest copies of config.guess, config.sub, ltconfig, and
9340         ltmain.sh from libtool-1.2f.
9341
9342         * all Makefile.am: don't use continuation lines (using \) for
9343         short lists of files.
9344
9345         * libamu/Makefile.am (DISTCLEANFILES): make distclean should
9346         remove mountutil.c, mtabutil.c, transputil.c, and umount_fs.c.
9347         Reported by Jeffrey C Honig <jch@BSDI.COM>.
9348
9349         * fixmount/Makefile.am (DISTCLEANFILES): make distclean should
9350         remove checkmount.c.  Reported by Jeffrey C Honig <jch@BSDI.COM>.
9351
9352         * Makefile.am (DISTCLEANFILES): make distclean should remove
9353         amu_nfs_prot.h, config.cache.old, and dbgcf.h.  Reported by
9354         Jeffrey C Honig <jch@BSDI.COM>.
9355
9356 1999-03-13  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9357
9358         * released snapshot am-utils-6.0.1s6
9359
9360 1999-03-12  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9361
9362         * INSTALL: document freebsdelf.
9363
9364         * doc/am-utils.texi (Supported Platforms): document freebsdelf.
9365
9366 1999-03-08  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9367
9368         * minor new ports: i386-unknown-freebsdelf3.1 and
9369         i386-unknown-freebsdelf4.0
9370
9371         * aux/macros/check_nfs_prot_headers.m4: freebsd4 support.
9372
9373         * aux/macros/check_nfs_socket_connection.m4: freebsd4 support.
9374
9375         * aux/macros/check_nfs_fh_dref.m4: freebsd4 support.
9376
9377         * amd/opts.c (eval_opts): changed log level of "executing
9378         negated..." message from USER to INFO, as per Guntram Wolski
9379         <gwolsk@sei.com>.
9380
9381 1999-02-17  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9382
9383         * */Makefile.am (LDADD): force linking against an installed
9384         libamu.{a,so}.
9385
9386         * doc/am-utils.texi (addopts Option): document remopts interaction
9387         with addopts.
9388
9389         * amd/am_ops.c (ops_match): if addopts are specified, apply them
9390         to the value of remopts as well as opts.
9391
9392         * amd/ops_nfs.c (mount_nfs_fh): tell users when remopts are used.
9393
9394 1999-02-05  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9395
9396         * released snapshot am-utils-6.0.1s5
9397
9398         * conf/mount/mount_linux.c (mount_linux): set default nfs_args
9399         options for ac{reg,dir}{min,man} as per the mount-2.8a package,
9400         but only if noac option was not used.
9401
9402 1999-02-05  Erez Zadok  <ezk@retro.cs.columbia.edu>
9403
9404         * conf/mount/mount_linux.c (mount_linux): print nfs_args again
9405         since it was updated.
9406         (mount_linux): use 4KB for NFS rsize/wsize on 2.1.0 linux kernels
9407         and newer.  Bug was found by Neil Conway
9408         <nconway.list@ukaea.org.uk>
9409
9410 1999-02-04  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9411
9412         * released snapshot am-utils-6.0.1s4
9413
9414 1999-02-03  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9415
9416         * amq/amq.c (main): don't list -M as a valid amq option unless
9417         configure'd with --enable-amq-mount.
9418
9419 Wed Feb  3 18:11:18 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9420
9421         * amd/nfs_start.c (amd_use_autofs): Define.
9422         (mount_automounter): Create autofs service listener only if
9423         necessary to avoid unnecessary clashes with e.g. automountd.
9424
9425         * amd/amd.h (amd_use_autofs): Declare.
9426
9427         * amd/conf.c (gopt_mount_type): Set amd_use_autofs.
9428         (ropt_mount_type): Likewise.
9429
9430 1999-02-02  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9431
9432         * aux/macros/check_mnt2_nfs_opt.m4:: ditto
9433
9434         * aux/macros/check_mnt2_cdfs_opt.m4: ditto
9435
9436         * aux/macros/check_mnt2_gen_opt.m4: ditto
9437
9438         * aux/macros/check_mnttab_opt.m4: new macro in this file to loop
9439         over AC_CHECK_MNTTAB_OPT.  Reduces size of configure script a lot.
9440
9441         * conf/nfs_prot/nfs_prot_netbsd1_3.h: include nfs/rpcv2.h,
9442         nfs/nfs.h and nfs/nfsmount.h if they exist.  Patch from
9443         christos@zoulas.com (Christos Zoulas).
9444
9445         * amd/info_hesiod.c: some forward declarations.  Patch from
9446         christos@zoulas.com (Christos Zoulas).
9447
9448 1999-01-28  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9449
9450         * libamu/mount_fs.c (compute_nfs_args): don't turn on/off noconn
9451         option if it was already in that state.  Patch from David
9452         Wolfskill <dhw@whistle.com>.
9453
9454 1999-01-20  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9455
9456         * aux/configure.in: automake nowadays supports LTLIBOBJS (but not
9457         LTALLOCA yet).  Substitute value of LIBTOOL_DEPS for libtool
9458         rebuild make rules.
9459
9460         * Makefile.am: new rules to remake libtool (maintainers only)
9461
9462         * amd/amfs_toplvl.c (mount_amfs_toplvl): print generic mount flags
9463         if -D trace was used.
9464
9465 1999-01-18  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9466
9467         * buildall: all if statements should have an else clause because
9468         of Ultrix's /bin/sh.
9469
9470 1999-01-15  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9471
9472         * amq/amq.c: removed dummy variables.
9473
9474         * amq/pawd.c: removed dummy variable.s
9475
9476         * fixmount/fixmount.c (usage): removed dummy variables.
9477
9478         * fsinfo/fsinfo.c: removed dummy variables.
9479
9480         * hlfsd/hlfsd.c: removed dummy variables.
9481
9482         * wire-test/wire-test.c: removed dummy variables.
9483
9484         * mk-amd-map/mk-amd-map.c: removed dummy variables.
9485
9486         * doc/texinfo.tex: updates from GNU mirror.
9487
9488         * aux/GNUmakefile (../doc/texinfo.tex): new rule to update
9489         doc/texinfo.tex from GNU mirror.
9490
9491         * released snapshot am-utils-6.0.1s3
9492
9493         * Makefile.am (install-snapshot): better snapshot and new
9494         install-snapshot and test-snapshot rules (maintainer).
9495
9496         * amd/info_ldap.c (amu_ldap_init): don't run STREQ if one of the
9497         args may be NULL.
9498         Some dlog() entries were not enclosed in #ifdef DEBUG.  Fix from
9499         Bill Paul <wpaul@ctr.columbia.edu>
9500
9501 1999-01-13  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9502
9503         * check for experimental generic 'ignore' mount flag on freebsd3.
9504
9505         * Update library -version-info to 3:0:1 (will result in 2.1.0 .so
9506         version, which is backwards compatible with older versions.)  Only
9507         one new interface was added to libamu.
9508
9509         * amd/amfs_toplvl.c (mount_amfs_toplvl): add generic mount flags
9510         that are specific to automounter mounts.
9511
9512         * aux/configure.in: update libamu.so age and revision since a new
9513         interface was added to libamu/mount_fs.c
9514         (compute_automounter_mount_flags).
9515
9516         * libamu/mount_fs.c (compute_automounter_mount_flags): new
9517         function to compute generic mount flags that are specific to mount
9518         points only.
9519
9520         * aux/{configure.in,acconfig.h}: add support for generic mount
9521         entry ignore option.
9522
9523         * released snapshot am-utils-6.0.1s2
9524
9525         * amd/info_ldap.c (get_ldap_timestamp): dlog format fixes.
9526
9527         * libamu/mount_fs.c (print_nfs_args): solaris 2.7 changed format
9528         of knc_semantics from u_long to u_int.
9529
9530         * aux/macros/check_mount_style.m4: freebsd3 no longer needs a
9531         special mount helper.
9532
9533 1999-01-12  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9534
9535         * aux/macros/check_nfs_prot_headers.m4 (AMU_NFS_PROT_HEADERS):
9536         amu_nfs_conf.h should always be found in $top_builddir.
9537
9538 Tue Jan 12 00:05:42 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9539
9540         * conf/nfs_prot/nfs_prot_sunos5_7.h (MNTTAB_TYPE_AUTOFS): Undefine
9541         to avoid wrong reports from show_fstypes.
9542
9543         * conf/nfs_prot/nfs_prot_irix5.h (MNTTAB_TYPE_XFS): Likewise.
9544
9545         * conf/nfs_prot/nfs_prot_hpux11.h (MNTTAB_TYPE_NFS3): Likewise.
9546
9547 Tue Jan 12 00:05:42 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9548
9549         * BUGS (mips-dec-ultrix4.3): Update Ultrix caveats.
9550
9551 Tue Jan 12 00:05:42 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9552
9553         * hlfsd/homedir.c (delay): Cast child to long, adapt format.
9554         (hlfsd_getpwent): Likewise for pw_uid.
9555
9556         * amd/info_nis.c (nis_init): Cast order to unsigned long, adapt
9557         format.
9558
9559         * conf/transp/transp_tli.c (amu_clnt_create_best_vers): Cast
9560         tv_sec to int to match format.
9561         (get_nfs_version): Cast nfs_version, NFS_VERSION to int to match
9562         formats.
9563
9564         * amd/amfs_program.c (amfs_program_exec): Cast ptr difference to
9565         long, adapt format.
9566
9567         * include/am_defs.h: Handle __attribute__ if available.  From
9568         GNU fileutils 4.0 lib/errors.h.
9569
9570 Mon Jan 11 13:46:44 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9571
9572         * libamu/mount_fs.c (print_nfs_args): Cast sizeof() to int to
9573         match format.
9574
9575         * hlfsd/stubs.c (nfsproc_getattr_2_svc): Cast uid, gid to long,
9576         adapt format.
9577         (nfsproc_lookup_2_svc): Likewise.
9578         (nfsproc_readlink_2_svc): Likewise for userid, groupid.
9579
9580         * hlfsd/nfs_prot_svc.c (nfs_program_2): Cast args to int to match
9581         format.
9582
9583         * hlfsd/homedir.c (homedir): Cast uid, child to long, adapt
9584         format.
9585
9586         * amd/info_hesiod.c (hesiod_search): Cast m, pval, tp to unsigned
9587         long, adapt format.
9588
9589         * amd/ops_nfs.c (find_nfs_fhandle_cache): Cast fh_wchan to
9590         unsigned long, adapt format.
9591         (got_nfs_fh): Likewise.
9592         (prime_nfs_fhandle_cache): Cast fh_nfs_version to int to match
9593         format.
9594         (call_mountd): Likewise, mnt_version also.
9595         (mount_nfs_fh): Likewise.
9596
9597         * amd/ops_autofs.c (autofs_program_1): Cast args to int to match
9598         format.
9599         (autofs_unmount_1_svc): Cast ur->devid, ur_rdevid, ur->next to
9600         unsigned long, adapt formats.
9601         (autofs_bgmount): Cast opt_fs to unsigned to, adapt format.
9602         (autofs_bgmount): Use long format to match arg.
9603         (autofs_lookuppn): Removed superfluous arg.
9604
9605         * amd/srvr_nfs.c (start_ping): Cast nfs_version to int to match
9606         format.
9607         (got_portmap): Likewise for port.
9608         (recompute_portmap): Likewise for fs->fs_version, mnt_version.
9609         (find_nfs_srvr): Likewise for nfs_version.
9610
9611         * amd/sched.c (sched_task): Cast wchan to unsigned long, adapt
9612         format.
9613
9614         * amd/nfs_start.c (checkup): Cast ptr difference to long, next_mem
9615         to unsigned long, adapt format.
9616         Cast tvv.tv_sec to int to match format.
9617
9618         * amd/nfs_prot_svc.c (nfs_program_2): Cast args to int to match
9619         format.
9620
9621         * amd/map.c (root_fh): Cast pid to long, adapt format.
9622         (timeout_mp): Cast time_t to long, adapt format.
9623
9624         * amd/clock.c (reschedule_timeouts): Use long format, cast time_t
9625         arg.
9626
9627         * amd/amfs_host.c (fetch_fhandle): Cast nfs_version to int to
9628         match format.
9629         (amfs_host_fmount): Likewise.
9630         (amfs_host_umounted): Likewise.  Removed superfluous arg.
9631
9632         * amd/amfs_auto.c (amfs_auto_bgmount): Cast pointer to unsigned
9633         long, adapt format.
9634         (amfs_auto_bgmount): Use long format, cast time_t arg.
9635         (amfs_auto_lookuppn): Removed superfluous arg.
9636
9637         * amd/amd.c (main): Cast geteuid() result to long, adapt format.
9638
9639         * conf/transp/transp_sockets.c (get_nfs_version): Cast nfs_version
9640         to int to match format.
9641
9642         * include/am_utils.h: Declare plog, dplog as printf-like.
9643
9644         * conf/mount/mount_irix6.c (mount_irix): Print type as char *.
9645
9646 Mon Jan 11 13:46:44 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9647
9648         * amd/info_hesiod.c (hesiod_isup): New function.
9649         * amd/mapc.c (maptypes): Add it.
9650
9651 1999-01-10  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9652
9653         * released snapshot am-utils-6.0.1s1
9654
9655 1999-01-09  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9656
9657         * ALL: bump copyright year to 1999.
9658
9659 Fri Jan  8 15:24:15 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9660
9661         * aux/macros/check_mtype_type.m4: Ultrix uses an int mount type,
9662         too.
9663
9664         * aux/macros/check_mtype_printf_type.m4: Adapt corresponding
9665         printf type.
9666
9667 Fri Jan  8 15:24:15 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9668
9669         * aux/acconfig.h: Removed HAVE_AM_FS_AUTOFS, unused.
9670
9671         * conf/nfs_prot/nfs_prot_irix6.h: Likewise.
9672
9673         * conf/nfs_prot/nfs_prot_sunos5_6.h: Likewise.
9674
9675         * conf/nfs_prot/nfs_prot_sunos5_7.h: Likewise.
9676
9677         * Makefile.am (EXTRA_DIST_DIRS): Removed, not needed by current
9678         automake.
9679
9680 Thu Jan  7 02:55:18 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9681
9682         * aux/configure.in (AM_PROG_YACC): Replaced by AC_PROG_YACC, not
9683         in current automake.
9684
9685 Thu Jan  7 02:55:18 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9686
9687         * doc/am-utils.texi: Added some missing inter-punctation after
9688         @xref, or use @pxref/@ref as appropriate.  Spotted by makeinfo
9689         from texinfo 3.12b.
9690
9691 1999-01-07  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9692
9693         * doc/texinfo.tex: updated off of latest GNU mirror.
9694
9695 1999-01-04  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9696
9697         * doc/am-utils.texi (Supported Platforms): update platforms that
9698         support NFS v.3.  Nicer postscript printing on double-sided pages.
9699
9700         * amd/info_hesiod.c: add extern definition for hesiod_init()
9701
9702 1999-01-01  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9703
9704         *******************************************************************
9705         *** Released am-utils-6.0                                       ***
9706         *******************************************************************
9707
9708 1998-12-28  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9709
9710         * conf/nfs_prot/nfs_prot_sunos5_7.h: support ldap in solaris 2.7.
9711
9712 1998-12-27  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9713
9714         * conf/nfs_prot/nfs_prot_bsdi3.h: don't use reserved ports on
9715         bsdi4 for NFS V3/nfs mounts.
9716
9717 1998-12-26  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9718
9719         * using latest libtool (1.2e + patches), now supporting shared
9720         libraries on many more systems.  Also using latest autoconf and
9721         automake (unreleased GNU CVS'd versions.)
9722
9723         * minor new ports: hppa2.0w-hp-hpux11.00,
9724         i386-unknown-netbsd1.3.3, mips-sgi-irix6.5.
9725
9726         * fsinfo/fsinfo.h (yywrap): define it for systems (osf4) that
9727         have /usr/bin/flex but not libfl.
9728
9729 1998-12-24  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9730
9731         * lots of code cleanup, to make sure libamu.so does not use
9732         undefined symbols.  Some system's shared libraries cannot handle
9733         that.
9734
9735 1998-12-23  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9736
9737         * include/am_defs.h: only defined seteuid extern if function also
9738         exists and is not superceded by setresuid (hpux).
9739
9740         * amd/ops_autofs.c (autofs_bgmount, autofs_lookuppn): put explicit
9741         braces to avoid confusion with nested if-then-else clauses.
9742
9743         * aux/config.{sub,status}, aux/{ltmain.sh,ltconfig,mkinstalldirs:
9744         updated from latest versions.
9745
9746 1998-12-22  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9747
9748         * minor new port: i386-pc-bsdi4.0
9749
9750         * conf/nfs_prot/nfs_prot_bsdi3.h: add missing hesiod header
9751         definitions for bsdi4.
9752
9753         * {amd,fsinfo}/Makefile.am: force path to .y/.l files, because
9754         some make programs (bsdi4) do not support VPATH correctly.
9755
9756 1998-12-16  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9757
9758         * conf/mount/mount_aix.c: minor code cleanup
9759
9760         * aux/configure.in: check for extern definition to xdr_groups.
9761
9762 1998-12-15  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9763
9764         * minor new port: powerpc-ibm-aix4.3.1.0
9765
9766         * aux/macros/*.m4: updates for aix 4.3
9767
9768 1998-12-14  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9769
9770         * minor new port: i386-unknown-openbsd2.4
9771
9772         * aux/configure.in: don't check for xfs on openbsd because
9773         openbsd-2.4 introduces a new file system named xfs, but different
9774         than Irix's XFS.  Sigh.
9775
9776         * minor new port: i386-unknown-freebsd2.2.8
9777
9778 1998-12-03  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9779
9780         * amd/amfs_nfsl.c (amfs_nfsl_ffserver): use case insensitive host
9781         name match.  Bug fix from Douglas K. Rand" <rand@aero.und.edu>.
9782
9783 1998-11-20  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9784
9785         * scripts/ctl-amd.in: wait4amd2die runs in the stop action, to
9786         avoid race conditions when shutting down systems running amd.
9787
9788         * Makefile.am: add a dist-hook to change modes of the directories
9789         in the tar file so they are not world writable.
9790
9791         * conf/nfs_prot/nfs_prot_freebsd3.h: turned on NFSv3 support,
9792         since it is now finally defined in the header files and
9793         (hopefully) stable.
9794
9795         * amd/srvr_nfs.c (find_nfs_srvr): allow overriding if nfsv2 option
9796         is specified in mount options.  freebsd patches from David
9797         O'Brien.
9798
9799         * amq/amq.c (main), fixmount/fixmount.c (main), hlfsd/hlfsd.c
9800         (main), fsinfo/fsinfo.c (fsi_get_args), hlfsd/hlfsd.c (main),
9801         amd/get_args.c (get_args): posix: use -1 to check for return from
9802         getopt() (not EOF), as per posix.
9803
9804         * amd/amq_subr.c (xdr_amq_mount_tree_node): patches from "David
9805         O'Brien" <obrien@NUXI.com>, from the FreeBSD source tree.  Use
9806         real variable whose pointer is on the stack for decoding a long
9807         int.
9808
9809 1998-11-11  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9810
9811         * scripts/ctl-{amd,hlfsd}.in: include comments useful for redhat's
9812         chkconfig utility.
9813
9814 1998-11-10  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9815
9816         * released snapshot am-utils-6.0b2s3
9817
9818         * conf/transp/transp_sockets.c (create_nfs_service): remove C++
9819         style comments.
9820
9821 1998-11-04  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9822
9823         * released snapshot am-utils-6.0b2s2
9824
9825         * created CVS package
9826
9827         * amd/nfs_subr.c (nfsproc_lookup_2_svc): try to avoid a race
9828         condition between unmounting and re-mounting an entry, by
9829         increasing the ttl of a looked up entry before unmounting it.
9830         Patch from Mike Mitchell <mcm@unx.sas.com>.
9831
9832         * All files: spell comments and strings.
9833
9834 1998-11-03  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9835
9836         * aux/configure.in: look for yp_all in libnsl only if yp_all not
9837         already found elsewhere (in libc or other default libraries).
9838         This is so RedHat 5.1 systems could find yp functions in libnsl,
9839         but also so AIX 4.2.1 will NOT include libnsl, because the latter
9840         has broken nis functionality that also exists and works ok in libc.
9841
9842 1998-10-29  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9843
9844         * amd/amd.c (main): bug fix: swapped arguments to kill(2).  Fix
9845         from Danny Rathjens <dkr@cs.fiu.edu>.
9846
9847 1998-10-28  Erez Zadok  <ezk@spruce.mcl.cs.columbia.edu>
9848
9849         * released snapshot am-utils-6.0b2s1
9850
9851 1998-10-27  Erez Zadok  <ezk@spruce.mcl.cs.columbia.edu>
9852
9853         * aux/macros/*.m4: support bsdi4 as bsdi3.
9854
9855         * aux/macros/os_ldflags.m4: enable detection of LDAP on solaris
9856         2.7 (libraries located in /usr/lib/fn).  This is off until Sun
9857         includes LDAP header information.
9858
9859 1998-10-20  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9860
9861         *******************************************************************
9862         *** Released am-utils-6.0b1                                     ***
9863         *******************************************************************
9864
9865 1998-10-18  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9866
9867         * mk-amd-map/mk-amd-map.c (main): use perror not strerror.
9868         (main): set return type to int if no ndbm maps.
9869
9870         * include/am_defs.h: avoid conflicts with <sys/mount.h> in 2.1
9871         kernels.
9872
9873 1998-10-18  Erez Zadok  <ezk@london.mcl.cs.columbia.edu>
9874
9875         * A.i386-unknown-netbsd1.3.2/amu_nfs_prot.h: trim down and cleanup
9876         for netbsd 1.3.2.
9877
9878 1998-10-17  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9879
9880         * aux/configure.in: check for yp_all in libnsl, b/c redhat 5.1
9881         systems put NIS functions there.
9882
9883         * mk-amd-map/mk-amd-map.c: patch from "David O'Brien"
9884         <obrien@NUXI.com> merged in.  Use POSIX -1 return code from
9885         getopt(), not EOF.  Use .db extentions for systems that use it,
9886         instead of .{pag,dir}.
9887
9888 1998-10-15  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9889
9890         * wire-test/wire-test.c, hlfsd/hlfsd.c, fixmount/fixmount.c,
9891         amd/amd.c (main): avoid overrunning hostname buffer.  Bug fix from
9892         "David O'Brien" <obrien@NUXI.com>.
9893
9894         * scripts/amd.conf.5: minor typo reported by "David O'Brien"
9895         <obrien@NUXI.com> in .TH section of man page.
9896
9897         * amd/info_nis.c (am_yp_all): don't leak key-val entries.  Patch
9898         from Thomas Richter <richter@chemie.fu-berlin.de>.
9899
9900 1998-10-12  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9901
9902         * doc/am-utils.texi (Program Filesystem): minor typo fixed as per
9903         Andreas Stolcke <stolcke@speech.sri.com>.
9904
9905         * minor new ports: sparc64-unknown-linux-gnu, i386-pc-solaris2.7,
9906         and sparc-sun-solaris2.7.
9907
9908         * conf/mount/mount_freebsd3.c (mount_freebsd3): freebsd 3.0 is now
9909         a 4.4lite kernel, and somethings were removed, such as
9910         INITMOUNTNAMES.
9911
9912         * amd/ops_autofs.c (autofs_lookuppn): don't leak memory while
9913         processing /defaults.  Free temporary opts.  Patch from
9914         dsr@mail.lns.cornell.edu (Daniel S. Riley)
9915
9916         * amd/amfs_auto.c (amfs_auto_lookuppn): don't leak memory while
9917         processing /defaults.  Free temporary opts.  Patch from
9918         dsr@mail.lns.cornell.edu (Daniel S. Riley)
9919
9920         * conf/mtab/mtab_osf.c (read_mtab): patch from
9921          dsr@mail.lns.cornell.edu (Daniel S. Riley) not to access
9922          uninitialized memory on Digital Unix.
9923
9924 1998-10-09  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9925
9926         * aux/macros/{check_mtype_type,check_mtype_printf_type}.m4: most
9927         systems now use "char *" as their mount type.
9928
9929 1998-10-08  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9930
9931         * amd/conf.c (gopt_map_type, ropt_map_type): check if map type
9932         exists.
9933
9934         * amd/mapc.c (mapc_type_exists): function to test if a map of
9935         certain type exists.
9936
9937 1998-10-08  Erez Zadok  <ezk@horatio.mcl.cs.columbia.edu>
9938
9939         * aux/macros/{mount_headers,try_compile_anyfs,try_compile_nfs}.m4,
9940         include/am_defs.h: Avoid a conflict in definitions of ntohl/htonl
9941         in RH-5.1 sparc64 between <netinet/in.h> and
9942         <linux/byteorder/generic.h> (2.1 kernels).
9943
9944 1998-09-28  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9945
9946         * aux/macros/func_bad_yp_all.m4 (ac_cv_func_yp_all_clean): RedHat
9947         5.1 systems with glibc glibc-2.0.7-19 or below leak a UDP socket
9948         from yp_all().
9949
9950 1998-09-25  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9951
9952         * conf/mount/mount_linux.c (parse_opts): check for pcfs support
9953         only if autoconfigured.
9954
9955 1998-09-18  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9956
9957         * Makefile.am (EXTRA_DIST): distribute README.yk2 file.
9958
9959         * README.y2k: explain y2k compliance status of am-utils.
9960
9961 1998-09-16  Erez Zadok  <ezk@iguana.mcl.cs.columbia.edu>
9962
9963         * amd/amfs_host.c (fetch_fhandle, amfs_host_fmount,
9964         amfs_host_umounted): clnt_sperrno() may return a const.
9965
9966 Sat Aug  8 23:28:32 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9967
9968         * aux/configure.in: check for <nfs/nfsmount.h>, as per Christos
9969         Zoulas. Turned on checking for mount options: async, synchronous,
9970         deadthresh, leasterm, nqnfs, and readahead.
9971
9972         * amd/info_nis.c: patch from christos@zoulas.com (Christos Zoulas)
9973         to include prototype definition for nis_isup().
9974
9975 Sun Jul 19 18:50:10 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9976
9977         * hlfsd/stubs.c (getcreds): force sscanf arg to u_long.
9978
9979 Tue Jul 14 20:34:25 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9980
9981         * released snapshot am-utils-6.0a17s1
9982
9983 Wed Jul  8 21:49:15 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9984
9985         * aux/macros/host_macros.m4: all x86 hosts should have $arch be
9986         i386, not i[456]86.
9987
9988 Tue Jul  7 18:55:09 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9989
9990         * aux/macros/{mount_headers,try_compile_anyfs,try_compile_nfs}.m4,
9991         include/am_defs.h: include <linux/posix_types.h> before
9992         <linux/fs.h> because on redhat 5.1, there is a bug (misuse) of
9993         headers in <socketbits.h> (it defines _LINUX_TYPES_H instead of
9994         __KERNEL_STRICT_NAMES).
9995
9996         * aux/configure.in: check for <linux/posix_types.h> because it is
9997         need for RedHat 5.1.
9998
9999 Wed Jun 17 00:05:33 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10000
10001         * scripts/Makefile.am (EXTRA_DIST): have fixrmtab generated from
10002         .in as well, so it doesn't get removed by make clean.
10003
10004 Tue Jun 16 22:00:15 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10005
10006         * aux/macros/{check_fs_mntent.m4, check_mnttab_type.m4,
10007         check_mount_type.m4}: redhat 5.1 puts some modules in
10008         /lib/modules/preferred/.
10009
10010 Wed May 13 16:33:57 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10011
10012         * amd/ops_autofs.c (mount_autofs): cast pid to long.
10013
10014 Tue Apr 28 15:12:36 1998  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10015
10016         * conf/nfs_prot/nfs_prot/nfs_prot_irix6.h,
10017         conf/nfs_prot/nfs_prot_sunos5_6.h: Undef MNTTAB_TYPE_AUTOFS too to
10018         avoid amd/am_ops.c (show_fstypes) from erroneously claiming
10019         support.
10020
10021 Fri Apr 24 23:02:11 1998  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10022
10023         * libamu/xutil.c (get_syslog_facility): Don't use LOG_DAEMON
10024         unconditionally, may be missing on Ultrix V4.3.
10025
10026 Thu Apr 23 20:24:33 1998  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10027
10028         * conf/nfs_prot/nfs_prot_sunos5_4.h (MNTTYPE_CACHEFS): Define,
10029         missing from <sys/mntent.h>.
10030
10031         * conf/mtab/mtab_ultrix.c: Need separate inclusion of <sys/fs_types.h>
10032         without KERNEL defined here.
10033
10034         * aux/macros/mount_headers.m4: Need to include <ufs/ufs_mount.h>,
10035         <cdfs/cdfs_mount.h>, <cdfs/cdfsmount.h> so autoconfiguration of
10036         ufs_args_t, cdfs_args_t fields and cdfs mount options can succeed.
10037
10038         * amd/ops_ufs.c (mount_ufs): Removed obsolete comment.
10039
10040         * ChangeLog: Fixed confusing linebreaks from ChangeLog imports.
10041         Removed purely local (and obsolete) entry.
10042
10043 Thu Apr 23 00:22:17 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10044
10045         *******************************************************************
10046         *** Released am-utils-6.0a16                                    ***
10047         *******************************************************************
10048
10049 Wed Apr 22 01:20:39 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10050
10051         * aux/macros/check_mount_style.m4: define freebsd3 mount style.
10052
10053         * aux/macros/check_mount_trap.m4: new mount trap for freebsd3.
10054
10055         * aux/macros/check_mtype_printf_type.m4,
10056         aux/macros/check_mtype_type.m4 (ac_cv_mtype_type,): freebsd3 (as
10057         of snapshot 3.0-980311-SNAP) uses char * types for mount(2), not
10058         integers, but I'll keep them as integers and do the mapping in
10059         conf/mount/mount_freebsd3.c
10060
10061         * minor new port to i386-pc-bsdi3.1.
10062
10063         * minor new port to i386-unknown-netbsd1.3.1.
10064
10065         * amd/opts.c: new option addopts:=ARG, which smartly merges ARG
10066         options with whatever the /default ones for a key are.  This
10067         allows adding or overriding /default options individual keys.
10068
10069         * amd/am_ops.c (ops_match): strdup/malloc string assigned to
10070         opt_opts because it'll get free()'d upon next use.
10071         (merge_opts): new function to merge two sets of options.
10072         (ops_match): if addopts option exist, append and merge it to the
10073         current default options.
10074
10075 Tue Apr 21 12:54:59 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10076
10077         * wire-test/wire-test.c (main): use dynamically allocated returned
10078         string with list of interfaces.
10079
10080         * amd/get_args.c (get_version_string): allocate enough space for
10081         header version string and a list of network interfaces of any
10082         length.
10083
10084         * libamu/wire.c (print_wires): return dynamically allocated string
10085         containing list of networks.  Must be dynamic because some sites
10086         had potentially dozens of network interfaces.  Patch from Matthew
10087         Crosby <mcrosby@ms.com> slightly modified.
10088
10089 Mon Apr 20 00:37:20 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10090
10091         * conf/nfs_prot/nfs_prot_irix5.h: underfine MNTTYPE_XFS because
10092         irix 5.3 does not have full header definitions for it.
10093
10094         * fsinfo/fsi_lex.l (yywrap): define yywrap if needed, and
10095         undefined it when not needed (similar to amd/conf_tok.l)
10096
10097         * hlfsd/hlfsd.h (ROOTID, SLINKID, INVALID): reduced maximum size
10098         of these to unsigned short (because uid_t on some linux systems is
10099         small).
10100
10101         * released snapshot am-utils-6.0a16s10
10102
10103         * doc/am-utils.texi (opts Option): documented resvport mount
10104         option.
10105
10106 Sun Apr 19 18:17:03 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10107
10108         * doc/am-utils.texi (-D-Option): document behavior of -D info and
10109         especially what it does to hesiod (turn on RES_DEBUG).
10110
10111         * scripts/amd.conf.5: document info debugging option.
10112
10113         * libamu/xutil.c (dbg_opt): parse info debugging option.
10114
10115         * include/am_utils.h (D_INFO): define new trace option.
10116
10117         * Makefile.am (EXTRA_DIST): include list of official mirrors in
10118         distribution.
10119
10120         * libamu/wire.c (SIZE): in the simple case, just compute
10121         sizeof(struct ifreq).
10122
10123 Sun Apr 19 16:30:35 1998  Erez Zadok  <ezk@lorien.cs.columbia.edu>
10124
10125         * amd/amd.c (daemon_mode): set a temporary secure umask(0022)
10126         before writing log file and restore it afterwards.  Patch from
10127         Donald Buczek <buczek@MPIMG-Berlin-Dahlem.MPG.DE>.
10128
10129         * amd/get_args.c (get_args):
10130
10131         * doc/am-utils.texi (-F Option), amd/amd.8: mention that amd.conf
10132         file specified by -F is always processed last.
10133
10134         * amd/amd.c (daemon_mode): do not fclose(stdout) so that the fd
10135         won't be reused.  Allows startup script to redirect stdout.  Patch
10136         from Donald Buczek <buczek@MPIMG-Berlin-Dahlem.MPG.DE>.
10137
10138         * libamu/xutil.c (switch_to_logfile): compare logfile name and
10139         syslog string with correct length.  Patch from Donald Buczek
10140         <buczek@MPIMG-Berlin-Dahlem.MPG.DE>.
10141
10142         * amd/restart.c (restart): correctly inherit existing NFS V.3
10143         mounts upon restart.  Patch from Donald Buczek
10144         <buczek@MPIMG-Berlin-Dahlem.MPG.DE>.
10145
10146 Sat Apr 18 19:01:19 1998  Erez Zadok  <ezk@lorien.cs.columbia.edu>
10147
10148         * using libtool 1.2 and automake 1.3 (with my patches).
10149
10150         * aux/macros/opt_am_cflags.m4, */Makefile.in: rename AM_CFLAGS to
10151         AMU_CFLAGS to avoid conflicts with automake-1.3.
10152
10153 Sun Apr  5 23:09:08 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10154
10155         * converted to using libtool-1.2.
10156
10157 Tue Mar 10 16:52:09 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10158
10159         * fsinfo/fsi_analyze.c (fixup_required_mount_info): replaced silly
10160         for loop (ITER) which used to run only to initialize the variable
10161         dd once and then break; with a simple assignment.
10162
10163         * hlfsd/hlfsd.h: cleanup so it compiles with Solaris
10164         /opt/SUNWspro/bin/cc, and use gid_t not int.
10165
10166         * amd/mapc.c (mapc_sync): don't dereference pointer (so it
10167         compiles with Solaris /opt/SUNWspro/bin/cc)
10168
10169 Sun Mar  8 15:54:22 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10170
10171         * aux/config.{guess,sub}: used from gcc-2.8.1.
10172
10173 Sat Mar  7 15:33:27 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10174
10175         * released snapshot am-utils-6.0a16s9
10176
10177         * INSTALL, doc/am-utils.texi (Supported Platforms): updated names
10178         based on new output of new config.guess.
10179
10180         * aux/config.{sub,guess}: used newer versions from gcc-2.8.0.
10181
10182         * amd/amd.8,doc/am-utils.texi: document correct usage of default
10183         /etc/amd.conf file.
10184
10185         * fixmount/fixmount.c (inetresport,privsock): use some more
10186         portable code from amq/amq.c.
10187
10188         * amd/get_args.c (get_args): use default /etc/amd.conf file only
10189         if no arguments had been passed to amd.
10190
10191         * fixmount/fixmount.c (clnt_create_timeout): use tli/socket code
10192         ala amq/amq.c so that fixmount will work on both types of systems.
10193
10194         * amq/amq.c (main): do no close tcp socket before running udp try,
10195         because we're not sure if it was opened at all.
10196
10197         * mips-dec-ultrix* port merged in and cleaned up.
10198
10199         * aux/configure.in: up minor shared library revision number, since
10200         it has changed enough.
10201
10202         * hlfsd/hlfsd.c (main): don't check for overlay mount option here,
10203         as it is now done in compute_nfs_args().  Remove ultrix specific
10204         code also because it was moved to compute_nfs_args().
10205
10206         * conf/mount/mount_svr4.c: removed DEBUG_MOUNT_SVR4 code, now that
10207         we have more generic code in print_nfs_args().
10208
10209         * libamu/mount_fs.c (print_nfs_args): print maxlen of
10210         nfs_args.addr, and also syncaddr (which is mostly NULL).  Print
10211         struct knetconfig from nfs_args->knconf.
10212
10213         * aux/macros/mount_headers.m4 (define): do not check for ufs/cdfs
10214         headers here, but in try_compile_anyfs.m4.
10215
10216         * aux/macros/type_ufs_args.m4: move test for struct ufs_specific
10217         (for ultrix) here from its own macro.
10218
10219         * aux/macros/type_cdfs_args.m4: move test for struct iso_specific
10220         (for ultrix) here from its own macro.
10221
10222         * amd/ops_nfs.c (mount_nfs_fh): no need to run code again checking
10223         for overlay mount option.  Remove code which checks for overlay
10224         option, as it is now done in compute_nfs_args().
10225
10226         * libamu/mount_fs.c (compute_mount_flags): move here code which
10227         checks for overlay mount option which was in amd/amfs_toplvl.c:
10228         mount_amfs_toplvl().
10229
10230 Wed Feb  7 15:35:51 1998  Rainer Orth  <ro@xayide.TechFak.Uni-Bielefeld.DE>
10231
10232         * The following are Rainer's ChangeLog entries for his ultrix
10233         port, added manually. -Erez.
10234
10235         * merged Ultrix port with am-utils 6.0 a16s5: amd/ops_afs.c
10236         (mount_toplvl) -> amd/amfs_toplvl.c (mount_amfs_toplvl)
10237
10238         * include/am_defs.h: include cdfs specific mount headers
10239         avoid duplication definition of gt_names[] in <sys/fs_types.h> (Ultrix)
10240
10241         * include/am_compat.h: define several mount options corresponding
10242         to mount flags: pgthresh, hard (nfs), defperm, nodefperm,
10243         noversion, rrip (cdfs), nocache, quota, sync (generic) removed
10244         duplicate MNTTAB_OPT_RO definition
10245
10246         * aux/macros/try_compile_anyfs.m4: include Ultrix specific
10247         ufs/cdfs mount headers
10248
10249         * aux/macros/mount_headers.m4: include several Ultrix/Digital UNIX
10250         specific mount headers
10251
10252         * aux/macros/check_{fs_mntent, mount_type}.m4: check for GT_*
10253         mount types in mount headers (Ultrix)
10254
10255         * aux/configure.in: Ultrix/Digital UNIX specific checks: new
10256         headers, mount structures and fields, filesystem and mount types,
10257         mount flags
10258
10259         * aux/acconfig.h: placeholders for new mount options: quota
10260         (generic), ro (nfs), defperm, nodefperm, noversion, rrip (cdfs)
10261         cdfs, nfs, ufs mount structure fields new ufs, cdfs mount
10262         structures
10263
10264         * amd/ops_ufs.c (mount_ufs): Ultrix stores generic mount flags in
10265         ufs_args.ufs_flags and has ufs specific pgthresh option
10266
10267         * amd/ops_cdfs.c (mount_cdfs): handle Ultrix/Digital UNIX specific
10268         CDFS mount flags and options
10269
10270         * amd/ops_afs.c (mount_toplvl), amd/ops_nfs.c (mount_nfs_fh),
10271         hlfsd/hlfsd.c (main): store generic mount flags in
10272         nfs_args.gfs_flags, handle separate NFS ro flag
10273
10274         * aux/macros/{check_mnt2_cdfs_opt, struct_iso_specific,
10275         struct_ufs_specific}.m4: new files; check for Ultrix specific
10276         mount structures
10277
10278         * conf/trap/trap_ultrix.h: arg 3 to mount(2) is rwflag
10279
10280         * aux/macros/type_auth_create_gidlist.m4 (ultrix*):
10281         AUTH_CREATE_GIDLIST_TYPE is int (not short == gid_t) from a
10282         comment in <rpc/auth.h>
10283
10284         * include/am_defs.h: #define KERNEL to avoid definition of
10285         gt_names[] conf/mtab/mtab_ultrix.c: #include <sys/fs_types> before
10286         <config.h> to force single definition here
10287
10288         * libamu/mount_fs.c (compute_nfs_args): Ultrix support for
10289         nfs_args.gfs_flags moved to callers store mount options in
10290         nap->optstr
10291
10292         * include/am_defs.h: fix _am_mntent mnt_{type, opts} field
10293         descriptions
10294
10295         * aux/macros/mount_headers.m4, aux/macros/try_compile_nfs.m4:
10296         include <rpc/rpc.h> before AMU_NFS_PROTOCOL_HEADER for svc_req
10297         definition in prototypes
10298
10299         * aux/macros/mount_headers.m4: include <sys/errno.h> before
10300         AMU_NFS_PROTOCOL_HEADER: <nfs/nfs.h> needs it for NFSERR_*
10301         definitions
10302
10303         * conf/nfs_prot/nfs_prot_ultrix.h: new file
10304
10305         * aux/macros/check_nfs_prot_headers.m4: use nfs_prot_ultrix.h
10306
10307         * aux/macros/mount_headers.m4, aux/macros/try_compile_nfs.m4,
10308         aux/macros/try_compile_rpc.m4, include/am_defs.h: avoid multiple
10309         inclusion of <rpc/xdr.h>
10310
10311 Sat Mar  7 13:56:05 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10312
10313         * aux/configure.in: save state of config.cache and confdefs.h
10314         (as dbgcf.h) at various points of the configure.
10315
10316         * aux/macros/save_state.m4: new macro to save state of configure,
10317         esp. useful in long ones.  Saves confdefs.h and write $ac_cv_*
10318         cache variables that are known so far.
10319
10320         * released snapshot am-utils-6.0a16s8
10321
10322 1998-03-06  Erez Zadok  <ezk@mercer.psl.cs.columbia.edu>
10323
10324         * fsinfo/fsi_lex.l,amd/conf_tok.l: define ECHO after undefining
10325         it, but only for flex.
10326
10327 Fri Mar  6 17:23:17 1998  Erez Zadok  <ezk@chestnut.mcl.cs.columbia.edu>
10328
10329         * hlfsd/homedir.c (plt_print): change pathname of hlfsd dump file
10330         to /usr/tmp/hlfsd.dump.XXXXXX, and use a safe method (if possible)
10331         to write the dump file.
10332
10333         * doc/am-utils.texi,amd/opts.c: rename all references to nomadic
10334         functions to boolean functions, which is what they really are.
10335
10336         * aux/configure.in: don't look for strcasecmp in libucb at all,
10337         but rather complete it from libamu/strcasecmp.c as needed.
10338
10339 Fri Mar  6 03:29:20 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10340
10341         * conf/nfs_prot/nfs_prot_osf4.h: avoid conflicts with Irix's EFS.
10342
10343         * libamu/wire.c (getwire): fix for 0.0.0.0 loopback on SunOS 3.X
10344         which defines IFF_ROUTE instead of IFF_LOOPBACK.  Patch from Tom
10345         Schmidt <tschmidt@micron.com>.
10346
10347         * released snapshot am-utils-6.0a16s7
10348
10349         * conf/nfs_prot/nfs_prot_hpux11.h: a first working port of amd to
10350         hppa1.0-hp-hpux11.00.tgz.
10351
10352 Thu Mar  5 21:59:03 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10353
10354         * converted all sources to use mntent field names, and map mnttab
10355         field names to mntent's.
10356
10357         * include/am_defs.h (mnt_special): map struct mnttab field names
10358         to struct mntent field names.
10359
10360         * aux/macros/check_mount_trap.m4: hpux11's mount trap style is
10361         identical to svr4/solaris2.
10362
10363         * aux/macros/check_mount_style.m4: hpux11's mount style is
10364         identical to svr4/solaris2.
10365
10366         * aux/macros/check_network_transport_type.m4: hpux11 is a TLI
10367         system!
10368
10369         * aux/macros/check_nfs_sa_dref.m4: hpux11's NFS host address
10370         dereferencing style is same as svr4.
10371
10372         * aux/macros/check_nfs_fh_dref.m4: hpux11's NFS file fh
10373         dereferencing style is same as svr4.
10374
10375         * conf/transp/transp_tli.c (create_nfs_service): if failed to
10376         getnetconfigent() of ticlts, then try udp (hpux11).
10377
10378         * conf/nfs_prot/nfs_prot_hpux11.h: added correct definitions for
10379         struct nfs_args, nfs_fh, and NFSMNT_* flags, taken from solaris
10380         2.5.1 (HP used them).
10381
10382         * amd/rpc_fwd.c (fwd_init): don't use O_NDELAY for t_open()
10383         because hpux11 doesn't like it. if t_open failed, print error
10384         based on t_errlist, not sys_errlist.
10385
10386 Wed Mar  4 22:01:55 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10387
10388         * doc/am-utils.texi: lots of documentation fixes from Rainer Orth
10389         <ro@TechFak.Uni-Bielefeld.DE>.
10390
10391 Sat Feb 28 22:16:35 1998  Erez Zadok  <ezk@kosh.cs.columbia.edu>
10392
10393         * fsinfo/fsi_lex.l: undefine ECHO again, so it doesn't get used
10394         later.
10395
10396         * include/am_defs.h: defined the extern for ualarm() if it isn't
10397         found, regardless if the function isn't found in standard
10398         libraries, because otherwise libamu will include it.
10399
10400 1998-02-28  Erez Zadok (per Ron Snyder)  <ezk@short.cvo.roguewave.com>
10401
10402         * initial port to hpux-11 completed.  Compiles cleanly, but
10403         probably does not work, because of missing NFS V.2/3 headers.
10404
10405         * amd/conf_tok.l: cast yytext to char* when passed to strlen and
10406         strdup, for hpux-11's ansi-cc compiler.
10407
10408         * include/am_utils.h: renamed all xfree() to XFREE() to avoid
10409         conflict with hpux-11's system headers.  Also move (voidp) cast
10410         from sources to inside the macro itself.
10411
10412 Sat Feb 28 13:44:21 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10413
10414         * released snapshot am-utils-6.0a16s6
10415
10416         * amd/info_nis.c (nis_isup): new function to test if NIS is up
10417         without hanging amd.  Used to ensure that amd does not clear the
10418         maps when the expiration period arrived, if the service is down.
10419         Otherwise it would be left with empty maps.  It is better to stay
10420         with possibly old information than none at all.
10421
10422         * amd/mapc.c (mapc_sync): check to see if map service is up.
10423
10424 Tue Feb 24 02:19:42 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10425
10426         * aux/macros/check_lib2.m4 (AC_CHECK_LIB2): fix macro so it
10427         includes auxiliary library only if needed.
10428
10429 1998-02-22  Erez Zadok  <ezk@mercer.psl.cs.columbia.edu>
10430
10431         * amd/conf_tok.l: undefine ECHO again, so it doesn't get used
10432         later.
10433
10434 Sun Feb 22 01:41:08 1998  Erez Zadok  <ezk@zen.cs.columbia.edu>
10435
10436         * conf/nfs_prot/nfs_prot_osf2.h: port to alpha-dec-osf2.1
10437         completed.
10438
10439         * conf/mtab/mtab_osf.c (mnt_dup): not all OSF have NFS3.
10440
10441 Sat Feb 21 19:45:48 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10442
10443         * doc/am-utils.texi (Network Host Filesystem): correct example for
10444         type:=host map.
10445
10446         * aux/macros/os_cflags.m4: only osf4 should compile with
10447         -D_SOCKADDR_LEN.
10448
10449         * aux/macros/check_nfs_prot_headers.m4: distinguish between OSF2
10450         and OSF4.
10451
10452         * BUGS: include a new file listing known bugs.
10453
10454 Sat Feb 21 03:50:48 1998  Erez Zadok  <ezk@mercer.psl.cs.columbia.edu>
10455
10456         * conf/nfs_prot/nfs_prot_linux.h: turn DES off on all linux
10457         versions.
10458
10459         * aux/macros/type_recvfrom_fromlen.m4: linux alpha should use
10460         size_t for recvfrom fromlen arg.
10461
10462 Sat Feb 21 03:33:59 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10463
10464         * scripts/ctl-hlfsd.in: turn -D fork so primary process never
10465         hangs.
10466
10467 Sat Feb 21 02:45:51 1998  Erez Zadok  <ezk@mercer.psl.cs.columbia.edu>
10468
10469         * include/am_defs.h: don't include <sys/stat.h> and
10470         <linux/stat.h>, just remaining definitions in <statbuf.h>
10471
10472 Thu Jan 29 00:44:28 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10473
10474         * released snapshot am-utils-6.0a16s5
10475
10476         * conf/mount/mount_irix6.c (mount_irix): pass {u,e,x}fs_args to
10477         mount(2).
10478
10479         * check for <sys/fs/xfs_clnt.h> and include it when needed.
10480
10481         * conf/mount/{mount_irix5.c,mount_irix6.c} (mount_irix): recognize
10482         efs and xfs separately from "ufs".
10483
10484         * amd/{ops_xfs.c,ops_efs.c}: new support for irix xfs/efs.
10485
10486         * aux/configure.in: look for irix efs and xfs file systems.
10487
10488         * scripts/amd.conf.5: new unmount_on_exit option documented.
10489
10490         * doc/am-utils.texi (unmount_on_exit): new option documented.
10491
10492         * amd/conf.c (gopt_unmount_on_exit): new function to handle new
10493         amd.conf option.
10494
10495         * amd/map.c (umount_exported): if global amd.conf flag
10496         unmount_on_exit is on, then try to unmount all mounted (or
10497         restartable) file systems.
10498
10499         * amd/amd.c: if print_pid option is on, then normally print it to
10500         stdout.  If also pid_file is specified, then print the process ID
10501         into that file.
10502
10503         * amd/get_args.c (get_args): print correct -l option depending if
10504         system supports syslog and/or syslog facilities.  Patch from
10505         Tom Schmidt <tschmidt@micron.com>.
10506
10507         * doc/am-utils.texi (opts Option): updates for documentation for
10508         new cdfs options defperm, nodefperm, noversion, rrip.
10509
10510         * amd/ops_cdfs.c (mount_cdfs): support cdfs options defperm,
10511         nodefperm, noversion, rrip.
10512
10513         * conf/nfs_prot/nfs_prot_osf.h: need to look at <cdfs/cdfsmount.h>
10514         on osf.
10515
10516         * aux/macros/{expand_cpp_hex.m4, expand_cpp_int.m4,
10517         expand_cpp_string.m4}: use #error to make failed compilations
10518         fail faster, rather than have the program fail during a run.
10519
10520         * include/am_compat.h: added a few new cdfs options: rrip,
10521         noversion, defperm, and nodefperm (used in OSF).
10522
10523 Wed Jan 28 20:24:09 1998  Erez Zadok  <ezk@lorien.cs.columbia.edu>
10524
10525         * released snapshot am-utils-6.0a16s4
10526
10527         * doc/am-utils.texi (Global Parameters): update manual for new
10528         amd.conf global variable hesiod_base.
10529
10530         * scripts/amd.conf.5: update man page for new amd.conf global
10531         variable hesiod_base.
10532
10533         * amd/get_args.c (get_args): use /etc/amd.conf file if exists by
10534         default, else try command line options.  Patch from Randall
10535         S. Winchester <rsw@Glue.umd.edu>.
10536
10537 Wed Jan 28 12:20:56 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10538
10539         * amd/info_hesiod.c (hesiod_search), amd/conf.c
10540         (gopt_hesiod_base), amd/amd.h, amd/amd.c (init_global_options):
10541         included patch from Randall S. Winchester <rsw@Glue.umd.edu>, to
10542         support a hesiod base name in the amd.conf file.
10543
10544         * doc/am-utils.texi (pid_file Parameter): document new global
10545         amd.conf parameter.
10546
10547         * scripts/amd.conf.5: document new global option pid_file.
10548
10549         * amd/amd.c (daemon_mode): if cannot open pid_file, continue to
10550         run, but print error message.
10551
10552         * amd/conf.c (gopt_pid_file), amd/amd.h, amd/amd.c (daemon_mode,
10553         init_global_options): Included patch from Randall S. Winchester
10554         <rsw@Glue.umd.edu>, to support pid files in the amd.conf file.
10555
10556         * amd/get_args.c (get_args): correct usage info on amd -t.
10557
10558         * amd/*.c: massive file name and symbol name changes.  All amd
10559         file systems files and symbols are prefix with amfs_*.  Now using
10560         real name of file system: amfs_auto instead of afs, amfs_inherit
10561         instead of ifs, amfs_linkx instead of sfsx, etc.  This will enable
10562         clear distinction between amd file system and generic ones like
10563         nfs/ufs/pcfs/hsfs.  Also, now we can implement true afs (Andrew
10564         f/s) and DFS (Distributed f/s).
10565
10566         * amd/amfs_union.c: unionfs for amd is always defined, no need to
10567         #ifdef it.
10568
10569 Mon Jan 26 16:51:38 1998  Erez Zadok  <ezk@chestnut.mcl.cs.columbia.edu>
10570
10571         * libamu/mount_fs.c (compute_nfs_args): set 'noconn' NFS option on
10572         or off, based on the particular quirks of the OS in question.
10573
10574         * aux/macros/check_nfs_socket_connection.m4: new macro to set the
10575         correct wait of handling un/connected NFS sockets.
10576
10577         * scripts/wait4amd.in: use rlogin instead of rsh.
10578
10579         * amd/am_ops.c (ops_showfstypes): when showing F/S types in amd
10580         -v, always show "nfs3" for NFS V.3.
10581
10582 1998-01-25  Erez Zadok  <ezk@snoopy.cs.columbia.edu>
10583
10584         * lots of small fixes for solaris 2.6, since gcc 2.8.0 -Wall gets
10585         more picky than 2.7.2.3 did.
10586
10587 1998-01-24  Erez Zadok  <ezk@snoopy.cs.columbia.edu>
10588
10589         * include/am_utils.h (dlog): amuDebug macros reduced to shorter
10590         forms.
10591
10592 Fri Jan 23 18:38:30 1998  Erez Zadok  <ezk@goat.mcl.cs.columbia.edu>
10593
10594         * released snapshot am-utils-6.0a16s3
10595
10596         * include/am_defs.h: on Solaris 2.6, <sys/varargs.h> is included
10597         in <sys/fs/autofs.h> but since stdargs.h is used, and varargs.h
10598         must not, fake a definition for varargs.
10599
10600 Fri Jan 16 10:16:40 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10601
10602         * README: show how to configure in additional support such as
10603         hesiod using various --enable-* flags.
10604
10605 Wed Jan 14 15:13:02 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10606
10607         * aux/configure.in: look for strcasecmp(), and replace it if not
10608         available.
10609
10610         * amd/ops_nfsl.c (nfsl_match): host names should be compared using
10611         case insensitive.
10612
10613         * amd/opts.c: for each map variable, define if the comparison
10614         needs to be done case insensitive.
10615
10616         * include/am_utils.h (STRCEQ): a new macro to use strcasecmp().
10617         Patch from Thomas Richter <richter@chemie.fu-berlin.de>
10618
10619 1998-01-14  Erez Zadok  <ezk@irt.cs.columbia.edu>
10620
10621         * aux/configure.in: look for "isofs" as a possible mount type for
10622         cdfs (RedHat Linux).
10623
10624 Wed Jan 14 02:07:05 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10625
10626         * conf/mount/mount_linux.c (parse_opts): don't look for cdfs mount
10627         type if not defined.
10628
10629         * conf/nfs_prot/nfs_prot_linux.h: don't define __FD_* macros if
10630         already defined.
10631
10632         * aux/configure.in: look for ext2fs before ufs, b/c some linux
10633         have both.
10634
10635 Mon Jan 12 15:43:20 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10636
10637         * Makefile.am (snapshot): allow me to install snapshots into the
10638         ftp directory.
10639
10640         * scripts/ctl-hlfsd.in: don't turn on -D mem by default.
10641
10642         * amd/get_args.c (get_args): minor bug in output of amd -H.
10643
10644 Mon Jan 12 03:05:06 1998  Erez Zadok  <ezk@chestnut.mcl.cs.columbia.edu>
10645
10646         *******************************************************************
10647         *** Released am-utils-6.0a15                                    ***
10648         *******************************************************************
10649
10650 Sun Jan 11 15:06:34 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10651
10652         * amd/conf.c (*_browsable_dirs): allow specifying
10653         browsable_dirs=full, which will print *all* entries (other than
10654         /default), including  those with '*' and '/' characters.
10655
10656         * amd/info_file.c (MAX_LINE_LEN): up maximum readdir chain length
10657         to 1500.
10658
10659         * doc/am-utils.texi: fixed reversed documentation for NFS mount
10660         options vers and proto.
10661
10662         * doc/Makefile.am (install-html): separate target just for
10663         installing html files.  Another new target "alldocs" is just for
10664         installing all files needed for the am-utils home page.
10665
10666         * scripts/amd.conf-sample: updated example for log_file.
10667
10668         * scripts/amd.conf.5: updated for new way to declare new syslog
10669         facility in the log_file option.
10670
10671         * amd/amd.8: updated for new way to declare new syslog facility in
10672         the -l option.
10673
10674         * libamu/xutil.c (get_syslog_facility): allow users to specify the
10675         syslog facility as an appended string to the log device.  Ex. amd
10676         -l syslog:local7 will use LOG_LOCAL7, while the older -l syslog
10677         will use the default LOG_DAEMON facility.
10678
10679         * amd/get_args.c (get_args): updated new syntax for amd -l
10680         syslog:facility.
10681
10682 Thu Jan  8 04:05:10 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10683
10684         * aux/macros/host_macros.m4: don't confuse sun3 (sparc) with sun3
10685         (intel).
10686
10687         * libamu/wire.c (print_wires): bug fix.  Nullify output buffer
10688         before appending to it, on systems with two or more network
10689         interfaces.
10690
10691         * conf/nfs_prot/nfs_prot_sunos5_3.h: add missing definition for
10692         the mntent for cachefs.
10693
10694         * include/am_defs.h: external definition for strstr() should use
10695         const for both arguments.
10696
10697         * aux/configure.in: add extern definitions for getwd() if missing.
10698
10699         * include/am_defs.h: define the extern for strdup() even if the
10700         function does not exist, for it will be filled in by
10701         libamu/strdup.c
10702
10703         * amq/pawd.c (cluster_server): don't use getccent() if the extern
10704         for it isn't there.  On hpux 10.20, the function is in libc, but
10705         <cluster.h> and struct cct_entry do not exist.
10706
10707         * aux/configure.in: check for an extern for getccent() b/c some
10708         hpux systems don't have it (hpux 10.20).
10709
10710 Wed Jan  7 00:09:19 1998  Erez Zadok  <ezk@lorien.cs.columbia.edu>
10711
10712         * doc/am-utils.texi (Amq -T option): manual documentation updates
10713         for new amq options -T/-U.
10714
10715         * amq/amq.8: updated man page for new amq options -T/-U.
10716
10717         * amq/amq.c: two new switches to amq. -U will contact amd using
10718         UDP only.  -T will use TCP only.  Normally amq will try TCP and
10719         if that failed, will try UDP.
10720
10721         * doc/am-utils.texi (pawd): manual documentation for pawd.
10722
10723         * amq/pawd.1: new man page for pawd.
10724
10725 Tue Jan  6 04:21:59 1998  Erez Zadok  <ezk@lorien.cs.columbia.edu>
10726
10727         * amq/pawd.c: a new program, Print Automounter Working Directory,
10728         to print the proper pathname of the cwd or any other pathname,
10729         adjusted for automounter paths, while avoiding mount points.
10730
10731         * aux/macros/localconfig.m4: trivial support for am-utils
10732         maintainers to adjust some of the configuration of am-utils after
10733         it has been auto-configured by putting whatever definitions you
10734         wish in a file called localconfig.h, located in the top build
10735         directory (the same one where config.h is created for you).
10736
10737         * doc/am-utils.texi (Caching Filesystem): updated documents for
10738         cachefs file system.
10739
10740         * amd/ops_cachefs.c: initial cachefs support, for solaris.
10741         type:=cachefs, requires cachedir:=/cache/dir/name to be defined
10742         and initialized with cfsadmin -c.  $rfs is backdir to be cached
10743         from, and $fs is the local mount point of the cachefs.
10744
10745         * conf/mount/mount_svr4.c (mount_svr4): support mounting of
10746         cachefs file systems.
10747
10748         * amd/ops_cdfs.c: cdfs should be named 'cdfs', not whatever the
10749         mnttab type is.
10750
10751 Mon Jan  5 23:22:49 1998  Erez Zadok  <ezk@lorien.cs.columbia.edu>
10752
10753         * amd/opts.c: added support for new variable $cachedir.
10754
10755         * include/am_utils.h: added opt_cachedir field to struct am_opts.
10756
10757 Sat Jan  3 01:43:57 1998  Erez Zadok  <ezk@lorien.cs.columbia.edu>
10758
10759         * amd/ops_nfsl.c (nfsl_ffserver, nfsl_match): also check if the
10760         local hostname does not match $rhost, and if so, also assume
10761         type:=nfs.
10762
10763 Fri Jan  2 01:00:40 1998  Erez Zadok  <ezk@lorien.cs.columbia.edu>
10764
10765         * updated all source files to add 1998 as a copyright year.
10766
10767         * amd/ops_nfsl.c: new amd meta file system "type:=nfsl".  Behaves
10768         like type:=linkx if the pathname denoted by $fs exists, and like
10769         type:=nfs if it does not.  A convenient shortcut for the most
10770         popular amd map entry.
10771
10772         * amd/amd.c (main): amd should chdir to / before starting, to
10773         avoid hanging on other NFS server if started elsewhere.
10774
10775         * amd/ops_TEMPLATE.c: added an empty template file for developers
10776         who wish to write new amd pseudo file systems.
10777
10778 Thu Jan  1 00:27:28 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10779
10780         * hlfsd/homedir.c (plt_init): make function exported, to save on
10781         the unnecessary init_homedir() function which was removed.
10782         (table_add): don't use xmalloc() when you can use strdup()
10783         instead.
10784
10785 Thu Jan  1 00:15:58 1998  Erez Zadok  <ezk@chestnut.mcl.cs.columbia.edu>
10786
10787         * hlfsd/homedir.c (hlfsd_endpwent): Don't actually run this
10788         because we will be making more passwd calls afterwards.  On
10789         Solaris 2.5.1, making getpwent() calls after calling endpwent()
10790         results in a memory leak! (and no, even Purify didn't detect
10791         it...)
10792
10793 Tue Dec 23 18:23:47 1997  Erez Zadok  <ezk@chestnut.mcl.cs.columbia.edu>
10794
10795         * hlfsd/hlfsd.c (main): Bug fix.  Don't try to free() an
10796         automatically allocated address.
10797
10798         * amd/ops_afs.c (mount_toplvl): Bug fix.  Don't try to free() an
10799         automatically allocated address.
10800
10801         * ALL SOURCES: change every direct call to free() to xfree(), so
10802         it can be mapped to the right debugging function as needed.
10803
10804         * include/am_utils.h: new free() policy.  If debugging memory,
10805         call dxfree(), which will print the file name and line number
10806         where the free occurred and the pointer address.  if only regular
10807         debugging, then free() and reset  the pointer to NULL so it cannot
10808         be used afterwards inadvertently.  If not DEBUG at all, then just
10809         run free().  Three different #define macros set the right mapping.
10810
10811         * libamu/xutil.c (dxfree): renamed function to dxfree(), so it can
10812         be called only when debugging the memory.
10813
10814 Tue Dec 23 04:24:28 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10815
10816         * wire-test/wire-test.c (main): use xmalloc() not malloc().
10817
10818         * conf/transp/transp_tli.c (get_knetconfig): use xzalloc() not
10819         calloc().
10820
10821         * conf/mtab/mtab_mach3.c (convert): use xzalloc() not calloc().
10822
10823         * conf/mount/mount_linux.c (parse_opts): use xmalloc() not
10824         malloc().
10825
10826         * amd/info_ldap.c: use xmalloc() not malloc().
10827
10828         * libamu/xutil.c (xzalloc): new function to allocate memory and
10829         zero its bytes.
10830
10831         * amq/amq.c: amq does not need its own definition of xfree().
10832
10833         * aux/macros/opt_debug.m4: if used --enable-debug=mem, then also
10834         look for function malloc_verify() in libmapmalloc.a, and function
10835         mallinfo() in libmalloc.
10836
10837         * libamu/xutil.c (checkup_mem): do not use mallinfo field
10838         uordbytes, because it does not always exist.  Rather, compute it
10839         from other fields..
10840
10841         * include/am_utils.h: add external definition to xfree() function
10842         used when debugging memory references.
10843
10844 Mon Dec 22 03:01:30 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10845
10846         * amd/ops_afs.c (afs_readdir_browsable): reduce the number of
10847         bytes heuristically computed to be returned to the kernel.
10848         Otherwise browsable_dirs fails on OpenBSD 2.2.
10849
10850         * amd/mntfs.c (uninit_mntfs): bug fix.  Moved freeing of
10851         mf_private field to AFTER it gets used.
10852
10853 Sat Dec 20 00:51:21 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10854
10855         * amd/ops_host.c (host_umounted): don't use clnt_spcreateerror()
10856         on systems that don't support it.
10857
10858         * include/am_defs.h: add missing extern definition for free().
10859
10860         * aux/configure.in: check for external definition for free().
10861
10862         * libamu/Makefile.am: add to comment a mention of strstr as an
10863         optional function.
10864
10865         * libamu/xutil.c (switch_to_logfile): use openlog() options only
10866         if they exist.
10867
10868         * conf/transp/transp_sockets.c (get_nfs_version): don't use
10869         clnt_spcreateerror if it does not exist.
10870
10871         * aux/configure.in: check for missing functions clnt_create and
10872         clnt_spcreateerror.  Check for missing strstr, and complete
10873         its code.  Check for missing external definition for strstr.
10874
10875         * aux/macros/host_macros.m4: normalize sun3* names.
10876
10877         * Makefile.am: updates for new sunos3 files distributed.
10878
10879         * conf/nfs_prot/nfs_prot_sunos3.h: new file.
10880
10881         * conf/fh_dref/fh_dref_sunos3.h: new file.
10882
10883         * aux/macros/check_nfs_prot_headers.m4: added sunos3 case.
10884
10885         * aux/macros/check_nfs_fh_dref.m4: added sunos3 case.
10886
10887         * doc/am-utils.texi (wire Selector Variable): updated manual for
10888         adjusted variables wire, network, and netnumber, all using the
10889         in_network() function.
10890
10891 Fri Dec 19 04:37:36 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10892
10893         * amd/opts.c: allow options to be processed by executing arbitrary
10894         functions.  Converted wire, network, and netnumber all to use the
10895         nomadic function in_network.  So from now on they perform a match
10896         against all networks, not just primary.
10897
10898         * initial port to alpha-unknown-linux-gnu, probably works, but
10899         untested yet.
10900
10901         * conf/nfs_prot/nfs_prot_linux.h: add special definitions for
10902         __FD_* macros which for som strange reason do not get included
10903         from <selectbits.h> on redhat alpha linux.  Also turn off usage of
10904         <rpc/des_auth.h> because it is incomplete on the same systems.
10905
10906         * hlfsd/homedir.c (table_add): cast uid field to int, for
10907         comparison.
10908
10909         * include/am_defs.h: more coflicts with redhat alpha linux
10910         "resolved".
10911
10912         * aux/macros/{mount_headers,try_compile_anyfs,try_compile_nfs}.m4:
10913         There's a conflict of definitions on redhat alpha linux between
10914         <netinet/in.h> and <linux/fs.h> which must be avoided.
10915
10916         * aux/configure.in: check for <socketbits.h>, which is in use on
10917         redhat alpha linux.
10918
10919         * doc/am-utils.texi (Selectors): added documentation to describe
10920         the new "!" (negated) nomadic functions.
10921
10922         * amd/opts.c (f_in_network): print debugging info that is correct,
10923         rather than saying that any ARG is on a local network.
10924         (eval_opts): added support for negating nomadic functions, by
10925         prepending "!" to their name.  Example, !exists(/foo/bar).
10926
10927 Thu Dec 18 20:57:19 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10928
10929         * include/am_compat.h: ensure that all NFS3 systems have the mount
10930         table entries (and amd opts switches) "proto" and "vers".
10931
10932         * hlfsd/homedir.c (table_add): added some debugging info to try
10933         and track down a serious memory leak in hlfsd.
10934
10935 1997-12-18  Erez Zadok  <ezk@t-rex.mcl.cs.columbia.edu>
10936
10937         * libamu/mount_fs.c (compute_nfs_args): OpenBSD 2.2 requires that
10938         you do NOT set the noconn option, and use connected sockets
10939         always.  So I'm now forced not to set it at all, and have the user
10940         specify it as "conn" or "noconn" in their /default entry.  Argh...
10941         Finally, it looks as if OpenBSD 2.2's NFS 3 implementation may be
10942         buggy (TCP hangs with "short receive" kernel errors).  I'd better
10943         wait until they get it working in their version of the automounter
10944         first.  So I'm putting the "noconn" option back.
10945
10946 Thu Dec 18 02:39:39 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10947
10948         * libamu/mount_fs.c (compute_nfs_args): use maxgrps option and set
10949         nfs_args field maxgrouplist accordingly.
10950
10951         * include/am_compat.h (MNTTAB_OPT_MAXGROUPS): complete definition
10952         for mount table entry for maxgroups based on NFS mount option
10953         maxgrp.
10954
10955         * aux/configure.in: put back testing for NFS mount option
10956         "maxgrps".  Added test for mount table entry "maxgroups".
10957
10958         * libamu/mount_fs.c (compute_nfs_args): perform more careful tests
10959         on nfs_proto, because it could be NULL.
10960
10961         * doc/am-utils.texi (Selectors): added example of in_network()
10962         selector.
10963
10964         * aux/macros/check_hide_mount_type.m4: all hpux versions,
10965         including 9.x, should use "ignore" as the mount type to hide from
10966         amd.
10967
10968 Wed Dec 17 13:09:21 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10969
10970         * include/am_utils.h (NSTREQ): use new macro instead of strncmp()
10971         every where in the sources.
10972
10973 Wed Dec 17 01:15:01 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
10974
10975         * libamu/mount_fs.c (print_nfs_args): if -D trace is on, will
10976         print as much info that is given in struct nfs_args as possible.
10977         useful for detecting internal flags and options, as well as the
10978         file handle used.
10979
10980         * scripts/ctl-amd.in: look for amd.conf file in ${prefix}/etc
10981         after /etc and before /etc/local.
10982
10983 Tue Dec 16 18:51:36 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10984
10985         * aux/configure.in, libamu/Makefile.am: added support for linking
10986         with specific versions of libamu.  Upped shared library version of
10987         libamu to 1 (libamu.so.1.0.0)
10988
10989         * include/am_defs.h: added external definition for mkstemp() as
10990         needed.
10991
10992         * minor new port to i386-unknown-netbsd1.3 (BETA version of
10993         netbsd).
10994
10995         * aux/config.guess: don't leave a trailing '.' on the system name
10996         for NetBSD-1.3_BETA and similarly for OpenBSD.
10997
10998         * conf/nfs_prot/nfs_prot_netbsd1_3.h: new header for the slight
10999         differences in ypall calling conventions.
11000
11001         * mk-amd-map/mk-amd-map.c (main): use mkstemp() whenever possible
11002         in preference over mktemp(), b/c it is more secure.
11003
11004         * aux/configure.in: check for mkstemp(), a more secure version of
11005         mktemp().
11006
11007 Mon Dec 15 02:32:14 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11008
11009         * amd/ops_nfs.c (mount_nfs_fh): Systems that include the mount
11010         table "vers" option generally do not set the mnttab entry to
11011         "nfs3", but to "nfs" and then they set "vers=3".  Setting it to
11012         "nfs3" works, but it may break some things like "df -t nfs" and
11013         the "quota" program (esp. on Solaris and Irix).  So on those
11014         systems, set it to "nfs".
11015
11016 Sat Dec 13 01:36:27 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11017
11018         * doc/am-utils.texi (Distrib): updates for new ports, location of
11019         am-utils' home page, and URL cross references (now supported by my
11020         version of texi2html).
11021
11022         * aux/macros/check_mtype_type.m4: also use string type for file
11023         system mount types under nextstep for mount(2).
11024
11025         * aux/macros/check_mtype_printf_type.m4}: nextstep can handle both
11026         integer and string types for file system mount types in mount(2),
11027         but it is better to use string types.
11028
11029         * conf/nfs_prot/nfs_prot_nextstep.h: set emum nfsstat's NFS_OK to
11030         0, not 1!  Otherwise, all NFS calls (esp. mount) return errno 1
11031         (EPERM) instead of 0 (OK).  Fixes m68k-next-nextstep3 which now
11032         works.
11033
11034         * conf/nfs_prot/nfs_prot_bsdi2.h: set emum nfsstat's NFS_OK to 0,
11035         not 1!  Otherwise, all NFS calls (esp. mount) return errno 1
11036         (EPERM) instead of 0 (OK).
11037
11038         * libamu/xdr_func.c (xdr_*): add debugging calls that are optioned
11039         by -D trace (protocol trace).
11040
11041 1997-12-11  Erez Zadok  <ezk@bach.cs.columbia.edu>
11042
11043         * A.m68k-next-nextstep3/amu_nfs_prot.h: define missing S_ISDIR
11044         macro based on existence on others, and include <sys/stat.h>.
11045
11046 Thu Dec 11 14:14:38 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11047
11048         * aux/macros/try_compile_nfs.m4 (AC_TRY_COMPILE): turn off
11049         inclusion of <nfs/nfs_mount.h> which only affects nextstep3, on
11050         which this header is broken (it tries to include non-existing
11051         headers).
11052
11053 Wed Dec 10 16:09:07 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11054
11055         * libamu/mount_fs.c (mnt_flags): support either nfs or generic
11056         mount option for grpid.
11057
11058         * aux/configure.in: turn back on NFS mount option grpid.
11059
11060 Sat Dec  6 04:36:05 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11061
11062         * doc/Makefile.am (install-ps): added target to install postscript
11063         file in the am-utils' home page, as well as a few other useful
11064         files for the new am-utils Web page.
11065
11066 Mon Nov 17 05:22:56 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11067
11068         *******************************************************************
11069         *** Released am-utils-6.0a14                                    ***
11070         *******************************************************************
11071
11072 Sun Nov 16 21:56:16 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11073
11074         * doc/am-utils.texi (Supported Platforms): updated table of new
11075         ports.
11076
11077 Sat Nov 15 06:36:27 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11078
11079         * libamu/mount_fs.c (compute_automounter_nfs_args): pass mnttab
11080         options so that they can be printed in logs as needed.
11081
11082         * doc/am-utils.texi (osver Parameter): updated for the correct
11083         usage of the -o/-O options.
11084
11085         * scripts/amd.conf.5: corrected info for -o/-O options.
11086
11087         * amd/amd.8: updated man page for new -O op_sys_name option, and
11088         corrected the usage of the -o op_sys_ver option
11089
11090         * amd/get_args.c (get_args): added new amd option -O to override
11091         OS name.
11092         (get_args): updated usage string.  Removed old -m option.  Added
11093         -o and -O options.
11094
11095         * conf/nfs_prot/nfs_prot_irix5.h: add definition to FHSIZE in case
11096         it is not there.  Reportedly, irix 5.2 does not define it.
11097
11098         * scripts/lostaltmail.in: removed references to unused $hack
11099         variable.
11100
11101         * aux/macros/check_nfs_prot_headers.m4: Patch from Chris Metcalf
11102         <metcalf@cag.lcs.mit.edu> to correctly set the nfs_prot headers
11103         for solaris2.5.
11104
11105         * doc/am-utils.texi (Distrib): typo in the subscription
11106         instructions to amd-dev.  Patch from Stefan Vogel
11107         <vogel@physik-rzu.unizh.ch>.
11108
11109 1997-11-15  Erez Zadok  <ezk@amtrak.cs.columbia.edu>
11110
11111         * NFS3 works on powerpc-ibm-aix4.2.1.0.
11112
11113         * libamu/mount_fs.c (compute_nfs_args): set fh3 variable to
11114         static.  Some compilers (gcc from egcs  on aix 4.2.1) corrupt the
11115         stack of an automatic variable when pointer to it is passed around
11116         several times.
11117
11118 Fri Nov 14 20:09:28 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11119
11120         * libamu/xutil.c (real_plog): syslog like behavior for normal
11121         logging.  Will not print repeated strings, only a count "last
11122         message repeated N times", but will always print something if
11123         message is repeated more than 100 times.
11124
11125         * scripts/lostaltmail.in: look for lostaltmail.conf files also in
11126         /etc/global, /etc/os, and /etc/local (in that order).
11127
11128 Mon Nov 10 03:03:17 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
11129
11130         * conf/mount/mount_aix.c (mount_aix3): add support for NFS V.3
11131         mounts.
11132
11133         * aux/macros/struct_nfs_args.m4 (AC_TRY_COMPILE_NFS): test for
11134         aix42_nfs_args, specially set in conf/nfs_prot/nfs_prot_aix4_2.h
11135
11136         * conf/sa_dref/sa_dref_*.h: from now on, the "dst" argument to the
11137         NFS_SA_DREF macro is a pointer to the structure that used to be
11138         passed to it before.  So now I have to dereference the pointer
11139         before accessing its values.
11140
11141         * hlfsd/hlfsd.c (main): use the new and cleaner
11142         compute_nfs_args() and compute_automounter_nfs_args() functions.
11143
11144         * amd/ops_nfs.c (mount_nfs_fh): use the new and cleaner
11145         compute_nfs_args() and compute_automounter_nfs_args() functions.
11146
11147         * amd/ops_afs.c (mount_toplvl): MAJOR CODE REVISION.  Use the new
11148         and cleaner compute_nfs_args() and compute_automounter_nfs_args()
11149         functions.
11150
11151         * libamu/mount_fs.c (compute_nfs_args): major code cleanup that
11152         relates for struct nfs_args.  A new function sets the numerous
11153         possible flags and fields of nfs_args_t in an orderly fashion.
11154         Code cleaned up, organized, and moved from amd/hlfsd into
11155         libamu.  This saves on overall size of code.
11156         (compute_automounter_nfs_args): A variant of compute_nfs_args()
11157         which sets special options/flags that need to be used when NFS
11158         mounting an automounter's mount point.  Used by hlfsd and amd.
11159
11160         * amq/amq.c (get_secure_amd_client): don't print any more
11161         "get_secure_amd_client: using TCP, port 12345".  It's more
11162         annoying than useful a message, even when assumed to be compiled
11163         under DEBUG only.
11164
11165 Thu Oct 30 14:33:38 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11166
11167         * aux/macros/check_mnttab_type.m4: MAJOR BUG fixed for non-nfs
11168         mount table entries.  The code used to define the /etc/mnttab name
11169         for file systems based on physical media (disk, cdrom, floppy) to
11170         the generic name, rather than the OS specific name.  For example
11171         autoconf searches for all these types of mount table entries for a
11172         floppy based file system: vfat pcfs pc msdos msdosfs fat.  But if
11173         it found any, it hard-coded the mnttab name to "pcfs" rather than
11174         the actual name found!  Same for ufs, cdfs, pcfs, tmpfs, lofs,
11175         nullfs, unionfs, and umapfs.
11176
11177         * aux/configure.in: also test for xfs (for newer Irix) when
11178         looking for mount type names, numbers, etc of a disk-based ufs.
11179
11180 Sun Oct 26 19:32:57 1997  Erez Zadok  <ezk@defiant.soscorp.com>
11181
11182         * amq/amq.c (main): use pmap_ping() to test if remote host is up.
11183         This works better on bsdi2 and bsdi3, because their portmapper
11184         does not appear to like forwarding operations (it is generaly
11185         insecure).
11186
11187 Sat Oct 25 04:55:56 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11188
11189         *******************************************************************
11190         *** Released am-utils-6.0a13                                    ***
11191         *******************************************************************
11192
11193 Fri Oct 24 05:04:37 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11194
11195         * conf/nfs_prot/nfs_prot_ncr2.h: added missing definition for
11196         struct datum typedef.
11197
11198         * conf/nfs_prot/nfs_prot_netbsd.h: corrected typedef for
11199         ypall_callback_fxn_t for netbsd.
11200
11201         * aux/macros/type_auth_create_gidlist.m4: hpux10.10 uses int for
11202         the 5th arg to authunix_create(), while before and after they used
11203         gid_t.
11204
11205         * conf/transp/transp_tli.c (amu_clnt_create_best_vers): don't use
11206         clnt_create_timed() on older Solaris 2.3 systems that did not have
11207         it.
11208
11209         * conf/nfs_prot/nfs_prot_bsdi2.h: <msdosfs/msdosfsmount.h> is for
11210         kernel only on bsdi2, so do not include it.
11211
11212 Fri Oct 24 00:29:42 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
11213
11214         * hlfsd/stubs.c (nfsproc_readlink_2_svc): avoid logging repeated
11215         messages about resolution of mailboxes based on uid/gid.
11216
11217         * scripts/ctl-hlfsd.in: check for alternate password file in
11218         ${prefix}/etc/passwd and use it in hlfsd's startup.
11219
11220 Thu Oct 23 22:48:50 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
11221
11222         * hlfsd/homedir.c (hlfsd_getpwent): added support for -P
11223         passwdfile option.  If hlfsd is started with -P passwdfile, then
11224         the passwdfile is read and parsed just as a standard unix
11225         passwd(4) file.  Only the username, uid, and homedir fields are
11226         read and checked.  All the rest are ignored.  No NIS/netgroup
11227         support!
11228
11229         * hlfsd/hlfsd.c (main): check if hlfsd is run as root after
11230         parsing command line options, so that usage() can be printed when
11231         -h is invoked.
11232
11233 Wed Oct 22 00:16:39 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
11234
11235         * amd/nfs_start.c (mount_automounter): if autofs service listener
11236         fails to initialize it is OK if using a test amd.
11237
11238         * amd/opts.c (f_in_network): new nomadic function in_network(arg),
11239         which returns TRUE if 'arg' is any one of this host's networks.
11240
11241         * libamu/wire.c (getwire): rewritten parts of function, to store
11242         all networks names and numbers in the order of the interface (not
11243         in reverse).
11244
11245 Mon Oct 20 01:59:25 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11246
11247         * aux/configure.in: don't add ops_ufs.o on AIX twice.  My code
11248         would have worked had it not been due to AIX's buggy /bin/sh.
11249
11250         * doc/Makefile.am (EXTRA_DIST): include am-utils.dvi and
11251         am-utils.ps in the distribution sources.
11252         (html): generate html documentation for
11253         http://www.am-utils.org
11254
11255 Sun Oct 19 12:35:49 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11256
11257         * conf/nfs_prot/nfs_prot_netbsd.h: override the definition of
11258         ypall_callback_fxn_t.  The NetBSD team compiles all sources with
11259         gcc -Wall -Wmissing-prototypes -Wstrict-prototypes.
11260
11261         * amd/info_nis.c: allow for override of ypall_callback_fxn_t
11262         function typedef.
11263
11264         * libamu/xutil.c (amu_release_controlling_tty): new function to
11265         release the controlling tty in a clean and sane manner.  No longer
11266         using setpgid() b/c it may not work.  Uses setsid(),
11267         and ioctl() (in order).  This new function is used in amd/amd.c
11268         and hlfsd/hlfsd.c.  Also avoid setpgrp(), because it works on some
11269         systems, but on others it is the same as setpgid().
11270
11271 Sat Oct 18 23:42:40 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11272
11273         * aux/acconfig.h: check for nfs mount option 'fsname'.  Code for
11274         it was in amd/ops_afs.c, amd/ops_nfs.c, and hlfsd/hlfsd.c, but
11275         never used, because the configure test for fsname flag wasn't
11276         used.  This fixed a bug in HPUX 10, where syncer and manual mounts
11277         left blank lines in /etc/mnttab.
11278
11279         * aux/configure.in: check for nfs mount option 'fsname'.
11280
11281 Fri Oct 17 13:30:27 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11282
11283         * amd/ops_afs.c (mount_toplvl): turn on 'ignore' option in nfs
11284         mount flags of toplvl mounts.  Important esp. for HPUX 10.  Now
11285         hpux-10 will mount amd's mounts points as 'ignore' (by df).
11286
11287         * aux/configure.in: check for NFS mount option 'ignore', useful in
11288         HPUX 10.
11289
11290 Thu Oct 16 03:28:33 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11291
11292         * aux/macros/check_hide_mount_type.m4: hpux 10 should use "ignore"
11293         mount type and not NFS, for the amd mount points.
11294
11295         * conf/transp/transp_tli.c (amu_clnt_create_best_vers): don't log
11296         an RPC timeout as an error, but just an info message.  From
11297         Andreas Stolcke <stolcke@speech.sri.com>
11298
11299         * If the NFS server is down or does not support the portmapper
11300         call (such as certain Novell NFS servers) we mark it as version 2
11301         and we let the nfs code deal with the case that is down.  If when
11302         the server comes back up, it can support NFS V.3 and/or TCP, it
11303         will use those.  From christos@deshaw.com (Christos Zoulas).
11304
11305         * hlfsd/homedir.c (plt_print): various compile time cleanups to
11306         printfs that take a long, but pass an int to print.  From
11307         christos@deshaw.com (Christos Zoulas).
11308
11309         * aux/macros/func_bad_yp_all.m4 (ac_cv_func_yp_all_clean,): new
11310         macro to determine if the OS has a bad yp_all(), based on the host
11311         OS name.  So far only irix (all versions) have a bad yp_all, so
11312         they will use am_yp_all() instead (which is slower as it
11313         enumerates manually all of the map's entries).
11314
11315 Thu Oct 16 03:14:37 1997  Erez Zadok  <ezk@subzero.cs.columbia.edu>
11316
11317         * amd/info_nis.c (am_yp_all): code for a replacement yp_all that
11318         avoids using a file-descriptor leaking yp_all() on some systems
11319         like irix.
11320
11321 Wed Oct 15 21:52:35 1997  Erez Zadok  <ezk>
11322
11323         * fsinfo/fsinfo.h: avoid redefining yywrap incorrectly on DU-4.x
11324         systems using /usr/bin/flex.
11325
11326         * amd/conf_tok.l (yywrap): avoid redefining yywrap for systems
11327         that have a modified GNU flex which does define yywrap (DU-4.x).
11328
11329 Fri Sep 26 14:25:29 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11330
11331         * conf/checkmount/checkmount_bsd44.c: include prototype.
11332
11333 Fri Sep 26 01:26:24 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11334
11335         *******************************************************************
11336         *** Released am-utils-6.0a12                                    ***
11337         *******************************************************************
11338
11339 Fri Sep 26 00:13:48 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11340
11341         * conf/nfs_prot/nfs_prot_irix6.h: completely turn off all autofs
11342         code in irix6 until it can be tested correctly
11343
11344         * conf/transp/transp_tli.c (amu_clnt_create_best_vers): time out
11345         on clnt_create for 3 seconds, rather than wait for the much longer
11346         default.
11347
11348         * conf/nfs_prot/nfs_prot_aix4_2.h: port to powerpc-ibm-aix4.2.1.0.
11349         Includes NFS3, untested.
11350
11351 Thu Sep 25 11:03:11 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11352
11353         * amd/ops_pcfs.c (mount_pcfs): fill in uid/gid fields of
11354         pcfs_args_t if they exist.
11355
11356         * amd/ops_cdfs.c (mount_cdfs): fill in ssector field of
11357         cdfs_args_t if it exists.
11358
11359         * new minor ports hppa1.1-hp-hpux10.10, hppa1.1-hp-hpux9.05,
11360         hppa1.1-hp-hpux9.07, m68k-hp-hpux9.00, and sparc-sun-sunos4.1.4.
11361
11362 Wed Sep 24 00:48:05 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11363
11364         * doc/am-utils.texi (wire-test): updated documentation for the new
11365         option.
11366
11367         * wire-test/wire-test.8: updated man page for new option.
11368
11369         * wire-test/wire-test.c (main): added a test for various
11370         combinations of NFS proto/vers to a remote/local host.
11371
11372         * aux/macros/try_compile_anyfs.m4 (AC_TRY_COMPILE): include
11373         <isofs/cd9660/cd9660_mount.h> and <msdosfs/msdosfsmount.h> so that
11374         freebsd will correctly set mount options for pcfs and cdfs.
11375
11376         * amd/ops_pcfs.c (mount_pcfs): set mask field of pcfs_args to
11377         0777 (if field exists).
11378
11379         * aux/macros/try_compile_anyfs.m4 (AC_TRY_COMPILE): include
11380         <msdosfs/msdosfsmount.h> if available.
11381
11382         * minor new port: rs6000-ibm-aix4.1.4.0.
11383
11384         * libamu/mount_fs.c (mount_fs): fixed bug that caused HPUX not to
11385         write the "time" field in /etc/mnttab.
11386
11387         * conf/mtab/mtab_file.c (mnt_dup): fixed typo in macro names for
11388         detecting mnt_time field of mntent_t.
11389
11390         * libamu/mtab.c (mnt_free): fixed typo in macro names for
11391         detecting mnt_time field of mntent_t.
11392
11393 Tue Sep 23 15:30:03 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11394
11395         * conf/mtab/mtab_file.c (lock): Use flock() in preference over
11396         fcntl() to lock the mtab file.
11397
11398 Mon Sep 22 23:04:58 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11399
11400         * conf/transp/transp_sockets.c (get_nfs_version): define
11401         the try_again goto label only for NFS3.
11402         (pmap_ping): assume timeout failure of clnt_stat.
11403
11404         * libamu/xdr_func.c (xdr_groupnode, xdr_exportnode): cast to
11405         "groups *".
11406
11407 Mon Sep 22 20:34:33 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
11408
11409         * conf/transp/transp_sockets.c (pmap_ping): patch from Dan Riley
11410         <dsr@mail.lns.cornell.edu> to make sure that amd works with more
11411         secure portmappers that do not allow forwarding of RPC messages to
11412         other services.
11413
11414         * */Makefile.am: all source files should also depend on the new
11415         include/am_xdr_func.h header.
11416
11417         * include/am_xdr_func.h: new file as part of the code cleanup from
11418         Christos Zoulas <christos@deshaw.com>.
11419
11420         * Lots of fixes from Christos Zoulas <christos@deshaw.com> that
11421         involved missing prototypes, cleaned up ones, and removal of
11422         unused variables.
11423
11424         * libamu/xdr_func.c (xdr_mountres3): some code cleanup.  A switch
11425         statement with only one case is unclean.
11426
11427 Mon Sep 22 17:26:38 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11428
11429         * amd/ops_<FOO>fs.c (mount_<FOO>fs): initialize mntent_t fields to
11430         0 so that all fields are initialized to zero at first.  This way
11431         SunOS 4.x and other systems don't get /etc/mtab entries with
11432         random integers for the fsck/freq fields. Patch from Andreas
11433         Stolcke <stolcke@speech.sri.com>.
11434
11435 Mon Sep 22 00:34:19 1997  Erez Zadok  <ezk@americas.psl.cs.columbia.edu>
11436
11437         * conf/nfs_prot/nfs_prot_sunos4.h: include <nfs/nfs_clnt.h> so
11438         that the important definition for HOSTNAMESZ will be found.
11439
11440         * amd/ops_afs.c (mount_toplvl): limit hostname size to HOSTNAMESZ
11441         (inside the nfs_args structure) if the system uses that macro.
11442         Otherwise systems like SunOS refuse to NFS mount long pathnames
11443         and result in ENAMETOOLONG errno's.
11444
11445 Wed Sep 17 04:56:11 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11446
11447         * doc/am-utils.texi (Supported Platforms): specify new support for
11448         solaris 2.6, and hlfsd running on 2.5.1 too.
11449
11450 Wed Sep 17 03:55:02 1997  Erez Zadok  <ezk@amsterdam.psl.cs.columbia.edu>
11451
11452         * conf/mount/mount_svr4.c (mount_svr4): don't attemt an autofs
11453         mount if it is not supported or was turned off.
11454
11455 Wed Sep 17 03:19:36 1997  Erez Zadok  <ezk@americas.psl.cs.columbia.edu>
11456
11457         * conf/nfs_prot/nfs_prot_sunos4.h: fixed so that it will nfs mount
11458         again.  Apparently at some previous release SunOS 4 supported was
11459         broken and all nfs mounts resulted in ESTALE.
11460
11461 Wed Sep 17 00:26:25 1997  Erez Zadok  <ezk@amsterdam.psl.cs.columbia.edu>
11462
11463         * conf/nfs_prot/nfs_prot_sunos5_6.h: nfs protocol headers for
11464         solaris 2.6.
11465
11466         * aux/macros/check_nfs_prot_headers.m4: added solaris 2.6 nfs
11467         protocol header selection.
11468
11469 Sat Sep 13 14:31:51 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11470
11471         * conf/transp/transp_tli.c (amu_clnt_create_best_vers): avoid
11472         infinite loop.
11473
11474 Sun Sep  7 18:23:23 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11475
11476         *******************************************************************
11477         *** Released am-utils-6.0a11                                    ***
11478         *******************************************************************
11479
11480 Fri Sep  5 11:55:10 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11481
11482         * amd/amd.c (main): if plock() succeeded, don't try to display
11483         errno message.   Patch from Chris Metcalf
11484         <metcalf@catfish.lcs.mit.edu.
11485
11486 Thu Sep  4 19:17:58 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11487
11488         * hlfsd/homedir.c (table_add): make sure duplicate passwd entries
11489         are ignored.   Only the first entry should ever be used, because
11490         that's how lookup in passwd database works.
11491
11492         * conf/transp/transp_sockets.c (get_nfs_version): when determining
11493         if a remote host is up or down, use NFS v.2.  Fix suggested by
11494         Enami Tsugutomo <enami@cv.sony.co.jp>.
11495
11496         * conf/transp/transp_tli.c (amu_clnt_create_best_vers): new
11497         function to get the best possible NFS version, but also timeout
11498         faster than normal defaults, so remote hosts which are down can be
11499         detected in a reasonable time.
11500         (get_nfs_version): use the new "best" function.
11501
11502 Tue Sep  2 00:41:00 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11503
11504         *******************************************************************
11505         *** Released am-utils-6.0a10                                    ***
11506         *******************************************************************
11507
11508 Mon Sep  1 15:39:51 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11509
11510         * conf/transp/transp_tli.c (get_nfs_version): don't use
11511         clnt_tp_create_timed() on systems that don'e have it (Solaris 2.4
11512         and earlier).
11513
11514         * aux/configure.in: test for existence of clnt_tp_create_timed(),
11515         since Solaris 2.4 (and possibly earlier) do not have it.
11516
11517 Mon Sep  1 15:23:18 1997  Erez Zadok  <ezk@felix.psl.cs.columbia.edu>
11518
11519         * amd/ops_autofs.c (autofs_unmount_1_svc): only display rdevid
11520         field if it exists (solaris 2.4's autofs does not have it).
11521
11522 Mon Sep  1 14:45:09 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11523
11524         * aux/macros/type_auth_create_gidlist.m4: a new test to determine
11525         the correct type to the 5th argument of authunix_create().
11526
11527 Mon Sep  1 03:44:32 1997  Erez Zadok  <ezk@felix.psl.cs.columbia.edu>
11528
11529         * libamu/xdr_func.c (xdr_umntrequest): add test for autofs
11530         structure umntrequest, if it has the field rdevid.  Seems Solaris
11531         2.4 and earlier didn't have it.
11532
11533 Mon Sep  1 01:10:53 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11534
11535         * hlfsd/hlfsd.c (hlfsd_init): moved initialization upwards, so it
11536         can be done before primary process forks.
11537         (main): bug fix: wait a bit to give child a chance to initialize.
11538         Without this, hlfsd got into a busy infinite loop while, never
11539         completing the mount.
11540
11541         * amd/info_nis.c: patch from Jason Thorpe <thorpej@nas.nasa.gov>
11542         to make amd works when talking to NIS+ servers in NIS
11543         compatibility mode.
11544
11545 Mon Sep  1 00:46:56 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
11546
11547         * amd/mapc.c (MAX_CHAIN): increased maximum chain size to 1024.
11548
11549 Sun Aug 31 20:20:40 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
11550
11551         * amd/conf.c (gopt_fully_qualified_hosts): a new function to
11552         process another new global variable.
11553
11554         * amd/ops_nfs.c (make_nfs_auth): if a new global variable
11555         fully_qualified_hosts is on, use FQHN in RPC/NFS authentications.
11556         Patch from Chris Metcalf <metcalf@catfish.lcs.mit.edu>.
11557
11558         * amd/conf.c (process_last_regular_map): If the amd.conf file only
11559         has a [global] section (pretty useless IMHO), do not try to
11560         process a map that does not exist.
11561
11562         * scripts/amd.conf.5: fixed typos (repeated 'as' word).
11563
11564         * doc/am-utils.texi: MAJOR DOCUMENTATION REVISION COMPLETED!!!
11565
11566         * amd/conf.c (reset_cf_map): Bug fix.  Reset 'tag' field of cfm
11567         structure, so it does not carry over from map entry to another.
11568
11569 Sat Aug 30 18:39:21 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
11570
11571         * amd/amd.c (main): fixed the meaning of the plock option.  A bug
11572         caused it to be reversed.
11573
11574 Sat Aug 30 15:13:18 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11575
11576         * hlfsd/stubs.c: don't initialize some statics here.  They are
11577         better initialized in hlfsd_init_filehandles().
11578
11579 Fri Aug 22 14:47:16 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11580
11581         * amd/conf.c (gopt_show_statfs_entries): new function and a global
11582         amd.conf key show_statfs_entries.  Defaults to 'no'.  If 'yes',
11583         then all maps flagged as browsable will also show a count of the
11584         number of entries (keys) in that map.
11585
11586         * amd/nfs_subr.c (count_map_entries): new function to count number
11587         of entries in a map.  Now used if browsable is turned on in a map,
11588         to return a count of available keys in a given map.
11589
11590         * hlfsd/stubs.c (eq_fh): use correct memcmp().  BUG fixed! hlfsd
11591         confused the file handles for ".", "..", and the symlink, causing
11592         mess.
11593
11594         * aux/macros/func_bad_memcmp.m4: new test, based on autoconf 2.12,
11595         but also defines HAVE_BAD_MEMCMP, so I avoid linkage conflicts
11596         with bad memcmp() in libc's (nextstep3).
11597
11598 Thu Aug 21 17:38:41 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11599
11600         * aux/configure.in: check if autofs_args_t has a field named
11601         addr.  Solaris has it for specifying the address of the daemon,
11602         but Irix does not.  So how does irix tell the kernel the daemon's
11603         address?  I suspect that it is hardcoded to "localhost" using a
11604         "private well-known port" (#define AUTOFS_PORT 2048).
11605
11606         * conf/nfs_prot/nfs_prot_linux.h: added missing autofs
11607         definitions.
11608
11609         * README.autofs: new file listing autofs support notes
11610
11611         * very preliminary autofs code working.  Call it pre-alpha
11612         quality.
11613
11614 Sun Aug 17 02:25:09 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11615
11616         * amd/conf.c (ropt_mount_type, gopt_mount_type): don't accept
11617         "autofs" if system does not support it.
11618
11619         * amd/amd.c (main): log am-utils version string (same as amd -v)
11620         at start of run.
11621
11622         * conf/transp/transp_sockets.c (get_nfs_version): in order to tell
11623         if a remote host is available, try to contact its portmapper and
11624         timeout if no answer is received in 3 seconds.
11625
11626 Thu Aug 14 16:12:04 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11627
11628         * aux/macros/check_extern.m4 (pattern): use a simpler pattern for
11629         match for external function definitions.  The function could span
11630         multiple lines, so only match the opening parenthesis, not the
11631         closing one too.
11632
11633         * aux/macros/os_cpp-flags.m4 (ac_cv_os_cppflags,): do NOT turn on
11634         posix mode for nextstep3.  It is broken.
11635
11636         * amd/amd.c (init_global_options): run uname() only if
11637         <sys/utsname.h> and uname(2) exist.
11638
11639         * amd/rpc_fwd.c (fwd_packet): if remote host is down, the
11640         forwarding socket is null, so declare this an error.
11641
11642         * include/am_utils.h (AM_ERRNO_HOST_DOWN): find best errno to set
11643         for when a remote host is down.  Try, in order, "host down", "host
11644         unreachable", "invalid argument".
11645
11646         * amd/ops_nfs.c (discard_fh): don't dereference a null pointer
11647         (happens when remote host is down, and fp->fh_fs is NULL).
11648         (prime_nfs_fhandle_cache): ditto, and set fs flags to !FSF_VALID
11649         and FSF_DOWN.
11650
11651         * amd/sched.c: nobody uses "union wait" any more, or so it
11652         appears, so clean up that code.
11653
11654         * conf/transp/transp_tli.c (get_nfs_version): if remote host is
11655         down, time it out faster than default (3 seconds).
11656         (get_mount_client): free netconfig entry when done with it.
11657
11658         * conf/nfs_prot/nfs_prot_nextstep.h: initial (and somewhat ugly)
11659         port to nextstep3 (m68k-next-nextstep3).
11660
11661         * fsinfo/Makefile.am (LDADD): needs to link with libamu in case
11662         system does not have strdup().
11663
11664         * include/am_defs.h: complete external definition for getlogin()
11665         if needed.
11666
11667         * conf/transp/transp_tli.c (get_nfs_version): no need to keep
11668         static versout variable.
11669
11670         * amd/rpc_fwd.c (fwd_packet): if fwdto packet is null, remote
11671         server is probably down.  Don't use sendto() in that case.
11672
11673         * buildall (default): run gmake if found, before trying plain
11674         make.  GNU make is always preferable.
11675
11676 Tue Aug 12 21:23:58 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11677
11678         * aux/macros/host_macros.m4: cleanup of os_version and os
11679         overrides.  Solaris 2.5.1 for example will come up as solaris2 and
11680         2.5.1, rather than sunos5 and 5.5.1.  Both can be overridden in
11681         the amd.conf file.
11682
11683 Fri Aug  8 14:37:30 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11684
11685         *******************************************************************
11686         *** Released am-utils-6.0a9                                     ***
11687         *******************************************************************
11688
11689 Thu Aug  7 00:52:14 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11690
11691         * conf/nfs_prot/nfs_prot_ncr2.h: new file, for NCR2
11692         (i486-ncr-sysv4.3.03) headers.  Needed to complete missing stuff
11693         from <ndbm.h> and <sys/resource.h>.
11694
11695         * scripts/amd.conf.5: new map page.
11696
11697         * amd/info_hesiod.c: define extern for hesiod_resolve, since bsdi3
11698         does not.
11699
11700         * amd/amd.8: updated man page.
11701
11702         * amd/get_args.c (get_args): removed defunct -h option to amd.
11703
11704         * amq/amq.8: updated man page.
11705
11706         * amd/info_nisplus.c (nisplus_search): prototype fixes so Sun
11707         SparcCompiler CC won't complain.
11708
11709         * amd/info_hesiod.c (hesiod_search): small fixes to compile with
11710         hesiod-1.3, as per Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>.
11711
11712         * aux/macros/opt_ldflags.m4: new option added to configure
11713         --enable-ldflags, to specify -L option for configuring/compiling.
11714         The older one --enable-libs is now to be used only for -l options.
11715
11716         * amd/ops_nfs.c (mount_nfs_fh): bug fixed.  Should initialize
11717         nc_protoname from nfs_proto if available for all TLI systems, not
11718         just those that have NFS V3.
11719
11720         * amd/info_ldap.c: ldap patches from Leif Johansson
11721         <leifj@matematik.su.se>, adding two new amd.conf ldap variables:
11722         ldap_cache_seconds and ldap_cache_maxmem.
11723
11724         * hlfsd/hlfsd.c (main): bug fixed. port number must be wrapped in
11725         htons().
11726
11727 Sun Aug  3 17:20:05 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11728
11729         * amd/nfs_start.c (mount_automounter): register amd with the rpc
11730         program number that may have been overridden by amd.conf.
11731
11732         * libamu/xutil.c (set_amd_program_number, get_amd_program_number):
11733         allow storing and retrieving alternate amd program numbers.
11734
11735         * amd/conf.c (gopt_portmap_program): new function to parse
11736         amd.conf entry portmap_program=1234.
11737
11738         * amq/amq.c (main): allow specifying an alternate rpc program
11739         number for amd via -P prognum.
11740
11741         * new amq RPC to get the process id of the running amd.  This is
11742         used in ctl-amd to quickly find the pid of the amd that is to be
11743         killed.
11744
11745         * expanded shared libraries support.  Using GNU libtool-1.0,
11746         am-utils now builds shared libraries on many platforms that have
11747         support for it and proper compilers/linkers.  See "INSTALL" file
11748         for compatibility chart.
11749
11750 Thu Jul 31 13:07:23 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11751
11752         * fsinfo/fsi_lex.l: removed code that was in support of very old
11753         versions of flex.  No longer needed.
11754
11755 Tue Jul 29 12:00:13 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11756
11757         * amd/amd.c (init_global_options): find the kernel architecture
11758         from uname() if possible.
11759
11760 Mon Jul 28 03:53:59 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11761
11762         * new working port: i386-unknown-openbsd2.1
11763
11764 Fri Jul 25 03:16:31 1997  Erez Zadok  <ezk@felix.psl.cs.columbia.edu>
11765
11766         * working port: sparc-sun-solaris2.4.  Had to fix fhandle_t from
11767         structure to actual char[], because the structure was passed to
11768         xdr_fhandle as data and not a pointer.  Surprisingly, gcc
11769         -fpcc-struct-return did not help.
11770
11771         * conf/nfs_prot/nfs_prot_sunos5_4.h: special nfs protocol
11772         definitions for solaris 2.4 have to be different from 2.3, and
11773         different from 2.5.
11774
11775         * libamu/xdr_fhstatus.c (xdr_fhstatus): minor code cleanup.
11776
11777 Thu Jul 24 16:22:39 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11778
11779         * conf/mount/mount_svr4.c (mount_svr4): use STREQ to compare mount
11780         types, not ==.  Fix from Christos Zoulas <christos@deshaw.com>.
11781
11782         * mk-amd-map/mk-amd-map.8: man page taken from bsd44.
11783
11784 Thu Jul 24 00:01:55 1997  Erez Zadok  <ezk@moisil.cs.columbia.edu>
11785
11786         * conf/mount/mount_linux.c: made the nfs error mapping code into a
11787         small function.
11788
11789 Wed Jul 23 16:11:49 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11790
11791         * conf/nfs_prot/nfs_prot_linux.h (NFS_ERROR_MAPPING): special
11792         error mappings from errno numbers to NFS errors.  From Debian
11793         Linux.
11794
11795         * scripts/am-eject.in (fs): new script (taken from Debian Linux
11796         folks) to auto-unmount floppy/cd devices before ejecting them.
11797
11798         * fsinfo/wr_exportfs.c (write_exportfs): from Debian folks, pass
11799         '5' as second arg to show_area_being_processed.  I'm not sure why.
11800
11801         * fsinfo/wr_atab.c (write_atab): from Debian folks, pass '5' as
11802         second arg to show_area_being_processed.  I'm not sure why.
11803
11804         * conf/mount/mount_linux.c (parse_opts): as per Debian Linux,
11805         ensure that you have a buffer in *xopts to strcat onto.
11806         (mount_linux): fixed from Debian folks to ensure that NFS mount
11807         sockets are connected only for kernels prior to 1.3.10 (avoids
11808         hangs for multi-homed hosts).
11809
11810         * amd/mapc.c (make_entry_chain): from Debian folks: don't skip
11811         over amd map keys that have a prefix, and include the prefix in
11812         the returned readdir().
11813
11814         * amd/info_passwd.c (passwd_init, passwd_search): format
11815         enhancements from the Debian Linux folks.  They added
11816         - var0:=pw-prefix:=anydir
11817         - var1:=pw-rhost:=dom3.dom2.dom1
11818         - var2:=pw-user:=user
11819         - var3:=pw-home:=/anydir/dom1/dom2/dom3/user
11820
11821         * new ports: sparc-sun-solaris2.4 and sparc-sun-sunos4.1.1.
11822
11823         * amd/ops_afs.c (afs_retry): patches from Debian Linux.  If
11824         afs_mount timed out, then explicitly forbid further retries after
11825         the timeout.  (afs_bgmount): bug fix from Debian Linux.  Timeout
11826         values (17 and 5) were mistakenly swapped.
11827
11828 Wed Jul 23 15:53:25 1997  Erez Zadok  <ezk@felix.psl.cs.columbia.edu>
11829
11830         * conf/nfs_prot/nfs_prot_sunos5_3.h: turn off non-existent NFS V.3
11831         support for Solaris 2.4 (the header files incorrectly define parts
11832         of the NFS V.3 protocol, but the kernel does not support it).
11833
11834 Wed Jul 23 00:07:12 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11835
11836         * amd/info_hesiod.c: minor cleanup to use hes_init and hesiod_init
11837         for determining if using old or new hesiod libraries,
11838         respectively.
11839
11840         * amd/ops_nfs.c (mount_nfs_fh): If "noconn" option exists in NFS
11841         V.3 then use non-connected sockets (both TCP and UDP).  Otherwise
11842         they cause hangs of mounts from multi-homed hosts when the return
11843         route is not the same as the outgoing route (esp. on NetBSD
11844         1.2.1).  If "conn" option was supplied, then don't turn on the
11845         "noconn" mount option.  Otherwise default to "noconn" mount
11846         option.
11847
11848         * aux/configure.in: better check for systems that need libgdbm and
11849         <ndbm.h>
11850
11851 Tue Jul 22 04:02:05 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11852
11853         * hlfsd/hlfsd.c (main), amd/ops_afs.c (mount_toplvl): ensure that
11854         mounts are hidden from df(1) on systems that keep mount tables in
11855         kernel, such as osf1.
11856
11857 Tue Jul 22 02:26:55 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11858
11859         *******************************************************************
11860         *** Released am-utils-6.0a8                                     ***
11861         *******************************************************************
11862
11863 Mon Jul 21 21:33:19 1997  Erez Zadok  <ezk@stone.mcl.cs.columbia.edu>
11864
11865         * hlfsd/hlfsd.c (main): bug fixed: forgot to set sin_family to
11866         AF_INET when hlfsd mounts itself, thus getting an errno "protocol
11867         family not supported".
11868
11869 Mon Jul 21 20:46:59 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11870
11871         * verified that amd on NetBSD 1.2.1 (i386) works, but the OS
11872         itself is flaky.
11873
11874         * verified that amd AIX 3 works w/ the new readdir() code.
11875
11876 Mon Jul 21 18:59:30 1997  Erez Zadok  <ezk@chestnut.mcl.cs.columbia.edu>
11877
11878         * amd/mapc.c (maptypes): changed the default map caching type for
11879         nis and ndbm maps to "MAPC_ALL", so that all possible entries will
11880         be available to amd for browsable_dirs=yes.
11881
11882 Mon Jul 21 18:04:16 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11883
11884         * amd/ops_afs.c (afs_readdir, afs_readdir_browsable): split
11885         afs_readdir into a browsable version and a non-browsable one.
11886         Fixed bugs that resulted in an infinite nfs_readdir loop on the
11887         localhost for some operating systems.
11888
11889 Sat Jul 19 19:38:38 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11890
11891         * amd/ops_afs.c (afs_readdir): fixed up the browsable code to
11892         comply with nfs_readdir specs.  It was returning all entries at
11893         once, even if there was not enough space in the RPC packet.  Now,
11894         it sends a reasonably sized chunk, and sets static state to resume
11895         it for the next continuation RPC of readdir.
11896
11897         * amd/conf.c (set_conf_kv): fixed bug that resulted in the first
11898         regular map not getting all of the [global] options defaulted from.
11899
11900 Fri Jul 18 00:45:12 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11901
11902         * amq/amq.c (main): fixed so that portmapper "ping" will only fail
11903         upon an RPC timeout
11904
11905         * scripts/ctl-{amd,hlfsd}.in (killproc): better method to find the
11906         amd/hlfsd process to kill.
11907
11908         * amd/ops_afs.c (mount_toplvl), hlfsd/hlfsd.c (main): code to
11909         determine how to avoid df from seeing amd's toplvl mounts.  Moved
11910         from libamu/mount_fs.c and include/am_utils.h.  Ensure that hlfsd
11911         is hidden from df.
11912         (mount_toplvl): fixed df types for irix.
11913
11914 Thu Jul 17 21:59:45 1997  Erez Zadok  <ezk@americas.psl.cs.columbia.edu>
11915
11916         * amq/amq.c (main): fixed bug that caused the 5 second timeout for
11917         TLI amq using udp to be ignored.
11918         (main): if amq cannot contact remote host's portmapper within 5
11919         seconds, timeout and fail faster than the default longer timeout
11920         (this is for non-TLI systems).
11921
11922 Thu Jul 17 17:08:13 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11923
11924         * amq/amq.c (get_secure_amd_client): if amq cannot contact
11925         remote host's portmapper within 5 seconds, timeout and fail faster
11926         than the default TLI timeout of over 4 minutes.
11927
11928         * amd/am_ops.c (ops_showfstypes): added styles for new bsd44
11929         file systems nullfs, unionfs, and umapfs.
11930         (ops_show1): cleanup code and and reuse this function.
11931         (vops): empty placeholders for nullfs, unionfs, and umapfs.
11932
11933         * amd/ops_{nullfs, unionfs, umapfs}.c: 3 new empty templates for
11934         bsd44 style file systems.
11935
11936         * fsinfo/fsinfo.8: man page for fsinfo rewritten from bsd44
11937         sources.
11938
11939         * amd/conf_tok.l, fsinof/fsi_lex.c: undefine ECHO to avoid
11940         conflict with systems that define it in <sys/ioctl.h> and also
11941         define a conflicting one via lex.  Newer versions of f/lex are ok.
11942
11943 Wed Jul 16 00:17:45 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11944
11945         * amd/ops_nfs.c (mount_nfs_fh): fill in nfs_args' fields
11946         acdirmin/max and acregmin/max only if they exist.
11947
11948         * aux/configure.in: test for nfs_args fields acdirmin and
11949         acregmin.
11950
11951 Tue Jul 15 17:24:09 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11952
11953         * aux/configure.in: commented out checking for MNT2_GEN_OPT_* for
11954         "nondev" and commented back in checking for "nodev".  This was a
11955         typo.
11956
11957         * include/am_compat.h: more compatibility options: define "ro"
11958         mnttab option all the time.  Define "overlay" as needed.  Added
11959         more fillers of mnttab options (as per Daniel S. Riley
11960         <dsr@mail.lns.cornell.edu>), for acdirmax, acdirmin, acregmax,
11961         acregmin, noac, grpid, nosuid, and actimo.
11962
11963         * libamu/mount_fs.c (mnt_flags): fixed a typo in "ro" option as
11964         per dsr@mail.lns.cornell.edu (Daniel S. Riley).  Then cleaned up
11965         the same code for other options in struct opt_tab.
11966
11967 Mon Jul 14 22:36:37 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11968
11969         * amd/get_args.c (get_args): moved amd.conf file parsing to before
11970         the switching the default log/debug options.  Suggested by
11971         dsr@mail.lns.cornell.edu (Daniel S. Riley).
11972
11973         * aux/update_build_version: new script to record the build version
11974         of amd, along with the rest of the info thet comes up with amd -v.
11975
11976 Sun Jul 13 00:30:24 1997  Erez Zadok  <ezk@decca.damtp.cam.ac.uk>
11977
11978         * aux/macros/os_cflags.m4: new macro, to add additional
11979         compilation options (also used during configuration), based on the
11980         OS and the compiler.  Used for solaris-2.6, osf, and irix6.
11981
11982 Fri Jul 11 10:15:11 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11983
11984         * amd/conf_tok.l, conf_parse.y: allow values of keys to include
11985         white spaces, if they are double-quoted (key="some value")
11986
11987         * amd/info_hesiod.c (hesiod_search): cleanup and minor bug fixes
11988         of hesiod from Danny Braniss <danny@cs.huji.ac.il>.
11989
11990 Fri Jul 11 02:16:06 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11991
11992         *******************************************************************
11993         *** Released am-utils-6.0a7                                     ***
11994         *******************************************************************
11995
11996 Thu Jul 10 12:19:25 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11997
11998         * include/am_defs.h: fill in extern definition of innetgr() in
11999         case system headers don't.
12000
12001         * aux/macros/path_prog_lex.m4 aux/configure.in: using macros that
12002         will show the full pathname to yacc/bison and f/lex.  Some systems
12003         have older or bad versions of those and this way the user will
12004         know for sure what is being invoked.
12005
12006         * tasks: file populated with todo items.
12007
12008         * scripts/amd2ldif.in: Script to convert amd maps to plain text
12009         LDAP object files.  Contributed by Leif Johansson
12010         <leifj@matematik.su.se>.
12011
12012         * aux/config.guess: added recognition for sun3's running 4.2bsd,
12013         from Tom Schmidt <tschmidt@micron.com>.  Fixed one small typo.
12014
12015         * amd/conf.c: several variables that were local to a map, were
12016         also added to [global], where they apply to all maps.  Each map
12017         can then individually override those defaults.  Flags
12018         affected: browsable_dirs and mount_type.  Options affected:
12019         map_type, map_options, and search_path.
12020
12021         * amd/amd.h: eliminated several global flags each of which took an
12022         int, in favor of one global flags variable used as a bit field.
12023
12024         * amd/amd.c (init_global_options): moved all global variables into
12025         a single struct amu_global_options, so it is easier to add new
12026         ones and/or identify existing ones.
12027
12028         * amd/get_args.c (get_args): removed unused amd -m option.
12029
12030         * amd/conf.c (gopt_cluster): added new amd.conf option for cluster
12031         name, same as amd -C.
12032
12033         * amd/info_ldap.c: LDAP info map functions from Leif Johansson
12034         <leifj@matematik.su.se>.
12035
12036         * amd/conf.c (gopt_ldap_base, gopt_ldap_hostports): put in global
12037         amd.conf options for ldap_base and ldap_hostports.
12038
12039         * amd/opts.c (f_netgrp): new amd map function netgrp(ARG) to test
12040         if the current host is in the ARG host netgroup.
12041
12042         * aux/configure.in: some systems replaced dbm in libc with GNU's
12043         libgdbm, so check for libgdbm, but only if dbm_open is not in
12044         libc already.  This was a recommendation from Tom Schmidt
12045         <tschmidt@micron.com>.
12046
12047         * conf/nfs_prot/nfs_prot_sunos5_3.h: port to sparc-sun-solaris2.3
12048         completed.
12049
12050 Wed Jul  9 18:14:59 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12051
12052         * port to sparc-unknown-netbsd1.2E done, not tested.  Includes NFS
12053         V.3.
12054
12055 Tue Jul  8 17:35:07 1997  Erez Zadok  <ezk@elk.mcl.cs.columbia.edu>
12056
12057         * port to i386-unknown-freebsd3.0 done and working.  Includes NFS
12058         V.3.
12059
12060         * aux/macros/check_nfs_fh_dref.m4: freebsd3 should use
12061         file handle dereferencing style similar to freebsd22.
12062
12063         * include/am_defs.h: need to include <net/if_var.h> before
12064         <netinet/if_ether.h> on freebsd3.
12065
12066         * conf/nfs_prot/nfs_prot_freebsd3.h: new protocol header additions
12067         for freeBSD 3.0.
12068
12069 Tue Jul  8 16:53:41 1997  Erez Zadok  <ezk@moisil.cs.columbia.edu>
12070
12071         * amd/info_nis.c (nis_reload): cast nis' callback function so
12072         picky compilers won't complain.
12073
12074         * libamu/xdr_mountres3.c (xdr_mountres3): make sure this function
12075         gets compiled only if the system has NFS V3 and does not have
12076         xdr_mountres3.
12077
12078 Tue Jul  8 12:42:03 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12079
12080         * COPYING: put in some legal stuff in this file.
12081
12082 Mon Jul  7 19:10:44 1997  Erez Zadok  <ezk@prometheus.soscorp.com>
12083
12084         * NFS V3 now works under Irix5, thanks to patches from
12085         Andreas Stolcke <stolcke@speech.sri.com>.
12086
12087         * conf/mount/mount_irix5.c: sparate mount_irix.c into an irix5
12088         version and an irix6 version, since irix5's NFS V3 code is broken
12089         and hacky.
12090
12091         * amd/info_hesiod.c (hs_zone_transfer): minor fixes to buffer
12092         sizes for some hesiod queries.  Patch from Danny Braniss
12093         <danny@cs.huji.ac.il>.
12094
12095 Mon Jul  7 19:04:14 1997  Erez Zadok  <ezk@glory.soscorp.com>
12096
12097         * amd/ops_nfs.c (mount_nfs_fh): fixed NFS V.3 support for bsdi3.
12098
12099 Sun Jul  6 14:22:24 1997  Erez Zadok  <ezk@glory.soscorp.com>
12100
12101         * aux/{configure.in,acconfig.h}: added checks for struct
12102         nfs_args's fields proto and sotype (bsdi3).
12103
12104         * amd/ops_nfs.c (mount_nfs_fh): added nfsv3 option to
12105         nfs_args.flags for bsdi3.  Set field proto to 0.  Set sotype field
12106         to SOCK_STREAM or SOCK_DGRAM.
12107
12108         * aux/macros/check_mount_style.m4: add case for bsdi3.
12109
12110         * amd/info_hesiod.c: got hesiod support for bsdi3.
12111
12112 Sun Jul  6 11:14:47 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12113
12114         * aux/configure.in: look for hesiod on libc (bsdi3)
12115
12116         * amd/get_args.c (get_args): reformat usage so it fits in 80
12117         columns.
12118
12119         * scripts/ctl-amd.in: changed directory name for optional tftpboot
12120         map to /tftpboot/.amd.
12121
12122 Sat Jul  5 17:46:45 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12123
12124         *******************************************************************
12125         *** Released am-utils-6.0a6                                     ***
12126         *******************************************************************
12127
12128 Sat Jul  5 03:17:09 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12129
12130         * scripts/ctl-amd.in: include -T tag for tftpboot.
12131
12132         * new port: mips-sgi-irix5.3.  Compiled with gcc, but NFS V3 code
12133         is broken and needs work on the specific nfs_args that irix5 uses
12134         for V3 mounts.
12135
12136 Sat Jul  5 01:44:25 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
12137
12138         * amd/get_args.c (get_args): new options amd -T tag.  A map with
12139         tag=foo matching the -T tag will be processed.  All untagged maps
12140         get processed all the time.
12141
12142 Fri Jul  4 16:19:26 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12143
12144         * aux/configure.in: need to check for strcasecmp in libucb (ncr2)
12145
12146         * aux/macros/check_os_libs.m4: a new macro to set the usage of
12147         libnsl and libsocket based on the OS.
12148
12149         * libamu/mount_fs.c (mnt_flags): used MNTTAB_OPT_GRPID if it is
12150         defined (problem on osf4).
12151
12152         * conf/nfs_prot/nfs_prot_irix5.h: new file for irix5 headers.
12153
12154         * include/am_defs.h, aux/macros/try_compile_nfs.m4,
12155         aux/macros/mount_headers.m4: do include <sys/proc.h> because it
12156         failes on irix5.  Rather, put in the individual
12157         conf/nfs_prot/nfs_prot_*.h headers.
12158
12159         * amd/conf.c: AIX3 doesn't like strdup() being passed a constant
12160         char*, so cast all strdup()'s args to a non-const char*.
12161
12162         * amd/mapc.c (root_newmap): don't try to strdup only a "const
12163         char *".
12164
12165 Fri Jul  4 15:47:10 1997  Erez Zadok  <ezk@americas.psl.cs.columbia.edu>
12166
12167         * conf/nfs_prot/nfs_prot_sunos4.h: added rpc/rpc.h and
12168         sys/errno.h.
12169
12170 Thu Jul  3 17:49:00 1997  Erez Zadok  <ezk@prometheus.soscorp.com>
12171
12172         * made sure am-utils compiles, links, and runs properly on Irix
12173         6.2 using "cc -32 -Wl,-woff,"
12174
12175         * aux/macros/check_lib2.m4: a bug fix version to autoconf 2.12
12176         AC_CHECK_LIB.  If OTHER-LIBRARIES are defined and used, then add
12177         them to $LIBS.
12178
12179         * aux/configure.in: some cleanup of which libraries are needed.
12180         Espectially ensure that libnsl is included only on Solaris, where
12181         so far it is the only system on which it is absolutely necessary.
12182         Also no longer need to include libc explicitly.
12183
12184         * amd/amd.c,wire-test/wire-test.c (main): convert IP address to
12185         network-long order before printing it.
12186
12187         * wire-test/wire-test.c (main): also check and report on the IP
12188         address of the local host, since some systems have bad versions of
12189         get_myaddress, or ones that conflict with other versions in
12190         multiple libraries (SunOS 4 and Irix especially).
12191
12192 Wed Jul  2 18:19:02 1997  Erez Zadok  <ezk@starblazers.soscorp.com>
12193
12194         * scripts/ctl-amd.in: don't use full pathname so killproc() works
12195         better.  Also run bsd44 and irix style ps programs.
12196
12197         * aux/macros/check_lib_funcs.m4: bug fixed: used to define usage
12198         of library no matter if it was found or not.
12199
12200 Wed Jul  2 02:11:48 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12201
12202         * aux/macros/check_mnt2_gen_opt.m4: turned back on the checking
12203         for M_* macros, but ensure that <sys/stream.h> is not included at
12204         all so it won't conflict with other M_* macros.
12205
12206 Tue Jul  1 21:16:51 1997  Erez Zadok  <ezk@mako.cs.columbia.edu>
12207
12208         * conf/mount/mount_irix.c (mount_irix): first arg to mount(2) on
12209         irix should be "spec" (host:/path), not the dir of the mnt point.
12210
12211         * amd/ops_afs.c (afs_lookuppn): bug in enable_default_selectors
12212         fixed.  If on, it essentially ignored the setting in a
12213         selector-controlled /defaults if there were 2 or more entries in it.
12214
12215 Tue Jul  1 12:23:38 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12216
12217         * scripts/ctl-{amd,hlfsd}.in (killproc): if failed to find process
12218         using BSD style ps, then try SVR4 style ps.
12219
12220         * include/am_utils.h (amuDebug): renamed Debug macro to amuDebug
12221         etc., to avoid conflicts with similar named macros in <ldap.h>.
12222
12223         * aux/configure.in, amd/info_ldap.c, etc.: put in all the autoconf
12224         support needed for LDAP.  Now the code has to be written mostly in
12225         amd/info_ldap.c.
12226
12227         * Included additional patches from Andreas Stolcke
12228         <stolcke@speech.sri.com> to support using the best possible
12229         combination of NFS version (2,3) and protocol (udp,tcp) for any
12230         given host, since it appears that some Irix versions have NFS V3,
12231         but do not support TCP.
12232
12233         * scripts/ctl-amd.in: updated amd control script to look for and
12234         use amd.conf file.
12235
12236 Tue Jul  1 00:28:23 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
12237
12238         * amd/mapc.c (mapc_create): now, each map in the amd.conf can be
12239         initialized off of a different type, or default to cycling through
12240         all maps until one of them matches.
12241
12242 Mon Jun 30 20:49:13 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
12243
12244         * amd/ops_afs.c (afs_readdir): per-map browsing (readdir) done.
12245         if browsable_dirs=yes is set in the map section in amd.conf, that
12246         map will return all entries back to a readdir(2).
12247
12248 Sun Jun 29 16:22:11 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
12249
12250         * rudimentary amd.conf file support included.  You may even
12251         override things like os=sos5, to get "backwards" compatibility with
12252         upl102.
12253
12254 Sat Jun 28 13:35:02 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
12255
12256         * amd/conf.c: new file to process amd.conf file.
12257
12258         * amd/get_args.c (get_args): new options -H to print help.
12259
12260         * moved enable_default_selectors to be amd.conf controlled, and
12261         not compiler controlled.
12262
12263         * amd/get_args.c (get_args): new options -F <conf-file> to parse an
12264         amd configuration file.
12265
12266 Wed Jun 25 23:15:42 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
12267
12268         * converted all files that used strcmp() == 0 or != 0  to using
12269         the STREQ() macro.
12270
12271 Mon Jun 23 22:31:14 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
12272
12273         * aux/macros/check_lib_funcs.m4: new M4 macro that can be used to
12274         search for any number of functions in any given library.
12275
12276 Mon Jun 23 01:04:23 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12277
12278         * amd/mapc.c: Included patch from Leif Johansson
12279         <leifj@matematik.su.se> to ensure that systems without an RE
12280         library can compile.
12281
12282         * libamu/mount_fs.c (mount_fs): Included patch from Andreas
12283         Stolcke <stolcke@speech.sri.com>, to ensure that mount options on
12284         table are properly delimited by a comma.
12285
12286         * amd/ops_nfs.c (mount_nfs_fh): Included patch from Andreas
12287         Stolcke <stolcke@speech.sri.com>, to allow users to override the
12288         proto= and vers= mount options.
12289
12290 Sun Jun 22 01:00:11 1997  Eric Dana  (edana@ncr2.bgs.com)
12291
12292         * conf/nfs_prot/nfs_prot_svr4.h: port completed to
12293         i486-ncr-sysv4.3.03.  Assorted source cleanups done.
12294
12295         * include/am_defs.h, aux/macros/mount_headers.m4: don't include
12296         mnttab.h if sys/mnttab.h was already included, because on ncr2,
12297         they contain conflicting entries for struct mnttab.
12298
12299 Sat Jun 21 23:52:15 1997  Eric Dana  (edana@ncr2.bgs.com)
12300
12301         * aux/macros/check_nfs_prot_headers.m4: added support for ncr2.
12302
12303 Fri Jun 20 06:14:17 1997  Erez Zadok  <ezk>
12304
12305         * amd/*.c: lots of 64-bit "ugly" ports like casts to long ints.
12306
12307         * aux/macros/struct_nfs_fh.m4: check for "struct nfssvcfh" because
12308         on DU-4.0 it is better than the next one to be picked (nfsv2fh_t).
12309
12310 Wed Jun 18 18:59:49 1997  Erez Zadok  <ezk@defiant.soscorp.com>
12311
12312         * aux/macros/struct_nfs_fh.m4 (AC_TRY_COMPILE_NFS): check for
12313         nfsv2fh_t before fhandle_t becasue on bsdi2.1 the former is
12314         better.
12315
12316 Tue Jun 10 17:06:58 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
12317
12318         * amd/rpc_fwd.c (fwd_packet): TLI bug fix. if fwdto socket is
12319         NULL, set the maxlen and len fields in netbuf to zero.
12320
12321 Wed May 28 22:52:28 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12322
12323         * scripts/fix-amd-map.in (name): replace all matching patterns on
12324         line.
12325
12326 Sun May 25 19:33:41 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12327
12328         *******************************************************************
12329         *** Released am-utils-6.0a5                                     ***
12330         *******************************************************************
12331
12332 Sun May 25 13:37:24 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
12333
12334         * amd/amq_subr.c (amqproc_getvers_1_svc): amq's RPC service
12335         procedure now returns the full string that amd -v returns.
12336
12337         * amd/get_args.c (get_version_string): new function to return
12338         complete version/info string so it could be used more flexibly.
12339
12340         * amd/am_ops.c (ops_showamfstypes, ops_showfstypes): put the list
12341         of Fs types into a string buffer, rather than a FILE*.
12342
12343         * amd/mapc.c (mapc_showtypes): put the list of map types into a
12344         string buffer, rather than a FILE*.
12345
12346 Sun May 25 01:25:36 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12347
12348         * amd/get_args.c (get_args): amd -v also prints user who built
12349         amd, hostname built on, and date of configuration.
12350
12351 Sat May 24 13:40:50 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12352
12353         * scripts/lostaltmail.conf-sample: sample lostaltmail
12354         configuration file.
12355
12356         * scripts/lostaltmail.in: new script lostaltmail used to redeliver
12357         "lost" mail that hlfsd redirected to a temp location because the
12358         primary home file system of the user was full.
12359
12360         * scripts/amd2sun.in: new script amd2sun. Used to convert Sub
12361         automount maps to amd maps.
12362
12363         * scripts/ctl-hlfsd.in: new script ctl-hlfsd.  Used to start,
12364         stop, or restart hlfsd.
12365
12366         * scripts/expn.1: man page for expn command.
12367
12368         * scripts/ctl-amd.in: new script ctl-amd.  Used to start, stop, or
12369         restart amd.
12370
12371         * scripts/expn.in: new script expn.  Actually taken from David
12372         Muir Sharnoff <muir@idiom.com>.  Used by hlfsd's mail re-delivery
12373         script.
12374
12375         * scripts/wait4amd.in: new script wait4amd added.  Waits for amd
12376         to come up on a host, and then runs a command (rsh $hostname by
12377         default).
12378
12379         * scripts/Makefile.am: new directory now holds all shell/perl
12380         scripts that belong to am-utils.
12381
12382         * conf/mount/mount_linux.c (parse_opts): new parser for
12383         linux-specific mounts.  Handles fs-type specific mount-options
12384         correctly.  Currently implemented: msdos, iso9660.
12385
12386         * amd/ops_pcfs.c (pcfs_ops): don't timeout pcfs mounts by default
12387         (fix for linux).
12388
12389         * amd/ops_cdfs.c (cdfs_ops): don't timeout cdfs mounts by default
12390         (fix for linux).
12391
12392         * amd/mapc.c (make_entry_chain): fixed bug that resulted in amd
12393         core dumps upon "ls" of a mount point; an invalid pointer was
12394         being returned and dereferenced.
12395
12396         * port to Linux sparc working!
12397
12398         * hlfsd/homedir.c (hlfsd_diskspace): close file descriptor if
12399         failed to write test file, or else the fd will leak.
12400
12401 Sun May 18 00:42:41 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12402
12403         * amd/info_hesiod.c (hs_strip_our_domain): use strcasecmp()
12404         instead of strcmp().
12405
12406         * Port to Digital Unix 4.0 (OSF) done.
12407
12408         * hlfsd/hlfsd.c: renamed dirname to dir_name to avoid conflicts
12409         with dirname() function in <string.h> on OSF systems.
12410
12411         * fsinfo/fsi_util.c (set_ether_if): take out extern definition of
12412         inet_addr().  It should come from <arpa/inet.h> instead.
12413
12414         * conf/mtab/mtab_osf.c: fixed macros and added NFS V3 specs.
12415
12416         * include/am_utils.h: renamed FIRST/LAST to AM_FIRST/AM_LAST to
12417         avoid conflicts with DU 4.0 system header.
12418
12419 Thu May 15 22:49:12 1997  Erez Zadok  <ezk@subzero.cs.columbia.edu>
12420
12421         * libamu/mount_fs.c (mount_fs): pass along NFS version so I can
12422         determine if to include additional options in the mount table file
12423         entry (such as proto=tcp, and vers=3).
12424
12425 Thu May 15 00:42:12 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12426
12427         * libamu/mount_fs.c (mount_fs): include NFS version number in the
12428         mount table options, as well as proto={tcp,udp}.
12429
12430 Wed May 14 14:30:19 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
12431
12432         * NFS V3 code ported to most other systems, so it compiles for V2
12433         and V3 NFS systems.
12434
12435         * NFS VERSION 3 support, first pass.  Working for Solaris and
12436         using TCP.
12437
12438 Sun May 11 01:14:29 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
12439
12440         * amq/amq.c: many newline characters were missing from various
12441         stderr printfs.
12442
12443 Sat May 10 13:09:06 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
12444
12445         * conf/nfs_prot/nfs_prot_sunos5.h: protocol defintions for
12446         Solaris, which include NFS V3 support.
12447
12448         * conf/nfs_prot/nfs_prot_default.h: default NFS protocol headers.
12449
12450         * conf/transp/transp_{tli,sockets}.c (get_mount_client): use NFS
12451         protocol version while getting a mount client.
12452
12453         * amd/ops_nfs.c (mount_nfs_fh): set the mount types, mnttab types,
12454         file handle size, and proper file handle based on the correct NFS
12455         version number.
12456
12457         * conf/mount/mount_svr4.c (mount_svr4): support NFS3 mounts under
12458         Solaris and other SVR4 systems.
12459
12460         * amd/ops_nfs.c: store NFS file handle version and version
12461         specific handle in struct fh_cache.
12462         (got_nfs_fh): pick the correct RPC reply based on the NFS version
12463         of the server.
12464         (prime_nfs_fhandle_cache): figure out the right NFS file handle
12465         for a node, but now include NFS protocol version information.
12466         (call_mountd): set the correct version for the mount protocol,
12467         based on the NFS protocol version.
12468         (nfs_init): use the NFS protocol generic structure
12469         am_nfs_handle_t.
12470
12471         * include/am_utils.h: new structure am_nfs_handle_t to contain all
12472         possible versions of NFS file handles.
12473
12474         * amd/srvr_nfs.c (start_ping): ping program performs NFS version
12475         specific pings.
12476         (recompute_portmap): figure out the correct portmap version mount.
12477         (nfs_keepalive): call start_ping() with the correct NFS version.
12478         (find_nfs_srvr): if mount option "vers=" is given, use it.  Get
12479         the NFS server version and verify that it is up.
12480
12481         * conf/transp/transp_{tli,sockets}.c (get_nfs_version): a new
12482         function to find the best NFS version for a particular host.
12483
12484         * libamu/amu.h: determine what is the highest version of NFS we
12485         should try.
12486
12487         * include/am_utils.h (NFS_VERSION3): added definition for NFS V3
12488         protocol number.
12489         Added field fs_version to struct fserver, so we can now store the
12490         server protocol version.
12491
12492 Fri May  9 01:09:45 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
12493
12494         * aux/macros/check_field.m4 (AC_MOUNT_HEADERS): map '.' (dot) into
12495         underscores too, so I can test for sub-fields.
12496
12497         * libamu/wire.c: use test that checks for sub-fields of struct
12498         ifreq.
12499
12500 Sat May  6 10:20:17 2000  Erez Zadok  <ezk@glory.soscorp.com>
12501
12502         * port to BSD/OS 3.0 completed!  Many xdr_ functions were broken
12503         into smaller files.  M4 macros fixed to test for existence of
12504         file systems using getvfsbyname().
12505
12506         * amd/sched.c (sigchld): signal handler must waitpid() for all
12507         possible children.
12508
12509         * hlfsd/homedir.c: signal handler must waitpid() for all possible
12510         children.
12511
12512         * aux/macros/check_restartable_signals.m4: new macro to determine
12513         if need to reinstall signal handlers per OS is better than trying
12514         to figure these out based on system macros.
12515
12516 Fri May  5 19:23:28 2000  Erez Zadok  <ezk@glory.soscorp.com>
12517
12518         * amd/ops_nfs.c (mount_nfs_fh): set nfs_args_t version number.
12519
12520         * amd/ops_afs.c (mount_toplvl): set nfs_args_t version number.
12521
12522         * amd/ops_nfs.c (mount_nfs_fh): process nfs mount option resvport
12523         (must be supplied for bsdi 3.0)
12524
12525         * libamu/wire.c: use HAVE_FIELD_STRUCT_IFREQ_IFR_ADDR (and
12526         associated new macro) for determining the right way to compute the
12527         size of the interface structure.
12528
12529 Fri Apr 11 15:56:13 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12530
12531         * aux/configure.in: need to include libc before libnsl if
12532         get_myaddress() is available because on irix libnsl has a buggy
12533         get_myaddress().
12534
12535         * include/am_defs.h: make sure REINSTATE_SIGNAL_HANDLER is defined
12536         on Irix 6 (an SVR4 variant)
12537
12538 Thu Mar 27 02:28:40 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12539
12540         *******************************************************************
12541         *** Released am-utils-6.0a4                                     ***
12542         *******************************************************************
12543
12544 Wed Mar 26 21:15:36 1997  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
12545
12546         * amd/amq_subr.c (ok_security): turned off insecure code unless
12547         user explicitly runs configure --enable-amq-mount.
12548
12549         * hlfsd/hlfsd.c (main): use new protoypes dor create_nfs_service().
12550
12551         * amd/nfs_start.c (mount_automounter): use code that separately
12552         creates the NFS and the amq service.  Register tcp and udp
12553         services for amd.
12554
12555         * conf/transp/transp_*.c (create_amq_service): new function to
12556         separately create the amq service for amd.  Simplified prototypes
12557         for create_nfs_service().
12558
12559 Wed Mar 19 20:40:56 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12560
12561         *******************************************************************
12562         *** Released am-utils-6.0a3                                     ***
12563         *******************************************************************
12564
12565 Wed Mar 19 17:49:18 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12566
12567         * new port: rs6000-ibm-aix3.2.5 and rs6000-ibm-aix4.1.5.0.  Lots
12568         of small changes to support these two.
12569
12570 Wed Mar 19 14:33:30 1997  Erez Zadok  <ezk@grande.cs.columbia.edu>
12571
12572         * conf/umount/umount_default.c (umount_fs): bug: unlock_mntlist()
12573         should run if MOUNT_TABLE_ON_FILE, not otherwise.
12574
12575 Mon Mar 17 22:02:43 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12576
12577         * hlfsd/hlfsd.c (main): fill in fhsize field if exists
12578         (freebsd-2.2).
12579
12580         * amd/ops_{nfs,afs}.c (mount_toplvl): fill in fhsize field if
12581         exists (freebsd-2.2).
12582
12583 Sat Mar 15 19:37:48 1997  Erez "HWank1" Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12584
12585         * new port: i386-unknown-freebsd2.2.  FreeBSD 2.2 and higher
12586         changed the filehandle type in struct nfs_args from nfsv2fh_t to
12587         u_char.
12588
12589 Sat Mar 14 10:11:03 1997  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
12590
12591         * SHARED LIBRARIES: too many changes to list individually.  Now,
12592         libamu can be built as a shared library, and other programs link
12593         with it.
12594
12595 Tue Mar 11 22:24:09 1997  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
12596
12597         * aux/macros/opt_shared.m4: new macro for setting options for
12598         building shared am-utils libraries.
12599
12600 Sun Mar  9 19:17:46 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12601
12602         * fixmount/fixrmtab: cleaned up the script.
12603
12604         * fixmount/Makefile.am (EXTRA_DIST): adde $(sbin_SCRIPTS) so that
12605         fixrmtab gets distributed too.
12606
12607         * conf/nfs_prot/nfs_prot_bsdi2.h: added support for MOUNTPROC_DUMP.
12608         Added extern for xdr_mountlist().
12609
12610         * aux/configure.in: trimmed down many tests for MNT2_GEN_OPT,
12611         MNT2_NFS_OPT, and MNTTAB_OPT that were not referenced anywhere in
12612         the sources.
12613
12614 Sat Mar  8 00:23:58 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12615
12616         * fixmount/hlfsd ported to bsd44, hpux, and linux systems.
12617
12618         * aux/macros/check_fixmount_style.m4: add check for bsd44 systems.
12619
12620         * conf/fixmount/fixmount_default.c: use lockf() if flock() is
12621         unavailable.
12622
12623         * include/am_defs.h: include <string.h> even if don't have
12624         STDC_HEADERS defined (sunos4).
12625         (seteuid): define seteuid() to be setresuid() for systems that
12626         have but not the other (hpux).
12627
12628         * aux/macros/check_extern.m4: test should include <strings.h>.
12629
12630 Tue Mar  4 17:16:52 1997  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
12631
12632         * lib/xutil.c (debug_option): moved from amd/getargs.c to this
12633         more proper file.
12634
12635         * include/am_utils.h: put in structure for debug options, for all
12636         progams to use.
12637
12638         * amd/get_args.c: moved structure for debug options out.
12639
12640 Sun Mar  2 00:13:07 1997  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
12641
12642         * ported fixmount.
12643
12644         * lib/ualarm.c: replacement function for systems that don't have a
12645         ualarm().
12646
12647         * ported fsinfo.
12648
12649 Sun Mar  1 10:23:34 1997  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
12650
12651         * ported mk-amd-map.
12652
12653         * buildall: added -K option to buildall, to run mkconf.
12654
12655 Fri Feb 28 01:10:25 1997  Erez "HWank1" Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12656
12657         *******************************************************************
12658         *** Released am-utils-6.0a2                                     ***
12659         *******************************************************************
12660
12661 Thu Feb 27 13:58:59 1997  Erez "HWank1" Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12662
12663         * all *.[hcyl] files: add copyright line.
12664
12665         * aux/macros/check_mount_type.m4: test for mount type for
12666         linux-like systems, by checking for loadable or statically linked
12667         kernel filesystem modules.
12668
12669         * aux/macros/check_mnttab_type.m4: test for mount table entry
12670         for linux-like systems, by checking for loadable or statically
12671         linked kernel filesystem modules.
12672
12673         * aux/configure.in: pcfs filesystems can use vfat type (linux)
12674
12675         * aux/macros/check_fs_mntent.m4: test for filesystem existence for
12676         linux-like systems, by checking for loadable or statically linked
12677         kernel filesystem modules.
12678
12679         * conf/trap/trap_hpux.h: ugly hack added because of stupide HPUX
12680         9.0 header files.  This should be removed when HPUX 9.0 is deemed
12681         defunct.
12682
12683         * aux/acconfig.h: set an undefined variable for having an extern
12684         to clnt_sperrno().
12685
12686         * include/am_defs.h: define extern for clnt_sperrno() if needed.
12687
12688         * aux/configure.in: test for extern clnt_sperrno().
12689
12690         * aux/macros/check_nfs_fh_dref.m4: HPUX's NFS fhandle dref is
12691         similar to irix.
12692
12693         * aux/macros/check_mount_style.m4: use mount helper on HPUX.
12694
12695         * aux/macros/check_mtype_type.m4: hpux's mount type is a char*,
12696         not integer (but may be mapped to one later).
12697
12698         * conf/mount/mount_hpux.c (mount_hpux): HPUX has confusing header
12699         files.  They have mount(2) and vfsmount(2) which don't take same
12700         arguments, and they have string mount types MNTTYPE_* as well as
12701         integer types MOUNT_*.  So I need this new mount function to map
12702         from string types to integer types for the vfsmount() function.
12703
12704         * conf/trap/trap_hpux.h (MOUNT_TRAP): instead of calling
12705         vfsmount(), call mount_hpux().
12706
12707 Thu Feb 27 03:34:14 1997  Erez "HWank1" Zadok  <ezk@okeeffe.cs.columbia.edu>
12708
12709         * lib/mount_fs.c (mnt_flags): make sure SYNC option is on only if
12710         both MNTTAB_OPT_SYNC and MNT2_GEN_OPT_SYNC are defined.
12711
12712 Thu Feb 27 00:26:00 1997  Erez "HWank1" Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12713
12714         * conf/nfs_prot/nfs_prot_hpux.h: NFS protocol definitions for
12715         hpux.
12716
12717         * include/am_defs.h: no need to include rpc/auth.h or rpc/clnt.h.
12718
12719         * aux/configure.in: no need to test for rpc/auth.h and rpc/clnt.h.
12720
12721         * buildall: added ability to configure using other shells than
12722         /bin/sh, on those systems where /bin/sh is buggy or limited
12723         (HPUX).
12724
12725         * aux/macros/struct_nfs_fh.m4: reinstated the macro but have it
12726         defined am_nfs_fh, and also test for plain typedef "nfs_fh".
12727
12728         * aux/acconfig.h: #undef am_nfs_fh, which is being defined by a
12729         reinstated macro.
12730
12731         * aux/configure.in: check for <nfs/export.h>
12732
12733         * include/am_defs.h: include <nfs/export.h> (HPUX) if exists.
12734
12735         * aux/macros/try_compile_nfs.m4: include <nfs/export.h> (HPUX) if
12736         exists.
12737
12738         * aux/macros/mount_headers.m4 (define): removed some non-working
12739         (on HPUX) code that attempts to recreate the fhandle_t rather than
12740         load it up from system headers.  Also added some NFS protocol
12741         header inclusion.  include <nfs/export.h> (HPUX) if exists.
12742
12743 Wed Feb 26 00:32:35 1997  Erez "HWank1" Zadok  <ezk@okeeffe.cs.columbia.edu>
12744
12745         * aux/macros/mount_headers.m4 (define): Use M4 changequote to
12746         ensure [] brackets are correctly used.
12747
12748         * aux/macros/expand_cpp_{string,hex,int}.m4: encapsulate
12749         multi-line M4 inclusions in [].
12750
12751 Tue Feb 25 22:19:44 1997  Erez "HWank1" Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12752
12753         * conf/mtab/mtab_bsd.c (mnt_dup): use statfs field f_fstypename if
12754         it exists.
12755
12756         * aux/acconfig.h: HAVE_FIELD_STRUCT_STATFS_F_FSTYPENAME, new
12757         config.h macro for field f_fstypename of struct statfs.
12758
12759         * aux/configure.in: testing for field f_fstypename field of struct
12760         statfs (NetBSD).
12761
12762         * aux/acconfig.h: moved all of the "static" definitions out to a
12763         fixed file called include/am_defs.h.  Added to all */Makefile.am
12764         files a dependency on am_defs.h.  Created am_defs.h of course, and
12765         then added #include <amd_defs.h> to all of the source and header
12766         files that required it.
12767
12768 Mon Feb 24 01:27:02 1997  Erez Zadok  <ezk@defiant.soscorp.com>
12769
12770         * aux/acconfig.h: two more externals for xdr functions that may be
12771         implemented by libamu.
12772
12773         * conf/nfs_prot/nfs_prot_bsdi2.h: added missing RPC and XDR
12774         definitions.
12775
12776 Sun Feb 23 15:25:26 1997  Erez "HWank1" Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12777
12778         * buildall (default): added -D option for turning on even stricker
12779         developer options.
12780
12781         * */Makefile.am: make sure @AMU_NFS_PROT_HEADERS@ is used to
12782         determine dependencies on optional NFS protocol headers.
12783
12784         * aux/acconfig.h: define and use HAVE_NFS_PROT_HEADERS as needed.
12785
12786         * aux/macros/check_nfs_prot_header.m4: new test to determine what
12787         NFS protocol headers to use.
12788
12789         * conf/nfs_prot/nfs_prot_{irix6,sunos4,bsdi2}.h: new headers to
12790         complete missing system headers for NFS protocol definitions.
12791
12792 Sun Feb 16 15:58:42 1997  Erez "HWank1" Zadok  <ezk@vir.cs.columbia.edu>
12793
12794         * amd/ops_nfs.c (mount_nfs_fh): encapsulated some more code in
12795         #ifdef's as needed.
12796
12797         * amd/ops_afs.c (mount_toplvl): make sure TIMEO/RETRANS code is
12798         suitable #ifdef'ed.
12799
12800         * include/am_compat.h: a couple more mnttab options
12801         (timeo/retrans) setting just in case.
12802
12803         * amd/autil.c (host_normalize): make sure hostent->h_name is
12804         passed a non-const char *.
12805
12806         * conf/mount/mount_linux.c (mount_linux): cleaned up a block of code.
12807
12808         * {lib,amq,amd}/*.c (many functions): cast xdr_entry to
12809         XDRPROC_T_TYPE.
12810
12811         * lib/nfs_prot_svc.c (nfs_program_2): cast xdr_entry to
12812         XDRPROC_T_TYPE.
12813
12814         * lib/nfs_prot_xdr.c (xdr_entry): cast xdr_entry to
12815         XDRPROC_T_TYPE.
12816
12817         * lib/wire.c (getwire): Make sure safe assignment from const to
12818         none is done.
12819
12820 Sat Feb 15 19:38:51 1997  Erez "HWank1" Zadok  <ezk@vir.cs.columbia.edu>
12821
12822         * aux/macros/expand_cpp_int.m4: new macro for expanding integers.
12823
12824         * aux/configure.in: added linux/fs.h support in configure and
12825         several M4 macros.
12826
12827         * conf/mount/mount_linux.c (mount_linux): use macro instead of
12828         "ugly" fixed hex number for mount() arguments.
12829
12830 Sat Feb 15 02:09:47 1997  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
12831
12832         * amd/info_hesiod.c: removed macro HAVE_HS_ZONE_TRANSFER and
12833         turned all of its code always on.  That code always seems to
12834         compile, as long as you have hesiod and libresolv.
12835
12836         * amd/mapc.c: removed macro HAVE_HS_ZONE_TRANSFER and turned all
12837         of its code always on.
12838
12839         * aux/configure.in: removed superfluous test for hs_zone_transfer
12840         function (will never find it because it is an amd-internal
12841         function).
12842
12843         * amd/mapc.c (maptypes): must used correct new name for am-utils'
12844         hesiod initialization function: hesiod_am_init.
12845
12846         * amd/info_hesiod.c (hesiod_am_init): renamed hesiod_init to
12847         hesiod_am_init so as not to conflict with libhesiod's
12848         hesiod_init() function.
12849
12850         * aux/configure.in: added test and explicit inclusion of
12851         libresolv.a for later resolution of library references with
12852         libhesiod.
12853
12854         * aux/macros/opt_cppflags.m4: new file.  configure/compile C
12855         preprocessor flags.
12856
12857         * aux/macros/opt_libs.m4: new file.  configure/compile library
12858         flags.
12859
12860         * Makefile.am (EXTRA_DIST_AUX): include two new macros
12861         opt_cppflags.m4 and opt_libs.m4.
12862
12863         * aux/configure.in: test for libhesiod needs to additional
12864         libresolv to link completely.  Additional configuration time
12865         options added for setting initial CPPFLAGS and LIBS.
12866
12867 Tue Feb 10 02:15:40 1997  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
12868
12869         *******************************************************************
12870         *** Released am-utils-6.0a1                                     ***
12871         *******************************************************************
12872
12873 Thu Feb  6 02:55:19 1997  Erez "HWank1" Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12874
12875         * amd/info_ndbm.c (ndbm_search,ndbm_init): fixed the code so that
12876         it works on freebsd, where they map dbm_pagfno a non-existing
12877         macro on purpose, to force you to port the code to Berkeley DB.
12878
12879 Fri Jan 31 01:35:09 1997  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
12880
12881         * amd/ops_afs.c (mount_toplvl): added a sleep(1) right before the
12882         actual mount_toplvl, to avoid some possible race conditions.
12883
12884 Thu Jan 30 02:31:49 1997  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
12885
12886         * amd/rpc_fwd.c: removed all TLI (HAVE_T_OPEN) code.
12887
12888 Wed Jan 29 18:25:07 1997  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
12889
12890         * lib/wire.c (getwire): removed HAVE_T_OPEN (TLI code)
12891
12892         * amd/amd.c (main): fix local address using htonl(). Free up
12893         buffers allocated by netdir_*() functions.
12894
12895 Wed Jan 22 23:53:24 1997  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
12896
12897         * amd/fix-amd-map.in: new script that will convert old-style amd
12898         maps to new one.
12899
12900 Tue Jan 21 01:18:16 1997  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
12901
12902         * FIRST AMD IN AM-UTILS FINALLY WORKS (mounts itself as toplvl,
12903         and replies back to simple nfs/link type mount queries).
12904
12905         * conf/mtab/mtab_svr4.c: reorganized the code in this file to be
12906         easier to read, and fixed a few bugs with un/setting the lock file
12907         descriptor.
12908
12909 Wed Jan  8 15:27:49 1997  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
12910
12911         * amd/sched.c: removed HAS_SVR3_SIGNALS code to handle older
12912         signals in Svr3 systems.  Only stellix ever used this.
12913
12914         * amd/rpc_fwd.c (fwd_reply): removed all code that was triggered
12915         by DYNAMIC_BUFFERS, since it was not in use.
12916
12917 Tue Jan  7 00:45:59 1997  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
12918
12919         * amd/opts.c (eval_opts): removed AMD_COMPAT code.  Amd no longer
12920         takes '=' sign as old selector.  Fix your maps.
12921         (deslashify): removed APOLLO code that treated two '//' as one.
12922
12923 Sun Jan  5 01:25:09 1997  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
12924
12925         * amd/ops_nfsx.c (nfsx_init): removed HARD_NFSX_ERRORS, code which
12926         was not used.  It made any submount error fail the whole group.
12927
12928         * amd/ops_nfs.c (make_nfs_auth): removed code dependent on
12929         HAS_NFS_QUALIFIED_NAMES.
12930         (mount_nfs_fh): removed macro for NFS_ARGS_NEEDS_PATH, assuming it
12931         is never on.  So code that was triggered by #ifndef
12932         NFS_ARGS_NEEDS_PATH (osf1, aix3, and bsd44 variants) may have to
12933         be fixed later.
12934         Removed all ULTRIX_HACK code.  Ultrix is DEAD!
12935         removed all PRESET_AC code, which was only on for Linux to preset
12936         the attribute cache values (otherwise they default to zero).
12937         (nfs_umounted): revobed KICK_KERNEL code (IRIX systems).  Will
12938         have to fixed up later.
12939         (mount_nfs_fh): removed code that was never included, which
12940         attempted to set the port on which amd's nfs mounts on.  This
12941         isn't supported by the ping algorithm yet.  In any case, it is all
12942         done in nfs_init().
12943
12944         * amd/srvr_nfs.c (find_nfs_srvr), amd/ops_nfs.c (mount_nfs_fh):
12945         removed HAS_TCP_NFS code.  The whole use of NFS V.3 with TCP or
12946         specially hacked NFS V.2 that uses TCP (BSD 4.4 variants) will
12947         have to be addressed later.
12948
12949         * amd/nfs_subr.c (nfsproc_getattr_2): removed all code dependent
12950         on PRECISE_SYMLINKS.
12951
12952         * amd/mapc.c (mapc_meta_search): removed code that depended on
12953         HAS_DEPOT.  It is known buggy code.  The whole DEPOT support needs
12954         to be rethought.
12955         (mapc_add_kv): ported code to use standard regular expression
12956         (regexp) library.
12957
12958         * amd/{map.c,ops_sfs.c,ops_ufs.c}: removed all code dependent on
12959         FLUSH_KERNEL_NAME_CACHE and the macro itself.
12960
12961 Sat Jan  4 15:46:58 1997  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
12962
12963         * amd/map.c (exported_ap_alloc): removed all code triggered by
12964         SHRINK_EXPORTED_AP and the macro itself.
12965
12966         * amd/info_nis.c: removed HAS_NIS_RELOAD macro, and left the code
12967         in all the time.  Assuming that there is always NIS realod
12968         available.
12969         (yp_all_fixed): removed code for BROKEN_YP_ALL.  If your yp_all()
12970         function is broken such that it does not release filedescriptors
12971         it created, then you are hosed.  Get a fix for yp_all from your
12972         vendor or switch operating systems.
12973
12974 Tue Dec 31 15:34:36 1996  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
12975
12976         * amd/info_hesiod.c: renamed macro HAS_HESIOD_RELOAD to
12977         HAVE_HS_ZONE_TRANSFER.
12978
12979 Mon Dec 30 17:33:23 1996  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
12980
12981         * amd/{nfs,host}_ops.cremoved INFORM_MOUNTD macro, so its code is
12982         always included.  We should always try to inform the remove mount
12983         daemon of mounts we performed.  If we want an option for this, it
12984         should be a run-time option.
12985
12986         * amd/host_ops.c: removed all that optionally did not make the
12987         directory mount points for amd.
12988
12989         * HOST_EXEC code removed from everywhere.  There is no indication
12990         that it was used anywhere.  If it needs to be used, then a
12991         run-time switch should control it.
12992
12993 Thu Dec 26 00:06:52 1996  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
12994
12995         * amd/*_ops.c: removed all references to mntent_t's fields
12996         mnt_freq and mnt_passno, since they are no longe rused (and never
12997         have been).
12998
12999         * amd/am_ops.c: removed function sunos4_match, which was off
13000         anyway.  This was one of the places where an '=' sign was allowed
13001         as an assignment operator (which is now ':=').
13002
13003         * amd/afs_ops.c (afs_bgmount): removed SUNOS4_COMPAT code which
13004         was off anyway.  This was one of the places where an '=' sign was
13005         allowed as an assignment operator (which is now ':=').
13006
13007 Tue Dec 24 01:53:52 1996  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
13008
13009         * amq/amq.c: ported to am-utils.  Working.
13010
13011         * conf/mount/mount_svr4.c (mount_svr4): changed mount type on svr4
13012         to be string, as it should be (rather than a string mapped to int
13013         and back mapped to string).
13014
13015 Sun Dec 22 13:26:05 1996  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
13016
13017         * lib/mount_fs.c (mount_fs): removed MNTINFO_PREF code.
13018
13019         * lib/umount_fs.c: split this into three files: default, osf, and
13020         bsd44, that are in conf/umount/umount_*.c.
13021
13022 Thu Dec 19 17:33:46 1996  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
13023
13024         * aux/configure.in, aux/aclocal.m4, aux/acconfig.h: added new
13025         macro to automatically figure out if an external definition for
13026         sys_errlist[] exists.
13027
13028         * lib/xutil.c (xfree): removed "#undef free" because it's not
13029         needed there.  Any system that redefines free() needs help.
13030
13031         * conf/mtab/mtab_file.c (REWRITE_MTAB_IN_PLACE): removed code that
13032         was dependent on REWRITE_MTAB_IN_PLACE.  It does not appear to be
13033         in active use anywhere.  If added later, it should be a run-time
13034         configuration option.
13035
13036         * conf/mtab/mtab_mach3.c: removed code that was #ifdef'ed not to
13037         be MOUNT_TABLE_ON_FILE, since mach2 always stores its mount tables
13038         in a file in /etc.
13039
13040         * lib/util.c (str3cat): removed _AIX code.  AIX should have a
13041         working realloc, or else find a cleaner solution to this.
13042         (mkdirs): removed SUNOS4_WORKAROUND code.  This was to do a sync()
13043         after immediately making directories so that fsck will be able to
13044         fix the filesystem in the event of an immediate crash.  This was
13045         because a bug in UFS which is fixed by now.
13046
13047         * lib/hutil.c (domain_strip): removed PARTIAL_DOMAINS triggered
13048         code.  Does not appear to be on and used anywhere.
13049         (dofork): removed MACH3 code, b/c mach3 NFS bugs are fixed by now.
13050
13051         * lib/resvport.c: split the binding of reserved ports code to a
13052         separate file.  A #define (HAVE_T_OPEN) separates the TLI (SVR4)
13053         from the BSD code.
13054
13055 Thu Dec 19 02:08:35 1996  Erez "HWank1" Zadok  <ezk@shekel.mcl.cs.columbia.edu>
13056
13057         * lib/Makefile.am (amu_LIBADD): includs @LIBOBJS@ now, auto-filled
13058         in by automake and configure, for optional sources that need to be
13059         built as part of libamu.a.
13060
13061         * aux/aclocal.m4: Make sure AC_CHECK_MOUNT_STYLE adds mountutil.o
13062         to LIBOBJS.
13063
13064         * lib/memcmp.c (memcmp): new file added to replace a possible bad
13065         implementation of memcmp.
13066
13067 Wed Dec 18 22:20:23 1996  Erez "HWank1" Zadok  <ezk@shekel.mcl.cs.columbia.edu>
13068
13069         * converted the sources to use memset/memmove/memcmp instead of
13070         bzero/bcopy/bcmp.
13071
13072         * ran all sources through gnu Indent w/ options specified in
13073         aux/amindent.
13074
13075 Wed Dec 11 22:19:29 1996  Erez "HWank1" Zadok  <ezk@shekel.mcl.cs.columbia.edu>
13076
13077         * At this point the initial generation of config.h via autoconf and
13078         some preliminary makefiles via automake is done.  I will not begin
13079         modifying sources, so it's a good time to document from here.
13080
13081 Wed Dec 10 22:19:29 1996  Erez "HWank1" Zadok  <ezk@shekel.mcl.cs.columbia.edu>
13082
13083         *******************************************************************
13084         *** Initial ChangeLog Entry                                     ***
13085         *******************************************************************