am-utils-6.1.git
20 years ago* conf/autofs/autofs_solaris_v2_v3.c (autofs_lookup_2_req)
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.

20 years ago* libamu/strutil.c (xstrlcat, xstrlcpy), include/am_utils.h
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)

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

20 years ago* include/am_compat.h (INADDR_NONE): define in a common location,
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.

20 years ago* amq/pawd.c (transform_dir): use TCP first, else UDP. Destroy
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.

20 years ago* libamu/hasmntopt.c (amu_hasmntopt): increase size of MNTMAXSTR
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.

20 years ago* amd/opts.c (expand_op): should check BUFSPACE for vlen+1, not
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*().

20 years ago* ALL: convert from using sprintf to the safer xsnprintf.
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().

20 years ago* libamu/Makefile.am: use strutil.c, not util.c. before-xstr
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.

20 years ago* m4/macros/header_templates.m4: templates for FFS.
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).

20 years ago* fsinfo/fsi_util.c (set_ether_if): use INADDR_NONE instead of
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.

20 years ago* include/am_defs.h: include <sys/statvfs.h> if it exists.
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.

20 years agoupdates from latest GNU versions
Erez Zadok [Sat, 1 Oct 2005 05:17:00 +0000 (05:17 +0000)]
updates from latest GNU versions

20 years ago* amq/pawd.c (find_mt): if the auto mount type is used, pawd could
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>.

20 years ago* README.attrcache: document test-attrcache script.
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.

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

20 years ago* hlfsd/stubs.c (nfsproc_getattr_2_svc, nfsproc_lookup_2_svc,
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.

20 years agoNEWS update
Erez Zadok [Mon, 19 Sep 2005 04:46:14 +0000 (04:46 +0000)]
NEWS update

20 years ago* README.attrcache: document netbsd's patchs to support noac.
Erez Zadok [Mon, 19 Sep 2005 04:00:57 +0000 (04:00 +0000)]
* README.attrcache: document netbsd's patchs to support noac.

20 years ago* README.attrcache: document netbsd's patch 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.

20 years ago* libamu/mount_fs.c (compute_nfs_attrcache_flags): cleanup the
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.

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

20 years agotypos
Erez Zadok [Sun, 18 Sep 2005 22:51:47 +0000 (22:51 +0000)]
typos

20 years agotypos
Erez Zadok [Sun, 18 Sep 2005 22:44:12 +0000 (22:44 +0000)]
typos

20 years ago* README.attrcache: new file documenting in detail OS bugs
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.

20 years ago* libamu/xutil.c (clocktime): newly implemented routine. Uses after-clocktime-fixes
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().

20 years ago* amd/nfs_subr.c (nfsproc_getattr_2_svc): initialize 'retry', just before-clocktime-fixes
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.

20 years agocast fixes for isFOO
Erez Zadok [Wed, 14 Sep 2005 14:14:37 +0000 (14:14 +0000)]
cast fixes for isFOO

20 years ago* mk-amd-map/mk-amd-map.c (read_file_file), libamu/util.c
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.

20 years agono trailing whitespaces
Erez Zadok [Wed, 14 Sep 2005 00:27:55 +0000 (00:27 +0000)]
no trailing whitespaces

20 years ago* amd/sun_map.c (sun_entry2amd): isspace takes an int, not a char.
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).

20 years ago* Makefile.am (EXTRA_DIST_M4): add prog_{lex,yacc}.m4 to distro.
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).

20 years ago* minor new port: powerpc-apple-darwin8.2.0.
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.

20 years ago* minor new port: i386-pc-linux-deb3.1.
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.

20 years ago* amd/amd.h : oops, reverting bad changes
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

20 years ago* amd/sun_map.c (sun_entry2amd) : Wipe out any trailing white
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.

20 years ago* libamu/xutil.c: amd_program_number is a u_long now.
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.

20 years ago* libamu/xutil.c: debug_flags should always be initialized to
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").

20 years ago* Makefile.am (DISTCLEANFILES): also remove amu_autofs_prot.h,
Erez Zadok [Sun, 28 Aug 2005 00:15:44 +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 agono trailing spaces
Erez Zadok [Sun, 28 Aug 2005 00:06:28 +0000 (00:06 +0000)]
no trailing spaces

20 years ago* amd/info_file.c (file_search_or_reload): Changed the key
Daniel Ottavio [Sat, 27 Aug 2005 19:14:18 +0000 (19:14 +0000)]
* amd/info_file.c (file_search_or_reload): Changed the key
variable that is passed to the sun_entry2amd.

* amd/mapc.c (mapc_add_kv): Add support for multiple entries
packed into one line.  This is a workaround for handling Sun style
mounts that contains multiple entries on one line "multi-mount
entries".  The sun2amd conversion tools will convert such entries
into type:=auto and pack each of the auto-entries into one line
separated by 'n'.  The mapc_add_kv function will now recognize
such entries and add then.

* amd/sun2amd.c (sun2amd_convert): Add print statement that
includes the line number during a parser failure.

* sun_map.c: Fix the AMD_MAP_PREF_KW definition.  Fix spelling.
(sun_mountpts2amd): removed this function
(sun_hsfs2amd): added some more comments
(sun_nfs2amd): moved support for multi-mount entries from this
function to sun_multi2amd().
(sun_multi2amd): New function to handle multi-mount entries.  This
function will convert the Sun version to an Amd type:=auto.  Each
extra auto entry will be appended to the same line separated by a
'n'.
(sun_entry2amd): Fixed a bug if-statement.  This function now
checks for multi-mount entries.

* amd/sun_map.h: Add a fstype member to the sun_mountpt struct.

* amd/sun_map_parse.y: Parser now supports fstype for multi-mount
entries.

* amd/sun_map_tok.l: No longer print the line and column number
when parsing.  This is because the parser is handed strings not
files.  Therefore, the line number will always be 1.  It is now up
to the higher level tools to echo line information during error
when they feed the parser.

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

Clean up function calls.

20 years ago* amd/sun_map.c: Clean up #defines
Daniel Ottavio [Sat, 20 Aug 2005 19:20:29 +0000 (19:20 +0000)]
* amd/sun_map.c: Clean up #defines
(sun_entry2amd) : Verify that the key and entry values passed are
not NULL.  Free the Sun entry struct when done.

* amd/sun_map.h: Add some "not implemented yet" comments to the
map and mmap structures.

* amd/sun_map_parse.y: Removed automap include functionality, it
will need to be re-implemented using a pre-processor.
Clean up fucntion calls.

20 years agoundo dummy
Erez Zadok [Wed, 17 Aug 2005 04:34:08 +0000 (04:34 +0000)]
undo dummy

20 years ago* amd/sun2amd.c (sun2amd_convert): If the input line is too long
Daniel Ottavio [Wed, 17 Aug 2005 04:12:06 +0000 (04:12 +0000)]
* amd/sun2amd.c (sun2amd_convert): If the input line is too long
don't return an error just null terminate and continue.  Fix bug:
the map key was not written.

* amd/sun_map.c: Add a new Amd device, and cdfs constant.
(sun_locations2amd): Write the NFS type keyword
for each host of the mount entry.  Add a space between each mount
location.
(sun_hsfs2amd): New function to support hsfs to
cdfs.
(sun_nfs2amd): Don't write the nfs type here.  Fix
comments.
(sun_entry2amd): Change function parameter var for
clarity.  Add support for hsfs.

* amd/sun_map_parse.y (sun_map_parse_read): Reset the entry list
after it has been returned.

20 years agodummy
Erez Zadok [Wed, 17 Aug 2005 03:54:10 +0000 (03:54 +0000)]
dummy

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

20 years agono trailing spaces
Erez Zadok [Tue, 16 Aug 2005 23:45:54 +0000 (23:45 +0000)]
no trailing spaces

20 years ago* amd/get_args.c (get_args): initialize debug_flags if they've
Erez Zadok [Tue, 16 Aug 2005 17:10:39 +0000 (17:10 +0000)]
* amd/get_args.c (get_args): initialize debug_flags if they've
never been set.

20 years ago* amd/mapc.c (mapc_create): mapc find takes 4th arg, the mount
Erez Zadok [Mon, 15 Aug 2005 21:49:44 +0000 (21:49 +0000)]
* amd/mapc.c (mapc_create): mapc find takes 4th arg, the mount
point.  Now, we can properly initialize the cfm structure of the
mnt_map, so we can have access to the flags (e.g., SUN_MAP_SYNTAX)
inside each info_*.c file.
(mapc_find): takes 4rd arg (mntpt) and passes it to calls to
mapc_create.
(root_newmap): pass NULL as 4th arg (mntpt).

* amd/amfs_generic.c (amfs_parse_defaults): remove ugly hack to
initialize map cfm structure (including flags) so late.

* amd/autil.c (amfs_mkcacheref): pass mount point as 4th arg to
mapc_find.

* amd/amfs_root.c (amfs_root_mount): pass NULL as new 4th arg to
mapc_find.

* amd/amd.h: extern for mapc_find changed to pass the mount point.

20 years agoupdate NEWS
Erez Zadok [Mon, 15 Aug 2005 08:20:50 +0000 (08:20 +0000)]
update NEWS

20 years ago* libamu/xutil.c: debug_flags should be unsigned.
Erez Zadok [Mon, 15 Aug 2005 08:05:29 +0000 (08:05 +0000)]
* libamu/xutil.c: debug_flags should be unsigned.
(dbg_opt): fix comments for updated debug_flags, add "defaults".
(debug_option): Don't allow "immutable" (D_IMMUTABLE) flags to be
changed, because they could mess Amd's state and only make sense
to be set once when Amd starts.  Currently these immutable flags
are "daemon," "fork," "amq," and "mtab."  If Amd not compiled with
debugging, set default "control" options (daemon,fork,amq).
(unregister_amq): proper use of D_AMQ.

* include/am_utils.h: define new D_BASIC, D_CONTROL, D_DEFAULT,
D_IMMUTABLE, and D_MASK.  Updated definitions of D_ALL and D_TEST.
debug_flags extern should be unsigned.

* scripts/amd.conf-sample (debug_options): mention new "defaults"
option.

* scripts/amd.conf.5,doc/am-utils.texi: document new debug option
"defaults" and properly explain the corrected meanings of
"daemon," "fork," "amq," and their "no" inversions.  Better
explain "all" and "test" too.  Correct default debug_mtab file to
/tmp/mtab.

* hlfsd/stubs.c (nfsproc_readlink_2_svc): proper use of D_FORK.

* hlfsd/homedir.c (homedir): proper use of D_FORK.

* hlfsd/hlfsd.c (main, hlfsd_init, cleanup): proper use of
D_DAEMON.

* amd/nfs_start.c (mount_automounter): proper use of D_AMQ.

* amd/amd.h (DEBUG_MNTTAB_FILE): change default to /tmp/mtab,
which is more common on more systems (instead of /tmp/mnttab).

* amd/amd.c (main): properly use D_DAEMON.

20 years agoconsistify
Erez Zadok [Mon, 15 Aug 2005 01:57:06 +0000 (01:57 +0000)]
consistify

20 years ago* libamu/xutil.c (xlog_opt): define new pseudo log_option named
Erez Zadok [Mon, 15 Aug 2005 01:54:49 +0000 (01:54 +0000)]
* libamu/xutil.c (xlog_opt): define new pseudo log_option named
"defaults", which is an alias for "fatal,error,user,warning,info".

* scripts/amd.conf.5, doc/am-utils.texi, amd/amd.8: document new
log_option "defaults".

* amq/amq.8: typo.  Arg name for -D is "debug_options" not
"log_options".

20 years agoAdded some comments to sun_map_parse_read().
Daniel Ottavio [Mon, 15 Aug 2005 01:37:33 +0000 (01:37 +0000)]
Added some comments to sun_map_parse_read().

* amd/amd.h: Added an extern from info_file.c called
file_read_line().  Previously this function was static but is now
used in sun2amd.c.

* amd/info_file.c: Changed the static function read_line() to a
public function called file_read_line().  This function is now
used in sun2amd.c

* amd/sun2amd.8: Filled in the contents of this man page.  This is
a conversion utility that converts Sun maps to Amd maps.

* amd/sun2amd.c: Implemented a working version of this utility.

20 years ago* libamu/xutil.c: make xlog_level static, and initialize it to
Erez Zadok [Mon, 15 Aug 2005 01:17:42 +0000 (01:17 +0000)]
* libamu/xutil.c: make xlog_level static, and initialize it to
XLOG_DEFAULT.
(cmdoption): take unsigned int as flags argument, and print any
errors as XLOG_ERROR (which cannot be turned off).
(switch_option): remove old code which disallowed you from turning
off flags that were set when Amd started up.  Now, you can turn
any log option on/off at start time or later on (via amq -x),
other than the two mandatory options (fatal+error).

* include/am_utils.h (XLOG_*): remove unused XLOG_DEFSTR.  Define
XLOG_MASK to mask out unused flag bits.  Define XLOG_DEFAULT to be
what it was before (fatal + error + user + warning + info), but
use the new mask.  Remove extern's for xlog_level and
xlog_level_init.  Change extern for cmdoption() to take an
unsigned flags argument.

* doc/am-utils.texi, amq/amq.8, scripts/amd.conf.5, amd/amd.8:
document mandatory log options
(fatal+error) which cannot be turned off and are always on by
default.  They must be on so that Amd can report crucial errors,
including those related to setting flags on/off.

* hlfsd/hlfsd.c (main): remove hack to initialize log_options.

* wire-test/wire-test.c: remove reference to unused xlog_level.

* amd/mapc.c (mapc_create): 'alloc' flags variable should be
unsigned.

* amd/get_args.c (get_args): no need for hack using
xlog_level_init.

20 years ago* amd/Makefile.am: separate sources common to amd and sun2amd into
Erez Zadok [Mon, 15 Aug 2005 00:22:36 +0000 (00:22 +0000)]
* amd/Makefile.am: separate sources common to amd and sun2amd into
a special, locally-built only, static library called libaminfo.a.

20 years agobetter comment
Erez Zadok [Sun, 14 Aug 2005 23:02:47 +0000 (23:02 +0000)]
better comment

20 years ago* libamu/xutil.c (real_plog, xsnprintf): call new xvsnprintf()
Erez Zadok [Sun, 14 Aug 2005 20:01:13 +0000 (20:01 +0000)]
* libamu/xutil.c (real_plog, xsnprintf): call new xvsnprintf()
wrapper function.
(xvsnprintf): new function which already gets a va_list.  This was
needed to avoid nesting va_list's (which apparently isn't
allowed).

* include/am_utils.h: prototype for new xvsnprintf wrapper.

20 years agoadd vers.m4 file
Erez Zadok [Sun, 14 Aug 2005 19:42:24 +0000 (19:42 +0000)]
add vers.m4 file

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

The function sun_entry2amd's parameters were expanded to include

20 years ago* amd/info_file.c: add key to sun_entry2amd()'s parameters
Daniel Ottavio [Sun, 14 Aug 2005 04:46:10 +0000 (04:46 +0000)]
* amd/info_file.c: add key to sun_entry2amd()'s parameters

* amd/info_hesiod.c: add key to sun_entry2amd()'s parameters

* amd/info_ldap.c: add key to sun_entry2amd()'s parameters

* amd/info_ndbm.c: add key to sun_entry2amd()'s parameters

* amd/info_nis.c: add key to sun_entry2amd()'s parameters

* amd/info_nisplus.c: add key to sun_entry2amd()'s parameters

* amd/sun_map.c: New functions to support sun translation to amd.
The function sun_entry2amd's parameters where expanded to include
the key value.  sun_entry_2amd() now returns NULL on error.

* amd/sun_map.h: Expand sun_entry2amd's parameters to include key
value.

* amd/sun_map_parse.y: Change how file system types are parsed out
of the list of options for each entry.  The previous way was not
working properly so now we just look for the 'fstype' keyword in
each option.  If it exists we copy its key value.

20 years ago* amd/sun_map_parse.y: instead of using a custom FOO_alloc()
Erez Zadok [Fri, 12 Aug 2005 02:28:38 +0000 (02:28 +0000)]
* amd/sun_map_parse.y: instead of using a custom FOO_alloc()
function, use Amd's CALLOC(struct FOO) macro.

* amd/sun_map.h: remove extern definitions to functions no longer
needed.

* amd/sun_map.c: removed superfluous *_alloc() functions, some of
which caused conflicts with same-named symbols in the parser
(since we rename 'yyalloc' to 'sun_map_alloc').

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

20 years ago* amd/Makefile.am: f/lex libraries are incompatible with multiple
Erez Zadok [Thu, 11 Aug 2005 10:44:52 +0000 (10:44 +0000)]
* amd/Makefile.am: f/lex libraries are incompatible with multiple
scanners, so don't link Amd with libl.a/libfl.a.

20 years ago* amd/sun_map_tok.l: Clean up regular expression so HPUX stops
Daniel Ottavio [Thu, 11 Aug 2005 02:21:46 +0000 (02:21 +0000)]
* amd/sun_map_tok.l: Clean up regular expression so HPUX stops
whining.

20 years ago* amd/sun_map_parse.y: Moved license below special yacc bracket to
Daniel Ottavio [Wed, 10 Aug 2005 01:39:19 +0000 (01:39 +0000)]
* amd/sun_map_parse.y: Moved license below special yacc bracket to
be portable with HPUX's yacc.  Clean up externs.

* amd/sun_map_tok.l: Moved license below special lex bracket to be
portable with HPUX's lex.  Fixed definitions to allow for a
non-flex lex to parse strings instead of files.  Added some casts
to strlcpy usage to silence warnings.  Moved the % options because
HPUX was complaining,

20 years ago* amd/sun_map_tok.l: Applied some definition goop to handle the
Daniel Ottavio [Tue, 9 Aug 2005 03:28:00 +0000 (03:28 +0000)]
* amd/sun_map_tok.l: Applied some definition goop to handle the
ECHO symbol that lex defines.  This symbol causes problems on
RedHat-EL-powerPC platforms.  Replaced strncpy with strlcpy.
Renamed the function sun_map_yyinput to sun_map_input.  This
function is a utility function that is not generated by lex.
Therefore, the 'yy' may cause confusion.

 LocalWords:  Erez

20 years ago* amd/sun_map_tok.l: allocate more output slots so lex scanners
Erez Zadok [Mon, 8 Aug 2005 19:36:45 +0000 (19:36 +0000)]
* amd/sun_map_tok.l: allocate more output slots so lex scanners
don't run out of memory.

* amd/sun_map_parse.y: declare extern for sun_map_parse().

* libamu/xutil.c (xsnprintf): ensure proper comparisons between
signed and unsigned quantities.

20 years ago* libamu/util.c, amd/autil.c (strsplit): moved strsplit() function
Erez Zadok [Sun, 7 Aug 2005 03:43:19 +0000 (03:43 +0000)]
* libamu/util.c, amd/autil.c (strsplit): moved strsplit() function
from Amd code to to libamu, so sun2amd could use it.

* amd/Makefile.am (sbin_PROGRAMS): build sun2amd binary and man
page.
(EXTRA_sun2amd_OBJECTS): sun2amd needs to link with all info_*.c files

* amd/sun2amd.8: placeholder for man page.

* amd/sun2amd.c: placeholder for C version of translator from Sun
syntax maps to Amd maps.

* */*.[0-9]: include file name in nroff source comment.

20 years ago* ALL: use '0' properly when assigning or passing it to functions.
Erez Zadok [Sun, 7 Aug 2005 03:03:41 +0000 (03:03 +0000)]
* ALL: use '0' properly when assigning or passing it to functions.
If in the context pointer, use NULL.  If in the context of a
single char (say within a string), the use '0'.  This is just to
make the code clearer.

20 years agoalign
Erez Zadok [Sun, 7 Aug 2005 01:42:34 +0000 (01:42 +0000)]
align

20 years ago* m4/macros/header_templates.m4: template for HAVE_MAP_SUN.
Erez Zadok [Sun, 7 Aug 2005 01:37:26 +0000 (01:37 +0000)]
* m4/macros/header_templates.m4: template for HAVE_MAP_SUN.

* amd/mapc.c (maptypes): add placeholder for Sun-syntax map
methods.

* amd/Makefile.am (EXTRA_amd_SOURCES): compile info_sun.c

* amd/info_sun.c: placeholder for meta info parser to get info
from Sun automount-style /etc/auto_master, possibly following
into multiple info services (via /etc/nsswitch.conf).

20 years ago* libamu/xutil.c (xsnprintf): if vsnprintf truncated the output
Erez Zadok [Sun, 7 Aug 2005 01:25:33 +0000 (01:25 +0000)]
* libamu/xutil.c (xsnprintf): if vsnprintf truncated the output
string to avoid an overflow, print an error.  Include some code to
break out any possible infinite loop between plog() and
xsnprintf().
(real_plog): now we can use (carefully) xsnprintf() directly.

20 years ago* amd/sun_map.[hc]: cleanup and formatting.
Erez Zadok [Sun, 7 Aug 2005 00:58:05 +0000 (00:58 +0000)]
* amd/sun_map.[hc]: cleanup and formatting.

20 years ago* amd/sun_map_parse.y: to match the literal string "fstype=" use
Erez Zadok [Sun, 7 Aug 2005 00:45:41 +0000 (00:45 +0000)]
* amd/sun_map_parse.y: to match the literal string "fstype=" use
double quotes, not single quotes.

20 years agoup comments, additional sun2amd conversion routines
Daniel Ottavio [Sun, 7 Aug 2005 00:33:12 +0000 (00:33 +0000)]
up comments, additional sun2amd conversion routines
* amd/get_args.c: replace usage of strlcat with xstrlcat

* include/am_utils.h: added 'extern void xstrlcat()'

* libamu/util.c: Added a xstrlcat() function that wraps the
syscall strlcat() so that string truncations can be logged.

20 years ago* amd/get_args.c (get_args): call conf_parse() using conf_in.
Erez Zadok [Sun, 7 Aug 2005 00:00:12 +0000 (00:00 +0000)]
* amd/get_args.c (get_args): call conf_parse() using conf_in.

* amd/amd.h: use renamed parser symbols (yyparse -> conf_parse;
yyin -> conf_in).

* ylwrap: Enhance wrapper to avoid the #define hacks done by Gdb,
and suggested by the Automake manual.  This enhanced parser will
prefix each conflicting yacc/lex symbol with a unique name
produced from INPUT.  For example, if INPUT is foo_parse.y, then
yyparse() becomes foo_parse().  This requires that both your .l
and corresponding .y files have the same prefix (e.g., foo_parse.y
and foo_tok.l).

* amd/Makefile.am (BUILT_SOURCES): define which yacc/lex .h/.c
source files are built automatically, and therefore should not be
in the distro (IMHO), and should be cleaned upon "make clean".
(amd_SOURCES): include new sun_map_parse.y and sun_map_tok.l files.

* ylwrap: new file needed because we have two parsers now.

* amd/sun_map_{parse.y,tok.l}: cleanup and formatting.

20 years agoylwrap is needed b/c we have two parsers
Erez Zadok [Sat, 6 Aug 2005 23:28:10 +0000 (23:28 +0000)]
ylwrap is needed b/c we have two parsers

20 years agoformat/spel changelog
Erez Zadok [Sat, 6 Aug 2005 20:43:18 +0000 (20:43 +0000)]
format/spel changelog

20 years ago* amd/sun_map.c: new soruce file for Sun style map support, clean up comments
Daniel Ottavio [Sat, 6 Aug 2005 20:18:04 +0000 (20:18 +0000)]
* amd/sun_map.c: new soruce file for Sun style map support, clean up comments
* amd/sun_map_parse.y: new yacc file for parsing Sun style maps,
fix copyright notice, put filename below license
* amd/sun_map_tok.l: new lex file for parsing Sun style maps, fix
copyright notice, put filename below license

20 years agothey don't cause symbol conflicts with each other.
Erez Zadok [Sat, 6 Aug 2005 20:00:56 +0000 (20:00 +0000)]
they don't cause symbol conflicts with each other.

enabled.  For each entry line that is passed to the function a
copy of the Amd equivalent is returned.

* amd/info_file.c (file_search, file_reload): pass mnt_map to
file_search_or_reload.
(file_search_or_reload): ensure that mnt_map is never NULL.

* amd/info_nis.c (nis_search): call sun_entry2amd() if
sun_map_syntax=yes.

* amd/info_ldap.c (amu_ldap_search): call sun_entry2amd() if
sun_map_syntax=yes.

* amd/info_hesiod.c (hesiod_search): call sun_entry2amd() if
sun_map_syntax=yes.

* amd/info_ndbm.c (ndbm_search): pass mnt_map to search_ndbm.
(search_ndbm): call sun_entry2amd() if sun_map_syntax=yes.

* amd/info_nisplus.c (nisplus_search): call sun_entry2amd() if
sun_map_syntax=yes.

* amd/info_exec.c (exec_search): pass mnt_map to
exec_parse_qanswer.
(exec_parse_qanswer): call sun_entry2amd() if sun_map_syntax=yes.

20 years ago* amd/Makefile.am: Added new files sun_map.h, sun_map.c,
Daniel Ottavio [Sat, 6 Aug 2005 19:45:07 +0000 (19:45 +0000)]
* amd/Makefile.am: Added new files sun_map.h, sun_map.c,
sun_map_parse.y, and sun_map_tok.l.  These files add support for
parsing Sun style maps.  The yacc/lex files needed custom rules so
they don't cause symbol conflicts with each other.

* amd/amd.h: Added "#define INFO_MAX_LINE_LEN" that specifies the
line limit for info services.

* amd/info_exec.c: Replaced MAX_LINE_LEN with INFO_MAX_LINE_LEN

* amd/info_file.c: Replaced MAX_LINE_LEN with INFO_MAX_LINE_LEN,
added support for parsing Sun style maps.  The support for Sun
maps is done using the sun_entry2amd() function.  This function is
called for each entry line that is read only when Sun parsing is
enabled.  For each entry line that is passed to the function a copy of
the Amd equivalent is returned.

* amd/sun_map.h: new header file for Sun style map support

* amd/sun_map.c: new soruce file for Sun style map support

* amd/sun_map_parse.y: new yacc file for parsing Sun style maps

* amd/sun_map_tok.l: new lex file for parsing Sun style maps

20 years ago* doc/am-utils.texi (sun_map_syntax Parameter): document new
Erez Zadok [Sat, 6 Aug 2005 18:58:45 +0000 (18:58 +0000)]
* doc/am-utils.texi (sun_map_syntax Parameter): document new
common parameter.

* scripts/amd.conf.5: selectors_in_defaults is a common parameter,
not just [global].  Use consistent capitalization of Amd/Amq.
Document new sun_map_syntax parameter.

* scripts/amd.conf-sample: properly list all of the parameters
which are common to both the [global] and the per-map sections.
(sun_map_syntax): example of new parameter.

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

* amd/conf.c ({ropt,gopt}_sun_map_syntax): new function to parse
sun_map_syntax flag (global or per map).

* amd/amd.h (CFM_SUN_MAP_SYNTAX): new flag for users to say if the
map uses Sun automounter syntax.

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.

20 years ago* amd/srvr_nfs.c (find_nfs_srvr): don't blindly copy the hostent
Erez Zadok [Fri, 29 Jul 2005 10:47:19 +0000 (10:47 +0000)]
* 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.

20 years ago* amd/amd.h (FSF_FORCE_UNMOUNT): new flag used to indicate that a
Erez Zadok [Tue, 26 Jul 2005 03:31:08 +0000 (03:31 +0000)]
* 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).

20 years ago* libamu/xutil.c (switch_to_logfile): truncate a regular-file log
Erez Zadok [Tue, 26 Jul 2005 01:48:12 +0000 (01:48 +0000)]
* 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.

20 years ago* amd/conf.c (gopt_forced_unmounts): check Linux kernel version
Erez Zadok [Mon, 25 Jul 2005 23:49:41 +0000 (23:49 +0000)]
* 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.