diff options
Diffstat (limited to 'contrib/amd/ChangeLog')
-rw-r--r-- | contrib/amd/ChangeLog | 6292 |
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. |