From e925d4a747df4a349c2baac436a71f606945baa5 Mon Sep 17 00:00:00 2001 From: "Pedro F. Giffuni" Date: Wed, 28 Jan 2015 22:55:06 +0000 Subject: amd: flatten the tree --- ChangeLog | 12025 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 12025 insertions(+) create mode 100644 ChangeLog (limited to 'ChangeLog') diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 000000000000..12f2c5fb8e65 --- /dev/null +++ b/ChangeLog @@ -0,0 +1,12025 @@ +2006-05-11 Erez Zadok + + ******************************************************************* + *** Released am-utils-6.1.5 *** + ******************************************************************* + +2006-05-10 Erez Zadok + + * Minor new ports: i386-unknown-freebsd6.1 (RELEASE) + powerpc-apple-darwin8.6.0, and i386-unknown-openbsd3.9. + + * libamu/mount_fs.c (compute_nfs_attrcache_flags): fix signedness + problems on IRIX-6.5. + + * conf/autofs/autofs_solaris_v1.c (xdr_umntrequest): fix + signedness problems on IRIX-6.5. + +2006-05-01 Erez Zadok + + * configure.in: check if libc already includes dbm functionality + (as in FreeBSD 6), then don't bother to check specific libraries + such as libdbm, gdbm, etc. + +2006-04-21 Erez Zadok + + * configure.in: detect G/DBM support via gdbm_compat library + (Debian 3.1). + + * minor new port: powerpc-apple-darwin8.5.0 + +2006-04-20 Erez Zadok + + * scripts/amd.conf-sample, scripts/amd.conf.5, doc/am-utils.texi, + NEWS: document new nfs_allow_any_interface parameter. + + * include/am_compat.h (INADDR_LOOPBACK): define INADDR_LOOPBACK if + not defined, since some systems don't have it. + +2006-04-20 Nick Williams + + * libamu/wire.c (is_interface_local): new boolena function to + determine if address represents any of the local interfaces. + (getwire): more properly check if address equals INADDR_LOOPBACK, + not if IFF_LOOPBACK is not (the latter isn't as correct). + + * include/am_utils.h: extern for new is_interface_local() function. + + * conf/transp/transp_{sockets,tli}.c: don't define INADDR_LOOPBACK + here but in am_compat.h + + * amd/nfs_prot_svc.c (nfs_program_2): if + nfs_allow_any_interface=yes, then allow NFS packets from any local + interface (not just 127.0.0.1). + + * amd/conf.c (gopt_nfs_allow_any_interface): implement the new + amd.conf parameter nfs_allow_any_interface. + + * amd/amd.h (CFM_NFS_ANY_INTERFACE): define new global flag when + al interfaces are acceptable for local NFS packets. + +2006-04-18 Christos Zoulas + + * amd/opts.c: Add support for optionally specifying the hostname + to match against the netgroup in the netgrp and netgrpd selectors. + +2006-04-16 Erez Zadok + + * libamu/mtab.c (hasmntval): fix inverted meaning of error from + hasmntvalerr(). + +2006-04-14 Erez Zadok + + * libamu/mount_fs.c (compute_nfs_attrcache_flags): use new + hasmntvalerr() function to set attribute cache values only if they + were set (regardless whether they were set to zero or a non-zero + value). Before, we were unable to distinguish between an error to + parse an option, and a user who actually wanted to set an + attribute-cache value to 0. This now fixes an important + performance bug that Amd was turning off the attribute caches even + for regular (non-automounter) NFS mounts. + + * libamu/mtab.c (hasmntvalerr): new function to set the value of + an option into an integer, but ONLY if that options was set and + parsed correctly. This function returns 1 on error, 0 on success + (instead of always setting the option value to 0). + (hasmntval): wrapper function around hasmntvalerr, which maintains + backwards compatibility (always sets option value to 0, even on + error to parse the option). + + * amd/nfs_subr.c (fh_to_mp3): use long int printf format for + fhh_pid. + +2006-04-05 Christos Zoulas + + * amd/amfs_generic.c (amfs_lookup_mntfs): fix use-after-free bug + (Coverity). + +2006-03-27 Erez Zadok + + * doc/am-utils.texi, scripts/{amd.conf.5,amd.conf-sample}: + document new nfs_retransmit_counter_toplvl and + nfs_retry_interval_toplvl global amd.conf parameters. + + * amd/conf.c (gopt_nfs_retransmit_counter_toplvl, + (gopt_nfs_retry_interval_toplvl): parse amd.conf + nfs_retransmit_counter_toplvl and nfs_retry_interval_toplvl global + parameters. + + * amd/amfs_toplvl.c (amfs_toplvl_mount): support setting toplvl + timeo/retrans parameters for Amd's toplvl mounts, separately from + all other UDP or NFS mounts. + + * amd/amd.h: define a new timeo/retrans parameter for toplvl + mounts. + +2006-03-22 Erez Zadok + + * minor new port: i386-pc-linux-suse10.1 (beta 8). + +2006-03-21 Christos Zoulas + + * amd/am_ops.c (merge_opts): Remove useless check found by + Coverity; xmalloc never returns NULL. + +2006-03-21 Erez Zadok + + * minor new ports: i386-pc-linux-fc5. + + * amd/info_ldap.c: as of Linux Fedora Core 5 (which comes with + openldap-2.3.9), the ldap.h headers deprecate several functions + used in this file, such as ldap_unbind. You get compile errors + about missing extern definitions. Those externs are still in + , but surrounded by an ifdef LDAP_DEPRECATED. I am + turning on that ifdef at the top of info_ldap.c, under the + assumption that the functions may be deprecated, but they still + work for this (older?) version of the LDAP API. It gets am-utils + to compile, but it is not clear if it will work perfectly. + + * libamu/xdr_func.c (xdr_am_mountres3_ok), amq/amq_xdr.c + (xdr_amq_mount_tree, xdr_amq_mount_tree_p, + xdr_amq_mount_info_list, xdr_amq_mount_tree_list), amq/amq.c + (show_mti), amd/amq_subr.c (xdr_amq_setopt, xdr_amq_mount_subtree, + xdr_amq_mount_tree, xdr_amq_mount_tree_list, xdr_amq_mount_tree), + libamu/xdr_func.c (xdr_am_mountres3_ok): use casing magic to stop + GCC-4.1 from complaining about "dereferencing type-punned pointer + will break strict-aliasing rules" here (but not elsewhere). + +2006-03-20 Christos Zoulas + + * libamu/wire.c: avoid potential dereferencing of a NULL pointer + (Coverity). + + * hlfsd/homedir.c (delay): remove unnecessary check for NULL + pointer (Coverity). + + * fsinfo/fsi_analyze.c (analyze_dkmounts, analyze_mounts, + analyze_mounts): avoid potential dereferencing of a NULL pointer + (Coverity). + + * conf/transp/transp_sockets.c (create_amq_service): avoid + potential dereferencing of a NULL pointer (Coverity). + + * amd/sched.c (sigchld): properly check for the end of the waiting + process list (Coverity). + + * amd/mapc.c (mapc_create): initialize 'modify' to zero (Coverity). + + * amd/autil.c (amfs_mkcacheref, am_unmounted): avoid potential + dereferencing of a NULL pointer (Coverity). + + * amd/amfs_generic.c (amfs_lookup_mntfs): free def_opts before + reusing it (memory leak bug detected by Coverity). + (amfs_bgmount): avoid potential dereferencing of a NULL pointer + (Coverity). + + * amd/am_ops.c (merge_opts): no need to check if newstr is NULL + (bug detected by Coverity). + +2006-03-08 Ion Badulescu + + * amd/nfs_subr.c (mp_to_fh): fixed old-style filehandles--the pid + comparison was failing. + +2006-03-08 Erez Zadok + + * configure.in: properly test for either or + (unfortunately, Autoconf will map both names to the + same $ac_cv_* variable name). Some systems support one header or + another. Patch inspired by work Debian did. + +2006-02-10 Erez Zadok + + ******************************************************************* + *** Released am-utils-6.1.4 *** + ******************************************************************* + +2006-01-04 Erez Zadok + + * doc/am-utils.texi (auto_attrcache Parameter): revise discussion + to mention pros and cons of turning on/off this parameter, + including impact on Amd's performance, and ways to improve + performance while minimizing the window of vulnerability in which + kernel may return the wrong (cached) attributes. + +2006-01-02 Erez Zadok + + * updated copyright year to 2006 on all files. + +2005-12-20 Erez Zadok + + * include/am_utils.h, conf/transp/transp_tli.c (amu_svc_register, + register_autofs_service): use a consistent prototype for the + dispatch function of the autofs service de/registration functions. + +2005-12-03 Erez Zadok + + * minor new ports: i386-unknown-netbsdelf2.1, + i386-unknown-netbsdelf3.0 (RELEASE), and i386-unknown-openbsd3.8. + +2005-12-02 Erez Zadok + + * m4/macros/check_field.m4: remove double inclusion of msdosfs + headers, which are included in mount_header1.h (netbsd 2.1 doesn't + protect which causes compile errors). + +2005-11-08 Erez Zadok + + * minor new port: i386-unknown-freebsd6.0 (RELEASE) + +2005-10-26 Erez Zadok + + * amd/amq_subr.c (amqproc_pawd_1_svc): repeatedly resolve path in + Amd, not in pawd (to avoid repeated network RPCs). + + * amq/pawd.c (transform_dir): move repeated path resolution into Amd. + +2005-10-25 Erez Zadok + + * amq/pawd.c (transform_dir): resolve path repeatedly until + finished. Bug fix from Jonathan Chen . + Added safety check to prevent infinite loops. + +2005-10-19 Erez Zadok + + * doc/am-utils.texi (opts Option): document new pcfs options + longname, nowin95, shortname, user=N, group=N, mask=N, and + dirmask=N. + + * amd/ops_pcfs.c (mount_pcfs): process new pcfs options longname, + nowin95, shortname, user=N, group=N, mask=N, and dirmask=N. + + * include/am_compat.h: provide compatibility mnttab string names, + if needed, for pcfs mount options longname, nowin95, shortname, + user=N, group=N, mask=N, and dirmask=N. + + * include/am_utils.h: extern for hasmntstr(). + + * libamu/mtab.c (hasmntstr): new function to return the string + value following a mount option, up to the next comma-delimited + options. + + * configure.in: check for mnttab and pcfs options longname, + nowin95, and shortname. + + * Makefile.am (EXTRA_DIST_M4): distribute new macro + check_mnt2_pcfs_opt.m4. + + * m4/macros/check_mnt2_pcfs_opt.m4: new macro to check for pcfs + mnttab and mount options. + +2005-10-18 Erez Zadok + + * libamu/mount_fs.c (print_nfs_args): print nfs_args->addr + correctly, depending if it's a pointer or not. + + * conf/sa_dref/sa_dref_*.h: for each NFS_SA_DREF macro, also + #define NFS_ARGS_T_ADDR_IS_POINTER if nfs_args->addr is a pointer + or an embedded structure, so we can tell how to print it. + + * libamu/mount_fs.c (print_nfs_args): print nfs_args->addrlen + field, if it exists. + + * configure.in: check for nfs_args->addrlen field. + + * wire-test/wire-test.c (main), libamu/mount_fs.c + (print_nfs_args), fixmount/fixmount.c (inetresport, + clnt_create_timeout), amq/pawd.c (transform_dir), amq/amq.c + (main), amd/srvr_nfs.c (find_nfs_srvr), amd/autil.c + (amfs_mount): document that as per POSIX, we don't need to set the + sa_len/sin_len fields in struct sockaddr/sockaddr_in. The field + is used only internally in the kernel. See + www.awprofessional.com/articles/article.asp?p=169505&seqNum=2&rl=1 + + * fixmount/fixmount.c (inetresport): initialize sockaddr_in + structure before filling in some fields. + +2005-10-11 Erez Zadok + + * doc/am-utils.texi (nfs_vers, nfs_proto parameters): clarify and + correct mistaken description of nfs_proto. + +2005-10-10 Erez Zadok + + ******************************************************************* + *** Released am-utils-6.1.3 *** + ******************************************************************* + +2005-10-07 Erez Zadok + + * m4/macros/check_mnttab_type.m4: move the test for MOUNT_* to the + very end, after the test using getvfsbyname(). + + * m4/macros/expand_run_string.m4: if the string value returned is + empty, consider it invalid. + + * m4/macros/check_varargs_macros.m4: rewrite macro so it'll + try and compile the varargs test, not just cpp it. Some systems + pass the old cpp test, but not when you actually try to compile + the code (Tru64's cc). + + * conf/autofs/autofs_solaris_v1.h: redefine + autofs_strdup_space_hack as a macro to str3cat(NULL,(s)," ",""). + This works everywhere and we avoid linking problems, inline + functions, etc. + + * conf/autofs/autofs_solaris_v1.c (autofs_mount_fs): remove + autofs_strdup_space_hack() function altogether. + + * m4/macros/os_cflags.m4: remove hack that hardcodes pte_t=u_int. + + * configure.in: test for header. + Test for pte_t, but only on IRIX6 systems. + + * Makefile.am (EXTRA_DIST_M4): distribute new type_pte_t.m4 file. + + * m4/macros/type_pte_t.m4: new test for existence of pte_t + typedef, needed on some IRIX-6.5/gcc systems. + + * m4/macros/header_templates.m4: add missing templates for + HAVE_EXTERN_GETDTABLESIZE, HAVE_EXTERN_GETWD, and + HAVE_EXTERN_UALARM. + + * amd/info_exec.c (exec_map_open): break assignment from inside + conditional, to work around an IRIX-6.5 cc bug. + + * fsinfo/fsi_util.c (set_ether_if), amd/map.c (unmount_mp), + libamu/xutil.c (expand_error), libamu/strutil.c (xsnprintf): avoid + comparison between signed and unsigned integers. + + * conf/autofs/autofs_solaris_v1.h, conf/autofs/autofs_solaris_v1.c + (autofs_strdup_space_hack): move "space_hack" function from static + inline in header, into the only source file that needs it. This + is cleaner and also prevents linking problem with some compilers + that won't apply CPP macros inside static inline functions (for + the strl* functions). + + * amq/pawd.c (find_mt, find_mlp): remove obsolete, inefficient + code. + (transform_dir): call the new, efficient amqproc_pawd_1() routine. + + * amq/amq_clnt.c (amqproc_pawd_1): AMQPROC_PAWD wrapper routine. + + * amq/amq.h (amqproc_pawd_1): extern for amq's AMQPROC_PAWD + wrapper routine. + + * amd/amq_svc.c (amq_program_1): dispatch point for + amqproc_pawd_1_svc. + + * amd/amq_subr.c (amqproc_pawd_1_svc): moved pawd's path-matching + functionality into Amd, where it can be done a lot more + efficiently. We don't have to construct and ship a whole export + tree from Amd to pawd. We just get a variable-length + xdr_wrapstring for the user's path, iterate over the entire export + list inside Amd, and return only a matched string if found + (otherwise we return "" to indicate that there was no match, and + let pawd printf the same string it sent over). + + * amd/amd.h: extern for amqproc_pawd_1_svc, amd's service routine + the AMQPROC_PAWD RPC. + +2005-10-06 Erez Zadok + + * ltmain.sh, m4/macros/libtool.m4: update to libtool-1.5.20. + Fixes Tru64 bugs when using ksh. + + * amd/amfs_toplvl.c (amfs_toplvl_mount): break complex ifdef macro + into two sections, to workaround a C99 varargs-macro bug in + gcc-3.2.2 (RH9). + + * libamu/wire.c (print_wires): convert argument-less xsnprintf to + xstrlcpy. + + * include/am_utils.h: use new HAVE_C99_VARARGS_MACROS or + HAVE_GCC_VARARGS_MACROS to pass file name and line number to + xsnprintf/xvsnprintf. + + * libamu/strutil.c (xsnprintf, xvsnprintf): if debugging is on, + then also print the source file name and line number that called + xsnprintf/xvsnprintf with a buffer that wasn't large enough (most + likely an am-utils bug). + + * Makefile.am (EXTRA_DIST_M4): distribute new + check_varargs_macros.m4 file. + + * configure.in: execute new AMU_VARARGS_MACROS test. + + * m4/macros/check_varargs_macros.m4: new test to check what style + of variable-length argument macros, if any, does the + compiler/pre-processor supports. + + * conf/autofs/autofs_solaris_v2_v3.c (autofs_lookup_2_req) + conf/autofs/autofs_solaris_v1.c (autofs_mount_1_req), amd/opts.c, + amd/nfs_subr.c (nfsproc_lookup_2_svc), amd/nfs_start.c + (mount_automounter), amd/get_args.c (get_args), amd/amfs_toplvl.c, + amd/amfs_auto.c (amfs_auto_mount), amd/amd.h, amd/amd.c (main): + use sizeof() instead of fixed SIZEOF_* macros. + + * libamu/strutil.c (xstrlcat, xstrlcpy), include/am_utils.h + (DEBUG): if debugging is on, then also print the source file name + and line number that called xstrl* with a buffer that wasn't large + enough (most likely an am-utils bug) + + * include/am_compat.h (INADDR_NONE): define in a common location, + if OS doesn't have it, use 0xffffffffU which should work with any + ANSI compiler. + + * fixmount/fixmount.c, libamu/wire.c: remove local definition of + INADDR_NONE. + + * amd/amfs_toplvl.c (amfs_toplvl_mount), amd/amfs_auto.c + (amfs_auto_mount): use common SIZEOF_OPTS in definition and call + to autofs_get_opts. + + * amd/amd.h (SIZEOF_OPTS): moved #define to common header. + +2005-10-06 Rainer Orth + + * amd/opts.c (expand_op): Need to check BUFSPACE for env for + vlen+1. Likewise for cp and strlen(cp)+1. + + * amd/amfs_toplvl.c (amfs_toplvl_mount) [HAVE_FS_AUTOFS]: Pass new + size argument to autofs_get_opts. + +2005-10-05 Erez Zadok + + * amq/pawd.c (transform_dir): was using UDP only. Now will also + try TCP if UDP failed. Destroy client after use to avoid leftover + TCP sockets in the kernel. + + * libamu/hasmntopt.c (amu_hasmntopt): increase size of MNTMAXSTR + from 128 to to 256, because some users have really long option + strings. Suggestion from jon+amd-at-spock.org. + + * amd/opts.c (expand_op): should check BUFSPACE for vlen+1, not + just vlen. Bug discovered when started using xstrlcpy(). + + * ALL: convert from using strcat to the safer xstrlcat, and from + strcpy to safer xstrlcpy. + +2005-10-04 Erez Zadok + + * hlfsd/hlfsd.h: remove old fatalerror() and ERRM macros. + + * hlfsd/hlfsd.c (fatalerror): new function instead of macro. + Easier to use xstrlcat in this new function. + + * amd/amd.h, include/am_utils.h, amd/amd.c: moved 'hostd' extern + from am_utils.h to amd.h, and define its size as a macro that + could be passed to xstrl*(). + + * ALL: convert from using sprintf to the safer xsnprintf. + + * mk-amd-map/Makefile.am (LDADD): link with libamu to get + xsnprintf(). + + * amd/amd.h, amd/amd.c, include/am_utils.h: moved pid_fsname + extern from am_utils.h to amd.h, and define its size as a macro + that could be passed to xsnprintf(). + +2005-10-02 Erez Zadok + + * include/am_utils.h: extern for xvsnprintf(). + + * amd/autil.c: move strsplit() to libamu/strutil.c. + + * libamu/Makefile.am: use strutil.c, not util.c. + + * libamu/strutil.c: rename from util.c to explain better purpose + of file. Move xvsnprintf and xsnprintf from xutil.c to this + file. Sync up with 6.2 version of file. + + * libamu/xutil.c: explain purpose of file. Move mkdirs/rmdirs + code from old util.c. + +2005-10-01 Erez Zadok + + * m4/macros/header_templates.m4: templates for FFS. + + * m4/macros/check_mnttab_type.m4: on BSD44 systems, check for file + system mount table name via the MOUNT_* mount(2) macros (because + BSD44 keeps the mount table in the kernel). + + * configure.in: synchronise order of searching for mnttab entries + and mount names. The new order is "ext3 ext2 ffs ufs 4.2 4.3 4.4 + efs xfs jfs ultrix" (which would prefer ffs on BSD44 instead of + ufs, and ext3 instead of ext2 on Linux). + + * include/am_defs.h: include if it exists. + + * conf/nfs_prot/nfs_prot_netbsd1_4.h: NetBSD 3 has both statfs() + and statvfs(), but the latter is preferred, so #define to use + statvfs. + + * configure.in: check for statfs(), statvfs(), and + . + + * config.guess.long: strip trailing '.' on "netbsdelf3.0." + (Beta). Workaround for bug in config.guess. + + * config.{guess,sub}: update to latest versions. + +2005-09-30 Christos Zoulas + + * fsinfo/fsi_util.c (set_ether_if): use INADDR_NONE instead of + hard-coded value of -1. + + * include/amq_defs.h (AMQ_STRLEN): increase default size from 2KB + to 16KB. We can afford it these days. + + * libamu/strcasecmp.c (strcasecmp): use unsigned chars in + tolower() to avoid sign/size promotion bugs. + + * libamu/xutil.c (switch_to_logfile): don't output to LOG_CONS by + default (it's unfriendly). If user really wants to, they can set + it in /etc/syslog.conf. + +2005-09-29 Erez Zadok + + * amq/pawd.c (find_mt): if the auto mount type is used, pawd could + go into an infinite loop since the mt_directory and mt_mountpoint + fields are the same for auto mounts. Solution: ignore type auto + mounts, similar to toplvl. Bug fix from Jonathan Chen + . + + * README.attrcache: document test-attrcache script. + + * scripts/Makefile.am (noinst_SCRIPTS): build test-attrcache + script. + + * configure.in: build scripts/test-attrcache script and chmod it + so it can be executed in place. + + * scripts/test-attrcache.in: script to test the NFS attribute + cache using Amd. + +2005-09-26 Erez Zadok + + * libamu/xutil.c (unregister_amq): repair broken meaning of D_AMQ, + which was reversed in am-utils-6.2. Bug fix from Steve Plite + . + + * hlfsd/stubs.c (nfsproc_getattr_2_svc, nfsproc_lookup_2_svc, + nfsproc_readlink_2_svc, nfsproc_readdir_2_svc), hlfsd/hlfsd.c + (hlfsd_init): use new clocktime() function. + +2005-09-18 Erez Zadok + + ******************************************************************* + *** Released am-utils-6.1.2.1 *** + ******************************************************************* + + * README.attrcache: Update status of freebsd and openbsd. + Document netbsd's patchs to support noac. + + * libamu/mount_fs.c (compute_nfs_attrcache_flags): cleanup the + code that sets the ac{reg,dir}{min,max} fields so it also sets the + appropriate nfs_args->flags such as MNT2_NFS_OPT_ACREGMIN. + + * configure.in: check for nfs_args fields acregmax and acdirmax. + + ******************************************************************* + *** Released am-utils-6.1.2 *** + ******************************************************************* + + * README.attrcache: new file documenting in detail OS bugs + relating to attribute caching, which can affect Amd's reliability + under heavy load. + + * doc/Makefile.am: install README.attrcache file as attrache.txt + file on am-utils Web site. + + * Makefile.am (EXTRA_DIST): include README.attrcache in distro. + + * BUGS, NEWS, doc/am-utils.texi (auto_attrcache Parameter), + scripts/amd.conf.5, scripts/amd.conf-sample: document attribute + cache bugs on some OSs. + +2005-09-17 Erez Zadok + + * libamu/xutil.c (clocktime): newly implemented routine. Uses + gettimeofday() each time to return a high-resolution clock time, + and does not "cache" the last time. Returns time in seconds, just + like the old implementation. If passed a non-null argument, will + fill it in with the current time in seconds+microseconds. + + * libamu/xutil.c: remove actual declaration of clock_valid, and + another never-used declaration for xclock_valid. + + * include/am_utils.h: remove defunct definition of clocktime() + macro and clock_valid variable. Add extern for new definition. + + * libamu/mount_fs.c (mount_fs), hlfsd/homedir.c (homedir, + hlfsd_diskspace, hlfsd_getpwent, plt_reset, table_add), + hlfsd/hlfsd.c (main, hlfsd_init, reload, cleanup), + conf/mtab/mtab_mach3.c (open_locked_mtab), conf/mtab/mtab_file.c + (open_locked_mtab), amd/nfs_start.c (do_select, run_rpc), + amd/autil.c (host_normalize): remove defunct clock_valid. + + * amd/nfs_subr.c (nfsproc_getattr_2_svc): Print microseconds for + node's mtime. + (fh_to_mp3): use new clocktime() to update mtime and get a better + time resolution. + + * amd/mapc.c (mapc_reload_map): change prototype from returning + void to returning an int. If reloading was needed and succeeded, + return 1; else return 0. + (mapc_sync): update mtime of parent node if needed. This is a + CRITICAL FIX, to ensure that the kernel flushes its DNLC/dcache + when we run "amq -f" manually or when a map is reloaded. + + * amd/map.c (new_ttl): update am_ttl and na_atime in one shot. + (init_map): use new clocktime(). + (unmount_mp): if the OS doesn't support a "symttl" option, then + update the mtime of the parent node using the clocktime(); but if + the time hasn't gotten changed because of rapid Amd accesses on + systems that don't have a micro-second NFS-client resolution, then + increment mtime by one arbitrarily (this could, on some systems + and under pathological cases, result in mtime's that are in the + future). + + * amd/autil.c (forcibly_timeout_mp): MAJOR BUG FIX: force mtime + update of parent dir, to prevent DNLC/dcache from caching the old + entry, which could result in ESTALE errors, bad symlinks, and + more. + (am_mounted): record mount time, and update am_stats at the same + time, using the double-action redone clocktime() routine. + (am_mounted): update parent's mtime from that of the child. + (am_unmounted): when unmounting an entry, update mtime of parent + node. + + * amd/amfs_generic.c (amfs_bgmount): now that clocktime() doesn't + remember it's last non-zero value, save it in a temporary variable + to avoid a TOCTOU problem (between an "if" and a "dlog"). + + * libamu/xutil.c (show_time_host_and_name), + conf/autofs/autofs_linux.c (autofs_mounted, autofs_timeout_mp), + amd/srvr_nfs.c (nfs_keepalive_callback, nfs_keepalive_timeout) + (find_nfs_srvr), amd/rpc_fwd.c (fwd_alloc), amd/nfs_subr.c + (nfsproc_getattr_2_svc), amd/nfs_start.c (do_select, run_rpc), + amd/mapc.c (root_init), amd/map.c(map_flush_srvr, timeout_mp), + amd/info_ndbm.c (ndbm_init), amd/info_ldap.c (amu_ldap_rebind), + amd/info_file.c (file_open), amd/info_exec.c (fgets_timed, + exec_search), amd/clock.c (timeout, softclock), amd/autil.c + (forcibly_timeout_mp), amd/amfs_generic.c (amfs_retry, + amfs_bgmount, amfs_generic_mount_child), amd/amd.c (main): pass + NULL to clocktime(). + +2005-09-07 Erez Zadok + + * minor new port: powerpc-apple-darwin8.2.0. + + * m4/macros/type_auth_create_gidlist.m4: Old macosx used "gid_t" + but all newer ones (10.4+) use int. + + * m4/macros/type_recvfrom_fromlen.m4: Old macosx used "int" for + 6th arg of recvfrom(), but all newer ones (10.4+) use socklen_t. + + * minor new port: i386-pc-linux-deb3.1. + +2005-09-02 Erez Zadok + + * conf/mount/mount_linux.c: If autoconf didn't find any disk-based + file system on this system (probably because /proc isn't mounted), + then provide some default definition for this file to compile. + +2005-08-27 Erez Zadok + + * Makefile.am (DISTCLEANFILES): also remove amu_autofs_prot.h, + config.cache.old, and dbgcf.h on "make distclean". + (CLEANFILES): remove dbgcf on plain "make clean". + + * amd/Makefile.am (DISTCLEANFILES): also remove ops_autofs.c on + "make distclean". + +2005-08-24 Erez Zadok + + * configure.in: wrap all LDAP and HESIOD tests in test whether + --with-OPT was used. + +2005-08-16 Erez Zadok + + * configure.in: sinclude([vers.m4]) version number file. + + * vers.m4: new file to separate version number out of + configure.in, useful for nightly snapshot script to generate + nightly version string. + + * Makefile.am (EXTRA_DIST_M4): include vers.m4 in distro. + +2005-08-11 Erez Zadok + + * configure.in: keep AC_INIT on same line, for nightly snapshot + build script. + +2005-08-06 Erez Zadok + + * scripts/amd.conf.5: selectors_in_defaults is a common parameter, + not just [global]. Use consistent capitalization of Amd/Amq. + + * scripts/amd.conf-sample: properly list all of the parameters + which are common to both the [global] and the per-map sections. + + * doc/am-utils.texi (Common Parameters): selectors_in_defaults is + a common parameter, not just [global]. + + * scripts/amd.conf-sample (sun_map_syntax): example of new flag. + + * cvs-server.txt: update instructions after branching 6.1-stable. + +2005-08-02 Erez Zadok + + ******************************************************************* + *** Released am-utils-6.1.1 *** + ******************************************************************* + + * libamu/xutil.c (xsnprintf): "unsafe" alternative to vsnprintf is + vsprintf, not sprintf. + + * conf/umount/umount_osf.c (umount_fs): refer to proper formal + parameter name. + (umount2_fs): pass second arg to umount(). + + * ALL: remove CVS ID and put actual file name in source. + + * conf/autofs/*.[hc]: proper copyright headers. + + * whitespace reformatting. Remove remaining '%W%' SCCS IDs. + + * amd/mntfs.c (free_mntfs): don't discard the last reference to an + mntfs that had been mounted already. It won't have the + MFF_RESTARTED flag on, as it gets turned off after the entry is + mounted, but it will have the MFF_RSTKEEP flag on. + + * amd/autil.c (mf_mounted), amd/restart.c (restart_fake_mntfs): + show the mntfs's flags. + +2005-08-01 Erez Zadok + + * conf/mtab/mtab_linux.c: removed unused code. Cleanup. + (handler): removed this bad signal handler. + (lock_mtab): Redhat's original code set a signal handler called + "handler()" for all non-ALRM signals. The handler called + unlock_mntlist(), plog'ed the signal name, and then exit(1)! + Never, ever, exit() from inside a utility function. This messed + up Amd's careful signal-handling code, and caused Amd to abort + uncleanly only any other "innocent" signal + (even simple SIGUSR1), leaving behind a hung Amd mnt point. That + code should have at least restored the signal handlers' states + upon a successful mtab unlocking. Anyway, that handler was + unnecessary, because will call unlock_mntlist() properly anyway on + exit. + + * conf/mtab/mtab_{file,isc3,mach3,linux}.c (unlock_mntlist): dlog + message that we're inside the unlock_mntlist function. + + * amd/amd.c (main): use new setup_sighandler() for Amd's four main + signals (INT, TERM, HUP, and CHLD). + (main) Add SIGINT and SIGTERM to masked_sigs, used in + nfs_start.c:do_select() for setjmp/longjmp code; the MASK was set + to all four signals if !HAVE_SIGACTION, but only to HUP+CHLD if we + HAVE_SIGACTION. So this change makes Amd behave consistently. + + * include/am_utils.h: extern for new setup_sighandler(). + + * libamu/xutil.c (setup_sighandler): new utility function to setup + a single signal-handler regardless of what method is supported by + this OS. + (going_down): call unlock_mntlist() when exiting, to ensure that + Amd will remove any leftover mtab lock files, if any. + + * amd/restart.c (restart_automounter_nodes): cleanup function. + + * minor new port: i386-pc-linuxoldld-deb3.1. + + * configure.in: include before to + get the definition of size_t on Debian-3.1r0a. + +2005-07-29 Erez Zadok + + * amd/srvr_nfs.c (find_nfs_srvr): don't blindly copy the hostent + IP address. First check if it differs from the existing one of + the fserver, and copy only if it changed. If it did change, flush + the fhandle cache to avoid a stale fhandle being reused. This + allows Amd to detect IP address changes even for an fserver that + lost one or more NFS pings, but not enough to be declared totally + down. We handle the "totally down" fserver case in + check_fs_addr_change(). + + * amd/ops_nfs.c (nfs_umount), amd/sched.c (sched_task), + amd/nfs_subr.c (nfs_quick_reply): code clarity. + + * conf/mount/mount_linux.c (linux_nfs_error): dlog mappings of + errnos to NFS errors. + + * conf/umount/umount_linux.c (umount2_fs): cleanup code. Trying + stat() seems doomed to hang at times, so don't try stat at all, + because umount2() appears to be clever enough to never hang. + +2005-07-25 Erez Zadok + + * amd/amd.h (FSF_FORCE_UNMOUNT): new flag used to indicate that a + particular fserver may need forced/lazy unmounts when it's mntfs's + are unmounted. + + * amd/ops_nfs.c (nfs_umount): a simple unmount returned EBUSY, and + the user specified forced_unmounts=yes in amd.conf, and this + fserver was flagged with FSF_FORCE_UNMOUNT, and the OS supports + forced/lazy unmounts, then try forced/lazy unmounts. This should + allow a hung mount point to be removed. + + * amd/srvr_nfs.c (find_nfs_srvr): move away IP-address change + detection code to its own function. + (check_fs_addr_change): new function to detect if the IP address + of a downed host has changed, and do various cleanups and fixups + to try and recover as best from that situation (e.g., flushing + various caches). Also set the FSF_FORCE_UNMOUNT flag for the + fserver in question. + (flush_srvr_nfs_cache): pass fserver as argument, so we can + selectively flush the NFS cache for a single fserver (or all of + them, if you pass NULL). + + * libamu/xutil.c (switch_to_logfile): truncate a regular-file log + file if user passed non-zero "truncate_log" flag. + + * include/am_utils.h: switch_to_logfile() now takes a 3rd arg. + + * amd/get_args.c (get_args): pass "truncate_log" flag as per + amd.conf global settings. + + * amd/conf.c (gopt_truncate_log): store global value of + truncate_log flag. + + * amd/amq_subr.c (amqproc_setopt_1_svc), hlfsd/hlfsd.c (main, + reload): don't truncate log file when calling switch_to_logfile(). + + * amd/amd.h (CFM_TRUNCATE_LOG): new flag. Fix comment typo. + + * NEWS, doc/am-utils.texi (truncate_log Parameter), + scripts/amd.conf.5, scripts/amd.conf-sample (log_file): document + new truncate_log amd.conf parameter. + + * amd/conf.c (gopt_forced_unmounts): check Linux kernel version + and alert if your version may be too old for MNT_FORCE to work + (before 2.4.0) or for MNT_DETACH to work (before 2.6.0). + Otherwise it may be impossible to pin down the exact kernel + version in which we should enable this feature. + + * conf/umount/umount_linux.c (umount2_fs): if MNT_FORCE returned + EBUSY, then don't try to stat(2) before MNT_DETACH because it + could hang. + +2005-07-21 Erez Zadok + + * conf/umount/umount_linux.c (umount_fs): cleanup this function, + breaking long "if" statements using "goto out". + + * conf/umount/umount_{aix,bsd44,osf,default,linux}.c (umount_fs): + call new utility function umount2_fs() as needed (EBUSY, EIO, or + ESTALE). + + * conf/umount/umount_{aix,bsd44,osf,default,linux}.c (umount2_fs): + define a new utility function to invoke forcible/lazy unmounts + without touching any mtab files. This separate utility function + is useful because it can be called from elsewhere. + + * amd/amfs_toplvl.c (amfs_toplvl_init): new function, called + before Amd mounts toplvl mounts, which gives us a hook for cleanup + of a previously dead Amd. In our case, if the user asked for + forced_unmounts, and the OS supports it, then we try forced/lazy + unmounts on any previous toplvl mounts. This is useful if a + previous Amd died and left behind toplvl mount points (this Amd + will clean them up!). WARNING: Don't use forced/lazy unmounts if + you have another valid Amd running, because this code WILL force + those valid toplvl mount points to be detached as well! + + * amd/amfs_toplvl.c (amfs_toplvl_umount): don't unconditionally + try forced/lazy unmounts because it will prevent a normal Amd from + terminating and cleaning up properly (self-deadlocking: detached + mounts hang the parent Amd on a stat). Since we already do + unmounts in the background, then try a safer policy: after trying + the normal unmounts a few times (5 sec), escalate and try forced + unmounts a few times (5 more seconds), and if even that failed, + then try the ultimate -- detached unmounts (which always succeed). + This allows Amd to first try and shutdown cleanly, and gradually + try more forcible ways to shutdown. On Linux, this procedure will + cleanly shutdown Amd even if there are processes with their CWD on + Amd's mount points (which normally result in EBUSY). + +2005-07-20 Erez Zadok + + * Makefile.am (EXTRA_DIST_CONF): add new umount_aix.c to distro. + + * conf/umount/umount_aix.c: easier if AIX has its own unmount + helper file. + + * m4/macros/check_umount_style.m4: AIX needs its own unmount style + file. + + * doc/am-utils.texi (forced_unmounts Parameter): @xref -> @pxref. + +2005-07-19 Erez Zadok + + * conf/nfs_prot/nfs_prot_aix5_2.h: define compatible + forced-unmount flag. + + * conf/umount/umount_default.c (umount_fs): if regular umount got + EBUSY, EIO, or ESTALE, then try forced unmount, if supported. Try + umount2 (Solaris) or uvmount (AIX). + + * conf/umount/umount_{bsd44,osf}.c (umount_fs): if default + umount() failed with EIO or ESTALE, also try forced unmount. + +2005-07-18 Erez Zadok + + * amd/autil.c (amfs_mount), amd/amfs_toplvl.c + (amfs_toplvl_umount): enable forced/lazy unmounts only if user + asked for it (and dlog it). + + * scripts/amd.conf.5: document new force_unmount global parameter. + + * doc/am-utils.texi (forced_unmounts Parameter): document new + global parameter. + + * amd/conf.c (gopt_forced_unmounts): process forced_unmounts + option (default "no"). Exit with an error if user specified the + option as "yes" but configure couldn't find support for either the + MNT_FORCE or MNT_DETACH flags. + + * scripts/amd.conf-sample (forced_unmounts): example usage of new + option. + + * amd/amd.h (CFM_FORCED_UNMOUNTS): new flag for forced_unmounts + option. + + * m4/macros/header_templates.m4: templates for _DETACH and _FORCE. + + * configure.in: check for generic u/mount options "detach" and + "force". + + * include/am_utils.h (UMOUNT_FS, umount_fs): new prototypes. + Define AMU_UMOUNT flags for force, detach, and autofs. + + * amd/amfs_toplvl.c (amfs_toplvl_umount): pass _FORCE and _DETACH + unmount flags unconditionally. Pass them to UMOUNT_FS(). + + * conf/nfs_prot/nfs_prot_linux.h: define MNT_FORCE and MNT_DETACH + if needed, because some Linux systems don't define them + (presumably because it would be too dangerous to expose these + flags to users). + + * amd/autil.c (amfs_mount): if mount(2) failed with ESTALE or EIO, + then assume that we're in trouble, possibly because a previous + mount is hung. So, first try to force a lazy unmount of the old + mount. If the forced unmount worked, then try again to mount the + desired file system. If the forced unmount failed, then don't + retry: just return an error. + + * amd/amfs_generic.c (amfs_generic_umount), amd/amfs_host.c + (amfs_host_umount), amd/ops_cachefs.c (cachefs_umount), + amd/ops_cdfs.c (cdfs_umount), amd/ops_efs.c (efs_umount), + amd/ops_lofs.c (lofs_umount), amd/ops_nfs.c (nfs_umount), + amd/ops_pcfs.c (pcfs_umount), amd/ops_ufs.c (ufs_umount), + amd/ops_xfs.c (xfs_umount), conf/umount/umount_bsd44.c + (umount_fs), conf/umount/umount_default.c (umount_fs), + conf/umount/umount_linux.c (umount_fs), conf/umount/umount_osf.c + (umount_fs): compute and use unmount specific flags. + +2005-07-16 Erez Zadok + + * configure.in: better help for users, if nfs_args can't be found. + +2005-07-15 Erez Zadok + + * BUGS: more details on AIX's need to install bos.net.nfs.adt + before configuring am-utils (else configure cannot find struct + nfs_args on AIX). + +2005-07-10 Erez Zadok + + * amd/srvr_nfs.c (find_nfs_srvr): flush NFS handle cache if the IP + address of a down server had changed. + + * amd/info_union.c (union_reload): use safer xsnprintf() routine. + + * amd/srvr_nfs.c (find_nfs_srvr): check to see if the IP address + of a named but down fserver changed (i.e., the previous IP address + is no longer responding). If so, then reset the fserver to the + new IP address, and set the fserver's flags such that the function + will fall through to doing the usual NFS version/proto checks and + pinging. (This should fix one case of bug #308.) + + * conf/umount/umount_linux.c (umount_fs): warn if plain umount() + failed, before we try to ignore any errors or try optional + umount2(), possibly with forced/lazy unmount. + (umount_fs): dlog when unmount succeeded. + +2005-07-08 Erez Zadok + + * conf/mount/mount_linux.c: add a couple more NFSv2 error codes + that are compatible with NFSv3. + +2005-07-07 Erez Zadok + + * m4/macros/header_templates.m4: extern template for strlcat(). + + * amd/get_args.c (get_version_string): use safer strlcat (or + replacement strlcat). Use new wrapper xsnprintf() function, which + will use the safer vsnprintf() if available, else default to plain + sprintf. + + * configure.in: check for existence of strlcat() and its extern, + replacing with libamu/strlcat.c as needed. + + * libamu/Makefile.am (EXTRA_DIST): add strlcat.c to distro. + + * include/am_defs.h: optional strlcat() extern. + + * include/am_utils.h: extern for new xvsnprintf(). + + * configure.in: overdue new major libtool shlib version. + Check for snprintf function and extern. + +2005-07-06 Erez Zadok + + * conf/nfs_prot/nfs_prot_aix4_3.h: cleanup struct + aix4_nfs_args_bis. + + * Makefile.am (EXTRA_DIST_CONF): include mount_aix3.c in + distribution. + + * conf/mount/mount_aix.c: mount style for aix 5.x and newer. + + * conf/mount/mount_aix3.c: mount styles for aix 3.x/4.x. + + * m4/macros/check_mount_style.m4: split mount styles for + aix3.x/4.x and the newer (and better) aix 5.x code. + +2005-07-05 Erez Zadok + + * amq/pawd.c (getawd): avoid buffer overflow. Bug fix from Graeme + Wilford . + +2005-06-30 Erez Zadok + + * amd/map.c (get_next_exported_ap): Avoid running off the end of + the exported_ap[] array. Patch from jon+amd-at-spock.org. Fixed + bug #301. + +2005-06-25 Erez Zadok + + * Makefile.am (EXTRA_DIST_CONF): distribute new mtab_linux.c. + + * conf/mtab/mtab_linux.c (rewrite_mtab): variable declarations + must come before C code. + + * conf/mtab/mtab_linux.c: Linux-specific mount table hanlding + that's safe (uses locks, handles symlinks to /proc/mounts, etc.). + Patch from Red Hat, which they adapted from mtab_file.c. Minor + fixes to this file. + + * m4/macros/check_mnttab_style.m4: Use Linux-specific mount table + handling. + +2005-06-24 Erez Zadok + + * conf/mount/mount_aix.c (mount_aix3): minor cleanup of filehandle + copying code. + +2005-06-23 Erez Zadok + + * conf/nfs_prot/nfs_prot_hpux.h: add extern for h_errno, which may + be missing from older hpux10 systems. + + * configure.in: update bug-reporting address to list + https://bugzilla.am-utils.org/ as well as the mailing list. + + * Makefile.am (EXTRA_DIST_M4): distribute new type_rpcvers_t.m4 + macro. + + * conf/transp/transp_tli.c (get_nfs_version): always use + rpcvers_t, now that it'll be automatically discovered. + + * configure.in: check for rpcvers_t type. + + * m4/macros/type_rpcvers_t.m4: new macro to check for type of + rpcvers_t (Some Solaris versions need it). + + * conf/nfs_prot/nfs_prot_sunos5_8.h: don't define INADDR_NONE + here, but in the actual source files that may need it. + + * libamu/wire.c (INADDR_NONE): define INADDR_NONE if not defined + already. + + * include/am_defs.h: define extern for sleep(3) if needed. + + * m4/macros/header_templates.m4: template for sleep(3) extern. + + * configure.in: check for extern for sleep(3), which is missing + from some old (and buggy) versions of gcc's fixinc'ed headers. + + * conf/nfs_prot/nfs_prot_aix4_3.h: update definition of struct + nfs_args from actual system headers. + + * conf/mount/mount_aix.c (mount_aix3): fix name of aix4 "bis" + structure. + +2005-06-22 Erez Zadok + + * BUGS: update Solaris information about use of f/lex and + yacc/bison. + +2005-06-20 Erez Zadok + + * minor new port: i386-pc-linux-suse9.3. + +2005-06-20 Rainer Orth + + * configure.in (linux/nfs_mount.h): Move __KERNEL__ definition up + so u32 is available for . + +2005-06-16 Erez Zadok + + * amd/mapc.c (maptypes): move MAP_EXEC after MAP_FILE, because + exec maps will always match when users use amd with command line + args (not amd.conf). Using that legacy way, unfortunately, means + that Amd will use it's hard-coded info-service search path, which + doesn't work for everyone. It's much better to use amd.conf and + specify what you want exactly. + +2005-06-15 Erez Zadok + + * minor new port: i386-pc-linux-fc4 (gcc4 catches more bugs). + + * m4/macros/type_recvfrom_fromlen.m4: linux systems use unsigned + int as the type of recvfrom()'s 6th argument. + + * m4/macros/type_yp_order_outorder.m4: linux systems use unsigned + int as the type of yp_order()'s 3rd argument. + +2005-06-15 Erez Zadok + + * scripts/amd.conf-sample (map_type): typo, said mount_type + instead of map_type for the 'exec' example. + +2005-06-11 Erez Zadok + + ******************************************************************* + *** Released am-utils-6.1 *** + ******************************************************************* + +2005-06-04 Erez Zadok + + * amd/ops_nfs.c (mount_nfs_fh): set timeo/retrans mount options + only if the user specified them in amd.conf or elsewhere. If they + were not specified, don't do anything, which would let the OS use + its own defaults. + + * amd/get_args.c (get_args): negative timeo/retrans are "good" in + that they represent uninitialized values (meaning to let the OS + use it's default values). So only check if user specified a value + equal to zero (invalid). + + * amd/amd.h: define AMU_TYPE_NONE so we know when users didn't + specify timeo/retrans at all. + +2005-06-03 Erez Zadok + + ******************************************************************* + *** Released am-utils-6.1-rc7 *** + ******************************************************************* + + * m4/macros/os_cflags.m4 (CFLAGS): use custom-OS C flags for + configuring, not just for building. That way the two phases + (configure and compile) are in sync. This fixes getwire() on + OSF/1 systems. + + * conf/nfs_prot/nfs_prot_sunos5_8.h: define INADDR_NONE if not + defined in system headers. + +2005-06-01 Erez Zadok + + * libamu/Makefile.am (EXTRA_DIST): remove alloca.c as it's no + longer needed. + +2005-05-28 Erez Zadok + + * completed set of fixes for irix6.5. + + * Minor new ports alpha-unknown-linux-gentoo1.4.16 + alphaev56-dec-osf4.0f, mips-unknown-linux-gentoo1.4.16, and + sparc64-unknown-linux-gentoo1.4.16, and mips-sgi-irix6.5. Test + those systems with both cc and gcc, where possible. + + * include/am_xdr_func.h: remove trailing comma at end of enum + list. + + * m4/macros/os_cflags.m4: with gcc 3.4.3 on irix-6.5, we get pte_t + undefined. So give it a dummy value. + + * libamu/alloca.c: remove file from distro. + + * configure.in: don't call AC_FUNC_ALLOCA any more. + + * include/am_defs.h: remove header fixups for , now that + we don't need it. + + * amd/amq_svc.c (amqsvc_is_client_allowed): rewrite function to + avoid only use of alloca() in am-utils, and to use strdup + explicitly. This way we can avoid using alloca, a feature that's + not portable on various systems. + + * amq/amq.c: remove unused lint/rcsid cruft. + +2005-05-27 Erez Zadok + + * conf/checkmount/checkmount_osf.c (fixmount_check_mount): add + extra parentheses around assignments in "if" expressions (gcc + complains). + + * conf/nfs_prot/nfs_prot_osf4.h: add missing extern definitions + for plock, hstrerror, getmntinfo, alloca, xdr_exportnode, and + xdr_groups. + + * configure.in: check for , which, if found, + appears to be preferable to . Use it to find + . On some Linux systems + (Gentoo), both exist but only one must be included, or else you + get redefined structure errors. + + * libamu/wire.c (is_network_member): check if masknum is + INADDR_NONE, not "< 0" because it's an unsigned quantity. + + * libamu/util.c (xstrlcpy): remove useless test for size_t < 0, + because it's an unsigned quantity. + +2005-05-26 Erez Zadok + + ******************************************************************* + *** Released am-utils-6.1-rc6 *** + ******************************************************************* + +2005-05-25 Erez Zadok + + * conf/nfs_prot/nfs_prot_aix5_2.h: AIX 5.3 complains about + missing definition of struct thread_credentials in + but trying to bring that definition in drags a whole lot of other + messy stuff. So just provide a dummy definition for this + structure. + +2005-05-24 Erez Zadok + + * Makefile.am (EXTRA_DIST_M4): distribute m4/macros/libtool.m4. + + * m4/macros/header_templates.m4: template for HAVE_EXTERN_MNTCTL. + + * m4/macros/check_extern.m4: include on AIX + systems, so we can find extern definition for mntctl(). + + * conf/mtab/mtab_aix.c, conf/checkmount/checkmount_aix.c: only + define an extern for mntctl() if needed. + + * amd/ops_nfs.c (prime_nfs_fhandle_cache): never, ever, use C++ + style comments in C code. Some C compilers don't accept it. + + * amd/info_ldap.c (amu_ldap_init, get_ldap_timestamp): force cast + of "time_t *ts" to u_long, to avoid complaints on AIX 5.2 with + xlC. + + * amd/get_args.c: rename symbol conf_file to amu_conf_file to + avoid conflict with libldap.a from openldap-2.0.21 on AIX 5.2. + Oh, when will people who develop libraries learn to always prefix + their exported symbols with a library-specific name? + + * configure.in: check for mntctl() extern on AIX systems. + + * ltmain.sh: update from latest libtool-1.5.18, so we can properly + build on AIX 5.2/5.3 with cc and with gcc. + + * m4/macros/libtool.m4: update from latest libtool-1.5.18. This + time, and from now on, we must include libtool.m4 from the libtool + distribution itself. That way we ensure that we use an ltmain.sh + that matches the appropriate libtool M4 macros. This makes + am-utils no longer dependent on having libtool installed on a + given system on which you run bootstrap. + +2005-05-23 Erez Zadok + + * minor new port: i386-pc-linux-deb3.0. + +2005-05-22 Erez Zadok + + * minor new ports: i386-unknown-netbsdelf2.0.2 and + i386-unknown-openbsd3.7. + +2005-05-20 Erez Zadok + + * minor new ports: i386-pc-linux-gentoo1.4.16 and + powerpc-unknown-linux-yellowdog2.3. + + * include/{mount_headers2.h, am_defs.h}: safer setup before + inclusion of , which is broken on several + systems. + + * configure.in: test for . Separate special test + for because we need to define __KERNEL__ for + that test, as well as optionally define struct nfs2_fh for some + systems (gentoo with 2.4 kernel, yellowdog 2.3, and others). + + * config.guess.long: support Gentoo and Yellow Dog Linux distros. + +2005-05-18 Erez Zadok + + * minor new ports: i386-pc-linux-suse9.2 and + i386-unknown-freebsd5.4. + + * amd/nfs_subr.c: use NFS_FHSIZE, not FHSIZE. + +2005-05-17 Erez Zadok + + ******************************************************************* + *** Released am-utils-6.1-rc5 *** + ******************************************************************* + + * amd/info_ldap.c (amu_ldap_init): change plog to dlog, to avoid + sending annoying warning for a minor issue. + +2005-05-17 Ion Badulescu + + * amd/nfs_subr.c: check for NULL pointer before dereferencing it. + +2005-05-16 Erez Zadok + + * minor new ports: powerpc-apple-darwin7.9.0. + + * m4/macros/host_macros.m4: if a NetBSD system, remove 'elf' part + from OS name because it's no longer relevant. Also, don't include + the major OS version number in the OS name because that's also + unnecessary (and users can always use $osver in maps). + + * amd/nfs_subr.c: use [1] for out-of-band pointer at the end of + struct am_fh, because it's the most portable method. Bug fix + suggestion from Dan Riley . Better + fix from Ion Badulescu: use [FHSIZE-sizeof(u_int)] which is the + actual size we use. + + * amd/amfs_generic.c (amfs_lookup_mntfs): reset currently used + def_opts to options given in -opts, appended with the /default + options. Bug fix suggestion from Dan Riley . + +2005-05-13 Erez Zadok + + ******************************************************************* + *** Released am-utils-6.1-rc4 *** + ******************************************************************* + +2005-05-11 Daniel P. Ottavio + + * amd/amd.c (main) : fixed memory leak detected by valgrind + + * amd/info_ldap.c (amu_ldap_init) : fixed memory leak detected by + valgrind + +2005-05-11 Erez Zadok + + * m4/macros/{check_checkmount_style.m4, check_mnttab_style.m4, + check_nfs_fh_dref.m4, check_nfs_prot_headers.m4, + check_nfs_sa_dref.m4, check_umount_style.m4, os_cflags.m4}: check + for "macosx" as valid OS string, so we compile properly on Darwin + systems. + + ******************************************************************* + *** Released am-utils-6.1-rc3 *** + ******************************************************************* + + * rerun bootstrap to get a working configure script that actually + checks for limits.h and dependent linux autofs/nfs headers. + + * configure.in: remove redundant check for limits.h. + +2005-05-09 Erez Zadok + + ******************************************************************* + *** Released am-utils-6.1-rc2 *** + ******************************************************************* + +2005-05-08 Erez Zadok + + * amd/amfs_generic.c (amfs_lookup_mntfs): removed redundant use of + old_def_opts variable. + +2005-05-08 Daniel P. Ottavio + + * amd/amfs_generic.c (amfs_lookup_mntfs) : Make sure when a map + entry has a single dash '-', that the default options are reset. + This functionality was somehow lost from earlier releases and + reported by Dan Riley . + +2005-05-05 Erez Zadok + + * config.guess.long: detect SuSE Enterprise Server and call it + "sles" not "suse". + +2005-05-02 Erez Zadok + + * doc/am-utils.texi (amd): document proper use of + /etc/hosts.allow. Don't spawn a new Amd process because Amd will + get confused if someone else waitpid's on its children (which + often do important un/mount work). Issue reported by Francis + Montagnac . + + * minor new ports: powerpc64-unknown-linux-rhel4, and + powerpc64-unknown-linux-sles9. + +2005-05-01 Daniel P. Ottavio + + * amd/amfs_host.c (amfs_host_umount): We do not want to pass + ENOENT as an error because if the directory does not exists our + work is done anyway. + + * conf/umount/umount_linux.c (umount_fs): If we are successful or + there was an ENOENT, remove the mount entry from the mtab file. + +2005-05-01 Ion Badulescu + + * amd/nfs_subr.c: am_fh definition moved here from amd.h; + restructured to better reflect its duality (old/new filehandles) + (fh_to_mp3): fhh_gen is always used, even for new style f/h + (mp_to_fh): ditto + + * amd/amd.h: moved am_fh definition to nfs_subr.c (which is the + only place where it's used) + +2005-04-30 Erez Zadok + + * m4/macros/host_macros.m4: use sw_vers on Apple machines to find + out more appropriate OS name (macosx) and OS version (10.3.x) than + uname(3) reports. + +2005-04-29 Erez Zadok + + * config.guess, config.sub, doc/texinfo.tex: updates from latest + official GNU distributions. + + * m4/macros/host_macros.m4: for macosx, change architecture value + from "Power Macintosh" to "powerpc". + + * libamu/util.c (xstrlcpy): format 'len' parameter as u_long, not + int (it's a size_t). + +2005-04-16 Erez Zadok + + * scripts/amd.conf.5, doc/am-utils.texi (normalize_slashes + Parameter), scripts/amd.conf-sample: document new + normalize_slashes global configuration parameter. + + * amd/opts.c (deslashify, normalize_slash): don't touch trailing + slashes, even if multiples of them, if user said + normalize_slashes=no in amd.conf. + + * amd/conf.c (gopt_normalize_slashes): new function to record if + to normalize slashes or not. + + * amd/amd.h (CFM_NORMALIZE_SLASHES): new flag to decide if to + normalize double-slashes or not ("yes" by default). + + * amd/autil.c (am_mounted): pass TRUE when calling mf_mounted. + This is the parent mntfs which does the mf->mf_fo + (am_opts type), and we're passing TRUE here to tell mf_mounted to + actually free the am_opts. + + * amd/autil.c (mf_mounted): Be careful when calling free_ops and + XFREE here. Some pseudo file systems like nfsx call this + function, even though it would be called by the lower-level amd + file system functions. nfsx needs to call this function because + of the other actions it takes. So we pass a boolean from the + caller (yes, not so clean workaround) to determine if we should + free or not. If we're not freeing (often because we're called + from a callback function), then just to be sure, we'll zero out + the am_opts structure and set the pointer to NULL. The parent + mntfs node owns this memory and is going to free it with a call to + mf_mounted(mntfs,TRUE). + + * amd/amd.h: pass flag to mf_mounted, to free or not to free the + am_opts. + + * amd/amfs_nfsx.c (amfs_nfsx_cont): call mf_mounted with FALSE to + tell it not to free the am_opts, to avoid double free. + + * include/am_defs.h: include limits.h if found. + + * configure.in: check for limits.h. Check for certain Linux + headers such as auto_fs.h after checking for limits.h, and include + the latter if it exists, because some Linux headers depend on + limits.h. This prevents warnings during configure time. + +2005-04-12 Erez Zadok + + * amd/amfs_toplvl.c (amfs_toplvl_mount): do NOT set retrans/timeo + values from default global UDP settings, because it can cause + unexpected timeouts in Amd on slow systems. The default that each + OS provides for these toplvl NFS mounts should be OK, or else you + can use the map_options entry. + +2005-04-09 Daniel P. Ottavio + + * amd/nfs_subr.c (mp_to_fh): Replace xstrlcpy with memcpy because the + source buffer is treated more as a filehandle than a string. + + * amd/nfs_subr.c (fh_to_mp3): Replace xstrlcpy with memcpy because the + source buffer is treated more as a filehandle than a string. + + * amd/opts.c (free_op): No longer need to assign pointer to NULL + after XFREE. + + * amd/opts.c (expand_op): Revert back to using strncpy() instead + of xstrlcpy. The code is correct and relies on the semantics of + strncpy. + + * libamu/mount_fs.c (compute_nfs_args): Leave XXX warning that use + of xstrlcpy in NFS_HN_DREF may corrupt a struct nfs_args, or + truncate our concocted "hostname:/path" string prematurely if the + nap->hostname field is ever less than 64 bytes long + (MAXHOSTNAMELEN). + + * libamu/util.c (xstrlcpy): Return immediately if len is 0 to + avoid unnecessary work. Log an error and return if len is less + than 0. + +2005-04-07 Erez Zadok + + * include/am_utils.h (XFREE): XFREE() should nullify the pointer + even when compiling without debugging. It's safer this way. + + * libamu/xutil.c (am_set_hostname), + hlfsd/stubs.c (nfsproc_lookup_2_svc), + fsinfo/fsinfo.c (fsi_get_args), + fixmount/fixmount.c (is_same_host, remove_mount, main), + conf/mtab/mtab_isc3.c (mnt_dup, mtab_of), + conf/mount/mount_svr4.c (mount_svr4), + conf/mount/mount_linux.c (setup_loop_device), + conf/hn_dref/hn_dref_linux.h (NFS_HN_DREF), + conf/hn_dref/hn_dref_isc3.h (NFS_HN_DREF), + amd/opts.c (expand_op), + amd/ops_nfs.c (mount_nfs_fh), + amd/nfs_subr.c (fh_to_mp3, mp_to_fh), + amd/amfs_host.c (amfs_host_mount), + amd/am_ops.c (merge_opts): + use the new xstrlcpy instead of strncpy. + + * conf/checkmount/checkmount_{default,svr4}.c + (fixmount_check_mount): document why NOT to use xstrlcpy. + + * libamu/xutil.c: am_hostname need not be MAXHOSTNAMELEN+1 any + more, just MAXHOSTNAMELEN. + + * libamu/xutil.c (real_plog): use strlcpy (not xstrlcpy to avoid + recursion, since xstrlcpy may use plog). + + * libamu/util.c (xstrlcpy): truncating a string is serious. Use + XLOG_ERROR not XLOG_WARNING. + +2005-04-06 Erez Zadok + + * include/am_utils.h: external definition for new xstrlcpy + function. + + * libamu/util.c (xstrlcpy): new function. Similar to strncpy, but + uses strlcpy to guarantee that the resulting string is null + terminated, and also warn if the resulting string was truncated. + + * libamu/xutil.c (get_server_pid): move this function from util.c + which is for general-purpose utilities. + + * m4/macros/header_templates.m4: template for HAVE_EXTERN_STRLCPY. + + * include/am_defs.h: provide extern definition for strlcpy, if + needed. + + * libamu/Makefile.am (EXTRA_DIST): include strlcpy.c in distro. + + * configure.in: search for strlcpy and its extern. + + * amq/pawd.c (find_mt): It only handles *some* filesystem types, + so it breaks on direct xfs mounts for example. The fix (from + Christos Zoulas) is simple: We need to exclude toplvl to avoid + infinite recursion, but all other fs's are game. + +2005-03-31 Erez Zadok + + * amd/nfs_subr.c (fh_to_mp3): strncpy may not null terminate if + copying exactly len bytes, so add null just to be safe. + +2005-03-30 Daniel P. Ottavio + + * amd/nfs_subr.c (fh_to_mp3): Increased the n of strncpy() + to make sure it null terminates. + +2005-03-29 Daniel P. Ottavio + + * amd/nfs_subr.c (fh_to_mp3): Fix memset bug. In this case + the memset can be removed because strncpy() should padd the + buffer with NULLs anyway. + +2005-03-21 Rainer Orth + + * include/am_defs.h: Clarify comment. + +2005-03-21 Erez Zadok + + * include/am_defs.h: undefine "GROUP" so Solaris 10 with gcc-2.96 + won't complain about a conflict for this definition between + and . + +2005-03-20 Erez Zadok + + * amd/readdir.c (amfs_readdir_browsable): use %p, not %lx. + + * libamu/mount_fs.c (print_nfs_args): print pointer with %p, not + %lx. + +2005-03-18 Erez Zadok + + ******************************************************************* + *** Released am-utils-6.1-rc1 *** + ******************************************************************* + +2005-03-18 Erez Zadok + + * conf/transp/transp_tli.c (get_nfs_version): use proper type for + versout on Solaris (rpcvcers_t). + + * amd/mapc.c (mapc_showtypes): if last map type to print, don't + append newline or comma to it. + + * libamu/mount_fs.c (print_nfs_args): cast struct netbuf pointer + to %lx because on Solaris 10 sparc gcc-3.4.3 complains about + casting it to an int (size is different). + + * configure.in, NEWS: prepare for 6.1-rc1 release. + +2005-03-17 Erez Zadok + + * scripts/amd2ldif.in, ldap.schema: fixes by Adam Morley + to synchronize what amd2ldif does vs. what + the ldap.schema expects. + + * amd/map.c (exported_ap_free): We're using a free-list data + structure and re-using malloc'ed objects. So, to be safe, memset + entire structure when it's freed, not just the pointer. + (umount_exported): bug fix to on-exit code. Don't run + am_unmounted() unless unmount_mp() didn't run, since the latter + already calls am_unmounted(). This way we avoid a double-free + bug. + +2005-03-15 Erez Zadok + + * tasks: updates. Executable maps is supported. NFSv4 and + FreeBSD autofs isn't. + + * Makefile.am (EXTRA_DIST): include FAQ in distro. + + * doc/Makefile.am (alldocs): install README.lda and README.osx. + + * FAQ: new file, better late than never. + +2005-03-14 Erez Zadok + + * scripts/amd2ldif.in: patch to add the amdMapName attribute to + the amdMapTimestamp object when amd2ldif converts it. This is + necessary if you are using type:=auto mounts and want those + mountmaps looked up through LDAP. Patch from Jim Zajkowski + . + +2005-03-12 Erez Zadok + + * minor new ports: i386-pc-linux-rhel4. + + * minor new ports: powerpc-apple-darwin7.8.0. + +2005-03-10 Erez Zadok + + * amd/ops_nfs.c (prime_nfs_fhandle_cache): rearrange code so it's + cleaner. + + * ltmain.sh: upgrade from libtool-1.5.6. + + * m4/macros/check_{fs_mntent,mnttab_type,mount_type}.m4: check for + Linux 2.6 kernel modules, which have a .ko extension, not .o. Now + we can properly detect which file systems exist on Linux 2.6 based + systems (SLES9, RHEL4, Fedora, etc.). + +2005-03-09 Erez Zadok + + * m4/macros/host_macros.m4: find out what's the OS software + distribution name, if any. + + * m4/macros/header_templates.m4: template for DISTRO_NAME. + + * amd/get_args.c (get_version_string): print again full_os, os, + osver, and vendor (bug fix). + (get_version_string): print distribution name, if known (e.g., + rh9, suse8, etc.). + + * amd/mapc.c (mapc_showtypes): wrap around list of supported map. + +2005-03-08 Erez Zadok + + * amd/map.c (umount_exported): when unmounting file systems on + exit (when amd.conf global unmount_on_exit=yes), use unmount_mp() + instead of unmount_node() because the latter always unmounts in + the foreground, whereas the former unmounts in the bg/fg as + needed. Unmounting always in the foreground has two problems: (1) + if the unmount hangs, amd hangs, and (2) for type:=program, the + unmount script is execve'd(!) thus replacing the main amd process, + which never gets to finish up, leaving the amd mount points hung. + + * NEWS: mention new feature of executable maps. + + * AUTHORS: Acknowledge Erik Kline. + + * scripts/amd.conf.5: document executable maps and + exec_map_timeout parameter. + + * scripts/amd.conf-sample: examples of an executable map and + exec_map_timeout. + + * m4/macros/header_templates.m4: template for HAVE_MAP_EXEC. + + * doc/am-utils.texi: document Executable maps and exec_map_timeout + parameter. + + * amd/conf.c (gopt_exec_map_timeout): function to parse + exec_map_timeout [global] parameter. + + * amd/amd.h (AMFS_EXEC_MAP_TIMEOUT): define default executable map + timeout to 10 seconds, and a global placeholder for the + configurable value. + + * amd/amd.c (init_global_options): initialize default executable + map timeout. + + * amd/Makefile.am (EXTRA_amd_SOURCES): include info_exec.c in + tarball. + + * configure.in: enable executable maps. + + * amd/mapc.c: define executable map functions and behavior. + + * amd/info_exec.c: executable map implementation from Erik Kline + , modified, cleaned-up, and fixed. + +2005-03-07 Erez Zadok + + * amd/info_file.c (file_init_or_mtime): consolidate identical + file_init and file_mtime into one function. + +2005-03-05 Erez Zadok + + * doc/am-utils.texi (Program Filesystem): if umount/unmount are + not specified, Amd uses "umount ${fs}" by default. + + * amd/amfs_program.c (amfs_program_match): if neither unmount nor + umount parameters are specified, use the default userland umount + program with "umount ${fs}". This way type:=program doesn't have + to specify the umount program for basic unmounting actions. + (amfs_program_init): save unmount program string in mf_private + only if it's NULL, not based on mf_refc. + + * configure.in: auto-detect name of userland unmount program. + + * aux_conf.h.in (UNMOUNT_PROGRAM): macro for default userland + unmount program. + + * amd/ops_cachefs.c (cachefs_init): save unmount program string in + mf_private only if it's NULL, not based on mf_refc. + + * configure.in: don't "discover" inheritance file system any more, + since we don't have the .c file for it. + + * amd/get_args.c (get_version_string): hack to still show that we + support the inherit file system in output of amd -v. + +2005-03-05 Ion Badulescu + + * amd/amfs_inherit.c: removed, dead code + + * amd/Makefile.am, + amd/am_ops.c, + amd/amd.h, + conf/autofs/autofs_linux.h, + conf/autofs/autofs_solaris_v1.h, + conf/autofs/autofs_solaris_v2_v3.h, + m4/macros/header_templates.m4: removed references to amfs_inherit.c + +2005-03-05 Erez Zadok + + * amd/autil.c (am_mounted): completely rewrite the unmount + no/timeout code to (1) make more sense for odd conditions, and (2) + allow utimeout=N mount options to override FS_NOTIMEOUT default + flags for disk-based file systems such as ufs, pcfs, cdfs, etc. + + * libamu/mount_fs.c (mount_fs): use safer XFREE() not free(). + + * conf/umount/umount_linux.c (umount_fs): strtok is destructive, + so use strdup'ed string. + + * conf/mount/mount_linux.c (parse_opts): strtok is destructive, so + use strdup'ed string. + +2005-03-04 Erez Zadok + + * scripts/amd.conf.5, doc/am-utils.texi (cache_duration + Parameter): clarify actual behavior: this Parameter affects + initial mount timeout as well as the linear backoff what happens + the initial failed EBUSY unmount. + + * doc/am-utils.texi (opts Option): better explanation of + utimeout=N mount pseudo-option. + + * amd/amd.h (AM_TTL, AM_TTL_W): better comments, minor cleanup. + +2005-03-02 Daniel P. Ottavio + + * AUTHORS: add Dan Ottavio. + + * scripts/amd.conf.5: document new debug_mtab_file option. + + * scripts/amd.conf-sample (debug_mtab_file): show example. + + * doc/am-utils.texi (debug_mtab_file Parameter): document new + option. + + * conf/mtab/mtab_{file,mach3}.c (open_locked_mtab): if mtab file + doesn't exist by the time Amd tries to exist, return a 0 rather + than hang indefinitely. + + * amd/conf.c (gopt_debug_mtab_file): new function to parse + debug_mtab_file option. + + * amd/amd.h: placeholder for debug_mtab_file string. + Define default debug_mtab_file to "/tmp/mtab". + + * NEWS: document new debug_mtab_file option. + +2005-03-02 Erez Zadok + + * conf/transp/transp_{sockets,tli}.c (amu_get_myaddress): when + users want Amd's NFS service to bind to some arbitrary "localhost" + address, show which address was actually resolved and bound to. + +2005-03-01 Erez Zadok + + * amd/srvr_nfs.c (start_nfs_pings): move code from elsewhere + (update_nfs_pingval) that initializes the pinger, as well as turns + it on/off as needed, and handles changing its value. This is to + avoid races and other infinite-loop conditions that could result + in ping storms. + + * amd/srvr_amfs_auto.c (amfs_generic_find_srvr): when creating a + new file server structure, default the ping value to AM_PINGER + (30sec) and set the FSF_PING_UNINIT flag. + + * amd/amd.h (FSF_PING_UNINIT): new flag to tell whether the NFS + pinger had been initialized for a given file server. + + * scripts/ctl-amd.in (stop): no need to check if + /var/lock/subsys/amd file exists if you do an rm -f afterward. + Ensure that proper return value is returned from script. + + * NEWS, doc/am-utils.texi (opts Option): update meaning of ping=N + so that if N=-1, pings are off; if N=0, pings are set to the + default value (currently 30 seconds). + +2005-02-28 Erez Zadok + + * amd/nfs_prot_svc.c (nfs_program_2): on TLI system, try to call + __rpc_get_local_uid to verify if the RPC call through the + local host interface came from UID 0. + + * configure.in: look for internal libnsl function + __rpc_get_local_uid (seems to be available on all known TLI + systems, Solaris and HP-UX 11). + + * conf/transp/transp_tli.c (amu_svc_getcaller): unnecessary + function for TLI systems (and it violated a array's bounds, + discovered with libumem.so). + (bind_resv_port, bind_resv_port_only_udp, get_autofs_address): + just to be on the safe side, set struct t_bind's qlen field to non + zero (64 by default). This value cannot be zero for TCP + connections, and it's unclear if it's good to have it zero for UDP + connections, so setting it to 64 is safer. + +2005-02-27 Erez Zadok + + * doc/am-utils.texi (opts Option, Keep-alives): update text on + ping option. + + * amd/srvr_nfs.c (update_nfs_pingval): new function to update NFS + server ping values, turn them off, or re-enable them. + (find_nfs_srvr): call update_nfs_pingval() as needed. + + * hlfsd/hlfsd.c (reaper, cleanup): don't use exit(3) in a signal + handler, but use _exit(2) instead. + + * amd/amd.c (parent_exit): This signal handler is called during + Amd initialization. The parent forks a child to do all the hard + automounting work, and waits for a SIGQUIT signal from the child. + When the parent gets the signal it's supposed to call this handler + and exit(3), thus completing the daemonizing process. Alas, on + some systems, especially Linux 2.4/2.6 with Glibc, exit(3) doesn't + always terminate the parent process. Worse, the parent process + now refuses to accept any more SIGQUIT signals -- they are + blocked. What's really annoying is that this doesn't happen all + the time, suggesting a race condition somewhere. + (This happens even if I change the logic to use another signal.) + I traced this to something which exit(3) does in addition to + exiting the process, probably some atexit() stuff or other + side-effects related to signal handling. Either way, since at + this stage the parent process just needs to terminate, I'm simply + calling _exit(2). Note also that the OpenGroup doesn't list + exit(3) as a recommended "Base Interface" but they do list + _exit(2) as one. This fix seems to work reliably all the time. + + * scripts/wait4amd2die.in: change default to recognize that amd is + down more quickly (check every 3 seconds instead of 5). + +2005-02-26 Erez Zadok + + * libamu/xutil.c (amu_release_controlling_tty): warn if closing + stdin/stdout/stderr failed. No need for tempfd. + + * scripts/ctl-{amd,hlfsd}.in: before running any real program in + these shell scripts, chdir to "/" to avoid possible hangs with + existing NFS mounts. This was causing ctl-amd's forked + grand-child amd process to hang if restartable_mounts=no. Go + figure. + +2005-02-25 Erez Zadok + + * minor new port ia64-unknown-linux-rhel4 + + * fsinfo/fsi_util.c (set_ether_if): avoid u_long casting to -1 + (RHEL4 gcc 3.4.3 ia64 compiler complains). + +2005-02-24 Erez Zadok + + * minor new port i386-unknown-freebsd6.0 (6.0-CURRENT-SNAP001). + +2005-02-23 Erez Zadok + + * minor new port: i386-pc-linux-rhel3. + + * INSTALL: major update of the compatibility list. + + * m4/macros/os_cflags.m4: set AMU_CFLAGS not AM_CFLAGS. + +2005-02-22 Erez Zadok + + * scripts/amd.conf.5, doc/am-utils.texi (preferred_amq_port): + document new preferred_amq_port [global] option. + + * scripts/amd.conf-sample (preferred_amq_port): example. + + * include/am_utils.h: add preferred_amq_port to prototype. + + * conf/transp/transp_tli.c (bind_preferred_amq_port): new function + to bind the Amq RPC service for UDP and TCP to a preferred port + (or to any port if preferred_amq_port==0). + (create_amq_service): decide if to bind to RPC_ANYFD, or to a + requested port. + + * conf/transp/transp_sockets.c (create_amq_service): if + preferred_amq_port is greater than 0, then bind to that port for + both UDP and TCP. If preferred_amq_port==0, then bind to any + port. + + * amd/nfs_start.c (mount_automounter): pass global + preferred_amq_port value to create_amq_service(). + + * amd/conf.c (gopt_preferred_amq_port): new function to parse + amd.conf value for preferred_amq_port. + + * amd/amd.h: placeholder for preferred_amq_port. + +2005-02-21 Erez Zadok + + * conf/transp/transp_tli.c (bind_resv_port_only_udp): rename old + bindnfs_port to a more proper name. This function binds the NFS + service to a specified port, and only for UDP. + + * conf/transp/transp_tli.c: cleanup some code, rename some + functions, in preparation for RPC amq port specification code. + +2005-02-19 Erez Zadok + + * */Makefile.am: don't redefine CFLAGS or LDFLAGS; they are + reserved for users to pass them on the command line. Instead, use + autoconf's internal AM_CFLAGS and AM_LDFLAGS. + + * depcomp, install-sh, missing, mkinstalldirs: update from latest + versions of Automake 1.9.2. + + * m4/macros/*.m4: properly quote AC_DEFUN'ed macro name, and fix + regexp/patsubst M4 commands. Newer versions of autoconf (e.g., + v2.59) complain about those. + +2005-02-17 Erez Zadok + + * amd/opts.c (f_xhost): if we don't have hstrerror, just print the + value of h_errno. + + * configure.in: include -lresolv if it defines the hstrerror() + function and not already available in existing libraries. + + * minor new port: powerpc-apple-darwin7.7.0. + + * amd/nfs_subr.c (mp_to_fh): pathlen should be u_int because it is + later compared against an unsigned quantity (complaint from gcc + 3.3 on SuSE 8.2) + + * include/am_utils.h: remove unnecessary (and conflicting) extern + for bind_resv_port2(), which is declared as static in + transp_tli.c. + + * doc/am-utils.texi, scripts/amd.conf.5, scripts/amd.conf-sample, + NEWS: document four new amd.conf options: nfs_retry_interval_udp, + nfs_retransmit_counter_udp nfs_retry_interval_tcp, and + nfs_retransmit_counter_tcp. + + * amd/ops_nfs.c (mount_nfs_fh): set timeo/retrans values based on + wether nfs_proto was "udp" or "tcp". + + * amd/amfs_toplvl.c (amfs_toplvl_mount): set retrans/timeo values + from default UDP settings (because toplvl mounts are UDP for now). + + * amd/get_args.c (get_args): use parameters to -t option to set + both UDP and TCP timeo/retrans values. + + * amd/conf.c: (gopt_nfs_retransmit_counter_udp, + (gopt_nfs_retransmit_counter_tcp, gopt_nfs_retry_interval_udp + (gopt_nfs_retry_interval_tcp): new functions to parse UDP and TCP + retrans/timeo parameters separately. + (gopt_nfs_retry_interval, gopt_nfs_retransmit_counter): if + specified, use it to set defaults for both UDP and TCP. + + * amd/amd.c (init_global_options): initialize default values of + both UDP and TCP retrans/timeo values to -1. + + * amd/amd.h (AMU_TYPE_{TCP,UDP,MAX}): define separate retrans and + timeo values, one for udp mounts and another for tcp mounts. + +2005-02-16 Erez Zadok + + * README.osx: new file with some instructions for Mac OS-X users, + courtesy Kevin Layer. + + * amd/get_args.c (get_args): move call to switch_to_logfile() + after processing -v, so we don't print "no logfile defined; using + stderr" when we're about to print version info and exit anyway. + + * minor new port: powerpc-ibm-aix5.3.0.0. + + * hlfsd/hlfsd.c (main): rewrite code to avoid negative array + references. + + * conf/checkmount/checkmount_aix.c: remove extern definition for + mntctl(), since AIX 5.3 has it in . + + * amd/info_union.c (union_reload): rewrite code to avoid negative + array references. + + * amd/opts.c (split_opts, expand_op): rewrite code to avoid + negative array references. + + * conf/mtab/mtab_aix.c: remove extern definition for mntctl(), + since AIX 5.3 has it in . + + * libamu/xutil.c (real_plog): rewrite code to avoid negative array + references. + + * libamu/wire.c (is_network_member): rearrange code slightly to + avoid negative array references (AIX 5.3 xlC 7.0 compiler + complains about it). + +2005-01-26 Erez Zadok + + * doc/am-utils.texi (xhost Selector Function): document new + selector function. + + * amd/opts.c (f_xhost): new function for use when matching the + "host" selector for the current host's name. This function will + now match the primary host name as well as all known aliases + (CNAMES) that gethostbyname() returns. This function now supports + a new function selector called xhost(ARG); the old host==ARG + selector is unharmed. + +2005-01-17 Ion Badulescu + + * NEWS: document the ability to restart old mount points + + * amd/map.c (mount_auto_node): force the fileid of the + root to be 1, so that it won't change between restarts; use the + root filesystem's own methods instead of hard-coding the use of + the default methods + + * conf/transp/transp_tli.c (create_nfs_service): better cleanup on + error conditions. + (bind_resv_port2): allow the caller to request a certain port. + + * conf/transp/transp_sockets.c (bind_resv_port): allow the caller + to request a certain port. + (create_nfs_service): better cleanup on error conditions. + + * amd/restart.c (restart_automounter_nodes): new function, takes + care of restarting automounter NFS mount points (autofs will come + later). + (restart): skip all automounter mount points. + + * amd/nfs_subr.c (fh_to_mp3, mp_to_fh): new filehandle + implementation: if the path to the node is shorter than sizeof(fh) + chars (currently 32 chars for a NFSv2 fh), simply store it inside + the fh. For longer paths, keep the old implementation. + + * amd/nfs_start.c (mount_automounter): reorder things so that + restarting the toplvl filesystems occurs before anything else (so + that we can grab all the ports we need before we accidentally use + them for something else). + + * amd/mntfs.c (locate_mntfs): remove dead code; add special + handling of restarted toplvl filesystems. + + * amd/mapc.c (root_keyiter): fix up a comment. + + * amd/map.c (path_to_exported_ap): new function, searches for and + returns a node by the path to it. + (get_root_nfs_fh): remove unnecessary fiddling with the root fh. + + * config.guess.long: support Red Hat Enterprise Linux + +2005-01-17 Erez Zadok + + * libamu/util.c (rmdirs): prevent amd from logging 'Read-only + filesystem' errors when the mount point has an ancestor (i.e. '/') + that is mounted read-only. Patch from David Rage . + +2005-01-17 Ion Badulescu + + * conf/umount/umount_linux.c (umount_fs): Linux doesn't need the + autofs space hack + + * conf/umount/umount_default.c (umount_fs): there is no need for + HAVE_LOOP_DEV, now that Linux has its own dedicated umount_linux.c + +2005-01-17 Erez Zadok + + * doc/am-utils.texi (Automatic Unmounting): document new umount2() + behavior on Linux. + + * conf/umount/umount_linux.c (umount_fs): new file. On Linux, if + umount(2) failed with EIO or ESTALE, try umount2(2) with + MNT_FORCE+MNT_DETACH. Based on patch from Christos Zoulas + . + + * m4/macros/check_umount_style.m4: pick new linux umount style. + + * Makefile.am (EXTRA_DIST_CONF): distribute new umount_linux.c + file. + +2005-01-16 Erez Zadok + + * conf/nfs_prot/nfs_prot_aix{4_2,4_3,5_1,5_2}.h, + m4/macros/struct_nfs_args.m4: minor cleanups for quicker execution + of "nfs_args" test. + +2005-01-13 Erez Zadok + + * amd/get_args.c (show_usage): separate function to print usage + string. + (get_args) Call show_usage() from get_args when needed, then exit. + + * amd/get_args.c (get_version_string): print also domain, host, + and hostd. + (get_args): print version string at the very end, after all other + values had been initialized. Patch from Christos Zoulas + . + + * conf/transp/transp_sockets.c (check_pmap_up, get_nfs_version), + conf/transp/transp_tli.c (check_pmap_up): correct an inconsistency + in timeouts in the RPC code between socket and TLI + implementations. The clntudp_create timeout has a different + meaning than the clnt_call timeout. Set the timeout of the create + to 2 seconds which means retry if no answer in two seconds, and + the timeout call to 6 seconds, which will give us consistently 2 + to 3 pings. This is useful on occasional network UDP loss where a + single packet loss would wrongfully mark a server down. (The TLI + code is the one that had the problem occurs.) Patch from Christos + Zoulas . + + * libamu/mount_fs.c (compute_nfs_attrcache_flags): make sure code + compiles even for systems that don't have the nfs_args + ac{reg,dir}{min,max} fields. + + * amd/amfs_toplvl.c (set_auto_attrcache_timeout): just to be safe, + add "noac" if amd.conf option auto_attrcache was set to 0. This + should hopefully make the compute_nfs_attrcache_flags patch even + safer. + + * libamu/mount_fs.c (compute_nfs_attrcache_flags): separate + function to compute attribute-cache values. This function now + computes attribute-cache flags for BOTH Amd's automount points + (NFS) as well as any normal NFS mount that Amd performs. + (compute_nfs_args, compute_automounter_nfs_args): call + compute_nfs_attrcache_flags to figure out attribute-cache related + flags. Patch from Christos Zoulas . + + * scripts/amd.conf-sample: show examples of new global options + domain_strip and auto_attrcache. + + * scripts/amd.conf.5: document new global options domain_strip and + auto_attrcache. Add warning to auto_attrcache use in case of + ESTALE. + + * doc/am-utils.texi: minor cleanups and document new global + options domain_strip and auto_attrcache. Add warning to + auto_attrcache use in case of ESTALE. + + * amd/conf.c (gopt_auto_attrcache): parse new global amd.conf + option auto_attrcache. + (gopt_domain_strip): parse new global amd.conf option + domain_strip. Part of a patch from Christos Zoulas + . + + * amd/autil.c (host_normalize): don't call domain_strip() + unconditionally, but depend on the new global amd.conf flag + domain_strip. + + * amd/amfs_toplvl.c (set_auto_attrcache_timeout): new function to + set attribute cache timeout value given other configured global + defaults. + (amfs_toplvl_mount): set automount point attribute cache option + value to "noac" if attrcache=0, else set it to whatever + set_auto_attrcache_timeout() returns. + + * amd/amd.h (CFM_DOMAIN_STRIP, CFM_DEFAULT_FLAGS): flag to decide + if to strip the domain from the host name or not, default options + set to strip the domain. + Store global value of automount attribute cache timeout value. + + * amd/amd.c (init_global_options): add flag to record automount + point attribute cache value. + + * amd/amd.c (do_memory_locking): new function to encapsulate all + of the memory-locking functionality, which was in main() before. + Also added a call to madvise(), just in case. + (main): call do_memory_locking() to pin process memory if amd.conf + asked for it, but do so after the main Amd process daemonizes, + because mlock/mlockall is not inherited by fork() by default. + Slightly restructured patch from Jonathan Chen + . + + * configure.in: check for madvise(2). + + * config.guess, config.sub: updates for latest official GNU + versions. + + * m4/GNUmakefile: update paths to "make update" + +2005-01-12 Erez Zadok + + * conf/nfs_prot/nfs_prot_hpux11.h: define an nfs_fh3 structure + that's compatible for HPUX11 as well as NFSv3. + + * include/am_defs.h: On AIX 5.2, both and + define MAXDNAME, if compiling with gcc + -D_USE_IRS (so that we get extern definitions for hstrerror() and + others). So undef MAXDNAME before it gets redefined. + + * include/am_defs.h: Solaris 10 (build 72) defines GROUP_OBJ in + , which is included in many other header files. + uses GROUP_OBJ inside enum zotypes. So if you're + unlucky enough to include both headers, you get a compile error + because the two symbols conflict. Temp hack: undefine acl.h's + GROUP_OBJ before including nis.h, because we don't need acl.h for + am-utils. + + * m4/macros/os_cflags.m4: turn -D_USE_IRS for AIX5+ so that + certain extern definitions of resolver functions become available. + + * amd/opts.c (expand_op): use #define for expand_error string + because some compilers complain about the use of static const + char[] inside a varargs function. + + * minor new port i386-unknown-netbsdelf1.6.2. + + * new port i386-unknown-netbsdelf2.0. + + * minor port i386-unknown-freebsd5.3. + + * libamu/mount_fs.c (compute_nfs_args): don't compare + nap->maxgrouplist against NULL but against 0 directly, because on + FreeBSD 4.3, NULL is defined is (void *)0 and gcc 3.4 complains + about a type mismatch. + + * minor port i386-pc-linux-fc3 (Fedora Core 3). + +2005-01-11 Erez Zadok + + * hlfsd/hlfsd.c (main): use sigsuspend() over sigpause(), because + FC3 doesn't have proper extern definition for the defunct + sigpause(). + + * configure.in: look for sigsuspend(). + +2005-01-01 Erez Zadok + + * updated copyright year to 2005 on all files. + +2004-11-29 Erez Zadok + + * scripts/amd.conf.5: Small fixes to typos in man page, from + Thomas Klausner . + +2004-10-22 Erez Zadok + + * ldap.schema: add this file to distribution. + +2004-09-15 Erez Zadok + + * doc/am-utils.texi: fix old URLs. + +2004-09-01 Erez Zadok + + * conf/mtab/mtab_aix.c (read_mtab): avoid a race condition between + multiple calls to mntctl(). Patch suggested by Michael van Elst + . + +2004-08-07 Erez Zadok + + * doc/am-utils.texi (Program Filesystem): document how to get + double slashes in Amd maps. + + * amd/opts.c (normalize_slash): support escaped slashes, needed + for SMB mounts. Use '\\\/\\\/' in a string to get a double slash. + +2004-08-06 Erez Zadok + + * amd/amfs_program.c (amfs_program_match): bug fix. Complain if + both opt_unmount and opt_umount are missing, not when just one of + them is missing. + +2004-08-03 Erez Zadok + + * amq/pawd.c (find_mt): recognize "linkx" type mounts. Patch from + Hauke Fath . Support "nfsx" while + we're at it. + + * doc/am-utils.texi: mention bugzilla. Fix broken URL HREF's. + +2004-08-02 Erez Zadok + + * amq/pawd.c (find_mt): recognize "host" type mounts. Patch from + Dan Nelson . + +2004-07-30 Erez Zadok + + * doc/am-utils.texi, NEWS: minor typos fixed. + +2004-07-30 Erez Zadok + + * include/am_xdr_func.h: cannot have field-less structure; put a + dummy field in. + + * conf/autofs/autofs_solaris_v2_v3.c (xdr_autofs_rddirargs): cast + 2nd arg of xdr_u_int to a u_int*, not int*. + (autofs_mount_2_req): don't use C++ // comments. + +2004-07-30 Erez Zadok + + * m4/macros/{try_compile_anyfs,check_field}.m4: include + if it exists. Part of a set of + FreeBSD 5 patches from Martin Blapp . + + * include/am_defs.h: include if it + exists. + + * amd/ops_pcfs.c (mount_pcfs): set pcfs_args_t.dirmask field to + 0777 by default. + + * configure.in: check for pcfs_args_t.dirmask field. Check for + existence of , new on FreeBSD 5. + +2004-07-29 Erez Zadok + + * minor new port: i386-pc-linux-fc2 (Fedora Core 2). + + * amd/info_ldap.c (amu_ldap_rebind): don't use ldap_enable_cache() + unless the function exists in libldap and the extern is in + . Recently, openldap removed the extern from ldap.h, but + left the function in libldap, for binary compatibility; however + ldap_enable_cache and related functions have been deprecated (and + no longer listed in the header files), and therefore should be + avoided. + + * m4/macros/check_extern_ldap.m4: new macro to check for + LDAP-specific externs. This is separate from check_extern.m4 so + as to avoid breaking the general-purpose macro with LDAP-specific + headers. + + * m4/macros/header_templates.m4: extern template for new + HAVE_EXTERN_LDAP_ENABLE_CACHE. + + * configure.in: call new check_extern_ldap.m4 macro. + + * Makefile.am (EXTRA_DIST_M4): distribute new check_extern_ldap.m4 + macro. + + * config.guess.long: distinguish between redhat and fedora-core + releases. + +2004-07-23 Erez Zadok + + * Minor new port i386-pc-linux-suse8.2: minor new port to SuSE + 8.2. This systems' latest GCC (gcc version 3.3 20030226 + prerelease) correctly caught a lot of possibly bad comparisons + between signed and unsigned quantities. + + * hlfsd/homedir.c (table_add, plt_search): changed first arg of + both functions to u_int. + + * hlfsd/hlfsd.h, hlfsd/hlfsd.c: change 'cache_interval' to u_int. + Changed proto for plt_search arg to u_int. + + * amq/amq.c (show_mi, main): change 'i' to u_int. + + * amq/pawd.c (find_mlp): change 'i' to u_int. + + * amd/srvr_nfs.c (find_nfs_srvr): change proto_nfs_version to + u_int. + + * amd/amd.h: change prototype of vreaddir and amfs_error_readdir + to use u_int count parameter. + + * amd/ops_TEMPLATE.c (foofs_readdir), amd/amfs_error.c + (amfs_error_readdir): change 'count' parameter in proto to u_int. + + * amd/amd.h: change proto of amfs_generic_readdir() to use u_int + count parameter. + + * amd/readdir.c (make_entry_chain): preflen should be u_int. + (amfs_readdir_browsable): change 'count' to u_int. + (amfs_generic_readdir): change 'count' to u_int. + + * amd/amd.h: amu_global_options's portmap_program field should be + u_long, not int (to match RPC conventions). Change am_fh's + fhh_gen field to u_int, to match am_gen field in struct am_node. + + * amd/conf.c (gopt_portmap_program): use atol() instead of atoi() + to avoid size differences. + + * conf/mount/mount_linux.c (find_unused_loop_device): cast to int + to avoid comparison between chars and integers. + + * libamu/mount_fs.c (get_hex_string): change 'i' to u_int to avoid + comparisons between signed and unsigned integers. + +2004-07-13 Erez Zadok + + * minor new port: i386-pc-linux-suse9.1. + + * include/am_defs.h: don't use __kernel_dev_t for dev_t on Linux, + because SuSE wants __kernel_old_dev_t. Instead, just define it + directly to what they both use: an unsigned short. + +2004-05-27 Erez Zadok + + * minor new port: i386-unknown-freebsd4.10 + +2004-04-29 Ion Badulescu + + * amd/amfs_generic.c (amfs_lookup_one_mntfs): fix the creation of + mountpoints for autofs-based sublinks the right way + +2004-04-28 Ion Badulescu + + Fixes for various memory management problems discovered by + Rainer's purify run: + + * conf/transp/transp_tli.c (check_pmap_up): zero out struct + timeval before using; + (get_nfs_version): ditto + + * amd/map.c (umount_exported): make sure we don't try to free the + same am_node multiple times, by setting its corresponding + exported_ap slot to null + + * amd/get_args.c (get_version_string): a static pointer is pretty + pointless, make it automatic + + * amd/conf.c (gopt_debug_options): remove unnecessary strdup(); + (gopt_log_options): ditto + (gopt_print_version): free version string after using it + + * amd/autil.c (mf_mounted): free mntfs->mf_fo instead of leaking + it + + * amd/amfs_generic.c (amfs_lookup_one_mntfs): use the CALLOC macro + (amfs_lookup_mntfs): free def_opts on return + + * amd/amd.c (daemon_mode): zero out struct sigaction before using + it; + (main): ditto + +2004-04-27 Ion Badulescu + + * amd/amfs_generic.c (amfs_lookup_one_mntfs): force FS_MKMNT on + the real mount of an autofs-based sublink + +2004-04-25 Ion Badulescu + + * amd/map.c (free_map_if_success): avoid dereferencing a pointer + to potentially freed memory + +2004-02-26 Erez Zadok + + * minor new port: i386-unknown-freebsd5.2.1. + +2004-01-30 Ion Badulescu + + * scripts/ctl-hlfsd.in: don't run hlfsd with -D fork + +2004-01-25 Erez Zadok + + * minor new port: sparc64-unknown-linux-deb3.0 + + * config.guess.long: recoognize Debian Linux. + +2004-01-22 Erez Zadok + + * conf/transp/transp_tli.c (amu_get_myaddress): use + htonl(INADDR_LOOPBACK) and define INADDR_LOOPBACK if not already + available. + +2004-01-21 Erez Zadok + + * wire-test/wire-test.c, hlfsd/hlfsd.c (main): pass NULL as second + parameter to amu_get_myaddress(). + + * conf/transp/transp_tli.c (amu_get_myaddress): resolve value of + localhost_address amd.conf parameter, if defined (else default to + HOST_SELF_CONNECT). + Removed htonl() around socket address copying (I think it was + wrong) since plog("My IP address is...") in amd.c was printing + addresses wrong on Solaris x86.. + + * conf/transp/transp_sockets.c (amu_get_myaddress): comment out + old DEBUG code that warns if 127.0.0.1 isn't the same as what + get_myaddress() reports. Add code to resolve value of + localhost_address amd.conf parameter, if defined (else default to + 127.0.0.1). + + * amd/conf.c (gopt_localhost_address): new function to parse + amd.conf parameter localhost_address. + + * amd/amd.h: global field to store amd.conf localhost_address + parameter. + + * amd/amd.c (main): call amu_get_myaddress with global option, + which could have been set in amd.conf. + + * NEWS, doc/am-utils.texi, scripts/amd.conf-sample, + scripts/amd.conf.5: document new option localhost_address. + +2004-01-20 Ion Badulescu + + * amd/conf.c (gopt_nfs_allow_insecure_port): support function for + the new "nfs_allow_insecure_port" amd.conf directive + + * amd/nfs_prot_svc.c (nfs_program_2): complain about the insecure + port and drop the request only if the "nfs_allow_insecure_port" + option is not set in amd.conf + + * doc/am-utils.texi (Global Parameters): documented the new + amd.conf directive "nfs_allow_insecure_port" + + * scripts/amd.conf.5 (nfs_allow_insecure_port): ditto + + * scripts/amd.conf-sample (nfs_allow_insecure_port): added the + "nfs_allow_insecure_port" directive + +2004-01-20 Erez Zadok + + * doc/am-utils.texi: amd-workers is defunct. + +2004-01-19 Erez Zadok + + * cvs-server.txt: updated instructions + +2004-01-18 Erez Zadok + + * minor new port: i386-unknown-freebsd5.2. + +2004-01-05 Erez Zadok + + * MIRRORS.{txt,html}: verify each mirror site, update to new + locations (if found), and remove stale mirrors URLs. + + * updated copyright year to 2004 on all files. + +2004-01-03 Erez Zadok + + * MIRRORS.txt: track status. + + * Makefile.am (install-snapshot): new directory to install + snapshots (now that am-utils home page is moved). + +2004-01-02 Erez Zadok + + * INSTALL, README.autofs: remove forced text-mode. + + * doc/am-utils.texi: fix Amd book URL. + + * Makefile.am (EXTRA_DIST): include new mirror files in tarball. + + * AUTHORS, BUGS, README, README.y2k, configure.in, + doc/am-utils.texi: revisions to use newer URLs for Web site, FTP, + and mailing lists. + + * MIRRORS.{html,txt}: updates. + + * doc/Makefile.am: install mirror lists officially. + +2004-01-01 Erez Zadok + + * tasks: things to do after migrating ftp/Web sites. + +2003-12-09 Erez Zadok + + * fsinfo/fsinfo.8: fixed typo (unbalanced []) in man page. Bug + report from Eric S. Raymond . + +2003-11-18 Erez Zadok + + * Makefile.am (EXTRA_DIST_M4): exclude removed file + m4/macros/struct_nfs_fh3.m4 from distro. + +2003-10-24 Rainer Orth + + * libamu/xdr_func.c (xdr_am_nfs_fh3): Use AM_FHSIZE3 instead of + FHSIZE3 (may be undefined). + +2003-10-24 Ion Badulescu + + Compile fix for Solaris7 with LDAP: + + * include/am_defs.h: moved the ldap headers before am_nfs_prot.h + to facilitate using ldap types in it + + * conf/nfs_prot/nfs_prot_sunos5_7.h: add a couple of ldap + definitions that Sun left out of their headers + +2003-10-24 Ion Badulescu + + * conf/nfs_prot/nfs_prot_*.h: remove all NFSv3-related + definitions, they are now defined globally + + * libamu/xdr_func.c: unconditionally define all xdr functions + needed for NFSv3, but with an am_ prefix to prevent namespace + collisions + + * amd/amfs_host.c, amd/ops_nfs.c, amd/srvr_nfs.c, + libamu/mount_fs.c: added the am_ prefix to all + structures and functions having to do with NFSv3 to prevent + namespace collisions + + * include/am_utils.h: moved definition of am_nfs_handle to ... + + * include/am_xdr_func.h: ... here. Also define AM_FHSIZE3, + am_nfs_fh3, AM_NFSPROC3_LOOKUP, am_nfsstat3, am_fhandle3, + am_mountstat3, am_mountres3_ok, am_mountres3, am_filename3, + am_diropargs3, am_LOOKUP3args, am_LOOKUP3resok, am_LOOKUP3resfail, + am_LOOKUP3res here; remove cross-platform compile helper macros + AMU_LOOKUP3RES_*. + + * include/am_defs.h: include am_xdr_func.h before am_utils.h to + provide definitions for NFS filehandles + + * amd/amd.h: removed declaration for xdr_mountres3 + + * doc/am-utils.text: minor warning fix + + * BUGS: document the autoconf warnings when trying to compile + system header files in isolation + +2003-10-23 Ion Badulescu + + * m4/macros/struct_nfs_fh3.m4: removed, not needed + + * configure.in: check if struct mounta has the optptr field; + removed all NFSv3-related checks, we implement everything + internally now + + * conf/autofs/autofs_solaris_v2_v3.c (autofs_mount_2_free): don't + touch mnt->optptr unless HAVE_MOUNTA_OPTPTR is defined + +2003-10-22 Ion Badulescu + + * m4/macros/struct_nfs_fh3.m4: removed, not used anymore + + * libamu/xdr_func.c (xdr_am_nfs_fh3): update xdr_am_nfs_fh3 + comments + + * configure.in: don't check for xdr_nfs_fh3 and struct nfs_fh3, we + always use our own + +2003-10-22 Ion Badulescu + + * BUGS: document the limitations of bind mounts on Linux + +2003-10-21 Ion Badulescu + + * buildall: added support for -i (make install) + +2003-10-16 Rainer Orth + + * NEWS: New minor port i386-pc-solaris2.10 (Solaris 10). + * INSTALL: Mention its test status. + +2003-10-16 Erez Zadok + + * amd/ops_nfs.c (nfs_init): declare as static to match forward + definition at top of file. + + * conf/nfs_prot/nfs_prot_{hpux11, netbsd1_4,openbsd,aix5_2}.h: + added missing definitions for LOOKUP3res, diropargs3, etc. + +2003-10-15 Erez Zadok + + * libamu/xdr_func.c (xdr_LOOKUP3res, xdr_am_nfs_fh3), + libamu/mount_fs.c (compute_nfs_args), amd/ops_nfs.c + (got_nfs_fh_mount, got_nfs_fh_webnfs, prime_nfs_fhandle_cache, + webnfs_lookup), amd/amfs_host.c (fetch_fhandle): Attempt to + cleanup some inconsistencies with how we treat NFSv3 file handles. + Whenever we need to get data out of a filehandle given to us, we + assume that it uses the OS's native fhandle structure + (often struct nfs_fh3). When we store the fhandle data for our + own use, however, we store it in one of two ways. The first, is + that we use the system's default nfs_fh3 structure; the second is + that we define out own struct am_nfs_fh3 in nfs_prot.h (and go + through an elaborate autoconf song-and-dance to "discover" it as a + native fh3 handle structure). It appears that we do the latter, + instead of using the system's default fhandle structure, simply to + avoid extra malloc's and free's, because whereas nfsv2's fhandle + structure is a simple 32-byte buffer, nfsv3's fhandle structures + often just define a "char *" for the fhandle data, and the caller + must malloc/free the space inside as needed. Our code was never + written with constructor/destructor callbacks for these nfsv3 + filehandles. Moreover, we carefully wrote our own am_nfs_fh3 + structure so IT JUST SO HAPPENS to align with most (hopefully all) + of the fhandle structures for v3: first four bytes are the length + fields and the next four bytes are the fhandle data. Sigh. + Having this inconsistent use of v3 filehandles can be a real bear, + because we simply cannot avoid using the system's default fhandle + structure indirectly, through things like diropargs3 in + xdr_diropargs3(), which has inside of it a reference to the + system's default nfs_fh3 structure. ANYWAY, the current fix I've + come up with is to generalize the way we dereference field names + within the nfs_fh3 structure (whether ours or the system's) and + the same for the system's LOOKUP3res structure. I'm not pleased + with this fix; I'd rather we don't use our own am_nfs_fh3 + structure at all. + + * libamu/xdr_func.c (xdr_am_nfs_fh3): always define this + function if we have NFS3, because we often use our own, + incompatible am_nfs_fh3 structure. + + * include/am_xdr_func.h: We cannot use the native system's + xdr_nfs_fh3 because we are defining our own incompatible + am_hfs_fh3 structure for some systems. + + * include/am_xdr_func.h: Define default values for field names of + struct nfs_fh3 and LOOKUP3res. + + * doc/am-utils.texi (debug_options Parameter): minor typo fixed. + + * conf/nfs_prot/nfs_prot_freebsd3.h: FreeBSD uses different fields + names for struct nfs_fh3 and LOOKUP3res, so override the default + names here. + + * configure.in: AMU_CHECK_FS_MNTENT(nfs3) test before + AMU_STRUCT_NFS_FH3, because the latter depends on the former. + + * amd/ops_nfs.c (prime_nfs_fhandle_cache): add {} to disambiguate + and clarify if-the-else clauses. + +2003-10-13 Ion Badulescu + + * amd/get_args.c (get_version_string): change "Built by" to + "Configured by", and add a new "Built by" line using the variables + below + + * m4/update_build_version (vers): add BUILD_USER, BUILD_HOST, and + BUILD_DATE to build_version.h + + * amd/mntfs.c (locate_mntfs): fix restarted filesystems: mf_fo + must be initialized even for them, otherwise we lose opt_sublink + (and perhaps other options as well). Report from Rainer Orth. + + * amd/amfs_generic.c (amfs_bgmount): The fix for the mf_fo NULL + pointer dereferencing was a bit too aggressive and could end up + not processing the sublink option if the filesystem was already + mounted. + +2003-10-11 Ion Badulescu + + Fix restarted filesystem by disabling the amfs_inherit filesystem + and moving the restarting logic into the generic code. The old + code is still there, will be removed sometime in the near future. + + * amd/mntfs.c (locate_mntfs): disable amfs_inherit and simply + return the pointer to the restarted filesystem + (free_mntfs): check for the MFF_RESTART flag instead of the + amfs_inherit ops + + * amd/autil.c (mf_mounted): remove the MFF_RESTART flag once the + filesystem is in use + + * amd/amfs_nfsx.c (amfs_nfsx_init): only call fs_init() if the + filesystem is not being restarted + (amfs_nfsx_remount): if the filesystem is already mounted, + short-circuit the code and just continue + + * amd/amfs_generic.c (amfs_bgmount): only call fs_init() if the + filesystem is not being restarted; remove hack that was used to + work around an amfs_inherit problem + +2003-10-09 Rainer Orth + + Use WebNFS to obtain file handles for mount(2). + + * NEWS: Document WebNFS support. + + * configure.in: Check for public mount option. + * include/am_compat.h (MNTTAB_OPT_PUBLIC): Define if missing. + * doc/am-utils.texi (opts Option): Renamed webnfs to public, + update description. + + * amd/amd.h (FSF_WEBNFS): New mntfs flag. + * include/am_utils.h (RPC_XID_WEBNFS): New XID type. + + * amd/amfs_host.c (amfs_host_mount, amfs_host_umounted): Reject + WebNFS mount/umount attempts. + * amd/ops_nfs.c (got_nfs_fh_mount): Renamed from got_nfs_fh. + (got_nfs_fh_webnfs): New function. + (flush_nfs_fhandle_cache): Don't invalidate port for WebNFS servers. + (prime_nfs_fhandle_cache): Likewise. + Remove unconditional return of public file handle for WebNFS, but + get NFS file handles via mountd or WebNFS instead. + (webnfs_lookup): New function. + (nfs_umounted): Don't inform mountd if MFF_WEBNFS. + * amd/rpc_fwd.c (fwd_packet, fwd_reply): Send/receive WebNFS + packets. + * amd/srvr_nfs.c (recompute_portmap): Don't contact portmap for + WebNFS servers. + Mention host in info message. + (find_nfs_srvr): Handle public mount option. + Prefer NFSv3/tcp if the client supports it. + Allow port mount option to override default or result from portmap + lookup. + + * libamu/xdr_func.c (xdr_diropargs3, xdr_filename3, + xdr_LOOKUP3args, xdr_LOOKUP3res, xdr_LOOKUP3resfail, + xdr_LOOKUP3resok, xdr_nfs_fh3, xdr_nfsstat3): New functions. + * include/am_xdr_func.h: Declare them. + * configure.in: Check for them. + * conf/nfs_prot/nfs_prot_linux.h: Provide missing NFSv3 + definitions and types. + +2003-10-09 Rainer Orth + + Support IRIX 6 private mount option. + + * configure.in (AC_CHECK_MNTTAB_OPTS): Check for private option + name string. + (AC_CHECK_MNT2_NFS_OPTS): Check for private NFS mount option (IRIX 6). + * aux/macros/header_templates.m4 (MNTTAB_OPT_PRIVATE, + MNT2_NFS_OPT_PRIVATE): Provide templates. + * include/am_compat.h (MNTTAB_OPT_PRIVATE): Define if missing. + * doc/am-utils.texi (opts Option): Document it. + +2003-10-09 Rainer Orth + + * doc/am-utils.texi (opts Option): Fix Tru64 UNIX name in proplist + mount option. + +2003-10-09 Rainer Orth + + * libamu/mount_fs.c (compute_nfs_args) [HAVE_NFS_ARGS_T_FH_LEN]: + Don't reference removed fh3. + +2003-10-09 Rainer Orth + + * NEWS: New minor port sparc-sun-solaris2.10 (Solaris 10). + + * INSTALL: Mention test status of various ports. + Describe IRIX 6 autofs status. + +2003-10-09 Ion Badulescu + + * NEWS: updated + + * amd/amfs_generic.c (amfs_bgmount): don't use mf_fo until after + we've done all the tests and we know we have a valid and mountable + mntfs. Otherwise we could end up dereferencing null pointers. + + * amd/amd.h: fixed a copy&paste comment bug + + * amd/am_ops.c (ops_match): minor code cleanup + + * doc/am-utils.texi: fixed various typos; added warning about the + racy nature of nfsx; removed duplicated listing of debug options; + added paragraph about signals supported by hlfsd; removed the long + list of (maybe) supported platforms since it duplicates the list + in INSTALL. + +2003-10-02 Rainer Orth + + Simplify FD_SET etc. use. + + * include/am_defs.h (FD_SET, FD_ISSET, FD_CLR, FD_ZERO): Provide + if missing. + (rpc_pending_now, run_rpc): Use them. + * configure.in: Check for fds_bits field in fd_set. + * amd/nfs_start.c (run_rpc): Use it. + +2003-10-02 Rainer Orth + + Improve RPC XID handling. + + * amd/rpc_fwd.c (fwd_packet, fwd_reply): Always log xid. + Convert xid to/from host/network byte order. + +2003-10-02 Rainer Orth + + Use NFS V2/V3 file handles instead of mount results. + + * include/am_utils.h (am_nfs_fhandle): Use NFS V2/V3 file handles + only, not MOUNTPROC_MNT results. + * amd/amfs_host.c (fetch_fhandle): Use local variables to store + MOUNTPROC_MNT results. + * amd/autil.c (amfs_mount): Use new am_nfs_fhandle_t. + * amd/ops_nfs.c (struct fh_cache): New member fh_status. + (got_nfs_fh): Use local variables to store MOUNTPROC_MNT results. + Store MOUNTPROC_MNT errors in fh_status. + (prime_nfs_fhandle_cache): Get fh_error from fh_status. + * hlfsd/hlfsd.c (main): Use new am_nfs_fhandle_t. + * libamu/mount_fs.c (compute_nfs_args): Copy NFS V2/V3 file + handles straight from new am_nfs_fhandle_t. + +2003-10-02 Rainer Orth + + * amd/clock.c (CID_ALLOC): Remove unused argument. + (timeout): Likewise. + + * amd/ops_nfs.c (FHID_ALLOC): Remove unused argument. + (prime_nfs_fhandle_cache): Likewise. + (call_mountd): Use UDPMSGSIZE instead of magic constant. + + * amd/rpc_fwd.c (XID_ALLOC): Remove unused argument. + (fwd_packet): Likewise. + Handle TLOOK error from t_rcvudata(). + +2003-09-30 Ion Badulescu + + * NEWS: updated + + * libamu/mount_fs.c (mount_fs): don't try to recreate the mount + point if the mount fails with ENOENT: in the best case we would be + papering over a bug, and in the worst case we could cause a + deadlock (with autofs). If there are races, they need to be + exposed and fixed properly. + + * conf/autofs/autofs_solaris_v1.h, + conf/autofs/autofs_solaris_v2_v3.h, + conf/autofs/autofs_linux.h: (AUTOFS_NFSX_FS_FLAGS): autofs + semantics don't allow us to mount nfsx directly onto an autofs + mountpoint, so disallow it + + * amd/amfs_nfsx.c (amfs_nfsx_match): more restrictive sanity check + to avoid trying to memmove(foo, bar, (unsigned)-1) due to invalid + map entries... + (amfs_nfsx_cont): amfs_retry does most of the cleanup work for us + in the upper layer, so don't do anything else beside wakeup() on + success + (amfs_nfsx_remount): only create the mountpoints as we need them, + avoids creating them on the wrong filesystem in the case of + hierarchical mounts; fix crash-generating typo (m should really be + mf and I swear I hate single-character variable names) + + * amd/amfs_generic.c (amfs_cont): one more dlog + (amfs_bgmount): amazingly enough, even foreground mounts can be + backgrounded (in the case of nfsx), so account for this + possibility and permit retries + + * m4/macros/check_autofs_style.m4 (AMU_AUTOFS_PROT_HEADER): define + and AC_SUBST it as ${top_builddir}/amu_autofs_prot.h + + * amd/Makefile.am ($(amd_OBJECTS) $(EXTRA_amd_OBJECTS)): depend on + @AMU_AUTOFS_PROT_HEADER@ + +2003-09-29 Erez Zadok + + * minor new port mipsel-unknown-linux-rhPS2 (Linux on Sony + PlayStation 2) + + * amd/srvr_nfs.c (find_nfs_srvr): don't run code that expects + "char protocols[]" unless MNTTAB_OPT_PROTO is defined. + +2003-09-26 Rainer Orth + + Consolidate alloca support. + + * amd/amq_svc.c: Move alloca support ... + * include/am_defs.h: ... here. + * amd/conf_parse.y: Remove alloca support. + * fsinfo/fsi_gram.y: Likewise. + +2003-09-25 Rainer Orth + + Handle Solaris 10. + * m4/macros/check_nfs_prot_headers.m4 + (AMU_CHECK_NFS_PROT_HEADERS): Don't use wildcards for + sunos5.[0-3], solaris 2.[0-3], there were no micro releases. + Explicitly match sunos5*, solaris2* for Solaris 8 and beyond. + + * m4/macros/os_cflags.m4 (AMU_OS_CFLAGS): Dont use wildcards for + solaris2.[0-5], sunos5.[0-5], but explicitly handle Solaris 2.5 + micro releases to cope with Solaris 2.5.1. + Explicitly match solaris2*, sunos5*. + +2003-09-25 Rainer Orth + + * amd/amq_svc.c: Provide alloca prerequisites. + + * conf/transp/transp_tli.c (register_autofs_service): Fix typo. + +2003-09-23 Ion Badulescu + + * minor new port: x86_64-unknown-linux-rh2.9.5AS. (Red Hat + Enterprise Linux 3.0 beta running on a 64-bit AMD64 platform) + +2003-09-22 Ion Badulescu + + * conf/autofs/autofs_solaris_v1.c (autofs_mount_fs): compile fix + +2003-09-19 Ion Badulescu + + * amd/amfs_nfsl.c (amfs_nfsl_match): checking opt_fs is not always + enough, we should lstat() the sublink if it's defined. + (amfs_nfsl_ffserver): ditto + (ALL): Removed some obsolete comments. The nfsl code is now little + more than a very straight-forward switch between link and nfs. + + * amd/amfs_link.c (amfs_link_match): more up-to-date explanation + for the prepend-the-dot hack for type link; also, the sublink is + already normalized and absolute, so take advantage of that + + * amd/amfs_generic.c (amfs_lookup_one_mntfs): the sublink is + already normalized and absolute, so take advantage of that + + * amd/am_ops.c (ops_match): normalize the sublink here, early into + the matching process + + * amd/autil.c (am_mounted): be consistent and accept both + "nounmount" and "noumount" as pseudo mount options (same as + "unmount" and "umount" nearby) + + * amd/Makefile.am (build_version.h): fixed dependencies (depends + on amd_OBJECTS, not OBJECTS -- which doesn't even exist) + +2003-09-19 Erez Zadok + + * amd/amq_subr.c (amqproc_export_1_svc): force double casting to + avoid gcc-3.3 complaints on Solaris 9 about "dereferencing + type-punned pointer will break strict-aliasing rules". + +2003-09-16 Ion Badulescu + + * Released beta version 6.1b4 + +2003-09-15 Ion Badulescu + + * doc/am-utils.texi (opts Option): removed documentation for old + ignore_portmapper mount option, documented the new webnfs option + + * NEWS: webnfs support + + * amd/srvr_nfs.c (find_nfs_srvr): set MFF_WEBNFS if the "webnfs" + (former "ignore_portmapper") mount option is present + + * amd/ops_nfs.c (prime_nfs_fhandle_cache): generate a public + filehandle (all zeros) if MFF_WEBNFS is set + (nfs_umounted): don't talk to mountd if MFF_WEBNFS is set + + * amd/amd.h (MFF_WEBNFS): new flag, obvious meaning + +2003-09-13 Ion Badulescu + + * amd/srvr_nfs.c: renamed np_xid to global_xid; sanitized the + NPXID_ALLOC macro and renamed it to XID_ALLOC; renamed start_ping + to create_ping_payload; renamed nfs_pinged to + nfs_keepalive_callback; renamed nfs_timed_out to + nfs_keepalive_timeout; renamed nfs_srvr_port to get_mountd_port; + made ping_buf and ping_len arrays with one element for each + supported nfs version + + * amd/amd.h: renamed nfs_srvr_port() to get_mountd_port() + + * amd/amfs_host.c (amfs_host_init): ditto + + * amd/ops_nfs.c (call_mountd): ditto + +2003-09-03 Rainer Orth + + * BUGS: Mention fix for broken Solaris 8 + patches. + +2003-08-31 Erez Zadok + + * amd/autil.c (strealloc): don't call malloc_verify() unless it + exists. + + * configure.in: move "OPTION PROCESSING" section (opt_debug etc.) + after we figure out PROG_CC and other compiler features, because + some of the option processing macros need a compiler to function. + + * libamu/xutil.c: don't define variables that won't be used unless + mallinfo() and malloc_verify() exist. + (real_plog): don't call checkup_mem unless + mallocinfo() and malloc_verify() exist. + (checkup_mem): don't define this function unless mallocinfo() and + malloc_verify() exist. + + * m4/macros/opt_debug.m4: check for functions malloc_verify and + mallinfo in general libraries and then in libmapmalloc and + libmalloc. These seem to have disappeared in FreeBSD 5.x. + + * libamu/xutil.c (dxfree): print pointer using %p + +2003-08-29 Erez Zadok + + * configure.in: start 6.1b4-pre officially (belated) + + * minor new port: i686-apple-darwin6.6 + +2003-08-27 Ion Badulescu + + * conf/autofs/autofs_solaris_v1.c: convert relative targets to + absolute paths when using lofs mounts + + * conf/autofs/autofs_solaris_v2_v3.c: ditto + + * conf/autofs/autofs_linux.c: ditto + +2003-08-27 Ion Badulescu + + * README.autofs: added a paragraph about the resource consumption + of auto maps over autofs + + * amd/amfs_generic.c (amfs_lookup_one_mntfs): moved the setting of + the MFF_IS_AUTOFS flag from init_mntfs() to + amfs_lookup_one_mntfs(), where it belongs + + * amd/mntfs.c (init_mntfs): ditto + +2003-08-27 Ion Badulescu + + * amd/ops_nfs.c (got_nfs_fh): make the error EACCES if we are + denied a filehandle by the server (used to be EIO) + +2003-08-27 Erez Zadok + + * conf/nfs_prot/nfs_prot_bsdi3.h: support na_uid and na_gid. + +2003-08-27 Ion Badulescu + + * conf/autofs/autofs_linux.c (autofs_mount_succeeded): force + daemon-initiated timeouts on autofs filesystems, since apparently + they appear as "always busy" to the kernel-based expiration routine + +2003-08-26 Ion Badulescu + + * NEWS: updated + + * conf/autofs/autofs_linux.h (AUTOFS_LINK_FS_FLAGS): remove + FS_ON_AUTOFS + (AUTOFS_LINKX_FS_FLAGS): ditto + + * conf/autofs/autofs_solaris_v1.h (AUTOFS_LINK_FS_FLAGS): remove + FS_ON_AUTOFS + (AUTOFS_LINKX_FS_FLAGS): ditto + + * conf/autofs/autofs_solaris_v2_v3.h (AUTOFS_LINK_FS_FLAGS): remove + FS_ON_AUTOFS + (AUTOFS_LINKX_FS_FLAGS): ditto + + * amd/amfs_generic.c (amfs_lookup_one_mntfs): don't modify the + original opt_fs, instead store the new mount point for autofs in a + temporary variable and pass it around. Fixes a problem with the + link side of nfsl. + +2003-08-25 Ion Badulescu + + * NEWS: updated + + * amd/ops_nfs.c (prime_nfs_fhandle_cache): use get_mntfs_wchan to + initialize the fh_wchan member of the cache entry + (prime_nfs_fhandle_cache): use get_mntfs_wchan for the wchan_t + argument of call_mountd() + + * amd/map.c (free_map_if_success): use get_mntfs_wchan for the + wchan_t argument of wakeup() + + * amd/amfs_nfsx.c (amfs_nfsx_cont): use get_mntfs_wchan for the + wchan_t argument of wakeup_task() and wakeup() + + * amd/amfs_host.c (amfs_host_init): use get_mntfs_wchan for the + wchan_t argument of nfs_srvr_port() + + * amd/amfs_generic.c (ALL): use get_mntfs_wchan for the wchan_t + argument of sched_task() and wakeup() + (amfs_retry): minor cleanup + (amfs_bgmount): call nfs_quick_reply on failure + + * amd/sched.c (get_mntfs_wchan): new function which calls the + member function get_wchan if defined, otherwise returns the mntfs + pointer itself + + * amd/amfs_inherit.c (amfs_inherit_get_wchan): new function, + calls get_mntfs_wchan() on the inherited filesystem + + * amd/amfs_*.c, amd/ops_*.c: initialize the new get_wchan member + of the ops to 0 + + * amd/amd.h: new function type vget_wchan + (struct mntfs): new member get_wchan which returns the waiting + channel associated with the mntfs (normally itself) + +2003-08-22 Ion Badulescu + + * conf/mount/mount_linux.c (parse_opts): minor cleanup + + * conf/autofs/autofs_linux.c (autofs_handle_fdset): added missing + break in case autofs_ptype_expire_multi + +2003-08-22 Ion Badulescu + + * conf/autofs/autofs_solaris_v1.h: undefine autofs support if + autofs_args_t cannot be determined (hopefully fixes a reported + IRIX 6.5.4 problem). + + * conf/autofs/autofs_solaris_v1.c: wrap entire file in #ifdef + HAVE_FS_AUTOFS / #endif (see above) + + * conf/autofs/autofs_linux.h: undefine autofs support if the + necessary header files are not found (fixes a reported RedHat 6.2 + Sparc problem). + + * conf/autofs/autofs_linux.c: wrap entire file in #ifdef + HAVE_FS_AUTOFS / #endif (see above) + + * libamu/mount_fs.c (compute_nfs_args): only use MNT2_NFS_OPT_SOFT + if autoconf detected it (fixes a reported RedHat 6.2 Alpha problem). + + * amd/map.c (unmount_mp, unmount_exported): move the code that + changes the fattr from NFLNK to NFDIR from unmount_mp to + unmount_exported, it was causing troubles (ESTALE) after failed + unmounts. This is still very very unclean, but it's the same as the + old 6.0 code. + +2003-08-22 Nick Williams + + * amd/info_ldap.c (amu_ldap_init): don't try to pass a null + pointer as a string to plog, Solaris (and other OS's) don't like + it and will dump core. + +2003-08-13 Ion Badulescu + + * amd/amd.h: introduced two new types, wchan_t and opaque_t, as + aliases of voidp. This makes reading the code easier on the eyes. :) + + * ALL: replace various instances of voidp with wchan_t and + opaque_t, as appropriate + +2003-08-13 Ion Badulescu + + * NEWS, configure.in: bumped version up to 6.1b4-pre + +2003-08-13 Ion Badulescu + + * Released beta version 6.1b3 + +2003-08-13 Ion Badulescu + + * conf/autofs/autofs_linux.c (autofs_mount_fs): HACK: always use + symlinks for host mounts; assorted fixes for the symlink mode + +2003-08-05 Ion Badulescu + + * conf/umount/umount_default.c (umount_fs): enable space hack + handling for autofs v1 + + * amd/map.c (get_first_exported_ap, get_next_exported_ap): new + functions that facilitate iterating through the list of + mountpoints + + * amd/amfs_union.c (amfs_union_mounted): use get_first_exported_ap + and get_next_exported_ap + + * conf/autofs/autofs_solaris_v2_v3.c (autofs_unmount_2_req): ditto + +2003-08-04 Erez Zadok + + * configure.in: check if system stores mount tables in files + (usually in /etc), and configure couldn't find a definition for + either struct mntent or struct mnttab. If so, abort configure + because this could be a new/misconfigured system, or a bug in + am-utils. + +2003-08-04 Ion Badulescu + + * conf/autofs/autofs_solaris_v2_v3.c (autofs_umount_fs): fix + compile warning + +2003-08-04 Ion Badulescu + + * conf/autofs/autofs_linux.c (autofs_mount_fs): don't call + ops->mount_fs() for an already mounted filesystem + (autofs_umount_fs): only call ops->umount_fs() if we're holding + the last reference to the filesystem + + * conf/autofs/autofs_solaris_v1.c (autofs_mount_fs): ditto + (autofs_umount_fs): ditto + + * conf/autofs/autofs_solaris_v2_v3.c (autofs_mount_fs): ditto + (autofs_umount_fs): ditto + + * amd/amfs_generic.c (amfs_lookup_mntfs): remove the shortcut for + already-mounted filesystems + (amfs_cont): only release the autofs_fh if the filesystem is not + mounted; add another comment about the NFS_SCALEDOWN hack + (amfs_bgmount): if the mntfs is already mounted, skip just the + filesystem initialization, but do call mount_node() + + * amd/map.c (mount_node): always call autofs_mount_fs(), but only + call ops->mount_fs() if the mntfs is not yet mounted + (unmount_node): always call autofs_umount_fs(), but only call + ops->umount_fs() if the refcount on the mntfs equals 1. + +2003-08-02 Erez Zadok + + * conf/nfs_prot/nfs_prot_openbsd.h: include + here with the proper workarounds for openbsd3.3 (define MAXQUOTAS, + define dummy struct netexport, and include + wrapped in _KERNEL). + + * conf/nfs_prot/nfs_prot_freebsd3.h: include + here with the proper workarounds for freebsd5.1 (define dummy + struct ufs_extattr_per_mount). + + * conf/nfs_prot/nfs_prot_bsdi2.h: include + here with the proper workarounds for bsdi2 (define MAXQUOTAS and + dummy struct netexport). + + * include/mount_headers1.h: do not include + here, b/c every *BSD system has some sort of problem in including + this header file, which includes ugly workarounds. Inclusion of + this header was already moved out of am_defs.h (used to compile + amd), but we forgot to move it out of mount_headers1.h (used to + configure). The specific inclusion of ufsmount.h is now in the OS + specific nfs_prot.h file. + + * configure.in: if configure could not find any definition for + "struct nfs_args", abort configure with an explanatory message. + There's no point in continuing, as this could be a system bug, + buggy am-utils, or a new system to which am-utils wasn't ported to + yet. + + * minor new port: i386-pc-solaris2.9 + +2003-08-01 Ion Badulescu + + * doc/am-utils.texi (NFS-Link Filesystem): make the documentation + match the code (as well as basic logic operations: the negation of + 'a or b' is 'not a and not b', not 'not a or not b') + +2003-08-01 Erez Zadok + + * minor new port: i386-unknown-openbsd3.3. + + * m4/macros/check_libwrap_severity.m4: new macro to check if + libwrap includes the integer variables deny_severity and + allow_severity, since some libwrap implementations do and others + don't. The test tries to compile and run a simple empty main() + program, then the same program while defining these two variables: + comparing the results of the two tests, we can tell whether we + should define NEED_LIBWRAP_SEVERITY_VARIABLES. + + * Makefile.am (EXTRA_DIST_M4): distribute new macro + check_libwrap_severity.m4. + + * m4/macros/header_templates.m4: template for HAVE_LIBWRAP (which + we must define explicitly since we've overridden the + action-if-found in AC_CHECK_LIB(wrap). Also template for + NEED_LIBWRAP_SEVERITY_VARIABLES. + + * amd/amq_svc.c: if libwrap does not include the severity + variables, then define and initialize them here. + + * amd/Makefile.am (LIBS): explicitly include @WRAPLIB@ only for + Amd binary. Other am-utils binaries don't need -lwrap. + + * configure.in: if libwrap is found, only define it in @WRAPLIB@, + so we don't automatically link every am-utils binary with -lwrap. + Run test for existence of severity variables in libwrap. + +2003-07-31 Erez Zadok + + * conf/nfs_prot/nfs_prot_openbsd.h: define struct fattr fields uid + and gid. + + * configure.in: move check for AC_CHECK_LIB(libwrap) as far down + as possible because on modern tcpwrapper systems such as openbsd, + the caller must provide two symbols: deny_severity and + allow_severity, which determine the logging level of rejected and + requested requests, respectively. If this check happens too + early, then $LIBS includes -lwrap, which causes many subsequent + tests that need to run a compiled program to fail with missing + symbols. + + * m4/macros/header_templates.m4: fix typo in template for + readdirplus. + + * configure.in: check for (OpenBSD 3.3) + + * minor new port: i386-unknown-netbsdelf1.6.1. + + * configure.in: save state before system-specific tests are run. + + * m4/macros/check_gnu_getopt.m4: do NOT abort ./configure just + because the compiled test program failed to run. + +2003-08-01 Ion Badulescu + + * NEWS, README.autofs: updated + + * libamu/mount_fs.c (mount_fs): added support for the space hack + + * doc/am-utils.texi: mention than UFS/XFS/EFS/CacheFS filesystems + are not expired by default; correct and expand the section + describing the program filesystem + + * conf/autofs/autofs_solaris_v2_v3.h (AUTOFS_*_FS_FLAGS): add + FS_ON_AUTOFS for supported filesystems + + * conf/autofs/autofs_solaris_v2_v3.c (autofs_mount_fs): call + mf->mount_fs() + (autofs_umount_fs): call mf->umount_fs() + + * conf/autofs/autofs_solaris_v1.h (autofs_strdup_space_hack): add + prototype for malloc() + (AUTOFS_*_FS_FLAGS): lose the FS_MKMNT flags, add FS_ON_AUTOFS for + supported filesystems + + * conf/autofs/autofs_solaris_v1.c (autofs_mount_fs): add support + for the space hack; call mf->mount_fs() + (autofs_umount_fs): add support for the space hack; call + mf->umount_fs() + (autofs_mount_succeeded): add support for the space hack + + * conf/autofs/autofs_linux.h: lose the FS_MKMNT flags, add + FS_ON_AUTOFS for supported filesystems + + * conf/autofs/autofs_linux.c (AUTOFS_MAX_VERSION): define to + AUTOFS_MAX_PROTO_VERSION instead of hardcoding to 4 + (autofs_mounted): host mounts are now supported on all autofs + versions, remove the hack to turn it off on v3 + (autofs_mount_fs): call mf->mount_fs(), create/remove mountpoints + as needed + (autofs_umount_fs): call mf->umount_fs(), remove mountpoints on + success + (ALL): use '#if AUTOFS_MAX_VERSION >= 4' instead of + '#ifdef autofs_ptype_expire_multi' + + * amd/map.c (mount_node): autofs_mount_fs() now calls + mf->mount_fs() internally + (unmount_node): autofs_umount_fs() now calls mf->umount_fs() + internally + + * amd/autil.c (am_mounted): minor cleanup + + * amd/amfs_program.c (amfs_program_ops): added FS_MKMNT to + nfs_fs_flags + + * amd/amfs_generic.c (amfs_lookup_one_mntfs): use the FS_ON_AUTOFS + flag instead of hardcoding filesystem types + (amfs_bgmount): better mount_type logging + + * amd/amd.h (FS_ON_AUTOFS): new flag which tells the code that + this filesystem can be mounted directly onto an autofs mountpoint + +2003-07-31 Ion Badulescu + + * amd/amfs_nfsl.c (amfs_nfsl_umount): fix copy&paste error (was + calling amfs_link_ops.umount_fs() for NFS filesystems) + (amfs_nfsl_umounted): remove rmdirs() hack, it is now handled + properly elsewhere + (amfs_nfsl_ffserver): remove FS_MKMNT from mf_fsflags if we're + using link (not NFS) + +2003-07-31 Rainer Orth + + * README.autofs: Correct IRIX spelling. + AutoFS support exists only on IRIX 6. + Update IRIX 6 status. + + Allow AutoFS V1 support to compile on IRIX 6. + * conf/autofs/autofs_solaris_v1.c (autofs_mount_1_req): Add + SVCXPRT * arg. + Remove superfluous \n from dlog messages. + (autofs_unmount_1_req): Likewise. + Switch to get_exported_ap. + (autofs_program_1): Invoke handlers with additional transp arg. + * conf/autofs/autofs_solaris_v1.h: Use autofs_args_t to define + autofs_fh_t, struct auto_args doesn't exist on IRIX 6. + + * conf/mount/mount_irix6.c (mount_irix) [HAVE_FS_AUTOFS]: Support + AutoFS mounts. + [HAVE_FS_LOFS]: Likewise for lofs mounts. + + * conf/nfs_prot/nfs_prot_irix6.h (AUTOFS_CONFTYPE): Define. + Don't disable AutoFS support any more. + + * conf/transp/transp_sockets.c [HAVE_FS_AUTOFS && AUTOFS_PROG] + (register_autofs_service): Define autofs_xprt. + + * m4/macros/check_autofs_style.m4 (AMU_CHECK_AUTOFS_STYLE): Update + Solaris 8+ comment to mention AutoFS V4. + (irix6*): Enable AutoFS V1 support on IRIX 6. + +2003-07-30 Erez Zadok + + * NEWS, doc/am-utils.texi, scripts/amd.conf.5: revised explanation + of autofs_use_lofs. + +2003-07-30 Rainer Orth + + * amd/ops_efs.c (efs_mount): Replace on_autofs arg with + MFF_ON_AUTOFS flag. + (efs_umount): Likewise. + +2003-07-30 Erez Zadok + + * conf/umount/umount_bsd44.c (umount_fs): convert to new way of + unmounting which takes autofs into account. + +2003-07-30 Ion Badulescu + + * ALL: renamed MFF_AUTOFS to MFF_IS_AUTOFS; removed mf_real_mount + hack; pass a new on_autofs argument to mount/umount function, + based on the MFF_ON_AUTOFS mntfs flag + + * NEWS, README.autofs: updated + + * scripts/amd.conf.5: document new option autofs_use_lofs + + * scripts/amd.conf-sample (autofs_use_lofs): document new option + + * m4/macros/check_autofs_style.m4 (am_utils_link_files): symlink + the autofs header as amu_autofs_prot.h instead of slurping it into + aux_conf.h + + * libamu/mount_fs.c (mount_fs): removed old stub, renamed + mount_fs2 to mount_fs, added new argument on_autofs + + * doc/am-utils.texi (Direct Automount Filesystem): document + problems with nfs direct mounts on modern kernels, document good + autofs support for direct mounts on Solaris + (autofs_use_lofs Parameter): document this new option + (browsable_dirs Parameter): note that mount storms are avoided + when using autofs + + * conf/umount/umount_bsd44.c (umount_fs): removed old stub, + renamed umount_fs2 to umount_fs + + * conf/umount/umount_osf.c (umount_fs): removed old stub, + renamed umount_fs2 to umount_fs, added new argument on_autofs + + * conf/umount/umount_default.c (umount_fs): ditto as above; return + an error on ENOENT instead of faking success + + * conf/autofs/autofs_solaris_v2_v3.c (autofs_lookup_2_req): much + simplified, now only consults the map for existance of the key and + returns success if key is found + (autofs_mount_2_req): request symlinks if CFM_AUTOFS_USE_LOFS is + not on; + (autofs_mount_2_free): implemented + (autofs_unmount_2_req): use get_exported_ap() instead of + referencing export_ap directly + (autofs_mount_succeeded): remove code for replying to lookup + requests, now only mount requests can end up here + (autofs_mount_failed): ditto + + * conf/autofs/autofs_solaris_v1.h (AUTOFS_HOST_FS_FLAGS): removed + FS_AUTOFS + (AUTOFS_DIRECT_FS_FLAGS): added FS_DIRECTORY + + * conf/autofs/autofs_solaris_v2_v3.h (AUTOFS_HOST_FS_FLAGS): removed + FS_AUTOFS + (AUTOFS_DIRECT_FS_FLAGS): added FS_DIRECTORY + (AUTOFS_LINK_FS_FLAGS): added FS_MBACKGROUND + + * conf/autofs/autofs_linux.c (autofs_bind_umount): new function, + factored out of autofs_umount_fs() + (autofs_mount_fs): renamed from autofs_link_mount() and expanded + to deal with filesystems mounted indirectly (via lofs/bind + mounts) on autofs and to observe the new CFM_AUTOFS_USE_LOFS flag + (autofs_umount_fs): ditto, from autofs_link_umount() + + * conf/autofs/autofs_solaris_v1.c (autofs_mount_fs): ditto + * (autofs_umount_fs): ditto + + * conf/autofs/autofs_solaris_v2_v3.c (autofs_mount_fs): ditto + * (autofs_umount_fs): ditto + + * amd/opts.c: made fs_static static + + * amd/ops_nfs.c: made nfs_init, nfs_match, nfs_mount, nfs_umount + and nfs_umounted static + (mount_nfs_fh): removed unnecessary arguments + + * amd/ops_cachefs.c (cachefs_ops): use amfs_generic_find_srvr for + the ffserver method, because using NULL causes problems + + * amd/ops_cdfs.c (cdfs_ops): ditto + + * amd/ops_efs.c (efs_ops): ditto + + * amd/ops_lofs.c (lofs_ops): ditto + + * amd/ops_pcfs.c (pcfs_ops): ditto + + * amd/ops_ufs.c (ufs_ops): ditto + + * amd/ops_xfs.c (xfs_ops): ditto + + * amd/nfs_subr.c (fh_to_mp3, fh_to_mp, mp_to_fh): moved here from + map.c + + * amd/nfs_start.c: use get_exported_ap() instead of referencing + exported_ap directly + + * amd/mntfs.c (locate_mntfs): new function, factored out of + find_mntfs + (locate_mntfs): special-case FS_DIRECT filesystems: for direct + mounts we will have two filesystems mounted on the same m/p + (realloc_mntfs): removed the old EZK hack for failovers + + * amd/map.c (get_exported_ap): new function that returns an + exported_ap member by its index + (root_node,exported_ap,exported_ap_size,first_free_map,last_used_map): + made static + (fh_to_mp3, fh_to_mp, mp_to_fh): moved to nfs_subr.c + (get_root_ap): removed unused second argument + (unmount_mp): moved the mk_fattr(NFDIR) here from umount_exported + to catch more cases + (mount_node): call autofs_mount_fs after ops->mount_fs for autofs + nodes + (unmount_node): call autofs_umount_fs before ops->umount_fs for + autofs nodes + + * amd/conf.c: new global option "autofs_use_lofs", takes yes/no + values + + * amd/autil.c (amfs_mount): take an extra argument (mf) + (amfs_mount): call autofs_compute_mount_flags() for mounts + directly on autofs m/p + (am_unmounted): document and avoid the race between am_umounted() + at shutdown time and amfs_cont() + + * amd/amfs_union.c (amfs_union_mounted): use get_exported_ap() + instead of referencing internal map variables directly + + * amd/amq_subr.c (amqproc_export_1_svc): ditto + + * amd/amfs_toplvl.c (amfs_toplvl_ops): removed FS_AUTOFS from + nfs_fs_flags + (amfs_toplvl_mount): pass extra argument (mf) to amfs_mount() + (amfs_toplvl_umount): refuse to attempt the unmount if the + mountpoint is not a directory + + * amd/amfs_nfsx.c (amfs_nfsx_init): propagate the MFF_ON_AUTOFS + flag into the nfs f/s at the bottom of the stack + + * amd/amfs_nfsl.c: call nfs and link member functions through + their respective am_ops structures, not directly + + * amd/amfs_linkx.c (amfs_linkx_umount): new static stub + + * amd/amfs_link.c: made amfs_link_mount() and amfs_link_umount() + static functions + (amfs_link_mount): removed call to autofs_link_mount() + (amfs_link_umount): removed call to autofs_link_umount() + + * amd/amfs_host.c (amfs_host_ops): removed FS_AUTOFS from + nfs_fs_flags + (do_mount): removed superfluous function arguments + + * amd/amfs_direct.c (amfs_direct_ops): removed FS_AUTOFS from + nfs_fs_flags + + * amd/amfs_auto.c (amfs_auto_ops): removed FS_AUTOFS from + nfs_fs_flags + (amfs_auto_mount): pass extra argument (mf) to amfs_mount + + * amd/amd.h (CFM_AUTOFS_USE_LOFS): new flag, tells amd whether to + use lofs-mounts or symlinks when mounting on autofs + (CFM_DEFAULT_FLAGS): added CFM_AUTOFS_USE_LOFS + (VLOOK_LOOKUP): new flag, will merely check if a key exists + (MFF_IS_AUTOFS): renamed from MFF_AUTOFS + (MFF_ON_AUTOFS): new flag, tells amd if a f/s is mounted directly + on an autofs m/p, or indirectly via a lofs mount/symlink + (fh_to_mp2): macro expanded throughout the code and removed + (mntfs): removed mf_real_mount hack + (autofs_mount_fs): renamed from autofs_link_mount + (autofs_umount_fs): renamed from autofs_link_umount + (mount_lofs): exposed + various other cleanups, functions/variables made static and removed + + * aux_conf.h.in: removed @am_utils_autofs_style@, it is now + included directly as amu_autofs_prot.h + +2003-07-24 Erez Zadok + + * doc/am-utils.texi, scripts/amd.conf.5: document that + use_tcpwrappers is "yes" by default. + + * amd/amd.c (init_global_options): set default global options. + + * amd/amd.h (CFM_DEFAULT_FLAGS): define default options which + are always on (plock and use_tcpwrappers). + + * scripts/amd.conf-sample: reorganize values per option so default + one is listed first. + +2003-07-23 Erez Zadok + + * tasks: trim old stuff. Discuss new parser. + + * amd/conf.c (set_conf_kv): initialize the very first map in conf + file from global defaults. Bug fix which was introduced after + conf.c code restructuring. + +2003-07-18 Erez Zadok + + * m4/macros/header_templates.m4: template for + HAVE_EXTERN_HOSTS_CTL. + + * include/am_defs.h: define extern for hosts_ctl() if needed. + + * configure.in (AMU_CHECK_EXTERNS): check for extern definition + for libwrap's hosts_ctl() (FreeBSD 5.0 doesn't have it). + + * m4/macros/check_extern.m4: include tcpd.h if it and libwrap exist. + +2003-07-18 Erez Zadok + + * hlfsd/hlfsd.h: redundant extern for mboxfile removed. + + * amd/amq_svc.c (amq_program_1): only check for tcpwrappers if + amd.conf global option use_tcpwrappers=yes. + + * scripts/amd.conf.5, scripts/amd.conf-sample (use_tcpwrappers), + doc/am-utils.texi (use_tcpwrappers Parameter): document new + amd.conf global option. + + * amd/conf.c (gopt_use_tcpwrappers): define a new amd.conf global + option called use_tcpwrappers ("no" by default). + + * amd/amq_svc.c (amqsvc_is_client_allowed): include tcpd/libwrap + code only if both libwrap and tcpd.h exist. + (amq_program_1): log warning when an Amq service client is denied, + and a debug message when a client is allowed. + + * amd/amd.h (CFM_USE_TCPWRAPPERS): define [global] amd.conf flag. + (AMD_SERVICE_NAME): define AMD_SERVICE_NAME for tcpd/libwrap. + + * include/am_defs.h: include tcpd.h if available and libwrap + available. + + * configure.in: check for tcpd.h. + +2003-07-18 Erez Zadok + + * scripts/expn.1, amd/amd.8 amq/amq.8, fixmount/fixmount.8, + hlfsd/hlfsd.8, scripts/expn.1: remove ".PD 0" nroff command + because it removes useful spaces in between paragraphs. Based on + smaller patch from Philippe Troin . + +2003-07-17 Philippe Troin + + * amq/amq.8: Document the libwrap/amd behavior. + + * amd/amq_svc.c (libwrap_check_client): New function to validate + an amq connection with libwrap. + (amq_program_1): Call libwrap_check_client() and close the + connection if libwrap does not allow it. + + * configure.in: Check for the tcp wrappers library. + +2003-07-17 Erez Zadok + + * amd/amq_subr.c (amqproc_mnttree_1_svc, amqproc_stats_1_svc, + amqproc_getmntfs_1_svc, xdr_amq_mount_tree), hlfsd/hlfsd.c + (hlfsd_init): cast pointers to void* before casting them to + another type, to avoid gcc-3.3 -Wall warnings. + + * fsinfo/*.[hc]: rename fsinfo function log() to fsi_log(), to + avoid conflict with builtin function in gcc-3.3. + +2003-07-17 Rainer Orth + + * scripts/amd.conf-sample: Remove obsolete comment. + +2003-07-16 Erez Zadok + + * amd/info_file.c (read_line): check for errors from fgets(). + Although rare, they can occur upon disk or network failures. + Patch from Nick Williams . + +2003-07-16 Rainer Orth + + * BUGS (Solaris 8): Update patch revisions, mention old autofs + patches, fix filenames and rpcgen command. + +2003-07-15 Erez Zadok + + * doc/am-utils.texi (map_defaults Parameter): document new + map_defaults option. + + * scripts/amd.conf.5: document new map_defaults option. + + * scripts/amd.conf-sample (map_type): show examples of new + map_defaults option. + + * amd/mapc.c (mapc_create): initialize mnt_map->cfm field to NULL. + + * amd/get_args.c (get_args): call process_all_regular_maps(). + + * amd/conf.c: keep head and tail of cfm list. + (init_cf_map): reworked reset_cf_map. This one doesn't reset a + globaly reused cfm, but rather just inherits [global] options. + (set_conf_kv): just store global/map options without actually + creating any mnt_map's. Essentially, we now parse the whole + amd.conf file, and then try to process the maps one at a time. + (process_one_regular_map): new function to process one map, just + renamed from process_regular_map. + (process_all_regular_maps): new exported function to process all + maps. No need for hacky process_last_map(). + (find_cf_map): new exported function to return a cf_map_t given a + map's mount point (e.g., /home or /net). + + * amd/amfs_generic.c (amfs_parse_defaults): find if amd.conf + specificed a map_defaults for a given map. If so, use that + instead of the /defaults that came from the map itself. Also + restructure code a bit so it's not one huge long "if" statement. + + HACK ALERT: there's no easy way to find out what the map mount + point is at this point, so I am forced to initialize the + mnt_map->cfm field here for the first time, upon the very first + search for a /defaults entry in this map. This initialization is + much better done in mapc_create(), but it's impossible to do that + there with the current code structure. + + * amd/amd.h: struct cf_map becomes linked list. struct mnt_map + includes pointer to cf_map_t, amd.conf defaults and options for a + given map. extern cleanups. + +2003-07-15 Erez Zadok + + * amd/info_hesiod.c (hesiod_search): It's not possible to have a + key such as ".access" in a hesiod map as that would imply a null + node in the DNS tree. So a lookup for such a key must clearly + fail. With the current info_hesiod.c it does (after calling + hes{,iod}_resolve) but returns an error that confuses some + programs - eg. apache. This patch shortcuts the process and just + returns ENOENT for any key starting with ".". Patch submitted by + by Mark Davies . + + * include/am_utils.h (CALLOC): redefine macro to use xzalloc, not + fsinfo's own xcalloc. + + * fsinfo/fsi_util.c (xcalloc): remove redundant function. + +2003-07-14 Erez Zadok + + * include/am_compat.h (MNTTAB_OPT_XLATECOOKIE): The NetBSD + xlatecookie NFS option doesn't work as MNTTAB_OPT_XLATECOOKIE is + never defined. Define it as needed. Patch from Mark Davies + . + +2003-07-14 Ion Badulescu + + * BUGS (Note): document the Solaris 8 bug (the upgrade to autofs + v4 without updating all the header files) + +2003-07-13 Ion Badulescu + + * NEWS, tasks: updated + + * amd/amfs_generic.c (free_continuation): free _all_ mntfs's in + the am_mfarray, unconditionally + (amfs_bgmount): call free_mntfs when we're done with a mntfs, call + dup_mntfs when starting processing of a new one; make sure we + always go through 'goto failed' for a failed mntfs; use the error + code returned by autofs_get_fh() + + * conf/autofs/autofs_linux.c (autofs_get_fh): return proper error + codes in case of problems + +2003-07-13 Erez Zadok + + * BUGS: Document buggy behavior of Solaris /usr/ccs/bin/lex. In + short, use flex. + +2003-07-13 Erez Zadok + + * fsinfo/fsi_lex.l, amd/conf_tok.l: allocate more output slots so + lex scanners don't run out of mem. + +2003-07-13 Ion Badulescu + + * amd/amfs_generic.c (amfs_lookup_mntfs): ditto as below for the + special provision + + * amd/mntfs.c (find_mntfs): compare the filesystem type + (i.e. mf_ops) in addition to mf_info; the special provision + mentioned below is really for any filesystem already mounted on + our mount point, not just for inherited filesystems + +2003-07-13 Erez Zadok + + * doc/Makefile.am (install-html): build per-chapter HTML manual, + as well as manual in one big HTML file. + + * doc/am-utils.texi: Minor corrections. Ack Ion's autofs work. + Ack maintainers. New section on How to get additionl info, + including the Amd book. Correct stale URLs and Emails. + + * amd/amd.8, amq/amq.8, amq/pawd.1, fixmount/fixmount.8, + fsinfo/fsinfo.8, hlfsd/hlfsd.8, mk-amd-map/mk-amd-map.8, + scripts/amd.conf.5, scripts/automount2amd.8, + wire-test/wire-test.8: include references to info pages, proper + authors, am-utils Web page, and amd book. + +2003-07-13 Ion Badulescu + + * amd/mntfs.c (find_mntfs): re-add the check for mf_info, but with + a special provision for inherited filesystems. This unbreaks the + handling of parallel mounts + + * amd/amfs_generic.c (amfs_lookup_mntfs): for restarted + filesystems, there can be no alternative mntfs to try to mount + +2003-07-13 Erez Zadok + + * amd/amd.8: reference am-utils info page in amd man page, as per + Thomas Klausner . + + * fsinfo/fsinfo.h, fsinfo/fsinfo.c (fsi_get_args): don't use + yywrap() if it doesn't exist. + + * amd/conf_parse.y, amd/conf_tok.l, fsinfo/fsi_gram.y, + fsinfo/fsi_lex.l: fixes to support old flex 2.5.4, as well as the + newer flex 2.5.31 (beta development). These include resolving + conflicts with yylineno, unput() vs. nounput(), etc. + +2003-07-13 Ion Badulescu + + * amd/amfs_generic.c (amfs_cont): check for (am_error > 0) before + calling assign_error_mntfs() + (amfs_generic_mount_child): ditto + + * amd/autil.c (assign_error_mntfs): move the check for + (am_error > 0) up into the caller, it's less confusing that way + + * tasks: some updates + + * conf/transp/transp_tli.c (check_pmap_up): new function which + detects if the remote portmapper is functional + (amu_clnt_create_best_version): removed + (get_nfs_version): use a much simplified version of the old + amu_clnt_create_best_version(), based on clnt_create_vers() and + its _timed() counterpart + + * conf/transp/transp_sockets.c (check_pmap_up): new function which + detects if the remote portmapper is functional + (pmap_ping): deleted + (get_nfs_version): removed calls to pmap_ping, already done by + caller + + * amd/srvr_nfs.c: call check_pmap_up() before continuing with + get_nfs_version() + + * amd/amfs_generic.c: updated a couple of log messages + + * configure.in: detect clnt_create_vers and clnt_create_vers_timed; + changed LIBTOOL versioning to 3:0:0 + +2003-07-12 Ion Badulescu + + * conf/autofs/autofs_linux.h (AUTOFS_HOST_FS_FLAGS): removed + FS_AUTOFS because the host mount cannot be a top level mount + (AUTOFS_DIRECT_FS_FLAGS): removed FS_AUTOFS because Linux autofs + doesn't support direct mounts + +2003-07-12 Erez Zadok + + * amd/conf_parse.y, amd/conf_tok.l: pretty comments on # cpp + macros. + +2003-07-10 Ion Badulescu + + * include/am_utils.h (dlog): improved version for gcc, using + vararg macros + + * amd/rpc_fwd.c (fwd_packet): unused variable when compiling + without debugging + +2003-07-10 Erez Zadok + + * include/am_utils.h (dlog): change the #define of non-debugging + dlog to "nothing" so that all that'll be left behind is a list of + args in parenthesis (arg,arg,...). GCC and other native C + compilers seem OK with it, even if it doesn't optimize away the + whole debugging line. + + * ltmain.sh: was from libtool 1.4.2. updated to libtool 1.4.3, + the latest on RH9 systems (but is not the latest libtool + available). Stay with stable version in preparation for 6.1 + release. + + * config.{guess,sub}, doc/texinfo.tex: update to latest off of + ftp.gnu.org. + +2003-07-09 Erez Zadok + + * amd/amfs_inherit.c (amfs_inherit_inherit): don't use // C++ + style comments: breaks non-C++ compilers (like AIX xlC 6) + +2003-07-02 Ion Badulescu + + * doc/am-utils.texi (opts Option): document ignore_portmapper option + + * conf/transp/transp_sockets.c (get_nfs_version): better + protocol/version cycling while probing remote server; better log + messages + + * amd/srvr_nfs.c (start_ping): improved log message + (find_nfs_srvr): always use requested nfs_version/nfs_proto; make + sure we have a valid NFS port; start the server as "valid, down" if + the remote portmapper tells us the NFS service is not running; + implement the "ignore_portmapper" pseudo-mount option + + * amd/rpc_fwd.c (fwd_packet): better debug messages + + * amd/ops_nfs.c (got_nfs_fh): log a messages if a root fh is + denied; call wakeup even if mountd call fails + + * amd/amq_subr.c (xdr_amq_mount_info_qelem): use FSRV_ISUP/ISDOWN + instead of checking the flags directly + * amd/srvr_amfs_auto.c (free_srvr): ditto + + * amd/amfs_generic.c (amfs_bgmount): refined some error/debug + messages + + * amd/amd.h (FSRV_ERROR): new macro + (FSRV_ISDOWN, FSRV_ISUP): a server that doesn't exist (i.e. it's a + local filesystem) is always up + +2003-06-30 Erez Zadok + + * amd/autil.c (am_mounted): set AMF_NOTIMEOUT if either unmount or + umount options are present. + + * doc/am-utils.texi (Program Filesystem): document alias options + to unmount:=, umount:=. + + * amd/opts.c (expansions): initialize opt_umount. + (to_free): initialize opt_umount. + + * amd/amfs_program.c (amfs_program_match): ensure that only one of + umount:= or unmount:= options are specified, but that at least one + of them is listed. + + * amd/amd.h: support unmount:=XXX as well as umount:=XXX (too + annoying in type:program, when one forgets the 'n' in "unmount"). + They are two separate fields, so we can catch mistakes when + someone tries to define both options. + + * doc/am-utils.texi (Program Filesystem): explain that both mount + and unmount options must be specified. Correct example to show + both. + +2003-06-25 Erez Zadok + + * XXX: beginning of new amd.conf option map_defaults: will parse + the option and set remember it in the right places. Need to + document this and actually hook it up with the rest of the code. + Any volunteers? :-) + + * scripts/amd.conf-sample (map_defaults): example of map_defaults + amd.conf option. + + * amd/conf.c (reset_cf_map): initialize global and per-mount + map_defaults. + (gopt_map_defaults): parse global map_defaults. + (process_regular_option,ropt_map_defaults): parse per-map + map_defaults amd.conf option. + + * amd/amd.h: a place to store global and per-mount map_defaults. + + * BUGS: more notes about AIX 5.2 problems and how to overcome + them. + +2003-06-10 Erez Zadok + + * doc/Makefile.am: force version.texi to be rebuilt regardless of + maintainer mode. Silly Automake will not build version.texi if + maintainer mode is off (this is hardcoded into the automake perl + script!). According to the Automake maintainers, users should + always build in CVS trees with maintainer-mode on; but what if I + don't want to?! I don't want to distribute Makefiles with + maintained rules in them to users. The Automake maintainers also + say that "make dist" will rebuild version.texi no matter what. I + find that not to be the case. It failed to run a "make" before + "make dist" because version.texi doesn't exist! Chicken and Egg + situation. So, until Automake deals with version.texi in a more + flexible and friendly manner, I adapted a rule to build + version.texi and inserted it in this Makefile.am. + +2003-06-09 Erez Zadok + + * mk-amd-map/mk-amd-map.c (main): open temp db file using O_EXCL, + next best thing to using mkstemp(). Patch from Hendrik Scholz + . + +2003-05-08 Ion Badulescu + + * libamu/mount_fs.c (compute_automounter_mount_flags): use + MNT2_GEN_OPT_AUTOMNTFS if available; minor cleanup + + * m4/macros/header_templates.m4: added template for + MNT2_GEN_OPT_AUTOMOUNTED + +2003-05-01 Ion Badulescu + + * amd/ops_xfs.c (mount_xfs): compile fix (s/genflags/flags/) + +2003-04-23 Erez Zadok + + * conf/transp/transp_sockets.c (create_amq_service): minor cpp + directive indentation and commenting. + +2003-04-22 Ion Badulescu + + * conf/transp/transp_sockets.c (create_amq_service): Ugly *BSD fix + for an RPC library DoS issue (original patch from Martin Blapp, + massaged into something more digestable by me) + +2003-04-14 Ion Badulescu + + * conf/autofs/autofs_solaris_v2_v3.c: removed autofs_free_data(), + left over from the recent cleanup + +2003-04-13 Erez Zadok + + * doc/Makefile.am (DVIPS): use proper options for dvips. + + * doc/am-utils.texi (opts Option): document new 'unmount' option, + and better explain the 'nounmount' option. Also some misc options + for better generation of html manual. + + * doc/Makefile.am (install-html): support newer texi2html 4.0 + options, as older options were renamed or changed behavior. + + * amd/autil.c (am_mounted): support new 'unmount' option, to allow + all file system mounts to timeout and thus expire. This option is + useful for removable local media such as CD-ROMs, USB drives, + etc. so they can expire when not in use, and get unmounted (such + drives can get work out when they keep spinning). Patch from + Christos Zoulas (originally from Koji + Imada). + +2003-04-10 Erez Zadok + + * configure.in: use AM_MAINTAINER_MODE, so maintainer-only rules + do not get added to Makefiles by default (they are confusing to + users who don't have autotools installed). + +2003-04-09 Ion Badulescu + + * amd/mntfs.c (find_mntfs): revert the "change of philosophy" (see + the 2001-05-23 entry) back to the 6.0 code + +2003-04-04 Erez Zadok + + * libamu/xutil.c (switch_to_logfile): don't try to print logfile + if it is null (strlen core dump on solaris). Bug report from John + P. Rouillard . + +2003-03-31 Erez Zadok + + * fsinfo/fsinfo.8: typo co-ordinate -> coordinate. Typo report + from Perry E. Metzger" . + +2003-03-25 Erez Zadok + + * include/am_defs.h: Don't include malloc.h if stdlib.h exists, + because modern systems (e.g., BSD) complain if you use malloc.h + instead of stdlib.h. Let's hope there are no systems out + there that need both. + +2003-03-20 Erez Zadok + + * minor new port: sparc64-unknown-linux-suse7.3. + +2003-03-20 Erez Zadok + + * minor new port: i386-unknown-freebsd5.0. + + * configure.in: detect nfsclient/nfsargs.h. + + * conf/nfs_prot/nfs_prot_freebsd3.h: include + , needed in FreeBSD 5.0. + +2003-03-15 Erez Zadok + + * amd/amd.8, amd/amd.8, fixmount/fixmount.8, hlfsd/hlfsd.8, + scripts/amd.conf.5, scripts/expn.1: minor spell checking and + extraneous space elimination. + +2003-03-07 Ion Badulescu + + * conf/autofs/autofs_linux.c (autofs_get_fh): don't leak file + descriptors if limit exceeded + (autofs_mounted): call autofs_get_mp(); init am_autofs_ttl + (autofs_release_fh): release pending_mounts and pending_umounts + queues + (autofs_timeout_mp): update am_autofs_ttl instead of am_ttl + + * amd/mntfs.c (init_mntfs): delete initialization of removed + mf_autofs_fh + (uninit_mntfs): delete call to autofs_release_fh() + + * amd/map.c (init_map): init autofs_fh to 0, delete initialization + of removed autofs_data + (free_map): release autofs_fh after unmounting map; delete call to + autofs_free_data() + (umount_exported): call autofs_release_mp() prior to unmounting + autofs f/s + (unmount_mp): ditto + (free_map_if_success): call autofs_get_mp() if unmounting fails + (timeout_mp): use the dedicated am_autofs_ttl timeout for f/s-wide + timeouts instead of the per-mountpoint am_ttl + + * amd/autil.c (am_unmounted): release autofs_fh after unmounting + autofs f/s + + * amd/amfs_generic.c (amfs_cont): release autofs_fh if mounting + autofs f/s fails; + (amfs_bgmount): ditto + + * amd/amd.h: moved autofs_fh from mntfs to am_node, since it's + more related to the mount point than to the f/s mounted; + added am_autofs_ttl to am_node, for running expirations on entire + filesystems + + * conf/autofs/autofs_*: autofs_get_fh() returns int instead of + autofs_fh_t *; autofs_release_fh() now takes an am_node * parameter + instead of autofs_fh_t *, in an effort to not deal with + autofs-specific data structures outside autofs code; + new methods autofs_get_mp() and autofs_release_mp(), which + acquire/release autofs resources to allow clean unmount attempts; + nuke autofs_data_t, never used + + * amd/amd.h: prototypes for new and changed autofs functions + +2003-03-07 Ion Badulescu + + * amd/nfs_subr.c (do_readlink): eliminate third argument, never used + (nfsproc_getattr_2_svc): reorganize the code a bit + + * amd/map.c (mk_fattr): take a nfsfattr * argument instead of an + am_node * argument + + * amd/amd.h: changed prototype for mk_fattr() + + * amd/autil.c (am_unmounted): when remounting, use the parent + node's lookup_child() and mount_child() operations, not the + generic ones + + * amd/amfs_generic.c (amfs_cont): minor code optimization + +2003-03-06 Ion Badulescu + + * amd/amfs_auto.c: lots of renames and code moving: + amfs_auto_match() -> amfs_generic_match(), moved to generic; + amfs_auto_mkcacheref() -> amfs_mkcacheref(), moved to autil.c; + amfs_auto_mounted() -> amfs_generic_mounted(), moved to generic; + amfs_auto_umount() -> amfs_generic_umount(), moved to generic; + free_continuation(): moved to generic, made static; + assign_error_mntfs(): moved to autil.c; + amfs_auto_cont() -> amfs_cont(), moved to generic, made static; + amfs_auto_retry() -> amfs_retry(), moved to generic, made static; + try_mount() + mount_node() -> mount_node(), moved to map.c + amfs_auto_bgmount() -> amfs_bgmount(), moved to generic; + amfs_parse_defaults(): moved to generic; + amfs_auto_lookup_node() -> amfs_lookup_node(), moved to generic; + amfs_auto_lookup_one_mntfs() -> amfs_lookup_one_mntfs(), in generic; + amfs_auto_lookup_mntfs() -> amfs_lookup_mntfs(), moved to generic; + amfs_auto_mount_child() -> amfs_generic_mount_child(), in generic; + amfs_auto_lookup_child() -> amfs_generic_lookup_child(), in generic; + next_nonerror_node(): moved to autil.c; + amfs_auto_readdir() -> amfs_generic_readdir(), moved to readdir; + amfs_auto_readdir_browsable() -> amfs_readdir_browsable(), in readdir; + + * amd/amfs_toplvl.c: mount_amfs_toplvl() renamed to amfs_mount() + and moved to autil.c + + * amd/readdir.c, amd/amfs_generic.c: new files with stuff ripped + out of amd/amfs_auto.c + + * amd/amd.h: struct continuation moved to generic.c; prototypes + for the renamed functions; NumChild renamed to NumChildren + + * amd/map.c: collaped unmount_node_wrap() and unmount_node() into + the latter + + * amd/mapc.c: key_already_in_chain(): moved to readdir.c; + make_entry_chain(): moved to readdir.c; + + * amd/srvr_amfs_auto.c: find_amfs_auto_srvr() renamed to + amfs_generic_find_srvr() + + * amd/amfs_*.c: adjustments for the renames above + + * amd/ops_*.c: low-level filesystems don't need a find_server() + method + + * amd/Makefile.am: added amfs_generic.c and readdir.c + + * doc/am-utils.texi: minor clarification for auto maps + +2003-03-06 Ion Badulescu + + * amd/amd.h: moved lots and lots of amd-only stuff here, from + include/am_utils.h; changed task_fun, cb_fun and fwd_fun typedefs + to be function typedefs, not pointer to function typedefs + + * include/am_utils.h: see above + + * amd/ops_nfs.c, amd/rpc_fwd.c, amd/sched.c: adjustments for + function typedef changes + +2003-03-05 Erez Zadok + + * BUGS: record IBM's patch number for the AIX 5.2 NFS over IPv6 + bug. + +2003-02-02 Erez Zadok + + * NEWS: minor new port: ia64-unknown-linux-rh2.1AS + +2003-01-31 Ion Badulescu + + * m4/macros/os_cflags.m4: rhapsody and darwin are the same + + * amd/autil.c (mount_node): vastly simplified, just a wrapper now + + * amd/amfs_inherit.c (amfs_inherit_mount): remove the am_mounted() + hack, we now do it properly in the generic code + + * amd/amfs_auto.c (amfs_auto_bgmount): get the autofs_fh _before_ + forking the child; set and reset MFF_MOUNTING here, not in + mount_node(), because the latter might be running in child + context; call am_mounted() after a successful foreground mount + +2003-01-29 Ion Badulescu + + * configure.in: new flag --with[out]-ndbm; don't pull in libldap + if building --without-ldap; look for the gdbm/ndbm.h header; make + explicit the dependency between the ndbm headers and libraries; + define NEW_DBM_H as the ndbm header that should be used + + * include/am_defs.h: simply include NEW_DBM_H for ndbm stuff, + instead of trying to second-guess configure + + * m4/macros/header_templates.m4: new template for NEW_DBM_H + + * m4/macros/check_map_funcs.m4: + (ac_upcase_map_name): use the third argument correctly + + * ltmain.sh: working version from libtool-1.4.2-7 + + * buildall: print the entire configure command, including extra + arguments; pass each of the extra arguments separately, not + commingled into one + +2003-01-28 Ion Badulescu + + * include/am_utils.h (DEBUG_MNTTAB): define outside of #ifdef + DEBUG; it is not used without DEBUG, but it is referenced at + compile time. Bug report from John Kilburg . + (D_ALL): don't include D_XDRTRACE, too verbose and normally + unnecessary + +2003-01-28 Erez Zadok + + * ltmain.sh, config.guess, config.sub, doc/texinfo.tex: updates + from latest official GNU versions. + +2003-01-25 Erez Zadok + + * BUGS (Note): document AIX-5.1 NFS-client side bug (hangs in + vmount). + +2003-01-25 Ion Badulescu + + * Released beta version 6.1b2 + +2003-01-24 Ion Badulescu + + * amd/autil.c (am_unmounted): reset MFF_MKMNT from mf_flags when + calling rmdirs() on mountpoint + + * amd/amfs_auto.c (amfs_auto_bgmount): ditto + + * amd/amfs_nfsl.c (amfs_nfsl_umounted): ditto + + * doc/am-utils.texi (opts Option): "sftlookup" -> "softlookup" + + * NEWS: "sftlookup" -> "softlookup" + + * amd/ops_nfs.c (nfs_mount): "sftlookup" -> "softlookup", also + check for "nosoftlookup" in combination with "soft" + +2003-01-23 Ion Badulescu + + * m4/macros/check_nfs_fh_dref.m4: darwin/rhapsody is another + freebsd22 derivative + + * NEWS: updated for Darwin changes + + * .cvsignore: added A.i386-apple-darwin6.0 + + * m4/macros/os_cflags.m4: add -D_P1003_1B_VISIBLE to cflags for + Darwin + +2003-01-23 Erez Zadok + + * conf/mount/mount_aix.c (mount_aix3): clean back this file from + all the debugging cruft that is no longer needed (and really was + never needed in the first place). + +2003-01-10 Erez Zadok + + * scripts/test-amd.{misc,conf}: simple amd.conf and amd.misc + (map) files for testing basic amd functionality such as whether it + can mount its own mount NFS points. + +2002-12-28 Ion Badulescu + + * amd/srvr_nfs.c (start_nfs_pings): don't set FSF_PINGING if + pings are disabled + + * libamu/xdr_func.c (xdr_ftype): use a local enum_t variable + instead of casting the pointer to (enum_t *) + (xdr_mountstat3): ditto + (xdr_nfsstat): ditto + + * libamu/misc_rpc.c (make_rpc_packet): fix make_rpc_packet() on + 64-bit big-endian platforms, bug report from Bill Fenner + + + * configure.in: increase library patchlevel + + * libamu/xutil.c (amu_release_controlling_tty): close and reopen + file descriptors 0,1,2 before calling setsid() + +2002-12-27 Erez Zadok + + * updated copyright year to 2003 on all files + +2002-12-10 Erez Zadok + + * rename "aux/" subdir into "m4/" so as to avoid problems with + MS-DOS systems (where "AUX" is a reserved name). This required + fixing numerous files. + +2002-12-10 Erez Zadok + + * configure.in: don't check for bad hasmntopt() function if + hasmntopt() doesn't exist on the system, because we will replace + it with our own version anyway. + + * conf/transp/transp_sockets.c (amu_get_myaddress): use "%lx" in + dlog because htonl() returns a u_long. + +2002-12-10 Erez Zadok + + * include/am_defs.h: use system's hasmntopt() only if it is found + and it is not buggy. + + * libamu/hasmntopt.c (nextmntopt): isspace() takes an int, not a + char. + + * amd/am_ops.c, amd/amfs_auto.c, amd/autil.c, amd/nfs_subr.c, + amd/ops_cdfs.c, amd/ops_nfs.c, amd/srvr_nfs.c, libamu/hasmntopt.c, + libamu/mount_fs.c, libamu/mtab.c: rename all uses of hasmntopt() + to amu_hasmntopt(). Don't use hasmntopt() directly any more! + + * aux/macros/func_bad_hasmntopt.m4: new M4 macro to test for a bad + hasmntopt() function, which incorrectly finds the option "soft" in + a string "hard,softlookup,ro". + + * libamu/hasmntopt.c (hasmntopt): use 'const' on two args to + hasmntopt(), to match what most systems use. + + * aux/macros/header_templates.m4: template for HAVE_BAD_HASMNTOPT. + + * configure.in: invoke test for bad hasmntopt() + + * NEWS: minor new port, i386-pc-linux-rh8.0. + Mention autofs-v4 on solaris9 works. + + * bootstrap: remove any autom4te-*.cache directories, now that + autoconf uses a version number for them. + +2002-12-09 Ion Badulescu + + Patches from Christos Zoulas: + + -1- am_utils.h: add full prototypes + -2- amfs_auto.c make functions static and add prototypes + -3- map.c: kill double free + -5- transp_sockets.c: add full prototypes + +2002-12-09 Ion Badulescu + + * NEWS: updated + + * doc/am-utils.texi (opts Option): document sftlookup + + * conf/autofs/autofs_solaris_v2_v3.c: compile fixes + +2002-11-22 Erez Zadok + + * amd/info_ldap.c (amu_ldap_rebind): gopt.ldap_cache_seconds is + %ld not %d. + +2002-11-21 Erez Zadok + + * {amd,fsinfo}/Makefile.am: remove special rules for processing + yacc/lex files, now that autoconf/automake properly handle them + better (esp. now that bison 1.75 behaves differently than older + bison versions). + +2002-11-21 Erez Zadok + + * config.guess.long: updated script so it will properly find the + version number of the new Itanium 2 machines running "Red Hat + Linux Advanced Workstation release 2.1AW (Derry)". The script now + will report ia64-unknown-linux-rh2.1AW. + +2002-11-20 Ion Badulescu + + * amfs_auto_bgmount(): almost complete rewrite + + * fixed amfs_inherit to do the right thing and not dereference + freed mntfs'es + + * #if 0'ed bogus code in fh_to_mp3() -- it is now done properly in + amfs_autofs_lookup_child() + + * release the autofs_fh only in one place + + * remove the mountpoint only if mf_refc == 1 + + * print the mntfs type in free_mntfs() + + * new pseudo-mount option 'sftlookup' which causes lookups to + mounted shares from downed servers to return EIO; the default + depends on whether the mount is 'hard' or 'soft' + + * improved querying of supported NFS versions on the server -- + don't even try if it's known to be down + + * solaris autofs mount code moved to transp_{sockets,tli}.c + + * incipient (non-functional) AIX autofs support + +2002-11-11 Ion Badulescu + + * doc/am-utils.texi (Keep-alives): removed outdated info about not + maintaining the state of TCP NFS servers + +2002-11-04 Ion Badulescu + + * include/am_utils.h: prototype for ops_search() + + * amd/am_ops.c (ops_search): new function for searching the right + set of ops for a given filesystem type + + * amd/restart.c (restart): cleanup and split into two functions in + preparation for handling the restart of amd's own mount points + (restart_fake_mntfs): new function, factored out from restart() + +2002-11-04 Ion Badulescu + + * amd/ops_cdfs.c (mount_cdfs): remove special code for loop device + (cdfs_umount): ditto + + * conf/mount/mount_linux.c (mount_linux): factor it out to + mount_linux_nfs() and mount_linux_nonfs() + (mount_linux_nonfs): generalize loop device support to all + filesystems (not just cdfs); make it automatic for anything that's + a regular file + (parse_opts): deprecate the explicit "loop" mount option + (do_mount_linux): minor cleanup + + * conf/umount/umount_default.c (umount_fs2): release loop device + on umount() + +2002-11-03 Erez Zadok + + * include/am_defs.h: moved #include of net/if.h above net/route.h, + because on AIX 5.2 if.h is needed for route.h (let's hope it + doesn't break things on other systems). + + * include/am_defs.h: AIX 5.2 needs struct sigevent from signal.h + to be defined, but I don't want to move the inclusion of signal.h + this early into this file. Luckily, amd doesn't need the size of + this structure in any other structure that it uses. So we + sidestep it for now. + + * conf/nfs_prot/nfs_prot_aix5_2.h: AIX 5.2 wants 'struct pathcnf', + but I couldn't find its definition anywhere. Luckily, amd doesn't + need the size of this structure in any other structure that it + uses. So we sidestep it for now. + +2002-11-02 Erez Zadok + + * config.guess, config.sub, doc/texinfo.tex: updates from + the latest GNU distributions (2002-09-05). + +2002-10-30 Erez Zadok + + * conf/nfs_prot/nfs_prot_aix5_2.h: add more definitions from + mount.h for NFSOPT_* and NFSMNT_*. + Don't use typedefs that aren't found in system header files. + +2002-10-30 Erez Zadok + + * Makefile.am (EXTRA_DIST_CONF): distribute nfs_prot_aix5_2.h. + + * conf/nfs_prot/nfs_prot_aix5_2.h: new file. + + * aux/macros/struct_nfs_args.m4 (ac_cv_have_struct_nfs_args): look + for "struct aux52_nfs_args". + + * aux/macros/check_nfs_prot_headers.m4: define new header file for + AIX 5.2. + +2002-10-21 Erez Zadok + + * scripts/amd.conf.5 (ldap_proto_version): document in amd.conf + man page. + + * scripts/amd.conf-sample (ldap_proto_version): show example of use + + * doc/am-utils.texi (ldap_proto_version Parameter): document new + amd.conf option. + + * amd/conf.c (gopt_ldap_proto_version): new conf function to + support ldap_proto_version amd.conf parameter. + + * amd/amd.h: field to hold LDAP protocol version. + + * amd/amd.c (init_global_options): set default for + ldap_proto_version. ldap_proto_version patch from George Ross + and Tim Colles . + + * amd/info_ldap.c (amu_ldap_unbind): ignore SIGPIPE errors while + unbinding from an LDAP server that may have been restarted. Fix + from George Ross . + +2002-09-17 Ion Badulescu + + * remove all autoconf stuff added for sys_nerr + + * amq/amq.c, libamu/xutil.c, hlfsd/hlfsd.c: always use strerror + + * libamu/strerror.c: more explicit text for unknown errno's + +2002-10-01 Erez Zadok + + * include/am_defs.h: define "extern int sys_err" if needed. + + * aux/macros/header_templates.m4: template for + HAVE_EXTERN_SYS_NERR. + + * hlfsd/hlfsd.h, libamu/xutil.c (expand_error), amq/amq.c + (show_mi): remove "extern int sys_err" + + * configure.in: execute test for "extern int sys_err" + + * Makefile.am (EXTRA_DIST_AUX): distribute new extern_sys_err.m4 file. + + * aux/macros/extern_sys_nerr.m4: new test to check for existence + of "extern int sys_nerr" definition in system headers. + +2002-09-17 Ion Badulescu + + * libamu/xutil.c (dbg_opt): bring comments in line with the code + + * hlfsd/hlfsd.c (main): use amuDebug() instead of touching + debug_flags directly + + * amd/amd.c (main): don't init debug_flags, leave it as zero (no + debugging by default) + +2002-09-11 Ion Badulescu + + Debug code sanitization: + + - amuDebug() becomes an expression, and explicit if() statements + are added around it throughout the code + - amuDebugNo() goes away (ugh!) + - D_AMQ, D_DAEMON and D_FORK reverse their meaning + - D_ALL contains only options that don't affect amd's functionality + +2002-09-04 Ion Badulescu + + * amd/amfs_auto.c (free_continuation): avoid double-free'ing the + mntfs if there was an error/timeout + +2002-09-04 Ion Badulescu + + * amd/amfs_auto.c (amfs_auto_lookup_mntfs): use ereturn() instead + of "return NULL" to signal an error to the upper layers + (amfs_auto_mount): use strdup so the string can be free'd later on + [Debian bug report from Matt Chapman ] + +2002-09-03 Ion Badulescu + + Patches from George Ross : + + * amd/amfs_auto.c (assign_error_mntfs): do not discard old mntfs, + it will be done in free_continuation(); assorted debugging messages + + * amd/srvr_nfs.c (nfs_timed_out): allocate a new XID on server + timeout to avoid problems with late ping replies + + * amd/mntfs.c (free_mntfs): sanity check for mf_refc; assorted + debugging messages + + * amd/map.c (unmount_node): more verbose debug message + +2002-07-29 Ion Badulescu + + * amd/amfs_auto.c (amfs_auto_lookup_mntfs): prevent deferencing + de-allocated memory in str3cat + (amfs_auto_lookup_mntfs): check for buffer overflow + +2002-07-11 Erez Zadok + + * scripts/expn.{1,in}: fixed typos as reported by Thomas Klausner + . + +2002-06-26 Erez Zadok + + * doc/Makefile.am (install-html): don't use locally hacked + texi2html features. + + * conf/transp/transp_sockets.c (amu_get_myaddress): Most modern + systems should use 127.0.0.1 as the localhost address over which + you can do NFS mounts. In the past we found that some NFS clients + may not allow mounts from localhost. So we used get_myaddress() + and that seemed to work. Alas, on some other systems, + get_myaddress() may return one of the interface addresses at + random, and thus use a less efficient IP address than 127.0.0.1. + The solution is to hard-code 127.0.0.1, but still check if + get_myaddress() returns a different value and warn about it. + + * doc/am-utils.texi: don't use ':' in @cindex entries. + +2002-06-25 Ion Badulescu + + * Released beta version 6.1b1 + +2002-06-24 Ion Badulescu + + * aux/macros/struct_nfs_args.m4: added test for aix51_nfs_args + + * conf/nfs_prot/nfs_prot_aix5_1.h: rename aix42_nfs_args to + aix51_nfs_args, rename unknown fields to u, add the + unknown new field into the middle of the old 4.2 structure + +2002-06-24 Ion Badulescu + + * include/am_compat.h: better test for struct netconfig + (!HAVE_NETCONFIG_H && !HAVE_SYS_NETCONFIG_H) + + * aux/macros/check_nfs_prot_headers.m4: added new header for aix5.1+ + + * buildall: fix 'buildall -b' on hpux9 and aix5.1 + +2002-06-24 Ion Badulescu + + * INSTALL: updated + + * conf/autofs/autofs_solaris_v1.c (autofs_link_mount): compile fix + (autofs_link_umount): ditto + + * amd/mntfs.c (init_mntfs): don't use autofs if !amd_use_autofs + +2002-06-23 Ion Badulescu + + * conf/autofs/autofs_linux.c: compile fixes for autofs v3 + +2002-06-23 Ion Badulescu + + * conf/autofs/autofs_solaris_v2_v3.c (autofs_mounted): no + expirations needed; + (autofs_timeout_mp): likewise + + * conf/autofs/autofs_solaris_v1.c (autofs_mounted): no expirations + needed; + (autofs_timeout_mp): likewise + + * conf/autofs/autofs_linux.c (autofs_mounted): set the first + expiration interval + + * amd/autil.c (am_mounted): call autofs_mounted here, instead of + in mf_mounted() + + * amd/amd.h (NEVER): moved here from map.c + (autofs_mounted): change argument from mntfs* to am_node* + +2002-06-23 Ion Badulescu + + * conf/autofs/autofs_linux.c (autofs_mounted): set the kernel + timeout on the autofs mountpoint to cache_duration (gopt.am_timeo) + (autofs_timeout_mp): don't update the ttl if we're going down + + * amd/map.c (timeout_mp): don't call autofs_timeout_mp unless the + timeout on that particular am_node has expired + + * conf/autofs/autofs_linux.c (autofs_timeout_mp): really update + the ttl, as per the comment (compilers are not very good at + translating comments into code...) + + * amd/amfs_auto.c (amfs_auto_lookup_one_mntfs): strdup am_path + instead of opt_rfs into opt_fs for autofs, thus avoiding conflicts + between link mounts pointing to the same target + +2002-06-23 Ion Badulescu + + * conf/autofs/autofs_linux.c (send_fail, send_ready): new helper + functions for sending messages back to the kernel + (autofs_expire_one): initial implementation of the kernel-based + expiration handler + (autofs_handle_expire): call autofs_expire_one() + (autofs_handle_expire_multi): ditto + (autofs_umount_succeeded): search pending_umounts, send message + back to the kernel + (autofs_umount_failed): ditto + (autofs_mount_succeeded): tell amd core not to expire autofs entries + (autofs_timeout_mp): expiration function for autofs filesystems + (autofs_timeout_mp_task): helper function for autofs_timeout_mp + + * conf/autofs/autofs_linux.h: new struct autofs_pending_umount for + keeping tracking of pending umounts + (autofs_fh_t) rename pending to pending_mounts, add pending_umounts + + * conf/autofs/autofs_solaris_v1.c (autofs_timeout_mp): stub + + * conf/autofs/autofs_solaris_v2_v3.c (autofs_timeout_mp): stub + + * amd/map.c (timeout_mp): call autofs_timeout_mp() for autofs + filesystems + + * amd/autil.c (mf_mounted): move here the call autofs_mounted() + from amfs_auto_mounted(). + +2002-06-22 Erez Zadok + + * amd/nfs_start.c (mount_automounter): Security fix. if user sets + -D noamq, don't even create listening socket. Suggestion by Ed + Ravin . + +2002-06-22 Ion Badulescu + + * hlfsd/homedir.c (homedir): use setgid() instead of setegid() + + * ALL: #ifdef cleanups, unify some TLI/socket function prototypes + +2002-06-22 Erez Zadok + + * conf/nfs_prot/nfs_prot_netbsd1_4.h: minor port to support + na_gid and na_uid. NetBSD patch from Jun-ichiro itojun Hagino + . + + * doc/am-utils.texi (Option): document xlatecookie mount option. + + * libamu/mount_fs.c (compute_nfs_args): support "xlatecookie" + NFS mount option. Patch from Matthias Scheler + for NetBSD. + +2002-06-22 Ion Badulescu + + * conf/autofs/autofs_solaris_v1.h: add FS_MBACKGROUND to + AUTOFS_LINK_FS_FLAGS + + * conf/autofs/autofs_solaris_v1.c: convert link mounts to lofs + mounts in autofs_link_mount/umount + +2002-06-22 Ion Badulescu + + * configure.in: check for devid inside struct umntrequest + + * conf/autofs/autofs_solaris_v2_v3.c (xdr_umntrequest): handle the + new umntrequest structure in v4. + (autofs_unmount_2_req): ditto + + * README.autofs: updated for Solaris 2.5/2.5.1 + +2002-06-22 Erez Zadok + + * configure.in: only define LDAP/Hesiod if both the headers and + the libraries exist, and the user didn't explicitly disable those + maps. + +2002-06-22 Erez Zadok + + * doc/am-utils.texi: fix typos. Can't use ":" in @cindex entries. + +2002-06-22 Erez Zadok + + * doc/am-utils.texi, scripts/amd.conf.5, scripts/amd.conf-sample, + amd/amd.8, amd/get_args.c (get_args): document amd -A option. + + * amd/get_args.c (get_args): support "amd -A arg" option to + override the system's detected architecture. Patch from George + Ross . + + * amd/info_ldap.c (amu_ldap_rebind): don't use ldap_enable_cache() + if the system doesn't have it. + + * configure.in: detect existence of ldap_enable_cache function, + because it doesn't exist on Solaris 9's latest ldap libraries. + + * amd/info_ldap.c: LDAP patches from George Ross + . Rework of old code, support for wildcards in + LDAP queries, and an FD leak fix. + +2002-06-22 Ion Badulescu + + * buildall: use ksh for configure on aix5.1; pass the extra + arguments after "--" to configure, not to make + + * Makefile.am: added nfs_prot_aix4_3.h to EXTRA_DIST_CONF + + * conf/mount/mount_aix.c (mount_aix3): if the NFSv3 mount fails + with EINVAL and we have MOUNT_TYPE_NFS3_BIS defined, retry the + mount with the alternative nfs3_args structure + + * conf/nfs_prot/nfs_prot_aix4_3.h: added alternative nfs3_args + structure, similar to that in aix5.1, for a hack that tries to + compensate for IBM's brain fart + + * conf/nfs_prot/nfs_prot_aix5_1.h: new nfs_prot header for aix5.1+ + + * aux/macros/check_nfs_prot_headers.m4: added new header for aix5.1+ + + * BUGS: update for direct mounts on Linux; document the brokenness + of /bin/sh on AIX 5.1 and HP-UX 9 + + * NEWS: aix5.1 port, aix4.3 workaround + +2002-06-22 Erez Zadok + + * ltmain.sh: use libtool 1.4d, needed support for newer AIX. + +2002-06-21 Ion Badulescu + + * aux/macros/check_autofs_style.m4: enable autofs_v2_v3 for + all solaris2.6+, not just for 2.[6-8] + + * conf/autofs/autofs_default.h: disable autofs if configure + detects it + +2002-06-21 Erez Zadok + + * aux/macros/with_addon.m4: correct M4 quoting. + + * aux/macros/cache_check_dynamic.m4: correct M4 quoting. + + * bootstrap: show version of autotools being used. Helps + maintainer debugging. + + * configure.in: new proper syntax for libtool and + ansi2knr-filtering rules, required by autoconf 1.53 and higher. + +2002-06-21 Erez Zadok + + * aux/GNUmakefile: new search paths for "update" target. + + * config.guess, config.sub, doc/texinfo.tex, ltmain: updates from + the latest GNU distributions. + +2002-06-11 Ion Badulescu + + * amd/amfs_auto.c (amfs_auto_lookup_child): split part of this + function into the new amfs_auto_lookup_one_child function; return + null if all ivecs failed to match + +2002-05-30 Erez Zadok + + * config.guess.long: support SuSE version names in long + config.guess format. + +2002-05-01 Erez Zadok + + * scripts/lostaltmail.in (vrfy_user): unlink temp files if too + small. + +2002-04-07 Ion Badulescu + + * hlfsd/hlfsd.c (main): compile fix for --enable-debug=no + +2002-03-29 Ion Badulescu + + * README.autofs: solaris 2.5/2.5.1 info, other minor changes + + * doc/am-utils.texi (History): document solaris 2.5+ support + + * include/am_utils.h: new member in struct mntfs: mfs_real_mount; + autofs_fs_flags becomes conditional of HAVE_AUTOFS_FS; new + prototype for umount_fs2(); extra argument for UMOUNT_FS() + + * hlfsd/hlfsd.c: use the new mount_fs2() and UMOUNT_FS() + + * libamu/mount_fs.c (mount_fs): wrapper around the new mount_fs2() + function; swap mntdir and real_mntdir as necessary for solaris 2.5 + autofs support + + * conf/umount/umount_default.c (umount_fs2): swap mntdir and + real_mntdir as necessary for solaris 2.5 autofs support + + * conf/umount/umount_*.c (umount_fs): wrapper around the new + umount_fs2() function + (umount_fs2): new function which takes the real mountpoint as an + extra argument + + * conf/nfs_prot/nfs_prot_sunos5_5.h: allow autofs support to be + compiled in + + * conf/autofs/autofs_solaris_v1.h (autofs_strdup_space_hack): new + function that appends a space at the end of a string (the famous + "Autofs Space Protocol") + + * conf/autofs/autofs_solaris_v1.c: almost complete reimplementation + + * conf/autofs/autofs_*.h (AUTOFS_*_FS_FLAGS): add + system-specific definitions for these macros + + * conf/autofs/autofs_linux.c (create_autofs_service): remove hacks + which are now handled properly by more generic code + (autofs_link_umount): complain if umount_fs() fails, rmdir the + mountpoint on success + (autofs_umount_succeeded): remove the rmdirs() code, now handled + by generic code + (autofs_mount_succeeded): ditto + + * amd/nfs_start.c (checkup): implement it as an emtpy stub if + DEBUG is not defined + (run_rpc): call autofs_add_fdset() after umount_exported() to + avoid passing invalid file descriptors to select(); use plog() + instead of perror() + + * amd/mntfs.c (init_mntfs): initialize mf_real_mount from mp + (uninit_mntfs): free mf_real_mount + + * amd/autil.c (am_unmounted): don't remove the mount point if a + remount is pending, also don't make the removal conditional on not + being an autofs mount point + + * amd/amfs_nfsx.c (amfs_nfsx_remount): call mkdirs() on + mf->mf_real_mount instead of mf->mf_mount + + * amd/amfs_nfsl.c, amd/amfs_nfsx.c: (amfs_nfsl_umounted): call + rmdirs() on mf->mf_real_mount instead of mf->mf_mount + + * amd/amfs_host.c (make_mntpt): change the third argument to be + the mountpoint, not the entire mntfs structure + (do_mount): takes real_mntdir as an extra argument + + * amd/amfs_auto.c (amfs_auto_bgmount): move the creation of the + mountpoint here from try_mount(), otherwise the change to mf_flags + is lost for background mounts; remove the mountpoint if we created + it and the mount fails + (amfs_auto_lookup_mntfs): re-initialize mf->mf_real_mount using + autofs_strdup_space_hack() if NEED_AUTOFS_SPACE_HACK is defined + + * amfs_*.c, ops_*.c: initialize autofs_fs_flags using the + AUTOFS_*_FS_FLAGS macro defined in the system-specific autofs + header; UMOUNT_FS() takes mf->mf_real_mount as an extra argument; + mount_fs() becomes mount_fs2() and takes mf->mf_real_mount as an + extra argument + + * amd/amd.h, amd/ops_nfs.c, amd/amfs_host.c: mount_nfs_fh takes + the real mountpoint as an additional argument + +2002-03-28 Erez Zadok + + * amd/ops_cdfs.c (mount_cdfs): correctly interpret error return + values back from mount_fs(). Return correct error number from + this function. + + * conf/mount/mount_linux.c (do_mount_linux): cleanup loop mount + cruft from this function, moved elsewhere. + (mount_linux): prepare for loop-device mounts of ISO images. + +2002-03-28 Ion Badulescu + + * libamu/Makefile.am (EXTRA_DIST): added strerror.c + + * libamu/strerror.c: strerror() implementation for systems lacking it + + * doc/am-utils.texi (History): rewrote the history :) about autofs + support + + * conf/autofs/autofs_solaris_v2_v3.c: updated copyright; + (autofs_unmount_2_req): minor cleanup + (create_autofs_service): print log message + (destroy_autofs_service): ditto + + * conf/autofs/autofs_linux.c: updated copyright + + * amd/nfs_start.c (mount_automounter): move the debug message into + create_autofs_service() + + * amd/amd.c (main): call destroy_autofs_service() before + going_down(), not after + + * configure.in: added strerror to AC_CHECK_FUNCS(); disable ldap + if the ldap headers are not found + +2002-03-28 Erez Zadok + + * amd/info_ldap.c: patch from "Sebastien Bahloul" + to fix a simple initialization bug + and change "HE" to HE_ENT so as to compile on HPUX. + +2002-02-26 Erez Zadok + + * conf/nfs_prot/nfs_prot_freebsd3.h (na_uid): freebsd4.5 uses nfs + atttributes field named "uid". So #define na_uid to it. + +2002-02-12 Erez Zadok + + * scripts/lostaltmail.in: don't verify user if -noverify option + was turned on. fix comment typo. + +2002-02-11 Erez Zadok + + * amd/Makefile.am (TESTS): enable one test script, test1.sh. + + * amd/test1.sh: re-commit simple test script. + +2002-02-11 Ion Badulescu + + * Released snapshot 6.1a5 + + * NEWS: Solaris autofs readdir() support, Linux autofs sublink fix + + * README: require newer auto-tools, update mailing list address + + * README.autofs: major update + + * configure.in: version changed to 6.1a5 + +2002-02-11 Ion Badulescu + + * conf/autofs/autofs_linux.c (autofs_link_mount): don't do a + stat() on the am_link if called from the parent amd, to prevent + deadlocks + + * amd/autil.c (am_unmounted): call amfs_link_ops.umount_fs if the + fstype is not link but we have a sublink (Linux autofs needs this) + (am_mounted): call amfs_link_ops.mount_fs if the fstype is not + link but we have a sublink (Linux autofs needs this) + + * amd/amfs_auto.c (amfs_auto_bgmount): print the real mountpoint, + not the amd entry point + +2002-02-09 Ion Badulescu + + * conf/autofs/autofs_solaris_v2_v3.c (amd_rddirres): new custom + structure for returning the results from readdir_2() + (xdr_amd_putrddirres): renamed from xdr_autofs_putrddirres, + changed to process our internal format (which is essentially the + NFS readdir format) + (xdr_autofs_getrddirres): not needed, deleted + (xdr_amd_rddirres): renamed from xdr_autofs_rddirres, other + changes to handle amd_rddirres instead of autofs_rddirres + (autofs_lookup_2_req): return AUTOFS_NONE instead of + AUTOFS_MOUNT_RQ, to prevent mount storms during ls -F + (autofs_readdir_2_req): implemented + (autofs_readdir_2_free): not needed, deleted + (autofs_program_2): changes from autofs_rddirres to amd_rddirres + (autofs_get_fh): changed initialization of the fh->map member, it + now gets the mountpoint path because it makes it easier to + implement readdir + (autofs_release_fh): put #ifdef HAVE_AUTOFS_ARGS_T_ADDR around + code touching fh->addr + (destroy_autofs_service): new function, deregister the autofs + service with the portmapper on exit + + * conf/autofs/autofs_linux.c (autofs_handle_missing): update + statistics + (destroy_autofs_service): new stub + + * amd/mapc.c (mapc_find): fixed indentation + + * amd/map.c (find_ap_recursive): renamed from find_ap2(), made + static + + * amd/amd.h: removed prototype for find_ap2(), added prototype for + destroy_autofs_service() + + * amd/amd.c (main): call destroy_autofs_service() before going + down + +2002-02-07 Erez Zadok + + * aux/macros/check_field.m4: need also a new version of + AC_CHECK_MEMBERS (plural). + +2002-02-06 Erez Zadok + + * aux/macros/check_field.m4: include a fixed version of + AC_CHECK_MEMBER. g/cc will fail to check a member if the .member + is itself a data structure, because you cannot compare, in C, a + data structure against NULL; you can compare a native data type + (int, char) or a pointer. Solution: do what I did in my original + member checking macro: try to take the address of the member. You + can always take the address of anything. + +2002-01-31 Erez Zadok + + * remove old '%W%' SCCS IDs from all sources. + +2002-01-21 Ion Badulescu + + * conf/mount/mount_linux.c (mount_linux): fix breakage introduced + by the loop device mount support. Linux mount takes a real string + as the last argument, unless the mount type is NFS, NCP, or SMB. + +2002-01-20 Erez Zadok + + * hlfsd/hlfsd.h (HLFSD_VERSION): up version of hlfsd to 1.2, + because we made some important changes. + +2002-01-20 Ion Badulescu + + * include/am_utils.h (D_ALL): do not include D_MTAB and D_HRTIME + by default + + * NEWS: document latest changes + + * amd/map.c (unmount_mp): same fix as for hlfsd, update the + seconds field in mtime because Linux ignores the useconds field + + * hlfsd/homedir.c: made some global vars static + (plt_init): remove all trailing '/' chars from root's home; + use root's home, not the username (silly bugfix) + +2002-01-20 Ion Badulescu + + * hlfsd/homedir.c (homedir): don't special case uid 0 as having / + as home; instead use the root account's home + (plt_init): properly initialize root_home from the root account's + home directory, or as "" if root doesn't exist + (plt_reset): free root_home + +2002-01-20 Erez Zadok + + * hlfsd/stubs.c (nfsproc_{lookup,getattr}_2_svc): non-SYMTTL code. + Increment seconds, not microseconds (which are ignored by NFS). + Set symlink owner to euid. + + * hlfsd/homedir.c (homedir): pass gid to this function, so we can + also change the effective GID of the process writing to the user's + home dir, as well as the group of the hlfsd symlink. + (homedir): run setegid in the right places. + +2002-01-15 Erez Zadok + + * scripts/redhat-ctl-amd.in: refer to @sbindir@ not + ${prefix}/sbin. + + * scripts/ctl-{amd,hlfsd}.in: refer to @sysconfdir@ not + ${prefix}/etc. Bug report from "A Braunsdorf" + . + +2002-01-13 Erez Zadok + + * configure.in: only check for clock_gettime if --enable-debug was + used. + + * aux/macros/opt_debug.m4: define a cache variable to record value + of debug option used. + + * libamu/xutil.c (show_time_host_and_name): do not use + clock_gettime unless debugging was compiled in. This way, if + debugging is not compiled, we don't bother linking with librt, + libpthread, and a whole lot of other libraries that aren't that + necessary (esp. on Linux). + +2002-01-12 Erez Zadok + + * doc/am-utils.texi (opts Option): document loop option. + + * include/am_utils.h: each mounted file system (mntfs) should + optionally store the loop device used in the field mf_loopdev. + + * conf/nfs_prot/nfs_prot_linux.h: define HAVE_LOOP_DEVICE and some + loop function extern definitions. For now this code is here + because we only support loop devices on Linux. + + * conf/mount/mount_linux.c: recognize "loop" as a valid iso9660 + mount option. + (parse_opts): when skipping over unknown mount options, skip over + "loop" (since it was given in amd map entry), but not over + loop=/dev/loopX, because the latter will go into /etc/mtab. + (do_mount_linux): override actual cdfs mounted device name + because with loop devices you don't mount the .iso file directly, + but the /dev/loopX device that was setup for it. + (show_loop, is_loop_device, find_unused_loop_device, + setup_loop_device, delete_loop_device): support code for loop + devices. + + * amd/ops_cdfs.c (mount_cdfs): pass loop device name to function. + setup loop device before isofs mount, if "loop" option was given, + before actual mount(2). + (cdfs_mount): pass loopdev name to mount_cdfs(). + (cdfs_umount): delete/unset loop device after a successful + unmount, if a loop device was used. + + * amd/mntfs.c (init_mntfs): initialize mf_loopdev to NULL. + + * include/am_compat.h: If loop device (header file) exists, define + mount table option MNTTTAB_OPT_LOOP. + + * conf/nfs_prot/nfs_prot_linux.h: hack: define HAVE_LOOP_DEVICE + here until we have a better way to detect /dev/loop devices. + + * include/am_defs.h: include if it exists. Define + LARGEFILE support macros, possibly needed for loop devices. + Redefine dev_t apropriately for loop devices. + + * configure.in: check for . + +2002-01-10 Ion Badulescu + + * conf/mount/mount_linux.c (mount_linux): tcp _must_ have a timeo + parameter 2 orders of magnitude larger than udp (patch from Trond + Myklebust) + +2002-01-09 Erez Zadok + + * aux/macros/linux_headers.m4: properly [quote] a long string in + m4 and use AC_MSG_WARN. + + * ALL: put /* comments */ on #else/#endif lines everywhere. + + * configure.in, aux/macros/with_addon.m4: due to limitation of + AC_HELP_STRING, pass 2nd arg to AMU_WITH_ADDON, listing name of + package for help string. + + * doc/am-utils.texi (FSinfo): fixed various texinfo errors in the + FSinfo section of the manual. + (map_reload_interval Parameter): document new amd.conf global + parameter. + + * scripts/amd.conf.5 document new global option + map_reload_interval. Sort entries for nfs_vers and nfs_proto + alphabetically. + + * amd/nfs_start.c (do_select): increment do_mapc_reload's value by + global map_reload_interval value, not by fixed ONE_HOUR. + + * amd/amd.c (main): increment do_mapc_reload's value by global + map_reload_interval value, not by fixed ONE_HOUR. + + * scripts/amd.conf-sample (map_reload_interval): usage example + + * amd/amd.c (init_global_options): initialize map_reload_interval + to 3600 seconds. + + * amd/conf.c (gopt_map_reload_interval): support a new global + amd.conf option map_reload_interval, to determine how often (in + seconds) Amd should check if the map source has changed and then + reload it it. This value was hard-coded to one hour, now it's the + default if not otherwise specified. + + * doc/am-utils.texi (plock Parameter): document plock=yes option + as using mlockall(2) if found. + + * scripts/amd.conf.5: document -S option as using mlockall(2) if + found. + + * include/am_defs.h: include if it exists. + + * configure.in: check for mlockall() function. Check for + sys/mman.h. + + * amd/amd.c (main): support mlockall() on systems that have it and + don't have plock(3) for plock=yes. On systems that have both, + will try plock() first and then mlockall(), until one of them (if + any) succeeds. + +2002-01-09 Erez Zadok + + * aux/macros/opt_debug.m4, opt_cppflags.m4, opt_amu_cflags.m4, + with_addon.m4 (ac_upcase): fix help string formatting using + AC_HELP_STRING. + + * amd/test1.sh: simple test script for "make check". Runs "amd + -v". + + * amd/Makefile.am (TESTS): add one simple test script, running + "amd -v" and checking its return value. More tests can be added. + + * aux/macros/linux_headers.m4: use AC_MSG_WARN directly. + + * aux/macros/*.m4: avoid the cumbersome "changequote" M4 command. + Instead, list bracketed regexp patterns in [[double brackets]]. + + * aux/macros/header_templates.m4: remove all unnecessary + HAVE_FIELD_* definitions, now that we're using autoconf's new + AC_CHECK_MEMBERS. + + * aux/macros/field_mntent_t_mnt_time_string.m4: don't call + + * configure.in: use new syntax for AMU_CHECK_FIELD + + * aux/macros/check_field.m4: use new and simpler macro + AC_CHECK_MEMBERS. Change all sources to use HAVE_aggregate.member + instead of HAVE_FIELD_aggregate.member. + + * aux/amdgrep: simple utility script to egrep the am-utils sources + for any pattern. + + * aux/macros/{check_mnttab_style.m4, check_mount_style.m4, + check_umount_style.m4, check_network_transport_type.m4}: use newer + AC_LIBOBJ macros instead of modifying $LIBOBJS directly + + * aux/macros/func_bad_memcmp.m4: redefine to use native + AC_FUNC_MEMCMP, and then define HAVE_BAD_MEMCMP as needed. + + * fsinfo/fsi_gram.y, amd/conf_parse.y: indent #pragma command so + pre-ANSI C compilers will ignore it. + + * conf/autofs/autofs_linux.c (autofs_link_mount): call s/getpgrp() + correctly depending on whether it takes a void or a 0. + + * configure.in: check if s/getpgrp() takes void or a 0. + +2002-01-08 Erez Zadok + + * configure.in: use the newer AC_CONFIG_LINKS instead of + AC_LINK_FILES. + + * aux/macros/check_autofs_style.m4, check_checkmount_style.m4, + check_mnttab_style.m4, check_mount_style.m4, + check_network_transport_type.m4, check_umount_style.m4, + check_nfs_prot_headers.m4: removed backward compatible code for + pre-autoconf-2.14. + +2002-01-07 Erez Zadok + + * doc/Makefile.am: define @SET_MAKE@ for AC_PROG_MAKE_SET macro, since + this Makefile could explicitly chdir to other directories and run + make there. + (install-ps): use ${MAKE} with ${MFLAGS}. + + * Makefile.am (EXTRA_DIST_AUX): distribute new package_*.m4 files. + Define @SET_MAKE@ for AC_PROG_MAKE_SET macro, since this Makefile + could explicitly chdir to other directories and run make there. + (install-snapshot): use ${MAKE} ${MFLAGS}, not hardcoded "make". + + * configure.in: call AC_PROG_MAKE_SET to check if make program + defines $MAKE variable. + + * amd/get_args.c (get_version_string): use new PACKAGE_* macros + and also report the bug-reporting address. + + * aux/macros/package_{name,version}.m4, header_templates.m4: using + new PACKAGE_{NAME,VERSION,BUGREPORT} macros. + + * aux/macros/name_bugreport.m4: simple macro to print out the + bug-reporting address which was configured in AC_INIT. + + * bootstrap: remove new autoconf messages about misuse of + m4_patsubst and m4_regexp (internal GNU M4 macros). + + * configure.in: remove old comment above AC_OUTPUT. + Use AC_CONFIG_FILES and AC_OUTPUT separately. + Fix AC_REVISION use. + Add AC_COPYRIGHT. + Use new style for AC_INIT, listing package name, version, and + bug-reporting address. + Call new AMU_PACKAGE_* macros. + + * updated copyright year to 2002 on all files + + * configure.in: using newly renamed am-utils macros (AMU_*) + + * aux/macros/*.m4: renamed ALL am-utils specific macros so they + start with AMU_*, not AC_*. That way it is easier to distinguish + between macros that come with am-utils and those that are part of + Autoconf or Automake. It helps to identify those am-utils macros + that can be removed once there is generic support for them in a + future version of Autoconf. + + * bootstrap: run automake --copy + remove autom4te.cache dir before rerunning autoconf + +2001-12-13 Erez Zadok + + * scripts/amd.conf.5: correct title to section 5, not 8. Correct + reversed meaning of nfs_proto and nfs_vers parameters. Typos + reported by Peter Breitenlohner . + +2001-12-02 Erez Zadok + + * scripts/ctl-amd.in: run "test" or "[" in front of -x/-f + + * scripts/ctl-hlfsd.in: run "test" or "[" in front of -x/-f + +2001-12-02 Ion Badulescu + + * hlfsd/homedir.c (plt_print): fix typo (s/plot/plog/) in + non-mkstemp code + + * scripts/ctl-amd.in: touch/remove /var/lock/subsys/amd to make RH + happy + + * scripts/ctl-hlfsd.in: ditto (for hlfsd) + + * conf/mtab/mtab_file.c (rewrite_mtab): fchmod(644) the file we + get from mkstemp(), otherwise samba becomes very unhappy (sigsegv) + + * conf/mtab/mtab_mach3.c (rewrite_mtab): ditto + +2001-11-29 Ion Badulescu + + * tasks: updated + + * NEWS: document the fixed autofs fd leak + + * amq/amq.8: better document the -f option + +2001-11-29 Erez Zadok + + * libamu/mount_fs.c (mnt_flags): same this as for nolock option + handling, do for maxgrps. + +2001-11-29 Ion Badulescu + + * conf/autofs/autofs_linux.c (hash_init): determine the max number + of fd's at runtime, use it to dynamically scale the hash and list + arrays + (autofs_get_fh): sanity check, don't allow a pipe() fd greater + than autofs_max_fds + (autofs_release_fh): close our end of the pipe here (no clue why + or when it got commented out) + (autofs_mounted): set kernelfd to -1 after closing it + +2001-11-28 Philippe Troin + + * libamu/mount_fs.c (mnt_flags): Drop nolock from generic mount + opts. + (compute_nfs_args): Added nolock handling. + Adapted from an original patch from Avery Pennarun . + +2001-11-27 Erez Zadok + + * ported to ia64-hp-hpux11.20 using HP's ANSI/C compiler. + Couldn't use bison/flex because of 32-bit vs. 64-bit binaries + issues. Had to use HP's own yacc/lex. + +2001-11-26 Erez Zadok + + * */Makefile.am: don't use $(OBJECTS) directly because it is no + longer automatically defined now that Automake has automatic + dependency tracking (which I turn off). Instead, hard-code + minimal dependencies on am-utils' header files to depend on + PROG_OBJECTS (where PROG is the program name being built). This + was discovered by using HP's non-GNU make program. + + * amd/nfs_start.c (checkup): cast getpagesize() return val to + long, to avoid conflicts in division of a long by an int (on + hpux11i, with their ANSI/C compiler). + + * INSTALL, doc/am-utils.texi: port updates + + * minor new ports: ia64-hp-hpux11.20, i386-unknown-freebsd5.0, + i386-unknown-freebsd4.4, i386-pc-linux-rh7.2, + ia64-unknown-linux-rh7.1. + + * include/am_defs.h: actually declare extern definition for + xdr_callmsg() if it doesn't already exist. + + * aux/macros/header_templates.m4: declare template for + HAVE_EXTERN_XDR_CALLMSG. + + * configure.in: check for extern definition for xdr_callmsg() + because hpux11 has that function but a bad header file + that doesn't define it in the right place. + + * libamu/mount_fs.c (print_nfs_args): cast ->rdev to u_long b/c + on hpux11 its type is dev_t. + + * conf/nfs_prot/nfs_prot_hpux11.h: don't support autofs on hpux11 + yet. + +2001-11-16 Erez Zadok + + * buildall (Usage): separate $cnf_flags and $extra_cnf_flags due + to /bin/sh limitations. + + * bootstrap (cmd): turn back on --ignore-deps (this Automake may + have problems) + + * libamu/xutil.c: remove __attribute__ format_arg statement for + expand_error() because this function, although taking a + printf-like string, does not use it in a printf function; it only + expands a non-printf amd-special syntax %m. + +2001-11-14 Erez Zadok + + * conf/nfs_prot/nfs_prot_linux.h: define KERNEL_VERSION macro + before using it because older Linux systems don't define this + (e.g., Red Hat 4.2) + +2001-11-13 Erez Zadok + + * configure.in: convert to using autoconfig 2.52. Use new macros. + AC_MSG_NOTICE for messages; AH_TOP and AH_BOTTOM to top and bottom + parts of autogenerated config.h.in; increase autoconf + pre-requisite to version 2.50; use AC_DISABLE_SHARED not + AM_DISABLE_SHARED. + + * aux/macros/cache_check_dynamic.m4: finally I can use the new + $ECHO_N syntax in macros instead of $ac_n, since I'm using a new + autoconf. Isn't it nice to be such forward looking and having + placed a comment "XXX: use the next line for autoconf-2.14 and + newer"... :-) + + * aux/macros/save_state.m4: highlight message with ***'s + + * aux/macros/host_macros.m4: use proper M4 quoting ([], not "") + + * config.{guess,sub}: upated from latest prep ftp distributions + + * depcomp, missing, mkinstalldirs: upated from latest Automake 1.5 + + * ltmain.sh: updated from latest Libtool 1.4.2 + + * bootstrap: finally, new autoconf doesn't print silly "AC_TRY_RUN + called without default to allow cross compiling" warnings. And, + it only took like 3+ years to fix this. But, now it has anoter, + albeit less annoying warning (which the manual says to ignore): + "AC_PROG_LEX invoked multiple times". + When autoheader is run, don't treat the "all clear" message + "config.h.in is update" as an error. + + * ltconfig: removed. not needed with latest version of libtool + + * aux/macros/header_templates.m4: replaces acconfig.h and defines + all CPP macros we use in this package, including their + accompanying C /* comments */. + + * acconfig.h: removed. replaced by new autoconf system to generate + header templates using AH_TEMPLATE macros and such. + + * aux/macros/msg.m4: removed. Replaced with new macro + AC_MSG_NOTICE + + * Makefile.am (EXTRA_DIST_AUX): remove aux/macros/msg.m4. Add + aux/macros/header_templates.m4 + + * configure.in: early, in host_macros.m4, I'm renaming silly linux + $host_os names such as linux-gnu and lignux to plain "linux". + Alas, RMS finally had his way and libtool will NOT recognize + "linux" as a valid system, only "linux-gnu". Sigh. Rich, I know + you're responsible to Linux's fame. Kudos to you and your + cohorts. But please don't force the rest of us to use those ugly + or long names. Solution: temporarily name $host_os to "linux-gnu" + before calling the AC_PROG_LIBTOOL macro, then name it back to + "linux". (That way I don't have to maintain my own version of + ltmain.sh. + + * buildall: force running configure -C (to create and use a local + config.cache file). New default behavior for autoconf is NOT to + use cache files. Yeah, that's gonna fly real well with am-utils, + with its 700+ automatic tests. + + * conf/mtab/mtab_mach3.c (rewrite_mtab): use mkstemp instead of + mktemp, if the former is available. + + * conf/mtab/mtab_file.c (rewrite_mtab): use mkstemp instead of + mktemp, if the former is available. + + * mk-amd-map/mk-amd-map.c (main): use mkstemp instead of mktemp, + if the former is available. + + * aux/macros/check_nfs_socket_connection.m4: AC_DEFINE calls must + be on a separate line, as per new Autoconf manual, to avoid some + Bourne Shell syntactical bizarreness. + +2001-11-13 Erez Zadok + + * amd/amfs_auto.c (amfs_auto_readdir_browsable): cast to u_long, + for IA64 Linux. + +2001-11-12 Ion Badulescu + + * libamu/mtab.c (hasmntval): strtol can return a non-NULL pointer + pointing to '\0' on success, so we need to allow for it. This + fixes the problem with rejecting numerical mount options if they + are the last option in the string. + + * configure.in: increased library patchlevel + + * NEWS: document the parsing bug + +2001-10-29 Ion Badulescu + + * configure.in: bumped version up to 6.1a5-pre + + * NEWS: fixed speeling mistaike + +2001-10-29 Ion Badulescu + + * released snapshot am-utils-6.1a4 + +2001-10-26 Ion Badulescu + + These changes fix autofs support for sublinks. While it is not + perfect by any means and is hardly better than non-autofs, at + least it works. + + * conf/autofs/autofs_solaris_v2_v3.c (autofs_lookup_2_req): don't + reply if the mount is in progress + (autofs_mount_succeeded): handle both delayed lookups and mounts + (autofs_mount_failed): ditto + + * amd/amfs_auto.c (amfs_auto_lookup_mntfs): don't dispose of the + original opt_fs if we have a sublink + +2001-10-23 Ion Badulescu + + * amd/amfs_auto.c (amfs_auto_lookup_mntfs): fixed silly typo (mf + instead of new_mf) which was causing null pointer error when + sublinks were being used + +2001-10-22 Ion Badulescu + + * README.autofs: updated + + * NEWS: updated + + * INSTALL: updated + + * AUTHORS: added myself + + * doc/am-utils.texi: updated + + * conf/autofs/autofs_solaris_v2_v3.c (xdr_autofs_rddirargs): use + xdr_u_int() and cast things to (int) to appease Solaris 2.7 compile + (autofs_readdir_2_req): cast req->rda_offset to (int), same as + above + +2001-10-22 Ion Badulescu + + Autofs direct mounts have been verified to work on Solaris2.[67]. + + * conf/autofs/autofs_solaris_v2_v3.c (autofs_lookup_2_req): + retrieve the uid and gid from the lookup request + (autofs_mount_2_req): skip the first char in the name (it's a + leading '/') if this is a direct mount + + * amd/amfs_direct.c (amfs_direct_ops): use amfs_auto_lookup_child + and amfs_auto_mount_child for amfs_direct's methods + + * amd/amfs_auto.c (amfs_auto_lookup_child): don't leak an am_node + if the mntfs lookup fails + +2001-10-21 Ion Badulescu + + * include/am_utils.h (AMF_REMOUNT): new flag, marks the node as + pending a remount + (mntfs): new member mf_fsflags, holds a copy of the filesystem's + fs_flags + (am_ops): new member autofs_fs_flags, holds the filesystem's flags + when mounted onto an autofs node; fs_flags renamed to nfs_fs_flags + + * conf/autofs/autofs_linux.c (create_autofs_service): turn on + FS_MKMNT for amfs_auto and FS_MBACKGROUND for amfs_link + (autofs_umount_succeeded): don't rmdir the mountpoint if a remount + is needed [lest the access that triggered the remount will fail] + + * amd/mntfs.c (init_mntfs): copy the filesystem's nfs_fs_flags + into mf_fsflags on initialization + + * amd/autil.c (am_unmounted): start the remounting right away if + the node is marked as needing a remount [fixes the Linux autofs + deadlock when mount/unmount collide] + + * amd/amfs_auto.c (amfs_auto_lookup_node): mark the node as + needing a remount if a mount request comes in while we're + unmounting it + (amfs_auto_lookup_mntfs): copy the filesystem's autofs_fs_flags + into mf_fsflags if this is an autofs node + + * amd/amfs_*.c, amd/ops_*.c: added initialization for the new + autofs_fs_flags member of am_ops + +2001-10-20 Ion Badulescu + + With these changes, Solaris 2.[67] autofs support is finally + functional! + + * conf/autofs/autofs_solaris_v2_v3.c (autofs_readdir_2_req): stub + (autofs_readdir_2_free, xdr_autofs_rddirargs, xdr_autofs_putrddirres, + xdr_autofs_getrddirres, xdr_autofs_rddirres): new functions + (autofs_lookup_2_req): do an actual lookup here, and tell the + kernel to create a symlink if necessary + (autofs_mount_2_req): no need to am_autofs_data + (autofs_program_2): enable AUTOFS_READDIR + (autofs_link_mount): no code needed here + (autofs_link_umount): return success + (autofs_mount_succeeded): lstat real mount points; don't mark + symlinks as NOTIMEOUT + + * amd/mntfs.c (init_mntfs): mf_dev and mf_rdev don't exist anymore + + * amd/map.c (init_map): init am_dev and am_rdev to -1 + (free_map): free am_mfarray and all mntfs's listed + + * amd/autil.c (mf_mounted): move the lstat of the node to the + autofs-specific code + + * amd/amfs_link.c (amfs_link_ops): don't background symlink creation + +2001-10-18 Rainer Orth + + * aux/macros/os_cflags.m4 (irix6*): Enforce N32 ABI/mips3 ISA with cc. + * BUGS: Explain this. + +2001-10-02 Erez Zadok + + * doc/am-utils.texi (redhat-ctl-amd): document new script. + + * scripts/Makefile.am: build redhat-ctl-amd but do not install it. + + * scripts/redhat-ctl-amd.in: new script, useful to correctly + control Amd on Red Hat Linux systems. Script adapted from ctl-amd + and Red Hat's own rc.d script. + +2001-10-02 Rainer Orth + + * conf/nfs_prot/nfs_prot_osf5.h: Renamed from nfs_prot_osf5_1.h. + (MNT2_NFS_OPT_AUTO): Disable. + * Makefile.am (EXTRA_DIST_CONF): Reflect new name. + * aux/macros/check_nfs_prot_headers.m4: Use this file for all + Tru64 UNIX V5 and up releases. + +2001-09-24 Ion Badulescu + + * include/mount_headers1.h (MFS): define as 1 instead of nothing, + to fix compile problems on OS X (patch from Ahmon Dancy) + + * aux/macros/try_compile_anyfs.m4 (MFS): ditto + +2001-08-13 Erez Zadok + + * doc/am-utils.texi (in_network Selector Variable): document + expanded syntax + + * libamu/wire.c (is_network_member): support for network/netmask + as well as network/bits syntax in in_network() + +2001-08-11 Erez Zadok + + * amq/amq.c (show_mti): print full four digits for year, and print + it in MM/DD/YYYY format, not in YY/MM/DD format. + +2001-08-11 Ion Badulescu + + * conf/autofs/autofs_solaris_v2_v3.c (autofs_lookup_2_req): + initial attempt to do something useful -- but commented out for now + (autofs_link_mount): create an action structure with a link + request and pass it up + (autofs_mount_2_req): pass the link request to the kernel + (autofs_free_data): new helper function + + * conf/autofs/autofs_linux.h: added definition for autofs_data_t + + * conf/autofs/autofs_solaris_v2_v3.h: ditto + + * amd/map.c (init_map): initialize am_autofs_data + (free_map): call the autofs cleanup function if necessary + + * include/am_utils.h (am_node): added private data and cleanup + function for autofs + + * tasks: removed some obsolete entries + +2001-08-11 Erez Zadok + + * amd/map.c (free_map_if_success): run autofs_umount_failed() only + if this mount node is of type autofs. + +2001-08-11 Ion Badulescu + + * amd/amd.h: removed mf_array from struct continuation (moved into + am_node) + + * include/am_utils.h: removed VLOOK_LOOKUP; renamed vlookuppn to + vlookup_child; added vmount_child; added mount_child to the fs_ops + API; added prototypes for amfs_auto_mount_child and + amfs_error_mount_child + + * amd/map.c (init_map): initialize am_mfarray to 0 + + * amd/amfs_*, amd/ops_*: new API function mount_child, old API + function lookuppn renamed to lookup_child + + * amd/amfs_auto.c: renamed amfs_auto_lookuppn1 to + amfs_auto_lookup_node; renamed amfs_auto_lookuppn2 to + amfs_auto_lookup_mntfs; renamed amfs_auto_lookuppn3 to + amfs_auto_mount_child; moved the freeing of the error mntfs in the + newly allocated am_node from lookup_mntfs to mount_child; make + sure lookup_child returns a negative error if the node needs to be + mounted; removed the call to lookuppn3 from lookup_child + + * amd/amfs_error.c: added stub implementations of + amfs_error_lookup_child and amfs_error_mount_child + + * amd/amfs_direct.c, amd/amfs_union.c, amd/map.c, amd/nfs_subr.c, + conf/autofs/autofs_linux.c, conf/autofs/autofs_solaris_v2_v3.c: + call both lookup_child and mount_child, instead of the old + lookuppn API method + +2001-07-19 Erez Zadok + + * amd/get_args.c (get_args): a better way to handle GNU and + non-GNU getopts without strdup-ing the getopt string. + +2001-07-04 Erez Zadok + + * amd/info_ldap.c (amu_ldap_rebind): The first time you called + amu_ldap_init, aldh->ldap is not set. So when amu_ldap_rebind is + called, this function is absolutely sure to return 0. Then + amu_ldap_init return 0 without having opened any LDAP connection. + This is not the correct behavior. + (get_ldap_timestamp, amu_ldap_search): error to free an object + ("entry") that is automatically freed by the library. Patch from + Sebastien Bahloul . + +2001-07-19 Ion Badulescu + + * AUTHORS (variables): added Philippe Troin + + * Makefile.am (EXTRA_DIST): added bootstrap + + * include/am_compat.h (xfs_args_t): define as u_int if the + filesystem is supported but we can't autodetect the type for + xfs_args_t. This allows Linux to mount xfs filesystems. + +2001-07-12 Philippe Troin + + * doc/am-utils.texi: Added @dircategory Administration. + +2001-07-12 Philippe Troin + + * aux/macros/with_addon.m4: Created. Wrapper around AC_ARG_WITH + with only the `yes' and `no' as possible answers. + + * configure.in: Added support for disabling LDAP and HESIOD even + if the supporting libraries are found. + + * Makefile.am (EXTRA_DIST_AUX): Added with_addon.m4 macro file. + +2001-07-12 Philippe Troin + + * include/am_compat.h: Removed forced definition of MNTTAB_OPT_DEV + if MNT2_GEN_OPT_NODEV was found. Actually, the dev= (SVR4) options + and the linux nodev options are different beasts. + + * conf/mount/mount_linux.c (opt_map): Removed the MNTTAB_OPT_DEV + entry (not really necessary on linux). + +2001-07-12 Philippe Troin + + * amd/get_args.c (get_args): Prepend "+" to the getopt string if + HAVE_GNU_GETOPT to avoid getting all options (even the ones after + the first non-option argument) slurped in by GNU getopt. + + * aux/macros/check_gnu_getopt.m4: Created. Defines HAVE_GNU_GETOPT + if GNU/glibc getopt implementation is detected. + + * configure.in: Added call to AC_CHECK_GNU_GETOPT. + + * acconfig.h: Document HAVE_GNU_GETOPT. + + * Makefile.am (EXTRA_DIST_AUX): Added check_gnu_getopt.m4 macro file. + +2001-06-25 Erez Zadok + + * LSM.am-utils, NEWS, README.y2k, ChangeLog: make sure all + am-utils URL references use www.am-utils.org, not the columbia + URL. + +2001-06-08 Erez Zadok + + * conf/transp/transp_sockets.c (create_nfs_service): cast to + u_long to ensure clean compile on freebsd5 and bsdi2. + +2001-05-23 Ion Badulescu + + WARNING: WORK IN PROGRESS + + It works for me on Linux (both autofs and nfs mounts), for nfs and + link, but I won't make any guarantees outside those. + + * amd/mntfs.c (find_mntfs): reuse the mntfs only if both the mount + point and the device/fileserver are the same. This is an important + change of philosophy, watch out for memory leaks! + + * amd/map.c (get_ap_child): helper function for + amfs_auto_lookuppn, creates a new am_node for key fname, inits it, + and inserts it into all necessary structures + + * amd/amfs_auto.c (free_continuation): free unused mntfs's; don't + free any of the removed fields + (amfs_auto_lookuppn, amfs_auto_bgmount): split lookuppn into three + subfunctions, including some code stolen from bgmount; lookuppn + now generates an array of possible mntfs to try mounting, and + bgmount will actually try to mount each of them. + (amfs_auto_lookuppn[123]): the three new subfunctions for lookuppn + (amfs_parse_defaults): new helper function for lookuppn + +2001-05-19 Erez Zadok + + * conf/mount/mount_linux.c: typo: added comma after '0' element. + +2001-05-19 Ion Badulescu + + * conf/autofs/autofs_linux.c (AUTOFS_MAX_VERSION): allow using + autofs-v4 again + (autofs_get_opts): don't pass pgrp, the kernel will get it + automatically anyway, not to mention that we were passing bogus + data if amd was not daemonized. + + * conf/mount/mount_linux.c (linux_nfs_error): don't special case + the 0 result, just put it into the translation list + +2001-05-19 Ion Badulescu + + * conf/mount/mount_linux.c (linux_nfs_error): don't report success + (0) as error (NE_IO)! + +2001-05-18 Ion Badulescu + + * amd/amfs_host.c (amfs_host_mount): don't fail the mount if at + least one share is already mounted + +2001-05-17 Ion Badulescu + + * libamu/util.c (str3cat): updated comment + + * include/am_utils.h: added VLOOK_LOOKUP and FS_DIRECT + + * conf/autofs/autofs_linux.c (autofs_get_fh): removed obsolete comment + (autofs_mounted): disable autofs support for host f/s if version < 4 + (create_autofs_service): turn on FS_MKMNT on auto f/s if using autofs + (autofs_umount_succeeded): use rmdirs instead of rmdir + (autofs_mount_failed): ditto + + * amd/opts.c (expand_op): align the debugging messages + + * amd/map.c (mount_auto_node): use am_node *mp instead of casting + the void *arg; update the comment + + * amd/autil.c (am_mounted): check the FS_DIRECT flag instead of + comparing to &amfs_direct_ops + (mount_node): ifs_mount doesn't exist, make note of it in the + comment + + * amd/amfs_direct.c (amfs_direct_ops): added FS_DIRECT to fs_flags + + * amd/amfs_auto.c (amfs_auto_mount): removed the autofs hack to + create the mountpoint directory for auto f/s; it is now handled in + autofs_linux.c + (amfs_auto_bgmount): renamed the mpe parameter to mp_error; + renamed dont_retry to retry and reverted its meaning as well; + moved the mp variable up one scope and made use of it throughout + the function; + (amfs_auto_readdir): whitespace + (amfs_auto_readdir_browsable): whitespace, also some debugging + + * amd/am_ops.c (vops): updated a comment + + * .cvsignore: added A.i386-pc-linux-rh7.[01] + +2001-05-01 Ion Badulescu + + * conf/mount/mount_linux.c: fixed stupid error in the linux + nfs_errormap[], which was mapping ENOENT to success!!! + +2001-04-28 Ion Badulescu + + * BUGS: added info about the direct mount problems on Linux and + about the kernel patches on www.am-utils.org. + + * conf/autofs/autofs_solaris_v2_v3.c (autofs_unmount_2_req): + removed obsolete comment + + * amd/autil.c (forcibly_timeout_mp): always log a message when the + forced unmount request is ignored + (mf_mounted): don't lstat unless this is an autofs mount point, + lest we deadlock + + * amd/amfs_auto.c (amfs_auto_bgmount): don't gratuitously add + MFF_MKMNT to the flags, it causes deadlocks later on when + unmounting + +2001-04-14 Erez Zadok + + * COPYING: update copyright year + + * amd/amfs_auto.c, amd/amfs_host.c, amd/amfs_nfsx.c, + amd/amfs_toplvl.c, amd/amfs_union.c, amd/conf.c, amd/info_nis.c, + amd/info_nisplus.c, amd/mapc.c, amd/nfs_subr.c, amd/ops_nfs.c, + amd/rpc_fwd.c, amd/srvr_amfs_auto.c, amd/srvr_nfs.c, + conf/autofs/autofs_solaris_v1.c, conf/mtab/mtab_file.c, + conf/mtab/mtab_isc3.c, conf/mtab/mtab_svr4.c, + conf/transp/transp_sockets.c, conf/transp/transp_tli.c, + libamu/mount_fs.c, libamu/mtab.c: rewritten various dlog/plog + messages for clarity, to avoid duplication, to better recognize + what the message means and where it ran, and to fix typos. + + * amd/nfs_subr.c (nfsproc_lookup_2_svc): moved trace message of + function's name to the beginning of the function, before any other + messages are logged. + +2001-04-14 Ion Badulescu + + * conf/mount/mount_linux.c (do_mount_linux): removed plog() of + binary data + +2001-04-05 Ion Badulescu + + * include/am_defs.h: define NFSCLIENT, NFS, PCFS, LOFS, RFS, + MSDOSFS, MFS and CD9660 to 1, so that both #if FOO and #ifdef FOO + work (needed for MacOS X); removed duplicate definition of NFS. + +2001-03-29 Ion Badulescu + + * amd/amd.h, amd/amfs_auto.c, amd/conf.c, + doc/am-utils.texi, + scripts/amd.conf-sample, scripts/amd.conf.5: + renamed selectors_on_default to selectors_in_defaults, + kept the former as a deprecated option; + renamed CFM_ENABLE_DEFAULT_SELECTORS to CFM_SELECTORS_IN_DEFAULTS; + renamed gopt_selectors_on_default() to gopt_selectors_in_defaults() + +2001-03-19 Ion Badulescu + + * amd/amfs_toplvl.c, amd/amfs_auto.c, amd/srvr_nfs.c, + include/am_utils.h: compile fixes for --enable-debug=no + +2001-03-15 Ion Badulescu + + * NEWS: updated + + * README.autofs: updated + + * conf/mount/mount_linux.c (linux_version_code): export the fn + + * conf/nfs_prot/nfs_prot_linux.h: ditto + + * conf/autofs/autofs_linux.c (create_autofs_service): verify the + kernel version here, and turn off bind_works if the kernel is + older than 2.4.0. + (autofs_link_mount): don't touch bind_works here, it's useless + b/c we're in a child process; remove the mountpoint directory if + the bind mount fails + + * amd/opts.c (eval_fs_opts): changed some annoying debugging plogs + into dlogs + + * conf/autofs/autofs_linux.c (autofs_link_mount): zero out the + mntent struct before initializing it + +2001-03-14 Ion Badulescu + + * conf/mount/mount_linux.c (parse_opts): added support for lofs + (mount_linux): support lofs through bind mounts and/or FiST lofs + + * scripts/ctl-hlfsd.in: search for /var/spool/mail in addition to + /var/mail and /usr/spool/mail + + * conf/nfs_prot/nfs_prot_linux.h (MS_BIND): add define for it, if + kernel is newer than 2.4.0 + (MNTTYPE_LOFS): ditto + + * conf/autofs/autofs_solaris_v2_v3.c (autofs_link_umount): new stub + (autofs_lookup_failed): removed stub + + * conf/autofs/autofs_linux.c (autofs_lookup_failed): moved up in + the file, made static; + (autofs_link_mount): activate MNT2_GEN_OPT_BIND code; use stat() + and friends to determine if bind mounts can be used and to trigger + further cascading mounts; return proper error codes + (autofs_link_umount): distinguish between symlinks and bind mounts + and handle both correctly + (autofs_umount_succeeded): remove call to autofs_link_umount() + + * amd/map.c (umount_exported): try to unmount all mount points on + an autofs filesystem; this isn't really needed and will be removed + when we start handling restarting autofs mounts + + * amd/amfs_link.c (amfs_link_[u]mount): call autofs_link_[u]mount, + if necessary + + * amd/amfs_auto.c (amfs_auto_bgmount): fixed a bug that was + causing the wrong mntfs to be selected when using autofs; removed + call to autofs_link_mount() (moved where it belongs, in + amfs_link.c) + + * amd/amfs_link.c: added FS_MBACKGROUND to fs flags -- cleaner + solution is needed, because background mounting is only necessary + for linux autofs + bind mounts + + * amd/amd.h: removed prototype for autofs_lookup_failed (internal + static function for linux autofs); added prototype for + autofs_link_umount + + * configure.in: bump up library patchlevel + +2001-02-28 Ion Badulescu + + * aux/macros/check_mount_trap.m4, + aux/macros/check_nfs_fh_dref.m4, + aux/macros/check_nfs_prot_headers.m4, + aux/macros/type_recvfrom_fromlen.m4, + aux/macros/type_yp_order_outorder.m4: + Fixed newer freebsd's fh type, expanded more aix3, osf2, hpux9 to + aix[1-3], osf[1-3] and hpux[6-9]. + +2001-02-28 Erez Zadok + + * check_mount_style.m4, check_mount_trap.m4, + check_network_transport_type.m4, check_nfs_fh_dref.m4, + check_nfs_prot_headers.m4, check_nfs_sa_dref.m4, + check_nfs_socket_connection.m4, os_cflags.m4, + type_yp_order_outorder.m4: small fixes to Ion's cleanup, and more + cleanup (use [[0-1]] instead of M4 changequote commands). + + * Makefile.am: removed unused conf/trap/trap_hpux11.h + +2001-02-27 Ion Badulescu + + * aux/macros/check_network_transport_type.m4, + aux/macros/check_mount_style.m4, + aux/macros/check_mount_trap.m4, + aux/macros/check_network_transport_type.m4, + aux/macros/check_nfs_fh_dref.m4, + aux/macros/check_nfs_prot_headers.m4, + aux/macros/check_nfs_sa_dref.m4, + aux/macros/check_nfs_socket_connection.m4, + aux/macros/os_cflags.m4, + aux/macros/type_auth_create_gidlist.m4, + aux/macros/type_recvfrom_fromlen.m4, + aux/macros/type_yp_order_outorder.m4: + Reworked the scripts, so that a new _unknown_ version of a known OS + will use the option for the newest _known_ version of that OS. For + example, when freebsd6 comes out, it will use the stuff for + freebsd5, not the stuff for freebsd2. This makes configure more + likely to succeed on new systems/versions. + + * Makefile.am (EXTRA_DIST_AUX): added check_autofs_style.m4 (grr) + +2001-02-24 Erez Zadok + + * Makefile.am (install-snapshot): use a different symlink target + for the experimental snapshots. + +2001-02-23 Erez Zadok + + * Makefile.am (EXTRA_DIST_CONF): include nfs_prot_darwin.h in + distributions. + +2001-02-22 Erez Zadok + + * released snapshot am-utils-6.1a3 + + * amd/Makefile.am (EXTRA_amd_SOURCES): don't forget to distribute + get_args.c + +2001-02-21 Erez Zadok + + * libamu/mtab.c: added the functions hasmnteq and haseq to + ease checks for non-numeric values in opt=value strings. + Recoded hasmntval to qualify input as numeric, allow hex and + octal strings on rhs of =, and log when the value is missing + or invalid. + + * conf/mount/mount_linux.c: revised mount_linux to use new + hasmnteq function to extract type of non-nfs mounts, and added + a log message to catch possible failure of strdup. + + * amd/am_ops.c: revised merge_ops to use new haseq function + + * amd/srvr_nfs.c: revised find_nfs_srvr to use hasmnteq to + discover protocol setting. + + * include/am_utils.h: added function prototypes for hasmnteq + and haseq + +2001-02-19 Ion Badulescu + + * include/mount_headers2.h (_LINUX_NFS3_H): define it, to avoid + pulling in unwanted declarations from 2.2.19pre and 2.4.1ac + + * include/am_defs.h (_LINUX_NFS3_H): ditto + + * conf/nfs_prot/nfs_prot_linux.h: whitespace, comments + +2001-02-19 Erez Zadok + + * aux/macros/check_fs_mntent.m4 (ac_safe): remove debugging "echo" + command. + +2001-02-18 Erez Zadok + + * aux/macros/mount_headers.m4, include/mount_headers[12].h: split + mount_headers.h in two because one relative header (nfs_prot.h) + file cannot be included inside another from the start directory of + the first (it's relative to the directory of the first). + +2001-02-09 Ion Badulescu + + * AUTHORS: added Ahmon Dancy + + * (all): added Darwin/Rhapsody/Apple OS X support from Ahmon Dancy + + * aux/macros/mount_headers.m4: moved all the C code into a + separate file, include/mount_headers.h; the effect is that + configure goes down in size by a factor of 2.5! + + * include/mount_headers.h: new file, with C code from + aux/macros/mount_headers.m4 + +2001-02-01 Ion Badulescu + + * conf/mount/mount_linux.c: made linux_nfs_error() more robust. + +2001-02-01 Erez Zadok + + * released snapshot am-utils-6.1a2 + + * updated ltmain.sh and ltconfig from latest stable version of + libtool-1.3.5 + +2001-02-01 Ion Badulescu + + * conf/nfs_prot/nfs_prot_linux.h (nfs_error): moved the definition + of nfs_error here, from mount_linux.c, so that it can actually be + used. + + * conf/mount/mount_linux.c: added unused errno 41 to the + nfs_errormap array, lest the following errno's get shifted up by + one! + +Sat Jan 13 00:04:38 2001 Rainer Orth + + * amd/amd.h (autofs_lookuppn): Fixup whitespace. + * amd/amfs_auto.c (amfs_auto_bgmount): Likewise. + * amd/amfs_error.c: (amfs_error_match): Likewise. + * amd/amfs_host.c (fetch_fhandle): Fixup whitespace. Remove + unnecessary temporary variable. + * amd/info_file.c (read_line): Likewise. + (search_or_reload_file): Likewise. + * amd/info_ldap.c (get_ldap_timestamp): Likewise. + * amd/map.c (get_root_ap): Likewise. + * amd/nfs_prot_svc.c: Likewise. + * amd/ops_TEMPLATE.c (foofs_match, foofs_lookuppn, + foofs_readlink, foofs_ffserver): Likewise. + * amd/ops_autofs.c (autofs_bgmount): Likewise. + * amd/ops_lofs.c (lofs_match): Likewise. + * amd/ops_nfs.c (got_nfs_fh): Fixup whitespace. + * amd/ops_xfs.c (xfs_match): Likewise. + * amd/srvr_amfs_auto.c (srvrlog): Line break. + * amd/srvr_nfs.c (got_portmap, call_portmap, nfs_pinged, + nfs_srvr_port): Fixup whitespace. + * conf/nfs_prot/nfs_prot_bsdi2.h: Likewise. + * conf/nfs_prot/nfs_prot_hpux.h: Likewise. + * conf/nfs_prot/nfs_prot_hpux11.h: Likewise. + * conf/nfs_prot/nfs_prot_irix5.h: Likewise. + * conf/nfs_prot/nfs_prot_irix6.h: Likewise. + * conf/nfs_prot/nfs_prot_nextstep.h: Likewise. + * conf/nfs_prot/nfs_prot_osf2.h: Likewise. + * conf/nfs_prot/nfs_prot_osf4.h: Likewise. + * conf/nfs_prot/nfs_prot_osf5_1.h: Likewise. + * conf/nfs_prot/nfs_prot_sunos3.h: Likewise. + * conf/nfs_prot/nfs_prot_sunos4.h: Likewise. + * conf/nfs_prot/nfs_prot_ultrix.h: Likewise. + * conf/transp/transp_tli.c (get_mount_client): Likewise. + * hlfsd/nfs_prot_svc.c: Likewise. + * include/am_defs.h (sys_errlist): Likewise. + * include/am_utils.h (am_get_progname, am_get_hostname, + amq_program_1): Likewise. + (nfsxprt): Moved declaration. + +Fri Jan 12 23:31:45 2001 Rainer Orth + + Removed support for amq -M. + + * acconfig.h (ENABLE_AMQ_MOUNT): Removed. + * aux/macros/opt_amq_mount.m4: Removed. + * Makefile.am (EXTRA_DIST_AUX): Don't distribute + opt_amq_mount.m4. + * configure.in (AC_OPT_AMQ_MOUNT): Removed invocation. + + * amd/amq_subr.c (ok_security, amqproc_mount_1_svc): Removed. + * amd/amq_svc.c (amq_program_1): Removed amq -M support. + * amq/amq.c (mount_map): Removed. + (main): Removed -M option handling. + Removed transport-type specific CLIENT creation. + (get_secure_amd_client, amq_bind_resv_port, privsock): Removed. + + * amq/amq.8: Removed -M documentation. + * doc/am-utils.texi (Top-level Filesystem): Removed amq -M + reference, but retain comment on mount -t amd. + (Controlling Amd): Likewise. + + * tasks: Removed this task. + +Fri Jan 12 23:18:26 2001 Rainer Orth + + * conf/autofs/autofs_*.c: Bump copyright year to 2001. + * hlfsd/hlfsd.h (HLFSD_VERSION): Likewise. + + * aux/macros/check_autofs_style.m4: Renamed solaris[12] styles to + solaris_v1, solaris_v2_v3 to reflect that these are AutoFS + protocol version numbers, not solaris versions. + * conf/autofs/autofs_solaris[12].[ch]: Renamed to + autofs_solaris_{v1, 2_v3}.[ch] to reflect this. + * Makefile.am (EXTRA_DIST_CONF): Likewise. + + * aux/macros/check_autofs_style.m4: Use solaris2 style for both + versions 2 and 3 of the AutoFS protocol. + + Handle missing AUTOFS_POSTUNMOUNT, AUTOFS_POSTMOUNT (unnecessary + with Solaris 8 mntfs). + + * conf/autofs/autofs_solaris2.c (xdr_postumntreq, xdr_postumntres, + xdr_postmountreq, xdr_postmountres, autofs_postunmount_2_req, + autofs_postmount_2_req ): Don't define for version 3. + (autofs_program_2): Don't handle AUTOFS_POSTUNMOUNT, + AUTOFS_POSTMOUNT if missing. + + * conf/nfs_prot/nfs_prot_sunos5_8.h: Enable AutoFS support. + + * aux/macros/check_autofs_style.m4: Use empty autofs_default.[ch] + files on systems without existing autofs port. + * conf/autofs/autofs_default.[ch]: New files, empty. + * Makefile.am (EXTRA_DIST_CONF): Distribute them. + * INSTALL: With this change, Solaris 8 and Tru64 5.1 compile and + link. + +2001-01-12 Erez Zadok + + * Makefile.am (EXTRA_DIST): distribute new LDAP files. + + * README.ldap, ldap-id.txt, ldap-id.ms: LDAP status information, + proposed Schema, and internet draft. + +Fri Jan 12 22:27:07 2001 Rainer Orth + + * Support Tru64 UNIX V5.1: + + * conf/nfs_prot/nfs_prot_osf5_1.h: New file. + + * Makefile.am (EXTRA_DIST_CONF): Distribute it. + + * aux/macros/check_nfs_prot_headers.m4: Tru64 UNIX V5.1 has + AutoFS, need to disable it until a port exists. + + * INSTALL, doc/am-utils.texi (Supported Platforms): Mention new + minor port. + +2001-01-09 Erez Zadok + + * ALL: bump copyright year to 2001. + +2001-01-05 Erez Zadok + + * acconfig.h: correct comments for NODEV/NONDEV mount options + +Fri Jan 5 05:12:02 2001 Erez Zadok + + * libamu/xdr_func.c: removed ugly casts to "groups*", now that + irix6's nfs_prot.h is fixed. + + * conf/nfs_prot/nfs_prot_irix6.h: copied relevant parts of + here so we don't have to include this header. + +2001-01-04 Erez Zadok + + * conf/nfs_prot/nfs_prot_irix6.h: redefine "groups" typedef to + struct groups, not the pointer to this struct. + + * include/am_xdr_func.h: prototype should take "groups *" as 2nd + arg. + + * libamu/xdr_func.c (xdr_groupnode, xdr_exportnode): change + casting of second arg of xdr_groups to "groups *". It's only + needed for irix6, due to problems with xdr_groups on that platform. + (xdr_groups): prototype should take "groups *" as 2nd arg. + + * conf/nfs_prot/nfs_prot_aix*.h: correct xdr_groups extern + definition. Report from Ahmon Dancy . + +2000-12-06 Ion Badulescu + + * include/am_defs.h: force non-inclusion of via + + + * conf/autofs/autofs_linux.c (autofs_mounted): rename + AUTOFS_MIN_PROTO_VERSION to AUTOFS_MIN_VERSION (leftover from + previous commit) + + * configure.in: fixed libtool version + +2000-12-02 Ion Badulescu + + * doc/am-utils.texi (opts Option): document lock/nolock + +2000-12-02 Ion Badulescu + + * conf/autofs/autofs_linux.h: added struct autofs_pending_mount; + modified autofs_fh_t to have a linked list of autofs_pending_mount; + added some support for autofs4 + + * conf/autofs/autofs_linux.c: use a linked list for pending + request, to allow for handling multiple simultaneous request; + incipient non-functional support for autofs4; incipient + non-functional support for bind-mounting + + * amd/amd.c (main): print a warning if PROCLOCK is requested but + the O/S doesn't support it + + * libamu/mount_fs.c (mnt_flags): allow the use of the "nolock" + option + + * include/am_defs.h: don't include on a glibc2 + system; include if it exists, instead of + + + * include/am_compat.h: define the "nolock" mnttab option if the + NONLM NFS mount option is defined + + * acconfig.h: added MNT2_NFS_OPT_NONLM, MNT2_GEN_OPT_BIND + + * configure.in: added detection of the NONLM Linux NFS mount + option; added a clarification for the library versioning rules and + increased the minor level; added detection of + and the MS_BIND generic mount option + +2000-11-29 Ion Badulescu + + * Enabled Solaris 2.7 autofs support (tested, works) + + * Updated NEWS, README.autofs + + * Updated Makefile's, make dist is now fixed + + * Fixed potential memory leak in map.c + + * Fixed autofs style detection for solaris 2.[67] + + * Added a few casts in autofs_solaris2.c, needed on Solaris 2.7 + +2000-11-28 Ion Badulescu + + More Solaris 2.[67] work in progress: + + * changed the API for the mount/umount methods: fmount/fumount are + gone, and mount/umount now take two arguments (am_node and mntfs) + + * changed the semantics of the MFF_AUTOFS flag: MFF_AUTOFS now + means the mntfs is a filesystem of type autofs, and AMF_AUTOFS + means the am_node is a node on a filesystem of type autofs. + + * renamed nfs_program_2_transp to current_transp so it can be used + with autofs + + * renamed quick_reply() to nfs_quick_reply() + + * added two more autofs methods: autofs_umount_failed() and + autofs_compute_mount_flags() -- it turns out that on sol2.6 the + autofs mounts MUST be overlay'ed + + * moved the autofs_mount_succeeded() into am_mounted() + + * made amd *not* timeout autofs mounts -- the kernel will do it + for us + + * store dev and rdev of a mounted filesystem in the mntfs + structure, to help autofs + + * moved the rmdirs() call from uninit_mntfs() to am_umounted(), to + prevent deadlocking with autofs + + * amd/Makefile.am: shuffled things around to make + update_build_version be the last thing that runs + +2000-11-27 Ion Badulescu + + * split amd/ops_autofs.c into conf/autofs/autofs_.c files + and made configure create a symlink to the appropriate one + + * moved the xdr autofs functions from libamu/xdr_func.c into the + system-specific conf/autofs/autofs*.c + + * added some more experimental code to the sol2.6 autofs support, + but it's by no means functional + +2000-11-27 Ion Badulescu + + * libamu/wire.c (getwire_lookup): truncate the hostname to + MAXHOSTNAMELEN characters. + +2000-11-26 Erez Zadok + + * include/am_utils.h (MAXHOSTNAMELEN): if not defined, set this to + 256 bytes, not 64. Suggestion form Kris Kennaway + . + +2000-11-26 Erez Zadok + + * configure.in (AC_CHECK_MNT2_NFS_OPTS): check for NFS mount + options kerb, rdirplus, readdirsize, and xlatecookie + (NetBSD-1.5K). + + * acconfig.h: recognize NFS mount options rdirplus, readdirsize, + and xlatecookie (NetBSD-1.5K) + +2000-11-24 Erez Zadok + + * amd/srvr_nfs.c: comment on NFS proto search order. + + * libamu/xutil.c (real_plog): don't try to write the last byte of + the fmt buf. security suggtion from NetBSD: Thomas Klausner + + +2000-11-22 Ion Badulescu + + * amd/amfs_auto.c (amfs_auto_bgmount): removed the initialization of + fattr.na_fileid, it is now done in map.c when the map is initialized + + * amd/map.c (init_map): initialize fattr.na_fileid to am_gen, not + to 0, to avoid cache aliasing problems on Linux (and to follow the + NFS spec!) + +2000-11-22 Thomas Klausner + + * libamu/mount_fs.c (mount_fs): avoid using extra limited-size buf + (security) + + * libamu/xutil.c, fsinfo/fsinfo.h, include/am_utils.h: use + __attribute__, __format__, and __printf__ for GCC string auditing. + + * wire-test/wire-test.8: this is not a section 8L man page. + + * libamu/xutil.c (expand_error): don't use sys_nerr on systems + that support strerror(). + (dplog): fmt is const + (plog): fmt is const + (real_plog): fmt is const. use new expand_error function with its + new return value. be more careful about running off the end of + char[] fixed size buffers. + + * libamu/wire.c (getwire): fix alignment error on alpha using an + extra automatic storage variable ifrpool. + + * hlfsd/hlfsd.c (fatal): use proper printf style to plog. + + * fsinfo/fsinfo.c (find_username): getlogin() returns a const. + + * fsinfo/fsi_util.c (error, lerror, lwarning, fatal, log): use + vfprintf. + + * fsinfo/fsi_lex.l (yyerror): use vfprintf. + + * fixmount/fixmount.8: this is not a section 8L man page. + + * doc/am-utils.texi (Hesiod maps): fixed typo. + + * amd/sched.c (do_task_notify): typo in comment. + + * amd/opts.c (expand_op): expand_error[] is a const char *. + + * amd/amd.c (main): use proper printf style to plog. + +2000-11-22 Erez Zadok + + * libamu/mount_fs.c (mnt_flags, compute_nfs_args): recognize + proplist mnttab flag. Bug fix from Wolfram Klaus + . + +2000-11-19 Erez Zadok + + * updated config.guess, config.sub, and doc/texinfo.tex from + mirrors + + * Makefile.am (update): proper updating of config.* and texinfo + from mirrors. + + * aux/macros/check_nfs_prot_headers.m4: newer netbsd systems + reports their system name as "netbsdelf" in config.guess. + +2000-11-13 Erez Zadok + + * doc/am-utils.texi (opts Option): document new mount option + "proplist" + + * include/am_compat.h: define amd mount option "proplist" if the + system doesn't recognize it, but the NFS bit flag exists. + + * configure.in, acconfig.h: recognize/support "proplist" NFS mount + option in Amd, useful under DU-4.0 to process ACLs over NFS + mounts. + +2000-11-10 Ion Badulescu + + * conf/mount/mount_linux.c (mount_linux): removed unnecessary + rsize/wsize defaults -- performance killers on 2.2.18+ and 2.4.0+ + +2000-10-16 Erez Zadok + + * scripts/am-eject.in: accept "cdrom" and "floppy" as arguments. + +2000-11-05 Ion Badulescu + + Too many changes to list them here. Here's a high level + description: + + * Forward-ported the Linux fixes from 6.0.5pre + + * Got rid of a mountain of #ifdef DEBUG, replaced with smart + header-file #ifdef's + + * and, the grand finale: initial Solaris 2.6 autofs + support. Compiles, mounts, gets requests; all the + infrastructure is in place to actually implement the calls. Linux + autofs might be a bit broken, but only compile-time so it'll be + easy to fix. + +2000-11-01 Erez Zadok + + * MIRRORS (Note): added a mirror at ufl.edu + +2000-10-11 Erez Zadok + + * amq/amq.8: synchronize Amq's options with reality + + * amq/amq.c (main): synchronize Amq's usage() string with reality + +2000-10-10 Erez Zadok + + * scripts/ctl-amd.in: add targets condrestart (redhat) and + reload. + +2000-10-04 Erez Zadok + + * scripts/lostaltmail.in (vrfy_user): ensure that MAILDIR is + defined. + +2000-09-18 Erez Zadok + + * amd/opts.c (backslash): Bell char (ASCII 007) should be \g, not + \a. + +2000-09-17 Erez Zadok + + * include/am_utils.h: removed unused field opt_autopref + + * amd/opts.c: removed unused variable $autopref + +2000-09-05 Erez Zadok + + * conf/mtab/mtab_svr4.c (lockfile): function not needed unless + MOUNT_TABLE_ON_FILE is defined. + mtlckname static var is onlyneeded if MOUNT_TABLE_ON_FILE. + (update_mnttab_fields): only needed if MOUNT_TABLE_ON_FILE. + +2000-09-03 Erez Zadok + + * buildall (Usage): typo in usage string + +2000-08-25 Erez Zadok + + * conf/mount/mount_linux.c (mount_linux): MNT2_NFS_OPT_VER3 may + is no defined on older Linux systems (kernel 2.0.36) + +2000-08-19 Erez Zadok + + * scripts/amd.conf.5: correct swapped descriptions for ldap_base + and ldap_hostports. + + * doc/am-utils.texi: correct swapped descriptions for ldap_base + and ldap_hostports. + + * scripts/amd.conf-sample: swap examples for ldap_base and + ldap_hostports. + +2000-08-13 Erez Zadok + + * scripts/amd.conf-sample: -O is CLI equivalent to "os" + amd.conf parameter + +2000-07-30 Erez Zadok + + * scripts/amd.conf-sample (nfs_retransmit_counter): correct + meaning and use of parameter + +2000-07-23 Erez Zadok + + * doc/am-utils.texi: updated URLs to www.am-utils.org. + +2000-07-04 Erez Zadok + + * doc/am-utils.texi (Supported Platforms): document osf4.0f + +2000-06-19 Erez Zadok + + * doc/am-utils.texi (dollar Selector Variable): document + ${dollar}. + + * amd/opts.c: special new variable ${dollar} which expands into a + literal '$' sign. Otherwise there is no way to include a literal + dollar symbol in an amd map. + +2000-06-11 Ion Badulescu + + * amd/opts.c (eval_selectors): don't deref opt after it's been + XFREE'd + +2000-06-11 Erez Zadok + + * amd/opts.c: move mount_type expansion until later in the list, + so common variable are "hit" first. + +2000-06-11 Ion Badulescu + + * amd/opts.c (split_opts, eval_selectors): split old function + eval_opts into two, one that only splits non-selectors and + assigns the values to fs_static, and one that only evaluates + selectors; also simplified the rather obfuscated logic inside + these functions + (expand_op): made it take a char * instead of a structure from + which it was using only one field (a char *). Also now returns a + char * instead of modifying said structure in place + (expand_opts): deal with the change above + (expand_selectors): renamed from expand_key + (expand_options): new function, expands non-selectors; it's the + complement of expand_selectors, both of which are just wrappers + around expand_op() + (eval_fs_opts): use the new split_opts, eval_selectors to allow + using options (like ${rhost}) in selectors + +2000-06-11 Ion Badulescu + + * config.guess.long: munge config.guess' output so that intel + linux appears as i386-pc-linux + +Fri Jun 9 16:06:56 2000 Erez Zadok + + * conf/nfs_prot/nfs_prot_bsdi2.h: getifaddrs() on bsdi2 is broken. + Don't use it. + +2000-06-09 Rainer Orth + + * amd/mapc.c (maptypes): Change default allocation mode to + MAPC_INC where reload support is missing to avoid warning in + mapc_create(). + +2000-06-09 Erez Zadok + + * conf/nfs_prot/nfs_prot_sunos5_5.h: turn off autofs support for + solaris 2.5 until a full port can be done. + +2000-06-07 Erez Zadok + + * Makefile.am, aux/GNUmakefile: fix maintainer rules to update + config.* and texinfo.tex files. + + * amd/nfs_subr.c (nfsproc_getattr_2_svc): Don't conditionalize the + mtime update of the symlinks on the SYMTTL option, but rather + delay unmount of what was looked up using am_timeo_w. Patch from + Nick Williams . As Nick says "Basically: + during unmount, increment the parent dir's mtime (fixes + people doing amq -u). During stat, increase the TTL (to fix bad-luck + timeouts), but leave the mtime alone." + + (nfsproc_lookup_2_svc, nfsproc_readlink_2_svc, unlink_or_rmdir, + nfsproc_readdir_2_svc): correctly update d_drops stats for amq -s. + Patch from Nick Williams . + + * amd/map.c (unmount_mp): update mtime of amd symlink to further + reduce the chances of race conditions between unmounting and + looking up an entry again. Patch from Nick Williams + . + + * README: updated instructions + + * bootstrap: remove log file before existing + +2000-06-06 Erez Zadok + + * configure.in: no longer using aux/ subdir. don't force autoconf + 2.14. comment out (but leave explanation) everything that's needed + for autoconf 2.14, so for now it works with autoconf-2.13, but the + code is ready for 2.14 when it is released. Similar changes to + make code work with automake-1.4, until the next release comes + out. + + * libamu/Makefile.am: include definitions that are required in + automake 1.4, but won't be necessary when the next release of + automake comes out (see XXX comments). + + * cache_check_dynamic.m4, check_checkmount_style.m4, + check_mnttab_style.m4, check_mount_style.m4, + check_network_transport_type.m4, check_nfs_prot_headers.m4, + check_umount_style.m4: use symlink creation code that works for + both autoconf 2.13 and 2.14 (when the latter comes out). + + * bootstrap: new script for maintainers to run to update autoconf, + automake, and libtool related files. Has the same effect as + "buildall -K". + + * removed dependencies on CVS versions of autoconf, automake, and + libtool, especially the modified automake I had. This is so that + maintainers could built the auto* files out of the latest released + GNU autoconf, automake, and libtool. However, without my nice + patches to automake, many files that used to live in the aux/ + subdir now were moved to the top level source directory: acconfig.h, + acinclude.m4, aclocal.m4, aux_conf.h.in, config.guess, + config.guess.long, config.h.in, config.sub, configure.in, depcomp, + install-sh, ltconfig, ltmain.sh, missing, and mkinstalldirs. Also + texinfo.tex and mdate-sh moved from aux/ dir to doc/ dir. + +2000-06-05 Erez Zadok + + * cvs-server.txt: instructions for maintainers to access the CVS + server for am-utils. + +2000-06-03 Ion Badulescu + + * amd/restart.c (restart): grr.. passing around initialized + structures is *really* bad habit. memset(mo, 0) so at least we can + test for NULL pointers... + +2000-06-02 Erez Zadok + + * amd/am_ops.c (ops_match): changed XLOG_USER messages about + merging addopts options to the more appropriate XLOG_INFO. Patch + submitted by Tom Schmidt . + + * config.{guess,sub}: make sure chmod'ed a+rx. Updated from + latest GNU copies. + +2000-05-30 Ion Badulescu + + * aux/configure.in: bump up the version to 6.1a2 + +2000-05-29 Ion Badulescu + + * released snapshot am-utils-6.1a1 + +2000-05-29 Ion Badulescu + + * amd/ops_autofs.c (autofs_mounted): retrieve the autofs protocol + version and store it in the fh + (autofs_get_opts): support protocol version 4 + + * amd/mntfs.c (uninit_mntfs): clear the autofs fh pointer after + releasing it + + * conf/transp/transp_sockets.c (amu_svc_getcaller): cast result of + svc_getcaller() to sockaddr_in, to appease glibc 2.2 + + * amd/amfs_auto.c (amfs_auto_bgmount): if the filesystem wants + autofs handling and the parent is already handled by autofs, + handle this filesystem as well + (amfs_auto_mount): create the mountpoint for an autofs mount + (amfs_auto_umount): do a real UMOUNT_FS() call for autofs mounts + + * include/am_utils.h (FS_AUTOFS): new flag signalling that the + filesystem wants autofs handling; toplvl, auto, host and direct + have this flag, at least for now + +2000-05-28 Erez Zadok + + * doc/am-utils.texi (Network Filesystem Group): minor typos + +2000-05-28 Ion Badulescu + + * amd/autil.c (am_unmounted): check mp->am_parent before dereferencing + + * amd/srvr_nfs.c (find_nfs_srvr): if NFS_SCALEDOWN, force + version=2 and proto=udp and try again + + * amd/ops_nfs.c (prime_nfs_fhandle_cache): take an explicit mntfs + instead of a voidp; handle the NFS_SCALEDOWN case by removing the + cached server entry and re-querying the server + + * amd/amfs_toplvl.c (amfs_toplvl_mount): removed ugly if + statement, assign mnttype from the fs-specific mf_ops->fs_type + instead + + * amd/amfs_nfsx.c (amfs_nfsx_init): call fs_init() only if it's + defined; + (amfs_nfsx_remount): removed superfluous check for fmount_fs -- it + always exists + (amfs_nfsx_umount): removed the hacked am_node -- umounted() now + takes an mntfs; call umounted() only if it's defined + + * amd/amfs_auto.c: removed amfs_auto_umounted and moved its + functionality into am_umounted(). + (amfs_auto_cont): Linux hack: if we got an EINVAL, mark the mntfs + as needing an "NFS scaledown" and retry the operation + + * amd/amfs_*.c: changed all fmount/fumount functions to + mount/umount and made them take an am_node instead of an + mntfs. This is a first step towards an amfs/ops API separation. + + * amd/{amfs,ops}_*.c: changed the umounted() function to take an + mntfs instead of an am_node + +2000-05-28 Ion Badulescu + + * amd/amfs_toplvl.c (mount_amfs_toplvl): init error to 0 to shut + up gcc + + * aux/macros/check_hide_mount_type.m4: revert to the 6.0 version + which always defines HIDE_MOUNT_TYPE + + * amd/ops_autofs.c (autofs_mounted): remove MFF_AUTOFS + initialization -- now done in init_mntfs() + + * amd/mntfs.c (init_mntfs): init mf_flags to MFF_AUTOFS if we are + mounting an autofs-style map + + * amd/*.c: use the MFF_AUTOFS flag instead of doing a costly STREQ + + * amd/amfs_toplvl.c (mount_amfs_toplvl): MTYPE_TYPE is not + necessarily a string type, so handle the nfs/autofs separation + differently + + * amd/amfs_auto.c (amfs_auto_bgmount): removed initialization of + opt_mount_type (now done in ops_match()) + + * amd/am_ops.c (ops_match): need to initialize opt_mount_type if + it's not initialized yet + +2000-05-27 Erez Zadok + + * libamu/wire.c (getwire_lookup): handle calling irs_gen_acc with + one or two arguments (bsdi3 vs. bsdi4) + +2000-05-27 Ion Badulescu + + * libamu/xutil.c (amu_release_controlling_tty): removed an unused + variable from the previous patch + +2000-05-26 Ion Badulescu + + * aux/macros/check_autofs_style.m4: fixed substitution for default + case + + * libamu/xutil.c (amu_release_controlling_tty): close standard + file descriptors, re-open them as /dev/null + + * include/am_defs.h: don't try to include both and + , it really doesn't work + +2000-05-16 Ion Badulescu + + * hlfsd/stubs.c (nfsproc_lookup_2_svc): added code to update mtime + on lookup if MNT2_NFS_OPT_SYMTTL is not defined (copied from + getattr). This fixes the problem introduced by the Linux nfsv3 + patches. + +2000-05-12 Ion Badulescu + + * Makefile.am (EXTRA_DIST_CONF): added conf/autofs/autofs_linux.h + +2000-05-10 Ion Badulescu + + * amd/ops_autofs.c (autofs_handle_fdset): call + autofs_lookup_failed instead of autofs_mount_failed, if the name + is not in the map + (autofs_umount_{succeeded,failed}): pass the actual mount point, + not its parent, as it's needed for clean-up; + + * amd/autil.c (am_unmounted): notify autofs that the umount + succeeded + + * amd/amfs_link.c (amfs_link_[u]mount): autofs link notification + moved elsewhere + +2000-05-09 Ion Badulescu + + * amd/amfs_auto.c (amfs_auto_bgmount): initialize opt_mount_type + if necessary; + (amfs_auto_mounted): test if opt_mount_type is NULL first + (amfs_auto_mount): revert earlier change + + * amd/ops_autofs.c (autofs_mount_failed): remove autofs directory + if mount failed + +2000-05-09 Ion Badulescu + + * amd/ops_autofs.c (autofs_link_mount): use am_link as target + + * amd/map.c (unmount_mp): release file handle for autofs f/s about + to be unmounted; this leak was preventing the unmount altogether + + * amd/amfs_auto.c (amfs_auto_umount): removed autofs-specific + code, was broken + (amfs_auto_bgmount): nfs mounts + sublinks is a valid combination, + handle it + +2000-05-07 Ion Badulescu + + * Merged changes from stable branch + +2000-04-30 Erez Zadok + + * include/am_defs.h, aux/macros/mount_headers.m4, + aux/macros/try_compile_anyfs.m4: include linux/kdev_t.h and + linux/list.h before including linux/fs.h, and define __KERNEL__ + for those two headers. All of this to get a couple of definitions + that are needed in the new struct vfsmount. + + * aux/configure.in: look for and . + + * include/am_defs.h, aux/macros/mount_headers.m4: avoid conflicts + between linux/in.h. and netinet/in.h (linux-2.3.99-pre6), by + defining _LINUX_IN_H so it doesn't get included. + +2000-04-03 Erez Zadok + + * minor new ports: i686-pc-linux-gnu-rh6.2, + i386-unknown-freebsdelf3.4, i586-pc-linux-gnu-rh6.2. + +2000-04-03 Erez Zadok + + * aux/acconfig.h: move all #undef macros above @TOP@, so they can + be recognized by pickier autoconf. + +2000-04-03 Erez Zadok + + * aux/macros/cache_check_dynamic.m4 (ac_tmp): use correct echo -n + or \c. + +2000-03-25 Erez Zadok + + * include/am_defs.h: ditto + + * aux/macros/{mount_headers,try_compile_anyfs}.m4: force + non-inclusion of . Breaks build on newer 2.3 + kernels. + +2000-02-26 Erez Zadok + + * doc/am-utils.texi (Amq -w option): document new amq -w option. + + * amq/amq.8: document new amq -w option. + + * amq/amq.c: disable last remains of insecure amq -M code. + (main): add amq -H option to show usage. + (main): new amq -w option, translates getpwd() into an amd path. + +2000-02-25 Ion Badulescu + + * libamu/util.c (get_server_pid): new function + + * hlfsd/hlfsd.c (main): make use of HIDE_MOUNT_TYPE + + * conf/transp/transp_sockets.c: removed create_autofs_service + + * conf/mount/mount_linux.c: added autofs mount options; split + mount_linux into two functions, itself and do_mount_linux + + * aux/macros/check_hide_mount_type.m4: better failover + + * aux/configure.in: changed version to 6.1a1; added + AC_CHECK_AUTOFS_STYLE + + * aux/aux_conf.h.in: added @am_utils_autofs_style@ + + * amd/opts.c: added "mount_type" option + + * amd/ops_autofs.c: ifdef-ed out solaris code; moved all autofs + variables in here; split create_autofs_service into sun and linux + specific functions + + * amd/nfs_start.c: removed autofs-specific variables + + * amd/map.c (get_root_nfs_fh): renamed root_fh to get_root_nfs_fh + (get_root_ap): renamed root_ap to get_root_ap + + * amd/amfs_toplvl.c (amfs_toplvl_ops): replaced + amfs_toplvl_mounted with amfs_auto_mounted + (mount_amfs_toplvl): moved code around, added autofs handling + (amfs_toplvl_mounted): removed + + * amd/amfs_nfsl.c (amfs_nfsl_ops): removed amfs_auto_fu?mount, + replaced with amfs_nfsl_u?mount + + * amd/amfs_linkx.c (amfs_linkx_ops): removed amfs_auto_fumount, + replaced with amfs_link_umount + + * amd/amfs_link.c (amfs_link_ops): removed amfs_auto_fu?mount, + replaced with amfs_link_u?mount + + * amd/amfs_direct.c (amfs_direct_ops): changed "mounted" function + from amfs_toplvl_mounted to amfs_auto_mounted + + * all: added autofs hooks throughout the code + + * amd/am_ops.c (vops): autofs_ops doesn't belong in here, removed + + * README.autofs: linux status update + +2000-02-24 Erez Zadok + + * minor new port: alphaev6-dec-osf5.0 + + * doc/am-utils.texi (Supported Platforms): hpux-11 supports NFSv3, + but only for UDP. + + * released snapshot am-utils-6.0.4s3 + + * conf/nfs_prot/nfs_prot_hpux11.h: support NFSv3 in hpux-11. Note + that hpux-11 NFSv3 supports UDP only, and trying TCP locks up the + kernel! Must set nfs_proto=udp in amd.conf [global]. + + * aux/config.guess.long: set and export PATH separately. DU5 + /bin/sh doesn't like setting it on the command line in a + back-tick'ed `script`. + +2000-02-24 Ion Badulescu + + * Makefile.am: removed struct_nfs_mount_data.m4 + + * aux/macros/struct_nfs_mount_data.m4: deleted + + * aux/acconfig.h: removed definition for HAVE_NFS_MOUNT_DATA + + * aux/configure.in: removed check for struct nfs_mount_data + +2000-02-24 Ion Badulescu + + * amd/amfs_auto.c (amfs_auto_bgmount): changed log message to + avoid having 'failed' in a message not indicating a failure + (amfs_auto_lookuppn): ditto + + * amd/ops_autofs.c (autofs_bgmount): ditto + (autofs_lookuppn): ditto + +2000-02-24 Erez Zadok + + * added .cvsignore files into the CVS repository. + + * remove files which can be regenerated: .in, configure, some + files in aux/, and more. + +2000-02-20 Erez Zadok + + * doc/am-utils.texi (nfs_vers/nfs_proto): description of two + parameters was reversed. Reported by Paul Jenner + . + +2000-02-16 Erez Zadok + + * released snapshot am-utils-6.0.4s2 + + * amd/mntfs.c (realloc_mntfs): don't fallback on certain ops such + as inherit, error, and toplvl (failover code). + + * amd/conf.c (gopt_nfs_vers, gopt_nfs_proto): two new (documented) + global options in amd.conf: one to set the NFS version globally + (i.e., nfs_vers=2), and one to set the NFS protocol globally + (i.e., nfs_proto=udp). + + * amd/mntfs.c (realloc_mntfs): attempt to fix the failover code, + so when a matching mount entry failed, try the next one. + +2000-02-15 Erez Zadok + + * amd/amfs_auto.c: a new debug option "readdir" to trace the + progress of the browsable_dirs code. + + * conf/mount/mount_linux.c (mount_linux): ensure that the new + linux NFSv3 code works for v2-only machines. + +2000-02-14 Erez Zadok + + * aux/configure.in: cleanup unused dnl entries. + + * conf/mount/mount_linux.c (parse_opts): typo: check for string + equality, not string inequality for pcfs and cdfs. + + * aux/acconfig.h: look for MNT2_NFS_OPT_INTR as well. + + * libamu/mount_fs.c (compute_mount_flags): check for INTR and + NOINTR options as well (intr was never passed to linux mount + syscall). + +2000-02-10 Erez Zadok + + * released snapshot am-utils-6.0.4s1 + + * aux/GNUmakefile: buildall -k (for maintainers) temporarily now + ignores autoconf warnings: "The macro `AC_OUTPUT_COMMANDS' is + obsolete". It is harmless but annoying, and will be fixed when + autoconf and automake in their respective CVS trees are working + and in sync again. + + * scripts/amd.conf.5: document -D hrtime,xdrtrace + + * all man pages: update copyright to 2000. + + * doc/am-utils.texi: update copyright to 2000. + +Wed Feb 9 14:22:31 2000 Rainer Orth + + * include/am_utils.h (D_XDRTRACE): Define. + (D_TEST): Disable here. + + * libamu/xutil.c (dbg_opt): Handle it. + + * doc/am-utils.texi (-D-Option): Document it. + + * libamu/xdr_func.c: Use it instead of D_TRACE. + + * include/am_utils.h (D_HRTIME): Define. + + * doc/am-utils.texi (-D-Option): Document it. + + * libamu/xutil.c (show_time_host_and_name): Print high-resolution + timestamp if available and activated. + + * aux/configure.in (clock_gettime): Check for it in -lrt and + -lposix4. + + * hlfsd/hlfsd.c (mnttab_file_name): Initialize to MNTTAB_FILE_NAME + if defined, even for some systems with in kernel mount tables. + +2000-02-08 Ion Badulescu + + * aux/macros/mount_headers.m4: remove #if 0 around linux/nfs.h to + allow compiles against libc5 + + * aux/macros/check_mnttab_type.m4: avoid detecting nfs3 under + linux when the kernel doesn't support it + + * include/am_compat.h: add workaround for linux efs + +2000-02-08 Erez Zadok + + * aux/configure.in: test for ANSI C compiler (before AC_C_CONST). + Comment out unused AC_STRUCT_ST_RDEV (which is obsolete anyway). + +2000-02-07 Ion Badulescu + + * libamu/mount_fs.c (compute_nfs_args): turn on VER3 option for + nfs (linux NFSv3). + + * include/am_defs.h: avoid reinclusion of some header files under + linux. + + * conf/nfs_prot/nfs_prot_linux.h: support NFSv3. + + * conf/mount/mount_linux.c (mount_linux): support nfs mount + (implementation) version 4 for NFSv3. + + * aux/macros/try_compile_nfs.m4: use AC_MOUNT_HEADERS. + + * aux/macros/mount_headers.m4: don't include (may + need to fix the code on other linux machines). + + * aux/macros/check_mnttab_type.m4 (ac_safe): ditto. + + * aux/macros/check_fs_mntent.m4 (ac_safe): check for nfs3 option + under linux (depends on ac_cv variable, is that a good idea?) + + * added NFSv3 support for linux + + * aux/{configure.in,acconfig.h}: new option ver3 + + * aux/macros/mount_headers.m4: commented out inclusion of + linux/fs.h, it's not needed on rh61 (and actually generates + conflicts), we should see if it's still needed on libc5 systems + + * aux/macros/try_compile_nfs.m4: use AC_MOUNT_HEADERS rather than + try to have its own (out of date) list of headers and ifdef's and + ... + +2000-02-07 Erez Zadok + + ******************************************************************* + *** Released am-utils-6.0.3 *** + ******************************************************************* + +2000-02-06 Erez Zadok + + * conf/mount/mount_default.c: dummy empty file to work around a + limitation of automake (it looks for LIBBOBJS in aclocal.m4 and + processes them even if they are optional, enclosed in if/else). + +2000-01-29 Erez Zadok + + * released snapshot am-utils-6.0.3s5 + +2000-01-25 Erez Zadok + + * update to use latest version of autoconf, automake, and libtool. + + * aux/GNUmakefile (depcomp): "make update" should also update the + depcomp script. + + * Makefile.am (EXTRA_DIST_AUX): include depcomp in distribution. + + * aux/configure.in: use renamed AC_CHECK_AMU_FS. + + * aux/macros/check_amu_fs.m4: renamed macro name and file name to + say AMU_FS, not AM_FS. + + * aux/acconfig.h: renamed HAVE_AM_FS_* to HAVE_AMU_FS_* because + latest version of autoconf doesn't handle it (bug in 2.14a) + + * aux/configure.in: require version 2.14 of autoconf. + + * amd/mapc.c (mapc_reload_map): more fixes from Nick Williams. + + * doc/am-utils.texi (Automount Filesystem): document type:=auto + map browsability option. + + * amd/mapc.c (make_entry_chain): patch from Steven Danz + to allow browsable auto maps. + +2000-01-24 Erez Zadok + + * released snapshot am-utils-6.0.3s4 + + * amd/mapc.c (mapc_reload_map): fixes to sync maps even if they + are set to mapcache:=sync. Fix from Nick Williams + . + +2000-01-20 Erez Zadok + + * released snapshot am-utils-6.0.3s3 + + * minor port to i386-unknown-netbsd1.4.1 + + * amd/nfs_subr.c (nfsproc_getattr_2_svc): patch from Nick Williams + to fix (or reduce the incidence of) stale + file handles when doing rapid mounts and umounts in succession + such as "ls /vol/foo ; amq -u /vol/foo ; ls /vol/foo" + +2000-01-18 Erez Zadok + + * minor port to i386-pc-bsdi4.1. + +2000-01-13 Erez Zadok + + * libamu/wire.c (getwire_lookup): pass NULL as conf_file (2nd) + argument to irs_gen_acc(), which was changed in bsdi 4.1. + +2000-01-12 Erez Zadok + + * amd/get_args.c (get_args): don't use MNTTAB_FILE_NAME for + systems with in-kernel mount tables unless this macro is defined + (Solaris 8). + +2000-01-01 Erez Zadok + + * ALL: bump copyright year to 2000. + +1999-12-16 Erez Zadok + + * conf/mount/mount_svr4.c (mount_svr4): optionstr exists on + solaris 7, but should not be used unless MAX_MNTOPT_STR also + exists (solaris 8). + + * doc/am-utils.texi (opts Option): document new mount option: + optionstr. + +Fri Dec 10 01:31:53 1999 Rainer Orth + + * conf/trap/trap_svr4.h (MOUNT_TRAP): Pass mount option string to + mount_svr4(). + (mount_svr4): Adapt prototype. + * conf/mount/mount_svr4.c (mount_svr4): Pass them to kernel so + they are evaluated and show up in Solaris 8 in-kernel mnttab. + + * aux/configure.in: Check for new Solaris 8 MS_OPTIONSTR mount(2) + option. + * aux/acconfig.h (MNT2_GEN_OPT_OPTIONSTR): Provide template. + +1999-12-10 Erez Zadok + + * released snapshot am-utils-6.0.3s2 + +1999-12-09 Erez Zadok + + * doc/am-utils.texi (opts Option): document noexec and nomnttab + (new to Solaris 8). + + * Makefile.am (EXTRA_DIST_CONF): include nfs_prot_sunos5_8.h in + distribution. + + * applied fixes from Rainer Orth for Solaris 8. + + * libamu/wire.c (getwire): increment the cp pointer in the loop + body, because the ioctl() inside the "for" loop will overwrite the + ifr structure, thus not detecting all of the interfaces. Bug + reported and fixed by Amitha Perera . + +Thu Dec 9 19:09:38 1999 Rainer Orth + + * conf/mtab/mtab_svr4.c (unlockmnttab, lockmnttab): No-ops if + MOUNT_TABLE_ON_FILE. + + * amd/get_args.c (get_args): Initialize mnttab_file_name even for + in-kernel mount table. conf/mtab/mtab_svr4.c (read_mtab) depends + on a non-NULL value. + + * amd/info_ldap.c (get_ldap_timestamp): Don't peek into opaque + LDAP structure to get error code, but use it directly. + (amu_ldap_search): Likewise. + + * conf/nfs_prot/nfs_prot_sunos5_7.h: Rip superfluous and wrong + ldap support. + * conf/nfs_prot/nfs_prot_sunos5_8.h: Likewise. + + * conf/nfs_prot/nfs_prot_sunos5_8.h: New file, doesn't typedef + nfsstat, already in . + * aux/macros/check_nfs_prot_headers.m4: Use it for all Solaris + versions beyond 7. + Allow for micro versions of SunOS 5.[67]. + + * aux/configure.in: Check for new Solaris 8 Beta Refresh + MS_NOMNTTAB mount(2) option. + * aux/macros/check_mnttab_location.m4: Use it to test for + mntfs-based in-kernel mnttab. + + * aux/macros/os_cflags.m4: Treat Solaris 8 and higher like 2.6/7. + + * aux/macros/check_fs_headers.m4: Revert test for duplicate + objects. + * aux/macros/check_fs_mntent.m4: Likewise + + * aux/macros/HEADER: Fixed typo. + + * include/am_defs.h: Likewise. + +1999-12-01 Erez Zadok + + * aux/macros/*.m4: prepare for hpux-12 (assume same as hpux-11) + +1999-11-16 Erez Zadok + + * BUGS: document glibc-2.1 nis file descriptor leak in yp_bind. + + * amd/info_ldap.c (string2he): updated function which does not + corrupt strings when called more than once. Patch from + JOHANN.PFEFFERL.JP@germany.agfa.com. + +1999-11-15 Erez Zadok + + * MIRRORS (Asia): two new mirrors in Japan. + +1999-11-10 Erez Zadok + + * doc/am-utils.texi: document new variables for ${uid} and ${gid}. + + * amd/nfs_subr.c (nfsproc_lookup_2_svc): find the uid/gid of the + last lookup from the RPC credentials. + + * aux/configure.in: upped version-info to 4:0:2 because I've added + a new interface to libamu. + + * libamu/misc_rpc.c (getcreds): moved function from hlfsd to here, + so it can be used by amd. + + * amd/opts.c: new variables ${uid} and ${gid}. + +1999-10-15 Erez Zadok + + * scripts/ctl-amd.in: add "status" command that tells you if amd + is running on not (same output as RedHat scripts). + Added start_msg and stop_msg targets as they are used on HPUX. + reported by Jon Peatfield . + +1999-10-13 Erez Zadok + + * released snapshot am-utils-6.0.3s1 + +1999-10-12 Erez Zadok + + * amd/amd.c (main): On AIX you must lower the stack size using + ulimit() before calling plock. Otherwise plock will reserve a lot + of memory space based on your maximum stack size limit. Since it + is not easily possible to tell what should the limit be, I print a + warning before calling plock(). See the manual pages for + ulimit(1,3,4) on your AIX system. + + * include/am_defs.h: define default extern for vsnprintf() + + * aux/configure.in: check for extern definition for vsnprintf() + +1999-10-08 Erez Zadok + + * amd/amfs_auto.c (amfs_auto_bgmount): patch from Nick Williams + . SYMPTOMS: 'occasionally' sublinks do not point to + the correct location, but to the top level of the mountpoint and + an (error-hook) is seen being mounted in the log file. This causes + things to Go Wrong(TM). + CAUSE: When evaluating two locations which are requested + 'practically simultaneously', and the two locations resolve to the + same NFS mountpoint (but different sublinks), the later request + will be "deferred" and retried after wakeup when the first mount + succeeds. To do this, it rewinds the options location string to + re-evaluate the location when the mount is retried. However, it + shouldn't rewind the options for two reasons: (a) the semantics of + the map language say you shouldn't and (b) the NFS mount reference + is not reset at the same time, meaning that on the retry it will + have an options structure out-of-sync with the mount + structure. The "shortcut" code when retrying the mount sees the + mount structure is already filled in and does not fully evaluate + the options structure.... so if the first location is not the one + which ties in with the mountpoint (see ordering in the + recreate-by), you're now well messed up. + + * BUGS: mention aix4.3 plock() bug (memory usage blows up and + plock fails) + +1999-10-07 Erez Zadok + + * aux/GNUmakefile: certain files should be copied if they are + newer, not also if they are bigger: install-sh, ltconfig, + ltmain.sh, mdate-sh, missing, mkinstalldirs, and texinfo.tex. + + * minor new port: i586-pc-linux-gnu-rh6.1 (RedHat Linux 6.1) + +1999-10-05 Erez Zadok + + * aux/macros/check_nfs_prot_headers.m4: prepare for OSF-5. + + * aux/macros/check_nfs_fh_dref.m4: prepare for Tru64, aka OSF-5. + +1999-09-30 Erez Zadok + + ******************************************************************* + *** Released am-utils-6.0.2 *** + ******************************************************************* + +1999-09-27 Erez Zadok + + * conf/mount/mount_linux.c (mount_linux): print the updated mount + flags. + + * doc/am-utils.texi: document $full_os and $vendor. + + * scripts/amd.conf-sample: examples of $full_os and $vendor. + + * scripts/amd.conf.5: document $full_os and $vendor. + + * amd/conf.c: add support for $full_os and $vendor. + +1999-09-26 Erez Zadok + + * doc/am-utils.texi (netgrp Selector Function): don't give + examples with old single '=' assignment variable. Use foo:=bar. + + * amd/amfs_auto.c (amfs_auto_bgmount): corectly indent long + comment describing this complex function. + + * doc/Makefile.am (alldocs): do install-ps last (because distiller + is slow) and install-html next to last (because texi2html is also + slow). + + * amd/amd.8: Major fixes to the description of the option -t + timeout.retransmit. + + * doc/am-utils.texi: better description of "trace" debug option. + amd -H (not -v) shows log_options and debug_options. Major fixes + to the description of amd -t timeout.retransmit, and the amd.conf + parameters nfs_retransmit_counter and nfs_retry_interval. + + * scripts/amd.conf.5: better description of "trace" debug option. + amd -H (not -v) shows log_options and debug_options. Major fixes + to the description of the parameters nfs_retransmit_counter and + nfs_retry_interval. + +1999-09-25 Erez Zadok + + * doc/am-utils.texi (Automount Filesystem): cache:= is not a mount + option, but a mount map option. + + * libamu/xutil.c (switch_to_logfile): log the name of the log file + we switched into, after the log file had been [re]opened. + +1999-09-24 Erez Zadok + + * amd/mapc.c (mapc_reload_map): count and show the number of times + a map was reloaded. Only reload a map if its modify-time was + updated. But amq -f forced a reload no matter what. + + * amd/amd.h: new flag to struct mnt_map to count number of times a + map was reloaded. + + * amd/mapc.c (mapc_reload_map): attempt to reload the map without + losing current data by reloading into a temp copy, and switching + the hashes round only if the reload was successful. Patch from Jon + Peatfield . + (mapc_sync): mapc_reload_map() always succeeds. + +1999-09-22 Erez Zadok + + * amd/info_ldap.c (amu_ldap_rebind): don't busy-loop trying to + rebind to an LDAP server forever. Try up to 10 times. + + * fsinfo/fsi_lex.l (yyerror): rework code that will never happen + + * released snapshot am-utils-6.0.2s2 + + * aux/configure.in: bumped library version-info to 3:2:1, since + some libamu code got changed. + + * libamu/xutil.c (real_plog): use vsnprintf, not vsprintf, which + is better and more secure. Fix from "David O'Brien" + . + + * aux/configure.in: check for vsnprintf. + +1999-09-21 Erez Zadok + + * aux/macros/linux_headers.m4: use AC_MSG_ERROR. + + * aux/macros/opt_{cppflags,ldflags,libs,amu_cflags}.m4: the ARG is + not optional. Make sure ARG is supplied else flag an error. + +1999-09-18 Erez Zadok + + * minor port i386-unknown-freebsdelf3.3 + + * released snapshot am-utils-6.0.2s1 + +1999-09-17 Erez Zadok + + * aux/configure.in (AC_CHECK_FUNCS): check for getitimer(). + + * include/am_defs.h: extern definition for getitimer(). + + * aux/configure.in: use AC_CHECK_EXTERNS. Look for getitimer() + extern. + + * aux/macros/check_extern.m4: define a simple AC_CHECK_EXTERNS + that calls AC_CHECK_EXTERN in a loop. This saves repeated code in + configure. + + * aux/macros/type_auth_create_gidlist.m4: AIX 4.x systems use + 'int' as the 5th arg to authunix_create(). + + * aux/macros/type_recvfrom_fromlen.m4: all AIX 4.x systems use a + size_t for the 6th arg of recvfrom(). + + * aux/macros/os_cflags.m4: define _XOPEN_EXTENDED_SOURCE for + aix4.x systems. + + * libamu/mount_fs.c (print_nfs_args): cast some values to int, to + avoid gcc -Wall errors. + + * scripts/expn.in: use sockaddr_in(), not pack() to correctly fill + in a struct sockaddr_in. On Solaris x86 hosts, using pack() + results in byte-misaligned values. Bug fix from Jeffrey C Honig + . + + * libamu/mount_fs.c (compute_automounter_mount_flags): turn on + automntfs (ignore on bsdi-4.1) flag. + (compute_automounter_nfs_args): ditto. + + * aux/acconfig.h: add new flag for automntfs (ignore) + + * aux/configure.in: check for new automntfs flag (bsdi-4.1). + +1999-09-14 Erez Zadok + + * MIRRORS: added new site in Germany. Updated status of umn.edu + and ferginc.com, who may no longer be mirroring am-utils. + +1999-09-08 Erez Zadok + + ******************************************************************* + *** Released am-utils-6.0.1 *** + ******************************************************************* + +1999-09-08 Erez Zadok + + * aux/macros/mount_headers.m4: bsdi-2.1 needs MAXQUOTAS and struct + netexport defined. + + * aux/macros/try_compile_anyfs.m4: bsdi-2.1 needs MAXQUOTAS and + struct netexport defined. + +1999-09-07 Erez Zadok + + * aux/macros/check_field.m4 (ac_upcase_var_name): include + so we can detect fields within struct ifaddrs. + + * libamu/wire.c (getwire): bsdi-2.1 uses a second arg to + getifaddrs() and struct ifaddrs has no ifa_next field. + + * aux/configure.in: check if 'struct ifaddrs' has a field + ifa_next. + + * include/amq_defs.h (AMQ_STRLEN): double size of amq string + length to 2048 bytes. + + * conf/nfs_prot/nfs_prot_netbsd1_4.h: include several more nfs + header files and ufs/ufs/ufsmount.h. Bug reported by christos@zoulas.com. + + * aux/macros/try_compile_anyfs.m4: include . + Bug reported by christos@zoulas.com. + + * aux/macros/mount_headers.m4: include + +1999-09-06 Erez Zadok + + * libamu/xutil.c (expand_error): use strerror if available instead + of sys_errlist. Bug reported by + christos@zoulas.com. + + * hlfsd/hlfsd.c (fatal): use strerror if available instead of + sys_errlist. + + * amq/amq.c (show_mi): use strerror if available instead of + sys_errlist. + + * aux/macros/check_nfs_prot_headers.m4: make sure netbsd1.4 + nfs_prot header is used for any future (1.5 etc.) netbsd systems. + + * amq/pawd.c (find_mt): check for type nfsl as well. Fix from + "Andrew J. Korty" + +1999-08-29 Erez Zadok + + * doc/am-utils.texi (Supported Platforms): updates for redhat + systems. + + * INSTALL: updates for redhat systems. + + * libamu/wire.c (getwire_lookup): spell "succeeded" correctly + +1999-08-28 Erez Zadok + + * scripts/ctl-amd.in: sleep 1 second between killing amd and + restarting it, because amq may respond that amd is down, where in + fact it is still trying to unmount itself after unmapping itself + from the portmapper. + + * aux/config.guess.long: new script to print long version of + config.guess output. + + * buildall (host_alias): use long version of config.guess. + +1999-08-27 Erez Zadok + + * scripts/ctl-{amd,hlfsd}.in: update RH tags for start/stop + scripts. + +1999-08-24 Erez Zadok + + * released snapshot am-utils-6.0.1s11 + + * libamu/xutil.c (expand_error): make sure expanding the string + with textual version of errno doesn't overrun the 1024 bytes + buffer. + (real_plog): null terminate msg, just in case. + + * amq/amq.c (main): don't getopt -M option and don't process it + unless ENABLE_AMQ_MOUNT is on. + + * amd/amq_svc.c (amq_program_1): all code that relates to amq -M + is conditional on #ifdef ENABLE_AMQ_MOUNT. + + * amd/amq_subr.c: remove amqproc_mount_1_svc() function invoked + when amq -M code is disabled. Not taking any chances. + +1999-08-23 Erez Zadok + + * released snapshot am-utils-6.0.1s10 + +Sun Aug 22 16:18:59 1999 Erez Zadok + + * libamu/wire.c (getwire_lookup): if getnetbyaddr failed (e.g., on + 128.59.16.0), try to shift the network out of zeros (e.g., + 128.59.16) and try again. Irix 6.4 requires short network + numbers. + +1999-08-22 Erez Zadok + + * libamu/wire.c (getwire_lookup): correctly compute subnet using + netmask. + + * libamu/mount_fs.c (compute_automounter_nfs_args): require that + Amd's own NFS mounts use reserved ports (if possible). IP packet + security fix from Jeffrey C Honig . + + * conf/transp/transp_tli.c (create_autofs_service): use correct + autofs_port. IP packet security fix from Jeffrey C Honig + . + + * conf/transp/transp_sockets.c (bindnfs_port): remove unnecessary + function. IP packet security fix from Jeffrey C Honig + . + (create_nfs_service): use bind_resv_port() directly. ensure that + privileged ports are used. IP packet security fix from Jeffrey C + Honig . + + * amd/nfs_prot_svc.c (nfs_program_2): verify that requests come + from reserved ports and from a local IP address. IP packet + security fix from Jeffrey C Honig . + + * amd/amq_subr.c (ok_security): use IPPORT_RESERVED, instead of + hard-coded 1024. IP packet security fix from Jeffrey C Honig + . + (amqproc_mount_1_svc): provide information on the caller making an + amq -M request. IP packet security fix from Jeffrey C Honig + . + + * amd/map.c (free_map_if_success): If the program doing an unmount + of a program filesystem fails, amd tries to interpret the return + code as an errno. Fix from Jeffrey C Honig . + + * amd/info_nis.c (determine_nis_domain): don't always print + warning about NIS domain name not being set, even if NIS is not in + use. + +1999-08-21 Erez Zadok + + * amd/info_ldap.c (get_ldap_timestamp): initialize variable err. + (amu_ldap_search): initialize variable err. + +1999-08-16 Erez Zadok + + * libamu/wire.c: written using getifaddrs() for BSD systems, + contributed by BSDI, Jeffrey C Honig ). + +1999-08-15 Erez Zadok + + * include/am_utils.h (SALLOC): a simple macro to allocate N bytes. + + * aux/configure.in: check for irs.h and ifaddrs.h. + Increase libamu.so --version-info to 3:1:1 since we've changed the + source code for the library. + Check for getifaddrs() function. + +1999-08-14 Erez Zadok + + * libamu/mount_fs.c (print_nfs_args): print fields namlen and + bsize if they exist. + + * conf/mount/mount_linux.c (mount_linux): set nfs_args_t->namlen + and ->bsize fields correctly, if those fields exist. This is a + bug in that amd neglected to set these fields, but told the + kernel it is mounting the nfs_args_t structure using mount version + 3 (which requires both bsize and namlen fields). + + * aux/configure.in: test for two new nfs_args_t fields (used on + newer linux with mount versions 2 and 3): bsize and namlen. + + * doc/am-utils.texi (netgrpd Selector Function): document new + selector function. + + * amd/opts.c (f_netgrpd): new amd map function netgrpd(ARG) to + test if the current host (fully-qualified name) is in the ARG host + netgroup. The netgrp() function uses the short form of a host + name. Patch from Christophe Kalt . + + * doc/am-utils.texi (automount2amd): document new script. + + * scripts/Makefile.am: create, install, and distribute + automount2amd perl script and its man page. + + * scripts/automount2amd.8: new man page for automount2amd. + + * scripts/automount2amd.in: new file, contributed a in 1993 by + Mike Walker . Fixed to use addopts for + any automount map options specified. + +1999-08-09 Erez Zadok + + * released snapshot am-utils-6.0.1s9 + +1999-08-09 Erez Zadok + + * amd/amfs_auto.c (DOT_DOT_COOKIE): set the NFS cookie of '..' to + 1. + (amfs_auto_readdir): use DOT_DOT_COOKIE instead of (u_int)~0. + (amfs_auto_readdir_browsable): use DOT_DOT_COOKIE instead of + (u_int)~0. + + * amd/mapc.c (make_entry_chain): NFS cookies should be + monotonically increasing, because Linux 2.3 expects that, even + though it is not in the spec (RFC-1094) for NFS V2. + +1999-08-06 Erez Zadok + + * aux/macros/check_lib_funcs.m4: removed unused macro. + + * aux/macros/linux_headers.m4: new macro to ensure that linux + kernel headers match running kernel version. + + * aux/acconfig.h: define HOST_HEADER_VERSION so we can check if + amd is configured on linux hosts that run one kernel but have + headers for a different version. + + * amd/info_nis.c (nis_isup, nis_search, nis_init): fixes for the + logic which uses nis_isup and has_yp_order. Make sure it is used + correctly , esp. for NIS+ in NIS-compatibility mode. Bug fix from + Peter Breitenlohner . + + * include/am_defs.h: fix conflicts on linux 2.2 systems with older + libc5. Bug fix from Peter Breitenlohner . + + * scripts/lostaltmail.in: use sockaddr_in(), not pack() to + correctly fill in a struct sockaddr_in. On Solaris x86 hosts, + using pack() results in byte-misaligned values. + +1999-08-02 Erez Zadok + + * conf/mtab/mtab_aix.c (mnt_dup): add support for nfs3 + mounting, as per Dale Talcott . Also use + better macros for case statement. + + * conf/nfs_prot/nfs_prot_sunos5_7.h: don't include ldap structures + unless ldap is actually available. + + * use updated config.guess and config.sub. Use newer automake + that fixes problems with distributing optional libamu files + (clnt_sperrno.c, hasmntopt.c, strcasecmp.c, strdup.c, strstr.c, + and ualarm.c) + +1999-07-19 Erez Zadok + + * minor port i386-unknown-openbsd2.5 + +1999-07-17 Erez Zadok + + * minor ports to freebsdelf 3.[0-2] and 4.0 completed + + * aux/macros/check_nfs_prot_headers.m4: support freebsdelf + + * aux/macros/check_nfs_socket_connection.m4: support freebsdelf + +1999-06-24 Erez Zadok + + * released snapshot am-utils-6.0.1s8 + +1999-06-23 Erez Zadok + + * include/am_defs.h: avoid various header conflicts on + RedHat/Linux 6.0 and kernels 2.2.10 or newer. + + * aux/configure.in: look for (RedHat/Linux 6.0 and + kernel 2.2.10) + + * amd/amfs_program.c (amfs_program_exec): make sure logfp is + initialized dynamically to stderr if needed. + + * libamu/xutil.c (dplog): make sure logfp is initialized + dynamically to stderr if needed. + (plog): ditto. + + * amd/amfs_program.c (amfs_program_exec): set logfp to stderr if + not initialized. + + * libamu/xutil.c: don't initialize logfp statically to stderr, + because on RedHat/Linux 6.0 (kernel 2.2.10) stderr can no longer + be manipulated like a variable. + + * include/am_defs.h: avoid more conflicts between and + on 2.2 linux kernels. + include as needed (RedHat/Linux 6.0) + +1999-04-20 Erez Zadok + + * all Makefile.am: use AMU_NFS_PROT_HEADER (not *_HEADERS) + + * aux/macros/check_nfs_prot_headers.m4 (AMU_NFS_PROT_HEADER): + renamed AC_SUBST name from *_HEADERS to *_HEADER so that automake + won't attempt to add it to the header files to distribute. + +1999-04-19 Erez Zadok + + * aux/GNUmakefile: invoke aclocal with new --altdir flag. + +1999-04-16 Erez Zadok + + * minor new port: i386-unknown-netbsd1.4 (ALPHA) + + * aux/macros/check_field.m4: no need to include + and because they are also included + from MOUNT_HEADERS. Causes multiple inclusion of unprotected + headers on netbsd-1.4_ALPHA. + +1999-04-15 Erez Zadok + + * aux/macros/extern_sys_errlist.m4 (pattern): netbsd-1.4_ALPHA's + sys_errlist extern doesn't end with []. + + * aux/macros/check_nfs_prot_headers.m4: netbsd 1.4 support. + +1999-04-11 Erez Zadok + + * newer automake wants texinfo.tex to be in aux/ not doc/ + +1999-03-30 Erez Zadok + + * amd/conf_parse.y: alloca support. + + * fsinfo/fsi_gram.y: alloca support. + + * libamu/Makefile.am (libamu_la_LIBADD): compile alloca.o if + needed. + + * aux/configure.in: test for alloca support. Needed because bison + generates parsers that use alloca, and hpux9 does have alloca and + its /bin/cc doesn't support it builtin (the way gcc does). + + * libamu/alloca.c: new file, needed on hpux9 with /bin/cc. Taken + verbatim from bison-1.25. + + * include/am_defs.h: fixed typo #errir -> #error + + * released snapshot am-utils-6.0.1s7 + + * README.y2k: more information about am-utils' compatibility, from + Paul Balyoz . + + * scripts/lostaltmail.in (Splice_in_resent_headers): ensure Y2K + compliant format. Patch from Paul Balyoz + + + * doc/am-utils.texi (Supported Platforms): hpux10.20 could have + nfs v.3 support (with some vendor patches), but it is turned off. + + * aux/macros/os_cflags.m4: use ansi compiler options on hpux. + + * conf/nfs_prot/nfs_prot_hpux.h: Turn off NFS V.3 support to avoid + confusing am-utils. 10.20 with some patches has incomplete + support. Patch from Jon Peatfield + . + +1999-03-24 Erez Zadok + + * minor port i386-pc-bsdi4.0.1 + +1999-03-20 Erez Zadok + + * doc/am-utils.texi (Supported Platforms): add forgotten listing + for powerpc-linux. + +1999-03-18 Erez Zadok + + * scripts/amd.conf.5: fix typo. From Jeffrey C Honig + . + + * doc/am-utils.texi: document iso9660 options norrip, gens, and + extatt. + (opts Option): documented dumbtimr and noauto options. From + Jeffrey C Honig . + + * include/am_compat.h: define default strings for options norrip, + gens, and extatt. + + * amd/ops_cdfs.c (mount_cdfs): support options norrip, gens, and + extatt. + + * aux/macros/mount_headers.m4: also include + as needed. + + * aux/configure.in: check for isofs mount options for bsdi4: + norrip, gens, and extatt. Reported by Jeffrey C Honig + . + + * aux/macros/check_mnt2_cdfs_opt.m4: check for ISOFSMNT_* flags + (bsdi4). + +1999-03-17 Erez Zadok + + * conf/nfs_prot/nfs_prot_freebsd3.h: ditto. + + * conf/nfs_prot/nfs_prot_bsdi3.h: include , + for bsdi4, as per Jeffrey C Honig . + +1999-03-15 Erez Zadok + + * get latest copies of config.guess, config.sub, ltconfig, and + ltmain.sh from libtool-1.2f. + + * all Makefile.am: don't use continuation lines (using \) for + short lists of files. + + * libamu/Makefile.am (DISTCLEANFILES): make distclean should + remove mountutil.c, mtabutil.c, transputil.c, and umount_fs.c. + Reported by Jeffrey C Honig . + + * fixmount/Makefile.am (DISTCLEANFILES): make distclean should + remove checkmount.c. Reported by Jeffrey C Honig . + + * Makefile.am (DISTCLEANFILES): make distclean should remove + amu_nfs_prot.h, config.cache.old, and dbgcf.h. Reported by + Jeffrey C Honig . + +1999-03-13 Erez Zadok + + * released snapshot am-utils-6.0.1s6 + +1999-03-12 Erez Zadok + + * INSTALL: document freebsdelf. + + * doc/am-utils.texi (Supported Platforms): document freebsdelf. + +1999-03-08 Erez Zadok + + * minor new ports: i386-unknown-freebsdelf3.1 and + i386-unknown-freebsdelf4.0 + + * aux/macros/check_nfs_prot_headers.m4: freebsd4 support. + + * aux/macros/check_nfs_socket_connection.m4: freebsd4 support. + + * aux/macros/check_nfs_fh_dref.m4: freebsd4 support. + + * amd/opts.c (eval_opts): changed log level of "executing + negated..." message from USER to INFO, as per Guntram Wolski + . + +1999-02-17 Erez Zadok + + * */Makefile.am (LDADD): force linking against an installed + libamu.{a,so}. + + * doc/am-utils.texi (addopts Option): document remopts interaction + with addopts. + + * amd/am_ops.c (ops_match): if addopts are specified, apply them + to the value of remopts as well as opts. + + * amd/ops_nfs.c (mount_nfs_fh): tell users when remopts are used. + +1999-02-05 Erez Zadok + + * released snapshot am-utils-6.0.1s5 + + * conf/mount/mount_linux.c (mount_linux): set default nfs_args + options for ac{reg,dir}{min,man} as per the mount-2.8a package, + but only if noac option was not used. + +1999-02-05 Erez Zadok + + * conf/mount/mount_linux.c (mount_linux): print nfs_args again + since it was updated. + (mount_linux): use 4KB for NFS rsize/wsize on 2.1.0 linux kernels + and newer. Bug was found by Neil Conway + + +1999-02-04 Erez Zadok + + * released snapshot am-utils-6.0.1s4 + +1999-02-03 Erez Zadok + + * amq/amq.c (main): don't list -M as a valid amq option unless + configure'd with --enable-amq-mount. + +Wed Feb 3 18:11:18 1999 Rainer Orth + + * amd/nfs_start.c (amd_use_autofs): Define. + (mount_automounter): Create autofs service listener only if + necessary to avoid unnecessary clashes with e.g. automountd. + + * amd/amd.h (amd_use_autofs): Declare. + + * amd/conf.c (gopt_mount_type): Set amd_use_autofs. + (ropt_mount_type): Likewise. + +1999-02-02 Erez Zadok + + * aux/macros/check_mnt2_nfs_opt.m4:: ditto + + * aux/macros/check_mnt2_cdfs_opt.m4: ditto + + * aux/macros/check_mnt2_gen_opt.m4: ditto + + * aux/macros/check_mnttab_opt.m4: new macro in this file to loop + over AC_CHECK_MNTTAB_OPT. Reduces size of configure script a lot. + + * conf/nfs_prot/nfs_prot_netbsd1_3.h: include nfs/rpcv2.h, + nfs/nfs.h and nfs/nfsmount.h if they exist. Patch from + christos@zoulas.com (Christos Zoulas). + + * amd/info_hesiod.c: some forward declarations. Patch from + christos@zoulas.com (Christos Zoulas). + +1999-01-28 Erez Zadok + + * libamu/mount_fs.c (compute_nfs_args): don't turn on/off noconn + option if it was already in that state. Patch from David + Wolfskill . + +1999-01-20 Erez Zadok + + * aux/configure.in: automake nowadays supports LTLIBOBJS (but not + LTALLOCA yet). Substitute value of LIBTOOL_DEPS for libtool + rebuild make rules. + + * Makefile.am: new rules to remake libtool (maintainers only) + + * amd/amfs_toplvl.c (mount_amfs_toplvl): print generic mount flags + if -D trace was used. + +1999-01-18 Erez Zadok + + * buildall: all if statements should have an else clause because + of Ultrix's /bin/sh. + +1999-01-15 Erez Zadok + + * amq/amq.c: removed dummy variables. + + * amq/pawd.c: removed dummy variable.s + + * fixmount/fixmount.c (usage): removed dummy variables. + + * fsinfo/fsinfo.c: removed dummy variables. + + * hlfsd/hlfsd.c: removed dummy variables. + + * wire-test/wire-test.c: removed dummy variables. + + * mk-amd-map/mk-amd-map.c: removed dummy variables. + + * doc/texinfo.tex: updates from GNU mirror. + + * aux/GNUmakefile (../doc/texinfo.tex): new rule to update + doc/texinfo.tex from GNU mirror. + + * released snapshot am-utils-6.0.1s3 + + * Makefile.am (install-snapshot): better snapshot and new + install-snapshot and test-snapshot rules (maintainer). + + * amd/info_ldap.c (amu_ldap_init): don't run STREQ if one of the + args may be NULL. + Some dlog() entries were not enclosed in #ifdef DEBUG. Fix from + Bill Paul + +1999-01-13 Erez Zadok + + * check for experimental generic 'ignore' mount flag on freebsd3. + + * Update library -version-info to 3:0:1 (will result in 2.1.0 .so + version, which is backwards compatible with older versions.) Only + one new interface was added to libamu. + + * amd/amfs_toplvl.c (mount_amfs_toplvl): add generic mount flags + that are specific to automounter mounts. + + * aux/configure.in: update libamu.so age and revision since a new + interface was added to libamu/mount_fs.c + (compute_automounter_mount_flags). + + * libamu/mount_fs.c (compute_automounter_mount_flags): new + function to compute generic mount flags that are specific to mount + points only. + + * aux/{configure.in,acconfig.h}: add support for generic mount + entry ignore option. + + * released snapshot am-utils-6.0.1s2 + + * amd/info_ldap.c (get_ldap_timestamp): dlog format fixes. + + * libamu/mount_fs.c (print_nfs_args): solaris 2.7 changed format + of knc_semantics from u_long to u_int. + + * aux/macros/check_mount_style.m4: freebsd3 no longer needs a + special mount helper. + +1999-01-12 Erez Zadok + + * aux/macros/check_nfs_prot_headers.m4 (AMU_NFS_PROT_HEADERS): + amu_nfs_conf.h should always be found in $top_builddir. + +Tue Jan 12 00:05:42 1999 Rainer Orth + + * conf/nfs_prot/nfs_prot_sunos5_7.h (MNTTAB_TYPE_AUTOFS): Undefine + to avoid wrong reports from show_fstypes. + + * conf/nfs_prot/nfs_prot_irix5.h (MNTTAB_TYPE_XFS): Likewise. + + * conf/nfs_prot/nfs_prot_hpux11.h (MNTTAB_TYPE_NFS3): Likewise. + +Tue Jan 12 00:05:42 1999 Rainer Orth + + * BUGS (mips-dec-ultrix4.3): Update Ultrix caveats. + +Tue Jan 12 00:05:42 1999 Rainer Orth + + * hlfsd/homedir.c (delay): Cast child to long, adapt format. + (hlfsd_getpwent): Likewise for pw_uid. + + * amd/info_nis.c (nis_init): Cast order to unsigned long, adapt + format. + + * conf/transp/transp_tli.c (amu_clnt_create_best_vers): Cast + tv_sec to int to match format. + (get_nfs_version): Cast nfs_version, NFS_VERSION to int to match + formats. + + * amd/amfs_program.c (amfs_program_exec): Cast ptr difference to + long, adapt format. + + * include/am_defs.h: Handle __attribute__ if available. From + GNU fileutils 4.0 lib/errors.h. + +Mon Jan 11 13:46:44 1999 Rainer Orth + + * libamu/mount_fs.c (print_nfs_args): Cast sizeof() to int to + match format. + + * hlfsd/stubs.c (nfsproc_getattr_2_svc): Cast uid, gid to long, + adapt format. + (nfsproc_lookup_2_svc): Likewise. + (nfsproc_readlink_2_svc): Likewise for userid, groupid. + + * hlfsd/nfs_prot_svc.c (nfs_program_2): Cast args to int to match + format. + + * hlfsd/homedir.c (homedir): Cast uid, child to long, adapt + format. + + * amd/info_hesiod.c (hesiod_search): Cast m, pval, tp to unsigned + long, adapt format. + + * amd/ops_nfs.c (find_nfs_fhandle_cache): Cast fh_wchan to + unsigned long, adapt format. + (got_nfs_fh): Likewise. + (prime_nfs_fhandle_cache): Cast fh_nfs_version to int to match + format. + (call_mountd): Likewise, mnt_version also. + (mount_nfs_fh): Likewise. + + * amd/ops_autofs.c (autofs_program_1): Cast args to int to match + format. + (autofs_unmount_1_svc): Cast ur->devid, ur_rdevid, ur->next to + unsigned long, adapt formats. + (autofs_bgmount): Cast opt_fs to unsigned to, adapt format. + (autofs_bgmount): Use long format to match arg. + (autofs_lookuppn): Removed superfluous arg. + + * amd/srvr_nfs.c (start_ping): Cast nfs_version to int to match + format. + (got_portmap): Likewise for port. + (recompute_portmap): Likewise for fs->fs_version, mnt_version. + (find_nfs_srvr): Likewise for nfs_version. + + * amd/sched.c (sched_task): Cast wchan to unsigned long, adapt + format. + + * amd/nfs_start.c (checkup): Cast ptr difference to long, next_mem + to unsigned long, adapt format. + Cast tvv.tv_sec to int to match format. + + * amd/nfs_prot_svc.c (nfs_program_2): Cast args to int to match + format. + + * amd/map.c (root_fh): Cast pid to long, adapt format. + (timeout_mp): Cast time_t to long, adapt format. + + * amd/clock.c (reschedule_timeouts): Use long format, cast time_t + arg. + + * amd/amfs_host.c (fetch_fhandle): Cast nfs_version to int to + match format. + (amfs_host_fmount): Likewise. + (amfs_host_umounted): Likewise. Removed superfluous arg. + + * amd/amfs_auto.c (amfs_auto_bgmount): Cast pointer to unsigned + long, adapt format. + (amfs_auto_bgmount): Use long format, cast time_t arg. + (amfs_auto_lookuppn): Removed superfluous arg. + + * amd/amd.c (main): Cast geteuid() result to long, adapt format. + + * conf/transp/transp_sockets.c (get_nfs_version): Cast nfs_version + to int to match format. + + * include/am_utils.h: Declare plog, dplog as printf-like. + + * conf/mount/mount_irix6.c (mount_irix): Print type as char *. + +Mon Jan 11 13:46:44 1999 Rainer Orth + + * amd/info_hesiod.c (hesiod_isup): New function. + * amd/mapc.c (maptypes): Add it. + +1999-01-10 Erez Zadok + + * released snapshot am-utils-6.0.1s1 + +1999-01-09 Erez Zadok + + * ALL: bump copyright year to 1999. + +Fri Jan 8 15:24:15 1999 Rainer Orth + + * aux/macros/check_mtype_type.m4: Ultrix uses an int mount type, + too. + + * aux/macros/check_mtype_printf_type.m4: Adapt corresponding + printf type. + +Fri Jan 8 15:24:15 1999 Rainer Orth + + * aux/acconfig.h: Removed HAVE_AM_FS_AUTOFS, unused. + + * conf/nfs_prot/nfs_prot_irix6.h: Likewise. + + * conf/nfs_prot/nfs_prot_sunos5_6.h: Likewise. + + * conf/nfs_prot/nfs_prot_sunos5_7.h: Likewise. + + * Makefile.am (EXTRA_DIST_DIRS): Removed, not needed by current + automake. + +Thu Jan 7 02:55:18 1999 Rainer Orth + + * aux/configure.in (AM_PROG_YACC): Replaced by AC_PROG_YACC, not + in current automake. + +Thu Jan 7 02:55:18 1999 Rainer Orth + + * doc/am-utils.texi: Added some missing inter-punctation after + @xref, or use @pxref/@ref as appropriate. Spotted by makeinfo + from texinfo 3.12b. + +1999-01-07 Erez Zadok + + * doc/texinfo.tex: updated off of latest GNU mirror. + +1999-01-04 Erez Zadok + + * doc/am-utils.texi (Supported Platforms): update platforms that + support NFS v.3. Nicer postscript printing on double-sided pages. + + * amd/info_hesiod.c: add extern definition for hesiod_init() + +1999-01-01 Erez Zadok + + ******************************************************************* + *** Released am-utils-6.0 *** + ******************************************************************* + +1998-12-28 Erez Zadok + + * conf/nfs_prot/nfs_prot_sunos5_7.h: support ldap in solaris 2.7. + +1998-12-27 Erez Zadok + + * conf/nfs_prot/nfs_prot_bsdi3.h: don't use reserved ports on + bsdi4 for NFS V3/nfs mounts. + +1998-12-26 Erez Zadok + + * using latest libtool (1.2e + patches), now supporting shared + libraries on many more systems. Also using latest autoconf and + automake (unreleased GNU CVS'd versions.) + + * minor new ports: hppa2.0w-hp-hpux11.00, + i386-unknown-netbsd1.3.3, mips-sgi-irix6.5. + + * fsinfo/fsinfo.h (yywrap): define it for systems (osf4) that + have /usr/bin/flex but not libfl. + +1998-12-24 Erez Zadok + + * lots of code cleanup, to make sure libamu.so does not use + undefined symbols. Some system's shared libraries cannot handle + that. + +1998-12-23 Erez Zadok + + * include/am_defs.h: only defined seteuid extern if function also + exists and is not superceded by setresuid (hpux). + + * amd/ops_autofs.c (autofs_bgmount, autofs_lookuppn): put explicit + braces to avoid confusion with nested if-then-else clauses. + + * aux/config.{sub,status}, aux/{ltmain.sh,ltconfig,mkinstalldirs: + updated from latest versions. + +1998-12-22 Erez Zadok + + * minor new port: i386-pc-bsdi4.0 + + * conf/nfs_prot/nfs_prot_bsdi3.h: add missing hesiod header + definitions for bsdi4. + + * {amd,fsinfo}/Makefile.am: force path to .y/.l files, because + some make programs (bsdi4) do not support VPATH correctly. + +1998-12-16 Erez Zadok + + * conf/mount/mount_aix.c: minor code cleanup + + * aux/configure.in: check for extern definition to xdr_groups. + +1998-12-15 Erez Zadok + + * minor new port: powerpc-ibm-aix4.3.1.0 + + * aux/macros/*.m4: updates for aix 4.3 + +1998-12-14 Erez Zadok + + * minor new port: i386-unknown-openbsd2.4 + + * aux/configure.in: don't check for xfs on openbsd because + openbsd-2.4 introduces a new file system named xfs, but different + than Irix's XFS. Sigh. + + * minor new port: i386-unknown-freebsd2.2.8 + +1998-12-03 Erez Zadok + + * amd/amfs_nfsl.c (amfs_nfsl_ffserver): use case insensitive host + name match. Bug fix from Douglas K. Rand" . + +1998-11-20 Erez Zadok + + * scripts/ctl-amd.in: wait4amd2die runs in the stop action, to + avoid race conditions when shutting down systems running amd. + + * Makefile.am: add a dist-hook to change modes of the directories + in the tar file so they are not world writable. + + * conf/nfs_prot/nfs_prot_freebsd3.h: turned on NFSv3 support, + since it is now finally defined in the header files and + (hopefully) stable. + + * amd/srvr_nfs.c (find_nfs_srvr): allow overriding if nfsv2 option + is specified in mount options. freebsd patches from David + O'Brien. + + * amq/amq.c (main), fixmount/fixmount.c (main), hlfsd/hlfsd.c + (main), fsinfo/fsinfo.c (fsi_get_args), hlfsd/hlfsd.c (main), + amd/get_args.c (get_args): posix: use -1 to check for return from + getopt() (not EOF), as per posix. + + * amd/amq_subr.c (xdr_amq_mount_tree_node): patches from "David + O'Brien" , from the FreeBSD source tree. Use + real variable whose pointer is on the stack for decoding a long + int. + +1998-11-11 Erez Zadok + + * scripts/ctl-{amd,hlfsd}.in: include comments useful for redhat's + chkconfig utility. + +1998-11-10 Erez Zadok + + * released snapshot am-utils-6.0b2s3 + + * conf/transp/transp_sockets.c (create_nfs_service): remove C++ + style comments. + +1998-11-04 Erez Zadok + + * released snapshot am-utils-6.0b2s2 + + * created CVS package + + * amd/nfs_subr.c (nfsproc_lookup_2_svc): try to avoid a race + condition between unmounting and re-mounting an entry, by + increasing the ttl of a looked up entry before unmounting it. + Patch from Mike Mitchell . + + * All files: spell comments and strings. + +1998-11-03 Erez Zadok + + * aux/configure.in: look for yp_all in libnsl only if yp_all not + already found elsewhere (in libc or other default libraries). + This is so RedHat 5.1 systems could find yp functions in libnsl, + but also so AIX 4.2.1 will NOT include libnsl, because the latter + has broken nis functionality that also exists and works ok in libc. + +1998-10-29 Erez Zadok + + * amd/amd.c (main): bug fix: swapped arguments to kill(2). Fix + from Danny Rathjens . + +1998-10-28 Erez Zadok + + * released snapshot am-utils-6.0b2s1 + +1998-10-27 Erez Zadok + + * aux/macros/*.m4: support bsdi4 as bsdi3. + + * aux/macros/os_ldflags.m4: enable detection of LDAP on solaris + 2.7 (libraries located in /usr/lib/fn). This is off until Sun + includes LDAP header information. + +1998-10-20 Erez Zadok + + ******************************************************************* + *** Released am-utils-6.0b1 *** + ******************************************************************* + +1998-10-18 Erez Zadok + + * mk-amd-map/mk-amd-map.c (main): use perror not strerror. + (main): set return type to int if no ndbm maps. + + * include/am_defs.h: avoid conflicts with in 2.1 + kernels. + +1998-10-18 Erez Zadok + + * A.i386-unknown-netbsd1.3.2/amu_nfs_prot.h: trim down and cleanup + for netbsd 1.3.2. + +1998-10-17 Erez Zadok + + * aux/configure.in: check for yp_all in libnsl, b/c redhat 5.1 + systems put NIS functions there. + + * mk-amd-map/mk-amd-map.c: patch from "David O'Brien" + merged in. Use POSIX -1 return code from + getopt(), not EOF. Use .db extentions for systems that use it, + instead of .{pag,dir}. + +1998-10-15 Erez Zadok + + * wire-test/wire-test.c, hlfsd/hlfsd.c, fixmount/fixmount.c, + amd/amd.c (main): avoid overrunning hostname buffer. Bug fix from + "David O'Brien" . + + * scripts/amd.conf.5: minor typo reported by "David O'Brien" + in .TH section of man page. + + * amd/info_nis.c (am_yp_all): don't leak key-val entries. Patch + from Thomas Richter . + +1998-10-12 Erez Zadok + + * doc/am-utils.texi (Program Filesystem): minor typo fixed as per + Andreas Stolcke . + + * minor new ports: sparc64-unknown-linux-gnu, i386-pc-solaris2.7, + and sparc-sun-solaris2.7. + + * conf/mount/mount_freebsd3.c (mount_freebsd3): freebsd 3.0 is now + a 4.4lite kernel, and somethings were removed, such as + INITMOUNTNAMES. + + * amd/ops_autofs.c (autofs_lookuppn): don't leak memory while + processing /defaults. Free temporary opts. Patch from + dsr@mail.lns.cornell.edu (Daniel S. Riley) + + * amd/amfs_auto.c (amfs_auto_lookuppn): don't leak memory while + processing /defaults. Free temporary opts. Patch from + dsr@mail.lns.cornell.edu (Daniel S. Riley) + + * conf/mtab/mtab_osf.c (read_mtab): patch from + dsr@mail.lns.cornell.edu (Daniel S. Riley) not to access + uninitialized memory on Digital Unix. + +1998-10-09 Erez Zadok + + * aux/macros/{check_mtype_type,check_mtype_printf_type}.m4: most + systems now use "char *" as their mount type. + +1998-10-08 Erez Zadok + + * amd/conf.c (gopt_map_type, ropt_map_type): check if map type + exists. + + * amd/mapc.c (mapc_type_exists): function to test if a map of + certain type exists. + +1998-10-08 Erez Zadok + + * aux/macros/{mount_headers,try_compile_anyfs,try_compile_nfs}.m4, + include/am_defs.h: Avoid a conflict in definitions of ntohl/htonl + in RH-5.1 sparc64 between and + (2.1 kernels). + +1998-09-28 Erez Zadok + + * aux/macros/func_bad_yp_all.m4 (ac_cv_func_yp_all_clean): RedHat + 5.1 systems with glibc glibc-2.0.7-19 or below leak a UDP socket + from yp_all(). + +1998-09-25 Erez Zadok + + * conf/mount/mount_linux.c (parse_opts): check for pcfs support + only if autoconfigured. + +1998-09-18 Erez Zadok + + * Makefile.am (EXTRA_DIST): distribute README.yk2 file. + + * README.y2k: explain y2k compliance status of am-utils. + +1998-09-16 Erez Zadok + + * amd/amfs_host.c (fetch_fhandle, amfs_host_fmount, + amfs_host_umounted): clnt_sperrno() may return a const. + +Sat Aug 8 23:28:32 1998 Erez Zadok + + * aux/configure.in: check for , as per Christos + Zoulas. Turned on checking for mount options: async, synchronous, + deadthresh, leasterm, nqnfs, and readahead. + + * amd/info_nis.c: patch from christos@zoulas.com (Christos Zoulas) + to include prototype definition for nis_isup(). + +Sun Jul 19 18:50:10 1998 Erez Zadok + + * hlfsd/stubs.c (getcreds): force sscanf arg to u_long. + +Tue Jul 14 20:34:25 1998 Erez Zadok + + * released snapshot am-utils-6.0a17s1 + +Wed Jul 8 21:49:15 1998 Erez Zadok + + * aux/macros/host_macros.m4: all x86 hosts should have $arch be + i386, not i[456]86. + +Tue Jul 7 18:55:09 1998 Erez Zadok + + * aux/macros/{mount_headers,try_compile_anyfs,try_compile_nfs}.m4, + include/am_defs.h: include before + because on redhat 5.1, there is a bug (misuse) of + headers in (it defines _LINUX_TYPES_H instead of + __KERNEL_STRICT_NAMES). + + * aux/configure.in: check for because it is + need for RedHat 5.1. + +Wed Jun 17 00:05:33 1998 Erez Zadok + + * scripts/Makefile.am (EXTRA_DIST): have fixrmtab generated from + .in as well, so it doesn't get removed by make clean. + +Tue Jun 16 22:00:15 1998 Erez Zadok + + * aux/macros/{check_fs_mntent.m4, check_mnttab_type.m4, + check_mount_type.m4}: redhat 5.1 puts some modules in + /lib/modules/preferred/. + +Wed May 13 16:33:57 1998 Erez Zadok + + * amd/ops_autofs.c (mount_autofs): cast pid to long. + +Tue Apr 28 15:12:36 1998 Rainer Orth + + * conf/nfs_prot/nfs_prot/nfs_prot_irix6.h, + conf/nfs_prot/nfs_prot_sunos5_6.h: Undef MNTTAB_TYPE_AUTOFS too to + avoid amd/am_ops.c (show_fstypes) from erroneously claiming + support. + +Fri Apr 24 23:02:11 1998 Rainer Orth + + * libamu/xutil.c (get_syslog_facility): Don't use LOG_DAEMON + unconditionally, may be missing on Ultrix V4.3. + +Thu Apr 23 20:24:33 1998 Rainer Orth + + * conf/nfs_prot/nfs_prot_sunos5_4.h (MNTTYPE_CACHEFS): Define, + missing from . + + * conf/mtab/mtab_ultrix.c: Need separate inclusion of + without KERNEL defined here. + + * aux/macros/mount_headers.m4: Need to include , + , so autoconfiguration of + ufs_args_t, cdfs_args_t fields and cdfs mount options can succeed. + + * amd/ops_ufs.c (mount_ufs): Removed obsolete comment. + + * ChangeLog: Fixed confusing linebreaks from ChangeLog imports. + Removed purely local (and obsolete) entry. + +Thu Apr 23 00:22:17 1998 Erez Zadok + + ******************************************************************* + *** Released am-utils-6.0a16 *** + ******************************************************************* + +Wed Apr 22 01:20:39 1998 Erez Zadok + + * aux/macros/check_mount_style.m4: define freebsd3 mount style. + + * aux/macros/check_mount_trap.m4: new mount trap for freebsd3. + + * aux/macros/check_mtype_printf_type.m4, + aux/macros/check_mtype_type.m4 (ac_cv_mtype_type,): freebsd3 (as + of snapshot 3.0-980311-SNAP) uses char * types for mount(2), not + integers, but I'll keep them as integers and do the mapping in + conf/mount/mount_freebsd3.c + + * minor new port to i386-pc-bsdi3.1. + + * minor new port to i386-unknown-netbsd1.3.1. + + * amd/opts.c: new option addopts:=ARG, which smartly merges ARG + options with whatever the /default ones for a key are. This + allows adding or overriding /default options individual keys. + + * amd/am_ops.c (ops_match): strdup/malloc string assigned to + opt_opts because it'll get free()'d upon next use. + (merge_opts): new function to merge two sets of options. + (ops_match): if addopts option exist, append and merge it to the + current default options. + +Tue Apr 21 12:54:59 1998 Erez Zadok + + * wire-test/wire-test.c (main): use dynamically allocated returned + string with list of interfaces. + + * amd/get_args.c (get_version_string): allocate enough space for + header version string and a list of network interfaces of any + length. + + * libamu/wire.c (print_wires): return dynamically allocated string + containing list of networks. Must be dynamic because some sites + had potentially dozens of network interfaces. Patch from Matthew + Crosby slightly modified. + +Mon Apr 20 00:37:20 1998 Erez Zadok + + * conf/nfs_prot/nfs_prot_irix5.h: underfine MNTTYPE_XFS because + irix 5.3 does not have full header definitions for it. + + * fsinfo/fsi_lex.l (yywrap): define yywrap if needed, and + undefined it when not needed (similar to amd/conf_tok.l) + + * hlfsd/hlfsd.h (ROOTID, SLINKID, INVALID): reduced maximum size + of these to unsigned short (because uid_t on some linux systems is + small). + + * released snapshot am-utils-6.0a16s10 + + * doc/am-utils.texi (opts Option): documented resvport mount + option. + +Sun Apr 19 18:17:03 1998 Erez Zadok + + * doc/am-utils.texi (-D-Option): document behavior of -D info and + especially what it does to hesiod (turn on RES_DEBUG). + + * scripts/amd.conf.5: document info debugging option. + + * libamu/xutil.c (dbg_opt): parse info debugging option. + + * include/am_utils.h (D_INFO): define new trace option. + + * Makefile.am (EXTRA_DIST): include list of official mirrors in + distribution. + + * libamu/wire.c (SIZE): in the simple case, just compute + sizeof(struct ifreq). + +Sun Apr 19 16:30:35 1998 Erez Zadok + + * amd/amd.c (daemon_mode): set a temporary secure umask(0022) + before writing log file and restore it afterwards. Patch from + Donald Buczek . + + * amd/get_args.c (get_args): + + * doc/am-utils.texi (-F Option), amd/amd.8: mention that amd.conf + file specified by -F is always processed last. + + * amd/amd.c (daemon_mode): do not fclose(stdout) so that the fd + won't be reused. Allows startup script to redirect stdout. Patch + from Donald Buczek . + + * libamu/xutil.c (switch_to_logfile): compare logfile name and + syslog string with correct length. Patch from Donald Buczek + . + + * amd/restart.c (restart): correctly inherit existing NFS V.3 + mounts upon restart. Patch from Donald Buczek + . + +Sat Apr 18 19:01:19 1998 Erez Zadok + + * using libtool 1.2 and automake 1.3 (with my patches). + + * aux/macros/opt_am_cflags.m4, */Makefile.in: rename AM_CFLAGS to + AMU_CFLAGS to avoid conflicts with automake-1.3. + +Sun Apr 5 23:09:08 1998 Erez Zadok + + * converted to using libtool-1.2. + +Tue Mar 10 16:52:09 1998 Erez Zadok + + * fsinfo/fsi_analyze.c (fixup_required_mount_info): replaced silly + for loop (ITER) which used to run only to initialize the variable + dd once and then break; with a simple assignment. + + * hlfsd/hlfsd.h: cleanup so it compiles with Solaris + /opt/SUNWspro/bin/cc, and use gid_t not int. + + * amd/mapc.c (mapc_sync): don't dereference pointer (so it + compiles with Solaris /opt/SUNWspro/bin/cc) + +Sun Mar 8 15:54:22 1998 Erez Zadok + + * aux/config.{guess,sub}: used from gcc-2.8.1. + +Sat Mar 7 15:33:27 1998 Erez Zadok + + * released snapshot am-utils-6.0a16s9 + + * INSTALL, doc/am-utils.texi (Supported Platforms): updated names + based on new output of new config.guess. + + * aux/config.{sub,guess}: used newer versions from gcc-2.8.0. + + * amd/amd.8,doc/am-utils.texi: document correct usage of default + /etc/amd.conf file. + + * fixmount/fixmount.c (inetresport,privsock): use some more + portable code from amq/amq.c. + + * amd/get_args.c (get_args): use default /etc/amd.conf file only + if no arguments had been passed to amd. + + * fixmount/fixmount.c (clnt_create_timeout): use tli/socket code + ala amq/amq.c so that fixmount will work on both types of systems. + + * amq/amq.c (main): do no close tcp socket before running udp try, + because we're not sure if it was opened at all. + + * mips-dec-ultrix* port merged in and cleaned up. + + * aux/configure.in: up minor shared library revision number, since + it has changed enough. + + * hlfsd/hlfsd.c (main): don't check for overlay mount option here, + as it is now done in compute_nfs_args(). Remove ultrix specific + code also because it was moved to compute_nfs_args(). + + * conf/mount/mount_svr4.c: removed DEBUG_MOUNT_SVR4 code, now that + we have more generic code in print_nfs_args(). + + * libamu/mount_fs.c (print_nfs_args): print maxlen of + nfs_args.addr, and also syncaddr (which is mostly NULL). Print + struct knetconfig from nfs_args->knconf. + + * aux/macros/mount_headers.m4 (define): do not check for ufs/cdfs + headers here, but in try_compile_anyfs.m4. + + * aux/macros/type_ufs_args.m4: move test for struct ufs_specific + (for ultrix) here from its own macro. + + * aux/macros/type_cdfs_args.m4: move test for struct iso_specific + (for ultrix) here from its own macro. + + * amd/ops_nfs.c (mount_nfs_fh): no need to run code again checking + for overlay mount option. Remove code which checks for overlay + option, as it is now done in compute_nfs_args(). + + * libamu/mount_fs.c (compute_mount_flags): move here code which + checks for overlay mount option which was in amd/amfs_toplvl.c: + mount_amfs_toplvl(). + +Wed Feb 7 15:35:51 1998 Rainer Orth + + * The following are Rainer's ChangeLog entries for his ultrix + port, added manually. -Erez. + + * merged Ultrix port with am-utils 6.0 a16s5: amd/ops_afs.c + (mount_toplvl) -> amd/amfs_toplvl.c (mount_amfs_toplvl) + + * include/am_defs.h: include cdfs specific mount headers + avoid duplication definition of gt_names[] in (Ultrix) + + * include/am_compat.h: define several mount options corresponding + to mount flags: pgthresh, hard (nfs), defperm, nodefperm, + noversion, rrip (cdfs), nocache, quota, sync (generic) removed + duplicate MNTTAB_OPT_RO definition + + * aux/macros/try_compile_anyfs.m4: include Ultrix specific + ufs/cdfs mount headers + + * aux/macros/mount_headers.m4: include several Ultrix/Digital UNIX + specific mount headers + + * aux/macros/check_{fs_mntent, mount_type}.m4: check for GT_* + mount types in mount headers (Ultrix) + + * aux/configure.in: Ultrix/Digital UNIX specific checks: new + headers, mount structures and fields, filesystem and mount types, + mount flags + + * aux/acconfig.h: placeholders for new mount options: quota + (generic), ro (nfs), defperm, nodefperm, noversion, rrip (cdfs) + cdfs, nfs, ufs mount structure fields new ufs, cdfs mount + structures + + * amd/ops_ufs.c (mount_ufs): Ultrix stores generic mount flags in + ufs_args.ufs_flags and has ufs specific pgthresh option + + * amd/ops_cdfs.c (mount_cdfs): handle Ultrix/Digital UNIX specific + CDFS mount flags and options + + * amd/ops_afs.c (mount_toplvl), amd/ops_nfs.c (mount_nfs_fh), + hlfsd/hlfsd.c (main): store generic mount flags in + nfs_args.gfs_flags, handle separate NFS ro flag + + * aux/macros/{check_mnt2_cdfs_opt, struct_iso_specific, + struct_ufs_specific}.m4: new files; check for Ultrix specific + mount structures + + * conf/trap/trap_ultrix.h: arg 3 to mount(2) is rwflag + + * aux/macros/type_auth_create_gidlist.m4 (ultrix*): + AUTH_CREATE_GIDLIST_TYPE is int (not short == gid_t) from a + comment in + + * include/am_defs.h: #define KERNEL to avoid definition of + gt_names[] conf/mtab/mtab_ultrix.c: #include before + to force single definition here + + * libamu/mount_fs.c (compute_nfs_args): Ultrix support for + nfs_args.gfs_flags moved to callers store mount options in + nap->optstr + + * include/am_defs.h: fix _am_mntent mnt_{type, opts} field + descriptions + + * aux/macros/mount_headers.m4, aux/macros/try_compile_nfs.m4: + include before AMU_NFS_PROTOCOL_HEADER for svc_req + definition in prototypes + + * aux/macros/mount_headers.m4: include before + AMU_NFS_PROTOCOL_HEADER: needs it for NFSERR_* + definitions + + * conf/nfs_prot/nfs_prot_ultrix.h: new file + + * aux/macros/check_nfs_prot_headers.m4: use nfs_prot_ultrix.h + + * aux/macros/mount_headers.m4, aux/macros/try_compile_nfs.m4, + aux/macros/try_compile_rpc.m4, include/am_defs.h: avoid multiple + inclusion of + +Sat Mar 7 13:56:05 1998 Erez Zadok + + * aux/configure.in: save state of config.cache and confdefs.h + (as dbgcf.h) at various points of the configure. + + * aux/macros/save_state.m4: new macro to save state of configure, + esp. useful in long ones. Saves confdefs.h and write $ac_cv_* + cache variables that are known so far. + + * released snapshot am-utils-6.0a16s8 + +1998-03-06 Erez Zadok + + * fsinfo/fsi_lex.l,amd/conf_tok.l: define ECHO after undefining + it, but only for flex. + +Fri Mar 6 17:23:17 1998 Erez Zadok + + * hlfsd/homedir.c (plt_print): change pathname of hlfsd dump file + to /usr/tmp/hlfsd.dump.XXXXXX, and use a safe method (if possible) + to write the dump file. + + * doc/am-utils.texi,amd/opts.c: rename all references to nomadic + functions to boolean functions, which is what they really are. + + * aux/configure.in: don't look for strcasecmp in libucb at all, + but rather complete it from libamu/strcasecmp.c as needed. + +Fri Mar 6 03:29:20 1998 Erez Zadok + + * conf/nfs_prot/nfs_prot_osf4.h: avoid conflicts with Irix's EFS. + + * libamu/wire.c (getwire): fix for 0.0.0.0 loopback on SunOS 3.X + which defines IFF_ROUTE instead of IFF_LOOPBACK. Patch from Tom + Schmidt . + + * released snapshot am-utils-6.0a16s7 + + * conf/nfs_prot/nfs_prot_hpux11.h: a first working port of amd to + hppa1.0-hp-hpux11.00.tgz. + +Thu Mar 5 21:59:03 1998 Erez Zadok + + * converted all sources to use mntent field names, and map mnttab + field names to mntent's. + + * include/am_defs.h (mnt_special): map struct mnttab field names + to struct mntent field names. + + * aux/macros/check_mount_trap.m4: hpux11's mount trap style is + identical to svr4/solaris2. + + * aux/macros/check_mount_style.m4: hpux11's mount style is + identical to svr4/solaris2. + + * aux/macros/check_network_transport_type.m4: hpux11 is a TLI + system! + + * aux/macros/check_nfs_sa_dref.m4: hpux11's NFS host address + dereferencing style is same as svr4. + + * aux/macros/check_nfs_fh_dref.m4: hpux11's NFS file fh + dereferencing style is same as svr4. + + * conf/transp/transp_tli.c (create_nfs_service): if failed to + getnetconfigent() of ticlts, then try udp (hpux11). + + * conf/nfs_prot/nfs_prot_hpux11.h: added correct definitions for + struct nfs_args, nfs_fh, and NFSMNT_* flags, taken from solaris + 2.5.1 (HP used them). + + * amd/rpc_fwd.c (fwd_init): don't use O_NDELAY for t_open() + because hpux11 doesn't like it. if t_open failed, print error + based on t_errlist, not sys_errlist. + +Wed Mar 4 22:01:55 1998 Erez Zadok + + * doc/am-utils.texi: lots of documentation fixes from Rainer Orth + . + +Sat Feb 28 22:16:35 1998 Erez Zadok + + * fsinfo/fsi_lex.l: undefine ECHO again, so it doesn't get used + later. + + * include/am_defs.h: defined the extern for ualarm() if it isn't + found, regardless if the function isn't found in standard + libraries, because otherwise libamu will include it. + +1998-02-28 Erez Zadok (per Ron Snyder) + + * initial port to hpux-11 completed. Compiles cleanly, but + probably does not work, because of missing NFS V.2/3 headers. + + * amd/conf_tok.l: cast yytext to char* when passed to strlen and + strdup, for hpux-11's ansi-cc compiler. + + * include/am_utils.h: renamed all xfree() to XFREE() to avoid + conflict with hpux-11's system headers. Also move (voidp) cast + from sources to inside the macro itself. + +Sat Feb 28 13:44:21 1998 Erez Zadok + + * released snapshot am-utils-6.0a16s6 + + * amd/info_nis.c (nis_isup): new function to test if NIS is up + without hanging amd. Used to ensure that amd does not clear the + maps when the expiration period arrived, if the service is down. + Otherwise it would be left with empty maps. It is better to stay + with possibly old information than none at all. + + * amd/mapc.c (mapc_sync): check to see if map service is up. + +Tue Feb 24 02:19:42 1998 Erez Zadok + + * aux/macros/check_lib2.m4 (AC_CHECK_LIB2): fix macro so it + includes auxiliary library only if needed. + +1998-02-22 Erez Zadok + + * amd/conf_tok.l: undefine ECHO again, so it doesn't get used + later. + +Sun Feb 22 01:41:08 1998 Erez Zadok + + * conf/nfs_prot/nfs_prot_osf2.h: port to alpha-dec-osf2.1 + completed. + + * conf/mtab/mtab_osf.c (mnt_dup): not all OSF have NFS3. + +Sat Feb 21 19:45:48 1998 Erez Zadok + + * doc/am-utils.texi (Network Host Filesystem): correct example for + type:=host map. + + * aux/macros/os_cflags.m4: only osf4 should compile with + -D_SOCKADDR_LEN. + + * aux/macros/check_nfs_prot_headers.m4: distinguish between OSF2 + and OSF4. + + * BUGS: include a new file listing known bugs. + +Sat Feb 21 03:50:48 1998 Erez Zadok + + * conf/nfs_prot/nfs_prot_linux.h: turn DES off on all linux + versions. + + * aux/macros/type_recvfrom_fromlen.m4: linux alpha should use + size_t for recvfrom fromlen arg. + +Sat Feb 21 03:33:59 1998 Erez Zadok + + * scripts/ctl-hlfsd.in: turn -D fork so primary process never + hangs. + +Sat Feb 21 02:45:51 1998 Erez Zadok + + * include/am_defs.h: don't include and + , just remaining definitions in + +Thu Jan 29 00:44:28 1998 Erez Zadok + + * released snapshot am-utils-6.0a16s5 + + * conf/mount/mount_irix6.c (mount_irix): pass {u,e,x}fs_args to + mount(2). + + * check for and include it when needed. + + * conf/mount/{mount_irix5.c,mount_irix6.c} (mount_irix): recognize + efs and xfs separately from "ufs". + + * amd/{ops_xfs.c,ops_efs.c}: new support for irix xfs/efs. + + * aux/configure.in: look for irix efs and xfs file systems. + + * scripts/amd.conf.5: new unmount_on_exit option documented. + + * doc/am-utils.texi (unmount_on_exit): new option documented. + + * amd/conf.c (gopt_unmount_on_exit): new function to handle new + amd.conf option. + + * amd/map.c (umount_exported): if global amd.conf flag + unmount_on_exit is on, then try to unmount all mounted (or + restartable) file systems. + + * amd/amd.c: if print_pid option is on, then normally print it to + stdout. If also pid_file is specified, then print the process ID + into that file. + + * amd/get_args.c (get_args): print correct -l option depending if + system supports syslog and/or syslog facilities. Patch from + Tom Schmidt . + + * doc/am-utils.texi (opts Option): updates for documentation for + new cdfs options defperm, nodefperm, noversion, rrip. + + * amd/ops_cdfs.c (mount_cdfs): support cdfs options defperm, + nodefperm, noversion, rrip. + + * conf/nfs_prot/nfs_prot_osf.h: need to look at + on osf. + + * aux/macros/{expand_cpp_hex.m4, expand_cpp_int.m4, + expand_cpp_string.m4}: use #error to make failed compilations + fail faster, rather than have the program fail during a run. + + * include/am_compat.h: added a few new cdfs options: rrip, + noversion, defperm, and nodefperm (used in OSF). + +Wed Jan 28 20:24:09 1998 Erez Zadok + + * released snapshot am-utils-6.0a16s4 + + * doc/am-utils.texi (Global Parameters): update manual for new + amd.conf global variable hesiod_base. + + * scripts/amd.conf.5: update man page for new amd.conf global + variable hesiod_base. + + * amd/get_args.c (get_args): use /etc/amd.conf file if exists by + default, else try command line options. Patch from Randall + S. Winchester . + +Wed Jan 28 12:20:56 1998 Erez Zadok + + * amd/info_hesiod.c (hesiod_search), amd/conf.c + (gopt_hesiod_base), amd/amd.h, amd/amd.c (init_global_options): + included patch from Randall S. Winchester , to + support a hesiod base name in the amd.conf file. + + * doc/am-utils.texi (pid_file Parameter): document new global + amd.conf parameter. + + * scripts/amd.conf.5: document new global option pid_file. + + * amd/amd.c (daemon_mode): if cannot open pid_file, continue to + run, but print error message. + + * amd/conf.c (gopt_pid_file), amd/amd.h, amd/amd.c (daemon_mode, + init_global_options): Included patch from Randall S. Winchester + , to support pid files in the amd.conf file. + + * amd/get_args.c (get_args): correct usage info on amd -t. + + * amd/*.c: massive file name and symbol name changes. All amd + file systems files and symbols are prefix with amfs_*. Now using + real name of file system: amfs_auto instead of afs, amfs_inherit + instead of ifs, amfs_linkx instead of sfsx, etc. This will enable + clear distinction between amd file system and generic ones like + nfs/ufs/pcfs/hsfs. Also, now we can implement true afs (Andrew + f/s) and DFS (Distributed f/s). + + * amd/amfs_union.c: unionfs for amd is always defined, no need to + #ifdef it. + +Mon Jan 26 16:51:38 1998 Erez Zadok + + * libamu/mount_fs.c (compute_nfs_args): set 'noconn' NFS option on + or off, based on the particular quirks of the OS in question. + + * aux/macros/check_nfs_socket_connection.m4: new macro to set the + correct wait of handling un/connected NFS sockets. + + * scripts/wait4amd.in: use rlogin instead of rsh. + + * amd/am_ops.c (ops_showfstypes): when showing F/S types in amd + -v, always show "nfs3" for NFS V.3. + +1998-01-25 Erez Zadok + + * lots of small fixes for solaris 2.6, since gcc 2.8.0 -Wall gets + more picky than 2.7.2.3 did. + +1998-01-24 Erez Zadok + + * include/am_utils.h (dlog): amuDebug macros reduced to shorter + forms. + +Fri Jan 23 18:38:30 1998 Erez Zadok + + * released snapshot am-utils-6.0a16s3 + + * include/am_defs.h: on Solaris 2.6, is included + in but since stdargs.h is used, and varargs.h + must not, fake a definition for varargs. + +Fri Jan 16 10:16:40 1998 Erez Zadok + + * README: show how to configure in additional support such as + hesiod using various --enable-* flags. + +Wed Jan 14 15:13:02 1998 Erez Zadok + + * aux/configure.in: look for strcasecmp(), and replace it if not + available. + + * amd/ops_nfsl.c (nfsl_match): host names should be compared using + case insensitive. + + * amd/opts.c: for each map variable, define if the comparison + needs to be done case insensitive. + + * include/am_utils.h (STRCEQ): a new macro to use strcasecmp(). + Patch from Thomas Richter + +1998-01-14 Erez Zadok + + * aux/configure.in: look for "isofs" as a possible mount type for + cdfs (RedHat Linux). + +Wed Jan 14 02:07:05 1998 Erez Zadok + + * conf/mount/mount_linux.c (parse_opts): don't look for cdfs mount + type if not defined. + + * conf/nfs_prot/nfs_prot_linux.h: don't define __FD_* macros if + already defined. + + * aux/configure.in: look for ext2fs before ufs, b/c some linux + have both. + +Mon Jan 12 15:43:20 1998 Erez Zadok + + * Makefile.am (snapshot): allow me to install snapshots into the + ftp directory. + + * scripts/ctl-hlfsd.in: don't turn on -D mem by default. + + * amd/get_args.c (get_args): minor bug in output of amd -H. + +Mon Jan 12 03:05:06 1998 Erez Zadok + + ******************************************************************* + *** Released am-utils-6.0a15 *** + ******************************************************************* + +Sun Jan 11 15:06:34 1998 Erez Zadok + + * amd/conf.c (*_browsable_dirs): allow specifying + browsable_dirs=full, which will print *all* entries (other than + /default), including those with '*' and '/' characters. + + * amd/info_file.c (MAX_LINE_LEN): up maximum readdir chain length + to 1500. + + * doc/am-utils.texi: fixed reversed documentation for NFS mount + options vers and proto. + + * doc/Makefile.am (install-html): separate target just for + installing html files. Another new target "alldocs" is just for + installing all files needed for the am-utils home page. + + * scripts/amd.conf-sample: updated example for log_file. + + * scripts/amd.conf.5: updated for new way to declare new syslog + facility in the log_file option. + + * amd/amd.8: updated for new way to declare new syslog facility in + the -l option. + + * libamu/xutil.c (get_syslog_facility): allow users to specify the + syslog facility as an appended string to the log device. Ex. amd + -l syslog:local7 will use LOG_LOCAL7, while the older -l syslog + will use the default LOG_DAEMON facility. + + * amd/get_args.c (get_args): updated new syntax for amd -l + syslog:facility. + +Thu Jan 8 04:05:10 1998 Erez Zadok + + * aux/macros/host_macros.m4: don't confuse sun3 (sparc) with sun3 + (intel). + + * libamu/wire.c (print_wires): bug fix. Nullify output buffer + before appending to it, on systems with two or more network + interfaces. + + * conf/nfs_prot/nfs_prot_sunos5_3.h: add missing definition for + the mntent for cachefs. + + * include/am_defs.h: external definition for strstr() should use + const for both arguments. + + * aux/configure.in: add extern definitions for getwd() if missing. + + * include/am_defs.h: define the extern for strdup() even if the + function does not exist, for it will be filled in by + libamu/strdup.c + + * amq/pawd.c (cluster_server): don't use getccent() if the extern + for it isn't there. On hpux 10.20, the function is in libc, but + and struct cct_entry do not exist. + + * aux/configure.in: check for an extern for getccent() b/c some + hpux systems don't have it (hpux 10.20). + +Wed Jan 7 00:09:19 1998 Erez Zadok + + * doc/am-utils.texi (Amq -T option): manual documentation updates + for new amq options -T/-U. + + * amq/amq.8: updated man page for new amq options -T/-U. + + * amq/amq.c: two new switches to amq. -U will contact amd using + UDP only. -T will use TCP only. Normally amq will try TCP and + if that failed, will try UDP. + + * doc/am-utils.texi (pawd): manual documentation for pawd. + + * amq/pawd.1: new man page for pawd. + +Tue Jan 6 04:21:59 1998 Erez Zadok + + * amq/pawd.c: a new program, Print Automounter Working Directory, + to print the proper pathname of the cwd or any other pathname, + adjusted for automounter paths, while avoiding mount points. + + * aux/macros/localconfig.m4: trivial support for am-utils + maintainers to adjust some of the configuration of am-utils after + it has been auto-configured by putting whatever definitions you + wish in a file called localconfig.h, located in the top build + directory (the same one where config.h is created for you). + + * doc/am-utils.texi (Caching Filesystem): updated documents for + cachefs file system. + + * amd/ops_cachefs.c: initial cachefs support, for solaris. + type:=cachefs, requires cachedir:=/cache/dir/name to be defined + and initialized with cfsadmin -c. $rfs is backdir to be cached + from, and $fs is the local mount point of the cachefs. + + * conf/mount/mount_svr4.c (mount_svr4): support mounting of + cachefs file systems. + + * amd/ops_cdfs.c: cdfs should be named 'cdfs', not whatever the + mnttab type is. + +Mon Jan 5 23:22:49 1998 Erez Zadok + + * amd/opts.c: added support for new variable $cachedir. + + * include/am_utils.h: added opt_cachedir field to struct am_opts. + +Sat Jan 3 01:43:57 1998 Erez Zadok + + * amd/ops_nfsl.c (nfsl_ffserver, nfsl_match): also check if the + local hostname does not match $rhost, and if so, also assume + type:=nfs. + +Fri Jan 2 01:00:40 1998 Erez Zadok + + * updated all source files to add 1998 as a copyright year. + + * amd/ops_nfsl.c: new amd meta file system "type:=nfsl". Behaves + like type:=linkx if the pathname denoted by $fs exists, and like + type:=nfs if it does not. A convenient shortcut for the most + popular amd map entry. + + * amd/amd.c (main): amd should chdir to / before starting, to + avoid hanging on other NFS server if started elsewhere. + + * amd/ops_TEMPLATE.c: added an empty template file for developers + who wish to write new amd pseudo file systems. + +Thu Jan 1 00:27:28 1998 Erez Zadok + + * hlfsd/homedir.c (plt_init): make function exported, to save on + the unnecessary init_homedir() function which was removed. + (table_add): don't use xmalloc() when you can use strdup() + instead. + +Thu Jan 1 00:15:58 1998 Erez Zadok + + * hlfsd/homedir.c (hlfsd_endpwent): Don't actually run this + because we will be making more passwd calls afterwards. On + Solaris 2.5.1, making getpwent() calls after calling endpwent() + results in a memory leak! (and no, even Purify didn't detect + it...) + +Tue Dec 23 18:23:47 1997 Erez Zadok + + * hlfsd/hlfsd.c (main): Bug fix. Don't try to free() an + automatically allocated address. + + * amd/ops_afs.c (mount_toplvl): Bug fix. Don't try to free() an + automatically allocated address. + + * ALL SOURCES: change every direct call to free() to xfree(), so + it can be mapped to the right debugging function as needed. + + * include/am_utils.h: new free() policy. If debugging memory, + call dxfree(), which will print the file name and line number + where the free occurred and the pointer address. if only regular + debugging, then free() and reset the pointer to NULL so it cannot + be used afterwards inadvertently. If not DEBUG at all, then just + run free(). Three different #define macros set the right mapping. + + * libamu/xutil.c (dxfree): renamed function to dxfree(), so it can + be called only when debugging the memory. + +Tue Dec 23 04:24:28 1997 Erez Zadok + + * wire-test/wire-test.c (main): use xmalloc() not malloc(). + + * conf/transp/transp_tli.c (get_knetconfig): use xzalloc() not + calloc(). + + * conf/mtab/mtab_mach3.c (convert): use xzalloc() not calloc(). + + * conf/mount/mount_linux.c (parse_opts): use xmalloc() not + malloc(). + + * amd/info_ldap.c: use xmalloc() not malloc(). + + * libamu/xutil.c (xzalloc): new function to allocate memory and + zero its bytes. + + * amq/amq.c: amq does not need its own definition of xfree(). + + * aux/macros/opt_debug.m4: if used --enable-debug=mem, then also + look for function malloc_verify() in libmapmalloc.a, and function + mallinfo() in libmalloc. + + * libamu/xutil.c (checkup_mem): do not use mallinfo field + uordbytes, because it does not always exist. Rather, compute it + from other fields.. + + * include/am_utils.h: add external definition to xfree() function + used when debugging memory references. + +Mon Dec 22 03:01:30 1997 Erez Zadok + + * amd/ops_afs.c (afs_readdir_browsable): reduce the number of + bytes heuristically computed to be returned to the kernel. + Otherwise browsable_dirs fails on OpenBSD 2.2. + + * amd/mntfs.c (uninit_mntfs): bug fix. Moved freeing of + mf_private field to AFTER it gets used. + +Sat Dec 20 00:51:21 1997 Erez Zadok + + * amd/ops_host.c (host_umounted): don't use clnt_spcreateerror() + on systems that don't support it. + + * include/am_defs.h: add missing extern definition for free(). + + * aux/configure.in: check for external definition for free(). + + * libamu/Makefile.am: add to comment a mention of strstr as an + optional function. + + * libamu/xutil.c (switch_to_logfile): use openlog() options only + if they exist. + + * conf/transp/transp_sockets.c (get_nfs_version): don't use + clnt_spcreateerror if it does not exist. + + * aux/configure.in: check for missing functions clnt_create and + clnt_spcreateerror. Check for missing strstr, and complete + its code. Check for missing external definition for strstr. + + * aux/macros/host_macros.m4: normalize sun3* names. + + * Makefile.am: updates for new sunos3 files distributed. + + * conf/nfs_prot/nfs_prot_sunos3.h: new file. + + * conf/fh_dref/fh_dref_sunos3.h: new file. + + * aux/macros/check_nfs_prot_headers.m4: added sunos3 case. + + * aux/macros/check_nfs_fh_dref.m4: added sunos3 case. + + * doc/am-utils.texi (wire Selector Variable): updated manual for + adjusted variables wire, network, and netnumber, all using the + in_network() function. + +Fri Dec 19 04:37:36 1997 Erez Zadok + + * amd/opts.c: allow options to be processed by executing arbitrary + functions. Converted wire, network, and netnumber all to use the + nomadic function in_network. So from now on they perform a match + against all networks, not just primary. + + * initial port to alpha-unknown-linux-gnu, probably works, but + untested yet. + + * conf/nfs_prot/nfs_prot_linux.h: add special definitions for + __FD_* macros which for som strange reason do not get included + from on redhat alpha linux. Also turn off usage of + because it is incomplete on the same systems. + + * hlfsd/homedir.c (table_add): cast uid field to int, for + comparison. + + * include/am_defs.h: more coflicts with redhat alpha linux + "resolved". + + * aux/macros/{mount_headers,try_compile_anyfs,try_compile_nfs}.m4: + There's a conflict of definitions on redhat alpha linux between + and which must be avoided. + + * aux/configure.in: check for , which is in use on + redhat alpha linux. + + * doc/am-utils.texi (Selectors): added documentation to describe + the new "!" (negated) nomadic functions. + + * amd/opts.c (f_in_network): print debugging info that is correct, + rather than saying that any ARG is on a local network. + (eval_opts): added support for negating nomadic functions, by + prepending "!" to their name. Example, !exists(/foo/bar). + +Thu Dec 18 20:57:19 1997 Erez Zadok + + * include/am_compat.h: ensure that all NFS3 systems have the mount + table entries (and amd opts switches) "proto" and "vers". + + * hlfsd/homedir.c (table_add): added some debugging info to try + and track down a serious memory leak in hlfsd. + +1997-12-18 Erez Zadok + + * libamu/mount_fs.c (compute_nfs_args): OpenBSD 2.2 requires that + you do NOT set the noconn option, and use connected sockets + always. So I'm now forced not to set it at all, and have the user + specify it as "conn" or "noconn" in their /default entry. Argh... + Finally, it looks as if OpenBSD 2.2's NFS 3 implementation may be + buggy (TCP hangs with "short receive" kernel errors). I'd better + wait until they get it working in their version of the automounter + first. So I'm putting the "noconn" option back. + +Thu Dec 18 02:39:39 1997 Erez Zadok + + * libamu/mount_fs.c (compute_nfs_args): use maxgrps option and set + nfs_args field maxgrouplist accordingly. + + * include/am_compat.h (MNTTAB_OPT_MAXGROUPS): complete definition + for mount table entry for maxgroups based on NFS mount option + maxgrp. + + * aux/configure.in: put back testing for NFS mount option + "maxgrps". Added test for mount table entry "maxgroups". + + * libamu/mount_fs.c (compute_nfs_args): perform more careful tests + on nfs_proto, because it could be NULL. + + * doc/am-utils.texi (Selectors): added example of in_network() + selector. + + * aux/macros/check_hide_mount_type.m4: all hpux versions, + including 9.x, should use "ignore" as the mount type to hide from + amd. + +Wed Dec 17 13:09:21 1997 Erez Zadok + + * include/am_utils.h (NSTREQ): use new macro instead of strncmp() + every where in the sources. + +Wed Dec 17 01:15:01 1997 Erez Zadok + + * libamu/mount_fs.c (print_nfs_args): if -D trace is on, will + print as much info that is given in struct nfs_args as possible. + useful for detecting internal flags and options, as well as the + file handle used. + + * scripts/ctl-amd.in: look for amd.conf file in ${prefix}/etc + after /etc and before /etc/local. + +Tue Dec 16 18:51:36 1997 Erez Zadok + + * aux/configure.in, libamu/Makefile.am: added support for linking + with specific versions of libamu. Upped shared library version of + libamu to 1 (libamu.so.1.0.0) + + * include/am_defs.h: added external definition for mkstemp() as + needed. + + * minor new port to i386-unknown-netbsd1.3 (BETA version of + netbsd). + + * aux/config.guess: don't leave a trailing '.' on the system name + for NetBSD-1.3_BETA and similarly for OpenBSD. + + * conf/nfs_prot/nfs_prot_netbsd1_3.h: new header for the slight + differences in ypall calling conventions. + + * mk-amd-map/mk-amd-map.c (main): use mkstemp() whenever possible + in preference over mktemp(), b/c it is more secure. + + * aux/configure.in: check for mkstemp(), a more secure version of + mktemp(). + +Mon Dec 15 02:32:14 1997 Erez Zadok + + * amd/ops_nfs.c (mount_nfs_fh): Systems that include the mount + table "vers" option generally do not set the mnttab entry to + "nfs3", but to "nfs" and then they set "vers=3". Setting it to + "nfs3" works, but it may break some things like "df -t nfs" and + the "quota" program (esp. on Solaris and Irix). So on those + systems, set it to "nfs". + +Sat Dec 13 01:36:27 1997 Erez Zadok + + * doc/am-utils.texi (Distrib): updates for new ports, location of + am-utils' home page, and URL cross references (now supported by my + version of texi2html). + + * aux/macros/check_mtype_type.m4: also use string type for file + system mount types under nextstep for mount(2). + + * aux/macros/check_mtype_printf_type.m4}: nextstep can handle both + integer and string types for file system mount types in mount(2), + but it is better to use string types. + + * conf/nfs_prot/nfs_prot_nextstep.h: set emum nfsstat's NFS_OK to + 0, not 1! Otherwise, all NFS calls (esp. mount) return errno 1 + (EPERM) instead of 0 (OK). Fixes m68k-next-nextstep3 which now + works. + + * conf/nfs_prot/nfs_prot_bsdi2.h: set emum nfsstat's NFS_OK to 0, + not 1! Otherwise, all NFS calls (esp. mount) return errno 1 + (EPERM) instead of 0 (OK). + + * libamu/xdr_func.c (xdr_*): add debugging calls that are optioned + by -D trace (protocol trace). + +1997-12-11 Erez Zadok + + * A.m68k-next-nextstep3/amu_nfs_prot.h: define missing S_ISDIR + macro based on existence on others, and include . + +Thu Dec 11 14:14:38 1997 Erez Zadok + + * aux/macros/try_compile_nfs.m4 (AC_TRY_COMPILE): turn off + inclusion of which only affects nextstep3, on + which this header is broken (it tries to include non-existing + headers). + +Wed Dec 10 16:09:07 1997 Erez Zadok + + * libamu/mount_fs.c (mnt_flags): support either nfs or generic + mount option for grpid. + + * aux/configure.in: turn back on NFS mount option grpid. + +Sat Dec 6 04:36:05 1997 Erez Zadok + + * doc/Makefile.am (install-ps): added target to install postscript + file in the am-utils' home page, as well as a few other useful + files for the new am-utils Web page. + +Mon Nov 17 05:22:56 1997 Erez Zadok + + ******************************************************************* + *** Released am-utils-6.0a14 *** + ******************************************************************* + +Sun Nov 16 21:56:16 1997 Erez Zadok + + * doc/am-utils.texi (Supported Platforms): updated table of new + ports. + +Sat Nov 15 06:36:27 1997 Erez Zadok + + * libamu/mount_fs.c (compute_automounter_nfs_args): pass mnttab + options so that they can be printed in logs as needed. + + * doc/am-utils.texi (osver Parameter): updated for the correct + usage of the -o/-O options. + + * scripts/amd.conf.5: corrected info for -o/-O options. + + * amd/amd.8: updated man page for new -O op_sys_name option, and + corrected the usage of the -o op_sys_ver option + + * amd/get_args.c (get_args): added new amd option -O to override + OS name. + (get_args): updated usage string. Removed old -m option. Added + -o and -O options. + + * conf/nfs_prot/nfs_prot_irix5.h: add definition to FHSIZE in case + it is not there. Reportedly, irix 5.2 does not define it. + + * scripts/lostaltmail.in: removed references to unused $hack + variable. + + * aux/macros/check_nfs_prot_headers.m4: Patch from Chris Metcalf + to correctly set the nfs_prot headers + for solaris2.5. + + * doc/am-utils.texi (Distrib): typo in the subscription + instructions to amd-dev. Patch from Stefan Vogel + . + +1997-11-15 Erez Zadok + + * NFS3 works on powerpc-ibm-aix4.2.1.0. + + * libamu/mount_fs.c (compute_nfs_args): set fh3 variable to + static. Some compilers (gcc from egcs on aix 4.2.1) corrupt the + stack of an automatic variable when pointer to it is passed around + several times. + +Fri Nov 14 20:09:28 1997 Erez Zadok + + * libamu/xutil.c (real_plog): syslog like behavior for normal + logging. Will not print repeated strings, only a count "last + message repeated N times", but will always print something if + message is repeated more than 100 times. + + * scripts/lostaltmail.in: look for lostaltmail.conf files also in + /etc/global, /etc/os, and /etc/local (in that order). + +Mon Nov 10 03:03:17 1997 Erez Zadok + + * conf/mount/mount_aix.c (mount_aix3): add support for NFS V.3 + mounts. + + * aux/macros/struct_nfs_args.m4 (AC_TRY_COMPILE_NFS): test for + aix42_nfs_args, specially set in conf/nfs_prot/nfs_prot_aix4_2.h + + * conf/sa_dref/sa_dref_*.h: from now on, the "dst" argument to the + NFS_SA_DREF macro is a pointer to the structure that used to be + passed to it before. So now I have to dereference the pointer + before accessing its values. + + * hlfsd/hlfsd.c (main): use the new and cleaner + compute_nfs_args() and compute_automounter_nfs_args() functions. + + * amd/ops_nfs.c (mount_nfs_fh): use the new and cleaner + compute_nfs_args() and compute_automounter_nfs_args() functions. + + * amd/ops_afs.c (mount_toplvl): MAJOR CODE REVISION. Use the new + and cleaner compute_nfs_args() and compute_automounter_nfs_args() + functions. + + * libamu/mount_fs.c (compute_nfs_args): major code cleanup that + relates for struct nfs_args. A new function sets the numerous + possible flags and fields of nfs_args_t in an orderly fashion. + Code cleaned up, organized, and moved from amd/hlfsd into + libamu. This saves on overall size of code. + (compute_automounter_nfs_args): A variant of compute_nfs_args() + which sets special options/flags that need to be used when NFS + mounting an automounter's mount point. Used by hlfsd and amd. + + * amq/amq.c (get_secure_amd_client): don't print any more + "get_secure_amd_client: using TCP, port 12345". It's more + annoying than useful a message, even when assumed to be compiled + under DEBUG only. + +Thu Oct 30 14:33:38 1997 Erez Zadok + + * aux/macros/check_mnttab_type.m4: MAJOR BUG fixed for non-nfs + mount table entries. The code used to define the /etc/mnttab name + for file systems based on physical media (disk, cdrom, floppy) to + the generic name, rather than the OS specific name. For example + autoconf searches for all these types of mount table entries for a + floppy based file system: vfat pcfs pc msdos msdosfs fat. But if + it found any, it hard-coded the mnttab name to "pcfs" rather than + the actual name found! Same for ufs, cdfs, pcfs, tmpfs, lofs, + nullfs, unionfs, and umapfs. + + * aux/configure.in: also test for xfs (for newer Irix) when + looking for mount type names, numbers, etc of a disk-based ufs. + +Sun Oct 26 19:32:57 1997 Erez Zadok + + * amq/amq.c (main): use pmap_ping() to test if remote host is up. + This works better on bsdi2 and bsdi3, because their portmapper + does not appear to like forwarding operations (it is generaly + insecure). + +Sat Oct 25 04:55:56 1997 Erez Zadok + + ******************************************************************* + *** Released am-utils-6.0a13 *** + ******************************************************************* + +Fri Oct 24 05:04:37 1997 Erez Zadok + + * conf/nfs_prot/nfs_prot_ncr2.h: added missing definition for + struct datum typedef. + + * conf/nfs_prot/nfs_prot_netbsd.h: corrected typedef for + ypall_callback_fxn_t for netbsd. + + * aux/macros/type_auth_create_gidlist.m4: hpux10.10 uses int for + the 5th arg to authunix_create(), while before and after they used + gid_t. + + * conf/transp/transp_tli.c (amu_clnt_create_best_vers): don't use + clnt_create_timed() on older Solaris 2.3 systems that did not have + it. + + * conf/nfs_prot/nfs_prot_bsdi2.h: is for + kernel only on bsdi2, so do not include it. + +Fri Oct 24 00:29:42 1997 Erez Zadok + + * hlfsd/stubs.c (nfsproc_readlink_2_svc): avoid logging repeated + messages about resolution of mailboxes based on uid/gid. + + * scripts/ctl-hlfsd.in: check for alternate password file in + ${prefix}/etc/passwd and use it in hlfsd's startup. + +Thu Oct 23 22:48:50 1997 Erez Zadok + + * hlfsd/homedir.c (hlfsd_getpwent): added support for -P + passwdfile option. If hlfsd is started with -P passwdfile, then + the passwdfile is read and parsed just as a standard unix + passwd(4) file. Only the username, uid, and homedir fields are + read and checked. All the rest are ignored. No NIS/netgroup + support! + + * hlfsd/hlfsd.c (main): check if hlfsd is run as root after + parsing command line options, so that usage() can be printed when + -h is invoked. + +Wed Oct 22 00:16:39 1997 Erez Zadok + + * amd/nfs_start.c (mount_automounter): if autofs service listener + fails to initialize it is OK if using a test amd. + + * amd/opts.c (f_in_network): new nomadic function in_network(arg), + which returns TRUE if 'arg' is any one of this host's networks. + + * libamu/wire.c (getwire): rewritten parts of function, to store + all networks names and numbers in the order of the interface (not + in reverse). + +Mon Oct 20 01:59:25 1997 Erez Zadok + + * aux/configure.in: don't add ops_ufs.o on AIX twice. My code + would have worked had it not been due to AIX's buggy /bin/sh. + + * doc/Makefile.am (EXTRA_DIST): include am-utils.dvi and + am-utils.ps in the distribution sources. + (html): generate html documentation for + http://www.am-utils.org + +Sun Oct 19 12:35:49 1997 Erez Zadok + + * conf/nfs_prot/nfs_prot_netbsd.h: override the definition of + ypall_callback_fxn_t. The NetBSD team compiles all sources with + gcc -Wall -Wmissing-prototypes -Wstrict-prototypes. + + * amd/info_nis.c: allow for override of ypall_callback_fxn_t + function typedef. + + * libamu/xutil.c (amu_release_controlling_tty): new function to + release the controlling tty in a clean and sane manner. No longer + using setpgid() b/c it may not work. Uses setsid(), + and ioctl() (in order). This new function is used in amd/amd.c + and hlfsd/hlfsd.c. Also avoid setpgrp(), because it works on some + systems, but on others it is the same as setpgid(). + +Sat Oct 18 23:42:40 1997 Erez Zadok + + * aux/acconfig.h: check for nfs mount option 'fsname'. Code for + it was in amd/ops_afs.c, amd/ops_nfs.c, and hlfsd/hlfsd.c, but + never used, because the configure test for fsname flag wasn't + used. This fixed a bug in HPUX 10, where syncer and manual mounts + left blank lines in /etc/mnttab. + + * aux/configure.in: check for nfs mount option 'fsname'. + +Fri Oct 17 13:30:27 1997 Erez Zadok + + * amd/ops_afs.c (mount_toplvl): turn on 'ignore' option in nfs + mount flags of toplvl mounts. Important esp. for HPUX 10. Now + hpux-10 will mount amd's mounts points as 'ignore' (by df). + + * aux/configure.in: check for NFS mount option 'ignore', useful in + HPUX 10. + +Thu Oct 16 03:28:33 1997 Erez Zadok + + * aux/macros/check_hide_mount_type.m4: hpux 10 should use "ignore" + mount type and not NFS, for the amd mount points. + + * conf/transp/transp_tli.c (amu_clnt_create_best_vers): don't log + an RPC timeout as an error, but just an info message. From + Andreas Stolcke + + * If the NFS server is down or does not support the portmapper + call (such as certain Novell NFS servers) we mark it as version 2 + and we let the nfs code deal with the case that is down. If when + the server comes back up, it can support NFS V.3 and/or TCP, it + will use those. From christos@deshaw.com (Christos Zoulas). + + * hlfsd/homedir.c (plt_print): various compile time cleanups to + printfs that take a long, but pass an int to print. From + christos@deshaw.com (Christos Zoulas). + + * aux/macros/func_bad_yp_all.m4 (ac_cv_func_yp_all_clean,): new + macro to determine if the OS has a bad yp_all(), based on the host + OS name. So far only irix (all versions) have a bad yp_all, so + they will use am_yp_all() instead (which is slower as it + enumerates manually all of the map's entries). + +Thu Oct 16 03:14:37 1997 Erez Zadok + + * amd/info_nis.c (am_yp_all): code for a replacement yp_all that + avoids using a file-descriptor leaking yp_all() on some systems + like irix. + +Wed Oct 15 21:52:35 1997 Erez Zadok + + * fsinfo/fsinfo.h: avoid redefining yywrap incorrectly on DU-4.x + systems using /usr/bin/flex. + + * amd/conf_tok.l (yywrap): avoid redefining yywrap for systems + that have a modified GNU flex which does define yywrap (DU-4.x). + +Fri Sep 26 14:25:29 1997 Erez Zadok + + * conf/checkmount/checkmount_bsd44.c: include prototype. + +Fri Sep 26 01:26:24 1997 Erez Zadok + + ******************************************************************* + *** Released am-utils-6.0a12 *** + ******************************************************************* + +Fri Sep 26 00:13:48 1997 Erez Zadok + + * conf/nfs_prot/nfs_prot_irix6.h: completely turn off all autofs + code in irix6 until it can be tested correctly + + * conf/transp/transp_tli.c (amu_clnt_create_best_vers): time out + on clnt_create for 3 seconds, rather than wait for the much longer + default. + + * conf/nfs_prot/nfs_prot_aix4_2.h: port to powerpc-ibm-aix4.2.1.0. + Includes NFS3, untested. + +Thu Sep 25 11:03:11 1997 Erez Zadok + + * amd/ops_pcfs.c (mount_pcfs): fill in uid/gid fields of + pcfs_args_t if they exist. + + * amd/ops_cdfs.c (mount_cdfs): fill in ssector field of + cdfs_args_t if it exists. + + * new minor ports hppa1.1-hp-hpux10.10, hppa1.1-hp-hpux9.05, + hppa1.1-hp-hpux9.07, m68k-hp-hpux9.00, and sparc-sun-sunos4.1.4. + +Wed Sep 24 00:48:05 1997 Erez Zadok + + * doc/am-utils.texi (wire-test): updated documentation for the new + option. + + * wire-test/wire-test.8: updated man page for new option. + + * wire-test/wire-test.c (main): added a test for various + combinations of NFS proto/vers to a remote/local host. + + * aux/macros/try_compile_anyfs.m4 (AC_TRY_COMPILE): include + and so that + freebsd will correctly set mount options for pcfs and cdfs. + + * amd/ops_pcfs.c (mount_pcfs): set mask field of pcfs_args to + 0777 (if field exists). + + * aux/macros/try_compile_anyfs.m4 (AC_TRY_COMPILE): include + if available. + + * minor new port: rs6000-ibm-aix4.1.4.0. + + * libamu/mount_fs.c (mount_fs): fixed bug that caused HPUX not to + write the "time" field in /etc/mnttab. + + * conf/mtab/mtab_file.c (mnt_dup): fixed typo in macro names for + detecting mnt_time field of mntent_t. + + * libamu/mtab.c (mnt_free): fixed typo in macro names for + detecting mnt_time field of mntent_t. + +Tue Sep 23 15:30:03 1997 Erez Zadok + + * conf/mtab/mtab_file.c (lock): Use flock() in preference over + fcntl() to lock the mtab file. + +Mon Sep 22 23:04:58 1997 Erez Zadok + + * conf/transp/transp_sockets.c (get_nfs_version): define + the try_again goto label only for NFS3. + (pmap_ping): assume timeout failure of clnt_stat. + + * libamu/xdr_func.c (xdr_groupnode, xdr_exportnode): cast to + "groups *". + +Mon Sep 22 20:34:33 1997 Erez Zadok + + * conf/transp/transp_sockets.c (pmap_ping): patch from Dan Riley + to make sure that amd works with more + secure portmappers that do not allow forwarding of RPC messages to + other services. + + * */Makefile.am: all source files should also depend on the new + include/am_xdr_func.h header. + + * include/am_xdr_func.h: new file as part of the code cleanup from + Christos Zoulas . + + * Lots of fixes from Christos Zoulas that + involved missing prototypes, cleaned up ones, and removal of + unused variables. + + * libamu/xdr_func.c (xdr_mountres3): some code cleanup. A switch + statement with only one case is unclean. + +Mon Sep 22 17:26:38 1997 Erez Zadok + + * amd/ops_fs.c (mount_fs): initialize mntent_t fields to + 0 so that all fields are initialized to zero at first. This way + SunOS 4.x and other systems don't get /etc/mtab entries with + random integers for the fsck/freq fields. Patch from Andreas + Stolcke . + +Mon Sep 22 00:34:19 1997 Erez Zadok + + * conf/nfs_prot/nfs_prot_sunos4.h: include so + that the important definition for HOSTNAMESZ will be found. + + * amd/ops_afs.c (mount_toplvl): limit hostname size to HOSTNAMESZ + (inside the nfs_args structure) if the system uses that macro. + Otherwise systems like SunOS refuse to NFS mount long pathnames + and result in ENAMETOOLONG errno's. + +Wed Sep 17 04:56:11 1997 Erez Zadok + + * doc/am-utils.texi (Supported Platforms): specify new support for + solaris 2.6, and hlfsd running on 2.5.1 too. + +Wed Sep 17 03:55:02 1997 Erez Zadok + + * conf/mount/mount_svr4.c (mount_svr4): don't attemt an autofs + mount if it is not supported or was turned off. + +Wed Sep 17 03:19:36 1997 Erez Zadok + + * conf/nfs_prot/nfs_prot_sunos4.h: fixed so that it will nfs mount + again. Apparently at some previous release SunOS 4 supported was + broken and all nfs mounts resulted in ESTALE. + +Wed Sep 17 00:26:25 1997 Erez Zadok + + * conf/nfs_prot/nfs_prot_sunos5_6.h: nfs protocol headers for + solaris 2.6. + + * aux/macros/check_nfs_prot_headers.m4: added solaris 2.6 nfs + protocol header selection. + +Sat Sep 13 14:31:51 1997 Erez Zadok + + * conf/transp/transp_tli.c (amu_clnt_create_best_vers): avoid + infinite loop. + +Sun Sep 7 18:23:23 1997 Erez Zadok + + ******************************************************************* + *** Released am-utils-6.0a11 *** + ******************************************************************* + +Fri Sep 5 11:55:10 1997 Erez Zadok + + * amd/amd.c (main): if plock() succeeded, don't try to display + errno message. Patch from Chris Metcalf + + + * hlfsd/homedir.c (table_add): make sure duplicate passwd entries + are ignored. Only the first entry should ever be used, because + that's how lookup in passwd database works. + + * conf/transp/transp_sockets.c (get_nfs_version): when determining + if a remote host is up or down, use NFS v.2. Fix suggested by + Enami Tsugutomo . + + * conf/transp/transp_tli.c (amu_clnt_create_best_vers): new + function to get the best possible NFS version, but also timeout + faster than normal defaults, so remote hosts which are down can be + detected in a reasonable time. + (get_nfs_version): use the new "best" function. + +Tue Sep 2 00:41:00 1997 Erez Zadok + + ******************************************************************* + *** Released am-utils-6.0a10 *** + ******************************************************************* + +Mon Sep 1 15:39:51 1997 Erez Zadok + + * conf/transp/transp_tli.c (get_nfs_version): don't use + clnt_tp_create_timed() on systems that don'e have it (Solaris 2.4 + and earlier). + + * aux/configure.in: test for existence of clnt_tp_create_timed(), + since Solaris 2.4 (and possibly earlier) do not have it. + +Mon Sep 1 15:23:18 1997 Erez Zadok + + * amd/ops_autofs.c (autofs_unmount_1_svc): only display rdevid + field if it exists (solaris 2.4's autofs does not have it). + +Mon Sep 1 14:45:09 1997 Erez Zadok + + * aux/macros/type_auth_create_gidlist.m4: a new test to determine + the correct type to the 5th argument of authunix_create(). + +Mon Sep 1 03:44:32 1997 Erez Zadok + + * libamu/xdr_func.c (xdr_umntrequest): add test for autofs + structure umntrequest, if it has the field rdevid. Seems Solaris + 2.4 and earlier didn't have it. + +Mon Sep 1 01:10:53 1997 Erez Zadok + + * hlfsd/hlfsd.c (hlfsd_init): moved initialization upwards, so it + can be done before primary process forks. + (main): bug fix: wait a bit to give child a chance to initialize. + Without this, hlfsd got into a busy infinite loop while, never + completing the mount. + + * amd/info_nis.c: patch from Jason Thorpe + to make amd works when talking to NIS+ servers in NIS + compatibility mode. + +Mon Sep 1 00:46:56 1997 Erez Zadok + + * amd/mapc.c (MAX_CHAIN): increased maximum chain size to 1024. + +Sun Aug 31 20:20:40 1997 Erez Zadok + + * amd/conf.c (gopt_fully_qualified_hosts): a new function to + process another new global variable. + + * amd/ops_nfs.c (make_nfs_auth): if a new global variable + fully_qualified_hosts is on, use FQHN in RPC/NFS authentications. + Patch from Chris Metcalf . + + * amd/conf.c (process_last_regular_map): If the amd.conf file only + has a [global] section (pretty useless IMHO), do not try to + process a map that does not exist. + + * scripts/amd.conf.5: fixed typos (repeated 'as' word). + + * doc/am-utils.texi: MAJOR DOCUMENTATION REVISION COMPLETED!!! + + * amd/conf.c (reset_cf_map): Bug fix. Reset 'tag' field of cfm + structure, so it does not carry over from map entry to another. + +Sat Aug 30 18:39:21 1997 Erez Zadok + + * amd/amd.c (main): fixed the meaning of the plock option. A bug + caused it to be reversed. + +Sat Aug 30 15:13:18 1997 Erez Zadok + + * hlfsd/stubs.c: don't initialize some statics here. They are + better initialized in hlfsd_init_filehandles(). + +Fri Aug 22 14:47:16 1997 Erez Zadok + + * amd/conf.c (gopt_show_statfs_entries): new function and a global + amd.conf key show_statfs_entries. Defaults to 'no'. If 'yes', + then all maps flagged as browsable will also show a count of the + number of entries (keys) in that map. + + * amd/nfs_subr.c (count_map_entries): new function to count number + of entries in a map. Now used if browsable is turned on in a map, + to return a count of available keys in a given map. + + * hlfsd/stubs.c (eq_fh): use correct memcmp(). BUG fixed! hlfsd + confused the file handles for ".", "..", and the symlink, causing + mess. + + * aux/macros/func_bad_memcmp.m4: new test, based on autoconf 2.12, + but also defines HAVE_BAD_MEMCMP, so I avoid linkage conflicts + with bad memcmp() in libc's (nextstep3). + +Thu Aug 21 17:38:41 1997 Erez Zadok + + * aux/configure.in: check if autofs_args_t has a field named + addr. Solaris has it for specifying the address of the daemon, + but Irix does not. So how does irix tell the kernel the daemon's + address? I suspect that it is hardcoded to "localhost" using a + "private well-known port" (#define AUTOFS_PORT 2048). + + * conf/nfs_prot/nfs_prot_linux.h: added missing autofs + definitions. + + * README.autofs: new file listing autofs support notes + + * very preliminary autofs code working. Call it pre-alpha + quality. + +Sun Aug 17 02:25:09 1997 Erez Zadok + + * amd/conf.c (ropt_mount_type, gopt_mount_type): don't accept + "autofs" if system does not support it. + + * amd/amd.c (main): log am-utils version string (same as amd -v) + at start of run. + + * conf/transp/transp_sockets.c (get_nfs_version): in order to tell + if a remote host is available, try to contact its portmapper and + timeout if no answer is received in 3 seconds. + +Thu Aug 14 16:12:04 1997 Erez Zadok + + * aux/macros/check_extern.m4 (pattern): use a simpler pattern for + match for external function definitions. The function could span + multiple lines, so only match the opening parenthesis, not the + closing one too. + + * aux/macros/os_cpp-flags.m4 (ac_cv_os_cppflags,): do NOT turn on + posix mode for nextstep3. It is broken. + + * amd/amd.c (init_global_options): run uname() only if + and uname(2) exist. + + * amd/rpc_fwd.c (fwd_packet): if remote host is down, the + forwarding socket is null, so declare this an error. + + * include/am_utils.h (AM_ERRNO_HOST_DOWN): find best errno to set + for when a remote host is down. Try, in order, "host down", "host + unreachable", "invalid argument". + + * amd/ops_nfs.c (discard_fh): don't dereference a null pointer + (happens when remote host is down, and fp->fh_fs is NULL). + (prime_nfs_fhandle_cache): ditto, and set fs flags to !FSF_VALID + and FSF_DOWN. + + * amd/sched.c: nobody uses "union wait" any more, or so it + appears, so clean up that code. + + * conf/transp/transp_tli.c (get_nfs_version): if remote host is + down, time it out faster than default (3 seconds). + (get_mount_client): free netconfig entry when done with it. + + * conf/nfs_prot/nfs_prot_nextstep.h: initial (and somewhat ugly) + port to nextstep3 (m68k-next-nextstep3). + + * fsinfo/Makefile.am (LDADD): needs to link with libamu in case + system does not have strdup(). + + * include/am_defs.h: complete external definition for getlogin() + if needed. + + * conf/transp/transp_tli.c (get_nfs_version): no need to keep + static versout variable. + + * amd/rpc_fwd.c (fwd_packet): if fwdto packet is null, remote + server is probably down. Don't use sendto() in that case. + + * buildall (default): run gmake if found, before trying plain + make. GNU make is always preferable. + +Tue Aug 12 21:23:58 1997 Erez Zadok + + * aux/macros/host_macros.m4: cleanup of os_version and os + overrides. Solaris 2.5.1 for example will come up as solaris2 and + 2.5.1, rather than sunos5 and 5.5.1. Both can be overridden in + the amd.conf file. + +Fri Aug 8 14:37:30 1997 Erez Zadok + + ******************************************************************* + *** Released am-utils-6.0a9 *** + ******************************************************************* + +Thu Aug 7 00:52:14 1997 Erez Zadok + + * conf/nfs_prot/nfs_prot_ncr2.h: new file, for NCR2 + (i486-ncr-sysv4.3.03) headers. Needed to complete missing stuff + from and . + + * scripts/amd.conf.5: new map page. + + * amd/info_hesiod.c: define extern for hesiod_resolve, since bsdi3 + does not. + + * amd/amd.8: updated man page. + + * amd/get_args.c (get_args): removed defunct -h option to amd. + + * amq/amq.8: updated man page. + + * amd/info_nisplus.c (nisplus_search): prototype fixes so Sun + SparcCompiler CC won't complain. + + * amd/info_hesiod.c (hesiod_search): small fixes to compile with + hesiod-1.3, as per Rainer Orth . + + * aux/macros/opt_ldflags.m4: new option added to configure + --enable-ldflags, to specify -L option for configuring/compiling. + The older one --enable-libs is now to be used only for -l options. + + * amd/ops_nfs.c (mount_nfs_fh): bug fixed. Should initialize + nc_protoname from nfs_proto if available for all TLI systems, not + just those that have NFS V3. + + * amd/info_ldap.c: ldap patches from Leif Johansson + , adding two new amd.conf ldap variables: + ldap_cache_seconds and ldap_cache_maxmem. + + * hlfsd/hlfsd.c (main): bug fixed. port number must be wrapped in + htons(). + +Sun Aug 3 17:20:05 1997 Erez Zadok + + * amd/nfs_start.c (mount_automounter): register amd with the rpc + program number that may have been overridden by amd.conf. + + * libamu/xutil.c (set_amd_program_number, get_amd_program_number): + allow storing and retrieving alternate amd program numbers. + + * amd/conf.c (gopt_portmap_program): new function to parse + amd.conf entry portmap_program=1234. + + * amq/amq.c (main): allow specifying an alternate rpc program + number for amd via -P prognum. + + * new amq RPC to get the process id of the running amd. This is + used in ctl-amd to quickly find the pid of the amd that is to be + killed. + + * expanded shared libraries support. Using GNU libtool-1.0, + am-utils now builds shared libraries on many platforms that have + support for it and proper compilers/linkers. See "INSTALL" file + for compatibility chart. + +Thu Jul 31 13:07:23 1997 Erez Zadok + + * fsinfo/fsi_lex.l: removed code that was in support of very old + versions of flex. No longer needed. + +Tue Jul 29 12:00:13 1997 Erez Zadok + + * amd/amd.c (init_global_options): find the kernel architecture + from uname() if possible. + +Mon Jul 28 03:53:59 1997 Erez Zadok + + * new working port: i386-unknown-openbsd2.1 + +Fri Jul 25 03:16:31 1997 Erez Zadok + + * working port: sparc-sun-solaris2.4. Had to fix fhandle_t from + structure to actual char[], because the structure was passed to + xdr_fhandle as data and not a pointer. Surprisingly, gcc + -fpcc-struct-return did not help. + + * conf/nfs_prot/nfs_prot_sunos5_4.h: special nfs protocol + definitions for solaris 2.4 have to be different from 2.3, and + different from 2.5. + + * libamu/xdr_fhstatus.c (xdr_fhstatus): minor code cleanup. + +Thu Jul 24 16:22:39 1997 Erez Zadok + + * conf/mount/mount_svr4.c (mount_svr4): use STREQ to compare mount + types, not ==. Fix from Christos Zoulas . + + * mk-amd-map/mk-amd-map.8: man page taken from bsd44. + +Thu Jul 24 00:01:55 1997 Erez Zadok + + * conf/mount/mount_linux.c: made the nfs error mapping code into a + small function. + +Wed Jul 23 16:11:49 1997 Erez Zadok + + * conf/nfs_prot/nfs_prot_linux.h (NFS_ERROR_MAPPING): special + error mappings from errno numbers to NFS errors. From Debian + Linux. + + * scripts/am-eject.in (fs): new script (taken from Debian Linux + folks) to auto-unmount floppy/cd devices before ejecting them. + + * fsinfo/wr_exportfs.c (write_exportfs): from Debian folks, pass + '5' as second arg to show_area_being_processed. I'm not sure why. + + * fsinfo/wr_atab.c (write_atab): from Debian folks, pass '5' as + second arg to show_area_being_processed. I'm not sure why. + + * conf/mount/mount_linux.c (parse_opts): as per Debian Linux, + ensure that you have a buffer in *xopts to strcat onto. + (mount_linux): fixed from Debian folks to ensure that NFS mount + sockets are connected only for kernels prior to 1.3.10 (avoids + hangs for multi-homed hosts). + + * amd/mapc.c (make_entry_chain): from Debian folks: don't skip + over amd map keys that have a prefix, and include the prefix in + the returned readdir(). + + * amd/info_passwd.c (passwd_init, passwd_search): format + enhancements from the Debian Linux folks. They added + - var0:=pw-prefix:=anydir + - var1:=pw-rhost:=dom3.dom2.dom1 + - var2:=pw-user:=user + - var3:=pw-home:=/anydir/dom1/dom2/dom3/user + + * new ports: sparc-sun-solaris2.4 and sparc-sun-sunos4.1.1. + + * amd/ops_afs.c (afs_retry): patches from Debian Linux. If + afs_mount timed out, then explicitly forbid further retries after + the timeout. (afs_bgmount): bug fix from Debian Linux. Timeout + values (17 and 5) were mistakenly swapped. + +Wed Jul 23 15:53:25 1997 Erez Zadok + + * conf/nfs_prot/nfs_prot_sunos5_3.h: turn off non-existent NFS V.3 + support for Solaris 2.4 (the header files incorrectly define parts + of the NFS V.3 protocol, but the kernel does not support it). + +Wed Jul 23 00:07:12 1997 Erez Zadok + + * amd/info_hesiod.c: minor cleanup to use hes_init and hesiod_init + for determining if using old or new hesiod libraries, + respectively. + + * amd/ops_nfs.c (mount_nfs_fh): If "noconn" option exists in NFS + V.3 then use non-connected sockets (both TCP and UDP). Otherwise + they cause hangs of mounts from multi-homed hosts when the return + route is not the same as the outgoing route (esp. on NetBSD + 1.2.1). If "conn" option was supplied, then don't turn on the + "noconn" mount option. Otherwise default to "noconn" mount + option. + + * aux/configure.in: better check for systems that need libgdbm and + + +Tue Jul 22 04:02:05 1997 Erez Zadok + + * hlfsd/hlfsd.c (main), amd/ops_afs.c (mount_toplvl): ensure that + mounts are hidden from df(1) on systems that keep mount tables in + kernel, such as osf1. + +Tue Jul 22 02:26:55 1997 Erez Zadok + + ******************************************************************* + *** Released am-utils-6.0a8 *** + ******************************************************************* + +Mon Jul 21 21:33:19 1997 Erez Zadok + + * hlfsd/hlfsd.c (main): bug fixed: forgot to set sin_family to + AF_INET when hlfsd mounts itself, thus getting an errno "protocol + family not supported". + +Mon Jul 21 20:46:59 1997 Erez Zadok + + * verified that amd on NetBSD 1.2.1 (i386) works, but the OS + itself is flaky. + + * verified that amd AIX 3 works w/ the new readdir() code. + +Mon Jul 21 18:59:30 1997 Erez Zadok + + * amd/mapc.c (maptypes): changed the default map caching type for + nis and ndbm maps to "MAPC_ALL", so that all possible entries will + be available to amd for browsable_dirs=yes. + +Mon Jul 21 18:04:16 1997 Erez Zadok + + * amd/ops_afs.c (afs_readdir, afs_readdir_browsable): split + afs_readdir into a browsable version and a non-browsable one. + Fixed bugs that resulted in an infinite nfs_readdir loop on the + localhost for some operating systems. + +Sat Jul 19 19:38:38 1997 Erez Zadok + + * amd/ops_afs.c (afs_readdir): fixed up the browsable code to + comply with nfs_readdir specs. It was returning all entries at + once, even if there was not enough space in the RPC packet. Now, + it sends a reasonably sized chunk, and sets static state to resume + it for the next continuation RPC of readdir. + + * amd/conf.c (set_conf_kv): fixed bug that resulted in the first + regular map not getting all of the [global] options defaulted from. + +Fri Jul 18 00:45:12 1997 Erez Zadok + + * amq/amq.c (main): fixed so that portmapper "ping" will only fail + upon an RPC timeout + + * scripts/ctl-{amd,hlfsd}.in (killproc): better method to find the + amd/hlfsd process to kill. + + * amd/ops_afs.c (mount_toplvl), hlfsd/hlfsd.c (main): code to + determine how to avoid df from seeing amd's toplvl mounts. Moved + from libamu/mount_fs.c and include/am_utils.h. Ensure that hlfsd + is hidden from df. + (mount_toplvl): fixed df types for irix. + +Thu Jul 17 21:59:45 1997 Erez Zadok + + * amq/amq.c (main): fixed bug that caused the 5 second timeout for + TLI amq using udp to be ignored. + (main): if amq cannot contact remote host's portmapper within 5 + seconds, timeout and fail faster than the default longer timeout + (this is for non-TLI systems). + +Thu Jul 17 17:08:13 1997 Erez Zadok + + * amq/amq.c (get_secure_amd_client): if amq cannot contact + remote host's portmapper within 5 seconds, timeout and fail faster + than the default TLI timeout of over 4 minutes. + + * amd/am_ops.c (ops_showfstypes): added styles for new bsd44 + file systems nullfs, unionfs, and umapfs. + (ops_show1): cleanup code and and reuse this function. + (vops): empty placeholders for nullfs, unionfs, and umapfs. + + * amd/ops_{nullfs, unionfs, umapfs}.c: 3 new empty templates for + bsd44 style file systems. + + * fsinfo/fsinfo.8: man page for fsinfo rewritten from bsd44 + sources. + + * amd/conf_tok.l, fsinof/fsi_lex.c: undefine ECHO to avoid + conflict with systems that define it in and also + define a conflicting one via lex. Newer versions of f/lex are ok. + +Wed Jul 16 00:17:45 1997 Erez Zadok + + * amd/ops_nfs.c (mount_nfs_fh): fill in nfs_args' fields + acdirmin/max and acregmin/max only if they exist. + + * aux/configure.in: test for nfs_args fields acdirmin and + acregmin. + +Tue Jul 15 17:24:09 1997 Erez Zadok + + * aux/configure.in: commented out checking for MNT2_GEN_OPT_* for + "nondev" and commented back in checking for "nodev". This was a + typo. + + * include/am_compat.h: more compatibility options: define "ro" + mnttab option all the time. Define "overlay" as needed. Added + more fillers of mnttab options (as per Daniel S. Riley + ), for acdirmax, acdirmin, acregmax, + acregmin, noac, grpid, nosuid, and actimo. + + * libamu/mount_fs.c (mnt_flags): fixed a typo in "ro" option as + per dsr@mail.lns.cornell.edu (Daniel S. Riley). Then cleaned up + the same code for other options in struct opt_tab. + +Mon Jul 14 22:36:37 1997 Erez Zadok + + * amd/get_args.c (get_args): moved amd.conf file parsing to before + the switching the default log/debug options. Suggested by + dsr@mail.lns.cornell.edu (Daniel S. Riley). + + * aux/update_build_version: new script to record the build version + of amd, along with the rest of the info thet comes up with amd -v. + +Sun Jul 13 00:30:24 1997 Erez Zadok + + * aux/macros/os_cflags.m4: new macro, to add additional + compilation options (also used during configuration), based on the + OS and the compiler. Used for solaris-2.6, osf, and irix6. + +Fri Jul 11 10:15:11 1997 Erez Zadok + + * amd/conf_tok.l, conf_parse.y: allow values of keys to include + white spaces, if they are double-quoted (key="some value") + + * amd/info_hesiod.c (hesiod_search): cleanup and minor bug fixes + of hesiod from Danny Braniss . + +Fri Jul 11 02:16:06 1997 Erez Zadok + + ******************************************************************* + *** Released am-utils-6.0a7 *** + ******************************************************************* + +Thu Jul 10 12:19:25 1997 Erez Zadok + + * include/am_defs.h: fill in extern definition of innetgr() in + case system headers don't. + + * aux/macros/path_prog_lex.m4 aux/configure.in: using macros that + will show the full pathname to yacc/bison and f/lex. Some systems + have older or bad versions of those and this way the user will + know for sure what is being invoked. + + * tasks: file populated with todo items. + + * scripts/amd2ldif.in: Script to convert amd maps to plain text + LDAP object files. Contributed by Leif Johansson + . + + * aux/config.guess: added recognition for sun3's running 4.2bsd, + from Tom Schmidt . Fixed one small typo. + + * amd/conf.c: several variables that were local to a map, were + also added to [global], where they apply to all maps. Each map + can then individually override those defaults. Flags + affected: browsable_dirs and mount_type. Options affected: + map_type, map_options, and search_path. + + * amd/amd.h: eliminated several global flags each of which took an + int, in favor of one global flags variable used as a bit field. + + * amd/amd.c (init_global_options): moved all global variables into + a single struct amu_global_options, so it is easier to add new + ones and/or identify existing ones. + + * amd/get_args.c (get_args): removed unused amd -m option. + + * amd/conf.c (gopt_cluster): added new amd.conf option for cluster + name, same as amd -C. + + * amd/info_ldap.c: LDAP info map functions from Leif Johansson + . + + * amd/conf.c (gopt_ldap_base, gopt_ldap_hostports): put in global + amd.conf options for ldap_base and ldap_hostports. + + * amd/opts.c (f_netgrp): new amd map function netgrp(ARG) to test + if the current host is in the ARG host netgroup. + + * aux/configure.in: some systems replaced dbm in libc with GNU's + libgdbm, so check for libgdbm, but only if dbm_open is not in + libc already. This was a recommendation from Tom Schmidt + . + + * conf/nfs_prot/nfs_prot_sunos5_3.h: port to sparc-sun-solaris2.3 + completed. + +Wed Jul 9 18:14:59 1997 Erez Zadok + + * port to sparc-unknown-netbsd1.2E done, not tested. Includes NFS + V.3. + +Tue Jul 8 17:35:07 1997 Erez Zadok + + * port to i386-unknown-freebsd3.0 done and working. Includes NFS + V.3. + + * aux/macros/check_nfs_fh_dref.m4: freebsd3 should use + file handle dereferencing style similar to freebsd22. + + * include/am_defs.h: need to include before + on freebsd3. + + * conf/nfs_prot/nfs_prot_freebsd3.h: new protocol header additions + for freeBSD 3.0. + +Tue Jul 8 16:53:41 1997 Erez Zadok + + * amd/info_nis.c (nis_reload): cast nis' callback function so + picky compilers won't complain. + + * libamu/xdr_mountres3.c (xdr_mountres3): make sure this function + gets compiled only if the system has NFS V3 and does not have + xdr_mountres3. + +Tue Jul 8 12:42:03 1997 Erez Zadok + + * COPYING: put in some legal stuff in this file. + +Mon Jul 7 19:10:44 1997 Erez Zadok + + * NFS V3 now works under Irix5, thanks to patches from + Andreas Stolcke . + + * conf/mount/mount_irix5.c: sparate mount_irix.c into an irix5 + version and an irix6 version, since irix5's NFS V3 code is broken + and hacky. + + * amd/info_hesiod.c (hs_zone_transfer): minor fixes to buffer + sizes for some hesiod queries. Patch from Danny Braniss + . + +Mon Jul 7 19:04:14 1997 Erez Zadok + + * amd/ops_nfs.c (mount_nfs_fh): fixed NFS V.3 support for bsdi3. + +Sun Jul 6 14:22:24 1997 Erez Zadok + + * aux/{configure.in,acconfig.h}: added checks for struct + nfs_args's fields proto and sotype (bsdi3). + + * amd/ops_nfs.c (mount_nfs_fh): added nfsv3 option to + nfs_args.flags for bsdi3. Set field proto to 0. Set sotype field + to SOCK_STREAM or SOCK_DGRAM. + + * aux/macros/check_mount_style.m4: add case for bsdi3. + + * amd/info_hesiod.c: got hesiod support for bsdi3. + +Sun Jul 6 11:14:47 1997 Erez Zadok + + * aux/configure.in: look for hesiod on libc (bsdi3) + + * amd/get_args.c (get_args): reformat usage so it fits in 80 + columns. + + * scripts/ctl-amd.in: changed directory name for optional tftpboot + map to /tftpboot/.amd. + +Sat Jul 5 17:46:45 1997 Erez Zadok + + ******************************************************************* + *** Released am-utils-6.0a6 *** + ******************************************************************* + +Sat Jul 5 03:17:09 1997 Erez Zadok + + * scripts/ctl-amd.in: include -T tag for tftpboot. + + * new port: mips-sgi-irix5.3. Compiled with gcc, but NFS V3 code + is broken and needs work on the specific nfs_args that irix5 uses + for V3 mounts. + +Sat Jul 5 01:44:25 1997 Erez Zadok + + * amd/get_args.c (get_args): new options amd -T tag. A map with + tag=foo matching the -T tag will be processed. All untagged maps + get processed all the time. + +Fri Jul 4 16:19:26 1997 Erez Zadok + + * aux/configure.in: need to check for strcasecmp in libucb (ncr2) + + * aux/macros/check_os_libs.m4: a new macro to set the usage of + libnsl and libsocket based on the OS. + + * libamu/mount_fs.c (mnt_flags): used MNTTAB_OPT_GRPID if it is + defined (problem on osf4). + + * conf/nfs_prot/nfs_prot_irix5.h: new file for irix5 headers. + + * include/am_defs.h, aux/macros/try_compile_nfs.m4, + aux/macros/mount_headers.m4: do include because it + failes on irix5. Rather, put in the individual + conf/nfs_prot/nfs_prot_*.h headers. + + * amd/conf.c: AIX3 doesn't like strdup() being passed a constant + char*, so cast all strdup()'s args to a non-const char*. + + * amd/mapc.c (root_newmap): don't try to strdup only a "const + char *". + +Fri Jul 4 15:47:10 1997 Erez Zadok + + * conf/nfs_prot/nfs_prot_sunos4.h: added rpc/rpc.h and + sys/errno.h. + +Thu Jul 3 17:49:00 1997 Erez Zadok + + * made sure am-utils compiles, links, and runs properly on Irix + 6.2 using "cc -32 -Wl,-woff," + + * aux/macros/check_lib2.m4: a bug fix version to autoconf 2.12 + AC_CHECK_LIB. If OTHER-LIBRARIES are defined and used, then add + them to $LIBS. + + * aux/configure.in: some cleanup of which libraries are needed. + Espectially ensure that libnsl is included only on Solaris, where + so far it is the only system on which it is absolutely necessary. + Also no longer need to include libc explicitly. + + * amd/amd.c,wire-test/wire-test.c (main): convert IP address to + network-long order before printing it. + + * wire-test/wire-test.c (main): also check and report on the IP + address of the local host, since some systems have bad versions of + get_myaddress, or ones that conflict with other versions in + multiple libraries (SunOS 4 and Irix especially). + +Wed Jul 2 18:19:02 1997 Erez Zadok + + * scripts/ctl-amd.in: don't use full pathname so killproc() works + better. Also run bsd44 and irix style ps programs. + + * aux/macros/check_lib_funcs.m4: bug fixed: used to define usage + of library no matter if it was found or not. + +Wed Jul 2 02:11:48 1997 Erez Zadok + + * aux/macros/check_mnt2_gen_opt.m4: turned back on the checking + for M_* macros, but ensure that is not included at + all so it won't conflict with other M_* macros. + +Tue Jul 1 21:16:51 1997 Erez Zadok + + * conf/mount/mount_irix.c (mount_irix): first arg to mount(2) on + irix should be "spec" (host:/path), not the dir of the mnt point. + + * amd/ops_afs.c (afs_lookuppn): bug in enable_default_selectors + fixed. If on, it essentially ignored the setting in a + selector-controlled /defaults if there were 2 or more entries in it. + +Tue Jul 1 12:23:38 1997 Erez Zadok + + * scripts/ctl-{amd,hlfsd}.in (killproc): if failed to find process + using BSD style ps, then try SVR4 style ps. + + * include/am_utils.h (amuDebug): renamed Debug macro to amuDebug + etc., to avoid conflicts with similar named macros in . + + * aux/configure.in, amd/info_ldap.c, etc.: put in all the autoconf + support needed for LDAP. Now the code has to be written mostly in + amd/info_ldap.c. + + * Included additional patches from Andreas Stolcke + to support using the best possible + combination of NFS version (2,3) and protocol (udp,tcp) for any + given host, since it appears that some Irix versions have NFS V3, + but do not support TCP. + + * scripts/ctl-amd.in: updated amd control script to look for and + use amd.conf file. + +Tue Jul 1 00:28:23 1997 Erez Zadok + + * amd/mapc.c (mapc_create): now, each map in the amd.conf can be + initialized off of a different type, or default to cycling through + all maps until one of them matches. + +Mon Jun 30 20:49:13 1997 Erez Zadok + + * amd/ops_afs.c (afs_readdir): per-map browsing (readdir) done. + if browsable_dirs=yes is set in the map section in amd.conf, that + map will return all entries back to a readdir(2). + +Sun Jun 29 16:22:11 1997 Erez Zadok + + * rudimentary amd.conf file support included. You may even + override things like os=sos5, to get "backwards" compatibility with + upl102. + +Sat Jun 28 13:35:02 1997 Erez Zadok + + * amd/conf.c: new file to process amd.conf file. + + * amd/get_args.c (get_args): new options -H to print help. + + * moved enable_default_selectors to be amd.conf controlled, and + not compiler controlled. + + * amd/get_args.c (get_args): new options -F to parse an + amd configuration file. + +Wed Jun 25 23:15:42 1997 Erez Zadok + + * converted all files that used strcmp() == 0 or != 0 to using + the STREQ() macro. + +Mon Jun 23 22:31:14 1997 Erez Zadok + + * aux/macros/check_lib_funcs.m4: new M4 macro that can be used to + search for any number of functions in any given library. + +Mon Jun 23 01:04:23 1997 Erez Zadok + + * amd/mapc.c: Included patch from Leif Johansson + to ensure that systems without an RE + library can compile. + + * libamu/mount_fs.c (mount_fs): Included patch from Andreas + Stolcke , to ensure that mount options on + table are properly delimited by a comma. + + * amd/ops_nfs.c (mount_nfs_fh): Included patch from Andreas + Stolcke , to allow users to override the + proto= and vers= mount options. + +Sun Jun 22 01:00:11 1997 Eric Dana (edana@ncr2.bgs.com) + + * conf/nfs_prot/nfs_prot_svr4.h: port completed to + i486-ncr-sysv4.3.03. Assorted source cleanups done. + + * include/am_defs.h, aux/macros/mount_headers.m4: don't include + mnttab.h if sys/mnttab.h was already included, because on ncr2, + they contain conflicting entries for struct mnttab. + +Sat Jun 21 23:52:15 1997 Eric Dana (edana@ncr2.bgs.com) + + * aux/macros/check_nfs_prot_headers.m4: added support for ncr2. + +Fri Jun 20 06:14:17 1997 Erez Zadok + + * amd/*.c: lots of 64-bit "ugly" ports like casts to long ints. + + * aux/macros/struct_nfs_fh.m4: check for "struct nfssvcfh" because + on DU-4.0 it is better than the next one to be picked (nfsv2fh_t). + +Wed Jun 18 18:59:49 1997 Erez Zadok + + * aux/macros/struct_nfs_fh.m4 (AC_TRY_COMPILE_NFS): check for + nfsv2fh_t before fhandle_t becasue on bsdi2.1 the former is + better. + +Tue Jun 10 17:06:58 1997 Erez Zadok + + * amd/rpc_fwd.c (fwd_packet): TLI bug fix. if fwdto socket is + NULL, set the maxlen and len fields in netbuf to zero. + +Wed May 28 22:52:28 1997 Erez Zadok + + * scripts/fix-amd-map.in (name): replace all matching patterns on + line. + +Sun May 25 19:33:41 1997 Erez Zadok + + ******************************************************************* + *** Released am-utils-6.0a5 *** + ******************************************************************* + +Sun May 25 13:37:24 1997 Erez Zadok + + * amd/amq_subr.c (amqproc_getvers_1_svc): amq's RPC service + procedure now returns the full string that amd -v returns. + + * amd/get_args.c (get_version_string): new function to return + complete version/info string so it could be used more flexibly. + + * amd/am_ops.c (ops_showamfstypes, ops_showfstypes): put the list + of Fs types into a string buffer, rather than a FILE*. + + * amd/mapc.c (mapc_showtypes): put the list of map types into a + string buffer, rather than a FILE*. + +Sun May 25 01:25:36 1997 Erez Zadok + + * amd/get_args.c (get_args): amd -v also prints user who built + amd, hostname built on, and date of configuration. + +Sat May 24 13:40:50 1997 Erez Zadok + + * scripts/lostaltmail.conf-sample: sample lostaltmail + configuration file. + + * scripts/lostaltmail.in: new script lostaltmail used to redeliver + "lost" mail that hlfsd redirected to a temp location because the + primary home file system of the user was full. + + * scripts/amd2sun.in: new script amd2sun. Used to convert Sub + automount maps to amd maps. + + * scripts/ctl-hlfsd.in: new script ctl-hlfsd. Used to start, + stop, or restart hlfsd. + + * scripts/expn.1: man page for expn command. + + * scripts/ctl-amd.in: new script ctl-amd. Used to start, stop, or + restart amd. + + * scripts/expn.in: new script expn. Actually taken from David + Muir Sharnoff . Used by hlfsd's mail re-delivery + script. + + * scripts/wait4amd.in: new script wait4amd added. Waits for amd + to come up on a host, and then runs a command (rsh $hostname by + default). + + * scripts/Makefile.am: new directory now holds all shell/perl + scripts that belong to am-utils. + + * conf/mount/mount_linux.c (parse_opts): new parser for + linux-specific mounts. Handles fs-type specific mount-options + correctly. Currently implemented: msdos, iso9660. + + * amd/ops_pcfs.c (pcfs_ops): don't timeout pcfs mounts by default + (fix for linux). + + * amd/ops_cdfs.c (cdfs_ops): don't timeout cdfs mounts by default + (fix for linux). + + * amd/mapc.c (make_entry_chain): fixed bug that resulted in amd + core dumps upon "ls" of a mount point; an invalid pointer was + being returned and dereferenced. + + * port to Linux sparc working! + + * hlfsd/homedir.c (hlfsd_diskspace): close file descriptor if + failed to write test file, or else the fd will leak. + +Sun May 18 00:42:41 1997 Erez Zadok + + * amd/info_hesiod.c (hs_strip_our_domain): use strcasecmp() + instead of strcmp(). + + * Port to Digital Unix 4.0 (OSF) done. + + * hlfsd/hlfsd.c: renamed dirname to dir_name to avoid conflicts + with dirname() function in on OSF systems. + + * fsinfo/fsi_util.c (set_ether_if): take out extern definition of + inet_addr(). It should come from instead. + + * conf/mtab/mtab_osf.c: fixed macros and added NFS V3 specs. + + * include/am_utils.h: renamed FIRST/LAST to AM_FIRST/AM_LAST to + avoid conflicts with DU 4.0 system header. + +Thu May 15 22:49:12 1997 Erez Zadok + + * libamu/mount_fs.c (mount_fs): pass along NFS version so I can + determine if to include additional options in the mount table file + entry (such as proto=tcp, and vers=3). + +Thu May 15 00:42:12 1997 Erez Zadok + + * libamu/mount_fs.c (mount_fs): include NFS version number in the + mount table options, as well as proto={tcp,udp}. + +Wed May 14 14:30:19 1997 Erez Zadok + + * NFS V3 code ported to most other systems, so it compiles for V2 + and V3 NFS systems. + + * NFS VERSION 3 support, first pass. Working for Solaris and + using TCP. + +Sun May 11 01:14:29 1997 Erez Zadok + + * amq/amq.c: many newline characters were missing from various + stderr printfs. + +Sat May 10 13:09:06 1997 Erez Zadok + + * conf/nfs_prot/nfs_prot_sunos5.h: protocol defintions for + Solaris, which include NFS V3 support. + + * conf/nfs_prot/nfs_prot_default.h: default NFS protocol headers. + + * conf/transp/transp_{tli,sockets}.c (get_mount_client): use NFS + protocol version while getting a mount client. + + * amd/ops_nfs.c (mount_nfs_fh): set the mount types, mnttab types, + file handle size, and proper file handle based on the correct NFS + version number. + + * conf/mount/mount_svr4.c (mount_svr4): support NFS3 mounts under + Solaris and other SVR4 systems. + + * amd/ops_nfs.c: store NFS file handle version and version + specific handle in struct fh_cache. + (got_nfs_fh): pick the correct RPC reply based on the NFS version + of the server. + (prime_nfs_fhandle_cache): figure out the right NFS file handle + for a node, but now include NFS protocol version information. + (call_mountd): set the correct version for the mount protocol, + based on the NFS protocol version. + (nfs_init): use the NFS protocol generic structure + am_nfs_handle_t. + + * include/am_utils.h: new structure am_nfs_handle_t to contain all + possible versions of NFS file handles. + + * amd/srvr_nfs.c (start_ping): ping program performs NFS version + specific pings. + (recompute_portmap): figure out the correct portmap version mount. + (nfs_keepalive): call start_ping() with the correct NFS version. + (find_nfs_srvr): if mount option "vers=" is given, use it. Get + the NFS server version and verify that it is up. + + * conf/transp/transp_{tli,sockets}.c (get_nfs_version): a new + function to find the best NFS version for a particular host. + + * libamu/amu.h: determine what is the highest version of NFS we + should try. + + * include/am_utils.h (NFS_VERSION3): added definition for NFS V3 + protocol number. + Added field fs_version to struct fserver, so we can now store the + server protocol version. + +Fri May 9 01:09:45 1997 Erez Zadok + + * aux/macros/check_field.m4 (AC_MOUNT_HEADERS): map '.' (dot) into + underscores too, so I can test for sub-fields. + + * libamu/wire.c: use test that checks for sub-fields of struct + ifreq. + +Sat May 6 10:20:17 2000 Erez Zadok + + * port to BSD/OS 3.0 completed! Many xdr_ functions were broken + into smaller files. M4 macros fixed to test for existence of + file systems using getvfsbyname(). + + * amd/sched.c (sigchld): signal handler must waitpid() for all + possible children. + + * hlfsd/homedir.c: signal handler must waitpid() for all possible + children. + + * aux/macros/check_restartable_signals.m4: new macro to determine + if need to reinstall signal handlers per OS is better than trying + to figure these out based on system macros. + +Fri May 5 19:23:28 2000 Erez Zadok + + * amd/ops_nfs.c (mount_nfs_fh): set nfs_args_t version number. + + * amd/ops_afs.c (mount_toplvl): set nfs_args_t version number. + + * amd/ops_nfs.c (mount_nfs_fh): process nfs mount option resvport + (must be supplied for bsdi 3.0) + + * libamu/wire.c: use HAVE_FIELD_STRUCT_IFREQ_IFR_ADDR (and + associated new macro) for determining the right way to compute the + size of the interface structure. + +Fri Apr 11 15:56:13 1997 Erez Zadok + + * aux/configure.in: need to include libc before libnsl if + get_myaddress() is available because on irix libnsl has a buggy + get_myaddress(). + + * include/am_defs.h: make sure REINSTATE_SIGNAL_HANDLER is defined + on Irix 6 (an SVR4 variant) + +Thu Mar 27 02:28:40 1997 Erez Zadok + + ******************************************************************* + *** Released am-utils-6.0a4 *** + ******************************************************************* + +Wed Mar 26 21:15:36 1997 Erez "HWank1" Zadok + + * amd/amq_subr.c (ok_security): turned off insecure code unless + user explicitly runs configure --enable-amq-mount. + + * hlfsd/hlfsd.c (main): use new protoypes dor create_nfs_service(). + + * amd/nfs_start.c (mount_automounter): use code that separately + creates the NFS and the amq service. Register tcp and udp + services for amd. + + * conf/transp/transp_*.c (create_amq_service): new function to + separately create the amq service for amd. Simplified prototypes + for create_nfs_service(). + +Wed Mar 19 20:40:56 1997 Erez Zadok + + ******************************************************************* + *** Released am-utils-6.0a3 *** + ******************************************************************* + +Wed Mar 19 17:49:18 1997 Erez Zadok + + * new port: rs6000-ibm-aix3.2.5 and rs6000-ibm-aix4.1.5.0. Lots + of small changes to support these two. + +Wed Mar 19 14:33:30 1997 Erez Zadok + + * conf/umount/umount_default.c (umount_fs): bug: unlock_mntlist() + should run if MOUNT_TABLE_ON_FILE, not otherwise. + +Mon Mar 17 22:02:43 1997 Erez Zadok + + * hlfsd/hlfsd.c (main): fill in fhsize field if exists + (freebsd-2.2). + + * amd/ops_{nfs,afs}.c (mount_toplvl): fill in fhsize field if + exists (freebsd-2.2). + +Sat Mar 15 19:37:48 1997 Erez "HWank1" Zadok + + * new port: i386-unknown-freebsd2.2. FreeBSD 2.2 and higher + changed the filehandle type in struct nfs_args from nfsv2fh_t to + u_char. + +Sat Mar 14 10:11:03 1997 Erez "HWank1" Zadok + + * SHARED LIBRARIES: too many changes to list individually. Now, + libamu can be built as a shared library, and other programs link + with it. + +Tue Mar 11 22:24:09 1997 Erez "HWank1" Zadok + + * aux/macros/opt_shared.m4: new macro for setting options for + building shared am-utils libraries. + +Sun Mar 9 19:17:46 1997 Erez Zadok + + * fixmount/fixrmtab: cleaned up the script. + + * fixmount/Makefile.am (EXTRA_DIST): adde $(sbin_SCRIPTS) so that + fixrmtab gets distributed too. + + * conf/nfs_prot/nfs_prot_bsdi2.h: added support for MOUNTPROC_DUMP. + Added extern for xdr_mountlist(). + + * aux/configure.in: trimmed down many tests for MNT2_GEN_OPT, + MNT2_NFS_OPT, and MNTTAB_OPT that were not referenced anywhere in + the sources. + +Sat Mar 8 00:23:58 1997 Erez Zadok + + * fixmount/hlfsd ported to bsd44, hpux, and linux systems. + + * aux/macros/check_fixmount_style.m4: add check for bsd44 systems. + + * conf/fixmount/fixmount_default.c: use lockf() if flock() is + unavailable. + + * include/am_defs.h: include even if don't have + STDC_HEADERS defined (sunos4). + (seteuid): define seteuid() to be setresuid() for systems that + have but not the other (hpux). + + * aux/macros/check_extern.m4: test should include . + +Tue Mar 4 17:16:52 1997 Erez "HWank1" Zadok + + * lib/xutil.c (debug_option): moved from amd/getargs.c to this + more proper file. + + * include/am_utils.h: put in structure for debug options, for all + progams to use. + + * amd/get_args.c: moved structure for debug options out. + +Sun Mar 2 00:13:07 1997 Erez "HWank1" Zadok + + * ported fixmount. + + * lib/ualarm.c: replacement function for systems that don't have a + ualarm(). + + * ported fsinfo. + +Sun Mar 1 10:23:34 1997 Erez "HWank1" Zadok + + * ported mk-amd-map. + + * buildall: added -K option to buildall, to run mkconf. + +Fri Feb 28 01:10:25 1997 Erez "HWank1" Zadok + + ******************************************************************* + *** Released am-utils-6.0a2 *** + ******************************************************************* + +Thu Feb 27 13:58:59 1997 Erez "HWank1" Zadok + + * all *.[hcyl] files: add copyright line. + + * aux/macros/check_mount_type.m4: test for mount type for + linux-like systems, by checking for loadable or statically linked + kernel filesystem modules. + + * aux/macros/check_mnttab_type.m4: test for mount table entry + for linux-like systems, by checking for loadable or statically + linked kernel filesystem modules. + + * aux/configure.in: pcfs filesystems can use vfat type (linux) + + * aux/macros/check_fs_mntent.m4: test for filesystem existence for + linux-like systems, by checking for loadable or statically linked + kernel filesystem modules. + + * conf/trap/trap_hpux.h: ugly hack added because of stupide HPUX + 9.0 header files. This should be removed when HPUX 9.0 is deemed + defunct. + + * aux/acconfig.h: set an undefined variable for having an extern + to clnt_sperrno(). + + * include/am_defs.h: define extern for clnt_sperrno() if needed. + + * aux/configure.in: test for extern clnt_sperrno(). + + * aux/macros/check_nfs_fh_dref.m4: HPUX's NFS fhandle dref is + similar to irix. + + * aux/macros/check_mount_style.m4: use mount helper on HPUX. + + * aux/macros/check_mtype_type.m4: hpux's mount type is a char*, + not integer (but may be mapped to one later). + + * conf/mount/mount_hpux.c (mount_hpux): HPUX has confusing header + files. They have mount(2) and vfsmount(2) which don't take same + arguments, and they have string mount types MNTTYPE_* as well as + integer types MOUNT_*. So I need this new mount function to map + from string types to integer types for the vfsmount() function. + + * conf/trap/trap_hpux.h (MOUNT_TRAP): instead of calling + vfsmount(), call mount_hpux(). + +Thu Feb 27 03:34:14 1997 Erez "HWank1" Zadok + + * lib/mount_fs.c (mnt_flags): make sure SYNC option is on only if + both MNTTAB_OPT_SYNC and MNT2_GEN_OPT_SYNC are defined. + +Thu Feb 27 00:26:00 1997 Erez "HWank1" Zadok + + * conf/nfs_prot/nfs_prot_hpux.h: NFS protocol definitions for + hpux. + + * include/am_defs.h: no need to include rpc/auth.h or rpc/clnt.h. + + * aux/configure.in: no need to test for rpc/auth.h and rpc/clnt.h. + + * buildall: added ability to configure using other shells than + /bin/sh, on those systems where /bin/sh is buggy or limited + (HPUX). + + * aux/macros/struct_nfs_fh.m4: reinstated the macro but have it + defined am_nfs_fh, and also test for plain typedef "nfs_fh". + + * aux/acconfig.h: #undef am_nfs_fh, which is being defined by a + reinstated macro. + + * aux/configure.in: check for + + * include/am_defs.h: include (HPUX) if exists. + + * aux/macros/try_compile_nfs.m4: include (HPUX) if + exists. + + * aux/macros/mount_headers.m4 (define): removed some non-working + (on HPUX) code that attempts to recreate the fhandle_t rather than + load it up from system headers. Also added some NFS protocol + header inclusion. include (HPUX) if exists. + +Wed Feb 26 00:32:35 1997 Erez "HWank1" Zadok + + * aux/macros/mount_headers.m4 (define): Use M4 changequote to + ensure [] brackets are correctly used. + + * aux/macros/expand_cpp_{string,hex,int}.m4: encapsulate + multi-line M4 inclusions in []. + +Tue Feb 25 22:19:44 1997 Erez "HWank1" Zadok + + * conf/mtab/mtab_bsd.c (mnt_dup): use statfs field f_fstypename if + it exists. + + * aux/acconfig.h: HAVE_FIELD_STRUCT_STATFS_F_FSTYPENAME, new + config.h macro for field f_fstypename of struct statfs. + + * aux/configure.in: testing for field f_fstypename field of struct + statfs (NetBSD). + + * aux/acconfig.h: moved all of the "static" definitions out to a + fixed file called include/am_defs.h. Added to all */Makefile.am + files a dependency on am_defs.h. Created am_defs.h of course, and + then added #include to all of the source and header + files that required it. + +Mon Feb 24 01:27:02 1997 Erez Zadok + + * aux/acconfig.h: two more externals for xdr functions that may be + implemented by libamu. + + * conf/nfs_prot/nfs_prot_bsdi2.h: added missing RPC and XDR + definitions. + +Sun Feb 23 15:25:26 1997 Erez "HWank1" Zadok + + * buildall (default): added -D option for turning on even stricker + developer options. + + * */Makefile.am: make sure @AMU_NFS_PROT_HEADERS@ is used to + determine dependencies on optional NFS protocol headers. + + * aux/acconfig.h: define and use HAVE_NFS_PROT_HEADERS as needed. + + * aux/macros/check_nfs_prot_header.m4: new test to determine what + NFS protocol headers to use. + + * conf/nfs_prot/nfs_prot_{irix6,sunos4,bsdi2}.h: new headers to + complete missing system headers for NFS protocol definitions. + +Sun Feb 16 15:58:42 1997 Erez "HWank1" Zadok + + * amd/ops_nfs.c (mount_nfs_fh): encapsulated some more code in + #ifdef's as needed. + + * amd/ops_afs.c (mount_toplvl): make sure TIMEO/RETRANS code is + suitable #ifdef'ed. + + * include/am_compat.h: a couple more mnttab options + (timeo/retrans) setting just in case. + + * amd/autil.c (host_normalize): make sure hostent->h_name is + passed a non-const char *. + + * conf/mount/mount_linux.c (mount_linux): cleaned up a block of code. + + * {lib,amq,amd}/*.c (many functions): cast xdr_entry to + XDRPROC_T_TYPE. + + * lib/nfs_prot_svc.c (nfs_program_2): cast xdr_entry to + XDRPROC_T_TYPE. + + * lib/nfs_prot_xdr.c (xdr_entry): cast xdr_entry to + XDRPROC_T_TYPE. + + * lib/wire.c (getwire): Make sure safe assignment from const to + none is done. + +Sat Feb 15 19:38:51 1997 Erez "HWank1" Zadok + + * aux/macros/expand_cpp_int.m4: new macro for expanding integers. + + * aux/configure.in: added linux/fs.h support in configure and + several M4 macros. + + * conf/mount/mount_linux.c (mount_linux): use macro instead of + "ugly" fixed hex number for mount() arguments. + +Sat Feb 15 02:09:47 1997 Erez "HWank1" Zadok + + * amd/info_hesiod.c: removed macro HAVE_HS_ZONE_TRANSFER and + turned all of its code always on. That code always seems to + compile, as long as you have hesiod and libresolv. + + * amd/mapc.c: removed macro HAVE_HS_ZONE_TRANSFER and turned all + of its code always on. + + * aux/configure.in: removed superfluous test for hs_zone_transfer + function (will never find it because it is an amd-internal + function). + + * amd/mapc.c (maptypes): must used correct new name for am-utils' + hesiod initialization function: hesiod_am_init. + + * amd/info_hesiod.c (hesiod_am_init): renamed hesiod_init to + hesiod_am_init so as not to conflict with libhesiod's + hesiod_init() function. + + * aux/configure.in: added test and explicit inclusion of + libresolv.a for later resolution of library references with + libhesiod. + + * aux/macros/opt_cppflags.m4: new file. configure/compile C + preprocessor flags. + + * aux/macros/opt_libs.m4: new file. configure/compile library + flags. + + * Makefile.am (EXTRA_DIST_AUX): include two new macros + opt_cppflags.m4 and opt_libs.m4. + + * aux/configure.in: test for libhesiod needs to additional + libresolv to link completely. Additional configuration time + options added for setting initial CPPFLAGS and LIBS. + +Tue Feb 10 02:15:40 1997 Erez "HWank1" Zadok + + ******************************************************************* + *** Released am-utils-6.0a1 *** + ******************************************************************* + +Thu Feb 6 02:55:19 1997 Erez "HWank1" Zadok + + * amd/info_ndbm.c (ndbm_search,ndbm_init): fixed the code so that + it works on freebsd, where they map dbm_pagfno a non-existing + macro on purpose, to force you to port the code to Berkeley DB. + +Fri Jan 31 01:35:09 1997 Erez "HWank1" Zadok + + * amd/ops_afs.c (mount_toplvl): added a sleep(1) right before the + actual mount_toplvl, to avoid some possible race conditions. + +Thu Jan 30 02:31:49 1997 Erez "HWank1" Zadok + + * amd/rpc_fwd.c: removed all TLI (HAVE_T_OPEN) code. + +Wed Jan 29 18:25:07 1997 Erez "HWank1" Zadok + + * lib/wire.c (getwire): removed HAVE_T_OPEN (TLI code) + + * amd/amd.c (main): fix local address using htonl(). Free up + buffers allocated by netdir_*() functions. + +Wed Jan 22 23:53:24 1997 Erez "HWank1" Zadok + + * amd/fix-amd-map.in: new script that will convert old-style amd + maps to new one. + +Tue Jan 21 01:18:16 1997 Erez "HWank1" Zadok + + * FIRST AMD IN AM-UTILS FINALLY WORKS (mounts itself as toplvl, + and replies back to simple nfs/link type mount queries). + + * conf/mtab/mtab_svr4.c: reorganized the code in this file to be + easier to read, and fixed a few bugs with un/setting the lock file + descriptor. + +Wed Jan 8 15:27:49 1997 Erez "HWank1" Zadok + + * amd/sched.c: removed HAS_SVR3_SIGNALS code to handle older + signals in Svr3 systems. Only stellix ever used this. + + * amd/rpc_fwd.c (fwd_reply): removed all code that was triggered + by DYNAMIC_BUFFERS, since it was not in use. + +Tue Jan 7 00:45:59 1997 Erez "HWank1" Zadok + + * amd/opts.c (eval_opts): removed AMD_COMPAT code. Amd no longer + takes '=' sign as old selector. Fix your maps. + (deslashify): removed APOLLO code that treated two '//' as one. + +Sun Jan 5 01:25:09 1997 Erez "HWank1" Zadok + + * amd/ops_nfsx.c (nfsx_init): removed HARD_NFSX_ERRORS, code which + was not used. It made any submount error fail the whole group. + + * amd/ops_nfs.c (make_nfs_auth): removed code dependent on + HAS_NFS_QUALIFIED_NAMES. + (mount_nfs_fh): removed macro for NFS_ARGS_NEEDS_PATH, assuming it + is never on. So code that was triggered by #ifndef + NFS_ARGS_NEEDS_PATH (osf1, aix3, and bsd44 variants) may have to + be fixed later. + Removed all ULTRIX_HACK code. Ultrix is DEAD! + removed all PRESET_AC code, which was only on for Linux to preset + the attribute cache values (otherwise they default to zero). + (nfs_umounted): revobed KICK_KERNEL code (IRIX systems). Will + have to fixed up later. + (mount_nfs_fh): removed code that was never included, which + attempted to set the port on which amd's nfs mounts on. This + isn't supported by the ping algorithm yet. In any case, it is all + done in nfs_init(). + + * amd/srvr_nfs.c (find_nfs_srvr), amd/ops_nfs.c (mount_nfs_fh): + removed HAS_TCP_NFS code. The whole use of NFS V.3 with TCP or + specially hacked NFS V.2 that uses TCP (BSD 4.4 variants) will + have to be addressed later. + + * amd/nfs_subr.c (nfsproc_getattr_2): removed all code dependent + on PRECISE_SYMLINKS. + + * amd/mapc.c (mapc_meta_search): removed code that depended on + HAS_DEPOT. It is known buggy code. The whole DEPOT support needs + to be rethought. + (mapc_add_kv): ported code to use standard regular expression + (regexp) library. + + * amd/{map.c,ops_sfs.c,ops_ufs.c}: removed all code dependent on + FLUSH_KERNEL_NAME_CACHE and the macro itself. + +Sat Jan 4 15:46:58 1997 Erez "HWank1" Zadok + + * amd/map.c (exported_ap_alloc): removed all code triggered by + SHRINK_EXPORTED_AP and the macro itself. + + * amd/info_nis.c: removed HAS_NIS_RELOAD macro, and left the code + in all the time. Assuming that there is always NIS realod + available. + (yp_all_fixed): removed code for BROKEN_YP_ALL. If your yp_all() + function is broken such that it does not release filedescriptors + it created, then you are hosed. Get a fix for yp_all from your + vendor or switch operating systems. + +Tue Dec 31 15:34:36 1996 Erez "HWank1" Zadok + + * amd/info_hesiod.c: renamed macro HAS_HESIOD_RELOAD to + HAVE_HS_ZONE_TRANSFER. + +Mon Dec 30 17:33:23 1996 Erez "HWank1" Zadok + + * amd/{nfs,host}_ops.cremoved INFORM_MOUNTD macro, so its code is + always included. We should always try to inform the remove mount + daemon of mounts we performed. If we want an option for this, it + should be a run-time option. + + * amd/host_ops.c: removed all that optionally did not make the + directory mount points for amd. + + * HOST_EXEC code removed from everywhere. There is no indication + that it was used anywhere. If it needs to be used, then a + run-time switch should control it. + +Thu Dec 26 00:06:52 1996 Erez "HWank1" Zadok + + * amd/*_ops.c: removed all references to mntent_t's fields + mnt_freq and mnt_passno, since they are no longe rused (and never + have been). + + * amd/am_ops.c: removed function sunos4_match, which was off + anyway. This was one of the places where an '=' sign was allowed + as an assignment operator (which is now ':='). + + * amd/afs_ops.c (afs_bgmount): removed SUNOS4_COMPAT code which + was off anyway. This was one of the places where an '=' sign was + allowed as an assignment operator (which is now ':='). + +Tue Dec 24 01:53:52 1996 Erez "HWank1" Zadok + + * amq/amq.c: ported to am-utils. Working. + + * conf/mount/mount_svr4.c (mount_svr4): changed mount type on svr4 + to be string, as it should be (rather than a string mapped to int + and back mapped to string). + +Sun Dec 22 13:26:05 1996 Erez "HWank1" Zadok + + * lib/mount_fs.c (mount_fs): removed MNTINFO_PREF code. + + * lib/umount_fs.c: split this into three files: default, osf, and + bsd44, that are in conf/umount/umount_*.c. + +Thu Dec 19 17:33:46 1996 Erez "HWank1" Zadok + + * aux/configure.in, aux/aclocal.m4, aux/acconfig.h: added new + macro to automatically figure out if an external definition for + sys_errlist[] exists. + + * lib/xutil.c (xfree): removed "#undef free" because it's not + needed there. Any system that redefines free() needs help. + + * conf/mtab/mtab_file.c (REWRITE_MTAB_IN_PLACE): removed code that + was dependent on REWRITE_MTAB_IN_PLACE. It does not appear to be + in active use anywhere. If added later, it should be a run-time + configuration option. + + * conf/mtab/mtab_mach3.c: removed code that was #ifdef'ed not to + be MOUNT_TABLE_ON_FILE, since mach2 always stores its mount tables + in a file in /etc. + + * lib/util.c (str3cat): removed _AIX code. AIX should have a + working realloc, or else find a cleaner solution to this. + (mkdirs): removed SUNOS4_WORKAROUND code. This was to do a sync() + after immediately making directories so that fsck will be able to + fix the filesystem in the event of an immediate crash. This was + because a bug in UFS which is fixed by now. + + * lib/hutil.c (domain_strip): removed PARTIAL_DOMAINS triggered + code. Does not appear to be on and used anywhere. + (dofork): removed MACH3 code, b/c mach3 NFS bugs are fixed by now. + + * lib/resvport.c: split the binding of reserved ports code to a + separate file. A #define (HAVE_T_OPEN) separates the TLI (SVR4) + from the BSD code. + +Thu Dec 19 02:08:35 1996 Erez "HWank1" Zadok + + * lib/Makefile.am (amu_LIBADD): includs @LIBOBJS@ now, auto-filled + in by automake and configure, for optional sources that need to be + built as part of libamu.a. + + * aux/aclocal.m4: Make sure AC_CHECK_MOUNT_STYLE adds mountutil.o + to LIBOBJS. + + * lib/memcmp.c (memcmp): new file added to replace a possible bad + implementation of memcmp. + +Wed Dec 18 22:20:23 1996 Erez "HWank1" Zadok + + * converted the sources to use memset/memmove/memcmp instead of + bzero/bcopy/bcmp. + + * ran all sources through gnu Indent w/ options specified in + aux/amindent. + +Wed Dec 11 22:19:29 1996 Erez "HWank1" Zadok + + * At this point the initial generation of config.h via autoconf and + some preliminary makefiles via automake is done. I will not begin + modifying sources, so it's a good time to document from here. + +Wed Dec 10 22:19:29 1996 Erez "HWank1" Zadok + + ******************************************************************* + *** Initial ChangeLog Entry *** + ******************************************************************* -- cgit v1.2.3