Erez Zadok [Thu, 26 Oct 2006 17:36:26 +0000 (17:36 +0000)]
* minor new port: i386-pc-linux-fc6.
* m4/macros/linux_headers.m4: handle newer Linux kernels which
removed UTS_RELEASE from <linux/version.h>.
* minor new ports: i386-pc-linux-centos4.4 and
powerpc-apple-darwin8.7.0.
* config.guess.long: recognize CentOS Linux.
Erez Zadok [Tue, 20 Jun 2006 19:03:56 +0000 (19:03 +0000)]
* minor new port: i386-pc-solaris2.11-nexentaos (GNU/OpenSolaris).
* config.guess.long: recognize NexentaOS (GNU/OpenSolaris)
* config.guess, config.sub: updates from latest official GNU
distributions.
Erez Zadok [Thu, 11 May 2006 17:51:37 +0000 (17:51 +0000)]
start next release version
Erez Zadok [Thu, 11 May 2006 17:29:41 +0000 (17:29 +0000)]
note on aix's malloc
Erez Zadok [Thu, 11 May 2006 17:28:15 +0000 (17:28 +0000)]
* 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.
Erez Zadok [Tue, 2 May 2006 03:12:45 +0000 (03:12 +0000)]
* 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.
Erez Zadok [Fri, 21 Apr 2006 19:34:42 +0000 (19:34 +0000)]
* configure.in: detect G/DBM support via gdbm_compat library
(Debian 3.1).
* minor new port: powerpc-apple-darwin8.5.0
Erez Zadok [Fri, 21 Apr 2006 01:11:50 +0000 (01:11 +0000)]
* 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.
* 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.
Erez Zadok [Wed, 19 Apr 2006 01:58:16 +0000 (01:58 +0000)]
minor refomatting (emacs)
Christos Zoulas [Tue, 18 Apr 2006 17:30:39 +0000 (17:30 +0000)]
Mention netgrp/netgrpd changes.
Christos Zoulas [Tue, 18 Apr 2006 17:27:57 +0000 (17:27 +0000)]
Make netgrp and netgrpd take an optional ",host" argument instead of always
defaulting to ${host} or ${hostd} respectively.
Christos Zoulas [Tue, 18 Apr 2006 17:26:54 +0000 (17:26 +0000)]
Document the new 2 argument netgrp and netgrpd.
Erez Zadok [Sun, 16 Apr 2006 16:34:35 +0000 (16:34 +0000)]
* libamu/mtab.c (hasmntval): fix inverted meaning of error from
hasmntvalerr().
Erez Zadok [Fri, 14 Apr 2006 19:57:22 +0000 (19:57 +0000)]
better fix
Erez Zadok [Fri, 14 Apr 2006 19:51:43 +0000 (19:51 +0000)]
* 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.
Erez Zadok [Wed, 5 Apr 2006 15:16:20 +0000 (15:16 +0000)]
* amd/amfs_generic.c (amfs_lookup_mntfs): fix use-after-free bug
(Coverity).
Christos Zoulas [Wed, 5 Apr 2006 15:07:39 +0000 (15:07 +0000)]
Fix use after free.
Erez Zadok [Tue, 28 Mar 2006 16:19:30 +0000 (16:19 +0000)]
* 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.
Erez Zadok [Thu, 23 Mar 2006 02:44:04 +0000 (02:44 +0000)]
* minor new port: i386-pc-linux-suse10.1 (beta 8).
Erez Zadok [Wed, 22 Mar 2006 17:21:17 +0000 (17:21 +0000)]
* amd/am_ops.c (merge_opts): Remove useless check found by
Coverity; xmalloc never returns NULL.
Christos Zoulas [Wed, 22 Mar 2006 04:12:51 +0000 (04:12 +0000)]
Remove useless check found by Coverity; xmalloc never returns NULL.
Erez Zadok [Tue, 21 Mar 2006 16:46:55 +0000 (16:46 +0000)]
* 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).
Erez Zadok [Mon, 20 Mar 2006 16:59:30 +0000 (16:59 +0000)]
* 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).
Ion Badulescu [Thu, 9 Mar 2006 03:11:21 +0000 (03:11 +0000)]
* amd/nfs_subr.c (mp_to_fh): fixed old-style filehandles--the pid
comparison was failing.
Erez Zadok [Wed, 8 Mar 2006 22:16:45 +0000 (22:16 +0000)]
* 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.
Daniel Ottavio [Fri, 17 Feb 2006 03:44:01 +0000 (03:44 +0000)]
* amd/sum_map_tok.l: Fixed a bug in a regular expression that
prevented dashes in hostnames. This was posted in BZ by Thomas
A. Fine.
* README.sun2amd: Fixed a typo. Sentence mentions use of autofs
type when it should be host type.
Erez Zadok [Thu, 5 Jan 2006 00:39:32 +0000 (00:39 +0000)]
* 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.
Erez Zadok [Mon, 2 Jan 2006 18:47:15 +0000 (18:47 +0000)]
* updated copyright year to 2006 on all files.
Erez Zadok [Tue, 27 Dec 2005 23:26:56 +0000 (23:26 +0000)]
i386-unknown-netbsdelf3.0 (RELEASE), and i386-unknown-openbsd3.8.
Erez Zadok [Tue, 20 Dec 2005 19:59:55 +0000 (19:59 +0000)]
* 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.
Erez Zadok [Tue, 20 Dec 2005 18:43:40 +0000 (18:43 +0000)]
ignore
Erez Zadok [Sat, 3 Dec 2005 20:36:43 +0000 (20:36 +0000)]
* minor new ports: i386-unknown-netbsdelf2.1,
i386-unknown-netbsdelf3.0 (RC5), and i386-unknown-openbsd3.8.
* 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).
Erez Zadok [Wed, 9 Nov 2005 10:10:17 +0000 (10:10 +0000)]
* minor new port: i386-unknown-freebsd6.0 (RELEASE)
Erez Zadok [Wed, 26 Oct 2005 14:59:19 +0000 (14:59 +0000)]
* 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.
Erez Zadok [Wed, 26 Oct 2005 03:35:50 +0000 (03:35 +0000)]
* 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.
Erez Zadok [Thu, 20 Oct 2005 20:26:16 +0000 (20:26 +0000)]
longname, nowin95, shortname, user=N, group=N, mask=N, and
dirmask=N.
nowin95, shortname, user=N, group=N, mask=N, and dirmask=N.
user=N, group=N, mask=N, and dirmask=N.
Erez Zadok [Wed, 19 Oct 2005 23:54:35 +0000 (23:54 +0000)]
* doc/am-utils.texi (opts Option): document new pcfs options
longname, nowin95, shortname, uid=N, gid=N, mask=N, and dirmask=N.
* amd/ops_pcfs.c (mount_pcfs): process new pcfs options longname,
nowin95, shortname, uid=N, gid=N, mask=N, and dirmask=N.
* include/am_compat.h: provide compatibility mnttab string names,
if needed, for pcfs mount options longname, nowin95, shortname,
uid=N, gid=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.
Erez Zadok [Tue, 18 Oct 2005 18:11:34 +0000 (18:11 +0000)]
* 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.
Erez Zadok [Tue, 11 Oct 2005 16:50:19 +0000 (16:50 +0000)]
* doc/am-utils.texi (nfs_vers, nfs_proto parameters): clarify and
correct mistaken description of nfs_proto.
Erez Zadok [Mon, 10 Oct 2005 18:27:48 +0000 (18:27 +0000)]
reorg NEWS a bit
Erez Zadok [Mon, 10 Oct 2005 17:29:17 +0000 (17:29 +0000)]
install sun2amd.txt
Erez Zadok [Mon, 10 Oct 2005 17:15:48 +0000 (17:15 +0000)]
*******************************************************************
*** Released am-utils-6.1a1 ***
*******************************************************************
* README.sun2amd: revised.
Erez Zadok [Mon, 10 Oct 2005 16:46:59 +0000 (16:46 +0000)]
nuke trailing spaces
Daniel Ottavio [Mon, 10 Oct 2005 01:40:16 +0000 (01:40 +0000)]
the sun2amd feature.
Moved the date.
Daniel Ottavio [Mon, 10 Oct 2005 01:33:16 +0000 (01:33 +0000)]
* README.sun2amd: Made a first pass at describing the status of
the sun2amd feature.
Erez Zadok [Sun, 9 Oct 2005 23:37:12 +0000 (23:37 +0000)]
spacing
Daniel Ottavio [Sun, 9 Oct 2005 22:24:12 +0000 (22:24 +0000)]
* amd/info_nis.c (nis_search): Bug fix for bugzilla #428; make
sure that sun_entry2amd() is not called when yp_match() returns an
error, this is done by checking that 'res' is 0. Bug fix (same
BZ#); free the output allocated by yp_match() instead of freeing
the return value of sun_entry2amd().
* amd/sun_map.c (sun_entry2amd): Fix a comment.
Erez Zadok [Sun, 9 Oct 2005 20:18:50 +0000 (20:18 +0000)]
* README.sun2amd: place holder.
* Makefile.am (EXTRA_DIST): distribute new README.sun2amd file.
Erez Zadok [Sat, 8 Oct 2005 02:58:01 +0000 (02:58 +0000)]
* 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.
Erez Zadok [Fri, 7 Oct 2005 23:17:31 +0000 (23:17 +0000)]
* 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).
Erez Zadok [Fri, 7 Oct 2005 22:28:12 +0000 (22:28 +0000)]
* 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.
Erez Zadok [Fri, 7 Oct 2005 21:25:01 +0000 (21:25 +0000)]
* 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.
Erez Zadok [Fri, 7 Oct 2005 20:34:19 +0000 (20:34 +0000)]
* m4/macros/header_templates.m4: add missing templates for
HAVE_EXTERN_GETDTABLESIZE, HAVE_EXTERN_GETWD, and
HAVE_EXTERN_UALARM.
Erez Zadok [Fri, 7 Oct 2005 20:16:29 +0000 (20:16 +0000)]
* amd/Makefile.am (amd_LDADD, sun2amd_LDADD): put libaminfo.a
before libamu.la. Some linkers (e.g., IRIX-6.5) incorrectly
complain about undefined symbols.
Erez Zadok [Fri, 7 Oct 2005 20:05:21 +0000 (20:05 +0000)]
* amd/info_exec.c (exec_map_open): break assignment from inside
conditional, to work around an IRIX-6.5 cc bug.
* amd/Makefile.am (amd_LDADD): put libaminfo.a before libamu.la.
Some linkers (e.g., IRIX-6.5) incorrectly complain about undefined
symbols.
Erez Zadok [Fri, 7 Oct 2005 18:55:29 +0000 (18:55 +0000)]
* 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.
Erez Zadok [Fri, 7 Oct 2005 17:24:16 +0000 (17:24 +0000)]
standard usage and formatting
Erez Zadok [Fri, 7 Oct 2005 17:15:36 +0000 (17:15 +0000)]
* 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).
Erez Zadok [Fri, 7 Oct 2005 16:39:12 +0000 (16:39 +0000)]
* 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.
* 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.
Erez Zadok [Fri, 7 Oct 2005 03:53:16 +0000 (03:53 +0000)]
* ltmain.sh, m4/macros/libtool.m4: update to libtool-1.5.20.
Fixes Tru64 bugs when using ksh.
Erez Zadok [Fri, 7 Oct 2005 03:44:59 +0000 (03:44 +0000)]
* 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).
Erez Zadok [Fri, 7 Oct 2005 01:40:03 +0000 (01:40 +0000)]
* 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.
Erez Zadok [Fri, 7 Oct 2005 00:20:13 +0000 (00:20 +0000)]
* 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.
Erez Zadok [Thu, 6 Oct 2005 21:11:54 +0000 (21:11 +0000)]
* 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)
Erez Zadok [Thu, 6 Oct 2005 20:33:42 +0000 (20:33 +0000)]
typo that hpux-cc caught
Erez Zadok [Thu, 6 Oct 2005 20:18:15 +0000 (20:18 +0000)]
* 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.
* 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.
Erez Zadok [Thu, 6 Oct 2005 01:06:51 +0000 (01:06 +0000)]
* amq/pawd.c (transform_dir): use TCP first, else UDP. Destroy
client after use to avoid leftover TCP sockets in the kernel.
Erez Zadok [Wed, 5 Oct 2005 23:33:01 +0000 (23:33 +0000)]
* 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.
Erez Zadok [Wed, 5 Oct 2005 07:52:25 +0000 (07:52 +0000)]
* 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.
* 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*().
Erez Zadok [Wed, 5 Oct 2005 01:13:45 +0000 (01:13 +0000)]
* 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().
Erez Zadok [Mon, 3 Oct 2005 01:01:10 +0000 (01:01 +0000)]
* 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.
* libamu/xutil.c: explain purpose of file. Move mkdirs/rmdirs
code from old util.c.
Erez Zadok [Sat, 1 Oct 2005 06:48:08 +0000 (06:48 +0000)]
* 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).
Erez Zadok [Sat, 1 Oct 2005 05:43:38 +0000 (05:43 +0000)]
* 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.
Erez Zadok [Sat, 1 Oct 2005 05:26:55 +0000 (05:26 +0000)]
* 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.
Erez Zadok [Sat, 1 Oct 2005 05:17:00 +0000 (05:17 +0000)]
updates from latest GNU versions
Erez Zadok [Fri, 30 Sep 2005 03:41:54 +0000 (03:41 +0000)]
* 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>.
Erez Zadok [Fri, 30 Sep 2005 02:50:26 +0000 (02:50 +0000)]
* 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.
Erez Zadok [Mon, 26 Sep 2005 06:02:56 +0000 (06:02 +0000)]
comment space
Erez Zadok [Mon, 26 Sep 2005 05:17:11 +0000 (05:17 +0000)]
* 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.
Erez Zadok [Mon, 19 Sep 2005 04:46:14 +0000 (04:46 +0000)]
NEWS update
Erez Zadok [Mon, 19 Sep 2005 04:00:57 +0000 (04:00 +0000)]
* README.attrcache: document netbsd's patchs to support noac.
Erez Zadok [Mon, 19 Sep 2005 03:36:21 +0000 (03:36 +0000)]
* README.attrcache: document netbsd's patch to support noac.
Erez Zadok [Mon, 19 Sep 2005 02:53:30 +0000 (02:53 +0000)]
* 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.
Update status of freebsd and openbsd.
Erez Zadok [Sun, 18 Sep 2005 23:22:44 +0000 (23:22 +0000)]
freebsd version typo
Erez Zadok [Sun, 18 Sep 2005 22:51:47 +0000 (22:51 +0000)]
typos
Erez Zadok [Sun, 18 Sep 2005 22:44:12 +0000 (22:44 +0000)]
typos
Erez Zadok [Sun, 18 Sep 2005 21:56:55 +0000 (21:56 +0000)]
* 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.
Erez Zadok [Sat, 17 Sep 2005 22:16:36 +0000 (22:16 +0000)]
* 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().
Erez Zadok [Thu, 15 Sep 2005 23:12:56 +0000 (23:12 +0000)]
* amd/nfs_subr.c (nfsproc_getattr_2_svc): initialize 'retry', just
in case.
(fh_to_mp3): increment amd_stats.d_stale counter only if we are
actually returning ESTALE.
* amd/info_exec.c (exec_parse_qanswer), amd/info_file.c
(file_search_or_reload), amd/info_hesiod.c (hesiod_search),
amd/info_ldap.c (amu_ldap_search), amd/info_ndbm.c (search_ndbm),
amd/info_nis.c (nis_search), amd/info_nisplus.c (nisplus_search,
nisplus_search): don't dereference mnt_map->cfm which may be null
if we're not using an amd.conf file.
* libamu/xutil.c (unregister_amq): if failed to de-register Amd
from portmapper, report it under dlog (debugging), not as an
annoying plog that always shows up.
Erez Zadok [Wed, 14 Sep 2005 14:14:37 +0000 (14:14 +0000)]
cast fixes for isFOO
Erez Zadok [Wed, 14 Sep 2005 02:53:09 +0000 (02:53 +0000)]
* mk-amd-map/mk-amd-map.c (read_file_file), libamu/util.c
(strsplit), libamu/hasmntopt.c (nextmntopt), amd/sun_map.c
(sun_entry2amd), amd/sun2amd.c (sun2amd_convert_convert),
amd/mapc.c (mapc_add_kv), amd/info_file.c (file_search_or_reload),
amd/info_exec.c (exec_parse_qanswer): cast isspace() arg to
unsigned char, which is safer as per Christos.
Erez Zadok [Wed, 14 Sep 2005 00:27:55 +0000 (00:27 +0000)]
no trailing whitespaces
Erez Zadok [Wed, 14 Sep 2005 00:26:42 +0000 (00:26 +0000)]
* amd/sun_map.c (sun_entry2amd): isspace takes an int, not a char.
* configure.in: keep a dummy unused AM_PROG_LEX, because old
Automake (1.6.3) looks for it if you refer to LEX in your
Makefile.am files. Silly thing, fixed in newer versions of
Automake (1.9.2).
Erez Zadok [Sun, 11 Sep 2005 19:06:40 +0000 (19:06 +0000)]
* Makefile.am (EXTRA_DIST_M4): add prog_{lex,yacc}.m4 to distro.
* configure.in: use new macros AMU_PROG_YACC and AMU_PROG_LEX.
* m4/macros/prog_yacc.m4: new macro to check if bison/yacc/byacc
exist, but exist with an error if none found.
* m4/macros/prog_lex.m4: new macro to check if f/lex exist, but
exit with an error if not found (am-utils requires f/lex).
Erez Zadok [Thu, 8 Sep 2005 02:36:55 +0000 (02:36 +0000)]
* 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.
Erez Zadok [Wed, 7 Sep 2005 23:39:30 +0000 (23:39 +0000)]
* minor new port: i386-pc-linux-deb3.1.
* 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.
Daniel Ottavio [Mon, 29 Aug 2005 03:42:31 +0000 (03:42 +0000)]
* amd/amd.h : oops, reverting bad changes
* amd/info_file.c : oops, reverting bad changes
* amd/mapc.c : oops, reverting bad changes
* amd/sun_map_parse.y : oops, reverting bad changes
Daniel Ottavio [Mon, 29 Aug 2005 03:24:25 +0000 (03:24 +0000)]
* amd/sun_map.c (sun_entry2amd) : Wipe out any trailing white
spaces or 'n' before passing strings to the parser.
Erez Zadok [Sun, 28 Aug 2005 00:37:17 +0000 (00:37 +0000)]
* libamu/xutil.c: amd_program_number is a u_long now.
(unregister_amq): if pmap_unset failed to de-register Amd from the
portmapper, print an error message.
(get_amd_program_number): returns a u_long now.
(set_amd_program_number): take a u_long now.
* include/am_utils.h: get_amd_program_number() returns u_long now.
set_amd_program_number() takes a u_long now.
* amq/amq.c: amd_program_number is a u_long, not int.
* amd/nfs_start.c (mount_automounter): when registering Amd with
the portmapper (for Amq service), don't fail if just one of TCP or
UDP failed to register, but only if both transports failed. That
way Amq can still contact Amd using the transport that did
register correctly. However, now, if both transports failed to
register, then set amd_state to "Done" so it would shutdown
cleanly.
* conf/transp/transp_{sockets,tli{}.c (amu_svc_register): better
comments.
Erez Zadok [Sun, 28 Aug 2005 00:18:43 +0000 (00:18 +0000)]
* libamu/xutil.c: debug_flags should always be initialized to
D_CONTROL (amq,daemon,fork).
(debug_option): allow setting initial immutable debug_flags via
amd.conf; afterward, prevent it (i.e., one tries it via "amq -D").