diff options
author | obrien <obrien@FreeBSD.org> | 1998-11-14 03:11:37 +0000 |
---|---|---|
committer | obrien <obrien@FreeBSD.org> | 1998-11-14 03:11:37 +0000 |
commit | d9a3e6b7f346909cb3bf355119d588c1c35beb53 (patch) | |
tree | 0a9183234e55bb3195cf988d436e7cfea9b2b3d5 /contrib/amd | |
parent | 70b71c8c7acdd210992e7da0e1aff3283216bc75 (diff) | |
parent | c6e3533e1e31cbf25e04688d244a8fc2af2e1972 (diff) | |
download | FreeBSD-src-d9a3e6b7f346909cb3bf355119d588c1c35beb53.zip FreeBSD-src-d9a3e6b7f346909cb3bf355119d588c1c35beb53.tar.gz |
This commit was generated by cvs2svn to compensate for changes in r41142,
which included commits to RCS files with non-trunk default branches.
Diffstat (limited to 'contrib/amd')
-rw-r--r-- | contrib/amd/AUTHORS | 15 | ||||
-rw-r--r-- | contrib/amd/BUGS | 16 | ||||
-rw-r--r-- | contrib/amd/ChangeLog | 155 | ||||
-rw-r--r-- | contrib/amd/INSTALL | 5 | ||||
-rw-r--r-- | contrib/amd/MIRRORS | 9 | ||||
-rw-r--r-- | contrib/amd/NEWS | 16 | ||||
-rw-r--r-- | contrib/amd/README.y2k | 18 | ||||
-rw-r--r-- | contrib/amd/amd/amfs_auto.c | 1 | ||||
-rw-r--r-- | contrib/amd/amd/amfs_host.c | 6 | ||||
-rw-r--r-- | contrib/amd/amd/conf.c | 10 | ||||
-rw-r--r-- | contrib/amd/amd/info_nis.c | 30 | ||||
-rw-r--r-- | contrib/amd/amd/mapc.c | 24 | ||||
-rw-r--r-- | contrib/amd/amd/ops_autofs.c | 3 | ||||
-rw-r--r-- | contrib/amd/doc/am-utils.texi | 27 | ||||
-rw-r--r-- | contrib/amd/doc/stamp-vti | 6 | ||||
-rw-r--r-- | contrib/amd/doc/version.texi | 6 | ||||
-rw-r--r-- | contrib/amd/hlfsd/stubs.c | 2 | ||||
-rw-r--r-- | contrib/amd/include/am_utils.h | 1 | ||||
-rw-r--r-- | contrib/amd/libamu/clnt_sperrno.c | 147 | ||||
-rw-r--r-- | contrib/amd/libamu/xutil.c | 1 | ||||
-rw-r--r-- | contrib/amd/scripts/Makefile.am | 2 | ||||
-rw-r--r-- | contrib/amd/scripts/Makefile.in | 10 | ||||
-rwxr-xr-x | contrib/amd/scripts/fixrmtab.in | 24 | ||||
-rw-r--r-- | contrib/amd/tasks | 6 |
24 files changed, 504 insertions, 36 deletions
diff --git a/contrib/amd/AUTHORS b/contrib/amd/AUTHORS index e555a74..300b290 100644 --- a/contrib/amd/AUTHORS +++ b/contrib/amd/AUTHORS @@ -30,6 +30,8 @@ files. January 27, 1998: support pid files in the amd.conf file. Provide base name for hesiod zone files. Always use /etc/amd.conf if exists. +August 8, 1998: add detection support for NFS V.3 for NetBSD 1.3F. + * Hannes Reinecke <hare@MathI.UNI-Heidelberg.DE> Back in 1995, contributed code for linux. A new parser for file system @@ -89,6 +91,9 @@ options. Minor type wrt "ro" option in libamu/mount_fs.c. Added more fillers of mnttab options, for acdirmax, acdirmin, acregmax, acregmin, noac, grpid, nosuid, and actimo. +August 15, 1998: fix memory leak in processing of /defaults, and avoid +accessing uninitialized memory in osf1. + * Roman Hodek <Roman.Hodek@informatik.uni-erlangen.de> July 23, 1997: Got lots of patches from the Debian Linux folks, who fixed @@ -171,6 +176,9 @@ January 12, 1998: minor bug in output of amd -H. January 13, 1998: use case insensitive comparisons for variables that need it (such as all hostname related ones, and more). +July 20, 1998: don't leak memory in the private version of yp_all (when +vendor yp_all is bad). + * Fred Korz <korz@smarts.com> January 30, 1998: minor typo fixed to tftp example in am-utils.texi. @@ -186,5 +194,12 @@ allow startup script to redirect it. Set a temporary secure umask(0022) before writing log file and restore it afterwards. * Matthew Crosby <mcrosby@ms.com> + April 20, 1998: allow arbitrary number of interfaces in wire listing. +* David O'Brien <obrien@NUXI.com> + +September 4, 1998: bug fix to avoid overrunning hostname buffer, and minor +amd.conf man page typo correction. + + diff --git a/contrib/amd/BUGS b/contrib/amd/BUGS index 125714d..f05e49b 100644 --- a/contrib/amd/BUGS +++ b/contrib/amd/BUGS @@ -71,3 +71,19 @@ that nfsd is running. Normally these are not required. [4B] "Stefan Vogel" <vogel@physik.unizh.ch> reports that if your amq executable dump core unexpectedly, then it may be a bug in gcc 2.7.x. Upgrade to gcc 2.8.x or use IBM's xlC compiler. + + +(5) *-linux-gnu (RedHat Linux 5.1) + +There's a UDP file descriptor leak in libnsl in RedHat Linux 5.1. This +library part of glibc2. Am-utils currently declares redhat 5.1 systems as +having a "broken yp_all" and using an internal, slower, leak-free version. +The leak is known to the glibc maintainers and a fix from them is due soon, +but it is not yet in the glibc-2.0.7-19 RPM. + + +(6) rs6000-ibm-aix4.1.x + +A bug in libc results in an amq binary that doesn't work; amq -v dumps core +in xdr_string. There is no known fix (source code or vendor patch) at this +time. (Please let amd-dev know if you know of a fix.) diff --git a/contrib/amd/ChangeLog b/contrib/amd/ChangeLog index 3a05928..2c224e5 100644 --- a/contrib/amd/ChangeLog +++ b/contrib/amd/ChangeLog @@ -1,3 +1,158 @@ +1998-10-20 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu> + + ******************************************************************* + *** Released am-utils-6.0b1 *** + ******************************************************************* + +1998-10-18 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu> + + * mk-amd-map/mk-amd-map.c (main): use perror not strerror. + (main): set return type to int if no ndbm maps. + + * include/am_defs.h: avoid conflicts with <sys/mount.h> in 2.1 + kernels. + +1998-10-18 Erez Zadok <ezk@london.mcl.cs.columbia.edu> + + * A.i386-unknown-netbsd1.3.2/amu_nfs_prot.h: trim down and cleanup + for netbsd 1.3.2. + +1998-10-17 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu> + + * aux/configure.in: check for yp_all in libnsl, b/c redhat 5.1 + systems put NIS functions there. + + * mk-amd-map/mk-amd-map.c: patch from "David O'Brien" + <obrien@NUXI.com> merged in. Use POSIX -1 return code from + getopt(), not EOF. Use .db extentions for systems that use it, + instead of .{pag,dir}. + +1998-10-15 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu> + + * wire-test/wire-test.c, hlfsd/hlfsd.c, fixmount/fixmount.c, + amd/amd.c (main): avoid overrunning hostname buffer. Bug fix from + "David O'Brien" <obrien@NUXI.com>. + + * scripts/amd.conf.5: minor typo reported by "David O'Brien" + <obrien@NUXI.com> in .TH section of man page. + + * amd/info_nis.c (am_yp_all): don't leak key-val entries. Patch + from Thomas Richter <richter@chemie.fu-berlin.de>. + +1998-10-12 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu> + + * doc/am-utils.texi (Program Filesystem): minor typo fixed as per + Andreas Stolcke <stolcke@speech.sri.com>. + + * minor new ports: sparc64-unknown-linux-gnu, i386-pc-solaris2.7, + and sparc-sun-solaris2.7. + + * conf/mount/mount_freebsd3.c (mount_freebsd3): freebsd 3.0 is now + a 4.4lite kernel, and somethings were removed, such as + INITMOUNTNAMES. + + * amd/ops_autofs.c (autofs_lookuppn): don't leak memory while + processing /defaults. Free temporary opts. Patch from + dsr@mail.lns.cornell.edu (Daniel S. Riley) + + * amd/amfs_auto.c (amfs_auto_lookuppn): don't leak memory while + processing /defaults. Free temporary opts. Patch from + dsr@mail.lns.cornell.edu (Daniel S. Riley) + + * conf/mtab/mtab_osf.c (read_mtab): patch from + dsr@mail.lns.cornell.edu (Daniel S. Riley) not to access + uninitialized memory on Digital Unix. + +1998-10-09 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu> + + * aux/macros/{check_mtype_type,check_mtype_printf_type}.m4: most + systems now use "char *" as their mount type. + +1998-10-08 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu> + + * amd/conf.c (gopt_map_type, ropt_map_type): check if map type + exists. + + * amd/mapc.c (mapc_type_exists): function to test if a map of + certain type exists. + +1998-10-08 Erez Zadok <ezk@horatio.mcl.cs.columbia.edu> + + * aux/macros/{mount_headers,try_compile_anyfs,try_compile_nfs}.m4, + include/am_defs.h: Avoid a conflict in definitions of ntohl/htonl + in RH-5.1 sparc64 between <netinet/in.h> and + <linux/byteorder/generic.h> (2.1 kernels). + +1998-09-28 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu> + + * aux/macros/func_bad_yp_all.m4 (ac_cv_func_yp_all_clean): RedHat + 5.1 systems with glibc glibc-2.0.7-19 or below leak a UDP socket + from yp_all(). + +1998-09-25 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu> + + * conf/mount/mount_linux.c (parse_opts): check for pcfs support + only if autoconfigured. + +1998-09-18 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu> + + * Makefile.am (EXTRA_DIST): distribute README.yk2 file. + + * README.y2k: explain y2k compliance status of am-utils. + +1998-09-16 Erez Zadok <ezk@iguana.mcl.cs.columbia.edu> + + * amd/amfs_host.c (fetch_fhandle, amfs_host_fmount, + amfs_host_umounted): clnt_sperrno() may return a const. + +Sat Aug 8 23:28:32 1998 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu> + + * aux/configure.in: check for <nfs/nfsmount.h>, as per Christos + Zoulas. Turned on checking for mount options: async, synchronous, + deadthresh, leasterm, nqnfs, and readahead. + + * amd/info_nis.c: patch from christos@zoulas.com (Christos Zoulas) + to include prototype definition for nis_isup(). + +Sun Jul 19 18:50:10 1998 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu> + + * hlfsd/stubs.c (getcreds): force sscanf arg to u_long. + +Tue Jul 14 20:34:25 1998 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu> + + * released snapshot am-utils-6.0a17s1 + +Wed Jul 8 21:49:15 1998 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu> + + * aux/macros/host_macros.m4: all x86 hosts should have $arch be + i386, not i[456]86. + +Tue Jul 7 18:55:09 1998 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu> + + * aux/macros/{mount_headers,try_compile_anyfs,try_compile_nfs}.m4, + include/am_defs.h: include <linux/posix_types.h> before + <linux/fs.h> because on redhat 5.1, there is a bug (misuse) of + headers in <socketbits.h> (it defines _LINUX_TYPES_H instead of + __KERNEL_STRICT_NAMES). + + * aux/configure.in: check for <linux/posix_types.h> because it is + need for RedHat 5.1. + +Wed Jun 17 00:05:33 1998 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu> + + * scripts/Makefile.am (EXTRA_DIST): have fixrmtab generated from + .in as well, so it doesn't get removed by make clean. + +Tue Jun 16 22:00:15 1998 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu> + + * aux/macros/{check_fs_mntent.m4, check_mnttab_type.m4, + check_mount_type.m4}: redhat 5.1 puts some modules in + /lib/modules/preferred/. + +Wed May 13 16:33:57 1998 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu> + + * amd/ops_autofs.c (mount_autofs): cast pid to long. + Thu Apr 23 00:22:17 1998 Erez Zadok <ezk@shekel.mcl.cs.columbia.edu> ******************************************************************* diff --git a/contrib/amd/INSTALL b/contrib/amd/INSTALL index 7df423b..0907096 100644 --- a/contrib/amd/INSTALL +++ b/contrib/amd/INSTALL @@ -21,6 +21,7 @@ i386-pc-bsdi3.0 ezk ezk ezk i386-pc-bsdi3.1 ezk ezk ezk i386-pc-solaris2.5.1 ezk ezk ezk ezk i386-pc-solaris2.6 ezk ezk ezk ezk +i386-pc-solaris2.7 ezk ezk ezk ezk i386-unknown-freebsd2.1.0 ezk ezk ezk i386-unknown-freebsd2.2.1 ezk ezk ezk ezk i386-unknown-freebsd3.0 ezk ezk ezk ezk @@ -30,8 +31,10 @@ i386-unknown-netbsd1.3.1 ezk ezk ezk ezk i386-unknown-openbsd2.1 ezk ezk ezk ezk i486-ncr-sysv4.3.03 ezk ezk i486-pc-linux-gnulibc1 ezk ezk ezk ezk +i586-pc-linux-gnu ezk ezk ezk ezk i586-pc-linux-gnulibc1 ezk ezk ezk ezk i686-pc-linux-gnu ezk ezk ezk ezk +i686-pc-linux-gnulibc ezk ezk ezk ezk m68k-hp-hpux9.00 ezk[4] ezk[4] nrh/ezk m68k-next-nextstep3 ezk ezk ezk m68k-sun-sunos4.1.1 ezk ezk @@ -50,6 +53,7 @@ sparc-sun-solaris2.4 ezk ezk ezk ezk sparc-sun-solaris2.5 ezk ezk ezk ezk sparc-sun-solaris2.5.1 ezk ezk ezk ezk sparc-sun-solaris2.6 ezk ezk[2] ezk ezk +sparc-sun-solaris2.7 ezk ezk[2] ezk ezk sparc-sun-sunos4.1.1 ezk ezk ezk ezk sparc-sun-sunos4.1.3 ezk ezk ezk ezk sparc-sun-sunos4.1.3C ezk ezk ezk ezk @@ -57,6 +61,7 @@ sparc-sun-sunos4.1.3_U1 ezk ezk ezk ezk sparc-sun-sunos4.1.4 ezk ezk ezk ezk sparc-unknown-linux-gnulibc1 ezk ezk ezk ezk sparc-unknown-netbsd1.2E ezk ezk ezk +sparc64-unknown-linux-gnu ezk ezk ezk ezk EMAIL ID LEGEND: diff --git a/contrib/amd/MIRRORS b/contrib/amd/MIRRORS index 6ea3dbf..dba537f 100644 --- a/contrib/amd/MIRRORS +++ b/contrib/amd/MIRRORS @@ -11,12 +11,15 @@ U.S.A: New York (Primary Site): ftp://shekel.mcl.cs.columbia.edu/pub/am-utils Maintainer: ezk@cs.columbia.edu - Maryland: + Minnesota: ftp://ftp.cs.umn.edu/pub/AMD Maintainer: dokas@cs.umn.edu Virginia (Newport News): -* ftp://www.ferginc.com/pub/unix/am-utils + ftp://www.ferginc.com/pub/unix/am-utils Maintainer: Branson.Matheson@FergInc.com + Ohio (Kent State University): + ftp://info.mcs.kent.edu/pub/am-utils + Maintainer: root@mcs.kent.edu Europe: Germany: @@ -27,7 +30,7 @@ Europe: Maintainer: archive@ftp.sunet.se Sweden: ftp://ftp.matematik.su.se/pub/mirrors/shekel.mcl.cs.columbia.edu/pub/am-utils - Maintainer: lifj@matematik.su.se + Maintainer: leifj@matematik.su.se UK: ftp://sunsite.org.uk/packages/am-utils Maintainer: lmjm@icparc.ic.ac.uk diff --git a/contrib/amd/NEWS b/contrib/amd/NEWS index f1df1e0..e56d47d 100644 --- a/contrib/amd/NEWS +++ b/contrib/amd/NEWS @@ -1,3 +1,19 @@ +*** Notes specific to am-utils version 6.0b1: + +- updated or minor new ports: + - *-pc-linux-gnu (glibc2 systems such as RedHat 5.1) + - sparc-sun-solaris2.7 + - i386-pc-solaris2.7 + - i386-unknown-freebsd3.0 (official release, post 4.4lite port) + - sparc64-unknown-linux-gnu (RH 5.1 on Sun Sparc Ultra) + +- bugs fixed: + - major memory leak in processing of /defaults + - core dump if map_type given in amd.conf doesn't exist + - memory leak in replacement yp_all + - don't access uninitialized memory in DU 4.0 + - other smaller bugs, see ChangeLog + *** Notes specific to am-utils version 6.0a16: - new ports: diff --git a/contrib/amd/README.y2k b/contrib/amd/README.y2k new file mode 100644 index 0000000..27ed553 --- /dev/null +++ b/contrib/amd/README.y2k @@ -0,0 +1,18 @@ +# -*- text -*- + AM-UTILS YEAR-2000 COMPLIANCE + +Most likely am-utils is y2k compliant. + +I do not know for sure because I have not certified am-utils myself, nor do +I have the time for it. I do not think that amd will be affected by y2k at +all, because it does not do anything with dates other than print the date on +the log file, in whatever format is provided by your os/libc --- especially +the ctime(3) call. + +However, on Friday, September 18th 1998, Matthew Crosby <mcrosby@ms.com> +reported that they evaluated 6.0a16 and found it to be compliant. + +Erez Zadok. +Maintainer, am-utils package and AMD-DEV list. +Email: amd-dev-owner@majordomo.cs.columbia.edu +WWW: http://www.cs.columbia.edu/~ezk/am-utils/ diff --git a/contrib/amd/amd/amfs_auto.c b/contrib/amd/amd/amfs_auto.c index 0530142..e7f8589 100644 --- a/contrib/amd/amd/amfs_auto.c +++ b/contrib/amd/amd/amfs_auto.c @@ -1128,6 +1128,7 @@ amfs_auto_lookuppn(am_node *mp, char *fname, int *error_return, int op) memset((char *) &ap, 0, sizeof(am_opts)); pt = ops_match(&ap, *sp, "", mp->am_path, "/defaults", mp->am_parent->am_mnt->mf_info); + free_opts(&ap); /* don't leak */ if (pt == &amfs_error_ops) { plog(XLOG_MAP, "failed to match defaults for \"%s\"", *sp); } else { diff --git a/contrib/amd/amd/amfs_host.c b/contrib/amd/amd/amfs_host.c index 6be259d..731c661 100644 --- a/contrib/amd/amd/amfs_host.c +++ b/contrib/amd/amd/amfs_host.c @@ -256,7 +256,7 @@ fetch_fhandle(CLIENT * client, char *dir, am_nfs_handle_t *fhp, u_long nfs_versi (SVC_IN_ARG_TYPE) &fhp->v2, tv); if (clnt_stat != RPC_SUCCESS) { - char *msg = clnt_sperrno(clnt_stat); + const char *msg = clnt_sperrno(clnt_stat); plog(XLOG_ERROR, "mountd rpc failed: %s", msg); return EIO; } @@ -392,7 +392,7 @@ amfs_host_fmount(mntfs *mf) (SVC_IN_ARG_TYPE) & exlist, tv2); if (clnt_stat != RPC_SUCCESS) { - char *msg = clnt_sperrno(clnt_stat); + const char *msg = clnt_sperrno(clnt_stat); plog(XLOG_ERROR, "host_fmount rpc failed: %s", msg); /* clnt_perror(client, "rpc"); */ error = EIO; @@ -673,7 +673,7 @@ amfs_host_umounted(am_node *mp) tv); if (clnt_stat != RPC_SUCCESS && clnt_stat != RPC_SYSTEMERROR) { /* RPC_SYSTEMERROR seems to be returned for no good reason ... */ - char *msg = clnt_sperrno(clnt_stat); + const char *msg = clnt_sperrno(clnt_stat); plog(XLOG_ERROR, "unmount all from %s rpc failed: %s", host, msg, clnt_stat); goto out; } diff --git a/contrib/amd/amd/conf.c b/contrib/amd/amd/conf.c index a97b1b1..0ec3259 100644 --- a/contrib/amd/amd/conf.c +++ b/contrib/amd/amd/conf.c @@ -534,6 +534,11 @@ gopt_map_options(const char *val) static int gopt_map_type(const char *val) { + /* check if map type exist */ + if (!mapc_type_exists(val)) { + fprintf(stderr, "conf: no such map type \"%s\"\n", val); + return 1; + } gopt.map_type = strdup((char *)val); return 0; } @@ -846,6 +851,11 @@ ropt_map_options(const char *val, cf_map_t *cfm) static int ropt_map_type(const char *val, cf_map_t *cfm) { + /* check if map type exist */ + if (!mapc_type_exists(val)) { + fprintf(stderr, "conf: no such map type \"%s\"\n", val); + return 1; + } cfm->cfm_type = strdup((char *)val); return 0; } diff --git a/contrib/amd/amd/info_nis.c b/contrib/amd/amd/info_nis.c index eceb73a..237f6f5 100644 --- a/contrib/amd/amd/info_nis.c +++ b/contrib/amd/amd/info_nis.c @@ -52,6 +52,7 @@ #include <am_defs.h> #include <amd.h> + /* * NIS+ servers in NIS compat mode don't have yp_order() */ @@ -61,6 +62,7 @@ static int has_yp_order = FALSE; int nis_reload(mnt_map *m, char *map, void (*fn) (mnt_map *, char *, char *)); int nis_search(mnt_map *m, char *map, char *key, char **val, time_t *tp); int nis_init(mnt_map *m, char *map, time_t *tp); +int nis_isup(mnt_map *m, char *map); int nis_mtime(mnt_map *m, char *map, time_t *tp); /* typedefs */ @@ -120,27 +122,20 @@ callback(int status, char *key, int kl, char *val, int vl, char *data) if (status == YP_TRUE) { - /* - * Add to list of maps - */ + /* add to list of maps */ char *kp = strnsave(key, kl); char *vp = strnsave(val, vl); + (*ncdp->ncd_fn) (ncdp->ncd_m, kp, vp); - /* - * We want more ... - */ + /* we want more ... */ return FALSE; } else { - /* - * NOMORE means end of map - otherwise log error - */ + /* NOMORE means end of map - otherwise log error */ if (status != YP_NOMORE) { - /* - * Check what went wrong - */ + /* check what went wrong */ int e = ypprot_err(status); #ifdef DEBUG @@ -378,16 +373,25 @@ am_yp_all(char *indomain, char *inmap, struct ypall_callback *incallback) incallback->data); if (j != FALSE) /* terminate loop */ break; + + /* + * We have to manually free all char ** arguments to yp_first/yp_next + * outval must be freed *before* calling yp_next again, outkey can be + * freed as outkey_old *after* the call (this saves one call to + * strnsave). + */ + XFREE(outval); outkey_old = outkey; outkeylen_old = outkeylen; i = yp_next(indomain, inmap, outkey_old, outkeylen_old, - &outkey, + &outkey, &outkeylen, &outval, &outvallen); + XFREE(outkey_old); } while (!i); #ifdef DEBUG if (i) { diff --git a/contrib/amd/amd/mapc.c b/contrib/amd/amd/mapc.c index de95e13..51ec7e1 100644 --- a/contrib/amd/amd/mapc.c +++ b/contrib/amd/amd/mapc.c @@ -350,10 +350,32 @@ mapc_showtypes(char *buf) /* + * Check if a map of a certain type exists. + * Return 1 (true) if exists, 0 (false) if not. + */ +int +mapc_type_exists(const char *type) +{ + map_type *mt; + + if (!type) + return 0; + for (mt = maptypes; + mt < maptypes + sizeof(maptypes) / sizeof(maptypes[0]); + mt++) { + if (STREQ(type, mt->name)) + return 1; + } + return 0; /* not found anywhere */ +} + + +/* * Add key and val to the map m. * key and val are assumed to be safe copies */ -void mapc_add_kv(mnt_map *m, char *key, char *val) +void +mapc_add_kv(mnt_map *m, char *key, char *val) { kv **h; kv *n; diff --git a/contrib/amd/amd/ops_autofs.c b/contrib/amd/amd/ops_autofs.c index a566fc4..14ab415 100644 --- a/contrib/amd/amd/ops_autofs.c +++ b/contrib/amd/amd/ops_autofs.c @@ -284,7 +284,7 @@ mount_autofs(char *dir, char *opts) /* * Make a ``hostname'' string for the kernel */ - sprintf(fs_hostname, "pid%ld@%s:%s", foreground ? mypid : getppid(), + sprintf(fs_hostname, "pid%ld@%s:%s", (long) (foreground ? mypid : getppid()), hostname, dir); /* @@ -1131,6 +1131,7 @@ autofs_lookuppn(am_node *mp, char *fname, int *error_return, int op) memset((char *) &ap, 0, sizeof(am_opts)); pt = ops_match(&ap, *sp, "", mp->am_path, "/defaults", mp->am_parent->am_mnt->mf_info); + free_opts(&ap); /* don't leak */ if (pt == &amfs_error_ops) { plog(XLOG_MAP, "failed to match defaults for \"%s\"", *sp); } else { diff --git a/contrib/amd/doc/am-utils.texi b/contrib/amd/doc/am-utils.texi index ca54503..7047d06 100644 --- a/contrib/amd/doc/am-utils.texi +++ b/contrib/amd/doc/am-utils.texi @@ -745,6 +745,10 @@ features. @c {Config} {Compile} {Amd} {NFS V.3} {Shlib} {Hlfsd} @tab yes @tab yes @tab yes @tab yes @tab yes @tab yes +@item @b{i386-pc-solaris2.7} +@c {Config} {Compile} {Amd} {NFS V.3} {Shlib} {Hlfsd} +@tab yes @tab yes @tab yes @tab yes @tab yes @tab yes + @item @b{i386-unknown-freebsd2.1.0} @c {Config} {Compile} {Amd} {NFS V.3} {Shlib} {Hlfsd} @tab yes @tab yes @tab yes @tab n/a @tab @tab @@ -781,7 +785,11 @@ features. @c {Config} {Compile} {Amd} {NFS V.3} {Shlib} {Hlfsd} @tab yes @tab yes @tab yes @tab n/a @tab yes @tab -@item @b{i586-pc-linux-gnulinc1} +@item @b{i586-pc-linux-gnu} +@c {Config} {Compile} {Amd} {NFS V.3} {Shlib} {Hlfsd} +@tab yes @tab yes @tab yes @tab n/a @tab yes @tab + +@item @b{i586-pc-linux-gnulibc1} @c {Config} {Compile} {Amd} {NFS V.3} {Shlib} {Hlfsd} @tab yes @tab yes @tab yes @tab n/a @tab yes @tab @@ -789,6 +797,10 @@ features. @c {Config} {Compile} {Amd} {NFS V.3} {Shlib} {Hlfsd} @tab yes @tab yes @tab yes @tab n/a @tab yes @tab +@item @b{i686-pc-linux-gnulibc1} +@c {Config} {Compile} {Amd} {NFS V.3} {Shlib} {Hlfsd} +@tab yes @tab yes @tab yes @tab n/a @tab yes @tab + @item @b{m68k-hp-hpux9.00} @c {Config} {Compile} {Amd} {NFS V.3} {Shlib} {Hlfsd} @tab yes @tab yes @tab yes @tab n/a @tab @tab @@ -865,6 +877,10 @@ features. @c {Config} {Compile} {Amd} {NFS V.3} {Shlib} {Hlfsd} @tab yes @tab yes @tab yes @tab yes @tab yes @tab yes +@item @b{sparc-sun-solaris2.7} +@c {Config} {Compile} {Amd} {NFS V.3} {Shlib} {Hlfsd} +@tab yes @tab yes @tab yes @tab yes @tab yes @tab yes + @item @b{sparc-sun-sunos4.1.1} @c {Config} {Compile} {Amd} {NFS V.3} {Shlib} {Hlfsd} @tab yes @tab yes @tab yes @tab n/a @tab yes @tab @@ -893,6 +909,10 @@ features. @c {Config} {Compile} {Amd} {NFS V.3} {Shlib} {Hlfsd} @tab yes @tab yes @tab yes @tab @tab @tab +@item @b{sparc64-unknown-linux-gnu} +@c {Config} {Compile} {Amd} {NFS V.3} {Shlib} {Hlfsd} +@tab yes @tab yes @tab yes @tab n/a @tab yes @tab + @end multitable See the @file{INSTALL} in the distribution for more specific details on @@ -3396,8 +3416,9 @@ if that is required in an argument. There is no way to escape or change the quote character. To run the program @samp{rvdmount} with a host name and filesystem as -arguments would be specified by @samp{mount:="/etc/rvdmount rvdmount -fserver $@{path@}"}. +arguments would be specified by +@samp{fs:=$@{autodir@}$@{path@};mount:="/etc/rvdmount rvdmount fserver +$@{fs@}"}. The first element in the array is taken as the pathname of the program to execute. The other members of the array form the argument vector to diff --git a/contrib/amd/doc/stamp-vti b/contrib/amd/doc/stamp-vti index 225ecdb..3240433 100644 --- a/contrib/amd/doc/stamp-vti +++ b/contrib/amd/doc/stamp-vti @@ -1,3 +1,3 @@ -@set UPDATED 22 April 1998 -@set EDITION 6.0a16 -@set VERSION 6.0a16 +@set UPDATED 19 October 1998 +@set EDITION 6.0b1 +@set VERSION 6.0b1 diff --git a/contrib/amd/doc/version.texi b/contrib/amd/doc/version.texi index 225ecdb..3240433 100644 --- a/contrib/amd/doc/version.texi +++ b/contrib/amd/doc/version.texi @@ -1,3 +1,3 @@ -@set UPDATED 22 April 1998 -@set EDITION 6.0a16 -@set VERSION 6.0a16 +@set UPDATED 19 October 1998 +@set EDITION 6.0b1 +@set VERSION 6.0b1 diff --git a/contrib/amd/hlfsd/stubs.c b/contrib/amd/hlfsd/stubs.c index 2ead112..ac97c0b 100644 --- a/contrib/amd/hlfsd/stubs.c +++ b/contrib/amd/hlfsd/stubs.c @@ -279,7 +279,7 @@ getcreds(struct svc_req *rp, uid_t *u, gid_t *g) case AUTH_DES: adp = (struct authdes_cred *) rp->rq_clntcred; *g = INVALIDID; /* some unknown group id */ - if (sscanf(adp->adc_fullname.name, "unix.%lu@", u) == 1) + if (sscanf(adp->adc_fullname.name, "unix.%lu@", (u_long *) u) == 1) break; /* fall through */ #endif /* HAVE_RPC_AUTH_DES_H */ diff --git a/contrib/amd/include/am_utils.h b/contrib/amd/include/am_utils.h index f4e0ccf..f088a4e 100644 --- a/contrib/amd/include/am_utils.h +++ b/contrib/amd/include/am_utils.h @@ -565,6 +565,7 @@ extern int make_nfs_auth(void); extern int make_rpc_packet(char *, int, u_long, struct rpc_msg *, voidp, XDRPROC_T_TYPE, AUTH *); extern int mapc_keyiter(mnt_map *, void(*)(char *, voidp), voidp); extern int mapc_search(mnt_map *, char *, char **); +extern int mapc_type_exists(const char *type); extern int mkdirs(char *, int); extern int mount_auto_node(char *, voidp); extern int mount_automounter(int); diff --git a/contrib/amd/libamu/clnt_sperrno.c b/contrib/amd/libamu/clnt_sperrno.c new file mode 100644 index 0000000..d3b48d1 --- /dev/null +++ b/contrib/amd/libamu/clnt_sperrno.c @@ -0,0 +1,147 @@ +/* + * Copyright (c) 1997-1998 Erez Zadok + * Copyright (c) 1990 Jan-Simon Pendry + * Copyright (c) 1990 Imperial College of Science, Technology & Medicine + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * Jan-Simon Pendry at Imperial College, London. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * %W% (Berkeley) %G% + * + * $Id: clnt_sperrno.c,v 5.2.2.1 1992/02/09 15:08:40 jsp beta $ + * + */ + +/* + * Early RPC seems to be missing these.. + * Extracted from the RPC 3.9 sources as indicated + */ + +/* @(#)clnt_perror.c 1.1 87/11/04 3.9 RPCSRC */ +/* + * Sun RPC is a product of Sun Microsystems, Inc. and is provided for + * unrestricted use provided that this legend is included on all tape + * media and as a part of the software program in whole or part. Users + * may copy or modify Sun RPC without charge, but are not authorized + * to license or distribute it to anyone else except as part of a product or + * program developed by the user. + * + * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE + * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR + * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. + * + * Sun RPC is provided with no support and without any obligation on the + * part of Sun Microsystems, Inc. to assist in its use, correction, + * modification or enhancement. + * + * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE + * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC + * OR ANY PART THEREOF. + * + * In no event will Sun Microsystems, Inc. be liable for any lost revenue + * or profits or other special, indirect and consequential damages, even if + * Sun has been advised of the possibility of such damages. + * + * Sun Microsystems, Inc. + * 2550 Garcia Avenue + * Mountain View, California 94043 + */ + +#ifdef HAVE_CONFIG_H +# include <config.h> +#endif /* HAVE_CONFIG_H */ +#include <am_defs.h> +#include <amu.h> + + +struct rpc_errtab { + enum clnt_stat status; + char *message; +}; + +static struct rpc_errtab rpc_errlist[] = +{ + {RPC_SUCCESS, + "RPC: Success"}, + {RPC_CANTENCODEARGS, + "RPC: Can't encode arguments"}, + {RPC_CANTDECODERES, + "RPC: Can't decode result"}, + {RPC_CANTSEND, + "RPC: Unable to send"}, + {RPC_CANTRECV, + "RPC: Unable to receive"}, + {RPC_TIMEDOUT, + "RPC: Timed out"}, + {RPC_VERSMISMATCH, + "RPC: Incompatible versions of RPC"}, + {RPC_AUTHERROR, + "RPC: Authentication error"}, + {RPC_PROGUNAVAIL, + "RPC: Program unavailable"}, + {RPC_PROGVERSMISMATCH, + "RPC: Program/version mismatch"}, + {RPC_PROCUNAVAIL, + "RPC: Procedure unavailable"}, + {RPC_CANTDECODEARGS, + "RPC: Server can't decode arguments"}, + {RPC_SYSTEMERROR, + "RPC: Remote system error"}, + {RPC_UNKNOWNHOST, + "RPC: Unknown host"}, +/* { RPC_UNKNOWNPROTO, + * "RPC: Unknown protocol" }, */ + {RPC_PMAPFAILURE, + "RPC: Port mapper failure"}, + {RPC_PROGNOTREGISTERED, + "RPC: Program not registered"}, + {RPC_FAILED, + "RPC: Failed (unspecified error)"} +}; + + +/* + * This interface for use by clntrpc + */ +char * +clnt_sperrno(enum clnt_stat stat) +{ + int i; + + for (i = 0; i < sizeof(rpc_errlist) / sizeof(struct rpc_errtab); i++) { + if (rpc_errlist[i].status == stat) { + return (rpc_errlist[i].message); + } + } + return ("RPC: (unknown error code)"); +} diff --git a/contrib/amd/libamu/xutil.c b/contrib/amd/libamu/xutil.c index 15d2cee..35e7f91 100644 --- a/contrib/amd/libamu/xutil.c +++ b/contrib/amd/libamu/xutil.c @@ -797,6 +797,7 @@ amu_release_controlling_tty(void) #endif /* TIOCNOTTY */ #ifdef HAVE_SETSID + /* XXX: one day maybe use vhangup(2) */ if (setsid() < 0) { plog(XLOG_WARNING, "Could not release controlling tty using setsid(): %m"); } else { diff --git a/contrib/amd/scripts/Makefile.am b/contrib/amd/scripts/Makefile.am index 9ebd691..c438058 100644 --- a/contrib/amd/scripts/Makefile.am +++ b/contrib/amd/scripts/Makefile.am @@ -34,7 +34,7 @@ EXTRA_DIST = \ amd2sun.in \ ctl-amd.in \ ctl-hlfsd.in \ - fixrmtab \ + fixrmtab.in \ fix-amd-map.in \ lostaltmail.in \ wait4amd.in \ diff --git a/contrib/amd/scripts/Makefile.in b/contrib/amd/scripts/Makefile.in index 1c69cec..a20d846 100644 --- a/contrib/amd/scripts/Makefile.in +++ b/contrib/amd/scripts/Makefile.in @@ -1,4 +1,4 @@ -# Makefile.in generated automatically by automake 1.3.1 from Makefile.am +# Makefile.in generated automatically by automake 1.3.2 from Makefile.am # Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation @@ -106,7 +106,7 @@ EXTRA_DIST = \ amd2sun.in \ ctl-amd.in \ ctl-hlfsd.in \ - fixrmtab \ + fixrmtab.in \ fix-amd-map.in \ lostaltmail.in \ wait4amd.in \ @@ -122,7 +122,7 @@ CLEANFILES = $(sbin_SCRIPTS) $(bin_SCRIPTS) mkinstalldirs = $(SHELL) $(top_srcdir)/aux/mkinstalldirs CONFIG_HEADER = ../config.h CONFIG_CLEAN_FILES = am-eject amd2ldif amd2sun ctl-amd ctl-hlfsd expn \ -fix-amd-map lostaltmail wait4amd wait4amd2die +fixrmtab fix-amd-map lostaltmail wait4amd wait4amd2die SCRIPTS = $(bin_SCRIPTS) $(sbin_SCRIPTS) man1dir = $(mandir)/man1 @@ -133,7 +133,7 @@ NROFF = nroff DATA = $(sysconf_DATA) DIST_COMMON = Makefile.am Makefile.in am-eject.in amd2ldif.in \ -amd2sun.in ctl-amd.in ctl-hlfsd.in expn.in fix-amd-map.in \ +amd2sun.in ctl-amd.in ctl-hlfsd.in expn.in fix-amd-map.in fixrmtab.in \ lostaltmail.in wait4amd.in wait4amd2die.in @@ -163,6 +163,8 @@ ctl-hlfsd: $(top_builddir)/config.status ctl-hlfsd.in cd $(top_builddir) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= ./config.status expn: $(top_builddir)/config.status expn.in cd $(top_builddir) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= ./config.status +fixrmtab: $(top_builddir)/config.status fixrmtab.in + cd $(top_builddir) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= ./config.status fix-amd-map: $(top_builddir)/config.status fix-amd-map.in cd $(top_builddir) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= ./config.status lostaltmail: $(top_builddir)/config.status lostaltmail.in diff --git a/contrib/amd/scripts/fixrmtab.in b/contrib/amd/scripts/fixrmtab.in new file mode 100755 index 0000000..33b7bcf --- /dev/null +++ b/contrib/amd/scripts/fixrmtab.in @@ -0,0 +1,24 @@ +#!/bin/sh +# +# Invalidate /etc/rmtab entries for hosts named. +# Restart mountd for changes to take effect. +# +# usage: fixrmtab host1 host2 ... +# +# Package: am-utils-6.0 +# Author: Andreas Stolcke <stolcke@icsi.berkeley.edu> + +#set -x + +RMTAB=/etc/rmtab +TMP=/tmp/rmtab.$$ + +if [ ! -f /etc/rmtab ]; then + exit 0 +fi + +for host in $* +do + sed -e '/^'$host':/s/^./#/' $RMTAB > $TMP && cp $TMP $RMTAB +done +rm -f $TMP diff --git a/contrib/amd/tasks b/contrib/amd/tasks index a29b554..0b44340 100644 --- a/contrib/amd/tasks +++ b/contrib/amd/tasks @@ -62,3 +62,9 @@ through. amd.conf file (right now amd.conf overrides cmd-line options). - y2k compliance. + +- an un/install script for binaries + +- update README +add am-utils URL and COPYRIGHT to all distributed scripts and +sources and programs etc. |