]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - contrib/amd/ChangeLog
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / contrib / amd / ChangeLog
1 2006-05-11  Erez Zadok  <ezk@cs.sunysb.edu>
2
3         *******************************************************************
4         *** Released am-utils-6.1.5                                     ***
5         *******************************************************************
6
7 2006-05-10  Erez Zadok  <ezk@cs.sunysb.edu>
8
9         * Minor new ports: i386-unknown-freebsd6.1 (RELEASE)
10         powerpc-apple-darwin8.6.0, and i386-unknown-openbsd3.9.
11
12         * libamu/mount_fs.c (compute_nfs_attrcache_flags): fix signedness
13         problems on IRIX-6.5.
14
15         * conf/autofs/autofs_solaris_v1.c (xdr_umntrequest): fix
16         signedness problems on IRIX-6.5.
17
18 2006-05-01  Erez Zadok  <ezk@cs.sunysb.edu>
19
20         * configure.in: check if libc already includes dbm functionality
21         (as in FreeBSD 6), then don't bother to check specific libraries
22         such as libdbm, gdbm, etc.
23
24 2006-04-21  Erez Zadok  <ezk@cs.sunysb.edu>
25
26         * configure.in: detect G/DBM support via gdbm_compat library
27         (Debian 3.1).
28
29         * minor new port: powerpc-apple-darwin8.5.0
30
31 2006-04-20  Erez Zadok  <ezk@cs.sunysb.edu>
32
33         * scripts/amd.conf-sample, scripts/amd.conf.5, doc/am-utils.texi,
34         NEWS: document new nfs_allow_any_interface parameter.
35
36         * include/am_compat.h (INADDR_LOOPBACK): define INADDR_LOOPBACK if
37         not defined, since some systems don't have it.
38
39 2006-04-20  Nick Williams <Nick.Williams@morganstanley.com>
40
41         * libamu/wire.c (is_interface_local): new boolena function to
42         determine if address represents any of the local interfaces.
43         (getwire): more properly check if address equals INADDR_LOOPBACK,
44         not if IFF_LOOPBACK is not (the latter isn't as correct).
45
46         * include/am_utils.h: extern for new is_interface_local() function.
47
48         * conf/transp/transp_{sockets,tli}.c: don't define INADDR_LOOPBACK
49         here but in am_compat.h
50
51         * amd/nfs_prot_svc.c (nfs_program_2): if
52         nfs_allow_any_interface=yes, then allow NFS packets from any local
53         interface (not just 127.0.0.1).
54
55         * amd/conf.c (gopt_nfs_allow_any_interface): implement the new
56         amd.conf parameter nfs_allow_any_interface.
57
58         * amd/amd.h (CFM_NFS_ANY_INTERFACE): define new global flag when
59         al interfaces are acceptable for local NFS packets.
60
61 2006-04-18  Christos Zoulas  <christos@zoulas.com>
62
63         * amd/opts.c: Add support for optionally specifying the hostname
64         to match against the netgroup in the netgrp and netgrpd selectors.
65
66 2006-04-16  Erez Zadok  <ezk@cs.sunysb.edu>
67
68         * libamu/mtab.c (hasmntval): fix inverted meaning of error from
69         hasmntvalerr().
70
71 2006-04-14  Erez Zadok  <ezk@cs.sunysb.edu>
72
73         * libamu/mount_fs.c (compute_nfs_attrcache_flags): use new
74         hasmntvalerr() function to set attribute cache values only if they
75         were set (regardless whether they were set to zero or a non-zero
76         value).  Before, we were unable to distinguish between an error to
77         parse an option, and a user who actually wanted to set an
78         attribute-cache value to 0.  This now fixes an important
79         performance bug that Amd was turning off the attribute caches even
80         for regular (non-automounter) NFS mounts.
81
82         * libamu/mtab.c (hasmntvalerr): new function to set the value of
83         an option into an integer, but ONLY if that options was set and
84         parsed correctly.  This function returns 1 on error, 0 on success
85         (instead of always setting the option value to 0).
86         (hasmntval): wrapper function around hasmntvalerr, which maintains
87         backwards compatibility (always sets option value to 0, even on
88         error to parse the option).
89
90         * amd/nfs_subr.c (fh_to_mp3): use long int printf format for
91         fhh_pid.
92
93 2006-04-05  Christos Zoulas  <christos@zoulas.com>
94
95         * amd/amfs_generic.c (amfs_lookup_mntfs): fix use-after-free bug
96         (Coverity).
97
98 2006-03-27  Erez Zadok  <ezk@cs.sunysb.edu>
99
100         * doc/am-utils.texi, scripts/{amd.conf.5,amd.conf-sample}:
101         document new nfs_retransmit_counter_toplvl and
102         nfs_retry_interval_toplvl global amd.conf parameters.
103
104         * amd/conf.c (gopt_nfs_retransmit_counter_toplvl,
105         (gopt_nfs_retry_interval_toplvl): parse amd.conf
106         nfs_retransmit_counter_toplvl and nfs_retry_interval_toplvl global
107         parameters.
108
109         * amd/amfs_toplvl.c (amfs_toplvl_mount): support setting toplvl
110         timeo/retrans parameters for Amd's toplvl mounts, separately from
111         all other UDP or NFS mounts.
112
113         * amd/amd.h: define a new timeo/retrans parameter for toplvl
114         mounts.
115
116 2006-03-22  Erez Zadok  <ezk@cs.sunysb.edu>
117
118         * minor new port: i386-pc-linux-suse10.1 (beta 8).
119
120 2006-03-21  Christos Zoulas  <christos@zoulas.com>
121
122         * amd/am_ops.c (merge_opts): Remove useless check found by
123         Coverity; xmalloc never returns NULL.
124
125 2006-03-21  Erez Zadok  <ezk@cs.sunysb.edu>
126
127         * minor new ports: i386-pc-linux-fc5.
128
129         * amd/info_ldap.c: as of Linux Fedora Core 5 (which comes with
130         openldap-2.3.9), the ldap.h headers deprecate several functions
131         used in this file, such as ldap_unbind.  You get compile errors
132         about missing extern definitions.  Those externs are still in
133         <ldap.h>, but surrounded by an ifdef LDAP_DEPRECATED.  I am
134         turning on that ifdef at the top of info_ldap.c, under the
135         assumption that the functions may be deprecated, but they still
136         work for this (older?) version of the LDAP API.  It gets am-utils
137         to compile, but it is not clear if it will work perfectly.
138
139         * libamu/xdr_func.c (xdr_am_mountres3_ok), amq/amq_xdr.c
140         (xdr_amq_mount_tree, xdr_amq_mount_tree_p,
141         xdr_amq_mount_info_list, xdr_amq_mount_tree_list), amq/amq.c
142         (show_mti), amd/amq_subr.c (xdr_amq_setopt, xdr_amq_mount_subtree,
143         xdr_amq_mount_tree, xdr_amq_mount_tree_list, xdr_amq_mount_tree),
144         libamu/xdr_func.c (xdr_am_mountres3_ok): use casing magic to stop
145         GCC-4.1 from complaining about "dereferencing type-punned pointer
146         will break strict-aliasing rules" here (but not elsewhere).
147
148 2006-03-20  Christos Zoulas  <christos@zoulas.com>
149
150         * libamu/wire.c: avoid potential dereferencing of a NULL pointer
151         (Coverity).
152
153         * hlfsd/homedir.c (delay): remove unnecessary check for NULL
154         pointer (Coverity).
155
156         * fsinfo/fsi_analyze.c (analyze_dkmounts, analyze_mounts,
157         analyze_mounts): avoid potential dereferencing of a NULL pointer
158         (Coverity).
159
160         * conf/transp/transp_sockets.c (create_amq_service): avoid
161         potential dereferencing of a NULL pointer (Coverity).
162
163         * amd/sched.c (sigchld): properly check for the end of the waiting
164         process list (Coverity).
165
166         * amd/mapc.c (mapc_create): initialize 'modify' to zero (Coverity).
167
168         * amd/autil.c (amfs_mkcacheref, am_unmounted): avoid potential
169         dereferencing of a NULL pointer (Coverity).
170
171         * amd/amfs_generic.c (amfs_lookup_mntfs): free def_opts before
172         reusing it (memory leak bug detected by Coverity).
173         (amfs_bgmount): avoid potential dereferencing of a NULL pointer
174         (Coverity).
175
176         * amd/am_ops.c (merge_opts): no need to check if newstr is NULL
177         (bug detected by Coverity).
178
179 2006-03-08  Ion Badulescu  <ionut@moisil.badula.org>
180
181         * amd/nfs_subr.c (mp_to_fh): fixed old-style filehandles--the pid
182         comparison was failing.
183
184 2006-03-08  Erez Zadok  <ezk@cs.sunysb.edu>
185
186         * configure.in: properly test for either <gdbm/ndbm.h> or
187         <gdbm-ndbm.h> (unfortunately, Autoconf will map both names to the
188         same $ac_cv_* variable name).  Some systems support one header or
189         another.  Patch inspired by work Debian did.
190
191 2006-02-10  Erez Zadok  <ezk@cs.sunysb.edu>
192
193         *******************************************************************
194         *** Released am-utils-6.1.4                                     ***
195         *******************************************************************
196
197 2006-01-04  Erez Zadok  <ezk@cs.sunysb.edu>
198
199         * doc/am-utils.texi (auto_attrcache Parameter): revise discussion
200         to mention pros and cons of turning on/off this parameter,
201         including impact on Amd's performance, and ways to improve
202         performance while minimizing the window of vulnerability in which
203         kernel may return the wrong (cached) attributes.
204
205 2006-01-02  Erez Zadok  <ezk@cs.sunysb.edu>
206
207         * updated copyright year to 2006 on all files.
208
209 2005-12-20  Erez Zadok  <ezk@cs.sunysb.edu>
210
211         * include/am_utils.h, conf/transp/transp_tli.c (amu_svc_register,
212         register_autofs_service): use a consistent prototype for the
213         dispatch function of the autofs service de/registration functions.
214
215 2005-12-03  Erez Zadok  <ezk@cs.sunysb.edu>
216
217         * minor new ports: i386-unknown-netbsdelf2.1,
218         i386-unknown-netbsdelf3.0 (RELEASE), and i386-unknown-openbsd3.8.
219
220 2005-12-02  Erez Zadok  <ezk@cs.sunysb.edu>
221
222         * m4/macros/check_field.m4: remove double inclusion of msdosfs
223         headers, which are included in mount_header1.h (netbsd 2.1 doesn't
224         protect <msdosfs/msdosfsmount.h> which causes compile errors).
225
226 2005-11-08  Erez Zadok  <ezk@cs.sunysb.edu>
227
228         * minor new port: i386-unknown-freebsd6.0 (RELEASE)
229
230 2005-10-26  Erez Zadok  <ezk@cs.sunysb.edu>
231
232         * amd/amq_subr.c (amqproc_pawd_1_svc): repeatedly resolve path in
233         Amd, not in pawd (to avoid repeated network RPCs).
234
235         * amq/pawd.c (transform_dir): move repeated path resolution into Amd.
236
237 2005-10-25  Erez Zadok  <ezk@cs.sunysb.edu>
238
239         * amq/pawd.c (transform_dir): resolve path repeatedly until
240         finished.  Bug fix from Jonathan Chen <jon+amd-at-spock.org>.
241         Added safety check to prevent infinite loops.
242
243 2005-10-19  Erez Zadok  <ezk@cs.sunysb.edu>
244
245         * doc/am-utils.texi (opts Option): document new pcfs options
246         longname, nowin95, shortname, user=N, group=N, mask=N, and
247         dirmask=N.
248
249         * amd/ops_pcfs.c (mount_pcfs): process new pcfs options longname,
250         nowin95, shortname, user=N, group=N, mask=N, and dirmask=N.
251
252         * include/am_compat.h: provide compatibility mnttab string names,
253         if needed, for pcfs mount options longname, nowin95, shortname,
254         user=N, group=N, mask=N, and dirmask=N.
255
256         * include/am_utils.h: extern for hasmntstr().
257
258         * libamu/mtab.c (hasmntstr): new function to return the string
259         value following a mount option, up to the next comma-delimited
260         options.
261
262         * configure.in: check for mnttab and pcfs options longname,
263         nowin95, and shortname.
264
265         * Makefile.am (EXTRA_DIST_M4): distribute new macro
266         check_mnt2_pcfs_opt.m4.
267
268         * m4/macros/check_mnt2_pcfs_opt.m4: new macro to check for pcfs
269         mnttab and mount options.
270
271 2005-10-18  Erez Zadok  <ezk@cs.sunysb.edu>
272
273         * libamu/mount_fs.c (print_nfs_args): print nfs_args->addr
274         correctly, depending if it's a pointer or not.
275
276         * conf/sa_dref/sa_dref_*.h: for each NFS_SA_DREF macro, also
277         #define NFS_ARGS_T_ADDR_IS_POINTER if nfs_args->addr is a pointer
278         or an embedded structure, so we can tell how to print it.
279
280         * libamu/mount_fs.c (print_nfs_args): print nfs_args->addrlen
281         field, if it exists.
282
283         * configure.in: check for nfs_args->addrlen field.
284
285         * wire-test/wire-test.c (main), libamu/mount_fs.c
286         (print_nfs_args), fixmount/fixmount.c (inetresport,
287         clnt_create_timeout), amq/pawd.c (transform_dir), amq/amq.c
288         (main), amd/srvr_nfs.c (find_nfs_srvr), amd/autil.c
289         (amfs_mount): document that as per POSIX, we don't need to set the
290         sa_len/sin_len fields in struct sockaddr/sockaddr_in.  The field
291         is used only internally in the kernel.  See
292         www.awprofessional.com/articles/article.asp?p=169505&seqNum=2&rl=1
293
294         * fixmount/fixmount.c (inetresport): initialize sockaddr_in
295         structure before filling in some fields.
296
297 2005-10-11  Erez Zadok  <ezk@cs.sunysb.edu>
298
299         * doc/am-utils.texi (nfs_vers, nfs_proto parameters): clarify and
300         correct mistaken description of nfs_proto.
301
302 2005-10-10  Erez Zadok  <ezk@cs.sunysb.edu>
303
304         *******************************************************************
305         *** Released am-utils-6.1.3                                     ***
306         *******************************************************************
307
308 2005-10-07  Erez Zadok  <ezk@cs.sunysb.edu>
309
310         * m4/macros/check_mnttab_type.m4: move the test for MOUNT_* to the
311         very end, after the test using getvfsbyname().
312
313         * m4/macros/expand_run_string.m4: if the string value returned is
314         empty, consider it invalid.
315
316         * m4/macros/check_varargs_macros.m4: rewrite macro so it'll
317         try and compile the varargs test, not just cpp it.  Some systems
318         pass the old cpp test, but not when you actually try to compile
319         the code (Tru64's cc).
320
321         * conf/autofs/autofs_solaris_v1.h: redefine
322         autofs_strdup_space_hack as a macro to str3cat(NULL,(s)," ","").
323         This works everywhere and we avoid linking problems, inline
324         functions, etc.
325
326         * conf/autofs/autofs_solaris_v1.c (autofs_mount_fs): remove
327         autofs_strdup_space_hack() function altogether.
328
329         * m4/macros/os_cflags.m4: remove hack that hardcodes pte_t=u_int.
330
331         * configure.in: test for <sys/immu.h> header.
332         Test for pte_t, but only on IRIX6 systems.
333
334         * Makefile.am (EXTRA_DIST_M4): distribute new type_pte_t.m4 file.
335
336         * m4/macros/type_pte_t.m4: new test for existence of pte_t
337         typedef, needed on some IRIX-6.5/gcc systems.
338
339         * m4/macros/header_templates.m4: add missing templates for
340         HAVE_EXTERN_GETDTABLESIZE, HAVE_EXTERN_GETWD, and
341         HAVE_EXTERN_UALARM.
342
343         * amd/info_exec.c (exec_map_open): break assignment from inside
344         conditional, to work around an IRIX-6.5 cc bug.
345
346         * fsinfo/fsi_util.c (set_ether_if), amd/map.c (unmount_mp),
347         libamu/xutil.c (expand_error), libamu/strutil.c (xsnprintf): avoid
348         comparison between signed and unsigned integers.
349
350         * conf/autofs/autofs_solaris_v1.h, conf/autofs/autofs_solaris_v1.c
351         (autofs_strdup_space_hack): move "space_hack" function from static
352         inline in header, into the only source file that needs it.  This
353         is cleaner and also prevents linking problem with some compilers
354         that won't apply CPP macros inside static inline functions (for
355         the strl* functions).
356
357         * amq/pawd.c (find_mt, find_mlp): remove obsolete, inefficient
358         code.
359         (transform_dir): call the new, efficient amqproc_pawd_1() routine.
360
361         * amq/amq_clnt.c (amqproc_pawd_1): AMQPROC_PAWD wrapper routine.
362
363         * amq/amq.h (amqproc_pawd_1): extern for amq's AMQPROC_PAWD
364         wrapper routine.
365
366         * amd/amq_svc.c (amq_program_1): dispatch point for
367         amqproc_pawd_1_svc.
368
369         * amd/amq_subr.c (amqproc_pawd_1_svc): moved pawd's path-matching
370         functionality into Amd, where it can be done a lot more
371         efficiently.  We don't have to construct and ship a whole export
372         tree from Amd to pawd.  We just get a variable-length
373         xdr_wrapstring for the user's path, iterate over the entire export
374         list inside Amd, and return only a matched string if found
375         (otherwise we return "" to indicate that there was no match, and
376         let pawd printf the same string it sent over).
377
378         * amd/amd.h: extern for amqproc_pawd_1_svc, amd's service routine
379         the AMQPROC_PAWD RPC.
380
381 2005-10-06  Erez Zadok  <ezk@cs.sunysb.edu>
382
383         * ltmain.sh, m4/macros/libtool.m4: update to libtool-1.5.20.
384         Fixes Tru64 bugs when using ksh.
385
386         * amd/amfs_toplvl.c (amfs_toplvl_mount): break complex ifdef macro
387         into two sections, to workaround a C99 varargs-macro bug in
388         gcc-3.2.2 (RH9).
389
390         * libamu/wire.c (print_wires): convert argument-less xsnprintf to
391         xstrlcpy.
392
393         * include/am_utils.h: use new HAVE_C99_VARARGS_MACROS or
394         HAVE_GCC_VARARGS_MACROS to pass file name and line number to
395         xsnprintf/xvsnprintf.
396
397         * libamu/strutil.c (xsnprintf, xvsnprintf): if debugging is on,
398         then also print the source file name and line number that called
399         xsnprintf/xvsnprintf with a buffer that wasn't large enough (most
400         likely an am-utils bug).
401
402         * Makefile.am (EXTRA_DIST_M4): distribute new
403         check_varargs_macros.m4 file.
404
405         * configure.in: execute new AMU_VARARGS_MACROS test.
406
407         * m4/macros/check_varargs_macros.m4: new test to check what style
408         of variable-length argument macros, if any, does the
409         compiler/pre-processor supports.
410
411         * conf/autofs/autofs_solaris_v2_v3.c (autofs_lookup_2_req)
412         conf/autofs/autofs_solaris_v1.c (autofs_mount_1_req), amd/opts.c,
413         amd/nfs_subr.c (nfsproc_lookup_2_svc), amd/nfs_start.c
414         (mount_automounter), amd/get_args.c (get_args), amd/amfs_toplvl.c,
415         amd/amfs_auto.c (amfs_auto_mount), amd/amd.h, amd/amd.c (main):
416         use sizeof() instead of fixed SIZEOF_* macros.
417
418         * libamu/strutil.c (xstrlcat, xstrlcpy), include/am_utils.h
419         (DEBUG): if debugging is on, then also print the source file name
420         and line number that called xstrl* with a buffer that wasn't large
421         enough (most likely an am-utils bug)
422
423         * include/am_compat.h (INADDR_NONE): define in a common location,
424         if OS doesn't have it, use 0xffffffffU which should work with any
425         ANSI compiler.
426
427         * fixmount/fixmount.c, libamu/wire.c: remove local definition of
428         INADDR_NONE.
429
430         * amd/amfs_toplvl.c (amfs_toplvl_mount), amd/amfs_auto.c
431         (amfs_auto_mount): use common SIZEOF_OPTS in definition and call
432         to autofs_get_opts.
433
434         * amd/amd.h (SIZEOF_OPTS): moved #define to common header.
435
436 2005-10-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
437
438         * amd/opts.c (expand_op): Need to check BUFSPACE for env for
439         vlen+1.  Likewise for cp and strlen(cp)+1.
440
441         * amd/amfs_toplvl.c (amfs_toplvl_mount) [HAVE_FS_AUTOFS]: Pass new
442         size argument to autofs_get_opts.
443
444 2005-10-05  Erez Zadok  <ezk@cs.sunysb.edu>
445
446         * amq/pawd.c (transform_dir): was using UDP only.  Now will also
447         try TCP if UDP failed.  Destroy client after use to avoid leftover
448         TCP sockets in the kernel.
449
450         * libamu/hasmntopt.c (amu_hasmntopt): increase size of MNTMAXSTR
451         from 128 to to 256, because some users have really long option
452         strings.  Suggestion from jon+amd-at-spock.org.
453
454         * amd/opts.c (expand_op): should check BUFSPACE for vlen+1, not
455         just vlen.  Bug discovered when started using xstrlcpy().
456
457         * ALL: convert from using strcat to the safer xstrlcat, and from
458         strcpy to safer xstrlcpy.
459
460 2005-10-04  Erez Zadok  <ezk@cs.sunysb.edu>
461
462         * hlfsd/hlfsd.h: remove old fatalerror() and ERRM macros.
463
464         * hlfsd/hlfsd.c (fatalerror): new function instead of macro.
465         Easier to use xstrlcat in this new function.
466
467         * amd/amd.h, include/am_utils.h, amd/amd.c: moved 'hostd' extern
468         from am_utils.h to amd.h, and define its size as a macro that
469         could be passed to xstrl*().
470
471         * ALL: convert from using sprintf to the safer xsnprintf.
472
473         * mk-amd-map/Makefile.am (LDADD): link with libamu to get
474         xsnprintf().
475
476         * amd/amd.h, amd/amd.c, include/am_utils.h: moved pid_fsname
477         extern from am_utils.h to amd.h, and define its size as a macro
478         that could be passed to xsnprintf().
479
480 2005-10-02  Erez Zadok  <ezk@cs.sunysb.edu>
481
482         * include/am_utils.h: extern for xvsnprintf().
483
484         * amd/autil.c: move strsplit() to libamu/strutil.c.
485
486         * libamu/Makefile.am: use strutil.c, not util.c.
487
488         * libamu/strutil.c: rename from util.c to explain better purpose
489         of file.  Move xvsnprintf and xsnprintf from xutil.c to this
490         file.  Sync up with 6.2 version of file.
491
492         * libamu/xutil.c: explain purpose of file.  Move mkdirs/rmdirs
493         code from old util.c.
494
495 2005-10-01  Erez Zadok  <ezk@cs.sunysb.edu>
496
497         * m4/macros/header_templates.m4: templates for FFS.
498
499         * m4/macros/check_mnttab_type.m4: on BSD44 systems, check for file
500         system mount table name via the MOUNT_* mount(2) macros (because
501         BSD44 keeps the mount table in the kernel).
502
503         * configure.in: synchronise order of searching for mnttab entries
504         and mount names.  The new order is "ext3 ext2 ffs ufs 4.2 4.3 4.4
505         efs xfs jfs ultrix" (which would prefer ffs on BSD44 instead of
506         ufs, and ext3 instead of ext2 on Linux).
507
508         * include/am_defs.h: include <sys/statvfs.h> if it exists.
509
510         * conf/nfs_prot/nfs_prot_netbsd1_4.h: NetBSD 3 has both statfs()
511         and statvfs(), but the latter is preferred, so #define to use
512         statvfs.
513
514         * configure.in: check for statfs(), statvfs(), and
515         <sys/statvfs.h>.
516
517         * config.guess.long: strip trailing '.' on "netbsdelf3.0."
518         (Beta).  Workaround for bug in config.guess.
519
520         * config.{guess,sub}: update to latest versions.
521
522 2005-09-30  Christos Zoulas  <christos@zoulas.com>
523
524         * fsinfo/fsi_util.c (set_ether_if): use INADDR_NONE instead of
525         hard-coded value of -1.
526
527         * include/amq_defs.h (AMQ_STRLEN): increase default size from 2KB
528         to 16KB.  We can afford it these days.
529
530         * libamu/strcasecmp.c (strcasecmp): use unsigned chars in
531         tolower() to avoid sign/size promotion bugs.
532
533         * libamu/xutil.c (switch_to_logfile): don't output to LOG_CONS by
534         default (it's unfriendly).  If user really wants to, they can set
535         it in /etc/syslog.conf.
536
537 2005-09-29  Erez Zadok  <ezk@cs.sunysb.edu>
538
539         * amq/pawd.c (find_mt): if the auto mount type is used, pawd could
540         go into an infinite loop since the mt_directory and mt_mountpoint
541         fields are the same for auto mounts.  Solution: ignore type auto
542         mounts, similar to toplvl.  Bug fix from Jonathan Chen
543         <jon+amd@spock.org>.
544
545         * README.attrcache: document test-attrcache script.
546
547         * scripts/Makefile.am (noinst_SCRIPTS): build test-attrcache
548         script.
549
550         * configure.in: build scripts/test-attrcache script and chmod it
551         so it can be executed in place.
552
553         * scripts/test-attrcache.in: script to test the NFS attribute
554         cache using Amd.
555
556 2005-09-26  Erez Zadok  <ezk@cs.sunysb.edu>
557
558         * libamu/xutil.c (unregister_amq): repair broken meaning of D_AMQ,
559         which was reversed in am-utils-6.2.  Bug fix from Steve Plite
560         <splite-amutils at sigint.cs.purdue.edu>.
561
562         * hlfsd/stubs.c (nfsproc_getattr_2_svc, nfsproc_lookup_2_svc,
563         nfsproc_readlink_2_svc, nfsproc_readdir_2_svc), hlfsd/hlfsd.c
564         (hlfsd_init): use new clocktime() function.
565
566 2005-09-18  Erez Zadok  <ezk@cs.sunysb.edu>
567
568         *******************************************************************
569         *** Released am-utils-6.1.2.1                                   ***
570         *******************************************************************
571
572         * README.attrcache: Update status of freebsd and openbsd.
573         Document netbsd's patchs to support noac.
574
575         * libamu/mount_fs.c (compute_nfs_attrcache_flags): cleanup the
576         code that sets the ac{reg,dir}{min,max} fields so it also sets the
577         appropriate nfs_args->flags such as MNT2_NFS_OPT_ACREGMIN.
578
579         * configure.in: check for nfs_args fields acregmax and acdirmax.
580
581         *******************************************************************
582         *** Released am-utils-6.1.2                                     ***
583         *******************************************************************
584
585         * README.attrcache: new file documenting in detail OS bugs
586         relating to attribute caching, which can affect Amd's reliability
587         under heavy load.
588
589         * doc/Makefile.am: install README.attrcache file as attrache.txt
590         file on am-utils Web site.
591
592         * Makefile.am (EXTRA_DIST): include README.attrcache in distro.
593
594         * BUGS, NEWS, doc/am-utils.texi (auto_attrcache Parameter),
595         scripts/amd.conf.5, scripts/amd.conf-sample: document attribute
596         cache bugs on some OSs.
597
598 2005-09-17  Erez Zadok  <ezk@cs.sunysb.edu>
599
600         * libamu/xutil.c (clocktime): newly implemented routine.  Uses
601         gettimeofday() each time to return a high-resolution clock time,
602         and does not "cache" the last time.  Returns time in seconds, just
603         like the old implementation.  If passed a non-null argument, will
604         fill it in with the current time in seconds+microseconds.
605
606         * libamu/xutil.c: remove actual declaration of clock_valid, and
607         another never-used declaration for xclock_valid.
608
609         * include/am_utils.h: remove defunct definition of clocktime()
610         macro and clock_valid variable.  Add extern for new definition.
611
612         * libamu/mount_fs.c (mount_fs), hlfsd/homedir.c (homedir,
613         hlfsd_diskspace, hlfsd_getpwent, plt_reset, table_add),
614         hlfsd/hlfsd.c (main, hlfsd_init, reload, cleanup),
615         conf/mtab/mtab_mach3.c (open_locked_mtab), conf/mtab/mtab_file.c
616         (open_locked_mtab), amd/nfs_start.c (do_select, run_rpc),
617         amd/autil.c (host_normalize): remove defunct clock_valid.
618
619         * amd/nfs_subr.c (nfsproc_getattr_2_svc): Print microseconds for
620         node's mtime.
621         (fh_to_mp3): use new clocktime() to update mtime and get a better
622         time resolution.
623
624         * amd/mapc.c (mapc_reload_map): change prototype from returning
625         void to returning an int.  If reloading was needed and succeeded,
626         return 1; else return 0.
627         (mapc_sync): update mtime of parent node if needed.  This is a
628         CRITICAL FIX, to ensure that the kernel flushes its DNLC/dcache
629         when we run "amq -f" manually or when a map is reloaded.
630
631         * amd/map.c (new_ttl): update am_ttl and na_atime in one shot.
632         (init_map): use new clocktime().
633         (unmount_mp): if the OS doesn't support a "symttl" option, then
634         update the mtime of the parent node using the clocktime(); but if
635         the time hasn't gotten changed because of rapid Amd accesses on
636         systems that don't have a micro-second NFS-client resolution, then
637         increment mtime by one arbitrarily (this could, on some systems
638         and under pathological cases, result in mtime's that are in the
639         future).
640
641         * amd/autil.c (forcibly_timeout_mp): MAJOR BUG FIX: force mtime
642         update of parent dir, to prevent DNLC/dcache from caching the old
643         entry, which could result in ESTALE errors, bad symlinks, and
644         more.
645         (am_mounted): record mount time, and update am_stats at the same
646         time, using the double-action redone clocktime() routine.
647         (am_mounted): update parent's mtime from that of the child.
648         (am_unmounted): when unmounting an entry, update mtime of parent
649         node.
650
651         * amd/amfs_generic.c (amfs_bgmount): now that clocktime() doesn't
652         remember it's last non-zero value, save it in a temporary variable
653         to avoid a TOCTOU problem (between an "if" and a "dlog").
654
655         * libamu/xutil.c (show_time_host_and_name),
656         conf/autofs/autofs_linux.c (autofs_mounted, autofs_timeout_mp),
657         amd/srvr_nfs.c (nfs_keepalive_callback, nfs_keepalive_timeout)
658         (find_nfs_srvr), amd/rpc_fwd.c (fwd_alloc), amd/nfs_subr.c
659         (nfsproc_getattr_2_svc), amd/nfs_start.c (do_select, run_rpc),
660         amd/mapc.c (root_init), amd/map.c(map_flush_srvr, timeout_mp),
661         amd/info_ndbm.c (ndbm_init), amd/info_ldap.c (amu_ldap_rebind),
662         amd/info_file.c (file_open), amd/info_exec.c (fgets_timed,
663         exec_search), amd/clock.c (timeout, softclock), amd/autil.c
664         (forcibly_timeout_mp), amd/amfs_generic.c (amfs_retry,
665         amfs_bgmount, amfs_generic_mount_child), amd/amd.c (main): pass
666         NULL to clocktime().
667
668 2005-09-07  Erez Zadok  <ezk@cs.sunysb.edu>
669
670         * minor new port: powerpc-apple-darwin8.2.0.
671
672         * m4/macros/type_auth_create_gidlist.m4: Old macosx used "gid_t"
673         but all newer ones (10.4+) use int.
674
675         * m4/macros/type_recvfrom_fromlen.m4: Old macosx used "int" for
676         6th arg of recvfrom(), but all newer ones (10.4+) use socklen_t.
677
678         * minor new port: i386-pc-linux-deb3.1.
679
680 2005-09-02  Erez Zadok  <ezk@cs.sunysb.edu>
681
682         * conf/mount/mount_linux.c: If autoconf didn't find any disk-based
683         file system on this system (probably because /proc isn't mounted),
684         then provide some default definition for this file to compile.
685
686 2005-08-27  Erez Zadok  <ezk@cs.sunysb.edu>
687
688         * Makefile.am (DISTCLEANFILES): also remove amu_autofs_prot.h,
689         config.cache.old, and dbgcf.h on "make distclean".
690         (CLEANFILES): remove dbgcf on plain "make clean".
691
692         * amd/Makefile.am (DISTCLEANFILES): also remove ops_autofs.c on
693         "make distclean".
694
695 2005-08-24  Erez Zadok  <ezk@cs.sunysb.edu>
696
697         * configure.in: wrap all LDAP and HESIOD tests in test whether
698         --with-OPT was used.
699
700 2005-08-16  Erez Zadok  <ezk@cs.sunysb.edu>
701
702         * configure.in: sinclude([vers.m4]) version number file.
703
704         * vers.m4: new file to separate version number out of
705         configure.in, useful for nightly snapshot script to generate
706         nightly version string.
707
708         * Makefile.am (EXTRA_DIST_M4): include vers.m4 in distro.
709
710 2005-08-11  Erez Zadok  <ezk@cs.sunysb.edu>
711
712         * configure.in: keep AC_INIT on same line, for nightly snapshot
713         build script.
714
715 2005-08-06  Erez Zadok  <ezk@cs.sunysb.edu>
716
717         * scripts/amd.conf.5: selectors_in_defaults is a common parameter,
718         not just [global].  Use consistent capitalization of Amd/Amq.
719
720         * scripts/amd.conf-sample: properly list all of the parameters
721         which are common to both the [global] and the per-map sections.
722
723         * doc/am-utils.texi (Common Parameters): selectors_in_defaults is
724         a common parameter, not just [global].
725
726         * scripts/amd.conf-sample (sun_map_syntax): example of new flag.
727
728         * cvs-server.txt: update instructions after branching 6.1-stable.
729
730 2005-08-02  Erez Zadok  <ezk@cs.sunysb.edu>
731
732         *******************************************************************
733         *** Released am-utils-6.1.1                                     ***
734         *******************************************************************
735
736         * libamu/xutil.c (xsnprintf): "unsafe" alternative to vsnprintf is
737         vsprintf, not sprintf.
738
739         * conf/umount/umount_osf.c (umount_fs): refer to proper formal
740         parameter name.
741         (umount2_fs): pass second arg to umount().
742
743         * ALL: remove CVS ID and put actual file name in source.
744
745         * conf/autofs/*.[hc]: proper copyright headers.
746
747         * whitespace reformatting.  Remove remaining '%W%' SCCS IDs.
748
749         * amd/mntfs.c (free_mntfs): don't discard the last reference to an
750         mntfs that had been mounted already.  It won't have the
751         MFF_RESTARTED flag on, as it gets turned off after the entry is
752         mounted, but it will have the MFF_RSTKEEP flag on.
753
754         * amd/autil.c (mf_mounted), amd/restart.c (restart_fake_mntfs):
755         show the mntfs's flags.
756
757 2005-08-01  Erez Zadok  <ezk@cs.sunysb.edu>
758
759         * conf/mtab/mtab_linux.c: removed unused code.  Cleanup.
760         (handler): removed this bad signal handler.
761         (lock_mtab): Redhat's original code set a signal handler called
762         "handler()" for all non-ALRM signals.  The handler called
763         unlock_mntlist(), plog'ed the signal name, and then exit(1)!
764         Never, ever, exit() from inside a utility function.  This messed
765         up Amd's careful signal-handling code, and caused Amd to abort
766         uncleanly only any other "innocent" signal
767         (even simple SIGUSR1), leaving behind a hung Amd mnt point.  That
768         code should have at least restored the signal handlers' states
769         upon a successful mtab unlocking.  Anyway, that handler was
770         unnecessary, because will call unlock_mntlist() properly anyway on
771         exit.
772
773         * conf/mtab/mtab_{file,isc3,mach3,linux}.c (unlock_mntlist): dlog
774         message that we're inside the unlock_mntlist function.
775
776         * amd/amd.c (main): use new setup_sighandler() for Amd's four main
777         signals (INT, TERM, HUP, and CHLD).
778         (main) Add SIGINT and SIGTERM to masked_sigs, used in
779         nfs_start.c:do_select() for setjmp/longjmp code; the MASK was set
780         to all four signals if !HAVE_SIGACTION, but only to HUP+CHLD if we
781         HAVE_SIGACTION.  So this change makes Amd behave consistently.
782
783         * include/am_utils.h: extern for new setup_sighandler().
784
785         * libamu/xutil.c (setup_sighandler): new utility function to setup
786         a single signal-handler regardless of what method is supported by
787         this OS.
788         (going_down): call unlock_mntlist() when exiting, to ensure that
789         Amd will remove any leftover mtab lock files, if any.
790
791         * amd/restart.c (restart_automounter_nodes): cleanup function.
792
793         * minor new port: i386-pc-linuxoldld-deb3.1.
794
795         * configure.in: include <sys/types.h> before <linux/socket.h> to
796         get the definition of size_t on Debian-3.1r0a.
797
798 2005-07-29  Erez Zadok  <ezk@cs.sunysb.edu>
799
800         * amd/srvr_nfs.c (find_nfs_srvr): don't blindly copy the hostent
801         IP address.  First check if it differs from the existing one of
802         the fserver, and copy only if it changed.  If it did change, flush
803         the fhandle cache to avoid a stale fhandle being reused.  This
804         allows Amd to detect IP address changes even for an fserver that
805         lost one or more NFS pings, but not enough to be declared totally
806         down.  We handle the "totally down" fserver case in
807         check_fs_addr_change().
808
809         * amd/ops_nfs.c (nfs_umount), amd/sched.c (sched_task),
810         amd/nfs_subr.c (nfs_quick_reply): code clarity.
811
812         * conf/mount/mount_linux.c (linux_nfs_error): dlog mappings of
813         errnos to NFS errors.
814
815         * conf/umount/umount_linux.c (umount2_fs): cleanup code.  Trying
816         stat() seems doomed to hang at times, so don't try stat at all,
817         because umount2() appears to be clever enough to never hang.
818
819 2005-07-25  Erez Zadok  <ezk@cs.sunysb.edu>
820
821         * amd/amd.h (FSF_FORCE_UNMOUNT): new flag used to indicate that a
822         particular fserver may need forced/lazy unmounts when it's mntfs's
823         are unmounted.
824
825         * amd/ops_nfs.c (nfs_umount): a simple unmount returned EBUSY, and
826         the user specified forced_unmounts=yes in amd.conf, and this
827         fserver was flagged with FSF_FORCE_UNMOUNT, and the OS supports
828         forced/lazy unmounts, then try forced/lazy unmounts.  This should
829         allow a hung mount point to be removed.
830
831         * amd/srvr_nfs.c (find_nfs_srvr): move away IP-address change
832         detection code to its own function.
833         (check_fs_addr_change): new function to detect if the IP address
834         of a downed host has changed, and do various cleanups and fixups
835         to try and recover as best from that situation (e.g., flushing
836         various caches).  Also set the FSF_FORCE_UNMOUNT flag for the
837         fserver in question.
838         (flush_srvr_nfs_cache): pass fserver as argument, so we can
839         selectively flush the NFS cache for a single fserver (or all of
840         them, if you pass NULL).
841
842         * libamu/xutil.c (switch_to_logfile): truncate a regular-file log
843         file if user passed non-zero "truncate_log" flag.
844
845         * include/am_utils.h: switch_to_logfile() now takes a 3rd arg.
846
847         * amd/get_args.c (get_args): pass "truncate_log" flag as per
848         amd.conf global settings.
849
850         * amd/conf.c (gopt_truncate_log): store global value of
851         truncate_log flag.
852
853         * amd/amq_subr.c (amqproc_setopt_1_svc), hlfsd/hlfsd.c (main,
854         reload): don't truncate log file when calling switch_to_logfile().
855
856         * amd/amd.h (CFM_TRUNCATE_LOG): new flag.  Fix comment typo.
857
858         * NEWS, doc/am-utils.texi (truncate_log Parameter),
859         scripts/amd.conf.5, scripts/amd.conf-sample (log_file): document
860         new truncate_log amd.conf parameter.
861
862         * amd/conf.c (gopt_forced_unmounts): check Linux kernel version
863         and alert if your version may be too old for MNT_FORCE to work
864         (before 2.4.0) or for MNT_DETACH to work (before 2.6.0).
865         Otherwise it may be impossible to pin down the exact kernel
866         version in which we should enable this feature.
867
868         * conf/umount/umount_linux.c (umount2_fs): if MNT_FORCE returned
869         EBUSY, then don't try to stat(2) before MNT_DETACH because it
870         could hang.
871
872 2005-07-21  Erez Zadok  <ezk@cs.sunysb.edu>
873
874         * conf/umount/umount_linux.c (umount_fs): cleanup this function,
875         breaking long "if" statements using "goto out".
876
877         * conf/umount/umount_{aix,bsd44,osf,default,linux}.c (umount_fs):
878         call new utility function umount2_fs() as needed (EBUSY, EIO, or
879         ESTALE).
880
881         * conf/umount/umount_{aix,bsd44,osf,default,linux}.c (umount2_fs):
882         define a new utility function to invoke forcible/lazy unmounts
883         without touching any mtab files.  This separate utility function
884         is useful because it can be called from elsewhere.
885
886         * amd/amfs_toplvl.c (amfs_toplvl_init): new function, called
887         before Amd mounts toplvl mounts, which gives us a hook for cleanup
888         of a previously dead Amd.  In our case, if the user asked for
889         forced_unmounts, and the OS supports it, then we try forced/lazy
890         unmounts on any previous toplvl mounts.  This is useful if a
891         previous Amd died and left behind toplvl mount points (this Amd
892         will clean them up!).  WARNING: Don't use forced/lazy unmounts if
893         you have another valid Amd running, because this code WILL force
894         those valid toplvl mount points to be detached as well!
895
896         * amd/amfs_toplvl.c (amfs_toplvl_umount): don't unconditionally
897         try forced/lazy unmounts because it will prevent a normal Amd from
898         terminating and cleaning up properly (self-deadlocking: detached
899         mounts hang the parent Amd on a stat).  Since we already do
900         unmounts in the background, then try a safer policy: after trying
901         the normal unmounts a few times (5 sec), escalate and try forced
902         unmounts a few times (5 more seconds), and if even that failed,
903         then try the ultimate -- detached unmounts (which always succeed).
904         This allows Amd to first try and shutdown cleanly, and gradually
905         try more forcible ways to shutdown.  On Linux, this procedure will
906         cleanly shutdown Amd even if there are processes with their CWD on
907         Amd's mount points (which normally result in EBUSY).
908
909 2005-07-20  Erez Zadok  <ezk@cs.sunysb.edu>
910
911         * Makefile.am (EXTRA_DIST_CONF): add new umount_aix.c to distro.
912
913         * conf/umount/umount_aix.c: easier if AIX has its own unmount
914         helper file.
915
916         * m4/macros/check_umount_style.m4: AIX needs its own unmount style
917         file.
918
919         * doc/am-utils.texi (forced_unmounts Parameter): @xref -> @pxref.
920
921 2005-07-19  Erez Zadok  <ezk@cs.sunysb.edu>
922
923         * conf/nfs_prot/nfs_prot_aix5_2.h: define compatible
924         forced-unmount flag.
925
926         * conf/umount/umount_default.c (umount_fs): if regular umount got
927         EBUSY, EIO, or ESTALE, then try forced unmount, if supported.  Try
928         umount2 (Solaris) or uvmount (AIX).
929
930         * conf/umount/umount_{bsd44,osf}.c (umount_fs): if default
931         umount() failed with EIO or ESTALE, also try forced unmount.
932
933 2005-07-18  Erez Zadok  <ezk@cs.sunysb.edu>
934
935         * amd/autil.c (amfs_mount), amd/amfs_toplvl.c
936         (amfs_toplvl_umount): enable forced/lazy unmounts only if user
937         asked for it (and dlog it).
938
939         * scripts/amd.conf.5: document new force_unmount global parameter.
940
941         * doc/am-utils.texi (forced_unmounts Parameter): document new
942         global parameter.
943
944         * amd/conf.c (gopt_forced_unmounts): process forced_unmounts
945         option (default "no").  Exit with an error if user specified the
946         option as "yes" but configure couldn't find support for either the
947         MNT_FORCE or MNT_DETACH flags.
948
949         * scripts/amd.conf-sample (forced_unmounts): example usage of new
950         option.
951
952         * amd/amd.h (CFM_FORCED_UNMOUNTS): new flag for forced_unmounts
953         option.
954
955         * m4/macros/header_templates.m4: templates for _DETACH and _FORCE.
956
957         * configure.in: check for generic u/mount options "detach" and
958         "force".
959
960         * include/am_utils.h (UMOUNT_FS, umount_fs): new prototypes.
961         Define AMU_UMOUNT flags for force, detach, and autofs.
962
963         * amd/amfs_toplvl.c (amfs_toplvl_umount): pass _FORCE and _DETACH
964         unmount flags unconditionally.  Pass them to UMOUNT_FS().
965
966         * conf/nfs_prot/nfs_prot_linux.h: define MNT_FORCE and MNT_DETACH
967         if needed, because some Linux systems don't define them
968         (presumably because it would be too dangerous to expose these
969         flags to users).
970
971         * amd/autil.c (amfs_mount): if mount(2) failed with ESTALE or EIO,
972         then assume that we're in trouble, possibly because a previous
973         mount is hung.  So, first try to force a lazy unmount of the old
974         mount.  If the forced unmount worked, then try again to mount the
975         desired file system.  If the forced unmount failed, then don't
976         retry: just return an error.
977
978         * amd/amfs_generic.c (amfs_generic_umount), amd/amfs_host.c
979         (amfs_host_umount), amd/ops_cachefs.c (cachefs_umount),
980         amd/ops_cdfs.c (cdfs_umount), amd/ops_efs.c (efs_umount),
981         amd/ops_lofs.c (lofs_umount), amd/ops_nfs.c (nfs_umount),
982         amd/ops_pcfs.c (pcfs_umount), amd/ops_ufs.c (ufs_umount),
983         amd/ops_xfs.c (xfs_umount), conf/umount/umount_bsd44.c
984         (umount_fs), conf/umount/umount_default.c (umount_fs),
985         conf/umount/umount_linux.c (umount_fs), conf/umount/umount_osf.c
986         (umount_fs): compute and use unmount specific flags.
987
988 2005-07-16  Erez Zadok  <ezk@cs.sunysb.edu>
989
990         * configure.in: better help for users, if nfs_args can't be found.
991
992 2005-07-15  Erez Zadok  <ezk@cs.sunysb.edu>
993
994         * BUGS: more details on AIX's need to install bos.net.nfs.adt
995         before configuring am-utils (else configure cannot find struct
996         nfs_args on AIX).
997
998 2005-07-10  Erez Zadok  <ezk@cs.sunysb.edu>
999
1000         * amd/srvr_nfs.c (find_nfs_srvr): flush NFS handle cache if the IP
1001         address of a down server had changed.
1002
1003         * amd/info_union.c (union_reload): use safer xsnprintf() routine.
1004
1005         * amd/srvr_nfs.c (find_nfs_srvr): check to see if the IP address
1006         of a named but down fserver changed (i.e., the previous IP address
1007         is no longer responding).  If so, then reset the fserver to the
1008         new IP address, and set the fserver's flags such that the function
1009         will fall through to doing the usual NFS version/proto checks and
1010         pinging.  (This should fix one case of bug #308.)
1011
1012         * conf/umount/umount_linux.c (umount_fs): warn if plain umount()
1013         failed, before we try to ignore any errors or try optional
1014         umount2(), possibly with forced/lazy unmount.
1015         (umount_fs): dlog when unmount succeeded.
1016
1017 2005-07-08  Erez Zadok  <ezk@cs.sunysb.edu>
1018
1019         * conf/mount/mount_linux.c: add a couple more NFSv2 error codes
1020         that are compatible with NFSv3.
1021
1022 2005-07-07  Erez Zadok  <ezk@cs.sunysb.edu>
1023
1024         * m4/macros/header_templates.m4: extern template for strlcat().
1025
1026         * amd/get_args.c (get_version_string): use safer strlcat (or
1027         replacement strlcat).  Use new wrapper xsnprintf() function, which
1028         will use the safer vsnprintf() if available, else default to plain
1029         sprintf.
1030
1031         * configure.in: check for existence of strlcat() and its extern,
1032         replacing with libamu/strlcat.c as needed.
1033
1034         * libamu/Makefile.am (EXTRA_DIST): add strlcat.c to distro.
1035
1036         * include/am_defs.h: optional strlcat() extern.
1037
1038         * include/am_utils.h: extern for new xvsnprintf().
1039
1040         * configure.in: overdue new major libtool shlib version.
1041         Check for snprintf function and extern.
1042
1043 2005-07-06  Erez Zadok  <ezk@cs.sunysb.edu>
1044
1045         * conf/nfs_prot/nfs_prot_aix4_3.h: cleanup struct
1046         aix4_nfs_args_bis.
1047
1048         * Makefile.am (EXTRA_DIST_CONF): include mount_aix3.c in
1049         distribution.
1050
1051         * conf/mount/mount_aix.c: mount style for aix 5.x and newer.
1052
1053         * conf/mount/mount_aix3.c: mount styles for aix 3.x/4.x.
1054
1055         * m4/macros/check_mount_style.m4: split mount styles for
1056         aix3.x/4.x and the newer (and better) aix 5.x code.
1057
1058 2005-07-05  Erez Zadok  <ezk@cs.sunysb.edu>
1059
1060         * amq/pawd.c (getawd): avoid buffer overflow.  Bug fix from Graeme
1061         Wilford <G.Wilford@surrey.ac.uk>.
1062
1063 2005-06-30  Erez Zadok  <ezk@cs.sunysb.edu>
1064
1065         * amd/map.c (get_next_exported_ap): Avoid running off the end of
1066         the exported_ap[] array.  Patch from jon+amd-at-spock.org.  Fixed
1067         bug #301.
1068
1069 2005-06-25  Erez Zadok  <ezk@cs.sunysb.edu>
1070
1071         * Makefile.am (EXTRA_DIST_CONF): distribute new mtab_linux.c.
1072
1073         * conf/mtab/mtab_linux.c (rewrite_mtab): variable declarations
1074         must come before C code.
1075
1076         * conf/mtab/mtab_linux.c: Linux-specific mount table hanlding
1077         that's safe (uses locks, handles symlinks to /proc/mounts, etc.).
1078         Patch from Red Hat, which they adapted from mtab_file.c.  Minor
1079         fixes to this file.
1080
1081         * m4/macros/check_mnttab_style.m4: Use Linux-specific mount table
1082         handling.
1083
1084 2005-06-24  Erez Zadok  <ezk@cs.sunysb.edu>
1085
1086         * conf/mount/mount_aix.c (mount_aix3): minor cleanup of filehandle
1087         copying code.
1088
1089 2005-06-23  Erez Zadok  <ezk@cs.sunysb.edu>
1090
1091         * conf/nfs_prot/nfs_prot_hpux.h: add extern for h_errno, which may
1092         be missing from older hpux10 systems.
1093
1094         * configure.in: update bug-reporting address to list
1095         https://bugzilla.am-utils.org/ as well as the mailing list.
1096
1097         * Makefile.am (EXTRA_DIST_M4): distribute new type_rpcvers_t.m4
1098         macro.
1099
1100         * conf/transp/transp_tli.c (get_nfs_version): always use
1101         rpcvers_t, now that it'll be automatically discovered.
1102
1103         * configure.in: check for rpcvers_t type.
1104
1105         * m4/macros/type_rpcvers_t.m4: new macro to check for type of
1106         rpcvers_t (Some Solaris versions need it).
1107
1108         * conf/nfs_prot/nfs_prot_sunos5_8.h: don't define INADDR_NONE
1109         here, but in the actual source files that may need it.
1110
1111         * libamu/wire.c (INADDR_NONE): define INADDR_NONE if not defined
1112         already.
1113
1114         * include/am_defs.h: define extern for sleep(3) if needed.
1115
1116         * m4/macros/header_templates.m4: template for sleep(3) extern.
1117
1118         * configure.in: check for extern for sleep(3), which is missing
1119         from some old (and buggy) versions of gcc's fixinc'ed headers.
1120
1121         * conf/nfs_prot/nfs_prot_aix4_3.h: update definition of struct
1122         nfs_args from actual system headers.
1123
1124         * conf/mount/mount_aix.c (mount_aix3): fix name of aix4 "bis"
1125         structure.
1126
1127 2005-06-22  Erez Zadok  <ezk@cs.sunysb.edu>
1128
1129         * BUGS: update Solaris information about use of f/lex and
1130         yacc/bison.
1131
1132 2005-06-20  Erez Zadok  <ezk@cs.sunysb.edu>
1133
1134         * minor new port: i386-pc-linux-suse9.3.
1135
1136 2005-06-20  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1137
1138         * configure.in (linux/nfs_mount.h): Move __KERNEL__ definition up
1139         so u32 is available for <linux/sunrpc/msg_prot.h>.
1140
1141 2005-06-16  Erez Zadok  <ezk@cs.sunysb.edu>
1142
1143         * amd/mapc.c (maptypes): move MAP_EXEC after MAP_FILE, because
1144         exec maps will always match when users use amd with command line
1145         args (not amd.conf).  Using that legacy way, unfortunately, means
1146         that Amd will use it's hard-coded info-service search path, which
1147         doesn't work for everyone.  It's much better to use amd.conf and
1148         specify what you want exactly.
1149
1150 2005-06-15  Erez Zadok  <ezk@cs.sunysb.edu>
1151
1152         * minor new port: i386-pc-linux-fc4 (gcc4 catches more bugs).
1153
1154         * m4/macros/type_recvfrom_fromlen.m4: linux systems use unsigned
1155         int as the type of recvfrom()'s 6th argument.
1156
1157         * m4/macros/type_yp_order_outorder.m4: linux systems use unsigned
1158         int as the type of yp_order()'s 3rd argument.
1159
1160 2005-06-15  Erez Zadok  <ezk@cs.sunysb.edu>
1161
1162         * scripts/amd.conf-sample (map_type): typo, said mount_type
1163         instead of map_type for the 'exec' example.
1164
1165 2005-06-11  Erez Zadok  <ezk@cs.sunysb.edu>
1166
1167         *******************************************************************
1168         *** Released am-utils-6.1                                       ***
1169         *******************************************************************
1170
1171 2005-06-04  Erez Zadok  <ezk@cs.sunysb.edu>
1172
1173         * amd/ops_nfs.c (mount_nfs_fh): set timeo/retrans mount options
1174         only if the user specified them in amd.conf or elsewhere.  If they
1175         were not specified, don't do anything, which would let the OS use
1176         its own defaults.
1177
1178         * amd/get_args.c (get_args): negative timeo/retrans are "good" in
1179         that they represent uninitialized values (meaning to let the OS
1180         use it's default values).  So only check if user specified a value
1181         equal to zero (invalid).
1182
1183         * amd/amd.h: define AMU_TYPE_NONE so we know when users didn't
1184         specify timeo/retrans at all.
1185
1186 2005-06-03  Erez Zadok  <ezk@cs.sunysb.edu>
1187
1188         *******************************************************************
1189         *** Released am-utils-6.1-rc7                                   ***
1190         *******************************************************************
1191
1192         * m4/macros/os_cflags.m4 (CFLAGS): use custom-OS C flags for
1193         configuring, not just for building.  That way the two phases
1194         (configure and compile) are in sync.  This fixes getwire() on
1195         OSF/1 systems.
1196
1197         * conf/nfs_prot/nfs_prot_sunos5_8.h: define INADDR_NONE if not
1198         defined in system headers.
1199
1200 2005-06-01  Erez Zadok  <ezk@cs.sunysb.edu>
1201
1202         * libamu/Makefile.am (EXTRA_DIST): remove alloca.c as it's no
1203         longer needed.
1204
1205 2005-05-28  Erez Zadok  <ezk@cs.sunysb.edu>
1206
1207         * completed set of fixes for irix6.5.
1208
1209         * Minor new ports alpha-unknown-linux-gentoo1.4.16
1210         alphaev56-dec-osf4.0f, mips-unknown-linux-gentoo1.4.16, and
1211         sparc64-unknown-linux-gentoo1.4.16, and mips-sgi-irix6.5.  Test
1212         those systems with both cc and gcc, where possible.
1213
1214         * include/am_xdr_func.h: remove trailing comma at end of enum
1215         list.
1216
1217         * m4/macros/os_cflags.m4: with gcc 3.4.3 on irix-6.5, we get pte_t
1218         undefined.  So give it a dummy value.
1219
1220         * libamu/alloca.c: remove file from distro.
1221
1222         * configure.in: don't call AC_FUNC_ALLOCA any more.
1223
1224         * include/am_defs.h: remove header fixups for <alloca.h>, now that
1225         we don't need it.
1226
1227         * amd/amq_svc.c (amqsvc_is_client_allowed): rewrite function to
1228         avoid only use of alloca() in am-utils, and to use strdup
1229         explicitly.  This way we can avoid using alloca, a feature that's
1230         not portable on various systems.
1231
1232         * amq/amq.c: remove unused lint/rcsid cruft.
1233
1234 2005-05-27  Erez Zadok  <ezk@cs.sunysb.edu>
1235
1236         * conf/checkmount/checkmount_osf.c (fixmount_check_mount): add
1237         extra parentheses around assignments in "if" expressions (gcc
1238         complains).
1239
1240         * conf/nfs_prot/nfs_prot_osf4.h: add missing extern definitions
1241         for plock, hstrerror, getmntinfo, alloca, xdr_exportnode, and
1242         xdr_groups.
1243
1244         * configure.in: check for <linux/socket.h>, which, if found,
1245         appears to be preferable to <sys/socket.h>.  Use it to find
1246         <linux/nfs_mount.h>.  On some Linux systems
1247         (Gentoo), both exist but only one must be included, or else you
1248         get redefined structure errors.
1249
1250         * libamu/wire.c (is_network_member): check if masknum is
1251         INADDR_NONE, not "< 0" because it's an unsigned quantity.
1252
1253         * libamu/util.c (xstrlcpy): remove useless test for size_t < 0,
1254         because it's an unsigned quantity.
1255
1256 2005-05-26  Erez Zadok  <ezk@cs.sunysb.edu>
1257
1258         *******************************************************************
1259         *** Released am-utils-6.1-rc6                                   ***
1260         *******************************************************************
1261
1262 2005-05-25  Erez Zadok  <ezk@cs.sunysb.edu>
1263
1264         * conf/nfs_prot/nfs_prot_aix5_2.h: AIX 5.3 complains about
1265         missing definition of struct thread_credentials in <sys/vfs.h>
1266         but trying to bring that definition in drags a whole lot of other
1267         messy stuff.  So just provide a dummy definition for this
1268         structure.
1269
1270 2005-05-24  Erez Zadok  <ezk@cs.sunysb.edu>
1271
1272         * Makefile.am (EXTRA_DIST_M4): distribute m4/macros/libtool.m4.
1273
1274         * m4/macros/header_templates.m4: template for HAVE_EXTERN_MNTCTL.
1275
1276         * m4/macros/check_extern.m4: include <sys/vmount.h> on AIX
1277         systems, so we can find extern definition for mntctl().
1278
1279         * conf/mtab/mtab_aix.c, conf/checkmount/checkmount_aix.c: only
1280         define an extern for mntctl() if needed.
1281
1282         * amd/ops_nfs.c (prime_nfs_fhandle_cache): never, ever, use C++
1283         style comments in C code.  Some C compilers don't accept it.
1284
1285         * amd/info_ldap.c (amu_ldap_init, get_ldap_timestamp): force cast
1286         of "time_t *ts" to u_long, to avoid complaints on AIX 5.2 with
1287         xlC.
1288
1289         * amd/get_args.c: rename symbol conf_file to amu_conf_file to
1290         avoid conflict with libldap.a from openldap-2.0.21 on AIX 5.2.
1291         Oh, when will people who develop libraries learn to always prefix
1292         their exported symbols with a library-specific name?
1293
1294         * configure.in: check for mntctl() extern on AIX systems.
1295
1296         * ltmain.sh: update from latest libtool-1.5.18, so we can properly
1297         build on AIX 5.2/5.3 with cc and with gcc.
1298
1299         * m4/macros/libtool.m4: update from latest libtool-1.5.18.  This
1300         time, and from now on, we must include libtool.m4 from the libtool
1301         distribution itself.  That way we ensure that we use an ltmain.sh
1302         that matches the appropriate libtool M4 macros.  This makes
1303         am-utils no longer dependent on having libtool installed on a
1304         given system on which you run bootstrap.
1305
1306 2005-05-23  Erez Zadok  <ezk@cs.sunysb.edu>
1307
1308         * minor new port: i386-pc-linux-deb3.0.
1309
1310 2005-05-22  Erez Zadok  <ezk@cs.sunysb.edu>
1311
1312         * minor new ports: i386-unknown-netbsdelf2.0.2 and
1313         i386-unknown-openbsd3.7.
1314
1315 2005-05-20  Erez Zadok  <ezk@cs.sunysb.edu>
1316
1317         * minor new ports: i386-pc-linux-gentoo1.4.16 and
1318         powerpc-unknown-linux-yellowdog2.3.
1319
1320         * include/{mount_headers2.h, am_defs.h}: safer setup before
1321         inclusion of <linux/nfs_mount.h>, which is broken on several
1322         systems.
1323
1324         * configure.in: test for <linux/nfs2.h>.  Separate special test
1325         for <linux/nfs_mount.h> because we need to define __KERNEL__ for
1326         that test, as well as optionally define struct nfs2_fh for some
1327         systems (gentoo with 2.4 kernel, yellowdog 2.3, and others).
1328
1329         * config.guess.long: support Gentoo and Yellow Dog Linux distros.
1330
1331 2005-05-18  Erez Zadok  <ezk@cs.sunysb.edu>
1332
1333         * minor new ports: i386-pc-linux-suse9.2 and
1334         i386-unknown-freebsd5.4.
1335
1336         * amd/nfs_subr.c: use NFS_FHSIZE, not FHSIZE.
1337
1338 2005-05-17  Erez Zadok  <ezk@cs.sunysb.edu>
1339
1340         *******************************************************************
1341         *** Released am-utils-6.1-rc5                                   ***
1342         *******************************************************************
1343
1344         * amd/info_ldap.c (amu_ldap_init): change plog to dlog, to avoid
1345         sending annoying warning for a minor issue.
1346
1347 2005-05-17  Ion Badulescu <ionut@moisil.badula.org>
1348
1349         * amd/nfs_subr.c: check for NULL pointer before dereferencing it.
1350
1351 2005-05-16  Erez Zadok  <ezk@cs.sunysb.edu>
1352
1353         * minor new ports: powerpc-apple-darwin7.9.0.
1354
1355         * m4/macros/host_macros.m4: if a NetBSD system, remove 'elf' part
1356         from OS name because it's no longer relevant.  Also, don't include
1357         the major OS version number in the OS name because that's also
1358         unnecessary (and users can always use $osver in maps).
1359
1360         * amd/nfs_subr.c: use [1] for out-of-band pointer at the end of
1361         struct am_fh, because it's the most portable method.  Bug fix
1362         suggestion from Dan Riley <dsr at mail.lns.cornell.edu>.  Better
1363         fix from Ion Badulescu: use [FHSIZE-sizeof(u_int)] which is the
1364         actual size we use.
1365
1366         * amd/amfs_generic.c (amfs_lookup_mntfs): reset currently used
1367         def_opts to options given in -opts, appended with the /default
1368         options.  Bug fix suggestion from Dan Riley <dsr at
1369         mail.lns.cornell.edu>.
1370
1371 2005-05-13  Erez Zadok  <ezk@cs.sunysb.edu>
1372
1373         *******************************************************************
1374         *** Released am-utils-6.1-rc4                                   ***
1375         *******************************************************************
1376
1377 2005-05-11  Daniel P. Ottavio  <dottavio@ic.sunysb.edu>
1378
1379         * amd/amd.c (main) : fixed memory leak detected by valgrind
1380
1381         * amd/info_ldap.c (amu_ldap_init) : fixed memory leak detected by
1382         valgrind
1383
1384 2005-05-11  Erez Zadok  <ezk@cs.sunysb.edu>
1385
1386         * m4/macros/{check_checkmount_style.m4, check_mnttab_style.m4,
1387         check_nfs_fh_dref.m4, check_nfs_prot_headers.m4,
1388         check_nfs_sa_dref.m4, check_umount_style.m4, os_cflags.m4}: check
1389         for "macosx" as valid OS string, so we compile properly on Darwin
1390         systems.
1391
1392         *******************************************************************
1393         *** Released am-utils-6.1-rc3                                   ***
1394         *******************************************************************
1395
1396         * rerun bootstrap to get a working configure script that actually
1397         checks for limits.h and dependent linux autofs/nfs headers.
1398
1399         * configure.in: remove redundant check for limits.h.
1400
1401 2005-05-09  Erez Zadok  <ezk@cs.sunysb.edu>
1402
1403         *******************************************************************
1404         *** Released am-utils-6.1-rc2                                   ***
1405         *******************************************************************
1406
1407 2005-05-08  Erez Zadok  <ezk@cs.sunysb.edu>
1408
1409         * amd/amfs_generic.c (amfs_lookup_mntfs): removed redundant use of
1410         old_def_opts variable.
1411
1412 2005-05-08  Daniel P. Ottavio  <dottavio@ic.sunysb.edu>
1413
1414         * amd/amfs_generic.c (amfs_lookup_mntfs) : Make sure when a map
1415         entry has a single dash '-', that the default options are reset.
1416         This functionality was somehow lost from earlier releases and
1417         reported by Dan Riley <dsr@mail.lns.cornell.edu>.
1418
1419 2005-05-05  Erez Zadok  <ezk@cs.sunysb.edu>
1420
1421         * config.guess.long: detect SuSE Enterprise Server and call it
1422         "sles" not "suse".
1423
1424 2005-05-02  Erez Zadok  <ezk@cs.sunysb.edu>
1425
1426         * doc/am-utils.texi (amd): document proper use of
1427         /etc/hosts.allow.  Don't spawn a new Amd process because Amd will
1428         get confused if someone else waitpid's on its children (which
1429         often do important un/mount work).  Issue reported by Francis
1430         Montagnac <Francis.Montagnac at sophia.inria.fr>.
1431
1432         * minor new ports: powerpc64-unknown-linux-rhel4, and
1433         powerpc64-unknown-linux-sles9.
1434
1435 2005-05-01  Daniel P. Ottavio  <dottavio@ic.sunysb.edu>
1436
1437         * amd/amfs_host.c (amfs_host_umount): We do not want to pass
1438         ENOENT as an error because if the directory does not exists our
1439         work is done anyway.
1440
1441         * conf/umount/umount_linux.c (umount_fs): If we are successful or
1442         there was an ENOENT, remove the mount entry from the mtab file.
1443
1444 2005-05-01  Ion Badulescu  <ionut@moisil.badula.org>
1445
1446         * amd/nfs_subr.c: am_fh definition moved here from amd.h;
1447         restructured to better reflect its duality (old/new filehandles)
1448         (fh_to_mp3): fhh_gen is always used, even for new style f/h
1449         (mp_to_fh): ditto
1450
1451         * amd/amd.h: moved am_fh definition to nfs_subr.c (which is the
1452         only place where it's used)
1453
1454 2005-04-30  Erez Zadok  <ezk@cs.sunysb.edu>
1455
1456         * m4/macros/host_macros.m4: use sw_vers on Apple machines to find
1457         out more appropriate OS name (macosx) and OS version (10.3.x) than
1458         uname(3) reports.
1459
1460 2005-04-29  Erez Zadok  <ezk@cs.sunysb.edu>
1461
1462         * config.guess, config.sub, doc/texinfo.tex: updates from latest
1463         official GNU distributions.
1464
1465         * m4/macros/host_macros.m4: for macosx, change architecture value
1466         from "Power Macintosh" to "powerpc".
1467
1468         * libamu/util.c (xstrlcpy): format 'len' parameter as u_long, not
1469         int (it's a size_t).
1470
1471 2005-04-16  Erez Zadok  <ezk@cs.sunysb.edu>
1472
1473         * scripts/amd.conf.5, doc/am-utils.texi (normalize_slashes
1474         Parameter), scripts/amd.conf-sample: document new
1475         normalize_slashes global configuration parameter.
1476
1477         * amd/opts.c (deslashify, normalize_slash): don't touch trailing
1478         slashes, even if multiples of them, if user said
1479         normalize_slashes=no in amd.conf.
1480
1481         * amd/conf.c (gopt_normalize_slashes): new function to record if
1482         to normalize slashes or not.
1483
1484         * amd/amd.h (CFM_NORMALIZE_SLASHES): new flag to decide if to
1485         normalize double-slashes or not ("yes" by default).
1486
1487         * amd/autil.c (am_mounted): pass TRUE when calling mf_mounted.
1488         This is the parent mntfs which does the mf->mf_fo
1489         (am_opts type), and we're passing TRUE here to tell mf_mounted to
1490         actually free the am_opts.
1491
1492         * amd/autil.c (mf_mounted): Be careful when calling free_ops and
1493         XFREE here.  Some pseudo file systems like nfsx call this
1494         function, even though it would be called by the lower-level amd
1495         file system functions.  nfsx needs to call this function because
1496         of the other actions it takes.  So we pass a boolean from the
1497         caller (yes, not so clean workaround) to determine if we should
1498         free or not.  If we're not freeing (often because we're called
1499         from a callback function), then just to be sure, we'll zero out
1500         the am_opts structure and set the pointer to NULL.  The parent
1501         mntfs node owns this memory and is going to free it with a call to
1502         mf_mounted(mntfs,TRUE).
1503
1504         * amd/amd.h: pass flag to mf_mounted, to free or not to free the
1505         am_opts.
1506
1507         * amd/amfs_nfsx.c (amfs_nfsx_cont): call mf_mounted with FALSE to
1508         tell it not to free the am_opts, to avoid double free.
1509
1510         * include/am_defs.h: include limits.h if found.
1511
1512         * configure.in: check for limits.h.  Check for certain Linux
1513         headers such as auto_fs.h after checking for limits.h, and include
1514         the latter if it exists, because some Linux headers depend on
1515         limits.h.  This prevents warnings during configure time.
1516
1517 2005-04-12  Erez Zadok  <ezk@cs.sunysb.edu>
1518
1519         * amd/amfs_toplvl.c (amfs_toplvl_mount): do NOT set retrans/timeo
1520         values from default global UDP settings, because it can cause
1521         unexpected timeouts in Amd on slow systems.  The default that each
1522         OS provides for these toplvl NFS mounts should be OK, or else you
1523         can use the map_options entry.
1524
1525 2005-04-09  Daniel P. Ottavio  <dottavio@ic.sunysb.edu>
1526
1527         * amd/nfs_subr.c (mp_to_fh): Replace xstrlcpy with memcpy because the
1528         source buffer is treated more as a filehandle than a string.
1529
1530         * amd/nfs_subr.c (fh_to_mp3): Replace xstrlcpy with memcpy because the
1531         source buffer is treated more as a filehandle than a string.
1532
1533         * amd/opts.c (free_op): No longer need to assign pointer to NULL
1534         after XFREE.
1535
1536         * amd/opts.c (expand_op): Revert back to using strncpy() instead
1537         of xstrlcpy.  The code is correct and relies on the semantics of
1538         strncpy.
1539
1540         * libamu/mount_fs.c (compute_nfs_args): Leave XXX warning that use
1541         of xstrlcpy in NFS_HN_DREF may corrupt a struct nfs_args, or
1542         truncate our concocted "hostname:/path" string prematurely if the
1543         nap->hostname field is ever less than 64 bytes long
1544         (MAXHOSTNAMELEN).
1545
1546         * libamu/util.c (xstrlcpy): Return immediately if len is 0 to
1547         avoid unnecessary work.  Log an error and return if len is less
1548         than 0.
1549
1550 2005-04-07  Erez Zadok  <ezk@cs.sunysb.edu>
1551
1552         * include/am_utils.h (XFREE): XFREE() should nullify the pointer
1553         even when compiling without debugging.  It's safer this way.
1554
1555         * libamu/xutil.c (am_set_hostname),
1556         hlfsd/stubs.c (nfsproc_lookup_2_svc),
1557         fsinfo/fsinfo.c (fsi_get_args),
1558         fixmount/fixmount.c (is_same_host, remove_mount, main),
1559         conf/mtab/mtab_isc3.c (mnt_dup, mtab_of),
1560         conf/mount/mount_svr4.c (mount_svr4),
1561         conf/mount/mount_linux.c (setup_loop_device),
1562         conf/hn_dref/hn_dref_linux.h (NFS_HN_DREF),
1563         conf/hn_dref/hn_dref_isc3.h (NFS_HN_DREF),
1564         amd/opts.c (expand_op),
1565         amd/ops_nfs.c (mount_nfs_fh),
1566         amd/nfs_subr.c (fh_to_mp3, mp_to_fh),
1567         amd/amfs_host.c (amfs_host_mount),
1568         amd/am_ops.c (merge_opts):
1569         use the new xstrlcpy instead of strncpy.
1570
1571         * conf/checkmount/checkmount_{default,svr4}.c
1572         (fixmount_check_mount): document why NOT to use xstrlcpy.
1573
1574         * libamu/xutil.c: am_hostname need not be MAXHOSTNAMELEN+1 any
1575         more, just MAXHOSTNAMELEN.
1576
1577         * libamu/xutil.c (real_plog): use strlcpy (not xstrlcpy to avoid
1578         recursion, since xstrlcpy may use plog).
1579
1580         * libamu/util.c (xstrlcpy): truncating a string is serious.  Use
1581         XLOG_ERROR not XLOG_WARNING.
1582
1583 2005-04-06  Erez Zadok  <ezk@cs.sunysb.edu>
1584
1585         * include/am_utils.h: external definition for new xstrlcpy
1586         function.
1587
1588         * libamu/util.c (xstrlcpy): new function.  Similar to strncpy, but
1589         uses strlcpy to guarantee that the resulting string is null
1590         terminated, and also warn if the resulting string was truncated.
1591
1592         * libamu/xutil.c (get_server_pid): move this function from util.c
1593         which is for general-purpose utilities.
1594
1595         * m4/macros/header_templates.m4: template for HAVE_EXTERN_STRLCPY.
1596
1597         * include/am_defs.h: provide extern definition for strlcpy, if
1598         needed.
1599
1600         * libamu/Makefile.am (EXTRA_DIST): include strlcpy.c in distro.
1601
1602         * configure.in: search for strlcpy and its extern.
1603
1604         * amq/pawd.c (find_mt): It only handles *some* filesystem types,
1605         so it breaks on direct xfs mounts for example.  The fix (from
1606         Christos Zoulas) is simple: We need to exclude toplvl to avoid
1607         infinite recursion, but all other fs's are game.
1608
1609 2005-03-31  Erez Zadok  <ezk@cs.sunysb.edu>
1610
1611         * amd/nfs_subr.c (fh_to_mp3): strncpy may not null terminate if
1612         copying exactly len bytes, so add null just to be safe.
1613
1614 2005-03-30  Daniel P. Ottavio  <dottavio@ic.sunysb.edu>
1615
1616         * amd/nfs_subr.c (fh_to_mp3): Increased the n of strncpy()
1617         to make sure it null terminates.
1618
1619 2005-03-29  Daniel P. Ottavio  <dottavio@ic.sunysb.edu>
1620
1621         * amd/nfs_subr.c (fh_to_mp3): Fix memset bug. In this case
1622         the memset can be removed because strncpy() should padd the
1623         buffer with NULLs anyway.
1624
1625 2005-03-21  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1626
1627         * include/am_defs.h: Clarify comment.
1628
1629 2005-03-21  Erez Zadok  <ezk@cs.sunysb.edu>
1630
1631         * include/am_defs.h: undefine "GROUP" so Solaris 10 with gcc-2.96
1632         won't complain about a conflict for this definition between
1633         <rpcsvc/nis.h> and <sys/acl.h>.
1634
1635 2005-03-20  Erez Zadok  <ezk@cs.sunysb.edu>
1636
1637         * amd/readdir.c (amfs_readdir_browsable): use %p, not %lx.
1638
1639         * libamu/mount_fs.c (print_nfs_args): print pointer with %p, not
1640         %lx.
1641
1642 2005-03-18  Erez Zadok  <ezk@cs.sunysb.edu>
1643
1644         *******************************************************************
1645         *** Released am-utils-6.1-rc1                                   ***
1646         *******************************************************************
1647
1648 2005-03-18  Erez Zadok  <ezk@cs.sunysb.edu>
1649
1650         * conf/transp/transp_tli.c (get_nfs_version): use proper type for
1651         versout on Solaris (rpcvcers_t).
1652
1653         * amd/mapc.c (mapc_showtypes): if last map type to print, don't
1654         append newline or comma to it.
1655
1656         * libamu/mount_fs.c (print_nfs_args): cast struct netbuf pointer
1657         to %lx because on Solaris 10 sparc gcc-3.4.3 complains about
1658         casting it to an int (size is different).
1659
1660         * configure.in, NEWS: prepare for 6.1-rc1 release.
1661
1662 2005-03-17  Erez Zadok  <ezk@cs.sunysb.edu>
1663
1664         * scripts/amd2ldif.in, ldap.schema: fixes by Adam Morley
1665         <adam-at-gmi-dot-com> to synchronize what amd2ldif does vs. what
1666         the ldap.schema expects.
1667
1668         * amd/map.c (exported_ap_free): We're using a free-list data
1669         structure and re-using malloc'ed objects.  So, to be safe, memset
1670         entire structure when it's freed, not just the pointer.
1671         (umount_exported): bug fix to on-exit code.  Don't run
1672         am_unmounted() unless unmount_mp() didn't run, since the latter
1673         already calls am_unmounted().  This way we avoid a double-free
1674         bug.
1675
1676 2005-03-15  Erez Zadok  <ezk@cs.sunysb.edu>
1677
1678         * tasks: updates.  Executable maps is supported.  NFSv4 and
1679         FreeBSD autofs isn't.
1680
1681         * Makefile.am (EXTRA_DIST): include FAQ in distro.
1682
1683         * doc/Makefile.am (alldocs): install README.lda and README.osx.
1684
1685         * FAQ: new file, better late than never.
1686
1687 2005-03-14  Erez Zadok  <ezk@cs.sunysb.edu>
1688
1689         * scripts/amd2ldif.in: patch to add the amdMapName attribute to
1690         the amdMapTimestamp object when amd2ldif converts it.  This is
1691         necessary if you are using type:=auto mounts and want those
1692         mountmaps looked up through LDAP.  Patch from Jim Zajkowski
1693         <jim.zajkowski@gmail.com>.
1694
1695 2005-03-12  Erez Zadok  <ezk@cs.sunysb.edu>
1696
1697         * minor new ports: i386-pc-linux-rhel4.
1698
1699         * minor new ports: powerpc-apple-darwin7.8.0.
1700
1701 2005-03-10  Erez Zadok  <ezk@cs.sunysb.edu>
1702
1703         * amd/ops_nfs.c (prime_nfs_fhandle_cache): rearrange code so it's
1704         cleaner.
1705
1706         * ltmain.sh: upgrade from libtool-1.5.6.
1707
1708         * m4/macros/check_{fs_mntent,mnttab_type,mount_type}.m4: check for
1709         Linux 2.6 kernel modules, which have a .ko extension, not .o.  Now
1710         we can properly detect which file systems exist on Linux 2.6 based
1711         systems (SLES9, RHEL4, Fedora, etc.).
1712
1713 2005-03-09  Erez Zadok  <ezk@cs.sunysb.edu>
1714
1715         * m4/macros/host_macros.m4: find out what's the OS software
1716         distribution name, if any.
1717
1718         * m4/macros/header_templates.m4: template for DISTRO_NAME.
1719
1720         * amd/get_args.c (get_version_string): print again full_os, os,
1721         osver, and vendor (bug fix).
1722         (get_version_string): print distribution name, if known (e.g.,
1723         rh9, suse8, etc.).
1724
1725         * amd/mapc.c (mapc_showtypes): wrap around list of supported map.
1726
1727 2005-03-08  Erez Zadok  <ezk@cs.sunysb.edu>
1728
1729         * amd/map.c (umount_exported): when unmounting file systems on
1730         exit (when amd.conf global unmount_on_exit=yes), use unmount_mp()
1731         instead of unmount_node() because the latter always unmounts in
1732         the foreground, whereas the former unmounts in the bg/fg as
1733         needed.  Unmounting always in the foreground has two problems: (1)
1734         if the unmount hangs, amd hangs, and (2) for type:=program, the
1735         unmount script is execve'd(!) thus replacing the main amd process,
1736         which never gets to finish up, leaving the amd mount points hung.
1737
1738         * NEWS: mention new feature of executable maps.
1739
1740         * AUTHORS: Acknowledge Erik Kline.
1741
1742         * scripts/amd.conf.5: document executable maps and
1743         exec_map_timeout parameter.
1744
1745         * scripts/amd.conf-sample: examples of an executable map and
1746         exec_map_timeout.
1747
1748         * m4/macros/header_templates.m4: template for HAVE_MAP_EXEC.
1749
1750         * doc/am-utils.texi: document Executable maps and exec_map_timeout
1751         parameter.
1752
1753         * amd/conf.c (gopt_exec_map_timeout): function to parse
1754         exec_map_timeout [global] parameter.
1755
1756         * amd/amd.h (AMFS_EXEC_MAP_TIMEOUT): define default executable map
1757         timeout to 10 seconds, and a global placeholder for the
1758         configurable value.
1759
1760         * amd/amd.c (init_global_options): initialize default executable
1761         map timeout.
1762
1763         * amd/Makefile.am (EXTRA_amd_SOURCES): include info_exec.c in
1764         tarball.
1765
1766         * configure.in: enable executable maps.
1767
1768         * amd/mapc.c: define executable map functions and behavior.
1769
1770         * amd/info_exec.c: executable map implementation from Erik Kline
1771         <ekline at ekline dot com>, modified, cleaned-up, and fixed.
1772
1773 2005-03-07  Erez Zadok  <ezk@cs.sunysb.edu>
1774
1775         * amd/info_file.c (file_init_or_mtime): consolidate identical
1776         file_init and file_mtime into one function.
1777
1778 2005-03-05  Erez Zadok  <ezk@cs.sunysb.edu>
1779
1780         * doc/am-utils.texi (Program Filesystem): if umount/unmount are
1781         not specified, Amd uses "umount ${fs}" by default.
1782
1783         * amd/amfs_program.c (amfs_program_match): if neither unmount nor
1784         umount parameters are specified, use the default userland umount
1785         program with "umount ${fs}".  This way type:=program doesn't have
1786         to specify the umount program for basic unmounting actions.
1787         (amfs_program_init): save unmount program string in mf_private
1788         only if it's NULL, not based on mf_refc.
1789
1790         * configure.in: auto-detect name of userland unmount program.
1791
1792         * aux_conf.h.in (UNMOUNT_PROGRAM): macro for default userland
1793         unmount program.
1794
1795         * amd/ops_cachefs.c (cachefs_init): save unmount program string in
1796         mf_private only if it's NULL, not based on mf_refc.
1797
1798         * configure.in: don't "discover" inheritance file system any more,
1799         since we don't have the .c file for it.
1800
1801         * amd/get_args.c (get_version_string): hack to still show that we
1802         support the inherit file system in output of amd -v.
1803
1804 2005-03-05  Ion Badulescu  <ionut@moisil.badula.org>
1805
1806         * amd/amfs_inherit.c: removed, dead code
1807
1808         * amd/Makefile.am,
1809         amd/am_ops.c,
1810         amd/amd.h,
1811         conf/autofs/autofs_linux.h,
1812         conf/autofs/autofs_solaris_v1.h,
1813         conf/autofs/autofs_solaris_v2_v3.h,
1814         m4/macros/header_templates.m4: removed references to amfs_inherit.c
1815
1816 2005-03-05  Erez Zadok  <ezk@cs.sunysb.edu>
1817
1818         * amd/autil.c (am_mounted): completely rewrite the unmount
1819         no/timeout code to (1) make more sense for odd conditions, and (2)
1820         allow utimeout=N mount options to override FS_NOTIMEOUT default
1821         flags for disk-based file systems such as ufs, pcfs, cdfs, etc.
1822
1823         * libamu/mount_fs.c (mount_fs): use safer XFREE() not free().
1824
1825         * conf/umount/umount_linux.c (umount_fs): strtok is destructive,
1826         so use strdup'ed string.
1827
1828         * conf/mount/mount_linux.c (parse_opts): strtok is destructive, so
1829         use strdup'ed string.
1830
1831 2005-03-04  Erez Zadok  <ezk@cs.sunysb.edu>
1832
1833         * scripts/amd.conf.5, doc/am-utils.texi (cache_duration
1834         Parameter): clarify actual behavior: this Parameter affects
1835         initial mount timeout as well as the linear backoff what happens
1836         the initial failed EBUSY unmount.
1837
1838         * doc/am-utils.texi (opts Option): better explanation of
1839         utimeout=N mount pseudo-option.
1840
1841         * amd/amd.h (AM_TTL, AM_TTL_W): better comments, minor cleanup.
1842
1843 2005-03-02  Daniel P. Ottavio  <dottavio@ic.sunysb.edu>
1844
1845         * AUTHORS: add Dan Ottavio.
1846
1847         * scripts/amd.conf.5: document new debug_mtab_file option.
1848
1849         * scripts/amd.conf-sample (debug_mtab_file): show example.
1850
1851         * doc/am-utils.texi (debug_mtab_file Parameter): document new
1852         option.
1853
1854         * conf/mtab/mtab_{file,mach3}.c (open_locked_mtab): if mtab file
1855         doesn't exist by the time Amd tries to exist, return a 0 rather
1856         than hang indefinitely.
1857
1858         * amd/conf.c (gopt_debug_mtab_file): new function to parse
1859         debug_mtab_file option.
1860
1861         * amd/amd.h: placeholder for debug_mtab_file string.
1862         Define default debug_mtab_file to "/tmp/mtab".
1863
1864         * NEWS: document new debug_mtab_file option.
1865
1866 2005-03-02  Erez Zadok  <ezk@cs.sunysb.edu>
1867
1868         * conf/transp/transp_{sockets,tli}.c (amu_get_myaddress): when
1869         users want Amd's NFS service to bind to some arbitrary "localhost"
1870         address, show which address was actually resolved and bound to.
1871
1872 2005-03-01  Erez Zadok  <ezk@cs.sunysb.edu>
1873
1874         * amd/srvr_nfs.c (start_nfs_pings): move code from elsewhere
1875         (update_nfs_pingval) that initializes the pinger, as well as turns
1876         it on/off as needed, and handles changing its value.  This is to
1877         avoid races and other infinite-loop conditions that could result
1878         in ping storms.
1879
1880         * amd/srvr_amfs_auto.c (amfs_generic_find_srvr): when creating a
1881         new file server structure, default the ping value to AM_PINGER
1882         (30sec) and set the FSF_PING_UNINIT flag.
1883
1884         * amd/amd.h (FSF_PING_UNINIT): new flag to tell whether the NFS
1885         pinger had been initialized for a given file server.
1886
1887         * scripts/ctl-amd.in (stop): no need to check if
1888         /var/lock/subsys/amd file exists if you do an rm -f afterward.
1889         Ensure that proper return value is returned from script.
1890
1891         * NEWS, doc/am-utils.texi (opts Option): update meaning of ping=N
1892         so that if N=-1, pings are off; if N=0, pings are set to the
1893         default value (currently 30 seconds).
1894
1895 2005-02-28  Erez Zadok  <ezk@cs.sunysb.edu>
1896
1897         * amd/nfs_prot_svc.c (nfs_program_2): on TLI system, try to call
1898         __rpc_get_local_uid to verify if the RPC call through the
1899         local host interface came from UID 0.
1900
1901         * configure.in: look for internal libnsl function
1902         __rpc_get_local_uid (seems to be available on all known TLI
1903         systems, Solaris and HP-UX 11).
1904
1905         * conf/transp/transp_tli.c (amu_svc_getcaller): unnecessary
1906         function for TLI systems (and it violated a array's bounds,
1907         discovered with libumem.so).
1908         (bind_resv_port, bind_resv_port_only_udp, get_autofs_address):
1909         just to be on the safe side, set struct t_bind's qlen field to non
1910         zero (64 by default).  This value cannot be zero for TCP
1911         connections, and it's unclear if it's good to have it zero for UDP
1912         connections, so setting it to 64 is safer.
1913
1914 2005-02-27  Erez Zadok  <ezk@cs.sunysb.edu>
1915
1916         * doc/am-utils.texi (opts Option, Keep-alives): update text on
1917         ping option.
1918
1919         * amd/srvr_nfs.c (update_nfs_pingval): new function to update NFS
1920         server ping values, turn them off, or re-enable them.
1921         (find_nfs_srvr): call update_nfs_pingval() as needed.
1922
1923         * hlfsd/hlfsd.c (reaper, cleanup): don't use exit(3) in a signal
1924         handler, but use _exit(2) instead.
1925
1926         * amd/amd.c (parent_exit): This signal handler is called during
1927         Amd initialization.  The parent forks a child to do all the hard
1928         automounting work, and waits for a SIGQUIT signal from the child.
1929         When the parent gets the signal it's supposed to call this handler
1930         and exit(3), thus completing the daemonizing process.  Alas, on
1931         some systems, especially Linux 2.4/2.6 with Glibc, exit(3) doesn't
1932         always terminate the parent process.  Worse, the parent process
1933         now refuses to accept any more SIGQUIT signals -- they are
1934         blocked.  What's really annoying is that this doesn't happen all
1935         the time, suggesting a race condition somewhere.
1936         (This happens even if I change the logic to use another signal.)
1937         I traced this to something which exit(3) does in addition to
1938         exiting the process, probably some atexit() stuff or other
1939         side-effects related to signal handling.  Either way, since at
1940         this stage the parent process just needs to terminate, I'm simply
1941         calling _exit(2).  Note also that the OpenGroup doesn't list
1942         exit(3) as a recommended "Base Interface" but they do list
1943         _exit(2) as one.  This fix seems to work reliably all the time.
1944
1945         * scripts/wait4amd2die.in: change default to recognize that amd is
1946         down more quickly (check every 3 seconds instead of 5).
1947
1948 2005-02-26  Erez Zadok  <ezk@cs.sunysb.edu>
1949
1950         * libamu/xutil.c (amu_release_controlling_tty): warn if closing
1951         stdin/stdout/stderr failed.  No need for tempfd.
1952
1953         * scripts/ctl-{amd,hlfsd}.in: before running any real program in
1954         these shell scripts, chdir to "/" to avoid possible hangs with
1955         existing NFS mounts.  This was causing ctl-amd's forked
1956         grand-child amd process to hang if restartable_mounts=no.  Go
1957         figure.
1958
1959 2005-02-25  Erez Zadok  <ezk@cs.sunysb.edu>
1960
1961         * minor new port ia64-unknown-linux-rhel4
1962
1963         * fsinfo/fsi_util.c (set_ether_if): avoid u_long casting to -1
1964         (RHEL4 gcc 3.4.3 ia64 compiler complains).
1965
1966 2005-02-24  Erez Zadok  <ezk@cs.sunysb.edu>
1967
1968         * minor new port i386-unknown-freebsd6.0 (6.0-CURRENT-SNAP001).
1969
1970 2005-02-23  Erez Zadok  <ezk@cs.sunysb.edu>
1971
1972         * minor new port: i386-pc-linux-rhel3.
1973
1974         * INSTALL: major update of the compatibility list.
1975
1976         * m4/macros/os_cflags.m4: set AMU_CFLAGS not AM_CFLAGS.
1977
1978 2005-02-22  Erez Zadok  <ezk@cs.sunysb.edu>
1979
1980         * scripts/amd.conf.5, doc/am-utils.texi (preferred_amq_port):
1981         document new preferred_amq_port [global] option.
1982
1983         * scripts/amd.conf-sample (preferred_amq_port): example.
1984
1985         * include/am_utils.h: add preferred_amq_port to prototype.
1986
1987         * conf/transp/transp_tli.c (bind_preferred_amq_port): new function
1988         to bind the Amq RPC service for UDP and TCP to a preferred port
1989         (or to any port if preferred_amq_port==0).
1990         (create_amq_service): decide if to bind to RPC_ANYFD, or to a
1991         requested port.
1992
1993         * conf/transp/transp_sockets.c (create_amq_service): if
1994         preferred_amq_port is greater than 0, then bind to that port for
1995         both UDP and TCP.  If preferred_amq_port==0, then bind to any
1996         port.
1997
1998         * amd/nfs_start.c (mount_automounter): pass global
1999         preferred_amq_port value to create_amq_service().
2000
2001         * amd/conf.c (gopt_preferred_amq_port): new function to parse
2002         amd.conf value for preferred_amq_port.
2003
2004         * amd/amd.h: placeholder for preferred_amq_port.
2005
2006 2005-02-21  Erez Zadok  <ezk@cs.sunysb.edu>
2007
2008         * conf/transp/transp_tli.c (bind_resv_port_only_udp): rename old
2009         bindnfs_port to a more proper name.  This function binds the NFS
2010         service to a specified port, and only for UDP.
2011
2012         * conf/transp/transp_tli.c: cleanup some code, rename some
2013         functions, in preparation for RPC amq port specification code.
2014
2015 2005-02-19  Erez Zadok  <ezk@cs.sunysb.edu>
2016
2017         * */Makefile.am: don't redefine CFLAGS or LDFLAGS; they are
2018         reserved for users to pass them on the command line.  Instead, use
2019         autoconf's internal AM_CFLAGS and AM_LDFLAGS.
2020
2021         * depcomp, install-sh, missing, mkinstalldirs: update from latest
2022         versions of Automake 1.9.2.
2023
2024         * m4/macros/*.m4: properly quote AC_DEFUN'ed macro name, and fix
2025         regexp/patsubst M4 commands.  Newer versions of autoconf (e.g.,
2026         v2.59) complain about those.
2027
2028 2005-02-17  Erez Zadok  <ezk@cs.sunysb.edu>
2029
2030         * amd/opts.c (f_xhost): if we don't have hstrerror, just print the
2031         value of h_errno.
2032
2033         * configure.in: include -lresolv if it defines the hstrerror()
2034         function and not already available in existing libraries.
2035
2036         * minor new port: powerpc-apple-darwin7.7.0.
2037
2038         * amd/nfs_subr.c (mp_to_fh): pathlen should be u_int because it is
2039         later compared against an unsigned quantity (complaint from gcc
2040         3.3 on SuSE 8.2)
2041
2042         * include/am_utils.h: remove unnecessary (and conflicting) extern
2043         for bind_resv_port2(), which is declared as static in
2044         transp_tli.c.
2045
2046         * doc/am-utils.texi, scripts/amd.conf.5, scripts/amd.conf-sample,
2047         NEWS: document four new amd.conf options: nfs_retry_interval_udp,
2048         nfs_retransmit_counter_udp nfs_retry_interval_tcp, and
2049         nfs_retransmit_counter_tcp.
2050
2051         * amd/ops_nfs.c (mount_nfs_fh): set timeo/retrans values based on
2052         wether nfs_proto was "udp" or "tcp".
2053
2054         * amd/amfs_toplvl.c (amfs_toplvl_mount): set retrans/timeo values
2055         from default UDP settings (because toplvl mounts are UDP for now).
2056
2057         * amd/get_args.c (get_args): use parameters to -t option to set
2058         both UDP and TCP timeo/retrans values.
2059
2060         * amd/conf.c: (gopt_nfs_retransmit_counter_udp,
2061         (gopt_nfs_retransmit_counter_tcp, gopt_nfs_retry_interval_udp
2062         (gopt_nfs_retry_interval_tcp): new functions to parse UDP and TCP
2063         retrans/timeo parameters separately.
2064         (gopt_nfs_retry_interval, gopt_nfs_retransmit_counter): if
2065         specified, use it to set defaults for both UDP and TCP.
2066
2067         * amd/amd.c (init_global_options): initialize default values of
2068         both UDP and TCP retrans/timeo values to -1.
2069
2070         * amd/amd.h (AMU_TYPE_{TCP,UDP,MAX}): define separate retrans and
2071         timeo values, one for udp mounts and another for tcp mounts.
2072
2073 2005-02-16  Erez Zadok  <ezk@cs.sunysb.edu>
2074
2075         * README.osx: new file with some instructions for Mac OS-X users,
2076         courtesy Kevin Layer.
2077
2078         * amd/get_args.c (get_args): move call to switch_to_logfile()
2079         after processing -v, so we don't print "no logfile defined; using
2080         stderr" when we're about to print version info and exit anyway.
2081
2082         * minor new port: powerpc-ibm-aix5.3.0.0.
2083
2084         * hlfsd/hlfsd.c (main): rewrite code to avoid negative array
2085         references.
2086
2087         * conf/checkmount/checkmount_aix.c: remove extern definition for
2088         mntctl(), since AIX 5.3 has it in <sys/vmount.h>.
2089
2090         * amd/info_union.c (union_reload): rewrite code to avoid negative
2091         array references.
2092
2093         * amd/opts.c (split_opts, expand_op): rewrite code to avoid
2094         negative array references.
2095
2096         * conf/mtab/mtab_aix.c: remove extern definition for mntctl(),
2097         since AIX 5.3 has it in <sys/vmount.h>.
2098
2099         * libamu/xutil.c (real_plog): rewrite code to avoid negative array
2100         references.
2101
2102         * libamu/wire.c (is_network_member): rearrange code slightly to
2103         avoid negative array references (AIX 5.3 xlC 7.0 compiler
2104         complains about it).
2105
2106 2005-01-26  Erez Zadok  <ezk@cs.sunysb.edu>
2107
2108         * doc/am-utils.texi (xhost Selector Function): document new
2109         selector function.
2110
2111         * amd/opts.c (f_xhost): new function for use when matching the
2112         "host" selector for the current host's name.  This function will
2113         now match the primary host name as well as all known aliases
2114         (CNAMES) that gethostbyname() returns.  This function now supports
2115         a new function selector called xhost(ARG); the old host==ARG
2116         selector is unharmed.
2117
2118 2005-01-17  Ion Badulescu  <ionut@moisil.badula.org>
2119
2120         * NEWS: document the ability to restart old mount points
2121
2122         * amd/map.c (mount_auto_node): force the fileid of the
2123         root to be 1, so that it won't change between restarts; use the
2124         root filesystem's own methods instead of hard-coding the use of
2125         the default methods
2126
2127         * conf/transp/transp_tli.c (create_nfs_service): better cleanup on
2128         error conditions.
2129         (bind_resv_port2): allow the caller to request a certain port.
2130
2131         * conf/transp/transp_sockets.c (bind_resv_port): allow the caller
2132         to request a certain port.
2133         (create_nfs_service): better cleanup on error conditions.
2134
2135         * amd/restart.c (restart_automounter_nodes): new function, takes
2136         care of restarting automounter NFS mount points (autofs will come
2137         later).
2138         (restart): skip all automounter mount points.
2139
2140         * amd/nfs_subr.c (fh_to_mp3, mp_to_fh): new filehandle
2141         implementation: if the path to the node is shorter than sizeof(fh)
2142         chars (currently 32 chars for a NFSv2 fh), simply store it inside
2143         the fh. For longer paths, keep the old implementation.
2144
2145         * amd/nfs_start.c (mount_automounter): reorder things so that
2146         restarting the toplvl filesystems occurs before anything else (so
2147         that we can grab all the ports we need before we accidentally use
2148         them for something else).
2149
2150         * amd/mntfs.c (locate_mntfs): remove dead code; add special
2151         handling of restarted toplvl filesystems.
2152
2153         * amd/mapc.c (root_keyiter): fix up a comment.
2154
2155         * amd/map.c (path_to_exported_ap): new function, searches for and
2156         returns a node by the path to it.
2157         (get_root_nfs_fh): remove unnecessary fiddling with the root fh.
2158
2159         * config.guess.long: support Red Hat Enterprise Linux
2160
2161 2005-01-17  Erez Zadok  <ezk@cs.sunysb.edu>
2162
2163         * libamu/util.c (rmdirs): prevent amd from logging 'Read-only
2164         filesystem' errors when the mount point has an ancestor (i.e. '/')
2165         that is mounted read-only.  Patch from David Rage <rage@ucl.ac.uk>.
2166
2167 2005-01-17  Ion Badulescu  <ionut@moisil.badula.org>
2168
2169         * conf/umount/umount_linux.c (umount_fs): Linux doesn't need the
2170         autofs space hack
2171
2172         * conf/umount/umount_default.c (umount_fs): there is no need for
2173         HAVE_LOOP_DEV, now that Linux has its own dedicated umount_linux.c
2174
2175 2005-01-17  Erez Zadok  <ezk@cs.sunysb.edu>
2176
2177         * doc/am-utils.texi (Automatic Unmounting): document new umount2()
2178         behavior on Linux.
2179
2180         * conf/umount/umount_linux.c (umount_fs): new file.  On Linux, if
2181         umount(2) failed with EIO or ESTALE, try umount2(2) with
2182         MNT_FORCE+MNT_DETACH.  Based on patch from Christos Zoulas
2183         <christos@zoulas.com>.
2184
2185         * m4/macros/check_umount_style.m4: pick new linux umount style.
2186
2187         * Makefile.am (EXTRA_DIST_CONF): distribute new umount_linux.c
2188         file.
2189
2190 2005-01-16  Erez Zadok  <ezk@cs.sunysb.edu>
2191
2192         * conf/nfs_prot/nfs_prot_aix{4_2,4_3,5_1,5_2}.h,
2193         m4/macros/struct_nfs_args.m4: minor cleanups for quicker execution
2194         of "nfs_args" test.
2195
2196 2005-01-13  Erez Zadok  <ezk@cs.sunysb.edu>
2197
2198         * amd/get_args.c (show_usage): separate function to print usage
2199         string.
2200         (get_args) Call show_usage() from get_args when needed, then exit.
2201
2202         * amd/get_args.c (get_version_string): print also domain, host,
2203         and hostd.
2204         (get_args): print version string at the very end, after all other
2205         values had been initialized.  Patch from Christos Zoulas
2206         <christos@zoulas.com>.
2207
2208         * conf/transp/transp_sockets.c (check_pmap_up, get_nfs_version),
2209         conf/transp/transp_tli.c (check_pmap_up): correct an inconsistency
2210         in timeouts in the RPC code between socket and TLI
2211         implementations.  The clntudp_create timeout has a different
2212         meaning than the clnt_call timeout.  Set the timeout of the create
2213         to 2 seconds which means retry if no answer in two seconds, and
2214         the timeout call to 6 seconds, which will give us consistently 2
2215         to 3 pings.  This is useful on occasional network UDP loss where a
2216         single packet loss would wrongfully mark a server down.  (The TLI
2217         code is the one that had the problem occurs.)  Patch from Christos
2218         Zoulas <christos@zoulas.com>.
2219
2220         * libamu/mount_fs.c (compute_nfs_attrcache_flags): make sure code
2221         compiles even for systems that don't have the nfs_args
2222         ac{reg,dir}{min,max} fields.
2223
2224         * amd/amfs_toplvl.c (set_auto_attrcache_timeout): just to be safe,
2225         add "noac" if amd.conf option auto_attrcache was set to 0.  This
2226         should hopefully make the compute_nfs_attrcache_flags patch even
2227         safer.
2228
2229         * libamu/mount_fs.c (compute_nfs_attrcache_flags): separate
2230         function to compute attribute-cache values.  This function now
2231         computes attribute-cache flags for BOTH Amd's automount points
2232         (NFS) as well as any normal NFS mount that Amd performs.
2233         (compute_nfs_args, compute_automounter_nfs_args): call
2234         compute_nfs_attrcache_flags to figure out attribute-cache related
2235         flags.  Patch from Christos Zoulas <christos@zoulas.com>.
2236
2237         * scripts/amd.conf-sample: show examples of new global options
2238         domain_strip and auto_attrcache.
2239
2240         * scripts/amd.conf.5: document new global options domain_strip and
2241         auto_attrcache.  Add warning to auto_attrcache use in case of
2242         ESTALE.
2243
2244         * doc/am-utils.texi: minor cleanups and document new global
2245         options domain_strip and auto_attrcache.  Add warning to
2246         auto_attrcache use in case of ESTALE.
2247
2248         * amd/conf.c (gopt_auto_attrcache): parse new global amd.conf
2249         option auto_attrcache.
2250         (gopt_domain_strip): parse new global amd.conf option
2251         domain_strip.  Part of a patch from Christos Zoulas
2252         <christos@zoulas.com>.
2253
2254         * amd/autil.c (host_normalize): don't call domain_strip()
2255         unconditionally, but depend on the new global amd.conf flag
2256         domain_strip.
2257
2258         * amd/amfs_toplvl.c (set_auto_attrcache_timeout): new function to
2259         set attribute cache timeout value given other configured global
2260         defaults.
2261         (amfs_toplvl_mount): set automount point attribute cache option
2262         value to "noac" if attrcache=0, else set it to whatever
2263         set_auto_attrcache_timeout() returns.
2264
2265         * amd/amd.h (CFM_DOMAIN_STRIP, CFM_DEFAULT_FLAGS): flag to decide
2266         if to strip the domain from the host name or not, default options
2267         set to strip the domain.
2268         Store global value of automount attribute cache timeout value.
2269
2270         * amd/amd.c (init_global_options): add flag to record automount
2271         point attribute cache value.
2272
2273         * amd/amd.c (do_memory_locking): new function to encapsulate all
2274         of the memory-locking functionality, which was in main() before.
2275         Also added a call to madvise(), just in case.
2276         (main): call do_memory_locking() to pin process memory if amd.conf
2277         asked for it, but do so after the main Amd process daemonizes,
2278         because mlock/mlockall is not inherited by fork() by default.
2279         Slightly restructured patch from Jonathan Chen
2280         <jon+amd@spock.org>.
2281
2282         * configure.in: check for madvise(2).
2283
2284         * config.guess, config.sub: updates for latest official GNU
2285         versions.
2286
2287         * m4/GNUmakefile: update paths to "make update"
2288
2289 2005-01-12  Erez Zadok  <ezk@cs.sunysb.edu>
2290
2291         * conf/nfs_prot/nfs_prot_hpux11.h: define an nfs_fh3 structure
2292         that's compatible for HPUX11 as well as NFSv3.
2293
2294         * include/am_defs.h: On AIX 5.2, both <resolv.h> and
2295         <arpa/nameser_compat.h> define MAXDNAME, if compiling with gcc
2296         -D_USE_IRS (so that we get extern definitions for hstrerror() and
2297         others).  So undef MAXDNAME before it gets redefined.
2298
2299         * include/am_defs.h: Solaris 10 (build 72) defines GROUP_OBJ in
2300         <sys/acl.h>, which is included in many other header files.
2301         <rpcsvc/nis.h> uses GROUP_OBJ inside enum zotypes.  So if you're
2302         unlucky enough to include both headers, you get a compile error
2303         because the two symbols conflict.  Temp hack: undefine acl.h's
2304         GROUP_OBJ before including nis.h, because we don't need acl.h for
2305         am-utils.
2306
2307         * m4/macros/os_cflags.m4: turn -D_USE_IRS for AIX5+ so that
2308         certain extern definitions of resolver functions become available.
2309
2310         * amd/opts.c (expand_op): use #define for expand_error string
2311         because some compilers complain about the use of static const
2312         char[] inside a varargs function.
2313
2314         * minor new port i386-unknown-netbsdelf1.6.2.
2315
2316         * new port i386-unknown-netbsdelf2.0.
2317
2318         * minor port i386-unknown-freebsd5.3.
2319
2320         * libamu/mount_fs.c (compute_nfs_args): don't compare
2321         nap->maxgrouplist against NULL but against 0 directly, because on
2322         FreeBSD 4.3, NULL is defined is (void *)0 and gcc 3.4 complains
2323         about a type mismatch.
2324
2325         * minor port i386-pc-linux-fc3 (Fedora Core 3).
2326
2327 2005-01-11  Erez Zadok  <ezk@cs.sunysb.edu>
2328
2329         * hlfsd/hlfsd.c (main): use sigsuspend() over sigpause(), because
2330         FC3 doesn't have proper extern definition for the defunct
2331         sigpause().
2332
2333         * configure.in: look for sigsuspend().
2334
2335 2005-01-01  Erez Zadok  <ezk@cs.sunysb.edu>
2336
2337         * updated copyright year to 2005 on all files.
2338
2339 2004-11-29  Erez Zadok  <ezk@cs.sunysb.edu>
2340
2341         * scripts/amd.conf.5: Small fixes to typos in man page, from
2342         Thomas Klausner <tk@giga.or.at>.
2343
2344 2004-10-22  Erez Zadok  <ezk@cs.sunysb.edu>
2345
2346         * ldap.schema: add this file to distribution.
2347
2348 2004-09-15  Erez Zadok  <ezk@cs.sunysb.edu>
2349
2350         * doc/am-utils.texi: fix old URLs.
2351
2352 2004-09-01  Erez Zadok  <ezk@cs.sunysb.edu>
2353
2354         * conf/mtab/mtab_aix.c (read_mtab): avoid a race condition between
2355         multiple calls to mntctl().  Patch suggested by Michael van Elst
2356         <M.van.Elst@science-computing.de>.
2357
2358 2004-08-07  Erez Zadok  <ezk@cs.sunysb.edu>
2359
2360         * doc/am-utils.texi (Program Filesystem): document how to get
2361         double slashes in Amd maps.
2362
2363         * amd/opts.c (normalize_slash): support escaped slashes, needed
2364         for SMB mounts.  Use '\\\/\\\/' in a string to get a double slash.
2365
2366 2004-08-06  Erez Zadok  <ezk@cs.sunysb.edu>
2367
2368         * amd/amfs_program.c (amfs_program_match): bug fix.  Complain if
2369         both opt_unmount and opt_umount are missing, not when just one of
2370         them is missing.
2371
2372 2004-08-03  Erez Zadok  <ezk@cs.sunysb.edu>
2373
2374         * amq/pawd.c (find_mt): recognize "linkx" type mounts.  Patch from
2375         Hauke Fath <hauke@Espresso.Rhein-Neckar.DE>.  Support "nfsx" while
2376         we're at it.
2377
2378         * doc/am-utils.texi: mention bugzilla.  Fix broken URL HREF's.
2379
2380 2004-08-02  Erez Zadok  <ezk@cs.sunysb.edu>
2381
2382         * amq/pawd.c (find_mt): recognize "host" type mounts.  Patch from
2383         Dan Nelson <dnelson@allantgroup.com>.
2384
2385 2004-07-30  Erez Zadok  <ezk@cs.sunysb.edu>
2386
2387         * doc/am-utils.texi, NEWS: minor typos fixed.
2388
2389 2004-07-30  Erez Zadok  <ezk@play.cs.columbia.edu>
2390
2391         * include/am_xdr_func.h: cannot have field-less structure; put a
2392         dummy field in.
2393
2394         * conf/autofs/autofs_solaris_v2_v3.c (xdr_autofs_rddirargs): cast
2395         2nd arg of xdr_u_int to a u_int*, not int*.
2396         (autofs_mount_2_req): don't use C++ // comments.
2397
2398 2004-07-30  Erez Zadok  <ezk@cs.sunysb.edu>
2399
2400         * m4/macros/{try_compile_anyfs,check_field}.m4: include
2401         <fs/msdosfs/msdosfsmount.h> if it exists.  Part of a set of
2402         FreeBSD 5 patches from Martin Blapp <mb@imp.ch>.
2403
2404         * include/am_defs.h: include <fs/msdosfs/msdosfsmount.h> if it
2405         exists.
2406
2407         * amd/ops_pcfs.c (mount_pcfs): set pcfs_args_t.dirmask field to
2408         0777 by default.
2409
2410         * configure.in: check for pcfs_args_t.dirmask field.  Check for
2411         existence of <fs/msdosfs/msdosfsmount.h>, new on FreeBSD 5.
2412
2413 2004-07-29  Erez Zadok  <ezk@cs.sunysb.edu>
2414
2415         * minor new port: i386-pc-linux-fc2 (Fedora Core 2).
2416
2417         * amd/info_ldap.c (amu_ldap_rebind): don't use ldap_enable_cache()
2418         unless the function exists in libldap and the extern is in
2419         <ldap.h>.  Recently, openldap removed the extern from ldap.h, but
2420         left the function in libldap, for binary compatibility; however
2421         ldap_enable_cache and related functions have been deprecated (and
2422         no longer listed in the header files), and therefore should be
2423         avoided.
2424
2425         * m4/macros/check_extern_ldap.m4: new macro to check for
2426         LDAP-specific externs.  This is separate from check_extern.m4 so
2427         as to avoid breaking the general-purpose macro with LDAP-specific
2428         headers.
2429
2430         * m4/macros/header_templates.m4: extern template for new
2431         HAVE_EXTERN_LDAP_ENABLE_CACHE.
2432
2433         * configure.in: call new check_extern_ldap.m4 macro.
2434
2435         * Makefile.am (EXTRA_DIST_M4): distribute new check_extern_ldap.m4
2436         macro.
2437
2438         * config.guess.long: distinguish between redhat and fedora-core
2439         releases.
2440
2441 2004-07-23  Erez Zadok  <ezk@cs.sunysb.edu>
2442
2443         * Minor new port i386-pc-linux-suse8.2: minor new port to SuSE
2444         8.2.  This systems' latest GCC (gcc version 3.3 20030226
2445         prerelease) correctly caught a lot of possibly bad comparisons
2446         between signed and unsigned quantities.
2447
2448         * hlfsd/homedir.c (table_add, plt_search): changed first arg of
2449         both functions to u_int.
2450
2451         * hlfsd/hlfsd.h, hlfsd/hlfsd.c: change 'cache_interval' to u_int.
2452         Changed proto for plt_search arg to u_int.
2453
2454         * amq/amq.c (show_mi, main): change 'i' to u_int.
2455
2456         * amq/pawd.c (find_mlp): change 'i' to u_int.
2457
2458         * amd/srvr_nfs.c (find_nfs_srvr): change proto_nfs_version to
2459         u_int.
2460
2461         * amd/amd.h: change prototype of vreaddir and amfs_error_readdir
2462         to use u_int count parameter.
2463
2464         * amd/ops_TEMPLATE.c (foofs_readdir), amd/amfs_error.c
2465         (amfs_error_readdir): change 'count' parameter in proto to u_int.
2466
2467         * amd/amd.h: change proto of amfs_generic_readdir() to use u_int
2468         count parameter.
2469
2470         * amd/readdir.c (make_entry_chain): preflen should be u_int.
2471         (amfs_readdir_browsable): change 'count' to u_int.
2472         (amfs_generic_readdir): change 'count' to u_int.
2473
2474         * amd/amd.h: amu_global_options's portmap_program field should be
2475         u_long, not int (to match RPC conventions).  Change am_fh's
2476         fhh_gen field to u_int, to match am_gen field in struct am_node.
2477
2478         * amd/conf.c (gopt_portmap_program): use atol() instead of atoi()
2479         to avoid size differences.
2480
2481         * conf/mount/mount_linux.c (find_unused_loop_device): cast to int
2482         to avoid comparison between chars and integers.
2483
2484         * libamu/mount_fs.c (get_hex_string): change 'i' to u_int to avoid
2485         comparisons between signed and unsigned integers.
2486
2487 2004-07-13  Erez Zadok  <ezk@cs.sunysb.edu>
2488
2489         * minor new port: i386-pc-linux-suse9.1.
2490
2491         * include/am_defs.h: don't use __kernel_dev_t for dev_t on Linux,
2492         because SuSE wants __kernel_old_dev_t.  Instead, just define it
2493         directly to what they both use: an unsigned short.
2494
2495 2004-05-27  Erez Zadok  <ezk@cs.sunysb.edu>
2496
2497         * minor new port: i386-unknown-freebsd4.10
2498
2499 2004-04-29  Ion Badulescu  <ionut@moisil.badula.org>
2500
2501         * amd/amfs_generic.c (amfs_lookup_one_mntfs): fix the creation of
2502         mountpoints for autofs-based sublinks the right way
2503
2504 2004-04-28  Ion Badulescu  <ionut@moisil.badula.org>
2505
2506         Fixes for various memory management problems discovered by
2507         Rainer's purify run:
2508
2509         * conf/transp/transp_tli.c (check_pmap_up): zero out struct
2510         timeval before using;
2511         (get_nfs_version): ditto
2512
2513         * amd/map.c (umount_exported): make sure we don't try to free the
2514         same am_node multiple times, by setting its corresponding
2515         exported_ap slot to null
2516
2517         * amd/get_args.c (get_version_string): a static pointer is pretty
2518         pointless, make it automatic
2519
2520         * amd/conf.c (gopt_debug_options): remove unnecessary strdup();
2521         (gopt_log_options): ditto
2522         (gopt_print_version): free version string after using it
2523
2524         * amd/autil.c (mf_mounted): free mntfs->mf_fo instead of leaking
2525         it
2526
2527         * amd/amfs_generic.c (amfs_lookup_one_mntfs): use the CALLOC macro
2528         (amfs_lookup_mntfs): free def_opts on return
2529
2530         * amd/amd.c (daemon_mode): zero out struct sigaction before using
2531         it;
2532         (main): ditto
2533
2534 2004-04-27  Ion Badulescu  <ionut@moisil.badula.org>
2535
2536         * amd/amfs_generic.c (amfs_lookup_one_mntfs): force FS_MKMNT on
2537         the real mount of an autofs-based sublink
2538
2539 2004-04-25  Ion Badulescu  <ionut@moisil.badula.org>
2540
2541         * amd/map.c (free_map_if_success): avoid dereferencing a pointer
2542         to potentially freed memory
2543
2544 2004-02-26  Erez Zadok  <ezk@cs.sunysb.edu>
2545
2546         * minor new port: i386-unknown-freebsd5.2.1.
2547
2548 2004-01-30  Ion Badulescu  <ion@guppy.limebrokerage.com>
2549
2550         * scripts/ctl-hlfsd.in: don't run hlfsd with -D fork
2551
2552 2004-01-25  Erez Zadok  <ezk@cs.sunysb.edu>
2553
2554         * minor new port: sparc64-unknown-linux-deb3.0
2555
2556         * config.guess.long: recoognize Debian Linux.
2557
2558 2004-01-22  Erez Zadok  <ezk@cs.sunysb.edu>
2559
2560         * conf/transp/transp_tli.c (amu_get_myaddress): use
2561         htonl(INADDR_LOOPBACK) and define INADDR_LOOPBACK if not already
2562         available.
2563
2564 2004-01-21  Erez Zadok  <ezk@cs.sunysb.edu>
2565
2566         * wire-test/wire-test.c, hlfsd/hlfsd.c (main): pass NULL as second
2567         parameter to amu_get_myaddress().
2568
2569         * conf/transp/transp_tli.c (amu_get_myaddress): resolve value of
2570         localhost_address amd.conf parameter, if defined (else default to
2571         HOST_SELF_CONNECT).
2572         Removed htonl() around socket address copying (I think it was
2573         wrong) since plog("My IP address is...") in amd.c was printing
2574         addresses wrong on Solaris x86..
2575
2576         * conf/transp/transp_sockets.c (amu_get_myaddress): comment out
2577         old DEBUG code that warns if 127.0.0.1 isn't the same as what
2578         get_myaddress() reports.  Add code to resolve value of
2579         localhost_address amd.conf parameter, if defined (else default to
2580         127.0.0.1).
2581
2582         * amd/conf.c (gopt_localhost_address): new function to parse
2583         amd.conf parameter localhost_address.
2584
2585         * amd/amd.h: global field to store amd.conf localhost_address
2586         parameter.
2587
2588         * amd/amd.c (main): call amu_get_myaddress with global option,
2589         which could have been set in amd.conf.
2590
2591         * NEWS, doc/am-utils.texi, scripts/amd.conf-sample,
2592         scripts/amd.conf.5: document new option localhost_address.
2593
2594 2004-01-20  Ion Badulescu  <ionut@moisil.badula.org>
2595
2596         * amd/conf.c (gopt_nfs_allow_insecure_port): support function for
2597         the new "nfs_allow_insecure_port" amd.conf directive
2598
2599         * amd/nfs_prot_svc.c (nfs_program_2): complain about the insecure
2600         port and drop the request only if the "nfs_allow_insecure_port"
2601         option is not set in amd.conf
2602
2603         * doc/am-utils.texi (Global Parameters): documented the new
2604         amd.conf directive "nfs_allow_insecure_port"
2605
2606         * scripts/amd.conf.5 (nfs_allow_insecure_port): ditto
2607
2608         * scripts/amd.conf-sample (nfs_allow_insecure_port): added the
2609         "nfs_allow_insecure_port" directive
2610
2611 2004-01-20  Erez Zadok  <ezk@cs.sunysb.edu>
2612
2613         * doc/am-utils.texi: amd-workers is defunct.
2614
2615 2004-01-19  Erez Zadok  <ezk@cs.sunysb.edu>
2616
2617         * cvs-server.txt: updated instructions
2618
2619 2004-01-18  Erez Zadok  <ezk@cs.sunysb.edu>
2620
2621         * minor new port: i386-unknown-freebsd5.2.
2622
2623 2004-01-05  Erez Zadok  <ezk@cs.sunysb.edu>
2624
2625         * MIRRORS.{txt,html}: verify each mirror site, update to new
2626         locations (if found), and remove stale mirrors URLs.
2627
2628         * updated copyright year to 2004 on all files.
2629
2630 2004-01-03  Erez Zadok  <ezk@cs.sunysb.edu>
2631
2632         * MIRRORS.txt: track status.
2633
2634         * Makefile.am (install-snapshot): new directory to install
2635         snapshots (now that am-utils home page is moved).
2636
2637 2004-01-02  Erez Zadok  <ezk@cs.sunysb.edu>
2638
2639         * INSTALL, README.autofs: remove forced text-mode.
2640
2641         * doc/am-utils.texi: fix Amd book URL.
2642
2643         * Makefile.am (EXTRA_DIST): include new mirror files in tarball.
2644
2645         * AUTHORS, BUGS, README, README.y2k, configure.in,
2646         doc/am-utils.texi: revisions to use newer URLs for Web site, FTP,
2647         and mailing lists.
2648
2649         * MIRRORS.{html,txt}: updates.
2650
2651         * doc/Makefile.am: install mirror lists officially.
2652
2653 2004-01-01  Erez Zadok  <ezk@cs.sunysb.edu>
2654
2655         * tasks: things to do after migrating ftp/Web sites.
2656
2657 2003-12-09  Erez Zadok  <ezk@cs.sunysb.edu>
2658
2659         * fsinfo/fsinfo.8: fixed typo (unbalanced []) in man page.  Bug
2660         report from Eric S. Raymond <esr@thyrsus.com>.
2661
2662 2003-11-18  Erez Zadok  <ezk@cs.sunysb.edu>
2663
2664         * Makefile.am (EXTRA_DIST_M4): exclude removed file
2665         m4/macros/struct_nfs_fh3.m4 from distro.
2666
2667 2003-10-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2668
2669         * libamu/xdr_func.c (xdr_am_nfs_fh3): Use AM_FHSIZE3 instead of
2670         FHSIZE3 (may be undefined).
2671
2672 2003-10-24  Ion Badulescu  <ion@guppy.limebrokerage.com>
2673
2674         Compile fix for Solaris7 with LDAP:
2675
2676         * include/am_defs.h: moved the ldap headers before am_nfs_prot.h
2677         to facilitate using ldap types in it
2678
2679         * conf/nfs_prot/nfs_prot_sunos5_7.h: add a couple of ldap
2680         definitions that Sun left out of their headers
2681
2682 2003-10-24  Ion Badulescu  <ionut@moisil.badula.org>
2683
2684         * conf/nfs_prot/nfs_prot_*.h: remove all NFSv3-related
2685         definitions, they are now defined globally
2686
2687         * libamu/xdr_func.c: unconditionally define all xdr functions
2688         needed for NFSv3, but with an am_ prefix to prevent namespace
2689         collisions
2690
2691         * amd/amfs_host.c, amd/ops_nfs.c, amd/srvr_nfs.c,
2692         libamu/mount_fs.c: added the am_ prefix to all
2693         structures and functions having to do with NFSv3 to prevent
2694         namespace collisions
2695
2696         * include/am_utils.h: moved definition of am_nfs_handle to ...
2697
2698         * include/am_xdr_func.h: ... here. Also define AM_FHSIZE3,
2699         am_nfs_fh3, AM_NFSPROC3_LOOKUP, am_nfsstat3, am_fhandle3,
2700         am_mountstat3, am_mountres3_ok, am_mountres3, am_filename3,
2701         am_diropargs3, am_LOOKUP3args, am_LOOKUP3resok, am_LOOKUP3resfail,
2702         am_LOOKUP3res here; remove cross-platform compile helper macros
2703         AMU_LOOKUP3RES_*.
2704
2705         * include/am_defs.h: include am_xdr_func.h before am_utils.h to
2706         provide definitions for NFS filehandles
2707
2708         * amd/amd.h: removed declaration for xdr_mountres3
2709
2710         * doc/am-utils.text: minor warning fix
2711
2712         * BUGS: document the autoconf warnings when trying to compile
2713         system header files in isolation
2714
2715 2003-10-23  Ion Badulescu  <ionut@moisil.badula.org>
2716
2717         * m4/macros/struct_nfs_fh3.m4: removed, not needed
2718
2719         * configure.in: check if struct mounta has the optptr field;
2720         removed all NFSv3-related checks, we implement everything
2721         internally now
2722
2723         * conf/autofs/autofs_solaris_v2_v3.c (autofs_mount_2_free): don't
2724         touch mnt->optptr unless HAVE_MOUNTA_OPTPTR is defined
2725
2726 2003-10-22  Ion Badulescu  <ionut@moisil.badula.org>
2727
2728         * m4/macros/struct_nfs_fh3.m4: removed, not used anymore
2729
2730         * libamu/xdr_func.c (xdr_am_nfs_fh3): update xdr_am_nfs_fh3
2731         comments
2732
2733         * configure.in: don't check for xdr_nfs_fh3 and struct nfs_fh3, we
2734         always use our own
2735
2736 2003-10-22  Ion Badulescu  <ion@guppy.limebrokerage.com>
2737
2738         * BUGS: document the limitations of bind mounts on Linux
2739
2740 2003-10-21  Ion Badulescu  <ionut@moisil.badula.org>
2741
2742         * buildall: added support for -i (make install)
2743
2744 2003-10-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2745
2746         * NEWS: New minor port i386-pc-solaris2.10 (Solaris 10).
2747         * INSTALL: Mention its test status.
2748
2749 2003-10-16  Erez Zadok  <ezk@cs.sunysb.edu>
2750
2751         * amd/ops_nfs.c (nfs_init): declare as static to match forward
2752         definition at top of file.
2753
2754         * conf/nfs_prot/nfs_prot_{hpux11, netbsd1_4,openbsd,aix5_2}.h:
2755         added missing definitions for LOOKUP3res, diropargs3, etc.
2756
2757 2003-10-15  Erez Zadok  <ezk@cs.sunysb.edu>
2758
2759         * libamu/xdr_func.c (xdr_LOOKUP3res, xdr_am_nfs_fh3),
2760         libamu/mount_fs.c (compute_nfs_args), amd/ops_nfs.c
2761         (got_nfs_fh_mount, got_nfs_fh_webnfs, prime_nfs_fhandle_cache,
2762         webnfs_lookup), amd/amfs_host.c (fetch_fhandle): Attempt to
2763         cleanup some inconsistencies with how we treat NFSv3 file handles.
2764         Whenever we need to get data out of a filehandle given to us, we
2765         assume that it uses the OS's native fhandle structure
2766         (often struct nfs_fh3).  When we store the fhandle data for our
2767         own use, however, we store it in one of two ways.  The first, is
2768         that we use the system's default nfs_fh3 structure; the second is
2769         that we define out own struct am_nfs_fh3 in nfs_prot.h (and go
2770         through an elaborate autoconf song-and-dance to "discover" it as a
2771         native fh3 handle structure).  It appears that we do the latter,
2772         instead of using the system's default fhandle structure, simply to
2773         avoid extra malloc's and free's, because whereas nfsv2's fhandle
2774         structure is a simple 32-byte buffer, nfsv3's fhandle structures
2775         often just define a "char *" for the fhandle data, and the caller
2776         must malloc/free the space inside as needed.  Our code was never
2777         written with constructor/destructor callbacks for these nfsv3
2778         filehandles.  Moreover, we carefully wrote our own am_nfs_fh3
2779         structure so IT JUST SO HAPPENS to align with most (hopefully all)
2780         of the fhandle structures for v3: first four bytes are the length
2781         fields and the next four bytes are the fhandle data.  Sigh.
2782         Having this inconsistent use of v3 filehandles can be a real bear,
2783         because we simply cannot avoid using the system's default fhandle
2784         structure indirectly, through things like diropargs3 in
2785         xdr_diropargs3(), which has inside of it a reference to the
2786         system's default nfs_fh3 structure.  ANYWAY, the current fix I've
2787         come up with is to generalize the way we dereference field names
2788         within the nfs_fh3 structure (whether ours or the system's) and
2789         the same for the system's LOOKUP3res structure.  I'm not pleased
2790         with this fix; I'd rather we don't use our own am_nfs_fh3
2791         structure at all.
2792
2793         * libamu/xdr_func.c (xdr_am_nfs_fh3): always define this
2794         function if we have NFS3, because we often use our own,
2795         incompatible am_nfs_fh3 structure.
2796
2797         * include/am_xdr_func.h: We cannot use the native system's
2798         xdr_nfs_fh3 because we are defining our own incompatible
2799         am_hfs_fh3 structure for some systems.
2800
2801         * include/am_xdr_func.h: Define default values for field names of
2802         struct nfs_fh3 and LOOKUP3res.
2803
2804         * doc/am-utils.texi (debug_options Parameter): minor typo fixed.
2805
2806         * conf/nfs_prot/nfs_prot_freebsd3.h: FreeBSD uses different fields
2807         names for struct nfs_fh3 and LOOKUP3res, so override the default
2808         names here.
2809
2810         * configure.in: AMU_CHECK_FS_MNTENT(nfs3) test before
2811         AMU_STRUCT_NFS_FH3, because the latter depends on the former.
2812
2813         * amd/ops_nfs.c (prime_nfs_fhandle_cache): add {} to disambiguate
2814         and clarify if-the-else clauses.
2815
2816 2003-10-13  Ion Badulescu  <ionut@moisil.badula.org>
2817
2818         * amd/get_args.c (get_version_string): change "Built by" to
2819         "Configured by", and add a new "Built by" line using the variables
2820         below
2821
2822         * m4/update_build_version (vers): add BUILD_USER, BUILD_HOST, and
2823         BUILD_DATE to build_version.h
2824
2825         * amd/mntfs.c (locate_mntfs): fix restarted filesystems: mf_fo
2826         must be initialized even for them, otherwise we lose opt_sublink
2827         (and perhaps other options as well). Report from Rainer Orth.
2828
2829         * amd/amfs_generic.c (amfs_bgmount): The fix for the mf_fo NULL
2830         pointer dereferencing was a bit too aggressive and could end up
2831         not processing the sublink option if the filesystem was already
2832         mounted.
2833
2834 2003-10-11  Ion Badulescu  <ionut@moisil.badula.org>
2835
2836         Fix restarted filesystem by disabling the amfs_inherit filesystem
2837         and moving the restarting logic into the generic code. The old
2838         code is still there, will be removed sometime in the near future.
2839
2840         * amd/mntfs.c (locate_mntfs): disable amfs_inherit and simply
2841         return the pointer to the restarted filesystem
2842         (free_mntfs): check for the MFF_RESTART flag instead of the
2843         amfs_inherit ops
2844
2845         * amd/autil.c (mf_mounted): remove the MFF_RESTART flag once the
2846         filesystem is in use
2847
2848         * amd/amfs_nfsx.c (amfs_nfsx_init): only call fs_init() if the
2849         filesystem is not being restarted
2850         (amfs_nfsx_remount): if the filesystem is already mounted,
2851         short-circuit the code and just continue
2852
2853         * amd/amfs_generic.c (amfs_bgmount): only call fs_init() if the
2854         filesystem is not being restarted; remove hack that was used to
2855         work around an amfs_inherit problem
2856
2857 2003-10-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2858
2859         Use WebNFS to obtain file handles for mount(2).
2860
2861         * NEWS: Document WebNFS support.
2862
2863         * configure.in: Check for public mount option.
2864         * include/am_compat.h (MNTTAB_OPT_PUBLIC): Define if missing.
2865         * doc/am-utils.texi (opts Option): Renamed webnfs to public,
2866         update description.
2867
2868         * amd/amd.h (FSF_WEBNFS): New mntfs flag.
2869         * include/am_utils.h (RPC_XID_WEBNFS): New XID type.
2870
2871         * amd/amfs_host.c (amfs_host_mount, amfs_host_umounted): Reject
2872         WebNFS mount/umount attempts.
2873         * amd/ops_nfs.c (got_nfs_fh_mount): Renamed from got_nfs_fh.
2874         (got_nfs_fh_webnfs): New function.
2875         (flush_nfs_fhandle_cache): Don't invalidate port for WebNFS servers.
2876         (prime_nfs_fhandle_cache): Likewise.
2877         Remove unconditional return of public file handle for WebNFS, but
2878         get NFS file handles via mountd or WebNFS instead.
2879         (webnfs_lookup): New function.
2880         (nfs_umounted): Don't inform mountd if MFF_WEBNFS.
2881         * amd/rpc_fwd.c (fwd_packet, fwd_reply): Send/receive WebNFS
2882         packets.
2883         * amd/srvr_nfs.c (recompute_portmap): Don't contact portmap for
2884         WebNFS servers.
2885         Mention host in info message.
2886         (find_nfs_srvr): Handle public mount option.
2887         Prefer NFSv3/tcp if the client supports it.
2888         Allow port mount option to override default or result from portmap
2889         lookup.
2890
2891         * libamu/xdr_func.c (xdr_diropargs3, xdr_filename3,
2892         xdr_LOOKUP3args, xdr_LOOKUP3res, xdr_LOOKUP3resfail,
2893         xdr_LOOKUP3resok, xdr_nfs_fh3, xdr_nfsstat3): New functions.
2894         * include/am_xdr_func.h: Declare them.
2895         * configure.in: Check for them.
2896         * conf/nfs_prot/nfs_prot_linux.h: Provide missing NFSv3
2897         definitions and types.
2898
2899 2003-10-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2900
2901         Support IRIX 6 private mount option.
2902
2903         * configure.in (AC_CHECK_MNTTAB_OPTS): Check for private option
2904         name string.
2905         (AC_CHECK_MNT2_NFS_OPTS): Check for private NFS mount option (IRIX 6).
2906         * aux/macros/header_templates.m4 (MNTTAB_OPT_PRIVATE,
2907         MNT2_NFS_OPT_PRIVATE): Provide templates.
2908         * include/am_compat.h (MNTTAB_OPT_PRIVATE): Define if missing.
2909         * doc/am-utils.texi (opts Option): Document it.
2910
2911 2003-10-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2912
2913         * doc/am-utils.texi (opts Option): Fix Tru64 UNIX name in proplist
2914         mount option.
2915
2916 2003-10-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2917
2918         * libamu/mount_fs.c (compute_nfs_args) [HAVE_NFS_ARGS_T_FH_LEN]:
2919         Don't reference removed fh3.
2920
2921 2003-10-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2922
2923         * NEWS: New minor port sparc-sun-solaris2.10 (Solaris 10).
2924
2925         * INSTALL: Mention test status of various ports.
2926         Describe IRIX 6 autofs status.
2927
2928 2003-10-09  Ion Badulescu  <ionut@moisil.badula.org>
2929
2930         * NEWS: updated
2931
2932         * amd/amfs_generic.c (amfs_bgmount): don't use mf_fo until after
2933         we've done all the tests and we know we have a valid and mountable
2934         mntfs. Otherwise we could end up dereferencing null pointers.
2935
2936         * amd/amd.h: fixed a copy&paste comment bug
2937
2938         * amd/am_ops.c (ops_match): minor code cleanup
2939
2940         * doc/am-utils.texi: fixed various typos; added warning about the
2941         racy nature of nfsx; removed duplicated listing of debug options;
2942         added paragraph about signals supported by hlfsd; removed the long
2943         list of (maybe) supported platforms since it duplicates the list
2944         in INSTALL.
2945
2946 2003-10-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2947
2948         Simplify FD_SET etc. use.
2949
2950         * include/am_defs.h (FD_SET, FD_ISSET, FD_CLR, FD_ZERO): Provide
2951         if missing.
2952         (rpc_pending_now, run_rpc): Use them.
2953         * configure.in: Check for fds_bits field in fd_set.
2954         * amd/nfs_start.c (run_rpc): Use it.
2955
2956 2003-10-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2957
2958         Improve RPC XID handling.
2959
2960         * amd/rpc_fwd.c (fwd_packet, fwd_reply): Always log xid.
2961         Convert xid to/from host/network byte order.
2962
2963 2003-10-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2964
2965         Use NFS V2/V3 file handles instead of mount results.
2966
2967         * include/am_utils.h (am_nfs_fhandle): Use NFS V2/V3 file handles
2968         only, not MOUNTPROC_MNT results.
2969         * amd/amfs_host.c (fetch_fhandle): Use local variables to store
2970         MOUNTPROC_MNT results.
2971         * amd/autil.c (amfs_mount): Use new am_nfs_fhandle_t.
2972         * amd/ops_nfs.c (struct fh_cache): New member fh_status.
2973         (got_nfs_fh): Use local variables to store MOUNTPROC_MNT results.
2974         Store MOUNTPROC_MNT errors in fh_status.
2975         (prime_nfs_fhandle_cache): Get fh_error from fh_status.
2976         * hlfsd/hlfsd.c (main): Use new am_nfs_fhandle_t.
2977         * libamu/mount_fs.c (compute_nfs_args): Copy NFS V2/V3 file
2978         handles straight from new am_nfs_fhandle_t.
2979
2980 2003-10-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2981
2982         * amd/clock.c (CID_ALLOC): Remove unused argument.
2983         (timeout): Likewise.
2984
2985         * amd/ops_nfs.c (FHID_ALLOC): Remove unused argument.
2986         (prime_nfs_fhandle_cache): Likewise.
2987         (call_mountd): Use UDPMSGSIZE instead of magic constant.
2988
2989         * amd/rpc_fwd.c (XID_ALLOC): Remove unused argument.
2990         (fwd_packet): Likewise.
2991         Handle TLOOK error from t_rcvudata().
2992
2993 2003-09-30  Ion Badulescu  <ionut@moisil.badula.org>
2994
2995         * NEWS: updated
2996
2997         * libamu/mount_fs.c (mount_fs): don't try to recreate the mount
2998         point if the mount fails with ENOENT: in the best case we would be
2999         papering over a bug, and in the worst case we could cause a
3000         deadlock (with autofs). If there are races, they need to be
3001         exposed and fixed properly.
3002
3003         * conf/autofs/autofs_solaris_v1.h,
3004           conf/autofs/autofs_solaris_v2_v3.h,
3005           conf/autofs/autofs_linux.h: (AUTOFS_NFSX_FS_FLAGS): autofs
3006         semantics don't allow us to mount nfsx directly onto an autofs
3007         mountpoint, so disallow it
3008
3009         * amd/amfs_nfsx.c (amfs_nfsx_match): more restrictive sanity check
3010         to avoid trying to memmove(foo, bar, (unsigned)-1) due to invalid
3011         map entries...
3012         (amfs_nfsx_cont): amfs_retry does most of the cleanup work for us
3013         in the upper layer, so don't do anything else beside wakeup() on
3014         success
3015         (amfs_nfsx_remount): only create the mountpoints as we need them,
3016         avoids creating them on the wrong filesystem in the case of
3017         hierarchical mounts; fix crash-generating typo (m should really be
3018         mf and I swear I hate single-character variable names)
3019
3020         * amd/amfs_generic.c (amfs_cont): one more dlog
3021         (amfs_bgmount): amazingly enough, even foreground mounts can be
3022         backgrounded (in the case of nfsx), so account for this
3023         possibility and permit retries
3024
3025         * m4/macros/check_autofs_style.m4 (AMU_AUTOFS_PROT_HEADER): define
3026         and AC_SUBST it as ${top_builddir}/amu_autofs_prot.h
3027
3028         * amd/Makefile.am ($(amd_OBJECTS) $(EXTRA_amd_OBJECTS)): depend on
3029         @AMU_AUTOFS_PROT_HEADER@
3030
3031 2003-09-29  Erez Zadok  <ezk@urd.fsl.cs.sunysb.edu>
3032
3033         * minor new port mipsel-unknown-linux-rhPS2 (Linux on Sony
3034         PlayStation 2)
3035
3036         * amd/srvr_nfs.c (find_nfs_srvr): don't run code that expects
3037         "char protocols[]" unless MNTTAB_OPT_PROTO is defined.
3038
3039 2003-09-26  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3040
3041         Consolidate alloca support.
3042
3043         * amd/amq_svc.c: Move alloca support ...
3044         * include/am_defs.h: ... here.
3045         * amd/conf_parse.y: Remove alloca support.
3046         * fsinfo/fsi_gram.y: Likewise.
3047
3048 2003-09-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3049
3050         Handle Solaris 10.
3051         * m4/macros/check_nfs_prot_headers.m4
3052         (AMU_CHECK_NFS_PROT_HEADERS): Don't use wildcards for
3053         sunos5.[0-3], solaris 2.[0-3], there were no micro releases.
3054         Explicitly match sunos5*, solaris2* for Solaris 8 and beyond.
3055
3056         * m4/macros/os_cflags.m4 (AMU_OS_CFLAGS): Dont use wildcards for
3057         solaris2.[0-5], sunos5.[0-5], but explicitly handle Solaris 2.5
3058         micro releases to cope with Solaris 2.5.1.
3059         Explicitly match solaris2*, sunos5*.
3060
3061 2003-09-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3062
3063         * amd/amq_svc.c: Provide alloca prerequisites.
3064
3065         * conf/transp/transp_tli.c (register_autofs_service): Fix typo.
3066
3067 2003-09-23  Ion Badulescu  <ion@opteron.tower-research.com>
3068
3069         * minor new port: x86_64-unknown-linux-rh2.9.5AS. (Red Hat
3070         Enterprise Linux 3.0 beta running on a 64-bit AMD64 platform)
3071
3072 2003-09-22  Ion Badulescu  <ionut@buggy.badula.org>
3073
3074         * conf/autofs/autofs_solaris_v1.c (autofs_mount_fs): compile fix
3075
3076 2003-09-19  Ion Badulescu  <ionut@moisil.badula.org>
3077
3078         * amd/amfs_nfsl.c (amfs_nfsl_match): checking opt_fs is not always
3079         enough, we should lstat() the sublink if it's defined.
3080         (amfs_nfsl_ffserver): ditto
3081         (ALL): Removed some obsolete comments. The nfsl code is now little
3082         more than a very straight-forward switch between link and nfs.
3083
3084         * amd/amfs_link.c (amfs_link_match): more up-to-date explanation
3085         for the prepend-the-dot hack for type link; also, the sublink is
3086         already normalized and absolute, so take advantage of that
3087
3088         * amd/amfs_generic.c (amfs_lookup_one_mntfs): the sublink is
3089         already normalized and absolute, so take advantage of that
3090
3091         * amd/am_ops.c (ops_match): normalize the sublink here, early into
3092         the matching process
3093
3094         * amd/autil.c (am_mounted): be consistent and accept both
3095         "nounmount" and "noumount" as pseudo mount options (same as
3096         "unmount" and "umount" nearby)
3097
3098         * amd/Makefile.am (build_version.h): fixed dependencies (depends
3099         on amd_OBJECTS, not OBJECTS -- which doesn't even exist)
3100
3101 2003-09-19  Erez Zadok  <ezk@dhcp8.fsl.cs.sunysb.edu>
3102
3103         * amd/amq_subr.c (amqproc_export_1_svc): force double casting to
3104         avoid gcc-3.3 complaints on Solaris 9 about "dereferencing
3105         type-punned pointer will break strict-aliasing rules".
3106
3107 2003-09-16  Ion Badulescu  <ionut@moisil.badula.org>
3108
3109         * Released beta version 6.1b4
3110
3111 2003-09-15  Ion Badulescu  <ionut@moisil.badula.org>
3112
3113         * doc/am-utils.texi (opts Option): removed documentation for old
3114         ignore_portmapper mount option, documented the new webnfs option
3115
3116         * NEWS: webnfs support
3117
3118         * amd/srvr_nfs.c (find_nfs_srvr): set MFF_WEBNFS if the "webnfs"
3119         (former "ignore_portmapper") mount option is present
3120
3121         * amd/ops_nfs.c (prime_nfs_fhandle_cache): generate a public
3122         filehandle (all zeros) if MFF_WEBNFS is set
3123         (nfs_umounted): don't talk to mountd if MFF_WEBNFS is set
3124
3125         * amd/amd.h (MFF_WEBNFS): new flag, obvious meaning
3126
3127 2003-09-13  Ion Badulescu  <ionut@moisil.badula.org>
3128
3129         * amd/srvr_nfs.c: renamed np_xid to global_xid; sanitized the
3130         NPXID_ALLOC macro and renamed it to XID_ALLOC; renamed start_ping
3131         to create_ping_payload; renamed nfs_pinged to
3132         nfs_keepalive_callback; renamed nfs_timed_out to
3133         nfs_keepalive_timeout; renamed nfs_srvr_port to get_mountd_port;
3134         made ping_buf and ping_len arrays with one element for each
3135         supported nfs version
3136
3137         * amd/amd.h: renamed nfs_srvr_port() to get_mountd_port()
3138
3139         * amd/amfs_host.c (amfs_host_init): ditto
3140
3141         * amd/ops_nfs.c (call_mountd): ditto
3142
3143 2003-09-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3144
3145         * BUGS: Mention fix for broken Solaris 8 <rpcsvc/autofs_prot.h>
3146         patches.
3147
3148 2003-08-31  Erez Zadok  <ezk@filer.fsl.cs.sunysb.edu>
3149
3150         * amd/autil.c (strealloc): don't call malloc_verify() unless it
3151         exists.
3152
3153         * configure.in: move "OPTION PROCESSING" section (opt_debug etc.)
3154         after we figure out PROG_CC and other compiler features, because
3155         some of the option processing macros need a compiler to function.
3156
3157         * libamu/xutil.c: don't define variables that won't be used unless
3158         mallinfo() and malloc_verify() exist.
3159         (real_plog): don't call checkup_mem unless
3160         mallocinfo() and malloc_verify() exist.
3161         (checkup_mem): don't define this function unless mallocinfo() and
3162         malloc_verify() exist.
3163
3164         * m4/macros/opt_debug.m4: check for functions malloc_verify and
3165         mallinfo in general libraries and then in libmapmalloc and
3166         libmalloc.  These seem to have disappeared in FreeBSD 5.x.
3167
3168         * libamu/xutil.c (dxfree): print pointer using %p
3169
3170 2003-08-29  Erez Zadok  <ezk@a-opendarwin.fsl.cs.sunysb.edu>
3171
3172         * configure.in: start 6.1b4-pre officially (belated)
3173
3174         * minor new port: i686-apple-darwin6.6
3175
3176 2003-08-27  Ion Badulescu  <ionut@moisil.badula.org>
3177
3178         * conf/autofs/autofs_solaris_v1.c: convert relative targets to
3179         absolute paths when using lofs mounts
3180
3181         * conf/autofs/autofs_solaris_v2_v3.c: ditto
3182
3183         * conf/autofs/autofs_linux.c: ditto
3184
3185 2003-08-27  Ion Badulescu  <ionut@buggy.badula.org>
3186
3187         * README.autofs: added a paragraph about the resource consumption
3188         of auto maps over autofs
3189
3190         * amd/amfs_generic.c (amfs_lookup_one_mntfs): moved the setting of
3191         the MFF_IS_AUTOFS flag from init_mntfs() to
3192         amfs_lookup_one_mntfs(), where it belongs
3193
3194         * amd/mntfs.c (init_mntfs): ditto
3195
3196 2003-08-27  Ion Badulescu  <ion@guppy.limebrokerage.com>
3197
3198         * amd/ops_nfs.c (got_nfs_fh): make the error EACCES if we are
3199         denied a filehandle by the server (used to be EIO)
3200
3201 2003-08-27  Erez Zadok  <ezk@a-bsdi42.fsl.cs.sunysb.edu>
3202
3203         * conf/nfs_prot/nfs_prot_bsdi3.h: support na_uid and na_gid.
3204
3205 2003-08-27  Ion Badulescu  <ionut@moisil.badula.org>
3206
3207         * conf/autofs/autofs_linux.c (autofs_mount_succeeded): force
3208         daemon-initiated timeouts on autofs filesystems, since apparently
3209         they appear as "always busy" to the kernel-based expiration routine
3210
3211 2003-08-26  Ion Badulescu  <ionut@buggy.badula.org>
3212
3213         * NEWS: updated
3214
3215         * conf/autofs/autofs_linux.h (AUTOFS_LINK_FS_FLAGS): remove
3216         FS_ON_AUTOFS
3217         (AUTOFS_LINKX_FS_FLAGS): ditto
3218
3219         * conf/autofs/autofs_solaris_v1.h (AUTOFS_LINK_FS_FLAGS): remove
3220         FS_ON_AUTOFS
3221         (AUTOFS_LINKX_FS_FLAGS): ditto
3222
3223         * conf/autofs/autofs_solaris_v2_v3.h (AUTOFS_LINK_FS_FLAGS): remove
3224         FS_ON_AUTOFS
3225         (AUTOFS_LINKX_FS_FLAGS): ditto
3226
3227         * amd/amfs_generic.c (amfs_lookup_one_mntfs): don't modify the
3228         original opt_fs, instead store the new mount point for autofs in a
3229         temporary variable and pass it around. Fixes a problem with the
3230         link side of nfsl.
3231
3232 2003-08-25  Ion Badulescu  <ionut@moisil.badula.org>
3233
3234         * NEWS: updated
3235
3236         * amd/ops_nfs.c (prime_nfs_fhandle_cache): use get_mntfs_wchan to
3237         initialize the fh_wchan member of the cache entry
3238         (prime_nfs_fhandle_cache): use get_mntfs_wchan for the wchan_t
3239         argument of call_mountd()
3240
3241         * amd/map.c (free_map_if_success): use get_mntfs_wchan for the
3242         wchan_t argument of wakeup()
3243
3244         * amd/amfs_nfsx.c (amfs_nfsx_cont): use get_mntfs_wchan for the
3245         wchan_t argument of wakeup_task() and wakeup()
3246
3247         * amd/amfs_host.c (amfs_host_init): use get_mntfs_wchan for the
3248         wchan_t argument of nfs_srvr_port()
3249
3250         * amd/amfs_generic.c (ALL): use get_mntfs_wchan for the wchan_t
3251         argument of sched_task() and wakeup()
3252         (amfs_retry): minor cleanup
3253         (amfs_bgmount): call nfs_quick_reply on failure
3254
3255         * amd/sched.c (get_mntfs_wchan): new function which calls the
3256         member function get_wchan if defined, otherwise returns the mntfs
3257         pointer itself
3258
3259         * amd/amfs_inherit.c (amfs_inherit_get_wchan): new function,
3260         calls get_mntfs_wchan() on the inherited filesystem
3261
3262         * amd/amfs_*.c, amd/ops_*.c: initialize the new get_wchan member
3263         of the ops to 0
3264
3265         * amd/amd.h: new function type vget_wchan
3266         (struct mntfs): new member get_wchan which returns the waiting
3267         channel associated with the mntfs (normally itself)
3268
3269 2003-08-22  Ion Badulescu  <ion@guppy.limebrokerage.com>
3270
3271         * conf/mount/mount_linux.c (parse_opts): minor cleanup
3272
3273         * conf/autofs/autofs_linux.c (autofs_handle_fdset): added missing
3274         break in case autofs_ptype_expire_multi
3275
3276 2003-08-22  Ion Badulescu  <ionut@moisil.badula.org>
3277
3278         * conf/autofs/autofs_solaris_v1.h: undefine autofs support if
3279         autofs_args_t cannot be determined (hopefully fixes a reported
3280         IRIX 6.5.4 problem).
3281
3282         * conf/autofs/autofs_solaris_v1.c: wrap entire file in #ifdef
3283         HAVE_FS_AUTOFS / #endif (see above)
3284
3285         * conf/autofs/autofs_linux.h: undefine autofs support if the
3286         necessary header files are not found (fixes a reported RedHat 6.2
3287         Sparc problem).
3288
3289         * conf/autofs/autofs_linux.c: wrap entire file in #ifdef
3290         HAVE_FS_AUTOFS / #endif (see above)
3291
3292         * libamu/mount_fs.c (compute_nfs_args): only use MNT2_NFS_OPT_SOFT
3293         if autoconf detected it (fixes a reported RedHat 6.2 Alpha problem).
3294
3295         * amd/map.c (unmount_mp, unmount_exported): move the code that
3296         changes the fattr from NFLNK to NFDIR from unmount_mp to
3297         unmount_exported, it was causing troubles (ESTALE) after failed
3298         unmounts. This is still very very unclean, but it's the same as the
3299         old 6.0 code.
3300
3301 2003-08-22  Nick Williams <Nick.Williams@morganstanley.com>
3302
3303         * amd/info_ldap.c (amu_ldap_init): don't try to pass a null
3304         pointer as a string to plog, Solaris (and other OS's) don't like
3305         it and will dump core.
3306
3307 2003-08-13  Ion Badulescu  <ion@guppy.limebrokerage.com>
3308
3309         * amd/amd.h: introduced two new types, wchan_t and opaque_t, as
3310         aliases of voidp. This makes reading the code easier on the eyes. :)
3311
3312         * ALL: replace various instances of voidp with wchan_t and
3313         opaque_t, as appropriate
3314
3315 2003-08-13  Ion Badulescu  <ionut@nicu.badula.org>
3316
3317         * NEWS, configure.in: bumped version up to 6.1b4-pre
3318
3319 2003-08-13  Ion Badulescu  <ionut@moisil.badula.org>
3320
3321         * Released beta version 6.1b3
3322
3323 2003-08-13  Ion Badulescu  <ion@guppy.limebrokerage.com>
3324
3325         * conf/autofs/autofs_linux.c (autofs_mount_fs): HACK: always use
3326         symlinks for host mounts; assorted fixes for the symlink mode
3327
3328 2003-08-05  Ion Badulescu  <ionut@moisil.badula.org>
3329
3330         * conf/umount/umount_default.c (umount_fs): enable space hack
3331         handling for autofs v1
3332
3333         * amd/map.c (get_first_exported_ap, get_next_exported_ap): new
3334         functions that facilitate iterating through the list of
3335         mountpoints
3336
3337         * amd/amfs_union.c (amfs_union_mounted): use get_first_exported_ap
3338         and get_next_exported_ap
3339
3340         * conf/autofs/autofs_solaris_v2_v3.c (autofs_unmount_2_req): ditto
3341
3342 2003-08-04  Erez Zadok  <ezk@ulkesh.dyn.optonline.net>
3343
3344         * configure.in: check if system stores mount tables in files
3345         (usually in /etc), and configure couldn't find a definition for
3346         either struct mntent or struct mnttab.  If so, abort configure
3347         because this could be a new/misconfigured system, or a bug in
3348         am-utils.
3349
3350 2003-08-04  Ion Badulescu  <ionut@moisil.badula.org>
3351
3352         * conf/autofs/autofs_solaris_v2_v3.c (autofs_umount_fs): fix
3353         compile warning
3354
3355 2003-08-04  Ion Badulescu  <ionut@buggy.badula.org>
3356
3357         * conf/autofs/autofs_linux.c (autofs_mount_fs): don't call
3358         ops->mount_fs() for an already mounted filesystem
3359         (autofs_umount_fs): only call ops->umount_fs() if we're holding
3360         the last reference to the filesystem
3361
3362         * conf/autofs/autofs_solaris_v1.c (autofs_mount_fs): ditto
3363         (autofs_umount_fs): ditto
3364
3365         * conf/autofs/autofs_solaris_v2_v3.c (autofs_mount_fs): ditto
3366         (autofs_umount_fs): ditto
3367
3368         * amd/amfs_generic.c (amfs_lookup_mntfs): remove the shortcut for
3369         already-mounted filesystems
3370         (amfs_cont): only release the autofs_fh if the filesystem is not
3371         mounted; add another comment about the NFS_SCALEDOWN hack
3372         (amfs_bgmount): if the mntfs is already mounted, skip just the
3373         filesystem initialization, but do call mount_node()
3374
3375         * amd/map.c (mount_node): always call autofs_mount_fs(), but only
3376         call ops->mount_fs() if the mntfs is not yet mounted
3377         (unmount_node): always call autofs_umount_fs(), but only call
3378         ops->umount_fs() if the refcount on the mntfs equals 1.
3379
3380 2003-08-02  Erez Zadok  <ezk@filer.fsl.cs.sunysb.edu>
3381
3382         * conf/nfs_prot/nfs_prot_openbsd.h: include <ufs/ufs/ufsmount.h>
3383         here with the proper workarounds for openbsd3.3 (define MAXQUOTAS,
3384         define dummy struct netexport, and include <ufs/ufs/extattr.h>
3385         wrapped in _KERNEL).
3386
3387         * conf/nfs_prot/nfs_prot_freebsd3.h: include <ufs/ufs/ufsmount.h>
3388         here with the proper workarounds for freebsd5.1 (define dummy
3389         struct ufs_extattr_per_mount).
3390
3391         * conf/nfs_prot/nfs_prot_bsdi2.h: include <ufs/ufs/ufsmount.h>
3392         here with the proper workarounds for bsdi2 (define MAXQUOTAS and
3393         dummy struct netexport).
3394
3395         * include/mount_headers1.h: do not include <ufs/ufs/ufsmount.h>
3396         here, b/c every *BSD system has some sort of problem in including
3397         this header file, which includes ugly workarounds.  Inclusion of
3398         this header was already moved out of am_defs.h (used to compile
3399         amd), but we forgot to move it out of mount_headers1.h (used to
3400         configure).  The specific inclusion of ufsmount.h is now in the OS
3401         specific nfs_prot.h file.
3402
3403         * configure.in: if configure could not find any definition for
3404         "struct nfs_args", abort configure with an explanatory message.
3405         There's no point in continuing, as this could be a system bug,
3406         buggy am-utils, or a new system to which am-utils wasn't ported to
3407         yet.
3408
3409         * minor new port: i386-pc-solaris2.9
3410
3411 2003-08-01  Ion Badulescu  <ionut@buggy.badula.org>
3412
3413         * doc/am-utils.texi (NFS-Link Filesystem): make the documentation
3414         match the code (as well as basic logic operations: the negation of
3415         'a or b' is 'not a and not b', not 'not a or not b')
3416
3417 2003-08-01  Erez Zadok  <ezk@filer.fsl.cs.sunysb.edu>
3418
3419         * minor new port: i386-unknown-openbsd3.3.
3420
3421         * m4/macros/check_libwrap_severity.m4: new macro to check if
3422         libwrap includes the integer variables deny_severity and
3423         allow_severity, since some libwrap implementations do and others
3424         don't.  The test tries to compile and run a simple empty main()
3425         program, then the same program while defining these two variables:
3426         comparing the results of the two tests, we can tell whether we
3427         should define NEED_LIBWRAP_SEVERITY_VARIABLES.
3428
3429         * Makefile.am (EXTRA_DIST_M4): distribute new macro
3430         check_libwrap_severity.m4.
3431
3432         * m4/macros/header_templates.m4: template for HAVE_LIBWRAP (which
3433         we must define explicitly since we've overridden the
3434         action-if-found in AC_CHECK_LIB(wrap).  Also template for
3435         NEED_LIBWRAP_SEVERITY_VARIABLES.
3436
3437         * amd/amq_svc.c: if libwrap does not include the severity
3438         variables, then define and initialize them here.
3439
3440         * amd/Makefile.am (LIBS): explicitly include @WRAPLIB@ only for
3441         Amd binary.  Other am-utils binaries don't need -lwrap.
3442
3443         * configure.in: if libwrap is found, only define it in @WRAPLIB@,
3444         so we don't automatically link every am-utils binary with -lwrap.
3445         Run test for existence of severity variables in libwrap.
3446
3447 2003-07-31  Erez Zadok  <ezk@filer.fsl.cs.sunysb.edu>
3448
3449         * conf/nfs_prot/nfs_prot_openbsd.h: define struct fattr fields uid
3450         and gid.
3451
3452         * configure.in: move check for AC_CHECK_LIB(libwrap) as far down
3453         as possible because on modern tcpwrapper systems such as openbsd,
3454         the caller must provide two symbols: deny_severity and
3455         allow_severity, which determine the logging level of rejected and
3456         requested requests, respectively.  If this check happens too
3457         early, then $LIBS includes -lwrap, which causes many subsequent
3458         tests that need to run a compiled program to fail with missing
3459         symbols.
3460
3461         * m4/macros/header_templates.m4: fix typo in template for
3462         readdirplus.
3463
3464         * configure.in: check for <ufs/ufs/extattr.h> (OpenBSD 3.3)
3465
3466         * minor new port: i386-unknown-netbsdelf1.6.1.
3467
3468         * configure.in: save state before system-specific tests are run.
3469
3470         * m4/macros/check_gnu_getopt.m4: do NOT abort ./configure just
3471         because the compiled test program failed to run.
3472
3473 2003-08-01  Ion Badulescu  <ionut@buggy.badula.org>
3474
3475         * NEWS, README.autofs: updated
3476
3477         * libamu/mount_fs.c (mount_fs): added support for the space hack
3478
3479         * doc/am-utils.texi: mention than UFS/XFS/EFS/CacheFS filesystems
3480         are not expired by default; correct and expand the section
3481         describing the program filesystem
3482
3483         * conf/autofs/autofs_solaris_v2_v3.h (AUTOFS_*_FS_FLAGS): add
3484         FS_ON_AUTOFS for supported filesystems
3485
3486         * conf/autofs/autofs_solaris_v2_v3.c (autofs_mount_fs): call
3487         mf->mount_fs()
3488         (autofs_umount_fs): call mf->umount_fs()
3489
3490         * conf/autofs/autofs_solaris_v1.h (autofs_strdup_space_hack): add
3491         prototype for malloc()
3492         (AUTOFS_*_FS_FLAGS): lose the FS_MKMNT flags, add FS_ON_AUTOFS for
3493         supported filesystems
3494
3495         * conf/autofs/autofs_solaris_v1.c (autofs_mount_fs): add support
3496         for the space hack; call mf->mount_fs()
3497         (autofs_umount_fs): add support for the space hack; call
3498         mf->umount_fs()
3499         (autofs_mount_succeeded): add support for the space hack
3500
3501         * conf/autofs/autofs_linux.h: lose the FS_MKMNT flags, add
3502         FS_ON_AUTOFS for supported filesystems
3503
3504         * conf/autofs/autofs_linux.c (AUTOFS_MAX_VERSION): define to
3505         AUTOFS_MAX_PROTO_VERSION instead of hardcoding to 4
3506         (autofs_mounted): host mounts are now supported on all autofs
3507         versions, remove the hack to turn it off on v3
3508         (autofs_mount_fs): call mf->mount_fs(), create/remove mountpoints
3509         as needed
3510         (autofs_umount_fs): call mf->umount_fs(), remove mountpoints on
3511         success
3512         (ALL): use '#if AUTOFS_MAX_VERSION >= 4' instead of
3513         '#ifdef autofs_ptype_expire_multi'
3514
3515         * amd/map.c (mount_node): autofs_mount_fs() now calls
3516         mf->mount_fs() internally
3517         (unmount_node): autofs_umount_fs() now calls mf->umount_fs()
3518         internally
3519
3520         * amd/autil.c (am_mounted): minor cleanup
3521
3522         * amd/amfs_program.c (amfs_program_ops): added FS_MKMNT to
3523         nfs_fs_flags
3524
3525         * amd/amfs_generic.c (amfs_lookup_one_mntfs): use the FS_ON_AUTOFS
3526         flag instead of hardcoding filesystem types
3527         (amfs_bgmount): better mount_type logging
3528
3529         * amd/amd.h (FS_ON_AUTOFS): new flag which tells the code that
3530         this filesystem can be mounted directly onto an autofs mountpoint
3531
3532 2003-07-31  Ion Badulescu  <ionut@buggy.badula.org>
3533
3534         * amd/amfs_nfsl.c (amfs_nfsl_umount): fix copy&paste error (was
3535         calling amfs_link_ops.umount_fs() for NFS filesystems)
3536         (amfs_nfsl_umounted): remove rmdirs() hack, it is now handled
3537         properly elsewhere
3538         (amfs_nfsl_ffserver): remove FS_MKMNT from mf_fsflags if we're
3539         using link (not NFS)
3540
3541 2003-07-31  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3542
3543         * README.autofs: Correct IRIX spelling.
3544         AutoFS support exists only on IRIX 6.
3545         Update IRIX 6 status.
3546
3547         Allow AutoFS V1 support to compile on IRIX 6.
3548         * conf/autofs/autofs_solaris_v1.c (autofs_mount_1_req): Add
3549         SVCXPRT * arg.
3550         Remove superfluous \n from dlog messages.
3551         (autofs_unmount_1_req): Likewise.
3552         Switch to get_exported_ap.
3553         (autofs_program_1): Invoke handlers with additional transp arg.
3554         * conf/autofs/autofs_solaris_v1.h: Use autofs_args_t to define
3555         autofs_fh_t, struct auto_args doesn't exist on IRIX 6.
3556
3557         * conf/mount/mount_irix6.c (mount_irix) [HAVE_FS_AUTOFS]: Support
3558         AutoFS mounts.
3559         [HAVE_FS_LOFS]: Likewise for lofs mounts.
3560
3561         * conf/nfs_prot/nfs_prot_irix6.h (AUTOFS_CONFTYPE): Define.
3562         Don't disable AutoFS support any more.
3563
3564         * conf/transp/transp_sockets.c [HAVE_FS_AUTOFS && AUTOFS_PROG]
3565         (register_autofs_service): Define autofs_xprt.
3566
3567         * m4/macros/check_autofs_style.m4 (AMU_CHECK_AUTOFS_STYLE): Update
3568         Solaris 8+ comment to mention AutoFS V4.
3569         (irix6*): Enable AutoFS V1 support on IRIX 6.
3570
3571 2003-07-30  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
3572
3573         * NEWS, doc/am-utils.texi, scripts/amd.conf.5: revised explanation
3574         of autofs_use_lofs.
3575
3576 2003-07-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3577
3578         * amd/ops_efs.c (efs_mount): Replace on_autofs arg with
3579         MFF_ON_AUTOFS flag.
3580         (efs_umount): Likewise.
3581
3582 2003-07-30  Erez Zadok  <ezk@filer.fsl.cs.sunysb.edu>
3583
3584         * conf/umount/umount_bsd44.c (umount_fs): convert to new way of
3585         unmounting which takes autofs into account.
3586
3587 2003-07-30  Ion Badulescu  <ionut@moisil.badula.org>
3588
3589         * ALL: renamed MFF_AUTOFS to MFF_IS_AUTOFS; removed mf_real_mount
3590         hack; pass a new on_autofs argument to mount/umount function,
3591         based on the MFF_ON_AUTOFS mntfs flag
3592
3593         * NEWS, README.autofs: updated
3594
3595         * scripts/amd.conf.5: document new option autofs_use_lofs
3596
3597         * scripts/amd.conf-sample (autofs_use_lofs): document new option
3598
3599         * m4/macros/check_autofs_style.m4 (am_utils_link_files): symlink
3600         the autofs header as amu_autofs_prot.h instead of slurping it into
3601         aux_conf.h
3602
3603         * libamu/mount_fs.c (mount_fs): removed old stub, renamed
3604         mount_fs2 to mount_fs, added new argument on_autofs
3605
3606         * doc/am-utils.texi (Direct Automount Filesystem): document
3607         problems with nfs direct mounts on modern kernels, document good
3608         autofs support for direct mounts on Solaris
3609         (autofs_use_lofs Parameter): document this new option
3610         (browsable_dirs Parameter): note that mount storms are avoided
3611         when using autofs
3612
3613         * conf/umount/umount_bsd44.c (umount_fs): removed old stub,
3614         renamed umount_fs2 to umount_fs
3615
3616         * conf/umount/umount_osf.c (umount_fs): removed old stub,
3617         renamed umount_fs2 to umount_fs, added new argument on_autofs
3618
3619         * conf/umount/umount_default.c (umount_fs): ditto as above; return
3620         an error on ENOENT instead of faking success
3621
3622         * conf/autofs/autofs_solaris_v2_v3.c (autofs_lookup_2_req): much
3623         simplified, now only consults the map for existance of the key and
3624         returns success if key is found
3625         (autofs_mount_2_req): request symlinks if CFM_AUTOFS_USE_LOFS is
3626         not on;
3627         (autofs_mount_2_free): implemented
3628         (autofs_unmount_2_req): use get_exported_ap() instead of
3629         referencing export_ap directly
3630         (autofs_mount_succeeded): remove code for replying to lookup
3631         requests, now only mount requests can end up here
3632         (autofs_mount_failed): ditto
3633
3634         * conf/autofs/autofs_solaris_v1.h (AUTOFS_HOST_FS_FLAGS): removed
3635         FS_AUTOFS
3636         (AUTOFS_DIRECT_FS_FLAGS): added FS_DIRECTORY
3637
3638         * conf/autofs/autofs_solaris_v2_v3.h (AUTOFS_HOST_FS_FLAGS): removed
3639         FS_AUTOFS
3640         (AUTOFS_DIRECT_FS_FLAGS): added FS_DIRECTORY
3641         (AUTOFS_LINK_FS_FLAGS): added FS_MBACKGROUND
3642
3643         * conf/autofs/autofs_linux.c (autofs_bind_umount): new function,
3644         factored out of autofs_umount_fs()
3645         (autofs_mount_fs): renamed from autofs_link_mount() and expanded
3646         to deal with filesystems mounted indirectly (via lofs/bind
3647         mounts) on autofs and to observe the new CFM_AUTOFS_USE_LOFS flag
3648         (autofs_umount_fs): ditto, from autofs_link_umount()
3649
3650         * conf/autofs/autofs_solaris_v1.c (autofs_mount_fs): ditto
3651         * (autofs_umount_fs): ditto
3652
3653         * conf/autofs/autofs_solaris_v2_v3.c (autofs_mount_fs): ditto
3654         * (autofs_umount_fs): ditto
3655
3656         * amd/opts.c: made fs_static static
3657
3658         * amd/ops_nfs.c: made nfs_init, nfs_match, nfs_mount, nfs_umount
3659         and nfs_umounted static
3660         (mount_nfs_fh): removed unnecessary arguments
3661
3662         * amd/ops_cachefs.c (cachefs_ops): use amfs_generic_find_srvr for
3663         the ffserver method, because using NULL causes problems
3664
3665         * amd/ops_cdfs.c (cdfs_ops): ditto
3666
3667         * amd/ops_efs.c (efs_ops): ditto
3668
3669         * amd/ops_lofs.c (lofs_ops): ditto
3670
3671         * amd/ops_pcfs.c (pcfs_ops): ditto
3672
3673         * amd/ops_ufs.c (ufs_ops): ditto
3674
3675         * amd/ops_xfs.c (xfs_ops): ditto
3676
3677         * amd/nfs_subr.c (fh_to_mp3, fh_to_mp, mp_to_fh): moved here from
3678         map.c
3679
3680         * amd/nfs_start.c: use get_exported_ap() instead of referencing
3681         exported_ap directly
3682
3683         * amd/mntfs.c (locate_mntfs): new function, factored out of
3684         find_mntfs
3685         (locate_mntfs): special-case FS_DIRECT filesystems: for direct
3686         mounts we will have two filesystems mounted on the same m/p
3687         (realloc_mntfs): removed the old EZK hack for failovers
3688
3689         * amd/map.c (get_exported_ap): new function that returns an
3690         exported_ap member by its index
3691         (root_node,exported_ap,exported_ap_size,first_free_map,last_used_map):
3692         made static
3693         (fh_to_mp3, fh_to_mp, mp_to_fh): moved to nfs_subr.c
3694         (get_root_ap): removed unused second argument
3695         (unmount_mp): moved the mk_fattr(NFDIR) here from umount_exported
3696         to catch more cases
3697         (mount_node): call autofs_mount_fs after ops->mount_fs for autofs
3698         nodes
3699         (unmount_node): call autofs_umount_fs before ops->umount_fs for
3700         autofs nodes
3701
3702         * amd/conf.c: new global option "autofs_use_lofs", takes yes/no
3703         values
3704
3705         * amd/autil.c (amfs_mount): take an extra argument (mf)
3706         (amfs_mount): call autofs_compute_mount_flags() for mounts
3707         directly on autofs m/p
3708         (am_unmounted): document and avoid the race between am_umounted()
3709         at shutdown time and amfs_cont()
3710
3711         * amd/amfs_union.c (amfs_union_mounted): use get_exported_ap()
3712         instead of referencing internal map variables directly
3713
3714         * amd/amq_subr.c (amqproc_export_1_svc): ditto
3715
3716         * amd/amfs_toplvl.c (amfs_toplvl_ops): removed FS_AUTOFS from
3717         nfs_fs_flags
3718         (amfs_toplvl_mount): pass extra argument (mf) to amfs_mount()
3719         (amfs_toplvl_umount): refuse to attempt the unmount if the
3720         mountpoint is not a directory
3721
3722         * amd/amfs_nfsx.c (amfs_nfsx_init): propagate the MFF_ON_AUTOFS
3723         flag into the nfs f/s at the bottom of the stack
3724
3725         * amd/amfs_nfsl.c: call nfs and link member functions through
3726         their respective am_ops structures, not directly
3727
3728         * amd/amfs_linkx.c (amfs_linkx_umount): new static stub
3729
3730         * amd/amfs_link.c: made amfs_link_mount() and amfs_link_umount()
3731         static functions
3732         (amfs_link_mount): removed call to autofs_link_mount()
3733         (amfs_link_umount): removed call to autofs_link_umount()
3734
3735         * amd/amfs_host.c (amfs_host_ops): removed FS_AUTOFS from
3736         nfs_fs_flags
3737         (do_mount): removed superfluous function arguments
3738
3739         * amd/amfs_direct.c (amfs_direct_ops): removed FS_AUTOFS from
3740         nfs_fs_flags
3741
3742         * amd/amfs_auto.c (amfs_auto_ops): removed FS_AUTOFS from
3743         nfs_fs_flags
3744         (amfs_auto_mount): pass extra argument (mf) to amfs_mount
3745
3746         * amd/amd.h (CFM_AUTOFS_USE_LOFS): new flag, tells amd whether to
3747         use lofs-mounts or symlinks when mounting on autofs
3748         (CFM_DEFAULT_FLAGS): added CFM_AUTOFS_USE_LOFS
3749         (VLOOK_LOOKUP): new flag, will merely check if a key exists
3750         (MFF_IS_AUTOFS): renamed from MFF_AUTOFS
3751         (MFF_ON_AUTOFS): new flag, tells amd if a f/s is mounted directly
3752         on an autofs m/p, or indirectly via a lofs mount/symlink
3753         (fh_to_mp2): macro expanded throughout the code and removed
3754         (mntfs): removed mf_real_mount hack
3755         (autofs_mount_fs): renamed from autofs_link_mount
3756         (autofs_umount_fs): renamed from autofs_link_umount
3757         (mount_lofs): exposed
3758         various other cleanups, functions/variables made static and removed
3759
3760         * aux_conf.h.in: removed @am_utils_autofs_style@, it is now
3761         included directly as amu_autofs_prot.h
3762
3763 2003-07-24  Erez Zadok  <ezk@whitestar.dyn.optonline.net>
3764
3765         * doc/am-utils.texi, scripts/amd.conf.5: document that
3766         use_tcpwrappers is "yes" by default.
3767
3768         * amd/amd.c (init_global_options): set default global options.
3769
3770         * amd/amd.h (CFM_DEFAULT_FLAGS): define default options which
3771         are always on (plock and use_tcpwrappers).
3772
3773         * scripts/amd.conf-sample: reorganize values per option so default
3774         one is listed first.
3775
3776 2003-07-23  Erez Zadok  <ezk@filer.fsl.cs.sunysb.edu>
3777
3778         * tasks: trim old stuff.  Discuss new parser.
3779
3780         * amd/conf.c (set_conf_kv): initialize the very first map in conf
3781         file from global defaults.  Bug fix which was introduced after
3782         conf.c code restructuring.
3783
3784 2003-07-18  Erez Zadok  <ezk@filer.fsl.cs.sunysb.edu>
3785
3786         * m4/macros/header_templates.m4: template for
3787         HAVE_EXTERN_HOSTS_CTL.
3788
3789         * include/am_defs.h: define extern for hosts_ctl() if needed.
3790
3791         * configure.in (AMU_CHECK_EXTERNS): check for extern definition
3792         for libwrap's hosts_ctl() (FreeBSD 5.0 doesn't have it).
3793
3794         * m4/macros/check_extern.m4: include tcpd.h if it and libwrap exist.
3795
3796 2003-07-18  Erez Zadok  <ezk@cs.sunysb.edu>
3797
3798         * hlfsd/hlfsd.h: redundant extern for mboxfile removed.
3799
3800         * amd/amq_svc.c (amq_program_1): only check for tcpwrappers if
3801         amd.conf global option use_tcpwrappers=yes.
3802
3803         * scripts/amd.conf.5, scripts/amd.conf-sample (use_tcpwrappers),
3804         doc/am-utils.texi (use_tcpwrappers Parameter): document new
3805         amd.conf global option.
3806
3807         * amd/conf.c (gopt_use_tcpwrappers): define a new amd.conf global
3808         option called use_tcpwrappers ("no" by default).
3809
3810         * amd/amq_svc.c (amqsvc_is_client_allowed): include tcpd/libwrap
3811         code only if both libwrap and tcpd.h exist.
3812         (amq_program_1): log warning when an Amq service client is denied,
3813         and a debug message when a client is allowed.
3814
3815         * amd/amd.h (CFM_USE_TCPWRAPPERS): define [global] amd.conf flag.
3816         (AMD_SERVICE_NAME): define AMD_SERVICE_NAME for tcpd/libwrap.
3817
3818         * include/am_defs.h: include tcpd.h if available and libwrap
3819         available.
3820
3821         * configure.in: check for tcpd.h.
3822
3823 2003-07-18  Erez Zadok  <ezk@filer.fsl.cs.sunysb.edu>
3824
3825         * scripts/expn.1, amd/amd.8 amq/amq.8, fixmount/fixmount.8,
3826         hlfsd/hlfsd.8, scripts/expn.1: remove ".PD 0" nroff command
3827         because it removes useful spaces in between paragraphs.  Based on
3828         smaller patch from Philippe Troin <phil@fifi.org>.
3829
3830 2003-07-17  Philippe Troin  <phil@fifi.org>
3831
3832         * amq/amq.8: Document the libwrap/amd behavior.
3833
3834         * amd/amq_svc.c (libwrap_check_client): New function to validate
3835         an amq connection with libwrap.
3836         (amq_program_1): Call libwrap_check_client() and close the
3837         connection if libwrap does not allow it.
3838
3839         * configure.in: Check for the tcp wrappers library.
3840
3841 2003-07-17  Erez Zadok  <ezk@filer.fsl.cs.sunysb.edu>
3842
3843         * amd/amq_subr.c (amqproc_mnttree_1_svc, amqproc_stats_1_svc,
3844         amqproc_getmntfs_1_svc, xdr_amq_mount_tree), hlfsd/hlfsd.c
3845         (hlfsd_init): cast pointers to void* before casting them to
3846         another type, to avoid gcc-3.3 -Wall warnings.
3847
3848         * fsinfo/*.[hc]: rename fsinfo function log() to fsi_log(), to
3849         avoid conflict with builtin function in gcc-3.3.
3850
3851 2003-07-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3852
3853         * scripts/amd.conf-sample: Remove obsolete comment.
3854
3855 2003-07-16  Erez Zadok  <ezk@cs.sunysb.edu>
3856
3857         * amd/info_file.c (read_line): check for errors from fgets().
3858         Although rare, they can occur upon disk or network failures.
3859         Patch from Nick Williams <Nick.Williams@morganstanley.com>.
3860
3861 2003-07-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3862
3863         * BUGS (Solaris 8): Update patch revisions, mention old autofs
3864         patches, fix filenames and rpcgen command.
3865
3866 2003-07-15  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
3867
3868         * doc/am-utils.texi (map_defaults Parameter): document new
3869         map_defaults option.
3870
3871         * scripts/amd.conf.5: document new map_defaults option.
3872
3873         * scripts/amd.conf-sample (map_type): show examples of new
3874         map_defaults option.
3875
3876         * amd/mapc.c (mapc_create): initialize mnt_map->cfm field to NULL.
3877
3878         * amd/get_args.c (get_args): call process_all_regular_maps().
3879
3880         * amd/conf.c: keep head and tail of cfm list.
3881         (init_cf_map): reworked reset_cf_map.  This one doesn't reset a
3882         globaly reused cfm, but rather just inherits [global] options.
3883         (set_conf_kv): just store global/map options without actually
3884         creating any mnt_map's.  Essentially, we now parse the whole
3885         amd.conf file, and then try to process the maps one at a time.
3886         (process_one_regular_map): new function to process one map, just
3887         renamed from process_regular_map.
3888         (process_all_regular_maps): new exported function to process all
3889         maps.  No need for hacky process_last_map().
3890         (find_cf_map): new exported function to return a cf_map_t given a
3891         map's mount point (e.g., /home or /net).
3892
3893         * amd/amfs_generic.c (amfs_parse_defaults): find if amd.conf
3894         specificed a map_defaults for a given map.  If so, use that
3895         instead of the /defaults that came from the map itself.  Also
3896         restructure code a bit so it's not one huge long "if" statement.
3897
3898         HACK ALERT: there's no easy way to find out what the map mount
3899         point is at this point, so I am forced to initialize the
3900         mnt_map->cfm field here for the first time, upon the very first
3901         search for a /defaults entry in this map.  This initialization is
3902         much better done in mapc_create(), but it's impossible to do that
3903         there with the current code structure.
3904
3905         * amd/amd.h: struct cf_map becomes linked list.  struct mnt_map
3906         includes pointer to cf_map_t, amd.conf defaults and options for a
3907         given map. extern cleanups.
3908
3909 2003-07-15  Erez Zadok  <ezk@filer.fsl.cs.sunysb.edu>
3910
3911         * amd/info_hesiod.c (hesiod_search): It's not possible to have a
3912         key such as ".access" in a hesiod map as that would imply a null
3913         node in the DNS tree.  So a lookup for such a key must clearly
3914         fail.  With the current info_hesiod.c it does (after calling
3915         hes{,iod}_resolve) but returns an error that confuses some
3916         programs - eg. apache.  This patch shortcuts the process and just
3917         returns ENOENT for any key starting with ".".  Patch submitted by
3918         by Mark Davies <mark@mcs.vuw.ac.nz>.
3919
3920         * include/am_utils.h (CALLOC): redefine macro to use xzalloc, not
3921         fsinfo's own xcalloc.
3922
3923         * fsinfo/fsi_util.c (xcalloc): remove redundant function.
3924
3925 2003-07-14  Erez Zadok  <ezk@cs.sunysb.edu>
3926
3927         * include/am_compat.h (MNTTAB_OPT_XLATECOOKIE): The NetBSD
3928         xlatecookie NFS option doesn't work as MNTTAB_OPT_XLATECOOKIE is
3929         never defined.  Define it as needed.  Patch from Mark Davies
3930         <mark@mcs.vuw.ac.nz>.
3931
3932 2003-07-14  Ion Badulescu  <lionut@gonzales.badula.org>
3933
3934         * BUGS (Note): document the Solaris 8 bug (the upgrade to autofs
3935         v4 without updating all the header files)
3936
3937 2003-07-13  Ion Badulescu  <lionut@gonzales.badula.org>
3938
3939         * NEWS, tasks: updated
3940
3941         * amd/amfs_generic.c (free_continuation): free _all_ mntfs's in
3942         the am_mfarray, unconditionally
3943         (amfs_bgmount): call free_mntfs when we're done with a mntfs, call
3944         dup_mntfs when starting processing of a new one; make sure we
3945         always go through 'goto failed' for a failed mntfs; use the error
3946         code returned by autofs_get_fh()
3947
3948         * conf/autofs/autofs_linux.c (autofs_get_fh): return proper error
3949         codes in case of problems
3950
3951 2003-07-13  Erez Zadok  <ezk@filer.fsl.cs.sunysb.edu>
3952
3953         * BUGS: Document buggy behavior of Solaris /usr/ccs/bin/lex.  In
3954         short, use flex.
3955
3956 2003-07-13  Erez Zadok  <ezk@a-hpux11.fsl.cs.sunysb.edu>
3957
3958         * fsinfo/fsi_lex.l, amd/conf_tok.l: allocate more output slots so
3959         lex scanners don't run out of mem.
3960
3961 2003-07-13  Ion Badulescu  <lionut@gonzales.badula.org>
3962
3963         * amd/amfs_generic.c (amfs_lookup_mntfs): ditto as below for the
3964         special provision
3965
3966         * amd/mntfs.c (find_mntfs): compare the filesystem type
3967         (i.e. mf_ops) in addition to mf_info; the special provision
3968         mentioned below is really for any filesystem already mounted on
3969         our mount point, not just for inherited filesystems
3970
3971 2003-07-13  Erez Zadok  <ezk@whitestar.dyn.optonline.net>
3972
3973         * doc/Makefile.am (install-html): build per-chapter HTML manual,
3974         as well as manual in one big HTML file.
3975
3976         * doc/am-utils.texi: Minor corrections.  Ack Ion's autofs work.
3977         Ack maintainers.  New section on How to get additionl info,
3978         including the Amd book.  Correct stale URLs and Emails.
3979
3980         * amd/amd.8, amq/amq.8, amq/pawd.1, fixmount/fixmount.8,
3981         fsinfo/fsinfo.8, hlfsd/hlfsd.8, mk-amd-map/mk-amd-map.8,
3982         scripts/amd.conf.5, scripts/automount2amd.8,
3983         wire-test/wire-test.8: include references to info pages, proper
3984         authors, am-utils Web page, and amd book.
3985
3986 2003-07-13  Ion Badulescu  <lionut@gonzales.badula.org>
3987
3988         * amd/mntfs.c (find_mntfs): re-add the check for mf_info, but with
3989         a special provision for inherited filesystems. This unbreaks the
3990         handling of parallel mounts
3991
3992         * amd/amfs_generic.c (amfs_lookup_mntfs): for restarted
3993         filesystems, there can be no alternative mntfs to try to mount
3994
3995 2003-07-13  Erez Zadok  <ezk@cs.sunysb.edu>
3996
3997         * amd/amd.8: reference am-utils info page in amd man page, as per
3998         Thomas Klausner <wiz@danbala.ifoer.tuwien.ac.at>.
3999
4000         * fsinfo/fsinfo.h, fsinfo/fsinfo.c (fsi_get_args): don't use
4001         yywrap() if it doesn't exist.
4002
4003         * amd/conf_parse.y, amd/conf_tok.l, fsinfo/fsi_gram.y,
4004         fsinfo/fsi_lex.l: fixes to support old flex 2.5.4, as well as the
4005         newer flex 2.5.31 (beta development).  These include resolving
4006         conflicts with yylineno, unput() vs. nounput(), etc.
4007
4008 2003-07-13  Ion Badulescu  <lionut@gonzales.badula.org>
4009
4010         * amd/amfs_generic.c (amfs_cont): check for (am_error > 0) before
4011         calling assign_error_mntfs()
4012         (amfs_generic_mount_child): ditto
4013
4014         * amd/autil.c (assign_error_mntfs): move the check for
4015         (am_error > 0) up into the caller, it's less confusing that way
4016
4017         * tasks: some updates
4018
4019         * conf/transp/transp_tli.c (check_pmap_up): new function which
4020         detects if the remote portmapper is functional
4021         (amu_clnt_create_best_version): removed
4022         (get_nfs_version): use a much simplified version of the old
4023         amu_clnt_create_best_version(), based on clnt_create_vers() and
4024         its _timed() counterpart
4025
4026         * conf/transp/transp_sockets.c (check_pmap_up): new function which
4027         detects if the remote portmapper is functional
4028         (pmap_ping): deleted
4029         (get_nfs_version): removed calls to pmap_ping, already done by
4030         caller
4031
4032         * amd/srvr_nfs.c: call check_pmap_up() before continuing with
4033         get_nfs_version()
4034
4035         * amd/amfs_generic.c: updated a couple of log messages
4036
4037         * configure.in: detect clnt_create_vers and clnt_create_vers_timed;
4038         changed LIBTOOL versioning to 3:0:0
4039
4040 2003-07-12  Ion Badulescu  <lionut@gonzales.badula.org>
4041
4042         * conf/autofs/autofs_linux.h (AUTOFS_HOST_FS_FLAGS): removed
4043         FS_AUTOFS because the host mount cannot be a top level mount
4044         (AUTOFS_DIRECT_FS_FLAGS): removed FS_AUTOFS because Linux autofs
4045         doesn't support direct mounts
4046
4047 2003-07-12  Erez Zadok  <ezk@whitestar.dyn.optonline.net>
4048
4049         * amd/conf_parse.y, amd/conf_tok.l: pretty comments on # cpp
4050         macros.
4051
4052 2003-07-10  Ion Badulescu  <ionut@buggy.badula.org>
4053
4054         * include/am_utils.h (dlog): improved version for gcc, using
4055         vararg macros
4056
4057         * amd/rpc_fwd.c (fwd_packet): unused variable when compiling
4058         without debugging
4059
4060 2003-07-10  Erez Zadok  <ezk@filer.fsl.cs.sunysb.edu>
4061
4062         * include/am_utils.h (dlog): change the #define of non-debugging
4063         dlog to "nothing" so that all that'll be left behind is a list of
4064         args in parenthesis (arg,arg,...).  GCC and other native C
4065         compilers seem OK with it, even if it doesn't optimize away the
4066         whole debugging line.
4067
4068         * ltmain.sh: was from libtool 1.4.2.  updated to libtool 1.4.3,
4069         the latest on RH9 systems (but is not the latest libtool
4070         available).  Stay with stable version in preparation for 6.1
4071         release.
4072
4073         * config.{guess,sub}, doc/texinfo.tex: update to latest off of
4074         ftp.gnu.org.
4075
4076 2003-07-09  Erez Zadok  <ezk@filer.fsl.cs.sunysb.edu>
4077
4078         * amd/amfs_inherit.c (amfs_inherit_inherit): don't use // C++
4079         style comments: breaks non-C++ compilers (like AIX xlC 6)
4080
4081 2003-07-02  Ion Badulescu  <ionut@buggy.badula.org>
4082
4083         * doc/am-utils.texi (opts Option): document ignore_portmapper option
4084
4085         * conf/transp/transp_sockets.c (get_nfs_version): better
4086         protocol/version cycling while probing remote server; better log
4087         messages
4088
4089         * amd/srvr_nfs.c (start_ping): improved log message
4090         (find_nfs_srvr): always use requested nfs_version/nfs_proto; make
4091         sure we have a valid NFS port; start the server as "valid, down" if
4092         the remote portmapper tells us the NFS service is not running;
4093         implement the "ignore_portmapper" pseudo-mount option
4094
4095         * amd/rpc_fwd.c (fwd_packet): better debug messages
4096
4097         * amd/ops_nfs.c (got_nfs_fh): log a messages if a root fh is
4098         denied; call wakeup even if mountd call fails
4099
4100         * amd/amq_subr.c (xdr_amq_mount_info_qelem): use FSRV_ISUP/ISDOWN
4101         instead of checking the flags directly
4102         * amd/srvr_amfs_auto.c (free_srvr): ditto
4103
4104         * amd/amfs_generic.c (amfs_bgmount): refined some error/debug
4105         messages
4106
4107         * amd/amd.h (FSRV_ERROR): new macro
4108         (FSRV_ISDOWN, FSRV_ISUP): a server that doesn't exist (i.e. it's a
4109         local filesystem) is always up
4110
4111 2003-06-30  Erez Zadok  <ezk@cs.sunysb.edu>
4112
4113         * amd/autil.c (am_mounted): set AMF_NOTIMEOUT if either unmount or
4114         umount options are present.
4115
4116         * doc/am-utils.texi (Program Filesystem): document alias options
4117         to unmount:=, umount:=.
4118
4119         * amd/opts.c (expansions): initialize opt_umount.
4120         (to_free): initialize opt_umount.
4121
4122         * amd/amfs_program.c (amfs_program_match): ensure that only one of
4123         umount:= or unmount:= options are specified, but that at least one
4124         of them is listed.
4125
4126         * amd/amd.h: support unmount:=XXX as well as umount:=XXX (too
4127         annoying in type:program, when one forgets the 'n' in "unmount").
4128         They are two separate fields, so we can catch mistakes when
4129         someone tries to define both options.
4130
4131         * doc/am-utils.texi (Program Filesystem): explain that both mount
4132         and unmount options must be specified.  Correct example to show
4133         both.
4134
4135 2003-06-25  Erez Zadok  <ezk@cs.sunysb.edu>
4136
4137         * XXX: beginning of new amd.conf option map_defaults: will parse
4138         the option and set remember it in the right places.  Need to
4139         document this and actually hook it up with the rest of the code.
4140         Any volunteers? :-)
4141
4142         * scripts/amd.conf-sample (map_defaults): example of map_defaults
4143         amd.conf option.
4144
4145         * amd/conf.c (reset_cf_map): initialize global and per-mount
4146         map_defaults.
4147         (gopt_map_defaults): parse global map_defaults.
4148         (process_regular_option,ropt_map_defaults): parse per-map
4149         map_defaults amd.conf option.
4150
4151         * amd/amd.h: a place to store global and per-mount map_defaults.
4152
4153         * BUGS: more notes about AIX 5.2 problems and how to overcome
4154         them.
4155
4156 2003-06-10  Erez Zadok  <ezk@cs.sunysb.edu>
4157
4158         * doc/Makefile.am: force version.texi to be rebuilt regardless of
4159         maintainer mode.  Silly Automake will not build version.texi if
4160         maintainer mode is off (this is hardcoded into the automake perl
4161         script!).  According to the Automake maintainers, users should
4162         always build in CVS trees with maintainer-mode on; but what if I
4163         don't want to?!  I don't want to distribute Makefiles with
4164         maintained rules in them to users.  The Automake maintainers also
4165         say that "make dist" will rebuild version.texi no matter what.  I
4166         find that not to be the case.  It failed to run a "make" before
4167         "make dist" because version.texi doesn't exist!  Chicken and Egg
4168         situation.  So, until Automake deals with version.texi in a more
4169         flexible and friendly manner, I adapted a rule to build
4170         version.texi and inserted it in this Makefile.am.
4171
4172 2003-06-09  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
4173
4174         * mk-amd-map/mk-amd-map.c (main): open temp db file using O_EXCL,
4175         next best thing to using mkstemp().  Patch from Hendrik Scholz
4176         <hscholz@raisdorf.net>.
4177
4178 2003-05-08  Ion Badulescu  <ion@guppy.limebrokerage.com>
4179
4180         * libamu/mount_fs.c (compute_automounter_mount_flags): use
4181         MNT2_GEN_OPT_AUTOMNTFS if available; minor cleanup
4182
4183         * m4/macros/header_templates.m4: added template for
4184         MNT2_GEN_OPT_AUTOMOUNTED
4185
4186 2003-05-01  Ion Badulescu  <ionut@nicu.badula.org>
4187
4188         * amd/ops_xfs.c (mount_xfs): compile fix (s/genflags/flags/)
4189
4190 2003-04-23  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
4191
4192         * conf/transp/transp_sockets.c (create_amq_service): minor cpp
4193         directive indentation and commenting.
4194
4195 2003-04-22  Ion Badulescu  <ionut@moisil.badula.org>
4196
4197         * conf/transp/transp_sockets.c (create_amq_service): Ugly *BSD fix
4198         for an RPC library DoS issue (original patch from Martin Blapp,
4199         massaged into something more digestable by me)
4200
4201 2003-04-14  Ion Badulescu  <ionut@moisil.badula.org>
4202
4203         * conf/autofs/autofs_solaris_v2_v3.c: removed autofs_free_data(),
4204         left over from the recent cleanup
4205
4206 2003-04-13  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
4207
4208         * doc/Makefile.am (DVIPS): use proper options for dvips.
4209
4210         * doc/am-utils.texi (opts Option): document new 'unmount' option,
4211         and better explain the 'nounmount' option.  Also some misc options
4212         for better generation of html manual.
4213
4214         * doc/Makefile.am (install-html): support newer texi2html 4.0
4215         options, as older options were renamed or changed behavior.
4216
4217         * amd/autil.c (am_mounted): support new 'unmount' option, to allow
4218         all file system mounts to timeout and thus expire.  This option is
4219         useful for removable local media such as CD-ROMs, USB drives,
4220         etc. so they can expire when not in use, and get unmounted (such
4221         drives can get work out when they keep spinning).  Patch from
4222         Christos Zoulas <christos@zoulas.com> (originally from Koji
4223         Imada).
4224
4225 2003-04-10  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
4226
4227         * configure.in: use AM_MAINTAINER_MODE, so maintainer-only rules
4228         do not get added to Makefiles by default (they are confusing to
4229         users who don't have autotools installed).
4230
4231 2003-04-09  Ion Badulescu  <ion@guppy.limebrokerage.com>
4232
4233         * amd/mntfs.c (find_mntfs): revert the "change of philosophy" (see
4234         the 2001-05-23 entry) back to the 6.0 code
4235
4236 2003-04-04  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
4237
4238         * libamu/xutil.c (switch_to_logfile): don't try to print logfile
4239         if it is null (strlen core dump on solaris).  Bug report from John
4240         P. Rouillard <rouilj@ieee.org>.
4241
4242 2003-03-31  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
4243
4244         * fsinfo/fsinfo.8: typo co-ordinate -> coordinate.  Typo report
4245         from Perry E. Metzger" <perry@piermont.com>.
4246
4247 2003-03-25  Erez Zadok  <ezk@filer.fsl.cs.sunysb.edu>
4248
4249         * include/am_defs.h: Don't include malloc.h if stdlib.h exists,
4250         because modern systems (e.g., BSD) complain if you use malloc.h
4251         instead of stdlib.h.  Let's hope there are no systems out
4252         there that need both.
4253
4254 2003-03-20  Erez Zadok  <ezk@suse73.fsl.cs.sunysb.edu>
4255
4256         * minor new port: sparc64-unknown-linux-suse7.3.
4257
4258 2003-03-20  Erez Zadok  <ezk@a-freebsd5.fsl.cs.sunysb.edu>
4259
4260         * minor new port: i386-unknown-freebsd5.0.
4261
4262         * configure.in: detect nfsclient/nfsargs.h.
4263
4264         * conf/nfs_prot/nfs_prot_freebsd3.h: include
4265         <nfsclient/nfsargs.h>, needed in FreeBSD 5.0.
4266
4267 2003-03-15  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
4268
4269         * amd/amd.8, amd/amd.8, fixmount/fixmount.8, hlfsd/hlfsd.8,
4270         scripts/amd.conf.5, scripts/expn.1: minor spell checking and
4271         extraneous space elimination.
4272
4273 2003-03-07  Ion Badulescu  <ionut@buggy.badula.org>
4274
4275         * conf/autofs/autofs_linux.c (autofs_get_fh): don't leak file
4276         descriptors if limit exceeded
4277         (autofs_mounted): call autofs_get_mp(); init am_autofs_ttl
4278         (autofs_release_fh): release pending_mounts and pending_umounts
4279         queues
4280         (autofs_timeout_mp): update am_autofs_ttl instead of am_ttl
4281
4282         * amd/mntfs.c (init_mntfs): delete initialization of removed
4283         mf_autofs_fh
4284         (uninit_mntfs): delete call to autofs_release_fh()
4285
4286         * amd/map.c (init_map): init autofs_fh to 0, delete initialization
4287         of removed autofs_data
4288         (free_map): release autofs_fh after unmounting map; delete call to
4289         autofs_free_data()
4290         (umount_exported): call autofs_release_mp() prior to unmounting
4291         autofs f/s
4292         (unmount_mp): ditto
4293         (free_map_if_success): call autofs_get_mp() if unmounting fails
4294         (timeout_mp): use the dedicated am_autofs_ttl timeout for f/s-wide
4295         timeouts instead of the per-mountpoint am_ttl
4296
4297         * amd/autil.c (am_unmounted): release autofs_fh after unmounting
4298         autofs f/s
4299
4300         * amd/amfs_generic.c (amfs_cont): release autofs_fh if mounting
4301         autofs f/s fails;
4302         (amfs_bgmount): ditto
4303
4304         * amd/amd.h: moved autofs_fh from mntfs to am_node, since it's
4305         more related to the mount point than to the f/s mounted;
4306         added am_autofs_ttl to am_node, for running expirations on entire
4307         filesystems
4308
4309         * conf/autofs/autofs_*: autofs_get_fh() returns int instead of
4310         autofs_fh_t *; autofs_release_fh() now takes an am_node * parameter
4311         instead of autofs_fh_t *, in an effort to not deal with
4312         autofs-specific data structures outside autofs code;
4313         new methods autofs_get_mp() and autofs_release_mp(), which
4314         acquire/release autofs resources to allow clean unmount attempts;
4315         nuke autofs_data_t, never used
4316
4317         * amd/amd.h: prototypes for new and changed autofs functions
4318
4319 2003-03-07  Ion Badulescu  <ion@guppy.limebrokerage.com>
4320
4321         * amd/nfs_subr.c (do_readlink): eliminate third argument, never used
4322         (nfsproc_getattr_2_svc): reorganize the code a bit
4323
4324         * amd/map.c (mk_fattr): take a nfsfattr * argument instead of an
4325         am_node * argument
4326
4327         * amd/amd.h: changed prototype for mk_fattr()
4328
4329         * amd/autil.c (am_unmounted): when remounting, use the parent
4330         node's lookup_child() and mount_child() operations, not the
4331         generic ones
4332
4333         * amd/amfs_generic.c (amfs_cont): minor code optimization
4334
4335 2003-03-06  Ion Badulescu  <ion@guppy.limebrokerage.com>
4336
4337         * amd/amfs_auto.c: lots of renames and code moving:
4338         amfs_auto_match() -> amfs_generic_match(), moved to generic;
4339         amfs_auto_mkcacheref() -> amfs_mkcacheref(), moved to autil.c;
4340         amfs_auto_mounted() -> amfs_generic_mounted(), moved to generic;
4341         amfs_auto_umount() -> amfs_generic_umount(), moved to generic;
4342         free_continuation(): moved to generic, made static;
4343         assign_error_mntfs(): moved to autil.c;
4344         amfs_auto_cont() -> amfs_cont(), moved to generic, made static;
4345         amfs_auto_retry() -> amfs_retry(), moved to generic, made static;
4346         try_mount() + mount_node() -> mount_node(), moved to map.c
4347         amfs_auto_bgmount() -> amfs_bgmount(), moved to generic;
4348         amfs_parse_defaults(): moved to generic;
4349         amfs_auto_lookup_node() -> amfs_lookup_node(), moved to generic;
4350         amfs_auto_lookup_one_mntfs() -> amfs_lookup_one_mntfs(), in generic;
4351         amfs_auto_lookup_mntfs() -> amfs_lookup_mntfs(), moved to generic;
4352         amfs_auto_mount_child() -> amfs_generic_mount_child(), in generic;
4353         amfs_auto_lookup_child() -> amfs_generic_lookup_child(), in generic;
4354         next_nonerror_node(): moved to autil.c;
4355         amfs_auto_readdir() -> amfs_generic_readdir(), moved to readdir;
4356         amfs_auto_readdir_browsable() -> amfs_readdir_browsable(), in readdir;
4357
4358         * amd/amfs_toplvl.c: mount_amfs_toplvl() renamed to amfs_mount()
4359         and moved to autil.c
4360
4361         * amd/readdir.c, amd/amfs_generic.c: new files with stuff ripped
4362         out of amd/amfs_auto.c
4363
4364         * amd/amd.h: struct continuation moved to generic.c; prototypes
4365         for the renamed functions; NumChild renamed to NumChildren
4366
4367         * amd/map.c: collaped unmount_node_wrap() and unmount_node() into
4368         the latter
4369
4370         * amd/mapc.c: key_already_in_chain(): moved to readdir.c;
4371         make_entry_chain(): moved to readdir.c;
4372
4373         * amd/srvr_amfs_auto.c: find_amfs_auto_srvr() renamed to
4374         amfs_generic_find_srvr()
4375
4376         * amd/amfs_*.c: adjustments for the renames above
4377
4378         * amd/ops_*.c: low-level filesystems don't need a find_server()
4379         method
4380
4381         * amd/Makefile.am: added amfs_generic.c and readdir.c
4382
4383         * doc/am-utils.texi: minor clarification for auto maps
4384
4385 2003-03-06  Ion Badulescu  <ion@guppy.limebrokerage.com>
4386
4387         * amd/amd.h: moved lots and lots of amd-only stuff here, from
4388         include/am_utils.h; changed task_fun, cb_fun and fwd_fun typedefs
4389         to be function typedefs, not pointer to function typedefs
4390
4391         * include/am_utils.h: see above
4392
4393         * amd/ops_nfs.c, amd/rpc_fwd.c, amd/sched.c: adjustments for
4394         function typedef changes
4395
4396 2003-03-05  Erez Zadok  <ezk@cs.sunysb.edu>
4397
4398         * BUGS: record IBM's patch number for the AIX 5.2 NFS over IPv6
4399         bug.
4400
4401 2003-02-02  Erez Zadok  <ezk@siamese.fsl.cs.sunysb.edu>
4402
4403         * NEWS: minor new port: ia64-unknown-linux-rh2.1AS
4404
4405 2003-01-31  Ion Badulescu  <ion@console.limebrokerage.com>
4406
4407         * m4/macros/os_cflags.m4: rhapsody and darwin are the same
4408
4409         * amd/autil.c (mount_node): vastly simplified, just a wrapper now
4410
4411         * amd/amfs_inherit.c (amfs_inherit_mount): remove the am_mounted()
4412         hack, we now do it properly in the generic code
4413
4414         * amd/amfs_auto.c (amfs_auto_bgmount): get the autofs_fh _before_
4415         forking the child; set and reset MFF_MOUNTING here, not in
4416         mount_node(), because the latter might be running in child
4417         context; call am_mounted() after a successful foreground mount
4418
4419 2003-01-29  Ion Badulescu  <ionut@moisil.badula.org>
4420
4421         * configure.in: new flag --with[out]-ndbm; don't pull in libldap
4422         if building --without-ldap; look for the gdbm/ndbm.h header; make
4423         explicit the dependency between the ndbm headers and libraries;
4424         define NEW_DBM_H as the ndbm header that should be used
4425
4426         * include/am_defs.h: simply include NEW_DBM_H for ndbm stuff,
4427         instead of trying to second-guess configure
4428
4429         * m4/macros/header_templates.m4: new template for NEW_DBM_H
4430
4431         * m4/macros/check_map_funcs.m4:
4432         (ac_upcase_map_name): use the third argument correctly
4433
4434         * ltmain.sh: working version from libtool-1.4.2-7
4435
4436         * buildall: print the entire configure command, including extra
4437         arguments; pass each of the extra arguments separately, not
4438         commingled into one
4439
4440 2003-01-28  Ion Badulescu  <ion@guppy.limebrokerage.com>
4441
4442         * include/am_utils.h (DEBUG_MNTTAB): define outside of #ifdef
4443         DEBUG; it is not used without DEBUG, but it is referenced at
4444         compile time. Bug report from John Kilburg <john@physics.unlv.edu>.
4445         (D_ALL): don't include D_XDRTRACE, too verbose and normally
4446         unnecessary
4447
4448 2003-01-28  Erez Zadok  <ezk@cs.sunysb.edu>
4449
4450         * ltmain.sh, config.guess, config.sub, doc/texinfo.tex: updates
4451         from latest official GNU versions.
4452
4453 2003-01-25  Erez Zadok  <ezk@cs.sunysb.edu>
4454
4455         * BUGS (Note): document AIX-5.1 NFS-client side bug (hangs in
4456         vmount).
4457
4458 2003-01-25  Ion Badulescu  <ionut@moisil.badula.org>
4459
4460         * Released beta version 6.1b2
4461
4462 2003-01-24  Ion Badulescu  <ionut@moisil.badula.org>
4463
4464         * amd/autil.c (am_unmounted): reset MFF_MKMNT from mf_flags when
4465         calling rmdirs() on mountpoint
4466
4467         * amd/amfs_auto.c (amfs_auto_bgmount): ditto
4468
4469         * amd/amfs_nfsl.c (amfs_nfsl_umounted): ditto
4470
4471         * doc/am-utils.texi (opts Option): "sftlookup" -> "softlookup"
4472
4473         * NEWS: "sftlookup" -> "softlookup"
4474
4475         * amd/ops_nfs.c (nfs_mount): "sftlookup" -> "softlookup", also
4476         check for "nosoftlookup" in combination with "soft"
4477
4478 2003-01-23  Ion Badulescu  <ion@guppy.limebrokerage.com>
4479
4480         * m4/macros/check_nfs_fh_dref.m4: darwin/rhapsody is another
4481         freebsd22 derivative
4482
4483         * NEWS: updated for Darwin changes
4484
4485         * .cvsignore: added A.i386-apple-darwin6.0
4486
4487         * m4/macros/os_cflags.m4: add -D_P1003_1B_VISIBLE to cflags for
4488         Darwin
4489
4490 2003-01-23  Erez Zadok  <ezk@cs.sunysb.edu>
4491
4492         * conf/mount/mount_aix.c (mount_aix3): clean back this file from
4493         all the debugging cruft that is no longer needed (and really was
4494         never needed in the first place).
4495
4496 2003-01-10  Erez Zadok  <ezk@cs.sunysb.edu>
4497
4498         * scripts/test-amd.{misc,conf}: simple amd.conf and amd.misc
4499         (map) files for testing basic amd functionality such as whether it
4500         can mount its own mount NFS points.
4501
4502 2002-12-28  Ion Badulescu  <ionut@moisil.badula.org>
4503
4504         * amd/srvr_nfs.c (start_nfs_pings): don't set FSF_PINGING if
4505         pings are disabled
4506
4507         * libamu/xdr_func.c (xdr_ftype): use a local enum_t variable
4508         instead of casting the pointer to (enum_t *)
4509         (xdr_mountstat3): ditto
4510         (xdr_nfsstat): ditto
4511
4512         * libamu/misc_rpc.c (make_rpc_packet): fix make_rpc_packet() on
4513         64-bit big-endian platforms, bug report from Bill Fenner
4514         <fenner@research.att.com>
4515
4516         * configure.in: increase library patchlevel
4517
4518         * libamu/xutil.c (amu_release_controlling_tty): close and reopen
4519         file descriptors 0,1,2 before calling setsid()
4520
4521 2002-12-27  Erez Zadok  <ezk@cs.sunysb.edu>
4522
4523         * updated copyright year to 2003 on all files
4524
4525 2002-12-10  Erez Zadok  <ezk@localhost.localdomain>
4526
4527         * rename "aux/" subdir into "m4/" so as to avoid problems with
4528         MS-DOS systems (where "AUX" is a reserved name).  This required
4529         fixing numerous files.
4530
4531 2002-12-10  Erez Zadok  <ezk@filer.fsl.cs.sunysb.edu>
4532
4533         * configure.in: don't check for bad hasmntopt() function if
4534         hasmntopt() doesn't exist on the system, because we will replace
4535         it with our own version anyway.
4536
4537         * conf/transp/transp_sockets.c (amu_get_myaddress): use "%lx" in
4538         dlog because htonl() returns a u_long.
4539
4540 2002-12-10  Erez Zadok  <ezk@localhost.localdomain>
4541
4542         * include/am_defs.h: use system's hasmntopt() only if it is found
4543         and it is not buggy.
4544
4545         * libamu/hasmntopt.c (nextmntopt): isspace() takes an int, not a
4546         char.
4547
4548         * amd/am_ops.c, amd/amfs_auto.c, amd/autil.c, amd/nfs_subr.c,
4549         amd/ops_cdfs.c, amd/ops_nfs.c, amd/srvr_nfs.c, libamu/hasmntopt.c,
4550         libamu/mount_fs.c, libamu/mtab.c: rename all uses of hasmntopt()
4551         to amu_hasmntopt().  Don't use hasmntopt() directly any more!
4552
4553         * aux/macros/func_bad_hasmntopt.m4: new M4 macro to test for a bad
4554         hasmntopt() function, which incorrectly finds the option "soft" in
4555         a string "hard,softlookup,ro".
4556
4557         * libamu/hasmntopt.c (hasmntopt): use 'const' on two args to
4558         hasmntopt(), to match what most systems use.
4559
4560         * aux/macros/header_templates.m4: template for HAVE_BAD_HASMNTOPT.
4561
4562         * configure.in: invoke test for bad hasmntopt()
4563
4564         * NEWS: minor new port, i386-pc-linux-rh8.0.
4565         Mention autofs-v4 on solaris9 works.
4566
4567         * bootstrap: remove any autom4te-*.cache directories, now that
4568         autoconf uses a version number for them.
4569
4570 2002-12-09  Ion Badulescu  <ionut@moisil.badula.org>
4571
4572         Patches from Christos Zoulas:
4573
4574         -1- am_utils.h: add full prototypes
4575         -2- amfs_auto.c make functions static and add prototypes
4576         -3- map.c: kill double free
4577         -5- transp_sockets.c: add full prototypes
4578
4579 2002-12-09  Ion Badulescu  <ionut@moisil.badula.org>
4580
4581         * NEWS: updated
4582
4583         * doc/am-utils.texi (opts Option): document sftlookup
4584
4585         * conf/autofs/autofs_solaris_v2_v3.c: compile fixes
4586
4587 2002-11-22  Erez Zadok  <ezk@filer.fsl.cs.sunysb.edu>
4588
4589         * amd/info_ldap.c (amu_ldap_rebind): gopt.ldap_cache_seconds is
4590         %ld not %d.
4591
4592 2002-11-21  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
4593
4594         * {amd,fsinfo}/Makefile.am: remove special rules for processing
4595         yacc/lex files, now that autoconf/automake properly handle them
4596         better (esp. now that bison 1.75 behaves differently than older
4597         bison versions).
4598
4599 2002-11-21  Erez Zadok  <ezk@cs.sunysb.edu>
4600
4601         * config.guess.long: updated script so it will properly find the
4602         version number of the new Itanium 2 machines running "Red Hat
4603         Linux Advanced Workstation release 2.1AW (Derry)".  The script now
4604         will report ia64-unknown-linux-rh2.1AW.
4605
4606 2002-11-20  Ion Badulescu  <ionut@moisil.badula.org>
4607
4608         * amfs_auto_bgmount(): almost complete rewrite
4609
4610         * fixed amfs_inherit to do the right thing and not dereference
4611         freed mntfs'es
4612
4613         * #if 0'ed bogus code in fh_to_mp3() -- it is now done properly in
4614         amfs_autofs_lookup_child()
4615
4616         * release the autofs_fh only in one place
4617
4618         * remove the mountpoint only if mf_refc == 1
4619
4620         * print the mntfs type in free_mntfs()
4621
4622         * new pseudo-mount option 'sftlookup' which causes lookups to
4623         mounted shares from downed servers to return EIO; the default
4624         depends on whether the mount is 'hard' or 'soft'
4625
4626         * improved querying of supported NFS versions on the server --
4627         don't even try if it's known to be down
4628
4629         * solaris autofs mount code moved to transp_{sockets,tli}.c
4630
4631         * incipient (non-functional) AIX autofs support
4632
4633 2002-11-11  Ion Badulescu  <ion@guppy.limebrokerage.com>
4634
4635         * doc/am-utils.texi (Keep-alives): removed outdated info about not
4636         maintaining the state of TCP NFS servers
4637
4638 2002-11-04  Ion Badulescu  <ion@guppy.limebrokerage.com>
4639
4640         * include/am_utils.h: prototype for ops_search()
4641
4642         * amd/am_ops.c (ops_search): new function for searching the right
4643         set of ops for a given filesystem type
4644
4645         * amd/restart.c (restart): cleanup and split into two functions in
4646         preparation for handling the restart of amd's own mount points
4647         (restart_fake_mntfs): new function, factored out from restart()
4648
4649 2002-11-04  Ion Badulescu  <ionut@buggy.badula.org>
4650
4651         * amd/ops_cdfs.c (mount_cdfs): remove special code for loop device
4652         (cdfs_umount): ditto
4653
4654         * conf/mount/mount_linux.c (mount_linux): factor it out to
4655         mount_linux_nfs() and mount_linux_nonfs()
4656         (mount_linux_nonfs): generalize loop device support to all
4657         filesystems (not just cdfs); make it automatic for anything that's
4658         a regular file
4659         (parse_opts): deprecate the explicit "loop" mount option
4660         (do_mount_linux): minor cleanup
4661
4662         * conf/umount/umount_default.c (umount_fs2): release loop device
4663         on umount()
4664
4665 2002-11-03  Erez Zadok  <ezk@cnm20>
4666
4667         * include/am_defs.h: moved #include of net/if.h above net/route.h,
4668         because on AIX 5.2 if.h is needed for route.h (let's hope it
4669         doesn't break things on other systems).
4670
4671         * include/am_defs.h: AIX 5.2 needs struct sigevent from signal.h
4672         to be defined, but I don't want to move the inclusion of signal.h
4673         this early into this file.  Luckily, amd doesn't need the size of
4674         this structure in any other structure that it uses.  So we
4675         sidestep it for now.
4676
4677         * conf/nfs_prot/nfs_prot_aix5_2.h: AIX 5.2 wants 'struct pathcnf',
4678         but I couldn't find its definition anywhere.  Luckily, amd doesn't
4679         need the size of this structure in any other structure that it
4680         uses.  So we sidestep it for now.
4681
4682 2002-11-02  Erez Zadok  <ezk@cs.sunysb.edu>
4683
4684         * config.guess, config.sub, doc/texinfo.tex: updates from
4685         the latest GNU distributions (2002-09-05).
4686
4687 2002-10-30  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
4688
4689         * conf/nfs_prot/nfs_prot_aix5_2.h: add more definitions from
4690         mount.h for NFSOPT_* and NFSMNT_*.
4691         Don't use typedefs that aren't found in system header files.
4692
4693 2002-10-30  Erez Zadok  <ezk@cs.sunysb.edu>
4694
4695         * Makefile.am (EXTRA_DIST_CONF): distribute nfs_prot_aix5_2.h.
4696
4697         * conf/nfs_prot/nfs_prot_aix5_2.h: new file.
4698
4699         * aux/macros/struct_nfs_args.m4 (ac_cv_have_struct_nfs_args): look
4700         for "struct aux52_nfs_args".
4701
4702         * aux/macros/check_nfs_prot_headers.m4: define new header file for
4703         AIX 5.2.
4704
4705 2002-10-21  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
4706
4707         * scripts/amd.conf.5 (ldap_proto_version): document in amd.conf
4708         man page.
4709
4710         * scripts/amd.conf-sample (ldap_proto_version): show example of use
4711
4712         * doc/am-utils.texi (ldap_proto_version Parameter): document new
4713         amd.conf option.
4714
4715         * amd/conf.c (gopt_ldap_proto_version): new conf function to
4716         support ldap_proto_version amd.conf parameter.
4717
4718         * amd/amd.h: field to hold LDAP protocol version.
4719
4720         * amd/amd.c (init_global_options): set default for
4721         ldap_proto_version.  ldap_proto_version patch from George Ross
4722         <gdmr@dcs.ed.ac.uk> and Tim Colles <timc@inf.ed.ac.uk>.
4723
4724         * amd/info_ldap.c (amu_ldap_unbind): ignore SIGPIPE errors while
4725         unbinding from an LDAP server that may have been restarted.  Fix
4726         from George Ross <gdmr@dcs.ed.ac.uk>.
4727
4728 2002-09-17  Ion Badulescu  <ion@guppy.limebrokerage.com>
4729
4730         * remove all autoconf stuff added for sys_nerr
4731
4732         * amq/amq.c, libamu/xutil.c, hlfsd/hlfsd.c: always use strerror
4733
4734         * libamu/strerror.c: more explicit text for unknown errno's
4735
4736 2002-10-01  Erez Zadok  <ezk@cs.sunysb.edu>
4737
4738         * include/am_defs.h: define "extern int sys_err" if needed.
4739
4740         * aux/macros/header_templates.m4: template for
4741         HAVE_EXTERN_SYS_NERR.
4742
4743         * hlfsd/hlfsd.h, libamu/xutil.c (expand_error), amq/amq.c
4744         (show_mi): remove "extern int sys_err"
4745
4746         * configure.in: execute test for "extern int sys_err"
4747
4748         * Makefile.am (EXTRA_DIST_AUX): distribute new extern_sys_err.m4 file.
4749
4750         * aux/macros/extern_sys_nerr.m4: new test to check for existence
4751         of "extern int sys_nerr" definition in system headers.
4752
4753 2002-09-17  Ion Badulescu  <ion@guppy.limebrokerage.com>
4754
4755         * libamu/xutil.c (dbg_opt): bring comments in line with the code
4756
4757         * hlfsd/hlfsd.c (main): use amuDebug() instead of touching
4758         debug_flags directly
4759
4760         * amd/amd.c (main): don't init debug_flags, leave it as zero (no
4761         debugging by default)
4762
4763 2002-09-11  Ion Badulescu  <ion@guppy.limebrokerage.com>
4764
4765         Debug code sanitization:
4766
4767         - amuDebug() becomes an expression, and explicit if() statements
4768         are added around it throughout the code
4769         - amuDebugNo() goes away (ugh!)
4770         - D_AMQ, D_DAEMON and D_FORK reverse their meaning
4771         - D_ALL contains only options that don't affect amd's functionality
4772
4773 2002-09-04  Ion Badulescu  <ion@guppy.limebrokerage.com>
4774
4775         * amd/amfs_auto.c (free_continuation): avoid double-free'ing the
4776         mntfs if there was an error/timeout
4777
4778 2002-09-04  Ion Badulescu  <ion@guppy.limebrokerage.com>
4779
4780         * amd/amfs_auto.c (amfs_auto_lookup_mntfs): use ereturn() instead
4781         of "return NULL" to signal an error to the upper layers
4782         (amfs_auto_mount): use strdup so the string can be free'd later on
4783         [Debian bug report from Matt Chapman <matthewc@cse.unsw.edu.au>]
4784
4785 2002-09-03  Ion Badulescu  <ion@guppy.limebrokerage.com>
4786
4787         Patches from George Ross <gdmr@dcs.ed.ac.uk>:
4788
4789         * amd/amfs_auto.c (assign_error_mntfs): do not discard old mntfs,
4790         it will be done in free_continuation(); assorted debugging messages
4791
4792         * amd/srvr_nfs.c (nfs_timed_out): allocate a new XID on server
4793         timeout to avoid problems with late ping replies
4794
4795         * amd/mntfs.c (free_mntfs): sanity check for mf_refc; assorted
4796         debugging messages
4797
4798         * amd/map.c (unmount_node): more verbose debug message
4799
4800 2002-07-29  Ion Badulescu  <ion@guppy.limebrokerage.com>
4801
4802         * amd/amfs_auto.c (amfs_auto_lookup_mntfs): prevent deferencing
4803         de-allocated memory in str3cat
4804         (amfs_auto_lookup_mntfs): check for buffer overflow
4805
4806 2002-07-11  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
4807
4808         * scripts/expn.{1,in}: fixed typos as reported by Thomas Klausner
4809         <wiz@danbala.ifoer.tuwien.ac.at>.
4810
4811 2002-06-26  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
4812
4813         * doc/Makefile.am (install-html): don't use locally hacked
4814         texi2html features.
4815
4816         * conf/transp/transp_sockets.c (amu_get_myaddress): Most modern
4817         systems should use 127.0.0.1 as the localhost address over which
4818         you can do NFS mounts.  In the past we found that some NFS clients
4819         may not allow mounts from localhost.  So we used get_myaddress()
4820         and that seemed to work.  Alas, on some other systems,
4821         get_myaddress() may return one of the interface addresses at
4822         random, and thus use a less efficient IP address than 127.0.0.1.
4823         The solution is to hard-code 127.0.0.1, but still check if
4824         get_myaddress() returns a different value and warn about it.
4825
4826         * doc/am-utils.texi: don't use ':' in @cindex entries.
4827
4828 2002-06-25  Ion Badulescu  <ion@guppy.limebrokerage.com>
4829
4830         * Released beta version 6.1b1
4831
4832 2002-06-24  Ion Badulescu  <ionut@moisil.badula.org>
4833
4834         * aux/macros/struct_nfs_args.m4: added test for aix51_nfs_args
4835
4836         * conf/nfs_prot/nfs_prot_aix5_1.h: rename aix42_nfs_args to
4837         aix51_nfs_args, rename unknown fields to u<number>, add the
4838         unknown new field into the middle of the old 4.2 structure
4839
4840 2002-06-24  Ion Badulescu  <ion@guppy.limebrokerage.com>
4841
4842         * include/am_compat.h: better test for struct netconfig
4843         (!HAVE_NETCONFIG_H && !HAVE_SYS_NETCONFIG_H)
4844
4845         * aux/macros/check_nfs_prot_headers.m4: added new header for aix5.1+
4846
4847         * buildall: fix 'buildall -b' on hpux9 and aix5.1
4848
4849 2002-06-24  Ion Badulescu  <ionut@buggy.badula.org>
4850
4851         * INSTALL: updated
4852
4853         * conf/autofs/autofs_solaris_v1.c (autofs_link_mount): compile fix
4854         (autofs_link_umount): ditto
4855
4856         * amd/mntfs.c (init_mntfs): don't use autofs if !amd_use_autofs
4857
4858 2002-06-23  Ion Badulescu  <ionut@moisil.badula.org>
4859
4860         * conf/autofs/autofs_linux.c: compile fixes for autofs v3
4861
4862 2002-06-23  Ion Badulescu  <ionut@moisil.badula.org>
4863
4864         * conf/autofs/autofs_solaris_v2_v3.c (autofs_mounted): no
4865         expirations needed;
4866         (autofs_timeout_mp): likewise
4867
4868         * conf/autofs/autofs_solaris_v1.c (autofs_mounted): no expirations
4869         needed;
4870         (autofs_timeout_mp): likewise
4871
4872         * conf/autofs/autofs_linux.c (autofs_mounted): set the first
4873         expiration interval
4874
4875         * amd/autil.c (am_mounted): call autofs_mounted here, instead of
4876         in mf_mounted()
4877
4878         * amd/amd.h (NEVER): moved here from map.c
4879         (autofs_mounted): change argument from mntfs* to am_node*
4880
4881 2002-06-23  Ion Badulescu  <lionut@gonzales.badula.org>
4882
4883         * conf/autofs/autofs_linux.c (autofs_mounted): set the kernel
4884         timeout on the autofs mountpoint to cache_duration (gopt.am_timeo)
4885         (autofs_timeout_mp): don't update the ttl if we're going down
4886
4887         * amd/map.c (timeout_mp): don't call autofs_timeout_mp unless the
4888         timeout on that particular am_node has expired
4889
4890         * conf/autofs/autofs_linux.c (autofs_timeout_mp): really update
4891         the ttl, as per the comment (compilers are not very good at
4892         translating comments into code...)
4893
4894         * amd/amfs_auto.c (amfs_auto_lookup_one_mntfs): strdup am_path
4895         instead of opt_rfs into opt_fs for autofs, thus avoiding conflicts
4896         between link mounts pointing to the same target
4897
4898 2002-06-23  Ion Badulescu  <lionut@gonzales.badula.org>
4899
4900         * conf/autofs/autofs_linux.c (send_fail, send_ready): new helper
4901         functions for sending messages back to the kernel
4902         (autofs_expire_one): initial implementation of the kernel-based
4903         expiration handler
4904         (autofs_handle_expire): call autofs_expire_one()
4905         (autofs_handle_expire_multi): ditto
4906         (autofs_umount_succeeded): search pending_umounts, send message
4907         back to the kernel
4908         (autofs_umount_failed): ditto
4909         (autofs_mount_succeeded): tell amd core not to expire autofs entries
4910         (autofs_timeout_mp): expiration function for autofs filesystems
4911         (autofs_timeout_mp_task): helper function for autofs_timeout_mp
4912
4913         * conf/autofs/autofs_linux.h: new struct autofs_pending_umount for
4914         keeping tracking of pending umounts
4915         (autofs_fh_t) rename pending to pending_mounts, add pending_umounts
4916
4917         * conf/autofs/autofs_solaris_v1.c (autofs_timeout_mp): stub
4918
4919         * conf/autofs/autofs_solaris_v2_v3.c (autofs_timeout_mp): stub
4920
4921         * amd/map.c (timeout_mp): call autofs_timeout_mp() for autofs
4922         filesystems
4923
4924         * amd/autil.c (mf_mounted): move here the call autofs_mounted()
4925         from amfs_auto_mounted().
4926
4927 2002-06-22  Erez Zadok  <ezk@whitestar.dyn.optonline.net>
4928
4929         * amd/nfs_start.c (mount_automounter): Security fix.  if user sets
4930         -D noamq, don't even create listening socket.  Suggestion by Ed
4931         Ravin <eravin@panix.com>.
4932
4933 2002-06-22  Ion Badulescu  <lionut@gonzales.badula.org>
4934
4935         * hlfsd/homedir.c (homedir): use setgid() instead of setegid()
4936
4937         * ALL: #ifdef cleanups, unify some TLI/socket function prototypes
4938
4939 2002-06-22  Erez Zadok  <ezk@whitestar.dyn.optonline.net>
4940
4941         * conf/nfs_prot/nfs_prot_netbsd1_4.h: minor port to support
4942         na_gid and na_uid.  NetBSD patch from Jun-ichiro itojun Hagino
4943         <itojun@iijlab.net>.
4944
4945         * doc/am-utils.texi (Option): document xlatecookie mount option.
4946
4947         * libamu/mount_fs.c (compute_nfs_args): support "xlatecookie"
4948         NFS mount option.  Patch from Matthias Scheler <tron@zhadum.de>
4949         for NetBSD.
4950
4951 2002-06-22  Ion Badulescu  <ionut@edgar.badula.org>
4952
4953         * conf/autofs/autofs_solaris_v1.h: add FS_MBACKGROUND to
4954         AUTOFS_LINK_FS_FLAGS
4955
4956         * conf/autofs/autofs_solaris_v1.c: convert link mounts to lofs
4957         mounts in autofs_link_mount/umount
4958
4959 2002-06-22  Ion Badulescu  <lionut@gonzales.badula.org>
4960
4961         * configure.in: check for devid inside struct umntrequest
4962
4963         * conf/autofs/autofs_solaris_v2_v3.c (xdr_umntrequest): handle the
4964         new umntrequest structure in v4.
4965         (autofs_unmount_2_req): ditto
4966
4967         * README.autofs: updated for Solaris 2.5/2.5.1
4968
4969 2002-06-22  Erez Zadok  <ezk@whitestar.dyn.optonline.net>
4970
4971         * configure.in: only define LDAP/Hesiod if both the headers and
4972         the libraries exist, and the user didn't explicitly disable those
4973         maps.
4974
4975 2002-06-22 Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
4976
4977         * doc/am-utils.texi: fix typos.  Can't use ":" in @cindex entries.
4978
4979 2002-06-22  Erez Zadok  <ezk@whitestar.dyn.optonline.net>
4980
4981         * doc/am-utils.texi, scripts/amd.conf.5, scripts/amd.conf-sample,
4982         amd/amd.8, amd/get_args.c (get_args): document amd -A option.
4983
4984         * amd/get_args.c (get_args): support "amd -A arg" option to
4985         override the system's detected architecture.  Patch from George
4986         Ross <gdmr@dcs.ed.ac.uk>.
4987
4988         * amd/info_ldap.c (amu_ldap_rebind): don't use ldap_enable_cache()
4989         if the system doesn't have it.
4990
4991         * configure.in: detect existence of ldap_enable_cache function,
4992         because it doesn't exist on Solaris 9's latest ldap libraries.
4993
4994         * amd/info_ldap.c: LDAP patches from George Ross
4995         <gdmr@dcs.ed.ac.uk>.  Rework of old code, support for wildcards in
4996         LDAP queries, and an FD leak fix.
4997
4998 2002-06-22  Ion Badulescu  <lionut@gonzales.badula.org>
4999
5000         * buildall: use ksh for configure on aix5.1; pass the extra
5001         arguments after "--" to configure, not to make
5002
5003         * Makefile.am: added nfs_prot_aix4_3.h to EXTRA_DIST_CONF
5004
5005         * conf/mount/mount_aix.c (mount_aix3): if the NFSv3 mount fails
5006         with EINVAL and we have MOUNT_TYPE_NFS3_BIS defined, retry the
5007         mount with the alternative nfs3_args structure
5008
5009         * conf/nfs_prot/nfs_prot_aix4_3.h: added alternative nfs3_args
5010         structure, similar to that in aix5.1, for a hack that tries to
5011         compensate for IBM's brain fart
5012
5013         * conf/nfs_prot/nfs_prot_aix5_1.h: new nfs_prot header for aix5.1+
5014
5015         * aux/macros/check_nfs_prot_headers.m4: added new header for aix5.1+
5016
5017         * BUGS: update for direct mounts on Linux; document the brokenness
5018         of /bin/sh on AIX 5.1 and HP-UX 9
5019
5020         * NEWS: aix5.1 port, aix4.3 workaround
5021
5022 2002-06-22 Erez Zadok <ezk@agora.fsl.cs.sunysb.edu>
5023
5024         * ltmain.sh: use libtool 1.4d, needed support for newer AIX.
5025
5026 2002-06-21  Ion Badulescu  <ion@guppy.limebrokerage.com>
5027
5028         * aux/macros/check_autofs_style.m4: enable autofs_v2_v3 for
5029         all solaris2.6+, not just for 2.[6-8]
5030
5031         * conf/autofs/autofs_default.h: disable autofs if configure
5032         detects it
5033
5034 2002-06-21  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
5035
5036         * aux/macros/with_addon.m4: correct M4 quoting.
5037
5038         * aux/macros/cache_check_dynamic.m4: correct M4 quoting.
5039
5040         * bootstrap: show version of autotools being used.  Helps
5041         maintainer debugging.
5042
5043         * configure.in: new proper syntax for libtool and
5044         ansi2knr-filtering rules, required by autoconf 1.53 and higher.
5045
5046 2002-06-21  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
5047
5048         * aux/GNUmakefile: new search paths for "update" target.
5049
5050         * config.guess, config.sub, doc/texinfo.tex, ltmain: updates from
5051         the latest GNU distributions.
5052
5053 2002-06-11  Ion Badulescu  <ion@guppy.limebrokerage.com>
5054
5055         * amd/amfs_auto.c (amfs_auto_lookup_child): split part of this
5056         function into the new amfs_auto_lookup_one_child function; return
5057         null if all ivecs failed to match
5058
5059 2002-05-30  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
5060
5061         * config.guess.long: support SuSE version names in long
5062         config.guess format.
5063
5064 2002-05-01  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
5065
5066         * scripts/lostaltmail.in (vrfy_user): unlink temp files if too
5067         small.
5068
5069 2002-04-07  Ion Badulescu  <ionut@moisil.badula.org>
5070
5071         * hlfsd/hlfsd.c (main): compile fix for --enable-debug=no
5072
5073 2002-03-29  Ion Badulescu  <ionut@moisil.badula.org>
5074
5075         * README.autofs: solaris 2.5/2.5.1 info, other minor changes
5076
5077         * doc/am-utils.texi (History): document solaris 2.5+ support
5078
5079         * include/am_utils.h: new member in struct mntfs: mfs_real_mount;
5080         autofs_fs_flags becomes conditional of HAVE_AUTOFS_FS; new
5081         prototype for umount_fs2(); extra argument for UMOUNT_FS()
5082
5083         * hlfsd/hlfsd.c: use the new mount_fs2() and UMOUNT_FS()
5084
5085         * libamu/mount_fs.c (mount_fs): wrapper around the new mount_fs2()
5086         function; swap mntdir and real_mntdir as necessary for solaris 2.5
5087         autofs support
5088
5089         * conf/umount/umount_default.c (umount_fs2): swap mntdir and
5090         real_mntdir as necessary for solaris 2.5 autofs support
5091
5092         * conf/umount/umount_*.c (umount_fs): wrapper around the new
5093         umount_fs2() function
5094         (umount_fs2): new function which takes the real mountpoint as an
5095         extra argument
5096
5097         * conf/nfs_prot/nfs_prot_sunos5_5.h: allow autofs support to be
5098         compiled in
5099
5100         * conf/autofs/autofs_solaris_v1.h (autofs_strdup_space_hack): new
5101         function that appends a space at the end of a string (the famous
5102         "Autofs Space Protocol")
5103
5104         * conf/autofs/autofs_solaris_v1.c: almost complete reimplementation
5105
5106         * conf/autofs/autofs_*.h (AUTOFS_*_FS_FLAGS): add
5107         system-specific definitions for these macros
5108
5109         * conf/autofs/autofs_linux.c (create_autofs_service): remove hacks
5110         which are now handled properly by more generic code
5111         (autofs_link_umount): complain if umount_fs() fails, rmdir the
5112         mountpoint on success
5113         (autofs_umount_succeeded): remove the rmdirs() code, now handled
5114         by generic code
5115         (autofs_mount_succeeded): ditto
5116
5117         * amd/nfs_start.c (checkup): implement it as an emtpy stub if
5118         DEBUG is not defined
5119         (run_rpc): call autofs_add_fdset() after umount_exported() to
5120         avoid passing invalid file descriptors to select(); use plog()
5121         instead of perror()
5122
5123         * amd/mntfs.c (init_mntfs): initialize mf_real_mount from mp
5124         (uninit_mntfs): free mf_real_mount
5125
5126         * amd/autil.c (am_unmounted): don't remove the mount point if a
5127         remount is pending, also don't make the removal conditional on not
5128         being an autofs mount point
5129
5130         * amd/amfs_nfsx.c (amfs_nfsx_remount): call mkdirs() on
5131         mf->mf_real_mount instead of mf->mf_mount
5132
5133         * amd/amfs_nfsl.c, amd/amfs_nfsx.c: (amfs_nfsl_umounted): call
5134         rmdirs() on mf->mf_real_mount instead of mf->mf_mount
5135
5136         * amd/amfs_host.c (make_mntpt): change the third argument to be
5137         the mountpoint, not the entire mntfs structure
5138         (do_mount): takes real_mntdir as an extra argument
5139
5140         * amd/amfs_auto.c (amfs_auto_bgmount): move the creation of the
5141         mountpoint here from try_mount(), otherwise the change to mf_flags
5142         is lost for background mounts; remove the mountpoint if we created
5143         it and the mount fails
5144         (amfs_auto_lookup_mntfs): re-initialize mf->mf_real_mount using
5145         autofs_strdup_space_hack() if NEED_AUTOFS_SPACE_HACK is defined
5146
5147         * amfs_*.c, ops_*.c: initialize autofs_fs_flags using the
5148         AUTOFS_*_FS_FLAGS macro defined in the system-specific autofs
5149         header; UMOUNT_FS() takes mf->mf_real_mount as an extra argument;
5150         mount_fs() becomes mount_fs2() and takes mf->mf_real_mount as an
5151         extra argument
5152
5153         * amd/amd.h, amd/ops_nfs.c, amd/amfs_host.c: mount_nfs_fh takes
5154         the real mountpoint as an additional argument
5155
5156 2002-03-28  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
5157
5158         * amd/ops_cdfs.c (mount_cdfs): correctly interpret error return
5159         values back from mount_fs().  Return correct error number from
5160         this function.
5161
5162         * conf/mount/mount_linux.c (do_mount_linux): cleanup loop mount
5163         cruft from this function, moved elsewhere.
5164         (mount_linux): prepare for loop-device mounts of ISO images.
5165
5166 2002-03-28  Ion Badulescu  <ionut@buggy.badula.org>
5167
5168         * libamu/Makefile.am (EXTRA_DIST): added strerror.c
5169
5170         * libamu/strerror.c: strerror() implementation for systems lacking it
5171
5172         * doc/am-utils.texi (History): rewrote the history :) about autofs
5173         support
5174
5175         * conf/autofs/autofs_solaris_v2_v3.c: updated copyright;
5176         (autofs_unmount_2_req): minor cleanup
5177         (create_autofs_service): print log message
5178         (destroy_autofs_service): ditto
5179
5180         * conf/autofs/autofs_linux.c: updated copyright
5181
5182         * amd/nfs_start.c (mount_automounter): move the debug message into
5183         create_autofs_service()
5184
5185         * amd/amd.c (main): call destroy_autofs_service() before
5186         going_down(), not after
5187
5188         * configure.in: added strerror to AC_CHECK_FUNCS(); disable ldap
5189         if the ldap headers are not found
5190
5191 2002-03-28  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
5192
5193         * amd/info_ldap.c: patch from "Sebastien Bahloul"
5194         <sebastien.bahloul@medasys.org> to fix a simple initialization bug
5195         and change "HE" to HE_ENT so as to compile on HPUX.
5196
5197 2002-02-26  Erez Zadok  <ezk@t3.fsl.cs.sunysb.edu>
5198
5199         * conf/nfs_prot/nfs_prot_freebsd3.h (na_uid): freebsd4.5 uses nfs
5200         atttributes field named "uid".  So #define na_uid to it.
5201
5202 2002-02-12  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
5203
5204         * scripts/lostaltmail.in: don't verify user if -noverify option
5205         was turned on.  fix comment typo.
5206
5207 2002-02-11  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
5208
5209         * amd/Makefile.am (TESTS): enable one test script, test1.sh.
5210
5211         * amd/test1.sh: re-commit simple test script.
5212
5213 2002-02-11  Ion Badulescu  <ion@guppy.limebrokerage.com>
5214
5215         * Released snapshot 6.1a5
5216
5217         * NEWS: Solaris autofs readdir() support, Linux autofs sublink fix
5218
5219         * README: require newer auto-tools, update mailing list address
5220
5221         * README.autofs: major update
5222
5223         * configure.in: version changed to 6.1a5
5224
5225 2002-02-11  Ion Badulescu  <ionut@moisil.badula.org>
5226
5227         * conf/autofs/autofs_linux.c (autofs_link_mount): don't do a
5228         stat() on the am_link if called from the parent amd, to prevent
5229         deadlocks
5230
5231         * amd/autil.c (am_unmounted): call amfs_link_ops.umount_fs if the
5232         fstype is not link but we have a sublink (Linux autofs needs this)
5233         (am_mounted): call amfs_link_ops.mount_fs if the fstype is not
5234         link but we have a sublink (Linux autofs needs this)
5235
5236         * amd/amfs_auto.c (amfs_auto_bgmount): print the real mountpoint,
5237         not the amd entry point
5238
5239 2002-02-09  Ion Badulescu  <ionut@moisil.badula.org>
5240
5241         * conf/autofs/autofs_solaris_v2_v3.c (amd_rddirres): new custom
5242         structure for returning the results from readdir_2()
5243         (xdr_amd_putrddirres): renamed from xdr_autofs_putrddirres,
5244         changed to process our internal format (which is essentially the
5245         NFS readdir format)
5246         (xdr_autofs_getrddirres): not needed, deleted
5247         (xdr_amd_rddirres): renamed from xdr_autofs_rddirres, other
5248         changes to handle amd_rddirres instead of autofs_rddirres
5249         (autofs_lookup_2_req): return AUTOFS_NONE instead of
5250         AUTOFS_MOUNT_RQ, to prevent mount storms during ls -F
5251         (autofs_readdir_2_req): implemented
5252         (autofs_readdir_2_free): not needed, deleted
5253         (autofs_program_2): changes from autofs_rddirres to amd_rddirres
5254         (autofs_get_fh): changed initialization of the fh->map member, it
5255         now gets the mountpoint path because it makes it easier to
5256         implement readdir
5257         (autofs_release_fh): put #ifdef HAVE_AUTOFS_ARGS_T_ADDR around
5258         code touching fh->addr
5259         (destroy_autofs_service): new function, deregister the autofs
5260         service with the portmapper on exit
5261
5262         * conf/autofs/autofs_linux.c (autofs_handle_missing): update
5263         statistics
5264         (destroy_autofs_service): new stub
5265
5266         * amd/mapc.c (mapc_find): fixed indentation
5267
5268         * amd/map.c (find_ap_recursive): renamed from find_ap2(), made
5269         static
5270
5271         * amd/amd.h: removed prototype for find_ap2(), added prototype for
5272         destroy_autofs_service()
5273
5274         * amd/amd.c (main): call destroy_autofs_service() before going
5275         down
5276
5277 2002-02-07  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
5278
5279         * aux/macros/check_field.m4: need also a new version of
5280         AC_CHECK_MEMBERS (plural).
5281
5282 2002-02-06  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
5283
5284         * aux/macros/check_field.m4: include a fixed version of
5285         AC_CHECK_MEMBER.  g/cc will fail to check a member if the .member
5286         is itself a data structure, because you cannot compare, in C, a
5287         data structure against NULL; you can compare a native data type
5288         (int, char) or a pointer.  Solution: do what I did in my original
5289         member checking macro: try to take the address of the member.  You
5290         can always take the address of anything.
5291
5292 2002-01-31  Erez Zadok  <ezk@localhost.localdomain>
5293
5294         * remove old '%W%' SCCS IDs from all sources.
5295
5296 2002-01-21  Ion Badulescu  <ionut@moisil.badula.org>
5297
5298         * conf/mount/mount_linux.c (mount_linux): fix breakage introduced
5299         by the loop device mount support. Linux mount takes a real string
5300         as the last argument, unless the mount type is NFS, NCP, or SMB.
5301
5302 2002-01-20  Erez Zadok  <ezk@localhost.localdomain>
5303
5304         * hlfsd/hlfsd.h (HLFSD_VERSION): up version of hlfsd to 1.2,
5305         because we made some important changes.
5306
5307 2002-01-20  Ion Badulescu  <lionut@gonzales.badula.org>
5308
5309         * include/am_utils.h (D_ALL): do not include D_MTAB and D_HRTIME
5310         by default
5311
5312         * NEWS: document latest changes
5313
5314         * amd/map.c (unmount_mp): same fix as for hlfsd, update the
5315         seconds field in mtime because Linux ignores the useconds field
5316
5317         * hlfsd/homedir.c: made some global vars static
5318         (plt_init): remove all trailing '/' chars from root's home;
5319         use root's home, not the username (silly bugfix)
5320
5321 2002-01-20  Ion Badulescu  <lionut@gonzales.badula.org>
5322
5323         * hlfsd/homedir.c (homedir): don't special case uid 0 as having /
5324         as home; instead use the root account's home
5325         (plt_init): properly initialize root_home from the root account's
5326         home directory, or as "" if root doesn't exist
5327         (plt_reset): free root_home
5328
5329 2002-01-20  Erez Zadok  <ezk@localhost.localdomain>
5330
5331         * hlfsd/stubs.c (nfsproc_{lookup,getattr}_2_svc): non-SYMTTL code.
5332         Increment seconds, not microseconds (which are ignored by NFS).
5333         Set symlink owner to euid.
5334
5335         * hlfsd/homedir.c (homedir): pass gid to this function, so we can
5336         also change the effective GID of the process writing to the user's
5337         home dir, as well as the group of the hlfsd symlink.
5338         (homedir): run setegid in the right places.
5339
5340 2002-01-15  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
5341
5342         * scripts/redhat-ctl-amd.in: refer to @sbindir@ not
5343         ${prefix}/sbin.
5344
5345         * scripts/ctl-{amd,hlfsd}.in: refer to @sysconfdir@ not
5346         ${prefix}/etc.  Bug report from "A Braunsdorf"
5347         <ab@eas.purdue.edu>.
5348
5349 2002-01-13  Erez Zadok  <ezk@localhost.localdomain>
5350
5351         * configure.in: only check for clock_gettime if --enable-debug was
5352         used.
5353
5354         * aux/macros/opt_debug.m4: define a cache variable to record value
5355         of debug option used.
5356
5357         * libamu/xutil.c (show_time_host_and_name): do not use
5358         clock_gettime unless debugging was compiled in.  This way, if
5359         debugging is not compiled, we don't bother linking with librt,
5360         libpthread, and a whole lot of other libraries that aren't that
5361         necessary (esp. on Linux).
5362
5363 2002-01-12  Erez Zadok  <ezk@wavy.dyn.optonline.net>
5364
5365         * doc/am-utils.texi (opts Option): document loop option.
5366
5367         * include/am_utils.h: each mounted file system (mntfs) should
5368         optionally store the loop device used in the field mf_loopdev.
5369
5370         * conf/nfs_prot/nfs_prot_linux.h: define HAVE_LOOP_DEVICE and some
5371         loop function extern definitions.  For now this code is here
5372         because we only support loop devices on Linux.
5373
5374         * conf/mount/mount_linux.c: recognize "loop" as a valid iso9660
5375         mount option.
5376         (parse_opts): when skipping over unknown mount options, skip over
5377         "loop" (since it was given in amd map entry), but not over
5378         loop=/dev/loopX, because the latter will go into /etc/mtab.
5379         (do_mount_linux): override actual cdfs mounted  device name
5380         because with loop devices you don't mount the .iso file directly,
5381         but the /dev/loopX device that was setup for it.
5382         (show_loop, is_loop_device, find_unused_loop_device,
5383         setup_loop_device, delete_loop_device): support code for loop
5384         devices.
5385
5386         * amd/ops_cdfs.c (mount_cdfs): pass loop device name to function.
5387         setup loop device before isofs mount, if "loop" option was given,
5388         before actual mount(2).
5389         (cdfs_mount): pass loopdev name to mount_cdfs().
5390         (cdfs_umount): delete/unset loop device after a successful
5391         unmount, if a loop device was used.
5392
5393         * amd/mntfs.c (init_mntfs): initialize mf_loopdev to NULL.
5394
5395         * include/am_compat.h: If loop device (header file) exists, define
5396         mount table option MNTTTAB_OPT_LOOP.
5397
5398         * conf/nfs_prot/nfs_prot_linux.h: hack: define HAVE_LOOP_DEVICE
5399         here until we have a better way to detect /dev/loop devices.
5400
5401         * include/am_defs.h: include <linux/loop.h> if it exists.  Define
5402         LARGEFILE support macros, possibly needed for loop devices.
5403         Redefine dev_t apropriately for loop devices.
5404
5405         * configure.in: check for <linux/loop.h>.
5406
5407 2002-01-10  Ion Badulescu  <ion@guppy.limebrokerage.com>
5408
5409         * conf/mount/mount_linux.c (mount_linux): tcp _must_ have a timeo
5410         parameter 2 orders of magnitude larger than udp (patch from Trond
5411         Myklebust)
5412
5413 2002-01-09  Erez Zadok  <ezk@localhost.localdomain>
5414
5415         * aux/macros/linux_headers.m4: properly [quote] a long string in
5416         m4 and use AC_MSG_WARN.
5417
5418         * ALL: put /* comments */ on #else/#endif lines everywhere.
5419
5420         * configure.in, aux/macros/with_addon.m4: due to limitation of
5421         AC_HELP_STRING, pass 2nd arg to AMU_WITH_ADDON, listing name of
5422         package for help string.
5423
5424         * doc/am-utils.texi (FSinfo): fixed various texinfo errors in the
5425         FSinfo section of the manual.
5426         (map_reload_interval Parameter): document new amd.conf global
5427         parameter.
5428
5429         * scripts/amd.conf.5 document new global option
5430         map_reload_interval.  Sort entries for nfs_vers and nfs_proto
5431         alphabetically.
5432
5433         * amd/nfs_start.c (do_select): increment do_mapc_reload's value by
5434         global map_reload_interval value, not by fixed ONE_HOUR.
5435
5436         * amd/amd.c (main): increment do_mapc_reload's value by global
5437         map_reload_interval value, not by fixed ONE_HOUR.
5438
5439         * scripts/amd.conf-sample (map_reload_interval): usage example
5440
5441         * amd/amd.c (init_global_options): initialize map_reload_interval
5442         to 3600 seconds.
5443
5444         * amd/conf.c (gopt_map_reload_interval): support a new global
5445         amd.conf option map_reload_interval, to determine how often (in
5446         seconds) Amd should check if the map source has changed and then
5447         reload it it.  This value was hard-coded to one hour, now it's the
5448         default if not otherwise specified.
5449
5450         * doc/am-utils.texi (plock Parameter): document plock=yes option
5451         as using mlockall(2) if found.
5452
5453         * scripts/amd.conf.5: document -S option as using mlockall(2) if
5454         found.
5455
5456         * include/am_defs.h: include <sys/mman.h> if it exists.
5457
5458         * configure.in: check for mlockall() function.  Check for
5459         sys/mman.h.
5460
5461         * amd/amd.c (main): support mlockall() on systems that have it and
5462         don't have plock(3) for plock=yes.  On systems that have both,
5463         will try plock() first and then mlockall(), until one of them (if
5464         any) succeeds.
5465
5466 2002-01-09  Erez Zadok  <ezk@whitestar.dyn.optonline.net>
5467
5468         * aux/macros/opt_debug.m4, opt_cppflags.m4, opt_amu_cflags.m4,
5469         with_addon.m4 (ac_upcase): fix help string formatting using
5470         AC_HELP_STRING.
5471
5472         * amd/test1.sh: simple test script for "make check".  Runs "amd
5473         -v".
5474
5475         * amd/Makefile.am (TESTS): add one simple test script, running
5476         "amd -v" and checking its return value.  More tests can be added.
5477
5478         * aux/macros/linux_headers.m4: use AC_MSG_WARN directly.
5479
5480         * aux/macros/*.m4: avoid the cumbersome "changequote" M4 command.
5481         Instead, list bracketed regexp patterns in [[double brackets]].
5482
5483         * aux/macros/header_templates.m4: remove all unnecessary
5484         HAVE_FIELD_* definitions, now that we're using autoconf's new
5485         AC_CHECK_MEMBERS.
5486
5487         * aux/macros/field_mntent_t_mnt_time_string.m4: don't call
5488
5489         * configure.in: use new syntax for AMU_CHECK_FIELD
5490
5491         * aux/macros/check_field.m4: use new and simpler macro
5492         AC_CHECK_MEMBERS.  Change all sources to use HAVE_aggregate.member
5493         instead of HAVE_FIELD_aggregate.member.
5494
5495         * aux/amdgrep: simple utility script to egrep the am-utils sources
5496         for any pattern.
5497
5498         * aux/macros/{check_mnttab_style.m4, check_mount_style.m4,
5499         check_umount_style.m4, check_network_transport_type.m4}: use newer
5500         AC_LIBOBJ macros instead of modifying $LIBOBJS directly
5501
5502         * aux/macros/func_bad_memcmp.m4: redefine to use native
5503         AC_FUNC_MEMCMP, and then define HAVE_BAD_MEMCMP as needed.
5504
5505         * fsinfo/fsi_gram.y, amd/conf_parse.y: indent #pragma command so
5506         pre-ANSI C compilers will ignore it.
5507
5508         * conf/autofs/autofs_linux.c (autofs_link_mount): call s/getpgrp()
5509         correctly depending on whether it takes a void or a 0.
5510
5511         * configure.in: check if s/getpgrp() takes void or a 0.
5512
5513 2002-01-08  Erez Zadok  <ezk@whitestar.dyn.optonline.net>
5514
5515         * configure.in: use the newer AC_CONFIG_LINKS instead of
5516         AC_LINK_FILES.
5517
5518         * aux/macros/check_autofs_style.m4, check_checkmount_style.m4,
5519         check_mnttab_style.m4, check_mount_style.m4,
5520         check_network_transport_type.m4, check_umount_style.m4,
5521         check_nfs_prot_headers.m4: removed backward compatible code for
5522         pre-autoconf-2.14.
5523
5524 2002-01-07  Erez Zadok  <ezk@whitestar.dyn.optonline.net>
5525
5526         * doc/Makefile.am: define @SET_MAKE@ for AC_PROG_MAKE_SET macro, since
5527         this Makefile could explicitly chdir to other directories and run
5528         make there.
5529         (install-ps): use ${MAKE} with ${MFLAGS}.
5530
5531         * Makefile.am (EXTRA_DIST_AUX): distribute new package_*.m4 files.
5532         Define @SET_MAKE@ for AC_PROG_MAKE_SET macro, since this Makefile
5533         could explicitly chdir to other directories and run make there.
5534         (install-snapshot): use ${MAKE} ${MFLAGS}, not hardcoded "make".
5535
5536         * configure.in: call AC_PROG_MAKE_SET to check if make program
5537         defines $MAKE variable.
5538
5539         * amd/get_args.c (get_version_string): use new PACKAGE_* macros
5540         and also report the bug-reporting address.
5541
5542         * aux/macros/package_{name,version}.m4, header_templates.m4: using
5543         new PACKAGE_{NAME,VERSION,BUGREPORT} macros.
5544
5545         * aux/macros/name_bugreport.m4: simple macro to print out the
5546         bug-reporting address which was configured in AC_INIT.
5547
5548         * bootstrap: remove new autoconf messages about misuse of
5549         m4_patsubst and m4_regexp (internal GNU M4 macros).
5550
5551         * configure.in: remove old comment above AC_OUTPUT.
5552         Use AC_CONFIG_FILES and AC_OUTPUT separately.
5553         Fix AC_REVISION use.
5554         Add AC_COPYRIGHT.
5555         Use new style for AC_INIT, listing package name, version, and
5556         bug-reporting address.
5557         Call new AMU_PACKAGE_* macros.
5558
5559         * updated copyright year to 2002 on all files
5560
5561         * configure.in: using newly renamed am-utils macros (AMU_*)
5562
5563         * aux/macros/*.m4: renamed ALL am-utils specific macros so they
5564         start with AMU_*, not AC_*.  That way it is easier to distinguish
5565         between macros that come with am-utils and those that are part of
5566         Autoconf or Automake.  It helps to identify those am-utils macros
5567         that can be removed once there is generic support for them in a
5568         future version of Autoconf.
5569
5570         * bootstrap: run automake --copy
5571         remove autom4te.cache dir before rerunning autoconf
5572
5573 2001-12-13  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
5574
5575         * scripts/amd.conf.5: correct title to section 5, not 8.  Correct
5576         reversed meaning of nfs_proto and nfs_vers parameters.  Typos
5577         reported by Peter Breitenlohner <peb@mppmu.mpg.de>.
5578
5579 2001-12-02  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
5580
5581         * scripts/ctl-amd.in: run "test" or "[" in front of -x/-f
5582
5583         * scripts/ctl-hlfsd.in: run "test" or "[" in front of -x/-f
5584
5585 2001-12-02  Ion Badulescu  <ionut@moisil.badula.org>
5586
5587         * hlfsd/homedir.c (plt_print): fix typo (s/plot/plog/) in
5588         non-mkstemp code
5589
5590         * scripts/ctl-amd.in: touch/remove /var/lock/subsys/amd to make RH
5591         happy
5592
5593         * scripts/ctl-hlfsd.in: ditto (for hlfsd)
5594
5595         * conf/mtab/mtab_file.c (rewrite_mtab): fchmod(644) the file we
5596         get from mkstemp(), otherwise samba becomes very unhappy (sigsegv)
5597
5598         * conf/mtab/mtab_mach3.c (rewrite_mtab): ditto
5599
5600 2001-11-29  Ion Badulescu  <ion@guppy.limebrokerage.com>
5601
5602         * tasks: updated
5603
5604         * NEWS: document the fixed autofs fd leak
5605
5606         * amq/amq.8: better document the -f option
5607
5608 2001-11-29  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
5609
5610         * libamu/mount_fs.c (mnt_flags): same this as for nolock option
5611         handling, do for maxgrps.
5612
5613 2001-11-29  Ion Badulescu  <ion@guppy.limebrokerage.com>
5614
5615         * conf/autofs/autofs_linux.c (hash_init): determine the max number
5616         of fd's at runtime, use it to dynamically scale the hash and list
5617         arrays
5618         (autofs_get_fh): sanity check, don't allow a pipe() fd greater
5619         than autofs_max_fds
5620         (autofs_release_fh): close our end of the pipe here (no clue why
5621         or when it got commented out)
5622         (autofs_mounted): set kernelfd to -1 after closing it
5623
5624 2001-11-28  Philippe Troin  <phil@fifi.org>
5625
5626         * libamu/mount_fs.c (mnt_flags): Drop nolock from generic mount
5627         opts.
5628         (compute_nfs_args): Added nolock handling.
5629         Adapted from an original patch from Avery Pennarun <apenwarr@nit.ca>.
5630
5631 2001-11-27  Erez Zadok  <ezk@a-hpux11i.fsl.cs.sunysb.edu>
5632
5633         * ported to ia64-hp-hpux11.20 using HP's ANSI/C compiler.
5634         Couldn't use bison/flex because of 32-bit vs. 64-bit binaries
5635         issues.  Had to use HP's own yacc/lex.
5636
5637 2001-11-26  Erez Zadok  <ezk@a-hpux11i.fsl.cs.sunysb.edu>
5638
5639         * */Makefile.am: don't use $(OBJECTS) directly because it is no
5640         longer automatically defined now that Automake has automatic
5641         dependency tracking (which I turn off).  Instead, hard-code
5642         minimal dependencies on am-utils' header files to depend on
5643         PROG_OBJECTS (where PROG is the program name being built).  This
5644         was discovered by using HP's non-GNU make program.
5645
5646         * amd/nfs_start.c (checkup): cast getpagesize() return val to
5647         long, to avoid conflicts in division of a long by an int (on
5648         hpux11i, with their ANSI/C compiler).
5649
5650         * INSTALL, doc/am-utils.texi: port updates
5651
5652         * minor new ports: ia64-hp-hpux11.20, i386-unknown-freebsd5.0,
5653         i386-unknown-freebsd4.4, i386-pc-linux-rh7.2,
5654         ia64-unknown-linux-rh7.1.
5655
5656         * include/am_defs.h: actually declare extern definition for
5657         xdr_callmsg() if it doesn't already exist.
5658
5659         * aux/macros/header_templates.m4: declare template for
5660         HAVE_EXTERN_XDR_CALLMSG.
5661
5662         * configure.in: check for extern definition for xdr_callmsg()
5663         because hpux11 has that function but a bad <rpc/xdr.h> header file
5664         that doesn't define it in the right place.
5665
5666         * libamu/mount_fs.c (print_nfs_args): cast ->rdev to u_long b/c
5667         on hpux11 its type is dev_t.
5668
5669         * conf/nfs_prot/nfs_prot_hpux11.h: don't support autofs on hpux11
5670         yet.
5671
5672 2001-11-16  Erez Zadok  <ezk@fsl-gw.fsl.cs.sunysb.edu>
5673
5674         * buildall (Usage): separate $cnf_flags and $extra_cnf_flags due
5675         to /bin/sh limitations.
5676
5677         * bootstrap (cmd): turn back on --ignore-deps (this Automake may
5678         have problems)
5679
5680         * libamu/xutil.c: remove __attribute__ format_arg statement for
5681         expand_error() because this function, although taking a
5682         printf-like string, does not use it in a printf function; it only
5683         expands a non-printf amd-special syntax %m.
5684
5685 2001-11-14  Erez Zadok  <ezk@fsl-gw.fsl.cs.sunysb.edu>
5686
5687         * conf/nfs_prot/nfs_prot_linux.h: define KERNEL_VERSION macro
5688         before using it because older Linux systems don't define this
5689         (e.g., Red Hat 4.2)
5690
5691 2001-11-13  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
5692
5693         * configure.in: convert to using autoconfig 2.52.  Use new macros.
5694         AC_MSG_NOTICE for messages; AH_TOP and AH_BOTTOM to top and bottom
5695         parts of autogenerated config.h.in; increase autoconf
5696         pre-requisite to version 2.50; use AC_DISABLE_SHARED not
5697         AM_DISABLE_SHARED.
5698
5699         * aux/macros/cache_check_dynamic.m4: finally I can use the new
5700         $ECHO_N syntax in macros instead of $ac_n, since I'm using a new
5701         autoconf.  Isn't it nice to be such forward looking and having
5702         placed a comment "XXX: use the next line for autoconf-2.14 and
5703         newer"... :-)
5704
5705         * aux/macros/save_state.m4: highlight message with ***'s
5706
5707         * aux/macros/host_macros.m4: use proper M4 quoting ([], not "")
5708
5709         * config.{guess,sub}: upated from latest prep ftp distributions
5710
5711         * depcomp, missing, mkinstalldirs: upated from latest Automake 1.5
5712
5713         * ltmain.sh: updated from latest Libtool 1.4.2
5714
5715         * bootstrap: finally, new autoconf doesn't print silly "AC_TRY_RUN
5716         called without default to allow cross compiling" warnings.  And,
5717         it only took like 3+ years to fix this.  But, now it has anoter,
5718         albeit less annoying warning (which the manual says to ignore):
5719         "AC_PROG_LEX invoked multiple times".
5720         When autoheader is run, don't treat the "all clear" message
5721         "config.h.in is update" as an error.
5722
5723         * ltconfig: removed. not needed with latest version of libtool
5724
5725         * aux/macros/header_templates.m4: replaces acconfig.h and defines
5726         all CPP macros we use in this package, including their
5727         accompanying C /* comments */.
5728
5729         * acconfig.h: removed. replaced by new autoconf system to generate
5730         header templates using AH_TEMPLATE macros and such.
5731
5732         * aux/macros/msg.m4: removed.  Replaced with new macro
5733         AC_MSG_NOTICE
5734
5735         * Makefile.am (EXTRA_DIST_AUX): remove aux/macros/msg.m4.  Add
5736         aux/macros/header_templates.m4
5737
5738         * configure.in: early, in host_macros.m4, I'm renaming silly linux
5739         $host_os names such as linux-gnu and lignux to plain "linux".
5740         Alas, RMS finally had his way and libtool will NOT recognize
5741         "linux" as a valid system, only "linux-gnu".  Sigh.  Rich, I know
5742         you're responsible to Linux's fame.  Kudos to you and your
5743         cohorts.  But please don't force the rest of us to use those ugly
5744         or long names.  Solution: temporarily name $host_os to "linux-gnu"
5745         before calling the AC_PROG_LIBTOOL macro, then name it back to
5746         "linux".  (That way I don't have to maintain my own version of
5747         ltmain.sh.
5748
5749         * buildall: force running configure -C (to create and use a local
5750         config.cache file).  New default behavior for autoconf is NOT to
5751         use cache files.  Yeah, that's gonna fly real well with am-utils,
5752         with its 700+ automatic tests.
5753
5754         * conf/mtab/mtab_mach3.c (rewrite_mtab): use mkstemp instead of
5755         mktemp, if the former is available.
5756
5757         * conf/mtab/mtab_file.c (rewrite_mtab): use mkstemp instead of
5758         mktemp, if the former is available.
5759
5760         * mk-amd-map/mk-amd-map.c (main): use mkstemp instead of mktemp,
5761         if the former is available.
5762
5763         * aux/macros/check_nfs_socket_connection.m4: AC_DEFINE calls must
5764         be on a separate line, as per new Autoconf manual, to avoid some
5765         Bourne Shell syntactical bizarreness.
5766
5767 2001-11-13  Erez Zadok  <ezk@a-rh71i.fsl.cs.suunysb.edu>
5768
5769         * amd/amfs_auto.c (amfs_auto_readdir_browsable): cast to u_long,
5770         for IA64 Linux.
5771
5772 2001-11-12  Ion Badulescu  <ionut@buggy.badula.org>
5773
5774         * libamu/mtab.c (hasmntval): strtol can return a non-NULL pointer
5775         pointing to '\0' on success, so we need to allow for it. This
5776         fixes the problem with rejecting numerical mount options if they
5777         are the last option in the string.
5778
5779         * configure.in: increased library patchlevel
5780
5781         * NEWS: document the parsing bug
5782
5783 2001-10-29  Ion Badulescu  <ionut@moisil.badula.org>
5784
5785         * configure.in: bumped version up to 6.1a5-pre
5786
5787         * NEWS: fixed speeling mistaike
5788
5789 2001-10-29  Ion Badulescu  <ionut@moisil.badula.org>
5790
5791         * released snapshot am-utils-6.1a4
5792
5793 2001-10-26  Ion Badulescu  <ionut@moisil.badula.org>
5794
5795         These changes fix autofs support for sublinks. While it is not
5796         perfect by any means and is hardly better than non-autofs, at
5797         least it works.
5798
5799         * conf/autofs/autofs_solaris_v2_v3.c (autofs_lookup_2_req): don't
5800         reply if the mount is in progress
5801         (autofs_mount_succeeded): handle both delayed lookups and mounts
5802         (autofs_mount_failed): ditto
5803
5804         * amd/amfs_auto.c (amfs_auto_lookup_mntfs): don't dispose of the
5805         original opt_fs if we have a sublink
5806
5807 2001-10-23  Ion Badulescu  <ionut@moisil.badula.org>
5808
5809         * amd/amfs_auto.c (amfs_auto_lookup_mntfs): fixed silly typo (mf
5810         instead of new_mf) which was causing null pointer error when
5811         sublinks were being used
5812
5813 2001-10-22  Ion Badulescu  <ionut@moisil.badula.org>
5814
5815         * README.autofs: updated
5816
5817         * NEWS: updated
5818
5819         * INSTALL: updated
5820
5821         * AUTHORS: added myself
5822
5823         * doc/am-utils.texi: updated
5824
5825         * conf/autofs/autofs_solaris_v2_v3.c (xdr_autofs_rddirargs): use
5826         xdr_u_int() and cast things to (int) to appease Solaris 2.7 compile
5827         (autofs_readdir_2_req): cast req->rda_offset to (int), same as
5828         above
5829
5830 2001-10-22  Ion Badulescu  <ionut@moisil.badula.org>
5831
5832         Autofs direct mounts have been verified to work on Solaris2.[67].
5833
5834         * conf/autofs/autofs_solaris_v2_v3.c (autofs_lookup_2_req):
5835         retrieve the uid and gid from the lookup request
5836         (autofs_mount_2_req): skip the first char in the name (it's a
5837         leading '/') if this is a direct mount
5838
5839         * amd/amfs_direct.c (amfs_direct_ops): use amfs_auto_lookup_child
5840         and amfs_auto_mount_child for amfs_direct's methods
5841
5842         * amd/amfs_auto.c (amfs_auto_lookup_child): don't leak an am_node
5843         if the mntfs lookup fails
5844
5845 2001-10-21  Ion Badulescu  <ionut@moisil.badula.org>
5846
5847         * include/am_utils.h (AMF_REMOUNT): new flag, marks the node as
5848         pending a remount
5849         (mntfs): new member mf_fsflags, holds a copy of the filesystem's
5850         fs_flags
5851         (am_ops): new member autofs_fs_flags, holds the filesystem's flags
5852         when mounted onto an autofs node; fs_flags renamed to nfs_fs_flags
5853
5854         * conf/autofs/autofs_linux.c (create_autofs_service): turn on
5855         FS_MKMNT for amfs_auto and FS_MBACKGROUND for amfs_link
5856         (autofs_umount_succeeded): don't rmdir the mountpoint if a remount
5857         is needed [lest the access that triggered the remount will fail]
5858
5859         * amd/mntfs.c (init_mntfs): copy the filesystem's nfs_fs_flags
5860         into mf_fsflags on initialization
5861
5862         * amd/autil.c (am_unmounted): start the remounting right away if
5863         the node is marked as needing a remount [fixes the Linux autofs
5864         deadlock when mount/unmount collide]
5865
5866         * amd/amfs_auto.c (amfs_auto_lookup_node): mark the node as
5867         needing a remount if a mount request comes in while we're
5868         unmounting it
5869         (amfs_auto_lookup_mntfs): copy the filesystem's autofs_fs_flags
5870         into mf_fsflags if this is an autofs node
5871
5872         * amd/amfs_*.c, amd/ops_*.c: added initialization for the new
5873         autofs_fs_flags member of am_ops
5874
5875 2001-10-20  Ion Badulescu  <ionut@moisil.badula.org>
5876
5877         With these changes, Solaris 2.[67] autofs support is finally
5878         functional!
5879
5880         * conf/autofs/autofs_solaris_v2_v3.c (autofs_readdir_2_req): stub
5881         (autofs_readdir_2_free, xdr_autofs_rddirargs, xdr_autofs_putrddirres,
5882         xdr_autofs_getrddirres, xdr_autofs_rddirres): new functions
5883         (autofs_lookup_2_req): do an actual lookup here, and tell the
5884         kernel to create a symlink if necessary
5885         (autofs_mount_2_req): no need to am_autofs_data
5886         (autofs_program_2): enable AUTOFS_READDIR
5887         (autofs_link_mount): no code needed here
5888         (autofs_link_umount): return success
5889         (autofs_mount_succeeded): lstat real mount points; don't mark
5890         symlinks as NOTIMEOUT
5891
5892         * amd/mntfs.c (init_mntfs): mf_dev and mf_rdev don't exist anymore
5893
5894         * amd/map.c (init_map): init am_dev and am_rdev to -1
5895         (free_map): free am_mfarray and all mntfs's listed
5896
5897         * amd/autil.c (mf_mounted): move the lstat of the node to the
5898         autofs-specific code
5899
5900         * amd/amfs_link.c (amfs_link_ops): don't background symlink creation
5901
5902 2001-10-18  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5903
5904         * aux/macros/os_cflags.m4 (irix6*): Enforce N32 ABI/mips3 ISA with cc.
5905         * BUGS: Explain this.
5906
5907 2001-10-02  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
5908
5909         * doc/am-utils.texi (redhat-ctl-amd): document new script.
5910
5911         * scripts/Makefile.am: build redhat-ctl-amd but do not install it.
5912
5913         * scripts/redhat-ctl-amd.in: new script, useful to correctly
5914         control Amd on Red Hat Linux systems.  Script adapted from ctl-amd
5915         and Red Hat's own rc.d script.
5916
5917 2001-10-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5918
5919         * conf/nfs_prot/nfs_prot_osf5.h: Renamed from nfs_prot_osf5_1.h.
5920         (MNT2_NFS_OPT_AUTO): Disable.
5921         * Makefile.am (EXTRA_DIST_CONF): Reflect new name.
5922         * aux/macros/check_nfs_prot_headers.m4: Use this file for all
5923         Tru64 UNIX V5 and up releases.
5924
5925 2001-09-24  Ion Badulescu  <ionut@moisil.badula.org>
5926
5927         * include/mount_headers1.h (MFS): define as 1 instead of nothing,
5928         to fix compile problems on OS X (patch from Ahmon Dancy)
5929
5930         * aux/macros/try_compile_anyfs.m4 (MFS): ditto
5931
5932 2001-08-13  Erez Zadok  <ezk@fsl-gw.fsl.cs.sunysb.edu>
5933
5934         * doc/am-utils.texi (in_network Selector Variable): document
5935         expanded syntax
5936
5937         * libamu/wire.c (is_network_member): support for network/netmask
5938         as well as network/bits syntax in in_network()
5939
5940 2001-08-11  Erez Zadok  <ezk@a-linux64.fsl.cs.sunysb.edu>
5941
5942         * amq/amq.c (show_mti): print full four digits for year, and print
5943         it in MM/DD/YYYY format, not in YY/MM/DD format.
5944
5945 2001-08-11  Ion Badulescu  <lionut@gonzales.badula.org>
5946
5947         * conf/autofs/autofs_solaris_v2_v3.c (autofs_lookup_2_req):
5948         initial attempt to do something useful -- but commented out for now
5949         (autofs_link_mount): create an action structure with a link
5950         request and pass it up
5951         (autofs_mount_2_req): pass the link request to the kernel
5952         (autofs_free_data): new helper function
5953
5954         * conf/autofs/autofs_linux.h: added definition for autofs_data_t
5955
5956         * conf/autofs/autofs_solaris_v2_v3.h: ditto
5957
5958         * amd/map.c (init_map): initialize am_autofs_data
5959         (free_map): call the autofs cleanup function if necessary
5960
5961         * include/am_utils.h (am_node): added private data and cleanup
5962         function for autofs
5963
5964         * tasks: removed some obsolete entries
5965
5966 2001-08-11  Erez Zadok  <ezk@a-solaris8.fsl.cs.sunysb.edu>
5967
5968         * amd/map.c (free_map_if_success): run autofs_umount_failed() only
5969         if this mount node is of type autofs.
5970
5971 2001-08-11  Ion Badulescu  <lionut@gonzales.badula.org>
5972
5973         * amd/amd.h: removed mf_array from struct continuation (moved into
5974         am_node)
5975
5976         * include/am_utils.h: removed VLOOK_LOOKUP; renamed vlookuppn to
5977         vlookup_child; added vmount_child; added mount_child to the fs_ops
5978         API; added prototypes for amfs_auto_mount_child and
5979         amfs_error_mount_child
5980
5981         * amd/map.c (init_map): initialize am_mfarray to 0
5982
5983         * amd/amfs_*, amd/ops_*: new API function mount_child, old API
5984         function lookuppn renamed to lookup_child
5985
5986         * amd/amfs_auto.c: renamed amfs_auto_lookuppn1 to
5987         amfs_auto_lookup_node; renamed amfs_auto_lookuppn2 to
5988         amfs_auto_lookup_mntfs; renamed amfs_auto_lookuppn3 to
5989         amfs_auto_mount_child; moved the freeing of the error mntfs in the
5990         newly allocated am_node from lookup_mntfs to mount_child; make
5991         sure lookup_child returns a negative error if the node needs to be
5992         mounted; removed the call to lookuppn3 from lookup_child
5993
5994         * amd/amfs_error.c: added stub implementations of
5995         amfs_error_lookup_child and amfs_error_mount_child
5996
5997         * amd/amfs_direct.c, amd/amfs_union.c, amd/map.c, amd/nfs_subr.c,
5998         conf/autofs/autofs_linux.c, conf/autofs/autofs_solaris_v2_v3.c:
5999         call both lookup_child and mount_child, instead of the old
6000         lookuppn API method
6001
6002 2001-07-19  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
6003
6004         * amd/get_args.c (get_args): a better way to handle GNU and
6005         non-GNU getopts without strdup-ing the getopt string.
6006
6007 2001-07-04  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
6008
6009         * amd/info_ldap.c (amu_ldap_rebind): The first time you called
6010         amu_ldap_init, aldh->ldap is not set.  So when amu_ldap_rebind is
6011         called, this function is absolutely sure to return 0.  Then
6012         amu_ldap_init return 0 without having opened any LDAP connection.
6013         This is not the correct behavior.
6014         (get_ldap_timestamp, amu_ldap_search): error to free an object
6015         ("entry") that is automatically freed by the library.  Patch from
6016         Sebastien Bahloul <sebastien.bahloul@mangoosta.fr>.
6017
6018 2001-07-19  Ion Badulescu  <ionut@moisil.badula.org>
6019
6020         * AUTHORS (variables): added Philippe Troin
6021
6022         * Makefile.am (EXTRA_DIST): added bootstrap
6023
6024         * include/am_compat.h (xfs_args_t): define as u_int if the
6025         filesystem is supported but we can't autodetect the type for
6026         xfs_args_t. This allows Linux to mount xfs filesystems.
6027
6028 2001-07-12  Philippe Troin  <phil@fifi.org>
6029
6030         * doc/am-utils.texi: Added @dircategory Administration.
6031
6032 2001-07-12  Philippe Troin  <phil@fifi.org>
6033
6034         * aux/macros/with_addon.m4: Created. Wrapper around AC_ARG_WITH
6035         with only the `yes' and `no' as possible answers.
6036
6037         * configure.in: Added support for disabling LDAP and HESIOD even
6038         if the supporting libraries are found.
6039
6040         * Makefile.am (EXTRA_DIST_AUX): Added with_addon.m4 macro file.
6041
6042 2001-07-12  Philippe Troin  <phil@fifi.org>
6043
6044         * include/am_compat.h: Removed forced definition of MNTTAB_OPT_DEV
6045         if MNT2_GEN_OPT_NODEV was found. Actually, the dev= (SVR4) options
6046         and the linux nodev options are different beasts.
6047
6048         * conf/mount/mount_linux.c (opt_map): Removed the MNTTAB_OPT_DEV
6049         entry (not really necessary on linux).
6050
6051 2001-07-12  Philippe Troin  <phil@fifi.org>
6052
6053         * amd/get_args.c (get_args): Prepend "+" to the getopt string if
6054         HAVE_GNU_GETOPT to avoid getting all options (even the ones after
6055         the first non-option argument) slurped in by GNU getopt.
6056
6057         * aux/macros/check_gnu_getopt.m4: Created. Defines HAVE_GNU_GETOPT
6058         if GNU/glibc getopt implementation is detected.
6059
6060         * configure.in: Added call to AC_CHECK_GNU_GETOPT.
6061
6062         * acconfig.h: Document HAVE_GNU_GETOPT.
6063
6064         * Makefile.am (EXTRA_DIST_AUX): Added check_gnu_getopt.m4 macro file.
6065
6066 2001-06-25  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
6067
6068         * LSM.am-utils, NEWS, README.y2k, ChangeLog: make sure all
6069         am-utils URL references use www.am-utils.org, not the columbia
6070         URL.
6071
6072 2001-06-08  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
6073
6074         * conf/transp/transp_sockets.c (create_nfs_service): cast to
6075         u_long to ensure clean compile on freebsd5 and bsdi2.
6076
6077 2001-05-23  Ion Badulescu  <ionut@moisil.badula.org>
6078
6079         WARNING: WORK IN PROGRESS
6080
6081         It works for me on Linux (both autofs and nfs mounts), for nfs and
6082         link, but I won't make any guarantees outside those.
6083
6084         * amd/mntfs.c (find_mntfs): reuse the mntfs only if both the mount
6085         point and the device/fileserver are the same. This is an important
6086         change of philosophy, watch out for memory leaks!
6087
6088         * amd/map.c (get_ap_child): helper function for
6089         amfs_auto_lookuppn, creates a new am_node for key fname, inits it,
6090         and inserts it into all necessary structures
6091
6092         * amd/amfs_auto.c (free_continuation): free unused mntfs's; don't
6093         free any of the removed fields
6094         (amfs_auto_lookuppn, amfs_auto_bgmount): split lookuppn into three
6095         subfunctions, including some code stolen from bgmount; lookuppn
6096         now generates an array of possible mntfs to try mounting, and
6097         bgmount will actually try to mount each of them.
6098         (amfs_auto_lookuppn[123]): the three new subfunctions for lookuppn
6099         (amfs_parse_defaults): new helper function for lookuppn
6100
6101 2001-05-19  Erez Zadok  <ezk@kosh.dyn.optonline.net>
6102
6103         * conf/mount/mount_linux.c: typo: added comma after '0' element.
6104
6105 2001-05-19  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
6106
6107         * conf/autofs/autofs_linux.c (AUTOFS_MAX_VERSION): allow using
6108         autofs-v4 again
6109         (autofs_get_opts): don't pass pgrp, the kernel will get it
6110         automatically anyway, not to mention that we were passing bogus
6111         data if amd was not daemonized.
6112
6113         * conf/mount/mount_linux.c (linux_nfs_error): don't special case
6114         the 0 result, just put it into the translation list
6115
6116 2001-05-19  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
6117
6118         * conf/mount/mount_linux.c (linux_nfs_error): don't report success
6119         (0) as error (NE_IO)!
6120
6121 2001-05-18  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
6122
6123         * amd/amfs_host.c (amfs_host_mount): don't fail the mount if at
6124         least one share is already mounted
6125
6126 2001-05-17  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
6127
6128         * libamu/util.c (str3cat): updated comment
6129
6130         * include/am_utils.h: added VLOOK_LOOKUP and FS_DIRECT
6131
6132         * conf/autofs/autofs_linux.c (autofs_get_fh): removed obsolete comment
6133         (autofs_mounted): disable autofs support for host f/s if version < 4
6134         (create_autofs_service): turn on FS_MKMNT on auto f/s if using autofs
6135         (autofs_umount_succeeded): use rmdirs instead of rmdir
6136         (autofs_mount_failed): ditto
6137
6138         * amd/opts.c (expand_op): align the debugging messages
6139
6140         * amd/map.c (mount_auto_node): use am_node *mp instead of casting
6141         the void *arg; update the comment
6142
6143         * amd/autil.c (am_mounted): check the FS_DIRECT flag instead of
6144         comparing to &amfs_direct_ops
6145         (mount_node): ifs_mount doesn't exist, make note of it in the
6146         comment
6147
6148         * amd/amfs_direct.c (amfs_direct_ops): added FS_DIRECT to fs_flags
6149
6150         * amd/amfs_auto.c (amfs_auto_mount): removed the autofs hack to
6151         create the mountpoint directory for auto f/s; it is now handled in
6152         autofs_linux.c
6153         (amfs_auto_bgmount): renamed the mpe parameter to mp_error;
6154         renamed dont_retry to retry and reverted its meaning as well;
6155         moved the mp variable up one scope and made use of it throughout
6156         the function;
6157         (amfs_auto_readdir): whitespace
6158         (amfs_auto_readdir_browsable): whitespace, also some debugging
6159
6160         * amd/am_ops.c (vops): updated a comment
6161
6162         * .cvsignore: added A.i386-pc-linux-rh7.[01]
6163
6164 2001-05-01  Ion Badulescu  <ionut@gonzales.dev.hydraweb.com>
6165
6166         * conf/mount/mount_linux.c: fixed stupid error in the linux
6167         nfs_errormap[], which was mapping ENOENT to success!!!
6168
6169 2001-04-28  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
6170
6171         * BUGS: added info about the direct mount problems on Linux and
6172         about the kernel patches on www.am-utils.org.
6173
6174         * conf/autofs/autofs_solaris_v2_v3.c (autofs_unmount_2_req):
6175         removed obsolete comment
6176
6177         * amd/autil.c (forcibly_timeout_mp): always log a message when the
6178         forced unmount request is ignored
6179         (mf_mounted): don't lstat unless this is an autofs mount point,
6180         lest we deadlock
6181
6182         * amd/amfs_auto.c (amfs_auto_bgmount): don't gratuitously add
6183         MFF_MKMNT to the flags, it causes deadlocks later on when
6184         unmounting
6185
6186 2001-04-14  Erez Zadok  <ezk@whitestar.dyn.optonline.net>
6187
6188         * COPYING: update copyright year
6189
6190         * amd/amfs_auto.c, amd/amfs_host.c, amd/amfs_nfsx.c,
6191         amd/amfs_toplvl.c, amd/amfs_union.c, amd/conf.c, amd/info_nis.c,
6192         amd/info_nisplus.c, amd/mapc.c, amd/nfs_subr.c, amd/ops_nfs.c,
6193         amd/rpc_fwd.c, amd/srvr_amfs_auto.c, amd/srvr_nfs.c,
6194         conf/autofs/autofs_solaris_v1.c, conf/mtab/mtab_file.c,
6195         conf/mtab/mtab_isc3.c, conf/mtab/mtab_svr4.c,
6196         conf/transp/transp_sockets.c, conf/transp/transp_tli.c,
6197         libamu/mount_fs.c, libamu/mtab.c: rewritten various dlog/plog
6198         messages for clarity, to avoid duplication, to better recognize
6199         what the message means and where it ran, and to fix typos.
6200
6201         * amd/nfs_subr.c (nfsproc_lookup_2_svc): moved trace message of
6202         function's name to the beginning of the function, before any other
6203         messages are logged.
6204
6205 2001-04-14  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
6206
6207         * conf/mount/mount_linux.c (do_mount_linux): removed plog() of
6208         binary data
6209
6210 2001-04-05  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
6211
6212         * include/am_defs.h: define NFSCLIENT, NFS, PCFS, LOFS, RFS,
6213         MSDOSFS, MFS and CD9660 to 1, so that both #if FOO and #ifdef FOO
6214         work (needed for MacOS X); removed duplicate definition of NFS.
6215
6216 2001-03-29  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
6217
6218         * amd/amd.h, amd/amfs_auto.c, amd/conf.c,
6219         doc/am-utils.texi,
6220         scripts/amd.conf-sample, scripts/amd.conf.5:
6221         renamed selectors_on_default to selectors_in_defaults,
6222         kept the former as a deprecated option;
6223         renamed CFM_ENABLE_DEFAULT_SELECTORS to CFM_SELECTORS_IN_DEFAULTS;
6224         renamed gopt_selectors_on_default() to gopt_selectors_in_defaults()
6225
6226 2001-03-19  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
6227
6228         * amd/amfs_toplvl.c, amd/amfs_auto.c, amd/srvr_nfs.c,
6229         include/am_utils.h: compile fixes for --enable-debug=no
6230
6231 2001-03-15  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
6232
6233         * NEWS: updated
6234
6235         * README.autofs: updated
6236
6237         * conf/mount/mount_linux.c (linux_version_code): export the fn
6238
6239         * conf/nfs_prot/nfs_prot_linux.h: ditto
6240
6241         * conf/autofs/autofs_linux.c (create_autofs_service): verify the
6242         kernel version here, and turn off bind_works if the kernel is
6243         older than 2.4.0.
6244         (autofs_link_mount): don't touch bind_works here, it's useless
6245         b/c we're in a child process; remove the mountpoint directory if
6246         the bind mount fails
6247
6248         * amd/opts.c (eval_fs_opts): changed some annoying debugging plogs
6249         into dlogs
6250
6251         * conf/autofs/autofs_linux.c (autofs_link_mount): zero out the
6252         mntent struct before initializing it
6253
6254 2001-03-14  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
6255
6256         * conf/mount/mount_linux.c (parse_opts): added support for lofs
6257         (mount_linux): support lofs through bind mounts and/or FiST lofs
6258
6259         * scripts/ctl-hlfsd.in: search for /var/spool/mail in addition to
6260         /var/mail and /usr/spool/mail
6261
6262         * conf/nfs_prot/nfs_prot_linux.h (MS_BIND): add define for it, if
6263         kernel is newer than 2.4.0
6264         (MNTTYPE_LOFS): ditto
6265
6266         * conf/autofs/autofs_solaris_v2_v3.c (autofs_link_umount): new stub
6267         (autofs_lookup_failed): removed stub
6268
6269         * conf/autofs/autofs_linux.c (autofs_lookup_failed): moved up in
6270         the file, made static;
6271         (autofs_link_mount): activate MNT2_GEN_OPT_BIND code; use stat()
6272         and friends to determine if bind mounts can be used and to trigger
6273         further cascading mounts; return proper error codes
6274         (autofs_link_umount): distinguish between symlinks and bind mounts
6275         and handle both correctly
6276         (autofs_umount_succeeded): remove call to autofs_link_umount()
6277
6278         * amd/map.c (umount_exported): try to unmount all mount points on
6279         an autofs filesystem; this isn't really needed and will be removed
6280         when we start handling restarting autofs mounts
6281
6282         * amd/amfs_link.c (amfs_link_[u]mount): call autofs_link_[u]mount,
6283         if necessary
6284
6285         * amd/amfs_auto.c (amfs_auto_bgmount): fixed a bug that was
6286         causing the wrong mntfs to be selected when using autofs; removed
6287         call to autofs_link_mount() (moved where it belongs, in
6288         amfs_link.c)
6289
6290         * amd/amfs_link.c: added FS_MBACKGROUND to fs flags -- cleaner
6291         solution is needed, because background mounting is only necessary
6292         for linux autofs + bind mounts
6293
6294         * amd/amd.h: removed prototype for autofs_lookup_failed (internal
6295         static function for linux autofs); added prototype for
6296         autofs_link_umount
6297
6298         * configure.in: bump up library patchlevel
6299
6300 2001-02-28  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
6301
6302         * aux/macros/check_mount_trap.m4,
6303         aux/macros/check_nfs_fh_dref.m4,
6304         aux/macros/check_nfs_prot_headers.m4,
6305         aux/macros/type_recvfrom_fromlen.m4,
6306         aux/macros/type_yp_order_outorder.m4:
6307         Fixed newer freebsd's fh type, expanded more aix3, osf2, hpux9 to
6308         aix[1-3], osf[1-3] and hpux[6-9].
6309
6310 2001-02-28  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
6311
6312         * check_mount_style.m4, check_mount_trap.m4,
6313         check_network_transport_type.m4, check_nfs_fh_dref.m4,
6314         check_nfs_prot_headers.m4, check_nfs_sa_dref.m4,
6315         check_nfs_socket_connection.m4, os_cflags.m4,
6316         type_yp_order_outorder.m4: small fixes to Ion's cleanup, and more
6317         cleanup (use [[0-1]] instead of M4 changequote commands).
6318
6319         * Makefile.am: removed unused conf/trap/trap_hpux11.h
6320
6321 2001-02-27  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
6322
6323         * aux/macros/check_network_transport_type.m4,
6324         aux/macros/check_mount_style.m4,
6325         aux/macros/check_mount_trap.m4,
6326         aux/macros/check_network_transport_type.m4,
6327         aux/macros/check_nfs_fh_dref.m4,
6328         aux/macros/check_nfs_prot_headers.m4,
6329         aux/macros/check_nfs_sa_dref.m4,
6330         aux/macros/check_nfs_socket_connection.m4,
6331         aux/macros/os_cflags.m4,
6332         aux/macros/type_auth_create_gidlist.m4,
6333         aux/macros/type_recvfrom_fromlen.m4,
6334         aux/macros/type_yp_order_outorder.m4:
6335         Reworked the scripts, so that a new _unknown_ version of a known OS
6336         will use the option for the newest _known_ version of that OS. For
6337         example, when freebsd6 comes out, it will use the stuff for
6338         freebsd5, not the stuff for freebsd2. This makes configure more
6339         likely to succeed on new systems/versions.
6340
6341         * Makefile.am (EXTRA_DIST_AUX): added check_autofs_style.m4 (grr)
6342
6343 2001-02-24  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
6344
6345         * Makefile.am (install-snapshot): use a different symlink target
6346         for the experimental snapshots.
6347
6348 2001-02-23  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
6349
6350         * Makefile.am (EXTRA_DIST_CONF): include nfs_prot_darwin.h in
6351         distributions.
6352
6353 2001-02-22  Erez Zadok  <ezk@earth.cs.columbia.edu>
6354
6355         * released snapshot am-utils-6.1a3
6356
6357         * amd/Makefile.am (EXTRA_amd_SOURCES): don't forget to distribute
6358         get_args.c
6359
6360 2001-02-21  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
6361
6362         * libamu/mtab.c: added the functions hasmnteq and haseq to
6363         ease checks for non-numeric values in opt=value strings.
6364         Recoded hasmntval to qualify input as numeric, allow hex and
6365         octal strings on rhs of =, and log when the value is missing
6366         or invalid.
6367
6368         * conf/mount/mount_linux.c: revised mount_linux to use new
6369         hasmnteq function to extract type of non-nfs mounts, and added
6370         a log message to catch possible failure of strdup.
6371
6372         * amd/am_ops.c: revised merge_ops to use new haseq function
6373
6374         * amd/srvr_nfs.c: revised find_nfs_srvr to use hasmnteq to
6375         discover protocol setting.
6376
6377         * include/am_utils.h: added function prototypes for hasmnteq
6378         and haseq
6379
6380 2001-02-19  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
6381
6382         * include/mount_headers2.h (_LINUX_NFS3_H): define it, to avoid
6383         pulling in unwanted declarations from 2.2.19pre and 2.4.1ac
6384
6385         * include/am_defs.h (_LINUX_NFS3_H): ditto
6386
6387         * conf/nfs_prot/nfs_prot_linux.h: whitespace, comments
6388
6389 2001-02-19  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
6390
6391         * aux/macros/check_fs_mntent.m4 (ac_safe): remove debugging "echo"
6392         command.
6393
6394 2001-02-18  Erez Zadok  <ezk@earth.cs.columbia.edu>
6395
6396         * aux/macros/mount_headers.m4, include/mount_headers[12].h: split
6397         mount_headers.h in two because one relative header (nfs_prot.h)
6398         file cannot be included inside another from the start directory of
6399         the first (it's relative to the directory of the first).
6400
6401 2001-02-09  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
6402
6403         * AUTHORS: added Ahmon Dancy <dancy@franz.com>
6404
6405         * (all): added Darwin/Rhapsody/Apple OS X support from Ahmon Dancy
6406
6407         * aux/macros/mount_headers.m4: moved all the C code into a
6408         separate file, include/mount_headers.h; the effect is that
6409         configure goes down in size by a factor of 2.5!
6410
6411         * include/mount_headers.h: new file, with C code from
6412         aux/macros/mount_headers.m4
6413
6414 2001-02-01  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
6415
6416         * conf/mount/mount_linux.c: made linux_nfs_error() more robust.
6417
6418 2001-02-01  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
6419
6420         * released snapshot am-utils-6.1a2
6421
6422         * updated ltmain.sh and ltconfig from latest stable version of
6423         libtool-1.3.5
6424
6425 2001-02-01  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
6426
6427         * conf/nfs_prot/nfs_prot_linux.h (nfs_error): moved the definition
6428         of nfs_error here, from mount_linux.c, so that it can actually be
6429         used.
6430
6431         * conf/mount/mount_linux.c: added unused errno 41 to the
6432         nfs_errormap array, lest the following errno's get shifted up by
6433         one!
6434
6435 Sat Jan 13 00:04:38 2001  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6436
6437         * amd/amd.h (autofs_lookuppn): Fixup whitespace.
6438         * amd/amfs_auto.c (amfs_auto_bgmount): Likewise.
6439         * amd/amfs_error.c: (amfs_error_match): Likewise.
6440         * amd/amfs_host.c (fetch_fhandle): Fixup whitespace.  Remove
6441         unnecessary temporary variable.
6442         * amd/info_file.c (read_line): Likewise.
6443         (search_or_reload_file): Likewise.
6444         * amd/info_ldap.c (get_ldap_timestamp): Likewise.
6445         * amd/map.c (get_root_ap): Likewise.
6446         * amd/nfs_prot_svc.c: Likewise.
6447         * amd/ops_TEMPLATE.c (foofs_match, foofs_lookuppn,
6448         foofs_readlink, foofs_ffserver): Likewise.
6449         * amd/ops_autofs.c (autofs_bgmount): Likewise.
6450         * amd/ops_lofs.c (lofs_match): Likewise.
6451         * amd/ops_nfs.c (got_nfs_fh): Fixup whitespace.
6452         * amd/ops_xfs.c (xfs_match): Likewise.
6453         * amd/srvr_amfs_auto.c (srvrlog): Line break.
6454         * amd/srvr_nfs.c (got_portmap, call_portmap, nfs_pinged,
6455         nfs_srvr_port): Fixup whitespace.
6456         * conf/nfs_prot/nfs_prot_bsdi2.h: Likewise.
6457         * conf/nfs_prot/nfs_prot_hpux.h: Likewise.
6458         * conf/nfs_prot/nfs_prot_hpux11.h: Likewise.
6459         * conf/nfs_prot/nfs_prot_irix5.h: Likewise.
6460         * conf/nfs_prot/nfs_prot_irix6.h: Likewise.
6461         * conf/nfs_prot/nfs_prot_nextstep.h: Likewise.
6462         * conf/nfs_prot/nfs_prot_osf2.h: Likewise.
6463         * conf/nfs_prot/nfs_prot_osf4.h: Likewise.
6464         * conf/nfs_prot/nfs_prot_osf5_1.h: Likewise.
6465         * conf/nfs_prot/nfs_prot_sunos3.h: Likewise.
6466         * conf/nfs_prot/nfs_prot_sunos4.h: Likewise.
6467         * conf/nfs_prot/nfs_prot_ultrix.h: Likewise.
6468         * conf/transp/transp_tli.c (get_mount_client): Likewise.
6469         * hlfsd/nfs_prot_svc.c: Likewise.
6470         * include/am_defs.h (sys_errlist): Likewise.
6471         * include/am_utils.h (am_get_progname, am_get_hostname,
6472         amq_program_1): Likewise.
6473         (nfsxprt): Moved declaration.
6474
6475 Fri Jan 12 23:31:45 2001  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6476
6477         Removed support for amq -M.
6478
6479         * acconfig.h (ENABLE_AMQ_MOUNT): Removed.
6480         * aux/macros/opt_amq_mount.m4: Removed.
6481         * Makefile.am (EXTRA_DIST_AUX): Don't distribute
6482         opt_amq_mount.m4.
6483         * configure.in (AC_OPT_AMQ_MOUNT): Removed invocation.
6484
6485         * amd/amq_subr.c (ok_security, amqproc_mount_1_svc): Removed.
6486         * amd/amq_svc.c (amq_program_1): Removed amq -M support.
6487         * amq/amq.c (mount_map): Removed.
6488         (main): Removed -M option handling.
6489         Removed transport-type specific CLIENT creation.
6490         (get_secure_amd_client, amq_bind_resv_port, privsock): Removed.
6491
6492         * amq/amq.8: Removed -M documentation.
6493         * doc/am-utils.texi (Top-level Filesystem): Removed amq -M
6494         reference, but retain comment on mount -t amd.
6495         (Controlling Amd): Likewise.
6496
6497         * tasks: Removed this task.
6498
6499 Fri Jan 12 23:18:26 2001  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6500
6501         * conf/autofs/autofs_*.c: Bump copyright year to 2001.
6502         * hlfsd/hlfsd.h (HLFSD_VERSION): Likewise.
6503
6504         * aux/macros/check_autofs_style.m4: Renamed solaris[12] styles to
6505         solaris_v1, solaris_v2_v3 to reflect that these are AutoFS
6506         protocol version numbers, not solaris versions.
6507         * conf/autofs/autofs_solaris[12].[ch]: Renamed to
6508         autofs_solaris_{v1, 2_v3}.[ch] to reflect this.
6509         * Makefile.am (EXTRA_DIST_CONF): Likewise.
6510
6511         * aux/macros/check_autofs_style.m4: Use solaris2 style for both
6512         versions 2 and 3 of the AutoFS protocol.
6513
6514         Handle missing AUTOFS_POSTUNMOUNT, AUTOFS_POSTMOUNT (unnecessary
6515         with Solaris 8 mntfs).
6516
6517         * conf/autofs/autofs_solaris2.c (xdr_postumntreq, xdr_postumntres,
6518         xdr_postmountreq, xdr_postmountres, autofs_postunmount_2_req,
6519         autofs_postmount_2_req ): Don't define for version 3.
6520         (autofs_program_2): Don't handle AUTOFS_POSTUNMOUNT,
6521         AUTOFS_POSTMOUNT if missing.
6522
6523         * conf/nfs_prot/nfs_prot_sunos5_8.h: Enable AutoFS support.
6524
6525         * aux/macros/check_autofs_style.m4: Use empty autofs_default.[ch]
6526         files on systems without existing autofs port.
6527         * conf/autofs/autofs_default.[ch]: New files, empty.
6528         * Makefile.am (EXTRA_DIST_CONF): Distribute them.
6529         * INSTALL: With this change, Solaris 8 and Tru64 5.1 compile and
6530         link.
6531
6532 2001-01-12  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
6533
6534         * Makefile.am (EXTRA_DIST): distribute new LDAP files.
6535
6536         * README.ldap, ldap-id.txt, ldap-id.ms: LDAP status information,
6537         proposed Schema, and internet draft.
6538
6539 Fri Jan 12 22:27:07 2001  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6540
6541         * Support Tru64 UNIX V5.1:
6542
6543         * conf/nfs_prot/nfs_prot_osf5_1.h: New file.
6544
6545         * Makefile.am (EXTRA_DIST_CONF): Distribute it.
6546
6547         * aux/macros/check_nfs_prot_headers.m4: Tru64 UNIX V5.1 has
6548         AutoFS, need to disable it until a port exists.
6549
6550         * INSTALL, doc/am-utils.texi (Supported Platforms): Mention new
6551         minor port.
6552
6553 2001-01-09  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
6554
6555         * ALL: bump copyright year to 2001.
6556
6557 2001-01-05  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
6558
6559         * acconfig.h: correct comments for NODEV/NONDEV mount options
6560
6561 Fri Jan  5 05:12:02 2001  Erez Zadok  <ezk@subzero.cs.columbia.edu>
6562
6563         * libamu/xdr_func.c: removed ugly casts to "groups*", now that
6564         irix6's nfs_prot.h is fixed.
6565
6566         * conf/nfs_prot/nfs_prot_irix6.h: copied relevant parts of
6567         <rpcsvc/mount.h> here so we don't have to include this header.
6568
6569 2001-01-04  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
6570
6571         * conf/nfs_prot/nfs_prot_irix6.h: redefine "groups" typedef to
6572         struct groups, not the pointer to this struct.
6573
6574         * include/am_xdr_func.h: prototype should take "groups *" as 2nd
6575         arg.
6576
6577         * libamu/xdr_func.c (xdr_groupnode, xdr_exportnode): change
6578         casting of second arg of xdr_groups to "groups *".  It's only
6579         needed for irix6, due to problems with xdr_groups on that platform.
6580         (xdr_groups): prototype should take "groups *" as 2nd arg.
6581
6582         * conf/nfs_prot/nfs_prot_aix*.h: correct xdr_groups extern
6583         definition.  Report from Ahmon Dancy <dancy@franz.com>.
6584
6585 2000-12-06  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
6586
6587         * include/am_defs.h: force non-inclusion of <linux/fs.h> via
6588         <linux/auto_fs.h>
6589
6590         * conf/autofs/autofs_linux.c (autofs_mounted): rename
6591         AUTOFS_MIN_PROTO_VERSION to AUTOFS_MIN_VERSION (leftover from
6592         previous commit)
6593
6594         * configure.in: fixed libtool version
6595
6596 2000-12-02  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
6597
6598         * doc/am-utils.texi (opts Option): document lock/nolock
6599
6600 2000-12-02  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
6601
6602         * conf/autofs/autofs_linux.h: added struct autofs_pending_mount;
6603         modified autofs_fh_t to have a linked list of autofs_pending_mount;
6604         added some support for autofs4
6605
6606         * conf/autofs/autofs_linux.c: use a linked list for pending
6607         request, to allow for handling multiple simultaneous request;
6608         incipient non-functional support for autofs4; incipient
6609         non-functional support for bind-mounting
6610
6611         * amd/amd.c (main): print a warning if PROCLOCK is requested but
6612         the O/S doesn't support it
6613
6614         * libamu/mount_fs.c (mnt_flags): allow the use of the "nolock"
6615         option
6616
6617         * include/am_defs.h: don't include <linux/fs.h> on a glibc2
6618         system; include <linux/auto_fs4.h> if it exists, instead of
6619         <linux/auto_fs.h>
6620
6621         * include/am_compat.h: define the "nolock" mnttab option if the
6622         NONLM NFS mount option is defined
6623
6624         * acconfig.h: added MNT2_NFS_OPT_NONLM, MNT2_GEN_OPT_BIND
6625
6626         * configure.in: added detection of the NONLM Linux NFS mount
6627         option; added a clarification for the library versioning rules and
6628         increased the minor level; added detection of <linux/auto_fs4.h>
6629         and the MS_BIND generic mount option
6630
6631 2000-11-29  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
6632
6633         * Enabled Solaris 2.7 autofs support (tested, works)
6634
6635         * Updated NEWS, README.autofs
6636
6637         * Updated Makefile's, make dist is now fixed
6638
6639         * Fixed potential memory leak in map.c
6640
6641         * Fixed autofs style detection for solaris 2.[67]
6642
6643         * Added a few casts in autofs_solaris2.c, needed on Solaris 2.7
6644
6645 2000-11-28  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
6646
6647         More Solaris 2.[67] work in progress:
6648
6649         * changed the API for the mount/umount methods: fmount/fumount are
6650         gone, and mount/umount now take two arguments (am_node and mntfs)
6651
6652         * changed the semantics of the MFF_AUTOFS flag: MFF_AUTOFS now
6653         means the mntfs is a filesystem of type autofs, and AMF_AUTOFS
6654         means the am_node is a node on a filesystem of type autofs.
6655
6656         * renamed nfs_program_2_transp to current_transp so it can be used
6657         with autofs
6658
6659         * renamed quick_reply() to nfs_quick_reply()
6660
6661         * added two more autofs methods: autofs_umount_failed() and
6662         autofs_compute_mount_flags() -- it turns out that on sol2.6 the
6663         autofs mounts MUST be overlay'ed
6664
6665         * moved the autofs_mount_succeeded() into am_mounted()
6666
6667         * made amd *not* timeout autofs mounts -- the kernel will do it
6668         for us
6669
6670         * store dev and rdev of a mounted filesystem in the mntfs
6671         structure, to help autofs
6672
6673         * moved the rmdirs() call from uninit_mntfs() to am_umounted(), to
6674         prevent deadlocking with autofs
6675
6676         * amd/Makefile.am: shuffled things around to make
6677         update_build_version be the last thing that runs
6678
6679 2000-11-27  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
6680
6681         * split amd/ops_autofs.c into conf/autofs/autofs_<system>.c files
6682         and made configure create a symlink to the appropriate one
6683
6684         * moved the xdr autofs functions from libamu/xdr_func.c into the
6685         system-specific conf/autofs/autofs*.c
6686
6687         * added some more experimental code to the sol2.6 autofs support,
6688         but it's by no means functional
6689
6690 2000-11-27  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
6691
6692         * libamu/wire.c (getwire_lookup): truncate the hostname to
6693         MAXHOSTNAMELEN characters.
6694
6695 2000-11-26  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
6696
6697         * include/am_utils.h (MAXHOSTNAMELEN): if not defined, set this to
6698         256 bytes, not 64.   Suggestion form Kris Kennaway
6699         <kris@FreeBSD.org>.
6700
6701 2000-11-26  Erez Zadok  <ezk@dmath5.geometrie.tuwien.ac.at>
6702
6703         * configure.in (AC_CHECK_MNT2_NFS_OPTS): check for NFS mount
6704         options kerb, rdirplus, readdirsize, and xlatecookie
6705         (NetBSD-1.5K).
6706
6707         * acconfig.h: recognize NFS mount options rdirplus, readdirsize,
6708         and xlatecookie (NetBSD-1.5K)
6709
6710 2000-11-24  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
6711
6712         * amd/srvr_nfs.c: comment on NFS proto search order.
6713
6714         * libamu/xutil.c (real_plog): don't try to write the last byte of
6715         the fmt buf.  security suggtion from NetBSD: Thomas Klausner
6716         <wiz@danbala.ifoer.tuwien.ac.at>
6717
6718 2000-11-22  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
6719
6720         * amd/amfs_auto.c (amfs_auto_bgmount): removed the initialization of
6721         fattr.na_fileid, it is now done in map.c when the map is initialized
6722
6723         * amd/map.c (init_map): initialize fattr.na_fileid to am_gen, not
6724         to 0, to avoid cache aliasing problems on Linux (and to follow the
6725         NFS spec!)
6726
6727 2000-11-22  Thomas Klausner <wiz@danbala.ifoer.tuwien.ac.at>
6728
6729         * libamu/mount_fs.c (mount_fs): avoid using extra limited-size buf
6730         (security)
6731
6732         * libamu/xutil.c, fsinfo/fsinfo.h, include/am_utils.h: use
6733         __attribute__, __format__, and __printf__ for GCC string auditing.
6734
6735         * wire-test/wire-test.8: this is not a section 8L man page.
6736
6737         * libamu/xutil.c (expand_error): don't use sys_nerr on systems
6738         that support strerror().
6739         (dplog): fmt is const
6740         (plog): fmt is const
6741         (real_plog): fmt is const.  use new expand_error function with its
6742         new return value. be more careful about running off the end of
6743         char[] fixed size buffers.
6744
6745         * libamu/wire.c (getwire): fix alignment error on alpha using an
6746         extra automatic storage variable ifrpool.
6747
6748         * hlfsd/hlfsd.c (fatal): use proper printf style to plog.
6749
6750         * fsinfo/fsinfo.c (find_username): getlogin() returns a const.
6751
6752         * fsinfo/fsi_util.c (error, lerror, lwarning, fatal, log): use
6753         vfprintf.
6754
6755         * fsinfo/fsi_lex.l (yyerror): use vfprintf.
6756
6757         * fixmount/fixmount.8: this is not a section 8L man page.
6758
6759         * doc/am-utils.texi (Hesiod maps): fixed typo.
6760
6761         * amd/sched.c (do_task_notify): typo in comment.
6762
6763         * amd/opts.c (expand_op): expand_error[] is a const char *.
6764
6765         * amd/amd.c (main): use proper printf style to plog.
6766
6767 2000-11-22  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
6768
6769         * libamu/mount_fs.c (mnt_flags, compute_nfs_args): recognize
6770         proplist mnttab flag.  Bug fix from Wolfram Klaus
6771         <klaus@physik.fu-berlin.de>.
6772
6773 2000-11-19  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
6774
6775         * updated config.guess, config.sub, and doc/texinfo.tex from
6776         mirrors
6777
6778         * Makefile.am (update): proper updating of config.* and texinfo
6779         from mirrors.
6780
6781         * aux/macros/check_nfs_prot_headers.m4: newer netbsd systems
6782         reports their system name as "netbsdelf" in config.guess.
6783
6784 2000-11-13  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
6785
6786         * doc/am-utils.texi (opts Option): document new mount option
6787         "proplist"
6788
6789         * include/am_compat.h: define amd mount option "proplist" if the
6790         system doesn't recognize it, but the NFS bit flag exists.
6791
6792         * configure.in, acconfig.h: recognize/support "proplist" NFS mount
6793         option in Amd, useful under DU-4.0 to process ACLs over NFS
6794         mounts.
6795
6796 2000-11-10  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
6797
6798         * conf/mount/mount_linux.c (mount_linux): removed unnecessary
6799         rsize/wsize defaults -- performance killers on 2.2.18+ and 2.4.0+
6800
6801 2000-10-16  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
6802
6803         * scripts/am-eject.in: accept "cdrom" and "floppy" as arguments.
6804
6805 2000-11-05  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
6806
6807         Too many changes to list them here. Here's a high level
6808         description:
6809
6810         * Forward-ported the Linux fixes from 6.0.5pre
6811
6812         * Got rid of a mountain of #ifdef DEBUG, replaced with smart
6813         header-file #ifdef's
6814
6815         * and, the grand finale: initial Solaris 2.6 autofs
6816         support. Compiles, mounts, gets requests; all the
6817         infrastructure is in place to actually implement the calls. Linux
6818         autofs might be a bit broken, but only compile-time so it'll be
6819         easy to fix.
6820
6821 2000-11-01  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
6822
6823         * MIRRORS (Note): added a mirror at ufl.edu
6824
6825 2000-10-11  Erez Zadok  <ezk@lorien.dev.hydraweb.com>
6826
6827         * amq/amq.8: synchronize Amq's options with reality
6828
6829         * amq/amq.c (main): synchronize Amq's usage() string with reality
6830
6831 2000-10-10  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
6832
6833         * scripts/ctl-amd.in: add targets condrestart (redhat) and
6834         reload.
6835
6836 2000-10-04  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
6837
6838         * scripts/lostaltmail.in (vrfy_user): ensure that MAILDIR is
6839         defined.
6840
6841 2000-09-18  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
6842
6843         * amd/opts.c (backslash): Bell char (ASCII 007) should be \g, not
6844         \a.
6845
6846 2000-09-17  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
6847
6848         * include/am_utils.h: removed unused field opt_autopref
6849
6850         * amd/opts.c: removed unused variable $autopref
6851
6852 2000-09-05  Erez Zadok  <ezk@aladdin.dev.hydraweb.com>
6853
6854         * conf/mtab/mtab_svr4.c (lockfile): function not needed unless
6855         MOUNT_TABLE_ON_FILE is defined.
6856         mtlckname static var is onlyneeded if MOUNT_TABLE_ON_FILE.
6857         (update_mnttab_fields): only needed if MOUNT_TABLE_ON_FILE.
6858
6859 2000-09-03  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
6860
6861         * buildall (Usage): typo in usage string
6862
6863 2000-08-25  Erez Zadok  <ezk@lynn.soscorp.com>
6864
6865         * conf/mount/mount_linux.c (mount_linux): MNT2_NFS_OPT_VER3 may
6866         is no defined on older Linux systems (kernel 2.0.36)
6867
6868 2000-08-19  Erez Zadok  <ezk@earth.cs.columbia.edu>
6869
6870         * scripts/amd.conf.5: correct swapped descriptions for ldap_base
6871         and ldap_hostports.
6872
6873         * doc/am-utils.texi: correct swapped descriptions for ldap_base
6874         and ldap_hostports.
6875
6876         * scripts/amd.conf-sample: swap examples for ldap_base and
6877         ldap_hostports.
6878
6879 2000-08-13  Erez Zadok  <ezk@earth.cs.columbia.edu>
6880
6881         * scripts/amd.conf-sample: -O is CLI equivalent to "os"
6882         amd.conf parameter
6883
6884 2000-07-30  Erez Zadok  <ezk@earth.cs.columbia.edu>
6885
6886         * scripts/amd.conf-sample (nfs_retransmit_counter): correct
6887         meaning and use of parameter
6888
6889 2000-07-23  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
6890
6891         * doc/am-utils.texi: updated URLs to www.am-utils.org.
6892
6893 2000-07-04  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
6894
6895         * doc/am-utils.texi (Supported Platforms): document osf4.0f
6896
6897 2000-06-19  Erez Zadok  <ezk@vir.cs.columbia.edu>
6898
6899         * doc/am-utils.texi (dollar Selector Variable): document
6900         ${dollar}.
6901
6902         * amd/opts.c: special new variable ${dollar} which expands into a
6903         literal '$' sign.  Otherwise there is no way to include a literal
6904         dollar symbol in an amd map.
6905
6906 2000-06-11  Ion Badulescu  <ib42@moisil.cs.columbia.edu>
6907
6908         * amd/opts.c (eval_selectors): don't deref opt after it's been
6909         XFREE'd
6910
6911 2000-06-11  Erez Zadok  <ezk@earth.cs.columbia.edu>
6912
6913         * amd/opts.c: move mount_type expansion until later in the list,
6914         so common variable are "hit" first.
6915
6916 2000-06-11  Ion Badulescu  <ib42@moisil.cs.columbia.edu>
6917
6918         * amd/opts.c (split_opts, eval_selectors): split old function
6919         eval_opts into two, one that only splits non-selectors and
6920         assigns the values to fs_static, and one that only evaluates
6921         selectors; also simplified the rather obfuscated logic inside
6922         these functions
6923         (expand_op): made it take a char * instead of a structure from
6924         which it was using only one field (a char *). Also now returns a
6925         char * instead of modifying said structure in place
6926         (expand_opts): deal with the change above
6927         (expand_selectors): renamed from expand_key
6928         (expand_options): new function, expands non-selectors; it's the
6929         complement of expand_selectors, both of which are just wrappers
6930         around expand_op()
6931         (eval_fs_opts): use the new split_opts, eval_selectors to allow
6932         using options (like ${rhost}) in selectors
6933
6934 2000-06-11  Ion Badulescu  <ionut@moisil.cs.columbia.edu>
6935
6936         * config.guess.long: munge config.guess' output so that intel
6937         linux appears as i386-pc-linux
6938
6939 Fri Jun  9 16:06:56 2000  Erez Zadok  <ezk@defiant.dev.hydraweb.com>
6940
6941         * conf/nfs_prot/nfs_prot_bsdi2.h: getifaddrs() on bsdi2 is broken.
6942         Don't use it.
6943
6944 2000-06-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6945
6946         * amd/mapc.c (maptypes): Change default allocation mode to
6947         MAPC_INC where reload support is missing to avoid warning in
6948         mapc_create().
6949
6950 2000-06-09  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
6951
6952         * conf/nfs_prot/nfs_prot_sunos5_5.h: turn off autofs support for
6953         solaris 2.5 until a full port can be done.
6954
6955 2000-06-07  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
6956
6957         * Makefile.am, aux/GNUmakefile: fix maintainer rules to update
6958         config.* and texinfo.tex files.
6959
6960         * amd/nfs_subr.c (nfsproc_getattr_2_svc): Don't conditionalize the
6961         mtime update of the symlinks on the SYMTTL option, but rather
6962         delay unmount of what was looked up using am_timeo_w.  Patch from
6963         Nick Williams <Nick.Williams@msdw.com>.  As Nick says "Basically:
6964         during unmount, increment the parent dir's mtime (fixes
6965         people doing amq -u). During stat, increase the TTL (to fix bad-luck
6966         timeouts), but leave the mtime alone."
6967
6968         (nfsproc_lookup_2_svc, nfsproc_readlink_2_svc, unlink_or_rmdir,
6969         nfsproc_readdir_2_svc): correctly update d_drops stats for amq -s.
6970         Patch from Nick Williams <Nick.Williams@msdw.com>.
6971
6972         * amd/map.c (unmount_mp): update mtime of amd symlink to further
6973         reduce the chances of race conditions between unmounting and
6974         looking up an entry again.  Patch from Nick Williams
6975         <Nick.Williams@msdw.com>.
6976
6977         * README: updated instructions
6978
6979         * bootstrap: remove log file before existing
6980
6981 2000-06-06  Erez Zadok  <ezk@aladdin.dev.hydraweb.com>
6982
6983         * configure.in: no longer using aux/ subdir. don't force autoconf
6984         2.14. comment out (but leave explanation) everything that's needed
6985         for autoconf 2.14, so for now it works with autoconf-2.13, but the
6986         code is ready for 2.14 when it is released.  Similar changes to
6987         make code work with automake-1.4, until the next release comes
6988         out.
6989
6990         * libamu/Makefile.am: include definitions that are required in
6991         automake 1.4, but won't be necessary when the next release of
6992         automake comes out (see XXX comments).
6993
6994         * cache_check_dynamic.m4, check_checkmount_style.m4,
6995         check_mnttab_style.m4, check_mount_style.m4,
6996         check_network_transport_type.m4, check_nfs_prot_headers.m4,
6997         check_umount_style.m4: use symlink creation code that works for
6998         both autoconf 2.13 and 2.14 (when the latter comes out).
6999
7000         * bootstrap: new script for maintainers to run to update autoconf,
7001         automake, and libtool related files.  Has the same effect as
7002         "buildall -K".
7003
7004         * removed dependencies on CVS versions of autoconf, automake, and
7005         libtool, especially the modified automake I had.  This is so that
7006         maintainers could built the auto* files out of the latest released
7007         GNU autoconf, automake, and libtool.  However, without my nice
7008         patches to automake, many files that used to live in the aux/
7009         subdir now were moved to the top level source directory: acconfig.h,
7010         acinclude.m4, aclocal.m4, aux_conf.h.in, config.guess,
7011         config.guess.long, config.h.in, config.sub, configure.in, depcomp,
7012         install-sh, ltconfig, ltmain.sh, missing, and mkinstalldirs.  Also
7013         texinfo.tex and mdate-sh moved from aux/ dir to doc/ dir.
7014
7015 2000-06-05  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7016
7017         * cvs-server.txt: instructions for maintainers to access the CVS
7018         server for am-utils.
7019
7020 2000-06-03  Ion Badulescu  <ionut@moisil.cs.columbia.edu>
7021
7022         * amd/restart.c (restart): grr.. passing around initialized
7023         structures is *really* bad habit. memset(mo, 0) so at least we can
7024         test for NULL pointers...
7025
7026 2000-06-02  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7027
7028         * amd/am_ops.c (ops_match): changed XLOG_USER messages about
7029         merging addopts options to the more appropriate XLOG_INFO.  Patch
7030         submitted by Tom Schmidt <tschmidt@micron.com>.
7031
7032         * config.{guess,sub}: make sure chmod'ed a+rx.  Updated from
7033         latest GNU copies.
7034
7035 2000-05-30  Ion Badulescu  <ionut@moisil.cs.columbia.edu>
7036
7037         * aux/configure.in: bump up the version to 6.1a2
7038
7039 2000-05-29  Ion Badulescu  <ionut@moisil.cs.columbia.edu>
7040
7041         * released snapshot am-utils-6.1a1
7042
7043 2000-05-29  Ion Badulescu  <ionut@moisil.cs.columbia.edu>
7044
7045         * amd/ops_autofs.c (autofs_mounted): retrieve the autofs protocol
7046         version and store it in the fh
7047         (autofs_get_opts): support protocol version 4
7048
7049         * amd/mntfs.c (uninit_mntfs): clear the autofs fh pointer after
7050         releasing it
7051
7052         * conf/transp/transp_sockets.c (amu_svc_getcaller): cast result of
7053         svc_getcaller() to sockaddr_in, to appease glibc 2.2
7054
7055         * amd/amfs_auto.c (amfs_auto_bgmount): if the filesystem wants
7056         autofs handling and the parent is already handled by autofs,
7057         handle this filesystem as well
7058         (amfs_auto_mount): create the mountpoint for an autofs mount
7059         (amfs_auto_umount): do a real UMOUNT_FS() call for autofs mounts
7060
7061         * include/am_utils.h (FS_AUTOFS): new flag signalling that the
7062         filesystem wants autofs handling; toplvl, auto, host and direct
7063         have this flag, at least for now
7064
7065 2000-05-28  Erez Zadok  <ezk@mulberry.mcl.cs.columbia.edu>
7066
7067         * doc/am-utils.texi (Network Filesystem Group): minor typos
7068
7069 2000-05-28  Ion Badulescu  <ionut@moisil.cs.columbia.edu>
7070
7071         * amd/autil.c (am_unmounted): check mp->am_parent before dereferencing
7072
7073         * amd/srvr_nfs.c (find_nfs_srvr): if NFS_SCALEDOWN, force
7074         version=2 and proto=udp and try again
7075
7076         * amd/ops_nfs.c (prime_nfs_fhandle_cache): take an explicit mntfs
7077         instead of a voidp; handle the NFS_SCALEDOWN case by removing the
7078         cached server entry and re-querying the server
7079
7080         * amd/amfs_toplvl.c (amfs_toplvl_mount): removed ugly if
7081         statement, assign mnttype from the fs-specific mf_ops->fs_type
7082         instead
7083
7084         * amd/amfs_nfsx.c (amfs_nfsx_init): call fs_init() only if it's
7085         defined;
7086         (amfs_nfsx_remount): removed superfluous check for fmount_fs -- it
7087         always exists
7088         (amfs_nfsx_umount): removed the hacked am_node -- umounted() now
7089         takes an mntfs; call umounted() only if it's defined
7090
7091         * amd/amfs_auto.c: removed amfs_auto_umounted and moved its
7092         functionality into am_umounted().
7093         (amfs_auto_cont): Linux hack: if we got an EINVAL, mark the mntfs
7094         as needing an "NFS scaledown" and retry the operation
7095
7096         * amd/amfs_*.c: changed all fmount/fumount functions to
7097         mount/umount and made them take an am_node instead of an
7098         mntfs. This is a first step towards an amfs/ops API separation.
7099
7100         * amd/{amfs,ops}_*.c: changed the umounted() function to take an
7101         mntfs instead of an am_node
7102
7103 2000-05-28  Ion Badulescu  <ionut@moisil.cs.columbia.edu>
7104
7105         * amd/amfs_toplvl.c (mount_amfs_toplvl): init error to 0 to shut
7106         up gcc
7107
7108         * aux/macros/check_hide_mount_type.m4: revert to the 6.0 version
7109         which always defines HIDE_MOUNT_TYPE
7110
7111         * amd/ops_autofs.c (autofs_mounted): remove MFF_AUTOFS
7112         initialization -- now done in init_mntfs()
7113
7114         * amd/mntfs.c (init_mntfs): init mf_flags to MFF_AUTOFS if we are
7115         mounting an autofs-style map
7116
7117         * amd/*.c: use the MFF_AUTOFS flag instead of doing a costly STREQ
7118
7119         * amd/amfs_toplvl.c (mount_amfs_toplvl): MTYPE_TYPE is not
7120         necessarily a string type, so handle the nfs/autofs separation
7121         differently
7122
7123         * amd/amfs_auto.c (amfs_auto_bgmount): removed initialization of
7124         opt_mount_type (now done in ops_match())
7125
7126         * amd/am_ops.c (ops_match): need to initialize opt_mount_type if
7127         it's not initialized yet
7128
7129 2000-05-27  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7130
7131         * libamu/wire.c (getwire_lookup): handle calling irs_gen_acc with
7132         one or two arguments (bsdi3 vs. bsdi4)
7133
7134 2000-05-27  Ion Badulescu  <ib42@chestnut.mcl.cs.columbia.edu>
7135
7136         * libamu/xutil.c (amu_release_controlling_tty): removed an unused
7137         variable from the previous patch
7138
7139 2000-05-26  Ion Badulescu  <ionut@moisil.cs.columbia.edu>
7140
7141         * aux/macros/check_autofs_style.m4: fixed substitution for default
7142         case
7143
7144         * libamu/xutil.c (amu_release_controlling_tty): close standard
7145         file descriptors, re-open them as /dev/null
7146
7147         * include/am_defs.h: don't try to include both <ndbm.h> and
7148         <db1/ndbm.h>, it really doesn't work
7149
7150 2000-05-16  Ion Badulescu  <ib42@earth.cs.columbia.edu>
7151
7152         * hlfsd/stubs.c (nfsproc_lookup_2_svc): added code to update mtime
7153         on lookup if MNT2_NFS_OPT_SYMTTL is not defined (copied from
7154         getattr).  This fixes the problem introduced by the Linux nfsv3
7155         patches.
7156
7157 2000-05-12  Ion Badulescu  <ionut@moisil.cs.columbia.edu>
7158
7159         * Makefile.am (EXTRA_DIST_CONF): added conf/autofs/autofs_linux.h
7160
7161 2000-05-10  Ion Badulescu  <ib42@earth.cs.columbia.edu>
7162
7163         * amd/ops_autofs.c (autofs_handle_fdset): call
7164         autofs_lookup_failed instead of autofs_mount_failed, if the name
7165         is not in the map
7166         (autofs_umount_{succeeded,failed}): pass the actual mount point,
7167         not its parent, as it's needed for clean-up;
7168
7169         * amd/autil.c (am_unmounted): notify autofs that the umount
7170         succeeded
7171
7172         * amd/amfs_link.c (amfs_link_[u]mount): autofs link notification
7173         moved elsewhere
7174
7175 2000-05-09  Ion Badulescu  <ionut@moisil.cs.columbia.edu>
7176
7177         * amd/amfs_auto.c (amfs_auto_bgmount): initialize opt_mount_type
7178         if necessary;
7179         (amfs_auto_mounted): test if opt_mount_type is NULL first
7180         (amfs_auto_mount): revert earlier change
7181
7182         * amd/ops_autofs.c (autofs_mount_failed): remove autofs directory
7183         if mount failed
7184
7185 2000-05-09  Ion Badulescu  <ionut@moisil.cs.columbia.edu>
7186
7187         * amd/ops_autofs.c (autofs_link_mount): use am_link as target
7188
7189         * amd/map.c (unmount_mp): release file handle for autofs f/s about
7190         to be unmounted; this leak was preventing the unmount altogether
7191
7192         * amd/amfs_auto.c (amfs_auto_umount): removed autofs-specific
7193         code, was broken
7194         (amfs_auto_bgmount): nfs mounts + sublinks is a valid combination,
7195         handle it
7196
7197 2000-05-07  Ion Badulescu  <ib42@moisil.cs.columbia.edu>
7198
7199         * Merged changes from stable branch
7200
7201 2000-04-30  Erez Zadok  <ezk@beetle.mcl.cs.columbia.edu>
7202
7203         * include/am_defs.h, aux/macros/mount_headers.m4,
7204         aux/macros/try_compile_anyfs.m4: include linux/kdev_t.h and
7205         linux/list.h before including linux/fs.h, and define __KERNEL__
7206         for those two headers.  All of this to get a couple of definitions
7207         that are needed in the new struct vfsmount.
7208
7209         * aux/configure.in: look for <linux/kdev_t.h> and <linux/list.h>.
7210
7211         * include/am_defs.h, aux/macros/mount_headers.m4: avoid conflicts
7212         between linux/in.h. and netinet/in.h (linux-2.3.99-pre6), by
7213         defining _LINUX_IN_H so it doesn't get included.
7214
7215 2000-04-03  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7216
7217         * minor new ports: i686-pc-linux-gnu-rh6.2,
7218         i386-unknown-freebsdelf3.4, i586-pc-linux-gnu-rh6.2.
7219
7220 2000-04-03  Erez Zadok  <ezk@vir.cs.columbia.edu>
7221
7222         * aux/acconfig.h: move all #undef macros above @TOP@, so they can
7223         be recognized by pickier autoconf.
7224
7225 2000-04-03  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7226
7227         * aux/macros/cache_check_dynamic.m4 (ac_tmp): use correct echo -n
7228         or \c.
7229
7230 2000-03-25  Erez Zadok  <ezk@beetle.mcl.cs.columbia.edu>
7231
7232         * include/am_defs.h: ditto
7233
7234         * aux/macros/{mount_headers,try_compile_anyfs}.m4: force
7235         non-inclusion of <linux/string.h>.  Breaks build on newer 2.3
7236         kernels.
7237
7238 2000-02-26  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7239
7240         * doc/am-utils.texi (Amq -w option): document new amq -w option.
7241
7242         * amq/amq.8: document new amq -w option.
7243
7244         * amq/amq.c: disable last remains of insecure amq -M code.
7245         (main): add amq -H option to show usage.
7246         (main): new amq -w option, translates getpwd() into an amd path.
7247
7248 2000-02-25  Ion Badulescu  <ionut@moisil.cs.columbia.edu>
7249
7250         * libamu/util.c (get_server_pid): new function
7251
7252         * hlfsd/hlfsd.c (main): make use of HIDE_MOUNT_TYPE
7253
7254         * conf/transp/transp_sockets.c: removed create_autofs_service
7255
7256         * conf/mount/mount_linux.c: added autofs mount options; split
7257         mount_linux into two functions, itself and do_mount_linux
7258
7259         * aux/macros/check_hide_mount_type.m4: better failover
7260
7261         * aux/configure.in: changed version to 6.1a1; added
7262         AC_CHECK_AUTOFS_STYLE
7263
7264         * aux/aux_conf.h.in: added @am_utils_autofs_style@
7265
7266         * amd/opts.c: added "mount_type" option
7267
7268         * amd/ops_autofs.c: ifdef-ed out solaris code; moved all autofs
7269         variables in here; split create_autofs_service into sun and linux
7270         specific functions
7271
7272         * amd/nfs_start.c: removed autofs-specific variables
7273
7274         * amd/map.c (get_root_nfs_fh): renamed root_fh to get_root_nfs_fh
7275         (get_root_ap): renamed root_ap to get_root_ap
7276
7277         * amd/amfs_toplvl.c (amfs_toplvl_ops): replaced
7278         amfs_toplvl_mounted with amfs_auto_mounted
7279         (mount_amfs_toplvl): moved code around, added autofs handling
7280         (amfs_toplvl_mounted): removed
7281
7282         * amd/amfs_nfsl.c (amfs_nfsl_ops): removed amfs_auto_fu?mount,
7283         replaced with amfs_nfsl_u?mount
7284
7285         * amd/amfs_linkx.c (amfs_linkx_ops): removed amfs_auto_fumount,
7286         replaced with amfs_link_umount
7287
7288         * amd/amfs_link.c (amfs_link_ops): removed amfs_auto_fu?mount,
7289         replaced with amfs_link_u?mount
7290
7291         * amd/amfs_direct.c (amfs_direct_ops): changed "mounted" function
7292         from amfs_toplvl_mounted to amfs_auto_mounted
7293
7294         * all: added autofs hooks throughout the code
7295
7296         * amd/am_ops.c (vops): autofs_ops doesn't belong in here, removed
7297
7298         * README.autofs: linux status update
7299
7300 2000-02-24  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7301
7302         * minor new port: alphaev6-dec-osf5.0
7303
7304         * doc/am-utils.texi (Supported Platforms): hpux-11 supports NFSv3,
7305         but only for UDP.
7306
7307         * released snapshot am-utils-6.0.4s3
7308
7309         * conf/nfs_prot/nfs_prot_hpux11.h: support NFSv3 in hpux-11.  Note
7310         that hpux-11 NFSv3 supports UDP only, and trying TCP locks up the
7311         kernel!  Must set nfs_proto=udp in amd.conf [global].
7312
7313         * aux/config.guess.long: set and export PATH separately.  DU5
7314         /bin/sh doesn't like setting it on the command line in a
7315         back-tick'ed `script`.
7316
7317 2000-02-24  Ion Badulescu  <ionut@moisil.cs.columbia.edu>
7318
7319         * Makefile.am: removed struct_nfs_mount_data.m4
7320
7321         * aux/macros/struct_nfs_mount_data.m4: deleted
7322
7323         * aux/acconfig.h: removed definition for HAVE_NFS_MOUNT_DATA
7324
7325         * aux/configure.in: removed check for struct nfs_mount_data
7326
7327 2000-02-24  Ion Badulescu  <ib42@beetle.mcl.cs.columbia.edu>
7328
7329         * amd/amfs_auto.c (amfs_auto_bgmount): changed log message to
7330         avoid having 'failed' in a message not indicating a failure
7331         (amfs_auto_lookuppn): ditto
7332
7333         * amd/ops_autofs.c (autofs_bgmount): ditto
7334         (autofs_lookuppn): ditto
7335
7336 2000-02-24  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7337
7338         * added .cvsignore files into the CVS repository.
7339
7340         * remove files which can be regenerated: .in, configure, some
7341         files in aux/, and more.
7342
7343 2000-02-20  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7344
7345         * doc/am-utils.texi (nfs_vers/nfs_proto): description of two
7346         parameters was reversed.  Reported by Paul Jenner
7347         <p.jenner@eim.surrey.ac.uk>.
7348
7349 2000-02-16  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7350
7351         * released snapshot am-utils-6.0.4s2
7352
7353         * amd/mntfs.c (realloc_mntfs): don't fallback on certain ops such
7354         as inherit, error, and toplvl (failover code).
7355
7356         * amd/conf.c (gopt_nfs_vers, gopt_nfs_proto): two new (documented)
7357         global options in amd.conf: one to set the NFS version globally
7358         (i.e., nfs_vers=2), and one to set the NFS protocol globally
7359         (i.e., nfs_proto=udp).
7360
7361         * amd/mntfs.c (realloc_mntfs): attempt to fix the failover code,
7362         so when a matching mount entry failed, try the next one.
7363
7364 2000-02-15  Erez Zadok  <ezk@moisil.cs.columbia.edu>
7365
7366         * amd/amfs_auto.c: a new debug option "readdir" to trace the
7367         progress of the browsable_dirs code.
7368
7369         * conf/mount/mount_linux.c (mount_linux): ensure that the new
7370         linux NFSv3 code works for v2-only machines.
7371
7372 2000-02-14  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7373
7374         * aux/configure.in: cleanup unused dnl entries.
7375
7376         * conf/mount/mount_linux.c (parse_opts): typo: check for string
7377         equality, not string inequality for pcfs and cdfs.
7378
7379         * aux/acconfig.h: look for MNT2_NFS_OPT_INTR as well.
7380
7381         * libamu/mount_fs.c (compute_mount_flags): check for INTR and
7382         NOINTR options as well (intr was never passed to linux mount
7383         syscall).
7384
7385 2000-02-10  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7386
7387         * released snapshot am-utils-6.0.4s1
7388
7389         * aux/GNUmakefile: buildall -k (for maintainers) temporarily now
7390         ignores autoconf warnings: "The macro `AC_OUTPUT_COMMANDS' is
7391         obsolete".  It is harmless but annoying, and will be fixed when
7392         autoconf and automake in their respective CVS trees are working
7393         and in sync again.
7394
7395         * scripts/amd.conf.5: document -D hrtime,xdrtrace
7396
7397         * all man pages: update copyright to 2000.
7398
7399         * doc/am-utils.texi: update copyright to 2000.
7400
7401 Wed Feb  9 14:22:31 2000  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7402
7403         * include/am_utils.h (D_XDRTRACE): Define.
7404         (D_TEST): Disable here.
7405
7406         * libamu/xutil.c (dbg_opt): Handle it.
7407
7408         * doc/am-utils.texi (-D-Option): Document it.
7409
7410         * libamu/xdr_func.c: Use it instead of D_TRACE.
7411
7412         * include/am_utils.h (D_HRTIME): Define.
7413
7414         * doc/am-utils.texi (-D-Option): Document it.
7415
7416         * libamu/xutil.c (show_time_host_and_name): Print high-resolution
7417         timestamp if available and activated.
7418
7419         * aux/configure.in (clock_gettime): Check for it in -lrt and
7420         -lposix4.
7421
7422         * hlfsd/hlfsd.c (mnttab_file_name): Initialize to MNTTAB_FILE_NAME
7423         if defined, even for some systems with in kernel mount tables.
7424
7425 2000-02-08  Ion Badulescu  <ionut@moisil.cs.columbia.edu>
7426
7427         * aux/macros/mount_headers.m4: remove #if 0 around linux/nfs.h to
7428         allow compiles against libc5
7429
7430         * aux/macros/check_mnttab_type.m4: avoid detecting nfs3 under
7431         linux when the kernel doesn't support it
7432
7433         * include/am_compat.h: add workaround for linux efs
7434
7435 2000-02-08  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7436
7437         * aux/configure.in: test for ANSI C compiler (before AC_C_CONST).
7438         Comment out unused AC_STRUCT_ST_RDEV (which is obsolete anyway).
7439
7440 2000-02-07  Ion Badulescu  <ionut@moisil.cs.columbia.edu>
7441
7442         * libamu/mount_fs.c (compute_nfs_args): turn on VER3 option for
7443         nfs (linux NFSv3).
7444
7445         * include/am_defs.h: avoid reinclusion of some header files under
7446         linux.
7447
7448         * conf/nfs_prot/nfs_prot_linux.h: support NFSv3.
7449
7450         * conf/mount/mount_linux.c (mount_linux): support nfs mount
7451          (implementation) version 4 for NFSv3.
7452
7453         * aux/macros/try_compile_nfs.m4: use AC_MOUNT_HEADERS.
7454
7455         * aux/macros/mount_headers.m4: don't include <linux/fs.h> (may
7456         need to fix the code on other linux machines).
7457
7458         * aux/macros/check_mnttab_type.m4 (ac_safe): ditto.
7459
7460         * aux/macros/check_fs_mntent.m4 (ac_safe): check for nfs3 option
7461         under linux (depends on ac_cv variable, is that a good idea?)
7462
7463         * added NFSv3 support for linux
7464
7465         * aux/{configure.in,acconfig.h}: new option ver3
7466
7467         * aux/macros/mount_headers.m4: commented out inclusion of
7468         linux/fs.h, it's not needed on rh61 (and actually generates
7469         conflicts), we should see if it's still needed on libc5 systems
7470
7471         * aux/macros/try_compile_nfs.m4: use AC_MOUNT_HEADERS rather than
7472         try to have its own (out of date) list of headers and ifdef's and
7473         ...
7474
7475 2000-02-07  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7476
7477         *******************************************************************
7478         *** Released am-utils-6.0.3                                     ***
7479         *******************************************************************
7480
7481 2000-02-06  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7482
7483         * conf/mount/mount_default.c: dummy empty file to work around a
7484         limitation of automake (it looks for LIBBOBJS in aclocal.m4 and
7485         processes them even if they are optional, enclosed in if/else).
7486
7487 2000-01-29  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7488
7489         * released snapshot am-utils-6.0.3s5
7490
7491 2000-01-25  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7492
7493         * update to use latest version of autoconf, automake, and libtool.
7494
7495         * aux/GNUmakefile (depcomp): "make update" should also update the
7496         depcomp script.
7497
7498         * Makefile.am (EXTRA_DIST_AUX): include depcomp in distribution.
7499
7500         * aux/configure.in: use renamed AC_CHECK_AMU_FS.
7501
7502         * aux/macros/check_amu_fs.m4: renamed macro name and file name to
7503         say AMU_FS, not AM_FS.
7504
7505         * aux/acconfig.h: renamed HAVE_AM_FS_* to HAVE_AMU_FS_* because
7506         latest version of autoconf doesn't handle it (bug in 2.14a)
7507
7508         * aux/configure.in: require version 2.14 of autoconf.
7509
7510         * amd/mapc.c (mapc_reload_map): more fixes from Nick Williams.
7511
7512         * doc/am-utils.texi (Automount Filesystem): document type:=auto
7513         map browsability option.
7514
7515         * amd/mapc.c (make_entry_chain): patch from Steven Danz
7516         <sdanz@awc.kc.noaa.gov> to allow browsable auto maps.
7517
7518 2000-01-24  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7519
7520         * released snapshot am-utils-6.0.3s4
7521
7522         * amd/mapc.c (mapc_reload_map): fixes to sync maps even if they
7523         are set to mapcache:=sync.  Fix from Nick Williams
7524         <Nick.Williams@msdw.com>.
7525
7526 2000-01-20  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7527
7528         * released snapshot am-utils-6.0.3s3
7529
7530         * minor port to i386-unknown-netbsd1.4.1
7531
7532         * amd/nfs_subr.c (nfsproc_getattr_2_svc): patch from Nick Williams
7533         <Nick.Williams@msdw.com> to fix (or reduce the incidence of) stale
7534         file handles when doing rapid mounts and umounts in succession
7535         such as "ls /vol/foo ; amq -u /vol/foo ; ls /vol/foo"
7536
7537 2000-01-18  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7538
7539         * minor port to i386-pc-bsdi4.1.
7540
7541 2000-01-13  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7542
7543         * libamu/wire.c (getwire_lookup): pass NULL as conf_file (2nd)
7544         argument to irs_gen_acc(), which was changed in bsdi 4.1.
7545
7546 2000-01-12  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7547
7548         * amd/get_args.c (get_args): don't use MNTTAB_FILE_NAME for
7549         systems with in-kernel mount tables unless this macro is defined
7550         (Solaris 8).
7551
7552 2000-01-01  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7553
7554         * ALL: bump copyright year to 2000.
7555
7556 1999-12-16  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7557
7558         * conf/mount/mount_svr4.c (mount_svr4): optionstr exists on
7559         solaris 7, but should not be used unless MAX_MNTOPT_STR also
7560         exists (solaris 8).
7561
7562         * doc/am-utils.texi (opts Option): document new mount option:
7563         optionstr.
7564
7565 Fri Dec 10 01:31:53 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7566
7567         * conf/trap/trap_svr4.h (MOUNT_TRAP): Pass mount option string to
7568         mount_svr4().
7569         (mount_svr4): Adapt prototype.
7570         * conf/mount/mount_svr4.c (mount_svr4): Pass them to kernel so
7571         they are evaluated and show up in Solaris 8 in-kernel mnttab.
7572
7573         * aux/configure.in: Check for new Solaris 8 MS_OPTIONSTR mount(2)
7574         option.
7575         * aux/acconfig.h (MNT2_GEN_OPT_OPTIONSTR): Provide template.
7576
7577 1999-12-10  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7578
7579         * released snapshot am-utils-6.0.3s2
7580
7581 1999-12-09  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7582
7583         * doc/am-utils.texi (opts Option): document noexec and nomnttab
7584         (new to Solaris 8).
7585
7586         * Makefile.am (EXTRA_DIST_CONF): include nfs_prot_sunos5_8.h in
7587         distribution.
7588
7589         * applied fixes from Rainer Orth for Solaris 8.
7590
7591         * libamu/wire.c (getwire): increment the cp pointer in the loop
7592         body, because the ioctl() inside the "for" loop will overwrite the
7593         ifr structure, thus not detecting all of the interfaces.  Bug
7594         reported and fixed by Amitha Perera <perera@cs.rpi.edu>.
7595
7596 Thu Dec  9 19:09:38 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7597
7598         * conf/mtab/mtab_svr4.c (unlockmnttab, lockmnttab): No-ops if
7599         MOUNT_TABLE_ON_FILE.
7600
7601         * amd/get_args.c (get_args): Initialize mnttab_file_name even for
7602         in-kernel mount table.  conf/mtab/mtab_svr4.c (read_mtab) depends
7603         on a non-NULL value.
7604
7605         * amd/info_ldap.c (get_ldap_timestamp): Don't peek into opaque
7606         LDAP structure to get error code, but use it directly.
7607         (amu_ldap_search): Likewise.
7608
7609         * conf/nfs_prot/nfs_prot_sunos5_7.h: Rip superfluous and wrong
7610         ldap support.
7611         * conf/nfs_prot/nfs_prot_sunos5_8.h: Likewise.
7612
7613         * conf/nfs_prot/nfs_prot_sunos5_8.h: New file, doesn't typedef
7614         nfsstat, already in <nfs/nfs.h>.
7615         * aux/macros/check_nfs_prot_headers.m4: Use it for all Solaris
7616         versions beyond 7.
7617         Allow for micro versions of SunOS 5.[67].
7618
7619         * aux/configure.in: Check for new Solaris 8 Beta Refresh
7620         MS_NOMNTTAB mount(2) option.
7621         * aux/macros/check_mnttab_location.m4: Use it to test for
7622         mntfs-based in-kernel mnttab.
7623
7624         * aux/macros/os_cflags.m4: Treat Solaris 8 and higher like 2.6/7.
7625
7626         * aux/macros/check_fs_headers.m4: Revert test for duplicate
7627         objects.
7628         * aux/macros/check_fs_mntent.m4: Likewise
7629
7630         * aux/macros/HEADER: Fixed typo.
7631
7632         * include/am_defs.h: Likewise.
7633
7634 1999-12-01  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7635
7636         * aux/macros/*.m4: prepare for hpux-12 (assume same as hpux-11)
7637
7638 1999-11-16  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7639
7640         * BUGS: document glibc-2.1 nis file descriptor leak in yp_bind.
7641
7642         * amd/info_ldap.c (string2he): updated function which does not
7643         corrupt strings when called more than once.  Patch from
7644         JOHANN.PFEFFERL.JP@germany.agfa.com.
7645
7646 1999-11-15  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7647
7648         * MIRRORS (Asia): two new mirrors in Japan.
7649
7650 1999-11-10  Erez Zadok  <ezk@kosh.cs.columbia.edu>
7651
7652         * doc/am-utils.texi: document new variables for ${uid} and ${gid}.
7653
7654         * amd/nfs_subr.c (nfsproc_lookup_2_svc): find the uid/gid of the
7655         last lookup from the RPC credentials.
7656
7657         * aux/configure.in: upped version-info to 4:0:2 because I've added
7658         a new interface to libamu.
7659
7660         * libamu/misc_rpc.c (getcreds): moved function from hlfsd to here,
7661         so it can be used by amd.
7662
7663         * amd/opts.c: new variables ${uid} and ${gid}.
7664
7665 1999-10-15  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7666
7667         * scripts/ctl-amd.in: add "status" command that tells you if amd
7668         is running on not (same output as RedHat scripts).
7669         Added start_msg and stop_msg targets as they are used on HPUX.
7670         reported by Jon Peatfield <J.S.Peatfield@damtp.cam.ac.uk>.
7671
7672 1999-10-13  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7673
7674         * released snapshot am-utils-6.0.3s1
7675
7676 1999-10-12  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7677
7678         * amd/amd.c (main): On AIX you must lower the stack size using
7679         ulimit() before calling plock.  Otherwise plock will reserve a lot
7680         of memory space based on your maximum stack size limit.  Since it
7681         is not easily possible to tell what should the limit be, I print a
7682         warning before calling plock(). See the manual pages for
7683         ulimit(1,3,4) on your AIX system.
7684
7685         * include/am_defs.h: define default extern for vsnprintf()
7686
7687         * aux/configure.in: check for extern definition for vsnprintf()
7688
7689 1999-10-08  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7690
7691         * amd/amfs_auto.c (amfs_auto_bgmount): patch from Nick Williams
7692         <njw@ms.com>.  SYMPTOMS: 'occasionally' sublinks do not point to
7693         the correct location, but to the top level of the mountpoint and
7694         an (error-hook) is seen being mounted in the log file. This causes
7695         things to Go Wrong(TM).
7696         CAUSE: When evaluating two locations which are requested
7697         'practically simultaneously', and the two locations resolve to the
7698         same NFS mountpoint (but different sublinks), the later request
7699         will be "deferred" and retried after wakeup when the first mount
7700         succeeds. To do this, it rewinds the options location string to
7701         re-evaluate the location when the mount is retried. However, it
7702         shouldn't rewind the options for two reasons: (a) the semantics of
7703         the map language say you shouldn't and (b) the NFS mount reference
7704         is not reset at the same time, meaning that on the retry it will
7705         have an options structure out-of-sync with the mount
7706         structure. The "shortcut" code when retrying the mount sees the
7707         mount structure is already filled in and does not fully evaluate
7708         the options structure.... so if the first location is not the one
7709         which ties in with the mountpoint (see ordering in the
7710         recreate-by), you're now well messed up.
7711
7712         * BUGS: mention aix4.3 plock() bug (memory usage blows up and
7713         plock fails)
7714
7715 1999-10-07  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7716
7717         * aux/GNUmakefile: certain files should be copied if they are
7718         newer, not also if they are bigger: install-sh, ltconfig,
7719         ltmain.sh, mdate-sh, missing, mkinstalldirs, and texinfo.tex.
7720
7721         * minor new port: i586-pc-linux-gnu-rh6.1 (RedHat Linux 6.1)
7722
7723 1999-10-05  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7724
7725         * aux/macros/check_nfs_prot_headers.m4: prepare for OSF-5.
7726
7727         * aux/macros/check_nfs_fh_dref.m4: prepare for Tru64, aka OSF-5.
7728
7729 1999-09-30  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7730
7731         *******************************************************************
7732         *** Released am-utils-6.0.2                                     ***
7733         *******************************************************************
7734
7735 1999-09-27  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7736
7737         * conf/mount/mount_linux.c (mount_linux): print the updated mount
7738         flags.
7739
7740         * doc/am-utils.texi: document $full_os and $vendor.
7741
7742         * scripts/amd.conf-sample: examples of $full_os and $vendor.
7743
7744         * scripts/amd.conf.5: document $full_os and $vendor.
7745
7746         * amd/conf.c: add support for $full_os and $vendor.
7747
7748 1999-09-26  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7749
7750         * doc/am-utils.texi (netgrp Selector Function): don't give
7751         examples with old single '=' assignment variable.  Use foo:=bar.
7752
7753         * amd/amfs_auto.c (amfs_auto_bgmount): corectly indent long
7754         comment describing this complex function.
7755
7756         * doc/Makefile.am (alldocs): do install-ps last (because distiller
7757         is slow) and install-html next to last (because texi2html is also
7758         slow).
7759
7760         * amd/amd.8: Major fixes to the description of the option -t
7761         timeout.retransmit.
7762
7763         * doc/am-utils.texi: better description of "trace" debug option.
7764         amd -H (not -v) shows log_options and debug_options.  Major fixes
7765         to the description of amd -t timeout.retransmit, and the amd.conf
7766         parameters nfs_retransmit_counter and nfs_retry_interval.
7767
7768         * scripts/amd.conf.5: better description of "trace" debug option.
7769         amd -H (not -v) shows log_options and debug_options.  Major fixes
7770         to the description of the parameters nfs_retransmit_counter and
7771         nfs_retry_interval.
7772
7773 1999-09-25  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7774
7775         * doc/am-utils.texi (Automount Filesystem): cache:= is not a mount
7776         option, but a mount map option.
7777
7778         * libamu/xutil.c (switch_to_logfile): log the name of the log file
7779         we switched into, after the log file had been [re]opened.
7780
7781 1999-09-24  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7782
7783         * amd/mapc.c (mapc_reload_map): count and show the number of times
7784         a map was reloaded.  Only reload a map if its modify-time was
7785         updated.  But amq -f forced a reload no matter what.
7786
7787         * amd/amd.h: new flag to struct mnt_map to count number of times a
7788         map was reloaded.
7789
7790         * amd/mapc.c (mapc_reload_map): attempt to reload the map without
7791         losing current data by reloading into a temp copy, and switching
7792         the hashes round only if the reload was successful.  Patch from Jon
7793         Peatfield <J.S.Peatfield@damtp.cam.ac.uk>.
7794         (mapc_sync): mapc_reload_map() always succeeds.
7795
7796 1999-09-22  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7797
7798         * amd/info_ldap.c (amu_ldap_rebind): don't busy-loop trying to
7799         rebind to an LDAP server forever.  Try up to 10 times.
7800
7801         * fsinfo/fsi_lex.l (yyerror): rework code that will never happen
7802
7803         * released snapshot am-utils-6.0.2s2
7804
7805         * aux/configure.in: bumped library version-info to 3:2:1, since
7806         some libamu code got changed.
7807
7808         * libamu/xutil.c (real_plog): use vsnprintf, not vsprintf, which
7809         is better and more secure.  Fix from "David O'Brien"
7810         <obrien@NUXI.com>.
7811
7812         * aux/configure.in: check for vsnprintf.
7813
7814 1999-09-21  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7815
7816         * aux/macros/linux_headers.m4: use AC_MSG_ERROR.
7817
7818         * aux/macros/opt_{cppflags,ldflags,libs,amu_cflags}.m4: the ARG is
7819         not optional.  Make sure ARG is supplied else flag an error.
7820
7821 1999-09-18  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7822
7823         * minor port i386-unknown-freebsdelf3.3
7824
7825         * released snapshot am-utils-6.0.2s1
7826
7827 1999-09-17  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7828
7829         * aux/configure.in (AC_CHECK_FUNCS): check for getitimer().
7830
7831         * include/am_defs.h: extern definition for getitimer().
7832
7833         * aux/configure.in: use AC_CHECK_EXTERNS.  Look for getitimer()
7834         extern.
7835
7836         * aux/macros/check_extern.m4: define a simple AC_CHECK_EXTERNS
7837         that calls AC_CHECK_EXTERN in a loop.  This saves repeated code in
7838         configure.
7839
7840         * aux/macros/type_auth_create_gidlist.m4: AIX 4.x systems use
7841         'int' as the 5th arg to authunix_create().
7842
7843         * aux/macros/type_recvfrom_fromlen.m4: all AIX 4.x systems use a
7844         size_t for the 6th arg of recvfrom().
7845
7846         * aux/macros/os_cflags.m4: define _XOPEN_EXTENDED_SOURCE for
7847         aix4.x systems.
7848
7849         * libamu/mount_fs.c (print_nfs_args): cast some values to int, to
7850         avoid gcc -Wall errors.
7851
7852         * scripts/expn.in: use sockaddr_in(), not pack() to correctly fill
7853         in a struct sockaddr_in.  On Solaris x86 hosts, using pack()
7854         results in byte-misaligned values.   Bug fix from Jeffrey C Honig
7855         <jch@BSDI.COM>.
7856
7857         * libamu/mount_fs.c (compute_automounter_mount_flags): turn on
7858         automntfs (ignore on bsdi-4.1) flag.
7859         (compute_automounter_nfs_args): ditto.
7860
7861         * aux/acconfig.h: add new flag for automntfs (ignore)
7862
7863         * aux/configure.in: check for new automntfs flag (bsdi-4.1).
7864
7865 1999-09-14  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7866
7867         * MIRRORS: added new site in Germany.  Updated status of umn.edu
7868         and ferginc.com, who may no longer be mirroring am-utils.
7869
7870 1999-09-08  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7871
7872         *******************************************************************
7873         *** Released am-utils-6.0.1                                     ***
7874         *******************************************************************
7875
7876 1999-09-08  Erez Zadok  <ezk@cs.columbia.edu>
7877
7878         * aux/macros/mount_headers.m4: bsdi-2.1 needs MAXQUOTAS and struct
7879         netexport defined.
7880
7881         * aux/macros/try_compile_anyfs.m4: bsdi-2.1 needs MAXQUOTAS and
7882         struct netexport defined.
7883
7884 1999-09-07  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7885
7886         * aux/macros/check_field.m4 (ac_upcase_var_name): include
7887         <ifaddrs.h> so we can detect fields within struct ifaddrs.
7888
7889         * libamu/wire.c (getwire): bsdi-2.1 uses a second arg to
7890         getifaddrs() and struct ifaddrs has no ifa_next field.
7891
7892         * aux/configure.in: check if 'struct ifaddrs' has a field
7893         ifa_next.
7894
7895         * include/amq_defs.h (AMQ_STRLEN): double size of amq string
7896         length to 2048 bytes.
7897
7898         * conf/nfs_prot/nfs_prot_netbsd1_4.h: include several more nfs
7899         header files and ufs/ufs/ufsmount.h.  Bug reported by <Christos
7900         Zoulas> christos@zoulas.com.
7901
7902         * aux/macros/try_compile_anyfs.m4: include <ufs/ufs/ufsmount.h>.
7903         Bug reported by <Christos Zoulas> christos@zoulas.com.
7904
7905         * aux/macros/mount_headers.m4: include <ufs/ufs/ufsmount.h>
7906
7907 1999-09-06  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7908
7909         * libamu/xutil.c (expand_error): use strerror if available instead
7910         of sys_errlist.  Bug reported by <Christos Zoulas>
7911         christos@zoulas.com.
7912
7913         * hlfsd/hlfsd.c (fatal): use strerror if available instead of
7914         sys_errlist.
7915
7916         * amq/amq.c (show_mi): use strerror if available instead of
7917         sys_errlist.
7918
7919         * aux/macros/check_nfs_prot_headers.m4: make sure netbsd1.4
7920         nfs_prot header is used for any future (1.5 etc.) netbsd systems.
7921
7922         * amq/pawd.c (find_mt): check for type nfsl as well.  Fix from
7923         "Andrew J. Korty" <ajk@purdue.edu>
7924
7925 1999-08-29  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7926
7927         * doc/am-utils.texi (Supported Platforms): updates for redhat
7928         systems.
7929
7930         * INSTALL: updates for redhat systems.
7931
7932         * libamu/wire.c (getwire_lookup): spell "succeeded" correctly
7933
7934 1999-08-28  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7935
7936         * scripts/ctl-amd.in: sleep 1 second between killing amd and
7937         restarting it, because amq may respond that amd is down, where in
7938         fact it is still trying to unmount itself after unmapping itself
7939         from the portmapper.
7940
7941         * aux/config.guess.long: new script to print long version of
7942         config.guess output.
7943
7944         * buildall (host_alias): use long version of config.guess.
7945
7946 1999-08-27  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7947
7948         * scripts/ctl-{amd,hlfsd}.in: update RH tags for start/stop
7949         scripts.
7950
7951 1999-08-24  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7952
7953         * released snapshot am-utils-6.0.1s11
7954
7955         * libamu/xutil.c (expand_error): make sure expanding the string
7956         with textual version of errno doesn't overrun the 1024 bytes
7957         buffer.
7958         (real_plog): null terminate msg, just in case.
7959
7960         * amq/amq.c (main): don't getopt -M option and don't process it
7961         unless ENABLE_AMQ_MOUNT is on.
7962
7963         * amd/amq_svc.c (amq_program_1): all code that relates to amq -M
7964         is conditional on #ifdef ENABLE_AMQ_MOUNT.
7965
7966         * amd/amq_subr.c: remove amqproc_mount_1_svc() function invoked
7967         when amq -M code is disabled.  Not taking any chances.
7968
7969 1999-08-23  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7970
7971         * released snapshot am-utils-6.0.1s10
7972
7973 Sun Aug 22 16:18:59 1999  Erez Zadok  <ezk@subzero.cs.columbia.edu>
7974
7975         * libamu/wire.c (getwire_lookup): if getnetbyaddr failed (e.g., on
7976         128.59.16.0), try to shift the network out of zeros (e.g.,
7977         128.59.16) and try again.  Irix 6.4 requires short network
7978         numbers.
7979
7980 1999-08-22  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7981
7982         * libamu/wire.c (getwire_lookup): correctly compute subnet using
7983         netmask.
7984
7985         * libamu/mount_fs.c (compute_automounter_nfs_args): require that
7986         Amd's own NFS mounts use reserved ports (if possible).  IP packet
7987         security fix from Jeffrey C Honig <jch@BSDI.COM>.
7988
7989         * conf/transp/transp_tli.c (create_autofs_service): use correct
7990         autofs_port.  IP packet security fix from Jeffrey C Honig
7991         <jch@BSDI.COM>.
7992
7993         * conf/transp/transp_sockets.c (bindnfs_port): remove unnecessary
7994         function.  IP packet security fix from Jeffrey C Honig
7995         <jch@BSDI.COM>.
7996         (create_nfs_service): use bind_resv_port() directly.  ensure that
7997         privileged ports are used.  IP packet security fix from Jeffrey C
7998         Honig <jch@BSDI.COM>.
7999
8000         * amd/nfs_prot_svc.c (nfs_program_2): verify that requests come
8001         from reserved ports and from a local IP address.  IP packet
8002         security fix from Jeffrey C Honig <jch@BSDI.COM>.
8003
8004         * amd/amq_subr.c (ok_security): use IPPORT_RESERVED, instead of
8005         hard-coded 1024.  IP packet security fix from Jeffrey C Honig
8006         <jch@BSDI.COM>.
8007         (amqproc_mount_1_svc): provide information on the caller making an
8008         amq -M request.  IP packet security fix from Jeffrey C Honig
8009         <jch@BSDI.COM>.
8010
8011         * amd/map.c (free_map_if_success): If the program doing an unmount
8012         of a program filesystem fails, amd tries to interpret the return
8013         code as an errno.  Fix from Jeffrey C Honig <jch@BSDI.COM>.
8014
8015         * amd/info_nis.c (determine_nis_domain): don't always print
8016         warning about NIS domain name not being set, even if NIS is not in
8017         use.
8018
8019 1999-08-21  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8020
8021         * amd/info_ldap.c (get_ldap_timestamp): initialize variable err.
8022         (amu_ldap_search): initialize variable err.
8023
8024 1999-08-16  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8025
8026         * libamu/wire.c: written using getifaddrs() for BSD systems,
8027         contributed by BSDI, Jeffrey C Honig <jch@BSDI.COM>).
8028
8029 1999-08-15  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8030
8031         * include/am_utils.h (SALLOC): a simple macro to allocate N bytes.
8032
8033         * aux/configure.in: check for irs.h and ifaddrs.h.
8034         Increase libamu.so --version-info to 3:1:1 since we've changed the
8035         source code for the library.
8036         Check for getifaddrs() function.
8037
8038 1999-08-14  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8039
8040         * libamu/mount_fs.c (print_nfs_args): print fields namlen and
8041         bsize if they exist.
8042
8043         * conf/mount/mount_linux.c (mount_linux): set nfs_args_t->namlen
8044         and ->bsize fields correctly, if those fields exist.  This is a
8045         bug in that amd neglected to set these fields, but told the
8046         kernel it is mounting the nfs_args_t structure using mount version
8047         3 (which requires both bsize and namlen fields).
8048
8049         * aux/configure.in: test for two new nfs_args_t fields (used on
8050         newer linux with mount versions 2 and 3): bsize and namlen.
8051
8052         * doc/am-utils.texi (netgrpd Selector Function): document new
8053         selector function.
8054
8055         * amd/opts.c (f_netgrpd): new amd map function netgrpd(ARG) to
8056         test if the current host (fully-qualified name) is in the ARG host
8057         netgroup.  The netgrp() function uses the short form of a host
8058         name.  Patch from Christophe Kalt <Christophe-Kalt@deshaw.com>.
8059
8060         * doc/am-utils.texi (automount2amd): document new script.
8061
8062         * scripts/Makefile.am: create, install, and distribute
8063         automount2amd perl script and its man page.
8064
8065         * scripts/automount2amd.8: new man page for automount2amd.
8066
8067         * scripts/automount2amd.in: new file, contributed a in 1993 by
8068         Mike Walker <mike@tab00.larc.nasa.gov>.  Fixed to use addopts for
8069         any automount map options specified.
8070
8071 1999-08-09  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8072
8073         * released snapshot am-utils-6.0.1s9
8074
8075 1999-08-09  Erez Zadok  <ezk@beetle.mcl.cs.columbia.edu>
8076
8077         * amd/amfs_auto.c (DOT_DOT_COOKIE): set the NFS cookie of '..' to
8078         1.
8079         (amfs_auto_readdir): use DOT_DOT_COOKIE instead of (u_int)~0.
8080         (amfs_auto_readdir_browsable): use DOT_DOT_COOKIE instead of
8081         (u_int)~0.
8082
8083         * amd/mapc.c (make_entry_chain): NFS cookies should be
8084         monotonically increasing, because Linux 2.3 expects that, even
8085         though it is not in the spec (RFC-1094) for NFS V2.
8086
8087 1999-08-06  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8088
8089         * aux/macros/check_lib_funcs.m4: removed unused macro.
8090
8091         * aux/macros/linux_headers.m4: new macro to ensure that linux
8092         kernel headers match running kernel version.
8093
8094         * aux/acconfig.h: define HOST_HEADER_VERSION so we can check if
8095         amd is configured on linux hosts that run one kernel but have
8096         headers for a different version.
8097
8098         * amd/info_nis.c (nis_isup, nis_search, nis_init): fixes for the
8099         logic which uses nis_isup and has_yp_order.  Make sure it is used
8100         correctly , esp. for NIS+ in NIS-compatibility mode.  Bug fix from
8101         Peter Breitenlohner <peb@mppmu.mpg.de>.
8102
8103         * include/am_defs.h: fix conflicts on linux 2.2 systems with older
8104         libc5.  Bug fix from Peter Breitenlohner <peb@mppmu.mpg.de>.
8105
8106         * scripts/lostaltmail.in: use sockaddr_in(), not pack() to
8107         correctly fill in a struct sockaddr_in.  On Solaris x86 hosts,
8108         using pack() results in byte-misaligned values.
8109
8110 1999-08-02  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8111
8112         * conf/mtab/mtab_aix.c (mnt_dup): add support for nfs3
8113         mounting, as per Dale Talcott <aeh@quest.cc.purdue.edu>.  Also use
8114         better macros for case statement.
8115
8116         * conf/nfs_prot/nfs_prot_sunos5_7.h: don't include ldap structures
8117         unless ldap is actually available.
8118
8119         * use updated config.guess and config.sub.  Use newer automake
8120         that fixes problems with distributing optional libamu files
8121         (clnt_sperrno.c, hasmntopt.c, strcasecmp.c, strdup.c, strstr.c,
8122         and ualarm.c)
8123
8124 1999-07-19  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8125
8126         * minor port i386-unknown-openbsd2.5
8127
8128 1999-07-17  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8129
8130         * minor ports to freebsdelf 3.[0-2] and 4.0 completed
8131
8132         * aux/macros/check_nfs_prot_headers.m4: support freebsdelf
8133
8134         * aux/macros/check_nfs_socket_connection.m4: support freebsdelf
8135
8136 1999-06-24  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8137
8138         * released snapshot am-utils-6.0.1s8
8139
8140 1999-06-23  Erez Zadok  <ezk@beetle.mcl.cs.columbia.edu>
8141
8142         * include/am_defs.h: avoid various header conflicts on
8143         RedHat/Linux 6.0 and kernels 2.2.10 or newer.
8144
8145         * aux/configure.in: look for <db1/ndbm.h> (RedHat/Linux 6.0 and
8146         kernel 2.2.10)
8147
8148         * amd/amfs_program.c (amfs_program_exec): make sure logfp is
8149         initialized dynamically to stderr if needed.
8150
8151         * libamu/xutil.c (dplog): make sure logfp is initialized
8152         dynamically to stderr if needed.
8153         (plog): ditto.
8154
8155         * amd/amfs_program.c (amfs_program_exec): set logfp to stderr if
8156         not initialized.
8157
8158         * libamu/xutil.c: don't initialize logfp statically to stderr,
8159         because on RedHat/Linux 6.0 (kernel 2.2.10) stderr can no longer
8160         be manipulated like a variable.
8161
8162         * include/am_defs.h: avoid more conflicts between <linux/fs.h> and
8163         <sys/mount.h> on 2.2 linux kernels.
8164         include <db1/ndbm.h> as needed (RedHat/Linux 6.0)
8165
8166 1999-04-20  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8167
8168         * all Makefile.am: use AMU_NFS_PROT_HEADER (not *_HEADERS)
8169
8170         * aux/macros/check_nfs_prot_headers.m4 (AMU_NFS_PROT_HEADER):
8171         renamed AC_SUBST name from *_HEADERS to *_HEADER so that automake
8172         won't attempt to add it to the header files to distribute.
8173
8174 1999-04-19  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8175
8176         * aux/GNUmakefile: invoke aclocal with new --altdir flag.
8177
8178 1999-04-16  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8179
8180         * minor new port: i386-unknown-netbsd1.4 (ALPHA)
8181
8182         * aux/macros/check_field.m4: no need to include <cdfs/cdfsmount.h>
8183         and <isofs/cd9660/cd9660_mount.h> because they are also included
8184         from MOUNT_HEADERS.  Causes multiple inclusion of unprotected
8185         headers on netbsd-1.4_ALPHA.
8186
8187 1999-04-15  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8188
8189         * aux/macros/extern_sys_errlist.m4 (pattern): netbsd-1.4_ALPHA's
8190         sys_errlist extern doesn't end with [].
8191
8192         * aux/macros/check_nfs_prot_headers.m4: netbsd 1.4 support.
8193
8194 1999-04-11  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8195
8196         * newer automake wants texinfo.tex to be in aux/ not doc/
8197
8198 1999-03-30  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8199
8200         * amd/conf_parse.y: alloca support.
8201
8202         * fsinfo/fsi_gram.y: alloca support.
8203
8204         * libamu/Makefile.am (libamu_la_LIBADD): compile alloca.o if
8205         needed.
8206
8207         * aux/configure.in: test for alloca support.  Needed because bison
8208         generates parsers that use alloca, and hpux9 does have alloca and
8209         its /bin/cc doesn't support it builtin (the way gcc does).
8210
8211         * libamu/alloca.c: new file, needed on hpux9 with /bin/cc.  Taken
8212         verbatim from bison-1.25.
8213
8214         * include/am_defs.h: fixed typo #errir -> #error
8215
8216         * released snapshot am-utils-6.0.1s7
8217
8218         * README.y2k: more information about am-utils' compatibility, from
8219         Paul Balyoz <pbalyoz@sedona.ch.intel.com>.
8220
8221         * scripts/lostaltmail.in (Splice_in_resent_headers): ensure Y2K
8222         compliant format.  Patch from Paul Balyoz
8223         <pbalyoz@sedona.ch.intel.com>
8224
8225         * doc/am-utils.texi (Supported Platforms): hpux10.20 could have
8226         nfs v.3 support (with some vendor patches), but it is turned off.
8227
8228         * aux/macros/os_cflags.m4: use ansi compiler options on hpux.
8229
8230         * conf/nfs_prot/nfs_prot_hpux.h: Turn off NFS V.3 support to avoid
8231         confusing am-utils.  10.20 with some patches has incomplete
8232         support.  Patch from Jon Peatfield
8233         <J.S.Peatfield@damtp.cam.ac.uk>.
8234
8235 1999-03-24  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8236
8237         * minor port i386-pc-bsdi4.0.1
8238
8239 1999-03-20  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8240
8241         * doc/am-utils.texi (Supported Platforms): add forgotten listing
8242         for powerpc-linux.
8243
8244 1999-03-18  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8245
8246         * scripts/amd.conf.5: fix typo.  From Jeffrey C Honig
8247         <jch@BSDI.COM>.
8248
8249         * doc/am-utils.texi: document iso9660 options norrip, gens, and
8250         extatt.
8251         (opts Option): documented dumbtimr and noauto options.  From
8252         Jeffrey C Honig <jch@BSDI.COM>.
8253
8254         * include/am_compat.h: define default strings for options norrip,
8255         gens, and extatt.
8256
8257         * amd/ops_cdfs.c (mount_cdfs): support options norrip, gens, and
8258         extatt.
8259
8260         * aux/macros/mount_headers.m4: also include
8261         <isofs/cd9660/cd9660_mount.h> as needed.
8262
8263         * aux/configure.in: check for isofs mount options for bsdi4:
8264         norrip, gens, and extatt.  Reported by Jeffrey C Honig
8265         <jch@BSDI.COM>.
8266
8267         * aux/macros/check_mnt2_cdfs_opt.m4: check for ISOFSMNT_* flags
8268         (bsdi4).
8269
8270 1999-03-17  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8271
8272         * conf/nfs_prot/nfs_prot_freebsd3.h: ditto.
8273
8274         * conf/nfs_prot/nfs_prot_bsdi3.h: include <ufs/ufs/ufsmount.h>,
8275         for bsdi4, as per Jeffrey C Honig <jch@BSDI.COM>.
8276
8277 1999-03-15  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8278
8279         * get latest copies of config.guess, config.sub, ltconfig, and
8280         ltmain.sh from libtool-1.2f.
8281
8282         * all Makefile.am: don't use continuation lines (using \) for
8283         short lists of files.
8284
8285         * libamu/Makefile.am (DISTCLEANFILES): make distclean should
8286         remove mountutil.c, mtabutil.c, transputil.c, and umount_fs.c.
8287         Reported by Jeffrey C Honig <jch@BSDI.COM>.
8288
8289         * fixmount/Makefile.am (DISTCLEANFILES): make distclean should
8290         remove checkmount.c.  Reported by Jeffrey C Honig <jch@BSDI.COM>.
8291
8292         * Makefile.am (DISTCLEANFILES): make distclean should remove
8293         amu_nfs_prot.h, config.cache.old, and dbgcf.h.  Reported by
8294         Jeffrey C Honig <jch@BSDI.COM>.
8295
8296 1999-03-13  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8297
8298         * released snapshot am-utils-6.0.1s6
8299
8300 1999-03-12  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8301
8302         * INSTALL: document freebsdelf.
8303
8304         * doc/am-utils.texi (Supported Platforms): document freebsdelf.
8305
8306 1999-03-08  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8307
8308         * minor new ports: i386-unknown-freebsdelf3.1 and
8309         i386-unknown-freebsdelf4.0
8310
8311         * aux/macros/check_nfs_prot_headers.m4: freebsd4 support.
8312
8313         * aux/macros/check_nfs_socket_connection.m4: freebsd4 support.
8314
8315         * aux/macros/check_nfs_fh_dref.m4: freebsd4 support.
8316
8317         * amd/opts.c (eval_opts): changed log level of "executing
8318         negated..." message from USER to INFO, as per Guntram Wolski
8319         <gwolsk@sei.com>.
8320
8321 1999-02-17  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8322
8323         * */Makefile.am (LDADD): force linking against an installed
8324         libamu.{a,so}.
8325
8326         * doc/am-utils.texi (addopts Option): document remopts interaction
8327         with addopts.
8328
8329         * amd/am_ops.c (ops_match): if addopts are specified, apply them
8330         to the value of remopts as well as opts.
8331
8332         * amd/ops_nfs.c (mount_nfs_fh): tell users when remopts are used.
8333
8334 1999-02-05  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8335
8336         * released snapshot am-utils-6.0.1s5
8337
8338         * conf/mount/mount_linux.c (mount_linux): set default nfs_args
8339         options for ac{reg,dir}{min,man} as per the mount-2.8a package,
8340         but only if noac option was not used.
8341
8342 1999-02-05  Erez Zadok  <ezk@retro.cs.columbia.edu>
8343
8344         * conf/mount/mount_linux.c (mount_linux): print nfs_args again
8345         since it was updated.
8346         (mount_linux): use 4KB for NFS rsize/wsize on 2.1.0 linux kernels
8347         and newer.  Bug was found by Neil Conway
8348         <nconway.list@ukaea.org.uk>
8349
8350 1999-02-04  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8351
8352         * released snapshot am-utils-6.0.1s4
8353
8354 1999-02-03  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8355
8356         * amq/amq.c (main): don't list -M as a valid amq option unless
8357         configure'd with --enable-amq-mount.
8358
8359 Wed Feb  3 18:11:18 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8360
8361         * amd/nfs_start.c (amd_use_autofs): Define.
8362         (mount_automounter): Create autofs service listener only if
8363         necessary to avoid unnecessary clashes with e.g. automountd.
8364
8365         * amd/amd.h (amd_use_autofs): Declare.
8366
8367         * amd/conf.c (gopt_mount_type): Set amd_use_autofs.
8368         (ropt_mount_type): Likewise.
8369
8370 1999-02-02  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8371
8372         * aux/macros/check_mnt2_nfs_opt.m4:: ditto
8373
8374         * aux/macros/check_mnt2_cdfs_opt.m4: ditto
8375
8376         * aux/macros/check_mnt2_gen_opt.m4: ditto
8377
8378         * aux/macros/check_mnttab_opt.m4: new macro in this file to loop
8379         over AC_CHECK_MNTTAB_OPT.  Reduces size of configure script a lot.
8380
8381         * conf/nfs_prot/nfs_prot_netbsd1_3.h: include nfs/rpcv2.h,
8382         nfs/nfs.h and nfs/nfsmount.h if they exist.  Patch from
8383         christos@zoulas.com (Christos Zoulas).
8384
8385         * amd/info_hesiod.c: some forward declarations.  Patch from
8386         christos@zoulas.com (Christos Zoulas).
8387
8388 1999-01-28  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8389
8390         * libamu/mount_fs.c (compute_nfs_args): don't turn on/off noconn
8391         option if it was already in that state.  Patch from David
8392         Wolfskill <dhw@whistle.com>.
8393
8394 1999-01-20  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8395
8396         * aux/configure.in: automake nowadays supports LTLIBOBJS (but not
8397         LTALLOCA yet).  Substitute value of LIBTOOL_DEPS for libtool
8398         rebuild make rules.
8399
8400         * Makefile.am: new rules to remake libtool (maintainers only)
8401
8402         * amd/amfs_toplvl.c (mount_amfs_toplvl): print generic mount flags
8403         if -D trace was used.
8404
8405 1999-01-18  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8406
8407         * buildall: all if statements should have an else clause because
8408         of Ultrix's /bin/sh.
8409
8410 1999-01-15  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8411
8412         * amq/amq.c: removed dummy variables.
8413
8414         * amq/pawd.c: removed dummy variable.s
8415
8416         * fixmount/fixmount.c (usage): removed dummy variables.
8417
8418         * fsinfo/fsinfo.c: removed dummy variables.
8419
8420         * hlfsd/hlfsd.c: removed dummy variables.
8421
8422         * wire-test/wire-test.c: removed dummy variables.
8423
8424         * mk-amd-map/mk-amd-map.c: removed dummy variables.
8425
8426         * doc/texinfo.tex: updates from GNU mirror.
8427
8428         * aux/GNUmakefile (../doc/texinfo.tex): new rule to update
8429         doc/texinfo.tex from GNU mirror.
8430
8431         * released snapshot am-utils-6.0.1s3
8432
8433         * Makefile.am (install-snapshot): better snapshot and new
8434         install-snapshot and test-snapshot rules (maintainer).
8435
8436         * amd/info_ldap.c (amu_ldap_init): don't run STREQ if one of the
8437         args may be NULL.
8438         Some dlog() entries were not enclosed in #ifdef DEBUG.  Fix from
8439         Bill Paul <wpaul@ctr.columbia.edu>
8440
8441 1999-01-13  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8442
8443         * check for experimental generic 'ignore' mount flag on freebsd3.
8444
8445         * Update library -version-info to 3:0:1 (will result in 2.1.0 .so
8446         version, which is backwards compatible with older versions.)  Only
8447         one new interface was added to libamu.
8448
8449         * amd/amfs_toplvl.c (mount_amfs_toplvl): add generic mount flags
8450         that are specific to automounter mounts.
8451
8452         * aux/configure.in: update libamu.so age and revision since a new
8453         interface was added to libamu/mount_fs.c
8454         (compute_automounter_mount_flags).
8455
8456         * libamu/mount_fs.c (compute_automounter_mount_flags): new
8457         function to compute generic mount flags that are specific to mount
8458         points only.
8459
8460         * aux/{configure.in,acconfig.h}: add support for generic mount
8461         entry ignore option.
8462
8463         * released snapshot am-utils-6.0.1s2
8464
8465         * amd/info_ldap.c (get_ldap_timestamp): dlog format fixes.
8466
8467         * libamu/mount_fs.c (print_nfs_args): solaris 2.7 changed format
8468         of knc_semantics from u_long to u_int.
8469
8470         * aux/macros/check_mount_style.m4: freebsd3 no longer needs a
8471         special mount helper.
8472
8473 1999-01-12  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8474
8475         * aux/macros/check_nfs_prot_headers.m4 (AMU_NFS_PROT_HEADERS):
8476         amu_nfs_conf.h should always be found in $top_builddir.
8477
8478 Tue Jan 12 00:05:42 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8479
8480         * conf/nfs_prot/nfs_prot_sunos5_7.h (MNTTAB_TYPE_AUTOFS): Undefine
8481         to avoid wrong reports from show_fstypes.
8482
8483         * conf/nfs_prot/nfs_prot_irix5.h (MNTTAB_TYPE_XFS): Likewise.
8484
8485         * conf/nfs_prot/nfs_prot_hpux11.h (MNTTAB_TYPE_NFS3): Likewise.
8486
8487 Tue Jan 12 00:05:42 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8488
8489         * BUGS (mips-dec-ultrix4.3): Update Ultrix caveats.
8490
8491 Tue Jan 12 00:05:42 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8492
8493         * hlfsd/homedir.c (delay): Cast child to long, adapt format.
8494         (hlfsd_getpwent): Likewise for pw_uid.
8495
8496         * amd/info_nis.c (nis_init): Cast order to unsigned long, adapt
8497         format.
8498
8499         * conf/transp/transp_tli.c (amu_clnt_create_best_vers): Cast
8500         tv_sec to int to match format.
8501         (get_nfs_version): Cast nfs_version, NFS_VERSION to int to match
8502         formats.
8503
8504         * amd/amfs_program.c (amfs_program_exec): Cast ptr difference to
8505         long, adapt format.
8506
8507         * include/am_defs.h: Handle __attribute__ if available.  From
8508         GNU fileutils 4.0 lib/errors.h.
8509
8510 Mon Jan 11 13:46:44 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8511
8512         * libamu/mount_fs.c (print_nfs_args): Cast sizeof() to int to
8513         match format.
8514
8515         * hlfsd/stubs.c (nfsproc_getattr_2_svc): Cast uid, gid to long,
8516         adapt format.
8517         (nfsproc_lookup_2_svc): Likewise.
8518         (nfsproc_readlink_2_svc): Likewise for userid, groupid.
8519
8520         * hlfsd/nfs_prot_svc.c (nfs_program_2): Cast args to int to match
8521         format.
8522
8523         * hlfsd/homedir.c (homedir): Cast uid, child to long, adapt
8524         format.
8525
8526         * amd/info_hesiod.c (hesiod_search): Cast m, pval, tp to unsigned
8527         long, adapt format.
8528
8529         * amd/ops_nfs.c (find_nfs_fhandle_cache): Cast fh_wchan to
8530         unsigned long, adapt format.
8531         (got_nfs_fh): Likewise.
8532         (prime_nfs_fhandle_cache): Cast fh_nfs_version to int to match
8533         format.
8534         (call_mountd): Likewise, mnt_version also.
8535         (mount_nfs_fh): Likewise.
8536
8537         * amd/ops_autofs.c (autofs_program_1): Cast args to int to match
8538         format.
8539         (autofs_unmount_1_svc): Cast ur->devid, ur_rdevid, ur->next to
8540         unsigned long, adapt formats.
8541         (autofs_bgmount): Cast opt_fs to unsigned to, adapt format.
8542         (autofs_bgmount): Use long format to match arg.
8543         (autofs_lookuppn): Removed superfluous arg.
8544
8545         * amd/srvr_nfs.c (start_ping): Cast nfs_version to int to match
8546         format.
8547         (got_portmap): Likewise for port.
8548         (recompute_portmap): Likewise for fs->fs_version, mnt_version.
8549         (find_nfs_srvr): Likewise for nfs_version.
8550
8551         * amd/sched.c (sched_task): Cast wchan to unsigned long, adapt
8552         format.
8553
8554         * amd/nfs_start.c (checkup): Cast ptr difference to long, next_mem
8555         to unsigned long, adapt format.
8556         Cast tvv.tv_sec to int to match format.
8557
8558         * amd/nfs_prot_svc.c (nfs_program_2): Cast args to int to match
8559         format.
8560
8561         * amd/map.c (root_fh): Cast pid to long, adapt format.
8562         (timeout_mp): Cast time_t to long, adapt format.
8563
8564         * amd/clock.c (reschedule_timeouts): Use long format, cast time_t
8565         arg.
8566
8567         * amd/amfs_host.c (fetch_fhandle): Cast nfs_version to int to
8568         match format.
8569         (amfs_host_fmount): Likewise.
8570         (amfs_host_umounted): Likewise.  Removed superfluous arg.
8571
8572         * amd/amfs_auto.c (amfs_auto_bgmount): Cast pointer to unsigned
8573         long, adapt format.
8574         (amfs_auto_bgmount): Use long format, cast time_t arg.
8575         (amfs_auto_lookuppn): Removed superfluous arg.
8576
8577         * amd/amd.c (main): Cast geteuid() result to long, adapt format.
8578
8579         * conf/transp/transp_sockets.c (get_nfs_version): Cast nfs_version
8580         to int to match format.
8581
8582         * include/am_utils.h: Declare plog, dplog as printf-like.
8583
8584         * conf/mount/mount_irix6.c (mount_irix): Print type as char *.
8585
8586 Mon Jan 11 13:46:44 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8587
8588         * amd/info_hesiod.c (hesiod_isup): New function.
8589         * amd/mapc.c (maptypes): Add it.
8590
8591 1999-01-10  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8592
8593         * released snapshot am-utils-6.0.1s1
8594
8595 1999-01-09  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8596
8597         * ALL: bump copyright year to 1999.
8598
8599 Fri Jan  8 15:24:15 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8600
8601         * aux/macros/check_mtype_type.m4: Ultrix uses an int mount type,
8602         too.
8603
8604         * aux/macros/check_mtype_printf_type.m4: Adapt corresponding
8605         printf type.
8606
8607 Fri Jan  8 15:24:15 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8608
8609         * aux/acconfig.h: Removed HAVE_AM_FS_AUTOFS, unused.
8610
8611         * conf/nfs_prot/nfs_prot_irix6.h: Likewise.
8612
8613         * conf/nfs_prot/nfs_prot_sunos5_6.h: Likewise.
8614
8615         * conf/nfs_prot/nfs_prot_sunos5_7.h: Likewise.
8616
8617         * Makefile.am (EXTRA_DIST_DIRS): Removed, not needed by current
8618         automake.
8619
8620 Thu Jan  7 02:55:18 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8621
8622         * aux/configure.in (AM_PROG_YACC): Replaced by AC_PROG_YACC, not
8623         in current automake.
8624
8625 Thu Jan  7 02:55:18 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8626
8627         * doc/am-utils.texi: Added some missing inter-punctation after
8628         @xref, or use @pxref/@ref as appropriate.  Spotted by makeinfo
8629         from texinfo 3.12b.
8630
8631 1999-01-07  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8632
8633         * doc/texinfo.tex: updated off of latest GNU mirror.
8634
8635 1999-01-04  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8636
8637         * doc/am-utils.texi (Supported Platforms): update platforms that
8638         support NFS v.3.  Nicer postscript printing on double-sided pages.
8639
8640         * amd/info_hesiod.c: add extern definition for hesiod_init()
8641
8642 1999-01-01  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8643
8644         *******************************************************************
8645         *** Released am-utils-6.0                                       ***
8646         *******************************************************************
8647
8648 1998-12-28  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8649
8650         * conf/nfs_prot/nfs_prot_sunos5_7.h: support ldap in solaris 2.7.
8651
8652 1998-12-27  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8653
8654         * conf/nfs_prot/nfs_prot_bsdi3.h: don't use reserved ports on
8655         bsdi4 for NFS V3/nfs mounts.
8656
8657 1998-12-26  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8658
8659         * using latest libtool (1.2e + patches), now supporting shared
8660         libraries on many more systems.  Also using latest autoconf and
8661         automake (unreleased GNU CVS'd versions.)
8662
8663         * minor new ports: hppa2.0w-hp-hpux11.00,
8664         i386-unknown-netbsd1.3.3, mips-sgi-irix6.5.
8665
8666         * fsinfo/fsinfo.h (yywrap): define it for systems (osf4) that
8667         have /usr/bin/flex but not libfl.
8668
8669 1998-12-24  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8670
8671         * lots of code cleanup, to make sure libamu.so does not use
8672         undefined symbols.  Some system's shared libraries cannot handle
8673         that.
8674
8675 1998-12-23  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8676
8677         * include/am_defs.h: only defined seteuid extern if function also
8678         exists and is not superceded by setresuid (hpux).
8679
8680         * amd/ops_autofs.c (autofs_bgmount, autofs_lookuppn): put explicit
8681         braces to avoid confusion with nested if-then-else clauses.
8682
8683         * aux/config.{sub,status}, aux/{ltmain.sh,ltconfig,mkinstalldirs:
8684         updated from latest versions.
8685
8686 1998-12-22  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8687
8688         * minor new port: i386-pc-bsdi4.0
8689
8690         * conf/nfs_prot/nfs_prot_bsdi3.h: add missing hesiod header
8691         definitions for bsdi4.
8692
8693         * {amd,fsinfo}/Makefile.am: force path to .y/.l files, because
8694         some make programs (bsdi4) do not support VPATH correctly.
8695
8696 1998-12-16  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8697
8698         * conf/mount/mount_aix.c: minor code cleanup
8699
8700         * aux/configure.in: check for extern definition to xdr_groups.
8701
8702 1998-12-15  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8703
8704         * minor new port: powerpc-ibm-aix4.3.1.0
8705
8706         * aux/macros/*.m4: updates for aix 4.3
8707
8708 1998-12-14  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8709
8710         * minor new port: i386-unknown-openbsd2.4
8711
8712         * aux/configure.in: don't check for xfs on openbsd because
8713         openbsd-2.4 introduces a new file system named xfs, but different
8714         than Irix's XFS.  Sigh.
8715
8716         * minor new port: i386-unknown-freebsd2.2.8
8717
8718 1998-12-03  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8719
8720         * amd/amfs_nfsl.c (amfs_nfsl_ffserver): use case insensitive host
8721         name match.  Bug fix from Douglas K. Rand" <rand@aero.und.edu>.
8722
8723 1998-11-20  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8724
8725         * scripts/ctl-amd.in: wait4amd2die runs in the stop action, to
8726         avoid race conditions when shutting down systems running amd.
8727
8728         * Makefile.am: add a dist-hook to change modes of the directories
8729         in the tar file so they are not world writable.
8730
8731         * conf/nfs_prot/nfs_prot_freebsd3.h: turned on NFSv3 support,
8732         since it is now finally defined in the header files and
8733         (hopefully) stable.
8734
8735         * amd/srvr_nfs.c (find_nfs_srvr): allow overriding if nfsv2 option
8736         is specified in mount options.  freebsd patches from David
8737         O'Brien.
8738
8739         * amq/amq.c (main), fixmount/fixmount.c (main), hlfsd/hlfsd.c
8740         (main), fsinfo/fsinfo.c (fsi_get_args), hlfsd/hlfsd.c (main),
8741         amd/get_args.c (get_args): posix: use -1 to check for return from
8742         getopt() (not EOF), as per posix.
8743
8744         * amd/amq_subr.c (xdr_amq_mount_tree_node): patches from "David
8745         O'Brien" <obrien@NUXI.com>, from the FreeBSD source tree.  Use
8746         real variable whose pointer is on the stack for decoding a long
8747         int.
8748
8749 1998-11-11  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8750
8751         * scripts/ctl-{amd,hlfsd}.in: include comments useful for redhat's
8752         chkconfig utility.
8753
8754 1998-11-10  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8755
8756         * released snapshot am-utils-6.0b2s3
8757
8758         * conf/transp/transp_sockets.c (create_nfs_service): remove C++
8759         style comments.
8760
8761 1998-11-04  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8762
8763         * released snapshot am-utils-6.0b2s2
8764
8765         * created CVS package
8766
8767         * amd/nfs_subr.c (nfsproc_lookup_2_svc): try to avoid a race
8768         condition between unmounting and re-mounting an entry, by
8769         increasing the ttl of a looked up entry before unmounting it.
8770         Patch from Mike Mitchell <mcm@unx.sas.com>.
8771
8772         * All files: spell comments and strings.
8773
8774 1998-11-03  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8775
8776         * aux/configure.in: look for yp_all in libnsl only if yp_all not
8777         already found elsewhere (in libc or other default libraries).
8778         This is so RedHat 5.1 systems could find yp functions in libnsl,
8779         but also so AIX 4.2.1 will NOT include libnsl, because the latter
8780         has broken nis functionality that also exists and works ok in libc.
8781
8782 1998-10-29  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8783
8784         * amd/amd.c (main): bug fix: swapped arguments to kill(2).  Fix
8785         from Danny Rathjens <dkr@cs.fiu.edu>.
8786
8787 1998-10-28  Erez Zadok  <ezk@spruce.mcl.cs.columbia.edu>
8788
8789         * released snapshot am-utils-6.0b2s1
8790
8791 1998-10-27  Erez Zadok  <ezk@spruce.mcl.cs.columbia.edu>
8792
8793         * aux/macros/*.m4: support bsdi4 as bsdi3.
8794
8795         * aux/macros/os_ldflags.m4: enable detection of LDAP on solaris
8796         2.7 (libraries located in /usr/lib/fn).  This is off until Sun
8797         includes LDAP header information.
8798
8799 1998-10-20  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8800
8801         *******************************************************************
8802         *** Released am-utils-6.0b1                                     ***
8803         *******************************************************************
8804
8805 1998-10-18  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8806
8807         * mk-amd-map/mk-amd-map.c (main): use perror not strerror.
8808         (main): set return type to int if no ndbm maps.
8809
8810         * include/am_defs.h: avoid conflicts with <sys/mount.h> in 2.1
8811         kernels.
8812
8813 1998-10-18  Erez Zadok  <ezk@london.mcl.cs.columbia.edu>
8814
8815         * A.i386-unknown-netbsd1.3.2/amu_nfs_prot.h: trim down and cleanup
8816         for netbsd 1.3.2.
8817
8818 1998-10-17  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8819
8820         * aux/configure.in: check for yp_all in libnsl, b/c redhat 5.1
8821         systems put NIS functions there.
8822
8823         * mk-amd-map/mk-amd-map.c: patch from "David O'Brien"
8824         <obrien@NUXI.com> merged in.  Use POSIX -1 return code from
8825         getopt(), not EOF.  Use .db extentions for systems that use it,
8826         instead of .{pag,dir}.
8827
8828 1998-10-15  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8829
8830         * wire-test/wire-test.c, hlfsd/hlfsd.c, fixmount/fixmount.c,
8831         amd/amd.c (main): avoid overrunning hostname buffer.  Bug fix from
8832         "David O'Brien" <obrien@NUXI.com>.
8833
8834         * scripts/amd.conf.5: minor typo reported by "David O'Brien"
8835         <obrien@NUXI.com> in .TH section of man page.
8836
8837         * amd/info_nis.c (am_yp_all): don't leak key-val entries.  Patch
8838         from Thomas Richter <richter@chemie.fu-berlin.de>.
8839
8840 1998-10-12  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8841
8842         * doc/am-utils.texi (Program Filesystem): minor typo fixed as per
8843         Andreas Stolcke <stolcke@speech.sri.com>.
8844
8845         * minor new ports: sparc64-unknown-linux-gnu, i386-pc-solaris2.7,
8846         and sparc-sun-solaris2.7.
8847
8848         * conf/mount/mount_freebsd3.c (mount_freebsd3): freebsd 3.0 is now
8849         a 4.4lite kernel, and somethings were removed, such as
8850         INITMOUNTNAMES.
8851
8852         * amd/ops_autofs.c (autofs_lookuppn): don't leak memory while
8853         processing /defaults.  Free temporary opts.  Patch from
8854         dsr@mail.lns.cornell.edu (Daniel S. Riley)
8855
8856         * amd/amfs_auto.c (amfs_auto_lookuppn): don't leak memory while
8857         processing /defaults.  Free temporary opts.  Patch from
8858         dsr@mail.lns.cornell.edu (Daniel S. Riley)
8859
8860         * conf/mtab/mtab_osf.c (read_mtab): patch from
8861          dsr@mail.lns.cornell.edu (Daniel S. Riley) not to access
8862          uninitialized memory on Digital Unix.
8863
8864 1998-10-09  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8865
8866         * aux/macros/{check_mtype_type,check_mtype_printf_type}.m4: most
8867         systems now use "char *" as their mount type.
8868
8869 1998-10-08  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8870
8871         * amd/conf.c (gopt_map_type, ropt_map_type): check if map type
8872         exists.
8873
8874         * amd/mapc.c (mapc_type_exists): function to test if a map of
8875         certain type exists.
8876
8877 1998-10-08  Erez Zadok  <ezk@horatio.mcl.cs.columbia.edu>
8878
8879         * aux/macros/{mount_headers,try_compile_anyfs,try_compile_nfs}.m4,
8880         include/am_defs.h: Avoid a conflict in definitions of ntohl/htonl
8881         in RH-5.1 sparc64 between <netinet/in.h> and
8882         <linux/byteorder/generic.h> (2.1 kernels).
8883
8884 1998-09-28  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8885
8886         * aux/macros/func_bad_yp_all.m4 (ac_cv_func_yp_all_clean): RedHat
8887         5.1 systems with glibc glibc-2.0.7-19 or below leak a UDP socket
8888         from yp_all().
8889
8890 1998-09-25  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8891
8892         * conf/mount/mount_linux.c (parse_opts): check for pcfs support
8893         only if autoconfigured.
8894
8895 1998-09-18  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8896
8897         * Makefile.am (EXTRA_DIST): distribute README.yk2 file.
8898
8899         * README.y2k: explain y2k compliance status of am-utils.
8900
8901 1998-09-16  Erez Zadok  <ezk@iguana.mcl.cs.columbia.edu>
8902
8903         * amd/amfs_host.c (fetch_fhandle, amfs_host_fmount,
8904         amfs_host_umounted): clnt_sperrno() may return a const.
8905
8906 Sat Aug  8 23:28:32 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8907
8908         * aux/configure.in: check for <nfs/nfsmount.h>, as per Christos
8909         Zoulas. Turned on checking for mount options: async, synchronous,
8910         deadthresh, leasterm, nqnfs, and readahead.
8911
8912         * amd/info_nis.c: patch from christos@zoulas.com (Christos Zoulas)
8913         to include prototype definition for nis_isup().
8914
8915 Sun Jul 19 18:50:10 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8916
8917         * hlfsd/stubs.c (getcreds): force sscanf arg to u_long.
8918
8919 Tue Jul 14 20:34:25 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8920
8921         * released snapshot am-utils-6.0a17s1
8922
8923 Wed Jul  8 21:49:15 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8924
8925         * aux/macros/host_macros.m4: all x86 hosts should have $arch be
8926         i386, not i[456]86.
8927
8928 Tue Jul  7 18:55:09 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8929
8930         * aux/macros/{mount_headers,try_compile_anyfs,try_compile_nfs}.m4,
8931         include/am_defs.h: include <linux/posix_types.h> before
8932         <linux/fs.h> because on redhat 5.1, there is a bug (misuse) of
8933         headers in <socketbits.h> (it defines _LINUX_TYPES_H instead of
8934         __KERNEL_STRICT_NAMES).
8935
8936         * aux/configure.in: check for <linux/posix_types.h> because it is
8937         need for RedHat 5.1.
8938
8939 Wed Jun 17 00:05:33 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8940
8941         * scripts/Makefile.am (EXTRA_DIST): have fixrmtab generated from
8942         .in as well, so it doesn't get removed by make clean.
8943
8944 Tue Jun 16 22:00:15 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8945
8946         * aux/macros/{check_fs_mntent.m4, check_mnttab_type.m4,
8947         check_mount_type.m4}: redhat 5.1 puts some modules in
8948         /lib/modules/preferred/.
8949
8950 Wed May 13 16:33:57 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8951
8952         * amd/ops_autofs.c (mount_autofs): cast pid to long.
8953
8954 Tue Apr 28 15:12:36 1998  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8955
8956         * conf/nfs_prot/nfs_prot/nfs_prot_irix6.h,
8957         conf/nfs_prot/nfs_prot_sunos5_6.h: Undef MNTTAB_TYPE_AUTOFS too to
8958         avoid amd/am_ops.c (show_fstypes) from erroneously claiming
8959         support.
8960
8961 Fri Apr 24 23:02:11 1998  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8962
8963         * libamu/xutil.c (get_syslog_facility): Don't use LOG_DAEMON
8964         unconditionally, may be missing on Ultrix V4.3.
8965
8966 Thu Apr 23 20:24:33 1998  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8967
8968         * conf/nfs_prot/nfs_prot_sunos5_4.h (MNTTYPE_CACHEFS): Define,
8969         missing from <sys/mntent.h>.
8970
8971         * conf/mtab/mtab_ultrix.c: Need separate inclusion of <sys/fs_types.h>
8972         without KERNEL defined here.
8973
8974         * aux/macros/mount_headers.m4: Need to include <ufs/ufs_mount.h>,
8975         <cdfs/cdfs_mount.h>, <cdfs/cdfsmount.h> so autoconfiguration of
8976         ufs_args_t, cdfs_args_t fields and cdfs mount options can succeed.
8977
8978         * amd/ops_ufs.c (mount_ufs): Removed obsolete comment.
8979
8980         * ChangeLog: Fixed confusing linebreaks from ChangeLog imports.
8981         Removed purely local (and obsolete) entry.
8982
8983 Thu Apr 23 00:22:17 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8984
8985         *******************************************************************
8986         *** Released am-utils-6.0a16                                    ***
8987         *******************************************************************
8988
8989 Wed Apr 22 01:20:39 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8990
8991         * aux/macros/check_mount_style.m4: define freebsd3 mount style.
8992
8993         * aux/macros/check_mount_trap.m4: new mount trap for freebsd3.
8994
8995         * aux/macros/check_mtype_printf_type.m4,
8996         aux/macros/check_mtype_type.m4 (ac_cv_mtype_type,): freebsd3 (as
8997         of snapshot 3.0-980311-SNAP) uses char * types for mount(2), not
8998         integers, but I'll keep them as integers and do the mapping in
8999         conf/mount/mount_freebsd3.c
9000
9001         * minor new port to i386-pc-bsdi3.1.
9002
9003         * minor new port to i386-unknown-netbsd1.3.1.
9004
9005         * amd/opts.c: new option addopts:=ARG, which smartly merges ARG
9006         options with whatever the /default ones for a key are.  This
9007         allows adding or overriding /default options individual keys.
9008
9009         * amd/am_ops.c (ops_match): strdup/malloc string assigned to
9010         opt_opts because it'll get free()'d upon next use.
9011         (merge_opts): new function to merge two sets of options.
9012         (ops_match): if addopts option exist, append and merge it to the
9013         current default options.
9014
9015 Tue Apr 21 12:54:59 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9016
9017         * wire-test/wire-test.c (main): use dynamically allocated returned
9018         string with list of interfaces.
9019
9020         * amd/get_args.c (get_version_string): allocate enough space for
9021         header version string and a list of network interfaces of any
9022         length.
9023
9024         * libamu/wire.c (print_wires): return dynamically allocated string
9025         containing list of networks.  Must be dynamic because some sites
9026         had potentially dozens of network interfaces.  Patch from Matthew
9027         Crosby <mcrosby@ms.com> slightly modified.
9028
9029 Mon Apr 20 00:37:20 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9030
9031         * conf/nfs_prot/nfs_prot_irix5.h: underfine MNTTYPE_XFS because
9032         irix 5.3 does not have full header definitions for it.
9033
9034         * fsinfo/fsi_lex.l (yywrap): define yywrap if needed, and
9035         undefined it when not needed (similar to amd/conf_tok.l)
9036
9037         * hlfsd/hlfsd.h (ROOTID, SLINKID, INVALID): reduced maximum size
9038         of these to unsigned short (because uid_t on some linux systems is
9039         small).
9040
9041         * released snapshot am-utils-6.0a16s10
9042
9043         * doc/am-utils.texi (opts Option): documented resvport mount
9044         option.
9045
9046 Sun Apr 19 18:17:03 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9047
9048         * doc/am-utils.texi (-D-Option): document behavior of -D info and
9049         especially what it does to hesiod (turn on RES_DEBUG).
9050
9051         * scripts/amd.conf.5: document info debugging option.
9052
9053         * libamu/xutil.c (dbg_opt): parse info debugging option.
9054
9055         * include/am_utils.h (D_INFO): define new trace option.
9056
9057         * Makefile.am (EXTRA_DIST): include list of official mirrors in
9058         distribution.
9059
9060         * libamu/wire.c (SIZE): in the simple case, just compute
9061         sizeof(struct ifreq).
9062
9063 Sun Apr 19 16:30:35 1998  Erez Zadok  <ezk@lorien.cs.columbia.edu>
9064
9065         * amd/amd.c (daemon_mode): set a temporary secure umask(0022)
9066         before writing log file and restore it afterwards.  Patch from
9067         Donald Buczek <buczek@MPIMG-Berlin-Dahlem.MPG.DE>.
9068
9069         * amd/get_args.c (get_args):
9070
9071         * doc/am-utils.texi (-F Option), amd/amd.8: mention that amd.conf
9072         file specified by -F is always processed last.
9073
9074         * amd/amd.c (daemon_mode): do not fclose(stdout) so that the fd
9075         won't be reused.  Allows startup script to redirect stdout.  Patch
9076         from Donald Buczek <buczek@MPIMG-Berlin-Dahlem.MPG.DE>.
9077
9078         * libamu/xutil.c (switch_to_logfile): compare logfile name and
9079         syslog string with correct length.  Patch from Donald Buczek
9080         <buczek@MPIMG-Berlin-Dahlem.MPG.DE>.
9081
9082         * amd/restart.c (restart): correctly inherit existing NFS V.3
9083         mounts upon restart.  Patch from Donald Buczek
9084         <buczek@MPIMG-Berlin-Dahlem.MPG.DE>.
9085
9086 Sat Apr 18 19:01:19 1998  Erez Zadok  <ezk@lorien.cs.columbia.edu>
9087
9088         * using libtool 1.2 and automake 1.3 (with my patches).
9089
9090         * aux/macros/opt_am_cflags.m4, */Makefile.in: rename AM_CFLAGS to
9091         AMU_CFLAGS to avoid conflicts with automake-1.3.
9092
9093 Sun Apr  5 23:09:08 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9094
9095         * converted to using libtool-1.2.
9096
9097 Tue Mar 10 16:52:09 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9098
9099         * fsinfo/fsi_analyze.c (fixup_required_mount_info): replaced silly
9100         for loop (ITER) which used to run only to initialize the variable
9101         dd once and then break; with a simple assignment.
9102
9103         * hlfsd/hlfsd.h: cleanup so it compiles with Solaris
9104         /opt/SUNWspro/bin/cc, and use gid_t not int.
9105
9106         * amd/mapc.c (mapc_sync): don't dereference pointer (so it
9107         compiles with Solaris /opt/SUNWspro/bin/cc)
9108
9109 Sun Mar  8 15:54:22 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9110
9111         * aux/config.{guess,sub}: used from gcc-2.8.1.
9112
9113 Sat Mar  7 15:33:27 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9114
9115         * released snapshot am-utils-6.0a16s9
9116
9117         * INSTALL, doc/am-utils.texi (Supported Platforms): updated names
9118         based on new output of new config.guess.
9119
9120         * aux/config.{sub,guess}: used newer versions from gcc-2.8.0.
9121
9122         * amd/amd.8,doc/am-utils.texi: document correct usage of default
9123         /etc/amd.conf file.
9124
9125         * fixmount/fixmount.c (inetresport,privsock): use some more
9126         portable code from amq/amq.c.
9127
9128         * amd/get_args.c (get_args): use default /etc/amd.conf file only
9129         if no arguments had been passed to amd.
9130
9131         * fixmount/fixmount.c (clnt_create_timeout): use tli/socket code
9132         ala amq/amq.c so that fixmount will work on both types of systems.
9133
9134         * amq/amq.c (main): do no close tcp socket before running udp try,
9135         because we're not sure if it was opened at all.
9136
9137         * mips-dec-ultrix* port merged in and cleaned up.
9138
9139         * aux/configure.in: up minor shared library revision number, since
9140         it has changed enough.
9141
9142         * hlfsd/hlfsd.c (main): don't check for overlay mount option here,
9143         as it is now done in compute_nfs_args().  Remove ultrix specific
9144         code also because it was moved to compute_nfs_args().
9145
9146         * conf/mount/mount_svr4.c: removed DEBUG_MOUNT_SVR4 code, now that
9147         we have more generic code in print_nfs_args().
9148
9149         * libamu/mount_fs.c (print_nfs_args): print maxlen of
9150         nfs_args.addr, and also syncaddr (which is mostly NULL).  Print
9151         struct knetconfig from nfs_args->knconf.
9152
9153         * aux/macros/mount_headers.m4 (define): do not check for ufs/cdfs
9154         headers here, but in try_compile_anyfs.m4.
9155
9156         * aux/macros/type_ufs_args.m4: move test for struct ufs_specific
9157         (for ultrix) here from its own macro.
9158
9159         * aux/macros/type_cdfs_args.m4: move test for struct iso_specific
9160         (for ultrix) here from its own macro.
9161
9162         * amd/ops_nfs.c (mount_nfs_fh): no need to run code again checking
9163         for overlay mount option.  Remove code which checks for overlay
9164         option, as it is now done in compute_nfs_args().
9165
9166         * libamu/mount_fs.c (compute_mount_flags): move here code which
9167         checks for overlay mount option which was in amd/amfs_toplvl.c:
9168         mount_amfs_toplvl().
9169
9170 Wed Feb  7 15:35:51 1998  Rainer Orth  <ro@xayide.TechFak.Uni-Bielefeld.DE>
9171
9172         * The following are Rainer's ChangeLog entries for his ultrix
9173         port, added manually. -Erez.
9174
9175         * merged Ultrix port with am-utils 6.0 a16s5: amd/ops_afs.c
9176         (mount_toplvl) -> amd/amfs_toplvl.c (mount_amfs_toplvl)
9177
9178         * include/am_defs.h: include cdfs specific mount headers
9179         avoid duplication definition of gt_names[] in <sys/fs_types.h> (Ultrix)
9180
9181         * include/am_compat.h: define several mount options corresponding
9182         to mount flags: pgthresh, hard (nfs), defperm, nodefperm,
9183         noversion, rrip (cdfs), nocache, quota, sync (generic) removed
9184         duplicate MNTTAB_OPT_RO definition
9185
9186         * aux/macros/try_compile_anyfs.m4: include Ultrix specific
9187         ufs/cdfs mount headers
9188
9189         * aux/macros/mount_headers.m4: include several Ultrix/Digital UNIX
9190         specific mount headers
9191
9192         * aux/macros/check_{fs_mntent, mount_type}.m4: check for GT_*
9193         mount types in mount headers (Ultrix)
9194
9195         * aux/configure.in: Ultrix/Digital UNIX specific checks: new
9196         headers, mount structures and fields, filesystem and mount types,
9197         mount flags
9198
9199         * aux/acconfig.h: placeholders for new mount options: quota
9200         (generic), ro (nfs), defperm, nodefperm, noversion, rrip (cdfs)
9201         cdfs, nfs, ufs mount structure fields new ufs, cdfs mount
9202         structures
9203
9204         * amd/ops_ufs.c (mount_ufs): Ultrix stores generic mount flags in
9205         ufs_args.ufs_flags and has ufs specific pgthresh option
9206
9207         * amd/ops_cdfs.c (mount_cdfs): handle Ultrix/Digital UNIX specific
9208         CDFS mount flags and options
9209
9210         * amd/ops_afs.c (mount_toplvl), amd/ops_nfs.c (mount_nfs_fh),
9211         hlfsd/hlfsd.c (main): store generic mount flags in
9212         nfs_args.gfs_flags, handle separate NFS ro flag
9213
9214         * aux/macros/{check_mnt2_cdfs_opt, struct_iso_specific,
9215         struct_ufs_specific}.m4: new files; check for Ultrix specific
9216         mount structures
9217
9218         * conf/trap/trap_ultrix.h: arg 3 to mount(2) is rwflag
9219
9220         * aux/macros/type_auth_create_gidlist.m4 (ultrix*):
9221         AUTH_CREATE_GIDLIST_TYPE is int (not short == gid_t) from a
9222         comment in <rpc/auth.h>
9223
9224         * include/am_defs.h: #define KERNEL to avoid definition of
9225         gt_names[] conf/mtab/mtab_ultrix.c: #include <sys/fs_types> before
9226         <config.h> to force single definition here
9227
9228         * libamu/mount_fs.c (compute_nfs_args): Ultrix support for
9229         nfs_args.gfs_flags moved to callers store mount options in
9230         nap->optstr
9231
9232         * include/am_defs.h: fix _am_mntent mnt_{type, opts} field
9233         descriptions
9234
9235         * aux/macros/mount_headers.m4, aux/macros/try_compile_nfs.m4:
9236         include <rpc/rpc.h> before AMU_NFS_PROTOCOL_HEADER for svc_req
9237         definition in prototypes
9238
9239         * aux/macros/mount_headers.m4: include <sys/errno.h> before
9240         AMU_NFS_PROTOCOL_HEADER: <nfs/nfs.h> needs it for NFSERR_*
9241         definitions
9242
9243         * conf/nfs_prot/nfs_prot_ultrix.h: new file
9244
9245         * aux/macros/check_nfs_prot_headers.m4: use nfs_prot_ultrix.h
9246
9247         * aux/macros/mount_headers.m4, aux/macros/try_compile_nfs.m4,
9248         aux/macros/try_compile_rpc.m4, include/am_defs.h: avoid multiple
9249         inclusion of <rpc/xdr.h>
9250
9251 Sat Mar  7 13:56:05 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9252
9253         * aux/configure.in: save state of config.cache and confdefs.h
9254         (as dbgcf.h) at various points of the configure.
9255
9256         * aux/macros/save_state.m4: new macro to save state of configure,
9257         esp. useful in long ones.  Saves confdefs.h and write $ac_cv_*
9258         cache variables that are known so far.
9259
9260         * released snapshot am-utils-6.0a16s8
9261
9262 1998-03-06  Erez Zadok  <ezk@mercer.psl.cs.columbia.edu>
9263
9264         * fsinfo/fsi_lex.l,amd/conf_tok.l: define ECHO after undefining
9265         it, but only for flex.
9266
9267 Fri Mar  6 17:23:17 1998  Erez Zadok  <ezk@chestnut.mcl.cs.columbia.edu>
9268
9269         * hlfsd/homedir.c (plt_print): change pathname of hlfsd dump file
9270         to /usr/tmp/hlfsd.dump.XXXXXX, and use a safe method (if possible)
9271         to write the dump file.
9272
9273         * doc/am-utils.texi,amd/opts.c: rename all references to nomadic
9274         functions to boolean functions, which is what they really are.
9275
9276         * aux/configure.in: don't look for strcasecmp in libucb at all,
9277         but rather complete it from libamu/strcasecmp.c as needed.
9278
9279 Fri Mar  6 03:29:20 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9280
9281         * conf/nfs_prot/nfs_prot_osf4.h: avoid conflicts with Irix's EFS.
9282
9283         * libamu/wire.c (getwire): fix for 0.0.0.0 loopback on SunOS 3.X
9284         which defines IFF_ROUTE instead of IFF_LOOPBACK.  Patch from Tom
9285         Schmidt <tschmidt@micron.com>.
9286
9287         * released snapshot am-utils-6.0a16s7
9288
9289         * conf/nfs_prot/nfs_prot_hpux11.h: a first working port of amd to
9290         hppa1.0-hp-hpux11.00.tgz.
9291
9292 Thu Mar  5 21:59:03 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9293
9294         * converted all sources to use mntent field names, and map mnttab
9295         field names to mntent's.
9296
9297         * include/am_defs.h (mnt_special): map struct mnttab field names
9298         to struct mntent field names.
9299
9300         * aux/macros/check_mount_trap.m4: hpux11's mount trap style is
9301         identical to svr4/solaris2.
9302
9303         * aux/macros/check_mount_style.m4: hpux11's mount style is
9304         identical to svr4/solaris2.
9305
9306         * aux/macros/check_network_transport_type.m4: hpux11 is a TLI
9307         system!
9308
9309         * aux/macros/check_nfs_sa_dref.m4: hpux11's NFS host address
9310         dereferencing style is same as svr4.
9311
9312         * aux/macros/check_nfs_fh_dref.m4: hpux11's NFS file fh
9313         dereferencing style is same as svr4.
9314
9315         * conf/transp/transp_tli.c (create_nfs_service): if failed to
9316         getnetconfigent() of ticlts, then try udp (hpux11).
9317
9318         * conf/nfs_prot/nfs_prot_hpux11.h: added correct definitions for
9319         struct nfs_args, nfs_fh, and NFSMNT_* flags, taken from solaris
9320         2.5.1 (HP used them).
9321
9322         * amd/rpc_fwd.c (fwd_init): don't use O_NDELAY for t_open()
9323         because hpux11 doesn't like it. if t_open failed, print error
9324         based on t_errlist, not sys_errlist.
9325
9326 Wed Mar  4 22:01:55 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9327
9328         * doc/am-utils.texi: lots of documentation fixes from Rainer Orth
9329         <ro@TechFak.Uni-Bielefeld.DE>.
9330
9331 Sat Feb 28 22:16:35 1998  Erez Zadok  <ezk@kosh.cs.columbia.edu>
9332
9333         * fsinfo/fsi_lex.l: undefine ECHO again, so it doesn't get used
9334         later.
9335
9336         * include/am_defs.h: defined the extern for ualarm() if it isn't
9337         found, regardless if the function isn't found in standard
9338         libraries, because otherwise libamu will include it.
9339
9340 1998-02-28  Erez Zadok (per Ron Snyder)  <ezk@short.cvo.roguewave.com>
9341
9342         * initial port to hpux-11 completed.  Compiles cleanly, but
9343         probably does not work, because of missing NFS V.2/3 headers.
9344
9345         * amd/conf_tok.l: cast yytext to char* when passed to strlen and
9346         strdup, for hpux-11's ansi-cc compiler.
9347
9348         * include/am_utils.h: renamed all xfree() to XFREE() to avoid
9349         conflict with hpux-11's system headers.  Also move (voidp) cast
9350         from sources to inside the macro itself.
9351
9352 Sat Feb 28 13:44:21 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9353
9354         * released snapshot am-utils-6.0a16s6
9355
9356         * amd/info_nis.c (nis_isup): new function to test if NIS is up
9357         without hanging amd.  Used to ensure that amd does not clear the
9358         maps when the expiration period arrived, if the service is down.
9359         Otherwise it would be left with empty maps.  It is better to stay
9360         with possibly old information than none at all.
9361
9362         * amd/mapc.c (mapc_sync): check to see if map service is up.
9363
9364 Tue Feb 24 02:19:42 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9365
9366         * aux/macros/check_lib2.m4 (AC_CHECK_LIB2): fix macro so it
9367         includes auxiliary library only if needed.
9368
9369 1998-02-22  Erez Zadok  <ezk@mercer.psl.cs.columbia.edu>
9370
9371         * amd/conf_tok.l: undefine ECHO again, so it doesn't get used
9372         later.
9373
9374 Sun Feb 22 01:41:08 1998  Erez Zadok  <ezk@zen.cs.columbia.edu>
9375
9376         * conf/nfs_prot/nfs_prot_osf2.h: port to alpha-dec-osf2.1
9377         completed.
9378
9379         * conf/mtab/mtab_osf.c (mnt_dup): not all OSF have NFS3.
9380
9381 Sat Feb 21 19:45:48 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9382
9383         * doc/am-utils.texi (Network Host Filesystem): correct example for
9384         type:=host map.
9385
9386         * aux/macros/os_cflags.m4: only osf4 should compile with
9387         -D_SOCKADDR_LEN.
9388
9389         * aux/macros/check_nfs_prot_headers.m4: distinguish between OSF2
9390         and OSF4.
9391
9392         * BUGS: include a new file listing known bugs.
9393
9394 Sat Feb 21 03:50:48 1998  Erez Zadok  <ezk@mercer.psl.cs.columbia.edu>
9395
9396         * conf/nfs_prot/nfs_prot_linux.h: turn DES off on all linux
9397         versions.
9398
9399         * aux/macros/type_recvfrom_fromlen.m4: linux alpha should use
9400         size_t for recvfrom fromlen arg.
9401
9402 Sat Feb 21 03:33:59 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9403
9404         * scripts/ctl-hlfsd.in: turn -D fork so primary process never
9405         hangs.
9406
9407 Sat Feb 21 02:45:51 1998  Erez Zadok  <ezk@mercer.psl.cs.columbia.edu>
9408
9409         * include/am_defs.h: don't include <sys/stat.h> and
9410         <linux/stat.h>, just remaining definitions in <statbuf.h>
9411
9412 Thu Jan 29 00:44:28 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9413
9414         * released snapshot am-utils-6.0a16s5
9415
9416         * conf/mount/mount_irix6.c (mount_irix): pass {u,e,x}fs_args to
9417         mount(2).
9418
9419         * check for <sys/fs/xfs_clnt.h> and include it when needed.
9420
9421         * conf/mount/{mount_irix5.c,mount_irix6.c} (mount_irix): recognize
9422         efs and xfs separately from "ufs".
9423
9424         * amd/{ops_xfs.c,ops_efs.c}: new support for irix xfs/efs.
9425
9426         * aux/configure.in: look for irix efs and xfs file systems.
9427
9428         * scripts/amd.conf.5: new unmount_on_exit option documented.
9429
9430         * doc/am-utils.texi (unmount_on_exit): new option documented.
9431
9432         * amd/conf.c (gopt_unmount_on_exit): new function to handle new
9433         amd.conf option.
9434
9435         * amd/map.c (umount_exported): if global amd.conf flag
9436         unmount_on_exit is on, then try to unmount all mounted (or
9437         restartable) file systems.
9438
9439         * amd/amd.c: if print_pid option is on, then normally print it to
9440         stdout.  If also pid_file is specified, then print the process ID
9441         into that file.
9442
9443         * amd/get_args.c (get_args): print correct -l option depending if
9444         system supports syslog and/or syslog facilities.  Patch from
9445         Tom Schmidt <tschmidt@micron.com>.
9446
9447         * doc/am-utils.texi (opts Option): updates for documentation for
9448         new cdfs options defperm, nodefperm, noversion, rrip.
9449
9450         * amd/ops_cdfs.c (mount_cdfs): support cdfs options defperm,
9451         nodefperm, noversion, rrip.
9452
9453         * conf/nfs_prot/nfs_prot_osf.h: need to look at <cdfs/cdfsmount.h>
9454         on osf.
9455
9456         * aux/macros/{expand_cpp_hex.m4, expand_cpp_int.m4,
9457         expand_cpp_string.m4}: use #error to make failed compilations
9458         fail faster, rather than have the program fail during a run.
9459
9460         * include/am_compat.h: added a few new cdfs options: rrip,
9461         noversion, defperm, and nodefperm (used in OSF).
9462
9463 Wed Jan 28 20:24:09 1998  Erez Zadok  <ezk@lorien.cs.columbia.edu>
9464
9465         * released snapshot am-utils-6.0a16s4
9466
9467         * doc/am-utils.texi (Global Parameters): update manual for new
9468         amd.conf global variable hesiod_base.
9469
9470         * scripts/amd.conf.5: update man page for new amd.conf global
9471         variable hesiod_base.
9472
9473         * amd/get_args.c (get_args): use /etc/amd.conf file if exists by
9474         default, else try command line options.  Patch from Randall
9475         S. Winchester <rsw@Glue.umd.edu>.
9476
9477 Wed Jan 28 12:20:56 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9478
9479         * amd/info_hesiod.c (hesiod_search), amd/conf.c
9480         (gopt_hesiod_base), amd/amd.h, amd/amd.c (init_global_options):
9481         included patch from Randall S. Winchester <rsw@Glue.umd.edu>, to
9482         support a hesiod base name in the amd.conf file.
9483
9484         * doc/am-utils.texi (pid_file Parameter): document new global
9485         amd.conf parameter.
9486
9487         * scripts/amd.conf.5: document new global option pid_file.
9488
9489         * amd/amd.c (daemon_mode): if cannot open pid_file, continue to
9490         run, but print error message.
9491
9492         * amd/conf.c (gopt_pid_file), amd/amd.h, amd/amd.c (daemon_mode,
9493         init_global_options): Included patch from Randall S. Winchester
9494         <rsw@Glue.umd.edu>, to support pid files in the amd.conf file.
9495
9496         * amd/get_args.c (get_args): correct usage info on amd -t.
9497
9498         * amd/*.c: massive file name and symbol name changes.  All amd
9499         file systems files and symbols are prefix with amfs_*.  Now using
9500         real name of file system: amfs_auto instead of afs, amfs_inherit
9501         instead of ifs, amfs_linkx instead of sfsx, etc.  This will enable
9502         clear distinction between amd file system and generic ones like
9503         nfs/ufs/pcfs/hsfs.  Also, now we can implement true afs (Andrew
9504         f/s) and DFS (Distributed f/s).
9505
9506         * amd/amfs_union.c: unionfs for amd is always defined, no need to
9507         #ifdef it.
9508
9509 Mon Jan 26 16:51:38 1998  Erez Zadok  <ezk@chestnut.mcl.cs.columbia.edu>
9510
9511         * libamu/mount_fs.c (compute_nfs_args): set 'noconn' NFS option on
9512         or off, based on the particular quirks of the OS in question.
9513
9514         * aux/macros/check_nfs_socket_connection.m4: new macro to set the
9515         correct wait of handling un/connected NFS sockets.
9516
9517         * scripts/wait4amd.in: use rlogin instead of rsh.
9518
9519         * amd/am_ops.c (ops_showfstypes): when showing F/S types in amd
9520         -v, always show "nfs3" for NFS V.3.
9521
9522 1998-01-25  Erez Zadok  <ezk@snoopy.cs.columbia.edu>
9523
9524         * lots of small fixes for solaris 2.6, since gcc 2.8.0 -Wall gets
9525         more picky than 2.7.2.3 did.
9526
9527 1998-01-24  Erez Zadok  <ezk@snoopy.cs.columbia.edu>
9528
9529         * include/am_utils.h (dlog): amuDebug macros reduced to shorter
9530         forms.
9531
9532 Fri Jan 23 18:38:30 1998  Erez Zadok  <ezk@goat.mcl.cs.columbia.edu>
9533
9534         * released snapshot am-utils-6.0a16s3
9535
9536         * include/am_defs.h: on Solaris 2.6, <sys/varargs.h> is included
9537         in <sys/fs/autofs.h> but since stdargs.h is used, and varargs.h
9538         must not, fake a definition for varargs.
9539
9540 Fri Jan 16 10:16:40 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9541
9542         * README: show how to configure in additional support such as
9543         hesiod using various --enable-* flags.
9544
9545 Wed Jan 14 15:13:02 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9546
9547         * aux/configure.in: look for strcasecmp(), and replace it if not
9548         available.
9549
9550         * amd/ops_nfsl.c (nfsl_match): host names should be compared using
9551         case insensitive.
9552
9553         * amd/opts.c: for each map variable, define if the comparison
9554         needs to be done case insensitive.
9555
9556         * include/am_utils.h (STRCEQ): a new macro to use strcasecmp().
9557         Patch from Thomas Richter <richter@chemie.fu-berlin.de>
9558
9559 1998-01-14  Erez Zadok  <ezk@irt.cs.columbia.edu>
9560
9561         * aux/configure.in: look for "isofs" as a possible mount type for
9562         cdfs (RedHat Linux).
9563
9564 Wed Jan 14 02:07:05 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9565
9566         * conf/mount/mount_linux.c (parse_opts): don't look for cdfs mount
9567         type if not defined.
9568
9569         * conf/nfs_prot/nfs_prot_linux.h: don't define __FD_* macros if
9570         already defined.
9571
9572         * aux/configure.in: look for ext2fs before ufs, b/c some linux
9573         have both.
9574
9575 Mon Jan 12 15:43:20 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9576
9577         * Makefile.am (snapshot): allow me to install snapshots into the
9578         ftp directory.
9579
9580         * scripts/ctl-hlfsd.in: don't turn on -D mem by default.
9581
9582         * amd/get_args.c (get_args): minor bug in output of amd -H.
9583
9584 Mon Jan 12 03:05:06 1998  Erez Zadok  <ezk@chestnut.mcl.cs.columbia.edu>
9585
9586         *******************************************************************
9587         *** Released am-utils-6.0a15                                    ***
9588         *******************************************************************
9589
9590 Sun Jan 11 15:06:34 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9591
9592         * amd/conf.c (*_browsable_dirs): allow specifying
9593         browsable_dirs=full, which will print *all* entries (other than
9594         /default), including  those with '*' and '/' characters.
9595
9596         * amd/info_file.c (MAX_LINE_LEN): up maximum readdir chain length
9597         to 1500.
9598
9599         * doc/am-utils.texi: fixed reversed documentation for NFS mount
9600         options vers and proto.
9601
9602         * doc/Makefile.am (install-html): separate target just for
9603         installing html files.  Another new target "alldocs" is just for
9604         installing all files needed for the am-utils home page.
9605
9606         * scripts/amd.conf-sample: updated example for log_file.
9607
9608         * scripts/amd.conf.5: updated for new way to declare new syslog
9609         facility in the log_file option.
9610
9611         * amd/amd.8: updated for new way to declare new syslog facility in
9612         the -l option.
9613
9614         * libamu/xutil.c (get_syslog_facility): allow users to specify the
9615         syslog facility as an appended string to the log device.  Ex. amd
9616         -l syslog:local7 will use LOG_LOCAL7, while the older -l syslog
9617         will use the default LOG_DAEMON facility.
9618
9619         * amd/get_args.c (get_args): updated new syntax for amd -l
9620         syslog:facility.
9621
9622 Thu Jan  8 04:05:10 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9623
9624         * aux/macros/host_macros.m4: don't confuse sun3 (sparc) with sun3
9625         (intel).
9626
9627         * libamu/wire.c (print_wires): bug fix.  Nullify output buffer
9628         before appending to it, on systems with two or more network
9629         interfaces.
9630
9631         * conf/nfs_prot/nfs_prot_sunos5_3.h: add missing definition for
9632         the mntent for cachefs.
9633
9634         * include/am_defs.h: external definition for strstr() should use
9635         const for both arguments.
9636
9637         * aux/configure.in: add extern definitions for getwd() if missing.
9638
9639         * include/am_defs.h: define the extern for strdup() even if the
9640         function does not exist, for it will be filled in by
9641         libamu/strdup.c
9642
9643         * amq/pawd.c (cluster_server): don't use getccent() if the extern
9644         for it isn't there.  On hpux 10.20, the function is in libc, but
9645         <cluster.h> and struct cct_entry do not exist.
9646
9647         * aux/configure.in: check for an extern for getccent() b/c some
9648         hpux systems don't have it (hpux 10.20).
9649
9650 Wed Jan  7 00:09:19 1998  Erez Zadok  <ezk@lorien.cs.columbia.edu>
9651
9652         * doc/am-utils.texi (Amq -T option): manual documentation updates
9653         for new amq options -T/-U.
9654
9655         * amq/amq.8: updated man page for new amq options -T/-U.
9656
9657         * amq/amq.c: two new switches to amq. -U will contact amd using
9658         UDP only.  -T will use TCP only.  Normally amq will try TCP and
9659         if that failed, will try UDP.
9660
9661         * doc/am-utils.texi (pawd): manual documentation for pawd.
9662
9663         * amq/pawd.1: new man page for pawd.
9664
9665 Tue Jan  6 04:21:59 1998  Erez Zadok  <ezk@lorien.cs.columbia.edu>
9666
9667         * amq/pawd.c: a new program, Print Automounter Working Directory,
9668         to print the proper pathname of the cwd or any other pathname,
9669         adjusted for automounter paths, while avoiding mount points.
9670
9671         * aux/macros/localconfig.m4: trivial support for am-utils
9672         maintainers to adjust some of the configuration of am-utils after
9673         it has been auto-configured by putting whatever definitions you
9674         wish in a file called localconfig.h, located in the top build
9675         directory (the same one where config.h is created for you).
9676
9677         * doc/am-utils.texi (Caching Filesystem): updated documents for
9678         cachefs file system.
9679
9680         * amd/ops_cachefs.c: initial cachefs support, for solaris.
9681         type:=cachefs, requires cachedir:=/cache/dir/name to be defined
9682         and initialized with cfsadmin -c.  $rfs is backdir to be cached
9683         from, and $fs is the local mount point of the cachefs.
9684
9685         * conf/mount/mount_svr4.c (mount_svr4): support mounting of
9686         cachefs file systems.
9687
9688         * amd/ops_cdfs.c: cdfs should be named 'cdfs', not whatever the
9689         mnttab type is.
9690
9691 Mon Jan  5 23:22:49 1998  Erez Zadok  <ezk@lorien.cs.columbia.edu>
9692
9693         * amd/opts.c: added support for new variable $cachedir.
9694
9695         * include/am_utils.h: added opt_cachedir field to struct am_opts.
9696
9697 Sat Jan  3 01:43:57 1998  Erez Zadok  <ezk@lorien.cs.columbia.edu>
9698
9699         * amd/ops_nfsl.c (nfsl_ffserver, nfsl_match): also check if the
9700         local hostname does not match $rhost, and if so, also assume
9701         type:=nfs.
9702
9703 Fri Jan  2 01:00:40 1998  Erez Zadok  <ezk@lorien.cs.columbia.edu>
9704
9705         * updated all source files to add 1998 as a copyright year.
9706
9707         * amd/ops_nfsl.c: new amd meta file system "type:=nfsl".  Behaves
9708         like type:=linkx if the pathname denoted by $fs exists, and like
9709         type:=nfs if it does not.  A convenient shortcut for the most
9710         popular amd map entry.
9711
9712         * amd/amd.c (main): amd should chdir to / before starting, to
9713         avoid hanging on other NFS server if started elsewhere.
9714
9715         * amd/ops_TEMPLATE.c: added an empty template file for developers
9716         who wish to write new amd pseudo file systems.
9717
9718 Thu Jan  1 00:27:28 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9719
9720         * hlfsd/homedir.c (plt_init): make function exported, to save on
9721         the unnecessary init_homedir() function which was removed.
9722         (table_add): don't use xmalloc() when you can use strdup()
9723         instead.
9724
9725 Thu Jan  1 00:15:58 1998  Erez Zadok  <ezk@chestnut.mcl.cs.columbia.edu>
9726
9727         * hlfsd/homedir.c (hlfsd_endpwent): Don't actually run this
9728         because we will be making more passwd calls afterwards.  On
9729         Solaris 2.5.1, making getpwent() calls after calling endpwent()
9730         results in a memory leak! (and no, even Purify didn't detect
9731         it...)
9732
9733 Tue Dec 23 18:23:47 1997  Erez Zadok  <ezk@chestnut.mcl.cs.columbia.edu>
9734
9735         * hlfsd/hlfsd.c (main): Bug fix.  Don't try to free() an
9736         automatically allocated address.
9737
9738         * amd/ops_afs.c (mount_toplvl): Bug fix.  Don't try to free() an
9739         automatically allocated address.
9740
9741         * ALL SOURCES: change every direct call to free() to xfree(), so
9742         it can be mapped to the right debugging function as needed.
9743
9744         * include/am_utils.h: new free() policy.  If debugging memory,
9745         call dxfree(), which will print the file name and line number
9746         where the free occurred and the pointer address.  if only regular
9747         debugging, then free() and reset  the pointer to NULL so it cannot
9748         be used afterwards inadvertently.  If not DEBUG at all, then just
9749         run free().  Three different #define macros set the right mapping.
9750
9751         * libamu/xutil.c (dxfree): renamed function to dxfree(), so it can
9752         be called only when debugging the memory.
9753
9754 Tue Dec 23 04:24:28 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9755
9756         * wire-test/wire-test.c (main): use xmalloc() not malloc().
9757
9758         * conf/transp/transp_tli.c (get_knetconfig): use xzalloc() not
9759         calloc().
9760
9761         * conf/mtab/mtab_mach3.c (convert): use xzalloc() not calloc().
9762
9763         * conf/mount/mount_linux.c (parse_opts): use xmalloc() not
9764         malloc().
9765
9766         * amd/info_ldap.c: use xmalloc() not malloc().
9767
9768         * libamu/xutil.c (xzalloc): new function to allocate memory and
9769         zero its bytes.
9770
9771         * amq/amq.c: amq does not need its own definition of xfree().
9772
9773         * aux/macros/opt_debug.m4: if used --enable-debug=mem, then also
9774         look for function malloc_verify() in libmapmalloc.a, and function
9775         mallinfo() in libmalloc.
9776
9777         * libamu/xutil.c (checkup_mem): do not use mallinfo field
9778         uordbytes, because it does not always exist.  Rather, compute it
9779         from other fields..
9780
9781         * include/am_utils.h: add external definition to xfree() function
9782         used when debugging memory references.
9783
9784 Mon Dec 22 03:01:30 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9785
9786         * amd/ops_afs.c (afs_readdir_browsable): reduce the number of
9787         bytes heuristically computed to be returned to the kernel.
9788         Otherwise browsable_dirs fails on OpenBSD 2.2.
9789
9790         * amd/mntfs.c (uninit_mntfs): bug fix.  Moved freeing of
9791         mf_private field to AFTER it gets used.
9792
9793 Sat Dec 20 00:51:21 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9794
9795         * amd/ops_host.c (host_umounted): don't use clnt_spcreateerror()
9796         on systems that don't support it.
9797
9798         * include/am_defs.h: add missing extern definition for free().
9799
9800         * aux/configure.in: check for external definition for free().
9801
9802         * libamu/Makefile.am: add to comment a mention of strstr as an
9803         optional function.
9804
9805         * libamu/xutil.c (switch_to_logfile): use openlog() options only
9806         if they exist.
9807
9808         * conf/transp/transp_sockets.c (get_nfs_version): don't use
9809         clnt_spcreateerror if it does not exist.
9810
9811         * aux/configure.in: check for missing functions clnt_create and
9812         clnt_spcreateerror.  Check for missing strstr, and complete
9813         its code.  Check for missing external definition for strstr.
9814
9815         * aux/macros/host_macros.m4: normalize sun3* names.
9816
9817         * Makefile.am: updates for new sunos3 files distributed.
9818
9819         * conf/nfs_prot/nfs_prot_sunos3.h: new file.
9820
9821         * conf/fh_dref/fh_dref_sunos3.h: new file.
9822
9823         * aux/macros/check_nfs_prot_headers.m4: added sunos3 case.
9824
9825         * aux/macros/check_nfs_fh_dref.m4: added sunos3 case.
9826
9827         * doc/am-utils.texi (wire Selector Variable): updated manual for
9828         adjusted variables wire, network, and netnumber, all using the
9829         in_network() function.
9830
9831 Fri Dec 19 04:37:36 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9832
9833         * amd/opts.c: allow options to be processed by executing arbitrary
9834         functions.  Converted wire, network, and netnumber all to use the
9835         nomadic function in_network.  So from now on they perform a match
9836         against all networks, not just primary.
9837
9838         * initial port to alpha-unknown-linux-gnu, probably works, but
9839         untested yet.
9840
9841         * conf/nfs_prot/nfs_prot_linux.h: add special definitions for
9842         __FD_* macros which for som strange reason do not get included
9843         from <selectbits.h> on redhat alpha linux.  Also turn off usage of
9844         <rpc/des_auth.h> because it is incomplete on the same systems.
9845
9846         * hlfsd/homedir.c (table_add): cast uid field to int, for
9847         comparison.
9848
9849         * include/am_defs.h: more coflicts with redhat alpha linux
9850         "resolved".
9851
9852         * aux/macros/{mount_headers,try_compile_anyfs,try_compile_nfs}.m4:
9853         There's a conflict of definitions on redhat alpha linux between
9854         <netinet/in.h> and <linux/fs.h> which must be avoided.
9855
9856         * aux/configure.in: check for <socketbits.h>, which is in use on
9857         redhat alpha linux.
9858
9859         * doc/am-utils.texi (Selectors): added documentation to describe
9860         the new "!" (negated) nomadic functions.
9861
9862         * amd/opts.c (f_in_network): print debugging info that is correct,
9863         rather than saying that any ARG is on a local network.
9864         (eval_opts): added support for negating nomadic functions, by
9865         prepending "!" to their name.  Example, !exists(/foo/bar).
9866
9867 Thu Dec 18 20:57:19 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9868
9869         * include/am_compat.h: ensure that all NFS3 systems have the mount
9870         table entries (and amd opts switches) "proto" and "vers".
9871
9872         * hlfsd/homedir.c (table_add): added some debugging info to try
9873         and track down a serious memory leak in hlfsd.
9874
9875 1997-12-18  Erez Zadok  <ezk@t-rex.mcl.cs.columbia.edu>
9876
9877         * libamu/mount_fs.c (compute_nfs_args): OpenBSD 2.2 requires that
9878         you do NOT set the noconn option, and use connected sockets
9879         always.  So I'm now forced not to set it at all, and have the user
9880         specify it as "conn" or "noconn" in their /default entry.  Argh...
9881         Finally, it looks as if OpenBSD 2.2's NFS 3 implementation may be
9882         buggy (TCP hangs with "short receive" kernel errors).  I'd better
9883         wait until they get it working in their version of the automounter
9884         first.  So I'm putting the "noconn" option back.
9885
9886 Thu Dec 18 02:39:39 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9887
9888         * libamu/mount_fs.c (compute_nfs_args): use maxgrps option and set
9889         nfs_args field maxgrouplist accordingly.
9890
9891         * include/am_compat.h (MNTTAB_OPT_MAXGROUPS): complete definition
9892         for mount table entry for maxgroups based on NFS mount option
9893         maxgrp.
9894
9895         * aux/configure.in: put back testing for NFS mount option
9896         "maxgrps".  Added test for mount table entry "maxgroups".
9897
9898         * libamu/mount_fs.c (compute_nfs_args): perform more careful tests
9899         on nfs_proto, because it could be NULL.
9900
9901         * doc/am-utils.texi (Selectors): added example of in_network()
9902         selector.
9903
9904         * aux/macros/check_hide_mount_type.m4: all hpux versions,
9905         including 9.x, should use "ignore" as the mount type to hide from
9906         amd.
9907
9908 Wed Dec 17 13:09:21 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9909
9910         * include/am_utils.h (NSTREQ): use new macro instead of strncmp()
9911         every where in the sources.
9912
9913 Wed Dec 17 01:15:01 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
9914
9915         * libamu/mount_fs.c (print_nfs_args): if -D trace is on, will
9916         print as much info that is given in struct nfs_args as possible.
9917         useful for detecting internal flags and options, as well as the
9918         file handle used.
9919
9920         * scripts/ctl-amd.in: look for amd.conf file in ${prefix}/etc
9921         after /etc and before /etc/local.
9922
9923 Tue Dec 16 18:51:36 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9924
9925         * aux/configure.in, libamu/Makefile.am: added support for linking
9926         with specific versions of libamu.  Upped shared library version of
9927         libamu to 1 (libamu.so.1.0.0)
9928
9929         * include/am_defs.h: added external definition for mkstemp() as
9930         needed.
9931
9932         * minor new port to i386-unknown-netbsd1.3 (BETA version of
9933         netbsd).
9934
9935         * aux/config.guess: don't leave a trailing '.' on the system name
9936         for NetBSD-1.3_BETA and similarly for OpenBSD.
9937
9938         * conf/nfs_prot/nfs_prot_netbsd1_3.h: new header for the slight
9939         differences in ypall calling conventions.
9940
9941         * mk-amd-map/mk-amd-map.c (main): use mkstemp() whenever possible
9942         in preference over mktemp(), b/c it is more secure.
9943
9944         * aux/configure.in: check for mkstemp(), a more secure version of
9945         mktemp().
9946
9947 Mon Dec 15 02:32:14 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9948
9949         * amd/ops_nfs.c (mount_nfs_fh): Systems that include the mount
9950         table "vers" option generally do not set the mnttab entry to
9951         "nfs3", but to "nfs" and then they set "vers=3".  Setting it to
9952         "nfs3" works, but it may break some things like "df -t nfs" and
9953         the "quota" program (esp. on Solaris and Irix).  So on those
9954         systems, set it to "nfs".
9955
9956 Sat Dec 13 01:36:27 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9957
9958         * doc/am-utils.texi (Distrib): updates for new ports, location of
9959         am-utils' home page, and URL cross references (now supported by my
9960         version of texi2html).
9961
9962         * aux/macros/check_mtype_type.m4: also use string type for file
9963         system mount types under nextstep for mount(2).
9964
9965         * aux/macros/check_mtype_printf_type.m4}: nextstep can handle both
9966         integer and string types for file system mount types in mount(2),
9967         but it is better to use string types.
9968
9969         * conf/nfs_prot/nfs_prot_nextstep.h: set emum nfsstat's NFS_OK to
9970         0, not 1!  Otherwise, all NFS calls (esp. mount) return errno 1
9971         (EPERM) instead of 0 (OK).  Fixes m68k-next-nextstep3 which now
9972         works.
9973
9974         * conf/nfs_prot/nfs_prot_bsdi2.h: set emum nfsstat's NFS_OK to 0,
9975         not 1!  Otherwise, all NFS calls (esp. mount) return errno 1
9976         (EPERM) instead of 0 (OK).
9977
9978         * libamu/xdr_func.c (xdr_*): add debugging calls that are optioned
9979         by -D trace (protocol trace).
9980
9981 1997-12-11  Erez Zadok  <ezk@bach.cs.columbia.edu>
9982
9983         * A.m68k-next-nextstep3/amu_nfs_prot.h: define missing S_ISDIR
9984         macro based on existence on others, and include <sys/stat.h>.
9985
9986 Thu Dec 11 14:14:38 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9987
9988         * aux/macros/try_compile_nfs.m4 (AC_TRY_COMPILE): turn off
9989         inclusion of <nfs/nfs_mount.h> which only affects nextstep3, on
9990         which this header is broken (it tries to include non-existing
9991         headers).
9992
9993 Wed Dec 10 16:09:07 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9994
9995         * libamu/mount_fs.c (mnt_flags): support either nfs or generic
9996         mount option for grpid.
9997
9998         * aux/configure.in: turn back on NFS mount option grpid.
9999
10000 Sat Dec  6 04:36:05 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10001
10002         * doc/Makefile.am (install-ps): added target to install postscript
10003         file in the am-utils' home page, as well as a few other useful
10004         files for the new am-utils Web page.
10005
10006 Mon Nov 17 05:22:56 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10007
10008         *******************************************************************
10009         *** Released am-utils-6.0a14                                    ***
10010         *******************************************************************
10011
10012 Sun Nov 16 21:56:16 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10013
10014         * doc/am-utils.texi (Supported Platforms): updated table of new
10015         ports.
10016
10017 Sat Nov 15 06:36:27 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10018
10019         * libamu/mount_fs.c (compute_automounter_nfs_args): pass mnttab
10020         options so that they can be printed in logs as needed.
10021
10022         * doc/am-utils.texi (osver Parameter): updated for the correct
10023         usage of the -o/-O options.
10024
10025         * scripts/amd.conf.5: corrected info for -o/-O options.
10026
10027         * amd/amd.8: updated man page for new -O op_sys_name option, and
10028         corrected the usage of the -o op_sys_ver option
10029
10030         * amd/get_args.c (get_args): added new amd option -O to override
10031         OS name.
10032         (get_args): updated usage string.  Removed old -m option.  Added
10033         -o and -O options.
10034
10035         * conf/nfs_prot/nfs_prot_irix5.h: add definition to FHSIZE in case
10036         it is not there.  Reportedly, irix 5.2 does not define it.
10037
10038         * scripts/lostaltmail.in: removed references to unused $hack
10039         variable.
10040
10041         * aux/macros/check_nfs_prot_headers.m4: Patch from Chris Metcalf
10042         <metcalf@cag.lcs.mit.edu> to correctly set the nfs_prot headers
10043         for solaris2.5.
10044
10045         * doc/am-utils.texi (Distrib): typo in the subscription
10046         instructions to amd-dev.  Patch from Stefan Vogel
10047         <vogel@physik-rzu.unizh.ch>.
10048
10049 1997-11-15  Erez Zadok  <ezk@amtrak.cs.columbia.edu>
10050
10051         * NFS3 works on powerpc-ibm-aix4.2.1.0.
10052
10053         * libamu/mount_fs.c (compute_nfs_args): set fh3 variable to
10054         static.  Some compilers (gcc from egcs  on aix 4.2.1) corrupt the
10055         stack of an automatic variable when pointer to it is passed around
10056         several times.
10057
10058 Fri Nov 14 20:09:28 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10059
10060         * libamu/xutil.c (real_plog): syslog like behavior for normal
10061         logging.  Will not print repeated strings, only a count "last
10062         message repeated N times", but will always print something if
10063         message is repeated more than 100 times.
10064
10065         * scripts/lostaltmail.in: look for lostaltmail.conf files also in
10066         /etc/global, /etc/os, and /etc/local (in that order).
10067
10068 Mon Nov 10 03:03:17 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
10069
10070         * conf/mount/mount_aix.c (mount_aix3): add support for NFS V.3
10071         mounts.
10072
10073         * aux/macros/struct_nfs_args.m4 (AC_TRY_COMPILE_NFS): test for
10074         aix42_nfs_args, specially set in conf/nfs_prot/nfs_prot_aix4_2.h
10075
10076         * conf/sa_dref/sa_dref_*.h: from now on, the "dst" argument to the
10077         NFS_SA_DREF macro is a pointer to the structure that used to be
10078         passed to it before.  So now I have to dereference the pointer
10079         before accessing its values.
10080
10081         * hlfsd/hlfsd.c (main): use the new and cleaner
10082         compute_nfs_args() and compute_automounter_nfs_args() functions.
10083
10084         * amd/ops_nfs.c (mount_nfs_fh): use the new and cleaner
10085         compute_nfs_args() and compute_automounter_nfs_args() functions.
10086
10087         * amd/ops_afs.c (mount_toplvl): MAJOR CODE REVISION.  Use the new
10088         and cleaner compute_nfs_args() and compute_automounter_nfs_args()
10089         functions.
10090
10091         * libamu/mount_fs.c (compute_nfs_args): major code cleanup that
10092         relates for struct nfs_args.  A new function sets the numerous
10093         possible flags and fields of nfs_args_t in an orderly fashion.
10094         Code cleaned up, organized, and moved from amd/hlfsd into
10095         libamu.  This saves on overall size of code.
10096         (compute_automounter_nfs_args): A variant of compute_nfs_args()
10097         which sets special options/flags that need to be used when NFS
10098         mounting an automounter's mount point.  Used by hlfsd and amd.
10099
10100         * amq/amq.c (get_secure_amd_client): don't print any more
10101         "get_secure_amd_client: using TCP, port 12345".  It's more
10102         annoying than useful a message, even when assumed to be compiled
10103         under DEBUG only.
10104
10105 Thu Oct 30 14:33:38 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10106
10107         * aux/macros/check_mnttab_type.m4: MAJOR BUG fixed for non-nfs
10108         mount table entries.  The code used to define the /etc/mnttab name
10109         for file systems based on physical media (disk, cdrom, floppy) to
10110         the generic name, rather than the OS specific name.  For example
10111         autoconf searches for all these types of mount table entries for a
10112         floppy based file system: vfat pcfs pc msdos msdosfs fat.  But if
10113         it found any, it hard-coded the mnttab name to "pcfs" rather than
10114         the actual name found!  Same for ufs, cdfs, pcfs, tmpfs, lofs,
10115         nullfs, unionfs, and umapfs.
10116
10117         * aux/configure.in: also test for xfs (for newer Irix) when
10118         looking for mount type names, numbers, etc of a disk-based ufs.
10119
10120 Sun Oct 26 19:32:57 1997  Erez Zadok  <ezk@defiant.soscorp.com>
10121
10122         * amq/amq.c (main): use pmap_ping() to test if remote host is up.
10123         This works better on bsdi2 and bsdi3, because their portmapper
10124         does not appear to like forwarding operations (it is generaly
10125         insecure).
10126
10127 Sat Oct 25 04:55:56 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10128
10129         *******************************************************************
10130         *** Released am-utils-6.0a13                                    ***
10131         *******************************************************************
10132
10133 Fri Oct 24 05:04:37 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10134
10135         * conf/nfs_prot/nfs_prot_ncr2.h: added missing definition for
10136         struct datum typedef.
10137
10138         * conf/nfs_prot/nfs_prot_netbsd.h: corrected typedef for
10139         ypall_callback_fxn_t for netbsd.
10140
10141         * aux/macros/type_auth_create_gidlist.m4: hpux10.10 uses int for
10142         the 5th arg to authunix_create(), while before and after they used
10143         gid_t.
10144
10145         * conf/transp/transp_tli.c (amu_clnt_create_best_vers): don't use
10146         clnt_create_timed() on older Solaris 2.3 systems that did not have
10147         it.
10148
10149         * conf/nfs_prot/nfs_prot_bsdi2.h: <msdosfs/msdosfsmount.h> is for
10150         kernel only on bsdi2, so do not include it.
10151
10152 Fri Oct 24 00:29:42 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
10153
10154         * hlfsd/stubs.c (nfsproc_readlink_2_svc): avoid logging repeated
10155         messages about resolution of mailboxes based on uid/gid.
10156
10157         * scripts/ctl-hlfsd.in: check for alternate password file in
10158         ${prefix}/etc/passwd and use it in hlfsd's startup.
10159
10160 Thu Oct 23 22:48:50 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
10161
10162         * hlfsd/homedir.c (hlfsd_getpwent): added support for -P
10163         passwdfile option.  If hlfsd is started with -P passwdfile, then
10164         the passwdfile is read and parsed just as a standard unix
10165         passwd(4) file.  Only the username, uid, and homedir fields are
10166         read and checked.  All the rest are ignored.  No NIS/netgroup
10167         support!
10168
10169         * hlfsd/hlfsd.c (main): check if hlfsd is run as root after
10170         parsing command line options, so that usage() can be printed when
10171         -h is invoked.
10172
10173 Wed Oct 22 00:16:39 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
10174
10175         * amd/nfs_start.c (mount_automounter): if autofs service listener
10176         fails to initialize it is OK if using a test amd.
10177
10178         * amd/opts.c (f_in_network): new nomadic function in_network(arg),
10179         which returns TRUE if 'arg' is any one of this host's networks.
10180
10181         * libamu/wire.c (getwire): rewritten parts of function, to store
10182         all networks names and numbers in the order of the interface (not
10183         in reverse).
10184
10185 Mon Oct 20 01:59:25 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10186
10187         * aux/configure.in: don't add ops_ufs.o on AIX twice.  My code
10188         would have worked had it not been due to AIX's buggy /bin/sh.
10189
10190         * doc/Makefile.am (EXTRA_DIST): include am-utils.dvi and
10191         am-utils.ps in the distribution sources.
10192         (html): generate html documentation for
10193         http://www.am-utils.org
10194
10195 Sun Oct 19 12:35:49 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10196
10197         * conf/nfs_prot/nfs_prot_netbsd.h: override the definition of
10198         ypall_callback_fxn_t.  The NetBSD team compiles all sources with
10199         gcc -Wall -Wmissing-prototypes -Wstrict-prototypes.
10200
10201         * amd/info_nis.c: allow for override of ypall_callback_fxn_t
10202         function typedef.
10203
10204         * libamu/xutil.c (amu_release_controlling_tty): new function to
10205         release the controlling tty in a clean and sane manner.  No longer
10206         using setpgid() b/c it may not work.  Uses setsid(),
10207         and ioctl() (in order).  This new function is used in amd/amd.c
10208         and hlfsd/hlfsd.c.  Also avoid setpgrp(), because it works on some
10209         systems, but on others it is the same as setpgid().
10210
10211 Sat Oct 18 23:42:40 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10212
10213         * aux/acconfig.h: check for nfs mount option 'fsname'.  Code for
10214         it was in amd/ops_afs.c, amd/ops_nfs.c, and hlfsd/hlfsd.c, but
10215         never used, because the configure test for fsname flag wasn't
10216         used.  This fixed a bug in HPUX 10, where syncer and manual mounts
10217         left blank lines in /etc/mnttab.
10218
10219         * aux/configure.in: check for nfs mount option 'fsname'.
10220
10221 Fri Oct 17 13:30:27 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10222
10223         * amd/ops_afs.c (mount_toplvl): turn on 'ignore' option in nfs
10224         mount flags of toplvl mounts.  Important esp. for HPUX 10.  Now
10225         hpux-10 will mount amd's mounts points as 'ignore' (by df).
10226
10227         * aux/configure.in: check for NFS mount option 'ignore', useful in
10228         HPUX 10.
10229
10230 Thu Oct 16 03:28:33 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10231
10232         * aux/macros/check_hide_mount_type.m4: hpux 10 should use "ignore"
10233         mount type and not NFS, for the amd mount points.
10234
10235         * conf/transp/transp_tli.c (amu_clnt_create_best_vers): don't log
10236         an RPC timeout as an error, but just an info message.  From
10237         Andreas Stolcke <stolcke@speech.sri.com>
10238
10239         * If the NFS server is down or does not support the portmapper
10240         call (such as certain Novell NFS servers) we mark it as version 2
10241         and we let the nfs code deal with the case that is down.  If when
10242         the server comes back up, it can support NFS V.3 and/or TCP, it
10243         will use those.  From christos@deshaw.com (Christos Zoulas).
10244
10245         * hlfsd/homedir.c (plt_print): various compile time cleanups to
10246         printfs that take a long, but pass an int to print.  From
10247         christos@deshaw.com (Christos Zoulas).
10248
10249         * aux/macros/func_bad_yp_all.m4 (ac_cv_func_yp_all_clean,): new
10250         macro to determine if the OS has a bad yp_all(), based on the host
10251         OS name.  So far only irix (all versions) have a bad yp_all, so
10252         they will use am_yp_all() instead (which is slower as it
10253         enumerates manually all of the map's entries).
10254
10255 Thu Oct 16 03:14:37 1997  Erez Zadok  <ezk@subzero.cs.columbia.edu>
10256
10257         * amd/info_nis.c (am_yp_all): code for a replacement yp_all that
10258         avoids using a file-descriptor leaking yp_all() on some systems
10259         like irix.
10260
10261 Wed Oct 15 21:52:35 1997  Erez Zadok  <ezk>
10262
10263         * fsinfo/fsinfo.h: avoid redefining yywrap incorrectly on DU-4.x
10264         systems using /usr/bin/flex.
10265
10266         * amd/conf_tok.l (yywrap): avoid redefining yywrap for systems
10267         that have a modified GNU flex which does define yywrap (DU-4.x).
10268
10269 Fri Sep 26 14:25:29 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10270
10271         * conf/checkmount/checkmount_bsd44.c: include prototype.
10272
10273 Fri Sep 26 01:26:24 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10274
10275         *******************************************************************
10276         *** Released am-utils-6.0a12                                    ***
10277         *******************************************************************
10278
10279 Fri Sep 26 00:13:48 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10280
10281         * conf/nfs_prot/nfs_prot_irix6.h: completely turn off all autofs
10282         code in irix6 until it can be tested correctly
10283
10284         * conf/transp/transp_tli.c (amu_clnt_create_best_vers): time out
10285         on clnt_create for 3 seconds, rather than wait for the much longer
10286         default.
10287
10288         * conf/nfs_prot/nfs_prot_aix4_2.h: port to powerpc-ibm-aix4.2.1.0.
10289         Includes NFS3, untested.
10290
10291 Thu Sep 25 11:03:11 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10292
10293         * amd/ops_pcfs.c (mount_pcfs): fill in uid/gid fields of
10294         pcfs_args_t if they exist.
10295
10296         * amd/ops_cdfs.c (mount_cdfs): fill in ssector field of
10297         cdfs_args_t if it exists.
10298
10299         * new minor ports hppa1.1-hp-hpux10.10, hppa1.1-hp-hpux9.05,
10300         hppa1.1-hp-hpux9.07, m68k-hp-hpux9.00, and sparc-sun-sunos4.1.4.
10301
10302 Wed Sep 24 00:48:05 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10303
10304         * doc/am-utils.texi (wire-test): updated documentation for the new
10305         option.
10306
10307         * wire-test/wire-test.8: updated man page for new option.
10308
10309         * wire-test/wire-test.c (main): added a test for various
10310         combinations of NFS proto/vers to a remote/local host.
10311
10312         * aux/macros/try_compile_anyfs.m4 (AC_TRY_COMPILE): include
10313         <isofs/cd9660/cd9660_mount.h> and <msdosfs/msdosfsmount.h> so that
10314         freebsd will correctly set mount options for pcfs and cdfs.
10315
10316         * amd/ops_pcfs.c (mount_pcfs): set mask field of pcfs_args to
10317         0777 (if field exists).
10318
10319         * aux/macros/try_compile_anyfs.m4 (AC_TRY_COMPILE): include
10320         <msdosfs/msdosfsmount.h> if available.
10321
10322         * minor new port: rs6000-ibm-aix4.1.4.0.
10323
10324         * libamu/mount_fs.c (mount_fs): fixed bug that caused HPUX not to
10325         write the "time" field in /etc/mnttab.
10326
10327         * conf/mtab/mtab_file.c (mnt_dup): fixed typo in macro names for
10328         detecting mnt_time field of mntent_t.
10329
10330         * libamu/mtab.c (mnt_free): fixed typo in macro names for
10331         detecting mnt_time field of mntent_t.
10332
10333 Tue Sep 23 15:30:03 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10334
10335         * conf/mtab/mtab_file.c (lock): Use flock() in preference over
10336         fcntl() to lock the mtab file.
10337
10338 Mon Sep 22 23:04:58 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10339
10340         * conf/transp/transp_sockets.c (get_nfs_version): define
10341         the try_again goto label only for NFS3.
10342         (pmap_ping): assume timeout failure of clnt_stat.
10343
10344         * libamu/xdr_func.c (xdr_groupnode, xdr_exportnode): cast to
10345         "groups *".
10346
10347 Mon Sep 22 20:34:33 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
10348
10349         * conf/transp/transp_sockets.c (pmap_ping): patch from Dan Riley
10350         <dsr@mail.lns.cornell.edu> to make sure that amd works with more
10351         secure portmappers that do not allow forwarding of RPC messages to
10352         other services.
10353
10354         * */Makefile.am: all source files should also depend on the new
10355         include/am_xdr_func.h header.
10356
10357         * include/am_xdr_func.h: new file as part of the code cleanup from
10358         Christos Zoulas <christos@deshaw.com>.
10359
10360         * Lots of fixes from Christos Zoulas <christos@deshaw.com> that
10361         involved missing prototypes, cleaned up ones, and removal of
10362         unused variables.
10363
10364         * libamu/xdr_func.c (xdr_mountres3): some code cleanup.  A switch
10365         statement with only one case is unclean.
10366
10367 Mon Sep 22 17:26:38 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10368
10369         * amd/ops_<FOO>fs.c (mount_<FOO>fs): initialize mntent_t fields to
10370         0 so that all fields are initialized to zero at first.  This way
10371         SunOS 4.x and other systems don't get /etc/mtab entries with
10372         random integers for the fsck/freq fields. Patch from Andreas
10373         Stolcke <stolcke@speech.sri.com>.
10374
10375 Mon Sep 22 00:34:19 1997  Erez Zadok  <ezk@americas.psl.cs.columbia.edu>
10376
10377         * conf/nfs_prot/nfs_prot_sunos4.h: include <nfs/nfs_clnt.h> so
10378         that the important definition for HOSTNAMESZ will be found.
10379
10380         * amd/ops_afs.c (mount_toplvl): limit hostname size to HOSTNAMESZ
10381         (inside the nfs_args structure) if the system uses that macro.
10382         Otherwise systems like SunOS refuse to NFS mount long pathnames
10383         and result in ENAMETOOLONG errno's.
10384
10385 Wed Sep 17 04:56:11 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10386
10387         * doc/am-utils.texi (Supported Platforms): specify new support for
10388         solaris 2.6, and hlfsd running on 2.5.1 too.
10389
10390 Wed Sep 17 03:55:02 1997  Erez Zadok  <ezk@amsterdam.psl.cs.columbia.edu>
10391
10392         * conf/mount/mount_svr4.c (mount_svr4): don't attemt an autofs
10393         mount if it is not supported or was turned off.
10394
10395 Wed Sep 17 03:19:36 1997  Erez Zadok  <ezk@americas.psl.cs.columbia.edu>
10396
10397         * conf/nfs_prot/nfs_prot_sunos4.h: fixed so that it will nfs mount
10398         again.  Apparently at some previous release SunOS 4 supported was
10399         broken and all nfs mounts resulted in ESTALE.
10400
10401 Wed Sep 17 00:26:25 1997  Erez Zadok  <ezk@amsterdam.psl.cs.columbia.edu>
10402
10403         * conf/nfs_prot/nfs_prot_sunos5_6.h: nfs protocol headers for
10404         solaris 2.6.
10405
10406         * aux/macros/check_nfs_prot_headers.m4: added solaris 2.6 nfs
10407         protocol header selection.
10408
10409 Sat Sep 13 14:31:51 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10410
10411         * conf/transp/transp_tli.c (amu_clnt_create_best_vers): avoid
10412         infinite loop.
10413
10414 Sun Sep  7 18:23:23 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10415
10416         *******************************************************************
10417         *** Released am-utils-6.0a11                                    ***
10418         *******************************************************************
10419
10420 Fri Sep  5 11:55:10 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10421
10422         * amd/amd.c (main): if plock() succeeded, don't try to display
10423         errno message.   Patch from Chris Metcalf
10424         <metcalf@catfish.lcs.mit.edu.
10425
10426 Thu Sep  4 19:17:58 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10427
10428         * hlfsd/homedir.c (table_add): make sure duplicate passwd entries
10429         are ignored.   Only the first entry should ever be used, because
10430         that's how lookup in passwd database works.
10431
10432         * conf/transp/transp_sockets.c (get_nfs_version): when determining
10433         if a remote host is up or down, use NFS v.2.  Fix suggested by
10434         Enami Tsugutomo <enami@cv.sony.co.jp>.
10435
10436         * conf/transp/transp_tli.c (amu_clnt_create_best_vers): new
10437         function to get the best possible NFS version, but also timeout
10438         faster than normal defaults, so remote hosts which are down can be
10439         detected in a reasonable time.
10440         (get_nfs_version): use the new "best" function.
10441
10442 Tue Sep  2 00:41:00 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10443
10444         *******************************************************************
10445         *** Released am-utils-6.0a10                                    ***
10446         *******************************************************************
10447
10448 Mon Sep  1 15:39:51 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10449
10450         * conf/transp/transp_tli.c (get_nfs_version): don't use
10451         clnt_tp_create_timed() on systems that don'e have it (Solaris 2.4
10452         and earlier).
10453
10454         * aux/configure.in: test for existence of clnt_tp_create_timed(),
10455         since Solaris 2.4 (and possibly earlier) do not have it.
10456
10457 Mon Sep  1 15:23:18 1997  Erez Zadok  <ezk@felix.psl.cs.columbia.edu>
10458
10459         * amd/ops_autofs.c (autofs_unmount_1_svc): only display rdevid
10460         field if it exists (solaris 2.4's autofs does not have it).
10461
10462 Mon Sep  1 14:45:09 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10463
10464         * aux/macros/type_auth_create_gidlist.m4: a new test to determine
10465         the correct type to the 5th argument of authunix_create().
10466
10467 Mon Sep  1 03:44:32 1997  Erez Zadok  <ezk@felix.psl.cs.columbia.edu>
10468
10469         * libamu/xdr_func.c (xdr_umntrequest): add test for autofs
10470         structure umntrequest, if it has the field rdevid.  Seems Solaris
10471         2.4 and earlier didn't have it.
10472
10473 Mon Sep  1 01:10:53 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10474
10475         * hlfsd/hlfsd.c (hlfsd_init): moved initialization upwards, so it
10476         can be done before primary process forks.
10477         (main): bug fix: wait a bit to give child a chance to initialize.
10478         Without this, hlfsd got into a busy infinite loop while, never
10479         completing the mount.
10480
10481         * amd/info_nis.c: patch from Jason Thorpe <thorpej@nas.nasa.gov>
10482         to make amd works when talking to NIS+ servers in NIS
10483         compatibility mode.
10484
10485 Mon Sep  1 00:46:56 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
10486
10487         * amd/mapc.c (MAX_CHAIN): increased maximum chain size to 1024.
10488
10489 Sun Aug 31 20:20:40 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
10490
10491         * amd/conf.c (gopt_fully_qualified_hosts): a new function to
10492         process another new global variable.
10493
10494         * amd/ops_nfs.c (make_nfs_auth): if a new global variable
10495         fully_qualified_hosts is on, use FQHN in RPC/NFS authentications.
10496         Patch from Chris Metcalf <metcalf@catfish.lcs.mit.edu>.
10497
10498         * amd/conf.c (process_last_regular_map): If the amd.conf file only
10499         has a [global] section (pretty useless IMHO), do not try to
10500         process a map that does not exist.
10501
10502         * scripts/amd.conf.5: fixed typos (repeated 'as' word).
10503
10504         * doc/am-utils.texi: MAJOR DOCUMENTATION REVISION COMPLETED!!!
10505
10506         * amd/conf.c (reset_cf_map): Bug fix.  Reset 'tag' field of cfm
10507         structure, so it does not carry over from map entry to another.
10508
10509 Sat Aug 30 18:39:21 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
10510
10511         * amd/amd.c (main): fixed the meaning of the plock option.  A bug
10512         caused it to be reversed.
10513
10514 Sat Aug 30 15:13:18 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10515
10516         * hlfsd/stubs.c: don't initialize some statics here.  They are
10517         better initialized in hlfsd_init_filehandles().
10518
10519 Fri Aug 22 14:47:16 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10520
10521         * amd/conf.c (gopt_show_statfs_entries): new function and a global
10522         amd.conf key show_statfs_entries.  Defaults to 'no'.  If 'yes',
10523         then all maps flagged as browsable will also show a count of the
10524         number of entries (keys) in that map.
10525
10526         * amd/nfs_subr.c (count_map_entries): new function to count number
10527         of entries in a map.  Now used if browsable is turned on in a map,
10528         to return a count of available keys in a given map.
10529
10530         * hlfsd/stubs.c (eq_fh): use correct memcmp().  BUG fixed! hlfsd
10531         confused the file handles for ".", "..", and the symlink, causing
10532         mess.
10533
10534         * aux/macros/func_bad_memcmp.m4: new test, based on autoconf 2.12,
10535         but also defines HAVE_BAD_MEMCMP, so I avoid linkage conflicts
10536         with bad memcmp() in libc's (nextstep3).
10537
10538 Thu Aug 21 17:38:41 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10539
10540         * aux/configure.in: check if autofs_args_t has a field named
10541         addr.  Solaris has it for specifying the address of the daemon,
10542         but Irix does not.  So how does irix tell the kernel the daemon's
10543         address?  I suspect that it is hardcoded to "localhost" using a
10544         "private well-known port" (#define AUTOFS_PORT 2048).
10545
10546         * conf/nfs_prot/nfs_prot_linux.h: added missing autofs
10547         definitions.
10548
10549         * README.autofs: new file listing autofs support notes
10550
10551         * very preliminary autofs code working.  Call it pre-alpha
10552         quality.
10553
10554 Sun Aug 17 02:25:09 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10555
10556         * amd/conf.c (ropt_mount_type, gopt_mount_type): don't accept
10557         "autofs" if system does not support it.
10558
10559         * amd/amd.c (main): log am-utils version string (same as amd -v)
10560         at start of run.
10561
10562         * conf/transp/transp_sockets.c (get_nfs_version): in order to tell
10563         if a remote host is available, try to contact its portmapper and
10564         timeout if no answer is received in 3 seconds.
10565
10566 Thu Aug 14 16:12:04 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10567
10568         * aux/macros/check_extern.m4 (pattern): use a simpler pattern for
10569         match for external function definitions.  The function could span
10570         multiple lines, so only match the opening parenthesis, not the
10571         closing one too.
10572
10573         * aux/macros/os_cpp-flags.m4 (ac_cv_os_cppflags,): do NOT turn on
10574         posix mode for nextstep3.  It is broken.
10575
10576         * amd/amd.c (init_global_options): run uname() only if
10577         <sys/utsname.h> and uname(2) exist.
10578
10579         * amd/rpc_fwd.c (fwd_packet): if remote host is down, the
10580         forwarding socket is null, so declare this an error.
10581
10582         * include/am_utils.h (AM_ERRNO_HOST_DOWN): find best errno to set
10583         for when a remote host is down.  Try, in order, "host down", "host
10584         unreachable", "invalid argument".
10585
10586         * amd/ops_nfs.c (discard_fh): don't dereference a null pointer
10587         (happens when remote host is down, and fp->fh_fs is NULL).
10588         (prime_nfs_fhandle_cache): ditto, and set fs flags to !FSF_VALID
10589         and FSF_DOWN.
10590
10591         * amd/sched.c: nobody uses "union wait" any more, or so it
10592         appears, so clean up that code.
10593
10594         * conf/transp/transp_tli.c (get_nfs_version): if remote host is
10595         down, time it out faster than default (3 seconds).
10596         (get_mount_client): free netconfig entry when done with it.
10597
10598         * conf/nfs_prot/nfs_prot_nextstep.h: initial (and somewhat ugly)
10599         port to nextstep3 (m68k-next-nextstep3).
10600
10601         * fsinfo/Makefile.am (LDADD): needs to link with libamu in case
10602         system does not have strdup().
10603
10604         * include/am_defs.h: complete external definition for getlogin()
10605         if needed.
10606
10607         * conf/transp/transp_tli.c (get_nfs_version): no need to keep
10608         static versout variable.
10609
10610         * amd/rpc_fwd.c (fwd_packet): if fwdto packet is null, remote
10611         server is probably down.  Don't use sendto() in that case.
10612
10613         * buildall (default): run gmake if found, before trying plain
10614         make.  GNU make is always preferable.
10615
10616 Tue Aug 12 21:23:58 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10617
10618         * aux/macros/host_macros.m4: cleanup of os_version and os
10619         overrides.  Solaris 2.5.1 for example will come up as solaris2 and
10620         2.5.1, rather than sunos5 and 5.5.1.  Both can be overridden in
10621         the amd.conf file.
10622
10623 Fri Aug  8 14:37:30 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10624
10625         *******************************************************************
10626         *** Released am-utils-6.0a9                                     ***
10627         *******************************************************************
10628
10629 Thu Aug  7 00:52:14 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10630
10631         * conf/nfs_prot/nfs_prot_ncr2.h: new file, for NCR2
10632         (i486-ncr-sysv4.3.03) headers.  Needed to complete missing stuff
10633         from <ndbm.h> and <sys/resource.h>.
10634
10635         * scripts/amd.conf.5: new map page.
10636
10637         * amd/info_hesiod.c: define extern for hesiod_resolve, since bsdi3
10638         does not.
10639
10640         * amd/amd.8: updated man page.
10641
10642         * amd/get_args.c (get_args): removed defunct -h option to amd.
10643
10644         * amq/amq.8: updated man page.
10645
10646         * amd/info_nisplus.c (nisplus_search): prototype fixes so Sun
10647         SparcCompiler CC won't complain.
10648
10649         * amd/info_hesiod.c (hesiod_search): small fixes to compile with
10650         hesiod-1.3, as per Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>.
10651
10652         * aux/macros/opt_ldflags.m4: new option added to configure
10653         --enable-ldflags, to specify -L option for configuring/compiling.
10654         The older one --enable-libs is now to be used only for -l options.
10655
10656         * amd/ops_nfs.c (mount_nfs_fh): bug fixed.  Should initialize
10657         nc_protoname from nfs_proto if available for all TLI systems, not
10658         just those that have NFS V3.
10659
10660         * amd/info_ldap.c: ldap patches from Leif Johansson
10661         <leifj@matematik.su.se>, adding two new amd.conf ldap variables:
10662         ldap_cache_seconds and ldap_cache_maxmem.
10663
10664         * hlfsd/hlfsd.c (main): bug fixed. port number must be wrapped in
10665         htons().
10666
10667 Sun Aug  3 17:20:05 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10668
10669         * amd/nfs_start.c (mount_automounter): register amd with the rpc
10670         program number that may have been overridden by amd.conf.
10671
10672         * libamu/xutil.c (set_amd_program_number, get_amd_program_number):
10673         allow storing and retrieving alternate amd program numbers.
10674
10675         * amd/conf.c (gopt_portmap_program): new function to parse
10676         amd.conf entry portmap_program=1234.
10677
10678         * amq/amq.c (main): allow specifying an alternate rpc program
10679         number for amd via -P prognum.
10680
10681         * new amq RPC to get the process id of the running amd.  This is
10682         used in ctl-amd to quickly find the pid of the amd that is to be
10683         killed.
10684
10685         * expanded shared libraries support.  Using GNU libtool-1.0,
10686         am-utils now builds shared libraries on many platforms that have
10687         support for it and proper compilers/linkers.  See "INSTALL" file
10688         for compatibility chart.
10689
10690 Thu Jul 31 13:07:23 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10691
10692         * fsinfo/fsi_lex.l: removed code that was in support of very old
10693         versions of flex.  No longer needed.
10694
10695 Tue Jul 29 12:00:13 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10696
10697         * amd/amd.c (init_global_options): find the kernel architecture
10698         from uname() if possible.
10699
10700 Mon Jul 28 03:53:59 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10701
10702         * new working port: i386-unknown-openbsd2.1
10703
10704 Fri Jul 25 03:16:31 1997  Erez Zadok  <ezk@felix.psl.cs.columbia.edu>
10705
10706         * working port: sparc-sun-solaris2.4.  Had to fix fhandle_t from
10707         structure to actual char[], because the structure was passed to
10708         xdr_fhandle as data and not a pointer.  Surprisingly, gcc
10709         -fpcc-struct-return did not help.
10710
10711         * conf/nfs_prot/nfs_prot_sunos5_4.h: special nfs protocol
10712         definitions for solaris 2.4 have to be different from 2.3, and
10713         different from 2.5.
10714
10715         * libamu/xdr_fhstatus.c (xdr_fhstatus): minor code cleanup.
10716
10717 Thu Jul 24 16:22:39 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10718
10719         * conf/mount/mount_svr4.c (mount_svr4): use STREQ to compare mount
10720         types, not ==.  Fix from Christos Zoulas <christos@deshaw.com>.
10721
10722         * mk-amd-map/mk-amd-map.8: man page taken from bsd44.
10723
10724 Thu Jul 24 00:01:55 1997  Erez Zadok  <ezk@moisil.cs.columbia.edu>
10725
10726         * conf/mount/mount_linux.c: made the nfs error mapping code into a
10727         small function.
10728
10729 Wed Jul 23 16:11:49 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10730
10731         * conf/nfs_prot/nfs_prot_linux.h (NFS_ERROR_MAPPING): special
10732         error mappings from errno numbers to NFS errors.  From Debian
10733         Linux.
10734
10735         * scripts/am-eject.in (fs): new script (taken from Debian Linux
10736         folks) to auto-unmount floppy/cd devices before ejecting them.
10737
10738         * fsinfo/wr_exportfs.c (write_exportfs): from Debian folks, pass
10739         '5' as second arg to show_area_being_processed.  I'm not sure why.
10740
10741         * fsinfo/wr_atab.c (write_atab): from Debian folks, pass '5' as
10742         second arg to show_area_being_processed.  I'm not sure why.
10743
10744         * conf/mount/mount_linux.c (parse_opts): as per Debian Linux,
10745         ensure that you have a buffer in *xopts to strcat onto.
10746         (mount_linux): fixed from Debian folks to ensure that NFS mount
10747         sockets are connected only for kernels prior to 1.3.10 (avoids
10748         hangs for multi-homed hosts).
10749
10750         * amd/mapc.c (make_entry_chain): from Debian folks: don't skip
10751         over amd map keys that have a prefix, and include the prefix in
10752         the returned readdir().
10753
10754         * amd/info_passwd.c (passwd_init, passwd_search): format
10755         enhancements from the Debian Linux folks.  They added
10756         - var0:=pw-prefix:=anydir
10757         - var1:=pw-rhost:=dom3.dom2.dom1
10758         - var2:=pw-user:=user
10759         - var3:=pw-home:=/anydir/dom1/dom2/dom3/user
10760
10761         * new ports: sparc-sun-solaris2.4 and sparc-sun-sunos4.1.1.
10762
10763         * amd/ops_afs.c (afs_retry): patches from Debian Linux.  If
10764         afs_mount timed out, then explicitly forbid further retries after
10765         the timeout.  (afs_bgmount): bug fix from Debian Linux.  Timeout
10766         values (17 and 5) were mistakenly swapped.
10767
10768 Wed Jul 23 15:53:25 1997  Erez Zadok  <ezk@felix.psl.cs.columbia.edu>
10769
10770         * conf/nfs_prot/nfs_prot_sunos5_3.h: turn off non-existent NFS V.3
10771         support for Solaris 2.4 (the header files incorrectly define parts
10772         of the NFS V.3 protocol, but the kernel does not support it).
10773
10774 Wed Jul 23 00:07:12 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10775
10776         * amd/info_hesiod.c: minor cleanup to use hes_init and hesiod_init
10777         for determining if using old or new hesiod libraries,
10778         respectively.
10779
10780         * amd/ops_nfs.c (mount_nfs_fh): If "noconn" option exists in NFS
10781         V.3 then use non-connected sockets (both TCP and UDP).  Otherwise
10782         they cause hangs of mounts from multi-homed hosts when the return
10783         route is not the same as the outgoing route (esp. on NetBSD
10784         1.2.1).  If "conn" option was supplied, then don't turn on the
10785         "noconn" mount option.  Otherwise default to "noconn" mount
10786         option.
10787
10788         * aux/configure.in: better check for systems that need libgdbm and
10789         <ndbm.h>
10790
10791 Tue Jul 22 04:02:05 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10792
10793         * hlfsd/hlfsd.c (main), amd/ops_afs.c (mount_toplvl): ensure that
10794         mounts are hidden from df(1) on systems that keep mount tables in
10795         kernel, such as osf1.
10796
10797 Tue Jul 22 02:26:55 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10798
10799         *******************************************************************
10800         *** Released am-utils-6.0a8                                     ***
10801         *******************************************************************
10802
10803 Mon Jul 21 21:33:19 1997  Erez Zadok  <ezk@stone.mcl.cs.columbia.edu>
10804
10805         * hlfsd/hlfsd.c (main): bug fixed: forgot to set sin_family to
10806         AF_INET when hlfsd mounts itself, thus getting an errno "protocol
10807         family not supported".
10808
10809 Mon Jul 21 20:46:59 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10810
10811         * verified that amd on NetBSD 1.2.1 (i386) works, but the OS
10812         itself is flaky.
10813
10814         * verified that amd AIX 3 works w/ the new readdir() code.
10815
10816 Mon Jul 21 18:59:30 1997  Erez Zadok  <ezk@chestnut.mcl.cs.columbia.edu>
10817
10818         * amd/mapc.c (maptypes): changed the default map caching type for
10819         nis and ndbm maps to "MAPC_ALL", so that all possible entries will
10820         be available to amd for browsable_dirs=yes.
10821
10822 Mon Jul 21 18:04:16 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10823
10824         * amd/ops_afs.c (afs_readdir, afs_readdir_browsable): split
10825         afs_readdir into a browsable version and a non-browsable one.
10826         Fixed bugs that resulted in an infinite nfs_readdir loop on the
10827         localhost for some operating systems.
10828
10829 Sat Jul 19 19:38:38 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10830
10831         * amd/ops_afs.c (afs_readdir): fixed up the browsable code to
10832         comply with nfs_readdir specs.  It was returning all entries at
10833         once, even if there was not enough space in the RPC packet.  Now,
10834         it sends a reasonably sized chunk, and sets static state to resume
10835         it for the next continuation RPC of readdir.
10836
10837         * amd/conf.c (set_conf_kv): fixed bug that resulted in the first
10838         regular map not getting all of the [global] options defaulted from.
10839
10840 Fri Jul 18 00:45:12 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10841
10842         * amq/amq.c (main): fixed so that portmapper "ping" will only fail
10843         upon an RPC timeout
10844
10845         * scripts/ctl-{amd,hlfsd}.in (killproc): better method to find the
10846         amd/hlfsd process to kill.
10847
10848         * amd/ops_afs.c (mount_toplvl), hlfsd/hlfsd.c (main): code to
10849         determine how to avoid df from seeing amd's toplvl mounts.  Moved
10850         from libamu/mount_fs.c and include/am_utils.h.  Ensure that hlfsd
10851         is hidden from df.
10852         (mount_toplvl): fixed df types for irix.
10853
10854 Thu Jul 17 21:59:45 1997  Erez Zadok  <ezk@americas.psl.cs.columbia.edu>
10855
10856         * amq/amq.c (main): fixed bug that caused the 5 second timeout for
10857         TLI amq using udp to be ignored.
10858         (main): if amq cannot contact remote host's portmapper within 5
10859         seconds, timeout and fail faster than the default longer timeout
10860         (this is for non-TLI systems).
10861
10862 Thu Jul 17 17:08:13 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10863
10864         * amq/amq.c (get_secure_amd_client): if amq cannot contact
10865         remote host's portmapper within 5 seconds, timeout and fail faster
10866         than the default TLI timeout of over 4 minutes.
10867
10868         * amd/am_ops.c (ops_showfstypes): added styles for new bsd44
10869         file systems nullfs, unionfs, and umapfs.
10870         (ops_show1): cleanup code and and reuse this function.
10871         (vops): empty placeholders for nullfs, unionfs, and umapfs.
10872
10873         * amd/ops_{nullfs, unionfs, umapfs}.c: 3 new empty templates for
10874         bsd44 style file systems.
10875
10876         * fsinfo/fsinfo.8: man page for fsinfo rewritten from bsd44
10877         sources.
10878
10879         * amd/conf_tok.l, fsinof/fsi_lex.c: undefine ECHO to avoid
10880         conflict with systems that define it in <sys/ioctl.h> and also
10881         define a conflicting one via lex.  Newer versions of f/lex are ok.
10882
10883 Wed Jul 16 00:17:45 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10884
10885         * amd/ops_nfs.c (mount_nfs_fh): fill in nfs_args' fields
10886         acdirmin/max and acregmin/max only if they exist.
10887
10888         * aux/configure.in: test for nfs_args fields acdirmin and
10889         acregmin.
10890
10891 Tue Jul 15 17:24:09 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10892
10893         * aux/configure.in: commented out checking for MNT2_GEN_OPT_* for
10894         "nondev" and commented back in checking for "nodev".  This was a
10895         typo.
10896
10897         * include/am_compat.h: more compatibility options: define "ro"
10898         mnttab option all the time.  Define "overlay" as needed.  Added
10899         more fillers of mnttab options (as per Daniel S. Riley
10900         <dsr@mail.lns.cornell.edu>), for acdirmax, acdirmin, acregmax,
10901         acregmin, noac, grpid, nosuid, and actimo.
10902
10903         * libamu/mount_fs.c (mnt_flags): fixed a typo in "ro" option as
10904         per dsr@mail.lns.cornell.edu (Daniel S. Riley).  Then cleaned up
10905         the same code for other options in struct opt_tab.
10906
10907 Mon Jul 14 22:36:37 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10908
10909         * amd/get_args.c (get_args): moved amd.conf file parsing to before
10910         the switching the default log/debug options.  Suggested by
10911         dsr@mail.lns.cornell.edu (Daniel S. Riley).
10912
10913         * aux/update_build_version: new script to record the build version
10914         of amd, along with the rest of the info thet comes up with amd -v.
10915
10916 Sun Jul 13 00:30:24 1997  Erez Zadok  <ezk@decca.damtp.cam.ac.uk>
10917
10918         * aux/macros/os_cflags.m4: new macro, to add additional
10919         compilation options (also used during configuration), based on the
10920         OS and the compiler.  Used for solaris-2.6, osf, and irix6.
10921
10922 Fri Jul 11 10:15:11 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10923
10924         * amd/conf_tok.l, conf_parse.y: allow values of keys to include
10925         white spaces, if they are double-quoted (key="some value")
10926
10927         * amd/info_hesiod.c (hesiod_search): cleanup and minor bug fixes
10928         of hesiod from Danny Braniss <danny@cs.huji.ac.il>.
10929
10930 Fri Jul 11 02:16:06 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10931
10932         *******************************************************************
10933         *** Released am-utils-6.0a7                                     ***
10934         *******************************************************************
10935
10936 Thu Jul 10 12:19:25 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10937
10938         * include/am_defs.h: fill in extern definition of innetgr() in
10939         case system headers don't.
10940
10941         * aux/macros/path_prog_lex.m4 aux/configure.in: using macros that
10942         will show the full pathname to yacc/bison and f/lex.  Some systems
10943         have older or bad versions of those and this way the user will
10944         know for sure what is being invoked.
10945
10946         * tasks: file populated with todo items.
10947
10948         * scripts/amd2ldif.in: Script to convert amd maps to plain text
10949         LDAP object files.  Contributed by Leif Johansson
10950         <leifj@matematik.su.se>.
10951
10952         * aux/config.guess: added recognition for sun3's running 4.2bsd,
10953         from Tom Schmidt <tschmidt@micron.com>.  Fixed one small typo.
10954
10955         * amd/conf.c: several variables that were local to a map, were
10956         also added to [global], where they apply to all maps.  Each map
10957         can then individually override those defaults.  Flags
10958         affected: browsable_dirs and mount_type.  Options affected:
10959         map_type, map_options, and search_path.
10960
10961         * amd/amd.h: eliminated several global flags each of which took an
10962         int, in favor of one global flags variable used as a bit field.
10963
10964         * amd/amd.c (init_global_options): moved all global variables into
10965         a single struct amu_global_options, so it is easier to add new
10966         ones and/or identify existing ones.
10967
10968         * amd/get_args.c (get_args): removed unused amd -m option.
10969
10970         * amd/conf.c (gopt_cluster): added new amd.conf option for cluster
10971         name, same as amd -C.
10972
10973         * amd/info_ldap.c: LDAP info map functions from Leif Johansson
10974         <leifj@matematik.su.se>.
10975
10976         * amd/conf.c (gopt_ldap_base, gopt_ldap_hostports): put in global
10977         amd.conf options for ldap_base and ldap_hostports.
10978
10979         * amd/opts.c (f_netgrp): new amd map function netgrp(ARG) to test
10980         if the current host is in the ARG host netgroup.
10981
10982         * aux/configure.in: some systems replaced dbm in libc with GNU's
10983         libgdbm, so check for libgdbm, but only if dbm_open is not in
10984         libc already.  This was a recommendation from Tom Schmidt
10985         <tschmidt@micron.com>.
10986
10987         * conf/nfs_prot/nfs_prot_sunos5_3.h: port to sparc-sun-solaris2.3
10988         completed.
10989
10990 Wed Jul  9 18:14:59 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10991
10992         * port to sparc-unknown-netbsd1.2E done, not tested.  Includes NFS
10993         V.3.
10994
10995 Tue Jul  8 17:35:07 1997  Erez Zadok  <ezk@elk.mcl.cs.columbia.edu>
10996
10997         * port to i386-unknown-freebsd3.0 done and working.  Includes NFS
10998         V.3.
10999
11000         * aux/macros/check_nfs_fh_dref.m4: freebsd3 should use
11001         file handle dereferencing style similar to freebsd22.
11002
11003         * include/am_defs.h: need to include <net/if_var.h> before
11004         <netinet/if_ether.h> on freebsd3.
11005
11006         * conf/nfs_prot/nfs_prot_freebsd3.h: new protocol header additions
11007         for freeBSD 3.0.
11008
11009 Tue Jul  8 16:53:41 1997  Erez Zadok  <ezk@moisil.cs.columbia.edu>
11010
11011         * amd/info_nis.c (nis_reload): cast nis' callback function so
11012         picky compilers won't complain.
11013
11014         * libamu/xdr_mountres3.c (xdr_mountres3): make sure this function
11015         gets compiled only if the system has NFS V3 and does not have
11016         xdr_mountres3.
11017
11018 Tue Jul  8 12:42:03 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11019
11020         * COPYING: put in some legal stuff in this file.
11021
11022 Mon Jul  7 19:10:44 1997  Erez Zadok  <ezk@prometheus.soscorp.com>
11023
11024         * NFS V3 now works under Irix5, thanks to patches from
11025         Andreas Stolcke <stolcke@speech.sri.com>.
11026
11027         * conf/mount/mount_irix5.c: sparate mount_irix.c into an irix5
11028         version and an irix6 version, since irix5's NFS V3 code is broken
11029         and hacky.
11030
11031         * amd/info_hesiod.c (hs_zone_transfer): minor fixes to buffer
11032         sizes for some hesiod queries.  Patch from Danny Braniss
11033         <danny@cs.huji.ac.il>.
11034
11035 Mon Jul  7 19:04:14 1997  Erez Zadok  <ezk@glory.soscorp.com>
11036
11037         * amd/ops_nfs.c (mount_nfs_fh): fixed NFS V.3 support for bsdi3.
11038
11039 Sun Jul  6 14:22:24 1997  Erez Zadok  <ezk@glory.soscorp.com>
11040
11041         * aux/{configure.in,acconfig.h}: added checks for struct
11042         nfs_args's fields proto and sotype (bsdi3).
11043
11044         * amd/ops_nfs.c (mount_nfs_fh): added nfsv3 option to
11045         nfs_args.flags for bsdi3.  Set field proto to 0.  Set sotype field
11046         to SOCK_STREAM or SOCK_DGRAM.
11047
11048         * aux/macros/check_mount_style.m4: add case for bsdi3.
11049
11050         * amd/info_hesiod.c: got hesiod support for bsdi3.
11051
11052 Sun Jul  6 11:14:47 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11053
11054         * aux/configure.in: look for hesiod on libc (bsdi3)
11055
11056         * amd/get_args.c (get_args): reformat usage so it fits in 80
11057         columns.
11058
11059         * scripts/ctl-amd.in: changed directory name for optional tftpboot
11060         map to /tftpboot/.amd.
11061
11062 Sat Jul  5 17:46:45 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11063
11064         *******************************************************************
11065         *** Released am-utils-6.0a6                                     ***
11066         *******************************************************************
11067
11068 Sat Jul  5 03:17:09 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11069
11070         * scripts/ctl-amd.in: include -T tag for tftpboot.
11071
11072         * new port: mips-sgi-irix5.3.  Compiled with gcc, but NFS V3 code
11073         is broken and needs work on the specific nfs_args that irix5 uses
11074         for V3 mounts.
11075
11076 Sat Jul  5 01:44:25 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
11077
11078         * amd/get_args.c (get_args): new options amd -T tag.  A map with
11079         tag=foo matching the -T tag will be processed.  All untagged maps
11080         get processed all the time.
11081
11082 Fri Jul  4 16:19:26 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11083
11084         * aux/configure.in: need to check for strcasecmp in libucb (ncr2)
11085
11086         * aux/macros/check_os_libs.m4: a new macro to set the usage of
11087         libnsl and libsocket based on the OS.
11088
11089         * libamu/mount_fs.c (mnt_flags): used MNTTAB_OPT_GRPID if it is
11090         defined (problem on osf4).
11091
11092         * conf/nfs_prot/nfs_prot_irix5.h: new file for irix5 headers.
11093
11094         * include/am_defs.h, aux/macros/try_compile_nfs.m4,
11095         aux/macros/mount_headers.m4: do include <sys/proc.h> because it
11096         failes on irix5.  Rather, put in the individual
11097         conf/nfs_prot/nfs_prot_*.h headers.
11098
11099         * amd/conf.c: AIX3 doesn't like strdup() being passed a constant
11100         char*, so cast all strdup()'s args to a non-const char*.
11101
11102         * amd/mapc.c (root_newmap): don't try to strdup only a "const
11103         char *".
11104
11105 Fri Jul  4 15:47:10 1997  Erez Zadok  <ezk@americas.psl.cs.columbia.edu>
11106
11107         * conf/nfs_prot/nfs_prot_sunos4.h: added rpc/rpc.h and
11108         sys/errno.h.
11109
11110 Thu Jul  3 17:49:00 1997  Erez Zadok  <ezk@prometheus.soscorp.com>
11111
11112         * made sure am-utils compiles, links, and runs properly on Irix
11113         6.2 using "cc -32 -Wl,-woff,"
11114
11115         * aux/macros/check_lib2.m4: a bug fix version to autoconf 2.12
11116         AC_CHECK_LIB.  If OTHER-LIBRARIES are defined and used, then add
11117         them to $LIBS.
11118
11119         * aux/configure.in: some cleanup of which libraries are needed.
11120         Espectially ensure that libnsl is included only on Solaris, where
11121         so far it is the only system on which it is absolutely necessary.
11122         Also no longer need to include libc explicitly.
11123
11124         * amd/amd.c,wire-test/wire-test.c (main): convert IP address to
11125         network-long order before printing it.
11126
11127         * wire-test/wire-test.c (main): also check and report on the IP
11128         address of the local host, since some systems have bad versions of
11129         get_myaddress, or ones that conflict with other versions in
11130         multiple libraries (SunOS 4 and Irix especially).
11131
11132 Wed Jul  2 18:19:02 1997  Erez Zadok  <ezk@starblazers.soscorp.com>
11133
11134         * scripts/ctl-amd.in: don't use full pathname so killproc() works
11135         better.  Also run bsd44 and irix style ps programs.
11136
11137         * aux/macros/check_lib_funcs.m4: bug fixed: used to define usage
11138         of library no matter if it was found or not.
11139
11140 Wed Jul  2 02:11:48 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11141
11142         * aux/macros/check_mnt2_gen_opt.m4: turned back on the checking
11143         for M_* macros, but ensure that <sys/stream.h> is not included at
11144         all so it won't conflict with other M_* macros.
11145
11146 Tue Jul  1 21:16:51 1997  Erez Zadok  <ezk@mako.cs.columbia.edu>
11147
11148         * conf/mount/mount_irix.c (mount_irix): first arg to mount(2) on
11149         irix should be "spec" (host:/path), not the dir of the mnt point.
11150
11151         * amd/ops_afs.c (afs_lookuppn): bug in enable_default_selectors
11152         fixed.  If on, it essentially ignored the setting in a
11153         selector-controlled /defaults if there were 2 or more entries in it.
11154
11155 Tue Jul  1 12:23:38 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11156
11157         * scripts/ctl-{amd,hlfsd}.in (killproc): if failed to find process
11158         using BSD style ps, then try SVR4 style ps.
11159
11160         * include/am_utils.h (amuDebug): renamed Debug macro to amuDebug
11161         etc., to avoid conflicts with similar named macros in <ldap.h>.
11162
11163         * aux/configure.in, amd/info_ldap.c, etc.: put in all the autoconf
11164         support needed for LDAP.  Now the code has to be written mostly in
11165         amd/info_ldap.c.
11166
11167         * Included additional patches from Andreas Stolcke
11168         <stolcke@speech.sri.com> to support using the best possible
11169         combination of NFS version (2,3) and protocol (udp,tcp) for any
11170         given host, since it appears that some Irix versions have NFS V3,
11171         but do not support TCP.
11172
11173         * scripts/ctl-amd.in: updated amd control script to look for and
11174         use amd.conf file.
11175
11176 Tue Jul  1 00:28:23 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
11177
11178         * amd/mapc.c (mapc_create): now, each map in the amd.conf can be
11179         initialized off of a different type, or default to cycling through
11180         all maps until one of them matches.
11181
11182 Mon Jun 30 20:49:13 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
11183
11184         * amd/ops_afs.c (afs_readdir): per-map browsing (readdir) done.
11185         if browsable_dirs=yes is set in the map section in amd.conf, that
11186         map will return all entries back to a readdir(2).
11187
11188 Sun Jun 29 16:22:11 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
11189
11190         * rudimentary amd.conf file support included.  You may even
11191         override things like os=sos5, to get "backwards" compatibility with
11192         upl102.
11193
11194 Sat Jun 28 13:35:02 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
11195
11196         * amd/conf.c: new file to process amd.conf file.
11197
11198         * amd/get_args.c (get_args): new options -H to print help.
11199
11200         * moved enable_default_selectors to be amd.conf controlled, and
11201         not compiler controlled.
11202
11203         * amd/get_args.c (get_args): new options -F <conf-file> to parse an
11204         amd configuration file.
11205
11206 Wed Jun 25 23:15:42 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
11207
11208         * converted all files that used strcmp() == 0 or != 0  to using
11209         the STREQ() macro.
11210
11211 Mon Jun 23 22:31:14 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
11212
11213         * aux/macros/check_lib_funcs.m4: new M4 macro that can be used to
11214         search for any number of functions in any given library.
11215
11216 Mon Jun 23 01:04:23 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11217
11218         * amd/mapc.c: Included patch from Leif Johansson
11219         <leifj@matematik.su.se> to ensure that systems without an RE
11220         library can compile.
11221
11222         * libamu/mount_fs.c (mount_fs): Included patch from Andreas
11223         Stolcke <stolcke@speech.sri.com>, to ensure that mount options on
11224         table are properly delimited by a comma.
11225
11226         * amd/ops_nfs.c (mount_nfs_fh): Included patch from Andreas
11227         Stolcke <stolcke@speech.sri.com>, to allow users to override the
11228         proto= and vers= mount options.
11229
11230 Sun Jun 22 01:00:11 1997  Eric Dana  (edana@ncr2.bgs.com)
11231
11232         * conf/nfs_prot/nfs_prot_svr4.h: port completed to
11233         i486-ncr-sysv4.3.03.  Assorted source cleanups done.
11234
11235         * include/am_defs.h, aux/macros/mount_headers.m4: don't include
11236         mnttab.h if sys/mnttab.h was already included, because on ncr2,
11237         they contain conflicting entries for struct mnttab.
11238
11239 Sat Jun 21 23:52:15 1997  Eric Dana  (edana@ncr2.bgs.com)
11240
11241         * aux/macros/check_nfs_prot_headers.m4: added support for ncr2.
11242
11243 Fri Jun 20 06:14:17 1997  Erez Zadok  <ezk>
11244
11245         * amd/*.c: lots of 64-bit "ugly" ports like casts to long ints.
11246
11247         * aux/macros/struct_nfs_fh.m4: check for "struct nfssvcfh" because
11248         on DU-4.0 it is better than the next one to be picked (nfsv2fh_t).
11249
11250 Wed Jun 18 18:59:49 1997  Erez Zadok  <ezk@defiant.soscorp.com>
11251
11252         * aux/macros/struct_nfs_fh.m4 (AC_TRY_COMPILE_NFS): check for
11253         nfsv2fh_t before fhandle_t becasue on bsdi2.1 the former is
11254         better.
11255
11256 Tue Jun 10 17:06:58 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
11257
11258         * amd/rpc_fwd.c (fwd_packet): TLI bug fix. if fwdto socket is
11259         NULL, set the maxlen and len fields in netbuf to zero.
11260
11261 Wed May 28 22:52:28 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11262
11263         * scripts/fix-amd-map.in (name): replace all matching patterns on
11264         line.
11265
11266 Sun May 25 19:33:41 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11267
11268         *******************************************************************
11269         *** Released am-utils-6.0a5                                     ***
11270         *******************************************************************
11271
11272 Sun May 25 13:37:24 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
11273
11274         * amd/amq_subr.c (amqproc_getvers_1_svc): amq's RPC service
11275         procedure now returns the full string that amd -v returns.
11276
11277         * amd/get_args.c (get_version_string): new function to return
11278         complete version/info string so it could be used more flexibly.
11279
11280         * amd/am_ops.c (ops_showamfstypes, ops_showfstypes): put the list
11281         of Fs types into a string buffer, rather than a FILE*.
11282
11283         * amd/mapc.c (mapc_showtypes): put the list of map types into a
11284         string buffer, rather than a FILE*.
11285
11286 Sun May 25 01:25:36 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11287
11288         * amd/get_args.c (get_args): amd -v also prints user who built
11289         amd, hostname built on, and date of configuration.
11290
11291 Sat May 24 13:40:50 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11292
11293         * scripts/lostaltmail.conf-sample: sample lostaltmail
11294         configuration file.
11295
11296         * scripts/lostaltmail.in: new script lostaltmail used to redeliver
11297         "lost" mail that hlfsd redirected to a temp location because the
11298         primary home file system of the user was full.
11299
11300         * scripts/amd2sun.in: new script amd2sun. Used to convert Sub
11301         automount maps to amd maps.
11302
11303         * scripts/ctl-hlfsd.in: new script ctl-hlfsd.  Used to start,
11304         stop, or restart hlfsd.
11305
11306         * scripts/expn.1: man page for expn command.
11307
11308         * scripts/ctl-amd.in: new script ctl-amd.  Used to start, stop, or
11309         restart amd.
11310
11311         * scripts/expn.in: new script expn.  Actually taken from David
11312         Muir Sharnoff <muir@idiom.com>.  Used by hlfsd's mail re-delivery
11313         script.
11314
11315         * scripts/wait4amd.in: new script wait4amd added.  Waits for amd
11316         to come up on a host, and then runs a command (rsh $hostname by
11317         default).
11318
11319         * scripts/Makefile.am: new directory now holds all shell/perl
11320         scripts that belong to am-utils.
11321
11322         * conf/mount/mount_linux.c (parse_opts): new parser for
11323         linux-specific mounts.  Handles fs-type specific mount-options
11324         correctly.  Currently implemented: msdos, iso9660.
11325
11326         * amd/ops_pcfs.c (pcfs_ops): don't timeout pcfs mounts by default
11327         (fix for linux).
11328
11329         * amd/ops_cdfs.c (cdfs_ops): don't timeout cdfs mounts by default
11330         (fix for linux).
11331
11332         * amd/mapc.c (make_entry_chain): fixed bug that resulted in amd
11333         core dumps upon "ls" of a mount point; an invalid pointer was
11334         being returned and dereferenced.
11335
11336         * port to Linux sparc working!
11337
11338         * hlfsd/homedir.c (hlfsd_diskspace): close file descriptor if
11339         failed to write test file, or else the fd will leak.
11340
11341 Sun May 18 00:42:41 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11342
11343         * amd/info_hesiod.c (hs_strip_our_domain): use strcasecmp()
11344         instead of strcmp().
11345
11346         * Port to Digital Unix 4.0 (OSF) done.
11347
11348         * hlfsd/hlfsd.c: renamed dirname to dir_name to avoid conflicts
11349         with dirname() function in <string.h> on OSF systems.
11350
11351         * fsinfo/fsi_util.c (set_ether_if): take out extern definition of
11352         inet_addr().  It should come from <arpa/inet.h> instead.
11353
11354         * conf/mtab/mtab_osf.c: fixed macros and added NFS V3 specs.
11355
11356         * include/am_utils.h: renamed FIRST/LAST to AM_FIRST/AM_LAST to
11357         avoid conflicts with DU 4.0 system header.
11358
11359 Thu May 15 22:49:12 1997  Erez Zadok  <ezk@subzero.cs.columbia.edu>
11360
11361         * libamu/mount_fs.c (mount_fs): pass along NFS version so I can
11362         determine if to include additional options in the mount table file
11363         entry (such as proto=tcp, and vers=3).
11364
11365 Thu May 15 00:42:12 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11366
11367         * libamu/mount_fs.c (mount_fs): include NFS version number in the
11368         mount table options, as well as proto={tcp,udp}.
11369
11370 Wed May 14 14:30:19 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
11371
11372         * NFS V3 code ported to most other systems, so it compiles for V2
11373         and V3 NFS systems.
11374
11375         * NFS VERSION 3 support, first pass.  Working for Solaris and
11376         using TCP.
11377
11378 Sun May 11 01:14:29 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
11379
11380         * amq/amq.c: many newline characters were missing from various
11381         stderr printfs.
11382
11383 Sat May 10 13:09:06 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
11384
11385         * conf/nfs_prot/nfs_prot_sunos5.h: protocol defintions for
11386         Solaris, which include NFS V3 support.
11387
11388         * conf/nfs_prot/nfs_prot_default.h: default NFS protocol headers.
11389
11390         * conf/transp/transp_{tli,sockets}.c (get_mount_client): use NFS
11391         protocol version while getting a mount client.
11392
11393         * amd/ops_nfs.c (mount_nfs_fh): set the mount types, mnttab types,
11394         file handle size, and proper file handle based on the correct NFS
11395         version number.
11396
11397         * conf/mount/mount_svr4.c (mount_svr4): support NFS3 mounts under
11398         Solaris and other SVR4 systems.
11399
11400         * amd/ops_nfs.c: store NFS file handle version and version
11401         specific handle in struct fh_cache.
11402         (got_nfs_fh): pick the correct RPC reply based on the NFS version
11403         of the server.
11404         (prime_nfs_fhandle_cache): figure out the right NFS file handle
11405         for a node, but now include NFS protocol version information.
11406         (call_mountd): set the correct version for the mount protocol,
11407         based on the NFS protocol version.
11408         (nfs_init): use the NFS protocol generic structure
11409         am_nfs_handle_t.
11410
11411         * include/am_utils.h: new structure am_nfs_handle_t to contain all
11412         possible versions of NFS file handles.
11413
11414         * amd/srvr_nfs.c (start_ping): ping program performs NFS version
11415         specific pings.
11416         (recompute_portmap): figure out the correct portmap version mount.
11417         (nfs_keepalive): call start_ping() with the correct NFS version.
11418         (find_nfs_srvr): if mount option "vers=" is given, use it.  Get
11419         the NFS server version and verify that it is up.
11420
11421         * conf/transp/transp_{tli,sockets}.c (get_nfs_version): a new
11422         function to find the best NFS version for a particular host.
11423
11424         * libamu/amu.h: determine what is the highest version of NFS we
11425         should try.
11426
11427         * include/am_utils.h (NFS_VERSION3): added definition for NFS V3
11428         protocol number.
11429         Added field fs_version to struct fserver, so we can now store the
11430         server protocol version.
11431
11432 Fri May  9 01:09:45 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
11433
11434         * aux/macros/check_field.m4 (AC_MOUNT_HEADERS): map '.' (dot) into
11435         underscores too, so I can test for sub-fields.
11436
11437         * libamu/wire.c: use test that checks for sub-fields of struct
11438         ifreq.
11439
11440 Sat May  6 10:20:17 2000  Erez Zadok  <ezk@glory.soscorp.com>
11441
11442         * port to BSD/OS 3.0 completed!  Many xdr_ functions were broken
11443         into smaller files.  M4 macros fixed to test for existence of
11444         file systems using getvfsbyname().
11445
11446         * amd/sched.c (sigchld): signal handler must waitpid() for all
11447         possible children.
11448
11449         * hlfsd/homedir.c: signal handler must waitpid() for all possible
11450         children.
11451
11452         * aux/macros/check_restartable_signals.m4: new macro to determine
11453         if need to reinstall signal handlers per OS is better than trying
11454         to figure these out based on system macros.
11455
11456 Fri May  5 19:23:28 2000  Erez Zadok  <ezk@glory.soscorp.com>
11457
11458         * amd/ops_nfs.c (mount_nfs_fh): set nfs_args_t version number.
11459
11460         * amd/ops_afs.c (mount_toplvl): set nfs_args_t version number.
11461
11462         * amd/ops_nfs.c (mount_nfs_fh): process nfs mount option resvport
11463         (must be supplied for bsdi 3.0)
11464
11465         * libamu/wire.c: use HAVE_FIELD_STRUCT_IFREQ_IFR_ADDR (and
11466         associated new macro) for determining the right way to compute the
11467         size of the interface structure.
11468
11469 Fri Apr 11 15:56:13 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11470
11471         * aux/configure.in: need to include libc before libnsl if
11472         get_myaddress() is available because on irix libnsl has a buggy
11473         get_myaddress().
11474
11475         * include/am_defs.h: make sure REINSTATE_SIGNAL_HANDLER is defined
11476         on Irix 6 (an SVR4 variant)
11477
11478 Thu Mar 27 02:28:40 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11479
11480         *******************************************************************
11481         *** Released am-utils-6.0a4                                     ***
11482         *******************************************************************
11483
11484 Wed Mar 26 21:15:36 1997  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
11485
11486         * amd/amq_subr.c (ok_security): turned off insecure code unless
11487         user explicitly runs configure --enable-amq-mount.
11488
11489         * hlfsd/hlfsd.c (main): use new protoypes dor create_nfs_service().
11490
11491         * amd/nfs_start.c (mount_automounter): use code that separately
11492         creates the NFS and the amq service.  Register tcp and udp
11493         services for amd.
11494
11495         * conf/transp/transp_*.c (create_amq_service): new function to
11496         separately create the amq service for amd.  Simplified prototypes
11497         for create_nfs_service().
11498
11499 Wed Mar 19 20:40:56 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11500
11501         *******************************************************************
11502         *** Released am-utils-6.0a3                                     ***
11503         *******************************************************************
11504
11505 Wed Mar 19 17:49:18 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11506
11507         * new port: rs6000-ibm-aix3.2.5 and rs6000-ibm-aix4.1.5.0.  Lots
11508         of small changes to support these two.
11509
11510 Wed Mar 19 14:33:30 1997  Erez Zadok  <ezk@grande.cs.columbia.edu>
11511
11512         * conf/umount/umount_default.c (umount_fs): bug: unlock_mntlist()
11513         should run if MOUNT_TABLE_ON_FILE, not otherwise.
11514
11515 Mon Mar 17 22:02:43 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11516
11517         * hlfsd/hlfsd.c (main): fill in fhsize field if exists
11518         (freebsd-2.2).
11519
11520         * amd/ops_{nfs,afs}.c (mount_toplvl): fill in fhsize field if
11521         exists (freebsd-2.2).
11522
11523 Sat Mar 15 19:37:48 1997  Erez "HWank1" Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11524
11525         * new port: i386-unknown-freebsd2.2.  FreeBSD 2.2 and higher
11526         changed the filehandle type in struct nfs_args from nfsv2fh_t to
11527         u_char.
11528
11529 Sat Mar 14 10:11:03 1997  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
11530
11531         * SHARED LIBRARIES: too many changes to list individually.  Now,
11532         libamu can be built as a shared library, and other programs link
11533         with it.
11534
11535 Tue Mar 11 22:24:09 1997  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
11536
11537         * aux/macros/opt_shared.m4: new macro for setting options for
11538         building shared am-utils libraries.
11539
11540 Sun Mar  9 19:17:46 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11541
11542         * fixmount/fixrmtab: cleaned up the script.
11543
11544         * fixmount/Makefile.am (EXTRA_DIST): adde $(sbin_SCRIPTS) so that
11545         fixrmtab gets distributed too.
11546
11547         * conf/nfs_prot/nfs_prot_bsdi2.h: added support for MOUNTPROC_DUMP.
11548         Added extern for xdr_mountlist().
11549
11550         * aux/configure.in: trimmed down many tests for MNT2_GEN_OPT,
11551         MNT2_NFS_OPT, and MNTTAB_OPT that were not referenced anywhere in
11552         the sources.
11553
11554 Sat Mar  8 00:23:58 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11555
11556         * fixmount/hlfsd ported to bsd44, hpux, and linux systems.
11557
11558         * aux/macros/check_fixmount_style.m4: add check for bsd44 systems.
11559
11560         * conf/fixmount/fixmount_default.c: use lockf() if flock() is
11561         unavailable.
11562
11563         * include/am_defs.h: include <string.h> even if don't have
11564         STDC_HEADERS defined (sunos4).
11565         (seteuid): define seteuid() to be setresuid() for systems that
11566         have but not the other (hpux).
11567
11568         * aux/macros/check_extern.m4: test should include <strings.h>.
11569
11570 Tue Mar  4 17:16:52 1997  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
11571
11572         * lib/xutil.c (debug_option): moved from amd/getargs.c to this
11573         more proper file.
11574
11575         * include/am_utils.h: put in structure for debug options, for all
11576         progams to use.
11577
11578         * amd/get_args.c: moved structure for debug options out.
11579
11580 Sun Mar  2 00:13:07 1997  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
11581
11582         * ported fixmount.
11583
11584         * lib/ualarm.c: replacement function for systems that don't have a
11585         ualarm().
11586
11587         * ported fsinfo.
11588
11589 Sun Mar  1 10:23:34 1997  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
11590
11591         * ported mk-amd-map.
11592
11593         * buildall: added -K option to buildall, to run mkconf.
11594
11595 Fri Feb 28 01:10:25 1997  Erez "HWank1" Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11596
11597         *******************************************************************
11598         *** Released am-utils-6.0a2                                     ***
11599         *******************************************************************
11600
11601 Thu Feb 27 13:58:59 1997  Erez "HWank1" Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11602
11603         * all *.[hcyl] files: add copyright line.
11604
11605         * aux/macros/check_mount_type.m4: test for mount type for
11606         linux-like systems, by checking for loadable or statically linked
11607         kernel filesystem modules.
11608
11609         * aux/macros/check_mnttab_type.m4: test for mount table entry
11610         for linux-like systems, by checking for loadable or statically
11611         linked kernel filesystem modules.
11612
11613         * aux/configure.in: pcfs filesystems can use vfat type (linux)
11614
11615         * aux/macros/check_fs_mntent.m4: test for filesystem existence for
11616         linux-like systems, by checking for loadable or statically linked
11617         kernel filesystem modules.
11618
11619         * conf/trap/trap_hpux.h: ugly hack added because of stupide HPUX
11620         9.0 header files.  This should be removed when HPUX 9.0 is deemed
11621         defunct.
11622
11623         * aux/acconfig.h: set an undefined variable for having an extern
11624         to clnt_sperrno().
11625
11626         * include/am_defs.h: define extern for clnt_sperrno() if needed.
11627
11628         * aux/configure.in: test for extern clnt_sperrno().
11629
11630         * aux/macros/check_nfs_fh_dref.m4: HPUX's NFS fhandle dref is
11631         similar to irix.
11632
11633         * aux/macros/check_mount_style.m4: use mount helper on HPUX.
11634
11635         * aux/macros/check_mtype_type.m4: hpux's mount type is a char*,
11636         not integer (but may be mapped to one later).
11637
11638         * conf/mount/mount_hpux.c (mount_hpux): HPUX has confusing header
11639         files.  They have mount(2) and vfsmount(2) which don't take same
11640         arguments, and they have string mount types MNTTYPE_* as well as
11641         integer types MOUNT_*.  So I need this new mount function to map
11642         from string types to integer types for the vfsmount() function.
11643
11644         * conf/trap/trap_hpux.h (MOUNT_TRAP): instead of calling
11645         vfsmount(), call mount_hpux().
11646
11647 Thu Feb 27 03:34:14 1997  Erez "HWank1" Zadok  <ezk@okeeffe.cs.columbia.edu>
11648
11649         * lib/mount_fs.c (mnt_flags): make sure SYNC option is on only if
11650         both MNTTAB_OPT_SYNC and MNT2_GEN_OPT_SYNC are defined.
11651
11652 Thu Feb 27 00:26:00 1997  Erez "HWank1" Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11653
11654         * conf/nfs_prot/nfs_prot_hpux.h: NFS protocol definitions for
11655         hpux.
11656
11657         * include/am_defs.h: no need to include rpc/auth.h or rpc/clnt.h.
11658
11659         * aux/configure.in: no need to test for rpc/auth.h and rpc/clnt.h.
11660
11661         * buildall: added ability to configure using other shells than
11662         /bin/sh, on those systems where /bin/sh is buggy or limited
11663         (HPUX).
11664
11665         * aux/macros/struct_nfs_fh.m4: reinstated the macro but have it
11666         defined am_nfs_fh, and also test for plain typedef "nfs_fh".
11667
11668         * aux/acconfig.h: #undef am_nfs_fh, which is being defined by a
11669         reinstated macro.
11670
11671         * aux/configure.in: check for <nfs/export.h>
11672
11673         * include/am_defs.h: include <nfs/export.h> (HPUX) if exists.
11674
11675         * aux/macros/try_compile_nfs.m4: include <nfs/export.h> (HPUX) if
11676         exists.
11677
11678         * aux/macros/mount_headers.m4 (define): removed some non-working
11679         (on HPUX) code that attempts to recreate the fhandle_t rather than
11680         load it up from system headers.  Also added some NFS protocol
11681         header inclusion.  include <nfs/export.h> (HPUX) if exists.
11682
11683 Wed Feb 26 00:32:35 1997  Erez "HWank1" Zadok  <ezk@okeeffe.cs.columbia.edu>
11684
11685         * aux/macros/mount_headers.m4 (define): Use M4 changequote to
11686         ensure [] brackets are correctly used.
11687
11688         * aux/macros/expand_cpp_{string,hex,int}.m4: encapsulate
11689         multi-line M4 inclusions in [].
11690
11691 Tue Feb 25 22:19:44 1997  Erez "HWank1" Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11692
11693         * conf/mtab/mtab_bsd.c (mnt_dup): use statfs field f_fstypename if
11694         it exists.
11695
11696         * aux/acconfig.h: HAVE_FIELD_STRUCT_STATFS_F_FSTYPENAME, new
11697         config.h macro for field f_fstypename of struct statfs.
11698
11699         * aux/configure.in: testing for field f_fstypename field of struct
11700         statfs (NetBSD).
11701
11702         * aux/acconfig.h: moved all of the "static" definitions out to a
11703         fixed file called include/am_defs.h.  Added to all */Makefile.am
11704         files a dependency on am_defs.h.  Created am_defs.h of course, and
11705         then added #include <amd_defs.h> to all of the source and header
11706         files that required it.
11707
11708 Mon Feb 24 01:27:02 1997  Erez Zadok  <ezk@defiant.soscorp.com>
11709
11710         * aux/acconfig.h: two more externals for xdr functions that may be
11711         implemented by libamu.
11712
11713         * conf/nfs_prot/nfs_prot_bsdi2.h: added missing RPC and XDR
11714         definitions.
11715
11716 Sun Feb 23 15:25:26 1997  Erez "HWank1" Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11717
11718         * buildall (default): added -D option for turning on even stricker
11719         developer options.
11720
11721         * */Makefile.am: make sure @AMU_NFS_PROT_HEADERS@ is used to
11722         determine dependencies on optional NFS protocol headers.
11723
11724         * aux/acconfig.h: define and use HAVE_NFS_PROT_HEADERS as needed.
11725
11726         * aux/macros/check_nfs_prot_header.m4: new test to determine what
11727         NFS protocol headers to use.
11728
11729         * conf/nfs_prot/nfs_prot_{irix6,sunos4,bsdi2}.h: new headers to
11730         complete missing system headers for NFS protocol definitions.
11731
11732 Sun Feb 16 15:58:42 1997  Erez "HWank1" Zadok  <ezk@vir.cs.columbia.edu>
11733
11734         * amd/ops_nfs.c (mount_nfs_fh): encapsulated some more code in
11735         #ifdef's as needed.
11736
11737         * amd/ops_afs.c (mount_toplvl): make sure TIMEO/RETRANS code is
11738         suitable #ifdef'ed.
11739
11740         * include/am_compat.h: a couple more mnttab options
11741         (timeo/retrans) setting just in case.
11742
11743         * amd/autil.c (host_normalize): make sure hostent->h_name is
11744         passed a non-const char *.
11745
11746         * conf/mount/mount_linux.c (mount_linux): cleaned up a block of code.
11747
11748         * {lib,amq,amd}/*.c (many functions): cast xdr_entry to
11749         XDRPROC_T_TYPE.
11750
11751         * lib/nfs_prot_svc.c (nfs_program_2): cast xdr_entry to
11752         XDRPROC_T_TYPE.
11753
11754         * lib/nfs_prot_xdr.c (xdr_entry): cast xdr_entry to
11755         XDRPROC_T_TYPE.
11756
11757         * lib/wire.c (getwire): Make sure safe assignment from const to
11758         none is done.
11759
11760 Sat Feb 15 19:38:51 1997  Erez "HWank1" Zadok  <ezk@vir.cs.columbia.edu>
11761
11762         * aux/macros/expand_cpp_int.m4: new macro for expanding integers.
11763
11764         * aux/configure.in: added linux/fs.h support in configure and
11765         several M4 macros.
11766
11767         * conf/mount/mount_linux.c (mount_linux): use macro instead of
11768         "ugly" fixed hex number for mount() arguments.
11769
11770 Sat Feb 15 02:09:47 1997  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
11771
11772         * amd/info_hesiod.c: removed macro HAVE_HS_ZONE_TRANSFER and
11773         turned all of its code always on.  That code always seems to
11774         compile, as long as you have hesiod and libresolv.
11775
11776         * amd/mapc.c: removed macro HAVE_HS_ZONE_TRANSFER and turned all
11777         of its code always on.
11778
11779         * aux/configure.in: removed superfluous test for hs_zone_transfer
11780         function (will never find it because it is an amd-internal
11781         function).
11782
11783         * amd/mapc.c (maptypes): must used correct new name for am-utils'
11784         hesiod initialization function: hesiod_am_init.
11785
11786         * amd/info_hesiod.c (hesiod_am_init): renamed hesiod_init to
11787         hesiod_am_init so as not to conflict with libhesiod's
11788         hesiod_init() function.
11789
11790         * aux/configure.in: added test and explicit inclusion of
11791         libresolv.a for later resolution of library references with
11792         libhesiod.
11793
11794         * aux/macros/opt_cppflags.m4: new file.  configure/compile C
11795         preprocessor flags.
11796
11797         * aux/macros/opt_libs.m4: new file.  configure/compile library
11798         flags.
11799
11800         * Makefile.am (EXTRA_DIST_AUX): include two new macros
11801         opt_cppflags.m4 and opt_libs.m4.
11802
11803         * aux/configure.in: test for libhesiod needs to additional
11804         libresolv to link completely.  Additional configuration time
11805         options added for setting initial CPPFLAGS and LIBS.
11806
11807 Tue Feb 10 02:15:40 1997  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
11808
11809         *******************************************************************
11810         *** Released am-utils-6.0a1                                     ***
11811         *******************************************************************
11812
11813 Thu Feb  6 02:55:19 1997  Erez "HWank1" Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11814
11815         * amd/info_ndbm.c (ndbm_search,ndbm_init): fixed the code so that
11816         it works on freebsd, where they map dbm_pagfno a non-existing
11817         macro on purpose, to force you to port the code to Berkeley DB.
11818
11819 Fri Jan 31 01:35:09 1997  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
11820
11821         * amd/ops_afs.c (mount_toplvl): added a sleep(1) right before the
11822         actual mount_toplvl, to avoid some possible race conditions.
11823
11824 Thu Jan 30 02:31:49 1997  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
11825
11826         * amd/rpc_fwd.c: removed all TLI (HAVE_T_OPEN) code.
11827
11828 Wed Jan 29 18:25:07 1997  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
11829
11830         * lib/wire.c (getwire): removed HAVE_T_OPEN (TLI code)
11831
11832         * amd/amd.c (main): fix local address using htonl(). Free up
11833         buffers allocated by netdir_*() functions.
11834
11835 Wed Jan 22 23:53:24 1997  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
11836
11837         * amd/fix-amd-map.in: new script that will convert old-style amd
11838         maps to new one.
11839
11840 Tue Jan 21 01:18:16 1997  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
11841
11842         * FIRST AMD IN AM-UTILS FINALLY WORKS (mounts itself as toplvl,
11843         and replies back to simple nfs/link type mount queries).
11844
11845         * conf/mtab/mtab_svr4.c: reorganized the code in this file to be
11846         easier to read, and fixed a few bugs with un/setting the lock file
11847         descriptor.
11848
11849 Wed Jan  8 15:27:49 1997  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
11850
11851         * amd/sched.c: removed HAS_SVR3_SIGNALS code to handle older
11852         signals in Svr3 systems.  Only stellix ever used this.
11853
11854         * amd/rpc_fwd.c (fwd_reply): removed all code that was triggered
11855         by DYNAMIC_BUFFERS, since it was not in use.
11856
11857 Tue Jan  7 00:45:59 1997  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
11858
11859         * amd/opts.c (eval_opts): removed AMD_COMPAT code.  Amd no longer
11860         takes '=' sign as old selector.  Fix your maps.
11861         (deslashify): removed APOLLO code that treated two '//' as one.
11862
11863 Sun Jan  5 01:25:09 1997  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
11864
11865         * amd/ops_nfsx.c (nfsx_init): removed HARD_NFSX_ERRORS, code which
11866         was not used.  It made any submount error fail the whole group.
11867
11868         * amd/ops_nfs.c (make_nfs_auth): removed code dependent on
11869         HAS_NFS_QUALIFIED_NAMES.
11870         (mount_nfs_fh): removed macro for NFS_ARGS_NEEDS_PATH, assuming it
11871         is never on.  So code that was triggered by #ifndef
11872         NFS_ARGS_NEEDS_PATH (osf1, aix3, and bsd44 variants) may have to
11873         be fixed later.
11874         Removed all ULTRIX_HACK code.  Ultrix is DEAD!
11875         removed all PRESET_AC code, which was only on for Linux to preset
11876         the attribute cache values (otherwise they default to zero).
11877         (nfs_umounted): revobed KICK_KERNEL code (IRIX systems).  Will
11878         have to fixed up later.
11879         (mount_nfs_fh): removed code that was never included, which
11880         attempted to set the port on which amd's nfs mounts on.  This
11881         isn't supported by the ping algorithm yet.  In any case, it is all
11882         done in nfs_init().
11883
11884         * amd/srvr_nfs.c (find_nfs_srvr), amd/ops_nfs.c (mount_nfs_fh):
11885         removed HAS_TCP_NFS code.  The whole use of NFS V.3 with TCP or
11886         specially hacked NFS V.2 that uses TCP (BSD 4.4 variants) will
11887         have to be addressed later.
11888
11889         * amd/nfs_subr.c (nfsproc_getattr_2): removed all code dependent
11890         on PRECISE_SYMLINKS.
11891
11892         * amd/mapc.c (mapc_meta_search): removed code that depended on
11893         HAS_DEPOT.  It is known buggy code.  The whole DEPOT support needs
11894         to be rethought.
11895         (mapc_add_kv): ported code to use standard regular expression
11896         (regexp) library.
11897
11898         * amd/{map.c,ops_sfs.c,ops_ufs.c}: removed all code dependent on
11899         FLUSH_KERNEL_NAME_CACHE and the macro itself.
11900
11901 Sat Jan  4 15:46:58 1997  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
11902
11903         * amd/map.c (exported_ap_alloc): removed all code triggered by
11904         SHRINK_EXPORTED_AP and the macro itself.
11905
11906         * amd/info_nis.c: removed HAS_NIS_RELOAD macro, and left the code
11907         in all the time.  Assuming that there is always NIS realod
11908         available.
11909         (yp_all_fixed): removed code for BROKEN_YP_ALL.  If your yp_all()
11910         function is broken such that it does not release filedescriptors
11911         it created, then you are hosed.  Get a fix for yp_all from your
11912         vendor or switch operating systems.
11913
11914 Tue Dec 31 15:34:36 1996  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
11915
11916         * amd/info_hesiod.c: renamed macro HAS_HESIOD_RELOAD to
11917         HAVE_HS_ZONE_TRANSFER.
11918
11919 Mon Dec 30 17:33:23 1996  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
11920
11921         * amd/{nfs,host}_ops.cremoved INFORM_MOUNTD macro, so its code is
11922         always included.  We should always try to inform the remove mount
11923         daemon of mounts we performed.  If we want an option for this, it
11924         should be a run-time option.
11925
11926         * amd/host_ops.c: removed all that optionally did not make the
11927         directory mount points for amd.
11928
11929         * HOST_EXEC code removed from everywhere.  There is no indication
11930         that it was used anywhere.  If it needs to be used, then a
11931         run-time switch should control it.
11932
11933 Thu Dec 26 00:06:52 1996  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
11934
11935         * amd/*_ops.c: removed all references to mntent_t's fields
11936         mnt_freq and mnt_passno, since they are no longe rused (and never
11937         have been).
11938
11939         * amd/am_ops.c: removed function sunos4_match, which was off
11940         anyway.  This was one of the places where an '=' sign was allowed
11941         as an assignment operator (which is now ':=').
11942
11943         * amd/afs_ops.c (afs_bgmount): removed SUNOS4_COMPAT code which
11944         was off anyway.  This was one of the places where an '=' sign was
11945         allowed as an assignment operator (which is now ':=').
11946
11947 Tue Dec 24 01:53:52 1996  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
11948
11949         * amq/amq.c: ported to am-utils.  Working.
11950
11951         * conf/mount/mount_svr4.c (mount_svr4): changed mount type on svr4
11952         to be string, as it should be (rather than a string mapped to int
11953         and back mapped to string).
11954
11955 Sun Dec 22 13:26:05 1996  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
11956
11957         * lib/mount_fs.c (mount_fs): removed MNTINFO_PREF code.
11958
11959         * lib/umount_fs.c: split this into three files: default, osf, and
11960         bsd44, that are in conf/umount/umount_*.c.
11961
11962 Thu Dec 19 17:33:46 1996  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
11963
11964         * aux/configure.in, aux/aclocal.m4, aux/acconfig.h: added new
11965         macro to automatically figure out if an external definition for
11966         sys_errlist[] exists.
11967
11968         * lib/xutil.c (xfree): removed "#undef free" because it's not
11969         needed there.  Any system that redefines free() needs help.
11970
11971         * conf/mtab/mtab_file.c (REWRITE_MTAB_IN_PLACE): removed code that
11972         was dependent on REWRITE_MTAB_IN_PLACE.  It does not appear to be
11973         in active use anywhere.  If added later, it should be a run-time
11974         configuration option.
11975
11976         * conf/mtab/mtab_mach3.c: removed code that was #ifdef'ed not to
11977         be MOUNT_TABLE_ON_FILE, since mach2 always stores its mount tables
11978         in a file in /etc.
11979
11980         * lib/util.c (str3cat): removed _AIX code.  AIX should have a
11981         working realloc, or else find a cleaner solution to this.
11982         (mkdirs): removed SUNOS4_WORKAROUND code.  This was to do a sync()
11983         after immediately making directories so that fsck will be able to
11984         fix the filesystem in the event of an immediate crash.  This was
11985         because a bug in UFS which is fixed by now.
11986
11987         * lib/hutil.c (domain_strip): removed PARTIAL_DOMAINS triggered
11988         code.  Does not appear to be on and used anywhere.
11989         (dofork): removed MACH3 code, b/c mach3 NFS bugs are fixed by now.
11990
11991         * lib/resvport.c: split the binding of reserved ports code to a
11992         separate file.  A #define (HAVE_T_OPEN) separates the TLI (SVR4)
11993         from the BSD code.
11994
11995 Thu Dec 19 02:08:35 1996  Erez "HWank1" Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11996
11997         * lib/Makefile.am (amu_LIBADD): includs @LIBOBJS@ now, auto-filled
11998         in by automake and configure, for optional sources that need to be
11999         built as part of libamu.a.
12000
12001         * aux/aclocal.m4: Make sure AC_CHECK_MOUNT_STYLE adds mountutil.o
12002         to LIBOBJS.
12003
12004         * lib/memcmp.c (memcmp): new file added to replace a possible bad
12005         implementation of memcmp.
12006
12007 Wed Dec 18 22:20:23 1996  Erez "HWank1" Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12008
12009         * converted the sources to use memset/memmove/memcmp instead of
12010         bzero/bcopy/bcmp.
12011
12012         * ran all sources through gnu Indent w/ options specified in
12013         aux/amindent.
12014
12015 Wed Dec 11 22:19:29 1996  Erez "HWank1" Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12016
12017         * At this point the initial generation of config.h via autoconf and
12018         some preliminary makefiles via automake is done.  I will not begin
12019         modifying sources, so it's a good time to document from here.
12020
12021 Wed Dec 10 22:19:29 1996  Erez "HWank1" Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12022
12023         *******************************************************************
12024         *** Initial ChangeLog Entry                                     ***
12025         *******************************************************************