12014-10-28  Christos Zoulas <christos@zoulas.com>
2
3	*******************************************************************
4	*** Released am-utils-6.2					***
5	*******************************************************************
6
7	* add ylwrap.amd, sick and tired of patching broken ylwrap.
8
92014-09-05  Christos Zoulas <christos@zoulas.com>
10
11	* factor out the size check for both readdir methods
12	  (raven at themaw.net)
13
142014-09-03  Christos Zoulas <christos@zoulas.com>
15
16	* configure test for 64 bit xdr function (raven at themaw.net)
17
182014-09-01  Christos Zoulas <christos@zoulas.com>
19
20	* bug fix from raven at themaw.net to prevent writing v3 handle
21	  to a v2 structure.
22
232014-07-21  Christos Zoulas <christos@zoulas.com>
24
25	* fix permission problems with access
26	* auto_nfs_version = 3 now works for me.
27
282014-07-20  Christos Zoulas <christos@zoulas.com>
29
30	* refresh some autoconf files
31	* force autoconf version since earlier versions don't work
32	* changes from raven at themaw.net to support NFSv3 for automounted
33	  toplevel filesystems presented to the list in May. A few bug fixes
34	  and integration changes by me. The code now works well enough to
35	  mount the filesystem with NFSv3 and automount children but readdir
36	  does not work yet (so no listing of automounted filesystems).
37	  The new code is not enabled by default. To enable use
38		auto_nfs_version = 3
39	  in your configuration file.
40
412014-03-26  Christos Zoulas <christos@zoulas.com>
42
43	From Ian Kent <ikent@redhat.com>
44
45	* use mktemp in scripts/fixrmtab
46	* fix documentatio nits
47	* [linux] Add ext2, ext3, ext4 specific mount options
48	* fix tcpwrappers (hosts.{allow,deny} problems for specific host
49	  entries
50
512014-03-20  Christos Zoulas <christos@zoulas.com>
52
53
54	* don't background autofs umount
55	* avoid fh NULL dereference on umount
56	* handle ENOENT umount return for autofs mounts
57	* fix error message in get_nfs_version
58	* fix debug log deadlock
59	* [linux] retry umount on EBUSY
60	* handle failed umount on exit
61
622014-03-09  Christos Zoulas <christos@zoulas.com>
63
64	* Remove BSD advertising clause.
65	* Remove expn program which is not used by anything
66
672013-12-05  Christos Zoulas <christos@zoulas.com>
68
69	* Change the way we handle multiple lex scanners and yacc parsers
70	  in a single program. Our old patch to ylwrap does not work anymore
71	  because the bison parsers need shared symbols that start with yy
72	  and we can't easily select which ones work. So now we use -P and
73	  -p to let lex and yacc do the work for us. This requires a patch
74	  to ylwrap, but it is smaller.
75
76
772013-12-05  Christos Zoulas <christos@zoulas.com>
78
79	* Change the way we handle multiple lex scanners and yacc parsers
80	  in a single program. Our old patch to ylwrap does not work anymore
81	  because the bison parsers need shared symbols that start with yy
82	  and we can't easily select which ones work. So now we use -P and
83	  -p to let lex and yacc do the work for us. This requires a patch
84	  to ylwrap, but it is smaller.
85
862013-05-14  Christos Zoulas <christos@zoulas.com>
87
88	* update to handle new autoconf and regen files
89
902012-11-23  Christos Zoulas <christos@zoulas.com>
91
92	* recognize mountport=, noacl options
93	* simplify the bootstrap process, by forcing
94	  all the files to be rebuild with autoreconf -f - i
95
962012-10-03  Christos Zoulas <christos@zoulas.com>
97
98	* add missing ops_nfs4.c to the Makefile.am
99
1002012-09-14  Christos Zoulas <christos@zoulas.com>
101
102	* add locking option handling for lustre
103	* fix noatime, nodiratime, mandlock for linux
104
1052012-07-25  Christos Zoulas <christos@zoulas.com>
106
107	* bug fixes for lustre rhost parsing
108
1092012-06-27  Christos Zoulas <christos@zoulas.com>
110
111	* Disable 1/2-baked sun map support to avoid SIGSEGV
112
1132012-06-16  Christos Zoulas <christos@zoulas.com>
114
115	*******************************************************************
116	*** Released am-utils-6.2-rc1					***
117	*******************************************************************
118
119	* Fix libtool.m4 to work with later versions of autoconf.
120	* In buildall, use eval so that quoted strings work
121	* Centralize nfs version checking function, and introduce
122	  new configuration variable nfs_vers_ping, which is the
123	  max version we ping for. This is not documented yet, because
124	  there might be a better way separate the max version we can
125	  use vs the max version we ping for.
126
1272012-06-09  Christos Zoulas <christos@zoulas.com>
128
129	* fix issue with parsing nfsv4 security option strings
130
1312012-05-01  Christos Zoulas <christos@zoulas.com>
132
133	* Handle EPERM return from v4 file handles
134	  in old linux kernels
135
1362012-03-09  Christos Zoulas <christos@zoulas.com>
137
138	* fix linux autofs detection
139	* fix wrong types in new amq mount xdr processing
140
1412012-01-25  Christos Zoulas <christos@zoulas.com>
142
143	* FreeBSD portability fixes
144
1452012-01-23  Christos Zoulas <christos@zoulas.com>
146
147	* Avoid type punned warnings
148
1492011-12-29  Christos Zoulas <christos@zoulas.com>
150
151	* fix bug I introduced in get_nfs_version that caused it to return 0
152	* add direct support for ext{2,3,4}
153
1542011-12-15  Christos Zoulas <christos@zoulas.com>
155
156	* Include <linux/fs.h> on linux, to grab extra mount flags
157	* Add support for lustre
158
1592011-11-28  Christos Zoulas <christos@zoulas.com>
160
161	* For nfsl mounts, match against either the short local
162	  host name or the fqdn name.
163
1642011-10-06  Christos Zoulas <christos@zoulas.com>
165
166	* Add NFSv4 support (loosely based on Ramya's code).
167	  Currently if the NFSv4 mount fails with ENOENT we fail
168	  back to NFSv3, unless -DNO_FALLBACK.
169	* Replace strdup with xstrdup. It is not nice to replace
170	  system functions with ones that behave differently.
171	* Add various consistency checks (caller function checks
172	  variable for NULL, but callee does not).
173	* Fix error handling in various paths.
174	* Don't check before using XFREE(). free(NULL) works.
175
1762011-09-15  Christos Zoulas <christos@zoulas.com>
177
178	* amq -i addition (prints info about the map files)
179
1802011-09-14  Christos Zoulas <christos@zoulas.com>
181
182	* Solaris OS and compiler fixes from:
183		Hofmann, Frank <Frank.Hofmann@morganstanley.com>
184		Sayle, Alex <Alex.Sayle@morganstanley.com>
185	  - (void)&var generates warnings, removed
186	  - __inline is invalid, changed with inline
187	  - <sys/socket.h> and other headers have extra dependendcies
188			`
1892011-08-11  Christos Zoulas <christos@zoulas.com>
190
191	* fix potential buffer overflow in expand_error()
192	  (Richard Kettlewell). Does not seem to be exploitable.
193
194	* simplify %option parsing to appease ancient flex.
195
1962011-06-21  Christos Zoulas <christos@zoulas.com>
197
198	* add support for linux autofs version 5 (untested)
199
2002011-06-18  Christos Zoulas <christos@zoulas.com>
201
202	* roll back to an older version of libtool that works
203
204	* newer versions of config.guess and config.sub
205
206	* minor fixes to buildall
207
2082011-05-19  Christos Zoulas <christos@zoulas.com>
209
210	* m4/macros/libtool.m4: for AIX AC_LANG_PROGRAM is incorrectly
211	  used and the latest autoconf gives an error. For now just
212	  quote it.
213
214	* configure.in: Fedora Core 15 and RedHat 6 now don't define
215	  af_family_t in <linux/socket.h>, but in <bits/sockaddr.h>.
216	  Include <sys/socket.h> so that we get <bits/sockaddr.h>
217	  indirectly. This caused the <linux/nfs_mount.h> detection
218	  test to fail.
219
2202010-11-24  Erez Zadok  <ezk@fsl.cs.sunysb.edu>
221
222	* m4/macros/os_cflags.m4: for linux, define _GNU_SOURCE (to get
223	definitions for O_LARGEFILE and more).
224
2252010-11-20  Christos Zoulas <christos@zoulas.com>
226
227	* Update news items, add release readme, mark as rc1
228
229	* Fix addopts code to work with options that are key=value
230	  when the built-in hasmntopt() code is not used. The problem
231	  was that the code passed "key=" to hasmntopt not "key".
232
2332009-12-10  Christos Zoulas <christos@zoulas.com>
234
235	* Copy all fields of the am_opts structure
236	  When we introduced am_loc we also added a function to
237	  create a duplicate of an am_opts structure. As it turns
238	  out, that only made a partial copy of the struct and some
239	  fields (e.g. opt_cache) was left blank in the new structure.
240	  Unfortunately any code that was checking the options
241	  through the mntfs structure was mislead by the partial
242	  copy: caching was disabled completely, for example, and
243	  since browsing relies on caching being enabled it wasn't
244	  working either.
245	  From: Krisztian Kovacs <Kris.Kovacs@morganstanley.com>
246
247	* Initialize RPC authentication flavor to AUTH_UNIX instead
248	  of zero. RHEL 5 uses version 6 of the mount_arg structure
249	  that includes the desired RPC authorization flavour.
250	  Unfortunately amd initializes that value to zero, meaning
251	  AUTH_NULL, resulting in all NFS servers denying operations.
252	  From: Krisztian Kovacs <Kris.Kovacs@morganstanley.com>
253
254	* Make sure to remove nodes in the proper order when going
255	  down. Depending on what order the nodes got created it's
256	  possible that the parent of a node has a bigger am_mapno
257	  (index in exported_ap[]) so that it gets freed before
258	  its child while the child's am_parent pointer is still
259	  pointing to the already freed block of memory.
260	  This change makes sure that umount_exported() cleans up
261	  all children of a node first before freeing the node.
262	  From: Krisztian Kovacs <Kris.Kovacs@morganstanley.com>
263
264	* Fix Linux-specific stuff in ops_tmpfs.c
265	  AUTOFS_TMPFS_FS_FLAGS is defined only in the Linux-specific
266	  conf_linux.c file, so it cannot be built on Solaris.
267	  From: Krisztian Kovacs <Kris.Kovacs@morganstanley.com>
268
269        * Add missing parenthesis to fix defined(XXX
270	  From: Krisztian Kovacs <Kris.Kovacs@morganstanley.com>
271
272	* In the previous commit we've already made a change that
273	  makes this code unnecessary since the node is returned
274	  even if the backing file server is known to be down.
275	  Since the code path is unused it should be removed.
276	  From: Krisztian Kovacs <Kris.Kovacs@morganstanley.com>
277
278	* amfs_generic_lookup_child() tries to find an alternate
279	  file server if it detects that the current one is down.
280	  However, in the comparison used to decide if a possible
281	  mount is the same as the current one it compares the am_loc
282	  pointers instead of the actual mntfs pointers. Since
283	  amfs_lookup_one_location() creates a brand new am_loc
284	  structure for the returned mntfs structure the am_loc
285	  pointer will be different even if the mntfs it's pointing
286	  to is the same.
287	  This tricks amfs_generic_lookup_child() think it has
288	  found an alternate file server while it hasn't and thus
289	  starts multiple racing mounts for the very same node and
290	  mntfs.
291	  From: Krisztian Kovacs <Kris.Kovacs@morganstanley.com>
292
293	* In the new am_loc scheme mounted mntfs structures still
294	  have their mf_fo structure left intact. So when restart
295	  creates a fake mntfs for an already mounted filesystem it
296	  should not free mf_fo right away.
297	  From: Krisztian Kovacs <Kris.Kovacs@morganstanley.com>
298
299	* Setting the error flag of the mntfs for which the share
300	  is already mounted results in the mount point not being
301	  removed when it times out. (Amd considers it an error
302	  mntfs and thus umount becomse a no-op.)
303	  From: Krisztian Kovacs <Kris.Kovacs@morganstanley.com>
304
305	* Right now AMD sets all timeout values to their defaults
306	  even if you explicitly set them to zero. This patch
307	  introduces separate flags that store if the respective
308	  values have been set and the code path setting default
309	  values checks these flags instead of testing the values
310	  for zero. [Linux only]
311	  From: Krisztian Kovacs <Kris.Kovacs@morganstanley.com>
312
313	* Fix mntfs related lookup/(un)mount race conditions, by
314	  introducing a new structure linking an mntfs to a node.
315	  From: Krisztian Kovacs <Kris.Kovacs@morganstanley.com>
316
317	* We have to free the buffers allocated by the XDR routines when
318	  decoding the mount response after copying them to their final place.
319	  From: Krisztian Kovacs <Kris.Kovacs@morganstanley.com>
320
3212009-12-09  Christos Zoulas <christos@zoulas.com>
322
323	* Free continuation in amfs_retry() if we don't call amfs_bgmount()
324	  Normally it's amfs_bgmount() which frees the continuation. However, if
325	  the mount is already in progress and we're in amfs_retry() for another
326	  node we don't try mounting the filesystem once again. Still, we have
327	  to free the continuation as we won't get called again and thus would
328	  leak the continuation structure and our am_loc references.
329	  From: Krisztian Kovacs <Kris.Kovacs@morganstanley.com>
330
331	* Fix use-after-free and double free of mntfs private data
332	  ops_nfs.c(nfs_init) does not clear private data pointer after free().
333	  This leads to use-after-free and double free in case mount() fails.
334	  (found by valgrind)
335	  From: Krisztian Kovacs <Kris.Kovacs@morganstanley.com>
336
3372009-11-23  Christos Zoulas <christos@zoulas.com>
338
339	* The temporary filename buffer was leaked in lock_mtab().
340	  From: Krisztian Kovacs <Kris.Kovacs@morganstanley.com>
341
3422009-10-27  Christos Zoulas <christos@zoulas.com>
343
344	* Deal with errno.h->sys/errno.h better
345
3462009-10-26  Christos Zoulas <christos@zoulas.com>
347
348	* Fix issue with autoconf 2.63
349
350	* Fix compile warnings for gcc-4.4.x
351
3522009-04-15  Christos Zoulas <christos@zoulas.com>
353
354	* Share the LDAP connection between different maps to save resources
355	  on the LDAP server. (Olaf Flebbe <o.flebbe@science-computing.de>)
356
3572009-03-20  Christos Zoulas <christos@zoulas.com>
358
359	* Fix largefile re-definitions
360
361	* Fix compilation error caused in previous patch
362
3632009-02-19  Christos Zoulas <christos@zoulas.com>
364
365	* Add a synchronous unmount amq rpc that will wait for the remote
366	  filesystem to be unmounted, or return an error. Enabled by amq -uu
367
3682009-01-11  Erez Zadok  <ezk@fsl.cs.sunysb.edu>
369
370	* amd/ops_udf.c: don't define functions/variables which may not be
371	used.
372
373	* amd/ops_tmpfs.c (mount_tmpfs): force gcc not to complain about
374	unused variables.
375
376	* config.guess.long: properly support Fedora Core.
377
3782009-01-09  Christos Zoulas <christos@zoulas.com>
379
380	* Fix nfs mounts on linux 2.6.26 by explicitly initializing context.
381
382	* Treat an empty sublink as an unset sublink; this allows us to
383	  say sublink:=; in a spec to override the default. (This produces
384	  Bad selector error, but it works. XXX: We need to decide how to
385	  unset a selector. I proposed an unset keyword a while ago).
386
3872009-01-06  Christos Zoulas <christos@zoulas.com>
388
389	* re-renerate all generated files with newer versions of the
390	  auto-tools.
391
392	* move INSTALL to INSTALL.am-utils to avoid conflicts
393
394	* fix incompatibilities with new m4 and new autoconf.
395
396	* add UDF filesystem support.
397
398	* fix NetBSD nfs file handle detection.
399	
4002009-01-02  Christos Zoulas <christos@zoulas.com>
401
402	* add nocasetrans, nojoliet, rrcaseins for cd9660 filesystems
403
4042008-12-03  Christos Zoulas <christos@zoulas.com>
405
406	* allow ldap queries try a comma-separated list of servers given as:
407
408		ldap_hostports = host1:port1,host2,host3:port3
409
410	  original patch from Florian Geyer
411
4122008-09-19  Christos Zoulas <christos@zoulas.com>
413
414	* the auth_create gid on NetBSD is int
415
416	* deal with lossage from flex -P
417
418	* fix missing/incorrect prototypes
419
4202008-09-17  Christos Zoulas <christos@zoulas.com>
421
422	* fix manual page section issues (sorting, non-existant)
423
424	* add missing forward declarations
425
426	* avoid null pointer derefs (coverity)
427
428	* more portable endian detection support
429
430	* implement tmpfs support
431
432	* use sizeof var instead of constant
433
434	* fix yyerror declaration and definition
435
436	* fix yy function renaming, and correct some renaming issues.
437
438	* work around automake < 1.9 issue where ylwrap is not being run
439	  for a single yacc or lex file.
440
441	* NetBSD
442	  - handle headers that need other headers to compile
443	  - add exfs and tmpfs specific glue
444	  - add options log, noatime, nocoredump, nodevmtime, softdep,
445	    symperm, union
446	  - NetBSD's new mount system call needs the size of the opaque
447	    filesystem specific structure, but passing 0 for now works.
448	    We would need to change a lot more code to pass the size from
449	    the fs-specific calls, so for now punt.
450	  - recvfrom takes socklen_t * on NetBSD
451	  - handle newer NetBSD using statvfs
452	  - NetBSD calls its ufs ffs
453
454	* Linux
455	  - Most recent kernels have trouble with trying to parse the pid
456	    hostname and do locking. What before was a silent failure, now
457	    there is a warning printed and the mount is rejected. This is
458	    the simplest fix:
459	    (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=479884)
460
4612007-04-13  Erez Zadok  <ezk@cs.sunysb.edu>
462
463	* amd/sun_map.c (sun_append_str): When translating '&' from Sun
464	automounter maps, replace it with "${key}" in the Amd map, not
465	with the value of the key at the time.  This way '*' maps work
466	too.
467
468	* config.guess.long: don't use -q option to grep because some
469	systems don't support it.  Bug fix for solaris.
470
4712007-03-11  Christos Zoulas  <christos@zoulas.com>
472
473	* amd/opts.c (expand_op): Don't call xstrlcpy() to truncate a
474	string.  It causes spurious xstrlcpy() syslog() errors.  Use
475	memcpy() and explicitly terminate the string.
476
4772007-01-20  Erez Zadok  <ezk@cs.sunysb.edu>
478
479	* updated copyright year to 2007 on all files.
480
4812006-12-27  Erez Zadok  <ezk@cs.sunysb.edu>
482
483	* minor new port: ia64-hp-hpux11.23
484
485	* m4/macros/check_libwrap_severity.m4 (LIBS): also test if caller
486	needs to define rfc931_timeout.
487
488	* amd/sun2amd.c: define rfc931_timeout and allow/deny_severity for
489	libwrap.
490
491	* amd/amq_svc.c: some versions of libwrap require the caller to
492	define rfc931_timeout in addition to allow/deny_severity.
493
494	* amd/amfs_toplvl.c (amfs_toplvl_init): properly detect when
495	forced unmount functionality exists for all systems.
496
497	* libamu/mount_fs.c (compute_nfs_args): reset nfs_args_t->pathconf
498	only if field exists.
499
500	* conf/nfs_prot/nfs_prot_hpux11.h: prevent HPUX 11.23 from
501	including <tiuser> or <sys/tiuser> (TLI definitions are already
502	included from elsewhere).
503
504	* configure.in: detect nfs_args_t->pathconf field.
505
5062006-11-27  Erez Zadok  <ezk@cs.sunysb.edu>
507
508	* doc/Makefile.am: properly publish html files using newer
509	text2html.
510
5112006-11-27  Erez Zadok  <ezk@shekel.local>
512
513        * doc/Makefile.am: obfuscate emails in ChangeLog before it is
514        published on web site.
515
516	* obfuscate many more emails in the distro, esp. of files which get
517        posted on the am-utils web site.
518
5192006-11-26  Erez Zadok  <ezk@shekel.local>
520
521	* minor new port: i386-apple-darwin8.8.1.
522
523        * doc/am-utils.texi: remove obvious URLs used by spammers, and
524        replace them with links to the am-utils web site, which uses PNG
525        images to obfuscate the actual email/mailman URLs.
526
5272006-10-30  Erez Zadok  <ezk@cs.sunysb.edu>
528
529	* doc/am-utils.texi (Password maps): minor typo reported by
530	Christoph P. Kukulies.
531
5322006-10-26  Erez Zadok  <ezk@cs.sunysb.edu>
533
534	* minor new port: i386-pc-linux-fc6.
535
536	* m4/macros/linux_headers.m4: handle newer Linux kernels which
537	removed UTS_RELEASE from <linux/version.h>.
538
5392006-10-25  Erez Zadok  <ezk@cs.sunysb.edu>
540
541	* minor new ports: i386-pc-linux-centos4.4 and
542	powerpc-apple-darwin8.7.0.
543
544	* config.guess.long: recognize CentOS Linux.
545
5462006-06-20  Erez Zadok  <ezk@cs.sunysb.edu>
547
548	* minor new port: i386-pc-solaris2.11-nexentaos (GNU/OpenSolaris).
549
550	* config.guess.long: recognize NexentaOS (GNU/OpenSolaris)
551
552	* config.guess, config.sub: updates from latest official GNU
553	distributions.
554
5552006-05-11  Erez Zadok  <ezk@cs.sunysb.edu>
556
557	* Minor new ports: i386-unknown-freebsd6.1 (RELEASE),
558	powerpc-apple-darwin8.6.0, and i386-unknown-openbsd3.9.
559
5602006-05-10  Erez Zadok  <ezk@cs.sunysb.edu>
561
562	* libamu/mount_fs.c (compute_nfs_attrcache_flags): fix signedness
563	problems on IRIX-6.5.
564
565	* conf/autofs/autofs_solaris_v1.c (xdr_umntrequest): fix
566	signedness problems on IRIX-6.5.
567
5682006-05-01  Erez Zadok  <ezk@cs.sunysb.edu>
569
570	* configure.in: check if libc already includes dbm functionality
571	(as in FreeBSD 6), then don't bother to check specific libraries
572	such as libdbm, gdbm, etc.
573
5742006-04-21  Erez Zadok  <ezk@cs.sunysb.edu>
575
576	* configure.in: detect G/DBM support via gdbm_compat library
577	(Debian 3.1).
578
579	* minor new port: powerpc-apple-darwin8.5.0
580
5812006-04-20  Erez Zadok  <ezk@cs.sunysb.edu>
582
583	* scripts/amd.conf-sample, scripts/amd.conf.5, doc/am-utils.texi,
584	NEWS: document new nfs_allow_any_interface parameter.
585
586	* include/am_compat.h (INADDR_LOOPBACK): define INADDR_LOOPBACK if
587	not defined, since some systems don't have it.
588
5892006-04-20  Nick Williams <Nick.Williams@morganstanley.com>
590
591	* libamu/wire.c (is_interface_local): new boolena function to
592	determine if address represents any of the local interfaces.
593	(getwire): more properly check if address equals INADDR_LOOPBACK,
594	not if IFF_LOOPBACK is not (the latter isn't as correct).
595
596	* include/am_utils.h: extern for new is_interface_local() function.
597
598	* conf/transp/transp_{sockets,tli}.c: don't define INADDR_LOOPBACK
599	here but in am_compat.h
600
601	* amd/nfs_prot_svc.c (nfs_program_2): if
602	nfs_allow_any_interface=yes, then allow NFS packets from any local
603	interface (not just 127.0.0.1).
604
605	* amd/conf.c (gopt_nfs_allow_any_interface): implement the new
606	amd.conf parameter nfs_allow_any_interface.
607
608	* amd/amd.h (CFM_NFS_ANY_INTERFACE): define new global flag when
609	al interfaces are acceptable for local NFS packets.
610
6112006-04-18  Christos Zoulas  <christos@zoulas.com>
612
613	* amd/opts.c: Add support for optionally specifying the hostname
614	to match against the netgroup in the netgrp and netgrpd selectors.
615
6162006-04-16  Erez Zadok  <ezk@cs.sunysb.edu>
617
618	* libamu/mtab.c (hasmntval): fix inverted meaning of error from
619	hasmntvalerr().
620
6212006-04-14  Erez Zadok  <ezk@cs.sunysb.edu>
622
623	* libamu/mount_fs.c (compute_nfs_attrcache_flags): use new
624	hasmntvalerr() function to set attribute cache values only if they
625	were set (regardless whether they were set to zero or a non-zero
626	value).  Before, we were unable to distinguish between an error to
627	parse an option, and a user who actually wanted to set an
628	attribute-cache value to 0.  This now fixes an important
629	performance bug that Amd was turning off the attribute caches even
630	for regular (non-automounter) NFS mounts.
631
632	* libamu/mtab.c (hasmntvalerr): new function to set the value of
633	an option into an integer, but ONLY if that options was set and
634	parsed correctly.  This function returns 1 on error, 0 on success
635	(instead of always setting the option value to 0).
636	(hasmntval): wrapper function around hasmntvalerr, which maintains
637	backwards compatibility (always sets option value to 0, even on
638	error to parse the option).
639
640	* amd/nfs_subr.c (fh_to_mp3): use long int printf format for
641	fhh_pid.
642
6432006-04-05  Christos Zoulas  <christos@zoulas.com>
644
645	* amd/amfs_generic.c (amfs_lookup_mntfs): fix use-after-free bug
646	(Coverity).
647
6482006-03-27  Erez Zadok  <ezk@cs.sunysb.edu>
649
650	* doc/am-utils.texi, scripts/{amd.conf.5,amd.conf-sample}:
651	document new nfs_retransmit_counter_toplvl and
652	nfs_retry_interval_toplvl global amd.conf parameters.
653
654	* amd/conf.c (gopt_nfs_retransmit_counter_toplvl,
655	(gopt_nfs_retry_interval_toplvl): parse amd.conf
656	nfs_retransmit_counter_toplvl and nfs_retry_interval_toplvl global
657	parameters.
658
659	* amd/amfs_toplvl.c (amfs_toplvl_mount): support setting toplvl
660	timeo/retrans parameters for Amd's toplvl mounts, separately from
661	all other UDP or NFS mounts.
662
663	* amd/amd.h: define a new timeo/retrans parameter for toplvl
664	mounts.
665
6662006-03-22  Erez Zadok  <ezk@cs.sunysb.edu>
667
668	* minor new port: i386-pc-linux-suse10.1 (beta 8).
669
6702006-03-21  Christos Zoulas  <christos@zoulas.com>
671
672	* amd/am_ops.c (merge_opts): Remove useless check found by
673	Coverity; xmalloc never returns NULL.
674
6752006-03-21  Erez Zadok  <ezk@cs.sunysb.edu>
676
677	* minor new ports: i386-pc-linux-fc5.
678
679	* amd/info_ldap.c: as of Linux Fedora Core 5 (which comes with
680	openldap-2.3.9), the ldap.h headers deprecate several functions
681	used in this file, such as ldap_unbind.  You get compile errors
682	about missing extern definitions.  Those externs are still in
683	<ldap.h>, but surrounded by an ifdef LDAP_DEPRECATED.  I am
684	turning on that ifdef at the top of info_ldap.c, under the
685	assumption that the functions may be deprecated, but they still
686	work for this (older?) version of the LDAP API.  It gets am-utils
687	to compile, but it is not clear if it will work perfectly.
688
689	* libamu/xdr_func.c (xdr_am_mountres3_ok), amq/amq_xdr.c
690	(xdr_amq_mount_tree, xdr_amq_mount_tree_p,
691	xdr_amq_mount_info_list, xdr_amq_mount_tree_list), amq/amq.c
692	(show_mti), amd/amq_subr.c (xdr_amq_setopt, xdr_amq_mount_subtree,
693	xdr_amq_mount_tree, xdr_amq_mount_tree_list, xdr_amq_mount_tree),
694	libamu/xdr_func.c (xdr_am_mountres3_ok): use casing magic to stop
695	GCC-4.1 from complaining about "dereferencing type-punned pointer
696	will break strict-aliasing rules" here (but not elsewhere).
697
6982006-03-20  Christos Zoulas  <christos@zoulas.com>
699
700	* libamu/wire.c: avoid potential dereferencing of a NULL pointer
701	(Coverity).
702
703	* hlfsd/homedir.c (delay): remove unnecessary check for NULL
704	pointer (Coverity).
705
706	* fsinfo/fsi_analyze.c (analyze_dkmounts, analyze_mounts,
707	analyze_mounts): avoid potential dereferencing of a NULL pointer
708	(Coverity).
709
710	* conf/transp/transp_sockets.c (create_amq_service): avoid
711	potential dereferencing of a NULL pointer (Coverity).
712
713	* amd/sched.c (sigchld): properly check for the end of the waiting
714	process list (Coverity).
715
716	* amd/mapc.c (mapc_create): initialize 'modify' to zero (Coverity).
717
718	* amd/autil.c (amfs_mkcacheref, am_unmounted): avoid potential
719	dereferencing of a NULL pointer (Coverity).
720
721	* amd/amfs_generic.c (amfs_lookup_mntfs): free def_opts before
722	reusing it (memory leak bug detected by Coverity).
723	(amfs_bgmount): avoid potential dereferencing of a NULL pointer
724	(Coverity).
725
726	* amd/am_ops.c (merge_opts): no need to check if newstr is NULL
727	(bug detected by Coverity).
728
7292006-03-08  Ion Badulescu  <ionut@moisil.badula.org>
730
731	* amd/nfs_subr.c (mp_to_fh): fixed old-style filehandles--the pid
732	comparison was failing.
733
7342006-03-08  Erez Zadok  <ezk@cs.sunysb.edu>
735
736	* configure.in: properly test for either <gdbm/ndbm.h> or
737	<gdbm-ndbm.h> (unfortunately, Autoconf will map both names to the
738	same $ac_cv_* variable name).  Some systems support one header or
739	another.  Patch inspired by work Debian did.
740
7412006-02-16  Daniel P. Ottavio  <ottavio@vm.fsl.cs.sunysb.edu>
742
743	* amd/sum_map_tok.l: Fixed a bug in a regular expression that
744	prevented dashes in hostnames.  This was posted in BZ by Thomas
745	A. Fine.
746
747	* README.sun2amd: Fixed a typo.  Sentence mentions use of autofs
748	type when it should be host type.
749
7502006-01-04  Erez Zadok  <ezk@cs.sunysb.edu>
751
752	* doc/am-utils.texi (auto_attrcache Parameter): revise discussion
753	to mention pros and cons of turning on/off this parameter,
754	including impact on Amd's performance, and ways to improve
755	performance while minimizing the window of vulnerability in which
756	kernel may return the wrong (cached) attributes.
757
7582006-01-02  Erez Zadok  <ezk@cs.sunysb.edu>
759
760	* updated copyright year to 2006 on all files.
761
7622005-12-20  Erez Zadok  <ezk@cs.sunysb.edu>
763
764	* include/am_utils.h, conf/transp/transp_tli.c (amu_svc_register,
765	register_autofs_service): use a consistent prototype for the
766	dispatch function of the autofs service de/registration functions.
767
7682005-12-03  Erez Zadok  <ezk@cs.sunysb.edu>
769
770	* minor new ports: i386-unknown-netbsdelf2.1,
771	i386-unknown-netbsdelf3.0 (RELEASE), and i386-unknown-openbsd3.8.
772
7732005-12-02  Erez Zadok  <ezk@cs.sunysb.edu>
774
775	* m4/macros/check_field.m4: remove double inclusion of msdosfs
776	headers, which are included in mount_header1.h (netbsd 2.1 doesn't
777	protect <msdosfs/msdosfsmount.h> which causes compile errors).
778
7792005-11-08  Erez Zadok  <ezk@cs.sunysb.edu>
780
781	* minor new port: i386-unknown-freebsd6.0 (RELEASE)
782
7832005-10-26  Erez Zadok  <ezk@cs.sunysb.edu>
784
785	* amd/amq_subr.c (amqproc_pawd_1_svc): repeatedly resolve path in
786	Amd, not in pawd (to avoid repeated network RPCs).
787
788	* amq/pawd.c (transform_dir): move repeated path resolution into Amd.
789
7902005-10-25  Erez Zadok  <ezk@cs.sunysb.edu>
791
792	* amq/pawd.c (transform_dir): resolve path repeatedly until
793	finished.  Bug fix from Jonathan Chen <jon+amd-at-spock.org>.
794	Added safety check to prevent infinite loops.
795
7962005-10-19  Erez Zadok  <ezk@cs.sunysb.edu>
797
798	* doc/am-utils.texi (opts Option): document new pcfs options
799	longname, nowin95, shortname, user=N, group=N, mask=N, and
800	dirmask=N.
801
802	* amd/ops_pcfs.c (mount_pcfs): process new pcfs options longname,
803	nowin95, shortname, user=N, group=N, mask=N, and dirmask=N.
804
805	* include/am_compat.h: provide compatibility mnttab string names,
806	if needed, for pcfs mount options longname, nowin95, shortname,
807	user=N, group=N, mask=N, and dirmask=N.
808
809	* include/am_utils.h: extern for hasmntstr().
810
811	* libamu/mtab.c (hasmntstr): new function to return the string
812	value following a mount option, up to the next comma-delimited
813	options.
814
815	* configure.in: check for mnttab and pcfs options longname,
816	nowin95, and shortname.
817
818	* Makefile.am (EXTRA_DIST_M4): distribute new macro
819	check_mnt2_pcfs_opt.m4.
820
821	* m4/macros/check_mnt2_pcfs_opt.m4: new macro to check for pcfs
822	mnttab and mount options.
823
8242005-10-18  Erez Zadok  <ezk@cs.sunysb.edu>
825
826	* libamu/mount_fs.c (print_nfs_args): print nfs_args->addr
827	correctly, depending if it's a pointer or not.
828
829	* conf/sa_dref/sa_dref_*.h: for each NFS_SA_DREF macro, also
830	#define NFS_ARGS_T_ADDR_IS_POINTER if nfs_args->addr is a pointer
831	or an embedded structure, so we can tell how to print it.
832
833	* libamu/mount_fs.c (print_nfs_args): print nfs_args->addrlen
834	field, if it exists.
835
836	* configure.in: check for nfs_args->addrlen field.
837
838	* wire-test/wire-test.c (main), libamu/mount_fs.c
839	(print_nfs_args), fixmount/fixmount.c (inetresport,
840	clnt_create_timeout), amq/pawd.c (transform_dir), amq/amq.c
841	(main), amd/srvr_nfs.c (find_nfs_srvr), amd/autil.c
842	(amfs_mount): document that as per POSIX, we don't need to set the
843	sa_len/sin_len fields in struct sockaddr/sockaddr_in.  The field
844	is used only internally in the kernel.  See
845	www.awprofessional.com/articles/article.asp?p=169505&seqNum=2&rl=1
846
847	* fixmount/fixmount.c (inetresport): initialize sockaddr_in
848	structure before filling in some fields.
849
8502005-10-11  Erez Zadok  <ezk@cs.sunysb.edu>
851
852	* doc/am-utils.texi (nfs_vers, nfs_proto parameters): clarify and
853	correct mistaken description of nfs_proto.
854
8552005-10-10  Erez Zadok  <ezk@cs.sunysb.edu>
856
857	*******************************************************************
858	*** Released am-utils-6.1a1					***
859	*******************************************************************
860
861	* README.sun2amd: revised.
862
8632005-10-09  Daniel P. Ottavio  <dottavio@ic.sunysb.edu>
864
865	* amd/info_nis.c (nis_search): Bug fix for bugzilla #428; make
866	sure that sun_entry2amd() is not called when yp_match() returns an
867	error, this is done by checking that 'res' is 0.  Bug fix (same
868	BZ#); free the output allocated by yp_match() instead of freeing
869	the return value of sun_entry2amd().
870
871	* amd/sun_map.c (sun_entry2amd): Fix a comment.
872
873	* README.sun2amd: Made a first pass at describing the status of
874	the sun2amd feature.
875	Moved the date.
876
8772005-10-09  Erez Zadok  <ezk@cs.sunysb.edu>
878
879	* README.sun2amd: place holder.
880
881	* Makefile.am (EXTRA_DIST): distribute new README.sun2amd file.
882
8832005-10-07  Erez Zadok  <ezk@cs.sunysb.edu>
884
885	* m4/macros/check_mnttab_type.m4: move the test for MOUNT_* to the
886	very end, after the test using getvfsbyname().
887
888	* m4/macros/expand_run_string.m4: if the string value returned is
889	empty, consider it invalid.
890
891	* m4/macros/check_varargs_macros.m4: rewrite macro so it'll
892	try and compile the varargs test, not just cpp it.  Some systems
893	pass the old cpp test, but not when you actually try to compile
894	the code (Tru64's cc).
895
896	* conf/autofs/autofs_solaris_v1.h: redefine
897	autofs_strdup_space_hack as a macro to str3cat(NULL,(s)," ","").
898	This works everywhere and we avoid linking problems, inline
899	functions, etc.
900
901	* conf/autofs/autofs_solaris_v1.c (autofs_mount_fs): remove
902	autofs_strdup_space_hack() function altogether.
903
904	* m4/macros/os_cflags.m4: remove hack that hardcodes pte_t=u_int.
905
906	* configure.in: test for <sys/immu.h> header.
907	Test for pte_t, but only on IRIX6 systems.
908
909	* Makefile.am (EXTRA_DIST_M4): distribute new type_pte_t.m4 file.
910
911	* m4/macros/type_pte_t.m4: new test for existence of pte_t
912	typedef, needed on some IRIX-6.5/gcc systems.
913
914	* m4/macros/header_templates.m4: add missing templates for
915	HAVE_EXTERN_GETDTABLESIZE, HAVE_EXTERN_GETWD, and
916	HAVE_EXTERN_UALARM.
917
918	* amd/info_exec.c (exec_map_open): break assignment from inside
919	conditional, to work around an IRIX-6.5 cc bug.
920
921	* amd/Makefile.am (amd_LDADD, sun2amd_LDADD): put libaminfo.a
922	before libamu.la.  Some linkers (e.g., IRIX-6.5) incorrectly
923	complain about undefined symbols.
924
925	* fsinfo/fsi_util.c (set_ether_if), amd/map.c (unmount_mp),
926	libamu/xutil.c (expand_error), libamu/strutil.c (xsnprintf): avoid
927	comparison between signed and unsigned integers.
928
929	* conf/autofs/autofs_solaris_v1.h, conf/autofs/autofs_solaris_v1.c
930	(autofs_strdup_space_hack): move "space_hack" function from static
931	inline in header, into the only source file that needs it.  This
932	is cleaner and also prevents linking problem with some compilers
933	that won't apply CPP macros inside static inline functions (for
934	the strl* functions).
935
936	* amq/pawd.c (find_mt, find_mlp): remove obsolete, inefficient
937	code.
938	(transform_dir): call the new, efficient amqproc_pawd_1() routine.
939
940	* amq/amq_clnt.c (amqproc_pawd_1): AMQPROC_PAWD wrapper routine.
941
942	* amq/amq.h (amqproc_pawd_1): extern for amq's AMQPROC_PAWD
943	wrapper routine.
944
945	* amd/amq_svc.c (amq_program_1): dispatch point for
946	amqproc_pawd_1_svc.
947
948	* amd/amq_subr.c (amqproc_pawd_1_svc): moved pawd's path-matching
949	functionality into Amd, where it can be done a lot more
950	efficiently.  We don't have to construct and ship a whole export
951	tree from Amd to pawd.  We just get a variable-length
952	xdr_wrapstring for the user's path, iterate over the entire export
953	list inside Amd, and return only a matched string if found
954	(otherwise we return "" to indicate that there was no match, and
955	let pawd printf the same string it sent over).
956
957	* amd/amd.h: extern for amqproc_pawd_1_svc, amd's service routine
958	the AMQPROC_PAWD RPC.
959
9602005-10-06  Erez Zadok  <ezk@cs.sunysb.edu>
961
962	* ltmain.sh, m4/macros/libtool.m4: update to libtool-1.5.20.
963	Fixes Tru64 bugs when using ksh.
964
965	* amd/amfs_toplvl.c (amfs_toplvl_mount): break complex ifdef macro
966	into two sections, to workaround a C99 varargs-macro bug in
967	gcc-3.2.2 (RH9).
968
969	* libamu/wire.c (print_wires): convert argument-less xsnprintf to
970	xstrlcpy.
971
972	* include/am_utils.h: use new HAVE_C99_VARARGS_MACROS or
973	HAVE_GCC_VARARGS_MACROS to pass file name and line number to
974	xsnprintf/xvsnprintf.
975
976	* libamu/strutil.c (xsnprintf, xvsnprintf): if debugging is on,
977	then also print the source file name and line number that called
978	xsnprintf/xvsnprintf with a buffer that wasn't large enough (most
979	likely an am-utils bug).
980
981	* Makefile.am (EXTRA_DIST_M4): distribute new
982	check_varargs_macros.m4 file.
983
984	* configure.in: execute new AMU_VARARGS_MACROS test.
985
986	* m4/macros/check_varargs_macros.m4: new test to check what style
987	of variable-length argument macros, if any, does the
988	compiler/pre-processor supports.
989
990	* conf/autofs/autofs_solaris_v2_v3.c (autofs_lookup_2_req)
991	conf/autofs/autofs_solaris_v1.c (autofs_mount_1_req), amd/opts.c,
992	amd/nfs_subr.c (nfsproc_lookup_2_svc), amd/nfs_start.c
993	(mount_automounter), amd/get_args.c (get_args), amd/amfs_toplvl.c,
994	amd/amfs_auto.c (amfs_auto_mount), amd/amd.h, amd/amd.c (main):
995	use sizeof() instead of fixed SIZEOF_* macros.
996
997	* libamu/strutil.c (xstrlcat, xstrlcpy), include/am_utils.h
998	(DEBUG): if debugging is on, then also print the source file name
999	and line number that called xstrl* with a buffer that wasn't large
1000	enough (most likely an am-utils bug)
1001
1002	* include/am_compat.h (INADDR_NONE): define in a common location,
1003	if OS doesn't have it, use 0xffffffffU which should work with any
1004	ANSI compiler.
1005
1006	* fixmount/fixmount.c, libamu/wire.c: remove local definition of
1007	INADDR_NONE.
1008
1009	* amd/amfs_toplvl.c (amfs_toplvl_mount), amd/amfs_auto.c
1010	(amfs_auto_mount): use common SIZEOF_OPTS in definition and call
1011	to autofs_get_opts.
1012
1013	* amd/amd.h (SIZEOF_OPTS): moved #define to common header.
1014
10152005-10-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1016
1017	* amd/opts.c (expand_op): Need to check BUFSPACE for env for
1018	vlen+1.  Likewise for cp and strlen(cp)+1.
1019
1020	* amd/amfs_toplvl.c (amfs_toplvl_mount) [HAVE_FS_AUTOFS]: Pass new
1021	size argument to autofs_get_opts.
1022
10232005-10-05  Erez Zadok  <ezk@cs.sunysb.edu>
1024
1025	* amq/pawd.c (transform_dir): was using UDP only.  Now will also
1026	try TCP if UDP failed.  Destroy client after use to avoid leftover
1027	TCP sockets in the kernel.
1028
1029	* libamu/hasmntopt.c (amu_hasmntopt): increase size of MNTMAXSTR
1030	from 128 to to 256, because some users have really long option
1031	strings.  Suggestion from jon+amd-at-spock.org.
1032
1033	* amd/opts.c (expand_op): should check BUFSPACE for vlen+1, not
1034	just vlen.  Bug discovered when started using xstrlcpy().
1035
1036	* ALL: convert from using strcat to the safer xstrlcat, and from
1037	strcpy to safer xstrlcpy.
1038
10392005-10-04  Erez Zadok  <ezk@cs.sunysb.edu>
1040
1041	* hlfsd/hlfsd.h: remove old fatalerror() and ERRM macros.
1042
1043	* hlfsd/hlfsd.c (fatalerror): new function instead of macro.
1044	Easier to use xstrlcat in this new function.
1045
1046	* amd/amd.h, include/am_utils.h, amd/amd.c: moved 'hostd' extern
1047	from am_utils.h to amd.h, and define its size as a macro that
1048	could be passed to xstrl*().
1049
1050	* ALL: convert from using sprintf to the safer xsnprintf.
1051
1052	* mk-amd-map/Makefile.am (LDADD): link with libamu to get
1053	xsnprintf().
1054
1055	* amd/amd.h, amd/amd.c, include/am_utils.h: moved pid_fsname
1056	extern from am_utils.h to amd.h, and define its size as a macro
1057	that could be passed to xsnprintf().
1058
10592005-10-02  Erez Zadok  <ezk@cs.sunysb.edu>
1060
1061	* libamu/Makefile.am: use strutil.c, not util.c.
1062
1063	* libamu/strutil.c: rename from util.c to explain better purpose
1064	of file.  Move xvsnprintf and xsnprintf from xutil.c to this file.
1065
1066	* libamu/xutil.c: explain purpose of file.  Move mkdirs/rmdirs
1067	code from old util.c.
1068
10692005-10-01  Erez Zadok  <ezk@cs.sunysb.edu>
1070
1071	* m4/macros/header_templates.m4: templates for FFS.
1072
1073	* m4/macros/check_mnttab_type.m4: on BSD44 systems, check for file
1074	system mount table name via the MOUNT_* mount(2) macros (because
1075	BSD44 keeps the mount table in the kernel).
1076
1077	* configure.in: synchronise order of searching for mnttab entries
1078	and mount names.  The new order is "ext3 ext2 ffs ufs 4.2 4.3 4.4
1079	efs xfs jfs ultrix" (which would prefer ffs on BSD44 instead of
1080	ufs, and ext3 instead of ext2 on Linux).
1081
1082	* include/am_defs.h: include <sys/statvfs.h> if it exists.
1083
1084	* conf/nfs_prot/nfs_prot_netbsd1_4.h: NetBSD 3 has both statfs()
1085	and statvfs(), but the latter is preferred, so #define to use
1086	statvfs.
1087
1088	* configure.in: check for statfs(), statvfs(), and
1089	<sys/statvfs.h>.
1090
1091	* config.guess.long: strip trailing '.' on "netbsdelf3.0."
1092	(Beta).  Workaround for bug in config.guess.
1093
1094	* config.{guess,sub}: update to latest versions.
1095
10962005-09-30  Christos Zoulas  <christos@zoulas.com>
1097
1098	* fsinfo/fsi_util.c (set_ether_if): use INADDR_NONE instead of
1099	hard-coded value of -1.
1100
1101	* include/amq_defs.h (AMQ_STRLEN): increase default size from 2KB
1102	to 16KB.  We can afford it these days.
1103
1104	* libamu/strcasecmp.c (strcasecmp): use unsigned chars in
1105	tolower() to avoid sign/size promotion bugs.
1106
1107	* libamu/xutil.c (switch_to_logfile): don't output to LOG_CONS by
1108	default (it's unfriendly).  If user really wants to, they can set
1109	it in /etc/syslog.conf.
1110
11112005-09-29  Erez Zadok  <ezk@cs.sunysb.edu>
1112
1113	* amq/pawd.c (find_mt): if the auto mount type is used, pawd could
1114	go into an infinite loop since the mt_directory and mt_mountpoint
1115	fields are the same for auto mounts.  Solution: ignore type auto
1116	mounts, similar to toplvl.  Bug fix from Jonathan Chen
1117	<jon+amd@spock.org>.
1118
1119	* README.attrcache: document test-attrcache script.
1120
1121	* scripts/Makefile.am (noinst_SCRIPTS): build test-attrcache
1122	script.
1123
1124	* configure.in: build scripts/test-attrcache script and chmod it
1125	so it can be executed in place.
1126
1127	* scripts/test-attrcache.in: script to test the NFS attribute
1128	cache using Amd.
1129
11302005-09-26  Erez Zadok  <ezk@cs.sunysb.edu>
1131
1132	* hlfsd/stubs.c (nfsproc_getattr_2_svc, nfsproc_lookup_2_svc,
1133	nfsproc_readlink_2_svc, nfsproc_readdir_2_svc), hlfsd/hlfsd.c
1134	(hlfsd_init): use new clocktime() function.
1135
11362005-09-18  Erez Zadok  <ezk@cs.sunysb.edu>
1137
1138	* README.attrcache: document netbsd's patchs to support noac.
1139
1140	* libamu/mount_fs.c (compute_nfs_attrcache_flags): cleanup the
1141	code that sets the ac{reg,dir}{min,max} fields so it also sets the
1142	appropriate nfs_args->flags such as MNT2_NFS_OPT_ACREGMIN.
1143
1144	* configure.in: check for nfs_args fields acregmax and acdirmax.
1145
1146	* README.attrcache: new file documenting in detail OS bugs
1147	relating to attribute caching, which can affect Amd's reliability
1148	under heavy load.
1149	Update status of freebsd and openbsd.
1150
1151	* doc/Makefile.am: install README.attrcache file as attrache.txt
1152	file on am-utils Web site.
1153
1154	* Makefile.am (EXTRA_DIST): include README.attrcache in distro.
1155
1156	* BUGS, NEWS, doc/am-utils.texi (auto_attrcache Parameter),
1157	scripts/amd.conf.5, scripts/amd.conf-sample: document attribute
1158	cache bugs on some OSs.
1159
11602005-09-17  Erez Zadok  <ezk@cs.sunysb.edu>
1161
1162	* libamu/xutil.c (clocktime): newly implemented routine.  Uses
1163	gettimeofday() each time to return a high-resolution clock time,
1164	and does not "cache" the last time.  Returns time in seconds, just
1165	like the old implementation.  If passed a non-null argument, will
1166	fill it in with the current time in seconds+microseconds.
1167
1168	* libamu/xutil.c: remove actual declaration of clock_valid, and
1169	another never-used declaration for xclock_valid.
1170
1171	* include/am_utils.h: remove defunct definition of clocktime()
1172	macro and clock_valid variable.  Add extern for new definition.
1173
1174	* libamu/mount_fs.c (mount_fs), hlfsd/homedir.c (homedir,
1175	hlfsd_diskspace, hlfsd_getpwent, plt_reset, table_add),
1176	hlfsd/hlfsd.c (main, hlfsd_init, reload, cleanup),
1177	conf/mtab/mtab_mach3.c (open_locked_mtab), conf/mtab/mtab_file.c
1178	(open_locked_mtab), amd/nfs_start.c (do_select, run_rpc),
1179	amd/autil.c (host_normalize): remove defunct clock_valid.
1180
1181	* amd/nfs_subr.c (nfsproc_getattr_2_svc): Print microseconds for
1182	node's mtime.
1183	(fh_to_mp3): use new clocktime() to update mtime and get a better
1184	time resolution.
1185
1186	* amd/mapc.c (mapc_reload_map): change prototype from returning
1187	void to returning an int.  If reloading was needed and succeeded,
1188	return 1; else return 0.
1189	(mapc_sync): update mtime of parent node if needed.  This is a
1190	CRITICAL FIX, to ensure that the kernel flushes its DNLC/dcache
1191	when we run "amq -f" manually or when a map is reloaded.
1192
1193	* amd/map.c (new_ttl): update am_ttl and na_atime in one shot.
1194	(init_map): use new clocktime().
1195	(unmount_mp): if the OS doesn't support a "symttl" option, then
1196	update the mtime of the parent node using the clocktime(); but if
1197	the time hasn't gotten changed because of rapid Amd accesses on
1198	systems that don't have a micro-second NFS-client resolution, then
1199	increment mtime by one arbitrarily (this could, on some systems
1200	and under pathological cases, result in mtime's that are in the
1201	future).
1202
1203	* amd/autil.c (forcibly_timeout_mp): MAJOR BUG FIX: force mtime
1204	update of parent dir, to prevent DNLC/dcache from caching the old
1205	entry, which could result in ESTALE errors, bad symlinks, and
1206	more.
1207	(am_mounted): record mount time, and update am_stats at the same
1208	time, using the double-action redone clocktime() routine.
1209	(am_mounted): update parent's mtime from that of the child.
1210	(am_unmounted): when unmounting an entry, update mtime of parent
1211	node.
1212
1213	* amd/amfs_generic.c (amfs_bgmount): now that clocktime() doesn't
1214	remember it's last non-zero value, save it in a temporary variable
1215	to avoid a TOCTOU problem (between an "if" and a "dlog").
1216
1217	* libamu/xutil.c (show_time_host_and_name),
1218	conf/autofs/autofs_linux.c (autofs_mounted, autofs_timeout_mp),
1219	amd/srvr_nfs.c (nfs_keepalive_callback, nfs_keepalive_timeout)
1220	(find_nfs_srvr), amd/rpc_fwd.c (fwd_alloc), amd/nfs_subr.c
1221	(nfsproc_getattr_2_svc), amd/nfs_start.c (do_select, run_rpc),
1222	amd/mapc.c (root_init), amd/map.c(map_flush_srvr, timeout_mp),
1223	amd/info_ndbm.c (ndbm_init), amd/info_ldap.c (amu_ldap_rebind),
1224	amd/info_file.c (file_open), amd/info_exec.c (fgets_timed,
1225	exec_search), amd/clock.c (timeout, softclock), amd/autil.c
1226	(forcibly_timeout_mp), amd/amfs_generic.c (amfs_retry,
1227	amfs_bgmount, amfs_generic_mount_child), amd/amd.c (main): pass
1228	NULL to clocktime().
1229
12302005-09-15  Erez Zadok  <ezk@cs.sunysb.edu>
1231
1232	* amd/nfs_subr.c (nfsproc_getattr_2_svc): initialize 'retry', just
1233	in case.
1234	(fh_to_mp3): increment amd_stats.d_stale counter only if we are
1235	actually returning ESTALE.
1236
1237	* amd/info_exec.c (exec_parse_qanswer), amd/info_file.c
1238	(file_search_or_reload), amd/info_hesiod.c (hesiod_search),
1239	amd/info_ldap.c (amu_ldap_search), amd/info_ndbm.c (search_ndbm),
1240	amd/info_nis.c (nis_search), amd/info_nisplus.c (nisplus_search,
1241	nisplus_search): don't dereference mnt_map->cfm which may be null
1242	if we're not using an amd.conf file.
1243
12442005-09-14  Erez Zadok  <ezk@cs.sunysb.edu>
1245
1246	* libamu/xutil.c (unregister_amq): if failed to de-register Amd
1247	from portmapper, report it under dlog (debugging), not as an
1248	annoying plog that always shows up.
1249
12502005-09-13  Erez Zadok  <ezk@cs.sunysb.edu>
1251
1252	* mk-amd-map/mk-amd-map.c (read_file_file), libamu/util.c
1253	(strsplit), libamu/hasmntopt.c (nextmntopt), amd/sun_map.c
1254	(sun_entry2amd), amd/sun2amd.c (sun2amd_convert_convert),
1255	amd/mapc.c (mapc_add_kv), amd/info_file.c (file_search_or_reload),
1256	amd/info_exec.c (exec_parse_qanswer): cast isspace() and isascii()
1257	arg to unsigned char, which is safer as per Christos.
1258
1259	* amd/sun_map.c (sun_entry2amd): isspace takes an int, not a char.
1260
1261	* configure.in: keep a dummy unused AM_PROG_LEX, because old
1262	Automake (1.6.3) looks for it if you refer to LEX in your
1263	Makefile.am files.  Silly thing, fixed in newer versions of
1264	Automake (1.9.2).
1265
12662005-09-11  Erez Zadok  <ezk@cs.sunysb.edu>
1267
1268	* Makefile.am (EXTRA_DIST_M4): add prog_{lex,yacc}.m4 to distro.
1269
1270	* configure.in: use new macros AMU_PROG_YACC and AMU_PROG_LEX.
1271
1272	* m4/macros/prog_yacc.m4: new macro to check if bison/yacc/byacc
1273	exist, but exist with an error if none found.
1274
1275	* m4/macros/prog_lex.m4: new macro to check if f/lex exist, but
1276	exit with an error if not found (am-utils requires f/lex).
1277
12782005-09-07  Erez Zadok  <ezk@cs.sunysb.edu>
1279
1280	* minor new port: powerpc-apple-darwin8.2.0.
1281
1282	* m4/macros/type_auth_create_gidlist.m4: Old macosx used "gid_t"
1283	but all newer ones (10.4+) use int.
1284
1285	* m4/macros/type_recvfrom_fromlen.m4: Old macosx used "int" for
1286	6th arg of recvfrom(), but all newer ones (10.4+) use socklen_t.
1287
1288	* minor new port: i386-pc-linux-deb3.1.
1289
12902005-09-02  Erez Zadok  <ezk@cs.sunysb.edu>
1291
1292	* conf/mount/mount_linux.c: If autoconf didn't find any disk-based
1293	file system on this system (probably because /proc isn't mounted),
1294	then provide some default definition for this file to compile.
1295
12962005-08-28  Daniel P. Ottavio  <dottavio@ic.sunysb.edu>
1297
1298	* amd/sun_map.c (sun_entry2amd) : Wipe out any trailing white
1299	spaces or '\n' before passing strings to the parser.
1300
1301	* amd/amd.h : oops, reverting bad changes
1302
1303	* amd/info_file.c : oops, reverting bad changes
1304
1305	* amd/mapc.c : oops, reverting bad changes
1306
1307	* amd/sun_map_parse.y : oops, reverting bad changes
1308
13092005-08-27  Erez Zadok  <ezk@cs.sunysb.edu>
1310
1311	* libamu/xutil.c: amd_program_number is a u_long now.
1312	(unregister_amq): if pmap_unset failed to de-register Amd from the
1313	portmapper, print an error message.
1314	(get_amd_program_number): returns a u_long now.
1315	(set_amd_program_number): take a u_long now.
1316
1317	* include/am_utils.h: get_amd_program_number() returns u_long now.
1318	set_amd_program_number() takes a u_long now.
1319
1320	* amq/amq.c: amd_program_number is a u_long, not int.
1321
1322	* amd/nfs_start.c (mount_automounter): when registering Amd with
1323	the portmapper (for Amq service), don't fail if just one of TCP or
1324	UDP failed to register, but only if both transports failed.  That
1325	way Amq can still contact Amd using the transport that did
1326	register correctly.  However, now, if both transports failed to
1327	register, then set amd_state to "Done" so it would shutdown
1328	cleanly.
1329
1330	* conf/transp/transp_{sockets,tli{}.c (amu_svc_register): better
1331	comments.
1332
1333	* libamu/xutil.c: debug_flags should always be initialized to
1334	D_CONTROL (amq,daemon,fork).
1335	(debug_option): allow setting initial immutable debug_flags via
1336	amd.conf; afterward, prevent it (i.e., one tries it via "amq -D").
1337
1338	* Makefile.am (DISTCLEANFILES): also remove amu_autofs_prot.h,
1339	config.cache.old, and dbgcf.h on "make distclean".
1340	(CLEANFILES): remove dbgcf on plain "make clean".
1341
1342	* amd/Makefile.am (DISTCLEANFILES): also remove ops_autofs.c on
1343	"make distclean".
1344
13452005-08-27  Daniel P. Ottavio  <dottavio@ic.sunysb.edu>
1346
1347	* amd/info_file.c (file_search_or_reload): Changed the key
1348	variable that is passed to the sun_entry2amd.
1349
1350	* amd/mapc.c (mapc_add_kv): Add support for multiple entries
1351	packed into one line.  This is a workaround for handling Sun style
1352	mounts that contains multiple entries on one line: "multi-mount
1353	entries".  The sun2amd conversion tools will convert such entries
1354	into type:=auto and pack each of the auto-entries into one line
1355	separated by '\n'.  The mapc_add_kv function will now recognize
1356	such entries and add then.
1357
1358	* amd/sun2amd.c (sun2amd_convert): Add print statement that
1359	includes the line number during a parser failure.
1360
1361	* sun_map.c: Fix the AMD_MAP_PREF_KW definition.  Fix spelling.
1362	(sun_mountpts2amd): removed this function
1363	(sun_hsfs2amd): added some more comments
1364	(sun_nfs2amd): moved support for multi-mount entries from this
1365	function to sun_multi2amd().
1366	(sun_multi2amd): New function to handle multi-mount entries.  This
1367	function will convert the Sun version to an Amd type:=auto.  Each
1368	extra auto entry will be appended to the same line separated by a
1369	'\n'.
1370	(sun_entry2amd): Fixed a bug if-statement.  This function now
1371	checks for multi-mount entries.
1372
1373	* amd/sun_map.h: Add a fstype member to the sun_mountpt struct.
1374
1375	* amd/sun_map_parse.y: Parser now supports fstype for multi-mount
1376	entries.
1377
1378	* amd/sun_map_tok.l: No longer print the line and column number
1379	when parsing.  This is because the parser is handed strings not
1380	files.  Therefore, the line number will always be 1.  It is now up
1381	to the higher level tools to echo line information during error
1382	when they feed the parser.
1383
13842005-08-24  Erez Zadok  <ezk@cs.sunysb.edu>
1385
1386	* configure.in: wrap all LDAP and HESIOD tests in test whether
1387	--with-OPT was used.
1388
13892005-08-20  Daniel P. Ottavio  <dottavio@ic.sunysb.edu>
1390
1391	* amd/sun_map.c: Clean up #defines
1392	(sun_entry2amd) : Verify that the key and entry values passed are
1393	not NULL.  Free the Sun entry struct when done.
1394
1395	* amd/sun_map.h: Add some "not implemented yet" comments to the
1396	map and mmap structures.
1397
1398	* amd/sun_map_parse.y: Removed automap include functionality, it
1399	will need to be re-implemented using a pre-processor.
1400	Clean up function calls.
1401
14022005-08-16  Daniel P. Ottavio  <dottavio@ic.sunysb.edu>
1403
1404	* amd/sun2amd.c (sun2amd_convert): If the input line is too long
1405	don't return an error just null terminate and continue.  Fix bug:
1406	the map key was not written.
1407
1408	* amd/sun_map.c: Add a new Amd device, and cdfs constant.
1409	(sun_locations2amd): Write the NFS type keyword
1410	for each host of the mount entry.  Add a space between each mount
1411	location.
1412	(sun_hsfs2amd): New function to support hsfs to
1413	cdfs.
1414	(sun_nfs2amd): Don't write the nfs type here.  Fix
1415	comments.
1416	(sun_entry2amd): Change function parameter var for
1417	clarity.  Add support for hsfs.
1418
1419	* amd/sun_map_parse.y (sun_map_parse_read): Reset the entry list
1420	after it has been returned.
1421
14222005-08-16  Erez Zadok  <ezk@cs.sunysb.edu>
1423
1424	* amd/get_args.c (get_args): initialize debug_flags if they've
1425	never been set.
1426
14272005-08-15  Erez Zadok  <ezk@cs.sunysb.edu>
1428
1429	* amd/mapc.c (mapc_create): mapc find takes 4th arg, the mount
1430	point.  Now, we can properly initialize the cfm structure of the
1431	mnt_map, so we can have access to the flags (e.g., SUN_MAP_SYNTAX)
1432	inside each info_*.c file.
1433	(mapc_find): takes 4rd arg (mntpt) and passes it to calls to
1434	mapc_create.
1435	(root_newmap): pass NULL as 4th arg (mntpt).
1436
1437	* amd/amfs_generic.c (amfs_parse_defaults): remove ugly hack to
1438	initialize map cfm structure (including flags) so late.
1439
1440	* amd/autil.c (amfs_mkcacheref): pass mount point as 4th arg to
1441	mapc_find.
1442
1443	* amd/amfs_root.c (amfs_root_mount): pass NULL as new 4th arg to
1444	mapc_find.
1445
1446	* amd/amd.h: extern for mapc_find changed to pass the mount point.
1447
1448	* libamu/xutil.c: debug_flags should be unsigned.
1449	(dbg_opt): fix comments for updated debug_flags, add "defaults".
1450	(debug_option): Don't allow "immutable" (D_IMMUTABLE) flags to be
1451	changed, because they could mess Amd's state and only make sense
1452	to be set once when Amd starts.  Currently these immutable flags
1453	are "daemon," "fork," "amq," and "mtab."  If Amd not compiled with
1454	debugging, set default "control" options (daemon,fork,amq).
1455	(unregister_amq): proper use of D_AMQ.
1456
1457	* include/am_utils.h: define new D_BASIC, D_CONTROL, D_DEFAULT,
1458	D_IMMUTABLE, and D_MASK.  Updated definitions of D_ALL and D_TEST.
1459	debug_flags extern should be unsigned.
1460
1461	* scripts/amd.conf-sample (debug_options): mention new "defaults"
1462	option.
1463
1464	* scripts/amd.conf.5,doc/am-utils.texi: document new debug option
1465	"defaults" and properly explain the corrected meanings of
1466	"daemon," "fork," "amq," and their "no" inversions.  Better
1467	explain "all" and "test" too.  Correct default debug_mtab file to
1468	/tmp/mtab.
1469
1470	* hlfsd/stubs.c (nfsproc_readlink_2_svc): proper use of D_FORK.
1471
1472	* hlfsd/homedir.c (homedir): proper use of D_FORK.
1473
1474	* hlfsd/hlfsd.c (main, hlfsd_init, cleanup): proper use of
1475	D_DAEMON.
1476
1477	* amd/nfs_start.c (mount_automounter): proper use of D_AMQ.
1478
1479	* amd/amd.h (DEBUG_MNTTAB_FILE): change default to /tmp/mtab,
1480	which is more common on more systems (instead of /tmp/mnttab).
1481
1482	* amd/amd.c (main): properly use D_DAEMON.
1483
14842005-08-14  Erez Zadok  <ezk@cs.sunysb.edu>
1485
1486	* libamu/xutil.c (xlog_opt): define new pseudo log_option named
1487	"defaults", which is an alias for "fatal,error,user,warning,info".
1488
1489	* scripts/amd.conf.5, doc/am-utils.texi, amd/amd.8: document new
1490	log_option "defaults".
1491
1492	* amq/amq.8: typo.  Arg name for -D is "debug_options" not
1493	"log_options".
1494
1495	* libamu/xutil.c: make xlog_level static, and initialize it to
1496	XLOG_DEFAULT.
1497	(cmdoption): take unsigned int as flags argument, and print any
1498	errors as XLOG_ERROR (which cannot be turned off).
1499	(switch_option): remove old code which disallowed you from turning
1500	off flags that were set when Amd started up.  Now, you can turn
1501	any log option on/off at start time or later on (via amq -x),
1502	other than the two mandatory options (fatal+error).
1503
1504	* include/am_utils.h (XLOG_*): remove unused XLOG_DEFSTR.  Define
1505	XLOG_MASK to mask out unused flag bits.  Define XLOG_DEFAULT to be
1506	what it was before (fatal + error + user + warning + info), but
1507	use the new mask.  Remove extern's for xlog_level and
1508	xlog_level_init.  Change extern for cmdoption() to take an
1509	unsigned flags argument.
1510
1511	* doc/am-utils.texi, amq/amq.8, scripts/amd.conf.5, amd/amd.8:
1512	document mandatory log options
1513	(fatal+error) which cannot be turned off and are always on by
1514	default.  They must be on so that Amd can report crucial errors,
1515	including those related to setting flags on/off.
1516
1517	* hlfsd/hlfsd.c (main): remove hack to initialize log_options.
1518
1519	* wire-test/wire-test.c: remove reference to unused xlog_level.
1520
1521	* amd/mapc.c (mapc_create): 'alloc' flags variable should be
1522	unsigned.
1523
1524	* amd/get_args.c (get_args): no need for hack using
1525	xlog_level_init.
1526
1527	* amd/Makefile.am: separate sources common to amd and sun2amd into
1528	a special, locally-built only, static library called libaminfo.a.
1529
1530	* libamu/xutil.c (real_plog, xsnprintf): call new xvsnprintf()
1531	wrapper function.
1532	(xvsnprintf): new function which already gets a va_list.  This was
1533	needed to avoid nesting va_list's (which apparently isn't
1534	allowed).
1535
1536	* include/am_utils.h: prototype for new xvsnprintf wrapper.
1537
1538	* configure.in: sinclude([vers.m4]) version number file.
1539
1540	* vers.m4: new file to separate version number out of
1541	configure.in, useful for nightly snapshot script to generate
1542	nightly version string.
1543
1544	* Makefile.am (EXTRA_DIST_M4): include vers.m4 in distro.
1545
15462005-08-14  Daniel P. Ottavio  <dottavio@ic.sunysb.edu>
1547
1548	* amd/info_file.c: add key to sun_entry2amd()'s parameters
1549
1550	* amd/info_hesiod.c: add key to sun_entry2amd()'s parameters
1551
1552	* amd/info_ldap.c: add key to sun_entry2amd()'s parameters
1553
1554	* amd/info_ndbm.c: add key to sun_entry2amd()'s parameters
1555
1556	* amd/info_nis.c: add key to sun_entry2amd()'s parameters
1557
1558	* amd/info_nisplus.c: add key to sun_entry2amd()'s parameters
1559
1560	* amd/sun_map.c: New functions to support sun translation to amd.
1561	The function sun_entry2amd's parameters were expanded to include
1562	the key value.  sun_entry_2amd() now returns NULL on error.
1563
1564	* amd/sun_map.h: Expand sun_entry2amd's parameters to include key
1565	value.
1566
1567	* amd/sun_map_parse.y: Change how file system types are parsed out
1568	of the list of options for each entry.  The previous way was not
1569	working properly so now we just look for the 'fstype' keyword in
1570	each option.  If it exists we copy its key value.
1571	Added some comments to sun_map_parse_read().
1572
1573	* amd/amd.h: Added an extern from info_file.c called
1574	file_read_line().  Previously this function was static but is now
1575	used in sun2amd.c.
1576
1577	* amd/info_file.c: Changed the static function read_line() to a
1578	public function called file_read_line().  This function is now
1579	used in sun2amd.c
1580
1581	* amd/sun2amd.8: Filled in the contents of this man page.  This is
1582	a conversion utility that converts Sun maps to Amd maps.
1583
1584	* amd/sun2amd.c: Implemented a working version of this utility.
1585
15862005-08-11  Erez Zadok  <ezk@cs.sunysb.edu>
1587
1588	* amd/sun_map_parse.y: instead of using a custom FOO_alloc()
1589	function, use Amd's CALLOC(struct FOO) macro.
1590
1591	* amd/sun_map.h: remove extern definitions to functions no longer
1592	needed.
1593
1594	* amd/sun_map.c: removed superfluous *_alloc() functions, some of
1595	which caused conflicts with same-named symbols in the parser
1596	(since we rename 'yyalloc' to 'sun_map_alloc').
1597
1598	* configure.in: keep AC_INIT on same line, for nightly snapshot
1599	build script.
1600
1601	* amd/Makefile.am: f/lex libraries are incompatible with multiple
1602	scanners, so don't link Amd with libl.a/libfl.a.
1603
16042005-08-10  Daniel P. Ottavio  <dottavio@ic.sunysb.edu>
1605
1606	* amd/sun_map_tok.l: Clean up regular expression so HPUX stops
1607	whining.
1608
16092005-08-09  Daniel P. Ottavio  <dottavio@ic.sunysb.edu>
1610
1611	* amd/sun_map_parse.y: Moved license below special yacc bracket to
1612	be portable with HPUX's yacc.  Clean up externs.
1613
1614	* amd/sun_map_tok.l: Moved license below special lex bracket to be
1615	portable with HPUX's lex.  Fixed definitions to allow for a
1616	non-flex lex to parse strings instead of files.  Added some casts
1617	to strlcpy usage to silence warnings.  Moved the % options because
1618	HPUX was complaining,
1619
16202005-08-08  Daniel P. Ottavio  <dottavio@ic.sunysb.edu>
1621
1622	* amd/sun_map_tok.l: Applied some definition goop to handle the
1623	ECHO symbol that lex defines.  This symbol causes problems on
1624	RedHat-EL-powerPC platforms.  Replaced strncpy with strlcpy.
1625	Renamed the function sun_map_yyinput to sun_map_input.  This
1626	function is a utility function that is not generated by lex.
1627	Therefore, the 'yy' may cause confusion.
1628
16292005-08-08  Erez Zadok  <ezk@cs.sunysb.edu>
1630
1631	* amd/sun_map_tok.l: allocate more output slots so lex scanners
1632	don't run out of memory.
1633
1634	* amd/sun_map_parse.y: declare extern for sun_map_parse().
1635
1636	* libamu/xutil.c (xsnprintf): ensure proper comparisons between
1637	signed and unsigned quantities.
1638
16392005-08-06  Erez Zadok  <ezk@cs.sunysb.edu>
1640
1641	* libamu/util.c, amd/autil.c (strsplit): moved strsplit() function
1642	from Amd code to to libamu, so sun2amd could use it.
1643
1644	* amd/Makefile.am (sbin_PROGRAMS): build sun2amd binary and man
1645	page.
1646	(EXTRA_sun2amd_OBJECTS): sun2amd needs to link with all info_*.c files
1647
1648	* amd/sun2amd.8: placeholder for man page.
1649
1650	* amd/sun2amd.c: placeholder for C version of translator from Sun
1651	syntax maps to Amd maps.
1652
1653	* */*.[0-9]: include file name in nroff source comment.
1654
1655	* ALL: use '0' properly when assigning or passing it to functions.
1656	If in the context pointer, use NULL.  If in the context of a
1657	single char (say within a string), the use '\0'.  This is just to
1658	make the code clearer.
1659
1660	* m4/macros/header_templates.m4: template for HAVE_MAP_SUN.
1661
1662	* amd/mapc.c (maptypes): add placeholder for Sun-syntax map
1663	methods.
1664
1665	* amd/Makefile.am (EXTRA_amd_SOURCES): compile info_sun.c
1666
1667	* amd/info_sun.c: placeholder for meta info parser to get info
1668	from Sun automount-style /etc/auto_master, possibly following
1669	into multiple info services (via /etc/nsswitch.conf).
1670
1671	* libamu/xutil.c (xsnprintf): if vsnprintf truncated the output
1672	string to avoid an overflow, print an error.  Include some code to
1673	break out any possible infinite loop between plog() and
1674	xsnprintf().
1675	(real_plog): now we can use (carefully) xsnprintf() directly.
1676
1677	* amd/sun_map.[hc]: cleanup and formatting.
1678
1679	* amd/sun_map_parse.y: to match the literal string "fstype=" use
1680	double quotes, not single quotes.
1681
1682	* amd/get_args.c (get_args): call conf_parse() using conf_in.
1683
1684	* amd/amd.h: use renamed parser symbols (yyparse -> conf_parse;
1685	yyin -> conf_in).
1686
1687	* ylwrap: Enhance wrapper to avoid the #define hacks done by Gdb,
1688	and suggested by the Automake manual.  This enhanced parser will
1689	prefix each conflicting yacc/lex symbol with a unique name
1690	produced from INPUT.  For example, if INPUT is foo_parse.y, then
1691	yyparse() becomes foo_parse().  This requires that both your .l
1692	and corresponding .y files have the same prefix (e.g., foo_parse.y
1693	and foo_tok.l).
1694
1695	* amd/Makefile.am (BUILT_SOURCES): define which yacc/lex .h/.c
1696	source files are built automatically, and therefore should not be
1697	in the distro (IMHO), and should be cleaned upon "make clean".
1698	(amd_SOURCES): include new sun_map_parse.y and sun_map_tok.l files.
1699
1700	* ylwrap: new file needed because we have two parsers now.
1701
1702	* amd/sun_map_{parse.y,tok.l}: cleanup and formatting.
1703
17042005-08-06  Daniel P. Ottavio  <dottavio@ic.sunysb.edu>
1705
1706	* amd/Makefile.am: Added new files sun_map.h, sun_map.c,
1707	sun_map_parse.y, and sun_map_tok.l.  These files add support for
1708	parsing Sun style maps.  The yacc/lex files needed custom rules so
1709	they don't cause symbol conflicts with each other.
1710
1711	* amd/amd.h: Added "#define INFO_MAX_LINE_LEN" that specifies the
1712	line limit for info services.
1713
1714	* amd/info_exec.c: Replaced MAX_LINE_LEN with INFO_MAX_LINE_LEN
1715
1716	* amd/info_file.c: Replaced MAX_LINE_LEN with INFO_MAX_LINE_LEN,
1717	added support for parsing Sun style maps.  The support for Sun
1718	maps is done using the sun_entry2amd() function.  This function is
1719	called for each entry line that is read only when Sun parsing is
1720	enabled.  For each entry line that is passed to the function a
1721	copy of the Amd equivalent is returned.
1722
1723	* amd/sun_map.h: new header file for Sun style map support
1724
1725	* amd/sun_map.c: new source file for Sun style map support, clean
1726	up comments, additional sun2amd conversion routines
1727
1728	* amd/sun_map_parse.y: new yacc file for parsing Sun style maps,
1729	fix copyright notice, put filename below license.
1730
1731	* amd/sun_map_tok.l: new lex file for parsing Sun style maps, fix
1732	copyright notice, put filename below license.
1733
1734	* amd/get_args.c: replace usage of strlcat with xstrlcat
1735
1736	* include/am_utils.h: added 'extern void xstrlcat()'
1737
1738	* libamu/util.c: Added a xstrlcat() function that wraps the
1739	syscall strlcat() so that string truncations can be logged.
1740
17412005-08-06  Erez Zadok  <ezk@cs.sunysb.edu>
1742
1743	* amd/info_file.c (file_search, file_reload): pass mnt_map to
1744	file_search_or_reload.
1745	(file_search_or_reload): ensure that mnt_map is never NULL.
1746
1747	* amd/info_nis.c (nis_search): call sun_entry2amd() if
1748	sun_map_syntax=yes.
1749
1750	* amd/info_ldap.c (amu_ldap_search): call sun_entry2amd() if
1751	sun_map_syntax=yes.
1752
1753	* amd/info_hesiod.c (hesiod_search): call sun_entry2amd() if
1754	sun_map_syntax=yes.
1755
1756	* amd/info_ndbm.c (ndbm_search): pass mnt_map to search_ndbm.
1757	(search_ndbm): call sun_entry2amd() if sun_map_syntax=yes.
1758
1759	* amd/info_nisplus.c (nisplus_search): call sun_entry2amd() if
1760	sun_map_syntax=yes.
1761
1762	* amd/info_exec.c (exec_search): pass mnt_map to
1763	exec_parse_qanswer.
1764	(exec_parse_qanswer): call sun_entry2amd() if sun_map_syntax=yes.
1765
1766	* doc/am-utils.texi (sun_map_syntax Parameter): document new
1767	common parameter.
1768
1769	* scripts/amd.conf.5: selectors_in_defaults is a common parameter,
1770	not just [global].  Use consistent capitalization of Amd/Amq.
1771	Document new sun_map_syntax parameter.
1772
1773	* scripts/amd.conf-sample: properly list all of the parameters
1774	which are common to both the [global] and the per-map sections.
1775	(sun_map_syntax): example of new parameter.
1776
1777	* doc/am-utils.texi (Common Parameters): selectors_in_defaults is
1778	a common parameter, not just [global].
1779
1780	* scripts/amd.conf-sample (sun_map_syntax): example of new flag.
1781
1782	* amd/conf.c ({ropt,gopt}_sun_map_syntax): new function to parse
1783	sun_map_syntax flag (global or per map).
1784
1785	* amd/amd.h (CFM_SUN_MAP_SYNTAX): new flag for users to say if the
1786	map uses Sun automounter syntax.
1787
1788	* cvs-server.txt: update instructions after branching 6.1-stable.
1789
17902005-08-02  Erez Zadok  <ezk@cs.sunysb.edu>
1791
1792	*******************************************************************
1793	*** Released am-utils-6.1.1					***
1794	*******************************************************************
1795
1796	* libamu/xutil.c (xsnprintf): "unsafe" alternative to vsnprintf is
1797	vsprintf, not sprintf.
1798
1799	* conf/umount/umount_osf.c (umount_fs): refer to proper formal
1800	parameter name.
1801	(umount2_fs): pass second arg to umount().
1802
1803	* ALL: remove CVS ID and put actual file name in source.
1804
1805	* conf/autofs/*.[hc]: proper copyright headers.
1806
1807	* whitespace reformatting.  Remove remaining '%W%' SCCS IDs.
1808
1809	* amd/mntfs.c (free_mntfs): don't discard the last reference to an
1810	mntfs that had been mounted already.  It won't have the
1811	MFF_RESTARTED flag on, as it gets turned off after the entry is
1812	mounted, but it will have the MFF_RSTKEEP flag on.
1813
1814	* amd/autil.c (mf_mounted), amd/restart.c (restart_fake_mntfs):
1815	show the mntfs's flags.
1816
18172005-08-01  Erez Zadok  <ezk@cs.sunysb.edu>
1818
1819	* conf/mtab/mtab_linux.c: removed unused code.  Cleanup.
1820	(handler): removed this bad signal handler.
1821	(lock_mtab): Redhat's original code set a signal handler called
1822	"handler()" for all non-ALRM signals.  The handler called
1823	unlock_mntlist(), plog'ed the signal name, and then exit(1)!
1824	Never, ever, exit() from inside a utility function.  This messed
1825	up Amd's careful signal-handling code, and caused Amd to abort
1826	uncleanly only any other "innocent" signal
1827	(even simple SIGUSR1), leaving behind a hung Amd mnt point.  That
1828	code should have at least restored the signal handlers' states
1829	upon a successful mtab unlocking.  Anyway, that handler was
1830	unnecessary, because will call unlock_mntlist() properly anyway on
1831	exit.
1832
1833	* conf/mtab/mtab_{file,isc3,mach3,linux}.c (unlock_mntlist): dlog
1834	message that we're inside the unlock_mntlist function.
1835
1836	* amd/amd.c (main): use new setup_sighandler() for Amd's four main
1837	signals (INT, TERM, HUP, and CHLD).
1838	(main) Add SIGINT and SIGTERM to masked_sigs, used in
1839	nfs_start.c:do_select() for setjmp/longjmp code; the MASK was set
1840	to all four signals if !HAVE_SIGACTION, but only to HUP+CHLD if we
1841	HAVE_SIGACTION.  So this change makes Amd behave consistently.
1842
1843	* include/am_utils.h: extern for new setup_sighandler().
1844
1845	* libamu/xutil.c (setup_sighandler): new utility function to setup
1846	a single signal-handler regardless of what method is supported by
1847	this OS.
1848	(going_down): call unlock_mntlist() when exiting, to ensure that
1849	Amd will remove any leftover mtab lock files, if any.
1850
1851	* amd/restart.c (restart_automounter_nodes): cleanup function.
1852
1853	* minor new port: i386-pc-linuxoldld-deb3.1.
1854
1855	* configure.in: include <sys/types.h> before <linux/socket.h> to
1856	get the definition of size_t on Debian-3.1r0a.
1857
18582005-07-29  Erez Zadok  <ezk@cs.sunysb.edu>
1859
1860	* amd/srvr_nfs.c (find_nfs_srvr): don't blindly copy the hostent
1861	IP address.  First check if it differs from the existing one of
1862	the fserver, and copy only if it changed.  If it did change, flush
1863	the fhandle cache to avoid a stale fhandle being reused.  This
1864	allows Amd to detect IP address changes even for an fserver that
1865	lost one or more NFS pings, but not enough to be declared totally
1866	down.  We handle the "totally down" fserver case in
1867	check_fs_addr_change().
1868
1869	* amd/ops_nfs.c (nfs_umount), amd/sched.c (sched_task),
1870	amd/nfs_subr.c (nfs_quick_reply): code clarity.
1871
1872	* conf/mount/mount_linux.c (linux_nfs_error): dlog mappings of
1873	errnos to NFS errors.
1874
1875	* conf/umount/umount_linux.c (umount2_fs): cleanup code.  Trying
1876	stat() seems doomed to hang at times, so don't try stat at all,
1877	because umount2() appears to be clever enough to never hang.
1878
18792005-07-25  Erez Zadok  <ezk@cs.sunysb.edu>
1880
1881	* amd/amd.h (FSF_FORCE_UNMOUNT): new flag used to indicate that a
1882	particular fserver may need forced/lazy unmounts when it's mntfs's
1883	are unmounted.
1884
1885	* amd/ops_nfs.c (nfs_umount): a simple unmount returned EBUSY, and
1886	the user specified forced_unmounts=yes in amd.conf, and this
1887	fserver was flagged with FSF_FORCE_UNMOUNT, and the OS supports
1888	forced/lazy unmounts, then try forced/lazy unmounts.  This should
1889	allow a hung mount point to be removed.
1890
1891	* amd/srvr_nfs.c (find_nfs_srvr): move away IP-address change
1892	detection code to its own function.
1893	(check_fs_addr_change): new function to detect if the IP address
1894	of a downed host has changed, and do various cleanups and fixups
1895	to try and recover as best from that situation (e.g., flushing
1896	various caches).  Also set the FSF_FORCE_UNMOUNT flag for the
1897	fserver in question.
1898	(flush_srvr_nfs_cache): pass fserver as argument, so we can
1899	selectively flush the NFS cache for a single fserver (or all of
1900	them, if you pass NULL).
1901
1902	* libamu/xutil.c (switch_to_logfile): truncate a regular-file log
1903	file if user passed non-zero "truncate_log" flag.
1904
1905	* include/am_utils.h: switch_to_logfile() now takes a 3rd arg.
1906
1907	* amd/get_args.c (get_args): pass "truncate_log" flag as per
1908	amd.conf global settings.
1909
1910	* amd/conf.c (gopt_truncate_log): store global value of
1911	truncate_log flag.
1912
1913	* amd/amq_subr.c (amqproc_setopt_1_svc), hlfsd/hlfsd.c (main,
1914	reload): don't truncate log file when calling switch_to_logfile().
1915
1916	* amd/amd.h (CFM_TRUNCATE_LOG): new flag.  Fix comment typo.
1917
1918	* NEWS, doc/am-utils.texi (truncate_log Parameter),
1919	scripts/amd.conf.5, scripts/amd.conf-sample (log_file): document
1920	new truncate_log amd.conf parameter.
1921
1922	* amd/conf.c (gopt_forced_unmounts): check Linux kernel version
1923	and alert if your version may be too old for MNT_FORCE to work
1924	(before 2.4.0) or for MNT_DETACH to work (before 2.6.0).
1925	Otherwise it may be impossible to pin down the exact kernel
1926	version in which we should enable this feature.
1927
1928	* conf/umount/umount_linux.c (umount2_fs): if MNT_FORCE returned
1929	EBUSY, then don't try to stat(2) before MNT_DETACH because it
1930	could hang.
1931
19322005-07-21  Erez Zadok  <ezk@cs.sunysb.edu>
1933
1934	* conf/umount/umount_linux.c (umount_fs): cleanup this function,
1935	breaking long "if" statements using "goto out".
1936
1937	* conf/umount/umount_{aix,bsd44,osf,default,linux}.c (umount_fs):
1938	call new utility function umount2_fs() as needed (EBUSY, EIO, or
1939	ESTALE).
1940
1941	* conf/umount/umount_{aix,bsd44,osf,default,linux}.c (umount2_fs):
1942	define a new utility function to invoke forcible/lazy unmounts
1943	without touching any mtab files.  This separate utility function
1944	is useful because it can be called from elsewhere.
1945
1946	* amd/amfs_toplvl.c (amfs_toplvl_init): new function, called
1947	before Amd mounts toplvl mounts, which gives us a hook for cleanup
1948	of a previously dead Amd.  In our case, if the user asked for
1949	forced_unmounts, and the OS supports it, then we try forced/lazy
1950	unmounts on any previous toplvl mounts.  This is useful if a
1951	previous Amd died and left behind toplvl mount points (this Amd
1952	will clean them up!).  WARNING: Don't use forced/lazy unmounts if
1953	you have another valid Amd running, because this code WILL force
1954	those valid toplvl mount points to be detached as well!
1955
1956	* amd/amfs_toplvl.c (amfs_toplvl_umount): don't unconditionally
1957	try forced/lazy unmounts because it will prevent a normal Amd from
1958	terminating and cleaning up properly (self-deadlocking: detached
1959	mounts hang the parent Amd on a stat).  Since we already do
1960	unmounts in the background, then try a safer policy: after trying
1961	the normal unmounts a few times (5 sec), escalate and try forced
1962	unmounts a few times (5 more seconds), and if even that failed,
1963	then try the ultimate -- detached unmounts (which always succeed).
1964	This allows Amd to first try and shutdown cleanly, and gradually
1965	try more forcible ways to shutdown.  On Linux, this procedure will
1966	cleanly shutdown Amd even if there are processes with their CWD on
1967	Amd's mount points (which normally result in EBUSY).
1968
19692005-07-20  Erez Zadok  <ezk@cs.sunysb.edu>
1970
1971	* Makefile.am (EXTRA_DIST_CONF): add new umount_aix.c to distro.
1972
1973	* conf/umount/umount_aix.c: easier if AIX has its own unmount
1974	helper file.
1975
1976	* m4/macros/check_umount_style.m4: AIX needs its own unmount style
1977	file.
1978
1979	* doc/am-utils.texi (forced_unmounts Parameter): @xref -> @pxref.
1980
19812005-07-19  Erez Zadok  <ezk@cs.sunysb.edu>
1982
1983	* conf/nfs_prot/nfs_prot_aix5_2.h: define compatible
1984	forced-unmount flag.
1985
1986	* conf/umount/umount_default.c (umount_fs): if regular umount got
1987	EBUSY, EIO, or ESTALE, then try forced unmount, if supported.  Try
1988	umount2 (Solaris) or uvmount (AIX).
1989
1990	* conf/umount/umount_{bsd44,osf}.c (umount_fs): if default
1991	umount() failed with EIO or ESTALE, also try forced unmount.
1992
19932005-07-18  Erez Zadok  <ezk@cs.sunysb.edu>
1994
1995	* amd/autil.c (amfs_mount), amd/amfs_toplvl.c
1996	(amfs_toplvl_umount): enable forced/lazy unmounts only if user
1997	asked for it (and dlog it).
1998
1999	* scripts/amd.conf.5: document new force_unmount global parameter.
2000
2001	* doc/am-utils.texi (forced_unmounts Parameter): document new
2002	global parameter.
2003
2004	* amd/conf.c (gopt_forced_unmounts): process forced_unmounts
2005	option (default "no").  Exit with an error if user specified the
2006	option as "yes" but configure couldn't find support for either the
2007	MNT_FORCE or MNT_DETACH flags.
2008
2009	* scripts/amd.conf-sample (forced_unmounts): example usage of new
2010	option.
2011
2012	* amd/amd.h (CFM_FORCED_UNMOUNTS): new flag for forced_unmounts
2013	option.
2014
2015	* m4/macros/header_templates.m4: templates for _DETACH and _FORCE.
2016
2017	* configure.in: check for generic u/mount options "detach" and
2018	"force".
2019
2020	* include/am_utils.h (UMOUNT_FS, umount_fs): new prototypes.
2021	Define AMU_UMOUNT flags for force, detach, and autofs.
2022
2023	* amd/amfs_toplvl.c (amfs_toplvl_umount): pass _FORCE and _DETACH
2024	unmount flags unconditionally.  Pass them to UMOUNT_FS().
2025
2026	* conf/nfs_prot/nfs_prot_linux.h: define MNT_FORCE and MNT_DETACH
2027	if needed, because some Linux systems don't define them
2028	(presumably because it would be too dangerous to expose these
2029	flags to users).
2030
2031	* amd/autil.c (amfs_mount): if mount(2) failed with ESTALE or EIO,
2032	then assume that we're in trouble, possibly because a previous
2033	mount is hung.  So, first try to force a lazy unmount of the old
2034	mount.  If the forced unmount worked, then try again to mount the
2035	desired file system.  If the forced unmount failed, then don't
2036	retry: just return an error.
2037
2038	* amd/amfs_generic.c (amfs_generic_umount), amd/amfs_host.c
2039	(amfs_host_umount), amd/ops_cachefs.c (cachefs_umount),
2040	amd/ops_cdfs.c (cdfs_umount), amd/ops_efs.c (efs_umount),
2041	amd/ops_lofs.c (lofs_umount), amd/ops_nfs.c (nfs_umount),
2042	amd/ops_pcfs.c (pcfs_umount), amd/ops_ufs.c (ufs_umount),
2043	amd/ops_xfs.c (xfs_umount), conf/umount/umount_bsd44.c
2044	(umount_fs), conf/umount/umount_default.c (umount_fs),
2045	conf/umount/umount_linux.c (umount_fs), conf/umount/umount_osf.c
2046	(umount_fs): compute and use unmount specific flags.
2047
20482005-07-16  Erez Zadok  <ezk@cs.sunysb.edu>
2049
2050	* configure.in: better help for users, if nfs_args can't be found.
2051
20522005-07-15  Erez Zadok  <ezk@cs.sunysb.edu>
2053
2054	* BUGS: more details on AIX's need to install bos.net.nfs.adt
2055	before configuring am-utils (else configure cannot find struct
2056	nfs_args on AIX).
2057
20582005-07-10  Erez Zadok  <ezk@cs.sunysb.edu>
2059
2060	* amd/srvr_nfs.c (find_nfs_srvr): flush NFS handle cache if the IP
2061	address of a down server had changed.
2062
2063	* amd/info_union.c (union_reload): use safer xsnprintf() routine.
2064
2065	* amd/srvr_nfs.c (find_nfs_srvr): check to see if the IP address
2066	of a named but down fserver changed (i.e., the previous IP address
2067	is no longer responding).  If so, then reset the fserver to the
2068	new IP address, and set the fserver's flags such that the function
2069	will fall through to doing the usual NFS version/proto checks and
2070	pinging.  (This should fix one case of bug #308.)
2071
2072	* conf/umount/umount_linux.c (umount_fs): warn if plain umount()
2073	failed, before we try to ignore any errors or try optional
2074	umount2(), possibly with forced/lazy unmount.
2075	(umount_fs): dlog when unmount succeeded.
2076
20772005-07-08  Erez Zadok  <ezk@cs.sunysb.edu>
2078
2079	* conf/mount/mount_linux.c: add a couple more NFSv2 error codes
2080	that are compatible with NFSv3.
2081
20822005-07-07  Erez Zadok  <ezk@cs.sunysb.edu>
2083
2084	* m4/macros/header_templates.m4: extern template for strlcat().
2085
2086	* amd/get_args.c (get_version_string): use safer strlcat (or
2087	replacement strlcat).  Use new wrapper xsnprintf() function, which
2088	will use the safer vsnprintf() if available, else default to plain
2089	sprintf.
2090
2091	* configure.in: check for existence of strlcat() and its extern,
2092	replacing with libamu/strlcat.c as needed.
2093
2094	* libamu/Makefile.am (EXTRA_DIST): add strlcat.c to distro.
2095
2096	* include/am_defs.h: optional strlcat() extern.
2097
2098	* include/am_utils.h: extern for new xvsnprintf().
2099
2100	* configure.in: overdue new major libtool shlib version.
2101	Check for snprintf function and extern.
2102
21032005-07-06  Erez Zadok  <ezk@cs.sunysb.edu>
2104
2105	* conf/nfs_prot/nfs_prot_aix4_3.h: cleanup struct
2106	aix4_nfs_args_bis.
2107
2108	* Makefile.am (EXTRA_DIST_CONF): include mount_aix3.c in
2109	distribution.
2110
2111	* conf/mount/mount_aix.c: mount style for aix 5.x and newer.
2112
2113	* conf/mount/mount_aix3.c: mount styles for aix 3.x/4.x.
2114
2115	* m4/macros/check_mount_style.m4: split mount styles for
2116	aix3.x/4.x and the newer (and better) aix 5.x code.
2117
21182005-07-05  Erez Zadok  <ezk@cs.sunysb.edu>
2119
2120	* amq/pawd.c (getawd): avoid buffer overflow.  Bug fix from Graeme
2121	Wilford <G.Wilford@surrey.ac.uk>.
2122
21232005-06-30  Erez Zadok  <ezk@cs.sunysb.edu>
2124
2125	* amd/map.c (get_next_exported_ap): Avoid running off the end of
2126	the exported_ap[] array.  Patch from jon+amd-at-spock.org.  Fixed
2127	bug #301.
2128
21292005-06-25  Erez Zadok  <ezk@cs.sunysb.edu>
2130
2131	* Makefile.am (EXTRA_DIST_CONF): distribute new mtab_linux.c.
2132
2133	* conf/mtab/mtab_linux.c (rewrite_mtab): variable declarations
2134	must come before C code.
2135
2136	* conf/mtab/mtab_linux.c: Linux-specific mount table hanlding
2137	that's safe (uses locks, handles symlinks to /proc/mounts, etc.).
2138	Patch from Red Hat, which they adapted from mtab_file.c.  Minor
2139	fixes to this file.
2140
2141	* m4/macros/check_mnttab_style.m4: Use Linux-specific mount table
2142	handling.
2143
21442005-06-24  Erez Zadok  <ezk@cs.sunysb.edu>
2145
2146	* conf/mount/mount_aix.c (mount_aix3): minor cleanup of filehandle
2147	copying code.
2148
21492005-06-23  Erez Zadok  <ezk@cs.sunysb.edu>
2150
2151	* conf/nfs_prot/nfs_prot_hpux.h: add extern for h_errno, which may
2152	be missing from older hpux10 systems.
2153
2154	* configure.in: update bug-reporting address to list
2155	https://bugzilla.am-utils.org/ as well as the mailing list.
2156
2157	* Makefile.am (EXTRA_DIST_M4): distribute new type_rpcvers_t.m4
2158	macro.
2159
2160	* conf/transp/transp_tli.c (get_nfs_version): always use
2161	rpcvers_t, now that it'll be automatically discovered.
2162
2163	* configure.in: check for rpcvers_t type.
2164
2165	* m4/macros/type_rpcvers_t.m4: new macro to check for type of
2166	rpcvers_t (Some Solaris versions need it).
2167
2168	* conf/nfs_prot/nfs_prot_sunos5_8.h: don't define INADDR_NONE
2169	here, but in the actual source files that may need it.
2170
2171	* libamu/wire.c (INADDR_NONE): define INADDR_NONE if not defined
2172	already.
2173
2174	* include/am_defs.h: define extern for sleep(3) if needed.
2175
2176	* m4/macros/header_templates.m4: template for sleep(3) extern.
2177
2178	* configure.in: check for extern for sleep(3), which is missing
2179	from some old (and buggy) versions of gcc's fixinc'ed headers.
2180
2181	* conf/nfs_prot/nfs_prot_aix4_3.h: update definition of struct
2182	nfs_args from actual system headers.
2183
2184	* conf/mount/mount_aix.c (mount_aix3): fix name of aix4 "bis"
2185	structure.
2186
21872005-06-22  Erez Zadok  <ezk@cs.sunysb.edu>
2188
2189	* BUGS: update Solaris information about use of f/lex and
2190	yacc/bison.
2191
21922005-06-20  Erez Zadok  <ezk@cs.sunysb.edu>
2193
2194	* minor new port: i386-pc-linux-suse9.3.
2195
21962005-06-20  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2197
2198	* configure.in (linux/nfs_mount.h): Move __KERNEL__ definition up
2199	so u32 is available for <linux/sunrpc/msg_prot.h>.
2200
22012005-06-16  Erez Zadok  <ezk@cs.sunysb.edu>
2202
2203	* amd/mapc.c (maptypes): move MAP_EXEC after MAP_FILE, because
2204	exec maps will always match when users use amd with command line
2205	args (not amd.conf).  Using that legacy way, unfortunately, means
2206	that Amd will use it's hard-coded info-service search path, which
2207	doesn't work for everyone.  It's much better to use amd.conf and
2208	specify what you want exactly.
2209
22102005-06-15  Erez Zadok  <ezk@cs.sunysb.edu>
2211
2212	* minor new port: i386-pc-linux-fc4 (gcc4 catches more bugs).
2213
2214	* m4/macros/type_recvfrom_fromlen.m4: linux systems use unsigned
2215	int as the type of recvfrom()'s 6th argument.
2216
2217	* m4/macros/type_yp_order_outorder.m4: linux systems use unsigned
2218	int as the type of yp_order()'s 3rd argument.
2219
22202005-06-15  Erez Zadok  <ezk@cs.sunysb.edu>
2221
2222	* scripts/amd.conf-sample (map_type): typo, said mount_type
2223	instead of map_type for the 'exec' example.
2224
22252005-06-11  Erez Zadok  <ezk@cs.sunysb.edu>
2226
2227	*******************************************************************
2228	*** Released am-utils-6.1					***
2229	*******************************************************************
2230
22312005-06-04  Erez Zadok  <ezk@cs.sunysb.edu>
2232
2233	* amd/ops_nfs.c (mount_nfs_fh): set timeo/retrans mount options
2234	only if the user specified them in amd.conf or elsewhere.  If they
2235	were not specified, don't do anything, which would let the OS use
2236	its own defaults.
2237
2238	* amd/get_args.c (get_args): negative timeo/retrans are "good" in
2239	that they represent uninitialized values (meaning to let the OS
2240	use it's default values).  So only check if user specified a value
2241	equal to zero (invalid).
2242
2243	* amd/amd.h: define AMU_TYPE_NONE so we know when users didn't
2244	specify timeo/retrans at all.
2245
22462005-06-03  Erez Zadok  <ezk@cs.sunysb.edu>
2247
2248	*******************************************************************
2249	*** Released am-utils-6.1-rc7					***
2250	*******************************************************************
2251
2252	* m4/macros/os_cflags.m4 (CFLAGS): use custom-OS C flags for
2253	configuring, not just for building.  That way the two phases
2254	(configure and compile) are in sync.  This fixes getwire() on
2255	OSF/1 systems.
2256
2257	* conf/nfs_prot/nfs_prot_sunos5_8.h: define INADDR_NONE if not
2258	defined in system headers.
2259
22602005-06-01  Erez Zadok  <ezk@cs.sunysb.edu>
2261
2262	* libamu/Makefile.am (EXTRA_DIST): remove alloca.c as it's no
2263	longer needed.
2264
22652005-05-28  Erez Zadok  <ezk@cs.sunysb.edu>
2266
2267	* completed set of fixes for irix6.5.
2268
2269	* Minor new ports alpha-unknown-linux-gentoo1.4.16
2270	alphaev56-dec-osf4.0f, mips-unknown-linux-gentoo1.4.16, and
2271	sparc64-unknown-linux-gentoo1.4.16, and mips-sgi-irix6.5.  Test
2272	those systems with both cc and gcc, where possible.
2273
2274	* include/am_xdr_func.h: remove trailing comma at end of enum
2275	list.
2276
2277	* m4/macros/os_cflags.m4: with gcc 3.4.3 on irix-6.5, we get pte_t
2278	undefined.  So give it a dummy value.
2279
2280	* libamu/alloca.c: remove file from distro.
2281
2282	* configure.in: don't call AC_FUNC_ALLOCA any more.
2283
2284	* include/am_defs.h: remove header fixups for <alloca.h>, now that
2285	we don't need it.
2286
2287	* amd/amq_svc.c (amqsvc_is_client_allowed): rewrite function to
2288	avoid only use of alloca() in am-utils, and to use strdup
2289	explicitly.  This way we can avoid using alloca, a feature that's
2290	not portable on various systems.
2291
2292	* amq/amq.c: remove unused lint/rcsid cruft.
2293
22942005-05-27  Erez Zadok  <ezk@cs.sunysb.edu>
2295
2296	* conf/checkmount/checkmount_osf.c (fixmount_check_mount): add
2297	extra parentheses around assignments in "if" expressions (gcc
2298	complains).
2299
2300	* conf/nfs_prot/nfs_prot_osf4.h: add missing extern definitions
2301	for plock, hstrerror, getmntinfo, alloca, xdr_exportnode, and
2302	xdr_groups.
2303
2304	* configure.in: check for <linux/socket.h>, which, if found,
2305	appears to be preferable to <sys/socket.h>.  Use it to find
2306	<linux/nfs_mount.h>.  On some Linux systems
2307	(Gentoo), both exist but only one must be included, or else you
2308	get redefined structure errors.
2309
2310	* libamu/wire.c (is_network_member): check if masknum is
2311	INADDR_NONE, not "< 0" because it's an unsigned quantity.
2312
2313	* libamu/util.c (xstrlcpy): remove useless test for size_t < 0,
2314	because it's an unsigned quantity.
2315
23162005-05-26  Erez Zadok  <ezk@cs.sunysb.edu>
2317
2318	*******************************************************************
2319	*** Released am-utils-6.1-rc6					***
2320	*******************************************************************
2321
23222005-05-25  Erez Zadok  <ezk@cs.sunysb.edu>
2323
2324	* conf/nfs_prot/nfs_prot_aix5_2.h: AIX 5.3 complains about
2325	missing definition of struct thread_credentials in <sys/vfs.h>
2326	but trying to bring that definition in drags a whole lot of other
2327	messy stuff.  So just provide a dummy definition for this
2328	structure.
2329
23302005-05-24  Erez Zadok  <ezk@cs.sunysb.edu>
2331
2332	* Makefile.am (EXTRA_DIST_M4): distribute m4/macros/libtool.m4.
2333
2334	* m4/macros/header_templates.m4: template for HAVE_EXTERN_MNTCTL.
2335
2336	* m4/macros/check_extern.m4: include <sys/vmount.h> on AIX
2337	systems, so we can find extern definition for mntctl().
2338
2339	* conf/mtab/mtab_aix.c, conf/checkmount/checkmount_aix.c: only
2340	define an extern for mntctl() if needed.
2341
2342	* amd/ops_nfs.c (prime_nfs_fhandle_cache): never, ever, use C++
2343	style comments in C code.  Some C compilers don't accept it.
2344
2345	* amd/info_ldap.c (amu_ldap_init, get_ldap_timestamp): force cast
2346	of "time_t *ts" to u_long, to avoid complaints on AIX 5.2 with
2347	xlC.
2348
2349	* amd/get_args.c: rename symbol conf_file to amu_conf_file to
2350	avoid conflict with libldap.a from openldap-2.0.21 on AIX 5.2.
2351	Oh, when will people who develop libraries learn to always prefix
2352	their exported symbols with a library-specific name?
2353
2354	* configure.in: check for mntctl() extern on AIX systems.
2355
2356	* ltmain.sh: update from latest libtool-1.5.18, so we can properly
2357	build on AIX 5.2/5.3 with cc and with gcc.
2358
2359	* m4/macros/libtool.m4: update from latest libtool-1.5.18.  This
2360	time, and from now on, we must include libtool.m4 from the libtool
2361	distribution itself.  That way we ensure that we use an ltmain.sh
2362	that matches the appropriate libtool M4 macros.  This makes
2363	am-utils no longer dependent on having libtool installed on a
2364	given system on which you run bootstrap.
2365
23662005-05-23  Erez Zadok  <ezk@cs.sunysb.edu>
2367
2368	* minor new port: i386-pc-linux-deb3.0.
2369
23702005-05-22  Erez Zadok  <ezk@cs.sunysb.edu>
2371
2372	* minor new ports: i386-unknown-netbsdelf2.0.2 and
2373	i386-unknown-openbsd3.7.
2374
23752005-05-20  Erez Zadok  <ezk@cs.sunysb.edu>
2376
2377	* minor new ports: i386-pc-linux-gentoo1.4.16 and
2378	powerpc-unknown-linux-yellowdog2.3.
2379
2380	* include/{mount_headers2.h, am_defs.h}: safer setup before
2381	inclusion of <linux/nfs_mount.h>, which is broken on several
2382	systems.
2383
2384	* configure.in: test for <linux/nfs2.h>.  Separate special test
2385	for <linux/nfs_mount.h> because we need to define __KERNEL__ for
2386	that test, as well as optionally define struct nfs2_fh for some
2387	systems (gentoo with 2.4 kernel, yellowdog 2.3, and others).
2388
2389	* config.guess.long: support Gentoo and Yellow Dog Linux distros.
2390
23912005-05-18  Erez Zadok  <ezk@cs.sunysb.edu>
2392
2393	* minor new ports: i386-pc-linux-suse9.2 and
2394	i386-unknown-freebsd5.4.
2395
2396	* amd/nfs_subr.c: use NFS_FHSIZE, not FHSIZE.
2397
23982005-05-17  Erez Zadok  <ezk@cs.sunysb.edu>
2399
2400	*******************************************************************
2401	*** Released am-utils-6.1-rc5					***
2402	*******************************************************************
2403
2404	* amd/info_ldap.c (amu_ldap_init): change plog to dlog, to avoid
2405	sending annoying warning for a minor issue.
2406
24072005-05-17  Ion Badulescu <ionut@moisil.badula.org>
2408
2409	* amd/nfs_subr.c: check for NULL pointer before dereferencing it.
2410
24112005-05-16  Erez Zadok  <ezk@cs.sunysb.edu>
2412
2413	* minor new ports: powerpc-apple-darwin7.9.0.
2414
2415	* m4/macros/host_macros.m4: if a NetBSD system, remove 'elf' part
2416	from OS name because it's no longer relevant.  Also, don't include
2417	the major OS version number in the OS name because that's also
2418	unnecessary (and users can always use $osver in maps).
2419
2420	* amd/nfs_subr.c: use [1] for out-of-band pointer at the end of
2421	struct am_fh, because it's the most portable method.  Bug fix
2422	suggestion from Dan Riley <dsr at mail.lns.cornell.edu>.  Better
2423	fix from Ion Badulescu: use [FHSIZE-sizeof(u_int)] which is the
2424	actual size we use.
2425
2426	* amd/amfs_generic.c (amfs_lookup_mntfs): reset currently used
2427	def_opts to options given in -opts, appended with the /default
2428	options.  Bug fix suggestion from Dan Riley <dsr at
2429	mail.lns.cornell.edu>.
2430
24312005-05-13  Erez Zadok  <ezk@cs.sunysb.edu>
2432
2433	*******************************************************************
2434	*** Released am-utils-6.1-rc4					***
2435	*******************************************************************
2436
24372005-05-11  Daniel P. Ottavio  <dottavio@ic.sunysb.edu>
2438
2439	* amd/amd.c (main) : fixed memory leak detected by valgrind
2440
2441	* amd/info_ldap.c (amu_ldap_init) : fixed memory leak detected by
2442	valgrind
2443
24442005-05-11  Erez Zadok  <ezk@cs.sunysb.edu>
2445
2446	* m4/macros/{check_checkmount_style.m4, check_mnttab_style.m4,
2447	check_nfs_fh_dref.m4, check_nfs_prot_headers.m4,
2448	check_nfs_sa_dref.m4, check_umount_style.m4, os_cflags.m4}: check
2449	for "macosx" as valid OS string, so we compile properly on Darwin
2450	systems.
2451
2452	*******************************************************************
2453	*** Released am-utils-6.1-rc3					***
2454	*******************************************************************
2455
2456	* rerun bootstrap to get a working configure script that actually
2457	checks for limits.h and dependent linux autofs/nfs headers.
2458
2459	* configure.in: remove redundant check for limits.h.
2460
24612005-05-09  Erez Zadok  <ezk@cs.sunysb.edu>
2462
2463	*******************************************************************
2464	*** Released am-utils-6.1-rc2					***
2465	*******************************************************************
2466
24672005-05-08  Erez Zadok  <ezk@cs.sunysb.edu>
2468
2469	* amd/amfs_generic.c (amfs_lookup_mntfs): removed redundant use of
2470	old_def_opts variable.
2471
24722005-05-08  Daniel P. Ottavio  <dottavio@ic.sunysb.edu>
2473
2474	* amd/amfs_generic.c (amfs_lookup_mntfs) : Make sure when a map
2475	entry has a single dash '-', that the default options are reset.
2476	This functionality was somehow lost from earlier releases and
2477	reported by Dan Riley <dsr@mail.lns.cornell.edu>.
2478
24792005-05-05  Erez Zadok  <ezk@cs.sunysb.edu>
2480
2481	* config.guess.long: detect SuSE Enterprise Server and call it
2482	"sles" not "suse".
2483
24842005-05-02  Erez Zadok  <ezk@cs.sunysb.edu>
2485
2486	* doc/am-utils.texi (amd): document proper use of
2487	/etc/hosts.allow.  Don't spawn a new Amd process because Amd will
2488	get confused if someone else waitpid's on its children (which
2489	often do important un/mount work).  Issue reported by Francis
2490	Montagnac <Francis.Montagnac at sophia.inria.fr>.
2491
2492	* minor new ports: powerpc64-unknown-linux-rhel4, and
2493	powerpc64-unknown-linux-sles9.
2494
24952005-05-01  Daniel P. Ottavio  <dottavio@ic.sunysb.edu>
2496
2497	* amd/amfs_host.c (amfs_host_umount): We do not want to pass
2498	ENOENT as an error because if the directory does not exists our
2499	work is done anyway.
2500
2501	* conf/umount/umount_linux.c (umount_fs): If we are successful or
2502	there was an ENOENT, remove the mount entry from the mtab file.
2503
25042005-05-01  Ion Badulescu  <ionut@moisil.badula.org>
2505
2506	* amd/nfs_subr.c: am_fh definition moved here from amd.h;
2507	restructured to better reflect its duality (old/new filehandles)
2508	(fh_to_mp3): fhh_gen is always used, even for new style f/h
2509	(mp_to_fh): ditto
2510
2511	* amd/amd.h: moved am_fh definition to nfs_subr.c (which is the
2512	only place where it's used)
2513
25142005-04-30  Erez Zadok  <ezk@cs.sunysb.edu>
2515
2516	* m4/macros/host_macros.m4: use sw_vers on Apple machines to find
2517	out more appropriate OS name (macosx) and OS version (10.3.x) than
2518	uname(3) reports.
2519
25202005-04-29  Erez Zadok  <ezk@cs.sunysb.edu>
2521
2522	* config.guess, config.sub, doc/texinfo.tex: updates from latest
2523	official GNU distributions.
2524
2525	* m4/macros/host_macros.m4: for macosx, change architecture value
2526	from "Power Macintosh" to "powerpc".
2527
2528	* libamu/util.c (xstrlcpy): format 'len' parameter as u_long, not
2529	int (it's a size_t).
2530
25312005-04-16  Erez Zadok  <ezk@cs.sunysb.edu>
2532
2533	* scripts/amd.conf.5, doc/am-utils.texi (normalize_slashes
2534	Parameter), scripts/amd.conf-sample: document new
2535	normalize_slashes global configuration parameter.
2536
2537	* amd/opts.c (deslashify, normalize_slash): don't touch trailing
2538	slashes, even if multiples of them, if user said
2539	normalize_slashes=no in amd.conf.
2540
2541	* amd/conf.c (gopt_normalize_slashes): new function to record if
2542	to normalize slashes or not.
2543
2544	* amd/amd.h (CFM_NORMALIZE_SLASHES): new flag to decide if to
2545	normalize double-slashes or not ("yes" by default).
2546
2547	* amd/autil.c (am_mounted): pass TRUE when calling mf_mounted.
2548	This is the parent mntfs which does the mf->mf_fo
2549	(am_opts type), and we're passing TRUE here to tell mf_mounted to
2550	actually free the am_opts.
2551
2552	* amd/autil.c (mf_mounted): Be careful when calling free_ops and
2553	XFREE here.  Some pseudo file systems like nfsx call this
2554	function, even though it would be called by the lower-level amd
2555	file system functions.  nfsx needs to call this function because
2556	of the other actions it takes.  So we pass a boolean from the
2557	caller (yes, not so clean workaround) to determine if we should
2558	free or not.  If we're not freeing (often because we're called
2559	from a callback function), then just to be sure, we'll zero out
2560	the am_opts structure and set the pointer to NULL.  The parent
2561	mntfs node owns this memory and is going to free it with a call to
2562	mf_mounted(mntfs,TRUE).
2563
2564	* amd/amd.h: pass flag to mf_mounted, to free or not to free the
2565	am_opts.
2566
2567	* amd/amfs_nfsx.c (amfs_nfsx_cont): call mf_mounted with FALSE to
2568	tell it not to free the am_opts, to avoid double free.
2569
2570	* include/am_defs.h: include limits.h if found.
2571
2572	* configure.in: check for limits.h.  Check for certain Linux
2573	headers such as auto_fs.h after checking for limits.h, and include
2574	the latter if it exists, because some Linux headers depend on
2575	limits.h.  This prevents warnings during configure time.
2576
25772005-04-12  Erez Zadok  <ezk@cs.sunysb.edu>
2578
2579	* amd/amfs_toplvl.c (amfs_toplvl_mount): do NOT set retrans/timeo
2580	values from default global UDP settings, because it can cause
2581	unexpected timeouts in Amd on slow systems.  The default that each
2582	OS provides for these toplvl NFS mounts should be OK, or else you
2583	can use the map_options entry.
2584
25852005-04-09  Daniel P. Ottavio  <dottavio@ic.sunysb.edu>
2586
2587	* amd/nfs_subr.c (mp_to_fh): Replace xstrlcpy with memcpy because the
2588	source buffer is treated more as a filehandle than a string.
2589
2590	* amd/nfs_subr.c (fh_to_mp3): Replace xstrlcpy with memcpy because the
2591	source buffer is treated more as a filehandle than a string.
2592
2593	* amd/opts.c (free_op): No longer need to assign pointer to NULL
2594	after XFREE.
2595
2596	* amd/opts.c (expand_op): Revert back to using strncpy() instead
2597	of xstrlcpy.  The code is correct and relies on the semantics of
2598	strncpy.
2599
2600	* libamu/mount_fs.c (compute_nfs_args): Leave XXX warning that use
2601	of xstrlcpy in NFS_HN_DREF may corrupt a struct nfs_args, or
2602	truncate our concocted "hostname:/path" string prematurely if the
2603	nap->hostname field is ever less than 64 bytes long
2604	(MAXHOSTNAMELEN).
2605
2606	* libamu/util.c (xstrlcpy): Return immediately if len is 0 to
2607	avoid unnecessary work.  Log an error and return if len is less
2608	than 0.
2609
26102005-04-07  Erez Zadok  <ezk@cs.sunysb.edu>
2611
2612	* include/am_utils.h (XFREE): XFREE() should nullify the pointer
2613	even when compiling without debugging.  It's safer this way.
2614
2615	* libamu/xutil.c (am_set_hostname),
2616	hlfsd/stubs.c (nfsproc_lookup_2_svc),
2617	fsinfo/fsinfo.c (fsi_get_args),
2618	fixmount/fixmount.c (is_same_host, remove_mount, main),
2619	conf/mtab/mtab_isc3.c (mnt_dup, mtab_of),
2620	conf/mount/mount_svr4.c (mount_svr4),
2621	conf/mount/mount_linux.c (setup_loop_device),
2622	conf/hn_dref/hn_dref_linux.h (NFS_HN_DREF),
2623	conf/hn_dref/hn_dref_isc3.h (NFS_HN_DREF),
2624	amd/opts.c (expand_op),
2625	amd/ops_nfs.c (mount_nfs_fh),
2626	amd/nfs_subr.c (fh_to_mp3, mp_to_fh),
2627	amd/amfs_host.c (amfs_host_mount),
2628	amd/am_ops.c (merge_opts):
2629	use the new xstrlcpy instead of strncpy.
2630
2631	* conf/checkmount/checkmount_{default,svr4}.c
2632	(fixmount_check_mount): document why NOT to use xstrlcpy.
2633
2634	* libamu/xutil.c: am_hostname need not be MAXHOSTNAMELEN+1 any
2635	more, just MAXHOSTNAMELEN.
2636
2637	* libamu/xutil.c (real_plog): use strlcpy (not xstrlcpy to avoid
2638	recursion, since xstrlcpy may use plog).
2639
2640	* libamu/util.c (xstrlcpy): truncating a string is serious.  Use
2641	XLOG_ERROR not XLOG_WARNING.
2642
26432005-04-06  Erez Zadok  <ezk@cs.sunysb.edu>
2644
2645	* include/am_utils.h: external definition for new xstrlcpy
2646	function.
2647
2648	* libamu/util.c (xstrlcpy): new function.  Similar to strncpy, but
2649	uses strlcpy to guarantee that the resulting string is null
2650	terminated, and also warn if the resulting string was truncated.
2651
2652	* libamu/xutil.c (get_server_pid): move this function from util.c
2653	which is for general-purpose utilities.
2654
2655	* m4/macros/header_templates.m4: template for HAVE_EXTERN_STRLCPY.
2656
2657	* include/am_defs.h: provide extern definition for strlcpy, if
2658	needed.
2659
2660	* libamu/Makefile.am (EXTRA_DIST): include strlcpy.c in distro.
2661
2662	* configure.in: search for strlcpy and its extern.
2663
2664	* amq/pawd.c (find_mt): It only handles *some* filesystem types,
2665	so it breaks on direct xfs mounts for example.  The fix (from
2666	Christos Zoulas) is simple: We need to exclude toplvl to avoid
2667	infinite recursion, but all other fs's are game.
2668
26692005-03-31  Erez Zadok  <ezk@cs.sunysb.edu>
2670
2671	* amd/nfs_subr.c (fh_to_mp3): strncpy may not null terminate if
2672	copying exactly len bytes, so add null just to be safe.
2673
26742005-03-30  Daniel P. Ottavio  <dottavio@ic.sunysb.edu>
2675
2676	* amd/nfs_subr.c (fh_to_mp3): Increased the n of strncpy()
2677	to make sure it null terminates.
2678
26792005-03-29  Daniel P. Ottavio  <dottavio@ic.sunysb.edu>
2680
2681	* amd/nfs_subr.c (fh_to_mp3): Fix memset bug. In this case
2682	the memset can be removed because strncpy() should padd the
2683	buffer with NULLs anyway.
2684
26852005-03-21  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2686
2687	* include/am_defs.h: Clarify comment.
2688
26892005-03-21  Erez Zadok  <ezk@cs.sunysb.edu>
2690
2691	* include/am_defs.h: undefine "GROUP" so Solaris 10 with gcc-2.96
2692	won't complain about a conflict for this definition between
2693	<rpcsvc/nis.h> and <sys/acl.h>.
2694
26952005-03-20  Erez Zadok  <ezk@cs.sunysb.edu>
2696
2697	* amd/readdir.c (amfs_readdir_browsable): use %p, not %lx.
2698
2699	* libamu/mount_fs.c (print_nfs_args): print pointer with %p, not
2700	%lx.
2701
27022005-03-18  Erez Zadok  <ezk@cs.sunysb.edu>
2703
2704	*******************************************************************
2705	*** Released am-utils-6.1-rc1					***
2706	*******************************************************************
2707
27082005-03-18  Erez Zadok  <ezk@cs.sunysb.edu>
2709
2710	* conf/transp/transp_tli.c (get_nfs_version): use proper type for
2711	versout on Solaris (rpcvcers_t).
2712
2713	* amd/mapc.c (mapc_showtypes): if last map type to print, don't
2714	append newline or comma to it.
2715
2716	* libamu/mount_fs.c (print_nfs_args): cast struct netbuf pointer
2717	to %lx because on Solaris 10 sparc gcc-3.4.3 complains about
2718	casting it to an int (size is different).
2719
2720	* configure.in, NEWS: prepare for 6.1-rc1 release.
2721
27222005-03-17  Erez Zadok  <ezk@cs.sunysb.edu>
2723
2724	* scripts/amd2ldif.in, ldap.schema: fixes by Adam Morley
2725	<adam-at-gmi-dot-com> to synchronize what amd2ldif does vs. what
2726	the ldap.schema expects.
2727
2728	* amd/map.c (exported_ap_free): We're using a free-list data
2729	structure and re-using malloc'ed objects.  So, to be safe, memset
2730	entire structure when it's freed, not just the pointer.
2731	(umount_exported): bug fix to on-exit code.  Don't run
2732	am_unmounted() unless unmount_mp() didn't run, since the latter
2733	already calls am_unmounted().  This way we avoid a double-free
2734	bug.
2735
27362005-03-15  Erez Zadok  <ezk@cs.sunysb.edu>
2737
2738	* tasks: updates.  Executable maps is supported.  NFSv4 and
2739	FreeBSD autofs isn't.
2740
2741	* Makefile.am (EXTRA_DIST): include FAQ in distro.
2742
2743	* doc/Makefile.am (alldocs): install README.lda and README.osx.
2744
2745	* FAQ: new file, better late than never.
2746
27472005-03-14  Erez Zadok  <ezk@cs.sunysb.edu>
2748
2749	* scripts/amd2ldif.in: patch to add the amdMapName attribute to
2750	the amdMapTimestamp object when amd2ldif converts it.  This is
2751	necessary if you are using type:=auto mounts and want those
2752	mountmaps looked up through LDAP.  Patch from Jim Zajkowski
2753	<jim.zajkowski@gmail.com>.
2754
27552005-03-12  Erez Zadok  <ezk@cs.sunysb.edu>
2756
2757	* minor new ports: i386-pc-linux-rhel4.
2758
2759	* minor new ports: powerpc-apple-darwin7.8.0.
2760
27612005-03-10  Erez Zadok  <ezk@cs.sunysb.edu>
2762
2763	* amd/ops_nfs.c (prime_nfs_fhandle_cache): rearrange code so it's
2764	cleaner.
2765
2766	* ltmain.sh: upgrade from libtool-1.5.6.
2767
2768	* m4/macros/check_{fs_mntent,mnttab_type,mount_type}.m4: check for
2769	Linux 2.6 kernel modules, which have a .ko extension, not .o.  Now
2770	we can properly detect which file systems exist on Linux 2.6 based
2771	systems (SLES9, RHEL4, Fedora, etc.).
2772
27732005-03-09  Erez Zadok  <ezk@cs.sunysb.edu>
2774
2775	* m4/macros/host_macros.m4: find out what's the OS software
2776	distribution name, if any.
2777
2778	* m4/macros/header_templates.m4: template for DISTRO_NAME.
2779
2780	* amd/get_args.c (get_version_string): print again full_os, os,
2781	osver, and vendor (bug fix).
2782	(get_version_string): print distribution name, if known (e.g.,
2783	rh9, suse8, etc.).
2784
2785	* amd/mapc.c (mapc_showtypes): wrap around list of supported map.
2786
27872005-03-08  Erez Zadok  <ezk@cs.sunysb.edu>
2788
2789	* amd/map.c (umount_exported): when unmounting file systems on
2790	exit (when amd.conf global unmount_on_exit=yes), use unmount_mp()
2791	instead of unmount_node() because the latter always unmounts in
2792	the foreground, whereas the former unmounts in the bg/fg as
2793	needed.  Unmounting always in the foreground has two problems: (1)
2794	if the unmount hangs, amd hangs, and (2) for type:=program, the
2795	unmount script is execve'd(!) thus replacing the main amd process,
2796	which never gets to finish up, leaving the amd mount points hung.
2797
2798	* NEWS: mention new feature of executable maps.
2799
2800	* AUTHORS: Acknowledge Erik Kline.
2801
2802	* scripts/amd.conf.5: document executable maps and
2803	exec_map_timeout parameter.
2804
2805	* scripts/amd.conf-sample: examples of an executable map and
2806	exec_map_timeout.
2807
2808	* m4/macros/header_templates.m4: template for HAVE_MAP_EXEC.
2809
2810	* doc/am-utils.texi: document Executable maps and exec_map_timeout
2811	parameter.
2812
2813	* amd/conf.c (gopt_exec_map_timeout): function to parse
2814	exec_map_timeout [global] parameter.
2815
2816	* amd/amd.h (AMFS_EXEC_MAP_TIMEOUT): define default executable map
2817	timeout to 10 seconds, and a global placeholder for the
2818	configurable value.
2819
2820	* amd/amd.c (init_global_options): initialize default executable
2821	map timeout.
2822
2823	* amd/Makefile.am (EXTRA_amd_SOURCES): include info_exec.c in
2824	tarball.
2825
2826	* configure.in: enable executable maps.
2827
2828	* amd/mapc.c: define executable map functions and behavior.
2829
2830	* amd/info_exec.c: executable map implementation from Erik Kline
2831	<ekline at ekline dot com>, modified, cleaned-up, and fixed.
2832
28332005-03-07  Erez Zadok  <ezk@cs.sunysb.edu>
2834
2835	* amd/info_file.c (file_init_or_mtime): consolidate identical
2836	file_init and file_mtime into one function.
2837
28382005-03-05  Erez Zadok  <ezk@cs.sunysb.edu>
2839
2840	* doc/am-utils.texi (Program Filesystem): if umount/unmount are
2841	not specified, Amd uses "umount ${fs}" by default.
2842
2843	* amd/amfs_program.c (amfs_program_match): if neither unmount nor
2844	umount parameters are specified, use the default userland umount
2845	program with "umount ${fs}".  This way type:=program doesn't have
2846	to specify the umount program for basic unmounting actions.
2847	(amfs_program_init): save unmount program string in mf_private
2848	only if it's NULL, not based on mf_refc.
2849
2850	* configure.in: auto-detect name of userland unmount program.
2851
2852	* aux_conf.h.in (UNMOUNT_PROGRAM): macro for default userland
2853	unmount program.
2854
2855	* amd/ops_cachefs.c (cachefs_init): save unmount program string in
2856	mf_private only if it's NULL, not based on mf_refc.
2857
2858	* configure.in: don't "discover" inheritance file system any more,
2859	since we don't have the .c file for it.
2860
2861	* amd/get_args.c (get_version_string): hack to still show that we
2862	support the inherit file system in output of amd -v.
2863
28642005-03-05  Ion Badulescu  <ionut@moisil.badula.org>
2865
2866	* amd/amfs_inherit.c: removed, dead code
2867
2868	* amd/Makefile.am,
2869	amd/am_ops.c,
2870	amd/amd.h,
2871	conf/autofs/autofs_linux.h,
2872	conf/autofs/autofs_solaris_v1.h,
2873	conf/autofs/autofs_solaris_v2_v3.h,
2874	m4/macros/header_templates.m4: removed references to amfs_inherit.c
2875
28762005-03-05  Erez Zadok  <ezk@cs.sunysb.edu>
2877
2878	* amd/autil.c (am_mounted): completely rewrite the unmount
2879	no/timeout code to (1) make more sense for odd conditions, and (2)
2880	allow utimeout=N mount options to override FS_NOTIMEOUT default
2881	flags for disk-based file systems such as ufs, pcfs, cdfs, etc.
2882
2883	* libamu/mount_fs.c (mount_fs): use safer XFREE() not free().
2884
2885	* conf/umount/umount_linux.c (umount_fs): strtok is destructive,
2886	so use strdup'ed string.
2887
2888	* conf/mount/mount_linux.c (parse_opts): strtok is destructive, so
2889	use strdup'ed string.
2890
28912005-03-04  Erez Zadok  <ezk@cs.sunysb.edu>
2892
2893	* scripts/amd.conf.5, doc/am-utils.texi (cache_duration
2894	Parameter): clarify actual behavior: this Parameter affects
2895	initial mount timeout as well as the linear backoff what happens
2896	the initial failed EBUSY unmount.
2897
2898	* doc/am-utils.texi (opts Option): better explanation of
2899	utimeout=N mount pseudo-option.
2900
2901	* amd/amd.h (AM_TTL, AM_TTL_W): better comments, minor cleanup.
2902
29032005-03-02  Daniel P. Ottavio  <dottavio@ic.sunysb.edu>
2904
2905	* AUTHORS: add Dan Ottavio.
2906
2907	* scripts/amd.conf.5: document new debug_mtab_file option.
2908
2909	* scripts/amd.conf-sample (debug_mtab_file): show example.
2910
2911	* doc/am-utils.texi (debug_mtab_file Parameter): document new
2912	option.
2913
2914	* conf/mtab/mtab_{file,mach3}.c (open_locked_mtab): if mtab file
2915	doesn't exist by the time Amd tries to exist, return a 0 rather
2916	than hang indefinitely.
2917
2918	* amd/conf.c (gopt_debug_mtab_file): new function to parse
2919	debug_mtab_file option.
2920
2921	* amd/amd.h: placeholder for debug_mtab_file string.
2922	Define default debug_mtab_file to "/tmp/mtab".
2923
2924	* NEWS: document new debug_mtab_file option.
2925
29262005-03-02  Erez Zadok  <ezk@cs.sunysb.edu>
2927
2928	* conf/transp/transp_{sockets,tli}.c (amu_get_myaddress): when
2929	users want Amd's NFS service to bind to some arbitrary "localhost"
2930	address, show which address was actually resolved and bound to.
2931
29322005-03-01  Erez Zadok  <ezk@cs.sunysb.edu>
2933
2934	* amd/srvr_nfs.c (start_nfs_pings): move code from elsewhere
2935	(update_nfs_pingval) that initializes the pinger, as well as turns
2936	it on/off as needed, and handles changing its value.  This is to
2937	avoid races and other infinite-loop conditions that could result
2938	in ping storms.
2939
2940	* amd/srvr_amfs_auto.c (amfs_generic_find_srvr): when creating a
2941	new file server structure, default the ping value to AM_PINGER
2942	(30sec) and set the FSF_PING_UNINIT flag.
2943
2944	* amd/amd.h (FSF_PING_UNINIT): new flag to tell whether the NFS
2945	pinger had been initialized for a given file server.
2946
2947	* scripts/ctl-amd.in (stop): no need to check if
2948	/var/lock/subsys/amd file exists if you do an rm -f afterward.
2949	Ensure that proper return value is returned from script.
2950
2951	* NEWS, doc/am-utils.texi (opts Option): update meaning of ping=N
2952	so that if N=-1, pings are off; if N=0, pings are set to the
2953	default value (currently 30 seconds).
2954
29552005-02-28  Erez Zadok  <ezk@cs.sunysb.edu>
2956
2957	* amd/nfs_prot_svc.c (nfs_program_2): on TLI system, try to call
2958	__rpc_get_local_uid to verify if the RPC call through the
2959	local host interface came from UID 0.
2960
2961	* configure.in: look for internal libnsl function
2962	__rpc_get_local_uid (seems to be available on all known TLI
2963	systems, Solaris and HP-UX 11).
2964
2965	* conf/transp/transp_tli.c (amu_svc_getcaller): unnecessary
2966	function for TLI systems (and it violated a array's bounds,
2967	discovered with libumem.so).
2968	(bind_resv_port, bind_resv_port_only_udp, get_autofs_address):
2969	just to be on the safe side, set struct t_bind's qlen field to non
2970	zero (64 by default).  This value cannot be zero for TCP
2971	connections, and it's unclear if it's good to have it zero for UDP
2972	connections, so setting it to 64 is safer.
2973
29742005-02-27  Erez Zadok  <ezk@cs.sunysb.edu>
2975
2976	* doc/am-utils.texi (opts Option, Keep-alives): update text on
2977	ping option.
2978
2979	* amd/srvr_nfs.c (update_nfs_pingval): new function to update NFS
2980	server ping values, turn them off, or re-enable them.
2981	(find_nfs_srvr): call update_nfs_pingval() as needed.
2982
2983	* hlfsd/hlfsd.c (reaper, cleanup): don't use exit(3) in a signal
2984	handler, but use _exit(2) instead.
2985
2986	* amd/amd.c (parent_exit): This signal handler is called during
2987	Amd initialization.  The parent forks a child to do all the hard
2988	automounting work, and waits for a SIGQUIT signal from the child.
2989	When the parent gets the signal it's supposed to call this handler
2990	and exit(3), thus completing the daemonizing process.  Alas, on
2991	some systems, especially Linux 2.4/2.6 with Glibc, exit(3) doesn't
2992	always terminate the parent process.  Worse, the parent process
2993	now refuses to accept any more SIGQUIT signals -- they are
2994	blocked.  What's really annoying is that this doesn't happen all
2995	the time, suggesting a race condition somewhere.
2996	(This happens even if I change the logic to use another signal.)
2997	I traced this to something which exit(3) does in addition to
2998	exiting the process, probably some atexit() stuff or other
2999	side-effects related to signal handling.  Either way, since at
3000	this stage the parent process just needs to terminate, I'm simply
3001	calling _exit(2).  Note also that the OpenGroup doesn't list
3002	exit(3) as a recommended "Base Interface" but they do list
3003	_exit(2) as one.  This fix seems to work reliably all the time.
3004
3005	* scripts/wait4amd2die.in: change default to recognize that amd is
3006	down more quickly (check every 3 seconds instead of 5).
3007
30082005-02-26  Erez Zadok  <ezk@cs.sunysb.edu>
3009
3010	* libamu/xutil.c (amu_release_controlling_tty): warn if closing
3011	stdin/stdout/stderr failed.  No need for tempfd.
3012
3013	* scripts/ctl-{amd,hlfsd}.in: before running any real program in
3014	these shell scripts, chdir to "/" to avoid possible hangs with
3015	existing NFS mounts.  This was causing ctl-amd's forked
3016	grand-child amd process to hang if restartable_mounts=no.  Go
3017	figure.
3018
30192005-02-25  Erez Zadok  <ezk@cs.sunysb.edu>
3020
3021	* minor new port ia64-unknown-linux-rhel4
3022
3023	* fsinfo/fsi_util.c (set_ether_if): avoid u_long casting to -1
3024	(RHEL4 gcc 3.4.3 ia64 compiler complains).
3025
30262005-02-24  Erez Zadok  <ezk@cs.sunysb.edu>
3027
3028	* minor new port i386-unknown-freebsd6.0 (6.0-CURRENT-SNAP001).
3029
30302005-02-23  Erez Zadok  <ezk@cs.sunysb.edu>
3031
3032	* minor new port: i386-pc-linux-rhel3.
3033
3034	* INSTALL: major update of the compatibility list.
3035
3036	* m4/macros/os_cflags.m4: set AMU_CFLAGS not AM_CFLAGS.
3037
30382005-02-22  Erez Zadok  <ezk@cs.sunysb.edu>
3039
3040	* scripts/amd.conf.5, doc/am-utils.texi (preferred_amq_port):
3041	document new preferred_amq_port [global] option.
3042
3043	* scripts/amd.conf-sample (preferred_amq_port): example.
3044
3045	* include/am_utils.h: add preferred_amq_port to prototype.
3046
3047	* conf/transp/transp_tli.c (bind_preferred_amq_port): new function
3048	to bind the Amq RPC service for UDP and TCP to a preferred port
3049	(or to any port if preferred_amq_port==0).
3050	(create_amq_service): decide if to bind to RPC_ANYFD, or to a
3051	requested port.
3052
3053	* conf/transp/transp_sockets.c (create_amq_service): if
3054	preferred_amq_port is greater than 0, then bind to that port for
3055	both UDP and TCP.  If preferred_amq_port==0, then bind to any
3056	port.
3057
3058	* amd/nfs_start.c (mount_automounter): pass global
3059	preferred_amq_port value to create_amq_service().
3060
3061	* amd/conf.c (gopt_preferred_amq_port): new function to parse
3062	amd.conf value for preferred_amq_port.
3063
3064	* amd/amd.h: placeholder for preferred_amq_port.
3065
30662005-02-21  Erez Zadok  <ezk@cs.sunysb.edu>
3067
3068	* conf/transp/transp_tli.c (bind_resv_port_only_udp): rename old
3069	bindnfs_port to a more proper name.  This function binds the NFS
3070	service to a specified port, and only for UDP.
3071
3072	* conf/transp/transp_tli.c: cleanup some code, rename some
3073	functions, in preparation for RPC amq port specification code.
3074
30752005-02-19  Erez Zadok  <ezk@cs.sunysb.edu>
3076
3077	* */Makefile.am: don't redefine CFLAGS or LDFLAGS; they are
3078	reserved for users to pass them on the command line.  Instead, use
3079	autoconf's internal AM_CFLAGS and AM_LDFLAGS.
3080
3081	* depcomp, install-sh, missing, mkinstalldirs: update from latest
3082	versions of Automake 1.9.2.
3083
3084	* m4/macros/*.m4: properly quote AC_DEFUN'ed macro name, and fix
3085	regexp/patsubst M4 commands.  Newer versions of autoconf (e.g.,
3086	v2.59) complain about those.
3087
30882005-02-17  Erez Zadok  <ezk@cs.sunysb.edu>
3089
3090	* amd/opts.c (f_xhost): if we don't have hstrerror, just print the
3091	value of h_errno.
3092
3093	* configure.in: include -lresolv if it defines the hstrerror()
3094	function and not already available in existing libraries.
3095
3096	* minor new port: powerpc-apple-darwin7.7.0.
3097
3098	* amd/nfs_subr.c (mp_to_fh): pathlen should be u_int because it is
3099	later compared against an unsigned quantity (complaint from gcc
3100	3.3 on SuSE 8.2)
3101
3102	* include/am_utils.h: remove unnecessary (and conflicting) extern
3103	for bind_resv_port2(), which is declared as static in
3104	transp_tli.c.
3105
3106	* doc/am-utils.texi, scripts/amd.conf.5, scripts/amd.conf-sample,
3107	NEWS: document four new amd.conf options: nfs_retry_interval_udp,
3108	nfs_retransmit_counter_udp nfs_retry_interval_tcp, and
3109	nfs_retransmit_counter_tcp.
3110
3111	* amd/ops_nfs.c (mount_nfs_fh): set timeo/retrans values based on
3112	wether nfs_proto was "udp" or "tcp".
3113
3114	* amd/amfs_toplvl.c (amfs_toplvl_mount): set retrans/timeo values
3115	from default UDP settings (because toplvl mounts are UDP for now).
3116
3117	* amd/get_args.c (get_args): use parameters to -t option to set
3118	both UDP and TCP timeo/retrans values.
3119
3120	* amd/conf.c: (gopt_nfs_retransmit_counter_udp,
3121	(gopt_nfs_retransmit_counter_tcp, gopt_nfs_retry_interval_udp
3122	(gopt_nfs_retry_interval_tcp): new functions to parse UDP and TCP
3123	retrans/timeo parameters separately.
3124	(gopt_nfs_retry_interval, gopt_nfs_retransmit_counter): if
3125	specified, use it to set defaults for both UDP and TCP.
3126
3127	* amd/amd.c (init_global_options): initialize default values of
3128	both UDP and TCP retrans/timeo values to -1.
3129
3130	* amd/amd.h (AMU_TYPE_{TCP,UDP,MAX}): define separate retrans and
3131	timeo values, one for udp mounts and another for tcp mounts.
3132
31332005-02-16  Erez Zadok  <ezk@cs.sunysb.edu>
3134
3135	* README.osx: new file with some instructions for Mac OS-X users,
3136	courtesy Kevin Layer.
3137
3138	* amd/get_args.c (get_args): move call to switch_to_logfile()
3139	after processing -v, so we don't print "no logfile defined; using
3140	stderr" when we're about to print version info and exit anyway.
3141
3142	* minor new port: powerpc-ibm-aix5.3.0.0.
3143
3144	* hlfsd/hlfsd.c (main): rewrite code to avoid negative array
3145	references.
3146
3147	* conf/checkmount/checkmount_aix.c: remove extern definition for
3148	mntctl(), since AIX 5.3 has it in <sys/vmount.h>.
3149
3150	* amd/info_union.c (union_reload): rewrite code to avoid negative
3151	array references.
3152
3153	* amd/opts.c (split_opts, expand_op): rewrite code to avoid
3154	negative array references.
3155
3156	* conf/mtab/mtab_aix.c: remove extern definition for mntctl(),
3157	since AIX 5.3 has it in <sys/vmount.h>.
3158
3159	* libamu/xutil.c (real_plog): rewrite code to avoid negative array
3160	references.
3161
3162	* libamu/wire.c (is_network_member): rearrange code slightly to
3163	avoid negative array references (AIX 5.3 xlC 7.0 compiler
3164	complains about it).
3165
31662005-01-26  Erez Zadok  <ezk@cs.sunysb.edu>
3167
3168	* doc/am-utils.texi (xhost Selector Function): document new
3169	selector function.
3170
3171	* amd/opts.c (f_xhost): new function for use when matching the
3172	"host" selector for the current host's name.  This function will
3173	now match the primary host name as well as all known aliases
3174	(CNAMES) that gethostbyname() returns.  This function now supports
3175	a new function selector called xhost(ARG); the old host==ARG
3176	selector is unharmed.
3177
31782005-01-17  Ion Badulescu  <ionut@moisil.badula.org>
3179
3180	* NEWS: document the ability to restart old mount points
3181
3182	* amd/map.c (mount_auto_node): force the fileid of the
3183	root to be 1, so that it won't change between restarts; use the
3184	root filesystem's own methods instead of hard-coding the use of
3185	the default methods
3186
3187	* conf/transp/transp_tli.c (create_nfs_service): better cleanup on
3188	error conditions.
3189	(bind_resv_port2): allow the caller to request a certain port.
3190
3191	* conf/transp/transp_sockets.c (bind_resv_port): allow the caller
3192	to request a certain port.
3193	(create_nfs_service): better cleanup on error conditions.
3194
3195	* amd/restart.c (restart_automounter_nodes): new function, takes
3196	care of restarting automounter NFS mount points (autofs will come
3197	later).
3198	(restart): skip all automounter mount points.
3199
3200	* amd/nfs_subr.c (fh_to_mp3, mp_to_fh): new filehandle
3201	implementation: if the path to the node is shorter than sizeof(fh)
3202	chars (currently 32 chars for a NFSv2 fh), simply store it inside
3203	the fh. For longer paths, keep the old implementation.
3204
3205	* amd/nfs_start.c (mount_automounter): reorder things so that
3206	restarting the toplvl filesystems occurs before anything else (so
3207	that we can grab all the ports we need before we accidentally use
3208	them for something else).
3209
3210	* amd/mntfs.c (locate_mntfs): remove dead code; add special
3211	handling of restarted toplvl filesystems.
3212
3213	* amd/mapc.c (root_keyiter): fix up a comment.
3214
3215	* amd/map.c (path_to_exported_ap): new function, searches for and
3216	returns a node by the path to it.
3217	(get_root_nfs_fh): remove unnecessary fiddling with the root fh.
3218
3219	* config.guess.long: support Red Hat Enterprise Linux
3220
32212005-01-17  Erez Zadok  <ezk@cs.sunysb.edu>
3222
3223	* libamu/util.c (rmdirs): prevent amd from logging 'Read-only
3224	filesystem' errors when the mount point has an ancestor (i.e. '/')
3225	that is mounted read-only.  Patch from David Rage <rage@ucl.ac.uk>.
3226
32272005-01-17  Ion Badulescu  <ionut@moisil.badula.org>
3228
3229	* conf/umount/umount_linux.c (umount_fs): Linux doesn't need the
3230	autofs space hack
3231
3232	* conf/umount/umount_default.c (umount_fs): there is no need for
3233	HAVE_LOOP_DEV, now that Linux has its own dedicated umount_linux.c
3234
32352005-01-17  Erez Zadok  <ezk@cs.sunysb.edu>
3236
3237	* doc/am-utils.texi (Automatic Unmounting): document new umount2()
3238	behavior on Linux.
3239
3240	* conf/umount/umount_linux.c (umount_fs): new file.  On Linux, if
3241	umount(2) failed with EIO or ESTALE, try umount2(2) with
3242	MNT_FORCE+MNT_DETACH.  Based on patch from Christos Zoulas
3243	<christos@zoulas.com>.
3244
3245	* m4/macros/check_umount_style.m4: pick new linux umount style.
3246
3247	* Makefile.am (EXTRA_DIST_CONF): distribute new umount_linux.c
3248	file.
3249
32502005-01-16  Erez Zadok  <ezk@cs.sunysb.edu>
3251
3252	* conf/nfs_prot/nfs_prot_aix{4_2,4_3,5_1,5_2}.h,
3253	m4/macros/struct_nfs_args.m4: minor cleanups for quicker execution
3254	of "nfs_args" test.
3255
32562005-01-13  Erez Zadok  <ezk@cs.sunysb.edu>
3257
3258	* amd/get_args.c (show_usage): separate function to print usage
3259	string.
3260	(get_args) Call show_usage() from get_args when needed, then exit.
3261
3262	* amd/get_args.c (get_version_string): print also domain, host,
3263	and hostd.
3264	(get_args): print version string at the very end, after all other
3265	values had been initialized.  Patch from Christos Zoulas
3266	<christos@zoulas.com>.
3267
3268	* conf/transp/transp_sockets.c (check_pmap_up, get_nfs_version),
3269	conf/transp/transp_tli.c (check_pmap_up): correct an inconsistency
3270	in timeouts in the RPC code between socket and TLI
3271	implementations.  The clntudp_create timeout has a different
3272	meaning than the clnt_call timeout.  Set the timeout of the create
3273	to 2 seconds which means retry if no answer in two seconds, and
3274	the timeout call to 6 seconds, which will give us consistently 2
3275	to 3 pings.  This is useful on occasional network UDP loss where a
3276	single packet loss would wrongfully mark a server down.  (The TLI
3277	code is the one that had the problem occurs.)  Patch from Christos
3278	Zoulas <christos@zoulas.com>.
3279
3280	* libamu/mount_fs.c (compute_nfs_attrcache_flags): make sure code
3281	compiles even for systems that don't have the nfs_args
3282	ac{reg,dir}{min,max} fields.
3283
3284	* amd/amfs_toplvl.c (set_auto_attrcache_timeout): just to be safe,
3285	add "noac" if amd.conf option auto_attrcache was set to 0.  This
3286	should hopefully make the compute_nfs_attrcache_flags patch even
3287	safer.
3288
3289	* libamu/mount_fs.c (compute_nfs_attrcache_flags): separate
3290	function to compute attribute-cache values.  This function now
3291	computes attribute-cache flags for BOTH Amd's automount points
3292	(NFS) as well as any normal NFS mount that Amd performs.
3293	(compute_nfs_args, compute_automounter_nfs_args): call
3294	compute_nfs_attrcache_flags to figure out attribute-cache related
3295	flags.  Patch from Christos Zoulas <christos@zoulas.com>.
3296
3297	* scripts/amd.conf-sample: show examples of new global options
3298	domain_strip and auto_attrcache.
3299
3300	* scripts/amd.conf.5: document new global options domain_strip and
3301	auto_attrcache.  Add warning to auto_attrcache use in case of
3302	ESTALE.
3303
3304	* doc/am-utils.texi: minor cleanups and document new global
3305	options domain_strip and auto_attrcache.  Add warning to
3306	auto_attrcache use in case of ESTALE.
3307
3308	* amd/conf.c (gopt_auto_attrcache): parse new global amd.conf
3309	option auto_attrcache.
3310	(gopt_domain_strip): parse new global amd.conf option
3311	domain_strip.  Part of a patch from Christos Zoulas
3312	<christos@zoulas.com>.
3313
3314	* amd/autil.c (host_normalize): don't call domain_strip()
3315	unconditionally, but depend on the new global amd.conf flag
3316	domain_strip.
3317
3318	* amd/amfs_toplvl.c (set_auto_attrcache_timeout): new function to
3319	set attribute cache timeout value given other configured global
3320	defaults.
3321	(amfs_toplvl_mount): set automount point attribute cache option
3322	value to "noac" if attrcache=0, else set it to whatever
3323	set_auto_attrcache_timeout() returns.
3324
3325	* amd/amd.h (CFM_DOMAIN_STRIP, CFM_DEFAULT_FLAGS): flag to decide
3326	if to strip the domain from the host name or not, default options
3327	set to strip the domain.
3328	Store global value of automount attribute cache timeout value.
3329
3330	* amd/amd.c (init_global_options): add flag to record automount
3331	point attribute cache value.
3332
3333	* amd/amd.c (do_memory_locking): new function to encapsulate all
3334	of the memory-locking functionality, which was in main() before.
3335	Also added a call to madvise(), just in case.
3336	(main): call do_memory_locking() to pin process memory if amd.conf
3337	asked for it, but do so after the main Amd process daemonizes,
3338	because mlock/mlockall is not inherited by fork() by default.
3339	Slightly restructured patch from Jonathan Chen
3340	<jon+amd@spock.org>.
3341
3342	* configure.in: check for madvise(2).
3343
3344	* config.guess, config.sub: updates for latest official GNU
3345	versions.
3346
3347	* m4/GNUmakefile: update paths to "make update"
3348
33492005-01-12  Erez Zadok  <ezk@cs.sunysb.edu>
3350
3351	* conf/nfs_prot/nfs_prot_hpux11.h: define an nfs_fh3 structure
3352	that's compatible for HPUX11 as well as NFSv3.
3353
3354	* include/am_defs.h: On AIX 5.2, both <resolv.h> and
3355	<arpa/nameser_compat.h> define MAXDNAME, if compiling with gcc
3356	-D_USE_IRS (so that we get extern definitions for hstrerror() and
3357	others).  So undef MAXDNAME before it gets redefined.
3358
3359	* include/am_defs.h: Solaris 10 (build 72) defines GROUP_OBJ in
3360	<sys/acl.h>, which is included in many other header files.
3361	<rpcsvc/nis.h> uses GROUP_OBJ inside enum zotypes.  So if you're
3362	unlucky enough to include both headers, you get a compile error
3363	because the two symbols conflict.  Temp hack: undefine acl.h's
3364	GROUP_OBJ before including nis.h, because we don't need acl.h for
3365	am-utils.
3366
3367	* m4/macros/os_cflags.m4: turn -D_USE_IRS for AIX5+ so that
3368	certain extern definitions of resolver functions become available.
3369
3370	* amd/opts.c (expand_op): use #define for expand_error string
3371	because some compilers complain about the use of static const
3372	char[] inside a varargs function.
3373
3374	* minor new port i386-unknown-netbsdelf1.6.2.
3375
3376	* new port i386-unknown-netbsdelf2.0.
3377
3378	* minor port i386-unknown-freebsd5.3.
3379
3380	* libamu/mount_fs.c (compute_nfs_args): don't compare
3381	nap->maxgrouplist against NULL but against 0 directly, because on
3382	FreeBSD 4.3, NULL is defined is (void *)0 and gcc 3.4 complains
3383	about a type mismatch.
3384
3385	* minor port i386-pc-linux-fc3 (Fedora Core 3).
3386
33872005-01-11  Erez Zadok  <ezk@cs.sunysb.edu>
3388
3389	* hlfsd/hlfsd.c (main): use sigsuspend() over sigpause(), because
3390	FC3 doesn't have proper extern definition for the defunct
3391	sigpause().
3392
3393	* configure.in: look for sigsuspend().
3394
33952005-01-01  Erez Zadok  <ezk@cs.sunysb.edu>
3396
3397	* updated copyright year to 2005 on all files.
3398
33992004-11-29  Erez Zadok  <ezk@cs.sunysb.edu>
3400
3401	* scripts/amd.conf.5: Small fixes to typos in man page, from
3402	Thomas Klausner <tk@giga.or.at>.
3403
34042004-10-22  Erez Zadok  <ezk@cs.sunysb.edu>
3405
3406	* ldap.schema: add this file to distribution.
3407
34082004-09-15  Erez Zadok  <ezk@cs.sunysb.edu>
3409
3410	* doc/am-utils.texi: fix old URLs.
3411
34122004-09-01  Erez Zadok  <ezk@cs.sunysb.edu>
3413
3414	* conf/mtab/mtab_aix.c (read_mtab): avoid a race condition between
3415	multiple calls to mntctl().  Patch suggested by Michael van Elst
3416	<M.van.Elst@science-computing.de>.
3417
34182004-08-07  Erez Zadok  <ezk@cs.sunysb.edu>
3419
3420	* doc/am-utils.texi (Program Filesystem): document how to get
3421	double slashes in Amd maps.
3422
3423	* amd/opts.c (normalize_slash): support escaped slashes, needed
3424	for SMB mounts.  Use '\\\/\\\/' in a string to get a double slash.
3425
34262004-08-06  Erez Zadok  <ezk@cs.sunysb.edu>
3427
3428	* amd/amfs_program.c (amfs_program_match): bug fix.  Complain if
3429	both opt_unmount and opt_umount are missing, not when just one of
3430	them is missing.
3431
34322004-08-03  Erez Zadok  <ezk@cs.sunysb.edu>
3433
3434	* amq/pawd.c (find_mt): recognize "linkx" type mounts.  Patch from
3435	Hauke Fath <hauke@Espresso.Rhein-Neckar.DE>.  Support "nfsx" while
3436	we're at it.
3437
3438	* doc/am-utils.texi: mention bugzilla.  Fix broken URL HREF's.
3439
34402004-08-02  Erez Zadok  <ezk@cs.sunysb.edu>
3441
3442	* amq/pawd.c (find_mt): recognize "host" type mounts.  Patch from
3443	Dan Nelson <dnelson@allantgroup.com>.
3444
34452004-07-30  Erez Zadok  <ezk@cs.sunysb.edu>
3446
3447	* doc/am-utils.texi, NEWS: minor typos fixed.
3448
34492004-07-30  Erez Zadok  <ezk@play.cs.columbia.edu>
3450
3451	* include/am_xdr_func.h: cannot have field-less structure; put a
3452	dummy field in.
3453
3454	* conf/autofs/autofs_solaris_v2_v3.c (xdr_autofs_rddirargs): cast
3455	2nd arg of xdr_u_int to a u_int*, not int*.
3456	(autofs_mount_2_req): don't use C++ // comments.
3457
34582004-07-30  Erez Zadok  <ezk@cs.sunysb.edu>
3459
3460	* m4/macros/{try_compile_anyfs,check_field}.m4: include
3461	<fs/msdosfs/msdosfsmount.h> if it exists.  Part of a set of
3462	FreeBSD 5 patches from Martin Blapp <mb@imp.ch>.
3463
3464	* include/am_defs.h: include <fs/msdosfs/msdosfsmount.h> if it
3465	exists.
3466
3467	* amd/ops_pcfs.c (mount_pcfs): set pcfs_args_t.dirmask field to
3468	0777 by default.
3469
3470	* configure.in: check for pcfs_args_t.dirmask field.  Check for
3471	existence of <fs/msdosfs/msdosfsmount.h>, new on FreeBSD 5.
3472
34732004-07-29  Erez Zadok  <ezk@cs.sunysb.edu>
3474
3475	* minor new port: i386-pc-linux-fc2 (Fedora Core 2).
3476
3477	* amd/info_ldap.c (amu_ldap_rebind): don't use ldap_enable_cache()
3478	unless the function exists in libldap and the extern is in
3479	<ldap.h>.  Recently, openldap removed the extern from ldap.h, but
3480	left the function in libldap, for binary compatibility; however
3481	ldap_enable_cache and related functions have been deprecated (and
3482	no longer listed in the header files), and therefore should be
3483	avoided.
3484
3485	* m4/macros/check_extern_ldap.m4: new macro to check for
3486	LDAP-specific externs.  This is separate from check_extern.m4 so
3487	as to avoid breaking the general-purpose macro with LDAP-specific
3488	headers.
3489
3490	* m4/macros/header_templates.m4: extern template for new
3491	HAVE_EXTERN_LDAP_ENABLE_CACHE.
3492
3493	* configure.in: call new check_extern_ldap.m4 macro.
3494
3495	* Makefile.am (EXTRA_DIST_M4): distribute new check_extern_ldap.m4
3496	macro.
3497
3498	* config.guess.long: distinguish between redhat and fedora-core
3499	releases.
3500
35012004-07-23  Erez Zadok  <ezk@cs.sunysb.edu>
3502
3503	* Minor new port i386-pc-linux-suse8.2: minor new port to SuSE
3504	8.2.  This systems' latest GCC (gcc version 3.3 20030226
3505	prerelease) correctly caught a lot of possibly bad comparisons
3506	between signed and unsigned quantities.
3507
3508	* hlfsd/homedir.c (table_add, plt_search): changed first arg of
3509	both functions to u_int.
3510
3511	* hlfsd/hlfsd.h, hlfsd/hlfsd.c: change 'cache_interval' to u_int.
3512	Changed proto for plt_search arg to u_int.
3513
3514	* amq/amq.c (show_mi, main): change 'i' to u_int.
3515
3516	* amq/pawd.c (find_mlp): change 'i' to u_int.
3517
3518	* amd/srvr_nfs.c (find_nfs_srvr): change proto_nfs_version to
3519	u_int.
3520
3521	* amd/amd.h: change prototype of vreaddir and amfs_error_readdir
3522	to use u_int count parameter.
3523
3524	* amd/ops_TEMPLATE.c (foofs_readdir), amd/amfs_error.c
3525	(amfs_error_readdir): change 'count' parameter in proto to u_int.
3526
3527	* amd/amd.h: change proto of amfs_generic_readdir() to use u_int
3528	count parameter.
3529
3530	* amd/readdir.c (make_entry_chain): preflen should be u_int.
3531	(amfs_readdir_browsable): change 'count' to u_int.
3532	(amfs_generic_readdir): change 'count' to u_int.
3533
3534	* amd/amd.h: amu_global_options's portmap_program field should be
3535	u_long, not int (to match RPC conventions).  Change am_fh's
3536	fhh_gen field to u_int, to match am_gen field in struct am_node.
3537
3538	* amd/conf.c (gopt_portmap_program): use atol() instead of atoi()
3539	to avoid size differences.
3540
3541	* conf/mount/mount_linux.c (find_unused_loop_device): cast to int
3542	to avoid comparison between chars and integers.
3543
3544	* libamu/mount_fs.c (get_hex_string): change 'i' to u_int to avoid
3545	comparisons between signed and unsigned integers.
3546
35472004-07-13  Erez Zadok  <ezk@cs.sunysb.edu>
3548
3549	* minor new port: i386-pc-linux-suse9.1.
3550
3551	* include/am_defs.h: don't use __kernel_dev_t for dev_t on Linux,
3552	because SuSE wants __kernel_old_dev_t.  Instead, just define it
3553	directly to what they both use: an unsigned short.
3554
35552004-05-27  Erez Zadok  <ezk@cs.sunysb.edu>
3556
3557	* minor new port: i386-unknown-freebsd4.10
3558
35592004-04-29  Ion Badulescu  <ionut@moisil.badula.org>
3560
3561	* amd/amfs_generic.c (amfs_lookup_one_mntfs): fix the creation of
3562	mountpoints for autofs-based sublinks the right way
3563
35642004-04-28  Ion Badulescu  <ionut@moisil.badula.org>
3565
3566	Fixes for various memory management problems discovered by
3567	Rainer's purify run:
3568
3569	* conf/transp/transp_tli.c (check_pmap_up): zero out struct
3570	timeval before using;
3571	(get_nfs_version): ditto
3572
3573	* amd/map.c (umount_exported): make sure we don't try to free the
3574	same am_node multiple times, by setting its corresponding
3575	exported_ap slot to null
3576
3577	* amd/get_args.c (get_version_string): a static pointer is pretty
3578	pointless, make it automatic
3579
3580	* amd/conf.c (gopt_debug_options): remove unnecessary strdup();
3581	(gopt_log_options): ditto
3582	(gopt_print_version): free version string after using it
3583
3584	* amd/autil.c (mf_mounted): free mntfs->mf_fo instead of leaking
3585	it
3586
3587	* amd/amfs_generic.c (amfs_lookup_one_mntfs): use the CALLOC macro
3588	(amfs_lookup_mntfs): free def_opts on return
3589
3590	* amd/amd.c (daemon_mode): zero out struct sigaction before using
3591	it;
3592	(main): ditto
3593
35942004-04-27  Ion Badulescu  <ionut@moisil.badula.org>
3595
3596	* amd/amfs_generic.c (amfs_lookup_one_mntfs): force FS_MKMNT on
3597	the real mount of an autofs-based sublink
3598
35992004-04-25  Ion Badulescu  <ionut@moisil.badula.org>
3600
3601	* amd/map.c (free_map_if_success): avoid dereferencing a pointer
3602	to potentially freed memory
3603
36042004-02-26  Erez Zadok  <ezk@cs.sunysb.edu>
3605
3606	* minor new port: i386-unknown-freebsd5.2.1.
3607
36082004-01-30  Ion Badulescu  <ion@guppy.limebrokerage.com>
3609
3610	* scripts/ctl-hlfsd.in: don't run hlfsd with -D fork
3611
36122004-01-25  Erez Zadok  <ezk@cs.sunysb.edu>
3613
3614	* minor new port: sparc64-unknown-linux-deb3.0
3615
3616	* config.guess.long: recoognize Debian Linux.
3617
36182004-01-22  Erez Zadok  <ezk@cs.sunysb.edu>
3619
3620	* conf/transp/transp_tli.c (amu_get_myaddress): use
3621	htonl(INADDR_LOOPBACK) and define INADDR_LOOPBACK if not already
3622	available.
3623
36242004-01-21  Erez Zadok  <ezk@cs.sunysb.edu>
3625
3626	* wire-test/wire-test.c, hlfsd/hlfsd.c (main): pass NULL as second
3627	parameter to amu_get_myaddress().
3628
3629	* conf/transp/transp_tli.c (amu_get_myaddress): resolve value of
3630	localhost_address amd.conf parameter, if defined (else default to
3631	HOST_SELF_CONNECT).
3632	Removed htonl() around socket address copying (I think it was
3633	wrong) since plog("My IP address is...") in amd.c was printing
3634	addresses wrong on Solaris x86..
3635
3636	* conf/transp/transp_sockets.c (amu_get_myaddress): comment out
3637	old DEBUG code that warns if 127.0.0.1 isn't the same as what
3638	get_myaddress() reports.  Add code to resolve value of
3639	localhost_address amd.conf parameter, if defined (else default to
3640	127.0.0.1).
3641
3642	* amd/conf.c (gopt_localhost_address): new function to parse
3643	amd.conf parameter localhost_address.
3644
3645	* amd/amd.h: global field to store amd.conf localhost_address
3646	parameter.
3647
3648	* amd/amd.c (main): call amu_get_myaddress with global option,
3649	which could have been set in amd.conf.
3650
3651	* NEWS, doc/am-utils.texi, scripts/amd.conf-sample,
3652	scripts/amd.conf.5: document new option localhost_address.
3653
36542004-01-20  Ion Badulescu  <ionut@moisil.badula.org>
3655
3656	* amd/conf.c (gopt_nfs_allow_insecure_port): support function for
3657	the new "nfs_allow_insecure_port" amd.conf directive
3658
3659	* amd/nfs_prot_svc.c (nfs_program_2): complain about the insecure
3660	port and drop the request only if the "nfs_allow_insecure_port"
3661	option is not set in amd.conf
3662
3663	* doc/am-utils.texi (Global Parameters): documented the new
3664	amd.conf directive "nfs_allow_insecure_port"
3665
3666	* scripts/amd.conf.5 (nfs_allow_insecure_port): ditto
3667
3668	* scripts/amd.conf-sample (nfs_allow_insecure_port): added the
3669	"nfs_allow_insecure_port" directive
3670
36712004-01-20  Erez Zadok  <ezk@cs.sunysb.edu>
3672
3673	* doc/am-utils.texi: amd-workers is defunct.
3674
36752004-01-19  Erez Zadok  <ezk@cs.sunysb.edu>
3676
3677	* cvs-server.txt: updated instructions
3678
36792004-01-18  Erez Zadok  <ezk@cs.sunysb.edu>
3680
3681	* minor new port: i386-unknown-freebsd5.2.
3682
36832004-01-05  Erez Zadok  <ezk@cs.sunysb.edu>
3684
3685	* MIRRORS.{txt,html}: verify each mirror site, update to new
3686	locations (if found), and remove stale mirrors URLs.
3687
3688	* updated copyright year to 2004 on all files.
3689
36902004-01-03  Erez Zadok  <ezk@cs.sunysb.edu>
3691
3692	* MIRRORS.txt: track status.
3693
3694	* Makefile.am (install-snapshot): new directory to install
3695	snapshots (now that am-utils home page is moved).
3696
36972004-01-02  Erez Zadok  <ezk@cs.sunysb.edu>
3698
3699	* INSTALL, README.autofs: remove forced text-mode.
3700
3701	* doc/am-utils.texi: fix Amd book URL.
3702
3703	* Makefile.am (EXTRA_DIST): include new mirror files in tarball.
3704
3705	* AUTHORS, BUGS, README, README.y2k, configure.in,
3706	doc/am-utils.texi: revisions to use newer URLs for Web site, FTP,
3707	and mailing lists.
3708
3709	* MIRRORS.{html,txt}: updates.
3710
3711	* doc/Makefile.am: install mirror lists officially.
3712
37132004-01-01  Erez Zadok  <ezk@cs.sunysb.edu>
3714
3715	* tasks: things to do after migrating ftp/Web sites.
3716
37172003-12-09  Erez Zadok  <ezk@cs.sunysb.edu>
3718
3719	* fsinfo/fsinfo.8: fixed typo (unbalanced []) in man page.  Bug
3720	report from Eric S. Raymond <esr@thyrsus.com>.
3721
37222003-11-18  Erez Zadok  <ezk@cs.sunysb.edu>
3723
3724	* Makefile.am (EXTRA_DIST_M4): exclude removed file
3725	m4/macros/struct_nfs_fh3.m4 from distro.
3726
37272003-10-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3728
3729	* libamu/xdr_func.c (xdr_am_nfs_fh3): Use AM_FHSIZE3 instead of
3730	FHSIZE3 (may be undefined).
3731
37322003-10-24  Ion Badulescu  <ion@guppy.limebrokerage.com>
3733
3734	Compile fix for Solaris7 with LDAP:
3735
3736	* include/am_defs.h: moved the ldap headers before am_nfs_prot.h
3737	to facilitate using ldap types in it
3738
3739	* conf/nfs_prot/nfs_prot_sunos5_7.h: add a couple of ldap
3740	definitions that Sun left out of their headers
3741
37422003-10-24  Ion Badulescu  <ionut@moisil.badula.org>
3743
3744	* conf/nfs_prot/nfs_prot_*.h: remove all NFSv3-related
3745	definitions, they are now defined globally
3746
3747	* libamu/xdr_func.c: unconditionally define all xdr functions
3748	needed for NFSv3, but with an am_ prefix to prevent namespace
3749	collisions
3750
3751	* amd/amfs_host.c, amd/ops_nfs.c, amd/srvr_nfs.c,
3752	libamu/mount_fs.c: added the am_ prefix to all
3753	structures and functions having to do with NFSv3 to prevent
3754	namespace collisions
3755
3756	* include/am_utils.h: moved definition of am_nfs_handle to ...
3757
3758	* include/am_xdr_func.h: ... here. Also define AM_FHSIZE3,
3759	am_nfs_fh3, AM_NFSPROC3_LOOKUP, am_nfsstat3, am_fhandle3,
3760	am_mountstat3, am_mountres3_ok, am_mountres3, am_filename3,
3761	am_diropargs3, am_LOOKUP3args, am_LOOKUP3resok, am_LOOKUP3resfail,
3762	am_LOOKUP3res here; remove cross-platform compile helper macros
3763	AMU_LOOKUP3RES_*.
3764
3765	* include/am_defs.h: include am_xdr_func.h before am_utils.h to
3766	provide definitions for NFS filehandles
3767
3768	* amd/amd.h: removed declaration for xdr_mountres3
3769
3770	* doc/am-utils.text: minor warning fix
3771
3772	* BUGS: document the autoconf warnings when trying to compile
3773	system header files in isolation
3774
37752003-10-23  Ion Badulescu  <ionut@moisil.badula.org>
3776
3777	* m4/macros/struct_nfs_fh3.m4: removed, not needed
3778
3779	* configure.in: check if struct mounta has the optptr field;
3780	removed all NFSv3-related checks, we implement everything
3781	internally now
3782
3783	* conf/autofs/autofs_solaris_v2_v3.c (autofs_mount_2_free): don't
3784	touch mnt->optptr unless HAVE_MOUNTA_OPTPTR is defined
3785
37862003-10-22  Ion Badulescu  <ionut@moisil.badula.org>
3787
3788	* m4/macros/struct_nfs_fh3.m4: removed, not used anymore
3789
3790	* libamu/xdr_func.c (xdr_am_nfs_fh3): update xdr_am_nfs_fh3
3791	comments
3792
3793	* configure.in: don't check for xdr_nfs_fh3 and struct nfs_fh3, we
3794	always use our own
3795
37962003-10-22  Ion Badulescu  <ion@guppy.limebrokerage.com>
3797
3798	* BUGS: document the limitations of bind mounts on Linux
3799
38002003-10-21  Ion Badulescu  <ionut@moisil.badula.org>
3801
3802	* buildall: added support for -i (make install)
3803
38042003-10-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3805
3806	* NEWS: New minor port i386-pc-solaris2.10 (Solaris 10).
3807	* INSTALL: Mention its test status.
3808
38092003-10-16  Erez Zadok  <ezk@cs.sunysb.edu>
3810
3811	* amd/ops_nfs.c (nfs_init): declare as static to match forward
3812	definition at top of file.
3813
3814	* conf/nfs_prot/nfs_prot_{hpux11, netbsd1_4,openbsd,aix5_2}.h:
3815	added missing definitions for LOOKUP3res, diropargs3, etc.
3816
38172003-10-15  Erez Zadok  <ezk@cs.sunysb.edu>
3818
3819	* libamu/xdr_func.c (xdr_LOOKUP3res, xdr_am_nfs_fh3),
3820	libamu/mount_fs.c (compute_nfs_args), amd/ops_nfs.c
3821	(got_nfs_fh_mount, got_nfs_fh_webnfs, prime_nfs_fhandle_cache,
3822	webnfs_lookup), amd/amfs_host.c (fetch_fhandle): Attempt to
3823	cleanup some inconsistencies with how we treat NFSv3 file handles.
3824	Whenever we need to get data out of a filehandle given to us, we
3825	assume that it uses the OS's native fhandle structure
3826	(often struct nfs_fh3).  When we store the fhandle data for our
3827	own use, however, we store it in one of two ways.  The first, is
3828	that we use the system's default nfs_fh3 structure; the second is
3829	that we define out own struct am_nfs_fh3 in nfs_prot.h (and go
3830	through an elaborate autoconf song-and-dance to "discover" it as a
3831	native fh3 handle structure).  It appears that we do the latter,
3832	instead of using the system's default fhandle structure, simply to
3833	avoid extra malloc's and free's, because whereas nfsv2's fhandle
3834	structure is a simple 32-byte buffer, nfsv3's fhandle structures
3835	often just define a "char *" for the fhandle data, and the caller
3836	must malloc/free the space inside as needed.  Our code was never
3837	written with constructor/destructor callbacks for these nfsv3
3838	filehandles.  Moreover, we carefully wrote our own am_nfs_fh3
3839	structure so IT JUST SO HAPPENS to align with most (hopefully all)
3840	of the fhandle structures for v3: first four bytes are the length
3841	fields and the next four bytes are the fhandle data.  Sigh.
3842	Having this inconsistent use of v3 filehandles can be a real bear,
3843	because we simply cannot avoid using the system's default fhandle
3844	structure indirectly, through things like diropargs3 in
3845	xdr_diropargs3(), which has inside of it a reference to the
3846	system's default nfs_fh3 structure.  ANYWAY, the current fix I've
3847	come up with is to generalize the way we dereference field names
3848	within the nfs_fh3 structure (whether ours or the system's) and
3849	the same for the system's LOOKUP3res structure.  I'm not pleased
3850	with this fix; I'd rather we don't use our own am_nfs_fh3
3851	structure at all.
3852
3853	* libamu/xdr_func.c (xdr_am_nfs_fh3): always define this
3854	function if we have NFS3, because we often use our own,
3855	incompatible am_nfs_fh3 structure.
3856
3857	* include/am_xdr_func.h: We cannot use the native system's
3858	xdr_nfs_fh3 because we are defining our own incompatible
3859	am_hfs_fh3 structure for some systems.
3860
3861	* include/am_xdr_func.h: Define default values for field names of
3862	struct nfs_fh3 and LOOKUP3res.
3863
3864	* doc/am-utils.texi (debug_options Parameter): minor typo fixed.
3865
3866	* conf/nfs_prot/nfs_prot_freebsd3.h: FreeBSD uses different fields
3867	names for struct nfs_fh3 and LOOKUP3res, so override the default
3868	names here.
3869
3870	* configure.in: AMU_CHECK_FS_MNTENT(nfs3) test before
3871	AMU_STRUCT_NFS_FH3, because the latter depends on the former.
3872
3873	* amd/ops_nfs.c (prime_nfs_fhandle_cache): add {} to disambiguate
3874	and clarify if-the-else clauses.
3875
38762003-10-13  Ion Badulescu  <ionut@moisil.badula.org>
3877
3878	* amd/get_args.c (get_version_string): change "Built by" to
3879	"Configured by", and add a new "Built by" line using the variables
3880	below
3881
3882	* m4/update_build_version (vers): add BUILD_USER, BUILD_HOST, and
3883	BUILD_DATE to build_version.h
3884
3885	* amd/mntfs.c (locate_mntfs): fix restarted filesystems: mf_fo
3886	must be initialized even for them, otherwise we lose opt_sublink
3887	(and perhaps other options as well). Report from Rainer Orth.
3888
3889	* amd/amfs_generic.c (amfs_bgmount): The fix for the mf_fo NULL
3890	pointer dereferencing was a bit too aggressive and could end up
3891	not processing the sublink option if the filesystem was already
3892	mounted.
3893
38942003-10-11  Ion Badulescu  <ionut@moisil.badula.org>
3895
3896	Fix restarted filesystem by disabling the amfs_inherit filesystem
3897	and moving the restarting logic into the generic code. The old
3898	code is still there, will be removed sometime in the near future.
3899
3900	* amd/mntfs.c (locate_mntfs): disable amfs_inherit and simply
3901	return the pointer to the restarted filesystem
3902	(free_mntfs): check for the MFF_RESTART flag instead of the
3903	amfs_inherit ops
3904
3905	* amd/autil.c (mf_mounted): remove the MFF_RESTART flag once the
3906	filesystem is in use
3907
3908	* amd/amfs_nfsx.c (amfs_nfsx_init): only call fs_init() if the
3909	filesystem is not being restarted
3910	(amfs_nfsx_remount): if the filesystem is already mounted,
3911	short-circuit the code and just continue
3912
3913	* amd/amfs_generic.c (amfs_bgmount): only call fs_init() if the
3914	filesystem is not being restarted; remove hack that was used to
3915	work around an amfs_inherit problem
3916
39172003-10-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3918
3919	Use WebNFS to obtain file handles for mount(2).
3920
3921	* NEWS: Document WebNFS support.
3922
3923	* configure.in: Check for public mount option.
3924	* include/am_compat.h (MNTTAB_OPT_PUBLIC): Define if missing.
3925	* doc/am-utils.texi (opts Option): Renamed webnfs to public,
3926	update description.
3927
3928	* amd/amd.h (FSF_WEBNFS): New mntfs flag.
3929	* include/am_utils.h (RPC_XID_WEBNFS): New XID type.
3930
3931	* amd/amfs_host.c (amfs_host_mount, amfs_host_umounted): Reject
3932	WebNFS mount/umount attempts.
3933	* amd/ops_nfs.c (got_nfs_fh_mount): Renamed from got_nfs_fh.
3934	(got_nfs_fh_webnfs): New function.
3935	(flush_nfs_fhandle_cache): Don't invalidate port for WebNFS servers.
3936	(prime_nfs_fhandle_cache): Likewise.
3937	Remove unconditional return of public file handle for WebNFS, but
3938	get NFS file handles via mountd or WebNFS instead.
3939	(webnfs_lookup): New function.
3940	(nfs_umounted): Don't inform mountd if MFF_WEBNFS.
3941	* amd/rpc_fwd.c (fwd_packet, fwd_reply): Send/receive WebNFS
3942	packets.
3943	* amd/srvr_nfs.c (recompute_portmap): Don't contact portmap for
3944	WebNFS servers.
3945	Mention host in info message.
3946	(find_nfs_srvr): Handle public mount option.
3947	Prefer NFSv3/tcp if the client supports it.
3948	Allow port mount option to override default or result from portmap
3949	lookup.
3950
3951	* libamu/xdr_func.c (xdr_diropargs3, xdr_filename3,
3952	xdr_LOOKUP3args, xdr_LOOKUP3res, xdr_LOOKUP3resfail,
3953	xdr_LOOKUP3resok, xdr_nfs_fh3, xdr_nfsstat3): New functions.
3954	* include/am_xdr_func.h: Declare them.
3955	* configure.in: Check for them.
3956	* conf/nfs_prot/nfs_prot_linux.h: Provide missing NFSv3
3957	definitions and types.
3958
39592003-10-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3960
3961	Support IRIX 6 private mount option.
3962
3963	* configure.in (AC_CHECK_MNTTAB_OPTS): Check for private option
3964	name string.
3965	(AC_CHECK_MNT2_NFS_OPTS): Check for private NFS mount option (IRIX 6).
3966	* aux/macros/header_templates.m4 (MNTTAB_OPT_PRIVATE,
3967	MNT2_NFS_OPT_PRIVATE): Provide templates.
3968	* include/am_compat.h (MNTTAB_OPT_PRIVATE): Define if missing.
3969	* doc/am-utils.texi (opts Option): Document it.
3970
39712003-10-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3972
3973	* doc/am-utils.texi (opts Option): Fix Tru64 UNIX name in proplist
3974	mount option.
3975
39762003-10-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3977
3978	* libamu/mount_fs.c (compute_nfs_args) [HAVE_NFS_ARGS_T_FH_LEN]:
3979	Don't reference removed fh3.
3980
39812003-10-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3982
3983	* NEWS: New minor port sparc-sun-solaris2.10 (Solaris 10).
3984
3985	* INSTALL: Mention test status of various ports.
3986	Describe IRIX 6 autofs status.
3987
39882003-10-09  Ion Badulescu  <ionut@moisil.badula.org>
3989
3990	* NEWS: updated
3991
3992	* amd/amfs_generic.c (amfs_bgmount): don't use mf_fo until after
3993	we've done all the tests and we know we have a valid and mountable
3994	mntfs. Otherwise we could end up dereferencing null pointers.
3995
3996	* amd/amd.h: fixed a copy&paste comment bug
3997
3998	* amd/am_ops.c (ops_match): minor code cleanup
3999
4000	* doc/am-utils.texi: fixed various typos; added warning about the
4001	racy nature of nfsx; removed duplicated listing of debug options;
4002	added paragraph about signals supported by hlfsd; removed the long
4003	list of (maybe) supported platforms since it duplicates the list
4004	in INSTALL.
4005
40062003-10-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4007
4008	Simplify FD_SET etc. use.
4009
4010	* include/am_defs.h (FD_SET, FD_ISSET, FD_CLR, FD_ZERO): Provide
4011	if missing.
4012	(rpc_pending_now, run_rpc): Use them.
4013	* configure.in: Check for fds_bits field in fd_set.
4014	* amd/nfs_start.c (run_rpc): Use it.
4015
40162003-10-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4017
4018	Improve RPC XID handling.
4019
4020	* amd/rpc_fwd.c (fwd_packet, fwd_reply): Always log xid.
4021	Convert xid to/from host/network byte order.
4022
40232003-10-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4024
4025	Use NFS V2/V3 file handles instead of mount results.
4026
4027	* include/am_utils.h (am_nfs_fhandle): Use NFS V2/V3 file handles
4028	only, not MOUNTPROC_MNT results.
4029	* amd/amfs_host.c (fetch_fhandle): Use local variables to store
4030	MOUNTPROC_MNT results.
4031	* amd/autil.c (amfs_mount): Use new am_nfs_fhandle_t.
4032	* amd/ops_nfs.c (struct fh_cache): New member fh_status.
4033	(got_nfs_fh): Use local variables to store MOUNTPROC_MNT results.
4034	Store MOUNTPROC_MNT errors in fh_status.
4035	(prime_nfs_fhandle_cache): Get fh_error from fh_status.
4036	* hlfsd/hlfsd.c (main): Use new am_nfs_fhandle_t.
4037	* libamu/mount_fs.c (compute_nfs_args): Copy NFS V2/V3 file
4038	handles straight from new am_nfs_fhandle_t.
4039
40402003-10-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4041
4042	* amd/clock.c (CID_ALLOC): Remove unused argument.
4043	(timeout): Likewise.
4044
4045	* amd/ops_nfs.c (FHID_ALLOC): Remove unused argument.
4046	(prime_nfs_fhandle_cache): Likewise.
4047	(call_mountd): Use UDPMSGSIZE instead of magic constant.
4048
4049	* amd/rpc_fwd.c (XID_ALLOC): Remove unused argument.
4050	(fwd_packet): Likewise.
4051	Handle TLOOK error from t_rcvudata().
4052
40532003-09-30  Ion Badulescu  <ionut@moisil.badula.org>
4054
4055	* NEWS: updated
4056
4057	* libamu/mount_fs.c (mount_fs): don't try to recreate the mount
4058	point if the mount fails with ENOENT: in the best case we would be
4059	papering over a bug, and in the worst case we could cause a
4060	deadlock (with autofs). If there are races, they need to be
4061	exposed and fixed properly.
4062
4063	* conf/autofs/autofs_solaris_v1.h,
4064	  conf/autofs/autofs_solaris_v2_v3.h,
4065	  conf/autofs/autofs_linux.h: (AUTOFS_NFSX_FS_FLAGS): autofs
4066	semantics don't allow us to mount nfsx directly onto an autofs
4067	mountpoint, so disallow it
4068
4069	* amd/amfs_nfsx.c (amfs_nfsx_match): more restrictive sanity check
4070	to avoid trying to memmove(foo, bar, (unsigned)-1) due to invalid
4071	map entries...
4072	(amfs_nfsx_cont): amfs_retry does most of the cleanup work for us
4073	in the upper layer, so don't do anything else beside wakeup() on
4074	success
4075	(amfs_nfsx_remount): only create the mountpoints as we need them,
4076	avoids creating them on the wrong filesystem in the case of
4077	hierarchical mounts; fix crash-generating typo (m should really be
4078	mf and I swear I hate single-character variable names)
4079
4080	* amd/amfs_generic.c (amfs_cont): one more dlog
4081	(amfs_bgmount): amazingly enough, even foreground mounts can be
4082	backgrounded (in the case of nfsx), so account for this
4083	possibility and permit retries
4084
4085	* m4/macros/check_autofs_style.m4 (AMU_AUTOFS_PROT_HEADER): define
4086	and AC_SUBST it as ${top_builddir}/amu_autofs_prot.h
4087
4088	* amd/Makefile.am ($(amd_OBJECTS) $(EXTRA_amd_OBJECTS)): depend on
4089	@AMU_AUTOFS_PROT_HEADER@
4090
40912003-09-29  Erez Zadok  <ezk@urd.fsl.cs.sunysb.edu>
4092
4093	* minor new port mipsel-unknown-linux-rhPS2 (Linux on Sony
4094	PlayStation 2)
4095
4096	* amd/srvr_nfs.c (find_nfs_srvr): don't run code that expects
4097	"char protocols[]" unless MNTTAB_OPT_PROTO is defined.
4098
40992003-09-26  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4100
4101	Consolidate alloca support.
4102
4103	* amd/amq_svc.c: Move alloca support ...
4104	* include/am_defs.h: ... here.
4105	* amd/conf_parse.y: Remove alloca support.
4106	* fsinfo/fsi_gram.y: Likewise.
4107
41082003-09-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4109
4110	Handle Solaris 10.
4111	* m4/macros/check_nfs_prot_headers.m4
4112	(AMU_CHECK_NFS_PROT_HEADERS): Don't use wildcards for
4113	sunos5.[0-3], solaris 2.[0-3], there were no micro releases.
4114	Explicitly match sunos5*, solaris2* for Solaris 8 and beyond.
4115
4116	* m4/macros/os_cflags.m4 (AMU_OS_CFLAGS): Dont use wildcards for
4117	solaris2.[0-5], sunos5.[0-5], but explicitly handle Solaris 2.5
4118	micro releases to cope with Solaris 2.5.1.
4119	Explicitly match solaris2*, sunos5*.
4120
41212003-09-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4122
4123	* amd/amq_svc.c: Provide alloca prerequisites.
4124
4125	* conf/transp/transp_tli.c (register_autofs_service): Fix typo.
4126
41272003-09-23  Ion Badulescu  <ion@opteron.tower-research.com>
4128
4129	* minor new port: x86_64-unknown-linux-rh2.9.5AS. (Red Hat
4130	Enterprise Linux 3.0 beta running on a 64-bit AMD64 platform)
4131
41322003-09-22  Ion Badulescu  <ionut@buggy.badula.org>
4133
4134	* conf/autofs/autofs_solaris_v1.c (autofs_mount_fs): compile fix
4135
41362003-09-19  Ion Badulescu  <ionut@moisil.badula.org>
4137
4138	* amd/amfs_nfsl.c (amfs_nfsl_match): checking opt_fs is not always
4139	enough, we should lstat() the sublink if it's defined.
4140	(amfs_nfsl_ffserver): ditto
4141	(ALL): Removed some obsolete comments. The nfsl code is now little
4142	more than a very straight-forward switch between link and nfs.
4143
4144	* amd/amfs_link.c (amfs_link_match): more up-to-date explanation
4145	for the prepend-the-dot hack for type link; also, the sublink is
4146	already normalized and absolute, so take advantage of that
4147
4148	* amd/amfs_generic.c (amfs_lookup_one_mntfs): the sublink is
4149	already normalized and absolute, so take advantage of that
4150
4151	* amd/am_ops.c (ops_match): normalize the sublink here, early into
4152	the matching process
4153
4154	* amd/autil.c (am_mounted): be consistent and accept both
4155	"nounmount" and "noumount" as pseudo mount options (same as
4156	"unmount" and "umount" nearby)
4157
4158	* amd/Makefile.am (build_version.h): fixed dependencies (depends
4159	on amd_OBJECTS, not OBJECTS -- which doesn't even exist)
4160
41612003-09-19  Erez Zadok  <ezk@dhcp8.fsl.cs.sunysb.edu>
4162
4163	* amd/amq_subr.c (amqproc_export_1_svc): force double casting to
4164	avoid gcc-3.3 complaints on Solaris 9 about "dereferencing
4165	type-punned pointer will break strict-aliasing rules".
4166
41672003-09-16  Ion Badulescu  <ionut@moisil.badula.org>
4168
4169	* Released beta version 6.1b4
4170
41712003-09-15  Ion Badulescu  <ionut@moisil.badula.org>
4172
4173	* doc/am-utils.texi (opts Option): removed documentation for old
4174	ignore_portmapper mount option, documented the new webnfs option
4175
4176	* NEWS: webnfs support
4177
4178	* amd/srvr_nfs.c (find_nfs_srvr): set MFF_WEBNFS if the "webnfs"
4179	(former "ignore_portmapper") mount option is present
4180
4181	* amd/ops_nfs.c (prime_nfs_fhandle_cache): generate a public
4182	filehandle (all zeros) if MFF_WEBNFS is set
4183	(nfs_umounted): don't talk to mountd if MFF_WEBNFS is set
4184
4185	* amd/amd.h (MFF_WEBNFS): new flag, obvious meaning
4186
41872003-09-13  Ion Badulescu  <ionut@moisil.badula.org>
4188
4189	* amd/srvr_nfs.c: renamed np_xid to global_xid; sanitized the
4190	NPXID_ALLOC macro and renamed it to XID_ALLOC; renamed start_ping
4191	to create_ping_payload; renamed nfs_pinged to
4192	nfs_keepalive_callback; renamed nfs_timed_out to
4193	nfs_keepalive_timeout; renamed nfs_srvr_port to get_mountd_port;
4194	made ping_buf and ping_len arrays with one element for each
4195	supported nfs version
4196
4197	* amd/amd.h: renamed nfs_srvr_port() to get_mountd_port()
4198
4199	* amd/amfs_host.c (amfs_host_init): ditto
4200
4201	* amd/ops_nfs.c (call_mountd): ditto
4202
42032003-09-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4204
4205	* BUGS: Mention fix for broken Solaris 8 <rpcsvc/autofs_prot.h>
4206	patches.
4207
42082003-08-31  Erez Zadok  <ezk@filer.fsl.cs.sunysb.edu>
4209
4210	* amd/autil.c (strealloc): don't call malloc_verify() unless it
4211	exists.
4212
4213	* configure.in: move "OPTION PROCESSING" section (opt_debug etc.)
4214	after we figure out PROG_CC and other compiler features, because
4215	some of the option processing macros need a compiler to function.
4216
4217	* libamu/xutil.c: don't define variables that won't be used unless
4218	mallinfo() and malloc_verify() exist.
4219	(real_plog): don't call checkup_mem unless
4220	mallocinfo() and malloc_verify() exist.
4221	(checkup_mem): don't define this function unless mallocinfo() and
4222	malloc_verify() exist.
4223
4224	* m4/macros/opt_debug.m4: check for functions malloc_verify and
4225	mallinfo in general libraries and then in libmapmalloc and
4226	libmalloc.  These seem to have disappeared in FreeBSD 5.x.
4227
4228	* libamu/xutil.c (dxfree): print pointer using %p
4229
42302003-08-29  Erez Zadok  <ezk@a-opendarwin.fsl.cs.sunysb.edu>
4231
4232	* configure.in: start 6.1b4-pre officially (belated)
4233
4234	* minor new port: i686-apple-darwin6.6
4235
42362003-08-27  Ion Badulescu  <ionut@moisil.badula.org>
4237
4238	* conf/autofs/autofs_solaris_v1.c: convert relative targets to
4239	absolute paths when using lofs mounts
4240
4241	* conf/autofs/autofs_solaris_v2_v3.c: ditto
4242
4243	* conf/autofs/autofs_linux.c: ditto
4244
42452003-08-27  Ion Badulescu  <ionut@buggy.badula.org>
4246
4247	* README.autofs: added a paragraph about the resource consumption
4248	of auto maps over autofs
4249
4250	* amd/amfs_generic.c (amfs_lookup_one_mntfs): moved the setting of
4251	the MFF_IS_AUTOFS flag from init_mntfs() to
4252	amfs_lookup_one_mntfs(), where it belongs
4253
4254	* amd/mntfs.c (init_mntfs): ditto
4255
42562003-08-27  Ion Badulescu  <ion@guppy.limebrokerage.com>
4257
4258	* amd/ops_nfs.c (got_nfs_fh): make the error EACCES if we are
4259	denied a filehandle by the server (used to be EIO)
4260
42612003-08-27  Erez Zadok  <ezk@a-bsdi42.fsl.cs.sunysb.edu>
4262
4263	* conf/nfs_prot/nfs_prot_bsdi3.h: support na_uid and na_gid.
4264
42652003-08-27  Ion Badulescu  <ionut@moisil.badula.org>
4266
4267	* conf/autofs/autofs_linux.c (autofs_mount_succeeded): force
4268	daemon-initiated timeouts on autofs filesystems, since apparently
4269	they appear as "always busy" to the kernel-based expiration routine
4270
42712003-08-26  Ion Badulescu  <ionut@buggy.badula.org>
4272
4273	* NEWS: updated
4274
4275	* conf/autofs/autofs_linux.h (AUTOFS_LINK_FS_FLAGS): remove
4276	FS_ON_AUTOFS
4277	(AUTOFS_LINKX_FS_FLAGS): ditto
4278
4279	* conf/autofs/autofs_solaris_v1.h (AUTOFS_LINK_FS_FLAGS): remove
4280	FS_ON_AUTOFS
4281	(AUTOFS_LINKX_FS_FLAGS): ditto
4282
4283	* conf/autofs/autofs_solaris_v2_v3.h (AUTOFS_LINK_FS_FLAGS): remove
4284	FS_ON_AUTOFS
4285	(AUTOFS_LINKX_FS_FLAGS): ditto
4286
4287	* amd/amfs_generic.c (amfs_lookup_one_mntfs): don't modify the
4288	original opt_fs, instead store the new mount point for autofs in a
4289	temporary variable and pass it around. Fixes a problem with the
4290	link side of nfsl.
4291
42922003-08-25  Ion Badulescu  <ionut@moisil.badula.org>
4293
4294	* NEWS: updated
4295
4296	* amd/ops_nfs.c (prime_nfs_fhandle_cache): use get_mntfs_wchan to
4297	initialize the fh_wchan member of the cache entry
4298	(prime_nfs_fhandle_cache): use get_mntfs_wchan for the wchan_t
4299	argument of call_mountd()
4300
4301	* amd/map.c (free_map_if_success): use get_mntfs_wchan for the
4302	wchan_t argument of wakeup()
4303
4304	* amd/amfs_nfsx.c (amfs_nfsx_cont): use get_mntfs_wchan for the
4305	wchan_t argument of wakeup_task() and wakeup()
4306
4307	* amd/amfs_host.c (amfs_host_init): use get_mntfs_wchan for the
4308	wchan_t argument of nfs_srvr_port()
4309
4310	* amd/amfs_generic.c (ALL): use get_mntfs_wchan for the wchan_t
4311	argument of sched_task() and wakeup()
4312	(amfs_retry): minor cleanup
4313	(amfs_bgmount): call nfs_quick_reply on failure
4314
4315	* amd/sched.c (get_mntfs_wchan): new function which calls the
4316	member function get_wchan if defined, otherwise returns the mntfs
4317	pointer itself
4318
4319	* amd/amfs_inherit.c (amfs_inherit_get_wchan): new function,
4320	calls get_mntfs_wchan() on the inherited filesystem
4321
4322	* amd/amfs_*.c, amd/ops_*.c: initialize the new get_wchan member
4323	of the ops to 0
4324
4325	* amd/amd.h: new function type vget_wchan
4326	(struct mntfs): new member get_wchan which returns the waiting
4327	channel associated with the mntfs (normally itself)
4328
43292003-08-22  Ion Badulescu  <ion@guppy.limebrokerage.com>
4330
4331	* conf/mount/mount_linux.c (parse_opts): minor cleanup
4332
4333	* conf/autofs/autofs_linux.c (autofs_handle_fdset): added missing
4334	break in case autofs_ptype_expire_multi
4335
43362003-08-22  Ion Badulescu  <ionut@moisil.badula.org>
4337
4338	* conf/autofs/autofs_solaris_v1.h: undefine autofs support if
4339	autofs_args_t cannot be determined (hopefully fixes a reported
4340	IRIX 6.5.4 problem).
4341
4342	* conf/autofs/autofs_solaris_v1.c: wrap entire file in #ifdef
4343	HAVE_FS_AUTOFS / #endif (see above)
4344
4345	* conf/autofs/autofs_linux.h: undefine autofs support if the
4346	necessary header files are not found (fixes a reported RedHat 6.2
4347	Sparc problem).
4348
4349	* conf/autofs/autofs_linux.c: wrap entire file in #ifdef
4350	HAVE_FS_AUTOFS / #endif (see above)
4351
4352	* libamu/mount_fs.c (compute_nfs_args): only use MNT2_NFS_OPT_SOFT
4353	if autoconf detected it (fixes a reported RedHat 6.2 Alpha problem).
4354
4355	* amd/map.c (unmount_mp, unmount_exported): move the code that
4356	changes the fattr from NFLNK to NFDIR from unmount_mp to
4357	unmount_exported, it was causing troubles (ESTALE) after failed
4358	unmounts. This is still very very unclean, but it's the same as the
4359	old 6.0 code.
4360
43612003-08-22  Nick Williams <Nick.Williams@morganstanley.com>
4362
4363	* amd/info_ldap.c (amu_ldap_init): don't try to pass a null
4364	pointer as a string to plog, Solaris (and other OS's) don't like
4365	it and will dump core.
4366
43672003-08-13  Ion Badulescu  <ion@guppy.limebrokerage.com>
4368
4369	* amd/amd.h: introduced two new types, wchan_t and opaque_t, as
4370	aliases of voidp. This makes reading the code easier on the eyes. :)
4371
4372	* ALL: replace various instances of voidp with wchan_t and
4373	opaque_t, as appropriate
4374
43752003-08-13  Ion Badulescu  <ionut@nicu.badula.org>
4376
4377	* NEWS, configure.in: bumped version up to 6.1b4-pre
4378
43792003-08-13  Ion Badulescu  <ionut@moisil.badula.org>
4380
4381	* Released beta version 6.1b3
4382
43832003-08-13  Ion Badulescu  <ion@guppy.limebrokerage.com>
4384
4385	* conf/autofs/autofs_linux.c (autofs_mount_fs): HACK: always use
4386	symlinks for host mounts; assorted fixes for the symlink mode
4387
43882003-08-05  Ion Badulescu  <ionut@moisil.badula.org>
4389
4390	* conf/umount/umount_default.c (umount_fs): enable space hack
4391	handling for autofs v1
4392
4393	* amd/map.c (get_first_exported_ap, get_next_exported_ap): new
4394	functions that facilitate iterating through the list of
4395	mountpoints
4396
4397	* amd/amfs_union.c (amfs_union_mounted): use get_first_exported_ap
4398	and get_next_exported_ap
4399
4400	* conf/autofs/autofs_solaris_v2_v3.c (autofs_unmount_2_req): ditto
4401
44022003-08-04  Erez Zadok  <ezk@ulkesh.dyn.optonline.net>
4403
4404	* configure.in: check if system stores mount tables in files
4405	(usually in /etc), and configure couldn't find a definition for
4406	either struct mntent or struct mnttab.  If so, abort configure
4407	because this could be a new/misconfigured system, or a bug in
4408	am-utils.
4409
44102003-08-04  Ion Badulescu  <ionut@moisil.badula.org>
4411
4412	* conf/autofs/autofs_solaris_v2_v3.c (autofs_umount_fs): fix
4413	compile warning
4414
44152003-08-04  Ion Badulescu  <ionut@buggy.badula.org>
4416
4417	* conf/autofs/autofs_linux.c (autofs_mount_fs): don't call
4418	ops->mount_fs() for an already mounted filesystem
4419	(autofs_umount_fs): only call ops->umount_fs() if we're holding
4420	the last reference to the filesystem
4421
4422	* conf/autofs/autofs_solaris_v1.c (autofs_mount_fs): ditto
4423	(autofs_umount_fs): ditto
4424
4425	* conf/autofs/autofs_solaris_v2_v3.c (autofs_mount_fs): ditto
4426	(autofs_umount_fs): ditto
4427
4428	* amd/amfs_generic.c (amfs_lookup_mntfs): remove the shortcut for
4429	already-mounted filesystems
4430	(amfs_cont): only release the autofs_fh if the filesystem is not
4431	mounted; add another comment about the NFS_SCALEDOWN hack
4432	(amfs_bgmount): if the mntfs is already mounted, skip just the
4433	filesystem initialization, but do call mount_node()
4434
4435	* amd/map.c (mount_node): always call autofs_mount_fs(), but only
4436	call ops->mount_fs() if the mntfs is not yet mounted
4437	(unmount_node): always call autofs_umount_fs(), but only call
4438	ops->umount_fs() if the refcount on the mntfs equals 1.
4439
44402003-08-02  Erez Zadok  <ezk@filer.fsl.cs.sunysb.edu>
4441
4442	* conf/nfs_prot/nfs_prot_openbsd.h: include <ufs/ufs/ufsmount.h>
4443	here with the proper workarounds for openbsd3.3 (define MAXQUOTAS,
4444	define dummy struct netexport, and include <ufs/ufs/extattr.h>
4445	wrapped in _KERNEL).
4446
4447	* conf/nfs_prot/nfs_prot_freebsd3.h: include <ufs/ufs/ufsmount.h>
4448	here with the proper workarounds for freebsd5.1 (define dummy
4449	struct ufs_extattr_per_mount).
4450
4451	* conf/nfs_prot/nfs_prot_bsdi2.h: include <ufs/ufs/ufsmount.h>
4452	here with the proper workarounds for bsdi2 (define MAXQUOTAS and
4453	dummy struct netexport).
4454
4455	* include/mount_headers1.h: do not include <ufs/ufs/ufsmount.h>
4456	here, b/c every *BSD system has some sort of problem in including
4457	this header file, which includes ugly workarounds.  Inclusion of
4458	this header was already moved out of am_defs.h (used to compile
4459	amd), but we forgot to move it out of mount_headers1.h (used to
4460	configure).  The specific inclusion of ufsmount.h is now in the OS
4461	specific nfs_prot.h file.
4462
4463	* configure.in: if configure could not find any definition for
4464	"struct nfs_args", abort configure with an explanatory message.
4465	There's no point in continuing, as this could be a system bug,
4466	buggy am-utils, or a new system to which am-utils wasn't ported to
4467	yet.
4468
4469	* minor new port: i386-pc-solaris2.9
4470
44712003-08-01  Ion Badulescu  <ionut@buggy.badula.org>
4472
4473	* doc/am-utils.texi (NFS-Link Filesystem): make the documentation
4474	match the code (as well as basic logic operations: the negation of
4475	'a or b' is 'not a and not b', not 'not a or not b')
4476
44772003-08-01  Erez Zadok  <ezk@filer.fsl.cs.sunysb.edu>
4478
4479	* minor new port: i386-unknown-openbsd3.3.
4480
4481	* m4/macros/check_libwrap_severity.m4: new macro to check if
4482	libwrap includes the integer variables deny_severity and
4483	allow_severity, since some libwrap implementations do and others
4484	don't.  The test tries to compile and run a simple empty main()
4485	program, then the same program while defining these two variables:
4486	comparing the results of the two tests, we can tell whether we
4487	should define NEED_LIBWRAP_SEVERITY_VARIABLES.
4488
4489	* Makefile.am (EXTRA_DIST_M4): distribute new macro
4490	check_libwrap_severity.m4.
4491
4492	* m4/macros/header_templates.m4: template for HAVE_LIBWRAP (which
4493	we must define explicitly since we've overridden the
4494	action-if-found in AC_CHECK_LIB(wrap).  Also template for
4495	NEED_LIBWRAP_SEVERITY_VARIABLES.
4496
4497	* amd/amq_svc.c: if libwrap does not include the severity
4498	variables, then define and initialize them here.
4499
4500	* amd/Makefile.am (LIBS): explicitly include @WRAPLIB@ only for
4501	Amd binary.  Other am-utils binaries don't need -lwrap.
4502
4503	* configure.in: if libwrap is found, only define it in @WRAPLIB@,
4504	so we don't automatically link every am-utils binary with -lwrap.
4505	Run test for existence of severity variables in libwrap.
4506
45072003-07-31  Erez Zadok  <ezk@filer.fsl.cs.sunysb.edu>
4508
4509	* conf/nfs_prot/nfs_prot_openbsd.h: define struct fattr fields uid
4510	and gid.
4511
4512	* configure.in: move check for AC_CHECK_LIB(libwrap) as far down
4513	as possible because on modern tcpwrapper systems such as openbsd,
4514	the caller must provide two symbols: deny_severity and
4515	allow_severity, which determine the logging level of rejected and
4516	requested requests, respectively.  If this check happens too
4517	early, then $LIBS includes -lwrap, which causes many subsequent
4518	tests that need to run a compiled program to fail with missing
4519	symbols.
4520
4521	* m4/macros/header_templates.m4: fix typo in template for
4522	readdirplus.
4523
4524	* configure.in: check for <ufs/ufs/extattr.h> (OpenBSD 3.3)
4525
4526	* minor new port: i386-unknown-netbsdelf1.6.1.
4527
4528	* configure.in: save state before system-specific tests are run.
4529
4530	* m4/macros/check_gnu_getopt.m4: do NOT abort ./configure just
4531	because the compiled test program failed to run.
4532
45332003-08-01  Ion Badulescu  <ionut@buggy.badula.org>
4534
4535	* NEWS, README.autofs: updated
4536
4537	* libamu/mount_fs.c (mount_fs): added support for the space hack
4538
4539	* doc/am-utils.texi: mention than UFS/XFS/EFS/CacheFS filesystems
4540	are not expired by default; correct and expand the section
4541	describing the program filesystem
4542
4543	* conf/autofs/autofs_solaris_v2_v3.h (AUTOFS_*_FS_FLAGS): add
4544	FS_ON_AUTOFS for supported filesystems
4545
4546	* conf/autofs/autofs_solaris_v2_v3.c (autofs_mount_fs): call
4547	mf->mount_fs()
4548	(autofs_umount_fs): call mf->umount_fs()
4549
4550	* conf/autofs/autofs_solaris_v1.h (autofs_strdup_space_hack): add
4551	prototype for malloc()
4552	(AUTOFS_*_FS_FLAGS): lose the FS_MKMNT flags, add FS_ON_AUTOFS for
4553	supported filesystems
4554
4555	* conf/autofs/autofs_solaris_v1.c (autofs_mount_fs): add support
4556	for the space hack; call mf->mount_fs()
4557	(autofs_umount_fs): add support for the space hack; call
4558	mf->umount_fs()
4559	(autofs_mount_succeeded): add support for the space hack
4560
4561	* conf/autofs/autofs_linux.h: lose the FS_MKMNT flags, add
4562	FS_ON_AUTOFS for supported filesystems
4563
4564	* conf/autofs/autofs_linux.c (AUTOFS_MAX_VERSION): define to
4565	AUTOFS_MAX_PROTO_VERSION instead of hardcoding to 4
4566	(autofs_mounted): host mounts are now supported on all autofs
4567	versions, remove the hack to turn it off on v3
4568	(autofs_mount_fs): call mf->mount_fs(), create/remove mountpoints
4569	as needed
4570	(autofs_umount_fs): call mf->umount_fs(), remove mountpoints on
4571	success
4572	(ALL): use '#if AUTOFS_MAX_VERSION >= 4' instead of
4573	'#ifdef autofs_ptype_expire_multi'
4574
4575	* amd/map.c (mount_node): autofs_mount_fs() now calls
4576	mf->mount_fs() internally
4577	(unmount_node): autofs_umount_fs() now calls mf->umount_fs()
4578	internally
4579
4580	* amd/autil.c (am_mounted): minor cleanup
4581
4582	* amd/amfs_program.c (amfs_program_ops): added FS_MKMNT to
4583	nfs_fs_flags
4584
4585	* amd/amfs_generic.c (amfs_lookup_one_mntfs): use the FS_ON_AUTOFS
4586	flag instead of hardcoding filesystem types
4587	(amfs_bgmount): better mount_type logging
4588
4589	* amd/amd.h (FS_ON_AUTOFS): new flag which tells the code that
4590	this filesystem can be mounted directly onto an autofs mountpoint
4591
45922003-07-31  Ion Badulescu  <ionut@buggy.badula.org>
4593
4594	* amd/amfs_nfsl.c (amfs_nfsl_umount): fix copy&paste error (was
4595	calling amfs_link_ops.umount_fs() for NFS filesystems)
4596	(amfs_nfsl_umounted): remove rmdirs() hack, it is now handled
4597	properly elsewhere
4598	(amfs_nfsl_ffserver): remove FS_MKMNT from mf_fsflags if we're
4599	using link (not NFS)
4600
46012003-07-31  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4602
4603	* README.autofs: Correct IRIX spelling.
4604	AutoFS support exists only on IRIX 6.
4605	Update IRIX 6 status.
4606
4607	Allow AutoFS V1 support to compile on IRIX 6.
4608	* conf/autofs/autofs_solaris_v1.c (autofs_mount_1_req): Add
4609	SVCXPRT * arg.
4610	Remove superfluous \n from dlog messages.
4611	(autofs_unmount_1_req): Likewise.
4612	Switch to get_exported_ap.
4613	(autofs_program_1): Invoke handlers with additional transp arg.
4614	* conf/autofs/autofs_solaris_v1.h: Use autofs_args_t to define
4615	autofs_fh_t, struct auto_args doesn't exist on IRIX 6.
4616
4617	* conf/mount/mount_irix6.c (mount_irix) [HAVE_FS_AUTOFS]: Support
4618	AutoFS mounts.
4619	[HAVE_FS_LOFS]: Likewise for lofs mounts.
4620
4621	* conf/nfs_prot/nfs_prot_irix6.h (AUTOFS_CONFTYPE): Define.
4622	Don't disable AutoFS support any more.
4623
4624	* conf/transp/transp_sockets.c [HAVE_FS_AUTOFS && AUTOFS_PROG]
4625	(register_autofs_service): Define autofs_xprt.
4626
4627	* m4/macros/check_autofs_style.m4 (AMU_CHECK_AUTOFS_STYLE): Update
4628	Solaris 8+ comment to mention AutoFS V4.
4629	(irix6*): Enable AutoFS V1 support on IRIX 6.
4630
46312003-07-30  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
4632
4633	* NEWS, doc/am-utils.texi, scripts/amd.conf.5: revised explanation
4634	of autofs_use_lofs.
4635
46362003-07-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4637
4638	* amd/ops_efs.c (efs_mount): Replace on_autofs arg with
4639	MFF_ON_AUTOFS flag.
4640	(efs_umount): Likewise.
4641
46422003-07-30  Erez Zadok  <ezk@filer.fsl.cs.sunysb.edu>
4643
4644	* conf/umount/umount_bsd44.c (umount_fs): convert to new way of
4645	unmounting which takes autofs into account.
4646
46472003-07-30  Ion Badulescu  <ionut@moisil.badula.org>
4648
4649	* ALL: renamed MFF_AUTOFS to MFF_IS_AUTOFS; removed mf_real_mount
4650	hack; pass a new on_autofs argument to mount/umount function,
4651	based on the MFF_ON_AUTOFS mntfs flag
4652
4653	* NEWS, README.autofs: updated
4654
4655	* scripts/amd.conf.5: document new option autofs_use_lofs
4656
4657	* scripts/amd.conf-sample (autofs_use_lofs): document new option
4658
4659	* m4/macros/check_autofs_style.m4 (am_utils_link_files): symlink
4660	the autofs header as amu_autofs_prot.h instead of slurping it into
4661	aux_conf.h
4662
4663	* libamu/mount_fs.c (mount_fs): removed old stub, renamed
4664	mount_fs2 to mount_fs, added new argument on_autofs
4665
4666	* doc/am-utils.texi (Direct Automount Filesystem): document
4667	problems with nfs direct mounts on modern kernels, document good
4668	autofs support for direct mounts on Solaris
4669	(autofs_use_lofs Parameter): document this new option
4670	(browsable_dirs Parameter): note that mount storms are avoided
4671	when using autofs
4672
4673	* conf/umount/umount_bsd44.c (umount_fs): removed old stub,
4674	renamed umount_fs2 to umount_fs
4675
4676	* conf/umount/umount_osf.c (umount_fs): removed old stub,
4677	renamed umount_fs2 to umount_fs, added new argument on_autofs
4678
4679	* conf/umount/umount_default.c (umount_fs): ditto as above; return
4680	an error on ENOENT instead of faking success
4681
4682	* conf/autofs/autofs_solaris_v2_v3.c (autofs_lookup_2_req): much
4683	simplified, now only consults the map for existance of the key and
4684	returns success if key is found
4685	(autofs_mount_2_req): request symlinks if CFM_AUTOFS_USE_LOFS is
4686	not on;
4687	(autofs_mount_2_free): implemented
4688	(autofs_unmount_2_req): use get_exported_ap() instead of
4689	referencing export_ap directly
4690	(autofs_mount_succeeded): remove code for replying to lookup
4691	requests, now only mount requests can end up here
4692	(autofs_mount_failed): ditto
4693
4694	* conf/autofs/autofs_solaris_v1.h (AUTOFS_HOST_FS_FLAGS): removed
4695	FS_AUTOFS
4696	(AUTOFS_DIRECT_FS_FLAGS): added FS_DIRECTORY
4697
4698	* conf/autofs/autofs_solaris_v2_v3.h (AUTOFS_HOST_FS_FLAGS): removed
4699	FS_AUTOFS
4700	(AUTOFS_DIRECT_FS_FLAGS): added FS_DIRECTORY
4701	(AUTOFS_LINK_FS_FLAGS): added FS_MBACKGROUND
4702
4703	* conf/autofs/autofs_linux.c (autofs_bind_umount): new function,
4704	factored out of autofs_umount_fs()
4705	(autofs_mount_fs): renamed from autofs_link_mount() and expanded
4706	to deal with filesystems mounted indirectly (via lofs/bind
4707	mounts) on autofs and to observe the new CFM_AUTOFS_USE_LOFS flag
4708	(autofs_umount_fs): ditto, from autofs_link_umount()
4709
4710	* conf/autofs/autofs_solaris_v1.c (autofs_mount_fs): ditto
4711	* (autofs_umount_fs): ditto
4712
4713	* conf/autofs/autofs_solaris_v2_v3.c (autofs_mount_fs): ditto
4714	* (autofs_umount_fs): ditto
4715
4716	* amd/opts.c: made fs_static static
4717
4718	* amd/ops_nfs.c: made nfs_init, nfs_match, nfs_mount, nfs_umount
4719	and nfs_umounted static
4720	(mount_nfs_fh): removed unnecessary arguments
4721
4722	* amd/ops_cachefs.c (cachefs_ops): use amfs_generic_find_srvr for
4723	the ffserver method, because using NULL causes problems
4724
4725	* amd/ops_cdfs.c (cdfs_ops): ditto
4726
4727	* amd/ops_efs.c (efs_ops): ditto
4728
4729	* amd/ops_lofs.c (lofs_ops): ditto
4730
4731	* amd/ops_pcfs.c (pcfs_ops): ditto
4732
4733	* amd/ops_ufs.c (ufs_ops): ditto
4734
4735	* amd/ops_xfs.c (xfs_ops): ditto
4736
4737	* amd/nfs_subr.c (fh_to_mp3, fh_to_mp, mp_to_fh): moved here from
4738	map.c
4739
4740	* amd/nfs_start.c: use get_exported_ap() instead of referencing
4741	exported_ap directly
4742
4743	* amd/mntfs.c (locate_mntfs): new function, factored out of
4744	find_mntfs
4745	(locate_mntfs): special-case FS_DIRECT filesystems: for direct
4746	mounts we will have two filesystems mounted on the same m/p
4747	(realloc_mntfs): removed the old EZK hack for failovers
4748
4749	* amd/map.c (get_exported_ap): new function that returns an
4750	exported_ap member by its index
4751	(root_node,exported_ap,exported_ap_size,first_free_map,last_used_map):
4752	made static
4753	(fh_to_mp3, fh_to_mp, mp_to_fh): moved to nfs_subr.c
4754	(get_root_ap): removed unused second argument
4755	(unmount_mp): moved the mk_fattr(NFDIR) here from umount_exported
4756	to catch more cases
4757	(mount_node): call autofs_mount_fs after ops->mount_fs for autofs
4758	nodes
4759	(unmount_node): call autofs_umount_fs before ops->umount_fs for
4760	autofs nodes
4761
4762	* amd/conf.c: new global option "autofs_use_lofs", takes yes/no
4763	values
4764
4765	* amd/autil.c (amfs_mount): take an extra argument (mf)
4766	(amfs_mount): call autofs_compute_mount_flags() for mounts
4767	directly on autofs m/p
4768	(am_unmounted): document and avoid the race between am_umounted()
4769	at shutdown time and amfs_cont()
4770
4771	* amd/amfs_union.c (amfs_union_mounted): use get_exported_ap()
4772	instead of referencing internal map variables directly
4773
4774	* amd/amq_subr.c (amqproc_export_1_svc): ditto
4775
4776	* amd/amfs_toplvl.c (amfs_toplvl_ops): removed FS_AUTOFS from
4777	nfs_fs_flags
4778	(amfs_toplvl_mount): pass extra argument (mf) to amfs_mount()
4779	(amfs_toplvl_umount): refuse to attempt the unmount if the
4780	mountpoint is not a directory
4781
4782	* amd/amfs_nfsx.c (amfs_nfsx_init): propagate the MFF_ON_AUTOFS
4783	flag into the nfs f/s at the bottom of the stack
4784
4785	* amd/amfs_nfsl.c: call nfs and link member functions through
4786	their respective am_ops structures, not directly
4787
4788	* amd/amfs_linkx.c (amfs_linkx_umount): new static stub
4789
4790	* amd/amfs_link.c: made amfs_link_mount() and amfs_link_umount()
4791	static functions
4792	(amfs_link_mount): removed call to autofs_link_mount()
4793	(amfs_link_umount): removed call to autofs_link_umount()
4794
4795	* amd/amfs_host.c (amfs_host_ops): removed FS_AUTOFS from
4796	nfs_fs_flags
4797	(do_mount): removed superfluous function arguments
4798
4799	* amd/amfs_direct.c (amfs_direct_ops): removed FS_AUTOFS from
4800	nfs_fs_flags
4801
4802	* amd/amfs_auto.c (amfs_auto_ops): removed FS_AUTOFS from
4803	nfs_fs_flags
4804	(amfs_auto_mount): pass extra argument (mf) to amfs_mount
4805
4806	* amd/amd.h (CFM_AUTOFS_USE_LOFS): new flag, tells amd whether to
4807	use lofs-mounts or symlinks when mounting on autofs
4808	(CFM_DEFAULT_FLAGS): added CFM_AUTOFS_USE_LOFS
4809	(VLOOK_LOOKUP): new flag, will merely check if a key exists
4810	(MFF_IS_AUTOFS): renamed from MFF_AUTOFS
4811	(MFF_ON_AUTOFS): new flag, tells amd if a f/s is mounted directly
4812	on an autofs m/p, or indirectly via a lofs mount/symlink
4813	(fh_to_mp2): macro expanded throughout the code and removed
4814	(mntfs): removed mf_real_mount hack
4815	(autofs_mount_fs): renamed from autofs_link_mount
4816	(autofs_umount_fs): renamed from autofs_link_umount
4817	(mount_lofs): exposed
4818	various other cleanups, functions/variables made static and removed
4819
4820	* aux_conf.h.in: removed @am_utils_autofs_style@, it is now
4821	included directly as amu_autofs_prot.h
4822
48232003-07-24  Erez Zadok  <ezk@whitestar.dyn.optonline.net>
4824
4825	* doc/am-utils.texi, scripts/amd.conf.5: document that
4826	use_tcpwrappers is "yes" by default.
4827
4828	* amd/amd.c (init_global_options): set default global options.
4829
4830	* amd/amd.h (CFM_DEFAULT_FLAGS): define default options which
4831	are always on (plock and use_tcpwrappers).
4832
4833	* scripts/amd.conf-sample: reorganize values per option so default
4834	one is listed first.
4835
48362003-07-23  Erez Zadok  <ezk@filer.fsl.cs.sunysb.edu>
4837
4838	* tasks: trim old stuff.  Discuss new parser.
4839
4840	* amd/conf.c (set_conf_kv): initialize the very first map in conf
4841	file from global defaults.  Bug fix which was introduced after
4842	conf.c code restructuring.
4843
48442003-07-18  Erez Zadok  <ezk@filer.fsl.cs.sunysb.edu>
4845
4846	* m4/macros/header_templates.m4: template for
4847	HAVE_EXTERN_HOSTS_CTL.
4848
4849	* include/am_defs.h: define extern for hosts_ctl() if needed.
4850
4851	* configure.in (AMU_CHECK_EXTERNS): check for extern definition
4852	for libwrap's hosts_ctl() (FreeBSD 5.0 doesn't have it).
4853
4854	* m4/macros/check_extern.m4: include tcpd.h if it and libwrap exist.
4855
48562003-07-18  Erez Zadok  <ezk@cs.sunysb.edu>
4857
4858	* hlfsd/hlfsd.h: redundant extern for mboxfile removed.
4859
4860	* amd/amq_svc.c (amq_program_1): only check for tcpwrappers if
4861	amd.conf global option use_tcpwrappers=yes.
4862
4863	* scripts/amd.conf.5, scripts/amd.conf-sample (use_tcpwrappers),
4864	doc/am-utils.texi (use_tcpwrappers Parameter): document new
4865	amd.conf global option.
4866
4867	* amd/conf.c (gopt_use_tcpwrappers): define a new amd.conf global
4868	option called use_tcpwrappers ("no" by default).
4869
4870	* amd/amq_svc.c (amqsvc_is_client_allowed): include tcpd/libwrap
4871	code only if both libwrap and tcpd.h exist.
4872	(amq_program_1): log warning when an Amq service client is denied,
4873	and a debug message when a client is allowed.
4874
4875	* amd/amd.h (CFM_USE_TCPWRAPPERS): define [global] amd.conf flag.
4876	(AMD_SERVICE_NAME): define AMD_SERVICE_NAME for tcpd/libwrap.
4877
4878	* include/am_defs.h: include tcpd.h if available and libwrap
4879	available.
4880
4881	* configure.in: check for tcpd.h.
4882
48832003-07-18  Erez Zadok  <ezk@filer.fsl.cs.sunysb.edu>
4884
4885	* scripts/expn.1, amd/amd.8 amq/amq.8, fixmount/fixmount.8,
4886	hlfsd/hlfsd.8, scripts/expn.1: remove ".PD 0" nroff command
4887	because it removes useful spaces in between paragraphs.  Based on
4888	smaller patch from Philippe Troin <phil@fifi.org>.
4889
48902003-07-17  Philippe Troin  <phil@fifi.org>
4891
4892	* amq/amq.8: Document the libwrap/amd behavior.
4893
4894	* amd/amq_svc.c (libwrap_check_client): New function to validate
4895	an amq connection with libwrap.
4896	(amq_program_1): Call libwrap_check_client() and close the
4897	connection if libwrap does not allow it.
4898
4899	* configure.in: Check for the tcp wrappers library.
4900
49012003-07-17  Erez Zadok  <ezk@filer.fsl.cs.sunysb.edu>
4902
4903	* amd/amq_subr.c (amqproc_mnttree_1_svc, amqproc_stats_1_svc,
4904	amqproc_getmntfs_1_svc, xdr_amq_mount_tree), hlfsd/hlfsd.c
4905	(hlfsd_init): cast pointers to void* before casting them to
4906	another type, to avoid gcc-3.3 -Wall warnings.
4907
4908	* fsinfo/*.[hc]: rename fsinfo function log() to fsi_log(), to
4909	avoid conflict with builtin function in gcc-3.3.
4910
49112003-07-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4912
4913	* scripts/amd.conf-sample: Remove obsolete comment.
4914
49152003-07-16  Erez Zadok  <ezk@cs.sunysb.edu>
4916
4917	* amd/info_file.c (read_line): check for errors from fgets().
4918	Although rare, they can occur upon disk or network failures.
4919	Patch from Nick Williams <Nick.Williams@morganstanley.com>.
4920
49212003-07-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4922
4923	* BUGS (Solaris 8): Update patch revisions, mention old autofs
4924	patches, fix filenames and rpcgen command.
4925
49262003-07-15  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
4927
4928	* doc/am-utils.texi (map_defaults Parameter): document new
4929	map_defaults option.
4930
4931	* scripts/amd.conf.5: document new map_defaults option.
4932
4933	* scripts/amd.conf-sample (map_type): show examples of new
4934	map_defaults option.
4935
4936	* amd/mapc.c (mapc_create): initialize mnt_map->cfm field to NULL.
4937
4938	* amd/get_args.c (get_args): call process_all_regular_maps().
4939
4940	* amd/conf.c: keep head and tail of cfm list.
4941	(init_cf_map): reworked reset_cf_map.  This one doesn't reset a
4942	globaly reused cfm, but rather just inherits [global] options.
4943	(set_conf_kv): just store global/map options without actually
4944	creating any mnt_map's.  Essentially, we now parse the whole
4945	amd.conf file, and then try to process the maps one at a time.
4946	(process_one_regular_map): new function to process one map, just
4947	renamed from process_regular_map.
4948	(process_all_regular_maps): new exported function to process all
4949	maps.  No need for hacky process_last_map().
4950	(find_cf_map): new exported function to return a cf_map_t given a
4951	map's mount point (e.g., /home or /net).
4952
4953	* amd/amfs_generic.c (amfs_parse_defaults): find if amd.conf
4954	specificed a map_defaults for a given map.  If so, use that
4955	instead of the /defaults that came from the map itself.  Also
4956	restructure code a bit so it's not one huge long "if" statement.
4957
4958	HACK ALERT: there's no easy way to find out what the map mount
4959	point is at this point, so I am forced to initialize the
4960	mnt_map->cfm field here for the first time, upon the very first
4961	search for a /defaults entry in this map.  This initialization is
4962	much better done in mapc_create(), but it's impossible to do that
4963	there with the current code structure.
4964
4965	* amd/amd.h: struct cf_map becomes linked list.  struct mnt_map
4966	includes pointer to cf_map_t, amd.conf defaults and options for a
4967	given map. extern cleanups.
4968
49692003-07-15  Erez Zadok  <ezk@filer.fsl.cs.sunysb.edu>
4970
4971	* amd/info_hesiod.c (hesiod_search): It's not possible to have a
4972	key such as ".access" in a hesiod map as that would imply a null
4973	node in the DNS tree.  So a lookup for such a key must clearly
4974	fail.  With the current info_hesiod.c it does (after calling
4975	hes{,iod}_resolve) but returns an error that confuses some
4976	programs - eg. apache.  This patch shortcuts the process and just
4977	returns ENOENT for any key starting with ".".  Patch submitted by
4978	by Mark Davies <mark@mcs.vuw.ac.nz>.
4979
4980	* include/am_utils.h (CALLOC): redefine macro to use xzalloc, not
4981	fsinfo's own xcalloc.
4982
4983	* fsinfo/fsi_util.c (xcalloc): remove redundant function.
4984
49852003-07-14  Erez Zadok  <ezk@cs.sunysb.edu>
4986
4987	* include/am_compat.h (MNTTAB_OPT_XLATECOOKIE): The NetBSD
4988	xlatecookie NFS option doesn't work as MNTTAB_OPT_XLATECOOKIE is
4989	never defined.  Define it as needed.  Patch from Mark Davies
4990	<mark@mcs.vuw.ac.nz>.
4991
49922003-07-14  Ion Badulescu  <lionut@gonzales.badula.org>
4993
4994	* BUGS (Note): document the Solaris 8 bug (the upgrade to autofs
4995	v4 without updating all the header files)
4996
49972003-07-13  Ion Badulescu  <lionut@gonzales.badula.org>
4998
4999	* NEWS, tasks: updated
5000
5001	* amd/amfs_generic.c (free_continuation): free _all_ mntfs's in
5002	the am_mfarray, unconditionally
5003	(amfs_bgmount): call free_mntfs when we're done with a mntfs, call
5004	dup_mntfs when starting processing of a new one; make sure we
5005	always go through 'goto failed' for a failed mntfs; use the error
5006	code returned by autofs_get_fh()
5007
5008	* conf/autofs/autofs_linux.c (autofs_get_fh): return proper error
5009	codes in case of problems
5010
50112003-07-13  Erez Zadok  <ezk@filer.fsl.cs.sunysb.edu>
5012
5013	* BUGS: Document buggy behavior of Solaris /usr/ccs/bin/lex.  In
5014	short, use flex.
5015
50162003-07-13  Erez Zadok  <ezk@a-hpux11.fsl.cs.sunysb.edu>
5017
5018	* fsinfo/fsi_lex.l, amd/conf_tok.l: allocate more output slots so
5019	lex scanners don't run out of mem.
5020
50212003-07-13  Ion Badulescu  <lionut@gonzales.badula.org>
5022
5023	* amd/amfs_generic.c (amfs_lookup_mntfs): ditto as below for the
5024	special provision
5025
5026	* amd/mntfs.c (find_mntfs): compare the filesystem type
5027	(i.e. mf_ops) in addition to mf_info; the special provision
5028	mentioned below is really for any filesystem already mounted on
5029	our mount point, not just for inherited filesystems
5030
50312003-07-13  Erez Zadok  <ezk@whitestar.dyn.optonline.net>
5032
5033	* doc/Makefile.am (install-html): build per-chapter HTML manual,
5034	as well as manual in one big HTML file.
5035
5036	* doc/am-utils.texi: Minor corrections.  Ack Ion's autofs work.
5037	Ack maintainers.  New section on How to get additionl info,
5038	including the Amd book.  Correct stale URLs and Emails.
5039
5040	* amd/amd.8, amq/amq.8, amq/pawd.1, fixmount/fixmount.8,
5041	fsinfo/fsinfo.8, hlfsd/hlfsd.8, mk-amd-map/mk-amd-map.8,
5042	scripts/amd.conf.5, scripts/automount2amd.8,
5043	wire-test/wire-test.8: include references to info pages, proper
5044	authors, am-utils Web page, and amd book.
5045
50462003-07-13  Ion Badulescu  <lionut@gonzales.badula.org>
5047
5048	* amd/mntfs.c (find_mntfs): re-add the check for mf_info, but with
5049	a special provision for inherited filesystems. This unbreaks the
5050	handling of parallel mounts
5051
5052	* amd/amfs_generic.c (amfs_lookup_mntfs): for restarted
5053	filesystems, there can be no alternative mntfs to try to mount
5054
50552003-07-13  Erez Zadok  <ezk@cs.sunysb.edu>
5056
5057	* amd/amd.8: reference am-utils info page in amd man page, as per
5058	Thomas Klausner <wiz@danbala.ifoer.tuwien.ac.at>.
5059
5060	* fsinfo/fsinfo.h, fsinfo/fsinfo.c (fsi_get_args): don't use
5061	yywrap() if it doesn't exist.
5062
5063	* amd/conf_parse.y, amd/conf_tok.l, fsinfo/fsi_gram.y,
5064	fsinfo/fsi_lex.l: fixes to support old flex 2.5.4, as well as the
5065	newer flex 2.5.31 (beta development).  These include resolving
5066	conflicts with yylineno, unput() vs. nounput(), etc.
5067
50682003-07-13  Ion Badulescu  <lionut@gonzales.badula.org>
5069
5070	* amd/amfs_generic.c (amfs_cont): check for (am_error > 0) before
5071	calling assign_error_mntfs()
5072	(amfs_generic_mount_child): ditto
5073
5074	* amd/autil.c (assign_error_mntfs): move the check for
5075	(am_error > 0) up into the caller, it's less confusing that way
5076
5077	* tasks: some updates
5078
5079	* conf/transp/transp_tli.c (check_pmap_up): new function which
5080	detects if the remote portmapper is functional
5081	(amu_clnt_create_best_version): removed
5082	(get_nfs_version): use a much simplified version of the old
5083	amu_clnt_create_best_version(), based on clnt_create_vers() and
5084	its _timed() counterpart
5085
5086	* conf/transp/transp_sockets.c (check_pmap_up): new function which
5087	detects if the remote portmapper is functional
5088	(pmap_ping): deleted
5089	(get_nfs_version): removed calls to pmap_ping, already done by
5090	caller
5091
5092	* amd/srvr_nfs.c: call check_pmap_up() before continuing with
5093	get_nfs_version()
5094
5095	* amd/amfs_generic.c: updated a couple of log messages
5096
5097	* configure.in: detect clnt_create_vers and clnt_create_vers_timed;
5098	changed LIBTOOL versioning to 3:0:0
5099
51002003-07-12  Ion Badulescu  <lionut@gonzales.badula.org>
5101
5102	* conf/autofs/autofs_linux.h (AUTOFS_HOST_FS_FLAGS): removed
5103	FS_AUTOFS because the host mount cannot be a top level mount
5104	(AUTOFS_DIRECT_FS_FLAGS): removed FS_AUTOFS because Linux autofs
5105	doesn't support direct mounts
5106
51072003-07-12  Erez Zadok  <ezk@whitestar.dyn.optonline.net>
5108
5109	* amd/conf_parse.y, amd/conf_tok.l: pretty comments on # cpp
5110	macros.
5111
51122003-07-10  Ion Badulescu  <ionut@buggy.badula.org>
5113
5114	* include/am_utils.h (dlog): improved version for gcc, using
5115	vararg macros
5116
5117	* amd/rpc_fwd.c (fwd_packet): unused variable when compiling
5118	without debugging
5119
51202003-07-10  Erez Zadok  <ezk@filer.fsl.cs.sunysb.edu>
5121
5122	* include/am_utils.h (dlog): change the #define of non-debugging
5123	dlog to "nothing" so that all that'll be left behind is a list of
5124	args in parenthesis (arg,arg,...).  GCC and other native C
5125	compilers seem OK with it, even if it doesn't optimize away the
5126	whole debugging line.
5127
5128	* ltmain.sh: was from libtool 1.4.2.  updated to libtool 1.4.3,
5129	the latest on RH9 systems (but is not the latest libtool
5130	available).  Stay with stable version in preparation for 6.1
5131	release.
5132
5133	* config.{guess,sub}, doc/texinfo.tex: update to latest off of
5134	ftp.gnu.org.
5135
51362003-07-09  Erez Zadok  <ezk@filer.fsl.cs.sunysb.edu>
5137
5138	* amd/amfs_inherit.c (amfs_inherit_inherit): don't use // C++
5139	style comments: breaks non-C++ compilers (like AIX xlC 6)
5140
51412003-07-02  Ion Badulescu  <ionut@buggy.badula.org>
5142
5143	* doc/am-utils.texi (opts Option): document ignore_portmapper option
5144
5145	* conf/transp/transp_sockets.c (get_nfs_version): better
5146	protocol/version cycling while probing remote server; better log
5147	messages
5148
5149	* amd/srvr_nfs.c (start_ping): improved log message
5150	(find_nfs_srvr): always use requested nfs_version/nfs_proto; make
5151	sure we have a valid NFS port; start the server as "valid, down" if
5152	the remote portmapper tells us the NFS service is not running;
5153	implement the "ignore_portmapper" pseudo-mount option
5154
5155	* amd/rpc_fwd.c (fwd_packet): better debug messages
5156
5157	* amd/ops_nfs.c (got_nfs_fh): log a messages if a root fh is
5158	denied; call wakeup even if mountd call fails
5159
5160	* amd/amq_subr.c (xdr_amq_mount_info_qelem): use FSRV_ISUP/ISDOWN
5161	instead of checking the flags directly
5162	* amd/srvr_amfs_auto.c (free_srvr): ditto
5163
5164	* amd/amfs_generic.c (amfs_bgmount): refined some error/debug
5165	messages
5166
5167	* amd/amd.h (FSRV_ERROR): new macro
5168	(FSRV_ISDOWN, FSRV_ISUP): a server that doesn't exist (i.e. it's a
5169	local filesystem) is always up
5170
51712003-06-30  Erez Zadok  <ezk@cs.sunysb.edu>
5172
5173	* amd/autil.c (am_mounted): set AMF_NOTIMEOUT if either unmount or
5174	umount options are present.
5175
5176	* doc/am-utils.texi (Program Filesystem): document alias options
5177	to unmount:=, umount:=.
5178
5179	* amd/opts.c (expansions): initialize opt_umount.
5180	(to_free): initialize opt_umount.
5181
5182	* amd/amfs_program.c (amfs_program_match): ensure that only one of
5183	umount:= or unmount:= options are specified, but that at least one
5184	of them is listed.
5185
5186	* amd/amd.h: support unmount:=XXX as well as umount:=XXX (too
5187	annoying in type:program, when one forgets the 'n' in "unmount").
5188	They are two separate fields, so we can catch mistakes when
5189	someone tries to define both options.
5190
5191	* doc/am-utils.texi (Program Filesystem): explain that both mount
5192	and unmount options must be specified.  Correct example to show
5193	both.
5194
51952003-06-25  Erez Zadok  <ezk@cs.sunysb.edu>
5196
5197	* XXX: beginning of new amd.conf option map_defaults: will parse
5198	the option and set remember it in the right places.  Need to
5199	document this and actually hook it up with the rest of the code.
5200	Any volunteers? :-)
5201
5202	* scripts/amd.conf-sample (map_defaults): example of map_defaults
5203	amd.conf option.
5204
5205	* amd/conf.c (reset_cf_map): initialize global and per-mount
5206	map_defaults.
5207	(gopt_map_defaults): parse global map_defaults.
5208	(process_regular_option,ropt_map_defaults): parse per-map
5209	map_defaults amd.conf option.
5210
5211	* amd/amd.h: a place to store global and per-mount map_defaults.
5212
5213	* BUGS: more notes about AIX 5.2 problems and how to overcome
5214	them.
5215
52162003-06-10  Erez Zadok  <ezk@cs.sunysb.edu>
5217
5218	* doc/Makefile.am: force version.texi to be rebuilt regardless of
5219	maintainer mode.  Silly Automake will not build version.texi if
5220	maintainer mode is off (this is hardcoded into the automake perl
5221	script!).  According to the Automake maintainers, users should
5222	always build in CVS trees with maintainer-mode on; but what if I
5223	don't want to?!  I don't want to distribute Makefiles with
5224	maintained rules in them to users.  The Automake maintainers also
5225	say that "make dist" will rebuild version.texi no matter what.  I
5226	find that not to be the case.  It failed to run a "make" before
5227	"make dist" because version.texi doesn't exist!  Chicken and Egg
5228	situation.  So, until Automake deals with version.texi in a more
5229	flexible and friendly manner, I adapted a rule to build
5230	version.texi and inserted it in this Makefile.am.
5231
52322003-06-09  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
5233
5234	* mk-amd-map/mk-amd-map.c (main): open temp db file using O_EXCL,
5235	next best thing to using mkstemp().  Patch from Hendrik Scholz
5236	<hscholz@raisdorf.net>.
5237
52382003-05-08  Ion Badulescu  <ion@guppy.limebrokerage.com>
5239
5240	* libamu/mount_fs.c (compute_automounter_mount_flags): use
5241	MNT2_GEN_OPT_AUTOMNTFS if available; minor cleanup
5242
5243	* m4/macros/header_templates.m4: added template for
5244	MNT2_GEN_OPT_AUTOMOUNTED
5245
52462003-05-01  Ion Badulescu  <ionut@nicu.badula.org>
5247
5248	* amd/ops_xfs.c (mount_xfs): compile fix (s/genflags/flags/)
5249
52502003-04-23  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
5251
5252	* conf/transp/transp_sockets.c (create_amq_service): minor cpp
5253	directive indentation and commenting.
5254
52552003-04-22  Ion Badulescu  <ionut@moisil.badula.org>
5256
5257	* conf/transp/transp_sockets.c (create_amq_service): Ugly *BSD fix
5258	for an RPC library DoS issue (original patch from Martin Blapp,
5259	massaged into something more digestable by me)
5260
52612003-04-14  Ion Badulescu  <ionut@moisil.badula.org>
5262
5263	* conf/autofs/autofs_solaris_v2_v3.c: removed autofs_free_data(),
5264	left over from the recent cleanup
5265
52662003-04-13  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
5267
5268	* doc/Makefile.am (DVIPS): use proper options for dvips.
5269
5270	* doc/am-utils.texi (opts Option): document new 'unmount' option,
5271	and better explain the 'nounmount' option.  Also some misc options
5272	for better generation of html manual.
5273
5274	* doc/Makefile.am (install-html): support newer texi2html 4.0
5275	options, as older options were renamed or changed behavior.
5276
5277	* amd/autil.c (am_mounted): support new 'unmount' option, to allow
5278	all file system mounts to timeout and thus expire.  This option is
5279	useful for removable local media such as CD-ROMs, USB drives,
5280	etc. so they can expire when not in use, and get unmounted (such
5281	drives can get work out when they keep spinning).  Patch from
5282	Christos Zoulas <christos@zoulas.com> (originally from Koji
5283	Imada).
5284
52852003-04-10  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
5286
5287	* configure.in: use AM_MAINTAINER_MODE, so maintainer-only rules
5288	do not get added to Makefiles by default (they are confusing to
5289	users who don't have autotools installed).
5290
52912003-04-09  Ion Badulescu  <ion@guppy.limebrokerage.com>
5292
5293	* amd/mntfs.c (find_mntfs): revert the "change of philosophy" (see
5294	the 2001-05-23 entry) back to the 6.0 code
5295
52962003-04-04  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
5297
5298	* libamu/xutil.c (switch_to_logfile): don't try to print logfile
5299	if it is null (strlen core dump on solaris).  Bug report from John
5300	P. Rouillard <rouilj@ieee.org>.
5301
53022003-03-31  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
5303
5304	* fsinfo/fsinfo.8: typo co-ordinate -> coordinate.  Typo report
5305	from Perry E. Metzger" <perry@piermont.com>.
5306
53072003-03-25  Erez Zadok  <ezk@filer.fsl.cs.sunysb.edu>
5308
5309	* include/am_defs.h: Don't include malloc.h if stdlib.h exists,
5310	because modern systems (e.g., BSD) complain if you use malloc.h
5311	instead of stdlib.h.  Let's hope there are no systems out
5312	there that need both.
5313
53142003-03-20  Erez Zadok  <ezk@suse73.fsl.cs.sunysb.edu>
5315
5316	* minor new port: sparc64-unknown-linux-suse7.3.
5317
53182003-03-20  Erez Zadok  <ezk@a-freebsd5.fsl.cs.sunysb.edu>
5319
5320	* minor new port: i386-unknown-freebsd5.0.
5321
5322	* configure.in: detect nfsclient/nfsargs.h.
5323
5324	* conf/nfs_prot/nfs_prot_freebsd3.h: include
5325	<nfsclient/nfsargs.h>, needed in FreeBSD 5.0.
5326
53272003-03-15  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
5328
5329	* amd/amd.8, amd/amd.8, fixmount/fixmount.8, hlfsd/hlfsd.8,
5330	scripts/amd.conf.5, scripts/expn.1: minor spell checking and
5331	extraneous space elimination.
5332
53332003-03-07  Ion Badulescu  <ionut@buggy.badula.org>
5334
5335	* conf/autofs/autofs_linux.c (autofs_get_fh): don't leak file
5336	descriptors if limit exceeded
5337	(autofs_mounted): call autofs_get_mp(); init am_autofs_ttl
5338	(autofs_release_fh): release pending_mounts and pending_umounts
5339	queues
5340	(autofs_timeout_mp): update am_autofs_ttl instead of am_ttl
5341
5342	* amd/mntfs.c (init_mntfs): delete initialization of removed
5343	mf_autofs_fh
5344	(uninit_mntfs): delete call to autofs_release_fh()
5345
5346	* amd/map.c (init_map): init autofs_fh to 0, delete initialization
5347	of removed autofs_data
5348	(free_map): release autofs_fh after unmounting map; delete call to
5349	autofs_free_data()
5350	(umount_exported): call autofs_release_mp() prior to unmounting
5351	autofs f/s
5352	(unmount_mp): ditto
5353	(free_map_if_success): call autofs_get_mp() if unmounting fails
5354	(timeout_mp): use the dedicated am_autofs_ttl timeout for f/s-wide
5355	timeouts instead of the per-mountpoint am_ttl
5356
5357	* amd/autil.c (am_unmounted): release autofs_fh after unmounting
5358	autofs f/s
5359
5360	* amd/amfs_generic.c (amfs_cont): release autofs_fh if mounting
5361	autofs f/s fails;
5362	(amfs_bgmount): ditto
5363
5364	* amd/amd.h: moved autofs_fh from mntfs to am_node, since it's
5365	more related to the mount point than to the f/s mounted;
5366	added am_autofs_ttl to am_node, for running expirations on entire
5367	filesystems
5368
5369	* conf/autofs/autofs_*: autofs_get_fh() returns int instead of
5370	autofs_fh_t *; autofs_release_fh() now takes an am_node * parameter
5371	instead of autofs_fh_t *, in an effort to not deal with
5372	autofs-specific data structures outside autofs code;
5373	new methods autofs_get_mp() and autofs_release_mp(), which
5374	acquire/release autofs resources to allow clean unmount attempts;
5375	nuke autofs_data_t, never used
5376
5377	* amd/amd.h: prototypes for new and changed autofs functions
5378
53792003-03-07  Ion Badulescu  <ion@guppy.limebrokerage.com>
5380
5381	* amd/nfs_subr.c (do_readlink): eliminate third argument, never used
5382	(nfsproc_getattr_2_svc): reorganize the code a bit
5383
5384	* amd/map.c (mk_fattr): take a nfsfattr * argument instead of an
5385	am_node * argument
5386
5387	* amd/amd.h: changed prototype for mk_fattr()
5388
5389	* amd/autil.c (am_unmounted): when remounting, use the parent
5390	node's lookup_child() and mount_child() operations, not the
5391	generic ones
5392
5393	* amd/amfs_generic.c (amfs_cont): minor code optimization
5394
53952003-03-06  Ion Badulescu  <ion@guppy.limebrokerage.com>
5396
5397	* amd/amfs_auto.c: lots of renames and code moving:
5398	amfs_auto_match() -> amfs_generic_match(), moved to generic;
5399	amfs_auto_mkcacheref() -> amfs_mkcacheref(), moved to autil.c;
5400	amfs_auto_mounted() -> amfs_generic_mounted(), moved to generic;
5401	amfs_auto_umount() -> amfs_generic_umount(), moved to generic;
5402	free_continuation(): moved to generic, made static;
5403	assign_error_mntfs(): moved to autil.c;
5404	amfs_auto_cont() -> amfs_cont(), moved to generic, made static;
5405	amfs_auto_retry() -> amfs_retry(), moved to generic, made static;
5406	try_mount() + mount_node() -> mount_node(), moved to map.c
5407	amfs_auto_bgmount() -> amfs_bgmount(), moved to generic;
5408	amfs_parse_defaults(): moved to generic;
5409	amfs_auto_lookup_node() -> amfs_lookup_node(), moved to generic;
5410	amfs_auto_lookup_one_mntfs() -> amfs_lookup_one_mntfs(), in generic;
5411	amfs_auto_lookup_mntfs() -> amfs_lookup_mntfs(), moved to generic;
5412	amfs_auto_mount_child() -> amfs_generic_mount_child(), in generic;
5413	amfs_auto_lookup_child() -> amfs_generic_lookup_child(), in generic;
5414	next_nonerror_node(): moved to autil.c;
5415	amfs_auto_readdir() -> amfs_generic_readdir(), moved to readdir;
5416	amfs_auto_readdir_browsable() -> amfs_readdir_browsable(), in readdir;
5417
5418	* amd/amfs_toplvl.c: mount_amfs_toplvl() renamed to amfs_mount()
5419	and moved to autil.c
5420
5421	* amd/readdir.c, amd/amfs_generic.c: new files with stuff ripped
5422	out of amd/amfs_auto.c
5423
5424	* amd/amd.h: struct continuation moved to generic.c; prototypes
5425	for the renamed functions; NumChild renamed to NumChildren
5426
5427	* amd/map.c: collaped unmount_node_wrap() and unmount_node() into
5428	the latter
5429
5430	* amd/mapc.c: key_already_in_chain(): moved to readdir.c;
5431	make_entry_chain(): moved to readdir.c;
5432
5433	* amd/srvr_amfs_auto.c: find_amfs_auto_srvr() renamed to
5434	amfs_generic_find_srvr()
5435
5436	* amd/amfs_*.c: adjustments for the renames above
5437
5438	* amd/ops_*.c: low-level filesystems don't need a find_server()
5439	method
5440
5441	* amd/Makefile.am: added amfs_generic.c and readdir.c
5442
5443	* doc/am-utils.texi: minor clarification for auto maps
5444
54452003-03-06  Ion Badulescu  <ion@guppy.limebrokerage.com>
5446
5447	* amd/amd.h: moved lots and lots of amd-only stuff here, from
5448	include/am_utils.h; changed task_fun, cb_fun and fwd_fun typedefs
5449	to be function typedefs, not pointer to function typedefs
5450
5451	* include/am_utils.h: see above
5452
5453	* amd/ops_nfs.c, amd/rpc_fwd.c, amd/sched.c: adjustments for
5454	function typedef changes
5455
54562003-03-05  Erez Zadok  <ezk@cs.sunysb.edu>
5457
5458	* BUGS: record IBM's patch number for the AIX 5.2 NFS over IPv6
5459	bug.
5460
54612003-02-02  Erez Zadok  <ezk@siamese.fsl.cs.sunysb.edu>
5462
5463	* NEWS: minor new port: ia64-unknown-linux-rh2.1AS
5464
54652003-01-31  Ion Badulescu  <ion@console.limebrokerage.com>
5466
5467	* m4/macros/os_cflags.m4: rhapsody and darwin are the same
5468
5469	* amd/autil.c (mount_node): vastly simplified, just a wrapper now
5470
5471	* amd/amfs_inherit.c (amfs_inherit_mount): remove the am_mounted()
5472	hack, we now do it properly in the generic code
5473
5474	* amd/amfs_auto.c (amfs_auto_bgmount): get the autofs_fh _before_
5475	forking the child; set and reset MFF_MOUNTING here, not in
5476	mount_node(), because the latter might be running in child
5477	context; call am_mounted() after a successful foreground mount
5478
54792003-01-29  Ion Badulescu  <ionut@moisil.badula.org>
5480
5481	* configure.in: new flag --with[out]-ndbm; don't pull in libldap
5482	if building --without-ldap; look for the gdbm/ndbm.h header; make
5483	explicit the dependency between the ndbm headers and libraries;
5484	define NEW_DBM_H as the ndbm header that should be used
5485
5486	* include/am_defs.h: simply include NEW_DBM_H for ndbm stuff,
5487	instead of trying to second-guess configure
5488
5489	* m4/macros/header_templates.m4: new template for NEW_DBM_H
5490
5491	* m4/macros/check_map_funcs.m4:
5492	(ac_upcase_map_name): use the third argument correctly
5493
5494	* ltmain.sh: working version from libtool-1.4.2-7
5495
5496	* buildall: print the entire configure command, including extra
5497	arguments; pass each of the extra arguments separately, not
5498	commingled into one
5499
55002003-01-28  Ion Badulescu  <ion@guppy.limebrokerage.com>
5501
5502	* include/am_utils.h (DEBUG_MNTTAB): define outside of #ifdef
5503	DEBUG; it is not used without DEBUG, but it is referenced at
5504	compile time. Bug report from John Kilburg <john@physics.unlv.edu>.
5505	(D_ALL): don't include D_XDRTRACE, too verbose and normally
5506	unnecessary
5507
55082003-01-28  Erez Zadok  <ezk@cs.sunysb.edu>
5509
5510	* ltmain.sh, config.guess, config.sub, doc/texinfo.tex: updates
5511	from latest official GNU versions.
5512
55132003-01-25  Erez Zadok  <ezk@cs.sunysb.edu>
5514
5515	* BUGS (Note): document AIX-5.1 NFS-client side bug (hangs in
5516	vmount).
5517
55182003-01-25  Ion Badulescu  <ionut@moisil.badula.org>
5519
5520	* Released beta version 6.1b2
5521
55222003-01-24  Ion Badulescu  <ionut@moisil.badula.org>
5523
5524	* amd/autil.c (am_unmounted): reset MFF_MKMNT from mf_flags when
5525	calling rmdirs() on mountpoint
5526
5527	* amd/amfs_auto.c (amfs_auto_bgmount): ditto
5528
5529	* amd/amfs_nfsl.c (amfs_nfsl_umounted): ditto
5530
5531	* doc/am-utils.texi (opts Option): "sftlookup" -> "softlookup"
5532
5533	* NEWS: "sftlookup" -> "softlookup"
5534
5535	* amd/ops_nfs.c (nfs_mount): "sftlookup" -> "softlookup", also
5536	check for "nosoftlookup" in combination with "soft"
5537
55382003-01-23  Ion Badulescu  <ion@guppy.limebrokerage.com>
5539
5540	* m4/macros/check_nfs_fh_dref.m4: darwin/rhapsody is another
5541	freebsd22 derivative
5542
5543	* NEWS: updated for Darwin changes
5544
5545	* .cvsignore: added A.i386-apple-darwin6.0
5546
5547	* m4/macros/os_cflags.m4: add -D_P1003_1B_VISIBLE to cflags for
5548	Darwin
5549
55502003-01-23  Erez Zadok  <ezk@cs.sunysb.edu>
5551
5552	* conf/mount/mount_aix.c (mount_aix3): clean back this file from
5553	all the debugging cruft that is no longer needed (and really was
5554	never needed in the first place).
5555
55562003-01-10  Erez Zadok  <ezk@cs.sunysb.edu>
5557
5558	* scripts/test-amd.{misc,conf}: simple amd.conf and amd.misc
5559	(map) files for testing basic amd functionality such as whether it
5560	can mount its own mount NFS points.
5561
55622002-12-28  Ion Badulescu  <ionut@moisil.badula.org>
5563
5564	* amd/srvr_nfs.c (start_nfs_pings): don't set FSF_PINGING if
5565	pings are disabled
5566
5567	* libamu/xdr_func.c (xdr_ftype): use a local enum_t variable
5568	instead of casting the pointer to (enum_t *)
5569	(xdr_mountstat3): ditto
5570	(xdr_nfsstat): ditto
5571
5572	* libamu/misc_rpc.c (make_rpc_packet): fix make_rpc_packet() on
5573	64-bit big-endian platforms, bug report from Bill Fenner
5574	<fenner@research.att.com>
5575
5576	* configure.in: increase library patchlevel
5577
5578	* libamu/xutil.c (amu_release_controlling_tty): close and reopen
5579	file descriptors 0,1,2 before calling setsid()
5580
55812002-12-27  Erez Zadok  <ezk@cs.sunysb.edu>
5582
5583	* updated copyright year to 2003 on all files
5584
55852002-12-10  Erez Zadok  <ezk@localhost.localdomain>
5586
5587	* rename "aux/" subdir into "m4/" so as to avoid problems with
5588	MS-DOS systems (where "AUX" is a reserved name).  This required
5589	fixing numerous files.
5590
55912002-12-10  Erez Zadok  <ezk@filer.fsl.cs.sunysb.edu>
5592
5593	* configure.in: don't check for bad hasmntopt() function if
5594	hasmntopt() doesn't exist on the system, because we will replace
5595	it with our own version anyway.
5596
5597	* conf/transp/transp_sockets.c (amu_get_myaddress): use "%lx" in
5598	dlog because htonl() returns a u_long.
5599
56002002-12-10  Erez Zadok  <ezk@localhost.localdomain>
5601
5602	* include/am_defs.h: use system's hasmntopt() only if it is found
5603	and it is not buggy.
5604
5605	* libamu/hasmntopt.c (nextmntopt): isspace() takes an int, not a
5606	char.
5607
5608	* amd/am_ops.c, amd/amfs_auto.c, amd/autil.c, amd/nfs_subr.c,
5609	amd/ops_cdfs.c, amd/ops_nfs.c, amd/srvr_nfs.c, libamu/hasmntopt.c,
5610	libamu/mount_fs.c, libamu/mtab.c: rename all uses of hasmntopt()
5611	to amu_hasmntopt().  Don't use hasmntopt() directly any more!
5612
5613	* aux/macros/func_bad_hasmntopt.m4: new M4 macro to test for a bad
5614	hasmntopt() function, which incorrectly finds the option "soft" in
5615	a string "hard,softlookup,ro".
5616
5617	* libamu/hasmntopt.c (hasmntopt): use 'const' on two args to
5618	hasmntopt(), to match what most systems use.
5619
5620	* aux/macros/header_templates.m4: template for HAVE_BAD_HASMNTOPT.
5621
5622	* configure.in: invoke test for bad hasmntopt()
5623
5624	* NEWS: minor new port, i386-pc-linux-rh8.0.
5625	Mention autofs-v4 on solaris9 works.
5626
5627	* bootstrap: remove any autom4te-*.cache directories, now that
5628	autoconf uses a version number for them.
5629
56302002-12-09  Ion Badulescu  <ionut@moisil.badula.org>
5631
5632	Patches from Christos Zoulas:
5633
5634	-1- am_utils.h: add full prototypes
5635	-2- amfs_auto.c make functions static and add prototypes
5636	-3- map.c: kill double free
5637	-5- transp_sockets.c: add full prototypes
5638
56392002-12-09  Ion Badulescu  <ionut@moisil.badula.org>
5640
5641	* NEWS: updated
5642
5643	* doc/am-utils.texi (opts Option): document sftlookup
5644
5645	* conf/autofs/autofs_solaris_v2_v3.c: compile fixes
5646
56472002-11-22  Erez Zadok  <ezk@filer.fsl.cs.sunysb.edu>
5648
5649	* amd/info_ldap.c (amu_ldap_rebind): gopt.ldap_cache_seconds is
5650	%ld not %d.
5651
56522002-11-21  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
5653
5654	* {amd,fsinfo}/Makefile.am: remove special rules for processing
5655	yacc/lex files, now that autoconf/automake properly handle them
5656	better (esp. now that bison 1.75 behaves differently than older
5657	bison versions).
5658
56592002-11-21  Erez Zadok  <ezk@cs.sunysb.edu>
5660
5661	* config.guess.long: updated script so it will properly find the
5662	version number of the new Itanium 2 machines running "Red Hat
5663	Linux Advanced Workstation release 2.1AW (Derry)".  The script now
5664	will report ia64-unknown-linux-rh2.1AW.
5665
56662002-11-20  Ion Badulescu  <ionut@moisil.badula.org>
5667
5668	* amfs_auto_bgmount(): almost complete rewrite
5669
5670	* fixed amfs_inherit to do the right thing and not dereference
5671	freed mntfs'es
5672
5673	* #if 0'ed bogus code in fh_to_mp3() -- it is now done properly in
5674	amfs_autofs_lookup_child()
5675
5676	* release the autofs_fh only in one place
5677
5678	* remove the mountpoint only if mf_refc == 1
5679
5680	* print the mntfs type in free_mntfs()
5681
5682	* new pseudo-mount option 'sftlookup' which causes lookups to
5683	mounted shares from downed servers to return EIO; the default
5684	depends on whether the mount is 'hard' or 'soft'
5685
5686	* improved querying of supported NFS versions on the server --
5687	don't even try if it's known to be down
5688
5689	* solaris autofs mount code moved to transp_{sockets,tli}.c
5690
5691	* incipient (non-functional) AIX autofs support
5692
56932002-11-11  Ion Badulescu  <ion@guppy.limebrokerage.com>
5694
5695	* doc/am-utils.texi (Keep-alives): removed outdated info about not
5696	maintaining the state of TCP NFS servers
5697
56982002-11-04  Ion Badulescu  <ion@guppy.limebrokerage.com>
5699
5700	* include/am_utils.h: prototype for ops_search()
5701
5702	* amd/am_ops.c (ops_search): new function for searching the right
5703	set of ops for a given filesystem type
5704
5705	* amd/restart.c (restart): cleanup and split into two functions in
5706	preparation for handling the restart of amd's own mount points
5707	(restart_fake_mntfs): new function, factored out from restart()
5708
57092002-11-04  Ion Badulescu  <ionut@buggy.badula.org>
5710
5711	* amd/ops_cdfs.c (mount_cdfs): remove special code for loop device
5712	(cdfs_umount): ditto
5713
5714	* conf/mount/mount_linux.c (mount_linux): factor it out to
5715	mount_linux_nfs() and mount_linux_nonfs()
5716	(mount_linux_nonfs): generalize loop device support to all
5717	filesystems (not just cdfs); make it automatic for anything that's
5718	a regular file
5719	(parse_opts): deprecate the explicit "loop" mount option
5720	(do_mount_linux): minor cleanup
5721
5722	* conf/umount/umount_default.c (umount_fs2): release loop device
5723	on umount()
5724
57252002-11-03  Erez Zadok  <ezk@cnm20>
5726
5727	* include/am_defs.h: moved #include of net/if.h above net/route.h,
5728	because on AIX 5.2 if.h is needed for route.h (let's hope it
5729	doesn't break things on other systems).
5730
5731	* include/am_defs.h: AIX 5.2 needs struct sigevent from signal.h
5732	to be defined, but I don't want to move the inclusion of signal.h
5733	this early into this file.  Luckily, amd doesn't need the size of
5734	this structure in any other structure that it uses.  So we
5735	sidestep it for now.
5736
5737	* conf/nfs_prot/nfs_prot_aix5_2.h: AIX 5.2 wants 'struct pathcnf',
5738	but I couldn't find its definition anywhere.  Luckily, amd doesn't
5739	need the size of this structure in any other structure that it
5740	uses.  So we sidestep it for now.
5741
57422002-11-02  Erez Zadok  <ezk@cs.sunysb.edu>
5743
5744	* config.guess, config.sub, doc/texinfo.tex: updates from
5745	the latest GNU distributions (2002-09-05).
5746
57472002-10-30  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
5748
5749	* conf/nfs_prot/nfs_prot_aix5_2.h: add more definitions from
5750	mount.h for NFSOPT_* and NFSMNT_*.
5751	Don't use typedefs that aren't found in system header files.
5752
57532002-10-30  Erez Zadok  <ezk@cs.sunysb.edu>
5754
5755	* Makefile.am (EXTRA_DIST_CONF): distribute nfs_prot_aix5_2.h.
5756
5757	* conf/nfs_prot/nfs_prot_aix5_2.h: new file.
5758
5759	* aux/macros/struct_nfs_args.m4 (ac_cv_have_struct_nfs_args): look
5760	for "struct aux52_nfs_args".
5761
5762	* aux/macros/check_nfs_prot_headers.m4: define new header file for
5763	AIX 5.2.
5764
57652002-10-21  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
5766
5767	* scripts/amd.conf.5 (ldap_proto_version): document in amd.conf
5768	man page.
5769
5770	* scripts/amd.conf-sample (ldap_proto_version): show example of use
5771
5772	* doc/am-utils.texi (ldap_proto_version Parameter): document new
5773	amd.conf option.
5774
5775	* amd/conf.c (gopt_ldap_proto_version): new conf function to
5776	support ldap_proto_version amd.conf parameter.
5777
5778	* amd/amd.h: field to hold LDAP protocol version.
5779
5780	* amd/amd.c (init_global_options): set default for
5781	ldap_proto_version.  ldap_proto_version patch from George Ross
5782	<gdmr@dcs.ed.ac.uk> and Tim Colles <timc@inf.ed.ac.uk>.
5783
5784	* amd/info_ldap.c (amu_ldap_unbind): ignore SIGPIPE errors while
5785	unbinding from an LDAP server that may have been restarted.  Fix
5786	from George Ross <gdmr@dcs.ed.ac.uk>.
5787
57882002-09-17  Ion Badulescu  <ion@guppy.limebrokerage.com>
5789
5790	* remove all autoconf stuff added for sys_nerr
5791
5792	* amq/amq.c, libamu/xutil.c, hlfsd/hlfsd.c: always use strerror
5793
5794	* libamu/strerror.c: more explicit text for unknown errno's
5795
57962002-10-01  Erez Zadok  <ezk@cs.sunysb.edu>
5797
5798	* include/am_defs.h: define "extern int sys_err" if needed.
5799
5800	* aux/macros/header_templates.m4: template for
5801	HAVE_EXTERN_SYS_NERR.
5802
5803	* hlfsd/hlfsd.h, libamu/xutil.c (expand_error), amq/amq.c
5804	(show_mi): remove "extern int sys_err"
5805
5806	* configure.in: execute test for "extern int sys_err"
5807
5808	* Makefile.am (EXTRA_DIST_AUX): distribute new extern_sys_err.m4 file.
5809
5810	* aux/macros/extern_sys_nerr.m4: new test to check for existence
5811	of "extern int sys_nerr" definition in system headers.
5812
58132002-09-17  Ion Badulescu  <ion@guppy.limebrokerage.com>
5814
5815	* libamu/xutil.c (dbg_opt): bring comments in line with the code
5816
5817	* hlfsd/hlfsd.c (main): use amuDebug() instead of touching
5818	debug_flags directly
5819
5820	* amd/amd.c (main): don't init debug_flags, leave it as zero (no
5821	debugging by default)
5822
58232002-09-11  Ion Badulescu  <ion@guppy.limebrokerage.com>
5824
5825	Debug code sanitization:
5826
5827	- amuDebug() becomes an expression, and explicit if() statements
5828	are added around it throughout the code
5829	- amuDebugNo() goes away (ugh!)
5830	- D_AMQ, D_DAEMON and D_FORK reverse their meaning
5831	- D_ALL contains only options that don't affect amd's functionality
5832
58332002-09-04  Ion Badulescu  <ion@guppy.limebrokerage.com>
5834
5835	* amd/amfs_auto.c (free_continuation): avoid double-free'ing the
5836	mntfs if there was an error/timeout
5837
58382002-09-04  Ion Badulescu  <ion@guppy.limebrokerage.com>
5839
5840	* amd/amfs_auto.c (amfs_auto_lookup_mntfs): use ereturn() instead
5841	of "return NULL" to signal an error to the upper layers
5842	(amfs_auto_mount): use strdup so the string can be free'd later on
5843	[Debian bug report from Matt Chapman <matthewc@cse.unsw.edu.au>]
5844
58452002-09-03  Ion Badulescu  <ion@guppy.limebrokerage.com>
5846
5847	Patches from George Ross <gdmr@dcs.ed.ac.uk>:
5848
5849	* amd/amfs_auto.c (assign_error_mntfs): do not discard old mntfs,
5850	it will be done in free_continuation(); assorted debugging messages
5851
5852	* amd/srvr_nfs.c (nfs_timed_out): allocate a new XID on server
5853	timeout to avoid problems with late ping replies
5854
5855	* amd/mntfs.c (free_mntfs): sanity check for mf_refc; assorted
5856	debugging messages
5857
5858	* amd/map.c (unmount_node): more verbose debug message
5859
58602002-07-29  Ion Badulescu  <ion@guppy.limebrokerage.com>
5861
5862	* amd/amfs_auto.c (amfs_auto_lookup_mntfs): prevent deferencing
5863	de-allocated memory in str3cat
5864	(amfs_auto_lookup_mntfs): check for buffer overflow
5865
58662002-07-11  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
5867
5868	* scripts/expn.{1,in}: fixed typos as reported by Thomas Klausner
5869	<wiz@danbala.ifoer.tuwien.ac.at>.
5870
58712002-06-26  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
5872
5873	* doc/Makefile.am (install-html): don't use locally hacked
5874	texi2html features.
5875
5876	* conf/transp/transp_sockets.c (amu_get_myaddress): Most modern
5877	systems should use 127.0.0.1 as the localhost address over which
5878	you can do NFS mounts.  In the past we found that some NFS clients
5879	may not allow mounts from localhost.  So we used get_myaddress()
5880	and that seemed to work.  Alas, on some other systems,
5881	get_myaddress() may return one of the interface addresses at
5882	random, and thus use a less efficient IP address than 127.0.0.1.
5883	The solution is to hard-code 127.0.0.1, but still check if
5884	get_myaddress() returns a different value and warn about it.
5885
5886	* doc/am-utils.texi: don't use ':' in @cindex entries.
5887
58882002-06-25  Ion Badulescu  <ion@guppy.limebrokerage.com>
5889
5890	* Released beta version 6.1b1
5891
58922002-06-24  Ion Badulescu  <ionut@moisil.badula.org>
5893
5894	* aux/macros/struct_nfs_args.m4: added test for aix51_nfs_args
5895
5896	* conf/nfs_prot/nfs_prot_aix5_1.h: rename aix42_nfs_args to
5897	aix51_nfs_args, rename unknown fields to u<number>, add the
5898	unknown new field into the middle of the old 4.2 structure
5899
59002002-06-24  Ion Badulescu  <ion@guppy.limebrokerage.com>
5901
5902	* include/am_compat.h: better test for struct netconfig
5903	(!HAVE_NETCONFIG_H && !HAVE_SYS_NETCONFIG_H)
5904
5905	* aux/macros/check_nfs_prot_headers.m4: added new header for aix5.1+
5906
5907	* buildall: fix 'buildall -b' on hpux9 and aix5.1
5908
59092002-06-24  Ion Badulescu  <ionut@buggy.badula.org>
5910
5911	* INSTALL: updated
5912
5913	* conf/autofs/autofs_solaris_v1.c (autofs_link_mount): compile fix
5914	(autofs_link_umount): ditto
5915
5916	* amd/mntfs.c (init_mntfs): don't use autofs if !amd_use_autofs
5917
59182002-06-23  Ion Badulescu  <ionut@moisil.badula.org>
5919
5920	* conf/autofs/autofs_linux.c: compile fixes for autofs v3
5921
59222002-06-23  Ion Badulescu  <ionut@moisil.badula.org>
5923
5924	* conf/autofs/autofs_solaris_v2_v3.c (autofs_mounted): no
5925	expirations needed;
5926	(autofs_timeout_mp): likewise
5927
5928	* conf/autofs/autofs_solaris_v1.c (autofs_mounted): no expirations
5929	needed;
5930	(autofs_timeout_mp): likewise
5931
5932	* conf/autofs/autofs_linux.c (autofs_mounted): set the first
5933	expiration interval
5934
5935	* amd/autil.c (am_mounted): call autofs_mounted here, instead of
5936	in mf_mounted()
5937
5938	* amd/amd.h (NEVER): moved here from map.c
5939	(autofs_mounted): change argument from mntfs* to am_node*
5940
59412002-06-23  Ion Badulescu  <lionut@gonzales.badula.org>
5942
5943	* conf/autofs/autofs_linux.c (autofs_mounted): set the kernel
5944	timeout on the autofs mountpoint to cache_duration (gopt.am_timeo)
5945	(autofs_timeout_mp): don't update the ttl if we're going down
5946
5947	* amd/map.c (timeout_mp): don't call autofs_timeout_mp unless the
5948	timeout on that particular am_node has expired
5949
5950	* conf/autofs/autofs_linux.c (autofs_timeout_mp): really update
5951	the ttl, as per the comment (compilers are not very good at
5952	translating comments into code...)
5953
5954	* amd/amfs_auto.c (amfs_auto_lookup_one_mntfs): strdup am_path
5955	instead of opt_rfs into opt_fs for autofs, thus avoiding conflicts
5956	between link mounts pointing to the same target
5957
59582002-06-23  Ion Badulescu  <lionut@gonzales.badula.org>
5959
5960	* conf/autofs/autofs_linux.c (send_fail, send_ready): new helper
5961	functions for sending messages back to the kernel
5962	(autofs_expire_one): initial implementation of the kernel-based
5963	expiration handler
5964	(autofs_handle_expire): call autofs_expire_one()
5965	(autofs_handle_expire_multi): ditto
5966	(autofs_umount_succeeded): search pending_umounts, send message
5967	back to the kernel
5968	(autofs_umount_failed): ditto
5969	(autofs_mount_succeeded): tell amd core not to expire autofs entries
5970	(autofs_timeout_mp): expiration function for autofs filesystems
5971	(autofs_timeout_mp_task): helper function for autofs_timeout_mp
5972
5973	* conf/autofs/autofs_linux.h: new struct autofs_pending_umount for
5974	keeping tracking of pending umounts
5975	(autofs_fh_t) rename pending to pending_mounts, add pending_umounts
5976
5977	* conf/autofs/autofs_solaris_v1.c (autofs_timeout_mp): stub
5978
5979	* conf/autofs/autofs_solaris_v2_v3.c (autofs_timeout_mp): stub
5980
5981	* amd/map.c (timeout_mp): call autofs_timeout_mp() for autofs
5982	filesystems
5983
5984	* amd/autil.c (mf_mounted): move here the call autofs_mounted()
5985	from amfs_auto_mounted().
5986
59872002-06-22  Erez Zadok  <ezk@whitestar.dyn.optonline.net>
5988
5989	* amd/nfs_start.c (mount_automounter): Security fix.  if user sets
5990	-D noamq, don't even create listening socket.  Suggestion by Ed
5991	Ravin <eravin@panix.com>.
5992
59932002-06-22  Ion Badulescu  <lionut@gonzales.badula.org>
5994
5995	* hlfsd/homedir.c (homedir): use setgid() instead of setegid()
5996
5997	* ALL: #ifdef cleanups, unify some TLI/socket function prototypes
5998
59992002-06-22  Erez Zadok  <ezk@whitestar.dyn.optonline.net>
6000
6001	* conf/nfs_prot/nfs_prot_netbsd1_4.h: minor port to support
6002	na_gid and na_uid.  NetBSD patch from Jun-ichiro itojun Hagino
6003	<itojun@iijlab.net>.
6004
6005	* doc/am-utils.texi (Option): document xlatecookie mount option.
6006
6007	* libamu/mount_fs.c (compute_nfs_args): support "xlatecookie"
6008	NFS mount option.  Patch from Matthias Scheler <tron@zhadum.de>
6009	for NetBSD.
6010
60112002-06-22  Ion Badulescu  <ionut@edgar.badula.org>
6012
6013	* conf/autofs/autofs_solaris_v1.h: add FS_MBACKGROUND to
6014	AUTOFS_LINK_FS_FLAGS
6015
6016	* conf/autofs/autofs_solaris_v1.c: convert link mounts to lofs
6017	mounts in autofs_link_mount/umount
6018
60192002-06-22  Ion Badulescu  <lionut@gonzales.badula.org>
6020
6021	* configure.in: check for devid inside struct umntrequest
6022
6023	* conf/autofs/autofs_solaris_v2_v3.c (xdr_umntrequest): handle the
6024	new umntrequest structure in v4.
6025	(autofs_unmount_2_req): ditto
6026
6027	* README.autofs: updated for Solaris 2.5/2.5.1
6028
60292002-06-22  Erez Zadok  <ezk@whitestar.dyn.optonline.net>
6030
6031	* configure.in: only define LDAP/Hesiod if both the headers and
6032	the libraries exist, and the user didn't explicitly disable those
6033	maps.
6034
60352002-06-22 Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
6036
6037	* doc/am-utils.texi: fix typos.  Can't use ":" in @cindex entries.
6038
60392002-06-22  Erez Zadok  <ezk@whitestar.dyn.optonline.net>
6040
6041	* doc/am-utils.texi, scripts/amd.conf.5, scripts/amd.conf-sample,
6042	amd/amd.8, amd/get_args.c (get_args): document amd -A option.
6043
6044	* amd/get_args.c (get_args): support "amd -A arg" option to
6045	override the system's detected architecture.  Patch from George
6046	Ross <gdmr@dcs.ed.ac.uk>.
6047
6048	* amd/info_ldap.c (amu_ldap_rebind): don't use ldap_enable_cache()
6049	if the system doesn't have it.
6050
6051	* configure.in: detect existence of ldap_enable_cache function,
6052	because it doesn't exist on Solaris 9's latest ldap libraries.
6053
6054	* amd/info_ldap.c: LDAP patches from George Ross
6055	<gdmr@dcs.ed.ac.uk>.  Rework of old code, support for wildcards in
6056	LDAP queries, and an FD leak fix.
6057
60582002-06-22  Ion Badulescu  <lionut@gonzales.badula.org>
6059
6060	* buildall: use ksh for configure on aix5.1; pass the extra
6061	arguments after "--" to configure, not to make
6062
6063	* Makefile.am: added nfs_prot_aix4_3.h to EXTRA_DIST_CONF
6064
6065	* conf/mount/mount_aix.c (mount_aix3): if the NFSv3 mount fails
6066	with EINVAL and we have MOUNT_TYPE_NFS3_BIS defined, retry the
6067	mount with the alternative nfs3_args structure
6068
6069	* conf/nfs_prot/nfs_prot_aix4_3.h: added alternative nfs3_args
6070	structure, similar to that in aix5.1, for a hack that tries to
6071	compensate for IBM's brain fart
6072
6073	* conf/nfs_prot/nfs_prot_aix5_1.h: new nfs_prot header for aix5.1+
6074
6075	* aux/macros/check_nfs_prot_headers.m4: added new header for aix5.1+
6076
6077	* BUGS: update for direct mounts on Linux; document the brokenness
6078	of /bin/sh on AIX 5.1 and HP-UX 9
6079
6080	* NEWS: aix5.1 port, aix4.3 workaround
6081
60822002-06-22 Erez Zadok <ezk@agora.fsl.cs.sunysb.edu>
6083
6084	* ltmain.sh: use libtool 1.4d, needed support for newer AIX.
6085
60862002-06-21  Ion Badulescu  <ion@guppy.limebrokerage.com>
6087
6088	* aux/macros/check_autofs_style.m4: enable autofs_v2_v3 for
6089	all solaris2.6+, not just for 2.[6-8]
6090
6091	* conf/autofs/autofs_default.h: disable autofs if configure
6092	detects it
6093
60942002-06-21  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
6095
6096	* aux/macros/with_addon.m4: correct M4 quoting.
6097
6098	* aux/macros/cache_check_dynamic.m4: correct M4 quoting.
6099
6100	* bootstrap: show version of autotools being used.  Helps
6101	maintainer debugging.
6102
6103	* configure.in: new proper syntax for libtool and
6104	ansi2knr-filtering rules, required by autoconf 1.53 and higher.
6105
61062002-06-21  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
6107
6108	* aux/GNUmakefile: new search paths for "update" target.
6109
6110	* config.guess, config.sub, doc/texinfo.tex, ltmain: updates from
6111	the latest GNU distributions.
6112
61132002-06-11  Ion Badulescu  <ion@guppy.limebrokerage.com>
6114
6115	* amd/amfs_auto.c (amfs_auto_lookup_child): split part of this
6116	function into the new amfs_auto_lookup_one_child function; return
6117	null if all ivecs failed to match
6118
61192002-05-30  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
6120
6121	* config.guess.long: support SuSE version names in long
6122	config.guess format.
6123
61242002-05-01  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
6125
6126	* scripts/lostaltmail.in (vrfy_user): unlink temp files if too
6127	small.
6128
61292002-04-07  Ion Badulescu  <ionut@moisil.badula.org>
6130
6131	* hlfsd/hlfsd.c (main): compile fix for --enable-debug=no
6132
61332002-03-29  Ion Badulescu  <ionut@moisil.badula.org>
6134
6135	* README.autofs: solaris 2.5/2.5.1 info, other minor changes
6136
6137	* doc/am-utils.texi (History): document solaris 2.5+ support
6138
6139	* include/am_utils.h: new member in struct mntfs: mfs_real_mount;
6140	autofs_fs_flags becomes conditional of HAVE_AUTOFS_FS; new
6141	prototype for umount_fs2(); extra argument for UMOUNT_FS()
6142
6143	* hlfsd/hlfsd.c: use the new mount_fs2() and UMOUNT_FS()
6144
6145	* libamu/mount_fs.c (mount_fs): wrapper around the new mount_fs2()
6146	function; swap mntdir and real_mntdir as necessary for solaris 2.5
6147	autofs support
6148
6149	* conf/umount/umount_default.c (umount_fs2): swap mntdir and
6150	real_mntdir as necessary for solaris 2.5 autofs support
6151
6152	* conf/umount/umount_*.c (umount_fs): wrapper around the new
6153	umount_fs2() function
6154	(umount_fs2): new function which takes the real mountpoint as an
6155	extra argument
6156
6157	* conf/nfs_prot/nfs_prot_sunos5_5.h: allow autofs support to be
6158	compiled in
6159
6160	* conf/autofs/autofs_solaris_v1.h (autofs_strdup_space_hack): new
6161	function that appends a space at the end of a string (the famous
6162	"Autofs Space Protocol")
6163
6164	* conf/autofs/autofs_solaris_v1.c: almost complete reimplementation
6165
6166	* conf/autofs/autofs_*.h (AUTOFS_*_FS_FLAGS): add
6167	system-specific definitions for these macros
6168
6169	* conf/autofs/autofs_linux.c (create_autofs_service): remove hacks
6170	which are now handled properly by more generic code
6171	(autofs_link_umount): complain if umount_fs() fails, rmdir the
6172	mountpoint on success
6173	(autofs_umount_succeeded): remove the rmdirs() code, now handled
6174	by generic code
6175	(autofs_mount_succeeded): ditto
6176
6177	* amd/nfs_start.c (checkup): implement it as an emtpy stub if
6178	DEBUG is not defined
6179	(run_rpc): call autofs_add_fdset() after umount_exported() to
6180	avoid passing invalid file descriptors to select(); use plog()
6181	instead of perror()
6182
6183	* amd/mntfs.c (init_mntfs): initialize mf_real_mount from mp
6184	(uninit_mntfs): free mf_real_mount
6185
6186	* amd/autil.c (am_unmounted): don't remove the mount point if a
6187	remount is pending, also don't make the removal conditional on not
6188	being an autofs mount point
6189
6190	* amd/amfs_nfsx.c (amfs_nfsx_remount): call mkdirs() on
6191	mf->mf_real_mount instead of mf->mf_mount
6192
6193	* amd/amfs_nfsl.c, amd/amfs_nfsx.c: (amfs_nfsl_umounted): call
6194	rmdirs() on mf->mf_real_mount instead of mf->mf_mount
6195
6196	* amd/amfs_host.c (make_mntpt): change the third argument to be
6197	the mountpoint, not the entire mntfs structure
6198	(do_mount): takes real_mntdir as an extra argument
6199
6200	* amd/amfs_auto.c (amfs_auto_bgmount): move the creation of the
6201	mountpoint here from try_mount(), otherwise the change to mf_flags
6202	is lost for background mounts; remove the mountpoint if we created
6203	it and the mount fails
6204	(amfs_auto_lookup_mntfs): re-initialize mf->mf_real_mount using
6205	autofs_strdup_space_hack() if NEED_AUTOFS_SPACE_HACK is defined
6206
6207	* amfs_*.c, ops_*.c: initialize autofs_fs_flags using the
6208	AUTOFS_*_FS_FLAGS macro defined in the system-specific autofs
6209	header; UMOUNT_FS() takes mf->mf_real_mount as an extra argument;
6210	mount_fs() becomes mount_fs2() and takes mf->mf_real_mount as an
6211	extra argument
6212
6213	* amd/amd.h, amd/ops_nfs.c, amd/amfs_host.c: mount_nfs_fh takes
6214	the real mountpoint as an additional argument
6215
62162002-03-28  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
6217
6218	* amd/ops_cdfs.c (mount_cdfs): correctly interpret error return
6219	values back from mount_fs().  Return correct error number from
6220	this function.
6221
6222	* conf/mount/mount_linux.c (do_mount_linux): cleanup loop mount
6223	cruft from this function, moved elsewhere.
6224	(mount_linux): prepare for loop-device mounts of ISO images.
6225
62262002-03-28  Ion Badulescu  <ionut@buggy.badula.org>
6227
6228	* libamu/Makefile.am (EXTRA_DIST): added strerror.c
6229
6230	* libamu/strerror.c: strerror() implementation for systems lacking it
6231
6232	* doc/am-utils.texi (History): rewrote the history :) about autofs
6233	support
6234
6235	* conf/autofs/autofs_solaris_v2_v3.c: updated copyright;
6236	(autofs_unmount_2_req): minor cleanup
6237	(create_autofs_service): print log message
6238	(destroy_autofs_service): ditto
6239
6240	* conf/autofs/autofs_linux.c: updated copyright
6241
6242	* amd/nfs_start.c (mount_automounter): move the debug message into
6243	create_autofs_service()
6244
6245	* amd/amd.c (main): call destroy_autofs_service() before
6246	going_down(), not after
6247
6248	* configure.in: added strerror to AC_CHECK_FUNCS(); disable ldap
6249	if the ldap headers are not found
6250
62512002-03-28  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
6252
6253	* amd/info_ldap.c: patch from "Sebastien Bahloul"
6254	<sebastien.bahloul@medasys.org> to fix a simple initialization bug
6255	and change "HE" to HE_ENT so as to compile on HPUX.
6256
62572002-02-26  Erez Zadok  <ezk@t3.fsl.cs.sunysb.edu>
6258
6259	* conf/nfs_prot/nfs_prot_freebsd3.h (na_uid): freebsd4.5 uses nfs
6260	atttributes field named "uid".  So #define na_uid to it.
6261
62622002-02-12  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
6263
6264	* scripts/lostaltmail.in: don't verify user if -noverify option
6265	was turned on.  fix comment typo.
6266
62672002-02-11  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
6268
6269	* amd/Makefile.am (TESTS): enable one test script, test1.sh.
6270
6271	* amd/test1.sh: re-commit simple test script.
6272
62732002-02-11  Ion Badulescu  <ion@guppy.limebrokerage.com>
6274
6275	* Released snapshot 6.1a5
6276
6277	* NEWS: Solaris autofs readdir() support, Linux autofs sublink fix
6278
6279	* README: require newer auto-tools, update mailing list address
6280
6281	* README.autofs: major update
6282
6283	* configure.in: version changed to 6.1a5
6284
62852002-02-11  Ion Badulescu  <ionut@moisil.badula.org>
6286
6287	* conf/autofs/autofs_linux.c (autofs_link_mount): don't do a
6288	stat() on the am_link if called from the parent amd, to prevent
6289	deadlocks
6290
6291	* amd/autil.c (am_unmounted): call amfs_link_ops.umount_fs if the
6292	fstype is not link but we have a sublink (Linux autofs needs this)
6293	(am_mounted): call amfs_link_ops.mount_fs if the fstype is not
6294	link but we have a sublink (Linux autofs needs this)
6295
6296	* amd/amfs_auto.c (amfs_auto_bgmount): print the real mountpoint,
6297	not the amd entry point
6298
62992002-02-09  Ion Badulescu  <ionut@moisil.badula.org>
6300
6301	* conf/autofs/autofs_solaris_v2_v3.c (amd_rddirres): new custom
6302	structure for returning the results from readdir_2()
6303	(xdr_amd_putrddirres): renamed from xdr_autofs_putrddirres,
6304	changed to process our internal format (which is essentially the
6305	NFS readdir format)
6306	(xdr_autofs_getrddirres): not needed, deleted
6307	(xdr_amd_rddirres): renamed from xdr_autofs_rddirres, other
6308	changes to handle amd_rddirres instead of autofs_rddirres
6309	(autofs_lookup_2_req): return AUTOFS_NONE instead of
6310	AUTOFS_MOUNT_RQ, to prevent mount storms during ls -F
6311	(autofs_readdir_2_req): implemented
6312	(autofs_readdir_2_free): not needed, deleted
6313	(autofs_program_2): changes from autofs_rddirres to amd_rddirres
6314	(autofs_get_fh): changed initialization of the fh->map member, it
6315	now gets the mountpoint path because it makes it easier to
6316	implement readdir
6317	(autofs_release_fh): put #ifdef HAVE_AUTOFS_ARGS_T_ADDR around
6318	code touching fh->addr
6319	(destroy_autofs_service): new function, deregister the autofs
6320	service with the portmapper on exit
6321
6322	* conf/autofs/autofs_linux.c (autofs_handle_missing): update
6323	statistics
6324	(destroy_autofs_service): new stub
6325
6326	* amd/mapc.c (mapc_find): fixed indentation
6327
6328	* amd/map.c (find_ap_recursive): renamed from find_ap2(), made
6329	static
6330
6331	* amd/amd.h: removed prototype for find_ap2(), added prototype for
6332	destroy_autofs_service()
6333
6334	* amd/amd.c (main): call destroy_autofs_service() before going
6335	down
6336
63372002-02-07  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
6338
6339	* aux/macros/check_field.m4: need also a new version of
6340	AC_CHECK_MEMBERS (plural).
6341
63422002-02-06  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
6343
6344	* aux/macros/check_field.m4: include a fixed version of
6345	AC_CHECK_MEMBER.  g/cc will fail to check a member if the .member
6346	is itself a data structure, because you cannot compare, in C, a
6347	data structure against NULL; you can compare a native data type
6348	(int, char) or a pointer.  Solution: do what I did in my original
6349	member checking macro: try to take the address of the member.  You
6350	can always take the address of anything.
6351
63522002-01-31  Erez Zadok  <ezk@localhost.localdomain>
6353
6354	* remove old '%W%' SCCS IDs from all sources.
6355
63562002-01-21  Ion Badulescu  <ionut@moisil.badula.org>
6357
6358	* conf/mount/mount_linux.c (mount_linux): fix breakage introduced
6359	by the loop device mount support. Linux mount takes a real string
6360	as the last argument, unless the mount type is NFS, NCP, or SMB.
6361
63622002-01-20  Erez Zadok  <ezk@localhost.localdomain>
6363
6364	* hlfsd/hlfsd.h (HLFSD_VERSION): up version of hlfsd to 1.2,
6365	because we made some important changes.
6366
63672002-01-20  Ion Badulescu  <lionut@gonzales.badula.org>
6368
6369	* include/am_utils.h (D_ALL): do not include D_MTAB and D_HRTIME
6370	by default
6371
6372	* NEWS: document latest changes
6373
6374	* amd/map.c (unmount_mp): same fix as for hlfsd, update the
6375	seconds field in mtime because Linux ignores the useconds field
6376
6377	* hlfsd/homedir.c: made some global vars static
6378	(plt_init): remove all trailing '/' chars from root's home;
6379	use root's home, not the username (silly bugfix)
6380
63812002-01-20  Ion Badulescu  <lionut@gonzales.badula.org>
6382
6383	* hlfsd/homedir.c (homedir): don't special case uid 0 as having /
6384	as home; instead use the root account's home
6385	(plt_init): properly initialize root_home from the root account's
6386	home directory, or as "" if root doesn't exist
6387	(plt_reset): free root_home
6388
63892002-01-20  Erez Zadok  <ezk@localhost.localdomain>
6390
6391	* hlfsd/stubs.c (nfsproc_{lookup,getattr}_2_svc): non-SYMTTL code.
6392	Increment seconds, not microseconds (which are ignored by NFS).
6393	Set symlink owner to euid.
6394
6395	* hlfsd/homedir.c (homedir): pass gid to this function, so we can
6396	also change the effective GID of the process writing to the user's
6397	home dir, as well as the group of the hlfsd symlink.
6398	(homedir): run setegid in the right places.
6399
64002002-01-15  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
6401
6402	* scripts/redhat-ctl-amd.in: refer to @sbindir@ not
6403	${prefix}/sbin.
6404
6405	* scripts/ctl-{amd,hlfsd}.in: refer to @sysconfdir@ not
6406	${prefix}/etc.  Bug report from "A Braunsdorf"
6407	<ab@eas.purdue.edu>.
6408
64092002-01-13  Erez Zadok  <ezk@localhost.localdomain>
6410
6411	* configure.in: only check for clock_gettime if --enable-debug was
6412	used.
6413
6414	* aux/macros/opt_debug.m4: define a cache variable to record value
6415	of debug option used.
6416
6417	* libamu/xutil.c (show_time_host_and_name): do not use
6418	clock_gettime unless debugging was compiled in.  This way, if
6419	debugging is not compiled, we don't bother linking with librt,
6420	libpthread, and a whole lot of other libraries that aren't that
6421	necessary (esp. on Linux).
6422
64232002-01-12  Erez Zadok  <ezk@wavy.dyn.optonline.net>
6424
6425	* doc/am-utils.texi (opts Option): document loop option.
6426
6427	* include/am_utils.h: each mounted file system (mntfs) should
6428	optionally store the loop device used in the field mf_loopdev.
6429
6430	* conf/nfs_prot/nfs_prot_linux.h: define HAVE_LOOP_DEVICE and some
6431	loop function extern definitions.  For now this code is here
6432	because we only support loop devices on Linux.
6433
6434	* conf/mount/mount_linux.c: recognize "loop" as a valid iso9660
6435	mount option.
6436	(parse_opts): when skipping over unknown mount options, skip over
6437	"loop" (since it was given in amd map entry), but not over
6438	loop=/dev/loopX, because the latter will go into /etc/mtab.
6439	(do_mount_linux): override actual cdfs mounted  device name
6440	because with loop devices you don't mount the .iso file directly,
6441	but the /dev/loopX device that was setup for it.
6442	(show_loop, is_loop_device, find_unused_loop_device,
6443	setup_loop_device, delete_loop_device): support code for loop
6444	devices.
6445
6446	* amd/ops_cdfs.c (mount_cdfs): pass loop device name to function.
6447	setup loop device before isofs mount, if "loop" option was given,
6448	before actual mount(2).
6449	(cdfs_mount): pass loopdev name to mount_cdfs().
6450	(cdfs_umount): delete/unset loop device after a successful
6451	unmount, if a loop device was used.
6452
6453	* amd/mntfs.c (init_mntfs): initialize mf_loopdev to NULL.
6454
6455	* include/am_compat.h: If loop device (header file) exists, define
6456	mount table option MNTTTAB_OPT_LOOP.
6457
6458	* conf/nfs_prot/nfs_prot_linux.h: hack: define HAVE_LOOP_DEVICE
6459	here until we have a better way to detect /dev/loop devices.
6460
6461	* include/am_defs.h: include <linux/loop.h> if it exists.  Define
6462	LARGEFILE support macros, possibly needed for loop devices.
6463	Redefine dev_t apropriately for loop devices.
6464
6465	* configure.in: check for <linux/loop.h>.
6466
64672002-01-10  Ion Badulescu  <ion@guppy.limebrokerage.com>
6468
6469	* conf/mount/mount_linux.c (mount_linux): tcp _must_ have a timeo
6470	parameter 2 orders of magnitude larger than udp (patch from Trond
6471	Myklebust)
6472
64732002-01-09  Erez Zadok  <ezk@localhost.localdomain>
6474
6475	* aux/macros/linux_headers.m4: properly [quote] a long string in
6476	m4 and use AC_MSG_WARN.
6477
6478	* ALL: put /* comments */ on #else/#endif lines everywhere.
6479
6480	* configure.in, aux/macros/with_addon.m4: due to limitation of
6481	AC_HELP_STRING, pass 2nd arg to AMU_WITH_ADDON, listing name of
6482	package for help string.
6483
6484	* doc/am-utils.texi (FSinfo): fixed various texinfo errors in the
6485	FSinfo section of the manual.
6486	(map_reload_interval Parameter): document new amd.conf global
6487	parameter.
6488
6489	* scripts/amd.conf.5 document new global option
6490	map_reload_interval.  Sort entries for nfs_vers and nfs_proto
6491	alphabetically.
6492
6493	* amd/nfs_start.c (do_select): increment do_mapc_reload's value by
6494	global map_reload_interval value, not by fixed ONE_HOUR.
6495
6496	* amd/amd.c (main): increment do_mapc_reload's value by global
6497	map_reload_interval value, not by fixed ONE_HOUR.
6498
6499	* scripts/amd.conf-sample (map_reload_interval): usage example
6500
6501	* amd/amd.c (init_global_options): initialize map_reload_interval
6502	to 3600 seconds.
6503
6504	* amd/conf.c (gopt_map_reload_interval): support a new global
6505	amd.conf option map_reload_interval, to determine how often (in
6506	seconds) Amd should check if the map source has changed and then
6507	reload it it.  This value was hard-coded to one hour, now it's the
6508	default if not otherwise specified.
6509
6510	* doc/am-utils.texi (plock Parameter): document plock=yes option
6511	as using mlockall(2) if found.
6512
6513	* scripts/amd.conf.5: document -S option as using mlockall(2) if
6514	found.
6515
6516	* include/am_defs.h: include <sys/mman.h> if it exists.
6517
6518	* configure.in: check for mlockall() function.  Check for
6519	sys/mman.h.
6520
6521	* amd/amd.c (main): support mlockall() on systems that have it and
6522	don't have plock(3) for plock=yes.  On systems that have both,
6523	will try plock() first and then mlockall(), until one of them (if
6524	any) succeeds.
6525
65262002-01-09  Erez Zadok  <ezk@whitestar.dyn.optonline.net>
6527
6528	* aux/macros/opt_debug.m4, opt_cppflags.m4, opt_amu_cflags.m4,
6529	with_addon.m4 (ac_upcase): fix help string formatting using
6530	AC_HELP_STRING.
6531
6532	* amd/test1.sh: simple test script for "make check".  Runs "amd
6533	-v".
6534
6535	* amd/Makefile.am (TESTS): add one simple test script, running
6536	"amd -v" and checking its return value.  More tests can be added.
6537
6538	* aux/macros/linux_headers.m4: use AC_MSG_WARN directly.
6539
6540	* aux/macros/*.m4: avoid the cumbersome "changequote" M4 command.
6541	Instead, list bracketed regexp patterns in [[double brackets]].
6542
6543	* aux/macros/header_templates.m4: remove all unnecessary
6544	HAVE_FIELD_* definitions, now that we're using autoconf's new
6545	AC_CHECK_MEMBERS.
6546
6547	* aux/macros/field_mntent_t_mnt_time_string.m4: don't call
6548
6549	* configure.in: use new syntax for AMU_CHECK_FIELD
6550
6551	* aux/macros/check_field.m4: use new and simpler macro
6552	AC_CHECK_MEMBERS.  Change all sources to use HAVE_aggregate.member
6553	instead of HAVE_FIELD_aggregate.member.
6554
6555	* aux/amdgrep: simple utility script to egrep the am-utils sources
6556	for any pattern.
6557
6558	* aux/macros/{check_mnttab_style.m4, check_mount_style.m4,
6559	check_umount_style.m4, check_network_transport_type.m4}: use newer
6560	AC_LIBOBJ macros instead of modifying $LIBOBJS directly
6561
6562	* aux/macros/func_bad_memcmp.m4: redefine to use native
6563	AC_FUNC_MEMCMP, and then define HAVE_BAD_MEMCMP as needed.
6564
6565	* fsinfo/fsi_gram.y, amd/conf_parse.y: indent #pragma command so
6566	pre-ANSI C compilers will ignore it.
6567
6568	* conf/autofs/autofs_linux.c (autofs_link_mount): call s/getpgrp()
6569	correctly depending on whether it takes a void or a 0.
6570
6571	* configure.in: check if s/getpgrp() takes void or a 0.
6572
65732002-01-08  Erez Zadok  <ezk@whitestar.dyn.optonline.net>
6574
6575	* configure.in: use the newer AC_CONFIG_LINKS instead of
6576	AC_LINK_FILES.
6577
6578	* aux/macros/check_autofs_style.m4, check_checkmount_style.m4,
6579	check_mnttab_style.m4, check_mount_style.m4,
6580	check_network_transport_type.m4, check_umount_style.m4,
6581	check_nfs_prot_headers.m4: removed backward compatible code for
6582	pre-autoconf-2.14.
6583
65842002-01-07  Erez Zadok  <ezk@whitestar.dyn.optonline.net>
6585
6586	* doc/Makefile.am: define @SET_MAKE@ for AC_PROG_MAKE_SET macro, since
6587	this Makefile could explicitly chdir to other directories and run
6588	make there.
6589	(install-ps): use ${MAKE} with ${MFLAGS}.
6590
6591	* Makefile.am (EXTRA_DIST_AUX): distribute new package_*.m4 files.
6592	Define @SET_MAKE@ for AC_PROG_MAKE_SET macro, since this Makefile
6593	could explicitly chdir to other directories and run make there.
6594	(install-snapshot): use ${MAKE} ${MFLAGS}, not hardcoded "make".
6595
6596	* configure.in: call AC_PROG_MAKE_SET to check if make program
6597	defines $MAKE variable.
6598
6599	* amd/get_args.c (get_version_string): use new PACKAGE_* macros
6600	and also report the bug-reporting address.
6601
6602	* aux/macros/package_{name,version}.m4, header_templates.m4: using
6603	new PACKAGE_{NAME,VERSION,BUGREPORT} macros.
6604
6605	* aux/macros/name_bugreport.m4: simple macro to print out the
6606	bug-reporting address which was configured in AC_INIT.
6607
6608	* bootstrap: remove new autoconf messages about misuse of
6609	m4_patsubst and m4_regexp (internal GNU M4 macros).
6610
6611	* configure.in: remove old comment above AC_OUTPUT.
6612	Use AC_CONFIG_FILES and AC_OUTPUT separately.
6613	Fix AC_REVISION use.
6614	Add AC_COPYRIGHT.
6615	Use new style for AC_INIT, listing package name, version, and
6616	bug-reporting address.
6617	Call new AMU_PACKAGE_* macros.
6618
6619	* updated copyright year to 2002 on all files
6620
6621	* configure.in: using newly renamed am-utils macros (AMU_*)
6622
6623	* aux/macros/*.m4: renamed ALL am-utils specific macros so they
6624	start with AMU_*, not AC_*.  That way it is easier to distinguish
6625	between macros that come with am-utils and those that are part of
6626	Autoconf or Automake.  It helps to identify those am-utils macros
6627	that can be removed once there is generic support for them in a
6628	future version of Autoconf.
6629
6630	* bootstrap: run automake --copy
6631	remove autom4te.cache dir before rerunning autoconf
6632
66332001-12-13  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
6634
6635	* scripts/amd.conf.5: correct title to section 5, not 8.  Correct
6636	reversed meaning of nfs_proto and nfs_vers parameters.  Typos
6637	reported by Peter Breitenlohner <peb@mppmu.mpg.de>.
6638
66392001-12-02  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
6640
6641	* scripts/ctl-amd.in: run "test" or "[" in front of -x/-f
6642
6643	* scripts/ctl-hlfsd.in: run "test" or "[" in front of -x/-f
6644
66452001-12-02  Ion Badulescu  <ionut@moisil.badula.org>
6646
6647	* hlfsd/homedir.c (plt_print): fix typo (s/plot/plog/) in
6648	non-mkstemp code
6649
6650	* scripts/ctl-amd.in: touch/remove /var/lock/subsys/amd to make RH
6651	happy
6652
6653	* scripts/ctl-hlfsd.in: ditto (for hlfsd)
6654
6655	* conf/mtab/mtab_file.c (rewrite_mtab): fchmod(644) the file we
6656	get from mkstemp(), otherwise samba becomes very unhappy (sigsegv)
6657
6658	* conf/mtab/mtab_mach3.c (rewrite_mtab): ditto
6659
66602001-11-29  Ion Badulescu  <ion@guppy.limebrokerage.com>
6661
6662	* tasks: updated
6663
6664	* NEWS: document the fixed autofs fd leak
6665
6666	* amq/amq.8: better document the -f option
6667
66682001-11-29  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
6669
6670	* libamu/mount_fs.c (mnt_flags): same this as for nolock option
6671	handling, do for maxgrps.
6672
66732001-11-29  Ion Badulescu  <ion@guppy.limebrokerage.com>
6674
6675	* conf/autofs/autofs_linux.c (hash_init): determine the max number
6676	of fd's at runtime, use it to dynamically scale the hash and list
6677	arrays
6678	(autofs_get_fh): sanity check, don't allow a pipe() fd greater
6679	than autofs_max_fds
6680	(autofs_release_fh): close our end of the pipe here (no clue why
6681	or when it got commented out)
6682	(autofs_mounted): set kernelfd to -1 after closing it
6683
66842001-11-28  Philippe Troin  <phil@fifi.org>
6685
6686	* libamu/mount_fs.c (mnt_flags): Drop nolock from generic mount
6687	opts.
6688	(compute_nfs_args): Added nolock handling.
6689	Adapted from an original patch from Avery Pennarun <apenwarr@nit.ca>.
6690
66912001-11-27  Erez Zadok  <ezk@a-hpux11i.fsl.cs.sunysb.edu>
6692
6693	* ported to ia64-hp-hpux11.20 using HP's ANSI/C compiler.
6694	Couldn't use bison/flex because of 32-bit vs. 64-bit binaries
6695	issues.  Had to use HP's own yacc/lex.
6696
66972001-11-26  Erez Zadok  <ezk@a-hpux11i.fsl.cs.sunysb.edu>
6698
6699	* */Makefile.am: don't use $(OBJECTS) directly because it is no
6700	longer automatically defined now that Automake has automatic
6701	dependency tracking (which I turn off).  Instead, hard-code
6702	minimal dependencies on am-utils' header files to depend on
6703	PROG_OBJECTS (where PROG is the program name being built).  This
6704	was discovered by using HP's non-GNU make program.
6705
6706	* amd/nfs_start.c (checkup): cast getpagesize() return val to
6707	long, to avoid conflicts in division of a long by an int (on
6708	hpux11i, with their ANSI/C compiler).
6709
6710 	* INSTALL, doc/am-utils.texi: port updates
6711
6712	* minor new ports: ia64-hp-hpux11.20, i386-unknown-freebsd5.0,
6713	i386-unknown-freebsd4.4, i386-pc-linux-rh7.2,
6714	ia64-unknown-linux-rh7.1.
6715
6716	* include/am_defs.h: actually declare extern definition for
6717	xdr_callmsg() if it doesn't already exist.
6718
6719	* aux/macros/header_templates.m4: declare template for
6720	HAVE_EXTERN_XDR_CALLMSG.
6721
6722	* configure.in: check for extern definition for xdr_callmsg()
6723	because hpux11 has that function but a bad <rpc/xdr.h> header file
6724	that doesn't define it in the right place.
6725
6726	* libamu/mount_fs.c (print_nfs_args): cast ->rdev to u_long b/c
6727	on hpux11 its type is dev_t.
6728
6729	* conf/nfs_prot/nfs_prot_hpux11.h: don't support autofs on hpux11
6730	yet.
6731
67322001-11-16  Erez Zadok  <ezk@fsl-gw.fsl.cs.sunysb.edu>
6733
6734	* buildall (Usage): separate $cnf_flags and $extra_cnf_flags due
6735	to /bin/sh limitations.
6736
6737	* bootstrap (cmd): turn back on --ignore-deps (this Automake may
6738	have problems)
6739
6740	* libamu/xutil.c: remove __attribute__ format_arg statement for
6741	expand_error() because this function, although taking a
6742	printf-like string, does not use it in a printf function; it only
6743	expands a non-printf amd-special syntax %m.
6744
67452001-11-14  Erez Zadok  <ezk@fsl-gw.fsl.cs.sunysb.edu>
6746
6747	* conf/nfs_prot/nfs_prot_linux.h: define KERNEL_VERSION macro
6748	before using it because older Linux systems don't define this
6749	(e.g., Red Hat 4.2)
6750
67512001-11-13  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
6752
6753	* configure.in: convert to using autoconfig 2.52.  Use new macros.
6754	AC_MSG_NOTICE for messages; AH_TOP and AH_BOTTOM to top and bottom
6755	parts of autogenerated config.h.in; increase autoconf
6756	pre-requisite to version 2.50; use AC_DISABLE_SHARED not
6757	AM_DISABLE_SHARED.
6758
6759	* aux/macros/cache_check_dynamic.m4: finally I can use the new
6760	$ECHO_N syntax in macros instead of $ac_n, since I'm using a new
6761	autoconf.  Isn't it nice to be such forward looking and having
6762	placed a comment "XXX: use the next line for autoconf-2.14 and
6763	newer"... :-)
6764
6765	* aux/macros/save_state.m4: highlight message with ***'s
6766
6767	* aux/macros/host_macros.m4: use proper M4 quoting ([], not "")
6768
6769	* config.{guess,sub}: upated from latest prep ftp distributions
6770
6771	* depcomp, missing, mkinstalldirs: upated from latest Automake 1.5
6772
6773	* ltmain.sh: updated from latest Libtool 1.4.2
6774
6775	* bootstrap: finally, new autoconf doesn't print silly "AC_TRY_RUN
6776	called without default to allow cross compiling" warnings.  And,
6777	it only took like 3+ years to fix this.  But, now it has anoter,
6778	albeit less annoying warning (which the manual says to ignore):
6779	"AC_PROG_LEX invoked multiple times".
6780	When autoheader is run, don't treat the "all clear" message
6781	"config.h.in is update" as an error.
6782
6783	* ltconfig: removed. not needed with latest version of libtool
6784
6785	* aux/macros/header_templates.m4: replaces acconfig.h and defines
6786	all CPP macros we use in this package, including their
6787	accompanying C /* comments */.
6788
6789	* acconfig.h: removed. replaced by new autoconf system to generate
6790	header templates using AH_TEMPLATE macros and such.
6791
6792	* aux/macros/msg.m4: removed.  Replaced with new macro
6793	AC_MSG_NOTICE
6794
6795	* Makefile.am (EXTRA_DIST_AUX): remove aux/macros/msg.m4.  Add
6796	aux/macros/header_templates.m4
6797
6798	* configure.in: early, in host_macros.m4, I'm renaming silly linux
6799	$host_os names such as linux-gnu and lignux to plain "linux".
6800	Alas, RMS finally had his way and libtool will NOT recognize
6801	"linux" as a valid system, only "linux-gnu".  Sigh.  Rich, I know
6802	you're responsible to Linux's fame.  Kudos to you and your
6803	cohorts.  But please don't force the rest of us to use those ugly
6804	or long names.  Solution: temporarily name $host_os to "linux-gnu"
6805	before calling the AC_PROG_LIBTOOL macro, then name it back to
6806	"linux".  (That way I don't have to maintain my own version of
6807	ltmain.sh.
6808
6809	* buildall: force running configure -C (to create and use a local
6810	config.cache file).  New default behavior for autoconf is NOT to
6811	use cache files.  Yeah, that's gonna fly real well with am-utils,
6812	with its 700+ automatic tests.
6813
6814	* conf/mtab/mtab_mach3.c (rewrite_mtab): use mkstemp instead of
6815	mktemp, if the former is available.
6816
6817	* conf/mtab/mtab_file.c (rewrite_mtab): use mkstemp instead of
6818	mktemp, if the former is available.
6819
6820	* mk-amd-map/mk-amd-map.c (main): use mkstemp instead of mktemp,
6821	if the former is available.
6822
6823	* aux/macros/check_nfs_socket_connection.m4: AC_DEFINE calls must
6824	be on a separate line, as per new Autoconf manual, to avoid some
6825	Bourne Shell syntactical bizarreness.
6826
68272001-11-13  Erez Zadok  <ezk@a-rh71i.fsl.cs.suunysb.edu>
6828
6829	* amd/amfs_auto.c (amfs_auto_readdir_browsable): cast to u_long,
6830	for IA64 Linux.
6831
68322001-11-12  Ion Badulescu  <ionut@buggy.badula.org>
6833
6834	* libamu/mtab.c (hasmntval): strtol can return a non-NULL pointer
6835	pointing to '\0' on success, so we need to allow for it. This
6836	fixes the problem with rejecting numerical mount options if they
6837	are the last option in the string.
6838
6839	* configure.in: increased library patchlevel
6840
6841	* NEWS: document the parsing bug
6842
68432001-10-29  Ion Badulescu  <ionut@moisil.badula.org>
6844
6845	* configure.in: bumped version up to 6.1a5-pre
6846
6847	* NEWS: fixed speeling mistaike
6848
68492001-10-29  Ion Badulescu  <ionut@moisil.badula.org>
6850
6851	* released snapshot am-utils-6.1a4
6852
68532001-10-26  Ion Badulescu  <ionut@moisil.badula.org>
6854
6855	These changes fix autofs support for sublinks. While it is not
6856	perfect by any means and is hardly better than non-autofs, at
6857	least it works.
6858
6859	* conf/autofs/autofs_solaris_v2_v3.c (autofs_lookup_2_req): don't
6860	reply if the mount is in progress
6861	(autofs_mount_succeeded): handle both delayed lookups and mounts
6862	(autofs_mount_failed): ditto
6863
6864	* amd/amfs_auto.c (amfs_auto_lookup_mntfs): don't dispose of the
6865	original opt_fs if we have a sublink
6866
68672001-10-23  Ion Badulescu  <ionut@moisil.badula.org>
6868
6869	* amd/amfs_auto.c (amfs_auto_lookup_mntfs): fixed silly typo (mf
6870	instead of new_mf) which was causing null pointer error when
6871	sublinks were being used
6872
68732001-10-22  Ion Badulescu  <ionut@moisil.badula.org>
6874
6875	* README.autofs: updated
6876
6877	* NEWS: updated
6878
6879	* INSTALL: updated
6880
6881	* AUTHORS: added myself
6882
6883	* doc/am-utils.texi: updated
6884
6885	* conf/autofs/autofs_solaris_v2_v3.c (xdr_autofs_rddirargs): use
6886	xdr_u_int() and cast things to (int) to appease Solaris 2.7 compile
6887	(autofs_readdir_2_req): cast req->rda_offset to (int), same as
6888	above
6889
68902001-10-22  Ion Badulescu  <ionut@moisil.badula.org>
6891
6892	Autofs direct mounts have been verified to work on Solaris2.[67].
6893
6894	* conf/autofs/autofs_solaris_v2_v3.c (autofs_lookup_2_req):
6895	retrieve the uid and gid from the lookup request
6896	(autofs_mount_2_req): skip the first char in the name (it's a
6897	leading '/') if this is a direct mount
6898
6899	* amd/amfs_direct.c (amfs_direct_ops): use amfs_auto_lookup_child
6900	and amfs_auto_mount_child for amfs_direct's methods
6901
6902	* amd/amfs_auto.c (amfs_auto_lookup_child): don't leak an am_node
6903	if the mntfs lookup fails
6904
69052001-10-21  Ion Badulescu  <ionut@moisil.badula.org>
6906
6907	* include/am_utils.h (AMF_REMOUNT): new flag, marks the node as
6908	pending a remount
6909	(mntfs): new member mf_fsflags, holds a copy of the filesystem's
6910	fs_flags
6911	(am_ops): new member autofs_fs_flags, holds the filesystem's flags
6912	when mounted onto an autofs node; fs_flags renamed to nfs_fs_flags
6913
6914	* conf/autofs/autofs_linux.c (create_autofs_service): turn on
6915	FS_MKMNT for amfs_auto and FS_MBACKGROUND for amfs_link
6916	(autofs_umount_succeeded): don't rmdir the mountpoint if a remount
6917	is needed [lest the access that triggered the remount will fail]
6918
6919	* amd/mntfs.c (init_mntfs): copy the filesystem's nfs_fs_flags
6920	into mf_fsflags on initialization
6921
6922	* amd/autil.c (am_unmounted): start the remounting right away if
6923	the node is marked as needing a remount [fixes the Linux autofs
6924	deadlock when mount/unmount collide]
6925
6926	* amd/amfs_auto.c (amfs_auto_lookup_node): mark the node as
6927	needing a remount if a mount request comes in while we're
6928	unmounting it
6929	(amfs_auto_lookup_mntfs): copy the filesystem's autofs_fs_flags
6930	into mf_fsflags if this is an autofs node
6931
6932	* amd/amfs_*.c, amd/ops_*.c: added initialization for the new
6933	autofs_fs_flags member of am_ops
6934
69352001-10-20  Ion Badulescu  <ionut@moisil.badula.org>
6936
6937	With these changes, Solaris 2.[67] autofs support is finally
6938	functional!
6939
6940	* conf/autofs/autofs_solaris_v2_v3.c (autofs_readdir_2_req): stub
6941	(autofs_readdir_2_free, xdr_autofs_rddirargs, xdr_autofs_putrddirres,
6942	xdr_autofs_getrddirres, xdr_autofs_rddirres): new functions
6943	(autofs_lookup_2_req): do an actual lookup here, and tell the
6944	kernel to create a symlink if necessary
6945	(autofs_mount_2_req): no need to am_autofs_data
6946	(autofs_program_2): enable AUTOFS_READDIR
6947	(autofs_link_mount): no code needed here
6948	(autofs_link_umount): return success
6949	(autofs_mount_succeeded): lstat real mount points; don't mark
6950	symlinks as NOTIMEOUT
6951
6952	* amd/mntfs.c (init_mntfs): mf_dev and mf_rdev don't exist anymore
6953
6954	* amd/map.c (init_map): init am_dev and am_rdev to -1
6955	(free_map): free am_mfarray and all mntfs's listed
6956
6957	* amd/autil.c (mf_mounted): move the lstat of the node to the
6958	autofs-specific code
6959
6960	* amd/amfs_link.c (amfs_link_ops): don't background symlink creation
6961
69622001-10-18  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6963
6964	* aux/macros/os_cflags.m4 (irix6*): Enforce N32 ABI/mips3 ISA with cc.
6965	* BUGS: Explain this.
6966
69672001-10-02  Erez Zadok  <ezk@agora.fsl.cs.sunysb.edu>
6968
6969	* doc/am-utils.texi (redhat-ctl-amd): document new script.
6970
6971	* scripts/Makefile.am: build redhat-ctl-amd but do not install it.
6972
6973	* scripts/redhat-ctl-amd.in: new script, useful to correctly
6974	control Amd on Red Hat Linux systems.  Script adapted from ctl-amd
6975	and Red Hat's own rc.d script.
6976
69772001-10-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6978
6979	* conf/nfs_prot/nfs_prot_osf5.h: Renamed from nfs_prot_osf5_1.h.
6980	(MNT2_NFS_OPT_AUTO): Disable.
6981	* Makefile.am (EXTRA_DIST_CONF): Reflect new name.
6982	* aux/macros/check_nfs_prot_headers.m4: Use this file for all
6983	Tru64 UNIX V5 and up releases.
6984
69852001-09-24  Ion Badulescu  <ionut@moisil.badula.org>
6986
6987	* include/mount_headers1.h (MFS): define as 1 instead of nothing,
6988	to fix compile problems on OS X (patch from Ahmon Dancy)
6989
6990	* aux/macros/try_compile_anyfs.m4 (MFS): ditto
6991
69922001-08-13  Erez Zadok  <ezk@fsl-gw.fsl.cs.sunysb.edu>
6993
6994	* doc/am-utils.texi (in_network Selector Variable): document
6995	expanded syntax
6996
6997	* libamu/wire.c (is_network_member): support for network/netmask
6998	as well as network/bits syntax in in_network()
6999
70002001-08-11  Erez Zadok  <ezk@a-linux64.fsl.cs.sunysb.edu>
7001
7002	* amq/amq.c (show_mti): print full four digits for year, and print
7003	it in MM/DD/YYYY format, not in YY/MM/DD format.
7004
70052001-08-11  Ion Badulescu  <lionut@gonzales.badula.org>
7006
7007	* conf/autofs/autofs_solaris_v2_v3.c (autofs_lookup_2_req):
7008	initial attempt to do something useful -- but commented out for now
7009	(autofs_link_mount): create an action structure with a link
7010	request and pass it up
7011	(autofs_mount_2_req): pass the link request to the kernel
7012	(autofs_free_data): new helper function
7013
7014	* conf/autofs/autofs_linux.h: added definition for autofs_data_t
7015
7016	* conf/autofs/autofs_solaris_v2_v3.h: ditto
7017
7018	* amd/map.c (init_map): initialize am_autofs_data
7019	(free_map): call the autofs cleanup function if necessary
7020
7021	* include/am_utils.h (am_node): added private data and cleanup
7022	function for autofs
7023
7024	* tasks: removed some obsolete entries
7025
70262001-08-11  Erez Zadok  <ezk@a-solaris8.fsl.cs.sunysb.edu>
7027
7028	* amd/map.c (free_map_if_success): run autofs_umount_failed() only
7029	if this mount node is of type autofs.
7030
70312001-08-11  Ion Badulescu  <lionut@gonzales.badula.org>
7032
7033	* amd/amd.h: removed mf_array from struct continuation (moved into
7034	am_node)
7035
7036	* include/am_utils.h: removed VLOOK_LOOKUP; renamed vlookuppn to
7037	vlookup_child; added vmount_child; added mount_child to the fs_ops
7038	API; added prototypes for amfs_auto_mount_child and
7039	amfs_error_mount_child
7040
7041	* amd/map.c (init_map): initialize am_mfarray to 0
7042
7043	* amd/amfs_*, amd/ops_*: new API function mount_child, old API
7044	function lookuppn renamed to lookup_child
7045
7046	* amd/amfs_auto.c: renamed amfs_auto_lookuppn1 to
7047	amfs_auto_lookup_node; renamed amfs_auto_lookuppn2 to
7048	amfs_auto_lookup_mntfs; renamed amfs_auto_lookuppn3 to
7049	amfs_auto_mount_child; moved the freeing of the error mntfs in the
7050	newly allocated am_node from lookup_mntfs to mount_child; make
7051	sure lookup_child returns a negative error if the node needs to be
7052	mounted; removed the call to lookuppn3 from lookup_child
7053
7054	* amd/amfs_error.c: added stub implementations of
7055	amfs_error_lookup_child and amfs_error_mount_child
7056
7057	* amd/amfs_direct.c, amd/amfs_union.c, amd/map.c, amd/nfs_subr.c,
7058	conf/autofs/autofs_linux.c, conf/autofs/autofs_solaris_v2_v3.c:
7059	call both lookup_child and mount_child, instead of the old
7060	lookuppn API method
7061
70622001-07-19  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7063
7064	* amd/get_args.c (get_args): a better way to handle GNU and
7065	non-GNU getopts without strdup-ing the getopt string.
7066
70672001-07-04  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7068
7069	* amd/info_ldap.c (amu_ldap_rebind): The first time you called
7070	amu_ldap_init, aldh->ldap is not set.  So when amu_ldap_rebind is
7071	called, this function is absolutely sure to return 0.  Then
7072	amu_ldap_init return 0 without having opened any LDAP connection.
7073	This is not the correct behavior.
7074	(get_ldap_timestamp, amu_ldap_search): error to free an object
7075	("entry") that is automatically freed by the library.  Patch from
7076	Sebastien Bahloul <sebastien.bahloul@mangoosta.fr>.
7077
70782001-07-19  Ion Badulescu  <ionut@moisil.badula.org>
7079
7080	* AUTHORS (variables): added Philippe Troin
7081
7082	* Makefile.am (EXTRA_DIST): added bootstrap
7083
7084	* include/am_compat.h (xfs_args_t): define as u_int if the
7085	filesystem is supported but we can't autodetect the type for
7086	xfs_args_t. This allows Linux to mount xfs filesystems.
7087
70882001-07-12  Philippe Troin  <phil@fifi.org>
7089
7090	* doc/am-utils.texi: Added @dircategory Administration.
7091
70922001-07-12  Philippe Troin  <phil@fifi.org>
7093
7094	* aux/macros/with_addon.m4: Created. Wrapper around AC_ARG_WITH
7095	with only the `yes' and `no' as possible answers.
7096
7097	* configure.in: Added support for disabling LDAP and HESIOD even
7098	if the supporting libraries are found.
7099
7100	* Makefile.am (EXTRA_DIST_AUX): Added with_addon.m4 macro file.
7101
71022001-07-12  Philippe Troin  <phil@fifi.org>
7103
7104	* include/am_compat.h: Removed forced definition of MNTTAB_OPT_DEV
7105	if MNT2_GEN_OPT_NODEV was found. Actually, the dev= (SVR4) options
7106	and the linux nodev options are different beasts.
7107
7108	* conf/mount/mount_linux.c (opt_map): Removed the MNTTAB_OPT_DEV
7109	entry (not really necessary on linux).
7110
71112001-07-12  Philippe Troin  <phil@fifi.org>
7112
7113	* amd/get_args.c (get_args): Prepend "+" to the getopt string if
7114	HAVE_GNU_GETOPT to avoid getting all options (even the ones after
7115	the first non-option argument) slurped in by GNU getopt.
7116
7117	* aux/macros/check_gnu_getopt.m4: Created. Defines HAVE_GNU_GETOPT
7118	if GNU/glibc getopt implementation is detected.
7119
7120	* configure.in: Added call to AC_CHECK_GNU_GETOPT.
7121
7122	* acconfig.h: Document HAVE_GNU_GETOPT.
7123
7124	* Makefile.am (EXTRA_DIST_AUX): Added check_gnu_getopt.m4 macro file.
7125
71262001-06-25  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7127
7128	* LSM.am-utils, NEWS, README.y2k, ChangeLog: make sure all
7129	am-utils URL references use www.am-utils.org, not the columbia
7130	URL.
7131
71322001-06-08  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7133
7134	* conf/transp/transp_sockets.c (create_nfs_service): cast to
7135	u_long to ensure clean compile on freebsd5 and bsdi2.
7136
71372001-05-23  Ion Badulescu  <ionut@moisil.badula.org>
7138
7139	WARNING: WORK IN PROGRESS
7140
7141	It works for me on Linux (both autofs and nfs mounts), for nfs and
7142	link, but I won't make any guarantees outside those.
7143
7144	* amd/mntfs.c (find_mntfs): reuse the mntfs only if both the mount
7145	point and the device/fileserver are the same. This is an important
7146	change of philosophy, watch out for memory leaks!
7147
7148	* amd/map.c (get_ap_child): helper function for
7149	amfs_auto_lookuppn, creates a new am_node for key fname, inits it,
7150	and inserts it into all necessary structures
7151
7152	* amd/amfs_auto.c (free_continuation): free unused mntfs's; don't
7153	free any of the removed fields
7154	(amfs_auto_lookuppn, amfs_auto_bgmount): split lookuppn into three
7155	subfunctions, including some code stolen from bgmount; lookuppn
7156	now generates an array of possible mntfs to try mounting, and
7157	bgmount will actually try to mount each of them.
7158	(amfs_auto_lookuppn[123]): the three new subfunctions for lookuppn
7159	(amfs_parse_defaults): new helper function for lookuppn
7160
71612001-05-19  Erez Zadok  <ezk@kosh.dyn.optonline.net>
7162
7163	* conf/mount/mount_linux.c: typo: added comma after '0' element.
7164
71652001-05-19  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
7166
7167	* conf/autofs/autofs_linux.c (AUTOFS_MAX_VERSION): allow using
7168	autofs-v4 again
7169	(autofs_get_opts): don't pass pgrp, the kernel will get it
7170	automatically anyway, not to mention that we were passing bogus
7171	data if amd was not daemonized.
7172
7173	* conf/mount/mount_linux.c (linux_nfs_error): don't special case
7174	the 0 result, just put it into the translation list
7175
71762001-05-19  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
7177
7178	* conf/mount/mount_linux.c (linux_nfs_error): don't report success
7179	(0) as error (NE_IO)!
7180
71812001-05-18  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
7182
7183	* amd/amfs_host.c (amfs_host_mount): don't fail the mount if at
7184	least one share is already mounted
7185
71862001-05-17  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
7187
7188	* libamu/util.c (str3cat): updated comment
7189
7190	* include/am_utils.h: added VLOOK_LOOKUP and FS_DIRECT
7191
7192	* conf/autofs/autofs_linux.c (autofs_get_fh): removed obsolete comment
7193	(autofs_mounted): disable autofs support for host f/s if version < 4
7194	(create_autofs_service): turn on FS_MKMNT on auto f/s if using autofs
7195	(autofs_umount_succeeded): use rmdirs instead of rmdir
7196	(autofs_mount_failed): ditto
7197
7198	* amd/opts.c (expand_op): align the debugging messages
7199
7200	* amd/map.c (mount_auto_node): use am_node *mp instead of casting
7201	the void *arg; update the comment
7202
7203	* amd/autil.c (am_mounted): check the FS_DIRECT flag instead of
7204	comparing to &amfs_direct_ops
7205	(mount_node): ifs_mount doesn't exist, make note of it in the
7206	comment
7207
7208	* amd/amfs_direct.c (amfs_direct_ops): added FS_DIRECT to fs_flags
7209
7210	* amd/amfs_auto.c (amfs_auto_mount): removed the autofs hack to
7211	create the mountpoint directory for auto f/s; it is now handled in
7212	autofs_linux.c
7213	(amfs_auto_bgmount): renamed the mpe parameter to mp_error;
7214	renamed dont_retry to retry and reverted its meaning as well;
7215	moved the mp variable up one scope and made use of it throughout
7216	the function;
7217	(amfs_auto_readdir): whitespace
7218	(amfs_auto_readdir_browsable): whitespace, also some debugging
7219
7220	* amd/am_ops.c (vops): updated a comment
7221
7222	* .cvsignore: added A.i386-pc-linux-rh7.[01]
7223
72242001-05-01  Ion Badulescu  <ionut@gonzales.dev.hydraweb.com>
7225
7226	* conf/mount/mount_linux.c: fixed stupid error in the linux
7227	nfs_errormap[], which was mapping ENOENT to success!!!
7228
72292001-04-28  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
7230
7231	* BUGS: added info about the direct mount problems on Linux and
7232	about the kernel patches on www.am-utils.org.
7233
7234	* conf/autofs/autofs_solaris_v2_v3.c (autofs_unmount_2_req):
7235	removed obsolete comment
7236
7237	* amd/autil.c (forcibly_timeout_mp): always log a message when the
7238	forced unmount request is ignored
7239	(mf_mounted): don't lstat unless this is an autofs mount point,
7240	lest we deadlock
7241
7242	* amd/amfs_auto.c (amfs_auto_bgmount): don't gratuitously add
7243	MFF_MKMNT to the flags, it causes deadlocks later on when
7244	unmounting
7245
72462001-04-14  Erez Zadok  <ezk@whitestar.dyn.optonline.net>
7247
7248	* COPYING: update copyright year
7249
7250	* amd/amfs_auto.c, amd/amfs_host.c, amd/amfs_nfsx.c,
7251	amd/amfs_toplvl.c, amd/amfs_union.c, amd/conf.c, amd/info_nis.c,
7252	amd/info_nisplus.c, amd/mapc.c, amd/nfs_subr.c, amd/ops_nfs.c,
7253	amd/rpc_fwd.c, amd/srvr_amfs_auto.c, amd/srvr_nfs.c,
7254	conf/autofs/autofs_solaris_v1.c, conf/mtab/mtab_file.c,
7255	conf/mtab/mtab_isc3.c, conf/mtab/mtab_svr4.c,
7256	conf/transp/transp_sockets.c, conf/transp/transp_tli.c,
7257	libamu/mount_fs.c, libamu/mtab.c: rewritten various dlog/plog
7258	messages for clarity, to avoid duplication, to better recognize
7259	what the message means and where it ran, and to fix typos.
7260
7261	* amd/nfs_subr.c (nfsproc_lookup_2_svc): moved trace message of
7262	function's name to the beginning of the function, before any other
7263	messages are logged.
7264
72652001-04-14  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
7266
7267	* conf/mount/mount_linux.c (do_mount_linux): removed plog() of
7268	binary data
7269
72702001-04-05  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
7271
7272	* include/am_defs.h: define NFSCLIENT, NFS, PCFS, LOFS, RFS,
7273	MSDOSFS, MFS and CD9660 to 1, so that both #if FOO and #ifdef FOO
7274	work (needed for MacOS X); removed duplicate definition of NFS.
7275
72762001-03-29  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
7277
7278	* amd/amd.h, amd/amfs_auto.c, amd/conf.c,
7279	doc/am-utils.texi,
7280	scripts/amd.conf-sample, scripts/amd.conf.5:
7281	renamed selectors_on_default to selectors_in_defaults,
7282	kept the former as a deprecated option;
7283	renamed CFM_ENABLE_DEFAULT_SELECTORS to CFM_SELECTORS_IN_DEFAULTS;
7284	renamed gopt_selectors_on_default() to gopt_selectors_in_defaults()
7285
72862001-03-19  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
7287
7288	* amd/amfs_toplvl.c, amd/amfs_auto.c, amd/srvr_nfs.c,
7289	include/am_utils.h: compile fixes for --enable-debug=no
7290
72912001-03-15  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
7292
7293	* NEWS: updated
7294
7295	* README.autofs: updated
7296
7297	* conf/mount/mount_linux.c (linux_version_code): export the fn
7298
7299	* conf/nfs_prot/nfs_prot_linux.h: ditto
7300
7301	* conf/autofs/autofs_linux.c (create_autofs_service): verify the
7302	kernel version here, and turn off bind_works if the kernel is
7303	older than 2.4.0.
7304	(autofs_link_mount): don't touch bind_works here, it's useless
7305	b/c we're in a child process; remove the mountpoint directory if
7306	the bind mount fails
7307
7308	* amd/opts.c (eval_fs_opts): changed some annoying debugging plogs
7309	into dlogs
7310
7311	* conf/autofs/autofs_linux.c (autofs_link_mount): zero out the
7312	mntent struct before initializing it
7313
73142001-03-14  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
7315
7316	* conf/mount/mount_linux.c (parse_opts): added support for lofs
7317	(mount_linux): support lofs through bind mounts and/or FiST lofs
7318
7319	* scripts/ctl-hlfsd.in: search for /var/spool/mail in addition to
7320	/var/mail and /usr/spool/mail
7321
7322	* conf/nfs_prot/nfs_prot_linux.h (MS_BIND): add define for it, if
7323	kernel is newer than 2.4.0
7324	(MNTTYPE_LOFS): ditto
7325
7326	* conf/autofs/autofs_solaris_v2_v3.c (autofs_link_umount): new stub
7327	(autofs_lookup_failed): removed stub
7328
7329	* conf/autofs/autofs_linux.c (autofs_lookup_failed): moved up in
7330	the file, made static;
7331	(autofs_link_mount): activate MNT2_GEN_OPT_BIND code; use stat()
7332	and friends to determine if bind mounts can be used and to trigger
7333	further cascading mounts; return proper error codes
7334	(autofs_link_umount): distinguish between symlinks and bind mounts
7335	and handle both correctly
7336	(autofs_umount_succeeded): remove call to autofs_link_umount()
7337
7338	* amd/map.c (umount_exported): try to unmount all mount points on
7339	an autofs filesystem; this isn't really needed and will be removed
7340	when we start handling restarting autofs mounts
7341
7342	* amd/amfs_link.c (amfs_link_[u]mount): call autofs_link_[u]mount,
7343	if necessary
7344
7345	* amd/amfs_auto.c (amfs_auto_bgmount): fixed a bug that was
7346	causing the wrong mntfs to be selected when using autofs; removed
7347	call to autofs_link_mount() (moved where it belongs, in
7348	amfs_link.c)
7349
7350	* amd/amfs_link.c: added FS_MBACKGROUND to fs flags -- cleaner
7351	solution is needed, because background mounting is only necessary
7352	for linux autofs + bind mounts
7353
7354	* amd/amd.h: removed prototype for autofs_lookup_failed (internal
7355	static function for linux autofs); added prototype for
7356	autofs_link_umount
7357
7358	* configure.in: bump up library patchlevel
7359
73602001-02-28  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
7361
7362	* aux/macros/check_mount_trap.m4,
7363	aux/macros/check_nfs_fh_dref.m4,
7364	aux/macros/check_nfs_prot_headers.m4,
7365	aux/macros/type_recvfrom_fromlen.m4,
7366	aux/macros/type_yp_order_outorder.m4:
7367	Fixed newer freebsd's fh type, expanded more aix3, osf2, hpux9 to
7368	aix[1-3], osf[1-3] and hpux[6-9].
7369
73702001-02-28  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7371
7372	* check_mount_style.m4, check_mount_trap.m4,
7373	check_network_transport_type.m4, check_nfs_fh_dref.m4,
7374	check_nfs_prot_headers.m4, check_nfs_sa_dref.m4,
7375	check_nfs_socket_connection.m4, os_cflags.m4,
7376	type_yp_order_outorder.m4: small fixes to Ion's cleanup, and more
7377	cleanup (use [[0-1]] instead of M4 changequote commands).
7378
7379	* Makefile.am: removed unused conf/trap/trap_hpux11.h
7380
73812001-02-27  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
7382
7383	* aux/macros/check_network_transport_type.m4,
7384	aux/macros/check_mount_style.m4,
7385	aux/macros/check_mount_trap.m4,
7386	aux/macros/check_network_transport_type.m4,
7387	aux/macros/check_nfs_fh_dref.m4,
7388	aux/macros/check_nfs_prot_headers.m4,
7389	aux/macros/check_nfs_sa_dref.m4,
7390	aux/macros/check_nfs_socket_connection.m4,
7391	aux/macros/os_cflags.m4,
7392	aux/macros/type_auth_create_gidlist.m4,
7393	aux/macros/type_recvfrom_fromlen.m4,
7394	aux/macros/type_yp_order_outorder.m4:
7395	Reworked the scripts, so that a new _unknown_ version of a known OS
7396	will use the option for the newest _known_ version of that OS. For
7397	example, when freebsd6 comes out, it will use the stuff for
7398	freebsd5, not the stuff for freebsd2. This makes configure more
7399	likely to succeed on new systems/versions.
7400
7401	* Makefile.am (EXTRA_DIST_AUX): added check_autofs_style.m4 (grr)
7402
74032001-02-24  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7404
7405	* Makefile.am (install-snapshot): use a different symlink target
7406	for the experimental snapshots.
7407
74082001-02-23  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7409
7410	* Makefile.am (EXTRA_DIST_CONF): include nfs_prot_darwin.h in
7411	distributions.
7412
74132001-02-22  Erez Zadok  <ezk@earth.cs.columbia.edu>
7414
7415	* released snapshot am-utils-6.1a3
7416
7417	* amd/Makefile.am (EXTRA_amd_SOURCES): don't forget to distribute
7418	get_args.c
7419
74202001-02-21  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7421
7422	* libamu/mtab.c: added the functions hasmnteq and haseq to
7423	ease checks for non-numeric values in opt=value strings.
7424	Recoded hasmntval to qualify input as numeric, allow hex and
7425	octal strings on rhs of =, and log when the value is missing
7426	or invalid.
7427
7428	* conf/mount/mount_linux.c: revised mount_linux to use new
7429	hasmnteq function to extract type of non-nfs mounts, and added
7430	a log message to catch possible failure of strdup.
7431
7432	* amd/am_ops.c: revised merge_ops to use new haseq function
7433
7434	* amd/srvr_nfs.c: revised find_nfs_srvr to use hasmnteq to
7435	discover protocol setting.
7436
7437	* include/am_utils.h: added function prototypes for hasmnteq
7438	and haseq
7439
74402001-02-19  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
7441
7442	* include/mount_headers2.h (_LINUX_NFS3_H): define it, to avoid
7443	pulling in unwanted declarations from 2.2.19pre and 2.4.1ac
7444
7445	* include/am_defs.h (_LINUX_NFS3_H): ditto
7446
7447	* conf/nfs_prot/nfs_prot_linux.h: whitespace, comments
7448
74492001-02-19  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7450
7451	* aux/macros/check_fs_mntent.m4 (ac_safe): remove debugging "echo"
7452	command.
7453
74542001-02-18  Erez Zadok  <ezk@earth.cs.columbia.edu>
7455
7456	* aux/macros/mount_headers.m4, include/mount_headers[12].h: split
7457	mount_headers.h in two because one relative header (nfs_prot.h)
7458	file cannot be included inside another from the start directory of
7459	the first (it's relative to the directory of the first).
7460
74612001-02-09  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
7462
7463	* AUTHORS: added Ahmon Dancy <dancy@franz.com>
7464
7465	* (all): added Darwin/Rhapsody/Apple OS X support from Ahmon Dancy
7466
7467	* aux/macros/mount_headers.m4: moved all the C code into a
7468	separate file, include/mount_headers.h; the effect is that
7469	configure goes down in size by a factor of 2.5!
7470
7471	* include/mount_headers.h: new file, with C code from
7472	aux/macros/mount_headers.m4
7473
74742001-02-01  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
7475
7476	* conf/mount/mount_linux.c: made linux_nfs_error() more robust.
7477
74782001-02-01  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7479
7480	* released snapshot am-utils-6.1a2
7481
7482	* updated ltmain.sh and ltconfig from latest stable version of
7483	libtool-1.3.5
7484
74852001-02-01  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
7486
7487	* conf/nfs_prot/nfs_prot_linux.h (nfs_error): moved the definition
7488	of nfs_error here, from mount_linux.c, so that it can actually be
7489	used.
7490
7491	* conf/mount/mount_linux.c: added unused errno 41 to the
7492	nfs_errormap array, lest the following errno's get shifted up by
7493	one!
7494
7495Sat Jan 13 00:04:38 2001  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7496
7497	* amd/amd.h (autofs_lookuppn): Fixup whitespace.
7498	* amd/amfs_auto.c (amfs_auto_bgmount): Likewise.
7499	* amd/amfs_error.c: (amfs_error_match): Likewise.
7500	* amd/amfs_host.c (fetch_fhandle): Fixup whitespace.  Remove
7501	unnecessary temporary variable.
7502	* amd/info_file.c (read_line): Likewise.
7503	(search_or_reload_file): Likewise.
7504	* amd/info_ldap.c (get_ldap_timestamp): Likewise.
7505	* amd/map.c (get_root_ap): Likewise.
7506	* amd/nfs_prot_svc.c: Likewise.
7507	* amd/ops_TEMPLATE.c (foofs_match, foofs_lookuppn,
7508	foofs_readlink, foofs_ffserver): Likewise.
7509	* amd/ops_autofs.c (autofs_bgmount): Likewise.
7510	* amd/ops_lofs.c (lofs_match): Likewise.
7511	* amd/ops_nfs.c (got_nfs_fh): Fixup whitespace.
7512	* amd/ops_xfs.c (xfs_match): Likewise.
7513	* amd/srvr_amfs_auto.c (srvrlog): Line break.
7514	* amd/srvr_nfs.c (got_portmap, call_portmap, nfs_pinged,
7515	nfs_srvr_port): Fixup whitespace.
7516	* conf/nfs_prot/nfs_prot_bsdi2.h: Likewise.
7517	* conf/nfs_prot/nfs_prot_hpux.h: Likewise.
7518	* conf/nfs_prot/nfs_prot_hpux11.h: Likewise.
7519	* conf/nfs_prot/nfs_prot_irix5.h: Likewise.
7520	* conf/nfs_prot/nfs_prot_irix6.h: Likewise.
7521	* conf/nfs_prot/nfs_prot_nextstep.h: Likewise.
7522	* conf/nfs_prot/nfs_prot_osf2.h: Likewise.
7523	* conf/nfs_prot/nfs_prot_osf4.h: Likewise.
7524	* conf/nfs_prot/nfs_prot_osf5_1.h: Likewise.
7525	* conf/nfs_prot/nfs_prot_sunos3.h: Likewise.
7526	* conf/nfs_prot/nfs_prot_sunos4.h: Likewise.
7527	* conf/nfs_prot/nfs_prot_ultrix.h: Likewise.
7528	* conf/transp/transp_tli.c (get_mount_client): Likewise.
7529	* hlfsd/nfs_prot_svc.c: Likewise.
7530	* include/am_defs.h (sys_errlist): Likewise.
7531	* include/am_utils.h (am_get_progname, am_get_hostname,
7532	amq_program_1): Likewise.
7533	(nfsxprt): Moved declaration.
7534
7535Fri Jan 12 23:31:45 2001  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7536
7537	Removed support for amq -M.
7538
7539	* acconfig.h (ENABLE_AMQ_MOUNT): Removed.
7540	* aux/macros/opt_amq_mount.m4: Removed.
7541	* Makefile.am (EXTRA_DIST_AUX): Don't distribute
7542	opt_amq_mount.m4.
7543	* configure.in (AC_OPT_AMQ_MOUNT): Removed invocation.
7544
7545	* amd/amq_subr.c (ok_security, amqproc_mount_1_svc): Removed.
7546	* amd/amq_svc.c (amq_program_1): Removed amq -M support.
7547	* amq/amq.c (mount_map): Removed.
7548	(main): Removed -M option handling.
7549	Removed transport-type specific CLIENT creation.
7550	(get_secure_amd_client, amq_bind_resv_port, privsock): Removed.
7551
7552	* amq/amq.8: Removed -M documentation.
7553	* doc/am-utils.texi (Top-level Filesystem): Removed amq -M
7554	reference, but retain comment on mount -t amd.
7555	(Controlling Amd): Likewise.
7556
7557	* tasks: Removed this task.
7558
7559Fri Jan 12 23:18:26 2001  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7560
7561	* conf/autofs/autofs_*.c: Bump copyright year to 2001.
7562	* hlfsd/hlfsd.h (HLFSD_VERSION): Likewise.
7563
7564	* aux/macros/check_autofs_style.m4: Renamed solaris[12] styles to
7565	solaris_v1, solaris_v2_v3 to reflect that these are AutoFS
7566	protocol version numbers, not solaris versions.
7567	* conf/autofs/autofs_solaris[12].[ch]: Renamed to
7568	autofs_solaris_{v1, 2_v3}.[ch] to reflect this.
7569	* Makefile.am (EXTRA_DIST_CONF): Likewise.
7570
7571	* aux/macros/check_autofs_style.m4: Use solaris2 style for both
7572	versions 2 and 3 of the AutoFS protocol.
7573
7574	Handle missing AUTOFS_POSTUNMOUNT, AUTOFS_POSTMOUNT (unnecessary
7575	with Solaris 8 mntfs).
7576
7577	* conf/autofs/autofs_solaris2.c (xdr_postumntreq, xdr_postumntres,
7578	xdr_postmountreq, xdr_postmountres, autofs_postunmount_2_req,
7579	autofs_postmount_2_req ): Don't define for version 3.
7580	(autofs_program_2): Don't handle AUTOFS_POSTUNMOUNT,
7581	AUTOFS_POSTMOUNT if missing.
7582
7583	* conf/nfs_prot/nfs_prot_sunos5_8.h: Enable AutoFS support.
7584
7585	* aux/macros/check_autofs_style.m4: Use empty autofs_default.[ch]
7586	files on systems without existing autofs port.
7587	* conf/autofs/autofs_default.[ch]: New files, empty.
7588	* Makefile.am (EXTRA_DIST_CONF): Distribute them.
7589	* INSTALL: With this change, Solaris 8 and Tru64 5.1 compile and
7590	link.
7591
75922001-01-12  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7593
7594	* Makefile.am (EXTRA_DIST): distribute new LDAP files.
7595
7596	* README.ldap, ldap-id.txt, ldap-id.ms: LDAP status information,
7597	proposed Schema, and internet draft.
7598
7599Fri Jan 12 22:27:07 2001  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7600
7601	* Support Tru64 UNIX V5.1:
7602
7603	* conf/nfs_prot/nfs_prot_osf5_1.h: New file.
7604
7605	* Makefile.am (EXTRA_DIST_CONF): Distribute it.
7606
7607	* aux/macros/check_nfs_prot_headers.m4: Tru64 UNIX V5.1 has
7608	AutoFS, need to disable it until a port exists.
7609
7610	* INSTALL, doc/am-utils.texi (Supported Platforms): Mention new
7611	minor port.
7612
76132001-01-09  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7614
7615	* ALL: bump copyright year to 2001.
7616
76172001-01-05  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7618
7619	* acconfig.h: correct comments for NODEV/NONDEV mount options
7620
7621Fri Jan  5 05:12:02 2001  Erez Zadok  <ezk@subzero.cs.columbia.edu>
7622
7623	* libamu/xdr_func.c: removed ugly casts to "groups*", now that
7624	irix6's nfs_prot.h is fixed.
7625
7626	* conf/nfs_prot/nfs_prot_irix6.h: copied relevant parts of
7627	<rpcsvc/mount.h> here so we don't have to include this header.
7628
76292001-01-04  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7630
7631	* conf/nfs_prot/nfs_prot_irix6.h: redefine "groups" typedef to
7632	struct groups, not the pointer to this struct.
7633
7634	* include/am_xdr_func.h: prototype should take "groups *" as 2nd
7635	arg.
7636
7637	* libamu/xdr_func.c (xdr_groupnode, xdr_exportnode): change
7638	casting of second arg of xdr_groups to "groups *".  It's only
7639	needed for irix6, due to problems with xdr_groups on that platform.
7640	(xdr_groups): prototype should take "groups *" as 2nd arg.
7641
7642	* conf/nfs_prot/nfs_prot_aix*.h: correct xdr_groups extern
7643	definition.  Report from Ahmon Dancy <dancy@franz.com>.
7644
76452000-12-06  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
7646
7647	* include/am_defs.h: force non-inclusion of <linux/fs.h> via
7648	<linux/auto_fs.h>
7649
7650	* conf/autofs/autofs_linux.c (autofs_mounted): rename
7651	AUTOFS_MIN_PROTO_VERSION to AUTOFS_MIN_VERSION (leftover from
7652	previous commit)
7653
7654	* configure.in: fixed libtool version
7655
76562000-12-02  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
7657
7658	* doc/am-utils.texi (opts Option): document lock/nolock
7659
76602000-12-02  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
7661
7662	* conf/autofs/autofs_linux.h: added struct autofs_pending_mount;
7663	modified autofs_fh_t to have a linked list of autofs_pending_mount;
7664	added some support for autofs4
7665
7666	* conf/autofs/autofs_linux.c: use a linked list for pending
7667	request, to allow for handling multiple simultaneous request;
7668	incipient non-functional support for autofs4; incipient
7669	non-functional support for bind-mounting
7670
7671	* amd/amd.c (main): print a warning if PROCLOCK is requested but
7672	the O/S doesn't support it
7673
7674	* libamu/mount_fs.c (mnt_flags): allow the use of the "nolock"
7675	option
7676
7677	* include/am_defs.h: don't include <linux/fs.h> on a glibc2
7678	system; include <linux/auto_fs4.h> if it exists, instead of
7679	<linux/auto_fs.h>
7680
7681	* include/am_compat.h: define the "nolock" mnttab option if the
7682	NONLM NFS mount option is defined
7683
7684	* acconfig.h: added MNT2_NFS_OPT_NONLM, MNT2_GEN_OPT_BIND
7685
7686	* configure.in: added detection of the NONLM Linux NFS mount
7687	option; added a clarification for the library versioning rules and
7688	increased the minor level; added detection of <linux/auto_fs4.h>
7689	and the MS_BIND generic mount option
7690
76912000-11-29  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
7692
7693	* Enabled Solaris 2.7 autofs support (tested, works)
7694
7695	* Updated NEWS, README.autofs
7696
7697	* Updated Makefile's, make dist is now fixed
7698
7699	* Fixed potential memory leak in map.c
7700
7701	* Fixed autofs style detection for solaris 2.[67]
7702
7703	* Added a few casts in autofs_solaris2.c, needed on Solaris 2.7
7704
77052000-11-28  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
7706
7707	More Solaris 2.[67] work in progress:
7708
7709	* changed the API for the mount/umount methods: fmount/fumount are
7710	gone, and mount/umount now take two arguments (am_node and mntfs)
7711
7712	* changed the semantics of the MFF_AUTOFS flag: MFF_AUTOFS now
7713	means the mntfs is a filesystem of type autofs, and AMF_AUTOFS
7714	means the am_node is a node on a filesystem of type autofs.
7715
7716	* renamed nfs_program_2_transp to current_transp so it can be used
7717	with autofs
7718
7719	* renamed quick_reply() to nfs_quick_reply()
7720
7721	* added two more autofs methods: autofs_umount_failed() and
7722	autofs_compute_mount_flags() -- it turns out that on sol2.6 the
7723	autofs mounts MUST be overlay'ed
7724
7725	* moved the autofs_mount_succeeded() into am_mounted()
7726
7727	* made amd *not* timeout autofs mounts -- the kernel will do it
7728	for us
7729
7730	* store dev and rdev of a mounted filesystem in the mntfs
7731	structure, to help autofs
7732
7733	* moved the rmdirs() call from uninit_mntfs() to am_umounted(), to
7734	prevent deadlocking with autofs
7735
7736	* amd/Makefile.am: shuffled things around to make
7737	update_build_version be the last thing that runs
7738
77392000-11-27  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
7740
7741	* split amd/ops_autofs.c into conf/autofs/autofs_<system>.c files
7742	and made configure create a symlink to the appropriate one
7743
7744	* moved the xdr autofs functions from libamu/xdr_func.c into the
7745	system-specific conf/autofs/autofs*.c
7746
7747	* added some more experimental code to the sol2.6 autofs support,
7748	but it's by no means functional
7749
77502000-11-27  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
7751
7752	* libamu/wire.c (getwire_lookup): truncate the hostname to
7753	MAXHOSTNAMELEN characters.
7754
77552000-11-26  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7756
7757	* include/am_utils.h (MAXHOSTNAMELEN): if not defined, set this to
7758	256 bytes, not 64.   Suggestion form Kris Kennaway
7759	<kris@FreeBSD.org>.
7760
77612000-11-26  Erez Zadok  <ezk@dmath5.geometrie.tuwien.ac.at>
7762
7763	* configure.in (AC_CHECK_MNT2_NFS_OPTS): check for NFS mount
7764	options kerb, rdirplus, readdirsize, and xlatecookie
7765	(NetBSD-1.5K).
7766
7767	* acconfig.h: recognize NFS mount options rdirplus, readdirsize,
7768	and xlatecookie (NetBSD-1.5K)
7769
77702000-11-24  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7771
7772	* amd/srvr_nfs.c: comment on NFS proto search order.
7773
7774	* libamu/xutil.c (real_plog): don't try to write the last byte of
7775	the fmt buf.  security suggtion from NetBSD: Thomas Klausner
7776	<wiz@danbala.ifoer.tuwien.ac.at>
7777
77782000-11-22  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
7779
7780	* amd/amfs_auto.c (amfs_auto_bgmount): removed the initialization of
7781	fattr.na_fileid, it is now done in map.c when the map is initialized
7782
7783	* amd/map.c (init_map): initialize fattr.na_fileid to am_gen, not
7784	to 0, to avoid cache aliasing problems on Linux (and to follow the
7785	NFS spec!)
7786
77872000-11-22  Thomas Klausner <wiz@danbala.ifoer.tuwien.ac.at>
7788
7789	* libamu/mount_fs.c (mount_fs): avoid using extra limited-size buf
7790	(security)
7791
7792	* libamu/xutil.c, fsinfo/fsinfo.h, include/am_utils.h: use
7793	__attribute__, __format__, and __printf__ for GCC string auditing.
7794
7795	* wire-test/wire-test.8: this is not a section 8L man page.
7796
7797	* libamu/xutil.c (expand_error): don't use sys_nerr on systems
7798	that support strerror().
7799	(dplog): fmt is const
7800	(plog): fmt is const
7801	(real_plog): fmt is const.  use new expand_error function with its
7802	new return value. be more careful about running off the end of
7803	char[] fixed size buffers.
7804
7805	* libamu/wire.c (getwire): fix alignment error on alpha using an
7806	extra automatic storage variable ifrpool.
7807
7808	* hlfsd/hlfsd.c (fatal): use proper printf style to plog.
7809
7810	* fsinfo/fsinfo.c (find_username): getlogin() returns a const.
7811
7812	* fsinfo/fsi_util.c (error, lerror, lwarning, fatal, log): use
7813	vfprintf.
7814
7815	* fsinfo/fsi_lex.l (yyerror): use vfprintf.
7816
7817	* fixmount/fixmount.8: this is not a section 8L man page.
7818
7819	* doc/am-utils.texi (Hesiod maps): fixed typo.
7820
7821	* amd/sched.c (do_task_notify): typo in comment.
7822
7823	* amd/opts.c (expand_op): expand_error[] is a const char *.
7824
7825	* amd/amd.c (main): use proper printf style to plog.
7826
78272000-11-22  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7828
7829	* libamu/mount_fs.c (mnt_flags, compute_nfs_args): recognize
7830	proplist mnttab flag.  Bug fix from Wolfram Klaus
7831	<klaus@physik.fu-berlin.de>.
7832
78332000-11-19  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7834
7835	* updated config.guess, config.sub, and doc/texinfo.tex from
7836	mirrors
7837
7838	* Makefile.am (update): proper updating of config.* and texinfo
7839	from mirrors.
7840
7841	* aux/macros/check_nfs_prot_headers.m4: newer netbsd systems
7842	reports their system name as "netbsdelf" in config.guess.
7843
78442000-11-13  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7845
7846	* doc/am-utils.texi (opts Option): document new mount option
7847	"proplist"
7848
7849	* include/am_compat.h: define amd mount option "proplist" if the
7850	system doesn't recognize it, but the NFS bit flag exists.
7851
7852	* configure.in, acconfig.h: recognize/support "proplist" NFS mount
7853	option in Amd, useful under DU-4.0 to process ACLs over NFS
7854	mounts.
7855
78562000-11-10  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
7857
7858	* conf/mount/mount_linux.c (mount_linux): removed unnecessary
7859	rsize/wsize defaults -- performance killers on 2.2.18+ and 2.4.0+
7860
78612000-10-16  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7862
7863	* scripts/am-eject.in: accept "cdrom" and "floppy" as arguments.
7864
78652000-11-05  Ion Badulescu  <ionut@moisil.dev.hydraweb.com>
7866
7867	Too many changes to list them here. Here's a high level
7868	description:
7869
7870	* Forward-ported the Linux fixes from 6.0.5pre
7871
7872	* Got rid of a mountain of #ifdef DEBUG, replaced with smart
7873	header-file #ifdef's
7874
7875	* and, the grand finale: initial Solaris 2.6 autofs
7876	support. Compiles, mounts, gets requests; all the
7877	infrastructure is in place to actually implement the calls. Linux
7878	autofs might be a bit broken, but only compile-time so it'll be
7879	easy to fix.
7880
78812000-11-01  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7882
7883	* MIRRORS (Note): added a mirror at ufl.edu
7884
78852000-10-11  Erez Zadok  <ezk@lorien.dev.hydraweb.com>
7886
7887	* amq/amq.8: synchronize Amq's options with reality
7888
7889	* amq/amq.c (main): synchronize Amq's usage() string with reality
7890
78912000-10-10  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7892
7893	* scripts/ctl-amd.in: add targets condrestart (redhat) and
7894	reload.
7895
78962000-10-04  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7897
7898	* scripts/lostaltmail.in (vrfy_user): ensure that MAILDIR is
7899	defined.
7900
79012000-09-18  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7902
7903	* amd/opts.c (backslash): Bell char (ASCII 007) should be \g, not
7904	\a.
7905
79062000-09-17  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7907
7908	* include/am_utils.h: removed unused field opt_autopref
7909
7910	* amd/opts.c: removed unused variable $autopref
7911
79122000-09-05  Erez Zadok  <ezk@aladdin.dev.hydraweb.com>
7913
7914	* conf/mtab/mtab_svr4.c (lockfile): function not needed unless
7915	MOUNT_TABLE_ON_FILE is defined.
7916	mtlckname static var is onlyneeded if MOUNT_TABLE_ON_FILE.
7917	(update_mnttab_fields): only needed if MOUNT_TABLE_ON_FILE.
7918
79192000-09-03  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7920
7921	* buildall (Usage): typo in usage string
7922
79232000-08-25  Erez Zadok  <ezk@lynn.soscorp.com>
7924
7925	* conf/mount/mount_linux.c (mount_linux): MNT2_NFS_OPT_VER3 may
7926	is no defined on older Linux systems (kernel 2.0.36)
7927
79282000-08-19  Erez Zadok  <ezk@earth.cs.columbia.edu>
7929
7930	* scripts/amd.conf.5: correct swapped descriptions for ldap_base
7931	and ldap_hostports.
7932
7933	* doc/am-utils.texi: correct swapped descriptions for ldap_base
7934	and ldap_hostports.
7935
7936	* scripts/amd.conf-sample: swap examples for ldap_base and
7937	ldap_hostports.
7938
79392000-08-13  Erez Zadok  <ezk@earth.cs.columbia.edu>
7940
7941	* scripts/amd.conf-sample: -O is CLI equivalent to "os"
7942	amd.conf parameter
7943
79442000-07-30  Erez Zadok  <ezk@earth.cs.columbia.edu>
7945
7946	* scripts/amd.conf-sample (nfs_retransmit_counter): correct
7947	meaning and use of parameter
7948
79492000-07-23  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7950
7951	* doc/am-utils.texi: updated URLs to www.am-utils.org.
7952
79532000-07-04  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
7954
7955	* doc/am-utils.texi (Supported Platforms): document osf4.0f
7956
79572000-06-19  Erez Zadok  <ezk@vir.cs.columbia.edu>
7958
7959	* doc/am-utils.texi (dollar Selector Variable): document
7960	${dollar}.
7961
7962	* amd/opts.c: special new variable ${dollar} which expands into a
7963	literal '$' sign.  Otherwise there is no way to include a literal
7964	dollar symbol in an amd map.
7965
79662000-06-11  Ion Badulescu  <ib42@moisil.cs.columbia.edu>
7967
7968	* amd/opts.c (eval_selectors): don't deref opt after it's been
7969	XFREE'd
7970
79712000-06-11  Erez Zadok  <ezk@earth.cs.columbia.edu>
7972
7973	* amd/opts.c: move mount_type expansion until later in the list,
7974	so common variable are "hit" first.
7975
79762000-06-11  Ion Badulescu  <ib42@moisil.cs.columbia.edu>
7977
7978	* amd/opts.c (split_opts, eval_selectors): split old function
7979	eval_opts into two, one that only splits non-selectors and
7980	assigns the values to fs_static, and one that only evaluates
7981	selectors; also simplified the rather obfuscated logic inside
7982	these functions
7983	(expand_op): made it take a char * instead of a structure from
7984	which it was using only one field (a char *). Also now returns a
7985	char * instead of modifying said structure in place
7986	(expand_opts): deal with the change above
7987	(expand_selectors): renamed from expand_key
7988	(expand_options): new function, expands non-selectors; it's the
7989	complement of expand_selectors, both of which are just wrappers
7990	around expand_op()
7991	(eval_fs_opts): use the new split_opts, eval_selectors to allow
7992	using options (like ${rhost}) in selectors
7993
79942000-06-11  Ion Badulescu  <ionut@moisil.cs.columbia.edu>
7995
7996	* config.guess.long: munge config.guess' output so that intel
7997	linux appears as i386-pc-linux
7998
7999Fri Jun  9 16:06:56 2000  Erez Zadok  <ezk@defiant.dev.hydraweb.com>
8000
8001	* conf/nfs_prot/nfs_prot_bsdi2.h: getifaddrs() on bsdi2 is broken.
8002	Don't use it.
8003
80042000-06-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8005
8006	* amd/mapc.c (maptypes): Change default allocation mode to
8007	MAPC_INC where reload support is missing to avoid warning in
8008	mapc_create().
8009
80102000-06-09  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8011
8012	* conf/nfs_prot/nfs_prot_sunos5_5.h: turn off autofs support for
8013	solaris 2.5 until a full port can be done.
8014
80152000-06-07  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8016
8017	* Makefile.am, aux/GNUmakefile: fix maintainer rules to update
8018	config.* and texinfo.tex files.
8019
8020	* amd/nfs_subr.c (nfsproc_getattr_2_svc): Don't conditionalize the
8021	mtime update of the symlinks on the SYMTTL option, but rather
8022	delay unmount of what was looked up using am_timeo_w.  Patch from
8023	Nick Williams <Nick.Williams@msdw.com>.  As Nick says "Basically:
8024	during unmount, increment the parent dir's mtime (fixes
8025	people doing amq -u). During stat, increase the TTL (to fix bad-luck
8026	timeouts), but leave the mtime alone."
8027
8028	(nfsproc_lookup_2_svc, nfsproc_readlink_2_svc, unlink_or_rmdir,
8029	nfsproc_readdir_2_svc): correctly update d_drops stats for amq -s.
8030	Patch from Nick Williams <Nick.Williams@msdw.com>.
8031
8032	* amd/map.c (unmount_mp): update mtime of amd symlink to further
8033	reduce the chances of race conditions between unmounting and
8034	looking up an entry again.  Patch from Nick Williams
8035	<Nick.Williams@msdw.com>.
8036
8037	* README: updated instructions
8038
8039	* bootstrap: remove log file before existing
8040
80412000-06-06  Erez Zadok  <ezk@aladdin.dev.hydraweb.com>
8042
8043	* configure.in: no longer using aux/ subdir. don't force autoconf
8044	2.14. comment out (but leave explanation) everything that's needed
8045	for autoconf 2.14, so for now it works with autoconf-2.13, but the
8046	code is ready for 2.14 when it is released.  Similar changes to
8047	make code work with automake-1.4, until the next release comes
8048	out.
8049
8050	* libamu/Makefile.am: include definitions that are required in
8051	automake 1.4, but won't be necessary when the next release of
8052	automake comes out (see XXX comments).
8053
8054	* cache_check_dynamic.m4, check_checkmount_style.m4,
8055	check_mnttab_style.m4, check_mount_style.m4,
8056	check_network_transport_type.m4, check_nfs_prot_headers.m4,
8057	check_umount_style.m4: use symlink creation code that works for
8058	both autoconf 2.13 and 2.14 (when the latter comes out).
8059
8060	* bootstrap: new script for maintainers to run to update autoconf,
8061	automake, and libtool related files.  Has the same effect as
8062	"buildall -K".
8063
8064	* removed dependencies on CVS versions of autoconf, automake, and
8065	libtool, especially the modified automake I had.  This is so that
8066	maintainers could built the auto* files out of the latest released
8067	GNU autoconf, automake, and libtool.  However, without my nice
8068	patches to automake, many files that used to live in the aux/
8069	subdir now were moved to the top level source directory: acconfig.h,
8070	acinclude.m4, aclocal.m4, aux_conf.h.in, config.guess,
8071	config.guess.long, config.h.in, config.sub, configure.in, depcomp,
8072	install-sh, ltconfig, ltmain.sh, missing, and mkinstalldirs.  Also
8073	texinfo.tex and mdate-sh moved from aux/ dir to doc/ dir.
8074
80752000-06-05  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8076
8077	* cvs-server.txt: instructions for maintainers to access the CVS
8078	server for am-utils.
8079
80802000-06-03  Ion Badulescu  <ionut@moisil.cs.columbia.edu>
8081
8082	* amd/restart.c (restart): grr.. passing around initialized
8083	structures is *really* bad habit. memset(mo, 0) so at least we can
8084	test for NULL pointers...
8085
80862000-06-02  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8087
8088	* amd/am_ops.c (ops_match): changed XLOG_USER messages about
8089	merging addopts options to the more appropriate XLOG_INFO.  Patch
8090	submitted by Tom Schmidt <tschmidt@micron.com>.
8091
8092	* config.{guess,sub}: make sure chmod'ed a+rx.  Updated from
8093	latest GNU copies.
8094
80952000-05-30  Ion Badulescu  <ionut@moisil.cs.columbia.edu>
8096
8097	* aux/configure.in: bump up the version to 6.1a2
8098
80992000-05-29  Ion Badulescu  <ionut@moisil.cs.columbia.edu>
8100
8101	* released snapshot am-utils-6.1a1
8102
81032000-05-29  Ion Badulescu  <ionut@moisil.cs.columbia.edu>
8104
8105	* amd/ops_autofs.c (autofs_mounted): retrieve the autofs protocol
8106	version and store it in the fh
8107	(autofs_get_opts): support protocol version 4
8108
8109	* amd/mntfs.c (uninit_mntfs): clear the autofs fh pointer after
8110	releasing it
8111
8112	* conf/transp/transp_sockets.c (amu_svc_getcaller): cast result of
8113	svc_getcaller() to sockaddr_in, to appease glibc 2.2
8114
8115	* amd/amfs_auto.c (amfs_auto_bgmount): if the filesystem wants
8116	autofs handling and the parent is already handled by autofs,
8117	handle this filesystem as well
8118	(amfs_auto_mount): create the mountpoint for an autofs mount
8119	(amfs_auto_umount): do a real UMOUNT_FS() call for autofs mounts
8120
8121	* include/am_utils.h (FS_AUTOFS): new flag signalling that the
8122	filesystem wants autofs handling; toplvl, auto, host and direct
8123	have this flag, at least for now
8124
81252000-05-28  Erez Zadok  <ezk@mulberry.mcl.cs.columbia.edu>
8126
8127	* doc/am-utils.texi (Network Filesystem Group): minor typos
8128
81292000-05-28  Ion Badulescu  <ionut@moisil.cs.columbia.edu>
8130
8131	* amd/autil.c (am_unmounted): check mp->am_parent before dereferencing
8132
8133	* amd/srvr_nfs.c (find_nfs_srvr): if NFS_SCALEDOWN, force
8134	version=2 and proto=udp and try again
8135
8136	* amd/ops_nfs.c (prime_nfs_fhandle_cache): take an explicit mntfs
8137	instead of a voidp; handle the NFS_SCALEDOWN case by removing the
8138	cached server entry and re-querying the server
8139
8140	* amd/amfs_toplvl.c (amfs_toplvl_mount): removed ugly if
8141	statement, assign mnttype from the fs-specific mf_ops->fs_type
8142	instead
8143
8144	* amd/amfs_nfsx.c (amfs_nfsx_init): call fs_init() only if it's
8145	defined;
8146	(amfs_nfsx_remount): removed superfluous check for fmount_fs -- it
8147	always exists
8148	(amfs_nfsx_umount): removed the hacked am_node -- umounted() now
8149	takes an mntfs; call umounted() only if it's defined
8150
8151	* amd/amfs_auto.c: removed amfs_auto_umounted and moved its
8152	functionality into am_umounted().
8153	(amfs_auto_cont): Linux hack: if we got an EINVAL, mark the mntfs
8154	as needing an "NFS scaledown" and retry the operation
8155
8156	* amd/amfs_*.c: changed all fmount/fumount functions to
8157	mount/umount and made them take an am_node instead of an
8158	mntfs. This is a first step towards an amfs/ops API separation.
8159
8160	* amd/{amfs,ops}_*.c: changed the umounted() function to take an
8161	mntfs instead of an am_node
8162
81632000-05-28  Ion Badulescu  <ionut@moisil.cs.columbia.edu>
8164
8165	* amd/amfs_toplvl.c (mount_amfs_toplvl): init error to 0 to shut
8166	up gcc
8167
8168	* aux/macros/check_hide_mount_type.m4: revert to the 6.0 version
8169	which always defines HIDE_MOUNT_TYPE
8170
8171	* amd/ops_autofs.c (autofs_mounted): remove MFF_AUTOFS
8172	initialization -- now done in init_mntfs()
8173
8174	* amd/mntfs.c (init_mntfs): init mf_flags to MFF_AUTOFS if we are
8175	mounting an autofs-style map
8176
8177	* amd/*.c: use the MFF_AUTOFS flag instead of doing a costly STREQ
8178
8179	* amd/amfs_toplvl.c (mount_amfs_toplvl): MTYPE_TYPE is not
8180	necessarily a string type, so handle the nfs/autofs separation
8181	differently
8182
8183	* amd/amfs_auto.c (amfs_auto_bgmount): removed initialization of
8184	opt_mount_type (now done in ops_match())
8185
8186	* amd/am_ops.c (ops_match): need to initialize opt_mount_type if
8187	it's not initialized yet
8188
81892000-05-27  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8190
8191	* libamu/wire.c (getwire_lookup): handle calling irs_gen_acc with
8192	one or two arguments (bsdi3 vs. bsdi4)
8193
81942000-05-27  Ion Badulescu  <ib42@chestnut.mcl.cs.columbia.edu>
8195
8196	* libamu/xutil.c (amu_release_controlling_tty): removed an unused
8197	variable from the previous patch
8198
81992000-05-26  Ion Badulescu  <ionut@moisil.cs.columbia.edu>
8200
8201	* aux/macros/check_autofs_style.m4: fixed substitution for default
8202	case
8203
8204	* libamu/xutil.c (amu_release_controlling_tty): close standard
8205	file descriptors, re-open them as /dev/null
8206
8207	* include/am_defs.h: don't try to include both <ndbm.h> and
8208	<db1/ndbm.h>, it really doesn't work
8209
82102000-05-16  Ion Badulescu  <ib42@earth.cs.columbia.edu>
8211
8212	* hlfsd/stubs.c (nfsproc_lookup_2_svc): added code to update mtime
8213	on lookup if MNT2_NFS_OPT_SYMTTL is not defined (copied from
8214	getattr).  This fixes the problem introduced by the Linux nfsv3
8215	patches.
8216
82172000-05-12  Ion Badulescu  <ionut@moisil.cs.columbia.edu>
8218
8219	* Makefile.am (EXTRA_DIST_CONF): added conf/autofs/autofs_linux.h
8220
82212000-05-10  Ion Badulescu  <ib42@earth.cs.columbia.edu>
8222
8223	* amd/ops_autofs.c (autofs_handle_fdset): call
8224	autofs_lookup_failed instead of autofs_mount_failed, if the name
8225	is not in the map
8226	(autofs_umount_{succeeded,failed}): pass the actual mount point,
8227	not its parent, as it's needed for clean-up;
8228
8229	* amd/autil.c (am_unmounted): notify autofs that the umount
8230	succeeded
8231
8232	* amd/amfs_link.c (amfs_link_[u]mount): autofs link notification
8233	moved elsewhere
8234
82352000-05-09  Ion Badulescu  <ionut@moisil.cs.columbia.edu>
8236
8237	* amd/amfs_auto.c (amfs_auto_bgmount): initialize opt_mount_type
8238	if necessary;
8239	(amfs_auto_mounted): test if opt_mount_type is NULL first
8240	(amfs_auto_mount): revert earlier change
8241
8242	* amd/ops_autofs.c (autofs_mount_failed): remove autofs directory
8243	if mount failed
8244
82452000-05-09  Ion Badulescu  <ionut@moisil.cs.columbia.edu>
8246
8247	* amd/ops_autofs.c (autofs_link_mount): use am_link as target
8248
8249	* amd/map.c (unmount_mp): release file handle for autofs f/s about
8250	to be unmounted; this leak was preventing the unmount altogether
8251
8252	* amd/amfs_auto.c (amfs_auto_umount): removed autofs-specific
8253	code, was broken
8254	(amfs_auto_bgmount): nfs mounts + sublinks is a valid combination,
8255	handle it
8256
82572000-05-07  Ion Badulescu  <ib42@moisil.cs.columbia.edu>
8258
8259	* Merged changes from stable branch
8260
82612000-04-30  Erez Zadok  <ezk@beetle.mcl.cs.columbia.edu>
8262
8263	* include/am_defs.h, aux/macros/mount_headers.m4,
8264	aux/macros/try_compile_anyfs.m4: include linux/kdev_t.h and
8265	linux/list.h before including linux/fs.h, and define __KERNEL__
8266	for those two headers.  All of this to get a couple of definitions
8267	that are needed in the new struct vfsmount.
8268
8269	* aux/configure.in: look for <linux/kdev_t.h> and <linux/list.h>.
8270
8271	* include/am_defs.h, aux/macros/mount_headers.m4: avoid conflicts
8272	between linux/in.h. and netinet/in.h (linux-2.3.99-pre6), by
8273	defining _LINUX_IN_H so it doesn't get included.
8274
82752000-04-03  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8276
8277	* minor new ports: i686-pc-linux-gnu-rh6.2,
8278	i386-unknown-freebsdelf3.4, i586-pc-linux-gnu-rh6.2.
8279
82802000-04-03  Erez Zadok  <ezk@vir.cs.columbia.edu>
8281
8282	* aux/acconfig.h: move all #undef macros above @TOP@, so they can
8283	be recognized by pickier autoconf.
8284
82852000-04-03  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8286
8287	* aux/macros/cache_check_dynamic.m4 (ac_tmp): use correct echo -n
8288	or \c.
8289
82902000-03-25  Erez Zadok  <ezk@beetle.mcl.cs.columbia.edu>
8291
8292	* include/am_defs.h: ditto
8293
8294	* aux/macros/{mount_headers,try_compile_anyfs}.m4: force
8295	non-inclusion of <linux/string.h>.  Breaks build on newer 2.3
8296	kernels.
8297
82982000-02-26  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8299
8300	* doc/am-utils.texi (Amq -w option): document new amq -w option.
8301
8302	* amq/amq.8: document new amq -w option.
8303
8304	* amq/amq.c: disable last remains of insecure amq -M code.
8305	(main): add amq -H option to show usage.
8306	(main): new amq -w option, translates getpwd() into an amd path.
8307
83082000-02-25  Ion Badulescu  <ionut@moisil.cs.columbia.edu>
8309
8310	* libamu/util.c (get_server_pid): new function
8311
8312	* hlfsd/hlfsd.c (main): make use of HIDE_MOUNT_TYPE
8313
8314	* conf/transp/transp_sockets.c: removed create_autofs_service
8315
8316	* conf/mount/mount_linux.c: added autofs mount options; split
8317	mount_linux into two functions, itself and do_mount_linux
8318
8319	* aux/macros/check_hide_mount_type.m4: better failover
8320
8321	* aux/configure.in: changed version to 6.1a1; added
8322	AC_CHECK_AUTOFS_STYLE
8323
8324	* aux/aux_conf.h.in: added @am_utils_autofs_style@
8325
8326	* amd/opts.c: added "mount_type" option
8327
8328	* amd/ops_autofs.c: ifdef-ed out solaris code; moved all autofs
8329	variables in here; split create_autofs_service into sun and linux
8330	specific functions
8331
8332	* amd/nfs_start.c: removed autofs-specific variables
8333
8334	* amd/map.c (get_root_nfs_fh): renamed root_fh to get_root_nfs_fh
8335	(get_root_ap): renamed root_ap to get_root_ap
8336
8337	* amd/amfs_toplvl.c (amfs_toplvl_ops): replaced
8338	amfs_toplvl_mounted with amfs_auto_mounted
8339	(mount_amfs_toplvl): moved code around, added autofs handling
8340	(amfs_toplvl_mounted): removed
8341
8342	* amd/amfs_nfsl.c (amfs_nfsl_ops): removed amfs_auto_fu?mount,
8343	replaced with amfs_nfsl_u?mount
8344
8345	* amd/amfs_linkx.c (amfs_linkx_ops): removed amfs_auto_fumount,
8346	replaced with amfs_link_umount
8347
8348	* amd/amfs_link.c (amfs_link_ops): removed amfs_auto_fu?mount,
8349	replaced with amfs_link_u?mount
8350
8351	* amd/amfs_direct.c (amfs_direct_ops): changed "mounted" function
8352	from amfs_toplvl_mounted to amfs_auto_mounted
8353
8354	* all: added autofs hooks throughout the code
8355
8356	* amd/am_ops.c (vops): autofs_ops doesn't belong in here, removed
8357
8358	* README.autofs: linux status update
8359
83602000-02-24  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8361
8362	* minor new port: alphaev6-dec-osf5.0
8363
8364	* doc/am-utils.texi (Supported Platforms): hpux-11 supports NFSv3,
8365	but only for UDP.
8366
8367	* released snapshot am-utils-6.0.4s3
8368
8369	* conf/nfs_prot/nfs_prot_hpux11.h: support NFSv3 in hpux-11.  Note
8370	that hpux-11 NFSv3 supports UDP only, and trying TCP locks up the
8371	kernel!  Must set nfs_proto=udp in amd.conf [global].
8372
8373	* aux/config.guess.long: set and export PATH separately.  DU5
8374	/bin/sh doesn't like setting it on the command line in a
8375	back-tick'ed `script`.
8376
83772000-02-24  Ion Badulescu  <ionut@moisil.cs.columbia.edu>
8378
8379	* Makefile.am: removed struct_nfs_mount_data.m4
8380
8381	* aux/macros/struct_nfs_mount_data.m4: deleted
8382
8383	* aux/acconfig.h: removed definition for HAVE_NFS_MOUNT_DATA
8384
8385	* aux/configure.in: removed check for struct nfs_mount_data
8386
83872000-02-24  Ion Badulescu  <ib42@beetle.mcl.cs.columbia.edu>
8388
8389	* amd/amfs_auto.c (amfs_auto_bgmount): changed log message to
8390	avoid having 'failed' in a message not indicating a failure
8391	(amfs_auto_lookuppn): ditto
8392
8393	* amd/ops_autofs.c (autofs_bgmount): ditto
8394	(autofs_lookuppn): ditto
8395
83962000-02-24  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8397
8398	* added .cvsignore files into the CVS repository.
8399
8400	* remove files which can be regenerated: .in, configure, some
8401	files in aux/, and more.
8402
84032000-02-20  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8404
8405	* doc/am-utils.texi (nfs_vers/nfs_proto): description of two
8406	parameters was reversed.  Reported by Paul Jenner
8407	<p.jenner@eim.surrey.ac.uk>.
8408
84092000-02-16  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8410
8411	* released snapshot am-utils-6.0.4s2
8412
8413	* amd/mntfs.c (realloc_mntfs): don't fallback on certain ops such
8414	as inherit, error, and toplvl (failover code).
8415
8416	* amd/conf.c (gopt_nfs_vers, gopt_nfs_proto): two new (documented)
8417	global options in amd.conf: one to set the NFS version globally
8418	(i.e., nfs_vers=2), and one to set the NFS protocol globally
8419	(i.e., nfs_proto=udp).
8420
8421	* amd/mntfs.c (realloc_mntfs): attempt to fix the failover code,
8422	so when a matching mount entry failed, try the next one.
8423
84242000-02-15  Erez Zadok  <ezk@moisil.cs.columbia.edu>
8425
8426	* amd/amfs_auto.c: a new debug option "readdir" to trace the
8427	progress of the browsable_dirs code.
8428
8429	* conf/mount/mount_linux.c (mount_linux): ensure that the new
8430	linux NFSv3 code works for v2-only machines.
8431
84322000-02-14  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8433
8434	* aux/configure.in: cleanup unused dnl entries.
8435
8436	* conf/mount/mount_linux.c (parse_opts): typo: check for string
8437	equality, not string inequality for pcfs and cdfs.
8438
8439	* aux/acconfig.h: look for MNT2_NFS_OPT_INTR as well.
8440
8441	* libamu/mount_fs.c (compute_mount_flags): check for INTR and
8442	NOINTR options as well (intr was never passed to linux mount
8443	syscall).
8444
84452000-02-10  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8446
8447	* released snapshot am-utils-6.0.4s1
8448
8449	* aux/GNUmakefile: buildall -k (for maintainers) temporarily now
8450	ignores autoconf warnings: "The macro `AC_OUTPUT_COMMANDS' is
8451	obsolete".  It is harmless but annoying, and will be fixed when
8452	autoconf and automake in their respective CVS trees are working
8453	and in sync again.
8454
8455	* scripts/amd.conf.5: document -D hrtime,xdrtrace
8456
8457	* all man pages: update copyright to 2000.
8458
8459	* doc/am-utils.texi: update copyright to 2000.
8460
8461Wed Feb  9 14:22:31 2000  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8462
8463	* include/am_utils.h (D_XDRTRACE): Define.
8464	(D_TEST): Disable here.
8465
8466	* libamu/xutil.c (dbg_opt): Handle it.
8467
8468	* doc/am-utils.texi (-D-Option): Document it.
8469
8470	* libamu/xdr_func.c: Use it instead of D_TRACE.
8471
8472	* include/am_utils.h (D_HRTIME): Define.
8473
8474	* doc/am-utils.texi (-D-Option): Document it.
8475
8476	* libamu/xutil.c (show_time_host_and_name): Print high-resolution
8477	timestamp if available and activated.
8478
8479	* aux/configure.in (clock_gettime): Check for it in -lrt and
8480	-lposix4.
8481
8482	* hlfsd/hlfsd.c (mnttab_file_name): Initialize to MNTTAB_FILE_NAME
8483	if defined, even for some systems with in kernel mount tables.
8484
84852000-02-08  Ion Badulescu  <ionut@moisil.cs.columbia.edu>
8486
8487	* aux/macros/mount_headers.m4: remove #if 0 around linux/nfs.h to
8488	allow compiles against libc5
8489
8490	* aux/macros/check_mnttab_type.m4: avoid detecting nfs3 under
8491	linux when the kernel doesn't support it
8492
8493	* include/am_compat.h: add workaround for linux efs
8494
84952000-02-08  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8496
8497	* aux/configure.in: test for ANSI C compiler (before AC_C_CONST).
8498	Comment out unused AC_STRUCT_ST_RDEV (which is obsolete anyway).
8499
85002000-02-07  Ion Badulescu  <ionut@moisil.cs.columbia.edu>
8501
8502	* libamu/mount_fs.c (compute_nfs_args): turn on VER3 option for
8503	nfs (linux NFSv3).
8504
8505	* include/am_defs.h: avoid reinclusion of some header files under
8506	linux.
8507
8508	* conf/nfs_prot/nfs_prot_linux.h: support NFSv3.
8509
8510	* conf/mount/mount_linux.c (mount_linux): support nfs mount
8511	 (implementation) version 4 for NFSv3.
8512
8513	* aux/macros/try_compile_nfs.m4: use AC_MOUNT_HEADERS.
8514
8515	* aux/macros/mount_headers.m4: don't include <linux/fs.h> (may
8516	need to fix the code on other linux machines).
8517
8518	* aux/macros/check_mnttab_type.m4 (ac_safe): ditto.
8519
8520	* aux/macros/check_fs_mntent.m4 (ac_safe): check for nfs3 option
8521	under linux (depends on ac_cv variable, is that a good idea?)
8522
8523	* added NFSv3 support for linux
8524
8525	* aux/{configure.in,acconfig.h}: new option ver3
8526
8527	* aux/macros/mount_headers.m4: commented out inclusion of
8528	linux/fs.h, it's not needed on rh61 (and actually generates
8529	conflicts), we should see if it's still needed on libc5 systems
8530
8531	* aux/macros/try_compile_nfs.m4: use AC_MOUNT_HEADERS rather than
8532	try to have its own (out of date) list of headers and ifdef's and
8533	...
8534
85352000-02-07  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8536
8537	*******************************************************************
8538	*** Released am-utils-6.0.3					***
8539	*******************************************************************
8540
85412000-02-06  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8542
8543	* conf/mount/mount_default.c: dummy empty file to work around a
8544	limitation of automake (it looks for LIBBOBJS in aclocal.m4 and
8545	processes them even if they are optional, enclosed in if/else).
8546
85472000-01-29  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8548
8549	* released snapshot am-utils-6.0.3s5
8550
85512000-01-25  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8552
8553	* update to use latest version of autoconf, automake, and libtool.
8554
8555	* aux/GNUmakefile (depcomp): "make update" should also update the
8556	depcomp script.
8557
8558	* Makefile.am (EXTRA_DIST_AUX): include depcomp in distribution.
8559
8560	* aux/configure.in: use renamed AC_CHECK_AMU_FS.
8561
8562	* aux/macros/check_amu_fs.m4: renamed macro name and file name to
8563	say AMU_FS, not AM_FS.
8564
8565	* aux/acconfig.h: renamed HAVE_AM_FS_* to HAVE_AMU_FS_* because
8566	latest version of autoconf doesn't handle it (bug in 2.14a)
8567
8568	* aux/configure.in: require version 2.14 of autoconf.
8569
8570	* amd/mapc.c (mapc_reload_map): more fixes from Nick Williams.
8571
8572	* doc/am-utils.texi (Automount Filesystem): document type:=auto
8573	map browsability option.
8574
8575	* amd/mapc.c (make_entry_chain): patch from Steven Danz
8576	<sdanz@awc.kc.noaa.gov> to allow browsable auto maps.
8577
85782000-01-24  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8579
8580	* released snapshot am-utils-6.0.3s4
8581
8582	* amd/mapc.c (mapc_reload_map): fixes to sync maps even if they
8583	are set to mapcache:=sync.  Fix from Nick Williams
8584	<Nick.Williams@msdw.com>.
8585
85862000-01-20  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8587
8588	* released snapshot am-utils-6.0.3s3
8589
8590	* minor port to i386-unknown-netbsd1.4.1
8591
8592	* amd/nfs_subr.c (nfsproc_getattr_2_svc): patch from Nick Williams
8593	<Nick.Williams@msdw.com> to fix (or reduce the incidence of) stale
8594	file handles when doing rapid mounts and umounts in succession
8595	such as "ls /vol/foo ; amq -u /vol/foo ; ls /vol/foo"
8596
85972000-01-18  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8598
8599	* minor port to i386-pc-bsdi4.1.
8600
86012000-01-13  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8602
8603	* libamu/wire.c (getwire_lookup): pass NULL as conf_file (2nd)
8604	argument to irs_gen_acc(), which was changed in bsdi 4.1.
8605
86062000-01-12  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8607
8608	* amd/get_args.c (get_args): don't use MNTTAB_FILE_NAME for
8609	systems with in-kernel mount tables unless this macro is defined
8610	(Solaris 8).
8611
86122000-01-01  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8613
8614	* ALL: bump copyright year to 2000.
8615
86161999-12-16  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8617
8618	* conf/mount/mount_svr4.c (mount_svr4): optionstr exists on
8619	solaris 7, but should not be used unless MAX_MNTOPT_STR also
8620	exists (solaris 8).
8621
8622	* doc/am-utils.texi (opts Option): document new mount option:
8623	optionstr.
8624
8625Fri Dec 10 01:31:53 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8626
8627	* conf/trap/trap_svr4.h (MOUNT_TRAP): Pass mount option string to
8628	mount_svr4().
8629	(mount_svr4): Adapt prototype.
8630	* conf/mount/mount_svr4.c (mount_svr4): Pass them to kernel so
8631	they are evaluated and show up in Solaris 8 in-kernel mnttab.
8632
8633	* aux/configure.in: Check for new Solaris 8 MS_OPTIONSTR mount(2)
8634	option.
8635	* aux/acconfig.h (MNT2_GEN_OPT_OPTIONSTR): Provide template.
8636
86371999-12-10  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8638
8639	* released snapshot am-utils-6.0.3s2
8640
86411999-12-09  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8642
8643	* doc/am-utils.texi (opts Option): document noexec and nomnttab
8644	(new to Solaris 8).
8645
8646	* Makefile.am (EXTRA_DIST_CONF): include nfs_prot_sunos5_8.h in
8647	distribution.
8648
8649	* applied fixes from Rainer Orth for Solaris 8.
8650
8651	* libamu/wire.c (getwire): increment the cp pointer in the loop
8652	body, because the ioctl() inside the "for" loop will overwrite the
8653	ifr structure, thus not detecting all of the interfaces.  Bug
8654	reported and fixed by Amitha Perera <perera@cs.rpi.edu>.
8655
8656Thu Dec  9 19:09:38 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8657
8658	* conf/mtab/mtab_svr4.c (unlockmnttab, lockmnttab): No-ops if
8659	MOUNT_TABLE_ON_FILE.
8660
8661	* amd/get_args.c (get_args): Initialize mnttab_file_name even for
8662	in-kernel mount table.  conf/mtab/mtab_svr4.c (read_mtab) depends
8663	on a non-NULL value.
8664
8665	* amd/info_ldap.c (get_ldap_timestamp): Don't peek into opaque
8666	LDAP structure to get error code, but use it directly.
8667	(amu_ldap_search): Likewise.
8668
8669	* conf/nfs_prot/nfs_prot_sunos5_7.h: Rip superfluous and wrong
8670	ldap support.
8671	* conf/nfs_prot/nfs_prot_sunos5_8.h: Likewise.
8672
8673	* conf/nfs_prot/nfs_prot_sunos5_8.h: New file, doesn't typedef
8674	nfsstat, already in <nfs/nfs.h>.
8675	* aux/macros/check_nfs_prot_headers.m4: Use it for all Solaris
8676	versions beyond 7.
8677	Allow for micro versions of SunOS 5.[67].
8678
8679	* aux/configure.in: Check for new Solaris 8 Beta Refresh
8680	MS_NOMNTTAB mount(2) option.
8681	* aux/macros/check_mnttab_location.m4: Use it to test for
8682	mntfs-based in-kernel mnttab.
8683
8684	* aux/macros/os_cflags.m4: Treat Solaris 8 and higher like 2.6/7.
8685
8686	* aux/macros/check_fs_headers.m4: Revert test for duplicate
8687	objects.
8688	* aux/macros/check_fs_mntent.m4: Likewise
8689
8690	* aux/macros/HEADER: Fixed typo.
8691
8692	* include/am_defs.h: Likewise.
8693
86941999-12-01  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8695
8696	* aux/macros/*.m4: prepare for hpux-12 (assume same as hpux-11)
8697
86981999-11-16  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8699
8700	* BUGS: document glibc-2.1 nis file descriptor leak in yp_bind.
8701
8702	* amd/info_ldap.c (string2he): updated function which does not
8703	corrupt strings when called more than once.  Patch from
8704	JOHANN.PFEFFERL.JP@germany.agfa.com.
8705
87061999-11-15  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8707
8708	* MIRRORS (Asia): two new mirrors in Japan.
8709
87101999-11-10  Erez Zadok  <ezk@kosh.cs.columbia.edu>
8711
8712	* doc/am-utils.texi: document new variables for ${uid} and ${gid}.
8713
8714	* amd/nfs_subr.c (nfsproc_lookup_2_svc): find the uid/gid of the
8715	last lookup from the RPC credentials.
8716
8717	* aux/configure.in: upped version-info to 4:0:2 because I've added
8718	a new interface to libamu.
8719
8720	* libamu/misc_rpc.c (getcreds): moved function from hlfsd to here,
8721	so it can be used by amd.
8722
8723	* amd/opts.c: new variables ${uid} and ${gid}.
8724
87251999-10-15  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8726
8727	* scripts/ctl-amd.in: add "status" command that tells you if amd
8728	is running on not (same output as RedHat scripts).
8729	Added start_msg and stop_msg targets as they are used on HPUX.
8730	reported by Jon Peatfield <J.S.Peatfield@damtp.cam.ac.uk>.
8731
87321999-10-13  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8733
8734	* released snapshot am-utils-6.0.3s1
8735
87361999-10-12  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8737
8738	* amd/amd.c (main): On AIX you must lower the stack size using
8739	ulimit() before calling plock.  Otherwise plock will reserve a lot
8740	of memory space based on your maximum stack size limit.  Since it
8741	is not easily possible to tell what should the limit be, I print a
8742	warning before calling plock(). See the manual pages for
8743	ulimit(1,3,4) on your AIX system.
8744
8745	* include/am_defs.h: define default extern for vsnprintf()
8746
8747	* aux/configure.in: check for extern definition for vsnprintf()
8748
87491999-10-08  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8750
8751	* amd/amfs_auto.c (amfs_auto_bgmount): patch from Nick Williams
8752	<njw@ms.com>.  SYMPTOMS: 'occasionally' sublinks do not point to
8753	the correct location, but to the top level of the mountpoint and
8754	an (error-hook) is seen being mounted in the log file. This causes
8755	things to Go Wrong(TM).
8756	CAUSE: When evaluating two locations which are requested
8757	'practically simultaneously', and the two locations resolve to the
8758	same NFS mountpoint (but different sublinks), the later request
8759	will be "deferred" and retried after wakeup when the first mount
8760	succeeds. To do this, it rewinds the options location string to
8761	re-evaluate the location when the mount is retried. However, it
8762	shouldn't rewind the options for two reasons: (a) the semantics of
8763	the map language say you shouldn't and (b) the NFS mount reference
8764	is not reset at the same time, meaning that on the retry it will
8765	have an options structure out-of-sync with the mount
8766	structure. The "shortcut" code when retrying the mount sees the
8767	mount structure is already filled in and does not fully evaluate
8768	the options structure.... so if the first location is not the one
8769	which ties in with the mountpoint (see ordering in the
8770	recreate-by), you're now well messed up.
8771
8772	* BUGS: mention aix4.3 plock() bug (memory usage blows up and
8773	plock fails)
8774
87751999-10-07  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8776
8777	* aux/GNUmakefile: certain files should be copied if they are
8778	newer, not also if they are bigger: install-sh, ltconfig,
8779	ltmain.sh, mdate-sh, missing, mkinstalldirs, and texinfo.tex.
8780
8781	* minor new port: i586-pc-linux-gnu-rh6.1 (RedHat Linux 6.1)
8782
87831999-10-05  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8784
8785	* aux/macros/check_nfs_prot_headers.m4: prepare for OSF-5.
8786
8787	* aux/macros/check_nfs_fh_dref.m4: prepare for Tru64, aka OSF-5.
8788
87891999-09-30  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8790
8791	*******************************************************************
8792	*** Released am-utils-6.0.2					***
8793	*******************************************************************
8794
87951999-09-27  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8796
8797	* conf/mount/mount_linux.c (mount_linux): print the updated mount
8798	flags.
8799
8800	* doc/am-utils.texi: document $full_os and $vendor.
8801
8802	* scripts/amd.conf-sample: examples of $full_os and $vendor.
8803
8804	* scripts/amd.conf.5: document $full_os and $vendor.
8805
8806	* amd/conf.c: add support for $full_os and $vendor.
8807
88081999-09-26  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8809
8810	* doc/am-utils.texi (netgrp Selector Function): don't give
8811	examples with old single '=' assignment variable.  Use foo:=bar.
8812
8813	* amd/amfs_auto.c (amfs_auto_bgmount): corectly indent long
8814	comment describing this complex function.
8815
8816	* doc/Makefile.am (alldocs): do install-ps last (because distiller
8817	is slow) and install-html next to last (because texi2html is also
8818	slow).
8819
8820	* amd/amd.8: Major fixes to the description of the option -t
8821	timeout.retransmit.
8822
8823	* doc/am-utils.texi: better description of "trace" debug option.
8824	amd -H (not -v) shows log_options and debug_options.  Major fixes
8825	to the description of amd -t timeout.retransmit, and the amd.conf
8826	parameters nfs_retransmit_counter and nfs_retry_interval.
8827
8828	* scripts/amd.conf.5: better description of "trace" debug option.
8829	amd -H (not -v) shows log_options and debug_options.  Major fixes
8830	to the description of the parameters nfs_retransmit_counter and
8831	nfs_retry_interval.
8832
88331999-09-25  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8834
8835	* doc/am-utils.texi (Automount Filesystem): cache:= is not a mount
8836	option, but a mount map option.
8837
8838	* libamu/xutil.c (switch_to_logfile): log the name of the log file
8839	we switched into, after the log file had been [re]opened.
8840
88411999-09-24  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8842
8843	* amd/mapc.c (mapc_reload_map): count and show the number of times
8844	a map was reloaded.  Only reload a map if its modify-time was
8845	updated.  But amq -f forced a reload no matter what.
8846
8847	* amd/amd.h: new flag to struct mnt_map to count number of times a
8848	map was reloaded.
8849
8850	* amd/mapc.c (mapc_reload_map): attempt to reload the map without
8851	losing current data by reloading into a temp copy, and switching
8852	the hashes round only if the reload was successful.  Patch from Jon
8853	Peatfield <J.S.Peatfield@damtp.cam.ac.uk>.
8854	(mapc_sync): mapc_reload_map() always succeeds.
8855
88561999-09-22  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8857
8858	* amd/info_ldap.c (amu_ldap_rebind): don't busy-loop trying to
8859	rebind to an LDAP server forever.  Try up to 10 times.
8860
8861	* fsinfo/fsi_lex.l (yyerror): rework code that will never happen
8862
8863	* released snapshot am-utils-6.0.2s2
8864
8865	* aux/configure.in: bumped library version-info to 3:2:1, since
8866	some libamu code got changed.
8867
8868	* libamu/xutil.c (real_plog): use vsnprintf, not vsprintf, which
8869	is better and more secure.  Fix from "David O'Brien"
8870	<obrien@NUXI.com>.
8871
8872	* aux/configure.in: check for vsnprintf.
8873
88741999-09-21  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8875
8876	* aux/macros/linux_headers.m4: use AC_MSG_ERROR.
8877
8878	* aux/macros/opt_{cppflags,ldflags,libs,amu_cflags}.m4: the ARG is
8879	not optional.  Make sure ARG is supplied else flag an error.
8880
88811999-09-18  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8882
8883	* minor port i386-unknown-freebsdelf3.3
8884
8885	* released snapshot am-utils-6.0.2s1
8886
88871999-09-17  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8888
8889	* aux/configure.in (AC_CHECK_FUNCS): check for getitimer().
8890
8891	* include/am_defs.h: extern definition for getitimer().
8892
8893	* aux/configure.in: use AC_CHECK_EXTERNS.  Look for getitimer()
8894	extern.
8895
8896	* aux/macros/check_extern.m4: define a simple AC_CHECK_EXTERNS
8897	that calls AC_CHECK_EXTERN in a loop.  This saves repeated code in
8898	configure.
8899
8900	* aux/macros/type_auth_create_gidlist.m4: AIX 4.x systems use
8901	'int' as the 5th arg to authunix_create().
8902
8903	* aux/macros/type_recvfrom_fromlen.m4: all AIX 4.x systems use a
8904	size_t for the 6th arg of recvfrom().
8905
8906	* aux/macros/os_cflags.m4: define _XOPEN_EXTENDED_SOURCE for
8907	aix4.x systems.
8908
8909	* libamu/mount_fs.c (print_nfs_args): cast some values to int, to
8910	avoid gcc -Wall errors.
8911
8912	* scripts/expn.in: use sockaddr_in(), not pack() to correctly fill
8913	in a struct sockaddr_in.  On Solaris x86 hosts, using pack()
8914	results in byte-misaligned values.   Bug fix from Jeffrey C Honig
8915	<jch@BSDI.COM>.
8916
8917	* libamu/mount_fs.c (compute_automounter_mount_flags): turn on
8918	automntfs (ignore on bsdi-4.1) flag.
8919	(compute_automounter_nfs_args): ditto.
8920
8921	* aux/acconfig.h: add new flag for automntfs (ignore)
8922
8923	* aux/configure.in: check for new automntfs flag (bsdi-4.1).
8924
89251999-09-14  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8926
8927	* MIRRORS: added new site in Germany.  Updated status of umn.edu
8928	and ferginc.com, who may no longer be mirroring am-utils.
8929
89301999-09-08  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8931
8932	*******************************************************************
8933	*** Released am-utils-6.0.1					***
8934	*******************************************************************
8935
89361999-09-08  Erez Zadok  <ezk@cs.columbia.edu>
8937
8938	* aux/macros/mount_headers.m4: bsdi-2.1 needs MAXQUOTAS and struct
8939	netexport defined.
8940
8941	* aux/macros/try_compile_anyfs.m4: bsdi-2.1 needs MAXQUOTAS and
8942	struct netexport defined.
8943
89441999-09-07  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8945
8946	* aux/macros/check_field.m4 (ac_upcase_var_name): include
8947	<ifaddrs.h> so we can detect fields within struct ifaddrs.
8948
8949	* libamu/wire.c (getwire): bsdi-2.1 uses a second arg to
8950	getifaddrs() and struct ifaddrs has no ifa_next field.
8951
8952	* aux/configure.in: check if 'struct ifaddrs' has a field
8953	ifa_next.
8954
8955	* include/amq_defs.h (AMQ_STRLEN): double size of amq string
8956	length to 2048 bytes.
8957
8958	* conf/nfs_prot/nfs_prot_netbsd1_4.h: include several more nfs
8959	header files and ufs/ufs/ufsmount.h.  Bug reported by <Christos
8960	Zoulas> christos@zoulas.com.
8961
8962	* aux/macros/try_compile_anyfs.m4: include <ufs/ufs/ufsmount.h>.
8963	Bug reported by <Christos Zoulas> christos@zoulas.com.
8964
8965	* aux/macros/mount_headers.m4: include <ufs/ufs/ufsmount.h>
8966
89671999-09-06  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8968
8969	* libamu/xutil.c (expand_error): use strerror if available instead
8970	of sys_errlist.  Bug reported by <Christos Zoulas>
8971	christos@zoulas.com.
8972
8973	* hlfsd/hlfsd.c (fatal): use strerror if available instead of
8974	sys_errlist.
8975
8976	* amq/amq.c (show_mi): use strerror if available instead of
8977	sys_errlist.
8978
8979	* aux/macros/check_nfs_prot_headers.m4: make sure netbsd1.4
8980	nfs_prot header is used for any future (1.5 etc.) netbsd systems.
8981
8982	* amq/pawd.c (find_mt): check for type nfsl as well.  Fix from
8983	"Andrew J. Korty" <ajk@purdue.edu>
8984
89851999-08-29  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8986
8987	* doc/am-utils.texi (Supported Platforms): updates for redhat
8988	systems.
8989
8990	* INSTALL: updates for redhat systems.
8991
8992	* libamu/wire.c (getwire_lookup): spell "succeeded" correctly
8993
89941999-08-28  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
8995
8996	* scripts/ctl-amd.in: sleep 1 second between killing amd and
8997	restarting it, because amq may respond that amd is down, where in
8998	fact it is still trying to unmount itself after unmapping itself
8999	from the portmapper.
9000
9001	* aux/config.guess.long: new script to print long version of
9002	config.guess output.
9003
9004	* buildall (host_alias): use long version of config.guess.
9005
90061999-08-27  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9007
9008	* scripts/ctl-{amd,hlfsd}.in: update RH tags for start/stop
9009	scripts.
9010
90111999-08-24  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9012
9013	* released snapshot am-utils-6.0.1s11
9014
9015	* libamu/xutil.c (expand_error): make sure expanding the string
9016	with textual version of errno doesn't overrun the 1024 bytes
9017	buffer.
9018	(real_plog): null terminate msg, just in case.
9019
9020	* amq/amq.c (main): don't getopt -M option and don't process it
9021	unless ENABLE_AMQ_MOUNT is on.
9022
9023	* amd/amq_svc.c (amq_program_1): all code that relates to amq -M
9024	is conditional on #ifdef ENABLE_AMQ_MOUNT.
9025
9026	* amd/amq_subr.c: remove amqproc_mount_1_svc() function invoked
9027	when amq -M code is disabled.  Not taking any chances.
9028
90291999-08-23  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9030
9031	* released snapshot am-utils-6.0.1s10
9032
9033Sun Aug 22 16:18:59 1999  Erez Zadok  <ezk@subzero.cs.columbia.edu>
9034
9035	* libamu/wire.c (getwire_lookup): if getnetbyaddr failed (e.g., on
9036	128.59.16.0), try to shift the network out of zeros (e.g.,
9037	128.59.16) and try again.  Irix 6.4 requires short network
9038	numbers.
9039
90401999-08-22  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9041
9042	* libamu/wire.c (getwire_lookup): correctly compute subnet using
9043	netmask.
9044
9045	* libamu/mount_fs.c (compute_automounter_nfs_args): require that
9046	Amd's own NFS mounts use reserved ports (if possible).  IP packet
9047	security fix from Jeffrey C Honig <jch@BSDI.COM>.
9048
9049	* conf/transp/transp_tli.c (create_autofs_service): use correct
9050	autofs_port.  IP packet security fix from Jeffrey C Honig
9051	<jch@BSDI.COM>.
9052
9053	* conf/transp/transp_sockets.c (bindnfs_port): remove unnecessary
9054	function.  IP packet security fix from Jeffrey C Honig
9055	<jch@BSDI.COM>.
9056	(create_nfs_service): use bind_resv_port() directly.  ensure that
9057	privileged ports are used.  IP packet security fix from Jeffrey C
9058	Honig <jch@BSDI.COM>.
9059
9060	* amd/nfs_prot_svc.c (nfs_program_2): verify that requests come
9061	from reserved ports and from a local IP address.  IP packet
9062	security fix from Jeffrey C Honig <jch@BSDI.COM>.
9063
9064	* amd/amq_subr.c (ok_security): use IPPORT_RESERVED, instead of
9065	hard-coded 1024.  IP packet security fix from Jeffrey C Honig
9066	<jch@BSDI.COM>.
9067	(amqproc_mount_1_svc): provide information on the caller making an
9068	amq -M request.  IP packet security fix from Jeffrey C Honig
9069	<jch@BSDI.COM>.
9070
9071	* amd/map.c (free_map_if_success): If the program doing an unmount
9072	of a program filesystem fails, amd tries to interpret the return
9073	code as an errno.  Fix from Jeffrey C Honig <jch@BSDI.COM>.
9074
9075	* amd/info_nis.c (determine_nis_domain): don't always print
9076	warning about NIS domain name not being set, even if NIS is not in
9077	use.
9078
90791999-08-21  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9080
9081	* amd/info_ldap.c (get_ldap_timestamp): initialize variable err.
9082	(amu_ldap_search): initialize variable err.
9083
90841999-08-16  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9085
9086	* libamu/wire.c: written using getifaddrs() for BSD systems,
9087	contributed by BSDI, Jeffrey C Honig <jch@BSDI.COM>).
9088
90891999-08-15  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9090
9091	* include/am_utils.h (SALLOC): a simple macro to allocate N bytes.
9092
9093	* aux/configure.in: check for irs.h and ifaddrs.h.
9094	Increase libamu.so --version-info to 3:1:1 since we've changed the
9095	source code for the library.
9096	Check for getifaddrs() function.
9097
90981999-08-14  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9099
9100	* libamu/mount_fs.c (print_nfs_args): print fields namlen and
9101	bsize if they exist.
9102
9103	* conf/mount/mount_linux.c (mount_linux): set nfs_args_t->namlen
9104	and ->bsize fields correctly, if those fields exist.  This is a
9105	bug in that amd neglected to set these fields, but told the
9106	kernel it is mounting the nfs_args_t structure using mount version
9107	3 (which requires both bsize and namlen fields).
9108
9109	* aux/configure.in: test for two new nfs_args_t fields (used on
9110	newer linux with mount versions 2 and 3): bsize and namlen.
9111
9112	* doc/am-utils.texi (netgrpd Selector Function): document new
9113	selector function.
9114
9115	* amd/opts.c (f_netgrpd): new amd map function netgrpd(ARG) to
9116	test if the current host (fully-qualified name) is in the ARG host
9117	netgroup.  The netgrp() function uses the short form of a host
9118	name.  Patch from Christophe Kalt <Christophe-Kalt@deshaw.com>.
9119
9120	* doc/am-utils.texi (automount2amd): document new script.
9121
9122	* scripts/Makefile.am: create, install, and distribute
9123	automount2amd perl script and its man page.
9124
9125	* scripts/automount2amd.8: new man page for automount2amd.
9126
9127	* scripts/automount2amd.in: new file, contributed a in 1993 by
9128	Mike Walker <mike@tab00.larc.nasa.gov>.  Fixed to use addopts for
9129	any automount map options specified.
9130
91311999-08-09  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9132
9133	* released snapshot am-utils-6.0.1s9
9134
91351999-08-09  Erez Zadok  <ezk@beetle.mcl.cs.columbia.edu>
9136
9137	* amd/amfs_auto.c (DOT_DOT_COOKIE): set the NFS cookie of '..' to
9138	1.
9139	(amfs_auto_readdir): use DOT_DOT_COOKIE instead of (u_int)~0.
9140	(amfs_auto_readdir_browsable): use DOT_DOT_COOKIE instead of
9141	(u_int)~0.
9142
9143	* amd/mapc.c (make_entry_chain): NFS cookies should be
9144	monotonically increasing, because Linux 2.3 expects that, even
9145	though it is not in the spec (RFC-1094) for NFS V2.
9146
91471999-08-06  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9148
9149	* aux/macros/check_lib_funcs.m4: removed unused macro.
9150
9151	* aux/macros/linux_headers.m4: new macro to ensure that linux
9152	kernel headers match running kernel version.
9153
9154	* aux/acconfig.h: define HOST_HEADER_VERSION so we can check if
9155	amd is configured on linux hosts that run one kernel but have
9156	headers for a different version.
9157
9158	* amd/info_nis.c (nis_isup, nis_search, nis_init): fixes for the
9159	logic which uses nis_isup and has_yp_order.  Make sure it is used
9160	correctly , esp. for NIS+ in NIS-compatibility mode.  Bug fix from
9161	Peter Breitenlohner <peb@mppmu.mpg.de>.
9162
9163	* include/am_defs.h: fix conflicts on linux 2.2 systems with older
9164	libc5.  Bug fix from Peter Breitenlohner <peb@mppmu.mpg.de>.
9165
9166	* scripts/lostaltmail.in: use sockaddr_in(), not pack() to
9167	correctly fill in a struct sockaddr_in.  On Solaris x86 hosts,
9168	using pack() results in byte-misaligned values.
9169
91701999-08-02  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9171
9172	* conf/mtab/mtab_aix.c (mnt_dup): add support for nfs3
9173	mounting, as per Dale Talcott <aeh@quest.cc.purdue.edu>.  Also use
9174	better macros for case statement.
9175
9176	* conf/nfs_prot/nfs_prot_sunos5_7.h: don't include ldap structures
9177	unless ldap is actually available.
9178
9179	* use updated config.guess and config.sub.  Use newer automake
9180	that fixes problems with distributing optional libamu files
9181	(clnt_sperrno.c, hasmntopt.c, strcasecmp.c, strdup.c, strstr.c,
9182	and ualarm.c)
9183
91841999-07-19  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9185
9186	* minor port i386-unknown-openbsd2.5
9187
91881999-07-17  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9189
9190	* minor ports to freebsdelf 3.[0-2] and 4.0 completed
9191
9192	* aux/macros/check_nfs_prot_headers.m4: support freebsdelf
9193
9194	* aux/macros/check_nfs_socket_connection.m4: support freebsdelf
9195
91961999-06-24  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9197
9198	* released snapshot am-utils-6.0.1s8
9199
92001999-06-23  Erez Zadok  <ezk@beetle.mcl.cs.columbia.edu>
9201
9202	* include/am_defs.h: avoid various header conflicts on
9203	RedHat/Linux 6.0 and kernels 2.2.10 or newer.
9204
9205	* aux/configure.in: look for <db1/ndbm.h> (RedHat/Linux 6.0 and
9206	kernel 2.2.10)
9207
9208	* amd/amfs_program.c (amfs_program_exec): make sure logfp is
9209	initialized dynamically to stderr if needed.
9210
9211	* libamu/xutil.c (dplog): make sure logfp is initialized
9212	dynamically to stderr if needed.
9213	(plog): ditto.
9214
9215	* amd/amfs_program.c (amfs_program_exec): set logfp to stderr if
9216	not initialized.
9217
9218	* libamu/xutil.c: don't initialize logfp statically to stderr,
9219	because on RedHat/Linux 6.0 (kernel 2.2.10) stderr can no longer
9220	be manipulated like a variable.
9221
9222	* include/am_defs.h: avoid more conflicts between <linux/fs.h> and
9223	<sys/mount.h> on 2.2 linux kernels.
9224	include <db1/ndbm.h> as needed (RedHat/Linux 6.0)
9225
92261999-04-20  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9227
9228	* all Makefile.am: use AMU_NFS_PROT_HEADER (not *_HEADERS)
9229
9230	* aux/macros/check_nfs_prot_headers.m4 (AMU_NFS_PROT_HEADER):
9231	renamed AC_SUBST name from *_HEADERS to *_HEADER so that automake
9232	won't attempt to add it to the header files to distribute.
9233
92341999-04-19  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9235
9236	* aux/GNUmakefile: invoke aclocal with new --altdir flag.
9237
92381999-04-16  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9239
9240	* minor new port: i386-unknown-netbsd1.4 (ALPHA)
9241
9242	* aux/macros/check_field.m4: no need to include <cdfs/cdfsmount.h>
9243	and <isofs/cd9660/cd9660_mount.h> because they are also included
9244	from MOUNT_HEADERS.  Causes multiple inclusion of unprotected
9245	headers on netbsd-1.4_ALPHA.
9246
92471999-04-15  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9248
9249	* aux/macros/extern_sys_errlist.m4 (pattern): netbsd-1.4_ALPHA's
9250	sys_errlist extern doesn't end with [].
9251
9252	* aux/macros/check_nfs_prot_headers.m4: netbsd 1.4 support.
9253
92541999-04-11  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9255
9256	* newer automake wants texinfo.tex to be in aux/ not doc/
9257
92581999-03-30  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9259
9260	* amd/conf_parse.y: alloca support.
9261
9262	* fsinfo/fsi_gram.y: alloca support.
9263
9264	* libamu/Makefile.am (libamu_la_LIBADD): compile alloca.o if
9265	needed.
9266
9267	* aux/configure.in: test for alloca support.  Needed because bison
9268	generates parsers that use alloca, and hpux9 does have alloca and
9269	its /bin/cc doesn't support it builtin (the way gcc does).
9270
9271	* libamu/alloca.c: new file, needed on hpux9 with /bin/cc.  Taken
9272	verbatim from bison-1.25.
9273
9274	* include/am_defs.h: fixed typo #errir -> #error
9275
9276	* released snapshot am-utils-6.0.1s7
9277
9278	* README.y2k: more information about am-utils' compatibility, from
9279	Paul Balyoz <pbalyoz@sedona.ch.intel.com>.
9280
9281	* scripts/lostaltmail.in (Splice_in_resent_headers): ensure Y2K
9282	compliant format.  Patch from Paul Balyoz
9283	<pbalyoz@sedona.ch.intel.com>
9284
9285	* doc/am-utils.texi (Supported Platforms): hpux10.20 could have
9286	nfs v.3 support (with some vendor patches), but it is turned off.
9287
9288	* aux/macros/os_cflags.m4: use ansi compiler options on hpux.
9289
9290	* conf/nfs_prot/nfs_prot_hpux.h: Turn off NFS V.3 support to avoid
9291	confusing am-utils.  10.20 with some patches has incomplete
9292	support.  Patch from Jon Peatfield
9293	<J.S.Peatfield@damtp.cam.ac.uk>.
9294
92951999-03-24  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9296
9297	* minor port i386-pc-bsdi4.0.1
9298
92991999-03-20  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9300
9301	* doc/am-utils.texi (Supported Platforms): add forgotten listing
9302	for powerpc-linux.
9303
93041999-03-18  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9305
9306	* scripts/amd.conf.5: fix typo.  From Jeffrey C Honig
9307	<jch@BSDI.COM>.
9308
9309	* doc/am-utils.texi: document iso9660 options norrip, gens, and
9310	extatt.
9311	(opts Option): documented dumbtimr and noauto options.  From
9312	Jeffrey C Honig <jch@BSDI.COM>.
9313
9314	* include/am_compat.h: define default strings for options norrip,
9315	gens, and extatt.
9316
9317	* amd/ops_cdfs.c (mount_cdfs): support options norrip, gens, and
9318	extatt.
9319
9320	* aux/macros/mount_headers.m4: also include
9321	<isofs/cd9660/cd9660_mount.h> as needed.
9322
9323	* aux/configure.in: check for isofs mount options for bsdi4:
9324	norrip, gens, and extatt.  Reported by Jeffrey C Honig
9325	<jch@BSDI.COM>.
9326
9327	* aux/macros/check_mnt2_cdfs_opt.m4: check for ISOFSMNT_* flags
9328	(bsdi4).
9329
93301999-03-17  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9331
9332	* conf/nfs_prot/nfs_prot_freebsd3.h: ditto.
9333
9334	* conf/nfs_prot/nfs_prot_bsdi3.h: include <ufs/ufs/ufsmount.h>,
9335	for bsdi4, as per Jeffrey C Honig <jch@BSDI.COM>.
9336
93371999-03-15  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9338
9339	* get latest copies of config.guess, config.sub, ltconfig, and
9340	ltmain.sh from libtool-1.2f.
9341
9342	* all Makefile.am: don't use continuation lines (using \) for
9343	short lists of files.
9344
9345	* libamu/Makefile.am (DISTCLEANFILES): make distclean should
9346	remove mountutil.c, mtabutil.c, transputil.c, and umount_fs.c.
9347	Reported by Jeffrey C Honig <jch@BSDI.COM>.
9348
9349	* fixmount/Makefile.am (DISTCLEANFILES): make distclean should
9350	remove checkmount.c.  Reported by Jeffrey C Honig <jch@BSDI.COM>.
9351
9352	* Makefile.am (DISTCLEANFILES): make distclean should remove
9353	amu_nfs_prot.h, config.cache.old, and dbgcf.h.  Reported by
9354	Jeffrey C Honig <jch@BSDI.COM>.
9355
93561999-03-13  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9357
9358	* released snapshot am-utils-6.0.1s6
9359
93601999-03-12  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9361
9362	* INSTALL: document freebsdelf.
9363
9364	* doc/am-utils.texi (Supported Platforms): document freebsdelf.
9365
93661999-03-08  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9367
9368	* minor new ports: i386-unknown-freebsdelf3.1 and
9369	i386-unknown-freebsdelf4.0
9370
9371	* aux/macros/check_nfs_prot_headers.m4: freebsd4 support.
9372
9373	* aux/macros/check_nfs_socket_connection.m4: freebsd4 support.
9374
9375	* aux/macros/check_nfs_fh_dref.m4: freebsd4 support.
9376
9377	* amd/opts.c (eval_opts): changed log level of "executing
9378	negated..." message from USER to INFO, as per Guntram Wolski
9379	<gwolsk@sei.com>.
9380
93811999-02-17  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9382
9383	* */Makefile.am (LDADD): force linking against an installed
9384	libamu.{a,so}.
9385
9386	* doc/am-utils.texi (addopts Option): document remopts interaction
9387	with addopts.
9388
9389	* amd/am_ops.c (ops_match): if addopts are specified, apply them
9390	to the value of remopts as well as opts.
9391
9392	* amd/ops_nfs.c (mount_nfs_fh): tell users when remopts are used.
9393
93941999-02-05  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9395
9396	* released snapshot am-utils-6.0.1s5
9397
9398	* conf/mount/mount_linux.c (mount_linux): set default nfs_args
9399	options for ac{reg,dir}{min,man} as per the mount-2.8a package,
9400	but only if noac option was not used.
9401
94021999-02-05  Erez Zadok  <ezk@retro.cs.columbia.edu>
9403
9404	* conf/mount/mount_linux.c (mount_linux): print nfs_args again
9405	since it was updated.
9406	(mount_linux): use 4KB for NFS rsize/wsize on 2.1.0 linux kernels
9407	and newer.  Bug was found by Neil Conway
9408	<nconway.list@ukaea.org.uk>
9409
94101999-02-04  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9411
9412	* released snapshot am-utils-6.0.1s4
9413
94141999-02-03  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9415
9416	* amq/amq.c (main): don't list -M as a valid amq option unless
9417	configure'd with --enable-amq-mount.
9418
9419Wed Feb  3 18:11:18 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9420
9421	* amd/nfs_start.c (amd_use_autofs): Define.
9422	(mount_automounter): Create autofs service listener only if
9423	necessary to avoid unnecessary clashes with e.g. automountd.
9424
9425	* amd/amd.h (amd_use_autofs): Declare.
9426
9427	* amd/conf.c (gopt_mount_type): Set amd_use_autofs.
9428	(ropt_mount_type): Likewise.
9429
94301999-02-02  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9431
9432	* aux/macros/check_mnt2_nfs_opt.m4:: ditto
9433
9434	* aux/macros/check_mnt2_cdfs_opt.m4: ditto
9435
9436	* aux/macros/check_mnt2_gen_opt.m4: ditto
9437
9438	* aux/macros/check_mnttab_opt.m4: new macro in this file to loop
9439	over AC_CHECK_MNTTAB_OPT.  Reduces size of configure script a lot.
9440
9441	* conf/nfs_prot/nfs_prot_netbsd1_3.h: include nfs/rpcv2.h,
9442	nfs/nfs.h and nfs/nfsmount.h if they exist.  Patch from
9443	christos@zoulas.com (Christos Zoulas).
9444
9445	* amd/info_hesiod.c: some forward declarations.  Patch from
9446	christos@zoulas.com (Christos Zoulas).
9447
94481999-01-28  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9449
9450	* libamu/mount_fs.c (compute_nfs_args): don't turn on/off noconn
9451	option if it was already in that state.  Patch from David
9452	Wolfskill <dhw@whistle.com>.
9453
94541999-01-20  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9455
9456	* aux/configure.in: automake nowadays supports LTLIBOBJS (but not
9457	LTALLOCA yet).  Substitute value of LIBTOOL_DEPS for libtool
9458	rebuild make rules.
9459
9460	* Makefile.am: new rules to remake libtool (maintainers only)
9461
9462	* amd/amfs_toplvl.c (mount_amfs_toplvl): print generic mount flags
9463	if -D trace was used.
9464
94651999-01-18  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9466
9467	* buildall: all if statements should have an else clause because
9468	of Ultrix's /bin/sh.
9469
94701999-01-15  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9471
9472	* amq/amq.c: removed dummy variables.
9473
9474	* amq/pawd.c: removed dummy variable.s
9475
9476	* fixmount/fixmount.c (usage): removed dummy variables.
9477
9478	* fsinfo/fsinfo.c: removed dummy variables.
9479
9480	* hlfsd/hlfsd.c: removed dummy variables.
9481
9482	* wire-test/wire-test.c: removed dummy variables.
9483
9484	* mk-amd-map/mk-amd-map.c: removed dummy variables.
9485
9486	* doc/texinfo.tex: updates from GNU mirror.
9487
9488	* aux/GNUmakefile (../doc/texinfo.tex): new rule to update
9489	doc/texinfo.tex from GNU mirror.
9490
9491	* released snapshot am-utils-6.0.1s3
9492
9493	* Makefile.am (install-snapshot): better snapshot and new
9494	install-snapshot and test-snapshot rules (maintainer).
9495
9496	* amd/info_ldap.c (amu_ldap_init): don't run STREQ if one of the
9497	args may be NULL.
9498	Some dlog() entries were not enclosed in #ifdef DEBUG.  Fix from
9499	Bill Paul <wpaul@ctr.columbia.edu>
9500
95011999-01-13  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9502
9503	* check for experimental generic 'ignore' mount flag on freebsd3.
9504
9505	* Update library -version-info to 3:0:1 (will result in 2.1.0 .so
9506	version, which is backwards compatible with older versions.)  Only
9507	one new interface was added to libamu.
9508
9509	* amd/amfs_toplvl.c (mount_amfs_toplvl): add generic mount flags
9510	that are specific to automounter mounts.
9511
9512	* aux/configure.in: update libamu.so age and revision since a new
9513	interface was added to libamu/mount_fs.c
9514	(compute_automounter_mount_flags).
9515
9516	* libamu/mount_fs.c (compute_automounter_mount_flags): new
9517	function to compute generic mount flags that are specific to mount
9518	points only.
9519
9520	* aux/{configure.in,acconfig.h}: add support for generic mount
9521	entry ignore option.
9522
9523	* released snapshot am-utils-6.0.1s2
9524
9525	* amd/info_ldap.c (get_ldap_timestamp): dlog format fixes.
9526
9527	* libamu/mount_fs.c (print_nfs_args): solaris 2.7 changed format
9528	of knc_semantics from u_long to u_int.
9529
9530	* aux/macros/check_mount_style.m4: freebsd3 no longer needs a
9531	special mount helper.
9532
95331999-01-12  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9534
9535	* aux/macros/check_nfs_prot_headers.m4 (AMU_NFS_PROT_HEADERS):
9536	amu_nfs_conf.h should always be found in $top_builddir.
9537
9538Tue Jan 12 00:05:42 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9539
9540	* conf/nfs_prot/nfs_prot_sunos5_7.h (MNTTAB_TYPE_AUTOFS): Undefine
9541	to avoid wrong reports from show_fstypes.
9542
9543	* conf/nfs_prot/nfs_prot_irix5.h (MNTTAB_TYPE_XFS): Likewise.
9544
9545	* conf/nfs_prot/nfs_prot_hpux11.h (MNTTAB_TYPE_NFS3): Likewise.
9546
9547Tue Jan 12 00:05:42 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9548
9549	* BUGS (mips-dec-ultrix4.3): Update Ultrix caveats.
9550
9551Tue Jan 12 00:05:42 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9552
9553	* hlfsd/homedir.c (delay): Cast child to long, adapt format.
9554	(hlfsd_getpwent): Likewise for pw_uid.
9555
9556	* amd/info_nis.c (nis_init): Cast order to unsigned long, adapt
9557	format.
9558
9559	* conf/transp/transp_tli.c (amu_clnt_create_best_vers): Cast
9560	tv_sec to int to match format.
9561	(get_nfs_version): Cast nfs_version, NFS_VERSION to int to match
9562	formats.
9563
9564	* amd/amfs_program.c (amfs_program_exec): Cast ptr difference to
9565	long, adapt format.
9566
9567	* include/am_defs.h: Handle __attribute__ if available.  From
9568	GNU fileutils 4.0 lib/errors.h.
9569
9570Mon Jan 11 13:46:44 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9571
9572	* libamu/mount_fs.c (print_nfs_args): Cast sizeof() to int to
9573	match format.
9574
9575	* hlfsd/stubs.c (nfsproc_getattr_2_svc): Cast uid, gid to long,
9576	adapt format.
9577	(nfsproc_lookup_2_svc): Likewise.
9578	(nfsproc_readlink_2_svc): Likewise for userid, groupid.
9579
9580	* hlfsd/nfs_prot_svc.c (nfs_program_2): Cast args to int to match
9581	format.
9582
9583	* hlfsd/homedir.c (homedir): Cast uid, child to long, adapt
9584	format.
9585
9586	* amd/info_hesiod.c (hesiod_search): Cast m, pval, tp to unsigned
9587	long, adapt format.
9588
9589	* amd/ops_nfs.c (find_nfs_fhandle_cache): Cast fh_wchan to
9590	unsigned long, adapt format.
9591	(got_nfs_fh): Likewise.
9592	(prime_nfs_fhandle_cache): Cast fh_nfs_version to int to match
9593	format.
9594	(call_mountd): Likewise, mnt_version also.
9595	(mount_nfs_fh): Likewise.
9596
9597	* amd/ops_autofs.c (autofs_program_1): Cast args to int to match
9598	format.
9599	(autofs_unmount_1_svc): Cast ur->devid, ur_rdevid, ur->next to
9600	unsigned long, adapt formats.
9601	(autofs_bgmount): Cast opt_fs to unsigned to, adapt format.
9602	(autofs_bgmount): Use long format to match arg.
9603	(autofs_lookuppn): Removed superfluous arg.
9604
9605	* amd/srvr_nfs.c (start_ping): Cast nfs_version to int to match
9606	format.
9607	(got_portmap): Likewise for port.
9608	(recompute_portmap): Likewise for fs->fs_version, mnt_version.
9609	(find_nfs_srvr): Likewise for nfs_version.
9610
9611	* amd/sched.c (sched_task): Cast wchan to unsigned long, adapt
9612	format.
9613
9614	* amd/nfs_start.c (checkup): Cast ptr difference to long, next_mem
9615	to unsigned long, adapt format.
9616	Cast tvv.tv_sec to int to match format.
9617
9618	* amd/nfs_prot_svc.c (nfs_program_2): Cast args to int to match
9619	format.
9620
9621	* amd/map.c (root_fh): Cast pid to long, adapt format.
9622	(timeout_mp): Cast time_t to long, adapt format.
9623
9624	* amd/clock.c (reschedule_timeouts): Use long format, cast time_t
9625	arg.
9626
9627	* amd/amfs_host.c (fetch_fhandle): Cast nfs_version to int to
9628	match format.
9629	(amfs_host_fmount): Likewise.
9630	(amfs_host_umounted): Likewise.  Removed superfluous arg.
9631
9632	* amd/amfs_auto.c (amfs_auto_bgmount): Cast pointer to unsigned
9633	long, adapt format.
9634	(amfs_auto_bgmount): Use long format, cast time_t arg.
9635	(amfs_auto_lookuppn): Removed superfluous arg.
9636
9637	* amd/amd.c (main): Cast geteuid() result to long, adapt format.
9638
9639	* conf/transp/transp_sockets.c (get_nfs_version): Cast nfs_version
9640	to int to match format.
9641
9642	* include/am_utils.h: Declare plog, dplog as printf-like.
9643
9644	* conf/mount/mount_irix6.c (mount_irix): Print type as char *.
9645
9646Mon Jan 11 13:46:44 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9647
9648	* amd/info_hesiod.c (hesiod_isup): New function.
9649	* amd/mapc.c (maptypes): Add it.
9650
96511999-01-10  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9652
9653	* released snapshot am-utils-6.0.1s1
9654
96551999-01-09  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9656
9657	* ALL: bump copyright year to 1999.
9658
9659Fri Jan  8 15:24:15 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9660
9661	* aux/macros/check_mtype_type.m4: Ultrix uses an int mount type,
9662	too.
9663
9664	* aux/macros/check_mtype_printf_type.m4: Adapt corresponding
9665	printf type.
9666
9667Fri Jan  8 15:24:15 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9668
9669	* aux/acconfig.h: Removed HAVE_AM_FS_AUTOFS, unused.
9670
9671	* conf/nfs_prot/nfs_prot_irix6.h: Likewise.
9672
9673	* conf/nfs_prot/nfs_prot_sunos5_6.h: Likewise.
9674
9675	* conf/nfs_prot/nfs_prot_sunos5_7.h: Likewise.
9676
9677	* Makefile.am (EXTRA_DIST_DIRS): Removed, not needed by current
9678	automake.
9679
9680Thu Jan  7 02:55:18 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9681
9682	* aux/configure.in (AM_PROG_YACC): Replaced by AC_PROG_YACC, not
9683	in current automake.
9684
9685Thu Jan  7 02:55:18 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9686
9687	* doc/am-utils.texi: Added some missing inter-punctation after
9688	@xref, or use @pxref/@ref as appropriate.  Spotted by makeinfo
9689	from texinfo 3.12b.
9690
96911999-01-07  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9692
9693	* doc/texinfo.tex: updated off of latest GNU mirror.
9694
96951999-01-04  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9696
9697	* doc/am-utils.texi (Supported Platforms): update platforms that
9698	support NFS v.3.  Nicer postscript printing on double-sided pages.
9699
9700	* amd/info_hesiod.c: add extern definition for hesiod_init()
9701
97021999-01-01  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9703
9704	*******************************************************************
9705	*** Released am-utils-6.0					***
9706	*******************************************************************
9707
97081998-12-28  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9709
9710	* conf/nfs_prot/nfs_prot_sunos5_7.h: support ldap in solaris 2.7.
9711
97121998-12-27  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9713
9714	* conf/nfs_prot/nfs_prot_bsdi3.h: don't use reserved ports on
9715	bsdi4 for NFS V3/nfs mounts.
9716
97171998-12-26  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9718
9719	* using latest libtool (1.2e + patches), now supporting shared
9720	libraries on many more systems.  Also using latest autoconf and
9721	automake (unreleased GNU CVS'd versions.)
9722
9723	* minor new ports: hppa2.0w-hp-hpux11.00,
9724	i386-unknown-netbsd1.3.3, mips-sgi-irix6.5.
9725
9726	* fsinfo/fsinfo.h (yywrap): define it for systems (osf4) that
9727	have /usr/bin/flex but not libfl.
9728
97291998-12-24  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9730
9731	* lots of code cleanup, to make sure libamu.so does not use
9732	undefined symbols.  Some system's shared libraries cannot handle
9733	that.
9734
97351998-12-23  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9736
9737	* include/am_defs.h: only defined seteuid extern if function also
9738	exists and is not superceded by setresuid (hpux).
9739
9740	* amd/ops_autofs.c (autofs_bgmount, autofs_lookuppn): put explicit
9741	braces to avoid confusion with nested if-then-else clauses.
9742
9743	* aux/config.{sub,status}, aux/{ltmain.sh,ltconfig,mkinstalldirs:
9744	updated from latest versions.
9745
97461998-12-22  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9747
9748	* minor new port: i386-pc-bsdi4.0
9749
9750	* conf/nfs_prot/nfs_prot_bsdi3.h: add missing hesiod header
9751	definitions for bsdi4.
9752
9753	* {amd,fsinfo}/Makefile.am: force path to .y/.l files, because
9754	some make programs (bsdi4) do not support VPATH correctly.
9755
97561998-12-16  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9757
9758	* conf/mount/mount_aix.c: minor code cleanup
9759
9760	* aux/configure.in: check for extern definition to xdr_groups.
9761
97621998-12-15  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9763
9764	* minor new port: powerpc-ibm-aix4.3.1.0
9765
9766	* aux/macros/*.m4: updates for aix 4.3
9767
97681998-12-14  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9769
9770	* minor new port: i386-unknown-openbsd2.4
9771
9772	* aux/configure.in: don't check for xfs on openbsd because
9773	openbsd-2.4 introduces a new file system named xfs, but different
9774	than Irix's XFS.  Sigh.
9775
9776	* minor new port: i386-unknown-freebsd2.2.8
9777
97781998-12-03  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9779
9780	* amd/amfs_nfsl.c (amfs_nfsl_ffserver): use case insensitive host
9781	name match.  Bug fix from Douglas K. Rand" <rand@aero.und.edu>.
9782
97831998-11-20  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9784
9785	* scripts/ctl-amd.in: wait4amd2die runs in the stop action, to
9786	avoid race conditions when shutting down systems running amd.
9787
9788	* Makefile.am: add a dist-hook to change modes of the directories
9789	in the tar file so they are not world writable.
9790
9791	* conf/nfs_prot/nfs_prot_freebsd3.h: turned on NFSv3 support,
9792	since it is now finally defined in the header files and
9793	(hopefully) stable.
9794
9795	* amd/srvr_nfs.c (find_nfs_srvr): allow overriding if nfsv2 option
9796	is specified in mount options.  freebsd patches from David
9797	O'Brien.
9798
9799	* amq/amq.c (main), fixmount/fixmount.c (main), hlfsd/hlfsd.c
9800	(main), fsinfo/fsinfo.c (fsi_get_args), hlfsd/hlfsd.c (main),
9801	amd/get_args.c (get_args): posix: use -1 to check for return from
9802	getopt() (not EOF), as per posix.
9803
9804	* amd/amq_subr.c (xdr_amq_mount_tree_node): patches from "David
9805	O'Brien" <obrien@NUXI.com>, from the FreeBSD source tree.  Use
9806	real variable whose pointer is on the stack for decoding a long
9807	int.
9808
98091998-11-11  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9810
9811	* scripts/ctl-{amd,hlfsd}.in: include comments useful for redhat's
9812	chkconfig utility.
9813
98141998-11-10  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9815
9816	* released snapshot am-utils-6.0b2s3
9817
9818	* conf/transp/transp_sockets.c (create_nfs_service): remove C++
9819	style comments.
9820
98211998-11-04  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9822
9823	* released snapshot am-utils-6.0b2s2
9824
9825	* created CVS package
9826
9827	* amd/nfs_subr.c (nfsproc_lookup_2_svc): try to avoid a race
9828	condition between unmounting and re-mounting an entry, by
9829	increasing the ttl of a looked up entry before unmounting it.
9830	Patch from Mike Mitchell <mcm@unx.sas.com>.
9831
9832	* All files: spell comments and strings.
9833
98341998-11-03  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9835
9836	* aux/configure.in: look for yp_all in libnsl only if yp_all not
9837	already found elsewhere (in libc or other default libraries).
9838	This is so RedHat 5.1 systems could find yp functions in libnsl,
9839	but also so AIX 4.2.1 will NOT include libnsl, because the latter
9840	has broken nis functionality that also exists and works ok in libc.
9841
98421998-10-29  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9843
9844	* amd/amd.c (main): bug fix: swapped arguments to kill(2).  Fix
9845	from Danny Rathjens <dkr@cs.fiu.edu>.
9846
98471998-10-28  Erez Zadok  <ezk@spruce.mcl.cs.columbia.edu>
9848
9849	* released snapshot am-utils-6.0b2s1
9850
98511998-10-27  Erez Zadok  <ezk@spruce.mcl.cs.columbia.edu>
9852
9853	* aux/macros/*.m4: support bsdi4 as bsdi3.
9854
9855	* aux/macros/os_ldflags.m4: enable detection of LDAP on solaris
9856	2.7 (libraries located in /usr/lib/fn).  This is off until Sun
9857	includes LDAP header information.
9858
98591998-10-20  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9860
9861	*******************************************************************
9862	*** Released am-utils-6.0b1					***
9863	*******************************************************************
9864
98651998-10-18  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9866
9867	* mk-amd-map/mk-amd-map.c (main): use perror not strerror.
9868	(main): set return type to int if no ndbm maps.
9869
9870	* include/am_defs.h: avoid conflicts with <sys/mount.h> in 2.1
9871	kernels.
9872
98731998-10-18  Erez Zadok  <ezk@london.mcl.cs.columbia.edu>
9874
9875	* A.i386-unknown-netbsd1.3.2/amu_nfs_prot.h: trim down and cleanup
9876	for netbsd 1.3.2.
9877
98781998-10-17  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9879
9880	* aux/configure.in: check for yp_all in libnsl, b/c redhat 5.1
9881	systems put NIS functions there.
9882
9883	* mk-amd-map/mk-amd-map.c: patch from "David O'Brien"
9884	<obrien@NUXI.com> merged in.  Use POSIX -1 return code from
9885	getopt(), not EOF.  Use .db extentions for systems that use it,
9886	instead of .{pag,dir}.
9887
98881998-10-15  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9889
9890	* wire-test/wire-test.c, hlfsd/hlfsd.c, fixmount/fixmount.c,
9891	amd/amd.c (main): avoid overrunning hostname buffer.  Bug fix from
9892	"David O'Brien" <obrien@NUXI.com>.
9893
9894	* scripts/amd.conf.5: minor typo reported by "David O'Brien"
9895	<obrien@NUXI.com> in .TH section of man page.
9896
9897	* amd/info_nis.c (am_yp_all): don't leak key-val entries.  Patch
9898	from Thomas Richter <richter@chemie.fu-berlin.de>.
9899
99001998-10-12  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9901
9902	* doc/am-utils.texi (Program Filesystem): minor typo fixed as per
9903	Andreas Stolcke <stolcke@speech.sri.com>.
9904
9905	* minor new ports: sparc64-unknown-linux-gnu, i386-pc-solaris2.7,
9906	and sparc-sun-solaris2.7.
9907
9908	* conf/mount/mount_freebsd3.c (mount_freebsd3): freebsd 3.0 is now
9909	a 4.4lite kernel, and somethings were removed, such as
9910	INITMOUNTNAMES.
9911
9912	* amd/ops_autofs.c (autofs_lookuppn): don't leak memory while
9913	processing /defaults.  Free temporary opts.  Patch from
9914	dsr@mail.lns.cornell.edu (Daniel S. Riley)
9915
9916	* amd/amfs_auto.c (amfs_auto_lookuppn): don't leak memory while
9917	processing /defaults.  Free temporary opts.  Patch from
9918	dsr@mail.lns.cornell.edu (Daniel S. Riley)
9919
9920	* conf/mtab/mtab_osf.c (read_mtab): patch from
9921	 dsr@mail.lns.cornell.edu (Daniel S. Riley) not to access
9922	 uninitialized memory on Digital Unix.
9923
99241998-10-09  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9925
9926	* aux/macros/{check_mtype_type,check_mtype_printf_type}.m4: most
9927	systems now use "char *" as their mount type.
9928
99291998-10-08  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9930
9931	* amd/conf.c (gopt_map_type, ropt_map_type): check if map type
9932	exists.
9933
9934	* amd/mapc.c (mapc_type_exists): function to test if a map of
9935	certain type exists.
9936
99371998-10-08  Erez Zadok  <ezk@horatio.mcl.cs.columbia.edu>
9938
9939	* aux/macros/{mount_headers,try_compile_anyfs,try_compile_nfs}.m4,
9940	include/am_defs.h: Avoid a conflict in definitions of ntohl/htonl
9941	in RH-5.1 sparc64 between <netinet/in.h> and
9942	<linux/byteorder/generic.h> (2.1 kernels).
9943
99441998-09-28  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9945
9946	* aux/macros/func_bad_yp_all.m4 (ac_cv_func_yp_all_clean): RedHat
9947	5.1 systems with glibc glibc-2.0.7-19 or below leak a UDP socket
9948	from yp_all().
9949
99501998-09-25  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9951
9952	* conf/mount/mount_linux.c (parse_opts): check for pcfs support
9953	only if autoconfigured.
9954
99551998-09-18  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9956
9957	* Makefile.am (EXTRA_DIST): distribute README.yk2 file.
9958
9959	* README.y2k: explain y2k compliance status of am-utils.
9960
99611998-09-16  Erez Zadok  <ezk@iguana.mcl.cs.columbia.edu>
9962
9963	* amd/amfs_host.c (fetch_fhandle, amfs_host_fmount,
9964	amfs_host_umounted): clnt_sperrno() may return a const.
9965
9966Sat Aug  8 23:28:32 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9967
9968	* aux/configure.in: check for <nfs/nfsmount.h>, as per Christos
9969	Zoulas. Turned on checking for mount options: async, synchronous,
9970	deadthresh, leasterm, nqnfs, and readahead.
9971
9972	* amd/info_nis.c: patch from christos@zoulas.com (Christos Zoulas)
9973	to include prototype definition for nis_isup().
9974
9975Sun Jul 19 18:50:10 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9976
9977	* hlfsd/stubs.c (getcreds): force sscanf arg to u_long.
9978
9979Tue Jul 14 20:34:25 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9980
9981	* released snapshot am-utils-6.0a17s1
9982
9983Wed Jul  8 21:49:15 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9984
9985	* aux/macros/host_macros.m4: all x86 hosts should have $arch be
9986	i386, not i[456]86.
9987
9988Tue Jul  7 18:55:09 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
9989
9990	* aux/macros/{mount_headers,try_compile_anyfs,try_compile_nfs}.m4,
9991	include/am_defs.h: include <linux/posix_types.h> before
9992	<linux/fs.h> because on redhat 5.1, there is a bug (misuse) of
9993	headers in <socketbits.h> (it defines _LINUX_TYPES_H instead of
9994	__KERNEL_STRICT_NAMES).
9995
9996	* aux/configure.in: check for <linux/posix_types.h> because it is
9997	need for RedHat 5.1.
9998
9999Wed Jun 17 00:05:33 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10000
10001	* scripts/Makefile.am (EXTRA_DIST): have fixrmtab generated from
10002	.in as well, so it doesn't get removed by make clean.
10003
10004Tue Jun 16 22:00:15 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10005
10006	* aux/macros/{check_fs_mntent.m4, check_mnttab_type.m4,
10007	check_mount_type.m4}: redhat 5.1 puts some modules in
10008	/lib/modules/preferred/.
10009
10010Wed May 13 16:33:57 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10011
10012	* amd/ops_autofs.c (mount_autofs): cast pid to long.
10013
10014Tue Apr 28 15:12:36 1998  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10015
10016	* conf/nfs_prot/nfs_prot/nfs_prot_irix6.h,
10017	conf/nfs_prot/nfs_prot_sunos5_6.h: Undef MNTTAB_TYPE_AUTOFS too to
10018	avoid amd/am_ops.c (show_fstypes) from erroneously claiming
10019	support.
10020
10021Fri Apr 24 23:02:11 1998  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10022
10023	* libamu/xutil.c (get_syslog_facility): Don't use LOG_DAEMON
10024	unconditionally, may be missing on Ultrix V4.3.
10025
10026Thu Apr 23 20:24:33 1998  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10027
10028	* conf/nfs_prot/nfs_prot_sunos5_4.h (MNTTYPE_CACHEFS): Define,
10029	missing from <sys/mntent.h>.
10030
10031	* conf/mtab/mtab_ultrix.c: Need separate inclusion of <sys/fs_types.h>
10032	without KERNEL defined here.
10033
10034	* aux/macros/mount_headers.m4: Need to include <ufs/ufs_mount.h>,
10035	<cdfs/cdfs_mount.h>, <cdfs/cdfsmount.h> so autoconfiguration of
10036	ufs_args_t, cdfs_args_t fields and cdfs mount options can succeed.
10037
10038	* amd/ops_ufs.c (mount_ufs): Removed obsolete comment.
10039
10040	* ChangeLog: Fixed confusing linebreaks from ChangeLog imports.
10041	Removed purely local (and obsolete) entry.
10042
10043Thu Apr 23 00:22:17 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10044
10045	*******************************************************************
10046	*** Released am-utils-6.0a16					***
10047	*******************************************************************
10048
10049Wed Apr 22 01:20:39 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10050
10051	* aux/macros/check_mount_style.m4: define freebsd3 mount style.
10052
10053	* aux/macros/check_mount_trap.m4: new mount trap for freebsd3.
10054
10055	* aux/macros/check_mtype_printf_type.m4,
10056	aux/macros/check_mtype_type.m4 (ac_cv_mtype_type,): freebsd3 (as
10057	of snapshot 3.0-980311-SNAP) uses char * types for mount(2), not
10058	integers, but I'll keep them as integers and do the mapping in
10059	conf/mount/mount_freebsd3.c
10060
10061	* minor new port to i386-pc-bsdi3.1.
10062
10063	* minor new port to i386-unknown-netbsd1.3.1.
10064
10065	* amd/opts.c: new option addopts:=ARG, which smartly merges ARG
10066	options with whatever the /default ones for a key are.  This
10067	allows adding or overriding /default options individual keys.
10068
10069	* amd/am_ops.c (ops_match): strdup/malloc string assigned to
10070	opt_opts because it'll get free()'d upon next use.
10071	(merge_opts): new function to merge two sets of options.
10072	(ops_match): if addopts option exist, append and merge it to the
10073	current default options.
10074
10075Tue Apr 21 12:54:59 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10076
10077	* wire-test/wire-test.c (main): use dynamically allocated returned
10078	string with list of interfaces.
10079
10080	* amd/get_args.c (get_version_string): allocate enough space for
10081	header version string and a list of network interfaces of any
10082	length.
10083
10084	* libamu/wire.c (print_wires): return dynamically allocated string
10085	containing list of networks.  Must be dynamic because some sites
10086	had potentially dozens of network interfaces.  Patch from Matthew
10087	Crosby <mcrosby@ms.com> slightly modified.
10088
10089Mon Apr 20 00:37:20 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10090
10091	* conf/nfs_prot/nfs_prot_irix5.h: underfine MNTTYPE_XFS because
10092	irix 5.3 does not have full header definitions for it.
10093
10094	* fsinfo/fsi_lex.l (yywrap): define yywrap if needed, and
10095	undefined it when not needed (similar to amd/conf_tok.l)
10096
10097	* hlfsd/hlfsd.h (ROOTID, SLINKID, INVALID): reduced maximum size
10098	of these to unsigned short (because uid_t on some linux systems is
10099	small).
10100
10101	* released snapshot am-utils-6.0a16s10
10102
10103	* doc/am-utils.texi (opts Option): documented resvport mount
10104	option.
10105
10106Sun Apr 19 18:17:03 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10107
10108	* doc/am-utils.texi (-D-Option): document behavior of -D info and
10109	especially what it does to hesiod (turn on RES_DEBUG).
10110
10111	* scripts/amd.conf.5: document info debugging option.
10112
10113	* libamu/xutil.c (dbg_opt): parse info debugging option.
10114
10115	* include/am_utils.h (D_INFO): define new trace option.
10116
10117	* Makefile.am (EXTRA_DIST): include list of official mirrors in
10118	distribution.
10119
10120	* libamu/wire.c (SIZE): in the simple case, just compute
10121	sizeof(struct ifreq).
10122
10123Sun Apr 19 16:30:35 1998  Erez Zadok  <ezk@lorien.cs.columbia.edu>
10124
10125	* amd/amd.c (daemon_mode): set a temporary secure umask(0022)
10126	before writing log file and restore it afterwards.  Patch from
10127	Donald Buczek <buczek@MPIMG-Berlin-Dahlem.MPG.DE>.
10128
10129	* amd/get_args.c (get_args):
10130
10131	* doc/am-utils.texi (-F Option), amd/amd.8: mention that amd.conf
10132	file specified by -F is always processed last.
10133
10134	* amd/amd.c (daemon_mode): do not fclose(stdout) so that the fd
10135	won't be reused.  Allows startup script to redirect stdout.  Patch
10136	from Donald Buczek <buczek@MPIMG-Berlin-Dahlem.MPG.DE>.
10137
10138	* libamu/xutil.c (switch_to_logfile): compare logfile name and
10139	syslog string with correct length.  Patch from Donald Buczek
10140	<buczek@MPIMG-Berlin-Dahlem.MPG.DE>.
10141
10142	* amd/restart.c (restart): correctly inherit existing NFS V.3
10143	mounts upon restart.  Patch from Donald Buczek
10144	<buczek@MPIMG-Berlin-Dahlem.MPG.DE>.
10145
10146Sat Apr 18 19:01:19 1998  Erez Zadok  <ezk@lorien.cs.columbia.edu>
10147
10148	* using libtool 1.2 and automake 1.3 (with my patches).
10149
10150	* aux/macros/opt_am_cflags.m4, */Makefile.in: rename AM_CFLAGS to
10151	AMU_CFLAGS to avoid conflicts with automake-1.3.
10152
10153Sun Apr  5 23:09:08 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10154
10155	* converted to using libtool-1.2.
10156
10157Tue Mar 10 16:52:09 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10158
10159	* fsinfo/fsi_analyze.c (fixup_required_mount_info): replaced silly
10160	for loop (ITER) which used to run only to initialize the variable
10161	dd once and then break; with a simple assignment.
10162
10163	* hlfsd/hlfsd.h: cleanup so it compiles with Solaris
10164	/opt/SUNWspro/bin/cc, and use gid_t not int.
10165
10166	* amd/mapc.c (mapc_sync): don't dereference pointer (so it
10167	compiles with Solaris /opt/SUNWspro/bin/cc)
10168
10169Sun Mar  8 15:54:22 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10170
10171	* aux/config.{guess,sub}: used from gcc-2.8.1.
10172
10173Sat Mar  7 15:33:27 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10174
10175	* released snapshot am-utils-6.0a16s9
10176
10177	* INSTALL, doc/am-utils.texi (Supported Platforms): updated names
10178	based on new output of new config.guess.
10179
10180	* aux/config.{sub,guess}: used newer versions from gcc-2.8.0.
10181
10182	* amd/amd.8,doc/am-utils.texi: document correct usage of default
10183	/etc/amd.conf file.
10184
10185	* fixmount/fixmount.c (inetresport,privsock): use some more
10186	portable code from amq/amq.c.
10187
10188	* amd/get_args.c (get_args): use default /etc/amd.conf file only
10189	if no arguments had been passed to amd.
10190
10191	* fixmount/fixmount.c (clnt_create_timeout): use tli/socket code
10192	ala amq/amq.c so that fixmount will work on both types of systems.
10193
10194	* amq/amq.c (main): do no close tcp socket before running udp try,
10195	because we're not sure if it was opened at all.
10196
10197	* mips-dec-ultrix* port merged in and cleaned up.
10198
10199	* aux/configure.in: up minor shared library revision number, since
10200	it has changed enough.
10201
10202	* hlfsd/hlfsd.c (main): don't check for overlay mount option here,
10203	as it is now done in compute_nfs_args().  Remove ultrix specific
10204	code also because it was moved to compute_nfs_args().
10205
10206	* conf/mount/mount_svr4.c: removed DEBUG_MOUNT_SVR4 code, now that
10207	we have more generic code in print_nfs_args().
10208
10209	* libamu/mount_fs.c (print_nfs_args): print maxlen of
10210	nfs_args.addr, and also syncaddr (which is mostly NULL).  Print
10211	struct knetconfig from nfs_args->knconf.
10212
10213	* aux/macros/mount_headers.m4 (define): do not check for ufs/cdfs
10214	headers here, but in try_compile_anyfs.m4.
10215
10216	* aux/macros/type_ufs_args.m4: move test for struct ufs_specific
10217	(for ultrix) here from its own macro.
10218
10219	* aux/macros/type_cdfs_args.m4: move test for struct iso_specific
10220	(for ultrix) here from its own macro.
10221
10222	* amd/ops_nfs.c (mount_nfs_fh): no need to run code again checking
10223	for overlay mount option.  Remove code which checks for overlay
10224	option, as it is now done in compute_nfs_args().
10225
10226	* libamu/mount_fs.c (compute_mount_flags): move here code which
10227	checks for overlay mount option which was in amd/amfs_toplvl.c:
10228	mount_amfs_toplvl().
10229
10230Wed Feb  7 15:35:51 1998  Rainer Orth  <ro@xayide.TechFak.Uni-Bielefeld.DE>
10231
10232	* The following are Rainer's ChangeLog entries for his ultrix
10233	port, added manually. -Erez.
10234
10235	* merged Ultrix port with am-utils 6.0 a16s5: amd/ops_afs.c
10236	(mount_toplvl) -> amd/amfs_toplvl.c (mount_amfs_toplvl)
10237
10238	* include/am_defs.h: include cdfs specific mount headers
10239	avoid duplication definition of gt_names[] in <sys/fs_types.h> (Ultrix)
10240
10241	* include/am_compat.h: define several mount options corresponding
10242	to mount flags: pgthresh, hard (nfs), defperm, nodefperm,
10243	noversion, rrip (cdfs), nocache, quota, sync (generic) removed
10244	duplicate MNTTAB_OPT_RO definition
10245
10246	* aux/macros/try_compile_anyfs.m4: include Ultrix specific
10247	ufs/cdfs mount headers
10248
10249	* aux/macros/mount_headers.m4: include several Ultrix/Digital UNIX
10250	specific mount headers
10251
10252	* aux/macros/check_{fs_mntent, mount_type}.m4: check for GT_*
10253	mount types in mount headers (Ultrix)
10254
10255	* aux/configure.in: Ultrix/Digital UNIX specific checks: new
10256	headers, mount structures and fields, filesystem and mount types,
10257	mount flags
10258
10259	* aux/acconfig.h: placeholders for new mount options: quota
10260	(generic), ro (nfs), defperm, nodefperm, noversion, rrip (cdfs)
10261	cdfs, nfs, ufs mount structure fields new ufs, cdfs mount
10262	structures
10263
10264	* amd/ops_ufs.c (mount_ufs): Ultrix stores generic mount flags in
10265	ufs_args.ufs_flags and has ufs specific pgthresh option
10266
10267	* amd/ops_cdfs.c (mount_cdfs): handle Ultrix/Digital UNIX specific
10268	CDFS mount flags and options
10269
10270	* amd/ops_afs.c (mount_toplvl), amd/ops_nfs.c (mount_nfs_fh),
10271	hlfsd/hlfsd.c (main): store generic mount flags in
10272	nfs_args.gfs_flags, handle separate NFS ro flag
10273
10274	* aux/macros/{check_mnt2_cdfs_opt, struct_iso_specific,
10275	struct_ufs_specific}.m4: new files; check for Ultrix specific
10276	mount structures
10277
10278	* conf/trap/trap_ultrix.h: arg 3 to mount(2) is rwflag
10279
10280	* aux/macros/type_auth_create_gidlist.m4 (ultrix*):
10281	AUTH_CREATE_GIDLIST_TYPE is int (not short == gid_t) from a
10282	comment in <rpc/auth.h>
10283
10284	* include/am_defs.h: #define KERNEL to avoid definition of
10285	gt_names[] conf/mtab/mtab_ultrix.c: #include <sys/fs_types> before
10286	<config.h> to force single definition here
10287
10288	* libamu/mount_fs.c (compute_nfs_args): Ultrix support for
10289	nfs_args.gfs_flags moved to callers store mount options in
10290	nap->optstr
10291
10292	* include/am_defs.h: fix _am_mntent mnt_{type, opts} field
10293	descriptions
10294
10295	* aux/macros/mount_headers.m4, aux/macros/try_compile_nfs.m4:
10296	include <rpc/rpc.h> before AMU_NFS_PROTOCOL_HEADER for svc_req
10297	definition in prototypes
10298
10299	* aux/macros/mount_headers.m4: include <sys/errno.h> before
10300	AMU_NFS_PROTOCOL_HEADER: <nfs/nfs.h> needs it for NFSERR_*
10301	definitions
10302
10303	* conf/nfs_prot/nfs_prot_ultrix.h: new file
10304
10305	* aux/macros/check_nfs_prot_headers.m4: use nfs_prot_ultrix.h
10306
10307	* aux/macros/mount_headers.m4, aux/macros/try_compile_nfs.m4,
10308	aux/macros/try_compile_rpc.m4, include/am_defs.h: avoid multiple
10309	inclusion of <rpc/xdr.h>
10310
10311Sat Mar  7 13:56:05 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10312
10313	* aux/configure.in: save state of config.cache and confdefs.h
10314	(as dbgcf.h) at various points of the configure.
10315
10316	* aux/macros/save_state.m4: new macro to save state of configure,
10317	esp. useful in long ones.  Saves confdefs.h and write $ac_cv_*
10318	cache variables that are known so far.
10319
10320	* released snapshot am-utils-6.0a16s8
10321
103221998-03-06  Erez Zadok  <ezk@mercer.psl.cs.columbia.edu>
10323
10324	* fsinfo/fsi_lex.l,amd/conf_tok.l: define ECHO after undefining
10325	it, but only for flex.
10326
10327Fri Mar  6 17:23:17 1998  Erez Zadok  <ezk@chestnut.mcl.cs.columbia.edu>
10328
10329	* hlfsd/homedir.c (plt_print): change pathname of hlfsd dump file
10330	to /usr/tmp/hlfsd.dump.XXXXXX, and use a safe method (if possible)
10331	to write the dump file.
10332
10333	* doc/am-utils.texi,amd/opts.c: rename all references to nomadic
10334	functions to boolean functions, which is what they really are.
10335
10336	* aux/configure.in: don't look for strcasecmp in libucb at all,
10337	but rather complete it from libamu/strcasecmp.c as needed.
10338
10339Fri Mar  6 03:29:20 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10340
10341	* conf/nfs_prot/nfs_prot_osf4.h: avoid conflicts with Irix's EFS.
10342
10343	* libamu/wire.c (getwire): fix for 0.0.0.0 loopback on SunOS 3.X
10344	which defines IFF_ROUTE instead of IFF_LOOPBACK.  Patch from Tom
10345	Schmidt <tschmidt@micron.com>.
10346
10347	* released snapshot am-utils-6.0a16s7
10348
10349	* conf/nfs_prot/nfs_prot_hpux11.h: a first working port of amd to
10350	hppa1.0-hp-hpux11.00.tgz.
10351
10352Thu Mar  5 21:59:03 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10353
10354	* converted all sources to use mntent field names, and map mnttab
10355	field names to mntent's.
10356
10357	* include/am_defs.h (mnt_special): map struct mnttab field names
10358	to struct mntent field names.
10359
10360	* aux/macros/check_mount_trap.m4: hpux11's mount trap style is
10361	identical to svr4/solaris2.
10362
10363	* aux/macros/check_mount_style.m4: hpux11's mount style is
10364	identical to svr4/solaris2.
10365
10366	* aux/macros/check_network_transport_type.m4: hpux11 is a TLI
10367	system!
10368
10369	* aux/macros/check_nfs_sa_dref.m4: hpux11's NFS host address
10370	dereferencing style is same as svr4.
10371
10372	* aux/macros/check_nfs_fh_dref.m4: hpux11's NFS file fh
10373	dereferencing style is same as svr4.
10374
10375	* conf/transp/transp_tli.c (create_nfs_service): if failed to
10376	getnetconfigent() of ticlts, then try udp (hpux11).
10377
10378	* conf/nfs_prot/nfs_prot_hpux11.h: added correct definitions for
10379	struct nfs_args, nfs_fh, and NFSMNT_* flags, taken from solaris
10380	2.5.1 (HP used them).
10381
10382	* amd/rpc_fwd.c (fwd_init): don't use O_NDELAY for t_open()
10383	because hpux11 doesn't like it. if t_open failed, print error
10384	based on t_errlist, not sys_errlist.
10385
10386Wed Mar  4 22:01:55 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10387
10388	* doc/am-utils.texi: lots of documentation fixes from Rainer Orth
10389	<ro@TechFak.Uni-Bielefeld.DE>.
10390
10391Sat Feb 28 22:16:35 1998  Erez Zadok  <ezk@kosh.cs.columbia.edu>
10392
10393	* fsinfo/fsi_lex.l: undefine ECHO again, so it doesn't get used
10394	later.
10395
10396	* include/am_defs.h: defined the extern for ualarm() if it isn't
10397	found, regardless if the function isn't found in standard
10398	libraries, because otherwise libamu will include it.
10399
104001998-02-28  Erez Zadok (per Ron Snyder)  <ezk@short.cvo.roguewave.com>
10401
10402	* initial port to hpux-11 completed.  Compiles cleanly, but
10403	probably does not work, because of missing NFS V.2/3 headers.
10404
10405	* amd/conf_tok.l: cast yytext to char* when passed to strlen and
10406	strdup, for hpux-11's ansi-cc compiler.
10407
10408	* include/am_utils.h: renamed all xfree() to XFREE() to avoid
10409	conflict with hpux-11's system headers.  Also move (voidp) cast
10410	from sources to inside the macro itself.
10411
10412Sat Feb 28 13:44:21 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10413
10414	* released snapshot am-utils-6.0a16s6
10415
10416	* amd/info_nis.c (nis_isup): new function to test if NIS is up
10417	without hanging amd.  Used to ensure that amd does not clear the
10418	maps when the expiration period arrived, if the service is down.
10419	Otherwise it would be left with empty maps.  It is better to stay
10420	with possibly old information than none at all.
10421
10422	* amd/mapc.c (mapc_sync): check to see if map service is up.
10423
10424Tue Feb 24 02:19:42 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10425
10426	* aux/macros/check_lib2.m4 (AC_CHECK_LIB2): fix macro so it
10427	includes auxiliary library only if needed.
10428
104291998-02-22  Erez Zadok  <ezk@mercer.psl.cs.columbia.edu>
10430
10431	* amd/conf_tok.l: undefine ECHO again, so it doesn't get used
10432	later.
10433
10434Sun Feb 22 01:41:08 1998  Erez Zadok  <ezk@zen.cs.columbia.edu>
10435
10436	* conf/nfs_prot/nfs_prot_osf2.h: port to alpha-dec-osf2.1
10437	completed.
10438
10439	* conf/mtab/mtab_osf.c (mnt_dup): not all OSF have NFS3.
10440
10441Sat Feb 21 19:45:48 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10442
10443	* doc/am-utils.texi (Network Host Filesystem): correct example for
10444	type:=host map.
10445
10446	* aux/macros/os_cflags.m4: only osf4 should compile with
10447	-D_SOCKADDR_LEN.
10448
10449	* aux/macros/check_nfs_prot_headers.m4: distinguish between OSF2
10450	and OSF4.
10451
10452	* BUGS: include a new file listing known bugs.
10453
10454Sat Feb 21 03:50:48 1998  Erez Zadok  <ezk@mercer.psl.cs.columbia.edu>
10455
10456	* conf/nfs_prot/nfs_prot_linux.h: turn DES off on all linux
10457	versions.
10458
10459	* aux/macros/type_recvfrom_fromlen.m4: linux alpha should use
10460	size_t for recvfrom fromlen arg.
10461
10462Sat Feb 21 03:33:59 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10463
10464	* scripts/ctl-hlfsd.in: turn -D fork so primary process never
10465	hangs.
10466
10467Sat Feb 21 02:45:51 1998  Erez Zadok  <ezk@mercer.psl.cs.columbia.edu>
10468
10469	* include/am_defs.h: don't include <sys/stat.h> and
10470	<linux/stat.h>, just remaining definitions in <statbuf.h>
10471
10472Thu Jan 29 00:44:28 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10473
10474	* released snapshot am-utils-6.0a16s5
10475
10476	* conf/mount/mount_irix6.c (mount_irix): pass {u,e,x}fs_args to
10477	mount(2).
10478
10479	* check for <sys/fs/xfs_clnt.h> and include it when needed.
10480
10481	* conf/mount/{mount_irix5.c,mount_irix6.c} (mount_irix): recognize
10482	efs and xfs separately from "ufs".
10483
10484	* amd/{ops_xfs.c,ops_efs.c}: new support for irix xfs/efs.
10485
10486	* aux/configure.in: look for irix efs and xfs file systems.
10487
10488	* scripts/amd.conf.5: new unmount_on_exit option documented.
10489
10490	* doc/am-utils.texi (unmount_on_exit): new option documented.
10491
10492	* amd/conf.c (gopt_unmount_on_exit): new function to handle new
10493	amd.conf option.
10494
10495	* amd/map.c (umount_exported): if global amd.conf flag
10496	unmount_on_exit is on, then try to unmount all mounted (or
10497	restartable) file systems.
10498
10499	* amd/amd.c: if print_pid option is on, then normally print it to
10500	stdout.  If also pid_file is specified, then print the process ID
10501	into that file.
10502
10503	* amd/get_args.c (get_args): print correct -l option depending if
10504	system supports syslog and/or syslog facilities.  Patch from
10505	Tom Schmidt <tschmidt@micron.com>.
10506
10507	* doc/am-utils.texi (opts Option): updates for documentation for
10508	new cdfs options defperm, nodefperm, noversion, rrip.
10509
10510	* amd/ops_cdfs.c (mount_cdfs): support cdfs options defperm,
10511	nodefperm, noversion, rrip.
10512
10513	* conf/nfs_prot/nfs_prot_osf.h: need to look at <cdfs/cdfsmount.h>
10514	on osf.
10515
10516	* aux/macros/{expand_cpp_hex.m4, expand_cpp_int.m4,
10517	expand_cpp_string.m4}: use #error to make failed compilations
10518	fail faster, rather than have the program fail during a run.
10519
10520	* include/am_compat.h: added a few new cdfs options: rrip,
10521	noversion, defperm, and nodefperm (used in OSF).
10522
10523Wed Jan 28 20:24:09 1998  Erez Zadok  <ezk@lorien.cs.columbia.edu>
10524
10525	* released snapshot am-utils-6.0a16s4
10526
10527	* doc/am-utils.texi (Global Parameters): update manual for new
10528	amd.conf global variable hesiod_base.
10529
10530	* scripts/amd.conf.5: update man page for new amd.conf global
10531	variable hesiod_base.
10532
10533	* amd/get_args.c (get_args): use /etc/amd.conf file if exists by
10534	default, else try command line options.  Patch from Randall
10535	S. Winchester <rsw@Glue.umd.edu>.
10536
10537Wed Jan 28 12:20:56 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10538
10539	* amd/info_hesiod.c (hesiod_search), amd/conf.c
10540	(gopt_hesiod_base), amd/amd.h, amd/amd.c (init_global_options):
10541	included patch from Randall S. Winchester <rsw@Glue.umd.edu>, to
10542	support a hesiod base name in the amd.conf file.
10543
10544	* doc/am-utils.texi (pid_file Parameter): document new global
10545	amd.conf parameter.
10546
10547	* scripts/amd.conf.5: document new global option pid_file.
10548
10549	* amd/amd.c (daemon_mode): if cannot open pid_file, continue to
10550	run, but print error message.
10551
10552	* amd/conf.c (gopt_pid_file), amd/amd.h, amd/amd.c (daemon_mode,
10553	init_global_options): Included patch from Randall S. Winchester
10554	<rsw@Glue.umd.edu>, to support pid files in the amd.conf file.
10555
10556	* amd/get_args.c (get_args): correct usage info on amd -t.
10557
10558	* amd/*.c: massive file name and symbol name changes.  All amd
10559	file systems files and symbols are prefix with amfs_*.  Now using
10560	real name of file system: amfs_auto instead of afs, amfs_inherit
10561	instead of ifs, amfs_linkx instead of sfsx, etc.  This will enable
10562	clear distinction between amd file system and generic ones like
10563	nfs/ufs/pcfs/hsfs.  Also, now we can implement true afs (Andrew
10564	f/s) and DFS (Distributed f/s).
10565
10566	* amd/amfs_union.c: unionfs for amd is always defined, no need to
10567	#ifdef it.
10568
10569Mon Jan 26 16:51:38 1998  Erez Zadok  <ezk@chestnut.mcl.cs.columbia.edu>
10570
10571	* libamu/mount_fs.c (compute_nfs_args): set 'noconn' NFS option on
10572	or off, based on the particular quirks of the OS in question.
10573
10574	* aux/macros/check_nfs_socket_connection.m4: new macro to set the
10575	correct wait of handling un/connected NFS sockets.
10576
10577	* scripts/wait4amd.in: use rlogin instead of rsh.
10578
10579	* amd/am_ops.c (ops_showfstypes): when showing F/S types in amd
10580	-v, always show "nfs3" for NFS V.3.
10581
105821998-01-25  Erez Zadok  <ezk@snoopy.cs.columbia.edu>
10583
10584	* lots of small fixes for solaris 2.6, since gcc 2.8.0 -Wall gets
10585	more picky than 2.7.2.3 did.
10586
105871998-01-24  Erez Zadok  <ezk@snoopy.cs.columbia.edu>
10588
10589	* include/am_utils.h (dlog): amuDebug macros reduced to shorter
10590	forms.
10591
10592Fri Jan 23 18:38:30 1998  Erez Zadok  <ezk@goat.mcl.cs.columbia.edu>
10593
10594	* released snapshot am-utils-6.0a16s3
10595
10596	* include/am_defs.h: on Solaris 2.6, <sys/varargs.h> is included
10597	in <sys/fs/autofs.h> but since stdargs.h is used, and varargs.h
10598	must not, fake a definition for varargs.
10599
10600Fri Jan 16 10:16:40 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10601
10602	* README: show how to configure in additional support such as
10603	hesiod using various --enable-* flags.
10604
10605Wed Jan 14 15:13:02 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10606
10607	* aux/configure.in: look for strcasecmp(), and replace it if not
10608	available.
10609
10610	* amd/ops_nfsl.c (nfsl_match): host names should be compared using
10611	case insensitive.
10612
10613	* amd/opts.c: for each map variable, define if the comparison
10614	needs to be done case insensitive.
10615
10616	* include/am_utils.h (STRCEQ): a new macro to use strcasecmp().
10617	Patch from Thomas Richter <richter@chemie.fu-berlin.de>
10618
106191998-01-14  Erez Zadok  <ezk@irt.cs.columbia.edu>
10620
10621	* aux/configure.in: look for "isofs" as a possible mount type for
10622	cdfs (RedHat Linux).
10623
10624Wed Jan 14 02:07:05 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10625
10626	* conf/mount/mount_linux.c (parse_opts): don't look for cdfs mount
10627	type if not defined.
10628
10629	* conf/nfs_prot/nfs_prot_linux.h: don't define __FD_* macros if
10630	already defined.
10631
10632	* aux/configure.in: look for ext2fs before ufs, b/c some linux
10633	have both.
10634
10635Mon Jan 12 15:43:20 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10636
10637	* Makefile.am (snapshot): allow me to install snapshots into the
10638	ftp directory.
10639
10640	* scripts/ctl-hlfsd.in: don't turn on -D mem by default.
10641
10642	* amd/get_args.c (get_args): minor bug in output of amd -H.
10643
10644Mon Jan 12 03:05:06 1998  Erez Zadok  <ezk@chestnut.mcl.cs.columbia.edu>
10645
10646	*******************************************************************
10647	*** Released am-utils-6.0a15					***
10648	*******************************************************************
10649
10650Sun Jan 11 15:06:34 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10651
10652	* amd/conf.c (*_browsable_dirs): allow specifying
10653	browsable_dirs=full, which will print *all* entries (other than
10654	/default), including  those with '*' and '/' characters.
10655
10656	* amd/info_file.c (MAX_LINE_LEN): up maximum readdir chain length
10657	to 1500.
10658
10659	* doc/am-utils.texi: fixed reversed documentation for NFS mount
10660	options vers and proto.
10661
10662	* doc/Makefile.am (install-html): separate target just for
10663	installing html files.  Another new target "alldocs" is just for
10664	installing all files needed for the am-utils home page.
10665
10666	* scripts/amd.conf-sample: updated example for log_file.
10667
10668	* scripts/amd.conf.5: updated for new way to declare new syslog
10669	facility in the log_file option.
10670
10671	* amd/amd.8: updated for new way to declare new syslog facility in
10672	the -l option.
10673
10674	* libamu/xutil.c (get_syslog_facility): allow users to specify the
10675	syslog facility as an appended string to the log device.  Ex. amd
10676	-l syslog:local7 will use LOG_LOCAL7, while the older -l syslog
10677	will use the default LOG_DAEMON facility.
10678
10679	* amd/get_args.c (get_args): updated new syntax for amd -l
10680	syslog:facility.
10681
10682Thu Jan  8 04:05:10 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10683
10684	* aux/macros/host_macros.m4: don't confuse sun3 (sparc) with sun3
10685	(intel).
10686
10687	* libamu/wire.c (print_wires): bug fix.  Nullify output buffer
10688	before appending to it, on systems with two or more network
10689	interfaces.
10690
10691	* conf/nfs_prot/nfs_prot_sunos5_3.h: add missing definition for
10692	the mntent for cachefs.
10693
10694	* include/am_defs.h: external definition for strstr() should use
10695	const for both arguments.
10696
10697	* aux/configure.in: add extern definitions for getwd() if missing.
10698
10699	* include/am_defs.h: define the extern for strdup() even if the
10700	function does not exist, for it will be filled in by
10701	libamu/strdup.c
10702
10703	* amq/pawd.c (cluster_server): don't use getccent() if the extern
10704	for it isn't there.  On hpux 10.20, the function is in libc, but
10705	<cluster.h> and struct cct_entry do not exist.
10706
10707	* aux/configure.in: check for an extern for getccent() b/c some
10708	hpux systems don't have it (hpux 10.20).
10709
10710Wed Jan  7 00:09:19 1998  Erez Zadok  <ezk@lorien.cs.columbia.edu>
10711
10712	* doc/am-utils.texi (Amq -T option): manual documentation updates
10713	for new amq options -T/-U.
10714
10715	* amq/amq.8: updated man page for new amq options -T/-U.
10716
10717	* amq/amq.c: two new switches to amq. -U will contact amd using
10718	UDP only.  -T will use TCP only.  Normally amq will try TCP and
10719	if that failed, will try UDP.
10720
10721	* doc/am-utils.texi (pawd): manual documentation for pawd.
10722
10723	* amq/pawd.1: new man page for pawd.
10724
10725Tue Jan  6 04:21:59 1998  Erez Zadok  <ezk@lorien.cs.columbia.edu>
10726
10727	* amq/pawd.c: a new program, Print Automounter Working Directory,
10728	to print the proper pathname of the cwd or any other pathname,
10729	adjusted for automounter paths, while avoiding mount points.
10730
10731	* aux/macros/localconfig.m4: trivial support for am-utils
10732	maintainers to adjust some of the configuration of am-utils after
10733	it has been auto-configured by putting whatever definitions you
10734	wish in a file called localconfig.h, located in the top build
10735	directory (the same one where config.h is created for you).
10736
10737	* doc/am-utils.texi (Caching Filesystem): updated documents for
10738	cachefs file system.
10739
10740	* amd/ops_cachefs.c: initial cachefs support, for solaris.
10741	type:=cachefs, requires cachedir:=/cache/dir/name to be defined
10742	and initialized with cfsadmin -c.  $rfs is backdir to be cached
10743	from, and $fs is the local mount point of the cachefs.
10744
10745	* conf/mount/mount_svr4.c (mount_svr4): support mounting of
10746	cachefs file systems.
10747
10748	* amd/ops_cdfs.c: cdfs should be named 'cdfs', not whatever the
10749	mnttab type is.
10750
10751Mon Jan  5 23:22:49 1998  Erez Zadok  <ezk@lorien.cs.columbia.edu>
10752
10753	* amd/opts.c: added support for new variable $cachedir.
10754
10755	* include/am_utils.h: added opt_cachedir field to struct am_opts.
10756
10757Sat Jan  3 01:43:57 1998  Erez Zadok  <ezk@lorien.cs.columbia.edu>
10758
10759	* amd/ops_nfsl.c (nfsl_ffserver, nfsl_match): also check if the
10760	local hostname does not match $rhost, and if so, also assume
10761	type:=nfs.
10762
10763Fri Jan  2 01:00:40 1998  Erez Zadok  <ezk@lorien.cs.columbia.edu>
10764
10765	* updated all source files to add 1998 as a copyright year.
10766
10767	* amd/ops_nfsl.c: new amd meta file system "type:=nfsl".  Behaves
10768	like type:=linkx if the pathname denoted by $fs exists, and like
10769	type:=nfs if it does not.  A convenient shortcut for the most
10770	popular amd map entry.
10771
10772	* amd/amd.c (main): amd should chdir to / before starting, to
10773	avoid hanging on other NFS server if started elsewhere.
10774
10775	* amd/ops_TEMPLATE.c: added an empty template file for developers
10776	who wish to write new amd pseudo file systems.
10777
10778Thu Jan  1 00:27:28 1998  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10779
10780	* hlfsd/homedir.c (plt_init): make function exported, to save on
10781	the unnecessary init_homedir() function which was removed.
10782	(table_add): don't use xmalloc() when you can use strdup()
10783	instead.
10784
10785Thu Jan  1 00:15:58 1998  Erez Zadok  <ezk@chestnut.mcl.cs.columbia.edu>
10786
10787	* hlfsd/homedir.c (hlfsd_endpwent): Don't actually run this
10788	because we will be making more passwd calls afterwards.  On
10789	Solaris 2.5.1, making getpwent() calls after calling endpwent()
10790	results in a memory leak! (and no, even Purify didn't detect
10791	it...)
10792
10793Tue Dec 23 18:23:47 1997  Erez Zadok  <ezk@chestnut.mcl.cs.columbia.edu>
10794
10795	* hlfsd/hlfsd.c (main): Bug fix.  Don't try to free() an
10796	automatically allocated address.
10797
10798	* amd/ops_afs.c (mount_toplvl): Bug fix.  Don't try to free() an
10799	automatically allocated address.
10800
10801	* ALL SOURCES: change every direct call to free() to xfree(), so
10802	it can be mapped to the right debugging function as needed.
10803
10804	* include/am_utils.h: new free() policy.  If debugging memory,
10805	call dxfree(), which will print the file name and line number
10806	where the free occurred and the pointer address.  if only regular
10807	debugging, then free() and reset  the pointer to NULL so it cannot
10808	be used afterwards inadvertently.  If not DEBUG at all, then just
10809	run free().  Three different #define macros set the right mapping.
10810
10811	* libamu/xutil.c (dxfree): renamed function to dxfree(), so it can
10812	be called only when debugging the memory.
10813
10814Tue Dec 23 04:24:28 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10815
10816	* wire-test/wire-test.c (main): use xmalloc() not malloc().
10817
10818	* conf/transp/transp_tli.c (get_knetconfig): use xzalloc() not
10819	calloc().
10820
10821	* conf/mtab/mtab_mach3.c (convert): use xzalloc() not calloc().
10822
10823	* conf/mount/mount_linux.c (parse_opts): use xmalloc() not
10824	malloc().
10825
10826	* amd/info_ldap.c: use xmalloc() not malloc().
10827
10828	* libamu/xutil.c (xzalloc): new function to allocate memory and
10829	zero its bytes.
10830
10831	* amq/amq.c: amq does not need its own definition of xfree().
10832
10833	* aux/macros/opt_debug.m4: if used --enable-debug=mem, then also
10834	look for function malloc_verify() in libmapmalloc.a, and function
10835	mallinfo() in libmalloc.
10836
10837	* libamu/xutil.c (checkup_mem): do not use mallinfo field
10838	uordbytes, because it does not always exist.  Rather, compute it
10839	from other fields..
10840
10841	* include/am_utils.h: add external definition to xfree() function
10842	used when debugging memory references.
10843
10844Mon Dec 22 03:01:30 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10845
10846	* amd/ops_afs.c (afs_readdir_browsable): reduce the number of
10847	bytes heuristically computed to be returned to the kernel.
10848	Otherwise browsable_dirs fails on OpenBSD 2.2.
10849
10850	* amd/mntfs.c (uninit_mntfs): bug fix.  Moved freeing of
10851	mf_private field to AFTER it gets used.
10852
10853Sat Dec 20 00:51:21 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10854
10855	* amd/ops_host.c (host_umounted): don't use clnt_spcreateerror()
10856	on systems that don't support it.
10857
10858	* include/am_defs.h: add missing extern definition for free().
10859
10860	* aux/configure.in: check for external definition for free().
10861
10862	* libamu/Makefile.am: add to comment a mention of strstr as an
10863	optional function.
10864
10865	* libamu/xutil.c (switch_to_logfile): use openlog() options only
10866	if they exist.
10867
10868	* conf/transp/transp_sockets.c (get_nfs_version): don't use
10869	clnt_spcreateerror if it does not exist.
10870
10871	* aux/configure.in: check for missing functions clnt_create and
10872	clnt_spcreateerror.  Check for missing strstr, and complete
10873	its code.  Check for missing external definition for strstr.
10874
10875	* aux/macros/host_macros.m4: normalize sun3* names.
10876
10877	* Makefile.am: updates for new sunos3 files distributed.
10878
10879	* conf/nfs_prot/nfs_prot_sunos3.h: new file.
10880
10881	* conf/fh_dref/fh_dref_sunos3.h: new file.
10882
10883	* aux/macros/check_nfs_prot_headers.m4: added sunos3 case.
10884
10885	* aux/macros/check_nfs_fh_dref.m4: added sunos3 case.
10886
10887	* doc/am-utils.texi (wire Selector Variable): updated manual for
10888	adjusted variables wire, network, and netnumber, all using the
10889	in_network() function.
10890
10891Fri Dec 19 04:37:36 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10892
10893	* amd/opts.c: allow options to be processed by executing arbitrary
10894	functions.  Converted wire, network, and netnumber all to use the
10895	nomadic function in_network.  So from now on they perform a match
10896	against all networks, not just primary.
10897
10898	* initial port to alpha-unknown-linux-gnu, probably works, but
10899	untested yet.
10900
10901	* conf/nfs_prot/nfs_prot_linux.h: add special definitions for
10902	__FD_* macros which for som strange reason do not get included
10903	from <selectbits.h> on redhat alpha linux.  Also turn off usage of
10904	<rpc/des_auth.h> because it is incomplete on the same systems.
10905
10906	* hlfsd/homedir.c (table_add): cast uid field to int, for
10907	comparison.
10908
10909	* include/am_defs.h: more coflicts with redhat alpha linux
10910	"resolved".
10911
10912	* aux/macros/{mount_headers,try_compile_anyfs,try_compile_nfs}.m4:
10913	There's a conflict of definitions on redhat alpha linux between
10914	<netinet/in.h> and <linux/fs.h> which must be avoided.
10915
10916	* aux/configure.in: check for <socketbits.h>, which is in use on
10917	redhat alpha linux.
10918
10919	* doc/am-utils.texi (Selectors): added documentation to describe
10920	the new "!" (negated) nomadic functions.
10921
10922	* amd/opts.c (f_in_network): print debugging info that is correct,
10923	rather than saying that any ARG is on a local network.
10924	(eval_opts): added support for negating nomadic functions, by
10925	prepending "!" to their name.  Example, !exists(/foo/bar).
10926
10927Thu Dec 18 20:57:19 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10928
10929	* include/am_compat.h: ensure that all NFS3 systems have the mount
10930	table entries (and amd opts switches) "proto" and "vers".
10931
10932	* hlfsd/homedir.c (table_add): added some debugging info to try
10933	and track down a serious memory leak in hlfsd.
10934
109351997-12-18  Erez Zadok  <ezk@t-rex.mcl.cs.columbia.edu>
10936
10937	* libamu/mount_fs.c (compute_nfs_args): OpenBSD 2.2 requires that
10938	you do NOT set the noconn option, and use connected sockets
10939	always.  So I'm now forced not to set it at all, and have the user
10940	specify it as "conn" or "noconn" in their /default entry.  Argh...
10941	Finally, it looks as if OpenBSD 2.2's NFS 3 implementation may be
10942	buggy (TCP hangs with "short receive" kernel errors).  I'd better
10943	wait until they get it working in their version of the automounter
10944	first.  So I'm putting the "noconn" option back.
10945
10946Thu Dec 18 02:39:39 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10947
10948	* libamu/mount_fs.c (compute_nfs_args): use maxgrps option and set
10949	nfs_args field maxgrouplist accordingly.
10950
10951	* include/am_compat.h (MNTTAB_OPT_MAXGROUPS): complete definition
10952	for mount table entry for maxgroups based on NFS mount option
10953	maxgrp.
10954
10955	* aux/configure.in: put back testing for NFS mount option
10956	"maxgrps".  Added test for mount table entry "maxgroups".
10957
10958	* libamu/mount_fs.c (compute_nfs_args): perform more careful tests
10959	on nfs_proto, because it could be NULL.
10960
10961	* doc/am-utils.texi (Selectors): added example of in_network()
10962	selector.
10963
10964	* aux/macros/check_hide_mount_type.m4: all hpux versions,
10965	including 9.x, should use "ignore" as the mount type to hide from
10966	amd.
10967
10968Wed Dec 17 13:09:21 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10969
10970	* include/am_utils.h (NSTREQ): use new macro instead of strncmp()
10971	every where in the sources.
10972
10973Wed Dec 17 01:15:01 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
10974
10975	* libamu/mount_fs.c (print_nfs_args): if -D trace is on, will
10976	print as much info that is given in struct nfs_args as possible.
10977	useful for detecting internal flags and options, as well as the
10978	file handle used.
10979
10980	* scripts/ctl-amd.in: look for amd.conf file in ${prefix}/etc
10981	after /etc and before /etc/local.
10982
10983Tue Dec 16 18:51:36 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
10984
10985	* aux/configure.in, libamu/Makefile.am: added support for linking
10986	with specific versions of libamu.  Upped shared library version of
10987	libamu to 1 (libamu.so.1.0.0)
10988
10989	* include/am_defs.h: added external definition for mkstemp() as
10990	needed.
10991
10992	* minor new port to i386-unknown-netbsd1.3 (BETA version of
10993	netbsd).
10994
10995	* aux/config.guess: don't leave a trailing '.' on the system name
10996	for NetBSD-1.3_BETA and similarly for OpenBSD.
10997
10998	* conf/nfs_prot/nfs_prot_netbsd1_3.h: new header for the slight
10999	differences in ypall calling conventions.
11000
11001	* mk-amd-map/mk-amd-map.c (main): use mkstemp() whenever possible
11002	in preference over mktemp(), b/c it is more secure.
11003
11004	* aux/configure.in: check for mkstemp(), a more secure version of
11005	mktemp().
11006
11007Mon Dec 15 02:32:14 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11008
11009	* amd/ops_nfs.c (mount_nfs_fh): Systems that include the mount
11010	table "vers" option generally do not set the mnttab entry to
11011	"nfs3", but to "nfs" and then they set "vers=3".  Setting it to
11012	"nfs3" works, but it may break some things like "df -t nfs" and
11013	the "quota" program (esp. on Solaris and Irix).  So on those
11014	systems, set it to "nfs".
11015
11016Sat Dec 13 01:36:27 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11017
11018	* doc/am-utils.texi (Distrib): updates for new ports, location of
11019	am-utils' home page, and URL cross references (now supported by my
11020	version of texi2html).
11021
11022	* aux/macros/check_mtype_type.m4: also use string type for file
11023	system mount types under nextstep for mount(2).
11024
11025	* aux/macros/check_mtype_printf_type.m4}: nextstep can handle both
11026	integer and string types for file system mount types in mount(2),
11027	but it is better to use string types.
11028
11029	* conf/nfs_prot/nfs_prot_nextstep.h: set emum nfsstat's NFS_OK to
11030	0, not 1!  Otherwise, all NFS calls (esp. mount) return errno 1
11031	(EPERM) instead of 0 (OK).  Fixes m68k-next-nextstep3 which now
11032	works.
11033
11034	* conf/nfs_prot/nfs_prot_bsdi2.h: set emum nfsstat's NFS_OK to 0,
11035	not 1!  Otherwise, all NFS calls (esp. mount) return errno 1
11036	(EPERM) instead of 0 (OK).
11037
11038	* libamu/xdr_func.c (xdr_*): add debugging calls that are optioned
11039	by -D trace (protocol trace).
11040
110411997-12-11  Erez Zadok  <ezk@bach.cs.columbia.edu>
11042
11043	* A.m68k-next-nextstep3/amu_nfs_prot.h: define missing S_ISDIR
11044	macro based on existence on others, and include <sys/stat.h>.
11045
11046Thu Dec 11 14:14:38 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11047
11048	* aux/macros/try_compile_nfs.m4 (AC_TRY_COMPILE): turn off
11049	inclusion of <nfs/nfs_mount.h> which only affects nextstep3, on
11050	which this header is broken (it tries to include non-existing
11051	headers).
11052
11053Wed Dec 10 16:09:07 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11054
11055	* libamu/mount_fs.c (mnt_flags): support either nfs or generic
11056	mount option for grpid.
11057
11058	* aux/configure.in: turn back on NFS mount option grpid.
11059
11060Sat Dec  6 04:36:05 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11061
11062	* doc/Makefile.am (install-ps): added target to install postscript
11063	file in the am-utils' home page, as well as a few other useful
11064	files for the new am-utils Web page.
11065
11066Mon Nov 17 05:22:56 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11067
11068	*******************************************************************
11069	*** Released am-utils-6.0a14					***
11070	*******************************************************************
11071
11072Sun Nov 16 21:56:16 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11073
11074	* doc/am-utils.texi (Supported Platforms): updated table of new
11075	ports.
11076
11077Sat Nov 15 06:36:27 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11078
11079	* libamu/mount_fs.c (compute_automounter_nfs_args): pass mnttab
11080	options so that they can be printed in logs as needed.
11081
11082	* doc/am-utils.texi (osver Parameter): updated for the correct
11083	usage of the -o/-O options.
11084
11085	* scripts/amd.conf.5: corrected info for -o/-O options.
11086
11087	* amd/amd.8: updated man page for new -O op_sys_name option, and
11088	corrected the usage of the -o op_sys_ver option
11089
11090	* amd/get_args.c (get_args): added new amd option -O to override
11091	OS name.
11092	(get_args): updated usage string.  Removed old -m option.  Added
11093	-o and -O options.
11094
11095	* conf/nfs_prot/nfs_prot_irix5.h: add definition to FHSIZE in case
11096	it is not there.  Reportedly, irix 5.2 does not define it.
11097
11098	* scripts/lostaltmail.in: removed references to unused $hack
11099	variable.
11100
11101	* aux/macros/check_nfs_prot_headers.m4: Patch from Chris Metcalf
11102	<metcalf@cag.lcs.mit.edu> to correctly set the nfs_prot headers
11103	for solaris2.5.
11104
11105	* doc/am-utils.texi (Distrib): typo in the subscription
11106	instructions to amd-dev.  Patch from Stefan Vogel
11107	<vogel@physik-rzu.unizh.ch>.
11108
111091997-11-15  Erez Zadok  <ezk@amtrak.cs.columbia.edu>
11110
11111	* NFS3 works on powerpc-ibm-aix4.2.1.0.
11112
11113	* libamu/mount_fs.c (compute_nfs_args): set fh3 variable to
11114	static.  Some compilers (gcc from egcs  on aix 4.2.1) corrupt the
11115	stack of an automatic variable when pointer to it is passed around
11116	several times.
11117
11118Fri Nov 14 20:09:28 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11119
11120	* libamu/xutil.c (real_plog): syslog like behavior for normal
11121	logging.  Will not print repeated strings, only a count "last
11122	message repeated N times", but will always print something if
11123	message is repeated more than 100 times.
11124
11125	* scripts/lostaltmail.in: look for lostaltmail.conf files also in
11126	/etc/global, /etc/os, and /etc/local (in that order).
11127
11128Mon Nov 10 03:03:17 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
11129
11130	* conf/mount/mount_aix.c (mount_aix3): add support for NFS V.3
11131	mounts.
11132
11133	* aux/macros/struct_nfs_args.m4 (AC_TRY_COMPILE_NFS): test for
11134	aix42_nfs_args, specially set in conf/nfs_prot/nfs_prot_aix4_2.h
11135
11136	* conf/sa_dref/sa_dref_*.h: from now on, the "dst" argument to the
11137	NFS_SA_DREF macro is a pointer to the structure that used to be
11138	passed to it before.  So now I have to dereference the pointer
11139	before accessing its values.
11140
11141	* hlfsd/hlfsd.c (main): use the new and cleaner
11142	compute_nfs_args() and compute_automounter_nfs_args() functions.
11143
11144	* amd/ops_nfs.c (mount_nfs_fh): use the new and cleaner
11145	compute_nfs_args() and compute_automounter_nfs_args() functions.
11146
11147	* amd/ops_afs.c (mount_toplvl): MAJOR CODE REVISION.  Use the new
11148	and cleaner compute_nfs_args() and compute_automounter_nfs_args()
11149	functions.
11150
11151	* libamu/mount_fs.c (compute_nfs_args): major code cleanup that
11152	relates for struct nfs_args.  A new function sets the numerous
11153	possible flags and fields of nfs_args_t in an orderly fashion.
11154	Code cleaned up, organized, and moved from amd/hlfsd into
11155	libamu.  This saves on overall size of code.
11156	(compute_automounter_nfs_args): A variant of compute_nfs_args()
11157	which sets special options/flags that need to be used when NFS
11158	mounting an automounter's mount point.  Used by hlfsd and amd.
11159
11160	* amq/amq.c (get_secure_amd_client): don't print any more
11161	"get_secure_amd_client: using TCP, port 12345".  It's more
11162	annoying than useful a message, even when assumed to be compiled
11163	under DEBUG only.
11164
11165Thu Oct 30 14:33:38 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11166
11167	* aux/macros/check_mnttab_type.m4: MAJOR BUG fixed for non-nfs
11168	mount table entries.  The code used to define the /etc/mnttab name
11169	for file systems based on physical media (disk, cdrom, floppy) to
11170	the generic name, rather than the OS specific name.  For example
11171	autoconf searches for all these types of mount table entries for a
11172	floppy based file system: vfat pcfs pc msdos msdosfs fat.  But if
11173	it found any, it hard-coded the mnttab name to "pcfs" rather than
11174	the actual name found!  Same for ufs, cdfs, pcfs, tmpfs, lofs,
11175	nullfs, unionfs, and umapfs.
11176
11177	* aux/configure.in: also test for xfs (for newer Irix) when
11178	looking for mount type names, numbers, etc of a disk-based ufs.
11179
11180Sun Oct 26 19:32:57 1997  Erez Zadok  <ezk@defiant.soscorp.com>
11181
11182	* amq/amq.c (main): use pmap_ping() to test if remote host is up.
11183	This works better on bsdi2 and bsdi3, because their portmapper
11184	does not appear to like forwarding operations (it is generaly
11185	insecure).
11186
11187Sat Oct 25 04:55:56 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11188
11189	*******************************************************************
11190	*** Released am-utils-6.0a13					***
11191	*******************************************************************
11192
11193Fri Oct 24 05:04:37 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11194
11195	* conf/nfs_prot/nfs_prot_ncr2.h: added missing definition for
11196	struct datum typedef.
11197
11198	* conf/nfs_prot/nfs_prot_netbsd.h: corrected typedef for
11199	ypall_callback_fxn_t for netbsd.
11200
11201	* aux/macros/type_auth_create_gidlist.m4: hpux10.10 uses int for
11202	the 5th arg to authunix_create(), while before and after they used
11203	gid_t.
11204
11205	* conf/transp/transp_tli.c (amu_clnt_create_best_vers): don't use
11206	clnt_create_timed() on older Solaris 2.3 systems that did not have
11207	it.
11208
11209	* conf/nfs_prot/nfs_prot_bsdi2.h: <msdosfs/msdosfsmount.h> is for
11210	kernel only on bsdi2, so do not include it.
11211
11212Fri Oct 24 00:29:42 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
11213
11214	* hlfsd/stubs.c (nfsproc_readlink_2_svc): avoid logging repeated
11215	messages about resolution of mailboxes based on uid/gid.
11216
11217	* scripts/ctl-hlfsd.in: check for alternate password file in
11218	${prefix}/etc/passwd and use it in hlfsd's startup.
11219
11220Thu Oct 23 22:48:50 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
11221
11222	* hlfsd/homedir.c (hlfsd_getpwent): added support for -P
11223	passwdfile option.  If hlfsd is started with -P passwdfile, then
11224	the passwdfile is read and parsed just as a standard unix
11225	passwd(4) file.  Only the username, uid, and homedir fields are
11226	read and checked.  All the rest are ignored.  No NIS/netgroup
11227	support!
11228
11229	* hlfsd/hlfsd.c (main): check if hlfsd is run as root after
11230	parsing command line options, so that usage() can be printed when
11231	-h is invoked.
11232
11233Wed Oct 22 00:16:39 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
11234
11235	* amd/nfs_start.c (mount_automounter): if autofs service listener
11236	fails to initialize it is OK if using a test amd.
11237
11238	* amd/opts.c (f_in_network): new nomadic function in_network(arg),
11239	which returns TRUE if 'arg' is any one of this host's networks.
11240
11241	* libamu/wire.c (getwire): rewritten parts of function, to store
11242	all networks names and numbers in the order of the interface (not
11243	in reverse).
11244
11245Mon Oct 20 01:59:25 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11246
11247	* aux/configure.in: don't add ops_ufs.o on AIX twice.  My code
11248	would have worked had it not been due to AIX's buggy /bin/sh.
11249
11250	* doc/Makefile.am (EXTRA_DIST): include am-utils.dvi and
11251	am-utils.ps in the distribution sources.
11252	(html): generate html documentation for
11253	http://www.am-utils.org
11254
11255Sun Oct 19 12:35:49 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11256
11257	* conf/nfs_prot/nfs_prot_netbsd.h: override the definition of
11258	ypall_callback_fxn_t.  The NetBSD team compiles all sources with
11259	gcc -Wall -Wmissing-prototypes -Wstrict-prototypes.
11260
11261	* amd/info_nis.c: allow for override of ypall_callback_fxn_t
11262	function typedef.
11263
11264	* libamu/xutil.c (amu_release_controlling_tty): new function to
11265	release the controlling tty in a clean and sane manner.  No longer
11266	using setpgid() b/c it may not work.  Uses setsid(),
11267	and ioctl() (in order).  This new function is used in amd/amd.c
11268	and hlfsd/hlfsd.c.  Also avoid setpgrp(), because it works on some
11269	systems, but on others it is the same as setpgid().
11270
11271Sat Oct 18 23:42:40 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11272
11273	* aux/acconfig.h: check for nfs mount option 'fsname'.  Code for
11274	it was in amd/ops_afs.c, amd/ops_nfs.c, and hlfsd/hlfsd.c, but
11275	never used, because the configure test for fsname flag wasn't
11276	used.  This fixed a bug in HPUX 10, where syncer and manual mounts
11277	left blank lines in /etc/mnttab.
11278
11279	* aux/configure.in: check for nfs mount option 'fsname'.
11280
11281Fri Oct 17 13:30:27 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11282
11283	* amd/ops_afs.c (mount_toplvl): turn on 'ignore' option in nfs
11284	mount flags of toplvl mounts.  Important esp. for HPUX 10.  Now
11285	hpux-10 will mount amd's mounts points as 'ignore' (by df).
11286
11287	* aux/configure.in: check for NFS mount option 'ignore', useful in
11288	HPUX 10.
11289
11290Thu Oct 16 03:28:33 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11291
11292	* aux/macros/check_hide_mount_type.m4: hpux 10 should use "ignore"
11293	mount type and not NFS, for the amd mount points.
11294
11295	* conf/transp/transp_tli.c (amu_clnt_create_best_vers): don't log
11296	an RPC timeout as an error, but just an info message.  From
11297	Andreas Stolcke <stolcke@speech.sri.com>
11298
11299	* If the NFS server is down or does not support the portmapper
11300	call (such as certain Novell NFS servers) we mark it as version 2
11301	and we let the nfs code deal with the case that is down.  If when
11302	the server comes back up, it can support NFS V.3 and/or TCP, it
11303	will use those.  From christos@deshaw.com (Christos Zoulas).
11304
11305	* hlfsd/homedir.c (plt_print): various compile time cleanups to
11306	printfs that take a long, but pass an int to print.  From
11307	christos@deshaw.com (Christos Zoulas).
11308
11309	* aux/macros/func_bad_yp_all.m4 (ac_cv_func_yp_all_clean,): new
11310	macro to determine if the OS has a bad yp_all(), based on the host
11311	OS name.  So far only irix (all versions) have a bad yp_all, so
11312	they will use am_yp_all() instead (which is slower as it
11313	enumerates manually all of the map's entries).
11314
11315Thu Oct 16 03:14:37 1997  Erez Zadok  <ezk@subzero.cs.columbia.edu>
11316
11317	* amd/info_nis.c (am_yp_all): code for a replacement yp_all that
11318	avoids using a file-descriptor leaking yp_all() on some systems
11319	like irix.
11320
11321Wed Oct 15 21:52:35 1997  Erez Zadok  <ezk>
11322
11323	* fsinfo/fsinfo.h: avoid redefining yywrap incorrectly on DU-4.x
11324	systems using /usr/bin/flex.
11325
11326	* amd/conf_tok.l (yywrap): avoid redefining yywrap for systems
11327	that have a modified GNU flex which does define yywrap (DU-4.x).
11328
11329Fri Sep 26 14:25:29 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11330
11331	* conf/checkmount/checkmount_bsd44.c: include prototype.
11332
11333Fri Sep 26 01:26:24 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11334
11335	*******************************************************************
11336	*** Released am-utils-6.0a12					***
11337	*******************************************************************
11338
11339Fri Sep 26 00:13:48 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11340
11341	* conf/nfs_prot/nfs_prot_irix6.h: completely turn off all autofs
11342	code in irix6 until it can be tested correctly
11343
11344	* conf/transp/transp_tli.c (amu_clnt_create_best_vers): time out
11345	on clnt_create for 3 seconds, rather than wait for the much longer
11346	default.
11347
11348	* conf/nfs_prot/nfs_prot_aix4_2.h: port to powerpc-ibm-aix4.2.1.0.
11349	Includes NFS3, untested.
11350
11351Thu Sep 25 11:03:11 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11352
11353	* amd/ops_pcfs.c (mount_pcfs): fill in uid/gid fields of
11354	pcfs_args_t if they exist.
11355
11356	* amd/ops_cdfs.c (mount_cdfs): fill in ssector field of
11357	cdfs_args_t if it exists.
11358
11359	* new minor ports hppa1.1-hp-hpux10.10, hppa1.1-hp-hpux9.05,
11360	hppa1.1-hp-hpux9.07, m68k-hp-hpux9.00, and sparc-sun-sunos4.1.4.
11361
11362Wed Sep 24 00:48:05 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11363
11364	* doc/am-utils.texi (wire-test): updated documentation for the new
11365	option.
11366
11367	* wire-test/wire-test.8: updated man page for new option.
11368
11369	* wire-test/wire-test.c (main): added a test for various
11370	combinations of NFS proto/vers to a remote/local host.
11371
11372	* aux/macros/try_compile_anyfs.m4 (AC_TRY_COMPILE): include
11373	<isofs/cd9660/cd9660_mount.h> and <msdosfs/msdosfsmount.h> so that
11374	freebsd will correctly set mount options for pcfs and cdfs.
11375
11376	* amd/ops_pcfs.c (mount_pcfs): set mask field of pcfs_args to
11377	0777 (if field exists).
11378
11379	* aux/macros/try_compile_anyfs.m4 (AC_TRY_COMPILE): include
11380	<msdosfs/msdosfsmount.h> if available.
11381
11382	* minor new port: rs6000-ibm-aix4.1.4.0.
11383
11384	* libamu/mount_fs.c (mount_fs): fixed bug that caused HPUX not to
11385	write the "time" field in /etc/mnttab.
11386
11387	* conf/mtab/mtab_file.c (mnt_dup): fixed typo in macro names for
11388	detecting mnt_time field of mntent_t.
11389
11390	* libamu/mtab.c (mnt_free): fixed typo in macro names for
11391	detecting mnt_time field of mntent_t.
11392
11393Tue Sep 23 15:30:03 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11394
11395	* conf/mtab/mtab_file.c (lock): Use flock() in preference over
11396	fcntl() to lock the mtab file.
11397
11398Mon Sep 22 23:04:58 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11399
11400	* conf/transp/transp_sockets.c (get_nfs_version): define
11401	the try_again goto label only for NFS3.
11402	(pmap_ping): assume timeout failure of clnt_stat.
11403
11404	* libamu/xdr_func.c (xdr_groupnode, xdr_exportnode): cast to
11405	"groups *".
11406
11407Mon Sep 22 20:34:33 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
11408
11409	* conf/transp/transp_sockets.c (pmap_ping): patch from Dan Riley
11410	<dsr@mail.lns.cornell.edu> to make sure that amd works with more
11411	secure portmappers that do not allow forwarding of RPC messages to
11412	other services.
11413
11414	* */Makefile.am: all source files should also depend on the new
11415	include/am_xdr_func.h header.
11416
11417	* include/am_xdr_func.h: new file as part of the code cleanup from
11418	Christos Zoulas <christos@deshaw.com>.
11419
11420	* Lots of fixes from Christos Zoulas <christos@deshaw.com> that
11421	involved missing prototypes, cleaned up ones, and removal of
11422	unused variables.
11423
11424	* libamu/xdr_func.c (xdr_mountres3): some code cleanup.  A switch
11425	statement with only one case is unclean.
11426
11427Mon Sep 22 17:26:38 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11428
11429	* amd/ops_<FOO>fs.c (mount_<FOO>fs): initialize mntent_t fields to
11430	0 so that all fields are initialized to zero at first.  This way
11431	SunOS 4.x and other systems don't get /etc/mtab entries with
11432	random integers for the fsck/freq fields. Patch from Andreas
11433	Stolcke <stolcke@speech.sri.com>.
11434
11435Mon Sep 22 00:34:19 1997  Erez Zadok  <ezk@americas.psl.cs.columbia.edu>
11436
11437	* conf/nfs_prot/nfs_prot_sunos4.h: include <nfs/nfs_clnt.h> so
11438	that the important definition for HOSTNAMESZ will be found.
11439
11440	* amd/ops_afs.c (mount_toplvl): limit hostname size to HOSTNAMESZ
11441	(inside the nfs_args structure) if the system uses that macro.
11442	Otherwise systems like SunOS refuse to NFS mount long pathnames
11443	and result in ENAMETOOLONG errno's.
11444
11445Wed Sep 17 04:56:11 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11446
11447	* doc/am-utils.texi (Supported Platforms): specify new support for
11448	solaris 2.6, and hlfsd running on 2.5.1 too.
11449
11450Wed Sep 17 03:55:02 1997  Erez Zadok  <ezk@amsterdam.psl.cs.columbia.edu>
11451
11452	* conf/mount/mount_svr4.c (mount_svr4): don't attemt an autofs
11453	mount if it is not supported or was turned off.
11454
11455Wed Sep 17 03:19:36 1997  Erez Zadok  <ezk@americas.psl.cs.columbia.edu>
11456
11457	* conf/nfs_prot/nfs_prot_sunos4.h: fixed so that it will nfs mount
11458	again.  Apparently at some previous release SunOS 4 supported was
11459	broken and all nfs mounts resulted in ESTALE.
11460
11461Wed Sep 17 00:26:25 1997  Erez Zadok  <ezk@amsterdam.psl.cs.columbia.edu>
11462
11463	* conf/nfs_prot/nfs_prot_sunos5_6.h: nfs protocol headers for
11464	solaris 2.6.
11465
11466	* aux/macros/check_nfs_prot_headers.m4: added solaris 2.6 nfs
11467	protocol header selection.
11468
11469Sat Sep 13 14:31:51 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11470
11471	* conf/transp/transp_tli.c (amu_clnt_create_best_vers): avoid
11472	infinite loop.
11473
11474Sun Sep  7 18:23:23 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11475
11476	*******************************************************************
11477	*** Released am-utils-6.0a11					***
11478	*******************************************************************
11479
11480Fri Sep  5 11:55:10 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11481
11482	* amd/amd.c (main): if plock() succeeded, don't try to display
11483	errno message.   Patch from Chris Metcalf
11484	<metcalf@catfish.lcs.mit.edu.
11485
11486Thu Sep  4 19:17:58 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11487
11488	* hlfsd/homedir.c (table_add): make sure duplicate passwd entries
11489	are ignored.   Only the first entry should ever be used, because
11490	that's how lookup in passwd database works.
11491
11492	* conf/transp/transp_sockets.c (get_nfs_version): when determining
11493	if a remote host is up or down, use NFS v.2.  Fix suggested by
11494	Enami Tsugutomo <enami@cv.sony.co.jp>.
11495
11496	* conf/transp/transp_tli.c (amu_clnt_create_best_vers): new
11497	function to get the best possible NFS version, but also timeout
11498	faster than normal defaults, so remote hosts which are down can be
11499	detected in a reasonable time.
11500	(get_nfs_version): use the new "best" function.
11501
11502Tue Sep  2 00:41:00 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11503
11504	*******************************************************************
11505	*** Released am-utils-6.0a10					***
11506	*******************************************************************
11507
11508Mon Sep  1 15:39:51 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11509
11510	* conf/transp/transp_tli.c (get_nfs_version): don't use
11511	clnt_tp_create_timed() on systems that don'e have it (Solaris 2.4
11512	and earlier).
11513
11514	* aux/configure.in: test for existence of clnt_tp_create_timed(),
11515	since Solaris 2.4 (and possibly earlier) do not have it.
11516
11517Mon Sep  1 15:23:18 1997  Erez Zadok  <ezk@felix.psl.cs.columbia.edu>
11518
11519	* amd/ops_autofs.c (autofs_unmount_1_svc): only display rdevid
11520	field if it exists (solaris 2.4's autofs does not have it).
11521
11522Mon Sep  1 14:45:09 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11523
11524	* aux/macros/type_auth_create_gidlist.m4: a new test to determine
11525	the correct type to the 5th argument of authunix_create().
11526
11527Mon Sep  1 03:44:32 1997  Erez Zadok  <ezk@felix.psl.cs.columbia.edu>
11528
11529	* libamu/xdr_func.c (xdr_umntrequest): add test for autofs
11530	structure umntrequest, if it has the field rdevid.  Seems Solaris
11531	2.4 and earlier didn't have it.
11532
11533Mon Sep  1 01:10:53 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11534
11535	* hlfsd/hlfsd.c (hlfsd_init): moved initialization upwards, so it
11536	can be done before primary process forks.
11537	(main): bug fix: wait a bit to give child a chance to initialize.
11538	Without this, hlfsd got into a busy infinite loop while, never
11539	completing the mount.
11540
11541	* amd/info_nis.c: patch from Jason Thorpe <thorpej@nas.nasa.gov>
11542	to make amd works when talking to NIS+ servers in NIS
11543	compatibility mode.
11544
11545Mon Sep  1 00:46:56 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
11546
11547	* amd/mapc.c (MAX_CHAIN): increased maximum chain size to 1024.
11548
11549Sun Aug 31 20:20:40 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
11550
11551	* amd/conf.c (gopt_fully_qualified_hosts): a new function to
11552	process another new global variable.
11553
11554	* amd/ops_nfs.c (make_nfs_auth): if a new global variable
11555	fully_qualified_hosts is on, use FQHN in RPC/NFS authentications.
11556	Patch from Chris Metcalf <metcalf@catfish.lcs.mit.edu>.
11557
11558	* amd/conf.c (process_last_regular_map): If the amd.conf file only
11559	has a [global] section (pretty useless IMHO), do not try to
11560	process a map that does not exist.
11561
11562	* scripts/amd.conf.5: fixed typos (repeated 'as' word).
11563
11564	* doc/am-utils.texi: MAJOR DOCUMENTATION REVISION COMPLETED!!!
11565
11566	* amd/conf.c (reset_cf_map): Bug fix.  Reset 'tag' field of cfm
11567	structure, so it does not carry over from map entry to another.
11568
11569Sat Aug 30 18:39:21 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
11570
11571	* amd/amd.c (main): fixed the meaning of the plock option.  A bug
11572	caused it to be reversed.
11573
11574Sat Aug 30 15:13:18 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11575
11576	* hlfsd/stubs.c: don't initialize some statics here.  They are
11577	better initialized in hlfsd_init_filehandles().
11578
11579Fri Aug 22 14:47:16 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11580
11581	* amd/conf.c (gopt_show_statfs_entries): new function and a global
11582	amd.conf key show_statfs_entries.  Defaults to 'no'.  If 'yes',
11583	then all maps flagged as browsable will also show a count of the
11584	number of entries (keys) in that map.
11585
11586	* amd/nfs_subr.c (count_map_entries): new function to count number
11587	of entries in a map.  Now used if browsable is turned on in a map,
11588	to return a count of available keys in a given map.
11589
11590	* hlfsd/stubs.c (eq_fh): use correct memcmp().  BUG fixed! hlfsd
11591	confused the file handles for ".", "..", and the symlink, causing
11592	mess.
11593
11594	* aux/macros/func_bad_memcmp.m4: new test, based on autoconf 2.12,
11595	but also defines HAVE_BAD_MEMCMP, so I avoid linkage conflicts
11596	with bad memcmp() in libc's (nextstep3).
11597
11598Thu Aug 21 17:38:41 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11599
11600	* aux/configure.in: check if autofs_args_t has a field named
11601	addr.  Solaris has it for specifying the address of the daemon,
11602	but Irix does not.  So how does irix tell the kernel the daemon's
11603	address?  I suspect that it is hardcoded to "localhost" using a
11604	"private well-known port" (#define AUTOFS_PORT 2048).
11605
11606	* conf/nfs_prot/nfs_prot_linux.h: added missing autofs
11607	definitions.
11608
11609	* README.autofs: new file listing autofs support notes
11610
11611	* very preliminary autofs code working.  Call it pre-alpha
11612	quality.
11613
11614Sun Aug 17 02:25:09 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11615
11616	* amd/conf.c (ropt_mount_type, gopt_mount_type): don't accept
11617	"autofs" if system does not support it.
11618
11619	* amd/amd.c (main): log am-utils version string (same as amd -v)
11620	at start of run.
11621
11622	* conf/transp/transp_sockets.c (get_nfs_version): in order to tell
11623	if a remote host is available, try to contact its portmapper and
11624	timeout if no answer is received in 3 seconds.
11625
11626Thu Aug 14 16:12:04 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11627
11628	* aux/macros/check_extern.m4 (pattern): use a simpler pattern for
11629	match for external function definitions.  The function could span
11630	multiple lines, so only match the opening parenthesis, not the
11631	closing one too.
11632
11633	* aux/macros/os_cpp-flags.m4 (ac_cv_os_cppflags,): do NOT turn on
11634	posix mode for nextstep3.  It is broken.
11635
11636	* amd/amd.c (init_global_options): run uname() only if
11637	<sys/utsname.h> and uname(2) exist.
11638
11639	* amd/rpc_fwd.c (fwd_packet): if remote host is down, the
11640	forwarding socket is null, so declare this an error.
11641
11642	* include/am_utils.h (AM_ERRNO_HOST_DOWN): find best errno to set
11643	for when a remote host is down.  Try, in order, "host down", "host
11644	unreachable", "invalid argument".
11645
11646	* amd/ops_nfs.c (discard_fh): don't dereference a null pointer
11647	(happens when remote host is down, and fp->fh_fs is NULL).
11648	(prime_nfs_fhandle_cache): ditto, and set fs flags to !FSF_VALID
11649	and FSF_DOWN.
11650
11651	* amd/sched.c: nobody uses "union wait" any more, or so it
11652	appears, so clean up that code.
11653
11654	* conf/transp/transp_tli.c (get_nfs_version): if remote host is
11655	down, time it out faster than default (3 seconds).
11656	(get_mount_client): free netconfig entry when done with it.
11657
11658	* conf/nfs_prot/nfs_prot_nextstep.h: initial (and somewhat ugly)
11659	port to nextstep3 (m68k-next-nextstep3).
11660
11661	* fsinfo/Makefile.am (LDADD): needs to link with libamu in case
11662	system does not have strdup().
11663
11664	* include/am_defs.h: complete external definition for getlogin()
11665	if needed.
11666
11667	* conf/transp/transp_tli.c (get_nfs_version): no need to keep
11668	static versout variable.
11669
11670	* amd/rpc_fwd.c (fwd_packet): if fwdto packet is null, remote
11671	server is probably down.  Don't use sendto() in that case.
11672
11673	* buildall (default): run gmake if found, before trying plain
11674	make.  GNU make is always preferable.
11675
11676Tue Aug 12 21:23:58 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11677
11678	* aux/macros/host_macros.m4: cleanup of os_version and os
11679	overrides.  Solaris 2.5.1 for example will come up as solaris2 and
11680	2.5.1, rather than sunos5 and 5.5.1.  Both can be overridden in
11681	the amd.conf file.
11682
11683Fri Aug  8 14:37:30 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11684
11685	*******************************************************************
11686	*** Released am-utils-6.0a9					***
11687	*******************************************************************
11688
11689Thu Aug  7 00:52:14 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11690
11691	* conf/nfs_prot/nfs_prot_ncr2.h: new file, for NCR2
11692	(i486-ncr-sysv4.3.03) headers.  Needed to complete missing stuff
11693	from <ndbm.h> and <sys/resource.h>.
11694
11695	* scripts/amd.conf.5: new map page.
11696
11697	* amd/info_hesiod.c: define extern for hesiod_resolve, since bsdi3
11698	does not.
11699
11700	* amd/amd.8: updated man page.
11701
11702	* amd/get_args.c (get_args): removed defunct -h option to amd.
11703
11704	* amq/amq.8: updated man page.
11705
11706	* amd/info_nisplus.c (nisplus_search): prototype fixes so Sun
11707	SparcCompiler CC won't complain.
11708
11709	* amd/info_hesiod.c (hesiod_search): small fixes to compile with
11710	hesiod-1.3, as per Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>.
11711
11712	* aux/macros/opt_ldflags.m4: new option added to configure
11713	--enable-ldflags, to specify -L option for configuring/compiling.
11714	The older one --enable-libs is now to be used only for -l options.
11715
11716	* amd/ops_nfs.c (mount_nfs_fh): bug fixed.  Should initialize
11717	nc_protoname from nfs_proto if available for all TLI systems, not
11718	just those that have NFS V3.
11719
11720	* amd/info_ldap.c: ldap patches from Leif Johansson
11721	<leifj@matematik.su.se>, adding two new amd.conf ldap variables:
11722	ldap_cache_seconds and ldap_cache_maxmem.
11723
11724	* hlfsd/hlfsd.c (main): bug fixed. port number must be wrapped in
11725	htons().
11726
11727Sun Aug  3 17:20:05 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11728
11729	* amd/nfs_start.c (mount_automounter): register amd with the rpc
11730	program number that may have been overridden by amd.conf.
11731
11732	* libamu/xutil.c (set_amd_program_number, get_amd_program_number):
11733	allow storing and retrieving alternate amd program numbers.
11734
11735	* amd/conf.c (gopt_portmap_program): new function to parse
11736	amd.conf entry portmap_program=1234.
11737
11738	* amq/amq.c (main): allow specifying an alternate rpc program
11739	number for amd via -P prognum.
11740
11741	* new amq RPC to get the process id of the running amd.  This is
11742	used in ctl-amd to quickly find the pid of the amd that is to be
11743	killed.
11744
11745	* expanded shared libraries support.  Using GNU libtool-1.0,
11746	am-utils now builds shared libraries on many platforms that have
11747	support for it and proper compilers/linkers.  See "INSTALL" file
11748	for compatibility chart.
11749
11750Thu Jul 31 13:07:23 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11751
11752	* fsinfo/fsi_lex.l: removed code that was in support of very old
11753	versions of flex.  No longer needed.
11754
11755Tue Jul 29 12:00:13 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11756
11757	* amd/amd.c (init_global_options): find the kernel architecture
11758	from uname() if possible.
11759
11760Mon Jul 28 03:53:59 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11761
11762	* new working port: i386-unknown-openbsd2.1
11763
11764Fri Jul 25 03:16:31 1997  Erez Zadok  <ezk@felix.psl.cs.columbia.edu>
11765
11766	* working port: sparc-sun-solaris2.4.  Had to fix fhandle_t from
11767	structure to actual char[], because the structure was passed to
11768	xdr_fhandle as data and not a pointer.  Surprisingly, gcc
11769	-fpcc-struct-return did not help.
11770
11771	* conf/nfs_prot/nfs_prot_sunos5_4.h: special nfs protocol
11772	definitions for solaris 2.4 have to be different from 2.3, and
11773	different from 2.5.
11774
11775	* libamu/xdr_fhstatus.c (xdr_fhstatus): minor code cleanup.
11776
11777Thu Jul 24 16:22:39 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11778
11779	* conf/mount/mount_svr4.c (mount_svr4): use STREQ to compare mount
11780	types, not ==.  Fix from Christos Zoulas <christos@deshaw.com>.
11781
11782	* mk-amd-map/mk-amd-map.8: man page taken from bsd44.
11783
11784Thu Jul 24 00:01:55 1997  Erez Zadok  <ezk@moisil.cs.columbia.edu>
11785
11786	* conf/mount/mount_linux.c: made the nfs error mapping code into a
11787	small function.
11788
11789Wed Jul 23 16:11:49 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11790
11791	* conf/nfs_prot/nfs_prot_linux.h (NFS_ERROR_MAPPING): special
11792	error mappings from errno numbers to NFS errors.  From Debian
11793	Linux.
11794
11795	* scripts/am-eject.in (fs): new script (taken from Debian Linux
11796	folks) to auto-unmount floppy/cd devices before ejecting them.
11797
11798	* fsinfo/wr_exportfs.c (write_exportfs): from Debian folks, pass
11799	'5' as second arg to show_area_being_processed.  I'm not sure why.
11800
11801	* fsinfo/wr_atab.c (write_atab): from Debian folks, pass '5' as
11802	second arg to show_area_being_processed.  I'm not sure why.
11803
11804	* conf/mount/mount_linux.c (parse_opts): as per Debian Linux,
11805	ensure that you have a buffer in *xopts to strcat onto.
11806	(mount_linux): fixed from Debian folks to ensure that NFS mount
11807	sockets are connected only for kernels prior to 1.3.10 (avoids
11808	hangs for multi-homed hosts).
11809
11810	* amd/mapc.c (make_entry_chain): from Debian folks: don't skip
11811	over amd map keys that have a prefix, and include the prefix in
11812	the returned readdir().
11813
11814	* amd/info_passwd.c (passwd_init, passwd_search): format
11815	enhancements from the Debian Linux folks.  They added
11816	- var0:=pw-prefix:=anydir
11817	- var1:=pw-rhost:=dom3.dom2.dom1
11818	- var2:=pw-user:=user
11819	- var3:=pw-home:=/anydir/dom1/dom2/dom3/user
11820
11821	* new ports: sparc-sun-solaris2.4 and sparc-sun-sunos4.1.1.
11822
11823	* amd/ops_afs.c (afs_retry): patches from Debian Linux.  If
11824	afs_mount timed out, then explicitly forbid further retries after
11825	the timeout.  (afs_bgmount): bug fix from Debian Linux.  Timeout
11826	values (17 and 5) were mistakenly swapped.
11827
11828Wed Jul 23 15:53:25 1997  Erez Zadok  <ezk@felix.psl.cs.columbia.edu>
11829
11830	* conf/nfs_prot/nfs_prot_sunos5_3.h: turn off non-existent NFS V.3
11831	support for Solaris 2.4 (the header files incorrectly define parts
11832	of the NFS V.3 protocol, but the kernel does not support it).
11833
11834Wed Jul 23 00:07:12 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11835
11836	* amd/info_hesiod.c: minor cleanup to use hes_init and hesiod_init
11837	for determining if using old or new hesiod libraries,
11838	respectively.
11839
11840	* amd/ops_nfs.c (mount_nfs_fh): If "noconn" option exists in NFS
11841	V.3 then use non-connected sockets (both TCP and UDP).  Otherwise
11842	they cause hangs of mounts from multi-homed hosts when the return
11843	route is not the same as the outgoing route (esp. on NetBSD
11844	1.2.1).  If "conn" option was supplied, then don't turn on the
11845	"noconn" mount option.  Otherwise default to "noconn" mount
11846	option.
11847
11848	* aux/configure.in: better check for systems that need libgdbm and
11849	<ndbm.h>
11850
11851Tue Jul 22 04:02:05 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11852
11853	* hlfsd/hlfsd.c (main), amd/ops_afs.c (mount_toplvl): ensure that
11854	mounts are hidden from df(1) on systems that keep mount tables in
11855	kernel, such as osf1.
11856
11857Tue Jul 22 02:26:55 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11858
11859	*******************************************************************
11860	*** Released am-utils-6.0a8					***
11861	*******************************************************************
11862
11863Mon Jul 21 21:33:19 1997  Erez Zadok  <ezk@stone.mcl.cs.columbia.edu>
11864
11865	* hlfsd/hlfsd.c (main): bug fixed: forgot to set sin_family to
11866	AF_INET when hlfsd mounts itself, thus getting an errno "protocol
11867	family not supported".
11868
11869Mon Jul 21 20:46:59 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11870
11871	* verified that amd on NetBSD 1.2.1 (i386) works, but the OS
11872	itself is flaky.
11873
11874	* verified that amd AIX 3 works w/ the new readdir() code.
11875
11876Mon Jul 21 18:59:30 1997  Erez Zadok  <ezk@chestnut.mcl.cs.columbia.edu>
11877
11878	* amd/mapc.c (maptypes): changed the default map caching type for
11879	nis and ndbm maps to "MAPC_ALL", so that all possible entries will
11880	be available to amd for browsable_dirs=yes.
11881
11882Mon Jul 21 18:04:16 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11883
11884	* amd/ops_afs.c (afs_readdir, afs_readdir_browsable): split
11885	afs_readdir into a browsable version and a non-browsable one.
11886	Fixed bugs that resulted in an infinite nfs_readdir loop on the
11887	localhost for some operating systems.
11888
11889Sat Jul 19 19:38:38 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11890
11891	* amd/ops_afs.c (afs_readdir): fixed up the browsable code to
11892	comply with nfs_readdir specs.  It was returning all entries at
11893	once, even if there was not enough space in the RPC packet.  Now,
11894	it sends a reasonably sized chunk, and sets static state to resume
11895	it for the next continuation RPC of readdir.
11896
11897	* amd/conf.c (set_conf_kv): fixed bug that resulted in the first
11898	regular map not getting all of the [global] options defaulted from.
11899
11900Fri Jul 18 00:45:12 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11901
11902	* amq/amq.c (main): fixed so that portmapper "ping" will only fail
11903	upon an RPC timeout
11904
11905	* scripts/ctl-{amd,hlfsd}.in (killproc): better method to find the
11906	amd/hlfsd process to kill.
11907
11908	* amd/ops_afs.c (mount_toplvl), hlfsd/hlfsd.c (main): code to
11909	determine how to avoid df from seeing amd's toplvl mounts.  Moved
11910	from libamu/mount_fs.c and include/am_utils.h.  Ensure that hlfsd
11911	is hidden from df.
11912	(mount_toplvl): fixed df types for irix.
11913
11914Thu Jul 17 21:59:45 1997  Erez Zadok  <ezk@americas.psl.cs.columbia.edu>
11915
11916	* amq/amq.c (main): fixed bug that caused the 5 second timeout for
11917	TLI amq using udp to be ignored.
11918	(main): if amq cannot contact remote host's portmapper within 5
11919	seconds, timeout and fail faster than the default longer timeout
11920	(this is for non-TLI systems).
11921
11922Thu Jul 17 17:08:13 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11923
11924	* amq/amq.c (get_secure_amd_client): if amq cannot contact
11925	remote host's portmapper within 5 seconds, timeout and fail faster
11926	than the default TLI timeout of over 4 minutes.
11927
11928	* amd/am_ops.c (ops_showfstypes): added styles for new bsd44
11929	file systems nullfs, unionfs, and umapfs.
11930	(ops_show1): cleanup code and and reuse this function.
11931	(vops): empty placeholders for nullfs, unionfs, and umapfs.
11932
11933	* amd/ops_{nullfs, unionfs, umapfs}.c: 3 new empty templates for
11934	bsd44 style file systems.
11935
11936	* fsinfo/fsinfo.8: man page for fsinfo rewritten from bsd44
11937	sources.
11938
11939	* amd/conf_tok.l, fsinof/fsi_lex.c: undefine ECHO to avoid
11940	conflict with systems that define it in <sys/ioctl.h> and also
11941	define a conflicting one via lex.  Newer versions of f/lex are ok.
11942
11943Wed Jul 16 00:17:45 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11944
11945	* amd/ops_nfs.c (mount_nfs_fh): fill in nfs_args' fields
11946	acdirmin/max and acregmin/max only if they exist.
11947
11948	* aux/configure.in: test for nfs_args fields acdirmin and
11949	acregmin.
11950
11951Tue Jul 15 17:24:09 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11952
11953	* aux/configure.in: commented out checking for MNT2_GEN_OPT_* for
11954	"nondev" and commented back in checking for "nodev".  This was a
11955	typo.
11956
11957	* include/am_compat.h: more compatibility options: define "ro"
11958	mnttab option all the time.  Define "overlay" as needed.  Added
11959	more fillers of mnttab options (as per Daniel S. Riley
11960	<dsr@mail.lns.cornell.edu>), for acdirmax, acdirmin, acregmax,
11961	acregmin, noac, grpid, nosuid, and actimo.
11962
11963	* libamu/mount_fs.c (mnt_flags): fixed a typo in "ro" option as
11964	per dsr@mail.lns.cornell.edu (Daniel S. Riley).  Then cleaned up
11965	the same code for other options in struct opt_tab.
11966
11967Mon Jul 14 22:36:37 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11968
11969	* amd/get_args.c (get_args): moved amd.conf file parsing to before
11970	the switching the default log/debug options.  Suggested by
11971	dsr@mail.lns.cornell.edu (Daniel S. Riley).
11972
11973	* aux/update_build_version: new script to record the build version
11974	of amd, along with the rest of the info thet comes up with amd -v.
11975
11976Sun Jul 13 00:30:24 1997  Erez Zadok  <ezk@decca.damtp.cam.ac.uk>
11977
11978	* aux/macros/os_cflags.m4: new macro, to add additional
11979	compilation options (also used during configuration), based on the
11980	OS and the compiler.  Used for solaris-2.6, osf, and irix6.
11981
11982Fri Jul 11 10:15:11 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11983
11984	* amd/conf_tok.l, conf_parse.y: allow values of keys to include
11985	white spaces, if they are double-quoted (key="some value")
11986
11987	* amd/info_hesiod.c (hesiod_search): cleanup and minor bug fixes
11988	of hesiod from Danny Braniss <danny@cs.huji.ac.il>.
11989
11990Fri Jul 11 02:16:06 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11991
11992	*******************************************************************
11993	*** Released am-utils-6.0a7					***
11994	*******************************************************************
11995
11996Thu Jul 10 12:19:25 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
11997
11998	* include/am_defs.h: fill in extern definition of innetgr() in
11999	case system headers don't.
12000
12001	* aux/macros/path_prog_lex.m4 aux/configure.in: using macros that
12002	will show the full pathname to yacc/bison and f/lex.  Some systems
12003	have older or bad versions of those and this way the user will
12004	know for sure what is being invoked.
12005
12006	* tasks: file populated with todo items.
12007
12008	* scripts/amd2ldif.in: Script to convert amd maps to plain text
12009	LDAP object files.  Contributed by Leif Johansson
12010	<leifj@matematik.su.se>.
12011
12012	* aux/config.guess: added recognition for sun3's running 4.2bsd,
12013	from Tom Schmidt <tschmidt@micron.com>.  Fixed one small typo.
12014
12015	* amd/conf.c: several variables that were local to a map, were
12016	also added to [global], where they apply to all maps.  Each map
12017	can then individually override those defaults.  Flags
12018	affected: browsable_dirs and mount_type.  Options affected:
12019	map_type, map_options, and search_path.
12020
12021	* amd/amd.h: eliminated several global flags each of which took an
12022	int, in favor of one global flags variable used as a bit field.
12023
12024	* amd/amd.c (init_global_options): moved all global variables into
12025	a single struct amu_global_options, so it is easier to add new
12026	ones and/or identify existing ones.
12027
12028	* amd/get_args.c (get_args): removed unused amd -m option.
12029
12030	* amd/conf.c (gopt_cluster): added new amd.conf option for cluster
12031	name, same as amd -C.
12032
12033	* amd/info_ldap.c: LDAP info map functions from Leif Johansson
12034	<leifj@matematik.su.se>.
12035
12036	* amd/conf.c (gopt_ldap_base, gopt_ldap_hostports): put in global
12037	amd.conf options for ldap_base and ldap_hostports.
12038
12039	* amd/opts.c (f_netgrp): new amd map function netgrp(ARG) to test
12040	if the current host is in the ARG host netgroup.
12041
12042	* aux/configure.in: some systems replaced dbm in libc with GNU's
12043	libgdbm, so check for libgdbm, but only if dbm_open is not in
12044	libc already.  This was a recommendation from Tom Schmidt
12045	<tschmidt@micron.com>.
12046
12047	* conf/nfs_prot/nfs_prot_sunos5_3.h: port to sparc-sun-solaris2.3
12048	completed.
12049
12050Wed Jul  9 18:14:59 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12051
12052	* port to sparc-unknown-netbsd1.2E done, not tested.  Includes NFS
12053	V.3.
12054
12055Tue Jul  8 17:35:07 1997  Erez Zadok  <ezk@elk.mcl.cs.columbia.edu>
12056
12057	* port to i386-unknown-freebsd3.0 done and working.  Includes NFS
12058	V.3.
12059
12060	* aux/macros/check_nfs_fh_dref.m4: freebsd3 should use
12061	file handle dereferencing style similar to freebsd22.
12062
12063	* include/am_defs.h: need to include <net/if_var.h> before
12064	<netinet/if_ether.h> on freebsd3.
12065
12066	* conf/nfs_prot/nfs_prot_freebsd3.h: new protocol header additions
12067	for freeBSD 3.0.
12068
12069Tue Jul  8 16:53:41 1997  Erez Zadok  <ezk@moisil.cs.columbia.edu>
12070
12071	* amd/info_nis.c (nis_reload): cast nis' callback function so
12072	picky compilers won't complain.
12073
12074	* libamu/xdr_mountres3.c (xdr_mountres3): make sure this function
12075	gets compiled only if the system has NFS V3 and does not have
12076	xdr_mountres3.
12077
12078Tue Jul  8 12:42:03 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12079
12080	* COPYING: put in some legal stuff in this file.
12081
12082Mon Jul  7 19:10:44 1997  Erez Zadok  <ezk@prometheus.soscorp.com>
12083
12084	* NFS V3 now works under Irix5, thanks to patches from
12085	Andreas Stolcke <stolcke@speech.sri.com>.
12086
12087	* conf/mount/mount_irix5.c: sparate mount_irix.c into an irix5
12088	version and an irix6 version, since irix5's NFS V3 code is broken
12089	and hacky.
12090
12091	* amd/info_hesiod.c (hs_zone_transfer): minor fixes to buffer
12092	sizes for some hesiod queries.  Patch from Danny Braniss
12093	<danny@cs.huji.ac.il>.
12094
12095Mon Jul  7 19:04:14 1997  Erez Zadok  <ezk@glory.soscorp.com>
12096
12097	* amd/ops_nfs.c (mount_nfs_fh): fixed NFS V.3 support for bsdi3.
12098
12099Sun Jul  6 14:22:24 1997  Erez Zadok  <ezk@glory.soscorp.com>
12100
12101	* aux/{configure.in,acconfig.h}: added checks for struct
12102	nfs_args's fields proto and sotype (bsdi3).
12103
12104	* amd/ops_nfs.c (mount_nfs_fh): added nfsv3 option to
12105	nfs_args.flags for bsdi3.  Set field proto to 0.  Set sotype field
12106	to SOCK_STREAM or SOCK_DGRAM.
12107
12108	* aux/macros/check_mount_style.m4: add case for bsdi3.
12109
12110	* amd/info_hesiod.c: got hesiod support for bsdi3.
12111
12112Sun Jul  6 11:14:47 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12113
12114	* aux/configure.in: look for hesiod on libc (bsdi3)
12115
12116	* amd/get_args.c (get_args): reformat usage so it fits in 80
12117	columns.
12118
12119	* scripts/ctl-amd.in: changed directory name for optional tftpboot
12120	map to /tftpboot/.amd.
12121
12122Sat Jul  5 17:46:45 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12123
12124	*******************************************************************
12125	*** Released am-utils-6.0a6					***
12126	*******************************************************************
12127
12128Sat Jul  5 03:17:09 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12129
12130	* scripts/ctl-amd.in: include -T tag for tftpboot.
12131
12132	* new port: mips-sgi-irix5.3.  Compiled with gcc, but NFS V3 code
12133	is broken and needs work on the specific nfs_args that irix5 uses
12134	for V3 mounts.
12135
12136Sat Jul  5 01:44:25 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
12137
12138	* amd/get_args.c (get_args): new options amd -T tag.  A map with
12139	tag=foo matching the -T tag will be processed.  All untagged maps
12140	get processed all the time.
12141
12142Fri Jul  4 16:19:26 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12143
12144	* aux/configure.in: need to check for strcasecmp in libucb (ncr2)
12145
12146	* aux/macros/check_os_libs.m4: a new macro to set the usage of
12147	libnsl and libsocket based on the OS.
12148
12149	* libamu/mount_fs.c (mnt_flags): used MNTTAB_OPT_GRPID if it is
12150	defined (problem on osf4).
12151
12152	* conf/nfs_prot/nfs_prot_irix5.h: new file for irix5 headers.
12153
12154	* include/am_defs.h, aux/macros/try_compile_nfs.m4,
12155	aux/macros/mount_headers.m4: do include <sys/proc.h> because it
12156	failes on irix5.  Rather, put in the individual
12157	conf/nfs_prot/nfs_prot_*.h headers.
12158
12159	* amd/conf.c: AIX3 doesn't like strdup() being passed a constant
12160	char*, so cast all strdup()'s args to a non-const char*.
12161
12162	* amd/mapc.c (root_newmap): don't try to strdup only a "const
12163	char *".
12164
12165Fri Jul  4 15:47:10 1997  Erez Zadok  <ezk@americas.psl.cs.columbia.edu>
12166
12167	* conf/nfs_prot/nfs_prot_sunos4.h: added rpc/rpc.h and
12168	sys/errno.h.
12169
12170Thu Jul  3 17:49:00 1997  Erez Zadok  <ezk@prometheus.soscorp.com>
12171
12172	* made sure am-utils compiles, links, and runs properly on Irix
12173	6.2 using "cc -32 -Wl,-woff,"
12174
12175	* aux/macros/check_lib2.m4: a bug fix version to autoconf 2.12
12176	AC_CHECK_LIB.  If OTHER-LIBRARIES are defined and used, then add
12177	them to $LIBS.
12178
12179	* aux/configure.in: some cleanup of which libraries are needed.
12180	Espectially ensure that libnsl is included only on Solaris, where
12181	so far it is the only system on which it is absolutely necessary.
12182	Also no longer need to include libc explicitly.
12183
12184	* amd/amd.c,wire-test/wire-test.c (main): convert IP address to
12185	network-long order before printing it.
12186
12187	* wire-test/wire-test.c (main): also check and report on the IP
12188	address of the local host, since some systems have bad versions of
12189	get_myaddress, or ones that conflict with other versions in
12190	multiple libraries (SunOS 4 and Irix especially).
12191
12192Wed Jul  2 18:19:02 1997  Erez Zadok  <ezk@starblazers.soscorp.com>
12193
12194	* scripts/ctl-amd.in: don't use full pathname so killproc() works
12195	better.  Also run bsd44 and irix style ps programs.
12196
12197	* aux/macros/check_lib_funcs.m4: bug fixed: used to define usage
12198	of library no matter if it was found or not.
12199
12200Wed Jul  2 02:11:48 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12201
12202	* aux/macros/check_mnt2_gen_opt.m4: turned back on the checking
12203	for M_* macros, but ensure that <sys/stream.h> is not included at
12204	all so it won't conflict with other M_* macros.
12205
12206Tue Jul  1 21:16:51 1997  Erez Zadok  <ezk@mako.cs.columbia.edu>
12207
12208	* conf/mount/mount_irix.c (mount_irix): first arg to mount(2) on
12209	irix should be "spec" (host:/path), not the dir of the mnt point.
12210
12211	* amd/ops_afs.c (afs_lookuppn): bug in enable_default_selectors
12212	fixed.  If on, it essentially ignored the setting in a
12213	selector-controlled /defaults if there were 2 or more entries in it.
12214
12215Tue Jul  1 12:23:38 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12216
12217	* scripts/ctl-{amd,hlfsd}.in (killproc): if failed to find process
12218	using BSD style ps, then try SVR4 style ps.
12219
12220	* include/am_utils.h (amuDebug): renamed Debug macro to amuDebug
12221	etc., to avoid conflicts with similar named macros in <ldap.h>.
12222
12223	* aux/configure.in, amd/info_ldap.c, etc.: put in all the autoconf
12224	support needed for LDAP.  Now the code has to be written mostly in
12225	amd/info_ldap.c.
12226
12227	* Included additional patches from Andreas Stolcke
12228	<stolcke@speech.sri.com> to support using the best possible
12229	combination of NFS version (2,3) and protocol (udp,tcp) for any
12230	given host, since it appears that some Irix versions have NFS V3,
12231	but do not support TCP.
12232
12233	* scripts/ctl-amd.in: updated amd control script to look for and
12234	use amd.conf file.
12235
12236Tue Jul  1 00:28:23 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
12237
12238	* amd/mapc.c (mapc_create): now, each map in the amd.conf can be
12239	initialized off of a different type, or default to cycling through
12240	all maps until one of them matches.
12241
12242Mon Jun 30 20:49:13 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
12243
12244	* amd/ops_afs.c (afs_readdir): per-map browsing (readdir) done.
12245	if browsable_dirs=yes is set in the map section in amd.conf, that
12246	map will return all entries back to a readdir(2).
12247
12248Sun Jun 29 16:22:11 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
12249
12250	* rudimentary amd.conf file support included.  You may even
12251	override things like os=sos5, to get "backwards" compatibility with
12252	upl102.
12253
12254Sat Jun 28 13:35:02 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
12255
12256	* amd/conf.c: new file to process amd.conf file.
12257
12258	* amd/get_args.c (get_args): new options -H to print help.
12259
12260	* moved enable_default_selectors to be amd.conf controlled, and
12261	not compiler controlled.
12262
12263	* amd/get_args.c (get_args): new options -F <conf-file> to parse an
12264	amd configuration file.
12265
12266Wed Jun 25 23:15:42 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
12267
12268	* converted all files that used strcmp() == 0 or != 0  to using
12269	the STREQ() macro.
12270
12271Mon Jun 23 22:31:14 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
12272
12273	* aux/macros/check_lib_funcs.m4: new M4 macro that can be used to
12274	search for any number of functions in any given library.
12275
12276Mon Jun 23 01:04:23 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12277
12278	* amd/mapc.c: Included patch from Leif Johansson
12279	<leifj@matematik.su.se> to ensure that systems without an RE
12280	library can compile.
12281
12282	* libamu/mount_fs.c (mount_fs): Included patch from Andreas
12283	Stolcke <stolcke@speech.sri.com>, to ensure that mount options on
12284	table are properly delimited by a comma.
12285
12286	* amd/ops_nfs.c (mount_nfs_fh): Included patch from Andreas
12287	Stolcke <stolcke@speech.sri.com>, to allow users to override the
12288	proto= and vers= mount options.
12289
12290Sun Jun 22 01:00:11 1997  Eric Dana  (edana@ncr2.bgs.com)
12291
12292	* conf/nfs_prot/nfs_prot_svr4.h: port completed to
12293	i486-ncr-sysv4.3.03.  Assorted source cleanups done.
12294
12295	* include/am_defs.h, aux/macros/mount_headers.m4: don't include
12296	mnttab.h if sys/mnttab.h was already included, because on ncr2,
12297	they contain conflicting entries for struct mnttab.
12298
12299Sat Jun 21 23:52:15 1997  Eric Dana  (edana@ncr2.bgs.com)
12300
12301	* aux/macros/check_nfs_prot_headers.m4: added support for ncr2.
12302
12303Fri Jun 20 06:14:17 1997  Erez Zadok  <ezk>
12304
12305	* amd/*.c: lots of 64-bit "ugly" ports like casts to long ints.
12306
12307	* aux/macros/struct_nfs_fh.m4: check for "struct nfssvcfh" because
12308	on DU-4.0 it is better than the next one to be picked (nfsv2fh_t).
12309
12310Wed Jun 18 18:59:49 1997  Erez Zadok  <ezk@defiant.soscorp.com>
12311
12312	* aux/macros/struct_nfs_fh.m4 (AC_TRY_COMPILE_NFS): check for
12313	nfsv2fh_t before fhandle_t becasue on bsdi2.1 the former is
12314	better.
12315
12316Tue Jun 10 17:06:58 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
12317
12318	* amd/rpc_fwd.c (fwd_packet): TLI bug fix. if fwdto socket is
12319	NULL, set the maxlen and len fields in netbuf to zero.
12320
12321Wed May 28 22:52:28 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12322
12323	* scripts/fix-amd-map.in (name): replace all matching patterns on
12324	line.
12325
12326Sun May 25 19:33:41 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12327
12328	*******************************************************************
12329	*** Released am-utils-6.0a5					***
12330	*******************************************************************
12331
12332Sun May 25 13:37:24 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
12333
12334	* amd/amq_subr.c (amqproc_getvers_1_svc): amq's RPC service
12335	procedure now returns the full string that amd -v returns.
12336
12337	* amd/get_args.c (get_version_string): new function to return
12338	complete version/info string so it could be used more flexibly.
12339
12340	* amd/am_ops.c (ops_showamfstypes, ops_showfstypes): put the list
12341	of Fs types into a string buffer, rather than a FILE*.
12342
12343	* amd/mapc.c (mapc_showtypes): put the list of map types into a
12344	string buffer, rather than a FILE*.
12345
12346Sun May 25 01:25:36 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12347
12348	* amd/get_args.c (get_args): amd -v also prints user who built
12349	amd, hostname built on, and date of configuration.
12350
12351Sat May 24 13:40:50 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12352
12353	* scripts/lostaltmail.conf-sample: sample lostaltmail
12354	configuration file.
12355
12356	* scripts/lostaltmail.in: new script lostaltmail used to redeliver
12357	"lost" mail that hlfsd redirected to a temp location because the
12358	primary home file system of the user was full.
12359
12360	* scripts/amd2sun.in: new script amd2sun. Used to convert Sub
12361	automount maps to amd maps.
12362
12363	* scripts/ctl-hlfsd.in: new script ctl-hlfsd.  Used to start,
12364	stop, or restart hlfsd.
12365
12366	* scripts/expn.1: man page for expn command.
12367
12368	* scripts/ctl-amd.in: new script ctl-amd.  Used to start, stop, or
12369	restart amd.
12370
12371	* scripts/expn.in: new script expn.  Actually taken from David
12372	Muir Sharnoff <muir@idiom.com>.  Used by hlfsd's mail re-delivery
12373	script.
12374
12375	* scripts/wait4amd.in: new script wait4amd added.  Waits for amd
12376	to come up on a host, and then runs a command (rsh $hostname by
12377	default).
12378
12379	* scripts/Makefile.am: new directory now holds all shell/perl
12380	scripts that belong to am-utils.
12381
12382	* conf/mount/mount_linux.c (parse_opts): new parser for
12383	linux-specific mounts.  Handles fs-type specific mount-options
12384	correctly.  Currently implemented: msdos, iso9660.
12385
12386	* amd/ops_pcfs.c (pcfs_ops): don't timeout pcfs mounts by default
12387	(fix for linux).
12388
12389	* amd/ops_cdfs.c (cdfs_ops): don't timeout cdfs mounts by default
12390	(fix for linux).
12391
12392	* amd/mapc.c (make_entry_chain): fixed bug that resulted in amd
12393	core dumps upon "ls" of a mount point; an invalid pointer was
12394	being returned and dereferenced.
12395
12396	* port to Linux sparc working!
12397
12398	* hlfsd/homedir.c (hlfsd_diskspace): close file descriptor if
12399	failed to write test file, or else the fd will leak.
12400
12401Sun May 18 00:42:41 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12402
12403	* amd/info_hesiod.c (hs_strip_our_domain): use strcasecmp()
12404	instead of strcmp().
12405
12406	* Port to Digital Unix 4.0 (OSF) done.
12407
12408	* hlfsd/hlfsd.c: renamed dirname to dir_name to avoid conflicts
12409	with dirname() function in <string.h> on OSF systems.
12410
12411	* fsinfo/fsi_util.c (set_ether_if): take out extern definition of
12412	inet_addr().  It should come from <arpa/inet.h> instead.
12413
12414	* conf/mtab/mtab_osf.c: fixed macros and added NFS V3 specs.
12415
12416	* include/am_utils.h: renamed FIRST/LAST to AM_FIRST/AM_LAST to
12417	avoid conflicts with DU 4.0 system header.
12418
12419Thu May 15 22:49:12 1997  Erez Zadok  <ezk@subzero.cs.columbia.edu>
12420
12421	* libamu/mount_fs.c (mount_fs): pass along NFS version so I can
12422	determine if to include additional options in the mount table file
12423	entry (such as proto=tcp, and vers=3).
12424
12425Thu May 15 00:42:12 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12426
12427	* libamu/mount_fs.c (mount_fs): include NFS version number in the
12428	mount table options, as well as proto={tcp,udp}.
12429
12430Wed May 14 14:30:19 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
12431
12432	* NFS V3 code ported to most other systems, so it compiles for V2
12433	and V3 NFS systems.
12434
12435	* NFS VERSION 3 support, first pass.  Working for Solaris and
12436	using TCP.
12437
12438Sun May 11 01:14:29 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
12439
12440	* amq/amq.c: many newline characters were missing from various
12441	stderr printfs.
12442
12443Sat May 10 13:09:06 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
12444
12445	* conf/nfs_prot/nfs_prot_sunos5.h: protocol defintions for
12446	Solaris, which include NFS V3 support.
12447
12448	* conf/nfs_prot/nfs_prot_default.h: default NFS protocol headers.
12449
12450	* conf/transp/transp_{tli,sockets}.c (get_mount_client): use NFS
12451	protocol version while getting a mount client.
12452
12453	* amd/ops_nfs.c (mount_nfs_fh): set the mount types, mnttab types,
12454	file handle size, and proper file handle based on the correct NFS
12455	version number.
12456
12457	* conf/mount/mount_svr4.c (mount_svr4): support NFS3 mounts under
12458	Solaris and other SVR4 systems.
12459
12460	* amd/ops_nfs.c: store NFS file handle version and version
12461	specific handle in struct fh_cache.
12462	(got_nfs_fh): pick the correct RPC reply based on the NFS version
12463	of the server.
12464	(prime_nfs_fhandle_cache): figure out the right NFS file handle
12465	for a node, but now include NFS protocol version information.
12466	(call_mountd): set the correct version for the mount protocol,
12467	based on the NFS protocol version.
12468	(nfs_init): use the NFS protocol generic structure
12469	am_nfs_handle_t.
12470
12471	* include/am_utils.h: new structure am_nfs_handle_t to contain all
12472	possible versions of NFS file handles.
12473
12474	* amd/srvr_nfs.c (start_ping): ping program performs NFS version
12475	specific pings.
12476	(recompute_portmap): figure out the correct portmap version mount.
12477	(nfs_keepalive): call start_ping() with the correct NFS version.
12478	(find_nfs_srvr): if mount option "vers=" is given, use it.  Get
12479	the NFS server version and verify that it is up.
12480
12481	* conf/transp/transp_{tli,sockets}.c (get_nfs_version): a new
12482	function to find the best NFS version for a particular host.
12483
12484	* libamu/amu.h: determine what is the highest version of NFS we
12485	should try.
12486
12487	* include/am_utils.h (NFS_VERSION3): added definition for NFS V3
12488	protocol number.
12489	Added field fs_version to struct fserver, so we can now store the
12490	server protocol version.
12491
12492Fri May  9 01:09:45 1997  Erez Zadok  <ezk@lorien.cs.columbia.edu>
12493
12494	* aux/macros/check_field.m4 (AC_MOUNT_HEADERS): map '.' (dot) into
12495	underscores too, so I can test for sub-fields.
12496
12497	* libamu/wire.c: use test that checks for sub-fields of struct
12498	ifreq.
12499
12500Sat May  6 10:20:17 2000  Erez Zadok  <ezk@glory.soscorp.com>
12501
12502	* port to BSD/OS 3.0 completed!  Many xdr_ functions were broken
12503	into smaller files.  M4 macros fixed to test for existence of
12504	file systems using getvfsbyname().
12505
12506	* amd/sched.c (sigchld): signal handler must waitpid() for all
12507	possible children.
12508
12509	* hlfsd/homedir.c: signal handler must waitpid() for all possible
12510	children.
12511
12512	* aux/macros/check_restartable_signals.m4: new macro to determine
12513	if need to reinstall signal handlers per OS is better than trying
12514	to figure these out based on system macros.
12515
12516Fri May  5 19:23:28 2000  Erez Zadok  <ezk@glory.soscorp.com>
12517
12518	* amd/ops_nfs.c (mount_nfs_fh): set nfs_args_t version number.
12519
12520	* amd/ops_afs.c (mount_toplvl): set nfs_args_t version number.
12521
12522	* amd/ops_nfs.c (mount_nfs_fh): process nfs mount option resvport
12523	(must be supplied for bsdi 3.0)
12524
12525	* libamu/wire.c: use HAVE_FIELD_STRUCT_IFREQ_IFR_ADDR (and
12526	associated new macro) for determining the right way to compute the
12527	size of the interface structure.
12528
12529Fri Apr 11 15:56:13 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12530
12531	* aux/configure.in: need to include libc before libnsl if
12532	get_myaddress() is available because on irix libnsl has a buggy
12533	get_myaddress().
12534
12535	* include/am_defs.h: make sure REINSTATE_SIGNAL_HANDLER is defined
12536	on Irix 6 (an SVR4 variant)
12537
12538Thu Mar 27 02:28:40 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12539
12540	*******************************************************************
12541	*** Released am-utils-6.0a4					***
12542	*******************************************************************
12543
12544Wed Mar 26 21:15:36 1997  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
12545
12546	* amd/amq_subr.c (ok_security): turned off insecure code unless
12547	user explicitly runs configure --enable-amq-mount.
12548
12549	* hlfsd/hlfsd.c (main): use new protoypes dor create_nfs_service().
12550
12551	* amd/nfs_start.c (mount_automounter): use code that separately
12552	creates the NFS and the amq service.  Register tcp and udp
12553	services for amd.
12554
12555	* conf/transp/transp_*.c (create_amq_service): new function to
12556	separately create the amq service for amd.  Simplified prototypes
12557	for create_nfs_service().
12558
12559Wed Mar 19 20:40:56 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12560
12561	*******************************************************************
12562	*** Released am-utils-6.0a3					***
12563	*******************************************************************
12564
12565Wed Mar 19 17:49:18 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12566
12567	* new port: rs6000-ibm-aix3.2.5 and rs6000-ibm-aix4.1.5.0.  Lots
12568	of small changes to support these two.
12569
12570Wed Mar 19 14:33:30 1997  Erez Zadok  <ezk@grande.cs.columbia.edu>
12571
12572	* conf/umount/umount_default.c (umount_fs): bug: unlock_mntlist()
12573	should run if MOUNT_TABLE_ON_FILE, not otherwise.
12574
12575Mon Mar 17 22:02:43 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12576
12577	* hlfsd/hlfsd.c (main): fill in fhsize field if exists
12578	(freebsd-2.2).
12579
12580	* amd/ops_{nfs,afs}.c (mount_toplvl): fill in fhsize field if
12581	exists (freebsd-2.2).
12582
12583Sat Mar 15 19:37:48 1997  Erez "HWank1" Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12584
12585	* new port: i386-unknown-freebsd2.2.  FreeBSD 2.2 and higher
12586	changed the filehandle type in struct nfs_args from nfsv2fh_t to
12587	u_char.
12588
12589Sat Mar 14 10:11:03 1997  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
12590
12591	* SHARED LIBRARIES: too many changes to list individually.  Now,
12592	libamu can be built as a shared library, and other programs link
12593	with it.
12594
12595Tue Mar 11 22:24:09 1997  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
12596
12597	* aux/macros/opt_shared.m4: new macro for setting options for
12598	building shared am-utils libraries.
12599
12600Sun Mar  9 19:17:46 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12601
12602	* fixmount/fixrmtab: cleaned up the script.
12603
12604	* fixmount/Makefile.am (EXTRA_DIST): adde $(sbin_SCRIPTS) so that
12605	fixrmtab gets distributed too.
12606
12607	* conf/nfs_prot/nfs_prot_bsdi2.h: added support for MOUNTPROC_DUMP.
12608	Added extern for xdr_mountlist().
12609
12610	* aux/configure.in: trimmed down many tests for MNT2_GEN_OPT,
12611	MNT2_NFS_OPT, and MNTTAB_OPT that were not referenced anywhere in
12612	the sources.
12613
12614Sat Mar  8 00:23:58 1997  Erez Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12615
12616	* fixmount/hlfsd ported to bsd44, hpux, and linux systems.
12617
12618	* aux/macros/check_fixmount_style.m4: add check for bsd44 systems.
12619
12620	* conf/fixmount/fixmount_default.c: use lockf() if flock() is
12621	unavailable.
12622
12623	* include/am_defs.h: include <string.h> even if don't have
12624	STDC_HEADERS defined (sunos4).
12625	(seteuid): define seteuid() to be setresuid() for systems that
12626	have but not the other (hpux).
12627
12628	* aux/macros/check_extern.m4: test should include <strings.h>.
12629
12630Tue Mar  4 17:16:52 1997  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
12631
12632	* lib/xutil.c (debug_option): moved from amd/getargs.c to this
12633	more proper file.
12634
12635	* include/am_utils.h: put in structure for debug options, for all
12636	progams to use.
12637
12638	* amd/get_args.c: moved structure for debug options out.
12639
12640Sun Mar  2 00:13:07 1997  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
12641
12642	* ported fixmount.
12643
12644	* lib/ualarm.c: replacement function for systems that don't have a
12645	ualarm().
12646
12647	* ported fsinfo.
12648
12649Sun Mar  1 10:23:34 1997  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
12650
12651	* ported mk-amd-map.
12652
12653	* buildall: added -K option to buildall, to run mkconf.
12654
12655Fri Feb 28 01:10:25 1997  Erez "HWank1" Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12656
12657	*******************************************************************
12658	*** Released am-utils-6.0a2					***
12659	*******************************************************************
12660
12661Thu Feb 27 13:58:59 1997  Erez "HWank1" Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12662
12663	* all *.[hcyl] files: add copyright line.
12664
12665	* aux/macros/check_mount_type.m4: test for mount type for
12666	linux-like systems, by checking for loadable or statically linked
12667	kernel filesystem modules.
12668
12669	* aux/macros/check_mnttab_type.m4: test for mount table entry
12670	for linux-like systems, by checking for loadable or statically
12671	linked kernel filesystem modules.
12672
12673	* aux/configure.in: pcfs filesystems can use vfat type (linux)
12674
12675	* aux/macros/check_fs_mntent.m4: test for filesystem existence for
12676	linux-like systems, by checking for loadable or statically linked
12677	kernel filesystem modules.
12678
12679	* conf/trap/trap_hpux.h: ugly hack added because of stupide HPUX
12680	9.0 header files.  This should be removed when HPUX 9.0 is deemed
12681	defunct.
12682
12683	* aux/acconfig.h: set an undefined variable for having an extern
12684	to clnt_sperrno().
12685
12686	* include/am_defs.h: define extern for clnt_sperrno() if needed.
12687
12688	* aux/configure.in: test for extern clnt_sperrno().
12689
12690	* aux/macros/check_nfs_fh_dref.m4: HPUX's NFS fhandle dref is
12691	similar to irix.
12692
12693	* aux/macros/check_mount_style.m4: use mount helper on HPUX.
12694
12695	* aux/macros/check_mtype_type.m4: hpux's mount type is a char*,
12696	not integer (but may be mapped to one later).
12697
12698	* conf/mount/mount_hpux.c (mount_hpux): HPUX has confusing header
12699	files.  They have mount(2) and vfsmount(2) which don't take same
12700	arguments, and they have string mount types MNTTYPE_* as well as
12701	integer types MOUNT_*.  So I need this new mount function to map
12702	from string types to integer types for the vfsmount() function.
12703
12704	* conf/trap/trap_hpux.h (MOUNT_TRAP): instead of calling
12705	vfsmount(), call mount_hpux().
12706
12707Thu Feb 27 03:34:14 1997  Erez "HWank1" Zadok  <ezk@okeeffe.cs.columbia.edu>
12708
12709	* lib/mount_fs.c (mnt_flags): make sure SYNC option is on only if
12710	both MNTTAB_OPT_SYNC and MNT2_GEN_OPT_SYNC are defined.
12711
12712Thu Feb 27 00:26:00 1997  Erez "HWank1" Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12713
12714	* conf/nfs_prot/nfs_prot_hpux.h: NFS protocol definitions for
12715	hpux.
12716
12717	* include/am_defs.h: no need to include rpc/auth.h or rpc/clnt.h.
12718
12719	* aux/configure.in: no need to test for rpc/auth.h and rpc/clnt.h.
12720
12721	* buildall: added ability to configure using other shells than
12722	/bin/sh, on those systems where /bin/sh is buggy or limited
12723	(HPUX).
12724
12725	* aux/macros/struct_nfs_fh.m4: reinstated the macro but have it
12726	defined am_nfs_fh, and also test for plain typedef "nfs_fh".
12727
12728	* aux/acconfig.h: #undef am_nfs_fh, which is being defined by a
12729	reinstated macro.
12730
12731	* aux/configure.in: check for <nfs/export.h>
12732
12733	* include/am_defs.h: include <nfs/export.h> (HPUX) if exists.
12734
12735	* aux/macros/try_compile_nfs.m4: include <nfs/export.h> (HPUX) if
12736	exists.
12737
12738	* aux/macros/mount_headers.m4 (define): removed some non-working
12739	(on HPUX) code that attempts to recreate the fhandle_t rather than
12740	load it up from system headers.  Also added some NFS protocol
12741	header inclusion.  include <nfs/export.h> (HPUX) if exists.
12742
12743Wed Feb 26 00:32:35 1997  Erez "HWank1" Zadok  <ezk@okeeffe.cs.columbia.edu>
12744
12745	* aux/macros/mount_headers.m4 (define): Use M4 changequote to
12746	ensure [] brackets are correctly used.
12747
12748	* aux/macros/expand_cpp_{string,hex,int}.m4: encapsulate
12749	multi-line M4 inclusions in [].
12750
12751Tue Feb 25 22:19:44 1997  Erez "HWank1" Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12752
12753	* conf/mtab/mtab_bsd.c (mnt_dup): use statfs field f_fstypename if
12754	it exists.
12755
12756	* aux/acconfig.h: HAVE_FIELD_STRUCT_STATFS_F_FSTYPENAME, new
12757	config.h macro for field f_fstypename of struct statfs.
12758
12759	* aux/configure.in: testing for field f_fstypename field of struct
12760	statfs (NetBSD).
12761
12762	* aux/acconfig.h: moved all of the "static" definitions out to a
12763	fixed file called include/am_defs.h.  Added to all */Makefile.am
12764	files a dependency on am_defs.h.  Created am_defs.h of course, and
12765	then added #include <amd_defs.h> to all of the source and header
12766	files that required it.
12767
12768Mon Feb 24 01:27:02 1997  Erez Zadok  <ezk@defiant.soscorp.com>
12769
12770	* aux/acconfig.h: two more externals for xdr functions that may be
12771	implemented by libamu.
12772
12773	* conf/nfs_prot/nfs_prot_bsdi2.h: added missing RPC and XDR
12774	definitions.
12775
12776Sun Feb 23 15:25:26 1997  Erez "HWank1" Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12777
12778	* buildall (default): added -D option for turning on even stricker
12779	developer options.
12780
12781	* */Makefile.am: make sure @AMU_NFS_PROT_HEADERS@ is used to
12782	determine dependencies on optional NFS protocol headers.
12783
12784	* aux/acconfig.h: define and use HAVE_NFS_PROT_HEADERS as needed.
12785
12786	* aux/macros/check_nfs_prot_header.m4: new test to determine what
12787	NFS protocol headers to use.
12788
12789	* conf/nfs_prot/nfs_prot_{irix6,sunos4,bsdi2}.h: new headers to
12790	complete missing system headers for NFS protocol definitions.
12791
12792Sun Feb 16 15:58:42 1997  Erez "HWank1" Zadok  <ezk@vir.cs.columbia.edu>
12793
12794	* amd/ops_nfs.c (mount_nfs_fh): encapsulated some more code in
12795	#ifdef's as needed.
12796
12797	* amd/ops_afs.c (mount_toplvl): make sure TIMEO/RETRANS code is
12798	suitable #ifdef'ed.
12799
12800	* include/am_compat.h: a couple more mnttab options
12801	(timeo/retrans) setting just in case.
12802
12803	* amd/autil.c (host_normalize): make sure hostent->h_name is
12804	passed a non-const char *.
12805
12806	* conf/mount/mount_linux.c (mount_linux): cleaned up a block of code.
12807
12808	* {lib,amq,amd}/*.c (many functions): cast xdr_entry to
12809	XDRPROC_T_TYPE.
12810
12811	* lib/nfs_prot_svc.c (nfs_program_2): cast xdr_entry to
12812	XDRPROC_T_TYPE.
12813
12814	* lib/nfs_prot_xdr.c (xdr_entry): cast xdr_entry to
12815	XDRPROC_T_TYPE.
12816
12817	* lib/wire.c (getwire): Make sure safe assignment from const to
12818	none is done.
12819
12820Sat Feb 15 19:38:51 1997  Erez "HWank1" Zadok  <ezk@vir.cs.columbia.edu>
12821
12822	* aux/macros/expand_cpp_int.m4: new macro for expanding integers.
12823
12824	* aux/configure.in: added linux/fs.h support in configure and
12825	several M4 macros.
12826
12827	* conf/mount/mount_linux.c (mount_linux): use macro instead of
12828	"ugly" fixed hex number for mount() arguments.
12829
12830Sat Feb 15 02:09:47 1997  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
12831
12832	* amd/info_hesiod.c: removed macro HAVE_HS_ZONE_TRANSFER and
12833	turned all of its code always on.  That code always seems to
12834	compile, as long as you have hesiod and libresolv.
12835
12836	* amd/mapc.c: removed macro HAVE_HS_ZONE_TRANSFER and turned all
12837	of its code always on.
12838
12839	* aux/configure.in: removed superfluous test for hs_zone_transfer
12840	function (will never find it because it is an amd-internal
12841	function).
12842
12843	* amd/mapc.c (maptypes): must used correct new name for am-utils'
12844	hesiod initialization function: hesiod_am_init.
12845
12846	* amd/info_hesiod.c (hesiod_am_init): renamed hesiod_init to
12847	hesiod_am_init so as not to conflict with libhesiod's
12848	hesiod_init() function.
12849
12850	* aux/configure.in: added test and explicit inclusion of
12851	libresolv.a for later resolution of library references with
12852	libhesiod.
12853
12854	* aux/macros/opt_cppflags.m4: new file.  configure/compile C
12855	preprocessor flags.
12856
12857	* aux/macros/opt_libs.m4: new file.  configure/compile library
12858	flags.
12859
12860	* Makefile.am (EXTRA_DIST_AUX): include two new macros
12861	opt_cppflags.m4 and opt_libs.m4.
12862
12863	* aux/configure.in: test for libhesiod needs to additional
12864	libresolv to link completely.  Additional configuration time
12865	options added for setting initial CPPFLAGS and LIBS.
12866
12867Tue Feb 10 02:15:40 1997  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
12868
12869	*******************************************************************
12870	*** Released am-utils-6.0a1					***
12871	*******************************************************************
12872
12873Thu Feb  6 02:55:19 1997  Erez "HWank1" Zadok  <ezk@shekel.mcl.cs.columbia.edu>
12874
12875	* amd/info_ndbm.c (ndbm_search,ndbm_init): fixed the code so that
12876	it works on freebsd, where they map dbm_pagfno a non-existing
12877	macro on purpose, to force you to port the code to Berkeley DB.
12878
12879Fri Jan 31 01:35:09 1997  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
12880
12881	* amd/ops_afs.c (mount_toplvl): added a sleep(1) right before the
12882	actual mount_toplvl, to avoid some possible race conditions.
12883
12884Thu Jan 30 02:31:49 1997  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
12885
12886	* amd/rpc_fwd.c: removed all TLI (HAVE_T_OPEN) code.
12887
12888Wed Jan 29 18:25:07 1997  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
12889
12890	* lib/wire.c (getwire): removed HAVE_T_OPEN (TLI code)
12891
12892	* amd/amd.c (main): fix local address using htonl(). Free up
12893	buffers allocated by netdir_*() functions.
12894
12895Wed Jan 22 23:53:24 1997  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
12896
12897	* amd/fix-amd-map.in: new script that will convert old-style amd
12898	maps to new one.
12899
12900Tue Jan 21 01:18:16 1997  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
12901
12902	* FIRST AMD IN AM-UTILS FINALLY WORKS (mounts itself as toplvl,
12903	and replies back to simple nfs/link type mount queries).
12904
12905	* conf/mtab/mtab_svr4.c: reorganized the code in this file to be
12906	easier to read, and fixed a few bugs with un/setting the lock file
12907	descriptor.
12908
12909Wed Jan  8 15:27:49 1997  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
12910
12911	* amd/sched.c: removed HAS_SVR3_SIGNALS code to handle older
12912	signals in Svr3 systems.  Only stellix ever used this.
12913
12914	* amd/rpc_fwd.c (fwd_reply): removed all code that was triggered
12915	by DYNAMIC_BUFFERS, since it was not in use.
12916
12917Tue Jan  7 00:45:59 1997  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
12918
12919	* amd/opts.c (eval_opts): removed AMD_COMPAT code.  Amd no longer
12920	takes '=' sign as old selector.  Fix your maps.
12921	(deslashify): removed APOLLO code that treated two '//' as one.
12922
12923Sun Jan  5 01:25:09 1997  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
12924
12925	* amd/ops_nfsx.c (nfsx_init): removed HARD_NFSX_ERRORS, code which
12926	was not used.  It made any submount error fail the whole group.
12927
12928	* amd/ops_nfs.c (make_nfs_auth): removed code dependent on
12929	HAS_NFS_QUALIFIED_NAMES.
12930	(mount_nfs_fh): removed macro for NFS_ARGS_NEEDS_PATH, assuming it
12931	is never on.  So code that was triggered by #ifndef
12932	NFS_ARGS_NEEDS_PATH (osf1, aix3, and bsd44 variants) may have to
12933	be fixed later.
12934	Removed all ULTRIX_HACK code.  Ultrix is DEAD!
12935	removed all PRESET_AC code, which was only on for Linux to preset
12936	the attribute cache values (otherwise they default to zero).
12937	(nfs_umounted): revobed KICK_KERNEL code (IRIX systems).  Will
12938	have to fixed up later.
12939	(mount_nfs_fh): removed code that was never included, which
12940	attempted to set the port on which amd's nfs mounts on.  This
12941	isn't supported by the ping algorithm yet.  In any case, it is all
12942	done in nfs_init().
12943
12944	* amd/srvr_nfs.c (find_nfs_srvr), amd/ops_nfs.c (mount_nfs_fh):
12945	removed HAS_TCP_NFS code.  The whole use of NFS V.3 with TCP or
12946	specially hacked NFS V.2 that uses TCP (BSD 4.4 variants) will
12947	have to be addressed later.
12948
12949	* amd/nfs_subr.c (nfsproc_getattr_2): removed all code dependent
12950	on PRECISE_SYMLINKS.
12951
12952	* amd/mapc.c (mapc_meta_search): removed code that depended on
12953	HAS_DEPOT.  It is known buggy code.  The whole DEPOT support needs
12954	to be rethought.
12955	(mapc_add_kv): ported code to use standard regular expression
12956	(regexp) library.
12957
12958	* amd/{map.c,ops_sfs.c,ops_ufs.c}: removed all code dependent on
12959	FLUSH_KERNEL_NAME_CACHE and the macro itself.
12960
12961Sat Jan  4 15:46:58 1997  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
12962
12963	* amd/map.c (exported_ap_alloc): removed all code triggered by
12964	SHRINK_EXPORTED_AP and the macro itself.
12965
12966	* amd/info_nis.c: removed HAS_NIS_RELOAD macro, and left the code
12967	in all the time.  Assuming that there is always NIS realod
12968	available.
12969	(yp_all_fixed): removed code for BROKEN_YP_ALL.  If your yp_all()
12970	function is broken such that it does not release filedescriptors
12971	it created, then you are hosed.  Get a fix for yp_all from your
12972	vendor or switch operating systems.
12973
12974Tue Dec 31 15:34:36 1996  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
12975
12976	* amd/info_hesiod.c: renamed macro HAS_HESIOD_RELOAD to
12977	HAVE_HS_ZONE_TRANSFER.
12978
12979Mon Dec 30 17:33:23 1996  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
12980
12981	* amd/{nfs,host}_ops.cremoved INFORM_MOUNTD macro, so its code is
12982	always included.  We should always try to inform the remove mount
12983	daemon of mounts we performed.  If we want an option for this, it
12984	should be a run-time option.
12985
12986	* amd/host_ops.c: removed all that optionally did not make the
12987	directory mount points for amd.
12988
12989	* HOST_EXEC code removed from everywhere.  There is no indication
12990	that it was used anywhere.  If it needs to be used, then a
12991	run-time switch should control it.
12992
12993Thu Dec 26 00:06:52 1996  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
12994
12995	* amd/*_ops.c: removed all references to mntent_t's fields
12996	mnt_freq and mnt_passno, since they are no longe rused (and never
12997	have been).
12998
12999	* amd/am_ops.c: removed function sunos4_match, which was off
13000	anyway.  This was one of the places where an '=' sign was allowed
13001	as an assignment operator (which is now ':=').
13002
13003	* amd/afs_ops.c (afs_bgmount): removed SUNOS4_COMPAT code which
13004	was off anyway.  This was one of the places where an '=' sign was
13005	allowed as an assignment operator (which is now ':=').
13006
13007Tue Dec 24 01:53:52 1996  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
13008
13009	* amq/amq.c: ported to am-utils.  Working.
13010
13011	* conf/mount/mount_svr4.c (mount_svr4): changed mount type on svr4
13012	to be string, as it should be (rather than a string mapped to int
13013	and back mapped to string).
13014
13015Sun Dec 22 13:26:05 1996  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
13016
13017	* lib/mount_fs.c (mount_fs): removed MNTINFO_PREF code.
13018
13019	* lib/umount_fs.c: split this into three files: default, osf, and
13020	bsd44, that are in conf/umount/umount_*.c.
13021
13022Thu Dec 19 17:33:46 1996  Erez "HWank1" Zadok  <ezk@lorien.cs.columbia.edu>
13023
13024	* aux/configure.in, aux/aclocal.m4, aux/acconfig.h: added new
13025	macro to automatically figure out if an external definition for
13026	sys_errlist[] exists.
13027
13028	* lib/xutil.c (xfree): removed "#undef free" because it's not
13029	needed there.  Any system that redefines free() needs help.
13030
13031	* conf/mtab/mtab_file.c (REWRITE_MTAB_IN_PLACE): removed code that
13032	was dependent on REWRITE_MTAB_IN_PLACE.  It does not appear to be
13033	in active use anywhere.  If added later, it should be a run-time
13034	configuration option.
13035
13036	* conf/mtab/mtab_mach3.c: removed code that was #ifdef'ed not to
13037	be MOUNT_TABLE_ON_FILE, since mach2 always stores its mount tables
13038	in a file in /etc.
13039
13040	* lib/util.c (str3cat): removed _AIX code.  AIX should have a
13041	working realloc, or else find a cleaner solution to this.
13042	(mkdirs): removed SUNOS4_WORKAROUND code.  This was to do a sync()
13043	after immediately making directories so that fsck will be able to
13044	fix the filesystem in the event of an immediate crash.  This was
13045	because a bug in UFS which is fixed by now.
13046
13047	* lib/hutil.c (domain_strip): removed PARTIAL_DOMAINS triggered
13048	code.  Does not appear to be on and used anywhere.
13049	(dofork): removed MACH3 code, b/c mach3 NFS bugs are fixed by now.
13050
13051	* lib/resvport.c: split the binding of reserved ports code to a
13052	separate file.  A #define (HAVE_T_OPEN) separates the TLI (SVR4)
13053	from the BSD code.
13054
13055Thu Dec 19 02:08:35 1996  Erez "HWank1" Zadok  <ezk@shekel.mcl.cs.columbia.edu>
13056
13057	* lib/Makefile.am (amu_LIBADD): includs @LIBOBJS@ now, auto-filled
13058	in by automake and configure, for optional sources that need to be
13059	built as part of libamu.a.
13060
13061	* aux/aclocal.m4: Make sure AC_CHECK_MOUNT_STYLE adds mountutil.o
13062	to LIBOBJS.
13063
13064	* lib/memcmp.c (memcmp): new file added to replace a possible bad
13065	implementation of memcmp.
13066
13067Wed Dec 18 22:20:23 1996  Erez "HWank1" Zadok  <ezk@shekel.mcl.cs.columbia.edu>
13068
13069	* converted the sources to use memset/memmove/memcmp instead of
13070	bzero/bcopy/bcmp.
13071
13072	* ran all sources through gnu Indent w/ options specified in
13073	aux/amindent.
13074
13075Wed Dec 11 22:19:29 1996  Erez "HWank1" Zadok  <ezk@shekel.mcl.cs.columbia.edu>
13076
13077	* At this point the initial generation of config.h via autoconf and
13078	some preliminary makefiles via automake is done.  I will not begin
13079	modifying sources, so it's a good time to document from here.
13080
13081Wed Dec 10 22:19:29 1996  Erez "HWank1" Zadok  <ezk@shekel.mcl.cs.columbia.edu>
13082
13083	*******************************************************************
13084	*** Initial ChangeLog Entry					***
13085	*******************************************************************
13086