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:
commit
2e09733a0e
@ -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.
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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:
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -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);
|
||||
|
@ -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 */
|
||||
|
@ -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 $
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -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 $
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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 $
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -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 $
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -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 $
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -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 $
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -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 $
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -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++;
|
||||
}
|
||||
}
|
||||
|
@ -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 $
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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 $
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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 $
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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");
|
||||
|
@ -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);
|
||||
|
@ -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 $
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -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 $
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -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 */
|
||||
}
|
||||
|
@ -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)) {
|
||||
|
@ -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 $
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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 $
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -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 $
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -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 $
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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];
|
||||
|
@ -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 $
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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 */
|
||||
|
||||
/*
|
||||
|
@ -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++;
|
||||
|
@ -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 $
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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 $
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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 $
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -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 $
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -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 $
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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 $
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -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 $
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -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 $
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -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 $
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -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 $
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -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
|
||||
|
@ -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 $
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -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 $
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -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 $
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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 $
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -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 $
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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 $
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -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 $
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -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 $
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -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 $
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -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] == '/'))) {
|
||||
|
@ -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 $
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -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 $
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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 $
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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 $
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -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 $
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -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 $
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -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;
|
||||
%}
|
||||
|
||||
|
@ -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 $
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -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 $
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -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 $
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -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 $
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -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 $
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -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 $
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -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 $
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -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 $
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -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 "."
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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.
|
||||
|
@ -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) ***/
|
||||
|
@ -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 $
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -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
504
contrib/amd/libamu/alloca.c
Normal 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 */
|
@ -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 $
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -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 $
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -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
Loading…
Reference in New Issue
Block a user