am-utils-6.1.git
18 years ago* config.guess.long: don't use -q option to grep because some amd-6-1-stable
Erez Zadok [Fri, 13 Apr 2007 20:13:06 +0000 (20:13 +0000)]
* config.guess.long: don't use -q option to grep because some
systems don't support it.  Bug fix for solaris.

* amd/opts.c (expand_op): Don't call xstrlcpy() to truncate a
string.  It causes spurious xstrlcpy() syslog() errors.  Use
memcpy() and explicitly terminate the string.

18 years ago* updated copyright year to 2007 on all files.
Erez Zadok [Sat, 20 Jan 2007 20:35:12 +0000 (20:35 +0000)]
* updated copyright year to 2007 on all files.

18 years ago* minor new port: ia64-hp-hpux11.23
Erez Zadok [Thu, 28 Dec 2006 02:27:33 +0000 (02:27 +0000)]
* minor new port: ia64-hp-hpux11.23

* m4/macros/check_libwrap_severity.m4 (LIBS): also test if caller
needs to define rfc931_timeout.

* amd/sun2amd.c: define rfc931_timeout and allow/deny_severity for
libwrap.

* amd/amq_svc.c: some versions of libwrap require the caller to
define rfc931_timeout in addition to allow/deny_severity.

* amd/amfs_toplvl.c (amfs_toplvl_init): properly detect when
forced unmount functionality exists for all systems.

* libamu/mount_fs.c (compute_nfs_args): reset nfs_args_t->pathconf
only if field exists.

* conf/nfs_prot/nfs_prot_hpux11.h: prevent HPUX 11.23 from
including <tiuser> or <sys/tiuser> (TLI definitions are already
included from elsewhere).

* configure.in: detect nfs_args_t->pathconf field.

18 years ago* minor new port: i386-apple-darwin8.8.1.
Erez Zadok [Mon, 27 Nov 2006 05:29:18 +0000 (05:29 +0000)]
* minor new port: i386-apple-darwin8.8.1.

18 years ago* doc/am-utils.texi (Password maps): minor typo reported by
Erez Zadok [Tue, 31 Oct 2006 03:56:11 +0000 (03:56 +0000)]
* doc/am-utils.texi (Password maps): minor typo reported by
Christoph P. Kukulies.

18 years ago* minor new port: i386-pc-linux-fc6.
Erez Zadok [Thu, 26 Oct 2006 17:36:03 +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.

19 years ago* minor new port: i386-pc-solaris2.11-nexentaos (GNU/OpenSolaris).
Erez Zadok [Tue, 20 Jun 2006 19:04:00 +0000 (19:04 +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.

19 years ago******************************************************************* am-utils-6_1_5
Erez Zadok [Thu, 11 May 2006 17:28:49 +0000 (17:28 +0000)]
*******************************************************************
*** Released am-utils-6.1.5 ***
*******************************************************************

* 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.

19 years ago* configure.in: check if libc already includes dbm functionality
Erez Zadok [Tue, 2 May 2006 03:13:18 +0000 (03:13 +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.

19 years ago* configure.in: detect G/DBM support via gdbm_compat library
Erez Zadok [Fri, 21 Apr 2006 19:34:11 +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

19 years ago* scripts/amd.conf-sample, scripts/amd.conf.5, doc/am-utils.texi,
Erez Zadok [Fri, 21 Apr 2006 01:12:03 +0000 (01:12 +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.

19 years ago* amd/opts.c: Add support for optionally specifying the hostname
Erez Zadok [Wed, 19 Apr 2006 01:57:57 +0000 (01:57 +0000)]
* amd/opts.c: Add support for optionally specifying the hostname
to match against the netgroup in the netgrp and netgrpd selectors.

19 years ago* libamu/mtab.c (hasmntval): fix inverted meaning of error from
Erez Zadok [Sun, 16 Apr 2006 16:35:16 +0000 (16:35 +0000)]
* libamu/mtab.c (hasmntval): fix inverted meaning of error from
hasmntvalerr().

19 years agobetter fix
Erez Zadok [Fri, 14 Apr 2006 19:57:02 +0000 (19:57 +0000)]
better fix

19 years ago* libamu/mount_fs.c (compute_nfs_attrcache_flags): use new
Erez Zadok [Fri, 14 Apr 2006 19:51:21 +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.

19 years agogear up for 6.1.5 release
Erez Zadok [Fri, 14 Apr 2006 15:04:02 +0000 (15:04 +0000)]
gear up for 6.1.5 release

19 years ago* amd/amfs_generic.c (amfs_lookup_mntfs): fix use-after-free bug
Erez Zadok [Wed, 5 Apr 2006 15:16:25 +0000 (15:16 +0000)]
* amd/amfs_generic.c (amfs_lookup_mntfs): fix use-after-free bug
(Coverity).

19 years ago* doc/am-utils.texi, scripts/{amd.conf.5,amd.conf-sample}:
Erez Zadok [Tue, 28 Mar 2006 16:19:41 +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.

19 years ago* minor new port: i386-pc-linux-suse10.1 (beta 8).
Erez Zadok [Thu, 23 Mar 2006 02:43:36 +0000 (02:43 +0000)]
* minor new port: i386-pc-linux-suse10.1 (beta 8).

19 years ago* amd/am_ops.c (merge_opts): Remove useless check found by
Erez Zadok [Wed, 22 Mar 2006 17:25:08 +0000 (17:25 +0000)]
* amd/am_ops.c (merge_opts): Remove useless check found by
Coverity; xmalloc never returns NULL.

19 years ago* minor new ports: i386-pc-linux-fc5.
Erez Zadok [Tue, 21 Mar 2006 16:47:16 +0000 (16:47 +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).

19 years ago* libamu/wire.c: avoid potential dereferencing of a NULL pointer
Erez Zadok [Mon, 20 Mar 2006 16:59:21 +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).

19 years ago * amd/nfs_subr.c (mp_to_fh): fixed old-style filehandles--the pid
Ion Badulescu [Thu, 9 Mar 2006 02:47:46 +0000 (02:47 +0000)]
* amd/nfs_subr.c (mp_to_fh): fixed old-style filehandles--the pid
comparison was failing.

19 years ago* configure.in: properly test for either <gdbm/ndbm.h> or
Erez Zadok [Wed, 8 Mar 2006 22:16:48 +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.

19 years ago******************************************************************* am-utils-6_1_4
Erez Zadok [Fri, 10 Feb 2006 19:24:05 +0000 (19:24 +0000)]
*******************************************************************
*** Released am-utils-6.1.4 ***
*******************************************************************

19 years ago* doc/am-utils.texi (auto_attrcache Parameter): revise discussion
Erez Zadok [Thu, 5 Jan 2006 00:39:18 +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.

19 years ago* updated copyright year to 2006 on all files.
Erez Zadok [Mon, 2 Jan 2006 18:48:23 +0000 (18:48 +0000)]
* updated copyright year to 2006 on all files.

19 years agoi386-unknown-netbsdelf3.0 (RELEASE), and i386-unknown-openbsd3.8.
Erez Zadok [Tue, 27 Dec 2005 23:26:59 +0000 (23:26 +0000)]
i386-unknown-netbsdelf3.0 (RELEASE), and i386-unknown-openbsd3.8.

19 years ago* include/am_utils.h, conf/transp/transp_tli.c (amu_svc_register,
Erez Zadok [Tue, 20 Dec 2005 19:59:36 +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.

19 years agoignore
Erez Zadok [Tue, 20 Dec 2005 18:43:48 +0000 (18:43 +0000)]
ignore

19 years ago* minor new ports: i386-unknown-netbsdelf2.1,
Erez Zadok [Sat, 3 Dec 2005 20:37:14 +0000 (20:37 +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).

19 years ago* minor new port: i386-unknown-freebsd6.0 (RELEASE)
Erez Zadok [Wed, 9 Nov 2005 10:10:19 +0000 (10:10 +0000)]
* minor new port: i386-unknown-freebsd6.0 (RELEASE)

19 years ago* amd/amq_subr.c (amqproc_pawd_1_svc): repeatedly resolve path in
Erez Zadok [Wed, 26 Oct 2005 14:59:25 +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.

19 years ago* amq/pawd.c (transform_dir): resolve path repeatedly until
Erez Zadok [Wed, 26 Oct 2005 03:35:57 +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.

19 years agolongname, nowin95, shortname, user=N, group=N, mask=N, and
Erez Zadok [Thu, 20 Oct 2005 20:26:19 +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.

19 years ago* doc/am-utils.texi (opts Option): document new pcfs options
Erez Zadok [Wed, 19 Oct 2005 23:54:24 +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.

19 years ago* libamu/mount_fs.c (print_nfs_args): print nfs_args->addr
Erez Zadok [Tue, 18 Oct 2005 18:11:14 +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.

19 years ago* doc/am-utils.texi (nfs_vers, nfs_proto parameters): clarify and
Erez Zadok [Tue, 11 Oct 2005 16:50:23 +0000 (16:50 +0000)]
* doc/am-utils.texi (nfs_vers, nfs_proto parameters): clarify and
correct mistaken description of nfs_proto.

19 years agorelase 6.1.3 am-utils-6_1_3
Erez Zadok [Mon, 10 Oct 2005 17:15:32 +0000 (17:15 +0000)]
relase 6.1.3

19 years agonuke trailing spaces
Erez Zadok [Mon, 10 Oct 2005 16:47:03 +0000 (16:47 +0000)]
nuke trailing spaces

19 years ago* m4/macros/check_mnttab_type.m4: move the test for MOUNT_* to the
Erez Zadok [Sat, 8 Oct 2005 02:56:55 +0000 (02:56 +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.

19 years ago* m4/macros/check_varargs_macros.m4: rewrite macro so it'll
Erez Zadok [Fri, 7 Oct 2005 23:17:03 +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).

19 years ago* conf/autofs/autofs_solaris_v1.h: redefine
Erez Zadok [Fri, 7 Oct 2005 22:28:27 +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.

19 years ago* m4/macros/os_cflags.m4: remove hack that hardcodes pte_t=u_int.
Erez Zadok [Fri, 7 Oct 2005 21:24:26 +0000 (21:24 +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.

19 years ago* m4/macros/header_templates.m4: add missing templates for
Erez Zadok [Fri, 7 Oct 2005 20:34:18 +0000 (20:34 +0000)]
* m4/macros/header_templates.m4: add missing templates for
HAVE_EXTERN_GETDTABLESIZE, HAVE_EXTERN_GETWD, and
HAVE_EXTERN_UALARM.

19 years ago* amd/info_exec.c (exec_map_open): break assignment from inside
Erez Zadok [Fri, 7 Oct 2005 20:05:47 +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.

19 years ago* fsinfo/fsi_util.c (set_ether_if), amd/map.c (unmount_mp),
Erez Zadok [Fri, 7 Oct 2005 18:55:12 +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.

19 years agostandard usage and formatting
Erez Zadok [Fri, 7 Oct 2005 17:24:21 +0000 (17:24 +0000)]
standard usage and formatting

19 years ago* conf/autofs/autofs_solaris_v1.h, conf/autofs/autofs_solaris_v1.c
Erez Zadok [Fri, 7 Oct 2005 17:15:34 +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).

19 years ago* amq/pawd.c (find_mt, find_mlp): remove obsolete, inefficient
Erez Zadok [Fri, 7 Oct 2005 16:39:04 +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.

19 years ago* ltmain.sh, m4/macros/libtool.m4: update to libtool-1.5.20.
Erez Zadok [Fri, 7 Oct 2005 03:52:42 +0000 (03:52 +0000)]
* ltmain.sh, m4/macros/libtool.m4: update to libtool-1.5.20.
Fixes Tru64 bugs when using ksh.

19 years ago* amd/amfs_toplvl.c (amfs_toplvl_mount): break complex ifdef macro
Erez Zadok [Fri, 7 Oct 2005 03:45:03 +0000 (03:45 +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).

19 years ago* libamu/wire.c (print_wires): convert argument-less xsnprintf to
Erez Zadok [Fri, 7 Oct 2005 01:40:02 +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.

19 years ago* conf/autofs/autofs_solaris_v2_v3.c (autofs_lookup_2_req)
Erez Zadok [Fri, 7 Oct 2005 00:20:05 +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.

19 years ago* libamu/strutil.c (xstrlcat, xstrlcpy), include/am_utils.h
Erez Zadok [Thu, 6 Oct 2005 21:11:50 +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)

19 years agotypo that hpux-cc caught
Erez Zadok [Thu, 6 Oct 2005 20:33:31 +0000 (20:33 +0000)]
typo that hpux-cc caught

19 years ago* include/am_compat.h (INADDR_NONE): define in a common location,
Erez Zadok [Thu, 6 Oct 2005 20:18:22 +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.

19 years ago* amq/pawd.c (transform_dir): use TCP first, else UDP. Destroy
Erez Zadok [Thu, 6 Oct 2005 01:06:39 +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.

19 years ago* libamu/hasmntopt.c (amu_hasmntopt): increase size of MNTMAXSTR
Erez Zadok [Wed, 5 Oct 2005 23:31:08 +0000 (23:31 +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.

19 years ago* amd/opts.c (expand_op): should check BUFSPACE for vlen+1, not
Erez Zadok [Wed, 5 Oct 2005 07:52:17 +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*().

19 years ago* ALL: convert from using sprintf to the safer xsnprintf.
Erez Zadok [Wed, 5 Oct 2005 01:12:03 +0000 (01:12 +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().

19 years ago* include/am_utils.h: extern for xvsnprintf(). before-xstr-61
Erez Zadok [Mon, 3 Oct 2005 01:00:52 +0000 (01:00 +0000)]
* 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.

19 years ago* m4/macros/header_templates.m4: templates for FFS.
Erez Zadok [Sat, 1 Oct 2005 06:47:48 +0000 (06:47 +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).

19 years ago* fsinfo/fsi_util.c (set_ether_if): use INADDR_NONE instead of
Erez Zadok [Sat, 1 Oct 2005 05:43:33 +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.

19 years ago* include/am_defs.h: include <sys/statvfs.h> if it exists.
Erez Zadok [Sat, 1 Oct 2005 05:26:25 +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.

19 years ago* amq/pawd.c (find_mt): if the auto mount type is used, pawd could
Erez Zadok [Fri, 30 Sep 2005 03:40:16 +0000 (03:40 +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>.

19 years ago* README.attrcache: document test-attrcache script.
Erez Zadok [Fri, 30 Sep 2005 02:50:30 +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.

19 years agocomment space
Erez Zadok [Mon, 26 Sep 2005 06:02:50 +0000 (06:02 +0000)]
comment space

19 years ago* libamu/xutil.c (unregister_amq): repair broken meaning of D_AMQ,
Erez Zadok [Mon, 26 Sep 2005 05:29:55 +0000 (05:29 +0000)]
* 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>.

19 years ago* hlfsd/stubs.c (nfsproc_getattr_2_svc, nfsproc_lookup_2_svc,
Erez Zadok [Mon, 26 Sep 2005 05:17:16 +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.

19 years agoNEWS update am-utils-6_1_2_1
Erez Zadok [Mon, 19 Sep 2005 04:46:31 +0000 (04:46 +0000)]
NEWS update

19 years agoDocument netbsd's patchs to support noac.
Erez Zadok [Mon, 19 Sep 2005 04:01:05 +0000 (04:01 +0000)]
Document netbsd's patchs to support noac.

19 years agoDocument netbsd's patch to support noac.
Erez Zadok [Mon, 19 Sep 2005 03:36:26 +0000 (03:36 +0000)]
Document netbsd's patch to support noac.

19 years ago*** Released am-utils-6.1.2.1 ***
Erez Zadok [Mon, 19 Sep 2005 02:53:33 +0000 (02:53 +0000)]
*** Released am-utils-6.1.2.1 ***
*******************************************************************

* README.attrcache: Update status of freebsd and openbsd.

* 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.

*******************************************************************

19 years agofreebsd version typo
Erez Zadok [Sun, 18 Sep 2005 23:23:07 +0000 (23:23 +0000)]
freebsd version typo

19 years agotypo am-utils-6_1_2
Erez Zadok [Sun, 18 Sep 2005 22:51:51 +0000 (22:51 +0000)]
typo

19 years ago*******************************************************************
Erez Zadok [Sun, 18 Sep 2005 22:43:34 +0000 (22:43 +0000)]
*******************************************************************
*** Released am-utils-6.1.2 ***
*******************************************************************

19 years ago* README.attrcache: new file documenting in detail OS bugs
Erez Zadok [Sun, 18 Sep 2005 21:58:04 +0000 (21:58 +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.

19 years ago* libamu/xutil.c (clocktime): newly implemented routine. Uses after-clocktime-fixes-61-br
Erez Zadok [Sat, 17 Sep 2005 22:19:44 +0000 (22:19 +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().

19 years ago* minor new port: powerpc-apple-darwin8.2.0. before-clocktime-fixes-61-br
Erez Zadok [Thu, 8 Sep 2005 02:36:35 +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.

19 years ago* minor new port: i386-pc-linux-deb3.1.
Erez Zadok [Wed, 7 Sep 2005 23:38:22 +0000 (23:38 +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.

19 years ago* Makefile.am (DISTCLEANFILES): also remove amu_autofs_prot.h,
Erez Zadok [Sun, 28 Aug 2005 00:15:05 +0000 (00:15 +0000)]
* 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".

20 years ago* configure.in: wrap all LDAP and HESIOD tests in test whether
Erez Zadok [Thu, 25 Aug 2005 02:03:32 +0000 (02:03 +0000)]
* configure.in: wrap all LDAP and HESIOD tests in test whether
--with-OPT was used.

20 years agoone-liner vers.m4 file
Erez Zadok [Wed, 17 Aug 2005 03:39:00 +0000 (03:39 +0000)]
one-liner vers.m4 file

20 years ago* configure.in: sinclude([vers.m4]) version number file.
Erez Zadok [Tue, 16 Aug 2005 23:44:16 +0000 (23:44 +0000)]
* 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.

20 years ago* configure.in: keep AC_INIT on same line, for nightly snapshot
Erez Zadok [Thu, 11 Aug 2005 17:39:32 +0000 (17:39 +0000)]
* configure.in: keep AC_INIT on same line, for nightly snapshot
build script.

20 years ago* scripts/amd.conf.5: selectors_in_defaults is a common parameter,
Erez Zadok [Sat, 6 Aug 2005 18:57:23 +0000 (18:57 +0000)]
* 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.

20 years ago* cvs-server.txt: update instructions after branching 6.1-stable.
Erez Zadok [Sat, 6 Aug 2005 17:18:58 +0000 (17:18 +0000)]
* cvs-server.txt: update instructions after branching 6.1-stable.

20 years ago* cvs-server.txt: update instructions after branching 6.1-stable.
Erez Zadok [Sat, 6 Aug 2005 17:17:13 +0000 (17:17 +0000)]
* cvs-server.txt: update instructions after branching 6.1-stable.

20 years agostart 6.1.2-rc1 amd-61-62-branch-point
Erez Zadok [Wed, 3 Aug 2005 04:15:11 +0000 (04:15 +0000)]
start 6.1.2-rc1

20 years ago* libamu/xutil.c (xsnprintf): "unsafe" alternative to vsnprintf is am-utils-6_1_1
Erez Zadok [Wed, 3 Aug 2005 02:14:26 +0000 (02:14 +0000)]
* 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().

20 years ago*******************************************************************
Erez Zadok [Wed, 3 Aug 2005 01:11:15 +0000 (01:11 +0000)]
*******************************************************************
*** Released am-utils-6.1.1 ***
*******************************************************************

20 years ago* ALL: remove CVS ID and put actual file name in source.
Erez Zadok [Wed, 3 Aug 2005 00:35:34 +0000 (00:35 +0000)]
* ALL: remove CVS ID and put actual file name in source.

20 years ago* conf/autofs/*.[hc]: proper copyright headers.
Erez Zadok [Wed, 3 Aug 2005 00:19:20 +0000 (00:19 +0000)]
* conf/autofs/*.[hc]: proper copyright headers.

20 years ago* whitespace reformatting. Remove remaining '%W%' SCCS IDs.
Erez Zadok [Wed, 3 Aug 2005 00:01:34 +0000 (00:01 +0000)]
* whitespace reformatting.  Remove remaining '%W%' SCCS IDs.

20 years agosrvr_nfs.c RCS ID
Erez Zadok [Tue, 2 Aug 2005 23:56:00 +0000 (23:56 +0000)]
srvr_nfs.c RCS ID

20 years agoproper changelog date format
Erez Zadok [Tue, 2 Aug 2005 23:39:32 +0000 (23:39 +0000)]
proper changelog date format

20 years ago* amd/mntfs.c (free_mntfs): don't discard the last reference to an
Erez Zadok [Tue, 2 Aug 2005 22:48:28 +0000 (22:48 +0000)]
* 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.

20 years ago* conf/mtab/mtab_linux.c: removed unused code. Cleanup.
Erez Zadok [Tue, 2 Aug 2005 01:28:57 +0000 (01:28 +0000)]
* 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.

20 years ago* minor new port: i386-pc-linuxoldld-deb3.1.
Erez Zadok [Mon, 1 Aug 2005 21:45:17 +0000 (21:45 +0000)]
* 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.