summaryrefslogtreecommitdiffstats
path: root/contrib/amd/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/amd/ChangeLog')
-rw-r--r--contrib/amd/ChangeLog6292
1 files changed, 6003 insertions, 289 deletions
diff --git a/contrib/amd/ChangeLog b/contrib/amd/ChangeLog
index 329629f..12f2c5f 100644
--- a/contrib/amd/ChangeLog
+++ b/contrib/amd/ChangeLog
@@ -1,29 +1,2595 @@
-2004-05-12 Erez Zadok <ezk@cs.sunysb.edu>
+2006-05-11 Erez Zadok <ezk@cs.sunysb.edu>
- * m4/macros/check_map_funcs.m4: imported bug-fixed version from
- 6.1 branch.
+ *******************************************************************
+ *** Released am-utils-6.1.5 ***
+ *******************************************************************
- * config.guess, config.sub, ltmain.sh: updates from the latest GNU
- distributions.
+2006-05-10 Erez Zadok <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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 <Nick.Williams@morganstanley.com>
+
+ * 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 <christos@zoulas.com>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * libamu/mtab.c (hasmntval): fix inverted meaning of error from
+ hasmntvalerr().
+
+2006-04-14 Erez Zadok <ezk@cs.sunysb.edu>
+
+ * 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 <christos@zoulas.com>
+
+ * amd/amfs_generic.c (amfs_lookup_mntfs): fix use-after-free bug
+ (Coverity).
+
+2006-03-27 Erez Zadok <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * minor new port: i386-pc-linux-suse10.1 (beta 8).
+
+2006-03-21 Christos Zoulas <christos@zoulas.com>
+
+ * amd/am_ops.c (merge_opts): Remove useless check found by
+ Coverity; xmalloc never returns NULL.
+
+2006-03-21 Erez Zadok <ezk@cs.sunysb.edu>
+
+ * 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
+ <ldap.h>, 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 <christos@zoulas.com>
+
+ * 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 <ionut@moisil.badula.org>
+
+ * amd/nfs_subr.c (mp_to_fh): fixed old-style filehandles--the pid
+ comparison was failing.
+
+2006-03-08 Erez Zadok <ezk@cs.sunysb.edu>
+
+ * configure.in: properly test for either <gdbm/ndbm.h> or
+ <gdbm-ndbm.h> (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 <ezk@cs.sunysb.edu>
+
+ *******************************************************************
+ *** Released am-utils-6.1.4 ***
+ *******************************************************************
+
+2006-01-04 Erez Zadok <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * updated copyright year to 2006 on all files.
+
+2005-12-20 Erez Zadok <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * minor new ports: i386-unknown-netbsdelf2.1,
+ i386-unknown-netbsdelf3.0 (RELEASE), and i386-unknown-openbsd3.8.
+
+2005-12-02 Erez Zadok <ezk@cs.sunysb.edu>
+
+ * m4/macros/check_field.m4: remove double inclusion of msdosfs
+ headers, which are included in mount_header1.h (netbsd 2.1 doesn't
+ protect <msdosfs/msdosfsmount.h> which causes compile errors).
+
+2005-11-08 Erez Zadok <ezk@cs.sunysb.edu>
+
+ * minor new port: i386-unknown-freebsd6.0 (RELEASE)
+
+2005-10-26 Erez Zadok <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * amq/pawd.c (transform_dir): resolve path repeatedly until
+ finished. Bug fix from Jonathan Chen <jon+amd-at-spock.org>.
+ Added safety check to prevent infinite loops.
+
+2005-10-19 Erez Zadok <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * doc/am-utils.texi (nfs_vers, nfs_proto parameters): clarify and
+ correct mistaken description of nfs_proto.
+
+2005-10-10 Erez Zadok <ezk@cs.sunysb.edu>
+
+ *******************************************************************
+ *** Released am-utils-6.1.3 ***
+ *******************************************************************
+
+2005-10-07 Erez Zadok <ezk@cs.sunysb.edu>
+
+ * 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 <sys/immu.h> 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 <ezk@cs.sunysb.edu>
+
+ * 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 <ro@TechFak.Uni-Bielefeld.DE>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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 <sys/statvfs.h> 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
+ <sys/statvfs.h>.
+
+ * 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 <christos@zoulas.com>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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
+ <jon+amd@spock.org>.
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * libamu/xutil.c (unregister_amq): repair broken meaning of D_AMQ,
+ which was reversed in am-utils-6.2. Bug fix from Steve Plite
+ <splite-amutils at sigint.cs.purdue.edu>.
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ *******************************************************************
+ *** 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 <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * configure.in: wrap all LDAP and HESIOD tests in test whether
+ --with-OPT was used.
+
+2005-08-16 Erez Zadok <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * configure.in: keep AC_INIT on same line, for nightly snapshot
+ build script.
+
+2005-08-06 Erez Zadok <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ *******************************************************************
+ *** 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 <ezk@cs.sunysb.edu>
+
+ * 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 <sys/types.h> before <linux/socket.h> to
+ get the definition of size_t on Debian-3.1r0a.
+
+2005-07-29 Erez Zadok <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * configure.in: better help for users, if nfs_args can't be found.
+
+2005-07-15 Erez Zadok <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * conf/mount/mount_linux.c: add a couple more NFSv2 error codes
+ that are compatible with NFSv3.
+
+2005-07-07 Erez Zadok <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * amq/pawd.c (getawd): avoid buffer overflow. Bug fix from Graeme
+ Wilford <G.Wilford@surrey.ac.uk>.
+
+2005-06-30 Erez Zadok <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * conf/mount/mount_aix.c (mount_aix3): minor cleanup of filehandle
+ copying code.
+
+2005-06-23 Erez Zadok <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * BUGS: update Solaris information about use of f/lex and
+ yacc/bison.
+
+2005-06-20 Erez Zadok <ezk@cs.sunysb.edu>
+
+ * minor new port: i386-pc-linux-suse9.3.
+
+2005-06-20 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * configure.in (linux/nfs_mount.h): Move __KERNEL__ definition up
+ so u32 is available for <linux/sunrpc/msg_prot.h>.
+
+2005-06-16 Erez Zadok <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * scripts/amd.conf-sample (map_type): typo, said mount_type
+ instead of map_type for the 'exec' example.
+
+2005-06-11 Erez Zadok <ezk@cs.sunysb.edu>
+
+ *******************************************************************
+ *** Released am-utils-6.1 ***
+ *******************************************************************
+
+2005-06-04 Erez Zadok <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ *******************************************************************
+ *** 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 <ezk@cs.sunysb.edu>
+
+ * libamu/Makefile.am (EXTRA_DIST): remove alloca.c as it's no
+ longer needed.
+
+2005-05-28 Erez Zadok <ezk@cs.sunysb.edu>
+
+ * 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 <alloca.h>, 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 <ezk@cs.sunysb.edu>
+
+ * 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 <linux/socket.h>, which, if found,
+ appears to be preferable to <sys/socket.h>. Use it to find
+ <linux/nfs_mount.h>. 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 <ezk@cs.sunysb.edu>
+
+ *******************************************************************
+ *** Released am-utils-6.1-rc6 ***
+ *******************************************************************
+
+2005-05-25 Erez Zadok <ezk@cs.sunysb.edu>
+
+ * conf/nfs_prot/nfs_prot_aix5_2.h: AIX 5.3 complains about
+ missing definition of struct thread_credentials in <sys/vfs.h>
+ 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 <ezk@cs.sunysb.edu>
+
+ * 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 <sys/vmount.h> 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 <ezk@cs.sunysb.edu>
+
+ * minor new port: i386-pc-linux-deb3.0.
+
+2005-05-22 Erez Zadok <ezk@cs.sunysb.edu>
+
+ * minor new ports: i386-unknown-netbsdelf2.0.2 and
+ i386-unknown-openbsd3.7.
+
+2005-05-20 Erez Zadok <ezk@cs.sunysb.edu>
+
+ * 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 <linux/nfs_mount.h>, which is broken on several
+ systems.
+
+ * configure.in: test for <linux/nfs2.h>. Separate special test
+ for <linux/nfs_mount.h> 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 <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ *******************************************************************
+ *** 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 <ionut@moisil.badula.org>
+
+ * amd/nfs_subr.c: check for NULL pointer before dereferencing it.
+
+2005-05-16 Erez Zadok <ezk@cs.sunysb.edu>
+
+ * 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 <dsr at mail.lns.cornell.edu>. 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 <dsr at
+ mail.lns.cornell.edu>.
+
+2005-05-13 Erez Zadok <ezk@cs.sunysb.edu>
+
+ *******************************************************************
+ *** Released am-utils-6.1-rc4 ***
+ *******************************************************************
+
+2005-05-11 Daniel P. Ottavio <dottavio@ic.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ *******************************************************************
+ *** Released am-utils-6.1-rc2 ***
+ *******************************************************************
+
+2005-05-08 Erez Zadok <ezk@cs.sunysb.edu>
+
+ * amd/amfs_generic.c (amfs_lookup_mntfs): removed redundant use of
+ old_def_opts variable.
+
+2005-05-08 Daniel P. Ottavio <dottavio@ic.sunysb.edu>
+
+ * 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 <dsr@mail.lns.cornell.edu>.
+
+2005-05-05 Erez Zadok <ezk@cs.sunysb.edu>
+
+ * config.guess.long: detect SuSE Enterprise Server and call it
+ "sles" not "suse".
+
+2005-05-02 Erez Zadok <ezk@cs.sunysb.edu>
+
+ * 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 <Francis.Montagnac at sophia.inria.fr>.
+
+ * minor new ports: powerpc64-unknown-linux-rhel4, and
+ powerpc64-unknown-linux-sles9.
+
+2005-05-01 Daniel P. Ottavio <dottavio@ic.sunysb.edu>
+
+ * 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 <ionut@moisil.badula.org>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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.
- * configure.in: don't check for dbm_open unless needed.
+ * 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).
- * m4/macros/header_templates.m4: template for NEW_DBM_H header
- file. This completes the migration of bison/flex and n/dbm fixes
- from 6.1 to to 6.0.
+ * amd/amd.h: pass flag to mf_mounted, to free or not to free the
+ am_opts.
- * include/am_defs.h: Move ALLOCA logic here.
- Add new db/ndbm/gdbm logic here.
+ * 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.
- * fsinfo/fsinfo.h, fsinfo/fsinfo.c, fsinfo/fsi_lex.l,
- amd/conf_tok.l: Fixes to avoid problems with modern yacc/lex
- implementations.
+ * include/am_defs.h: include limits.h if found.
- * amd/conf_parse.y: move ALLOCA checks out of yacc code. Fixes to
- avoid problems with modern yacc/lex implementations.
+ * 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.
- * configure.in: search for gdbm/ndbm.h. Add logic to deal with
- db/ndbm/gdbm mess.
+2005-04-12 Erez Zadok <ezk@cs.sunysb.edu>
+
+ * 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 <dottavio@ic.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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 <dottavio@ic.sunysb.edu>
+
+ * amd/nfs_subr.c (fh_to_mp3): Increased the n of strncpy()
+ to make sure it null terminates.
+
+2005-03-29 Daniel P. Ottavio <dottavio@ic.sunysb.edu>
+
+ * 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 <ro@TechFak.Uni-Bielefeld.DE>
+
+ * include/am_defs.h: Clarify comment.
+
+2005-03-21 Erez Zadok <ezk@cs.sunysb.edu>
+
+ * include/am_defs.h: undefine "GROUP" so Solaris 10 with gcc-2.96
+ won't complain about a conflict for this definition between
+ <rpcsvc/nis.h> and <sys/acl.h>.
+
+2005-03-20 Erez Zadok <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ *******************************************************************
+ *** Released am-utils-6.1-rc1 ***
+ *******************************************************************
+
+2005-03-18 Erez Zadok <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * scripts/amd2ldif.in, ldap.schema: fixes by Adam Morley
+ <adam-at-gmi-dot-com> 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 <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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
+ <jim.zajkowski@gmail.com>.
+
+2005-03-12 Erez Zadok <ezk@cs.sunysb.edu>
+
+ * minor new ports: i386-pc-linux-rhel4.
+
+ * minor new ports: powerpc-apple-darwin7.8.0.
+
+2005-03-10 Erez Zadok <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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
+ <ekline at ekline dot com>, modified, cleaned-up, and fixed.
+
+2005-03-07 Erez Zadok <ezk@cs.sunysb.edu>
+
+ * amd/info_file.c (file_init_or_mtime): consolidate identical
+ file_init and file_mtime into one function.
+
+2005-03-05 Erez Zadok <ezk@cs.sunysb.edu>
+
+ * 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 <ionut@moisil.badula.org>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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 <dottavio@ic.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * minor new port i386-unknown-freebsd6.0 (6.0-CURRENT-SNAP001).
+
+2005-02-23 Erez Zadok <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * */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 <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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 <sys/vmount.h>.
+
+ * 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 <sys/vmount.h>.
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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 <ionut@moisil.badula.org>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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 <rage@ucl.ac.uk>.
+
+2005-01-17 Ion Badulescu <ionut@moisil.badula.org>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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
+ <christos@zoulas.com>.
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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
+ <christos@zoulas.com>.
+
+ * 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 <christos@zoulas.com>.
+
+ * 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 <christos@zoulas.com>.
+
+ * 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
+ <christos@zoulas.com>.
+
+ * 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
+ <jon+amd@spock.org>.
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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 <resolv.h> and
+ <arpa/nameser_compat.h> 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
+ <sys/acl.h>, which is included in many other header files.
+ <rpcsvc/nis.h> 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 <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * updated copyright year to 2005 on all files.
+
+2004-11-29 Erez Zadok <ezk@cs.sunysb.edu>
+
+ * scripts/amd.conf.5: Small fixes to typos in man page, from
+ Thomas Klausner <tk@giga.or.at>.
+
+2004-10-22 Erez Zadok <ezk@cs.sunysb.edu>
+
+ * ldap.schema: add this file to distribution.
+
+2004-09-15 Erez Zadok <ezk@cs.sunysb.edu>
+
+ * doc/am-utils.texi: fix old URLs.
+
+2004-09-01 Erez Zadok <ezk@cs.sunysb.edu>
+
+ * conf/mtab/mtab_aix.c (read_mtab): avoid a race condition between
+ multiple calls to mntctl(). Patch suggested by Michael van Elst
+ <M.van.Elst@science-computing.de>.
+
+2004-08-07 Erez Zadok <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * amq/pawd.c (find_mt): recognize "linkx" type mounts. Patch from
+ Hauke Fath <hauke@Espresso.Rhein-Neckar.DE>. Support "nfsx" while
+ we're at it.
+
+ * doc/am-utils.texi: mention bugzilla. Fix broken URL HREF's.
+
+2004-08-02 Erez Zadok <ezk@cs.sunysb.edu>
+
+ * amq/pawd.c (find_mt): recognize "host" type mounts. Patch from
+ Dan Nelson <dnelson@allantgroup.com>.
+
+2004-07-30 Erez Zadok <ezk@cs.sunysb.edu>
+
+ * doc/am-utils.texi, NEWS: minor typos fixed.
+
+2004-07-30 Erez Zadok <ezk@play.cs.columbia.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * m4/macros/{try_compile_anyfs,check_field}.m4: include
+ <fs/msdosfs/msdosfsmount.h> if it exists. Part of a set of
+ FreeBSD 5 patches from Martin Blapp <mb@imp.ch>.
+
+ * include/am_defs.h: include <fs/msdosfs/msdosfsmount.h> 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 <fs/msdosfs/msdosfsmount.h>, new on FreeBSD 5.
+
+2004-07-29 Erez Zadok <ezk@cs.sunysb.edu>
+
+ * 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
+ <ldap.h>. 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 <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * minor new port: i386-unknown-freebsd4.10
+
+2004-04-29 Ion Badulescu <ionut@moisil.badula.org>
+
+ * 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 <ionut@moisil.badula.org>
+
+ 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 <ionut@moisil.badula.org>
+
+ * 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 <ionut@moisil.badula.org>
+
+ * amd/map.c (free_map_if_success): avoid dereferencing a pointer
+ to potentially freed memory
+
+2004-02-26 Erez Zadok <ezk@cs.sunysb.edu>
+
+ * minor new port: i386-unknown-freebsd5.2.1.
+
+2004-01-30 Ion Badulescu <ion@guppy.limebrokerage.com>
+
+ * scripts/ctl-hlfsd.in: don't run hlfsd with -D fork
+
+2004-01-25 Erez Zadok <ezk@cs.sunysb.edu>
+
+ * minor new port: sparc64-unknown-linux-deb3.0
+
+ * config.guess.long: recoognize Debian Linux.
+
+2004-01-22 Erez Zadok <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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 <ionut@moisil.badula.org>
@@ -54,21 +2620,6 @@
* minor new port: i386-unknown-freebsd5.2.
- * hlfsd/hlfsd.c (hlfsd_init), amd/amq_subr.c
- (amqproc_mnttree_1_svc, amqproc_stats_1_svc,
- amqproc_getmntfs_1_svc, xdr_amq_mount_tree): force double casting
- to avoid gcc-3.3 complaints on Solaris 9 about "dereferencing
- type-punned pointer will break strict-aliasing rules".
-
-2004-01-06 Erez Zadok <ezk@cs.sunysb.edu>
-
- * minor new port: i386-unknown-freebsd4.9.
-
- * 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.
-
2004-01-05 Erez Zadok <ezk@cs.sunysb.edu>
* MIRRORS.{txt,html}: verify each mirror site, update to new
@@ -76,9 +2627,15 @@
* updated copyright year to 2004 on all files.
+2004-01-03 Erez Zadok <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
* INSTALL, README.autofs: remove forced text-mode.
* doc/am-utils.texi: fix Amd book URL.
@@ -89,20 +2646,657 @@
doc/am-utils.texi: revisions to use newer URLs for Web site, FTP,
and mailing lists.
- * MIRRORS.{html,txt}: copied from 6.1 branch.
+ * MIRRORS.{html,txt}: updates.
* doc/Makefile.am: install mirror lists officially.
+2004-01-01 Erez Zadok <ezk@cs.sunysb.edu>
+
+ * tasks: things to do after migrating ftp/Web sites.
+
+2003-12-09 Erez Zadok <ezk@cs.sunysb.edu>
+
+ * fsinfo/fsinfo.8: fixed typo (unbalanced []) in man page. Bug
+ report from Eric S. Raymond <esr@thyrsus.com>.
+
+2003-11-18 Erez Zadok <ezk@cs.sunysb.edu>
+
+ * Makefile.am (EXTRA_DIST_M4): exclude removed file
+ m4/macros/struct_nfs_fh3.m4 from distro.
+
+2003-10-24 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * libamu/xdr_func.c (xdr_am_nfs_fh3): Use AM_FHSIZE3 instead of
+ FHSIZE3 (may be undefined).
+
+2003-10-24 Ion Badulescu <ion@guppy.limebrokerage.com>
+
+ 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 <ionut@moisil.badula.org>
+
+ * 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 <ionut@moisil.badula.org>
+
+ * 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 <ionut@moisil.badula.org>
+
+ * 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 <ion@guppy.limebrokerage.com>
+
+ * BUGS: document the limitations of bind mounts on Linux
+
2003-10-21 Ion Badulescu <ionut@moisil.badula.org>
- * buildall: added support for -i (make install), other fixes from
- the trunk
+ * buildall: added support for -i (make install)
+
+2003-10-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * NEWS: New minor port i386-pc-solaris2.10 (Solaris 10).
+ * INSTALL: Mention its test status.
+
+2003-10-16 Erez Zadok <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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 <ionut@moisil.badula.org>
+
+ * 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 <ionut@moisil.badula.org>
+
+ 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 <ro@TechFak.Uni-Bielefeld.DE>
+
+ 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 <ro@TechFak.Uni-Bielefeld.DE>
+
+ 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 <ro@TechFak.Uni-Bielefeld.DE>
+
+ * doc/am-utils.texi (opts Option): Fix Tru64 UNIX name in proplist
+ mount option.
+
+2003-10-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * libamu/mount_fs.c (compute_nfs_args) [HAVE_NFS_ARGS_T_FH_LEN]:
+ Don't reference removed fh3.
+
+2003-10-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * 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 <ionut@moisil.badula.org>
+
+ * 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 <ro@TechFak.Uni-Bielefeld.DE>
+
+ 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 <ro@TechFak.Uni-Bielefeld.DE>
+
+ 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 <ro@TechFak.Uni-Bielefeld.DE>
+
+ 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 <ro@TechFak.Uni-Bielefeld.DE>
+
+ * 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 <ionut@moisil.badula.org>
+
+ * 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 <ezk@urd.fsl.cs.sunysb.edu>
+
+ * 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 <ro@TechFak.Uni-Bielefeld.DE>
+
+ 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 <ro@TechFak.Uni-Bielefeld.DE>
+
+ 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 <ro@TechFak.Uni-Bielefeld.DE>
+
+ * amd/amq_svc.c: Provide alloca prerequisites.
+
+ * conf/transp/transp_tli.c (register_autofs_service): Fix typo.
+
+2003-09-23 Ion Badulescu <ion@opteron.tower-research.com>
+
+ * 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 <ionut@buggy.badula.org>
+
+ * conf/autofs/autofs_solaris_v1.c (autofs_mount_fs): compile fix
+
+2003-09-19 Ion Badulescu <ionut@moisil.badula.org>
+
+ * 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 <ezk@dhcp8.fsl.cs.sunysb.edu>
+
+ * 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 <ionut@moisil.badula.org>
+
+ * Released beta version 6.1b4
+
+2003-09-15 Ion Badulescu <ionut@moisil.badula.org>
+
+ * 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 <ionut@moisil.badula.org>
+
+ * 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 <ro@TechFak.Uni-Bielefeld.DE>
+
+ * BUGS: Mention fix for broken Solaris 8 <rpcsvc/autofs_prot.h>
+ patches.
+
+2003-08-31 Erez Zadok <ezk@filer.fsl.cs.sunysb.edu>
+
+ * 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 <ezk@a-opendarwin.fsl.cs.sunysb.edu>
+
+ * configure.in: start 6.1b4-pre officially (belated)
+
+ * minor new port: i686-apple-darwin6.6
+
+2003-08-27 Ion Badulescu <ionut@moisil.badula.org>
+
+ * 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 <ionut@buggy.badula.org>
- * conf/nfs_prot/nfs_prot_freebsd3.h (na_uid): freebsd4.5 uses nfs
- atttributes field named "uid". So #define na_uid to it. [backport
- of Erez's 6.1 change from 2002-02-26]
+ * 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 <ion@guppy.limebrokerage.com>
+
+ * 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 <ezk@a-bsdi42.fsl.cs.sunysb.edu>
+
+ * conf/nfs_prot/nfs_prot_bsdi3.h: support na_uid and na_gid.
+
+2003-08-27 Ion Badulescu <ionut@moisil.badula.org>
+
+ * 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 <ionut@buggy.badula.org>
+
+ * 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 <ionut@moisil.badula.org>
+
+ * 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 <ion@guppy.limebrokerage.com>
+
+ * 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 <ionut@moisil.badula.org>
+
+ * 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 <Nick.Williams@morganstanley.com>
@@ -110,16 +3304,870 @@
pointer as a string to plog, Solaris (and other OS's) don't like
it and will dump core.
+2003-08-13 Ion Badulescu <ion@guppy.limebrokerage.com>
+
+ * 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 <ionut@nicu.badula.org>
+
+ * NEWS, configure.in: bumped version up to 6.1b4-pre
+
+2003-08-13 Ion Badulescu <ionut@moisil.badula.org>
+
+ * Released beta version 6.1b3
+
+2003-08-13 Ion Badulescu <ion@guppy.limebrokerage.com>
+
+ * 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 <ionut@moisil.badula.org>
+
+ * 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 <ezk@ulkesh.dyn.optonline.net>
+
+ * 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 <ionut@moisil.badula.org>
+
+ * conf/autofs/autofs_solaris_v2_v3.c (autofs_umount_fs): fix
+ compile warning
+
+2003-08-04 Ion Badulescu <ionut@buggy.badula.org>
+
+ * 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 <ezk@filer.fsl.cs.sunysb.edu>
+
+ * conf/nfs_prot/nfs_prot_openbsd.h: include <ufs/ufs/ufsmount.h>
+ here with the proper workarounds for openbsd3.3 (define MAXQUOTAS,
+ define dummy struct netexport, and include <ufs/ufs/extattr.h>
+ wrapped in _KERNEL).
+
+ * conf/nfs_prot/nfs_prot_freebsd3.h: include <ufs/ufs/ufsmount.h>
+ here with the proper workarounds for freebsd5.1 (define dummy
+ struct ufs_extattr_per_mount).
+
+ * conf/nfs_prot/nfs_prot_bsdi2.h: include <ufs/ufs/ufsmount.h>
+ here with the proper workarounds for bsdi2 (define MAXQUOTAS and
+ dummy struct netexport).
+
+ * include/mount_headers1.h: do not include <ufs/ufs/ufsmount.h>
+ 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 <ionut@buggy.badula.org>
+
+ * 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 <ezk@filer.fsl.cs.sunysb.edu>
+
+ * 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 <ezk@filer.fsl.cs.sunysb.edu>
+
+ * 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 <ufs/ufs/extattr.h> (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 <ionut@buggy.badula.org>
+
+ * 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 <ionut@buggy.badula.org>
+
+ * 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 <ro@TechFak.Uni-Bielefeld.DE>
+
+ * 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 <ezk@agora.fsl.cs.sunysb.edu>
+
+ * NEWS, doc/am-utils.texi, scripts/amd.conf.5: revised explanation
+ of autofs_use_lofs.
+
+2003-07-30 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * amd/ops_efs.c (efs_mount): Replace on_autofs arg with
+ MFF_ON_AUTOFS flag.
+ (efs_umount): Likewise.
+
+2003-07-30 Erez Zadok <ezk@filer.fsl.cs.sunysb.edu>
+
+ * conf/umount/umount_bsd44.c (umount_fs): convert to new way of
+ unmounting which takes autofs into account.
+
+2003-07-30 Ion Badulescu <ionut@moisil.badula.org>
+
+ * 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 <ezk@whitestar.dyn.optonline.net>
+
+ * 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 <ezk@filer.fsl.cs.sunysb.edu>
+
+ * 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 <ezk@filer.fsl.cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@filer.fsl.cs.sunysb.edu>
+
+ * 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 <phil@fifi.org>.
+
+2003-07-17 Philippe Troin <phil@fifi.org>
+
+ * 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 <ezk@filer.fsl.cs.sunysb.edu>
+ * 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 Philippe Troin <phil@fifi.org>
+2003-07-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * scripts/amd.conf-sample: Remove obsolete comment.
+
+2003-07-16 Erez Zadok <ezk@cs.sunysb.edu>
+
+ * 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 <Nick.Williams@morganstanley.com>.
+
+2003-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * BUGS (Solaris 8): Update patch revisions, mention old autofs
+ patches, fix filenames and rpcgen command.
+
+2003-07-15 Erez Zadok <ezk@agora.fsl.cs.sunysb.edu>
+
+ * 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 <ezk@filer.fsl.cs.sunysb.edu>
+
+ * 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 <mark@mcs.vuw.ac.nz>.
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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
+ <mark@mcs.vuw.ac.nz>.
+
+2003-07-14 Ion Badulescu <lionut@gonzales.badula.org>
+
+ * BUGS (Note): document the Solaris 8 bug (the upgrade to autofs
+ v4 without updating all the header files)
+
+2003-07-13 Ion Badulescu <lionut@gonzales.badula.org>
+
+ * 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 <ezk@filer.fsl.cs.sunysb.edu>
+
+ * BUGS: Document buggy behavior of Solaris /usr/ccs/bin/lex. In
+ short, use flex.
+
+2003-07-13 Erez Zadok <ezk@a-hpux11.fsl.cs.sunysb.edu>
+
+ * 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 <lionut@gonzales.badula.org>
+
+ * 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 <ezk@whitestar.dyn.optonline.net>
+
+ * 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 <lionut@gonzales.badula.org>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * amd/amd.8: reference am-utils info page in amd man page, as per
+ Thomas Klausner <wiz@danbala.ifoer.tuwien.ac.at>.
- * amd/amfs_auto.c (amfs_auto_mount): When pref:=NULL set am_pref
- to strdup("") instead of NULL since this value will be
- freed. Contributed by Matt Chapman <matthewc@cse.unsw.edu.au>.
+ * 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 <lionut@gonzales.badula.org>
+
+ * 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 <lionut@gonzales.badula.org>
+
+ * 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 <ezk@whitestar.dyn.optonline.net>
+
+ * amd/conf_parse.y, amd/conf_tok.l: pretty comments on # cpp
+ macros.
+
+2003-07-10 Ion Badulescu <ionut@buggy.badula.org>
+
+ * 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 <ezk@filer.fsl.cs.sunysb.edu>
+
+ * 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 <ezk@filer.fsl.cs.sunysb.edu>
+
+ * 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 <ionut@buggy.badula.org>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@agora.fsl.cs.sunysb.edu>
@@ -130,12 +4178,15 @@
2003-05-08 Ion Badulescu <ion@guppy.limebrokerage.com>
* libamu/mount_fs.c (compute_automounter_mount_flags): use
- MNT2_GEN_OPT_AUTOMNTFS if available; minor cleanup, removed
- redundant code for MNT2_GEN_OPT_OVERLAY
+ 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 <ionut@nicu.badula.org>
+
+ * amd/ops_xfs.c (mount_xfs): compile fix (s/genflags/flags/)
+
2003-04-23 Erez Zadok <ezk@agora.fsl.cs.sunysb.edu>
* conf/transp/transp_sockets.c (create_amq_service): minor cpp
@@ -143,10 +4194,15 @@
2003-04-22 Ion Badulescu <ionut@moisil.badula.org>
- * conf/transp/transp_sockets.c (create_amq_service): Ugly *BSD fix for
- an RPC library DoS issue (original patch from Martin Blapp,
+ * 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 <ionut@moisil.badula.org>
+
+ * conf/autofs/autofs_solaris_v2_v3.c: removed autofs_free_data(),
+ left over from the recent cleanup
+
2003-04-13 Erez Zadok <ezk@agora.fsl.cs.sunysb.edu>
* doc/Makefile.am (DVIPS): use proper options for dvips.
@@ -155,7 +4211,7 @@
and better explain the 'nounmount' option. Also some misc options
for better generation of html manual.
- * doc/Makefile.am (install-html): support newer text2html 4.0
+ * 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
@@ -172,6 +4228,11 @@
do not get added to Makefiles by default (they are confusing to
users who don't have autotools installed).
+2003-04-09 Ion Badulescu <ion@guppy.limebrokerage.com>
+
+ * 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 <ezk@agora.fsl.cs.sunysb.edu>
* libamu/xutil.c (switch_to_logfile): don't try to print logfile
@@ -183,6 +4244,13 @@
* fsinfo/fsinfo.8: typo co-ordinate -> coordinate. Typo report
from Perry E. Metzger" <perry@piermont.com>.
+2003-03-25 Erez Zadok <ezk@filer.fsl.cs.sunysb.edu>
+
+ * 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 <ezk@suse73.fsl.cs.sunysb.edu>
* minor new port: sparc64-unknown-linux-suse7.3.
@@ -202,6 +4270,186 @@
scripts/amd.conf.5, scripts/expn.1: minor spell checking and
extraneous space elimination.
+2003-03-07 Ion Badulescu <ionut@buggy.badula.org>
+
+ * 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 <ion@guppy.limebrokerage.com>
+
+ * 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 <ion@guppy.limebrokerage.com>
+
+ * 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 <ion@guppy.limebrokerage.com>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * BUGS: record IBM's patch number for the AIX 5.2 NFS over IPv6
+ bug.
+
+2003-02-02 Erez Zadok <ezk@siamese.fsl.cs.sunysb.edu>
+
+ * NEWS: minor new port: ia64-unknown-linux-rh2.1AS
+
+2003-01-31 Ion Badulescu <ion@console.limebrokerage.com>
+
+ * 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 <ionut@moisil.badula.org>
+
+ * 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 <ion@guppy.limebrokerage.com>
+
+ * 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 <john@physics.unlv.edu>.
+ (D_ALL): don't include D_XDRTRACE, too verbose and normally
+ unnecessary
+
+2003-01-28 Erez Zadok <ezk@cs.sunysb.edu>
+
+ * ltmain.sh, config.guess, config.sub, doc/texinfo.tex: updates
+ from latest official GNU versions.
+
2003-01-25 Erez Zadok <ezk@cs.sunysb.edu>
* BUGS (Note): document AIX-5.1 NFS-client side bug (hangs in
@@ -209,25 +4457,58 @@
2003-01-25 Ion Badulescu <ionut@moisil.badula.org>
- *******************************************************************
- *** Released am-utils-6.0.9 ***
- *******************************************************************
+ * Released beta version 6.1b2
-2003-01-23 Ion Badulescu <ion@guppy.limebrokerage.com>
+2003-01-24 Ion Badulescu <ionut@moisil.badula.org>
- * NEWS: updated for Darwin changes
+ * amd/autil.c (am_unmounted): reset MFF_MKMNT from mf_flags when
+ calling rmdirs() on mountpoint
+
+ * amd/amfs_auto.c (amfs_auto_bgmount): ditto
- * .cvsignore: added A.i386-apple-darwin6.0 and
- A.sparc-sun-solaris2.9
+ * 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 <ion@guppy.limebrokerage.com>
* 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 <ezk@cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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 <ionut@moisil.badula.org>
* 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
<fenner@research.att.com>
@@ -241,20 +4522,79 @@
* updated copyright year to 2003 on all files
-2002-12-11 Ion Badulescu <ionut@moisil.badula.org>
+2002-12-10 Erez Zadok <ezk@localhost.localdomain>
- Solaris9 build fixes:
+ * 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 <ezk@filer.fsl.cs.sunysb.edu>
- * amd/info_ldap.c (amu_ldap_rebind): call ldap_enable_cache() only
- if configure detected it
+ * 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.
- * configure.in: check for ldap_enable_cache()
+ * conf/transp/transp_sockets.c (amu_get_myaddress): use "%lx" in
+ dlog because htonl() returns a u_long.
2002-12-10 Erez Zadok <ezk@localhost.localdomain>
- * 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.
+ * 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 <ionut@moisil.badula.org>
+
+ 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 <ionut@moisil.badula.org>
+
+ * NEWS: updated
+
+ * doc/am-utils.texi (opts Option): document sftlookup
+
+ * conf/autofs/autofs_solaris_v2_v3.c: compile fixes
+
+2002-11-22 Erez Zadok <ezk@filer.fsl.cs.sunysb.edu>
+
+ * amd/info_ldap.c (amu_ldap_rebind): gopt.ldap_cache_seconds is
+ %ld not %d.
+
+2002-11-21 Erez Zadok <ezk@agora.fsl.cs.sunysb.edu>
+
+ * {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 <ezk@cs.sunysb.edu>
@@ -263,79 +4603,402 @@
Linux Advanced Workstation release 2.1AW (Derry)". The script now
will report ia64-unknown-linux-rh2.1AW.
+2002-11-20 Ion Badulescu <ionut@moisil.badula.org>
+
+ * 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 <ion@guppy.limebrokerage.com>
* doc/am-utils.texi (Keep-alives): removed outdated info about not
maintaining the state of TCP NFS servers
-2002-10-01 Ion Badulescu <ion@guppy.limebrokerage.com>
+2002-11-04 Ion Badulescu <ion@guppy.limebrokerage.com>
- * hlfsd/hlfsd.h: removed sys_nerr declaration
+ * include/am_utils.h: prototype for ops_search()
- * amq/amq.c, hlfsd/hlfsd.c, libamu/xutil.c: always use strerror()
+ * amd/am_ops.c (ops_search): new function for searching the right
+ set of ops for a given filesystem type
- * libamu/strerror.c: new file, strerror() implementation for
- systems that don't have it
+ * 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()
- * libamu/Makefile.am: added strerror.c
+2002-11-04 Ion Badulescu <ionut@buggy.badula.org>
- * include/am_utils.h: debug code improvements ported from 6.1
+ * amd/ops_cdfs.c (mount_cdfs): remove special code for loop device
+ (cdfs_umount): ditto
- * conf/mount/mount_aix.c: compile fix for --disable-debug
+ * 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
-2002-09-09 Ion Badulescu <ion@guppy.limebrokerage.com>
+ * conf/umount/umount_default.c (umount_fs2): release loop device
+ on umount()
- *******************************************************************
- *** Released am-utils-6.0.8 ***
- *******************************************************************
+2002-11-03 Erez Zadok <ezk@cnm20>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * config.guess, config.sub, doc/texinfo.tex: updates from
+ the latest GNU distributions (2002-09-05).
+
+2002-10-30 Erez Zadok <ezk@agora.fsl.cs.sunysb.edu>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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-09-09 Ion Badulescu <ion@guppy.limebrokerage.com>
+2002-10-21 Erez Zadok <ezk@agora.fsl.cs.sunysb.edu>
- * amd/srvr_nfs.c (nfs_timed_out): add #ifdef DEBUG around dlog
+ * 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
+ <gdmr@dcs.ed.ac.uk> and Tim Colles <timc@inf.ed.ac.uk>.
+
+ * 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 <gdmr@dcs.ed.ac.uk>.
+
+2002-09-17 Ion Badulescu <ion@guppy.limebrokerage.com>
+
+ * 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 <ezk@cs.sunysb.edu>
+
+ * 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 <ion@guppy.limebrokerage.com>
+
+ * 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 <ion@guppy.limebrokerage.com>
+
+ 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 <ion@guppy.limebrokerage.com>
- * amd/mntfs.c (free_mntfs): sanity check for mf_refc [patch from
- George Ross ported from 6.1]
+ * amd/amfs_auto.c (free_continuation): avoid double-free'ing the
+ mntfs if there was an error/timeout
+
+2002-09-04 Ion Badulescu <ion@guppy.limebrokerage.com>
+
+ * 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 <matthewc@cse.unsw.edu.au>]
+
+2002-09-03 Ion Badulescu <ion@guppy.limebrokerage.com>
+
+ Patches from George Ross <gdmr@dcs.ed.ac.uk>:
+
+ * 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 [patch from
- George Ross ported from 6.1]
+ 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 <ion@guppy.limebrokerage.com>
+
+ * 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 <ezk@agora.fsl.cs.sunysb.edu>
* scripts/expn.{1,in}: fixed typos as reported by Thomas Klausner
<wiz@danbala.ifoer.tuwien.ac.at>.
-2002-06-26 <ezk@agora.fsl.cs.sunysb.edu>
+2002-06-26 Erez Zadok <ezk@agora.fsl.cs.sunysb.edu>
* 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-24 Ion Badulescu <ionut@moisil.badula.org>
+2002-06-25 Ion Badulescu <ion@guppy.limebrokerage.com>
- * doc/am-utils.texi (automount2amd): minor rewording
+ * Released beta version 6.1b1
+
+2002-06-24 Ion Badulescu <ionut@moisil.badula.org>
* 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<number>
+ aix51_nfs_args, rename unknown fields to u<number>, add the
+ unknown new field into the middle of the old 4.2 structure
2002-06-24 Ion Badulescu <ion@guppy.limebrokerage.com>
- * buildall: use ksh for configure on aix5.1; pass the extra
- arguments after "--" to configure, not to make; fix 'buildall -b'
- on hpux9 and aix5.1
+ * 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 <ionut@buggy.badula.org>
+
+ * 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 <ionut@moisil.badula.org>
+
+ * conf/autofs/autofs_linux.c: compile fixes for autofs v3
+
+2002-06-23 Ion Badulescu <ionut@moisil.badula.org>
+
+ * 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 <lionut@gonzales.badula.org>
+
+ * 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 <lionut@gonzales.badula.org>
+
+ * 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 <ezk@whitestar.dyn.optonline.net>
+
+ * amd/nfs_start.c (mount_automounter): Security fix. if user sets
+ -D noamq, don't even create listening socket. Suggestion by Ed
+ Ravin <eravin@panix.com>.
2002-06-22 Ion Badulescu <lionut@gonzales.badula.org>
* hlfsd/homedir.c (homedir): use setgid() instead of setegid()
- * buildall: use ksh for configure on aix5.1
+ * ALL: #ifdef cleanups, unify some TLI/socket function prototypes
-2002-06-21 Ion Badulescu <ion@guppy.limebrokerage.com>
+2002-06-22 Erez Zadok <ezk@whitestar.dyn.optonline.net>
+
+ * conf/nfs_prot/nfs_prot_netbsd1_4.h: minor port to support
+ na_gid and na_uid. NetBSD patch from Jun-ichiro itojun Hagino
+ <itojun@iijlab.net>.
+
+ * 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 <tron@zhadum.de>
+ for NetBSD.
+
+2002-06-22 Ion Badulescu <ionut@edgar.badula.org>
+
+ * 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 <lionut@gonzales.badula.org>
+
+ * 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 <ezk@whitestar.dyn.optonline.net>
+
+ * 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 <ezk@agora.fsl.cs.sunysb.edu>
+
+ * doc/am-utils.texi: fix typos. Can't use ":" in @cindex entries.
+
+2002-06-22 Erez Zadok <ezk@whitestar.dyn.optonline.net>
+
+ * 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 <gdmr@dcs.ed.ac.uk>.
+
+ * 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
+ <gdmr@dcs.ed.ac.uk>. Rework of old code, support for wildcards in
+ LDAP queries, and an FD leak fix.
+
+2002-06-22 Ion Badulescu <lionut@gonzales.badula.org>
+
+ * 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
@@ -354,14 +5017,19 @@
* BUGS: update for direct mounts on Linux; document the brokenness
of /bin/sh on AIX 5.1 and HP-UX 9
-2002-06-21 Erez Zadok <ezk@agora.fsl.cs.sunysb.edu>
+ * NEWS: aix5.1 port, aix4.3 workaround
- * ALL source/header files: change use of HAVE_FIELD_* macros to
- HAVE_*, since aux/macros/check_field.m4 changed as well.
+2002-06-22 Erez Zadok <ezk@agora.fsl.cs.sunysb.edu>
- * configure.in, Makefile.am, bootstrap, aux/amdgrep,
- aux/macros/*.m4: MAJOR port of autotool files from 6.1 branch, to
- work with newer autotools.
+ * ltmain.sh: use libtool 1.4d, needed support for newer AIX.
+
+2002-06-21 Ion Badulescu <ion@guppy.limebrokerage.com>
+
+ * 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 <ezk@agora.fsl.cs.sunysb.edu>
@@ -382,28 +5050,143 @@
* config.guess, config.sub, doc/texinfo.tex, ltmain: updates from
the latest GNU distributions.
+2002-06-11 Ion Badulescu <ion@guppy.limebrokerage.com>
+
+ * 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 <ezk@agora.fsl.cs.sunysb.edu>
* config.guess.long: support SuSE version names in long
config.guess format.
-2002-05-03 Ion Badulescu <ion@guppy.limebrokerage.com>
-
- * hlfsd/homedir.c (homedir): last chance checking for zombies;
- (interlock): anal-retentive checking for all sorts of error
- conditions during child recovery
-
- * hlfsd/hlfsd.c (main): use SA_RESTART in sigaction
- (cleanup): indentation
-
2002-05-01 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu>
* scripts/lostaltmail.in (vrfy_user): unlink temp files if too
small.
+2002-04-07 Ion Badulescu <ionut@moisil.badula.org>
+
+ * hlfsd/hlfsd.c (main): compile fix for --enable-debug=no
+
2002-03-29 Ion Badulescu <ionut@moisil.badula.org>
- * amd/nfs_start.c: use plog() instead of perror()
+ * 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 <ezk@agora.fsl.cs.sunysb.edu>
+
+ * 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 <ionut@buggy.badula.org>
+
+ * 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 <ezk@agora.fsl.cs.sunysb.edu>
@@ -411,30 +5194,121 @@
<sebastien.bahloul@medasys.org> to fix a simple initialization bug
and change "HE" to HE_ENT so as to compile on HPUX.
+2002-02-26 Erez Zadok <ezk@t3.fsl.cs.sunysb.edu>
+
+ * 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 <ezk@agora.fsl.cs.sunysb.edu>
* scripts/lostaltmail.in: don't verify user if -noverify option
was turned on. fix comment typo.
-2002-02-11 Ion Badulescu <ion@guppy.limebrokerage.com>
+2002-02-11 Erez Zadok <ezk@agora.fsl.cs.sunysb.edu>
+
+ * amd/Makefile.am (TESTS): enable one test script, test1.sh.
- * Ripped out all traces of autofs support
+ * amd/test1.sh: re-commit simple test script.
2002-02-11 Ion Badulescu <ion@guppy.limebrokerage.com>
+ * Released snapshot 6.1a5
+
+ * NEWS: Solaris autofs readdir() support, Linux autofs sublink fix
+
* README: require newer auto-tools, update mailing list address
- * README.autofs: point to the 6.1 branch for autofs support
+ * README.autofs: major update
-2002-01-20 Erez Zadok <ezk@localhost.localdomain>
+ * configure.in: version changed to 6.1a5
- * updated copyright year to 2002 on all files
+2002-02-11 Ion Badulescu <ionut@moisil.badula.org>
+
+ * 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 <ionut@moisil.badula.org>
+
+ * 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 <ezk@shekel.mcl.cs.columbia.edu>
+
+ * aux/macros/check_field.m4: need also a new version of
+ AC_CHECK_MEMBERS (plural).
+
+2002-02-06 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu>
+
+ * 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 <ezk@localhost.localdomain>
+
+ * remove old '%W%' SCCS IDs from all sources.
+
+2002-01-21 Ion Badulescu <ionut@moisil.badula.org>
+
+ * 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 <ezk@localhost.localdomain>
* hlfsd/hlfsd.h (HLFSD_VERSION): up version of hlfsd to 1.2,
because we made some important changes.
2002-01-20 Ion Badulescu <lionut@gonzales.badula.org>
+ * 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
@@ -447,26 +5321,88 @@
2002-01-20 Ion Badulescu <lionut@gonzales.badula.org>
* hlfsd/homedir.c (homedir): don't special case uid 0 as having /
- as home; instead use the root accounts home
+ 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 Ion Badulescu <lionut@gonzales.badula.org>
+2002-01-20 Erez Zadok <ezk@localhost.localdomain>
+
+ * 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 <ezk@agora.fsl.cs.sunysb.edu>
- * hlfsd/hlfsd.h: update prototype for homedir()
+ * scripts/redhat-ctl-amd.in: refer to @sbindir@ not
+ ${prefix}/sbin.
- * hlfsd/stubs.c (nfsproc_lookup_2_svc): get the credentials at the
- begining of the function and assign the uid to the symlink
- attributes; increment the mtime's seconds field each time the uid
- changes
- (nfsproc_lookup_2_svc): ditto
- (nfsproc_readlink_2_svc): pass the groupid to homedir();
+ * scripts/ctl-{amd,hlfsd}.in: refer to @sysconfdir@ not
+ ${prefix}/etc. Bug report from "A Braunsdorf"
+ <ab@eas.purdue.edu>.
- * hlfsd/homedir.c (homedir): take a second argument, the user's
- primary gid, and switch to it when doing filesystem operations;
- save the old uid and gid and revert to them instead of the
- hardcoded uid 0
+2002-01-13 Erez Zadok <ezk@localhost.localdomain>
+
+ * 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 <ezk@wavy.dyn.optonline.net>
+
+ * 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 <linux/loop.h> if it exists. Define
+ LARGEFILE support macros, possibly needed for loop devices.
+ Redefine dev_t apropriately for loop devices.
+
+ * configure.in: check for <linux/loop.h>.
2002-01-10 Ion Badulescu <ion@guppy.limebrokerage.com>
@@ -474,6 +5410,166 @@
parameter 2 orders of magnitude larger than udp (patch from Trond
Myklebust)
+2002-01-09 Erez Zadok <ezk@localhost.localdomain>
+
+ * 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 <sys/mman.h> 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 <ezk@whitestar.dyn.optonline.net>
+
+ * 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 <ezk@whitestar.dyn.optonline.net>
+
+ * 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 <ezk@whitestar.dyn.optonline.net>
+
+ * 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 <ezk@agora.fsl.cs.sunysb.edu>
* scripts/amd.conf.5: correct title to section 5, not 8. Correct
@@ -486,17 +5582,45 @@
* scripts/ctl-hlfsd.in: run "test" or "[" in front of -x/-f
+2001-12-02 Ion Badulescu <ionut@moisil.badula.org>
+
+ * 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 <ion@guppy.limebrokerage.com>
* tasks: updated
+ * NEWS: document the fixed autofs fd leak
+
* amq/amq.8: better document the -f option
2001-11-29 Erez Zadok <ezk@agora.fsl.cs.sunysb.edu>
- * libamu/mount_fs.c (mnt_flags): same as for nolock option
+ * libamu/mount_fs.c (mnt_flags): same this as for nolock option
handling, do for maxgrps.
+2001-11-29 Ion Badulescu <ion@guppy.limebrokerage.com>
+
+ * 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 <phil@fifi.org>
* libamu/mount_fs.c (mnt_flags): Drop nolock from generic mount
@@ -508,8 +5632,7 @@
* 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. This was discovered by
- using HP's non-GNU make program.
+ issues. Had to use HP's own yacc/lex.
2001-11-26 Erez Zadok <ezk@a-hpux11i.fsl.cs.sunysb.edu>
@@ -517,7 +5640,8 @@
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)
+ 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
@@ -553,7 +5677,7 @@
* bootstrap (cmd): turn back on --ignore-deps (this Automake may
have problems)
- * libamu/xutil.c: remove __attribute__ format_arg statement for
+ * 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.
@@ -583,11 +5707,11 @@
* 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,
@@ -606,7 +5730,7 @@
header templates using AH_TEMPLATE macros and such.
* aux/macros/msg.m4: removed. Replaced with new macro
- AC_MSG_NOTICE
+ AC_MSG_NOTICE
* Makefile.am (EXTRA_DIST_AUX): remove aux/macros/msg.m4. Add
aux/macros/header_templates.m4
@@ -640,6 +5764,11 @@
be on a separate line, as per new Autoconf manual, to avoid some
Bourne Shell syntactical bizarreness.
+2001-11-13 Erez Zadok <ezk@a-rh71i.fsl.cs.suunysb.edu>
+
+ * amd/amfs_auto.c (amfs_auto_readdir_browsable): cast to u_long,
+ for IA64 Linux.
+
2001-11-12 Ion Badulescu <ionut@buggy.badula.org>
* libamu/mtab.c (hasmntval): strtol can return a non-NULL pointer
@@ -649,11 +5778,130 @@
* configure.in: increased library patchlevel
- * NEWS: document the parsing bug; document other previous changes
+ * NEWS: document the parsing bug
+
+2001-10-29 Ion Badulescu <ionut@moisil.badula.org>
+
+ * configure.in: bumped version up to 6.1a5-pre
+
+ * NEWS: fixed speeling mistaike
+
+2001-10-29 Ion Badulescu <ionut@moisil.badula.org>
+
+ * released snapshot am-utils-6.1a4
+
+2001-10-26 Ion Badulescu <ionut@moisil.badula.org>
+
+ 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 <ionut@moisil.badula.org>
+
+ * 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 <ionut@moisil.badula.org>
+
+ * 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 <ionut@moisil.badula.org>
+
+ 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 <ionut@moisil.badula.org>
+
+ * 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 <ionut@moisil.badula.org>
+
+ 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 <ro@TechFak.Uni-Bielefeld.DE>
- * aux/macros/os_cflags.m4 (irix6*): Enforce N32 ABI/mips3 ISA with cc.
+ * aux/macros/os_cflags.m4 (irix6*): Enforce N32 ABI/mips3 ISA with cc.
* BUGS: Explain this.
2001-10-02 Erez Zadok <ezk@agora.fsl.cs.sunysb.edu>
@@ -665,7 +5913,7 @@
* 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 <ro@TechFak.Uni-Bielefeld.DE>
* conf/nfs_prot/nfs_prot_osf5.h: Renamed from nfs_prot_osf5_1.h.
@@ -689,6 +5937,68 @@
* libamu/wire.c (is_network_member): support for network/netmask
as well as network/bits syntax in in_network()
+2001-08-11 Erez Zadok <ezk@a-linux64.fsl.cs.sunysb.edu>
+
+ * 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 <lionut@gonzales.badula.org>
+
+ * 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 <ezk@a-solaris8.fsl.cs.sunysb.edu>
+
+ * 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 <lionut@gonzales.badula.org>
+
+ * 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 <ezk@shekel.mcl.cs.columbia.edu>
* amd/get_args.c (get_args): a better way to handle GNU and
@@ -700,7 +6010,7 @@
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 behaviour.
+ 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 <sebastien.bahloul@mangoosta.fr>.
@@ -711,18 +6021,16 @@
* Makefile.am (EXTRA_DIST): added bootstrap
- * amd/map.c (unmount_node_wrap): fix a couple of comments (already
- fixed in 6.1)
-
- * amd/amfs_auto.c (try_mount): print the path for the request that
- failed (already in 6.1)
-
* 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 <phil@fifi.org>
+ * doc/am-utils.texi: Added @dircategory Administration.
+
+2001-07-12 Philippe Troin <phil@fifi.org>
+
* aux/macros/with_addon.m4: Created. Wrapper around AC_ARG_WITH
with only the `yes' and `no' as possible answers.
@@ -755,28 +6063,40 @@
* Makefile.am (EXTRA_DIST_AUX): Added check_gnu_getopt.m4 macro file.
-2001-06-27 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu>
-
- *******************************************************************
- *** Released am-utils-6.0.7 ***
- *******************************************************************
-
2001-06-25 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu>
- * config.guess, config.sub, doc/texinfo.tex: updates from the
- latest GNU distributions.
-
- * INSTALL, doc/am-utils.texi (Supported Platforms): update info on
- freebsd5.0
-
* LSM.am-utils, NEWS, README.y2k, ChangeLog: make sure all
am-utils URL references use www.am-utils.org, not the columbia
URL.
-2001-05-24 Erez Zadok <ezk@fsl-gw.fsl.cs.sunysb.edu>
+2001-06-08 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu>
+
+ * conf/transp/transp_sockets.c (create_nfs_service): cast to
+ u_long to ensure clean compile on freebsd5 and bsdi2.
- * 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 <ionut@moisil.badula.org>
+
+ 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 <ezk@kosh.dyn.optonline.net>
@@ -784,6 +6104,12 @@
2001-05-19 Ion Badulescu <ionut@moisil.dev.hydraweb.com>
+ * 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
@@ -797,11 +6123,43 @@
* amd/amfs_host.c (amfs_host_mount): don't fail the mount if at
least one share is already mounted
-2001-05-02 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu>
+2001-05-17 Ion Badulescu <ionut@moisil.dev.hydraweb.com>
- *******************************************************************
- *** Released am-utils-6.0.6 ***
- *******************************************************************
+ * 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 <ionut@gonzales.dev.hydraweb.com>
@@ -813,14 +6171,17 @@
* 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
-2001-04-23 Ion Badulescu <ionut@buggy.dev.hydraweb.com>
-
- * amd/ops_autofs.c (autofs_lookuppn): renamed
- CFM_ENABLE_DEFAULT_SELECTORS to CFM_SELECTORS_IN_DEFAULTS
- (leftover from 03/29/01)
+ * 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 <ezk@whitestar.dyn.optonline.net>
@@ -841,16 +6202,17 @@
function's name to the beginning of the function, before any other
messages are logged.
+2001-04-14 Ion Badulescu <ionut@moisil.dev.hydraweb.com>
+
+ * conf/mount/mount_linux.c (do_mount_linux): removed plog() of
+ binary data
+
2001-04-05 Ion Badulescu <ionut@moisil.dev.hydraweb.com>
* 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-04-05 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu>
-
- * released snapshot am-utils-6.0.6s2
-
2001-03-29 Ion Badulescu <ionut@moisil.dev.hydraweb.com>
* amd/amd.h, amd/amfs_auto.c, amd/conf.c,
@@ -861,8 +6223,36 @@
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 <ionut@moisil.dev.hydraweb.com>
+
+ * 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 <ionut@moisil.dev.hydraweb.com>
+ * 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 <ionut@moisil.dev.hydraweb.com>
+
* conf/mount/mount_linux.c (parse_opts): added support for lofs
(mount_linux): support lofs through bind mounts and/or FiST lofs
@@ -873,10 +6263,39 @@
kernel is newer than 2.4.0
(MNTTYPE_LOFS): ditto
- * acconfig.h: added MNT2_GEN_OPT_BIND
+ * 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)
- * configure.in: bumped up library patchlevel; added detection for
- the MS_BIND generic mount option
+ * 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 <ionut@moisil.dev.hydraweb.com>
@@ -919,11 +6338,25 @@
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 <ezk@shekel.mcl.cs.columbia.edu>
+
+ * Makefile.am (install-snapshot): use a different symlink target
+ for the experimental snapshots.
+
2001-02-23 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu>
* Makefile.am (EXTRA_DIST_CONF): include nfs_prot_darwin.h in
distributions.
+2001-02-22 Erez Zadok <ezk@earth.cs.columbia.edu>
+
+ * 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 <ezk@shekel.mcl.cs.columbia.edu>
* libamu/mtab.c: added the functions hasmnteq and haseq to
@@ -960,8 +6393,6 @@
2001-02-18 Erez Zadok <ezk@earth.cs.columbia.edu>
- * released snapshot am-utils-6.0.6s1
-
* 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
@@ -984,11 +6415,12 @@
* conf/mount/mount_linux.c: made linux_nfs_error() more robust.
-2001-02-02 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu>
+2001-02-01 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu>
- *******************************************************************
- *** Released am-utils-6.0.5 ***
- *******************************************************************
+ * 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 <ionut@moisil.dev.hydraweb.com>
@@ -1000,11 +6432,6 @@
nfs_errormap array, lest the following errno's get shifted up by
one!
-2001-01-12 Ion Badulescu <ionut@buggy.dev.hydraweb.com>
-
- * include/am_defs.h: don't allow linux/fs.h to be sucked in via
- linux/auto_fs.h, it breaks the compile on glibc platforms.
-
Sat Jan 13 00:04:38 2001 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* amd/amd.h (autofs_lookuppn): Fixup whitespace.
@@ -1015,9 +6442,10 @@ Sat Jan 13 00:04:38 2001 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* 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.
+ 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.
@@ -1044,10 +6472,6 @@ Sat Jan 13 00:04:38 2001 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
amq_program_1): Likewise.
(nfsxprt): Moved declaration.
-Fri Jan 12 23:46:31 2001 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
-
- * hlfsd/hlfsd.h (HLFSD_VERSION): Bump copyright year to 2001.
-
Fri Jan 12 23:31:45 2001 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
Removed support for amq -M.
@@ -1072,6 +6496,39 @@ Fri Jan 12 23:31:45 2001 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* tasks: Removed this task.
+Fri Jan 12 23:18:26 2001 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * 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 <ezk@shekel.mcl.cs.columbia.edu>
* Makefile.am (EXTRA_DIST): distribute new LDAP files.
@@ -1117,41 +6574,118 @@ Fri Jan 5 05:12:02 2001 Erez Zadok <ezk@subzero.cs.columbia.edu>
* include/am_xdr_func.h: prototype should take "groups *" as 2nd
arg.
- * libamu/xdr_func.c (xdr_groupnode, xdr_exportnode): change
+ * 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 <dancy@franz.com>.
-
-2000-12-14 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu>
+ definition. Report from Ahmon Dancy <dancy@franz.com>.
- * released snapshot am-utils-6.0.5s4
+2000-12-06 Ion Badulescu <ionut@moisil.dev.hydraweb.com>
- * minor port i386-unknown-freebsd4.2 (documented)
+ * include/am_defs.h: force non-inclusion of <linux/fs.h> via
+ <linux/auto_fs.h>
-2000-12-07 Ion Badulescu <lionut@gonzales.dev.hydraweb.com>
+ * conf/autofs/autofs_linux.c (autofs_mounted): rename
+ AUTOFS_MIN_PROTO_VERSION to AUTOFS_MIN_VERSION (leftover from
+ previous commit)
- * configure.in (LIBTOOL_LDFLAGS): fix libtool version
+ * configure.in: fixed libtool version
2000-12-02 Ion Badulescu <ionut@moisil.dev.hydraweb.com>
* doc/am-utils.texi (opts Option): document lock/nolock
+2000-12-02 Ion Badulescu <ionut@moisil.dev.hydraweb.com>
+
+ * 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 <linux/fs.h> on a glibc2 system
+ * include/am_defs.h: don't include <linux/fs.h> on a glibc2
+ system; include <linux/auto_fs4.h> if it exists, instead of
+ <linux/auto_fs.h>
* include/am_compat.h: define the "nolock" mnttab option if the
NONLM NFS mount option is defined
- * acconfig.h: added MNT2_NFS_OPT_NONLM
+ * 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 patchlevel
+ increased the minor level; added detection of <linux/auto_fs4.h>
+ and the MS_BIND generic mount option
+
+2000-11-29 Ion Badulescu <ionut@moisil.dev.hydraweb.com>
+
+ * 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 <ionut@moisil.dev.hydraweb.com>
+
+ 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 <ionut@moisil.dev.hydraweb.com>
+
+ * split amd/ops_autofs.c into conf/autofs/autofs_<system>.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 <ionut@moisil.dev.hydraweb.com>
@@ -1178,13 +6712,12 @@ Fri Jan 5 05:12:02 2001 Erez Zadok <ezk@subzero.cs.columbia.edu>
* 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 suggestion from NetBSD: Thomas Klausner
+ the fmt buf. security suggtion from NetBSD: Thomas Klausner
<wiz@danbala.ifoer.tuwien.ac.at>
2000-11-22 Ion Badulescu <ionut@moisil.dev.hydraweb.com>
- * amd/amfs_auto.c (amfs_auto_bgmount),
- amd/ops_autofs.c (autofs_bgmount): removed the initialization of
+ * 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
@@ -1239,8 +6772,6 @@ Fri Jan 5 05:12:02 2001 Erez Zadok <ezk@subzero.cs.columbia.edu>
2000-11-19 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu>
- * released snapshot am-utils-6.0.5s3
-
* updated config.guess, config.sub, and doc/texinfo.tex from
mirrors
@@ -1250,10 +6781,6 @@ Fri Jan 5 05:12:02 2001 Erez Zadok <ezk@subzero.cs.columbia.edu>
* aux/macros/check_nfs_prot_headers.m4: newer netbsd systems
reports their system name as "netbsdelf" in config.guess.
-2000-11-15 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu>
-
- * released snapshot am-utils-6.0.5s2
-
2000-11-13 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu>
* doc/am-utils.texi (opts Option): document new mount option
@@ -1266,19 +6793,35 @@ Fri Jan 5 05:12:02 2001 Erez Zadok <ezk@subzero.cs.columbia.edu>
option in Amd, useful under DU-4.0 to process ACLs over NFS
mounts.
-2000-11-10 Ion Badulescu <ib42@earth.cs.columbia.edu>
+2000-11-10 Ion Badulescu <ionut@moisil.dev.hydraweb.com>
* conf/mount/mount_linux.c (mount_linux): removed unnecessary
rsize/wsize defaults -- performance killers on 2.2.18+ and 2.4.0+
-2000-11-01 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu>
-
- * MIRRORS (Note): added a mirror at ufl.edu
-
2000-10-16 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu>
* scripts/am-eject.in: accept "cdrom" and "floppy" as arguments.
+2000-11-05 Ion Badulescu <ionut@moisil.dev.hydraweb.com>
+
+ 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 <ezk@shekel.mcl.cs.columbia.edu>
+
+ * MIRRORS (Note): added a mirror at ufl.edu
+
2000-10-11 Erez Zadok <ezk@lorien.dev.hydraweb.com>
* amq/amq.8: synchronize Amq's options with reality
@@ -1295,21 +6838,6 @@ Fri Jan 5 05:12:02 2001 Erez Zadok <ezk@subzero.cs.columbia.edu>
* scripts/lostaltmail.in (vrfy_user): ensure that MAILDIR is
defined.
-2000-10-02 Ion Badulescu <ionut@moisil.dev.hydraweb.com>
-
- * aux/macros/mount_headers.m4: only include <linux/fs.h>
- on a non-glibc2 system
-
- * aux/macros/try_compile_anyfs.m4: ditto
-
- * aux/macros/check_mount_type.m4: linux 2.4 stores loadable modules
- in a different directory structure
-
- * aux/macros/check_mnttab_type.m4: ditto
-
- * aux/macros/check_fs_mntent.m4: ditto; also, replace the nfs3
- linux hack with a hopefully more stable hack
-
2000-09-18 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu>
* amd/opts.c (backslash): Bell char (ASCII 007) should be \g, not
@@ -1321,15 +6849,6 @@ Fri Jan 5 05:12:02 2001 Erez Zadok <ezk@subzero.cs.columbia.edu>
* amd/opts.c: removed unused variable $autopref
-2000-09-15 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu>
-
- * released snapshot am-utils-6.0.5s1
-
-2000-09-11 Ion Badulescu <ionut@moisil.dev.hydraweb.com>
-
- * aux/macros/check_fs_mntent.m4 (_LINUX_NFS_XDR_H): define it so
- linux/nfs_xdr.h doesn't get included (not intended for user space)
-
2000-09-05 Erez Zadok <ezk@aladdin.dev.hydraweb.com>
* conf/mtab/mtab_svr4.c (lockfile): function not needed unless
@@ -1371,20 +6890,8 @@ Fri Jan 5 05:12:02 2001 Erez Zadok <ezk@subzero.cs.columbia.edu>
* doc/am-utils.texi: updated URLs to www.am-utils.org.
-2000-07-08 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu>
-
- *******************************************************************
- *** Released am-utils-6.0.4 ***
- *******************************************************************
-
-2000-07-08 Erez Zadok <ezk@earth.cs.columbia.edu>
-
- * configure.in: update shared library information
-
2000-07-04 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu>
- * INSTALL: document osf4.0f
-
* doc/am-utils.texi (Supported Platforms): document osf4.0f
2000-06-19 Erez Zadok <ezk@vir.cs.columbia.edu>
@@ -1396,9 +6903,33 @@ Fri Jan 5 05:12:02 2001 Erez Zadok <ezk@subzero.cs.columbia.edu>
literal '$' sign. Otherwise there is no way to include a literal
dollar symbol in an amd map.
+2000-06-11 Ion Badulescu <ib42@moisil.cs.columbia.edu>
+
+ * amd/opts.c (eval_selectors): don't deref opt after it's been
+ XFREE'd
+
2000-06-11 Erez Zadok <ezk@earth.cs.columbia.edu>
- * amd/opts.c: correct comment name at top of opt_fields.
+ * amd/opts.c: move mount_type expansion until later in the list,
+ so common variable are "hit" first.
+
+2000-06-11 Ion Badulescu <ib42@moisil.cs.columbia.edu>
+
+ * 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 <ionut@moisil.cs.columbia.edu>
@@ -1423,8 +6954,6 @@ Fri Jun 9 16:06:56 2000 Erez Zadok <ezk@defiant.dev.hydraweb.com>
2000-06-07 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu>
- * released snapshot am-utils-6.0.4s5
-
* Makefile.am, aux/GNUmakefile: fix maintainer rules to update
config.* and texinfo.tex files.
@@ -1432,8 +6961,8 @@ Fri Jun 9 16:06:56 2000 Erez Zadok <ezk@defiant.dev.hydraweb.com>
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 <Nick.Williams@msdw.com>. 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
+ 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,
@@ -1488,6 +7017,12 @@ Fri Jun 9 16:06:56 2000 Erez Zadok <ezk@defiant.dev.hydraweb.com>
* cvs-server.txt: instructions for maintainers to access the CVS
server for am-utils.
+2000-06-03 Ion Badulescu <ionut@moisil.cs.columbia.edu>
+
+ * 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 <ezk@shekel.mcl.cs.columbia.edu>
* amd/am_ops.c (ops_match): changed XLOG_USER messages about
@@ -1497,32 +7032,115 @@ Fri Jun 9 16:06:56 2000 Erez Zadok <ezk@defiant.dev.hydraweb.com>
* config.{guess,sub}: make sure chmod'ed a+rx. Updated from
latest GNU copies.
-2000-05-30 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu>
+2000-05-30 Ion Badulescu <ionut@moisil.cs.columbia.edu>
+
+ * aux/configure.in: bump up the version to 6.1a2
+
+2000-05-29 Ion Badulescu <ionut@moisil.cs.columbia.edu>
- * released snapshot am-utils-6.0.4s4
+ * released snapshot am-utils-6.1a1
2000-05-29 Ion Badulescu <ionut@moisil.cs.columbia.edu>
+ * 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 <ezk@mulberry.mcl.cs.columbia.edu>
* doc/am-utils.texi (Network Filesystem Group): minor typos
-2000-05-27 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu>
+2000-05-28 Ion Badulescu <ionut@moisil.cs.columbia.edu>
+
+ * 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 <ionut@moisil.cs.columbia.edu>
- * amd/amfs_auto.c (amfs_auto_readdir_browsable): cast pointers to
- long for 64-bit architectures.
+ * amd/amfs_toplvl.c (mount_amfs_toplvl): init error to 0 to shut
+ up gcc
- * libamu/xutil.c (amu_release_controlling_tty): eliminate an
- unused variable "tempfile"
+ * 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 <ezk@shekel.mcl.cs.columbia.edu>
* libamu/wire.c (getwire_lookup): handle calling irs_gen_acc with
one or two arguments (bsdi3 vs. bsdi4)
+2000-05-27 Ion Badulescu <ib42@chestnut.mcl.cs.columbia.edu>
+
+ * libamu/xutil.c (amu_release_controlling_tty): removed an unused
+ variable from the previous patch
+
2000-05-26 Ion Badulescu <ionut@moisil.cs.columbia.edu>
+ * 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
@@ -1536,6 +7154,50 @@ Fri Jun 9 16:06:56 2000 Erez Zadok <ezk@defiant.dev.hydraweb.com>
getattr). This fixes the problem introduced by the Linux nfsv3
patches.
+2000-05-12 Ion Badulescu <ionut@moisil.cs.columbia.edu>
+
+ * Makefile.am (EXTRA_DIST_CONF): added conf/autofs/autofs_linux.h
+
+2000-05-10 Ion Badulescu <ib42@earth.cs.columbia.edu>
+
+ * 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 <ionut@moisil.cs.columbia.edu>
+
+ * 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 <ionut@moisil.cs.columbia.edu>
+
+ * 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 <ib42@moisil.cs.columbia.edu>
+
+ * Merged changes from stable branch
+
2000-04-30 Erez Zadok <ezk@beetle.mcl.cs.columbia.edu>
* include/am_defs.h, aux/macros/mount_headers.m4,
@@ -1583,6 +7245,58 @@ Fri Jun 9 16:06:56 2000 Erez Zadok <ezk@defiant.dev.hydraweb.com>
(main): add amq -H option to show usage.
(main): new amq -w option, translates getpwd() into an amd path.
+2000-02-25 Ion Badulescu <ionut@moisil.cs.columbia.edu>
+
+ * 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 <ezk@shekel.mcl.cs.columbia.edu>
* minor new port: alphaev6-dec-osf5.0
@@ -1605,7 +7319,7 @@ Fri Jun 9 16:06:56 2000 Erez Zadok <ezk@defiant.dev.hydraweb.com>
* 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
@@ -1854,10 +7568,10 @@ Fri Dec 10 01:31:53 1999 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
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.
+ 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.
+ option.
* aux/acconfig.h (MNT2_GEN_OPT_OPTIONSTR): Provide template.
1999-12-10 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu>
@@ -1910,7 +7624,7 @@ Thu Dec 9 19:09:38 1999 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* 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.
+ objects.
* aux/macros/check_fs_mntent.m4: Likewise
* aux/macros/HEADER: Fixed typo.
@@ -2780,12 +8494,12 @@ Tue Jan 12 00:05:42 1999 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
(hlfsd_getpwent): Likewise for pw_uid.
* amd/info_nis.c (nis_init): Cast order to unsigned long, adapt
- format.
+ 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.
+ formats.
* amd/amfs_program.c (amfs_program_exec): Cast ptr difference to
long, adapt format.
@@ -2807,7 +8521,7 @@ Mon Jan 11 13:46:44 1999 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
format.
* hlfsd/homedir.c (homedir): Cast uid, child to long, adapt
- format.
+ format.
* amd/info_hesiod.c (hesiod_search): Cast m, pval, tp to unsigned
long, adapt format.
@@ -2816,7 +8530,7 @@ Mon Jan 11 13:46:44 1999 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
unsigned long, adapt format.
(got_nfs_fh): Likewise.
(prime_nfs_fhandle_cache): Cast fh_nfs_version to int to match
- format.
+ format.
(call_mountd): Likewise, mnt_version also.
(mount_nfs_fh): Likewise.
@@ -2829,13 +8543,13 @@ Mon Jan 11 13:46:44 1999 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
(autofs_lookuppn): Removed superfluous arg.
* amd/srvr_nfs.c (start_ping): Cast nfs_version to int to match
- format.
+ 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.
+ format.
* amd/nfs_start.c (checkup): Cast ptr difference to long, next_mem
to unsigned long, adapt format.
@@ -2885,7 +8599,7 @@ Mon Jan 11 13:46:44 1999 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
Fri Jan 8 15:24:15 1999 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* aux/macros/check_mtype_type.m4: Ultrix uses an int mount type,
- too.
+ too.
* aux/macros/check_mtype_printf_type.m4: Adapt corresponding
printf type.
@@ -3245,7 +8959,7 @@ Tue Apr 28 15:12:36 1998 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
support.
Fri Apr 24 23:02:11 1998 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
-
+
* libamu/xutil.c (get_syslog_facility): Don't use LOG_DAEMON
unconditionally, may be missing on Ultrix V4.3.
@@ -3253,7 +8967,7 @@ Thu Apr 23 20:24:33 1998 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* conf/nfs_prot/nfs_prot_sunos5_4.h (MNTTYPE_CACHEFS): Define,
missing from <sys/mntent.h>.
-
+
* conf/mtab/mtab_ultrix.c: Need separate inclusion of <sys/fs_types.h>
without KERNEL defined here.
@@ -3352,7 +9066,7 @@ Sun Apr 19 16:30:35 1998 Erez Zadok <ezk@lorien.cs.columbia.edu>
before writing log file and restore it afterwards. Patch from
Donald Buczek <buczek@MPIMG-Berlin-Dahlem.MPG.DE>.
- * amd/get_args.c (get_args):
+ * 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.
@@ -3727,7 +9441,7 @@ Thu Jan 29 00:44:28 1998 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu>
into that file.
* amd/get_args.c (get_args): print correct -l option depending if
- system supports syslog and/or syslog facilities. Patch from
+ system supports syslog and/or syslog facilities. Patch from
Tom Schmidt <tschmidt@micron.com>.
* doc/am-utils.texi (opts Option): updates for documentation for
@@ -4993,7 +10707,7 @@ Fri Jul 25 03:16:31 1997 Erez Zadok <ezk@felix.psl.cs.columbia.edu>
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.
@@ -5048,7 +10762,7 @@ Wed Jul 23 16:11:49 1997 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu>
* 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): buf fix from Debian Linux. Timeout
+ 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 <ezk@felix.psl.cs.columbia.edu>
@@ -5307,7 +11021,7 @@ Tue Jul 8 12:42:03 1997 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu>
Mon Jul 7 19:10:44 1997 Erez Zadok <ezk@prometheus.soscorp.com>
- * NFS V3 now works under Irix5, thanks to patches from
+ * NFS V3 now works under Irix5, thanks to patches from
Andreas Stolcke <stolcke@speech.sri.com>.
* conf/mount/mount_irix5.c: sparate mount_irix.c into an irix5
@@ -5326,7 +11040,7 @@ Sun Jul 6 14:22:24 1997 Erez Zadok <ezk@glory.soscorp.com>
* 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.
@@ -5405,7 +11119,7 @@ Thu Jul 3 17:49:00 1997 Erez Zadok <ezk@prometheus.soscorp.com>
* 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.
+ 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.
@@ -5418,7 +11132,7 @@ Thu Jul 3 17:49:00 1997 Erez Zadok <ezk@prometheus.soscorp.com>
Wed Jul 2 18:19:02 1997 Erez Zadok <ezk@starblazers.soscorp.com>
* scripts/ctl-amd.in: don't use full pathname so killproc() works
- better. Also run bsd44 and irix style ps programs.
+ 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.
@@ -5588,7 +11302,7 @@ Sat May 24 13:40:50 1997 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu>
* 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
@@ -5609,7 +11323,7 @@ Sat May 24 13:40:50 1997 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu>
linux-specific mounts. Handles fs-type specific mount-options
correctly. Currently implemented: msdos, iso9660.
- * amd/ops_pcfs.c (pcfs_ops): don't timeout cdfs mounts by default
+ * 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
@@ -5733,7 +11447,7 @@ Sat May 6 10:20:17 2000 Erez Zadok <ezk@glory.soscorp.com>
possible children.
* hlfsd/homedir.c: signal handler must waitpid() for all possible
- children.
+ children.
* aux/macros/check_restartable_signals.m4: new macro to determine
if need to reinstall signal handlers per OS is better than trying
@@ -5814,7 +11528,7 @@ Sat Mar 15 19:37:48 1997 Erez "HWank1" Zadok <ezk@shekel.mcl.cs.columbia.edu>
Sat Mar 14 10:11:03 1997 Erez "HWank1" Zadok <ezk@lorien.cs.columbia.edu>
- * SHARED LIBRARIES: too many change to list individually. Now,
+ * SHARED LIBRARIES: too many changes to list individually. Now,
libamu can be built as a shared library, and other programs link
with it.
@@ -6010,7 +11724,7 @@ Sun Feb 23 15:25:26 1997 Erez "HWank1" Zadok <ezk@shekel.mcl.cs.columbia.edu>
* 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.
+ 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.
@@ -6300,7 +12014,7 @@ Wed Dec 18 22:20:23 1996 Erez "HWank1" Zadok <ezk@shekel.mcl.cs.columbia.edu>
Wed Dec 11 22:19:29 1996 Erez "HWank1" Zadok <ezk@shekel.mcl.cs.columbia.edu>
- * At this point the initial genration of config.h via autoconf and
+ * 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.
OpenPOWER on IntegriCloud