This commit was generated by cvs2svn to compensate for changes in r51292,

which included commits to RCS files with non-trunk default branches.
This commit is contained in:
David E. O'Brien 1999-09-15 02:50:52 +00:00
commit 2e09733a0e
112 changed files with 4596 additions and 615 deletions

View File

@ -32,6 +32,10 @@ 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.
February 1, 1998: fixes for NetBSD to better detect its features.
September 4, 1999: assorted fixes for NetBSD 1.4+.
* Hannes Reinecke <hare@MathI.UNI-Heidelberg.DE>
Back in 1995, contributed code for linux. A new parser for file system
@ -112,6 +116,15 @@ February 24, 1998: lots of patches for ultrix 4.3 port.
February 28, 1998: lots of documentation fixes!
January 8, 1999: texi fixes, and more Ultrix 4.3 fixes, among others.
January 11, 1999: hesiod_isup function. Fix format errors in dlog/plog.
Remove obsolete or unnecessary files/macros. Don't report disabled file
systems. More misc fixes.
February 3, 1998: don't start autofs listener unless autofs maps were in
use.
* Jason Thorpe <thorpej@nas.nasa.gov>
August 25, 1997: make amd work when talking to NIS+ servers in NIS
@ -154,6 +167,8 @@ November 5, 1997: NFS v.3 support for AIX 4.2.1, which does *not* include
headers for this. Bill had to guess at the right structures, field names,
sizes, alignment, etc.
January 15, 1999: small ldap bug fixes.
* Stefan Vogel <vogel@physik-rzu.unizh.ch>
November 14, 1997: typo in the subscription instructions to amd-dev.
@ -215,3 +230,36 @@ of a looked up entry before unmounting it.
* Douglas K. Rand" <rand@aero.und.edu>
December 3, 1998: case insensitive host name match for nfsl.
* David Wolfskill <dhw@whistle.com>
January 28, 1999: don't turn on/off noconn option if it was already in that
state.
* Jeffrey C Honig <jch@BSDI.COM>
March 14, 1999: clean up more autogenerated files upon "make distclean".
March 15, 1999: avoid overly verbose NIS warning even on systems that don't
run NIS. On BSD systems, wire.c uses getifaddrs(), sysctl(), IRS routines,
and more fixes. Numerous IP packet security fixes.
March 16, 1999: documentation typos. new cdfs options. ufs structure
detection for bsdi4.
* Paul Balyoz <pbalyoz@sedona.ch.intel.com>
March 26, 1999: ensure lostaltmail displays Y2K compliant dates.
* Jon Peatfield <J.S.Peatfield@damtp.cam.ac.uk>
March 30, 1999: turn off incomplete NFS V.3 support in HPUX 10.20.
* Peter Breitenlohner <peb@mppmu.mpg.de>
July 24, 1999: patch for linux 2.2.x to work with older libc5 systems, and
nis_isup mis-logic fixes.
* Dale Talcott <aeh@quest.cc.purdue.edu>
July 26, 1999: added NFS3 support for AIX mounting.
* Christophe Kalt <Christophe-Kalt@deshaw.com>
July 14, 1999: add netgrpd() syntax function which uses FQHN.
* Andrew J. Korty <ajk@purdue.edu>
September 5, 1999: pawd works for type:=nfsl.

View File

@ -36,12 +36,35 @@ main()
exit(0);
}
It is possible that sufficiently newer version of libc for RH4.2 fix this
problem.
(3) mips-dec-ultrix4.3
Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> reports
[3A] At least the gcc 2.7.0 fixincludes-mangled <sys/utsname.h> needs a
[3A] One needs the Kernel Config Files (UDTBIN430) subset installed to
compile am-utils, otherwise essential header files (net/if.h, net/route.h,
rpcsvc/mount.h, rpcsvc/yp_prot.h, rpcsvc/ypclnt.h, sys/proc.h) are
missing.
[3B] It's probably impossible to build am-utils with DEC C on Ultrix V4.3.
This compiler is pseudo-ANSI only. Maybe the new ANSI C compiler in V4.3A
and beyond will do. I successfully used gcc 2.8.1.
[3C] You need to build against a recent libhesiod (I used 3.0.2) and
libresolv/lib44bsd (I used BIND 4.9.5-P1). The resolver routines in
libc seem to cause random memory corruption. It is necessary to specify
LIBS=-l44bsd. lib44bsd is a helper library of libresolv used to supply
functions like strdup which are missing on the host system. This isn't
currently autoconfiscated.
[3D] You need to configure with CONFIG_SHELL=/bin/sh5 /bin/sh5 buildall;
/bin/sh cannot handle the shell functions used in buildall and is both
buggy and slow.
[3E] At least the gcc 2.7.0 fixincludes-mangled <sys/utsname.h> needs a
forward declaration of struct utsname to avoid lots of gcc warnings:
RCS file: RCS/utsname.h,v
@ -58,9 +81,6 @@ diff -u -r1.1 utsname.h
#endif
#define __SYS_NMLN 32
[3B] It autoconfigures and compiles cleanly, but currently hangs after a
couple of hours without leaving any traces in the syslog output.
(4) powerpc-ibm-aix4.2.1.0

View File

@ -1,4 +1,4 @@
Copyright (c) 1997-1998 Erez Zadok
Copyright (c) 1997-1999 Erez Zadok
Copyright (c) 1989 Jan-Simon Pendry
Copyright (c) 1989 Imperial College of Science, Technology & Medicine
Copyright (c) 1989 The Regents of the University of California.

File diff suppressed because it is too large Load Diff

View File

@ -10,6 +10,7 @@ SYSTEM AUTOCONF COMPILE RUN SHLIB
alpha-dec-osf2.1 ezk ezk ezk !ezk
alpha-dec-osf4.0 ezk ezk dsr[3] ezk
alphaev5-unknown-linux-gnu ezk ezk finkel ezk
alphaev5-unknown-linux-gnu-rh5.2 ezk ezk ezk ezk
hppa1.0-hp-hpux11.00 ezk ezk ezk
hppa1.1-hp-hpux10.10 ezk ezk ezk ezk
hppa1.1-hp-hpux10.20 ezk ezk ezk ezk
@ -21,6 +22,7 @@ i386-pc-bsdi2.1 ezk ezk ezk !ezk
i386-pc-bsdi3.0 ezk ezk ezk !ezk
i386-pc-bsdi3.1 ezk ezk ezk !ezk
i386-pc-bsdi4.0 ezk ezk ezk ezk
i386-pc-bsdi4.0.1 ezk 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
@ -30,21 +32,34 @@ i386-unknown-freebsd2.2.6 ezk ezk ezk ezk
i386-unknown-freebsd2.2.7 ezk ezk ezk ezk
i386-unknown-freebsd2.2.8 ezk ezk ezk ezk
i386-unknown-freebsd3.0 ezk ezk ezk ezk
i386-unknown-freebsdelf3.0 ezk ezk ezk ezk
i386-unknown-freebsdelf3.1 ezk ezk ezk ezk
i386-unknown-freebsdelf3.2 ezk ezk ezk ezk
i386-unknown-freebsdelf4.0 ezk ezk ezk ezk
i386-unknown-netbsd1.2.1 ezk ezk ezk ezk
i386-unknown-netbsd1.3 ezk ezk ezk ezk
i386-unknown-netbsd1.3.1 ezk ezk ezk ezk
i386-unknown-netbsd1.3.2 ezk ezk ezk ezk
i386-unknown-netbsd1.3.3 ezk ezk ezk ezk
i386-unknown-netbsd1.4 ezk ezk ezk ezk
i386-unknown-openbsd2.1 ezk ezk ezk ezk
i386-unknown-openbsd2.2 ezk ezk ezk ezk
i386-unknown-openbsd2.3 ezk ezk ezk ezk
i386-unknown-openbsd2.4 ezk ezk ezk ezk
i386-unknown-openbsd2.5 ezk ezk ezk ezk
i486-ncr-sysv4.3.03 ezk ezk ezk
i486-pc-linux-gnu-rh6.0 ezk ezk ezk ezk
i486-pc-linux-gnulibc1 ezk ezk ezk ezk
i486-pc-linux-gnulibc1-rh4.2 ezk ezk ezk ezk
i486-pc-linux-gnuoldld ezk ezk ezk ezk
i586-pc-linux-gnu ezk ezk ezk ezk
i586-pc-linux-gnu-rh5.2 ezk ezk ezk ezk
i586-pc-linux-gnu-rh6.0 ezk ezk ezk ezk
i586-pc-linux-gnulibc1 ezk ezk ezk ezk
i586-pc-linux-gnulibc1-rh4.2 ezk ezk ezk ezk
i686-pc-linux-gnu ezk ezk ezk ezk
i686-pc-linux-gnu-rh5.2 ezk ezk ezk ezk
i686-pc-linux-gnu-rh6.0 ezk ezk ezk ezk
i686-pc-linux-gnulibc ezk ezk ezk ezk
i686-pc-linux-gnulibc1 ezk ezk ezk ezk
m68k-hp-hpux9.00 ezk[4] ezk[4] nrh/ezk

View File

@ -1,7 +1,7 @@
Begin3
Title: am-utils
Version: 6.0
Entered-date: 01JAN99
Version: 6.0.1
Entered-date: 08SEP99
Description: BSD Automounter Utilities
Replaces the old amd-upl102. Offers NFS V3 support, many
new features, and numerous ports. The home page for
@ -10,9 +10,9 @@ Keywords: amd amq hlfsd fsinfo wire-test fixmount mk-amd-map automount
Author: ezk@cs.columbia.edu (Erez Zadok)
Maintained-by: ezk@cs.columbia.edu (Erez Zadok)
Primary-site: shekel.mcl.cs.columbia.edu /pub/am-utils
1.6MB am-utils-6.0.tar.gz
1.6MB am-utils.tar.gz
1.6MB am-utils-snapshot.tar.gz
1.3MB am-utils-6.0.1.tar.gz
1.3MB am-utils.tar.gz
1.3MB am-utils-snapshot.tar.gz
Alternate-site: http://www.cs.columbia.edu/~ezk/am-utils/mirrors.html
Original-site: ftp.cs.columbia.edu /pub/amd
Platforms: all modern Unix systems

View File

@ -28,8 +28,8 @@ Europe:
Sweden:
ftp://ftp.sunet.se/pub/unix/admin/am-utils
Maintainer: archive@ftp.sunet.se
Sweden:
ftp://ftp.matematik.su.se/pub/mirrors/shekel.mcl.cs.columbia.edu/pub/am-utils
Sweden (Stockholm University, Math Depat):
ftp://mirror.matematik.su.se/pub/am-utils
Maintainer: leifj@matematik.su.se
UK:
ftp://sunsite.org.uk/packages/am-utils

View File

@ -1,3 +1,63 @@
# -*- text -*-
*** Notes specific to am-utils version 6.0.1:
- updated or minor new ports:
i386-pc-bsdi4.0.1
i386-unknown-freebsdelf3.0
i386-unknown-freebsdelf3.1
i386-unknown-freebsdelf3.2
i386-unknown-freebsdelf4.0
i386-unknown-netbsd1.4
i386-unknown-openbsd2.5
powerpc-unknown-linux-gnu
- automount2amd added, a new script to convert Sun automount maps to Amd maps
- new map function netgrpd(ARG), same as netgrp() but matches FQHN
- 'ignore' is a generic mount option
- hesiod info service isup() function to check if service is up
- more Y2K fixes (see README.y2k for the full story)
- using alloca.c on systems that don't have it (hpux9 with /bin/cc)
- configure script reduced in size by using M4/sh loops instead of repeated
entries
- documentation updates
- too many bugs fixed to list here:
'addopts' option works with 'remopts' as well as 'opts'
AIX can perform NFS V.3 mounts explicitly
NIS is_up fixed, especially for NIS+ running in compatibility mode
amd -v incorrectly listing file systems that don't really work
amd's own mounts use reserved ports if possible
browsable directories works for Linux 2.3 (NFS cookies)
bsd44 systems check for isofs flags
bsd44 systems check for new options: norrio, gens, and extatt
buildall works better on Ultrix's /bin/sh
compile and build on Linux kernels 2.2 and newer
compile and build on RedHat Linux 6.0 (glibc 2.1)
compile and build on Solaris 7 (with or without vendor LDAP)
completely eliminate all of amd's amq -M code, when not enabled
correctly interpret failure code of unmount of type:=program
don't create autofs listener service unless used
don't list or process amq's -M option unless feature was turned on
don't turn on/off noconn option if it was already in that state
ldap info service: don't strcmp null strings
lostaltmail correctly sets struct sockaddr_in
make sure Linux systems have configured kernel headers
test for bsize/namlen fields in nfs_args (linux mount versions 2/3)
turn off broken NFS V.3 support for HPUX
use getifaddrs() on bsd44 systems makes wire.c more reliable
use matching NFS rsize/wsize on Linux 2.0 and 2.[123] kernels.
verify that RPC requests come from reserved, privileged local ports
warn when Linux kernel headers mismatch with running kernel
pawd works for type:=nfsl too
*** Notes specific to am-utils version 6.0:
- updated or minor new ports:

View File

@ -12,6 +12,17 @@ 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.
On March 26, 1999, Paul Balyoz <pbalyoz@sedona.ch.intel.com> submitted a
patch to lostaltmail which makes it print Y2K compliant dates. He used a
code scanner and manually "eyeballed" the code and could not find any more
problems. Paul's patch is included in am-utils-6.0.1s7 and newer versions.
Paul also said that other 2-digit years used in am-utils are "harmless."
NOTE: NONE OF THE PERSONS MENTIONED HERE, AUTHOR INCLUDED, ARE WILLING TO
CERTIFY AM-UTILS AS Y2K COMPLIANT. USE AT YOUR OWN RISK.
---
Erez Zadok.
Maintainer, am-utils package and AMD-DEV list.
Email: amd-dev-owner@majordomo.cs.columbia.edu

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 Erez Zadok
* Copyright (c) 1989 Jan-Simon Pendry
* Copyright (c) 1989 Imperial College of Science, Technology & Medicine
* Copyright (c) 1989 The Regents of the University of California.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: am_ops.c,v 1.2 1998/12/27 06:24:45 ezk Exp $
* $Id: am_ops.c,v 1.4 1999/03/13 17:03:26 ezk Exp $
*
*/
@ -164,7 +164,7 @@ ops_showamfstypes(char *buf)
if (ap[1])
strcat(buf, ", ");
l += strlen((*ap)->fs_type) + 2;
if (l > 60) {
if (l > 62) {
l = 0;
strcat(buf, "\n ");
}
@ -413,15 +413,32 @@ ops_match(am_opts *fo, char *key, char *g_key, char *path, char *keym, char *map
/*
* If addopts option was used, then append it to the
* current options.
* current options and remote mount options.
*/
if (fo->opt_addopts) {
char *mergedstr;
mergedstr = merge_opts(fo->opt_opts, fo->opt_addopts);
plog(XLOG_USER, "merge opts \"%s\" add \"%s\" => \"%s\"",
fo->opt_opts, fo->opt_addopts, mergedstr);
XFREE(fo->opt_opts);
fo->opt_opts = mergedstr;
if (STREQ(fo->opt_opts, fo->opt_remopts)) {
/* optimize things for the common case where opts==remopts */
char *mergedstr;
mergedstr = merge_opts(fo->opt_opts, fo->opt_addopts);
plog(XLOG_USER, "merge rem/opts \"%s\" add \"%s\" => \"%s\"",
fo->opt_opts, fo->opt_addopts, mergedstr);
XFREE(fo->opt_opts);
XFREE(fo->opt_remopts);
fo->opt_opts = mergedstr;
fo->opt_remopts = strdup(mergedstr);
} else {
char *mergedstr, *remmergedstr;
mergedstr = merge_opts(fo->opt_opts, fo->opt_addopts);
plog(XLOG_USER, "merge opts \"%s\" add \"%s\" => \"%s\"",
fo->opt_opts, fo->opt_addopts, mergedstr);
XFREE(fo->opt_opts);
fo->opt_opts = mergedstr;
remmergedstr = merge_opts(fo->opt_remopts, fo->opt_addopts);
plog(XLOG_USER, "merge remopts \"%s\" add \"%s\" => \"%s\"",
fo->opt_remopts, fo->opt_addopts, remmergedstr);
XFREE(fo->opt_remopts);
fo->opt_remopts = remmergedstr;
}
}
/*

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 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.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: amd.h,v 1.1.1.1 1998/11/05 02:04:51 ezk Exp $
* $Id: amd.h,v 1.3 1999/02/04 07:24:14 ezk Exp $
*
*/
@ -280,6 +280,7 @@ extern bool_t xdr_mountres3(XDR *xdrs, mountres3 *objp);
#ifdef HAVE_FS_AUTOFS
extern SVCXPRT *autofsxprt;
extern u_short autofs_port;
extern int amd_use_autofs;
extern int autofs_mount(am_node *mp);
extern int autofs_umount(am_node *mp);

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 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.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: amfs_auto.c,v 1.1.1.1 1998/11/05 02:04:46 ezk Exp $
* $Id: amfs_auto.c,v 1.4 1999/08/09 06:09:43 ezk Exp $
*
*/
@ -60,12 +60,13 @@
/* DEVELOPERS: turn this on for special debugging of readdir code */
#undef DEBUG_READDIR
#define DOT_DOT_COOKIE (u_int) 1
/****************************************************************************
*** STRUCTURES ***
****************************************************************************/
/****************************************************************************
*** FORWARD DEFINITIONS ***
****************************************************************************/
@ -609,8 +610,8 @@ amfs_auto_bgmount(struct continuation * cp, int mpe)
* Don't try logging the string from mf, since it may be bad!
*/
if (cp->fs_opts.opt_fs != mf->mf_fo->opt_fs)
plog(XLOG_ERROR, "use %s instead of 0x%x",
cp->fs_opts.opt_fs, mf->mf_fo->opt_fs);
plog(XLOG_ERROR, "use %s instead of 0x%lx",
cp->fs_opts.opt_fs, (unsigned long) mf->mf_fo->opt_fs);
mp->am_link = str3cat((char *) 0,
cp->fs_opts.opt_fs, "/", link_dir);
@ -695,7 +696,7 @@ amfs_auto_bgmount(struct continuation * cp, int mpe)
int i = atoi(mf->mf_fo->opt_delay);
if (i > 0 && clocktime() < (cp->start + i)) {
#ifdef DEBUG
dlog("Mount of %s delayed by %ds", mf->mf_mount, i - clocktime() + cp->start);
dlog("Mount of %s delayed by %lds", mf->mf_mount, (long) (i - clocktime() + cp->start));
#endif /* DEBUG */
this_error = -1;
}
@ -992,7 +993,7 @@ amfs_auto_lookuppn(am_node *mp, char *fname, int *error_return, int op)
if (error) {
#ifdef DEBUG
errno = error; /* XXX */
dlog("Returning error: %m", error);
dlog("Returning error: %m");
#endif /* DEBUG */
XFREE(fname);
ereturn(error);
@ -1321,7 +1322,7 @@ amfs_auto_readdir(am_node *mp, nfscookie cookie, nfsdirlist *dp, nfsentry *ep, i
* fairly unbelievable) then tough.
*/
#ifdef DEBUG
dlog("default search");
dlog("amfs_auto_readdir: default search");
#endif /* DEBUG */
/*
* Check for enough room. This is extremely approximate but is more
@ -1350,8 +1351,7 @@ amfs_auto_readdir(am_node *mp, nfscookie cookie, nfsdirlist *dp, nfsentry *ep, i
ep[1].ne_fileid = mp->am_gen;
ep[1].ne_name = "..";
ep[1].ne_nextentry = 0;
*(u_int *) ep[1].ne_cookie =
xp ? xp->am_gen : ~(u_int) 0;
*(u_int *) ep[1].ne_cookie = (xp ? xp->am_gen : DOT_DOT_COOKIE);
if (!xp)
dp->dl_eof = TRUE; /* by default assume readdir done */
@ -1359,12 +1359,12 @@ amfs_auto_readdir(am_node *mp, nfscookie cookie, nfsdirlist *dp, nfsentry *ep, i
return 0;
}
#ifdef DEBUG
dlog("real child");
dlog("amfs_auto_readdir: real child");
#endif /* DEBUG */
if (gen == ~(u_int) 0) {
if (gen == DOT_DOT_COOKIE) {
#ifdef DEBUG
dlog("End of readdir in %s", mp->am_path);
dlog("amfs_auto_readdir: End of readdir in %s", mp->am_path);
#endif /* DEBUG */
dp->dl_eof = TRUE;
dp->dl_entries = 0;
@ -1379,6 +1379,7 @@ amfs_auto_readdir(am_node *mp, nfscookie cookie, nfsdirlist *dp, nfsentry *ep, i
if (xp) {
int nbytes = count / 2; /* conservative */
int todo = MAX_READDIR_ENTRIES;
dp->dl_entries = ep;
do {
am_node *xp_next = next_nonerror_node(xp->am_osib);
@ -1386,7 +1387,7 @@ amfs_auto_readdir(am_node *mp, nfscookie cookie, nfsdirlist *dp, nfsentry *ep, i
if (xp_next) {
*(u_int *) ep->ne_cookie = xp_next->am_gen;
} else {
*(u_int *) ep->ne_cookie = ~(u_int) 0;
*(u_int *) ep->ne_cookie = DOT_DOT_COOKIE;
dp->dl_eof = TRUE;
}
@ -1444,7 +1445,7 @@ amfs_auto_readdir_browsable(am_node *mp, nfscookie cookie, nfsdirlist *dp, nfsen
* fairly unbelievable) then tough.
*/
#ifdef DEBUG
dlog("default search");
dlog("amfs_auto_readdir_browsable: default search");
#endif /* DEBUG */
/*
* Check for enough room. This is extremely approximate but is more
@ -1484,7 +1485,7 @@ amfs_auto_readdir_browsable(am_node *mp, nfscookie cookie, nfsdirlist *dp, nfsen
ep[1].ne_fileid = mp->am_gen;
ep[1].ne_name = "..";
ep[1].ne_nextentry = 0;
*(u_int *) ep[1].ne_cookie = ~(u_int) 0;
*(u_int *) ep[1].ne_cookie = DOT_DOT_COOKIE;
/*
* If map is browsable, call a function make_entry_chain() to construct
@ -1496,8 +1497,7 @@ amfs_auto_readdir_browsable(am_node *mp, nfscookie cookie, nfsdirlist *dp, nfsen
if (!te)
return 0;
#ifdef DEBUG_READDIR
j = 0;
for (ne=te; ne; ne=ne->ne_nextentry)
for (j=0,ne=te; ne; ne=ne->ne_nextentry)
plog(XLOG_INFO, "gen1 key %4d \"%s\"", j++, ne->ne_name);
#endif /* DEBUG_READDIR */
@ -1518,19 +1518,23 @@ amfs_auto_readdir_browsable(am_node *mp, nfscookie cookie, nfsdirlist *dp, nfsen
}
ep[1].ne_nextentry = te; /* append this chunk of "te" chain */
#ifdef DEBUG_READDIR
for (ne=te; ne; ne=ne->ne_nextentry)
for (j=0,ne=te; ne; ne=ne->ne_nextentry)
plog(XLOG_INFO, "gen2 key %4d \"%s\"", j++, ne->ne_name);
for (j=0,ne=ep; ne; ne=ne->ne_nextentry)
plog(XLOG_INFO, "gen2+ key %4d \"%s\" fi=%d ck=%d",
j++, ne->ne_name, ne->ne_fileid, *(u_int *)ne->ne_cookie);
plog(XLOG_INFO, "EOF is %d", dp->dl_eof);
#endif /* DEBUG_READDIR */
return 0;
} /* end of "if (gen == 0)" statement */
#ifdef DEBUG
dlog("real child");
dlog("amfs_auto_readdir_browsable: real child");
#endif /* DEBUG */
if (gen == ~(u_int) 0) {
if (gen == DOT_DOT_COOKIE) {
#ifdef DEBUG
dlog("End of readdir in %s", mp->am_path);
dlog("amfs_auto_readdir_browsable: End of readdir in %s", mp->am_path);
#endif /* DEBUG */
dp->dl_eof = TRUE;
dp->dl_entries = 0;
@ -1572,7 +1576,7 @@ amfs_auto_readdir_browsable(am_node *mp, nfscookie cookie, nfsdirlist *dp, nfsen
dp->dl_entries = ep;
#ifdef DEBUG_READDIR
plog(XLOG_INFO, "dl_entries=0x%x, te_next=0x%x, dl_eof=%d",
dp->dl_entries, te_next, dp->dl_eof);
(int) dp->dl_entries, (int) te_next, dp->dl_eof);
for (ne=te; ne; ne=ne->ne_nextentry)
plog(XLOG_INFO, "gen3 key %4d \"%s\"", j++, ne->ne_name);
#endif /* DEBUG_READDIR */

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 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.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: amfs_direct.c,v 1.1.1.1 1998/11/05 02:04:46 ezk Exp $
* $Id: amfs_direct.c,v 1.2 1999/01/10 21:53:41 ezk Exp $
*
*/

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 Erez Zadok
* Copyright (c) 1989 Jan-Simon Pendry
* Copyright (c) 1989 Imperial College of Science, Technology & Medicine
* Copyright (c) 1989 The Regents of the University of California.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: amfs_error.c,v 1.1.1.1 1998/11/05 02:04:46 ezk Exp $
* $Id: amfs_error.c,v 1.2 1999/01/10 21:53:41 ezk Exp $
*
*/

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 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.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: amfs_host.c,v 1.1.1.1 1998/11/05 02:04:46 ezk Exp $
* $Id: amfs_host.c,v 1.3 1999/01/13 23:30:57 ezk Exp $
*
*/
@ -224,7 +224,7 @@ fetch_fhandle(CLIENT * client, char *dir, am_nfs_handle_t *fhp, u_long nfs_versi
* get the filehandle. Use NFS version specific call.
*/
plog(XLOG_INFO, "fetch_fhandle: NFS version %d", nfs_version);
plog(XLOG_INFO, "fetch_fhandle: NFS version %d", (int) nfs_version);
#ifdef HAVE_FS_NFS3
if (nfs_version == NFS_VERSION3) {
memset((char *) &fhp->v3, 0, sizeof(fhp->v3));
@ -335,7 +335,7 @@ amfs_host_fmount(mntfs *mf)
*/
host = mf->mf_server->fs_host;
sin = *mf->mf_server->fs_ip;
plog(XLOG_INFO, "amfs_host_fmount: NFS version %d", mf->mf_server->fs_version);
plog(XLOG_INFO, "amfs_host_fmount: NFS version %d", (int) mf->mf_server->fs_version);
#ifdef HAVE_FS_NFS3
if (mf->mf_server->fs_version == NFS_VERSION3)
mnt_version = MOUNTVERS3;
@ -630,7 +630,7 @@ amfs_host_umounted(am_node *mp)
*/
host = mf->mf_server->fs_host;
sin = *mf->mf_server->fs_ip;
plog(XLOG_INFO, "amfs_host_umounted: NFS version %d", mf->mf_server->fs_version);
plog(XLOG_INFO, "amfs_host_umounted: NFS version %d", (int) mf->mf_server->fs_version);
#ifdef HAVE_FS_NFS3
if (mf->mf_server->fs_version == NFS_VERSION3)
mnt_version = MOUNTVERS3;
@ -674,7 +674,7 @@ amfs_host_umounted(am_node *mp)
if (clnt_stat != RPC_SUCCESS && clnt_stat != RPC_SYSTEMERROR) {
/* RPC_SYSTEMERROR seems to be returned for no good reason ... */
const char *msg = clnt_sperrno(clnt_stat);
plog(XLOG_ERROR, "unmount all from %s rpc failed: %s", host, msg, clnt_stat);
plog(XLOG_ERROR, "unmount all from %s rpc failed: %s", host, msg);
goto out;
}

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 Erez Zadok
* Copyright (c) 1989 Jan-Simon Pendry
* Copyright (c) 1989 Imperial College of Science, Technology & Medicine
* Copyright (c) 1989 The Regents of the University of California.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: amfs_inherit.c,v 1.1.1.1 1998/11/05 02:04:47 ezk Exp $
* $Id: amfs_inherit.c,v 1.2 1999/01/10 21:53:41 ezk Exp $
*
*/

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 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.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: amfs_link.c,v 1.1.1.1 1998/11/05 02:04:47 ezk Exp $
* $Id: amfs_link.c,v 1.2 1999/01/10 21:53:42 ezk Exp $
*
*/

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 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.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: amfs_linkx.c,v 1.1.1.1 1998/11/05 02:04:47 ezk Exp $
* $Id: amfs_linkx.c,v 1.2 1999/01/10 21:53:42 ezk Exp $
*
*/

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 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.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: amfs_nfsl.c,v 1.2 1998/12/27 06:24:45 ezk Exp $
* $Id: amfs_nfsl.c,v 1.3 1999/01/10 21:53:42 ezk Exp $
*
*/

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 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.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: amfs_nfsx.c,v 1.1.1.1 1998/11/05 02:04:47 ezk Exp $
* $Id: amfs_nfsx.c,v 1.2 1999/01/10 21:53:42 ezk Exp $
*
*/

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 Erez Zadok
* Copyright (c) 1989 Jan-Simon Pendry
* Copyright (c) 1989 Imperial College of Science, Technology & Medicine
* Copyright (c) 1989 The Regents of the University of California.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: amfs_program.c,v 1.1.1.1 1998/11/05 02:04:47 ezk Exp $
* $Id: amfs_program.c,v 1.4 1999/06/24 06:15:55 ezk Exp $
*
*/
@ -131,6 +131,8 @@ amfs_program_exec(char *info)
* Put stdout to stderr
*/
(void) fclose(stdout);
if (!logfp)
logfp = stderr; /* initialize before possible first use */
(void) dup(fileno(logfp));
if (fileno(logfp) != fileno(stderr)) {
(void) fclose(stderr);
@ -145,7 +147,7 @@ amfs_program_exec(char *info)
char **cp = xivec;
plog(XLOG_DEBUG, "executing (un)mount command...");
while (*cp) {
plog(XLOG_DEBUG, "arg[%d] = '%s'", cp - xivec, *cp);
plog(XLOG_DEBUG, "arg[%ld] = '%s'", (long) (cp - xivec), *cp);
cp++;
}
}

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 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.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: amfs_root.c,v 1.1.1.1 1998/11/05 02:04:47 ezk Exp $
* $Id: amfs_root.c,v 1.2 1999/01/10 21:53:43 ezk Exp $
*
*/

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 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.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: amfs_toplvl.c,v 1.2 1998/12/27 06:24:45 ezk Exp $
* $Id: amfs_toplvl.c,v 1.5 1999/02/04 07:24:14 ezk Exp $
*
*/
@ -177,9 +177,11 @@ mount_amfs_toplvl(char *dir, char *opts)
#endif /* HOSTNAMESZ */
/*
* Finally we can compute the mount genflags set above.
* Finally we can compute the mount genflags set above,
* and add any automounter specific flags.
*/
genflags = compute_mount_flags(&mnt);
genflags |= compute_automounter_mount_flags(&mnt);
/* setup the many fields and flags within nfs_args */
memmove(&anh.v2.fhs_fh, fhp, sizeof(*fhp));
@ -225,8 +227,10 @@ mount_amfs_toplvl(char *dir, char *opts)
/* This is it! Here we try to mount amd on its mount points */
#ifdef DEBUG
amuDebug(D_TRACE)
amuDebug(D_TRACE) {
print_nfs_args(&nfs_args, 0);
plog(XLOG_DEBUG, "Generic mount flags 0x%x", genflags);
}
#endif /* DEBUG */
error = mount_fs(&mnt, genflags, (caddr_t) &nfs_args, retry, type,
0, NULL, mnttab_file_name);

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 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.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: amfs_union.c,v 1.1.1.1 1998/11/05 02:04:47 ezk Exp $
* $Id: amfs_union.c,v 1.2 1999/01/10 21:53:43 ezk Exp $
*
*/

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 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.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: amq_svc.c,v 1.1.1.1 1998/11/05 02:04:47 ezk Exp $
* $Id: amq_svc.c,v 1.3 1999/08/24 21:31:06 ezk Exp $
*
*/
@ -59,7 +59,9 @@ amq_program_1(struct svc_req *rqstp, SVCXPRT *transp)
amq_string amqproc_mnttree_1_arg;
amq_string amqproc_umnt_1_arg;
amq_setopt amqproc_setopt_1_arg;
#ifdef ENABLE_AMQ_MOUNT
amq_string amqproc_mount_1_arg;
#endif /* ENABLE_AMQ_MOUNT */
} argument;
char *result;
xdrproc_t xdr_argument, xdr_result;
@ -109,11 +111,13 @@ amq_program_1(struct svc_req *rqstp, SVCXPRT *transp)
local = (amqsvcproc_t) amqproc_getmntfs_1_svc;
break;
#ifdef ENABLE_AMQ_MOUNT
case AMQPROC_MOUNT:
xdr_argument = (xdrproc_t) xdr_amq_string;
xdr_result = (xdrproc_t) xdr_int;
local = (amqsvcproc_t) amqproc_mount_1_svc;
break;
#endif /* ENABLE_AMQ_MOUNT */
case AMQPROC_GETVERS:
xdr_argument = (xdrproc_t) xdr_void;

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 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.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: autil.c,v 1.2 1998/12/27 06:24:46 ezk Exp $
* $Id: autil.c,v 1.3 1999/01/10 21:53:44 ezk Exp $
*
*/

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 Erez Zadok
* Copyright (c) 1989 Jan-Simon Pendry
* Copyright (c) 1989 Imperial College of Science, Technology & Medicine
* Copyright (c) 1989 The Regents of the University of California.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: clock.c,v 1.1.1.1 1998/11/05 02:04:47 ezk Exp $
* $Id: clock.c,v 1.3 1999/01/13 23:30:58 ezk Exp $
*
*/
@ -190,7 +190,8 @@ reschedule_timeouts(time_t now, time_t then)
if (cp->c_time >= now && cp->c_time <= then) {
plog(XLOG_WARNING, "job %d rescheduled to run immediately", cp->c_id);
#ifdef DEBUG
dlog("rescheduling job %d back %d seconds", cp->c_id, cp->c_time - now);
dlog("rescheduling job %d back %ld seconds",
cp->c_id, (long) (cp->c_time - now));
#endif /* DEBUG */
next_softclock = cp->c_time = now;
}

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 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.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: conf.c,v 1.2 1998/12/27 06:24:46 ezk Exp $
* $Id: conf.c,v 1.4 1999/02/04 07:24:15 ezk Exp $
*
*/
@ -550,6 +550,7 @@ gopt_mount_type(const char *val)
if (STREQ(val, "autofs")) {
#ifdef HAVE_FS_AUTOFS
gopt.flags |= CFM_MOUNT_TYPE_AUTOFS;
amd_use_autofs++;
return 0;
#else /* not HAVE_FS_AUTOFS */
fprintf(stderr, "conf: no autofs support available\n");
@ -867,6 +868,7 @@ ropt_mount_type(const char *val, cf_map_t *cfm)
if (STREQ(val, "autofs")) {
#ifdef HAVE_FS_AUTOFS
cfm->cfm_flags |= CFM_MOUNT_TYPE_AUTOFS;
amd_use_autofs++;
return 0;
#else /* not HAVE_FS_AUTOFS */
fprintf(stderr, "conf: no autofs support available\n");

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 Erez Zadok
* Copyright (c) 1989 Jan-Simon Pendry
* Copyright (c) 1989 Imperial College of Science, Technology & Medicine
* Copyright (c) 1989 The Regents of the University of California.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: conf_parse.y,v 1.1.1.1 1998/11/05 02:04:51 ezk Exp $
* $Id: conf_parse.y,v 1.3 1999/04/16 14:20:59 ezk Exp $
*
*/
@ -49,6 +49,22 @@
#include <am_defs.h>
#include <amd.h>
/* AIX requires this to be the first thing in the file. */
#ifndef __GNUC__
# if HAVE_ALLOCA_H
# include <alloca.h>
# else /* not HAVE_ALLOCA_H */
# ifdef _AIX
#pragma alloca
# else /* not _AIX */
# ifndef alloca
/* predefined by HP cc +Olibcalls */
voidp alloca();
# endif /* not alloca */
# endif /* not _AIX */
# endif /* not HAVE_ALLOCA_H */
#endif /* not __GNUC__ */
extern char *yytext;
extern int yylineno;
extern int yylex(void);

View File

@ -1,6 +1,6 @@
%{
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 Erez Zadok
* Copyright (c) 1989 Jan-Simon Pendry
* Copyright (c) 1989 Imperial College of Science, Technology & Medicine
* Copyright (c) 1989 The Regents of the University of California.
@ -39,7 +39,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: conf_tok.l,v 1.1.1.1 1998/11/05 02:04:51 ezk Exp $
* $Id: conf_tok.l,v 1.2 1999/01/10 21:53:45 ezk Exp $
*
*/

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 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.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: info_file.c,v 1.1.1.1 1998/11/05 02:04:49 ezk Exp $
* $Id: info_file.c,v 1.2 1999/01/10 21:53:45 ezk Exp $
*
*/

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 Erez Zadok
* Copyright (c) 1989 Jan-Simon Pendry
* Copyright (c) 1989 Imperial College of Science, Technology & Medicine
* Copyright (c) 1989 The Regents of the University of California.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: info_hesiod.c,v 1.1.1.1 1998/11/05 02:04:49 ezk Exp $
* $Id: info_hesiod.c,v 1.5 1999/02/04 07:24:15 ezk Exp $
*
*/
@ -58,10 +58,15 @@
#ifdef HAVE_HESIOD_INIT
/* bsdi3 does not define this extern in any header file */
extern char **hesiod_resolve(void *context, const char *name, const char *type);
extern int hesiod_init(void **context);
static voidp hesiod_context;
#endif /* HAVE_HESIOD_INIT */
/* forward declarations */
int amu_hesiod_init(mnt_map *m, char *map, time_t *tp);
int hesiod_search(mnt_map *m, char *map, char *key, char **pval, time_t *tp);
int hesiod_isup(mnt_map *m, char *map);
/*
* No easy way to probe the server - check the map name begins with "hesiod."
* Note: this name includes 'amu_' so as to not conflict with libhesiod's
@ -98,7 +103,8 @@ hesiod_search(mnt_map *m, char *map, char *key, char **pval, time_t *tp)
#endif /* not HAVE_HESIOD_INIT */
#ifdef DEBUG
dlog("hesiod_search(m=%x, map=%s, key=%s, pval=%x tp=%x)", m, map, key, pval, tp);
dlog("hesiod_search(m=%lx, map=%s, key=%s, pval=%lx tp=%lx)",
(unsigned long) m, map, key, (unsigned long) pval, (unsigned long) tp);
#endif /* DEBUG */
sprintf(hes_key, "%s.%s", key, map + HES_PREFLEN);
@ -161,3 +167,34 @@ hesiod_search(mnt_map *m, char *map, char *key, char **pval, time_t *tp)
return error;
#endif /* not HAVE_HESIOD_INIT */
}
/*
* Check if Hesiod is up, so we can determine if to clear the map or not.
* Test it by querying for /defaults.
* Returns: 0 if Hesiod is down, 1 if it is up.
*/
int
hesiod_isup(mnt_map *m, char *map)
{
int error;
char *val;
time_t mtime;
static int last_status = 1; /* assume up by default */
error = hesiod_search(m, map, "/defaults", &val, &mtime);
#ifdef DEBUG
dlog("hesiod_isup(%s): %s", map, strerror(error));
#endif /* DEBUG */
if (error != 0 && error != ENOENT) {
plog(XLOG_ERROR,
"hesiod_isup: error getting `/defaults' entry in map %s: %m", map);
last_status = 0;
return 0; /* Hesiod is down */
}
if (last_status == 0) { /* if was down before */
plog(XLOG_INFO, "hesiod_isup: Hesiod came back up for map %s", map);
last_status = 1;
}
return 1; /* Hesiod is up */
}

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 Erez Zadok
* Copyright (c) 1989 Jan-Simon Pendry
* Copyright (c) 1989 Imperial College of Science, Technology & Medicine
* Copyright (c) 1989 The Regents of the University of California.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: info_ldap.c,v 1.1.1.1 1998/11/05 02:04:49 ezk Exp $
* $Id: info_ldap.c,v 1.5 1999/08/22 05:12:50 ezk Exp $
*
*/
@ -182,7 +182,12 @@ amu_ldap_init(mnt_map *m, char *map, time_t *ts)
ALD *aldh;
CR *creds;
if (!STREQ(gopt.map_type, AMD_LDAP_TYPE)) {
/*
* XXX: by checking that map_type must be defined, aren't we
* excluding the possibility of automatic searches through all
* map types?
*/
if (!gopt.map_type || !STREQ(gopt.map_type, AMD_LDAP_TYPE)) {
return (ENOENT);
}
#ifdef DEBUG
@ -219,7 +224,7 @@ amu_ldap_init(mnt_map *m, char *map, time_t *ts)
if (get_ldap_timestamp(aldh->ldap, map, ts))
return (ENOENT);
#ifdef DEBUG
dlog("Got timestamp for map %s: %d\n", map, *ts);
dlog("Got timestamp for map %s: %ld\n", map, *ts);
#endif /* DEBUG */
return (0);
@ -277,7 +282,7 @@ get_ldap_timestamp(LDAP * ld, char *map, time_t *ts)
struct timeval tv;
char **vals, *end;
char filter[MAXPATHLEN];
int i, err, nentries = 0;
int i, err = 0, nentries = 0;
LDAPMessage *res, *entry;
tv.tv_sec = 3;
@ -299,7 +304,9 @@ get_ldap_timestamp(LDAP * ld, char *map, time_t *ts)
&res);
if (err == LDAP_SUCCESS)
break;
#ifdef DEBUG
dlog("Timestamp search timed out, trying again...\n");
#endif /* DEBUG */
}
if (err != LDAP_SUCCESS) {
@ -339,7 +346,7 @@ get_ldap_timestamp(LDAP * ld, char *map, time_t *ts)
err = ENOENT;
}
if (!*ts > 0) {
plog(XLOG_USER, "Nonpositive timestamp %d for map %s\n",
plog(XLOG_USER, "Nonpositive timestamp %ld for map %s\n",
*ts, map);
err = ENOENT;
}
@ -353,7 +360,7 @@ get_ldap_timestamp(LDAP * ld, char *map, time_t *ts)
ldap_msgfree(res);
ldap_msgfree(entry);
#ifdef DEBUG
dlog("The timestamp for %s is %d (err=%d)\n", map, *ts, err);
dlog("The timestamp for %s is %ld (err=%d)\n", map, *ts, err);
#endif /* DEBUG */
return (err);
}
@ -364,7 +371,7 @@ amu_ldap_search(mnt_map *m, char *map, char *key, char **pval, time_t *ts)
{
char **vals, filter[MAXPATHLEN];
struct timeval tv;
int i, err, nvals = 0, nentries = 0;
int i, err = 0, nvals = 0, nentries = 0;
LDAPMessage *entry, *res;
ALD *a = (ALD *) (m->map_data);
@ -452,7 +459,9 @@ amu_ldap_mtime(mnt_map *m, char *map, time_t *ts)
ALD *aldh = (ALD *) (m->map_data);
if (aldh == NULL) {
#ifdef DEBUG
dlog("LDAP panic: unable to find map data\n");
#endif /* DEBUG */
return (ENOENT);
}
if (amu_ldap_rebind(aldh)) {

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 Erez Zadok
* Copyright (c) 1989 Jan-Simon Pendry
* Copyright (c) 1989 Imperial College of Science, Technology & Medicine
* Copyright (c) 1989 The Regents of the University of California.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: info_ndbm.c,v 1.1.1.1 1998/11/05 02:04:49 ezk Exp $
* $Id: info_ndbm.c,v 1.2 1999/01/10 21:53:46 ezk Exp $
*
*/

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 Erez Zadok
* Copyright (c) 1989 Jan-Simon Pendry
* Copyright (c) 1989 Imperial College of Science, Technology & Medicine
* Copyright (c) 1989 The Regents of the University of California.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: info_nis.c,v 1.1.1.1 1998/11/05 02:04:49 ezk Exp $
* $Id: info_nis.c,v 1.5 1999/08/22 05:12:51 ezk Exp $
*
*/
@ -55,8 +55,12 @@
/*
* NIS+ servers in NIS compat mode don't have yp_order()
*
* has_yp_order = 1 NIS server
* = 0 NIS+ server
* = -1 server is down
*/
static int has_yp_order = FALSE;
static int has_yp_order = -1;
/* forward declarations */
int nis_reload(mnt_map *m, char *map, void (*fn) (mnt_map *, char *, char *));
@ -103,7 +107,9 @@ determine_nis_domain(void)
}
if (!*default_domain) {
nis_not_running = 1;
#ifdef DEBUG
plog(XLOG_WARNING, "NIS domain name is not set. NIS ignored.");
#endif /* DEBUG */
return ENOENT;
}
gopt.nis_domain = strdup(default_domain);
@ -193,25 +199,52 @@ nis_isup(mnt_map *m, char *map)
{
YP_ORDER_OUTORDER_TYPE order;
int error;
char *master;
static int last_status = 1; /* assume up by default */
if (has_yp_order) {
switch (has_yp_order) {
case 1:
/*
* NIS server with yp_order
*/
error = yp_order(gopt.nis_domain, map, &order);
if (error != 0) {
plog(XLOG_ERROR,
"nis_isup: error getting the order of map of %s: %s",
"nis_isup: error getting the order of map %s: %s",
map, yperr_string(ypprot_err(error)));
last_status = 0;
return 0; /* NIS is down */
}
break;
case 0:
/*
* NIS+ server without yp_order
*/
error = yp_master(gopt.nis_domain, map, &master);
if (error != 0) {
plog(XLOG_ERROR,
"nis_isup: error getting the master of map %s: %s",
map, yperr_string(ypprot_err(error)));
last_status = 0;
return 0; /* NIS+ is down */
}
break;
default:
/*
* server was down
*/
last_status = 0;
}
if (last_status == 0) { /* if was down before */
if (last_status == 0) { /* reinitialize if was down before */
time_t dummy;
plog(XLOG_INFO, "nis_isup: NIS came back up for map %s", map);
/* XXX: do we really need to reinitialize nis? */
error = nis_init(m, map, &dummy);
if (!error)
last_status = 1;
if (error)
return 0; /* still down */
plog(XLOG_INFO, "nis_isup: NIS came back up for map %s", map);
last_status = 1;
}
return 1; /* NIS is up */
}
@ -237,8 +270,10 @@ nis_search(mnt_map *m, char *map, char *key, char **val, time_t *tp)
}
if (has_yp_order) {
switch (has_yp_order) {
case 1:
/*
* NIS server with yp_order
* Check if map has changed
*/
if (yp_order(gopt.nis_domain, map, &order))
@ -247,7 +282,9 @@ nis_search(mnt_map *m, char *map, char *key, char **val, time_t *tp)
*tp = (time_t) order;
return -1;
}
} else {
break;
case 0:
/*
* NIS+ server without yp_order
* Check if timeout has expired to invalidate the cache
@ -257,6 +294,15 @@ nis_search(mnt_map *m, char *map, char *key, char **val, time_t *tp)
*tp = (time_t)order;
return(-1);
}
break;
default:
/*
* server was down
*/
if (nis_isup(m, map))
return -1;
return EIO;
}
/*
@ -301,15 +347,16 @@ nis_init(mnt_map *m, char *map, time_t *tp)
yp_order_result = yp_order(gopt.nis_domain, map, &order);
switch (yp_order_result) {
case 0:
has_yp_order = TRUE;
/* NIS server found */
has_yp_order = 1;
*tp = (time_t) order;
#ifdef DEBUG
dlog("NIS master for %s@%s has order %d", map, gopt.nis_domain, order);
dlog("NIS master for %s@%s has order %lu", map, gopt.nis_domain, (unsigned long) order);
#endif /* DEBUG */
break;
case YPERR_YPERR:
/* NIS+ server found ! */
has_yp_order = FALSE;
has_yp_order = 0;
/* try yp_master() instead */
if (yp_master(gopt.nis_domain, map, &master)) {
return ENOENT;
@ -322,6 +369,8 @@ nis_init(mnt_map *m, char *map, time_t *tp)
}
break;
default:
/* server is down */
has_yp_order = -1;
return ENOENT;
}
return 0;

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 Erez Zadok
* Copyright (c) 1989 Jan-Simon Pendry
* Copyright (c) 1989 Imperial College of Science, Technology & Medicine
* Copyright (c) 1989 The Regents of the University of California.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: info_nisplus.c,v 1.1.1.1 1998/11/05 02:04:49 ezk Exp $
* $Id: info_nisplus.c,v 1.2 1999/01/10 21:53:46 ezk Exp $
*
*/

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 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.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: info_passwd.c,v 1.1.1.1 1998/11/05 02:04:49 ezk Exp $
* $Id: info_passwd.c,v 1.2 1999/01/10 21:53:46 ezk Exp $
*
*/

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 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.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: info_union.c,v 1.1.1.1 1998/11/05 02:04:50 ezk Exp $
* $Id: info_union.c,v 1.2 1999/01/10 21:53:47 ezk Exp $
*
*/

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 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.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: map.c,v 1.2 1998/12/27 06:24:47 ezk Exp $
* $Id: map.c,v 1.5 1999/08/22 05:12:51 ezk Exp $
*
*/
@ -615,7 +615,7 @@ root_fh(char *dir)
long pid = getppid();
((struct am_fh *) &nfh)->fhh_pid = pid;
#ifdef DEBUG
dlog("root_fh substitutes pid %d", pid);
dlog("root_fh substitutes pid %ld", (long) pid);
#endif /* DEBUG */
}
return &nfh;
@ -913,7 +913,7 @@ free_map_if_success(int rc, int term, voidp closure)
#endif /* DEBUG */
amd_stats.d_uerr++;
} else if (rc) {
if (rc == EBUSY) {
if (mf->mf_ops == &amfs_program_ops || rc == EBUSY) {
plog(XLOG_STATS, "\"%s\" on %s still active", mp->am_path, mf->mf_mount);
} else {
errno = rc; /* XXX */
@ -1093,7 +1093,7 @@ timeout_mp(voidp v)
if ((int) amd_state >= (int) Finishing)
t = now + 1;
#ifdef DEBUG
dlog("Next mount timeout in %ds", t - now);
dlog("Next mount timeout in %lds", (long) (t - now));
#endif /* DEBUG */
timeout_mp_id = timeout(t - now, timeout_mp, 0);

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 Erez Zadok
* Copyright (c) 1989 Jan-Simon Pendry
* Copyright (c) 1989 Imperial College of Science, Technology & Medicine
* Copyright (c) 1989 The Regents of the University of California.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: mapc.c,v 1.1.1.1 1998/11/05 02:04:48 ezk Exp $
* $Id: mapc.c,v 1.4 1999/08/09 06:09:44 ezk Exp $
*
*/
@ -158,6 +158,7 @@ extern int passwd_search(mnt_map *, char *, char *, char **, time_t *);
/* HESIOD MAPS */
#ifdef HAVE_MAP_HESIOD
extern int amu_hesiod_init(mnt_map *, char *map, time_t *tp);
extern int hesiod_isup(mnt_map *, char *);
extern int hesiod_search(mnt_map *, char *, char *, char **, time_t *);
#endif /* HAVE_MAP_HESIOD */
@ -236,7 +237,7 @@ static map_type maptypes[] =
"hesiod",
amu_hesiod_init,
error_reload,
NULL, /* isup function */
hesiod_isup, /* is Hesiod up or not? */
hesiod_search,
error_mtime,
MAPC_ALL
@ -1051,7 +1052,7 @@ key_already_in_chain(char *keyname, const nfsentry *chain)
nfsentry *
make_entry_chain(am_node *mp, const nfsentry *current_chain, int fully_browsable)
{
static u_int last_cookie = ~(u_int) 0 - 1;
static u_int last_cookie = (u_int) 2; /* monotonically increasing */
static nfsentry chain[MAX_CHAIN];
static int max_entries = MAX_CHAIN;
char *key;
@ -1123,10 +1124,9 @@ make_entry_chain(am_node *mp, const nfsentry *current_chain, int fully_browsable
}
/* we have space. put entry in next cell */
--last_cookie;
++last_cookie;
chain[num_entries].ne_fileid = (u_int) last_cookie;
*(u_int *) chain[num_entries].ne_cookie =
(u_int) last_cookie;
*(u_int *) chain[num_entries].ne_cookie = (u_int) last_cookie;
chain[num_entries].ne_name = key;
if (num_entries < max_entries - 1) { /* link to next one */
chain[num_entries].ne_nextentry = &chain[num_entries + 1];

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 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.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: mntfs.c,v 1.1.1.1 1998/11/05 02:04:48 ezk Exp $
* $Id: mntfs.c,v 1.2 1999/01/10 21:53:47 ezk Exp $
*
*/

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 Erez Zadok
* Copyright (c) 1989 Jan-Simon Pendry
* Copyright (c) 1989 Imperial College of Science, Technology & Medicine
* Copyright (c) 1989 The Regents of the University of California.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: nfs_prot_svc.c,v 1.1.1.1 1998/11/05 02:04:48 ezk Exp $
* $Id: nfs_prot_svc.c,v 1.4 1999/08/22 21:12:30 ezk Exp $
*
*/
@ -98,6 +98,27 @@ nfs_program_2(struct svc_req *rqstp, SVCXPRT *transp)
char *result;
xdrproc_t xdr_argument, xdr_result;
nfssvcproc_t local;
struct sockaddr_in *sinp;
char dq[20], dq2[28];
sinp = amu_svc_getcaller(rqstp->rq_xprt);
#ifdef MNT2_NFS_OPT_RESVPORT
/* Verify that the request comes from a reserved port */
if (ntohs(sinp->sin_port) >= IPPORT_RESERVED) {
plog(XLOG_WARNING, "ignoring request from %s:%u, port not reserved",
inet_dquad(dq, sinp->sin_addr.s_addr),
ntohs(sinp->sin_port));
return;
}
#endif /* MNT2_NFS_OPT_RESVPORT */
/* if the address does not match, ignore the request */
if (sinp->sin_addr.s_addr && sinp->sin_addr.s_addr != myipaddr.s_addr) {
plog(XLOG_WARNING, "ignoring request from %s:%u, expected %s",
inet_dquad(dq, sinp->sin_addr.s_addr),
ntohs(sinp->sin_port),
inet_dquad(dq2, myipaddr.s_addr));
return;
}
nfs_program_2_transp = NULL;
@ -228,7 +249,7 @@ nfs_program_2(struct svc_req *rqstp, SVCXPRT *transp)
(SVC_IN_ARG_TYPE) &argument)) {
plog(XLOG_ERROR,
"NFS xdr decode failed for %d %d %d",
rqstp->rq_prog, rqstp->rq_vers, rqstp->rq_proc);
(int) rqstp->rq_prog, (int) rqstp->rq_vers, (int) rqstp->rq_proc);
svcerr_decode(transp);
return;
}

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 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.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: nfs_start.c,v 1.1.1.1 1998/11/05 02:04:48 ezk Exp $
* $Id: nfs_start.c,v 1.4 1999/02/04 07:24:16 ezk Exp $
*
*/
@ -58,6 +58,7 @@ u_short nfs_port;
#ifdef HAVE_FS_AUTOFS
SVCXPRT *autofsxprt = NULL;
u_short autofs_port = 0;
int amd_use_autofs = 0;
#endif /* HAVE_FS_AUTOFS */
#ifndef HAVE_SIGACTION
@ -86,12 +87,12 @@ checkup(void)
}
if (max_mem < next_mem) {
#ifdef HAVE_GETPAGESIZE
dlog("%#x bytes of memory allocated; total is %#x (%ld pages)",
next_mem - max_mem, next_mem,
dlog("%#lx bytes of memory allocated; total is %#lx (%ld pages)",
(long) (next_mem - max_mem), (unsigned long) next_mem,
((long) next_mem + getpagesize() - 1) / getpagesize());
#else /* not HAVE_GETPAGESIZE */
dlog("%#x bytes of memory allocated; total is %#x",
next_mem - max_mem, next_mem);
dlog("%#lx bytes of memory allocated; total is %#lx",
(long) (next_mem - max_mem), (unsigned long) next_mem);
#endif /* not HAVE_GETPAGESIZE */
max_mem = next_mem;
@ -265,7 +266,7 @@ run_rpc(void)
tvv.tv_sec = SELECT_MAXWAIT;
#ifdef DEBUG
if (tvv.tv_sec) {
dlog("Select waits for %ds", tvv.tv_sec);
dlog("Select waits for %ds", (int) tvv.tv_sec);
} else {
dlog("Select waits for Godot");
}
@ -374,14 +375,17 @@ mount_automounter(int ppid)
return ret;
#ifdef HAVE_FS_AUTOFS
/*
* Create the autofs service for amd.
*/
plog(XLOG_INFO, "creating autofs service listener");
ret = create_autofs_service(&soAUTOFS, &autofs_port, &autofsxprt, autofs_program_1);
/* if autofs service fails it is OK if using a test amd */
if (ret != 0 && gopt.portmap_program == AMQ_PROGRAM)
return ret;
if (amd_use_autofs) {
/*
* Create the autofs service for amd, but only if autofs maps
* were defined (so amd doesn't clash with automountd.)
*/
plog(XLOG_INFO, "creating autofs service listener");
ret = create_autofs_service(&soAUTOFS, &autofs_port, &autofsxprt, autofs_program_1);
/* if autofs service fails it is OK if using a test amd */
if (ret != 0 && gopt.portmap_program == AMQ_PROGRAM)
return ret;
}
#endif /* HAVE_FS_AUTOFS */
/*

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 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.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: nfs_subr.c,v 1.1.1.1 1998/11/05 02:04:48 ezk Exp $
* $Id: nfs_subr.c,v 1.3 1999/01/13 23:31:00 ezk Exp $
*
*/
@ -131,7 +131,7 @@ nfsproc_getattr_2_svc(am_nfs_fh *argp, struct svc_req *rqstp)
#ifdef DEBUG
amuDebug(D_TRACE)
plog(XLOG_DEBUG, "\tstat(%s), size = %d", mp->am_path,
attrp->ns_u.ns_attr_u.na_size);
(int) attrp->ns_u.ns_attr_u.na_size);
#endif /* DEBUG */
mp->am_stats.s_getattr++;

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 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.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: ops_TEMPLATE.c,v 1.1.1.1 1998/11/05 02:04:51 ezk Exp $
* $Id: ops_TEMPLATE.c,v 1.2 1999/01/10 21:53:48 ezk Exp $
*
*/

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 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.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: ops_autofs.c,v 1.2 1998/12/27 06:24:47 ezk Exp $
* $Id: ops_autofs.c,v 1.4 1999/01/13 23:31:00 ezk Exp $
*
*/
@ -356,7 +356,7 @@ autofs_program_1(struct svc_req *rqstp, SVCXPRT *transp)
(SVC_IN_ARG_TYPE) &argument)) {
plog(XLOG_ERROR,
"AUTOFS xdr decode failed for %d %d %d",
rqstp->rq_prog, rqstp->rq_vers, rqstp->rq_proc);
(int) rqstp->rq_prog, (int) rqstp->rq_vers, (int) rqstp->rq_proc);
svcerr_decode(transp);
return;
}
@ -433,11 +433,13 @@ autofs_unmount_1_svc(struct umntrequest *ur, struct umntres *result, struct auth
int err = 0;
#ifdef HAVE_FIELD_UMNTREQUEST_RDEVID
plog(XLOG_INFO, "XXX: autofs_unmount_1_svc: %d:%u:%lu:0x%x",
ur->isdirect, ur->devid, ur->rdevid, ur->next);
plog(XLOG_INFO, "XXX: autofs_unmount_1_svc: %d:%lu:%lu:0x%lx",
ur->isdirect, (unsigned long) ur->devid, (unsigned long) ur->rdevid,
(unsigned long) ur->next);
#else /* HAVE_FIELD_UMNTREQUEST_RDEVID */
plog(XLOG_INFO, "XXX: autofs_unmount_1_svc: %d:%u:0x%x",
ur->isdirect, ur->devid, ur->next);
plog(XLOG_INFO, "XXX: autofs_unmount_1_svc: %d:%lu:0x%lx",
ur->isdirect, (unsigned long) ur->devid,
(unsigned long) ur->next);
#endif /* HAVE_FIELD_UMNTREQUEST_RDEVID */
err = EINVAL; /* XXX: not implemented yet */
@ -614,8 +616,8 @@ autofs_bgmount(struct continuation * cp, int mpe)
* Don't try logging the string from mf, since it may be bad!
*/
if (cp->fs_opts.opt_fs != mf->mf_fo->opt_fs)
plog(XLOG_ERROR, "use %s instead of 0x%x",
cp->fs_opts.opt_fs, mf->mf_fo->opt_fs);
plog(XLOG_ERROR, "use %s instead of 0x%lx",
cp->fs_opts.opt_fs, (unsigned long) mf->mf_fo->opt_fs);
mp->am_link = str3cat((char *) 0,
cp->fs_opts.opt_fs, "/", link_dir);
@ -700,7 +702,7 @@ autofs_bgmount(struct continuation * cp, int mpe)
int i = atoi(mf->mf_fo->opt_delay);
if (i > 0 && clocktime() < (cp->start + i)) {
#ifdef DEBUG
dlog("Mount of %s delayed by %ds", mf->mf_mount, i - clocktime() + cp->start);
dlog("Mount of %s delayed by %lds", mf->mf_mount, i - clocktime() + cp->start);
#endif /* DEBUG */
this_error = -1;
}
@ -998,7 +1000,7 @@ autofs_lookuppn(am_node *mp, char *fname, int *error_return, int op)
if (error) {
#ifdef DEBUG
errno = error; /* XXX */
dlog("Returning error: %m", error);
dlog("Returning error: %m");
#endif /* DEBUG */
XFREE(fname);
ereturn(error);

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 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.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: ops_cachefs.c,v 1.1.1.1 1998/11/05 02:04:50 ezk Exp $
* $Id: ops_cachefs.c,v 1.2 1999/01/10 21:53:49 ezk Exp $
*
*/

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 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.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: ops_cdfs.c,v 1.1.1.1 1998/11/05 02:04:50 ezk Exp $
* $Id: ops_cdfs.c,v 1.3 1999/03/30 17:22:46 ezk Exp $
*
*/
@ -148,6 +148,19 @@ mount_cdfs(char *dir, char *fs_name, char *opts)
if (hasmntopt(&mnt, MNTTAB_OPT_RRIP))
cdfs_flags |= MNT2_CDFS_OPT_RRIP;
#endif /* defined(MNT2_CDFS_OPT_RRIP) && defined(MNTTAB_OPT_RRIP) */
#if defined(MNT2_CDFS_OPT_NORRIP) && defined(MNTTAB_OPT_NORRIP)
if (hasmntopt(&mnt, MNTTAB_OPT_NORRIP))
cdfs_flags |= MNT2_CDFS_OPT_NORRIP;
#endif /* defined(MNT2_CDFS_OPT_NORRIP) && defined(MNTTAB_OPT_NORRIP) */
#if defined(MNT2_CDFS_OPT_GENS) && defined(MNTTAB_OPT_GENS)
if (hasmntopt(&mnt, MNTTAB_OPT_GENS))
cdfs_flags |= MNT2_CDFS_OPT_GENS;
#endif /* defined(MNT2_CDFS_OPT_GENS) && defined(MNTTAB_OPT_GENS) */
#if defined(MNT2_CDFS_OPT_EXTATT) && defined(MNTTAB_OPT_EXTATT)
if (hasmntopt(&mnt, MNTTAB_OPT_EXTATT))
cdfs_flags |= MNT2_CDFS_OPT_EXTATT;
#endif /* defined(MNT2_CDFS_OPT_EXTATT) && defined(MNTTAB_OPT_EXTATT) */
genflags = compute_mount_flags(&mnt);

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 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.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: ops_efs.c,v 1.1.1.1 1998/11/05 02:04:50 ezk Exp $
* $Id: ops_efs.c,v 1.2 1999/01/10 21:53:49 ezk Exp $
*
*/

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 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.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: ops_lofs.c,v 1.1.1.1 1998/11/05 02:04:50 ezk Exp $
* $Id: ops_lofs.c,v 1.2 1999/01/10 21:53:49 ezk Exp $
*
*/

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 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.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: ops_mfs.c,v 1.1.1.1 1998/11/05 02:04:50 ezk Exp $
* $Id: ops_mfs.c,v 1.2 1999/01/10 21:53:50 ezk Exp $
*
*/

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 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.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: ops_nfs.c,v 1.1.1.1 1998/11/05 02:04:50 ezk Exp $
* $Id: ops_nfs.c,v 1.5 1999/03/13 17:03:28 ezk Exp $
*
*/
@ -148,7 +148,7 @@ find_nfs_fhandle_cache(voidp idv, int done)
#ifdef DEBUG
if (fp2) {
dlog("fh cache gives fp %#x, fs %s", fp2, fp2->fh_path);
dlog("fh cache gives fp %#lx, fs %s", (unsigned long) fp2, fp2->fh_path);
} else {
dlog("fh cache search failed");
}
@ -198,7 +198,7 @@ got_nfs_fh(voidp pkt, int len, struct sockaddr_in * sa, struct sockaddr_in * ia,
*/
if (fp->fh_wchan) {
#ifdef DEBUG
dlog("Calling wakeup on %#x", fp->fh_wchan);
dlog("Calling wakeup on %#lx", (unsigned long) fp->fh_wchan);
#endif /* DEBUG */
wakeup(fp->fh_wchan);
}
@ -259,7 +259,7 @@ prime_nfs_fhandle_cache(char *path, fserver *fs, am_nfs_handle_t *fhbuf, voidp w
if (fs == fp->fh_fs && STREQ(path, fp->fh_path)) {
switch (fp->fh_error) {
case 0:
plog(XLOG_INFO, "prime_nfs_fhandle_cache: NFS version %d", fp->fh_nfs_version);
plog(XLOG_INFO, "prime_nfs_fhandle_cache: NFS version %d", (int) fp->fh_nfs_version);
#ifdef HAVE_FS_NFS3
if (fp->fh_nfs_version == NFS_VERSION3)
error = fp->fh_error = unx_error(fp->fh_nfs_handle.v3.fhs_status);
@ -449,7 +449,7 @@ call_mountd(fh_cache *fp, u_long proc, fwd_fun f, voidp wchan)
#endif /* HAVE_FS_NFS3 */
mnt_version = MOUNTVERS;
plog(XLOG_INFO, "call_mountd: NFS version %d, mount version %d",
fp->fh_nfs_version, mnt_version);
(int) fp->fh_nfs_version, (int) mnt_version);
rpc_msg_init(&mnt_msg, MOUNTPROG, mnt_version, MOUNTPROC_NULL);
len = make_rpc_packet(iobuf,
@ -585,10 +585,13 @@ mount_nfs_fh(am_nfs_handle_t *fhp, char *dir, char *fs_name, char *opts, mntfs *
strcpy(host + MAXHOSTNAMELEN - 3, "..");
#endif /* MAXHOSTNAMELEN */
if (mf->mf_remopts && *mf->mf_remopts && !islocalnet(fs->fs_ip->sin_addr.s_addr))
if (mf->mf_remopts && *mf->mf_remopts &&
!islocalnet(fs->fs_ip->sin_addr.s_addr)) {
plog(XLOG_INFO, "Using remopts=\"%s\"", mf->mf_remopts);
xopts = strdup(mf->mf_remopts);
else
} else {
xopts = strdup(opts);
}
memset((voidp) &mnt, 0, sizeof(mnt));
mnt.mnt_dir = dir;
@ -622,7 +625,7 @@ mount_nfs_fh(am_nfs_handle_t *fhp, char *dir, char *fs_name, char *opts, mntfs *
mnt.mnt_type = MNTTAB_TYPE_NFS;
}
#endif /* HAVE_FS_NFS3 */
plog(XLOG_INFO, "mount_nfs_fh: NFS version %d", nfs_version);
plog(XLOG_INFO, "mount_nfs_fh: NFS version %d", (int) nfs_version);
#if defined(HAVE_FS_NFS3) || defined(HAVE_TRANSPORT_TYPE_TLI)
plog(XLOG_INFO, "mount_nfs_fh: using NFS transport %s", nfs_proto);
#endif /* defined(HAVE_FS_NFS3) || defined(HAVE_TRANSPORT_TYPE_TLI) */
@ -659,8 +662,10 @@ mount_nfs_fh(am_nfs_handle_t *fhp, char *dir, char *fs_name, char *opts, mntfs *
/* finally call the mounting function */
#ifdef DEBUG
amuDebug(D_TRACE)
amuDebug(D_TRACE) {
print_nfs_args(&nfs_args, nfs_version);
plog(XLOG_DEBUG, "Generic mount flags 0x%x", genflags);
}
#endif /* DEBUG */
error = mount_fs(&mnt, genflags, (caddr_t) &nfs_args, retry, type,
nfs_version, nfs_proto, mnttab_file_name);

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 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.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: ops_nfs3.c,v 1.1.1.1 1998/11/05 02:04:50 ezk Exp $
* $Id: ops_nfs3.c,v 1.2 1999/01/10 21:53:50 ezk Exp $
*
*/

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 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.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: ops_nullfs.c,v 1.1.1.1 1998/11/05 02:04:50 ezk Exp $
* $Id: ops_nullfs.c,v 1.2 1999/01/10 21:53:50 ezk Exp $
*
*/

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 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.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: ops_pcfs.c,v 1.1.1.1 1998/11/05 02:04:50 ezk Exp $
* $Id: ops_pcfs.c,v 1.2 1999/01/10 21:53:50 ezk Exp $
*
*/

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 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.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: ops_tfs.c,v 1.1.1.1 1998/11/05 02:04:51 ezk Exp $
* $Id: ops_tfs.c,v 1.2 1999/01/10 21:53:51 ezk Exp $
*
*/

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 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.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: ops_tmpfs.c,v 1.1.1.1 1998/11/05 02:04:51 ezk Exp $
* $Id: ops_tmpfs.c,v 1.2 1999/01/10 21:53:51 ezk Exp $
*
*/

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 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.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: ops_ufs.c,v 1.1.1.1 1998/11/05 02:04:51 ezk Exp $
* $Id: ops_ufs.c,v 1.2 1999/01/10 21:53:51 ezk Exp $
*
*/
@ -132,7 +132,7 @@ mount_ufs(char *dir, char *fs_name, char *opts)
#endif /* HAVE_FIELD_UFS_ARGS_T_FLAGS */
#ifdef HAVE_FIELD_UFS_ARGS_T_UFS_FLAGS
ufs_args.ufs_flags = genflags; /* XXX: is this correct? */
ufs_args.ufs_flags = genflags;
#endif /* HAVE_FIELD_UFS_ARGS_T_UFS_FLAGS */
#ifdef HAVE_FIELD_UFS_ARGS_T_FSPEC

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 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.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: ops_umapfs.c,v 1.1.1.1 1998/11/05 02:04:51 ezk Exp $
* $Id: ops_umapfs.c,v 1.2 1999/01/10 21:53:51 ezk Exp $
*
*/

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 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.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: ops_unionfs.c,v 1.1.1.1 1998/11/05 02:04:51 ezk Exp $
* $Id: ops_unionfs.c,v 1.2 1999/01/10 21:53:51 ezk Exp $
*
*/

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 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.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: ops_xfs.c,v 1.1.1.1 1998/11/05 02:04:51 ezk Exp $
* $Id: ops_xfs.c,v 1.2 1999/01/10 21:53:52 ezk Exp $
*
*/

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 Erez Zadok
* Copyright (c) 1989 Jan-Simon Pendry
* Copyright (c) 1989 Imperial College of Science, Technology & Medicine
* Copyright (c) 1989 The Regents of the University of California.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: opts.c,v 1.2 1998/12/27 06:24:48 ezk Exp $
* $Id: opts.c,v 1.5 1999/08/16 01:16:23 ezk Exp $
*
*/
@ -95,6 +95,7 @@ struct functable {
*/
static int f_in_network(char *);
static int f_netgrp(char *);
static int f_netgrpd(char *);
static int f_exists(char *);
static int f_false(char *);
static int f_true(char *);
@ -218,6 +219,7 @@ static struct opt opt_fields[] = {
static struct functable functable[] = {
{ "in_network", f_in_network },
{ "netgrp", f_netgrp },
{ "netgrpd", f_netgrpd },
{ "exists", f_exists },
{ "false", f_false },
{ "true", f_true },
@ -494,7 +496,7 @@ eval_opts(char *opts, char *mapkey)
continue;
} else if (NSTREQ(f, "!", 1) && (func = functable_lookup(&f[1]))) {
/* then this is a negated prefixed function such as "!exists" */
plog(XLOG_USER, "executing negated function %s", &f[1]);
plog(XLOG_INFO, "executing negated function %s", &f[1]);
if ((*func) (arg)) {
return (0);
}
@ -730,7 +732,7 @@ f_in_network(char *arg)
}
/* test if this host is in netgroup (arg) */
/* test if this host (short hostname form) is in netgroup (arg) */
static int
f_netgrp(char *arg)
{
@ -744,6 +746,20 @@ f_netgrp(char *arg)
}
/* test if this host (fully-qualified name) is in netgroup (arg) */
static int
f_netgrpd(char *arg)
{
int status;
status = innetgr(arg, opt_hostd, NULL, NULL);
#ifdef DEBUG
plog(XLOG_USER, "netgrp = %s status = %d hostd = %s", arg, status, opt_hostd);
#endif /* DEBUG */
return status;
}
/* test if file (arg) exists via lstat */
static int
f_exists(char *arg)

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 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.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: restart.c,v 1.1.1.1 1998/11/05 02:04:49 ezk Exp $
* $Id: restart.c,v 1.2 1999/01/10 21:53:52 ezk Exp $
*
*/

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 Erez Zadok
* Copyright (c) 1989 Jan-Simon Pendry
* Copyright (c) 1989 Imperial College of Science, Technology & Medicine
* Copyright (c) 1989 The Regents of the University of California.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: rpc_fwd.c,v 1.1.1.1 1998/11/05 02:04:49 ezk Exp $
* $Id: rpc_fwd.c,v 1.2 1999/01/10 21:53:52 ezk Exp $
*
*/

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 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.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: sched.c,v 1.1.1.1 1998/11/05 02:04:49 ezk Exp $
* $Id: sched.c,v 1.3 1999/01/13 23:31:01 ezk Exp $
*
*/
@ -163,7 +163,7 @@ sched_task(cb_fun cf, voidp ca, voidp wchan)
pjob *p = sched_job(cf, ca);
#ifdef DEBUG
dlog("SLEEP on %#x", wchan);
dlog("SLEEP on %#lx", (unsigned long) wchan);
#endif /* DEBUG */
p->wchan = wchan;
p->pid = 0;

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 Erez Zadok
* Copyright (c) 1989 Jan-Simon Pendry
* Copyright (c) 1989 Imperial College of Science, Technology & Medicine
* Copyright (c) 1989 The Regents of the University of California.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: srvr_amfs_auto.c,v 1.1.1.1 1998/11/05 02:04:49 ezk Exp $
* $Id: srvr_amfs_auto.c,v 1.2 1999/01/10 21:53:53 ezk Exp $
*
*/

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 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.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: amq.h,v 1.1.1.1 1998/11/05 02:04:52 ezk Exp $
* $Id: amq.h,v 1.2 1999/01/10 21:53:59 ezk Exp $
*
*/

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 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.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: amq_clnt.c,v 1.1.1.1 1998/11/05 02:04:52 ezk Exp $
* $Id: amq_clnt.c,v 1.2 1999/01/10 21:53:59 ezk Exp $
*
*/

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 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.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: amq_xdr.c,v 1.1.1.1 1998/11/05 02:04:52 ezk Exp $
* $Id: amq_xdr.c,v 1.2 1999/01/10 21:53:59 ezk Exp $
*
*/

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 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.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: pawd.c,v 1.2 1998/12/27 06:24:50 ezk Exp $
* $Id: pawd.c,v 1.5 1999/09/08 23:36:40 ezk Exp $
*
*/
@ -58,16 +58,6 @@
#include <am_defs.h>
#include <amq.h>
/* dummy variables */
#if 0
char *progname;
char hostname[MAXHOSTNAMELEN];
pid_t mypid;
serv_state amd_state;
int foreground, orig_umask;
int debug_flags;
#endif
/* statics */
static char *localhost="localhost";
static char newdir[MAXPATHLEN];
@ -77,7 +67,9 @@ static int
find_mt(amq_mount_tree *mt, char *dir)
{
while (mt) {
if (STREQ(mt->mt_type, "link") || STREQ(mt->mt_type, "nfs")) {
if (STREQ(mt->mt_type, "link") ||
STREQ(mt->mt_type, "nfs") ||
STREQ(mt->mt_type, "nfsl")) {
int len = strlen(mt->mt_mountpoint);
if (NSTREQ(mt->mt_mountpoint, dir, len) &&
((dir[len] == '\0') || (dir[len] == '/'))) {

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 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.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: checkmount_bsd44.c,v 1.1.1.1 1998/11/05 02:04:33 ezk Exp $
* $Id: checkmount_bsd44.c,v 1.2 1999/01/10 21:54:06 ezk Exp $
*
*/

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 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.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: mtab_bsd.c,v 1.1.1.1 1998/11/05 02:04:37 ezk Exp $
* $Id: mtab_bsd.c,v 1.2 1999/01/10 21:54:11 ezk Exp $
*
*/

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 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.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: transp_sockets.c,v 1.2 1998/11/10 16:23:41 ezk Exp $
* $Id: transp_sockets.c,v 1.5 1999/08/22 21:12:31 ezk Exp $
*
* Socket specific utilities.
* -Erez Zadok <ezk@cs.columbia.edu>
@ -178,21 +178,6 @@ amu_svc_getcaller(SVCXPRT *xprt)
}
/*
* Bind NFS to a reserved port.
*/
static int
bindnfs_port(int so, u_short *nfs_portp)
{
u_short port;
int error = bind_resv_port(so, &port);
if (error == 0)
*nfs_portp = port;
return error;
}
/*
* Create the nfs service for amd
*/
@ -202,7 +187,7 @@ create_nfs_service(int *soNFSp, u_short *nfs_portp, SVCXPRT **nfs_xprtp, void (*
*soNFSp = socket(AF_INET, SOCK_DGRAM, 0);
if (*soNFSp < 0 || bindnfs_port(*soNFSp, nfs_portp) < 0) {
if (*soNFSp < 0 || bind_resv_port(*soNFSp, NULL) < 0) {
plog(XLOG_FATAL, "Can't create privileged nfs port");
return 1;
}
@ -210,6 +195,10 @@ create_nfs_service(int *soNFSp, u_short *nfs_portp, SVCXPRT **nfs_xprtp, void (*
plog(XLOG_FATAL, "cannot create rpc/udp service");
return 2;
}
if ((*nfs_portp = (*nfs_xprtp)->xp_port) >= IPPORT_RESERVED) {
plog(XLOG_FATAL, "Can't create privileged nfs port");
return 1;
}
if (!svc_register(*nfs_xprtp, NFS_PROGRAM, NFS_VERSION, dispatch_fxn, 0)) {
plog(XLOG_FATAL, "unable to register (NFS_PROGRAM, NFS_VERSION, 0)");
return 3;
@ -340,10 +329,10 @@ get_nfs_version(char *host, struct sockaddr_in *sin, u_long nfs_version, const c
if (clnt == NULL) {
#ifdef HAVE_CLNT_SPCREATEERROR
plog(XLOG_INFO, "get_nfs_version NFS(%d,%s) failed for %s :%s",
nfs_version, proto, host, clnt_spcreateerror(""));
(int) nfs_version, proto, host, clnt_spcreateerror(""));
#else /* not HAVE_CLNT_SPCREATEERROR */
plog(XLOG_INFO, "get_nfs_version NFS(%d,%s) failed for %s",
nfs_version, proto, host);
(int) nfs_version, proto, host);
#endif /* not HAVE_CLNT_SPCREATEERROR */
return 0;
}
@ -371,12 +360,12 @@ get_nfs_version(char *host, struct sockaddr_in *sin, u_long nfs_version, const c
#endif /* HAVE_FS_NFS3 */
}
plog(XLOG_INFO, "get_nfs_version NFS(%d,%s) failed for %s",
nfs_version, proto, host);
(int) nfs_version, proto, host);
return 0;
}
plog(XLOG_INFO, "get_nfs_version: returning (%d,%s) on host %s",
nfs_version, proto, host);
(int) nfs_version, proto, host);
return nfs_version;
}

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 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.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: umount_bsd44.c,v 1.1.1.1 1998/11/05 02:04:43 ezk Exp $
* $Id: umount_bsd44.c,v 1.2 1999/01/10 21:54:22 ezk Exp $
*
*/

View File

@ -1,6 +1,6 @@
\input texinfo @c -*-texinfo-*-
@c
@c Copyright (c) 1997-1998 Erez Zadok
@c Copyright (c) 1997-1999 Erez Zadok
@c Copyright (c) 1989 Jan-Simon Pendry
@c Copyright (c) 1989 Imperial College of Science, Technology & Medicine
@c Copyright (c) 1989 The Regents of the University of California.
@ -38,7 +38,7 @@
@c
@c %W% (Berkeley) %G%
@c
@c $Id: am-utils.texi,v 1.2 1998/12/27 06:25:16 ezk Exp $
@c $Id: am-utils.texi,v 1.10 1999/09/08 23:36:49 ezk Exp $
@c
@setfilename am-utils.info
@ -49,6 +49,9 @@
* Am-utils: (am-utils). The Amd automounter suite of utilities
@end direntry
@settitle
@setchapternewpage odd
@titlepage
@title Am-utils (4.4BSD Automounter Utilities)
@subtitle For version @value{VERSION}, @value{UPDATED}
@ -57,7 +60,7 @@
(Originally by Jan-Simon Pendry and Nick Williams)
@page
Copyright @copyright{} 1997-1998 Erez Zadok
Copyright @copyright{} 1997-1999 Erez Zadok
@*
Copyright @copyright{} 1989 Jan-Simon Pendry
@*
@ -212,7 +215,7 @@ of the BSD network version 2 distribution
Revision 6.0 was made independently by @email{ezk@@cs.columbia.edu,Erez
Zadok} at the @uref{http://www.cs.columbia.edu/,Computer Science
Department} of @uref{http://www.columbia.edu/,Columbia University}, as
part of his @uref{http://www.cs.columbia.edu/~ezk/research/tp/thesis_proposal.html,PhD thesis work}. @xref{History} for more details.
part of his @uref{http://www.cs.columbia.edu/~ezk/research/tp/thesis_proposal.html,PhD thesis work}. @xref{History}, for more details.
@unnumberedsec Bug Reports
@cindex Bug reports
@ -702,6 +705,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{alphaev5-unknown-linux-gnu-rh5.2}
@c {Config} {Compile} {Amd} {NFS V.3} {Shlib} {Hlfsd}
@tab yes @tab yes @tab yes @tab n/a @tab yes @tab ?
@item @b{hppa1.0-hp-hpux11.00}
@c {Config} {Compile} {Amd} {NFS V.3} {Shlib} {Hlfsd}
@tab yes @tab yes @tab yes @tab no @tab yes @tab ?
@ -712,7 +719,7 @@ features.
@item @b{hppa1.1-hp-hpux10.20}
@c {Config} {Compile} {Amd} {NFS V.3} {Shlib} {Hlfsd}
@tab yes @tab yes @tab yes @tab n/a @tab no @tab ?
@tab yes @tab yes @tab yes @tab no @tab no @tab ?
@item @b{hppa1.1-hp-hpux9.01}
@c {Config} {Compile} {Amd} {NFS V.3} {Shlib} {Hlfsd}
@ -736,15 +743,19 @@ features.
@item @b{i386-pc-bsdi3.0}
@c {Config} {Compile} {Amd} {NFS V.3} {Shlib} {Hlfsd}
@tab yes @tab yes @tab yes @tab n/a @tab no @tab ?
@tab yes @tab yes @tab yes @tab yes @tab no @tab ?
@item @b{i386-pc-bsdi3.1}
@c {Config} {Compile} {Amd} {NFS V.3} {Shlib} {Hlfsd}
@tab yes @tab yes @tab yes @tab n/a @tab no @tab ?
@tab yes @tab yes @tab yes @tab yes @tab no @tab ?
@item @b{i386-pc-bsdi4.0}
@c {Config} {Compile} {Amd} {NFS V.3} {Shlib} {Hlfsd}
@tab yes @tab yes @tab yes @tab n/a @tab yes @tab ?
@tab yes @tab yes @tab yes @tab yes @tab yes @tab ?
@item @b{i386-pc-bsdi4.0.1}
@c {Config} {Compile} {Amd} {NFS V.3} {Shlib} {Hlfsd}
@tab yes @tab yes @tab yes @tab yes @tab yes @tab ?
@item @b{i386-pc-solaris2.5.1}
@c {Config} {Compile} {Amd} {NFS V.3} {Shlib} {Hlfsd}
@ -782,6 +793,22 @@ features.
@c {Config} {Compile} {Amd} {NFS V.3} {Shlib} {Hlfsd}
@tab yes @tab yes @tab yes @tab yes @tab yes @tab ?
@item @b{i386-unknown-freebsdelf3.0}
@c {Config} {Compile} {Amd} {NFS V.3} {Shlib} {Hlfsd}
@tab yes @tab yes @tab yes @tab yes @tab yes @tab ?
@item @b{i386-unknown-freebsdelf3.1}
@c {Config} {Compile} {Amd} {NFS V.3} {Shlib} {Hlfsd}
@tab yes @tab yes @tab yes @tab yes @tab yes @tab ?
@item @b{i386-unknown-freebsdelf3.2}
@c {Config} {Compile} {Amd} {NFS V.3} {Shlib} {Hlfsd}
@tab yes @tab yes @tab yes @tab yes @tab yes @tab ?
@item @b{i386-unknown-freebsdelf4.0}
@c {Config} {Compile} {Amd} {NFS V.3} {Shlib} {Hlfsd}
@tab yes @tab yes @tab yes @tab yes @tab yes @tab ?
@item @b{i386-unknown-netbsd1.2.1}
@c {Config} {Compile} {Amd} {NFS V.3} {Shlib} {Hlfsd}
@tab yes @tab yes @tab yes @tab yes @tab yes @tab ?
@ -802,6 +829,10 @@ features.
@c {Config} {Compile} {Amd} {NFS V.3} {Shlib} {Hlfsd}
@tab yes @tab yes @tab yes @tab yes @tab yes @tab ?
@item @b{i386-unknown-netbsd1.4}
@c {Config} {Compile} {Amd} {NFS V.3} {Shlib} {Hlfsd}
@tab yes @tab yes @tab yes @tab yes @tab yes @tab ?
@item @b{i386-unknown-openbsd2.1}
@c {Config} {Compile} {Amd} {NFS V.3} {Shlib} {Hlfsd}
@tab yes @tab yes @tab yes @tab yes @tab yes @tab ?
@ -818,14 +849,26 @@ features.
@c {Config} {Compile} {Amd} {NFS V.3} {Shlib} {Hlfsd}
@tab yes @tab yes @tab yes @tab yes @tab yes @tab ?
@item @b{i386-unknown-openbsd2.5}
@c {Config} {Compile} {Amd} {NFS V.3} {Shlib} {Hlfsd}
@tab yes @tab yes @tab yes @tab yes @tab yes @tab ?
@item @b{i486-ncr-sysv4.3.03}
@c {Config} {Compile} {Amd} {NFS V.3} {Shlib} {Hlfsd}
@tab yes @tab yes @tab ? @tab yes @tab yes @tab ?
@item @b{i486-pc-linux-gnu-rh6.0}
@c {Config} {Compile} {Amd} {NFS V.3} {Shlib} {Hlfsd}
@tab yes @tab yes @tab yes @tab n/a @tab yes @tab ?
@item @b{i486-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{i486-pc-linux-gnulibc1-rh4.2}
@c {Config} {Compile} {Amd} {NFS V.3} {Shlib} {Hlfsd}
@tab yes @tab yes @tab yes @tab n/a @tab yes @tab ?
@item @b{i486-pc-linux-gnuoldld}
@c {Config} {Compile} {Amd} {NFS V.3} {Shlib} {Hlfsd}
@tab yes @tab yes @tab yes @tab n/a @tab yes @tab ?
@ -834,14 +877,39 @@ 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-gnu-rh5.2}
@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-gnu-rh6.0}
@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 ?
@item @b{i586-pc-linux-gnulibc1-rh4.2}
@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-gnu}
@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-gnu-rh5.2}
@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-gnu-rh6.0}
@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-gnulibc}
@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 ?
@ -894,6 +962,10 @@ features.
@c {Config} {Compile} {Amd} {NFS V.3} {Shlib} {Hlfsd}
@tab yes @tab yes @tab ? @tab yes @tab ? @tab ?
@item @b{powerpc-unknown-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{rs6000-ibm-aix3.2}
@c {Config} {Compile} {Amd} {NFS V.3} {Shlib} {Hlfsd}
@tab yes @tab yes @tab yes @tab n/a @tab ? @tab ?
@ -1573,6 +1645,7 @@ These are the selectors currently implemented.
* exists Selector Function::
* false Selector Function::
* netgrp Selector Function::
* netgrpd Selector Function::
* in_network Selector Function::
* true Selector Function::
@end menu
@ -1851,7 +1924,7 @@ evaluates to true. Otherwise it evaluates to false.
Always evaluates to false. @i{ARG} is ignored.
@c ----------------------------------------------------------------
@node netgrp Selector Function, in_network Selector Function, false Selector Function, Selectors
@node netgrp Selector Function, netgrpd Selector Function, false Selector Function, Selectors
@comment node-name, next, previous, up
@subsubsection netgrp Selector Function
@cindex netgrp Selector Function
@ -1860,9 +1933,9 @@ Always evaluates to false. @i{ARG} is ignored.
@cindex Mount selector; netgrp
@cindex Selector; netgrp
If the current host as determined by the value of @code{$@{host@}} is a
member of the netgroup @i{ARG}, this selector evaluates to true.
Otherwise it evaluates to false.
If the current host as determined by the value of @code{$@{host@}}
(e.g., short host name) is a member of the netgroup @i{ARG}, this
selector evaluates to true. Otherwise it evaluates to false.
For example, suppose you have a netgroup @samp{ppp-hosts}, and for
reasons of performance, these have a local @file{/home} partition, while
@ -1875,7 +1948,26 @@ home/* netgrp(ppp-hosts);type:=link;fs:=/local/$@{key@} \
@end example
@c ----------------------------------------------------------------
@node in_network Selector Function, true Selector Function, netgrp Selector Function, Selectors
@node netgrpd Selector Function, in_network Selector Function, netgrp Selector Function, Selectors
@comment node-name, next, previous, up
@subsubsection netgrpd Selector Function
@cindex netgrpd Selector Function
@cindex netgrpd, boolean mount selector
@cindex !netgrpd, boolean mount selector
@cindex Mount selector; netgrpd
@cindex Selector; netgrpd
If the current host as determined by the value of @code{$@{hostd@}} is a
member of the netgroup @i{ARG}, this selector evaluates to true.
Otherwise it evaluates to false.
The @samp{netgrpd} function uses fully-qualified host names
(@code{$@{hostd@}}) to match netgroup names, while the @samp{netgrp}
function (@pxref{netgrp Selector Function}) uses short host names
(@code{$@{host@}}).
@c ----------------------------------------------------------------
@node in_network Selector Function, true Selector Function, netgrpd Selector Function, Selectors
@comment node-name, next, previous, up
@subsubsection in_network Selector Function
@cindex in_network Selector Function
@ -1951,10 +2043,14 @@ The following options apply to more than one filesystem type.
This option adds additional options to default options normally
specified in the @samp{/defaults} entry or the defaults of the key entry
being processed (@xref{opts Option}). Normally when you specify
being processed (@pxref{opts Option}). Normally when you specify
@samp{opts} in both the @samp{/defaults} and the map entry, the latter
overrides the former completely. But with @samp{addopts} it will
append the options and override any conflicting ones.
overrides the former completely. But with @samp{addopts} it will append
the options and override any conflicting ones.
@samp{addopts} also overrides the value of the @samp{remopts} option
(@pxref{remopts Option}), which unless specified defaults to the value
of @samp{opts}.
Options which start with @samp{no} will override those with the same
name that do not start with @samp{no} and vice verse. Special handling
@ -2109,12 +2205,23 @@ Allow local special devices on this filesystem.
@item dumbtimr
@cindex Mount flags; dumbtimr
(XXX: a dumb timer?)
Turn off the dynamic retransmit timeout estimator. This may be useful
for UDP mounts that exhibit high retry rates, since it is possible that
the dynamically estimated timeout interval is too short.
@item extatt
@cindex Mount flags; extatt
Enable extended attributes in ISO-9660 file systems.
@item fsid
@cindex Mount flags; fsid
Set ID of filesystem.
@item gens
@cindex Mount flags; gens
Enable generations in ISO-9660 file systems. Generations allow you to
see all versions of a given file.
@item grpid
@cindex Mount flags; grpid
Use BSD directory group-id semantics.
@ -2143,7 +2250,9 @@ Turn off the attribute cache.
@item noauto
@cindex Mount flags; noauto
(XXX: No automatic what?)
This option is used by the mount command in @samp{/etc/fstab} or
@samp{/etc/vfstab} and means not to mount this file system when mount -a
is used.
@item nocache
@cindex Mount flags; nocache
@ -2173,6 +2282,11 @@ Don't allow local special devices on this filesystem.
@cindex Mount flags; noint
Do not allow keyboard interrupts for this mount
@item norrip
@cindex Mount flags; norrip
Turn off using of the Rock Ridge Interchange Protocol (RRIP) extensions
to ISO-9660.
@item nosub
@cindex Mount flags; nosub
Disallow mounts beneath this mount.
@ -2665,7 +2779,7 @@ Print version information on standard error and then exit. The output
is of the form:
@example
Copyright (c) 1997-1998 Erez Zadok
Copyright (c) 1997-1999 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.
@ -3297,11 +3411,12 @@ The following option must be specified:
the block special device to be mounted.
@end table
A cdfs entry might be:
Some operating systems will fail to mount read-only CDs unless the
@samp{ro} option is specified. A cdfs entry might be:
@example
cdfs os==sunos4;type:=cdfs;dev:=/dev/sr0 \
os==sunos5;type:=cdfs;dev:=/dev/dsk/c0t6d0s2
os==sunos5;addopts:=ro;type:=cdfs;dev:=/dev/dsk/c0t6d0s2
@end example
@c ----------------------------------------------------------------
@ -3730,7 +3845,7 @@ dylan/dk5 type:=ufs;dev:=/dev/dsk/5s0
The @dfn{direct} (@samp{type:=direct}) filesystem is almost identical to the automount
filesystem. Instead of appearing to be a directory of mount points, it
appears as a symbolic link to a mounted filesystem. The mount is done
at the time the link is accessed. @xref{Automount Filesystem} for a
at the time the link is accessed. @xref{Automount Filesystem}, for a
list of required options.
Direct automount points are created by specifying the @samp{direct}
@ -6789,7 +6904,7 @@ accessible.
@end table
For discussion on other files used by @i{Hlfsd}, see @ref{lostaltmail} and
For discussion on other files used by @i{Hlfsd}, see @xref{lostaltmail}, and
@ref{lostaltmail.conf-sample}.
@c ################################################################
@ -6806,6 +6921,7 @@ am-utils, and get installed.
* amd.conf-sample::
* amd2ldif::
* amd2sun::
* automount2amd::
* ctl-amd::
* ctl-hlfsd::
* expn::
@ -6851,7 +6967,7 @@ amd2ldif @i{mapname} @i{base} < @i{amd.mapfile} > @i{mapfile.ldif}
@end example
@c ----------------------------------------------------------------
@node amd2sun, ctl-amd, amd2ldif, Assorted Tools
@node amd2sun, automount2amd, amd2ldif, Assorted Tools
@comment node-name, next, previous, up
@section amd2sun
@pindex amd2sun
@ -6864,7 +6980,57 @@ amd2sun < @i{amd.mapfile} > @i{auto_mapfile}
@end example
@c ----------------------------------------------------------------
@node ctl-amd, ctl-hlfsd, amd2sun, Assorted Tools
@node automount2amd, ctl-amd, amd2sun, Assorted Tools
@comment node-name, next, previous, up
@section automount2amd
@pindex automount2amd
A script to convert old Sun Automounter maps to @i{Amd} maps.
Say you have the Sun automount file @i{auto.foo}, with these two lines:
@example
home earth:/home
moon -ro,intr server:/proj/images
@end example
Running
@example
automount2amd auto.foo > amd.foo
@end example
will produce the @i{Amd} map @i{amd.foo} with this content:
@example
# generated by automount2amd on Sat Aug 14 17:59:32 US/Eastern 1999
/defaults \\
type:=nfs;opts:=rw,grpid,nosuid,utimeout=600
home \
host==earth;type:=link;fs:=/home \\
rhost:=earth;rfs:=/home
moon \
-addopts:=ro,intr \\
host==server;type:=link;fs:=/proj/images \\
rhost:=server;rfs:=/proj/images
@end example
This perl script will use the following @i{/default} entry
@example
type:=nfs;opts:=rw,grpid,nosuid,utimeout=600
@end example
If you wish to override that, define the @b{$DEFAULTS} environment
variable, or modify the script.
If you wish to generate Amd maps using the @i{hostd} (@pxref{hostd
Selector Variable}) @i{Amd} map syntax, then define the environment
variable @b{$DOMAIN} or modify the script.
Note that automount2amd does not understand newer Sun Automount map
syntax, those used by autofs.
@c ----------------------------------------------------------------
@node ctl-amd, ctl-hlfsd, automount2amd, Assorted Tools
@comment node-name, next, previous, up
@section ctl-amd
@pindex ctl-amd
@ -6881,7 +7047,7 @@ Stop the running @i{Amd} (if any), safely wait for it to terminate, and
then start a new process --- only if the previous one died cleanly.
@end table
@xref{Run-time Administration} for more details.
@xref{Run-time Administration}, for more details.
@c ----------------------------------------------------------------
@node ctl-hlfsd, expn, ctl-amd, Assorted Tools
@ -6903,7 +7069,7 @@ terminate, and then start a new process --- only if the previous one
died cleanly.
@end table
@xref{Hlfsd} for more details.
@xref{Hlfsd}, for more details.
@c ----------------------------------------------------------------
@node expn, fix-amd-map, ctl-hlfsd, Assorted Tools
@ -6994,7 +7160,7 @@ lostaltmail
@end example
This script needs a configuration file @samp{lostaltmail.conf} set up
with the right parameters to properly work. @xref{Hlfsd} for more
with the right parameters to properly work. @xref{Hlfsd}, for more
details.
@c ----------------------------------------------------------------
@ -7621,7 +7787,7 @@ in @dfn{italic} are replaced by an appropriate string. Variables,
output.
Log messages are either sent directly to a file,
or logged via the @b{syslog}(3) mechanism. @xref{log_file Parameter}
or logged via the @b{syslog}(3) mechanism. @xref{log_file Parameter}.
In either case, entries in the file are of the form:
@example
@i{date-string} @i{hostname} @t{amd[}@i{pid}@t{]} @i{message}
@ -7890,5 +8056,7 @@ All other registered trademarks are owned by their respective owners.
@c LocalWords: moisil FSinfo Libtool Unmounting sublink fileservers NullProc
@c LocalWords: gethostname mount's unmounts linkx remounts unmounting UAs SA's
@c LocalWords: mountpoint mountpoints unescaped UIDs util's overlayed uref EFS
@c LocalWords: serv maxgroups nfsl cachedir copt cfsadmin efs addopts fg
@c LocalWords: nointr
@c LocalWords: serv maxgroups nfsl cachedir copt cfsadmin efs addopts fg ROMs
@c LocalWords: nointr extatt setchapternewpage columnfractions alphaev gnulibc
@c LocalWords: freebsdelf gnuoldld ifhtml defperm nodefperm norrip RRIP rrip
@c LocalWords: noversion attr XXXXXX netgrpd

View File

@ -1,3 +1,3 @@
@set UPDATED 27 December 1998
@set EDITION 6.0
@set VERSION 6.0
@set UPDATED 8 September 1999
@set EDITION 6.0.1
@set VERSION 6.0.1

View File

@ -1,3 +1,3 @@
@set UPDATED 27 December 1998
@set EDITION 6.0
@set VERSION 6.0
@set UPDATED 8 September 1999
@set EDITION 6.0.1
@set VERSION 6.0.1

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 Erez Zadok
* Copyright (c) 1989 Jan-Simon Pendry
* Copyright (c) 1989 Imperial College of Science, Technology & Medicine
* Copyright (c) 1989 The Regents of the University of California.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: fsi_analyze.c,v 1.1.1.1 1998/11/05 02:04:53 ezk Exp $
* $Id: fsi_analyze.c,v 1.2 1999/01/10 21:54:27 ezk Exp $
*
*/

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 Erez Zadok
* Copyright (c) 1989 Jan-Simon Pendry
* Copyright (c) 1989 Imperial College of Science, Technology & Medicine
* Copyright (c) 1989 The Regents of the University of California.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: fsi_data.h,v 1.1.1.1 1998/11/05 02:04:54 ezk Exp $
* $Id: fsi_data.h,v 1.2 1999/01/10 21:54:27 ezk Exp $
*
*/

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 Erez Zadok
* Copyright (c) 1989 Jan-Simon Pendry
* Copyright (c) 1989 Imperial College of Science, Technology & Medicine
* Copyright (c) 1989 The Regents of the University of California.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: fsi_dict.c,v 1.1.1.1 1998/11/05 02:04:53 ezk Exp $
* $Id: fsi_dict.c,v 1.2 1999/01/10 21:54:28 ezk Exp $
*
*/

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 Erez Zadok
* Copyright (c) 1989 Jan-Simon Pendry
* Copyright (c) 1989 Imperial College of Science, Technology & Medicine
* Copyright (c) 1989 The Regents of the University of California.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: fsi_gram.y,v 1.1.1.1 1998/11/05 02:04:54 ezk Exp $
* $Id: fsi_gram.y,v 1.3 1999/04/16 14:21:14 ezk Exp $
*
*/
@ -50,6 +50,22 @@
#include <fsi_data.h>
#include <fsinfo.h>
/* AIX requires this to be the first thing in the file. */
#ifndef __GNUC__
# if HAVE_ALLOCA_H
# include <alloca.h>
# else /* not HAVE_ALLOCA_H */
# ifdef _AIX
#pragma alloca
# else /* not _AIX */
# ifndef alloca
/* predefined by HP cc +Olibcalls */
voidp alloca();
# endif /* not alloca */
# endif /* not _AIX */
# endif /* not HAVE_ALLOCA_H */
#endif /* not __GNUC__ */
extern qelem *list_of_hosts, *list_of_automounts;
%}

View File

@ -1,6 +1,6 @@
%{
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 Erez Zadok
* Copyright (c) 1989 Jan-Simon Pendry
* Copyright (c) 1989 Imperial College of Science, Technology & Medicine
* Copyright (c) 1989 The Regents of the University of California.
@ -39,7 +39,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: fsi_lex.l,v 1.1.1.1 1998/11/05 02:04:54 ezk Exp $
* $Id: fsi_lex.l,v 1.2 1999/01/10 21:54:28 ezk Exp $
*
*/

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 Erez Zadok
* Copyright (c) 1989 Jan-Simon Pendry
* Copyright (c) 1989 Imperial College of Science, Technology & Medicine
* Copyright (c) 1989 The Regents of the University of California.
@ -35,7 +35,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: fsi_util.c,v 1.1.1.1 1998/11/05 02:04:53 ezk Exp $
* $Id: fsi_util.c,v 1.2 1999/01/10 21:54:28 ezk Exp $
*
*/

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 Erez Zadok
* Copyright (c) 1989 Jan-Simon Pendry
* Copyright (c) 1989 Imperial College of Science, Technology & Medicine
* Copyright (c) 1989 The Regents of the University of California.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: fsinfo.h,v 1.2 1998/12/27 06:25:21 ezk Exp $
* $Id: fsinfo.h,v 1.3 1999/01/10 21:54:29 ezk Exp $
*
*/

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 Erez Zadok
* Copyright (c) 1989 Jan-Simon Pendry
* Copyright (c) 1989 Imperial College of Science, Technology & Medicine
* Copyright (c) 1989 The Regents of the University of California.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: wr_atab.c,v 1.1.1.1 1998/11/05 02:04:53 ezk Exp $
* $Id: wr_atab.c,v 1.2 1999/01/10 21:54:29 ezk Exp $
*
*/

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 Erez Zadok
* Copyright (c) 1989 Jan-Simon Pendry
* Copyright (c) 1989 Imperial College of Science, Technology & Medicine
* Copyright (c) 1989 The Regents of the University of California.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: wr_bparam.c,v 1.1.1.1 1998/11/05 02:04:53 ezk Exp $
* $Id: wr_bparam.c,v 1.2 1999/01/10 21:54:29 ezk Exp $
*
*/

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 Erez Zadok
* Copyright (c) 1989 Jan-Simon Pendry
* Copyright (c) 1989 Imperial College of Science, Technology & Medicine
* Copyright (c) 1989 The Regents of the University of California.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: wr_dumpset.c,v 1.1.1.1 1998/11/05 02:04:54 ezk Exp $
* $Id: wr_dumpset.c,v 1.2 1999/01/10 21:54:30 ezk Exp $
*
*/

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 Erez Zadok
* Copyright (c) 1989 Jan-Simon Pendry
* Copyright (c) 1989 Imperial College of Science, Technology & Medicine
* Copyright (c) 1989 The Regents of the University of California.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: wr_exportfs.c,v 1.1.1.1 1998/11/05 02:04:54 ezk Exp $
* $Id: wr_exportfs.c,v 1.2 1999/01/10 21:54:30 ezk Exp $
*
*/

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 Erez Zadok
* Copyright (c) 1989 Jan-Simon Pendry
* Copyright (c) 1989 Imperial College of Science, Technology & Medicine
* Copyright (c) 1989 The Regents of the University of California.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: wr_fstab.c,v 1.1.1.1 1998/11/05 02:04:54 ezk Exp $
* $Id: wr_fstab.c,v 1.2 1999/01/10 21:54:30 ezk Exp $
*
*/

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 Erez Zadok
* Copyright (c) 1989 Jan-Simon Pendry
* Copyright (c) 1989 Imperial College of Science, Technology & Medicine
* Copyright (c) 1989 The Regents of the University of California.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: hlfsd.h,v 1.1.1.1 1998/11/05 02:04:55 ezk Exp $
* $Id: hlfsd.h,v 1.2 1999/01/10 21:54:32 ezk Exp $
*
* HLFSD was written at Columbia University Computer Science Department, by
* Erez Zadok <ezk@cs.columbia.edu> and Alexander Dupuy <dupuy@cs.columbia.edu>
@ -52,7 +52,7 @@
* MACROS AND CONSTANTS:
*/
#define HLFSD_VERSION "hlfsd 1.1 (March 4, 1997-1998)"
#define HLFSD_VERSION "hlfsd 1.1 (March 4, 1997-1999)"
#define PERS_SPOOLMODE 0755
#define OPEN_SPOOLMODE 01777
#define DOTSTRING "."

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 Erez Zadok
* Copyright (c) 1989 Jan-Simon Pendry
* Copyright (c) 1989 Imperial College of Science, Technology & Medicine
* Copyright (c) 1989 The Regents of the University of California.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: nfs_prot_svc.c,v 1.1.1.1 1998/11/05 02:04:55 ezk Exp $
* $Id: nfs_prot_svc.c,v 1.3 1999/01/13 23:31:19 ezk Exp $
*
*/
@ -228,7 +228,7 @@ nfs_program_2(struct svc_req *rqstp, SVCXPRT *transp)
(SVC_IN_ARG_TYPE) &argument)) {
plog(XLOG_ERROR,
"NFS xdr decode failed for %d %d %d",
rqstp->rq_prog, rqstp->rq_vers, rqstp->rq_proc);
(int) rqstp->rq_prog, (int) rqstp->rq_vers, (int) rqstp->rq_proc);
svcerr_decode(transp);
return;
}

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 Erez Zadok
* Copyright (c) 1989 Jan-Simon Pendry
* Copyright (c) 1989 Imperial College of Science, Technology & Medicine
* Copyright (c) 1989 The Regents of the University of California.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: stubs.c,v 1.1.1.1 1998/11/05 02:04:55 ezk Exp $
* $Id: stubs.c,v 1.3 1999/01/13 23:31:19 ezk Exp $
*
* HLFSD was written at Columbia University Computer Science Department, by
* Erez Zadok <ezk@cs.columbia.edu> and Alexander Dupuy <dupuy@cs.columbia.edu>
@ -158,7 +158,8 @@ nfsproc_getattr_2_svc(am_nfs_fh *argp, struct svc_req *rqstp)
un_fattr.na_fileid = uid;
res.ns_u.ns_attr_u = un_fattr;
#ifdef DEBUG
dlog("nfs_getattr: successful search for uid=%d, gid=%d", uid, gid);
dlog("nfs_getattr: successful search for uid=%ld, gid=%ld",
(long) uid, (long) gid);
#endif /* DEBUG */
} else { /* not found */
res.ns_status = NFSERR_STALE;
@ -248,8 +249,8 @@ nfsproc_lookup_2_svc(nfsdiropargs *argp, struct svc_req *rqstp)
res.dr_u.dr_drok_u.drok_fhandle = un_fhandle;
res.dr_status = NFS_OK;
#ifdef DEBUG
dlog("nfs_lookup: successful lookup for uid=%d, gid=%d: username=%s",
uid, gid, untab[idx].username);
dlog("nfs_lookup: successful lookup for uid=%ld, gid=%ld: username=%s",
(long) uid, (long) gid, untab[idx].username);
#endif /* DEBUG */
return &res;
}
@ -344,8 +345,8 @@ nfsproc_readlink_2_svc(am_nfs_fh *argp, struct svc_req *rqstp)
/* print info, but try to avoid repetitions */
if (userid != last_uid) {
plog(XLOG_USER, "mailbox for uid=%d, gid=%d is %s",
userid, groupid, (char *) res.rlr_u.rlr_data_u);
plog(XLOG_USER, "mailbox for uid=%ld, gid=%ld is %s",
(long) userid, (long) groupid, (char *) res.rlr_u.rlr_data_u);
last_uid = userid;
}

View File

@ -111,6 +111,16 @@
#if defined(MNT2_CDFS_OPT_RRIP) && !defined(MNTTAB_OPT_RRIP)
# define MNTTAB_OPT_RRIP "rrip"
#endif /* defined(MNT2_CDFS_OPT_RRIP) && !defined(MNTTAB_OPT_RRIP) */
#if defined(MNT2_CDFS_OPT_NORRIP) && !defined(MNTTAB_OPT_NORRIP)
# define MNTTAB_OPT_NORRIP "norrip"
#endif /* defined(MNT2_CDFS_OPT_NORRIP) && !defined(MNTTAB_OPT_NORRIP) */
#if defined(MNT2_CDFS_OPT_GENS) && !defined(MNTTAB_OPT_GENS)
# define MNTTAB_OPT_GENS "gens"
#endif /* defined(MNT2_CDFS_OPT_GENS) && !defined(MNTTAB_OPT_GENS) */
#if defined(MNT2_CDFS_OPT_EXTATT) && !defined(MNTTAB_OPT_EXTATT)
# define MNTTAB_OPT_EXTATT "extatt"
#endif /* defined(MNT2_CDFS_OPT_EXTATT) && !defined(MNTTAB_OPT_EXTATT) */
/*
* Complete MNTTAB_OPT_* options based on MNT2_GEN_OPT_* mount options.

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 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.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: am_utils.h,v 1.2 1998/12/27 06:25:23 ezk Exp $
* $Id: am_utils.h,v 1.6 1999/08/22 05:12:55 ezk Exp $
*
*/
@ -127,6 +127,8 @@
/* allocate anything of type ty */
#define ALLOC(ty) ((ty *) xmalloc(sizeof(ty)))
#define CALLOC(ty) ((ty *) xcalloc(1, sizeof(ty)))
/* simply allocate b bytes */
#define SALLOC(b) xmalloc((b))
/* converting am-filehandles to mount-points */
#define fh_to_mp2(fhp, rp) fh_to_mp3(fhp, rp, VLOOK_CREATE)
@ -565,6 +567,7 @@ extern int amu_close(int fd);
extern int background(void);
extern int bind_resv_port(int, u_short *);
extern int cmdoption(char *, struct opt_tab *, int *);
extern int compute_automounter_mount_flags(mntent_t *);
extern int compute_mount_flags(mntent_t *);
extern int efs_readdir(am_node *, nfscookie, nfsdirlist *, nfsentry *, int);
extern int eval_fs_opts(am_opts *, char *, char *, char *, char *, char *);
@ -640,7 +643,8 @@ extern void nfs_program_2(struct svc_req *rqstp, SVCXPRT *transp);
extern void normalize_slash(char *);
extern void ops_showamfstypes(char *buf);
extern void ops_showfstypes(char *outbuf);
extern void plog(int, char *,...);
extern void plog(int, char *,...)
__attribute__ ((__format__ (__printf__, 2, 3)));
extern void rem_que(qelem *);
extern void reschedule_timeout_mp(void);
extern void restart(void);
@ -961,7 +965,8 @@ extern void print_nfs_args(const nfs_args_t *nap, u_long nfs_version);
extern int debug_flags; /* Debug options */
extern int debug_option (char *opt);
extern struct opt_tab dbg_opt[];
extern void dplog(char *fmt, ...);
extern void dplog(char *fmt, ...)
__attribute__ ((__format__ (__printf__, 1, 2)));
/**************************************************************************/
/*** MISC (stuff left to autoconfiscate) ***/

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 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.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: am_xdr_func.h,v 1.1.1.1 1998/11/05 02:04:43 ezk Exp $
* $Id: am_xdr_func.h,v 1.2 1999/01/10 21:54:35 ezk Exp $
*
*/

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 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.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: amq_defs.h,v 1.1.1.1 1998/11/05 02:04:44 ezk Exp $
* $Id: amq_defs.h,v 1.3 1999/09/08 23:36:52 ezk Exp $
*
*/
@ -51,7 +51,7 @@
#ifndef AMQ_SIZE
# define AMQ_SIZE 16384
#endif /* not AMQ_SIZE */
#define AMQ_STRLEN 1024
#define AMQ_STRLEN 2048
#define AMQ_PROGRAM ((u_long)300019)
#define AMQ_VERSION ((u_long)1)
#define AMQPROC_NULL ((u_long)0)

504
contrib/amd/libamu/alloca.c Normal file
View File

@ -0,0 +1,504 @@
/* alloca.c -- allocate automatically reclaimed memory
(Mostly) portable public-domain implementation -- D A Gwyn
This implementation of the PWB library alloca function,
which is used to allocate space off the run-time stack so
that it is automatically reclaimed upon procedure exit,
was inspired by discussions with J. Q. Johnson of Cornell.
J.Otto Tennant <jot@cray.com> contributed the Cray support.
There are some preprocessor constants that can
be defined when compiling for your specific system, for
improved efficiency; however, the defaults should be okay.
The general concept of this implementation is to keep
track of all alloca-allocated blocks, and reclaim any
that are found to be deeper in the stack than the current
invocation. This heuristic does not reclaim storage as
soon as it becomes invalid, but it will do so eventually.
As a special case, alloca(0) reclaims storage without
allocating any. It is a good idea to use alloca(0) in
your main control loop, etc. to force garbage collection. */
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#ifdef HAVE_STRING_H
#include <string.h>
#endif
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif
#ifdef emacs
#include "blockinput.h"
#endif
/* If compiling with GCC 2, this file's not needed. */
#if !defined (__GNUC__) || __GNUC__ < 2
/* If someone has defined alloca as a macro,
there must be some other way alloca is supposed to work. */
#ifndef alloca
#ifdef emacs
#ifdef static
/* actually, only want this if static is defined as ""
-- this is for usg, in which emacs must undefine static
in order to make unexec workable
*/
#ifndef STACK_DIRECTION
you
lose
-- must know STACK_DIRECTION at compile-time
#endif /* STACK_DIRECTION undefined */
#endif /* static */
#endif /* emacs */
/* If your stack is a linked list of frames, you have to
provide an "address metric" ADDRESS_FUNCTION macro. */
#if defined (CRAY) && defined (CRAY_STACKSEG_END)
long i00afunc ();
#define ADDRESS_FUNCTION(arg) (char *) i00afunc (&(arg))
#else
#define ADDRESS_FUNCTION(arg) &(arg)
#endif
#if __STDC__
typedef void *pointer;
#else
typedef char *pointer;
#endif
#ifndef NULL
#define NULL 0
#endif
/* Different portions of Emacs need to call different versions of
malloc. The Emacs executable needs alloca to call xmalloc, because
ordinary malloc isn't protected from input signals. On the other
hand, the utilities in lib-src need alloca to call malloc; some of
them are very simple, and don't have an xmalloc routine.
Non-Emacs programs expect this to call use xmalloc.
Callers below should use malloc. */
#ifndef emacs
#define malloc xmalloc
#endif
extern pointer malloc ();
/* Define STACK_DIRECTION if you know the direction of stack
growth for your system; otherwise it will be automatically
deduced at run-time.
STACK_DIRECTION > 0 => grows toward higher addresses
STACK_DIRECTION < 0 => grows toward lower addresses
STACK_DIRECTION = 0 => direction of growth unknown */
#ifndef STACK_DIRECTION
#define STACK_DIRECTION 0 /* Direction unknown. */
#endif
#if STACK_DIRECTION != 0
#define STACK_DIR STACK_DIRECTION /* Known at compile-time. */
#else /* STACK_DIRECTION == 0; need run-time code. */
static int stack_dir; /* 1 or -1 once known. */
#define STACK_DIR stack_dir
static void
find_stack_direction ()
{
static char *addr = NULL; /* Address of first `dummy', once known. */
auto char dummy; /* To get stack address. */
if (addr == NULL)
{ /* Initial entry. */
addr = ADDRESS_FUNCTION (dummy);
find_stack_direction (); /* Recurse once. */
}
else
{
/* Second entry. */
if (ADDRESS_FUNCTION (dummy) > addr)
stack_dir = 1; /* Stack grew upward. */
else
stack_dir = -1; /* Stack grew downward. */
}
}
#endif /* STACK_DIRECTION == 0 */
/* An "alloca header" is used to:
(a) chain together all alloca'ed blocks;
(b) keep track of stack depth.
It is very important that sizeof(header) agree with malloc
alignment chunk size. The following default should work okay. */
#ifndef ALIGN_SIZE
#define ALIGN_SIZE sizeof(double)
#endif
typedef union hdr
{
char align[ALIGN_SIZE]; /* To force sizeof(header). */
struct
{
union hdr *next; /* For chaining headers. */
char *deep; /* For stack depth measure. */
} h;
} header;
static header *last_alloca_header = NULL; /* -> last alloca header. */
/* Return a pointer to at least SIZE bytes of storage,
which will be automatically reclaimed upon exit from
the procedure that called alloca. Originally, this space
was supposed to be taken from the current stack frame of the
caller, but that method cannot be made to work for some
implementations of C, for example under Gould's UTX/32. */
pointer
alloca (size)
unsigned size;
{
auto char probe; /* Probes stack depth: */
register char *depth = ADDRESS_FUNCTION (probe);
#if STACK_DIRECTION == 0
if (STACK_DIR == 0) /* Unknown growth direction. */
find_stack_direction ();
#endif
/* Reclaim garbage, defined as all alloca'd storage that
was allocated from deeper in the stack than currently. */
{
register header *hp; /* Traverses linked list. */
#ifdef emacs
BLOCK_INPUT;
#endif
for (hp = last_alloca_header; hp != NULL;)
if ((STACK_DIR > 0 && hp->h.deep > depth)
|| (STACK_DIR < 0 && hp->h.deep < depth))
{
register header *np = hp->h.next;
free ((pointer) hp); /* Collect garbage. */
hp = np; /* -> next header. */
}
else
break; /* Rest are not deeper. */
last_alloca_header = hp; /* -> last valid storage. */
#ifdef emacs
UNBLOCK_INPUT;
#endif
}
if (size == 0)
return NULL; /* No allocation required. */
/* Allocate combined header + user data storage. */
{
register pointer new = malloc (sizeof (header) + size);
/* Address of header. */
if (new == 0)
abort();
((header *) new)->h.next = last_alloca_header;
((header *) new)->h.deep = depth;
last_alloca_header = (header *) new;
/* User storage begins just after header. */
return (pointer) ((char *) new + sizeof (header));
}
}
#if defined (CRAY) && defined (CRAY_STACKSEG_END)
#ifdef DEBUG_I00AFUNC
#include <stdio.h>
#endif
#ifndef CRAY_STACK
#define CRAY_STACK
#ifndef CRAY2
/* Stack structures for CRAY-1, CRAY X-MP, and CRAY Y-MP */
struct stack_control_header
{
long shgrow:32; /* Number of times stack has grown. */
long shaseg:32; /* Size of increments to stack. */
long shhwm:32; /* High water mark of stack. */
long shsize:32; /* Current size of stack (all segments). */
};
/* The stack segment linkage control information occurs at
the high-address end of a stack segment. (The stack
grows from low addresses to high addresses.) The initial
part of the stack segment linkage control information is
0200 (octal) words. This provides for register storage
for the routine which overflows the stack. */
struct stack_segment_linkage
{
long ss[0200]; /* 0200 overflow words. */
long sssize:32; /* Number of words in this segment. */
long ssbase:32; /* Offset to stack base. */
long:32;
long sspseg:32; /* Offset to linkage control of previous
segment of stack. */
long:32;
long sstcpt:32; /* Pointer to task common address block. */
long sscsnm; /* Private control structure number for
microtasking. */
long ssusr1; /* Reserved for user. */
long ssusr2; /* Reserved for user. */
long sstpid; /* Process ID for pid based multi-tasking. */
long ssgvup; /* Pointer to multitasking thread giveup. */
long sscray[7]; /* Reserved for Cray Research. */
long ssa0;
long ssa1;
long ssa2;
long ssa3;
long ssa4;
long ssa5;
long ssa6;
long ssa7;
long sss0;
long sss1;
long sss2;
long sss3;
long sss4;
long sss5;
long sss6;
long sss7;
};
#else /* CRAY2 */
/* The following structure defines the vector of words
returned by the STKSTAT library routine. */
struct stk_stat
{
long now; /* Current total stack size. */
long maxc; /* Amount of contiguous space which would
be required to satisfy the maximum
stack demand to date. */
long high_water; /* Stack high-water mark. */
long overflows; /* Number of stack overflow ($STKOFEN) calls. */
long hits; /* Number of internal buffer hits. */
long extends; /* Number of block extensions. */
long stko_mallocs; /* Block allocations by $STKOFEN. */
long underflows; /* Number of stack underflow calls ($STKRETN). */
long stko_free; /* Number of deallocations by $STKRETN. */
long stkm_free; /* Number of deallocations by $STKMRET. */
long segments; /* Current number of stack segments. */
long maxs; /* Maximum number of stack segments so far. */
long pad_size; /* Stack pad size. */
long current_address; /* Current stack segment address. */
long current_size; /* Current stack segment size. This
number is actually corrupted by STKSTAT to
include the fifteen word trailer area. */
long initial_address; /* Address of initial segment. */
long initial_size; /* Size of initial segment. */
};
/* The following structure describes the data structure which trails
any stack segment. I think that the description in 'asdef' is
out of date. I only describe the parts that I am sure about. */
struct stk_trailer
{
long this_address; /* Address of this block. */
long this_size; /* Size of this block (does not include
this trailer). */
long unknown2;
long unknown3;
long link; /* Address of trailer block of previous
segment. */
long unknown5;
long unknown6;
long unknown7;
long unknown8;
long unknown9;
long unknown10;
long unknown11;
long unknown12;
long unknown13;
long unknown14;
};
#endif /* CRAY2 */
#endif /* not CRAY_STACK */
#ifdef CRAY2
/* Determine a "stack measure" for an arbitrary ADDRESS.
I doubt that "lint" will like this much. */
static long
i00afunc (long *address)
{
struct stk_stat status;
struct stk_trailer *trailer;
long *block, size;
long result = 0;
/* We want to iterate through all of the segments. The first
step is to get the stack status structure. We could do this
more quickly and more directly, perhaps, by referencing the
$LM00 common block, but I know that this works. */
STKSTAT (&status);
/* Set up the iteration. */
trailer = (struct stk_trailer *) (status.current_address
+ status.current_size
- 15);
/* There must be at least one stack segment. Therefore it is
a fatal error if "trailer" is null. */
if (trailer == 0)
abort ();
/* Discard segments that do not contain our argument address. */
while (trailer != 0)
{
block = (long *) trailer->this_address;
size = trailer->this_size;
if (block == 0 || size == 0)
abort ();
trailer = (struct stk_trailer *) trailer->link;
if ((block <= address) && (address < (block + size)))
break;
}
/* Set the result to the offset in this segment and add the sizes
of all predecessor segments. */
result = address - block;
if (trailer == 0)
{
return result;
}
do
{
if (trailer->this_size <= 0)
abort ();
result += trailer->this_size;
trailer = (struct stk_trailer *) trailer->link;
}
while (trailer != 0);
/* We are done. Note that if you present a bogus address (one
not in any segment), you will get a different number back, formed
from subtracting the address of the first block. This is probably
not what you want. */
return (result);
}
#else /* not CRAY2 */
/* Stack address function for a CRAY-1, CRAY X-MP, or CRAY Y-MP.
Determine the number of the cell within the stack,
given the address of the cell. The purpose of this
routine is to linearize, in some sense, stack addresses
for alloca. */
static long
i00afunc (long address)
{
long stkl = 0;
long size, pseg, this_segment, stack;
long result = 0;
struct stack_segment_linkage *ssptr;
/* Register B67 contains the address of the end of the
current stack segment. If you (as a subprogram) store
your registers on the stack and find that you are past
the contents of B67, you have overflowed the segment.
B67 also points to the stack segment linkage control
area, which is what we are really interested in. */
stkl = CRAY_STACKSEG_END ();
ssptr = (struct stack_segment_linkage *) stkl;
/* If one subtracts 'size' from the end of the segment,
one has the address of the first word of the segment.
If this is not the first segment, 'pseg' will be
nonzero. */
pseg = ssptr->sspseg;
size = ssptr->sssize;
this_segment = stkl - size;
/* It is possible that calling this routine itself caused
a stack overflow. Discard stack segments which do not
contain the target address. */
while (!(this_segment <= address && address <= stkl))
{
#ifdef DEBUG_I00AFUNC
fprintf (stderr, "%011o %011o %011o\n", this_segment, address, stkl);
#endif
if (pseg == 0)
break;
stkl = stkl - pseg;
ssptr = (struct stack_segment_linkage *) stkl;
size = ssptr->sssize;
pseg = ssptr->sspseg;
this_segment = stkl - size;
}
result = address - this_segment;
/* If you subtract pseg from the current end of the stack,
you get the address of the previous stack segment's end.
This seems a little convoluted to me, but I'll bet you save
a cycle somewhere. */
while (pseg != 0)
{
#ifdef DEBUG_I00AFUNC
fprintf (stderr, "%011o %011o\n", pseg, size);
#endif
stkl = stkl - pseg;
ssptr = (struct stack_segment_linkage *) stkl;
size = ssptr->sssize;
pseg = ssptr->sspseg;
result += size;
}
return (result);
}
#endif /* not CRAY2 */
#endif /* CRAY */
#endif /* no alloca */
#endif /* not GCC version 2 */

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 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.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: amu.h,v 1.1.1.1 1998/11/05 02:04:45 ezk Exp $
* $Id: amu.h,v 1.2 1999/01/10 21:54:36 ezk Exp $
*
*/

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 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.
@ -38,7 +38,7 @@ n * modification, are permitted provided that the following conditions
*
* %W% (Berkeley) %G%
*
* $Id: hasmntopt.c,v 1.1.1.1 1998/11/05 02:04:44 ezk Exp $
* $Id: hasmntopt.c,v 1.2 1999/01/10 21:54:37 ezk Exp $
*
*/

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1998 Erez Zadok
* Copyright (c) 1997-1999 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.
@ -38,7 +38,7 @@
*
* %W% (Berkeley) %G%
*
* $Id: misc_rpc.c,v 1.1.1.1 1998/11/05 02:04:45 ezk Exp $
* $Id: misc_rpc.c,v 1.2 1999/01/10 21:54:37 ezk Exp $
*
*/

Some files were not shown because too many files have changed in this diff Show More