]> err.no Git - util-linux/commitdiff
mount: remove all NFS code
authorKarel Zak <kzak@redhat.com>
Wed, 9 May 2007 11:25:16 +0000 (13:25 +0200)
committerKarel Zak <kzak@redhat.com>
Wed, 9 May 2007 11:25:16 +0000 (13:25 +0200)
Use /sbin/{u,}mount.nfs{,4} from nfs-utils! The mount command
will use these to mount nfs filesystems instead of internal code.

The /sbin/{u,}mount.nfs{,4} is supported from nfs-utils-1.1.0
(currently -rc1).

Signed-off-by: Karel Zak <kzak@redhat.com>
16 files changed:
mount/Makefile.am
mount/mount.c
mount/nfs.5 [deleted file]
mount/nfs_mount4.h [deleted file]
mount/nfs_mount4.h.sv [deleted file]
mount/nfsmount.c [deleted file]
mount/nfsmount.h [deleted file]
mount/nfsmount.x [deleted file]
mount/nfsmount_clnt.c [deleted file]
mount/nfsmount_xdr.c [deleted file]
mount/rpcsvc/nfsmount.h [deleted file]
mount/rpcsvc/nfsmount.x [deleted file]
mount/rpcsvc/nfsmount_clnt.c [deleted file]
mount/rpcsvc/nfsmount_xdr.c [deleted file]
mount/sundries.c
mount/umount.c

index bd2ff1c20b17765bbfbbf53eaf450689ddb59197..95db3ddb2512e858d474a7f5a21d463ad6e65d8b 100644 (file)
@@ -2,22 +2,19 @@ include $(top_srcdir)/config/include-Makefile.am
 
 EXTRA_DIST = README.mount swap.configure
 
-AM_CPPFLAGS += -DHAVE_NFS
-
 bin_PROGRAMS = mount umount
 sbin_PROGRAMS = losetup swapon
-man_MANS = fstab.5 nfs.5 mount.8 swapoff.8 swapon.8 umount.8 losetup.8
+man_MANS = fstab.5 mount.8 swapoff.8 swapon.8 umount.8 losetup.8
 
 MNTHDRS = fstab.h linux_fs.h mount_mntent.h mount_constants.h my_dev_t.h \
        mount_paths.h get_label_uuid.h lomount.h mount_blkid.h \
-       mount_guess_fstype.h nfs_mount4.h realpath.h xmalloc.h \
+       mount_guess_fstype.h realpath.h xmalloc.h \
        getusername.h loop.h mount_by_label.h mount_guess_rootdev.h \
-       nfsmount.h sundries.h
+       sundries.h
 
 mount_SOURCES = mount.c fstab.c sundries.c xmalloc.c realpath.c mount_mntent.c \
        get_label_uuid.c mount_by_label.c mount_blkid.c mount_guess_fstype.c \
        getusername.c \
-       nfsmount.c nfsmount_xdr.c nfsmount_clnt.c \
        lomount.c \
        $(MNTHDRS)
 
index be2e4bfc66663be1481e3d9dc65c2274ba7f20ed..5058a7ec77bb837ce6aaa94fe39d7745d1ff1d0b 100644 (file)
@@ -941,7 +941,6 @@ try_mount_one (const char *spec0, const char *node0, const char *types0,
   int loop = 0;
   const char *loopdev = 0, *loopfile = 0;
   struct stat statbuf;
-  int nfs_mount_version = 0;   /* any version */
 
   /* copies for freeing on exit */
   const char *opts1, *spec1, *node1, *types1, *extra_opts1;
@@ -999,19 +998,6 @@ try_mount_one (const char *spec0, const char *node0, const char *types0,
       goto out;
   }
 
-  /*
-   * Also nfs requires a separate program, but it is built in.
-   */
-  if (!fake && types && streq (types, "nfs")) {
-retry_nfs:
-    mnt_err = nfsmount (spec, node, &flags, &extra_opts, &mount_opts,
-                       &nfs_mount_version, bg);
-    if (mnt_err) {
-       res = mnt_err;
-       goto out;
-    }
-  }
-
   block_signals (SIG_BLOCK);
 
   if (!fake) {
@@ -1051,15 +1037,6 @@ retry_nfs:
 
   block_signals (SIG_UNBLOCK);
 
-  if (mnt_err && types && streq (types, "nfs")) {
-      if (nfs_mount_version == 4 && mnt_err != EBUSY && mnt_err != ENOENT) {
-         if (verbose)
-           printf(_("mount: failed with nfs mount version 4, trying 3..\n"));
-         nfs_mount_version = 3;
-         goto retry_nfs;
-      }
-  }
-
   /* Mount failed, complain, but don't die.  */
 
   if (types == 0) {
diff --git a/mount/nfs.5 b/mount/nfs.5
deleted file mode 100644 (file)
index 3f17766..0000000
+++ /dev/null
@@ -1,225 +0,0 @@
-.\" nfs.5 "Rick Sladkey" <jrs@world.std.com>
-.\" Wed Feb  8 12:52:42 1995, faith@cs.unc.edu: updates for Ross Biro's
-.\" patches. "
-.TH NFS 5 "20 November 1993" "Linux 0.99" "Linux Programmer's Manual"
-.SH NAME
-nfs \- nfs fstab format and options
-.SH SYNOPSIS
-.B /etc/fstab
-.SH DESCRIPTION
-The
-.I fstab
-file contains information about which filesystems
-to mount where and with what options.
-For NFS mounts, it contains the server name and
-exported server directory to mount from,
-the local directory that is the mount point,
-and the NFS specific options that control
-the way the filesystem is mounted.
-.P
-Here is an example from an \fI/etc/fstab\fP file from an NFS mount.
-.sp
-.nf
-.ta 2.5i +0.75i +0.75i +1.0i
-server:/usr/local/pub  /pub    nfs     rsize=8192,wsize=8192,timeo=14,intr
-.fi
-.DT
-.SS Options
-.TP 1.5i
-.I rsize=n
-The number of bytes NFS uses when reading files from an NFS server.
-The default value is dependent on the kernel, currently 1024 bytes.
-(However, throughput is improved greatly by asking for
-.IR rsize=8192 .)
-.TP 1.5i
-.I wsize=n
-The number of bytes NFS uses when writing files to an NFS server.
-The default value is dependent on the kernel, currently 1024 bytes.
-(However, throughput is improved greatly by asking for
-.IR wsize=8192 .)
-.TP 1.5i
-.I timeo=n
-The value in tenths of a second before sending the
-first retransmission after an RPC timeout.
-The default value is 7 tenths of a second.  After the first timeout,
-the timeout is doubled after each successive timeout until a maximum
-timeout of 60 seconds is reached or the enough retransmissions
-have occured to cause a major timeout.  Then, if the filesystem
-is hard mounted, each new timeout cascade restarts at twice the
-initial value of the previous cascade, again doubling at each
-retransmission.  The maximum timeout is always 60 seconds.
-Better overall performance may be achieved by increasing the
-timeout when mounting on a busy network, to a slow server, or through
-several routers or gateways.
-.TP 1.5i
-.I retrans=n
-The number of minor timeouts and retransmissions that must occur before
-a major timeout occurs.  The default is 3 timeouts.  When a major timeout
-occurs, the file operation is either aborted or a "server not responding"
-message is printed on the console.
-.TP 1.5i
-.I acregmin=n
-The minimum time in seconds that attributes of a regular file should
-be cached before requesting fresh information from a server.
-The default is 3 seconds.
-.TP 1.5i
-.I acregmax=n
-The maximum time in seconds that attributes of a regular file can
-be cached before requesting fresh information from a server.
-The default is 60 seconds.
-.TP 1.5i
-.I acdirmin=n
-The minimum time in seconds that attributes of a directory should
-be cached before requesting fresh information from a server.
-The default is 30 seconds.
-.TP 1.5i
-.I acdirmax=n
-The maximum time in seconds that attributes of a directory can
-be cached before requesting fresh information from a server.
-The default is 60 seconds.
-.TP 1.5i
-.I actimeo=n
-Using actimeo sets all of
-.I acregmin,
-.I acregmax,
-.I acdirmin,
-and
-.I acdirmax
-to the same value.
-There is no default value.
-.TP 1.5i
-.I retry=n
-The number of minutes to retry an NFS mount operation
-in the foreground or background before giving up.
-The default value is 10000 minutes, which is roughly one week.
-.TP 1.5i
-.I namlen=n
-When an NFS server does not support version two of the
-RPC mount protocol, this option can be used to specify
-the maximum length of a filename that is supported on
-the remote filesystem.  This is used to support the
-POSIX pathconf functions.  The default is 255 characters.
-.TP 1.5i
-.I port=n
-The numeric value of the port to connect to the NFS server on.
-If the port number is 0 (the default) then query the
-remote host's portmapper for the port number to use.
-If the remote host's NFS daemon is not registered with
-its portmapper, the standard NFS port number 2049 is
-used instead.
-.TP 1.5i
-.I mountport=n
-The numeric value of the
-.B mountd
-port.
-.TP 1.5i
-.I mounthost=name
-The name of the host running
-.B mountd .
-.TP 1.5i
-.I mountprog=n
-Use an alternate RPC program number to contact the
-mount daemon on the remote host.  This option is useful
-for hosts that can run multiple NFS servers.
-The default value is 100005 which is the standard RPC
-mount daemon program number.
-.TP 1.5i
-.I mountvers=n
-Use an alternate RPC version number to contact the
-mount daemon on the remote host.  This option is useful
-for hosts that can run multiple NFS servers.
-The default value is version 1.
-.TP 1.5i
-.I nfsprog=n
-Use an alternate RPC program number to contact the
-NFS daemon on the remote host.  This option is useful
-for hosts that can run multiple NFS servers.
-The default value is 100003 which is the standard RPC
-NFS daemon program number.
-.TP 1.5i
-.I nfsvers=n
-Use an alternate RPC version number to contact the
-NFS daemon on the remote host.  This option is useful
-for hosts that can run multiple NFS servers.
-The default value is version 2.
-.TP 1.5i
-.I nolock
-Disable NFS locking. Do not start lockd.
-This has to be used with some old NFS servers
-that don't support locking.
-.TP 1.5i
-.I bg
-If the first NFS mount attempt times out, retry the mount
-in the background.
-After a mount operation is backgrounded, all subsequent mounts
-on the same NFS server will be backgrounded immediately, without
-first attempting the mount.
-A missing mount point is treated as a timeout,
-to allow for nested NFS mounts.
-.TP 1.5i
-.I fg
-If the first NFS mount attempt times out, retry the mount
-in the foreground.
-This is the complement of the
-.I bg
-option, and also the default behavior.
-.TP 1.5i
-.I soft
-If an NFS file operation has a major timeout then report an I/O error to
-the calling program.
-The default is to continue retrying NFS file operations indefinitely.
-.TP 1.5i
-.I hard
-If an NFS file operation has a major timeout then report
-"server not responding" on the console and continue retrying indefinitely.
-This is the default.
-.TP 1.5i
-.I intr
-If an NFS file operation has a major timeout and it is hard mounted,
-then allow signals to interupt the file operation and cause it to
-return EINTR to the calling program.  The default is to not
-allow file operations to be interrupted.
-.TP 1.5i
-.I posix
-Mount the NFS filesystem using POSIX semantics.  This allows
-an NFS filesystem to properly support the POSIX pathconf
-command by querying the mount server for the maximum length
-of a filename.  To do this, the remote host must support version
-two of the RPC mount protocol.  Many NFS servers support only
-version one.
-.TP 1.5i
-.I nocto
-Suppress the retrieval of new attributes when creating a file.
-.TP 1.5i
-.I noac
-Disable all forms of attribute caching entirely.  This extracts a
-server performance penalty but it allows two different NFS clients
-to get reasonable good results when both clients are actively
-writing to common filesystem on the server.
-.TP 1.5i
-.I tcp
-Mount the NFS filesystem using the TCP protocol instead of the
-default UDP protocol.  Many NFS servers only support UDP.
-.TP 1.5i
-.I udp
-Mount the NFS filesystem using the UDP protocol.  This
-is the default.
-.P
-All of the non-value options have corresponding nooption forms.
-For example, nointr means don't allow file operations to be
-interrupted.
-.SH FILES
-.I /etc/fstab
-.SH "SEE ALSO"
-.BR fstab "(5), " mount "(8), " umount "(8), " exports (5)
-.SH AUTHOR
-"Rick Sladkey" <jrs@world.std.com>
-.SH BUGS
-The posix, and nocto options are parsed by mount
-but currently are silently ignored.
-.P
-The tcp and namlen options are implemented but are not currently
-supported by the Linux kernel.
-.P
-The umount command should notify the server
-when an NFS filesystem is unmounted.
diff --git a/mount/nfs_mount4.h b/mount/nfs_mount4.h
deleted file mode 100644 (file)
index 8565077..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * We want to be able to compile mount on old kernels in such a way
- * that the binary will work well on more recent kernels.
- * Thus, if necessary we teach nfsmount.c the structure of new fields
- * that will come later.
- *
- * Moreover, the new kernel includes conflict with glibc includes
- * so it is easiest to ignore the kernel altogether (at compile time).
- */
-
-#define NFS_MOUNT_VERSION      4
-
-struct nfs2_fh {
-        char                    data[32];
-};
-struct nfs3_fh {
-        unsigned short          size;
-        unsigned char           data[64];
-};
-
-struct nfs_mount_data {
-       int             version;                /* 1 */
-       int             fd;                     /* 1 */
-       struct nfs2_fh  old_root;               /* 1 */
-       int             flags;                  /* 1 */
-       int             rsize;                  /* 1 */
-       int             wsize;                  /* 1 */
-       int             timeo;                  /* 1 */
-       int             retrans;                /* 1 */
-       int             acregmin;               /* 1 */
-       int             acregmax;               /* 1 */
-       int             acdirmin;               /* 1 */
-       int             acdirmax;               /* 1 */
-       struct sockaddr_in addr;                /* 1 */
-       char            hostname[256];          /* 1 */
-       int             namlen;                 /* 2 */
-       unsigned int    bsize;                  /* 3 */
-       struct nfs3_fh  root;                   /* 4 */
-};
-
-/* bits in the flags field */
-
-#define NFS_MOUNT_SOFT         0x0001  /* 1 */
-#define NFS_MOUNT_INTR         0x0002  /* 1 */
-#define NFS_MOUNT_SECURE       0x0004  /* 1 */
-#define NFS_MOUNT_POSIX                0x0008  /* 1 */
-#define NFS_MOUNT_NOCTO                0x0010  /* 1 */
-#define NFS_MOUNT_NOAC         0x0020  /* 1 */
-#define NFS_MOUNT_TCP          0x0040  /* 2 */
-#define NFS_MOUNT_VER3         0x0080  /* 3 */
-#define NFS_MOUNT_KERBEROS     0x0100  /* 3 */
-#define NFS_MOUNT_NONLM                0x0200  /* 3 */
-#define NFS_MOUNT_BROKEN_SUID  0x0400  /* 4 */
-
diff --git a/mount/nfs_mount4.h.sv b/mount/nfs_mount4.h.sv
deleted file mode 100644 (file)
index f3111d7..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * We want to be able to compile mount on old kernels in such a way
- * that the binary will work well on more recent kernels.
- * Thus, if necessary we teach nfsmount.c the structure of new fields
- * that will come later.
- */
-#include "nfs_mountversion.h"
-
-#if KERNEL_NFS_MOUNT_VERSION >= 4
-
-/*
- * The kernel includes are at least as good as this file.
- * Use them.
- */
-#include <linux/nfs_mount.h>
-
-#define NFS_FHSIZE 32
-#define NFS_PORT 2049
-#define NFS_VERSION 2
-
-
-#else /* KERNEL_NFS_MOUNT_VERSION < 4 */
-
-/*
- * We know more than the kernel. Override the kernel defines.
- * Check at runtime whether the running kernel can handle the new stuff.
- */
-#define NFS_MOUNT_VERSION      4
-
-struct nfs2_fh {
-        char                    data[32];
-};
-struct nfs3_fh {
-        unsigned short          size;
-        unsigned char           data[64];
-};
-
-struct nfs_mount_data {
-       int             version;                /* 1 */
-       int             fd;                     /* 1 */
-       struct nfs2_fh  old_root;               /* 1 */
-       int             flags;                  /* 1 */
-       int             rsize;                  /* 1 */
-       int             wsize;                  /* 1 */
-       int             timeo;                  /* 1 */
-       int             retrans;                /* 1 */
-       int             acregmin;               /* 1 */
-       int             acregmax;               /* 1 */
-       int             acdirmin;               /* 1 */
-       int             acdirmax;               /* 1 */
-       struct sockaddr_in addr;                /* 1 */
-       char            hostname[256];          /* 1 */
-       int             namlen;                 /* 2 */
-       unsigned int    bsize;                  /* 3 */
-       struct nfs3_fh  root;                   /* 4 */
-};
-
-/* bits in the flags field */
-
-#define NFS_MOUNT_SOFT         0x0001  /* 1 */
-#define NFS_MOUNT_INTR         0x0002  /* 1 */
-#define NFS_MOUNT_SECURE       0x0004  /* 1 */
-#define NFS_MOUNT_POSIX                0x0008  /* 1 */
-#define NFS_MOUNT_NOCTO                0x0010  /* 1 */
-#define NFS_MOUNT_NOAC         0x0020  /* 1 */
-#define NFS_MOUNT_TCP          0x0040  /* 2 */
-#define NFS_MOUNT_VER3         0x0080  /* 3 */
-#define NFS_MOUNT_KERBEROS     0x0100  /* 3 */
-#define NFS_MOUNT_NONLM                0x0200  /* 3 */
-
-#endif
diff --git a/mount/nfsmount.c b/mount/nfsmount.c
deleted file mode 100644 (file)
index 1e76f9d..0000000
+++ /dev/null
@@ -1,883 +0,0 @@
-/*
- * nfsmount.c -- Linux NFS mount
- * Copyright (C) 1993 Rick Sladkey <jrs@world.std.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * Wed Feb  8 12:51:48 1995, biro@yggdrasil.com (Ross Biro): allow all port
- * numbers to be specified on the command line.
- *
- * Fri, 8 Mar 1996 18:01:39, Swen Thuemmler <swen@uni-paderborn.de>:
- * Omit the call to connect() for Linux version 1.3.11 or later.
- *
- * Wed Oct  1 23:55:28 1997: Dick Streefland <dick_streefland@tasking.com>
- * Implemented the "bg", "fg" and "retry" mount options for NFS.
- *
- * 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@pld.ORG.PL>
- * - added Native Language Support
- * 
- * Modified by Olaf Kirch and Trond Myklebust for new NFS code,
- * plus NFSv3 stuff.
- */
-
-/*
- * nfsmount.c,v 1.1.1.1 1993/11/18 08:40:51 jrs Exp
- */
-
-#include <unistd.h>
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
-#include <netdb.h>
-#include <time.h>
-#include <rpc/rpc.h>
-#include <rpc/pmap_prot.h>
-#include <rpc/pmap_clnt.h>
-#include <sys/socket.h>
-#include <sys/time.h>
-#include <sys/utsname.h>
-#include <sys/stat.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-
-#include "sundries.h"
-#include "nfsmount.h"
-
-#ifdef HAVE_RPCSVC_NFS_PROT_H
-#include <rpcsvc/nfs_prot.h>
-#else
-#include <linux/nfs.h>
-#define nfsstat nfs_stat
-#endif
-
-#include "mount_constants.h"
-#include "nfs_mount4.h"
-
-#include "nls.h"
-
-#ifndef NFS_PORT
-#define NFS_PORT 2049
-#endif
-#ifndef NFS_FHSIZE
-#define NFS_FHSIZE 32
-#endif
-
-static char *nfs_strerror(int stat);
-
-#define MAKE_VERSION(p,q,r)    (65536*(p) + 256*(q) + (r))
-
-#define MAX_NFSPROT ((nfs_mount_version >= 4) ? 3 : 2)
-
-static int
-linux_version_code(void) {
-       struct utsname my_utsname;
-       int p, q, r;
-
-       if (uname(&my_utsname) == 0) {
-               p = atoi(strtok(my_utsname.release, "."));
-               q = atoi(strtok(NULL, "."));
-               r = atoi(strtok(NULL, "."));
-               return MAKE_VERSION(p,q,r);
-       }
-       return 0;
-}
-
-/*
- * Unfortunately, the kernel prints annoying console messages
- * in case of an unexpected nfs mount version (instead of
- * just returning some error).  Therefore we'll have to try
- * and figure out what version the kernel expects.
- *
- * Variables:
- *     NFS_MOUNT_VERSION: these nfsmount sources at compile time
- *     nfs_mount_version: version this source and running kernel can handle
- */
-static int
-find_kernel_nfs_mount_version(void) {
-       static int kernel_version = -1;
-       int nfs_mount_version = NFS_MOUNT_VERSION;
-
-       if (kernel_version == -1)
-               kernel_version = linux_version_code();
-
-       if (kernel_version) {
-            if (kernel_version < MAKE_VERSION(2,1,32))
-                 nfs_mount_version = 1;
-            else if (kernel_version < MAKE_VERSION(2,2,18))
-                 nfs_mount_version = 3;
-            else if (kernel_version < MAKE_VERSION(2,3,0))
-                 nfs_mount_version = 4; /* since 2.2.18pre9 */
-            else if (kernel_version < MAKE_VERSION(2,3,99))
-                 nfs_mount_version = 3;
-            else
-                 nfs_mount_version = 4; /* since 2.3.99pre4 */
-       }
-       if (nfs_mount_version > NFS_MOUNT_VERSION)
-            nfs_mount_version = NFS_MOUNT_VERSION;
-       return nfs_mount_version;
-}
-
-static struct pmap *
-get_mountport(struct sockaddr_in *server_addr,
-      long unsigned prog,
-      long unsigned version,
-      long unsigned proto,
-      long unsigned port,
-      int nfs_mount_version)
-{
-       struct pmaplist *pmap;
-       static struct pmap p = {0, 0, 0, 0};
-
-       if (version > MAX_NFSPROT)
-               version = MAX_NFSPROT;
-       if (!prog)
-               prog = MOUNTPROG;
-       p.pm_prog = prog;
-       p.pm_vers = version;
-       p.pm_prot = proto;
-       p.pm_port = port;
-
-       server_addr->sin_port = PMAPPORT;
-       pmap = pmap_getmaps(server_addr);
-
-       while (pmap) {
-               if (pmap->pml_map.pm_prog != prog)
-                       goto next;
-               if (!version && p.pm_vers > pmap->pml_map.pm_vers)
-                       goto next;
-               if (version > 2 && pmap->pml_map.pm_vers != version)
-                       goto next;
-               if (version && version <= 2 && pmap->pml_map.pm_vers > 2)
-                       goto next;
-               if (pmap->pml_map.pm_vers > MAX_NFSPROT ||
-                   (proto && p.pm_prot && pmap->pml_map.pm_prot != proto) ||
-                   (port && pmap->pml_map.pm_port != port))
-                       goto next;
-               memcpy(&p, &pmap->pml_map, sizeof(p));
-       next:
-               pmap = pmap->pml_next;
-       }
-       if (!p.pm_vers)
-               p.pm_vers = MOUNTVERS;
-       if (!p.pm_prot)
-               p.pm_prot = IPPROTO_TCP;
-#if 0
-       if (!p.pm_port) {
-               p.pm_port = pmap_getport(server_addr, p.pm_prog, p.pm_vers,
-                                        p.pm_prot);
-       }
-#endif
-#if 0
-#define MOUNTPORT 635
-       /* HJLu wants to remove all traces of the old default port.
-          Are there still people running a mount RPC service on this
-          port without having a portmapper? */
-       if (!p.pm_port)
-               p.pm_port = MOUNTPORT;
-#endif
-       return &p;
-}
-
-int nfsmount(const char *spec, const char *node, int *flags,
-            char **extra_opts, char **mount_opts, int *nfs_mount_vers,
-            int running_bg)
-{
-       static char *prev_bg_host;
-       char hostdir[1024];
-       CLIENT *mclient;
-       char *hostname, *dirname, *old_opts, *mounthost = NULL;
-       char new_opts[1024];
-       struct timeval total_timeout;
-       enum clnt_stat clnt_stat;
-       static struct nfs_mount_data data;
-       char *opt, *opteq;
-       int nfs_mount_version;
-       int val;
-       struct hostent *hp;
-       struct sockaddr_in server_addr;
-       struct sockaddr_in mount_server_addr;
-       struct pmap *pm_mnt;
-       int msock, fsock;
-       struct timeval retry_timeout;
-       union {
-               struct fhstatus nfsv2;
-               struct mountres3 nfsv3;
-       } status;
-       struct stat statbuf;
-       char *s;
-       int port, mountport, proto, bg, soft, intr;
-       int posix, nocto, noac, nolock, broken_suid;
-       int retry, tcp;
-       int mountprog, mountvers, nfsprog, nfsvers;
-       int retval;
-       time_t t;
-       time_t prevt;
-       time_t timeout;
-
-       /* The version to try is either specified or 0
-          In case it is 0 we tell the caller what we tried */
-       if (!*nfs_mount_vers)
-               *nfs_mount_vers = find_kernel_nfs_mount_version();
-       nfs_mount_version = *nfs_mount_vers;
-
-       retval = EX_FAIL;
-       msock = fsock = -1;
-       mclient = NULL;
-       if (strlen(spec) >= sizeof(hostdir)) {
-               fprintf(stderr, _("mount: "
-                                 "excessively long host:dir argument\n"));
-               goto fail;
-       }
-       strcpy(hostdir, spec);
-       if ((s = strchr(hostdir, ':'))) {
-               hostname = hostdir;
-               dirname = s + 1;
-               *s = '\0';
-               /* Ignore all but first hostname in replicated mounts
-                  until they can be fully supported. (mack@sgi.com) */
-               if ((s = strchr(hostdir, ','))) {
-                       *s = '\0';
-                       fprintf(stderr,
-                               _("mount: warning: "
-                                 "multiple hostnames not supported\n"));
-               }
-       } else {
-               fprintf(stderr,
-                       _("mount: "
-                         "directory to mount not in host:dir format\n"));
-               goto fail;
-       }
-
-       server_addr.sin_family = AF_INET;
-#ifdef HAVE_INET_ATON
-       if (!inet_aton(hostname, &server_addr.sin_addr))
-#endif
-       {
-               if ((hp = gethostbyname(hostname)) == NULL) {
-                       fprintf(stderr, _("mount: can't get address for %s\n"),
-                               hostname);
-                       goto fail;
-               } else {
-                       if (hp->h_length > sizeof(struct in_addr)) {
-                               fprintf(stderr,
-                                       _("mount: got bad hp->h_length\n"));
-                               hp->h_length = sizeof(struct in_addr);
-                       }
-                       memcpy(&server_addr.sin_addr,
-                              hp->h_addr, hp->h_length);
-               }
-       }
-
-       memcpy (&mount_server_addr, &server_addr, sizeof (mount_server_addr));
-
-       /* add IP address to mtab options for use when unmounting */
-
-       s = inet_ntoa(server_addr.sin_addr);
-       old_opts = *extra_opts;
-       if (!old_opts)
-               old_opts = "";
-       if (strlen(old_opts) + strlen(s) + 10 >= sizeof(new_opts)) {
-               fprintf(stderr, _("mount: "
-                                 "excessively long option argument\n"));
-               goto fail;
-       }
-       sprintf(new_opts, "%s%saddr=%s",
-               old_opts, *old_opts ? "," : "", s);
-       *extra_opts = xstrdup(new_opts);
-
-       /* Set default options.
-        * rsize/wsize (and bsize, for ver >= 3) are left 0 in order to
-        * let the kernel decide.
-        * timeo is filled in after we know whether it'll be TCP or UDP. */
-       memset(&data, 0, sizeof(data));
-       data.retrans    = 3;
-       data.acregmin   = 3;
-       data.acregmax   = 60;
-       data.acdirmin   = 30;
-       data.acdirmax   = 60;
-#if NFS_MOUNT_VERSION >= 2
-       data.namlen     = NAME_MAX;
-#endif
-
-       bg = 0;
-       soft = 0;
-       intr = 0;
-       posix = 0;
-       nocto = 0;
-       nolock = 0;
-       broken_suid = 0;
-       noac = 0;
-       retry = 10000;          /* 10000 minutes ~ 1 week */
-       tcp = 0;
-
-       mountprog = MOUNTPROG;
-       mountvers = 0;
-       port = 0;
-       mountport = 0;
-       nfsprog = NFS_PROGRAM;
-       nfsvers = 0;
-
-       /* parse options */
-
-       for (opt = strtok(old_opts, ","); opt; opt = strtok(NULL, ",")) {
-               if ((opteq = strchr(opt, '='))) {
-                       val = atoi(opteq + 1);  
-                       *opteq = '\0';
-                       if (!strcmp(opt, "rsize"))
-                               data.rsize = val;
-                       else if (!strcmp(opt, "wsize"))
-                               data.wsize = val;
-                       else if (!strcmp(opt, "timeo"))
-                               data.timeo = val;
-                       else if (!strcmp(opt, "retrans"))
-                               data.retrans = val;
-                       else if (!strcmp(opt, "acregmin"))
-                               data.acregmin = val;
-                       else if (!strcmp(opt, "acregmax"))
-                               data.acregmax = val;
-                       else if (!strcmp(opt, "acdirmin"))
-                               data.acdirmin = val;
-                       else if (!strcmp(opt, "acdirmax"))
-                               data.acdirmax = val;
-                       else if (!strcmp(opt, "actimeo")) {
-                               data.acregmin = val;
-                               data.acregmax = val;
-                               data.acdirmin = val;
-                               data.acdirmax = val;
-                       }
-                       else if (!strcmp(opt, "retry"))
-                               retry = val;
-                       else if (!strcmp(opt, "port"))
-                               port = val;
-                       else if (!strcmp(opt, "mountport"))
-                               mountport = val;
-                       else if (!strcmp(opt, "mounthost"))
-                               mounthost=xstrndup(opteq+1,
-                                                  strcspn(opteq+1," \t\n\r,"));
-                       else if (!strcmp(opt, "mountprog"))
-                               mountprog = val;
-                       else if (!strcmp(opt, "mountvers"))
-                               mountvers = val;
-                       else if (!strcmp(opt, "nfsprog"))
-                               nfsprog = val;
-                       else if (!strcmp(opt, "nfsvers") ||
-                                !strcmp(opt, "vers"))
-                               nfsvers = val;
-                       else if (!strcmp(opt, "proto")) {
-                               if (!strncmp(opteq+1, "tcp", 3))
-                                       tcp = 1;
-                               else if (!strncmp(opteq+1, "udp", 3))
-                                       tcp = 0;
-                               else
-                                       printf(_("Warning: Unrecognized proto= option.\n"));
-                       } else if (!strcmp(opt, "namlen")) {
-#if NFS_MOUNT_VERSION >= 2
-                               if (nfs_mount_version >= 2)
-                                       data.namlen = val;
-                               else
-#endif
-                                       printf(_("Warning: Option namlen is not supported.\n"));
-                       } else if (!strcmp(opt, "addr")) {
-                               /* ignore */;
-                       } else {
-                               printf(_("unknown nfs mount parameter: "
-                                        "%s=%d\n"), opt, val);
-                               goto fail;
-                       }
-               } else {
-                       val = 1;
-                       if (!strncmp(opt, "no", 2)) {
-                               val = 0;
-                               opt += 2;
-                       }
-                       if (!strcmp(opt, "bg")) 
-                               bg = val;
-                       else if (!strcmp(opt, "fg")) 
-                               bg = !val;
-                       else if (!strcmp(opt, "soft"))
-                               soft = val;
-                       else if (!strcmp(opt, "hard"))
-                               soft = !val;
-                       else if (!strcmp(opt, "intr"))
-                               intr = val;
-                       else if (!strcmp(opt, "posix"))
-                               posix = val;
-                       else if (!strcmp(opt, "cto"))
-                               nocto = !val;
-                       else if (!strcmp(opt, "ac"))
-                               noac = !val;
-                       else if (!strcmp(opt, "tcp"))
-                               tcp = val;
-                       else if (!strcmp(opt, "udp"))
-                               tcp = !val;
-                       else if (!strcmp(opt, "lock")) {
-                               if (nfs_mount_version >= 3)
-                                       nolock = !val;
-                               else
-                                       printf(_("Warning: option nolock is not supported.\n"));
-                       } else if (!strcmp(opt, "broken_suid")) {
-                               broken_suid = val;
-                       } else {
-                               if (!sloppy) {
-                                       printf(_("unknown nfs mount option: "
-                                                "%s%s\n"), val ? "" : "no", opt);
-                                       goto fail;
-                               }
-                       }
-               }
-       }
-       proto = (tcp) ? IPPROTO_TCP : IPPROTO_UDP;
-
-       data.flags = (soft ? NFS_MOUNT_SOFT : 0)
-               | (intr ? NFS_MOUNT_INTR : 0)
-               | (posix ? NFS_MOUNT_POSIX : 0)
-               | (nocto ? NFS_MOUNT_NOCTO : 0)
-               | (noac ? NFS_MOUNT_NOAC : 0);
-#if NFS_MOUNT_VERSION >= 2
-       if (nfs_mount_version >= 2)
-               data.flags |= (tcp ? NFS_MOUNT_TCP : 0);
-#endif
-#if NFS_MOUNT_VERSION >= 3
-       if (nfs_mount_version >= 3)
-               data.flags |= (nolock ? NFS_MOUNT_NONLM : 0);
-#endif
-#if NFS_MOUNT_VERSION >= 4
-       if (nfs_mount_version >= 4)
-               data.flags |= (broken_suid ? NFS_MOUNT_BROKEN_SUID : 0);
-#endif
-       if (nfsvers > MAX_NFSPROT) {
-               fprintf(stderr, "NFSv%d not supported!\n", nfsvers);
-               return 0;
-       }
-       if (mountvers > MAX_NFSPROT) {
-               fprintf(stderr, "NFSv%d not supported!\n", nfsvers);
-               return 0;
-       }
-       if (nfsvers && !mountvers)
-               mountvers = (nfsvers < 3) ? 1 : nfsvers;
-       if (nfsvers && nfsvers < mountvers)
-               mountvers = nfsvers;
-
-       /* Adjust options if none specified */
-       if (!data.timeo)
-               data.timeo = tcp ? 70 : 7;
-
-#ifdef NFS_MOUNT_DEBUG
-       printf("rsize = %d, wsize = %d, timeo = %d, retrans = %d\n",
-              data.rsize, data.wsize, data.timeo, data.retrans);
-       printf("acreg (min, max) = (%d, %d), acdir (min, max) = (%d, %d)\n",
-              data.acregmin, data.acregmax, data.acdirmin, data.acdirmax);
-       printf("port = %d, bg = %d, retry = %d, flags = %.8x\n",
-              port, bg, retry, data.flags);
-       printf("mountprog = %d, mountvers = %d, nfsprog = %d, nfsvers = %d\n",
-              mountprog, mountvers, nfsprog, nfsvers);
-       printf("soft = %d, intr = %d, posix = %d, nocto = %d, noac = %d\n",
-              (data.flags & NFS_MOUNT_SOFT) != 0,
-              (data.flags & NFS_MOUNT_INTR) != 0,
-              (data.flags & NFS_MOUNT_POSIX) != 0,
-              (data.flags & NFS_MOUNT_NOCTO) != 0,
-              (data.flags & NFS_MOUNT_NOAC) != 0);
-#if NFS_MOUNT_VERSION >= 2
-       printf("tcp = %d\n",
-              (data.flags & NFS_MOUNT_TCP) != 0);
-#endif
-#endif
-
-       data.version = nfs_mount_version;
-       *mount_opts = (char *) &data;
-
-       if (*flags & MS_REMOUNT)
-               return 0;
-
-       /*
-        * If the previous mount operation on the same host was
-        * backgrounded, and the "bg" for this mount is also set,
-        * give up immediately, to avoid the initial timeout.
-        */
-       if (bg && !running_bg &&
-           prev_bg_host && strcmp(hostname, prev_bg_host) == 0) {
-               if (retry > 0)
-                       retval = EX_BG;
-               return retval;
-       }
-
-       /* create mount deamon client */
-       /* See if the nfs host = mount host. */
-       if (mounthost) {
-               if (mounthost[0] >= '0' && mounthost[0] <= '9') {
-                       mount_server_addr.sin_family = AF_INET;
-                       mount_server_addr.sin_addr.s_addr = inet_addr(hostname);
-               } else {
-                       if ((hp = gethostbyname(mounthost)) == NULL) {
-                               fprintf(stderr, _("mount: can't get address for %s\n"),
-                                       mounthost);
-                               goto fail;
-                       } else {
-                               if (hp->h_length > sizeof(struct in_addr)) {
-                                       fprintf(stderr,
-                                               _("mount: got bad hp->h_length?\n"));
-                                       hp->h_length = sizeof(struct in_addr);
-                               }
-                               mount_server_addr.sin_family = AF_INET;
-                               memcpy(&mount_server_addr.sin_addr,
-                                      hp->h_addr, hp->h_length);
-                       }
-               }
-       }
-
-       /*
-        * The following loop implements the mount retries. On the first
-        * call, "running_bg" is 0. When the mount times out, and the
-        * "bg" option is set, the exit status EX_BG will be returned.
-        * For a backgrounded mount, there will be a second call by the
-        * child process with "running_bg" set to 1.
-        *
-        * The case where the mount point is not present and the "bg"
-        * option is set, is treated as a timeout. This is done to
-        * support nested mounts.
-        *
-        * The "retry" count specified by the user is the number of
-        * minutes to retry before giving up.
-        *
-        * Only the first error message will be displayed.
-        */
-       retry_timeout.tv_sec = 3;
-       retry_timeout.tv_usec = 0;
-       total_timeout.tv_sec = 20;
-       total_timeout.tv_usec = 0;
-       timeout = time(NULL) + 60 * retry;
-       prevt = 0;
-       t = 30;
-       val = 1;
-
-       for (;;) {
-               if (bg && stat(node, &statbuf) == -1) {
-                       /* no mount point yet - sleep */
-                       if (running_bg) {
-                               sleep(val);     /* 1, 2, 4, 8, 16, 30, ... */
-                               val *= 2;
-                               if (val > 30)
-                                       val = 30;
-                       }
-               } else {
-                       /* be careful not to use too many CPU cycles */
-                       if (t - prevt < 30)
-                               sleep(30);
-
-                       pm_mnt = get_mountport(&mount_server_addr,
-                                              mountprog,
-                                              mountvers,
-                                              proto,
-                                              mountport,
-                                              nfs_mount_version);
-
-                       /* contact the mount daemon via TCP */
-                       mount_server_addr.sin_port = htons(pm_mnt->pm_port);
-                       msock = RPC_ANYSOCK;
-
-                       switch (pm_mnt->pm_prot) {
-                       case IPPROTO_UDP:
-                               mclient = clntudp_create(&mount_server_addr,
-                                                        pm_mnt->pm_prog,
-                                                        pm_mnt->pm_vers,
-                                                        retry_timeout,
-                                                        &msock);
-                               if (mclient)
-                                       break;
-                               mount_server_addr.sin_port =
-                                       htons(pm_mnt->pm_port);
-                               msock = RPC_ANYSOCK;
-                       case IPPROTO_TCP:
-                               mclient = clnttcp_create(&mount_server_addr,
-                                                        pm_mnt->pm_prog,
-                                                        pm_mnt->pm_vers,
-                                                        &msock, 0, 0);
-                               break;
-                       default:
-                               mclient = 0;
-                       }
-
-                       if (mclient) {
-                               /* try to mount hostname:dirname */
-                               mclient->cl_auth = authunix_create_default();
-
-                               /* make pointers in xdr_mountres3 NULL so
-                                * that xdr_array allocates memory for us
-                                */
-                               memset(&status, 0, sizeof(status));
-
-                               if (pm_mnt->pm_vers == 3)
-                                       clnt_stat = clnt_call(mclient,
-                                                    MOUNTPROC3_MNT,
-                                                    (xdrproc_t) xdr_dirpath,
-                                                    (caddr_t) &dirname,
-                                                    (xdrproc_t) xdr_mountres3,
-                                                    (caddr_t) &status,
-                                                    total_timeout);
-                               else
-                                       clnt_stat = clnt_call(mclient,
-                                                    MOUNTPROC_MNT,
-                                                    (xdrproc_t) xdr_dirpath,
-                                                    (caddr_t) &dirname,
-                                                    (xdrproc_t) xdr_fhstatus,
-                                                    (caddr_t) &status,
-                                                    total_timeout);
-
-                               if (clnt_stat == RPC_SUCCESS)
-                                       break;          /* we're done */
-#if 0
-                               /* errno? who sets errno? */
-                               /* this fragment breaks bg mounting */
-                               if (errno != ECONNREFUSED) {
-                                       clnt_perror(mclient, "mount");
-                                       goto fail;      /* don't retry */
-                               }
-#endif
-                               if (!running_bg && prevt == 0)
-                                       clnt_perror(mclient, "mount");
-                               auth_destroy(mclient->cl_auth);
-                               clnt_destroy(mclient);
-                               mclient = 0;
-                               close(msock);
-                       } else {
-                               if (!running_bg && prevt == 0)
-                                       clnt_pcreateerror("mount");
-                       }
-                       prevt = t;
-               }
-
-               if (!bg)
-                       goto fail;
-               if (!running_bg) {
-                       prev_bg_host = xstrdup(hostname);
-                       if (retry > 0)
-                               retval = EX_BG;
-                       goto fail;
-               }
-               t = time(NULL);
-               if (t >= timeout)
-                       goto fail;
-       }
-       nfsvers = (pm_mnt->pm_vers < 2) ? 2 : pm_mnt->pm_vers;
-
-       if (nfsvers == 2) {
-               if (status.nfsv2.fhs_status != 0) {
-                       fprintf(stderr,
-                               "mount: %s:%s failed, reason given by server: %s\n",
-                               hostname, dirname,
-                               nfs_strerror(status.nfsv2.fhs_status));
-                       goto fail;
-               }
-               memcpy(data.root.data,
-                      (char *) status.nfsv2.fhstatus_u.fhs_fhandle,
-                      NFS_FHSIZE);
-#if NFS_MOUNT_VERSION >= 4
-               data.root.size = NFS_FHSIZE;
-               memcpy(data.old_root.data,
-                      (char *) status.nfsv2.fhstatus_u.fhs_fhandle,
-                      NFS_FHSIZE);
-#endif
-       } else {
-#if NFS_MOUNT_VERSION >= 4
-               fhandle3 *fhandle;
-               if (status.nfsv3.fhs_status != 0) {
-                       fprintf(stderr,
-                               "mount: %s:%s failed, reason given by server: %s\n",
-                               hostname, dirname,
-                               nfs_strerror(status.nfsv3.fhs_status));
-                       goto fail;
-               }
-               fhandle = &status.nfsv3.mountres3_u.mountinfo.fhandle;
-               memset(data.old_root.data, 0, NFS_FHSIZE);
-               memset(&data.root, 0, sizeof(data.root));
-               data.root.size = fhandle->fhandle3_len;
-               memcpy(data.root.data,
-                      (char *) fhandle->fhandle3_val,
-                      fhandle->fhandle3_len);
-
-               data.flags |= NFS_MOUNT_VER3;
-#endif
-       }
-
-       /* create nfs socket for kernel */
-
-       if (tcp) {
-               if (nfs_mount_version < 3) {
-                       printf(_("NFS over TCP is not supported.\n"));
-                       goto fail;
-               }
-               fsock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
-       } else
-               fsock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
-       if (fsock < 0) {
-               perror(_("nfs socket"));
-               goto fail;
-       }
-       if (bindresvport(fsock, 0) < 0) {
-               perror(_("nfs bindresvport"));
-               goto fail;
-       }
-       if (port == 0) {
-               server_addr.sin_port = PMAPPORT;
-               port = pmap_getport(&server_addr, nfsprog, nfsvers,
-                                   tcp ? IPPROTO_TCP : IPPROTO_UDP);
-#if 1
-               /* Here we check to see if user is mounting with the
-                * tcp option.  If so, and if the portmap returns a
-                * '0' for port (service unavailable), we then exit,
-                * notifying the user, rather than hanging up mount.
-                */
-               if (port == 0 && tcp == 1) {
-                       perror(_("nfs server reported service unavailable"));
-                       goto fail;
-               }
-#endif
-
-               if (port == 0)
-                       port = NFS_PORT;
-#ifdef NFS_MOUNT_DEBUG
-               else
-                       printf(_("used portmapper to find NFS port\n"));
-#endif
-       }
-#ifdef NFS_MOUNT_DEBUG
-       printf(_("using port %d for nfs deamon\n"), port);
-#endif
-       server_addr.sin_port = htons(port);
-       /*
-        * connect() the socket for kernels 1.3.10 and below only,
-        * to avoid problems with multihomed hosts.
-        * --Swen
-        */
-       if (linux_version_code() <= 66314
-           && connect(fsock, (struct sockaddr *) &server_addr,
-                      sizeof (server_addr)) < 0) {
-               perror(_("nfs connect"));
-               goto fail;
-       }
-
-       /* prepare data structure for kernel */
-
-       data.fd = fsock;
-       memcpy((char *) &data.addr, (char *) &server_addr, sizeof(data.addr));
-       strncpy(data.hostname, hostname, sizeof(data.hostname));
-
-       /* clean up */
-
-       auth_destroy(mclient->cl_auth);
-       clnt_destroy(mclient);
-       close(msock);
-       return 0;
-
-       /* abort */
-
- fail:
-       if (msock != -1) {
-               if (mclient) {
-                       auth_destroy(mclient->cl_auth);
-                       clnt_destroy(mclient);
-               }
-               close(msock);
-       }
-       if (fsock != -1)
-               close(fsock);
-       return retval;
-}      
-
-/*
- * We need to translate between nfs status return values and
- * the local errno values which may not be the same.
- *
- * Andreas Schwab <schwab@LS5.informatik.uni-dortmund.de>: change errno:
- * "after #include <errno.h> the symbol errno is reserved for any use,
- *  it cannot even be used as a struct tag or field name".
- */
-
-#ifndef EDQUOT
-#define EDQUOT ENOSPC
-#endif
-
-static struct {
-       enum nfsstat stat;
-       int errnum;
-} nfs_errtbl[] = {
-       { NFS_OK,               0               },
-       { NFSERR_PERM,          EPERM           },
-       { NFSERR_NOENT,         ENOENT          },
-       { NFSERR_IO,            EIO             },
-       { NFSERR_NXIO,          ENXIO           },
-       { NFSERR_ACCES,         EACCES          },
-       { NFSERR_EXIST,         EEXIST          },
-       { NFSERR_NODEV,         ENODEV          },
-       { NFSERR_NOTDIR,        ENOTDIR         },
-       { NFSERR_ISDIR,         EISDIR          },
-#ifdef NFSERR_INVAL
-       { NFSERR_INVAL,         EINVAL          },      /* that Sun forgot */
-#endif
-       { NFSERR_FBIG,          EFBIG           },
-       { NFSERR_NOSPC,         ENOSPC          },
-       { NFSERR_ROFS,          EROFS           },
-       { NFSERR_NAMETOOLONG,   ENAMETOOLONG    },
-       { NFSERR_NOTEMPTY,      ENOTEMPTY       },
-       { NFSERR_DQUOT,         EDQUOT          },
-       { NFSERR_STALE,         ESTALE          },
-#ifdef EWFLUSH
-       { NFSERR_WFLUSH,        EWFLUSH         },
-#endif
-       /* Throw in some NFSv3 values for even more fun (HP returns these) */
-       { 71,                   EREMOTE         },
-
-       { -1,                   EIO             }
-};
-
-static char *nfs_strerror(int stat)
-{
-       int i;
-       static char buf[256];
-
-       for (i = 0; nfs_errtbl[i].stat != -1; i++) {
-               if (nfs_errtbl[i].stat == stat)
-                       return strerror(nfs_errtbl[i].errnum);
-       }
-       sprintf(buf, _("unknown nfs status return value: %d"), stat);
-       return buf;
-}
-
-#if 0
-int
-my_getport(struct in_addr server, struct timeval *timeo, ...)
-{
-        struct sockaddr_in sin;
-        struct pmap     pmap;
-        CLIENT          *clnt;
-        int             sock = RPC_ANYSOCK, port;
-
-        pmap.pm_prog = prog;
-        pmap.pm_vers = vers;
-        pmap.pm_prot = prot;
-        pmap.pm_port = 0;
-        sin.sin_family = AF_INET;
-        sin.sin_addr = server;
-        sin.sin_port = htons(111);
-        clnt = clntudp_create(&sin, 100000, 2, *timeo, &sock);
-        status = clnt_call(clnt, PMAP_GETPORT,
-                                &pmap, (xdrproc_t) xdr_pmap,
-                                &port, (xdrproc_t) xdr_uint);
-        if (status != SUCCESS) {
-            /* natter */
-                port = 0;
-        }
-
-        clnt_destroy(clnt);
-        close(sock);
-        return port;
-}
-#endif
diff --git a/mount/nfsmount.h b/mount/nfsmount.h
deleted file mode 100644 (file)
index aa4a93b..0000000
+++ /dev/null
@@ -1,328 +0,0 @@
-/*
- * Please do not edit this file.
- * It was generated using rpcgen.
- */
-
-#ifndef _NFSMOUNT_H_RPCGEN
-#define _NFSMOUNT_H_RPCGEN
-
-#include <rpc/rpc.h>
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part.  Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user or with the express written consent of
- * Sun Microsystems, Inc.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California  94043
- */
-/*
- * Copyright (c) 1985, 1990 by Sun Microsystems, Inc.
- */
-
-/* from @(#)mount.x    1.3 91/03/11 TIRPC 1.0 */
-#ifndef _rpcsvc_mount_h
-#define _rpcsvc_mount_h
-#include <asm/types.h>
-#define MNTPATHLEN 1024
-#define MNTNAMLEN 255
-#define FHSIZE 32
-#define FHSIZE3 64
-
-typedef char fhandle[FHSIZE];
-
-typedef struct {
-       u_int fhandle3_len;
-       char *fhandle3_val;
-} fhandle3;
-
-enum mountstat3 {
-       MNT_OK = 0,
-       MNT3ERR_PERM = 1,
-       MNT3ERR_NOENT = 2,
-       MNT3ERR_IO = 5,
-       MNT3ERR_ACCES = 13,
-       MNT3ERR_NOTDIR = 20,
-       MNT3ERR_INVAL = 22,
-       MNT3ERR_NAMETOOLONG = 63,
-       MNT3ERR_NOTSUPP = 10004,
-       MNT3ERR_SERVERFAULT = 10006,
-};
-typedef enum mountstat3 mountstat3;
-
-struct fhstatus {
-       u_int fhs_status;
-       union {
-               fhandle fhs_fhandle;
-       } fhstatus_u;
-};
-typedef struct fhstatus fhstatus;
-
-struct mountres3_ok {
-       fhandle3 fhandle;
-       struct {
-               u_int auth_flavours_len;
-               int *auth_flavours_val;
-       } auth_flavours;
-};
-typedef struct mountres3_ok mountres3_ok;
-
-struct mountres3 {
-       mountstat3 fhs_status;
-       union {
-               mountres3_ok mountinfo;
-       } mountres3_u;
-};
-typedef struct mountres3 mountres3;
-
-typedef char *dirpath;
-
-typedef char *name;
-
-typedef struct mountbody *mountlist;
-
-struct mountbody {
-       name ml_hostname;
-       dirpath ml_directory;
-       mountlist ml_next;
-};
-typedef struct mountbody mountbody;
-
-typedef struct groupnode *groups;
-
-struct groupnode {
-       name gr_name;
-       groups gr_next;
-};
-typedef struct groupnode groupnode;
-
-typedef struct exportnode *exports;
-
-struct exportnode {
-       dirpath ex_dir;
-       groups ex_groups;
-       exports ex_next;
-};
-typedef struct exportnode exportnode;
-
-struct ppathcnf {
-       int pc_link_max;
-       short pc_max_canon;
-       short pc_max_input;
-       short pc_name_max;
-       short pc_path_max;
-       short pc_pipe_buf;
-       u_char pc_vdisable;
-       char pc_xxx;
-       short pc_mask[2];
-};
-typedef struct ppathcnf ppathcnf;
-#endif /*!_rpcsvc_mount_h*/
-
-#define MOUNTPROG 100005
-#define MOUNTVERS 1
-
-#if defined(__STDC__) || defined(__cplusplus)
-#define MOUNTPROC_NULL 0
-extern  void * mountproc_null_1(void *, CLIENT *);
-extern  void * mountproc_null_1_svc(void *, struct svc_req *);
-#define MOUNTPROC_MNT 1
-extern  fhstatus * mountproc_mnt_1(dirpath *, CLIENT *);
-extern  fhstatus * mountproc_mnt_1_svc(dirpath *, struct svc_req *);
-#define MOUNTPROC_DUMP 2
-extern  mountlist * mountproc_dump_1(void *, CLIENT *);
-extern  mountlist * mountproc_dump_1_svc(void *, struct svc_req *);
-#define MOUNTPROC_UMNT 3
-extern  void * mountproc_umnt_1(dirpath *, CLIENT *);
-extern  void * mountproc_umnt_1_svc(dirpath *, struct svc_req *);
-#define MOUNTPROC_UMNTALL 4
-extern  void * mountproc_umntall_1(void *, CLIENT *);
-extern  void * mountproc_umntall_1_svc(void *, struct svc_req *);
-#define MOUNTPROC_EXPORT 5
-extern  exports * mountproc_export_1(void *, CLIENT *);
-extern  exports * mountproc_export_1_svc(void *, struct svc_req *);
-#define MOUNTPROC_EXPORTALL 6
-extern  exports * mountproc_exportall_1(void *, CLIENT *);
-extern  exports * mountproc_exportall_1_svc(void *, struct svc_req *);
-extern int mountprog_1_freeresult (SVCXPRT *, xdrproc_t, caddr_t);
-
-#else /* K&R C */
-#define MOUNTPROC_NULL 0
-extern  void * mountproc_null_1();
-extern  void * mountproc_null_1_svc();
-#define MOUNTPROC_MNT 1
-extern  fhstatus * mountproc_mnt_1();
-extern  fhstatus * mountproc_mnt_1_svc();
-#define MOUNTPROC_DUMP 2
-extern  mountlist * mountproc_dump_1();
-extern  mountlist * mountproc_dump_1_svc();
-#define MOUNTPROC_UMNT 3
-extern  void * mountproc_umnt_1();
-extern  void * mountproc_umnt_1_svc();
-#define MOUNTPROC_UMNTALL 4
-extern  void * mountproc_umntall_1();
-extern  void * mountproc_umntall_1_svc();
-#define MOUNTPROC_EXPORT 5
-extern  exports * mountproc_export_1();
-extern  exports * mountproc_export_1_svc();
-#define MOUNTPROC_EXPORTALL 6
-extern  exports * mountproc_exportall_1();
-extern  exports * mountproc_exportall_1_svc();
-extern int mountprog_1_freeresult ();
-#endif /* K&R C */
-#define MOUNTVERS_POSIX 2
-
-#if defined(__STDC__) || defined(__cplusplus)
-extern  void * mountproc_null_2(void *, CLIENT *);
-extern  void * mountproc_null_2_svc(void *, struct svc_req *);
-extern  fhstatus * mountproc_mnt_2(dirpath *, CLIENT *);
-extern  fhstatus * mountproc_mnt_2_svc(dirpath *, struct svc_req *);
-extern  mountlist * mountproc_dump_2(void *, CLIENT *);
-extern  mountlist * mountproc_dump_2_svc(void *, struct svc_req *);
-extern  void * mountproc_umnt_2(dirpath *, CLIENT *);
-extern  void * mountproc_umnt_2_svc(dirpath *, struct svc_req *);
-extern  void * mountproc_umntall_2(void *, CLIENT *);
-extern  void * mountproc_umntall_2_svc(void *, struct svc_req *);
-extern  exports * mountproc_export_2(void *, CLIENT *);
-extern  exports * mountproc_export_2_svc(void *, struct svc_req *);
-extern  exports * mountproc_exportall_2(void *, CLIENT *);
-extern  exports * mountproc_exportall_2_svc(void *, struct svc_req *);
-#define MOUNTPROC_PATHCONF 7
-extern  ppathcnf * mountproc_pathconf_2(dirpath *, CLIENT *);
-extern  ppathcnf * mountproc_pathconf_2_svc(dirpath *, struct svc_req *);
-extern int mountprog_2_freeresult (SVCXPRT *, xdrproc_t, caddr_t);
-
-#else /* K&R C */
-extern  void * mountproc_null_2();
-extern  void * mountproc_null_2_svc();
-extern  fhstatus * mountproc_mnt_2();
-extern  fhstatus * mountproc_mnt_2_svc();
-extern  mountlist * mountproc_dump_2();
-extern  mountlist * mountproc_dump_2_svc();
-extern  void * mountproc_umnt_2();
-extern  void * mountproc_umnt_2_svc();
-extern  void * mountproc_umntall_2();
-extern  void * mountproc_umntall_2_svc();
-extern  exports * mountproc_export_2();
-extern  exports * mountproc_export_2_svc();
-extern  exports * mountproc_exportall_2();
-extern  exports * mountproc_exportall_2_svc();
-#define MOUNTPROC_PATHCONF 7
-extern  ppathcnf * mountproc_pathconf_2();
-extern  ppathcnf * mountproc_pathconf_2_svc();
-extern int mountprog_2_freeresult ();
-#endif /* K&R C */
-#define MOUNT_V3 3
-
-#if defined(__STDC__) || defined(__cplusplus)
-#define MOUNTPROC3_NULL 0
-extern  void * mountproc3_null_3(void *, CLIENT *);
-extern  void * mountproc3_null_3_svc(void *, struct svc_req *);
-#define MOUNTPROC3_MNT 1
-extern  mountres3 * mountproc3_mnt_3(dirpath *, CLIENT *);
-extern  mountres3 * mountproc3_mnt_3_svc(dirpath *, struct svc_req *);
-#define MOUNTPROC3_DUMP 2
-extern  mountlist * mountproc3_dump_3(void *, CLIENT *);
-extern  mountlist * mountproc3_dump_3_svc(void *, struct svc_req *);
-#define MOUNTPROC3_UMNT 3
-extern  void * mountproc3_umnt_3(dirpath *, CLIENT *);
-extern  void * mountproc3_umnt_3_svc(dirpath *, struct svc_req *);
-#define MOUNTPROC3_UMNTALL 4
-extern  void * mountproc3_umntall_3(void *, CLIENT *);
-extern  void * mountproc3_umntall_3_svc(void *, struct svc_req *);
-#define MOUNTPROC3_EXPORT 5
-extern  exports * mountproc3_export_3(void *, CLIENT *);
-extern  exports * mountproc3_export_3_svc(void *, struct svc_req *);
-extern int mountprog_3_freeresult (SVCXPRT *, xdrproc_t, caddr_t);
-
-#else /* K&R C */
-#define MOUNTPROC3_NULL 0
-extern  void * mountproc3_null_3();
-extern  void * mountproc3_null_3_svc();
-#define MOUNTPROC3_MNT 1
-extern  mountres3 * mountproc3_mnt_3();
-extern  mountres3 * mountproc3_mnt_3_svc();
-#define MOUNTPROC3_DUMP 2
-extern  mountlist * mountproc3_dump_3();
-extern  mountlist * mountproc3_dump_3_svc();
-#define MOUNTPROC3_UMNT 3
-extern  void * mountproc3_umnt_3();
-extern  void * mountproc3_umnt_3_svc();
-#define MOUNTPROC3_UMNTALL 4
-extern  void * mountproc3_umntall_3();
-extern  void * mountproc3_umntall_3_svc();
-#define MOUNTPROC3_EXPORT 5
-extern  exports * mountproc3_export_3();
-extern  exports * mountproc3_export_3_svc();
-extern int mountprog_3_freeresult ();
-#endif /* K&R C */
-
-/* the xdr functions */
-
-#if defined(__STDC__) || defined(__cplusplus)
-extern  bool_t xdr_fhandle (XDR *, fhandle);
-extern  bool_t xdr_fhandle3 (XDR *, fhandle3*);
-extern  bool_t xdr_mountstat3 (XDR *, mountstat3*);
-extern  bool_t xdr_fhstatus (XDR *, fhstatus*);
-extern  bool_t xdr_mountres3_ok (XDR *, mountres3_ok*);
-extern  bool_t xdr_mountres3 (XDR *, mountres3*);
-extern  bool_t xdr_dirpath (XDR *, dirpath*);
-extern  bool_t xdr_name (XDR *, name*);
-extern  bool_t xdr_mountlist (XDR *, mountlist*);
-extern  bool_t xdr_mountbody (XDR *, mountbody*);
-extern  bool_t xdr_groups (XDR *, groups*);
-extern  bool_t xdr_groupnode (XDR *, groupnode*);
-extern  bool_t xdr_exports (XDR *, exports*);
-extern  bool_t xdr_exportnode (XDR *, exportnode*);
-extern  bool_t xdr_ppathcnf (XDR *, ppathcnf*);
-
-#else /* K&R C */
-extern bool_t xdr_fhandle ();
-extern bool_t xdr_fhandle3 ();
-extern bool_t xdr_mountstat3 ();
-extern bool_t xdr_fhstatus ();
-extern bool_t xdr_mountres3_ok ();
-extern bool_t xdr_mountres3 ();
-extern bool_t xdr_dirpath ();
-extern bool_t xdr_name ();
-extern bool_t xdr_mountlist ();
-extern bool_t xdr_mountbody ();
-extern bool_t xdr_groups ();
-extern bool_t xdr_groupnode ();
-extern bool_t xdr_exports ();
-extern bool_t xdr_exportnode ();
-extern bool_t xdr_ppathcnf ();
-
-#endif /* K&R C */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* !_NFSMOUNT_H_RPCGEN */
diff --git a/mount/nfsmount.x b/mount/nfsmount.x
deleted file mode 100644 (file)
index ad4bf99..0000000
+++ /dev/null
@@ -1,336 +0,0 @@
-%/*
-% * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
-% * unrestricted use provided that this legend is included on all tape
-% * media and as a part of the software program in whole or part.  Users
-% * may copy or modify Sun RPC without charge, but are not authorized
-% * to license or distribute it to anyone else except as part of a product or
-% * program developed by the user or with the express written consent of
-% * Sun Microsystems, Inc.
-% *
-% * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
-% * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
-% * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
-% *
-% * Sun RPC is provided with no support and without any obligation on the
-% * part of Sun Microsystems, Inc. to assist in its use, correction,
-% * modification or enhancement.
-% *
-% * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
-% * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
-% * OR ANY PART THEREOF.
-% *
-% * In no event will Sun Microsystems, Inc. be liable for any lost revenue
-% * or profits or other special, indirect and consequential damages, even if
-% * Sun has been advised of the possibility of such damages.
-% *
-% * Sun Microsystems, Inc.
-% * 2550 Garcia Avenue
-% * Mountain View, California  94043
-% */
-
-%/*
-% * Copyright (c) 1985, 1990 by Sun Microsystems, Inc.
-% */
-%
-%/* from @(#)mount.x   1.3 91/03/11 TIRPC 1.0 */
-
-/*
- * Protocol description for the mount program
- */
-
-#ifdef RPC_HDR
-%#ifndef _rpcsvc_mount_h
-%#define _rpcsvc_mount_h
-#endif
-
-#ifdef RPC_CLNT
-%#include <string.h>           /* for memset() */
-#endif
-%#include <asm/types.h>
-
-const MNTPATHLEN = 1024;       /* maximum bytes in a pathname argument */
-const MNTNAMLEN = 255;         /* maximum bytes in a name argument */
-const FHSIZE = 32;             /* size in bytes of a file handle */
-const FHSIZE3 = 64;            /* size in bytes of a file handle */
-
-/*
- * The fhandle is the file handle that the server passes to the client.
- * All file operations are done using the file handles to refer to a file
- * or a directory. The file handle can contain whatever information the
- * server needs to distinguish an individual file.
- */
-typedef opaque fhandle[FHSIZE];        
-typedef opaque fhandle3<FHSIZE3>;
-
-enum mountstat3 {
-       MNT_OK                  = 0,            /* no error */
-       MNT3ERR_PERM            = 1,            /* not owner */
-       MNT3ERR_NOENT           = 2,            /* No such file or directory */
-       MNT3ERR_IO              = 5,            /* I/O error */
-       MNT3ERR_ACCES           = 13,           /* Permission denied */
-       MNT3ERR_NOTDIR          = 20,           /* Not a directory */
-       MNT3ERR_INVAL           = 22,           /* Invalid argument */
-       MNT3ERR_NAMETOOLONG     = 63,           /* File name too long */
-       MNT3ERR_NOTSUPP         = 10004,        /* Operation not supported */
-       MNT3ERR_SERVERFAULT     = 10006         /* A failure on the server */
-};
-
-/*
- * If a status of zero is returned, the call completed successfully, and 
- * a file handle for the directory follows. A non-zero status indicates
- * some sort of error. The status corresponds with UNIX error numbers.
- */
-union fhstatus switch (unsigned fhs_status) {
-case 0:
-       fhandle fhs_fhandle;
-default:
-       void;
-};
-
-struct mountres3_ok {
-       fhandle3 fhandle;
-       int auth_flavours<>;
-};
-
-union mountres3 switch (mountstat3 fhs_status) {
-case MNT_OK:
-       mountres3_ok mountinfo;
-default:
-       void;
-};
-
-/*
- * The type dirpath is the pathname of a directory
- */
-typedef string dirpath<MNTPATHLEN>;
-
-/*
- * The type name is used for arbitrary names (hostnames, groupnames)
- */
-typedef string name<MNTNAMLEN>;
-
-/*
- * A list of who has what mounted
- */
-typedef struct mountbody *mountlist;
-struct mountbody {
-       name ml_hostname;
-       dirpath ml_directory;
-       mountlist ml_next;
-};
-
-/*
- * A list of netgroups
- */
-typedef struct groupnode *groups;
-struct groupnode {
-       name gr_name;
-       groups gr_next;
-};
-
-/*
- * A list of what is exported and to whom
- */
-typedef struct exportnode *exports;
-struct exportnode {
-       dirpath ex_dir;
-       groups ex_groups;
-       exports ex_next;
-};
-
-/*
- * POSIX pathconf information
- */
-struct ppathcnf {
-       int     pc_link_max;    /* max links allowed */
-       short   pc_max_canon;   /* max line len for a tty */
-       short   pc_max_input;   /* input a tty can eat all at once */
-       short   pc_name_max;    /* max file name length (dir entry) */
-       short   pc_path_max;    /* max path name length (/x/y/x/.. ) */
-       short   pc_pipe_buf;    /* size of a pipe (bytes) */
-       u_char  pc_vdisable;    /* safe char to turn off c_cc[i] */
-       char    pc_xxx;         /* alignment padding; cc_t == char */
-       short   pc_mask[2];     /* validity and boolean bits */
-};
-
-program MOUNTPROG {
-       /*
-        * Version one of the mount protocol communicates with version two
-        * of the NFS protocol. The only connecting point is the fhandle 
-        * structure, which is the same for both protocols.
-        */
-       version MOUNTVERS {
-               /*
-                * Does no work. It is made available in all RPC services
-                * to allow server reponse testing and timing
-                */
-               void
-               MOUNTPROC_NULL(void) = 0;
-
-               /*      
-                * If fhs_status is 0, then fhs_fhandle contains the
-                * file handle for the directory. This file handle may
-                * be used in the NFS protocol. This procedure also adds
-                * a new entry to the mount list for this client mounting
-                * the directory.
-                * Unix authentication required.
-                */
-               fhstatus 
-               MOUNTPROC_MNT(dirpath) = 1;
-
-               /*
-                * Returns the list of remotely mounted filesystems. The 
-                * mountlist contains one entry for each hostname and 
-                * directory pair.
-                */
-               mountlist
-               MOUNTPROC_DUMP(void) = 2;
-
-               /*
-                * Removes the mount list entry for the directory
-                * Unix authentication required.
-                */
-               void
-               MOUNTPROC_UMNT(dirpath) = 3;
-
-               /*
-                * Removes all of the mount list entries for this client
-                * Unix authentication required.
-                */
-               void
-               MOUNTPROC_UMNTALL(void) = 4;
-
-               /*
-                * Returns a list of all the exported filesystems, and which
-                * machines are allowed to import it.
-                */
-               exports
-               MOUNTPROC_EXPORT(void)  = 5;
-
-               /*
-                * Identical to MOUNTPROC_EXPORT above
-                */
-               exports
-               MOUNTPROC_EXPORTALL(void) = 6;
-       } = 1;
-
-       /*
-        * Version two of the mount protocol communicates with version two
-        * of the NFS protocol.
-        * The only difference from version one is the addition of a POSIX
-        * pathconf call.
-        */
-       version MOUNTVERS_POSIX {
-               /*
-                * Does no work. It is made available in all RPC services
-                * to allow server reponse testing and timing
-                */
-               void
-               MOUNTPROC_NULL(void) = 0;
-
-               /*      
-                * If fhs_status is 0, then fhs_fhandle contains the
-                * file handle for the directory. This file handle may
-                * be used in the NFS protocol. This procedure also adds
-                * a new entry to the mount list for this client mounting
-                * the directory.
-                * Unix authentication required.
-                */
-               fhstatus 
-               MOUNTPROC_MNT(dirpath) = 1;
-
-               /*
-                * Returns the list of remotely mounted filesystems. The 
-                * mountlist contains one entry for each hostname and 
-                * directory pair.
-                */
-               mountlist
-               MOUNTPROC_DUMP(void) = 2;
-
-               /*
-                * Removes the mount list entry for the directory
-                * Unix authentication required.
-                */
-               void
-               MOUNTPROC_UMNT(dirpath) = 3;
-
-               /*
-                * Removes all of the mount list entries for this client
-                * Unix authentication required.
-                */
-               void
-               MOUNTPROC_UMNTALL(void) = 4;
-
-               /*
-                * Returns a list of all the exported filesystems, and which
-                * machines are allowed to import it.
-                */
-               exports
-               MOUNTPROC_EXPORT(void)  = 5;
-
-               /*
-                * Identical to MOUNTPROC_EXPORT above
-                */
-               exports
-               MOUNTPROC_EXPORTALL(void) = 6;
-
-               /*
-                * POSIX pathconf info (Sun hack)
-                */
-               ppathcnf
-               MOUNTPROC_PATHCONF(dirpath) = 7;
-       } = 2;
-       version MOUNT_V3 {
-               /*
-                * Does no work. It is made available in all RPC services
-                * to allow server reponse testing and timing
-                */
-               void
-               MOUNTPROC3_NULL(void) = 0;
-
-               /*      
-                * If fhs_status is 0, then fhs_fhandle contains the
-                * file handle for the directory. This file handle may
-                * be used in the NFS protocol. This procedure also adds
-                * a new entry to the mount list for this client mounting
-                * the directory.
-                * Unix authentication required.
-                */
-               mountres3
-               MOUNTPROC3_MNT(dirpath) = 1;
-
-               /*
-                * Returns the list of remotely mounted filesystems. The 
-                * mountlist contains one entry for each hostname and 
-                * directory pair.
-                */
-               mountlist
-               MOUNTPROC3_DUMP(void) = 2;
-
-               /*
-                * Removes the mount list entry for the directory
-                * Unix authentication required.
-                */
-               void
-               MOUNTPROC3_UMNT(dirpath) = 3;
-
-               /*
-                * Removes all of the mount list entries for this client
-                * Unix authentication required.
-                */
-               void
-               MOUNTPROC3_UMNTALL(void) = 4;
-
-               /*
-                * Returns a list of all the exported filesystems, and which
-                * machines are allowed to import it.
-                */
-               exports
-               MOUNTPROC3_EXPORT(void)  = 5;
-
-       } = 3;
-} = 100005;
-
-#ifdef RPC_HDR
-%#endif /*!_rpcsvc_mount_h*/
-#endif
diff --git a/mount/nfsmount_clnt.c b/mount/nfsmount_clnt.c
deleted file mode 100644 (file)
index b518f60..0000000
+++ /dev/null
@@ -1,361 +0,0 @@
-/*
- * Please do not edit this file.
- * It was generated using rpcgen.
- */
-
-#include <memory.h> /* for memset */
-#include "nfsmount.h"
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part.  Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user or with the express written consent of
- * Sun Microsystems, Inc.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California  94043
- */
-/*
- * Copyright (c) 1985, 1990 by Sun Microsystems, Inc.
- */
-
-/* from @(#)mount.x    1.3 91/03/11 TIRPC 1.0 */
-#include <string.h> /* for memset() */
-#include <asm/types.h>
-
-/* Default timeout can be changed using clnt_control() */
-static struct timeval TIMEOUT = { 25, 0 };
-
-void *
-mountproc_null_1(void *argp, CLIENT *clnt)
-{
-       static char clnt_res;
-
-       memset((char *)&clnt_res, 0, sizeof(clnt_res));
-       if (clnt_call (clnt, MOUNTPROC_NULL,
-               (xdrproc_t) xdr_void, (caddr_t) argp,
-               (xdrproc_t) xdr_void, (caddr_t) &clnt_res,
-               TIMEOUT) != RPC_SUCCESS) {
-               return (NULL);
-       }
-       return ((void *)&clnt_res);
-}
-
-fhstatus *
-mountproc_mnt_1(dirpath *argp, CLIENT *clnt)
-{
-       static fhstatus clnt_res;
-
-       memset((char *)&clnt_res, 0, sizeof(clnt_res));
-       if (clnt_call (clnt, MOUNTPROC_MNT,
-               (xdrproc_t) xdr_dirpath, (caddr_t) argp,
-               (xdrproc_t) xdr_fhstatus, (caddr_t) &clnt_res,
-               TIMEOUT) != RPC_SUCCESS) {
-               return (NULL);
-       }
-       return (&clnt_res);
-}
-
-mountlist *
-mountproc_dump_1(void *argp, CLIENT *clnt)
-{
-       static mountlist clnt_res;
-
-       memset((char *)&clnt_res, 0, sizeof(clnt_res));
-       if (clnt_call (clnt, MOUNTPROC_DUMP,
-               (xdrproc_t) xdr_void, (caddr_t) argp,
-               (xdrproc_t) xdr_mountlist, (caddr_t) &clnt_res,
-               TIMEOUT) != RPC_SUCCESS) {
-               return (NULL);
-       }
-       return (&clnt_res);
-}
-
-void *
-mountproc_umnt_1(dirpath *argp, CLIENT *clnt)
-{
-       static char clnt_res;
-
-       memset((char *)&clnt_res, 0, sizeof(clnt_res));
-       if (clnt_call (clnt, MOUNTPROC_UMNT,
-               (xdrproc_t) xdr_dirpath, (caddr_t) argp,
-               (xdrproc_t) xdr_void, (caddr_t) &clnt_res,
-               TIMEOUT) != RPC_SUCCESS) {
-               return (NULL);
-       }
-       return ((void *)&clnt_res);
-}
-
-void *
-mountproc_umntall_1(void *argp, CLIENT *clnt)
-{
-       static char clnt_res;
-
-       memset((char *)&clnt_res, 0, sizeof(clnt_res));
-       if (clnt_call (clnt, MOUNTPROC_UMNTALL,
-               (xdrproc_t) xdr_void, (caddr_t) argp,
-               (xdrproc_t) xdr_void, (caddr_t) &clnt_res,
-               TIMEOUT) != RPC_SUCCESS) {
-               return (NULL);
-       }
-       return ((void *)&clnt_res);
-}
-
-exports *
-mountproc_export_1(void *argp, CLIENT *clnt)
-{
-       static exports clnt_res;
-
-       memset((char *)&clnt_res, 0, sizeof(clnt_res));
-       if (clnt_call (clnt, MOUNTPROC_EXPORT,
-               (xdrproc_t) xdr_void, (caddr_t) argp,
-               (xdrproc_t) xdr_exports, (caddr_t) &clnt_res,
-               TIMEOUT) != RPC_SUCCESS) {
-               return (NULL);
-       }
-       return (&clnt_res);
-}
-
-exports *
-mountproc_exportall_1(void *argp, CLIENT *clnt)
-{
-       static exports clnt_res;
-
-       memset((char *)&clnt_res, 0, sizeof(clnt_res));
-       if (clnt_call (clnt, MOUNTPROC_EXPORTALL,
-               (xdrproc_t) xdr_void, (caddr_t) argp,
-               (xdrproc_t) xdr_exports, (caddr_t) &clnt_res,
-               TIMEOUT) != RPC_SUCCESS) {
-               return (NULL);
-       }
-       return (&clnt_res);
-}
-
-void *
-mountproc_null_2(void *argp, CLIENT *clnt)
-{
-       static char clnt_res;
-
-       memset((char *)&clnt_res, 0, sizeof(clnt_res));
-       if (clnt_call (clnt, MOUNTPROC_NULL,
-               (xdrproc_t) xdr_void, (caddr_t) argp,
-               (xdrproc_t) xdr_void, (caddr_t) &clnt_res,
-               TIMEOUT) != RPC_SUCCESS) {
-               return (NULL);
-       }
-       return ((void *)&clnt_res);
-}
-
-fhstatus *
-mountproc_mnt_2(dirpath *argp, CLIENT *clnt)
-{
-       static fhstatus clnt_res;
-
-       memset((char *)&clnt_res, 0, sizeof(clnt_res));
-       if (clnt_call (clnt, MOUNTPROC_MNT,
-               (xdrproc_t) xdr_dirpath, (caddr_t) argp,
-               (xdrproc_t) xdr_fhstatus, (caddr_t) &clnt_res,
-               TIMEOUT) != RPC_SUCCESS) {
-               return (NULL);
-       }
-       return (&clnt_res);
-}
-
-mountlist *
-mountproc_dump_2(void *argp, CLIENT *clnt)
-{
-       static mountlist clnt_res;
-
-       memset((char *)&clnt_res, 0, sizeof(clnt_res));
-       if (clnt_call (clnt, MOUNTPROC_DUMP,
-               (xdrproc_t) xdr_void, (caddr_t) argp,
-               (xdrproc_t) xdr_mountlist, (caddr_t) &clnt_res,
-               TIMEOUT) != RPC_SUCCESS) {
-               return (NULL);
-       }
-       return (&clnt_res);
-}
-
-void *
-mountproc_umnt_2(dirpath *argp, CLIENT *clnt)
-{
-       static char clnt_res;
-
-       memset((char *)&clnt_res, 0, sizeof(clnt_res));
-       if (clnt_call (clnt, MOUNTPROC_UMNT,
-               (xdrproc_t) xdr_dirpath, (caddr_t) argp,
-               (xdrproc_t) xdr_void, (caddr_t) &clnt_res,
-               TIMEOUT) != RPC_SUCCESS) {
-               return (NULL);
-       }
-       return ((void *)&clnt_res);
-}
-
-void *
-mountproc_umntall_2(void *argp, CLIENT *clnt)
-{
-       static char clnt_res;
-
-       memset((char *)&clnt_res, 0, sizeof(clnt_res));
-       if (clnt_call (clnt, MOUNTPROC_UMNTALL,
-               (xdrproc_t) xdr_void, (caddr_t) argp,
-               (xdrproc_t) xdr_void, (caddr_t) &clnt_res,
-               TIMEOUT) != RPC_SUCCESS) {
-               return (NULL);
-       }
-       return ((void *)&clnt_res);
-}
-
-exports *
-mountproc_export_2(void *argp, CLIENT *clnt)
-{
-       static exports clnt_res;
-
-       memset((char *)&clnt_res, 0, sizeof(clnt_res));
-       if (clnt_call (clnt, MOUNTPROC_EXPORT,
-               (xdrproc_t) xdr_void, (caddr_t) argp,
-               (xdrproc_t) xdr_exports, (caddr_t) &clnt_res,
-               TIMEOUT) != RPC_SUCCESS) {
-               return (NULL);
-       }
-       return (&clnt_res);
-}
-
-exports *
-mountproc_exportall_2(void *argp, CLIENT *clnt)
-{
-       static exports clnt_res;
-
-       memset((char *)&clnt_res, 0, sizeof(clnt_res));
-       if (clnt_call (clnt, MOUNTPROC_EXPORTALL,
-               (xdrproc_t) xdr_void, (caddr_t) argp,
-               (xdrproc_t) xdr_exports, (caddr_t) &clnt_res,
-               TIMEOUT) != RPC_SUCCESS) {
-               return (NULL);
-       }
-       return (&clnt_res);
-}
-
-ppathcnf *
-mountproc_pathconf_2(dirpath *argp, CLIENT *clnt)
-{
-       static ppathcnf clnt_res;
-
-       memset((char *)&clnt_res, 0, sizeof(clnt_res));
-       if (clnt_call (clnt, MOUNTPROC_PATHCONF,
-               (xdrproc_t) xdr_dirpath, (caddr_t) argp,
-               (xdrproc_t) xdr_ppathcnf, (caddr_t) &clnt_res,
-               TIMEOUT) != RPC_SUCCESS) {
-               return (NULL);
-       }
-       return (&clnt_res);
-}
-
-void *
-mountproc3_null_3(void *argp, CLIENT *clnt)
-{
-       static char clnt_res;
-
-       memset((char *)&clnt_res, 0, sizeof(clnt_res));
-       if (clnt_call (clnt, MOUNTPROC3_NULL,
-               (xdrproc_t) xdr_void, (caddr_t) argp,
-               (xdrproc_t) xdr_void, (caddr_t) &clnt_res,
-               TIMEOUT) != RPC_SUCCESS) {
-               return (NULL);
-       }
-       return ((void *)&clnt_res);
-}
-
-mountres3 *
-mountproc3_mnt_3(dirpath *argp, CLIENT *clnt)
-{
-       static mountres3 clnt_res;
-
-       memset((char *)&clnt_res, 0, sizeof(clnt_res));
-       if (clnt_call (clnt, MOUNTPROC3_MNT,
-               (xdrproc_t) xdr_dirpath, (caddr_t) argp,
-               (xdrproc_t) xdr_mountres3, (caddr_t) &clnt_res,
-               TIMEOUT) != RPC_SUCCESS) {
-               return (NULL);
-       }
-       return (&clnt_res);
-}
-
-mountlist *
-mountproc3_dump_3(void *argp, CLIENT *clnt)
-{
-       static mountlist clnt_res;
-
-       memset((char *)&clnt_res, 0, sizeof(clnt_res));
-       if (clnt_call (clnt, MOUNTPROC3_DUMP,
-               (xdrproc_t) xdr_void, (caddr_t) argp,
-               (xdrproc_t) xdr_mountlist, (caddr_t) &clnt_res,
-               TIMEOUT) != RPC_SUCCESS) {
-               return (NULL);
-       }
-       return (&clnt_res);
-}
-
-void *
-mountproc3_umnt_3(dirpath *argp, CLIENT *clnt)
-{
-       static char clnt_res;
-
-       memset((char *)&clnt_res, 0, sizeof(clnt_res));
-       if (clnt_call (clnt, MOUNTPROC3_UMNT,
-               (xdrproc_t) xdr_dirpath, (caddr_t) argp,
-               (xdrproc_t) xdr_void, (caddr_t) &clnt_res,
-               TIMEOUT) != RPC_SUCCESS) {
-               return (NULL);
-       }
-       return ((void *)&clnt_res);
-}
-
-void *
-mountproc3_umntall_3(void *argp, CLIENT *clnt)
-{
-       static char clnt_res;
-
-       memset((char *)&clnt_res, 0, sizeof(clnt_res));
-       if (clnt_call (clnt, MOUNTPROC3_UMNTALL,
-               (xdrproc_t) xdr_void, (caddr_t) argp,
-               (xdrproc_t) xdr_void, (caddr_t) &clnt_res,
-               TIMEOUT) != RPC_SUCCESS) {
-               return (NULL);
-       }
-       return ((void *)&clnt_res);
-}
-
-exports *
-mountproc3_export_3(void *argp, CLIENT *clnt)
-{
-       static exports clnt_res;
-
-       memset((char *)&clnt_res, 0, sizeof(clnt_res));
-       if (clnt_call (clnt, MOUNTPROC3_EXPORT,
-               (xdrproc_t) xdr_void, (caddr_t) argp,
-               (xdrproc_t) xdr_exports, (caddr_t) &clnt_res,
-               TIMEOUT) != RPC_SUCCESS) {
-               return (NULL);
-       }
-       return (&clnt_res);
-}
diff --git a/mount/nfsmount_xdr.c b/mount/nfsmount_xdr.c
deleted file mode 100644 (file)
index e91fcbf..0000000
+++ /dev/null
@@ -1,329 +0,0 @@
-/*
- * Please do not edit this file.
- * It was generated using rpcgen.
- */
-
-#include "nfsmount.h"
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part.  Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user or with the express written consent of
- * Sun Microsystems, Inc.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California  94043
- */
-/*
- * Copyright (c) 1985, 1990 by Sun Microsystems, Inc.
- */
-
-/* from @(#)mount.x    1.3 91/03/11 TIRPC 1.0 */
-#include <asm/types.h>
-
-bool_t
-xdr_fhandle (XDR *xdrs, fhandle objp)
-{
-       register int32_t *buf;
-
-        if (!xdr_opaque (xdrs, objp, FHSIZE))
-                return FALSE;
-       return TRUE;
-}
-
-bool_t
-xdr_fhandle3 (XDR *xdrs, fhandle3 *objp)
-{
-       register int32_t *buf;
-
-        if (!xdr_bytes (xdrs, (char **)&objp->fhandle3_val, (u_int *) &objp->fhandle3_len, FHSIZE3))
-                return FALSE;
-       return TRUE;
-}
-
-bool_t
-xdr_mountstat3 (XDR *xdrs, mountstat3 *objp)
-{
-       register int32_t *buf;
-
-        if (!xdr_enum (xdrs, (enum_t *) objp))
-                return FALSE;
-       return TRUE;
-}
-
-bool_t
-xdr_fhstatus (XDR *xdrs, fhstatus *objp)
-{
-       register int32_t *buf;
-
-        if (!xdr_u_int (xdrs, &objp->fhs_status))
-                return FALSE;
-       switch (objp->fhs_status) {
-       case 0:
-                if (!xdr_fhandle (xdrs, objp->fhstatus_u.fhs_fhandle))
-                        return FALSE;
-               break;
-       default:
-               break;
-       }
-       return TRUE;
-}
-
-bool_t
-xdr_mountres3_ok (XDR *xdrs, mountres3_ok *objp)
-{
-       register int32_t *buf;
-
-        if (!xdr_fhandle3 (xdrs, &objp->fhandle))
-                return FALSE;
-        if (!xdr_array (xdrs, (char **)&objp->auth_flavours.auth_flavours_val, (u_int *) &objp->auth_flavours.auth_flavours_len, ~0,
-               sizeof (int), (xdrproc_t) xdr_int))
-                return FALSE;
-       return TRUE;
-}
-
-bool_t
-xdr_mountres3 (XDR *xdrs, mountres3 *objp)
-{
-       register int32_t *buf;
-
-        if (!xdr_mountstat3 (xdrs, &objp->fhs_status))
-                return FALSE;
-       switch (objp->fhs_status) {
-       case MNT_OK:
-                if (!xdr_mountres3_ok (xdrs, &objp->mountres3_u.mountinfo))
-                        return FALSE;
-               break;
-       default:
-               break;
-       }
-       return TRUE;
-}
-
-bool_t
-xdr_dirpath (XDR *xdrs, dirpath *objp)
-{
-       register int32_t *buf;
-
-        if (!xdr_string (xdrs, objp, MNTPATHLEN))
-                return FALSE;
-       return TRUE;
-}
-
-bool_t
-xdr_name (XDR *xdrs, name *objp)
-{
-       register int32_t *buf;
-
-        if (!xdr_string (xdrs, objp, MNTNAMLEN))
-                return FALSE;
-       return TRUE;
-}
-
-bool_t
-xdr_mountlist (XDR *xdrs, mountlist *objp)
-{
-       register int32_t *buf;
-
-        if (!xdr_pointer (xdrs, (char **)objp, sizeof (struct mountbody), (xdrproc_t) xdr_mountbody))
-                return FALSE;
-       return TRUE;
-}
-
-bool_t
-xdr_mountbody (XDR *xdrs, mountbody *objp)
-{
-       register int32_t *buf;
-
-        if (!xdr_name (xdrs, &objp->ml_hostname))
-                return FALSE;
-        if (!xdr_dirpath (xdrs, &objp->ml_directory))
-                return FALSE;
-        if (!xdr_mountlist (xdrs, &objp->ml_next))
-                return FALSE;
-       return TRUE;
-}
-
-bool_t
-xdr_groups (XDR *xdrs, groups *objp)
-{
-       register int32_t *buf;
-
-        if (!xdr_pointer (xdrs, (char **)objp, sizeof (struct groupnode), (xdrproc_t) xdr_groupnode))
-                return FALSE;
-       return TRUE;
-}
-
-bool_t
-xdr_groupnode (XDR *xdrs, groupnode *objp)
-{
-       register int32_t *buf;
-
-        if (!xdr_name (xdrs, &objp->gr_name))
-                return FALSE;
-        if (!xdr_groups (xdrs, &objp->gr_next))
-                return FALSE;
-       return TRUE;
-}
-
-bool_t
-xdr_exports (XDR *xdrs, exports *objp)
-{
-       register int32_t *buf;
-
-        if (!xdr_pointer (xdrs, (char **)objp, sizeof (struct exportnode), (xdrproc_t) xdr_exportnode))
-                return FALSE;
-       return TRUE;
-}
-
-bool_t
-xdr_exportnode (XDR *xdrs, exportnode *objp)
-{
-       register int32_t *buf;
-
-        if (!xdr_dirpath (xdrs, &objp->ex_dir))
-                return FALSE;
-        if (!xdr_groups (xdrs, &objp->ex_groups))
-                return FALSE;
-        if (!xdr_exports (xdrs, &objp->ex_next))
-                return FALSE;
-       return TRUE;
-}
-
-bool_t
-xdr_ppathcnf (XDR *xdrs, ppathcnf *objp)
-{
-       register int32_t *buf;
-
-       int i;
-
-       if (xdrs->x_op == XDR_ENCODE) {
-               buf = XDR_INLINE (xdrs, 6 * BYTES_PER_XDR_UNIT);
-               if (buf == NULL) {
-                        if (!xdr_int (xdrs, &objp->pc_link_max))
-                                return FALSE;
-                        if (!xdr_short (xdrs, &objp->pc_max_canon))
-                                return FALSE;
-                        if (!xdr_short (xdrs, &objp->pc_max_input))
-                                return FALSE;
-                        if (!xdr_short (xdrs, &objp->pc_name_max))
-                                return FALSE;
-                        if (!xdr_short (xdrs, &objp->pc_path_max))
-                                return FALSE;
-                        if (!xdr_short (xdrs, &objp->pc_pipe_buf))
-                                return FALSE;
-
-               } else {
-               IXDR_PUT_LONG(buf, objp->pc_link_max);
-               IXDR_PUT_SHORT(buf, objp->pc_max_canon);
-               IXDR_PUT_SHORT(buf, objp->pc_max_input);
-               IXDR_PUT_SHORT(buf, objp->pc_name_max);
-               IXDR_PUT_SHORT(buf, objp->pc_path_max);
-               IXDR_PUT_SHORT(buf, objp->pc_pipe_buf);
-               }
-                if (!xdr_u_char (xdrs, &objp->pc_vdisable))
-                        return FALSE;
-                if (!xdr_char (xdrs, &objp->pc_xxx))
-                        return FALSE;
-               buf = XDR_INLINE (xdrs, ( 2 ) * BYTES_PER_XDR_UNIT);
-               if (buf == NULL) {
-                        if (!xdr_vector (xdrs, (char *)objp->pc_mask, 2,
-                               sizeof (short), (xdrproc_t) xdr_short))
-                                return FALSE;
-               } else {
-                       {
-                               register short *genp;
-
-                               for (i = 0, genp = objp->pc_mask;
-                                       i < 2; ++i) {
-                                       IXDR_PUT_SHORT(buf, *genp++);
-                               }
-                       }
-               }
-               return TRUE;
-       } else if (xdrs->x_op == XDR_DECODE) {
-               buf = XDR_INLINE (xdrs, 6 * BYTES_PER_XDR_UNIT);
-               if (buf == NULL) {
-                        if (!xdr_int (xdrs, &objp->pc_link_max))
-                                return FALSE;
-                        if (!xdr_short (xdrs, &objp->pc_max_canon))
-                                return FALSE;
-                        if (!xdr_short (xdrs, &objp->pc_max_input))
-                                return FALSE;
-                        if (!xdr_short (xdrs, &objp->pc_name_max))
-                                return FALSE;
-                        if (!xdr_short (xdrs, &objp->pc_path_max))
-                                return FALSE;
-                        if (!xdr_short (xdrs, &objp->pc_pipe_buf))
-                                return FALSE;
-
-               } else {
-               objp->pc_link_max = IXDR_GET_LONG(buf);
-               objp->pc_max_canon = IXDR_GET_SHORT(buf);
-               objp->pc_max_input = IXDR_GET_SHORT(buf);
-               objp->pc_name_max = IXDR_GET_SHORT(buf);
-               objp->pc_path_max = IXDR_GET_SHORT(buf);
-               objp->pc_pipe_buf = IXDR_GET_SHORT(buf);
-               }
-                if (!xdr_u_char (xdrs, &objp->pc_vdisable))
-                        return FALSE;
-                if (!xdr_char (xdrs, &objp->pc_xxx))
-                        return FALSE;
-               buf = XDR_INLINE (xdrs, ( 2 ) * BYTES_PER_XDR_UNIT);
-               if (buf == NULL) {
-                        if (!xdr_vector (xdrs, (char *)objp->pc_mask, 2,
-                               sizeof (short), (xdrproc_t) xdr_short))
-                                return FALSE;
-               } else {
-                       {
-                               register short *genp;
-
-                               for (i = 0, genp = objp->pc_mask;
-                                       i < 2; ++i) {
-                                       *genp++ = IXDR_GET_SHORT(buf);
-                               }
-                       }
-               }
-        return TRUE;
-       }
-
-        if (!xdr_int (xdrs, &objp->pc_link_max))
-                return FALSE;
-        if (!xdr_short (xdrs, &objp->pc_max_canon))
-                return FALSE;
-        if (!xdr_short (xdrs, &objp->pc_max_input))
-                return FALSE;
-        if (!xdr_short (xdrs, &objp->pc_name_max))
-                return FALSE;
-        if (!xdr_short (xdrs, &objp->pc_path_max))
-                return FALSE;
-        if (!xdr_short (xdrs, &objp->pc_pipe_buf))
-                return FALSE;
-        if (!xdr_u_char (xdrs, &objp->pc_vdisable))
-                return FALSE;
-        if (!xdr_char (xdrs, &objp->pc_xxx))
-                return FALSE;
-        if (!xdr_vector (xdrs, (char *)objp->pc_mask, 2,
-               sizeof (short), (xdrproc_t) xdr_short))
-                return FALSE;
-       return TRUE;
-}
diff --git a/mount/rpcsvc/nfsmount.h b/mount/rpcsvc/nfsmount.h
deleted file mode 100644 (file)
index aa4a93b..0000000
+++ /dev/null
@@ -1,328 +0,0 @@
-/*
- * Please do not edit this file.
- * It was generated using rpcgen.
- */
-
-#ifndef _NFSMOUNT_H_RPCGEN
-#define _NFSMOUNT_H_RPCGEN
-
-#include <rpc/rpc.h>
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part.  Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user or with the express written consent of
- * Sun Microsystems, Inc.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California  94043
- */
-/*
- * Copyright (c) 1985, 1990 by Sun Microsystems, Inc.
- */
-
-/* from @(#)mount.x    1.3 91/03/11 TIRPC 1.0 */
-#ifndef _rpcsvc_mount_h
-#define _rpcsvc_mount_h
-#include <asm/types.h>
-#define MNTPATHLEN 1024
-#define MNTNAMLEN 255
-#define FHSIZE 32
-#define FHSIZE3 64
-
-typedef char fhandle[FHSIZE];
-
-typedef struct {
-       u_int fhandle3_len;
-       char *fhandle3_val;
-} fhandle3;
-
-enum mountstat3 {
-       MNT_OK = 0,
-       MNT3ERR_PERM = 1,
-       MNT3ERR_NOENT = 2,
-       MNT3ERR_IO = 5,
-       MNT3ERR_ACCES = 13,
-       MNT3ERR_NOTDIR = 20,
-       MNT3ERR_INVAL = 22,
-       MNT3ERR_NAMETOOLONG = 63,
-       MNT3ERR_NOTSUPP = 10004,
-       MNT3ERR_SERVERFAULT = 10006,
-};
-typedef enum mountstat3 mountstat3;
-
-struct fhstatus {
-       u_int fhs_status;
-       union {
-               fhandle fhs_fhandle;
-       } fhstatus_u;
-};
-typedef struct fhstatus fhstatus;
-
-struct mountres3_ok {
-       fhandle3 fhandle;
-       struct {
-               u_int auth_flavours_len;
-               int *auth_flavours_val;
-       } auth_flavours;
-};
-typedef struct mountres3_ok mountres3_ok;
-
-struct mountres3 {
-       mountstat3 fhs_status;
-       union {
-               mountres3_ok mountinfo;
-       } mountres3_u;
-};
-typedef struct mountres3 mountres3;
-
-typedef char *dirpath;
-
-typedef char *name;
-
-typedef struct mountbody *mountlist;
-
-struct mountbody {
-       name ml_hostname;
-       dirpath ml_directory;
-       mountlist ml_next;
-};
-typedef struct mountbody mountbody;
-
-typedef struct groupnode *groups;
-
-struct groupnode {
-       name gr_name;
-       groups gr_next;
-};
-typedef struct groupnode groupnode;
-
-typedef struct exportnode *exports;
-
-struct exportnode {
-       dirpath ex_dir;
-       groups ex_groups;
-       exports ex_next;
-};
-typedef struct exportnode exportnode;
-
-struct ppathcnf {
-       int pc_link_max;
-       short pc_max_canon;
-       short pc_max_input;
-       short pc_name_max;
-       short pc_path_max;
-       short pc_pipe_buf;
-       u_char pc_vdisable;
-       char pc_xxx;
-       short pc_mask[2];
-};
-typedef struct ppathcnf ppathcnf;
-#endif /*!_rpcsvc_mount_h*/
-
-#define MOUNTPROG 100005
-#define MOUNTVERS 1
-
-#if defined(__STDC__) || defined(__cplusplus)
-#define MOUNTPROC_NULL 0
-extern  void * mountproc_null_1(void *, CLIENT *);
-extern  void * mountproc_null_1_svc(void *, struct svc_req *);
-#define MOUNTPROC_MNT 1
-extern  fhstatus * mountproc_mnt_1(dirpath *, CLIENT *);
-extern  fhstatus * mountproc_mnt_1_svc(dirpath *, struct svc_req *);
-#define MOUNTPROC_DUMP 2
-extern  mountlist * mountproc_dump_1(void *, CLIENT *);
-extern  mountlist * mountproc_dump_1_svc(void *, struct svc_req *);
-#define MOUNTPROC_UMNT 3
-extern  void * mountproc_umnt_1(dirpath *, CLIENT *);
-extern  void * mountproc_umnt_1_svc(dirpath *, struct svc_req *);
-#define MOUNTPROC_UMNTALL 4
-extern  void * mountproc_umntall_1(void *, CLIENT *);
-extern  void * mountproc_umntall_1_svc(void *, struct svc_req *);
-#define MOUNTPROC_EXPORT 5
-extern  exports * mountproc_export_1(void *, CLIENT *);
-extern  exports * mountproc_export_1_svc(void *, struct svc_req *);
-#define MOUNTPROC_EXPORTALL 6
-extern  exports * mountproc_exportall_1(void *, CLIENT *);
-extern  exports * mountproc_exportall_1_svc(void *, struct svc_req *);
-extern int mountprog_1_freeresult (SVCXPRT *, xdrproc_t, caddr_t);
-
-#else /* K&R C */
-#define MOUNTPROC_NULL 0
-extern  void * mountproc_null_1();
-extern  void * mountproc_null_1_svc();
-#define MOUNTPROC_MNT 1
-extern  fhstatus * mountproc_mnt_1();
-extern  fhstatus * mountproc_mnt_1_svc();
-#define MOUNTPROC_DUMP 2
-extern  mountlist * mountproc_dump_1();
-extern  mountlist * mountproc_dump_1_svc();
-#define MOUNTPROC_UMNT 3
-extern  void * mountproc_umnt_1();
-extern  void * mountproc_umnt_1_svc();
-#define MOUNTPROC_UMNTALL 4
-extern  void * mountproc_umntall_1();
-extern  void * mountproc_umntall_1_svc();
-#define MOUNTPROC_EXPORT 5
-extern  exports * mountproc_export_1();
-extern  exports * mountproc_export_1_svc();
-#define MOUNTPROC_EXPORTALL 6
-extern  exports * mountproc_exportall_1();
-extern  exports * mountproc_exportall_1_svc();
-extern int mountprog_1_freeresult ();
-#endif /* K&R C */
-#define MOUNTVERS_POSIX 2
-
-#if defined(__STDC__) || defined(__cplusplus)
-extern  void * mountproc_null_2(void *, CLIENT *);
-extern  void * mountproc_null_2_svc(void *, struct svc_req *);
-extern  fhstatus * mountproc_mnt_2(dirpath *, CLIENT *);
-extern  fhstatus * mountproc_mnt_2_svc(dirpath *, struct svc_req *);
-extern  mountlist * mountproc_dump_2(void *, CLIENT *);
-extern  mountlist * mountproc_dump_2_svc(void *, struct svc_req *);
-extern  void * mountproc_umnt_2(dirpath *, CLIENT *);
-extern  void * mountproc_umnt_2_svc(dirpath *, struct svc_req *);
-extern  void * mountproc_umntall_2(void *, CLIENT *);
-extern  void * mountproc_umntall_2_svc(void *, struct svc_req *);
-extern  exports * mountproc_export_2(void *, CLIENT *);
-extern  exports * mountproc_export_2_svc(void *, struct svc_req *);
-extern  exports * mountproc_exportall_2(void *, CLIENT *);
-extern  exports * mountproc_exportall_2_svc(void *, struct svc_req *);
-#define MOUNTPROC_PATHCONF 7
-extern  ppathcnf * mountproc_pathconf_2(dirpath *, CLIENT *);
-extern  ppathcnf * mountproc_pathconf_2_svc(dirpath *, struct svc_req *);
-extern int mountprog_2_freeresult (SVCXPRT *, xdrproc_t, caddr_t);
-
-#else /* K&R C */
-extern  void * mountproc_null_2();
-extern  void * mountproc_null_2_svc();
-extern  fhstatus * mountproc_mnt_2();
-extern  fhstatus * mountproc_mnt_2_svc();
-extern  mountlist * mountproc_dump_2();
-extern  mountlist * mountproc_dump_2_svc();
-extern  void * mountproc_umnt_2();
-extern  void * mountproc_umnt_2_svc();
-extern  void * mountproc_umntall_2();
-extern  void * mountproc_umntall_2_svc();
-extern  exports * mountproc_export_2();
-extern  exports * mountproc_export_2_svc();
-extern  exports * mountproc_exportall_2();
-extern  exports * mountproc_exportall_2_svc();
-#define MOUNTPROC_PATHCONF 7
-extern  ppathcnf * mountproc_pathconf_2();
-extern  ppathcnf * mountproc_pathconf_2_svc();
-extern int mountprog_2_freeresult ();
-#endif /* K&R C */
-#define MOUNT_V3 3
-
-#if defined(__STDC__) || defined(__cplusplus)
-#define MOUNTPROC3_NULL 0
-extern  void * mountproc3_null_3(void *, CLIENT *);
-extern  void * mountproc3_null_3_svc(void *, struct svc_req *);
-#define MOUNTPROC3_MNT 1
-extern  mountres3 * mountproc3_mnt_3(dirpath *, CLIENT *);
-extern  mountres3 * mountproc3_mnt_3_svc(dirpath *, struct svc_req *);
-#define MOUNTPROC3_DUMP 2
-extern  mountlist * mountproc3_dump_3(void *, CLIENT *);
-extern  mountlist * mountproc3_dump_3_svc(void *, struct svc_req *);
-#define MOUNTPROC3_UMNT 3
-extern  void * mountproc3_umnt_3(dirpath *, CLIENT *);
-extern  void * mountproc3_umnt_3_svc(dirpath *, struct svc_req *);
-#define MOUNTPROC3_UMNTALL 4
-extern  void * mountproc3_umntall_3(void *, CLIENT *);
-extern  void * mountproc3_umntall_3_svc(void *, struct svc_req *);
-#define MOUNTPROC3_EXPORT 5
-extern  exports * mountproc3_export_3(void *, CLIENT *);
-extern  exports * mountproc3_export_3_svc(void *, struct svc_req *);
-extern int mountprog_3_freeresult (SVCXPRT *, xdrproc_t, caddr_t);
-
-#else /* K&R C */
-#define MOUNTPROC3_NULL 0
-extern  void * mountproc3_null_3();
-extern  void * mountproc3_null_3_svc();
-#define MOUNTPROC3_MNT 1
-extern  mountres3 * mountproc3_mnt_3();
-extern  mountres3 * mountproc3_mnt_3_svc();
-#define MOUNTPROC3_DUMP 2
-extern  mountlist * mountproc3_dump_3();
-extern  mountlist * mountproc3_dump_3_svc();
-#define MOUNTPROC3_UMNT 3
-extern  void * mountproc3_umnt_3();
-extern  void * mountproc3_umnt_3_svc();
-#define MOUNTPROC3_UMNTALL 4
-extern  void * mountproc3_umntall_3();
-extern  void * mountproc3_umntall_3_svc();
-#define MOUNTPROC3_EXPORT 5
-extern  exports * mountproc3_export_3();
-extern  exports * mountproc3_export_3_svc();
-extern int mountprog_3_freeresult ();
-#endif /* K&R C */
-
-/* the xdr functions */
-
-#if defined(__STDC__) || defined(__cplusplus)
-extern  bool_t xdr_fhandle (XDR *, fhandle);
-extern  bool_t xdr_fhandle3 (XDR *, fhandle3*);
-extern  bool_t xdr_mountstat3 (XDR *, mountstat3*);
-extern  bool_t xdr_fhstatus (XDR *, fhstatus*);
-extern  bool_t xdr_mountres3_ok (XDR *, mountres3_ok*);
-extern  bool_t xdr_mountres3 (XDR *, mountres3*);
-extern  bool_t xdr_dirpath (XDR *, dirpath*);
-extern  bool_t xdr_name (XDR *, name*);
-extern  bool_t xdr_mountlist (XDR *, mountlist*);
-extern  bool_t xdr_mountbody (XDR *, mountbody*);
-extern  bool_t xdr_groups (XDR *, groups*);
-extern  bool_t xdr_groupnode (XDR *, groupnode*);
-extern  bool_t xdr_exports (XDR *, exports*);
-extern  bool_t xdr_exportnode (XDR *, exportnode*);
-extern  bool_t xdr_ppathcnf (XDR *, ppathcnf*);
-
-#else /* K&R C */
-extern bool_t xdr_fhandle ();
-extern bool_t xdr_fhandle3 ();
-extern bool_t xdr_mountstat3 ();
-extern bool_t xdr_fhstatus ();
-extern bool_t xdr_mountres3_ok ();
-extern bool_t xdr_mountres3 ();
-extern bool_t xdr_dirpath ();
-extern bool_t xdr_name ();
-extern bool_t xdr_mountlist ();
-extern bool_t xdr_mountbody ();
-extern bool_t xdr_groups ();
-extern bool_t xdr_groupnode ();
-extern bool_t xdr_exports ();
-extern bool_t xdr_exportnode ();
-extern bool_t xdr_ppathcnf ();
-
-#endif /* K&R C */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* !_NFSMOUNT_H_RPCGEN */
diff --git a/mount/rpcsvc/nfsmount.x b/mount/rpcsvc/nfsmount.x
deleted file mode 100644 (file)
index ad4bf99..0000000
+++ /dev/null
@@ -1,336 +0,0 @@
-%/*
-% * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
-% * unrestricted use provided that this legend is included on all tape
-% * media and as a part of the software program in whole or part.  Users
-% * may copy or modify Sun RPC without charge, but are not authorized
-% * to license or distribute it to anyone else except as part of a product or
-% * program developed by the user or with the express written consent of
-% * Sun Microsystems, Inc.
-% *
-% * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
-% * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
-% * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
-% *
-% * Sun RPC is provided with no support and without any obligation on the
-% * part of Sun Microsystems, Inc. to assist in its use, correction,
-% * modification or enhancement.
-% *
-% * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
-% * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
-% * OR ANY PART THEREOF.
-% *
-% * In no event will Sun Microsystems, Inc. be liable for any lost revenue
-% * or profits or other special, indirect and consequential damages, even if
-% * Sun has been advised of the possibility of such damages.
-% *
-% * Sun Microsystems, Inc.
-% * 2550 Garcia Avenue
-% * Mountain View, California  94043
-% */
-
-%/*
-% * Copyright (c) 1985, 1990 by Sun Microsystems, Inc.
-% */
-%
-%/* from @(#)mount.x   1.3 91/03/11 TIRPC 1.0 */
-
-/*
- * Protocol description for the mount program
- */
-
-#ifdef RPC_HDR
-%#ifndef _rpcsvc_mount_h
-%#define _rpcsvc_mount_h
-#endif
-
-#ifdef RPC_CLNT
-%#include <string.h>           /* for memset() */
-#endif
-%#include <asm/types.h>
-
-const MNTPATHLEN = 1024;       /* maximum bytes in a pathname argument */
-const MNTNAMLEN = 255;         /* maximum bytes in a name argument */
-const FHSIZE = 32;             /* size in bytes of a file handle */
-const FHSIZE3 = 64;            /* size in bytes of a file handle */
-
-/*
- * The fhandle is the file handle that the server passes to the client.
- * All file operations are done using the file handles to refer to a file
- * or a directory. The file handle can contain whatever information the
- * server needs to distinguish an individual file.
- */
-typedef opaque fhandle[FHSIZE];        
-typedef opaque fhandle3<FHSIZE3>;
-
-enum mountstat3 {
-       MNT_OK                  = 0,            /* no error */
-       MNT3ERR_PERM            = 1,            /* not owner */
-       MNT3ERR_NOENT           = 2,            /* No such file or directory */
-       MNT3ERR_IO              = 5,            /* I/O error */
-       MNT3ERR_ACCES           = 13,           /* Permission denied */
-       MNT3ERR_NOTDIR          = 20,           /* Not a directory */
-       MNT3ERR_INVAL           = 22,           /* Invalid argument */
-       MNT3ERR_NAMETOOLONG     = 63,           /* File name too long */
-       MNT3ERR_NOTSUPP         = 10004,        /* Operation not supported */
-       MNT3ERR_SERVERFAULT     = 10006         /* A failure on the server */
-};
-
-/*
- * If a status of zero is returned, the call completed successfully, and 
- * a file handle for the directory follows. A non-zero status indicates
- * some sort of error. The status corresponds with UNIX error numbers.
- */
-union fhstatus switch (unsigned fhs_status) {
-case 0:
-       fhandle fhs_fhandle;
-default:
-       void;
-};
-
-struct mountres3_ok {
-       fhandle3 fhandle;
-       int auth_flavours<>;
-};
-
-union mountres3 switch (mountstat3 fhs_status) {
-case MNT_OK:
-       mountres3_ok mountinfo;
-default:
-       void;
-};
-
-/*
- * The type dirpath is the pathname of a directory
- */
-typedef string dirpath<MNTPATHLEN>;
-
-/*
- * The type name is used for arbitrary names (hostnames, groupnames)
- */
-typedef string name<MNTNAMLEN>;
-
-/*
- * A list of who has what mounted
- */
-typedef struct mountbody *mountlist;
-struct mountbody {
-       name ml_hostname;
-       dirpath ml_directory;
-       mountlist ml_next;
-};
-
-/*
- * A list of netgroups
- */
-typedef struct groupnode *groups;
-struct groupnode {
-       name gr_name;
-       groups gr_next;
-};
-
-/*
- * A list of what is exported and to whom
- */
-typedef struct exportnode *exports;
-struct exportnode {
-       dirpath ex_dir;
-       groups ex_groups;
-       exports ex_next;
-};
-
-/*
- * POSIX pathconf information
- */
-struct ppathcnf {
-       int     pc_link_max;    /* max links allowed */
-       short   pc_max_canon;   /* max line len for a tty */
-       short   pc_max_input;   /* input a tty can eat all at once */
-       short   pc_name_max;    /* max file name length (dir entry) */
-       short   pc_path_max;    /* max path name length (/x/y/x/.. ) */
-       short   pc_pipe_buf;    /* size of a pipe (bytes) */
-       u_char  pc_vdisable;    /* safe char to turn off c_cc[i] */
-       char    pc_xxx;         /* alignment padding; cc_t == char */
-       short   pc_mask[2];     /* validity and boolean bits */
-};
-
-program MOUNTPROG {
-       /*
-        * Version one of the mount protocol communicates with version two
-        * of the NFS protocol. The only connecting point is the fhandle 
-        * structure, which is the same for both protocols.
-        */
-       version MOUNTVERS {
-               /*
-                * Does no work. It is made available in all RPC services
-                * to allow server reponse testing and timing
-                */
-               void
-               MOUNTPROC_NULL(void) = 0;
-
-               /*      
-                * If fhs_status is 0, then fhs_fhandle contains the
-                * file handle for the directory. This file handle may
-                * be used in the NFS protocol. This procedure also adds
-                * a new entry to the mount list for this client mounting
-                * the directory.
-                * Unix authentication required.
-                */
-               fhstatus 
-               MOUNTPROC_MNT(dirpath) = 1;
-
-               /*
-                * Returns the list of remotely mounted filesystems. The 
-                * mountlist contains one entry for each hostname and 
-                * directory pair.
-                */
-               mountlist
-               MOUNTPROC_DUMP(void) = 2;
-
-               /*
-                * Removes the mount list entry for the directory
-                * Unix authentication required.
-                */
-               void
-               MOUNTPROC_UMNT(dirpath) = 3;
-
-               /*
-                * Removes all of the mount list entries for this client
-                * Unix authentication required.
-                */
-               void
-               MOUNTPROC_UMNTALL(void) = 4;
-
-               /*
-                * Returns a list of all the exported filesystems, and which
-                * machines are allowed to import it.
-                */
-               exports
-               MOUNTPROC_EXPORT(void)  = 5;
-
-               /*
-                * Identical to MOUNTPROC_EXPORT above
-                */
-               exports
-               MOUNTPROC_EXPORTALL(void) = 6;
-       } = 1;
-
-       /*
-        * Version two of the mount protocol communicates with version two
-        * of the NFS protocol.
-        * The only difference from version one is the addition of a POSIX
-        * pathconf call.
-        */
-       version MOUNTVERS_POSIX {
-               /*
-                * Does no work. It is made available in all RPC services
-                * to allow server reponse testing and timing
-                */
-               void
-               MOUNTPROC_NULL(void) = 0;
-
-               /*      
-                * If fhs_status is 0, then fhs_fhandle contains the
-                * file handle for the directory. This file handle may
-                * be used in the NFS protocol. This procedure also adds
-                * a new entry to the mount list for this client mounting
-                * the directory.
-                * Unix authentication required.
-                */
-               fhstatus 
-               MOUNTPROC_MNT(dirpath) = 1;
-
-               /*
-                * Returns the list of remotely mounted filesystems. The 
-                * mountlist contains one entry for each hostname and 
-                * directory pair.
-                */
-               mountlist
-               MOUNTPROC_DUMP(void) = 2;
-
-               /*
-                * Removes the mount list entry for the directory
-                * Unix authentication required.
-                */
-               void
-               MOUNTPROC_UMNT(dirpath) = 3;
-
-               /*
-                * Removes all of the mount list entries for this client
-                * Unix authentication required.
-                */
-               void
-               MOUNTPROC_UMNTALL(void) = 4;
-
-               /*
-                * Returns a list of all the exported filesystems, and which
-                * machines are allowed to import it.
-                */
-               exports
-               MOUNTPROC_EXPORT(void)  = 5;
-
-               /*
-                * Identical to MOUNTPROC_EXPORT above
-                */
-               exports
-               MOUNTPROC_EXPORTALL(void) = 6;
-
-               /*
-                * POSIX pathconf info (Sun hack)
-                */
-               ppathcnf
-               MOUNTPROC_PATHCONF(dirpath) = 7;
-       } = 2;
-       version MOUNT_V3 {
-               /*
-                * Does no work. It is made available in all RPC services
-                * to allow server reponse testing and timing
-                */
-               void
-               MOUNTPROC3_NULL(void) = 0;
-
-               /*      
-                * If fhs_status is 0, then fhs_fhandle contains the
-                * file handle for the directory. This file handle may
-                * be used in the NFS protocol. This procedure also adds
-                * a new entry to the mount list for this client mounting
-                * the directory.
-                * Unix authentication required.
-                */
-               mountres3
-               MOUNTPROC3_MNT(dirpath) = 1;
-
-               /*
-                * Returns the list of remotely mounted filesystems. The 
-                * mountlist contains one entry for each hostname and 
-                * directory pair.
-                */
-               mountlist
-               MOUNTPROC3_DUMP(void) = 2;
-
-               /*
-                * Removes the mount list entry for the directory
-                * Unix authentication required.
-                */
-               void
-               MOUNTPROC3_UMNT(dirpath) = 3;
-
-               /*
-                * Removes all of the mount list entries for this client
-                * Unix authentication required.
-                */
-               void
-               MOUNTPROC3_UMNTALL(void) = 4;
-
-               /*
-                * Returns a list of all the exported filesystems, and which
-                * machines are allowed to import it.
-                */
-               exports
-               MOUNTPROC3_EXPORT(void)  = 5;
-
-       } = 3;
-} = 100005;
-
-#ifdef RPC_HDR
-%#endif /*!_rpcsvc_mount_h*/
-#endif
diff --git a/mount/rpcsvc/nfsmount_clnt.c b/mount/rpcsvc/nfsmount_clnt.c
deleted file mode 100644 (file)
index b518f60..0000000
+++ /dev/null
@@ -1,361 +0,0 @@
-/*
- * Please do not edit this file.
- * It was generated using rpcgen.
- */
-
-#include <memory.h> /* for memset */
-#include "nfsmount.h"
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part.  Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user or with the express written consent of
- * Sun Microsystems, Inc.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California  94043
- */
-/*
- * Copyright (c) 1985, 1990 by Sun Microsystems, Inc.
- */
-
-/* from @(#)mount.x    1.3 91/03/11 TIRPC 1.0 */
-#include <string.h> /* for memset() */
-#include <asm/types.h>
-
-/* Default timeout can be changed using clnt_control() */
-static struct timeval TIMEOUT = { 25, 0 };
-
-void *
-mountproc_null_1(void *argp, CLIENT *clnt)
-{
-       static char clnt_res;
-
-       memset((char *)&clnt_res, 0, sizeof(clnt_res));
-       if (clnt_call (clnt, MOUNTPROC_NULL,
-               (xdrproc_t) xdr_void, (caddr_t) argp,
-               (xdrproc_t) xdr_void, (caddr_t) &clnt_res,
-               TIMEOUT) != RPC_SUCCESS) {
-               return (NULL);
-       }
-       return ((void *)&clnt_res);
-}
-
-fhstatus *
-mountproc_mnt_1(dirpath *argp, CLIENT *clnt)
-{
-       static fhstatus clnt_res;
-
-       memset((char *)&clnt_res, 0, sizeof(clnt_res));
-       if (clnt_call (clnt, MOUNTPROC_MNT,
-               (xdrproc_t) xdr_dirpath, (caddr_t) argp,
-               (xdrproc_t) xdr_fhstatus, (caddr_t) &clnt_res,
-               TIMEOUT) != RPC_SUCCESS) {
-               return (NULL);
-       }
-       return (&clnt_res);
-}
-
-mountlist *
-mountproc_dump_1(void *argp, CLIENT *clnt)
-{
-       static mountlist clnt_res;
-
-       memset((char *)&clnt_res, 0, sizeof(clnt_res));
-       if (clnt_call (clnt, MOUNTPROC_DUMP,
-               (xdrproc_t) xdr_void, (caddr_t) argp,
-               (xdrproc_t) xdr_mountlist, (caddr_t) &clnt_res,
-               TIMEOUT) != RPC_SUCCESS) {
-               return (NULL);
-       }
-       return (&clnt_res);
-}
-
-void *
-mountproc_umnt_1(dirpath *argp, CLIENT *clnt)
-{
-       static char clnt_res;
-
-       memset((char *)&clnt_res, 0, sizeof(clnt_res));
-       if (clnt_call (clnt, MOUNTPROC_UMNT,
-               (xdrproc_t) xdr_dirpath, (caddr_t) argp,
-               (xdrproc_t) xdr_void, (caddr_t) &clnt_res,
-               TIMEOUT) != RPC_SUCCESS) {
-               return (NULL);
-       }
-       return ((void *)&clnt_res);
-}
-
-void *
-mountproc_umntall_1(void *argp, CLIENT *clnt)
-{
-       static char clnt_res;
-
-       memset((char *)&clnt_res, 0, sizeof(clnt_res));
-       if (clnt_call (clnt, MOUNTPROC_UMNTALL,
-               (xdrproc_t) xdr_void, (caddr_t) argp,
-               (xdrproc_t) xdr_void, (caddr_t) &clnt_res,
-               TIMEOUT) != RPC_SUCCESS) {
-               return (NULL);
-       }
-       return ((void *)&clnt_res);
-}
-
-exports *
-mountproc_export_1(void *argp, CLIENT *clnt)
-{
-       static exports clnt_res;
-
-       memset((char *)&clnt_res, 0, sizeof(clnt_res));
-       if (clnt_call (clnt, MOUNTPROC_EXPORT,
-               (xdrproc_t) xdr_void, (caddr_t) argp,
-               (xdrproc_t) xdr_exports, (caddr_t) &clnt_res,
-               TIMEOUT) != RPC_SUCCESS) {
-               return (NULL);
-       }
-       return (&clnt_res);
-}
-
-exports *
-mountproc_exportall_1(void *argp, CLIENT *clnt)
-{
-       static exports clnt_res;
-
-       memset((char *)&clnt_res, 0, sizeof(clnt_res));
-       if (clnt_call (clnt, MOUNTPROC_EXPORTALL,
-               (xdrproc_t) xdr_void, (caddr_t) argp,
-               (xdrproc_t) xdr_exports, (caddr_t) &clnt_res,
-               TIMEOUT) != RPC_SUCCESS) {
-               return (NULL);
-       }
-       return (&clnt_res);
-}
-
-void *
-mountproc_null_2(void *argp, CLIENT *clnt)
-{
-       static char clnt_res;
-
-       memset((char *)&clnt_res, 0, sizeof(clnt_res));
-       if (clnt_call (clnt, MOUNTPROC_NULL,
-               (xdrproc_t) xdr_void, (caddr_t) argp,
-               (xdrproc_t) xdr_void, (caddr_t) &clnt_res,
-               TIMEOUT) != RPC_SUCCESS) {
-               return (NULL);
-       }
-       return ((void *)&clnt_res);
-}
-
-fhstatus *
-mountproc_mnt_2(dirpath *argp, CLIENT *clnt)
-{
-       static fhstatus clnt_res;
-
-       memset((char *)&clnt_res, 0, sizeof(clnt_res));
-       if (clnt_call (clnt, MOUNTPROC_MNT,
-               (xdrproc_t) xdr_dirpath, (caddr_t) argp,
-               (xdrproc_t) xdr_fhstatus, (caddr_t) &clnt_res,
-               TIMEOUT) != RPC_SUCCESS) {
-               return (NULL);
-       }
-       return (&clnt_res);
-}
-
-mountlist *
-mountproc_dump_2(void *argp, CLIENT *clnt)
-{
-       static mountlist clnt_res;
-
-       memset((char *)&clnt_res, 0, sizeof(clnt_res));
-       if (clnt_call (clnt, MOUNTPROC_DUMP,
-               (xdrproc_t) xdr_void, (caddr_t) argp,
-               (xdrproc_t) xdr_mountlist, (caddr_t) &clnt_res,
-               TIMEOUT) != RPC_SUCCESS) {
-               return (NULL);
-       }
-       return (&clnt_res);
-}
-
-void *
-mountproc_umnt_2(dirpath *argp, CLIENT *clnt)
-{
-       static char clnt_res;
-
-       memset((char *)&clnt_res, 0, sizeof(clnt_res));
-       if (clnt_call (clnt, MOUNTPROC_UMNT,
-               (xdrproc_t) xdr_dirpath, (caddr_t) argp,
-               (xdrproc_t) xdr_void, (caddr_t) &clnt_res,
-               TIMEOUT) != RPC_SUCCESS) {
-               return (NULL);
-       }
-       return ((void *)&clnt_res);
-}
-
-void *
-mountproc_umntall_2(void *argp, CLIENT *clnt)
-{
-       static char clnt_res;
-
-       memset((char *)&clnt_res, 0, sizeof(clnt_res));
-       if (clnt_call (clnt, MOUNTPROC_UMNTALL,
-               (xdrproc_t) xdr_void, (caddr_t) argp,
-               (xdrproc_t) xdr_void, (caddr_t) &clnt_res,
-               TIMEOUT) != RPC_SUCCESS) {
-               return (NULL);
-       }
-       return ((void *)&clnt_res);
-}
-
-exports *
-mountproc_export_2(void *argp, CLIENT *clnt)
-{
-       static exports clnt_res;
-
-       memset((char *)&clnt_res, 0, sizeof(clnt_res));
-       if (clnt_call (clnt, MOUNTPROC_EXPORT,
-               (xdrproc_t) xdr_void, (caddr_t) argp,
-               (xdrproc_t) xdr_exports, (caddr_t) &clnt_res,
-               TIMEOUT) != RPC_SUCCESS) {
-               return (NULL);
-       }
-       return (&clnt_res);
-}
-
-exports *
-mountproc_exportall_2(void *argp, CLIENT *clnt)
-{
-       static exports clnt_res;
-
-       memset((char *)&clnt_res, 0, sizeof(clnt_res));
-       if (clnt_call (clnt, MOUNTPROC_EXPORTALL,
-               (xdrproc_t) xdr_void, (caddr_t) argp,
-               (xdrproc_t) xdr_exports, (caddr_t) &clnt_res,
-               TIMEOUT) != RPC_SUCCESS) {
-               return (NULL);
-       }
-       return (&clnt_res);
-}
-
-ppathcnf *
-mountproc_pathconf_2(dirpath *argp, CLIENT *clnt)
-{
-       static ppathcnf clnt_res;
-
-       memset((char *)&clnt_res, 0, sizeof(clnt_res));
-       if (clnt_call (clnt, MOUNTPROC_PATHCONF,
-               (xdrproc_t) xdr_dirpath, (caddr_t) argp,
-               (xdrproc_t) xdr_ppathcnf, (caddr_t) &clnt_res,
-               TIMEOUT) != RPC_SUCCESS) {
-               return (NULL);
-       }
-       return (&clnt_res);
-}
-
-void *
-mountproc3_null_3(void *argp, CLIENT *clnt)
-{
-       static char clnt_res;
-
-       memset((char *)&clnt_res, 0, sizeof(clnt_res));
-       if (clnt_call (clnt, MOUNTPROC3_NULL,
-               (xdrproc_t) xdr_void, (caddr_t) argp,
-               (xdrproc_t) xdr_void, (caddr_t) &clnt_res,
-               TIMEOUT) != RPC_SUCCESS) {
-               return (NULL);
-       }
-       return ((void *)&clnt_res);
-}
-
-mountres3 *
-mountproc3_mnt_3(dirpath *argp, CLIENT *clnt)
-{
-       static mountres3 clnt_res;
-
-       memset((char *)&clnt_res, 0, sizeof(clnt_res));
-       if (clnt_call (clnt, MOUNTPROC3_MNT,
-               (xdrproc_t) xdr_dirpath, (caddr_t) argp,
-               (xdrproc_t) xdr_mountres3, (caddr_t) &clnt_res,
-               TIMEOUT) != RPC_SUCCESS) {
-               return (NULL);
-       }
-       return (&clnt_res);
-}
-
-mountlist *
-mountproc3_dump_3(void *argp, CLIENT *clnt)
-{
-       static mountlist clnt_res;
-
-       memset((char *)&clnt_res, 0, sizeof(clnt_res));
-       if (clnt_call (clnt, MOUNTPROC3_DUMP,
-               (xdrproc_t) xdr_void, (caddr_t) argp,
-               (xdrproc_t) xdr_mountlist, (caddr_t) &clnt_res,
-               TIMEOUT) != RPC_SUCCESS) {
-               return (NULL);
-       }
-       return (&clnt_res);
-}
-
-void *
-mountproc3_umnt_3(dirpath *argp, CLIENT *clnt)
-{
-       static char clnt_res;
-
-       memset((char *)&clnt_res, 0, sizeof(clnt_res));
-       if (clnt_call (clnt, MOUNTPROC3_UMNT,
-               (xdrproc_t) xdr_dirpath, (caddr_t) argp,
-               (xdrproc_t) xdr_void, (caddr_t) &clnt_res,
-               TIMEOUT) != RPC_SUCCESS) {
-               return (NULL);
-       }
-       return ((void *)&clnt_res);
-}
-
-void *
-mountproc3_umntall_3(void *argp, CLIENT *clnt)
-{
-       static char clnt_res;
-
-       memset((char *)&clnt_res, 0, sizeof(clnt_res));
-       if (clnt_call (clnt, MOUNTPROC3_UMNTALL,
-               (xdrproc_t) xdr_void, (caddr_t) argp,
-               (xdrproc_t) xdr_void, (caddr_t) &clnt_res,
-               TIMEOUT) != RPC_SUCCESS) {
-               return (NULL);
-       }
-       return ((void *)&clnt_res);
-}
-
-exports *
-mountproc3_export_3(void *argp, CLIENT *clnt)
-{
-       static exports clnt_res;
-
-       memset((char *)&clnt_res, 0, sizeof(clnt_res));
-       if (clnt_call (clnt, MOUNTPROC3_EXPORT,
-               (xdrproc_t) xdr_void, (caddr_t) argp,
-               (xdrproc_t) xdr_exports, (caddr_t) &clnt_res,
-               TIMEOUT) != RPC_SUCCESS) {
-               return (NULL);
-       }
-       return (&clnt_res);
-}
diff --git a/mount/rpcsvc/nfsmount_xdr.c b/mount/rpcsvc/nfsmount_xdr.c
deleted file mode 100644 (file)
index e91fcbf..0000000
+++ /dev/null
@@ -1,329 +0,0 @@
-/*
- * Please do not edit this file.
- * It was generated using rpcgen.
- */
-
-#include "nfsmount.h"
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part.  Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user or with the express written consent of
- * Sun Microsystems, Inc.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California  94043
- */
-/*
- * Copyright (c) 1985, 1990 by Sun Microsystems, Inc.
- */
-
-/* from @(#)mount.x    1.3 91/03/11 TIRPC 1.0 */
-#include <asm/types.h>
-
-bool_t
-xdr_fhandle (XDR *xdrs, fhandle objp)
-{
-       register int32_t *buf;
-
-        if (!xdr_opaque (xdrs, objp, FHSIZE))
-                return FALSE;
-       return TRUE;
-}
-
-bool_t
-xdr_fhandle3 (XDR *xdrs, fhandle3 *objp)
-{
-       register int32_t *buf;
-
-        if (!xdr_bytes (xdrs, (char **)&objp->fhandle3_val, (u_int *) &objp->fhandle3_len, FHSIZE3))
-                return FALSE;
-       return TRUE;
-}
-
-bool_t
-xdr_mountstat3 (XDR *xdrs, mountstat3 *objp)
-{
-       register int32_t *buf;
-
-        if (!xdr_enum (xdrs, (enum_t *) objp))
-                return FALSE;
-       return TRUE;
-}
-
-bool_t
-xdr_fhstatus (XDR *xdrs, fhstatus *objp)
-{
-       register int32_t *buf;
-
-        if (!xdr_u_int (xdrs, &objp->fhs_status))
-                return FALSE;
-       switch (objp->fhs_status) {
-       case 0:
-                if (!xdr_fhandle (xdrs, objp->fhstatus_u.fhs_fhandle))
-                        return FALSE;
-               break;
-       default:
-               break;
-       }
-       return TRUE;
-}
-
-bool_t
-xdr_mountres3_ok (XDR *xdrs, mountres3_ok *objp)
-{
-       register int32_t *buf;
-
-        if (!xdr_fhandle3 (xdrs, &objp->fhandle))
-                return FALSE;
-        if (!xdr_array (xdrs, (char **)&objp->auth_flavours.auth_flavours_val, (u_int *) &objp->auth_flavours.auth_flavours_len, ~0,
-               sizeof (int), (xdrproc_t) xdr_int))
-                return FALSE;
-       return TRUE;
-}
-
-bool_t
-xdr_mountres3 (XDR *xdrs, mountres3 *objp)
-{
-       register int32_t *buf;
-
-        if (!xdr_mountstat3 (xdrs, &objp->fhs_status))
-                return FALSE;
-       switch (objp->fhs_status) {
-       case MNT_OK:
-                if (!xdr_mountres3_ok (xdrs, &objp->mountres3_u.mountinfo))
-                        return FALSE;
-               break;
-       default:
-               break;
-       }
-       return TRUE;
-}
-
-bool_t
-xdr_dirpath (XDR *xdrs, dirpath *objp)
-{
-       register int32_t *buf;
-
-        if (!xdr_string (xdrs, objp, MNTPATHLEN))
-                return FALSE;
-       return TRUE;
-}
-
-bool_t
-xdr_name (XDR *xdrs, name *objp)
-{
-       register int32_t *buf;
-
-        if (!xdr_string (xdrs, objp, MNTNAMLEN))
-                return FALSE;
-       return TRUE;
-}
-
-bool_t
-xdr_mountlist (XDR *xdrs, mountlist *objp)
-{
-       register int32_t *buf;
-
-        if (!xdr_pointer (xdrs, (char **)objp, sizeof (struct mountbody), (xdrproc_t) xdr_mountbody))
-                return FALSE;
-       return TRUE;
-}
-
-bool_t
-xdr_mountbody (XDR *xdrs, mountbody *objp)
-{
-       register int32_t *buf;
-
-        if (!xdr_name (xdrs, &objp->ml_hostname))
-                return FALSE;
-        if (!xdr_dirpath (xdrs, &objp->ml_directory))
-                return FALSE;
-        if (!xdr_mountlist (xdrs, &objp->ml_next))
-                return FALSE;
-       return TRUE;
-}
-
-bool_t
-xdr_groups (XDR *xdrs, groups *objp)
-{
-       register int32_t *buf;
-
-        if (!xdr_pointer (xdrs, (char **)objp, sizeof (struct groupnode), (xdrproc_t) xdr_groupnode))
-                return FALSE;
-       return TRUE;
-}
-
-bool_t
-xdr_groupnode (XDR *xdrs, groupnode *objp)
-{
-       register int32_t *buf;
-
-        if (!xdr_name (xdrs, &objp->gr_name))
-                return FALSE;
-        if (!xdr_groups (xdrs, &objp->gr_next))
-                return FALSE;
-       return TRUE;
-}
-
-bool_t
-xdr_exports (XDR *xdrs, exports *objp)
-{
-       register int32_t *buf;
-
-        if (!xdr_pointer (xdrs, (char **)objp, sizeof (struct exportnode), (xdrproc_t) xdr_exportnode))
-                return FALSE;
-       return TRUE;
-}
-
-bool_t
-xdr_exportnode (XDR *xdrs, exportnode *objp)
-{
-       register int32_t *buf;
-
-        if (!xdr_dirpath (xdrs, &objp->ex_dir))
-                return FALSE;
-        if (!xdr_groups (xdrs, &objp->ex_groups))
-                return FALSE;
-        if (!xdr_exports (xdrs, &objp->ex_next))
-                return FALSE;
-       return TRUE;
-}
-
-bool_t
-xdr_ppathcnf (XDR *xdrs, ppathcnf *objp)
-{
-       register int32_t *buf;
-
-       int i;
-
-       if (xdrs->x_op == XDR_ENCODE) {
-               buf = XDR_INLINE (xdrs, 6 * BYTES_PER_XDR_UNIT);
-               if (buf == NULL) {
-                        if (!xdr_int (xdrs, &objp->pc_link_max))
-                                return FALSE;
-                        if (!xdr_short (xdrs, &objp->pc_max_canon))
-                                return FALSE;
-                        if (!xdr_short (xdrs, &objp->pc_max_input))
-                                return FALSE;
-                        if (!xdr_short (xdrs, &objp->pc_name_max))
-                                return FALSE;
-                        if (!xdr_short (xdrs, &objp->pc_path_max))
-                                return FALSE;
-                        if (!xdr_short (xdrs, &objp->pc_pipe_buf))
-                                return FALSE;
-
-               } else {
-               IXDR_PUT_LONG(buf, objp->pc_link_max);
-               IXDR_PUT_SHORT(buf, objp->pc_max_canon);
-               IXDR_PUT_SHORT(buf, objp->pc_max_input);
-               IXDR_PUT_SHORT(buf, objp->pc_name_max);
-               IXDR_PUT_SHORT(buf, objp->pc_path_max);
-               IXDR_PUT_SHORT(buf, objp->pc_pipe_buf);
-               }
-                if (!xdr_u_char (xdrs, &objp->pc_vdisable))
-                        return FALSE;
-                if (!xdr_char (xdrs, &objp->pc_xxx))
-                        return FALSE;
-               buf = XDR_INLINE (xdrs, ( 2 ) * BYTES_PER_XDR_UNIT);
-               if (buf == NULL) {
-                        if (!xdr_vector (xdrs, (char *)objp->pc_mask, 2,
-                               sizeof (short), (xdrproc_t) xdr_short))
-                                return FALSE;
-               } else {
-                       {
-                               register short *genp;
-
-                               for (i = 0, genp = objp->pc_mask;
-                                       i < 2; ++i) {
-                                       IXDR_PUT_SHORT(buf, *genp++);
-                               }
-                       }
-               }
-               return TRUE;
-       } else if (xdrs->x_op == XDR_DECODE) {
-               buf = XDR_INLINE (xdrs, 6 * BYTES_PER_XDR_UNIT);
-               if (buf == NULL) {
-                        if (!xdr_int (xdrs, &objp->pc_link_max))
-                                return FALSE;
-                        if (!xdr_short (xdrs, &objp->pc_max_canon))
-                                return FALSE;
-                        if (!xdr_short (xdrs, &objp->pc_max_input))
-                                return FALSE;
-                        if (!xdr_short (xdrs, &objp->pc_name_max))
-                                return FALSE;
-                        if (!xdr_short (xdrs, &objp->pc_path_max))
-                                return FALSE;
-                        if (!xdr_short (xdrs, &objp->pc_pipe_buf))
-                                return FALSE;
-
-               } else {
-               objp->pc_link_max = IXDR_GET_LONG(buf);
-               objp->pc_max_canon = IXDR_GET_SHORT(buf);
-               objp->pc_max_input = IXDR_GET_SHORT(buf);
-               objp->pc_name_max = IXDR_GET_SHORT(buf);
-               objp->pc_path_max = IXDR_GET_SHORT(buf);
-               objp->pc_pipe_buf = IXDR_GET_SHORT(buf);
-               }
-                if (!xdr_u_char (xdrs, &objp->pc_vdisable))
-                        return FALSE;
-                if (!xdr_char (xdrs, &objp->pc_xxx))
-                        return FALSE;
-               buf = XDR_INLINE (xdrs, ( 2 ) * BYTES_PER_XDR_UNIT);
-               if (buf == NULL) {
-                        if (!xdr_vector (xdrs, (char *)objp->pc_mask, 2,
-                               sizeof (short), (xdrproc_t) xdr_short))
-                                return FALSE;
-               } else {
-                       {
-                               register short *genp;
-
-                               for (i = 0, genp = objp->pc_mask;
-                                       i < 2; ++i) {
-                                       *genp++ = IXDR_GET_SHORT(buf);
-                               }
-                       }
-               }
-        return TRUE;
-       }
-
-        if (!xdr_int (xdrs, &objp->pc_link_max))
-                return FALSE;
-        if (!xdr_short (xdrs, &objp->pc_max_canon))
-                return FALSE;
-        if (!xdr_short (xdrs, &objp->pc_max_input))
-                return FALSE;
-        if (!xdr_short (xdrs, &objp->pc_name_max))
-                return FALSE;
-        if (!xdr_short (xdrs, &objp->pc_path_max))
-                return FALSE;
-        if (!xdr_short (xdrs, &objp->pc_pipe_buf))
-                return FALSE;
-        if (!xdr_u_char (xdrs, &objp->pc_vdisable))
-                return FALSE;
-        if (!xdr_char (xdrs, &objp->pc_xxx))
-                return FALSE;
-        if (!xdr_vector (xdrs, (char *)objp->pc_mask, 2,
-               sizeof (short), (xdrproc_t) xdr_short))
-                return FALSE;
-       return TRUE;
-}
index e6208e43571eb2e651e8ed0f78202ecf5bc7f5da..cdfbb42e53c5700d2a46f7dfc0d75f57aa5d9842 100644 (file)
@@ -16,7 +16,6 @@
 #include "sundries.h"
 #include "realpath.h"
 #include "xmalloc.h"
-#include "nfsmount.h"
 #include "nls.h"
 
 char *
index 98ebc77a6df1e80492551fb00975e1254ff55af3..081f3127c1364570b7468b89467010be3626385a 100644 (file)
 #include "env.h"
 #include "nls.h"
 
-#include <sys/socket.h>
-#include <sys/time.h>
-#include <netdb.h>
-#include <rpc/rpc.h>
-#include <rpc/pmap_clnt.h>
-#include <rpc/pmap_prot.h>
-#include "nfsmount.h"
-#include <arpa/inet.h>
-
 #if defined(MNT_FORCE)
 /* Interesting ... it seems libc knows about MNT_FORCE and presumably
    about umount2 as well -- need not do anything */
@@ -144,98 +135,6 @@ check_special_umountprog(const char *spec, const char *node,
        return 0;
 }
 
-static int xdr_dir(XDR *xdrsp, char *dirp)
-{
-      return (xdr_string(xdrsp, &dirp, MNTPATHLEN));
-}
-
-static int
-nfs_umount_rpc_call(const char *spec, const char *opts)
-{
-      register CLIENT *clp;
-      struct sockaddr_in saddr;
-      struct timeval pertry, try;
-      enum clnt_stat clnt_stat;
-      int port = 0;
-      int so = RPC_ANYSOCK;
-      struct hostent *hostp;
-      char *hostname;
-      char *dirname;
-      char *p;
-
-      if (spec == NULL || (p = strchr(spec,':')) == NULL)
-               return 0;
-      hostname = xstrndup(spec, p-spec);
-      dirname = xstrdup(p+1);
-#ifdef DEBUG
-      printf(_("host: %s, directory: %s\n"), hostname, dirname);
-#endif
-
-      if (opts && (p = strstr(opts, "addr="))) {
-          char *q;
-
-          free(hostname);
-          p += 5;
-          q = p;
-          while (*q && *q != ',') q++;
-          hostname = xstrndup(p,q-p);
-      }
-
-      if (opts && (p = strstr(opts, "mountport=")) && isdigit(*(p+10)))
-          port = atoi(p+10);
-
-      if (hostname[0] >= '0' && hostname[0] <= '9')
-          saddr.sin_addr.s_addr = inet_addr(hostname);
-      else {
-          if ((hostp = gethostbyname(hostname)) == NULL) {
-               fprintf(stderr, _("umount: can't get address for %s\n"),
-                       hostname);
-               return 1;
-          }
-          if (hostp->h_length > sizeof(struct in_addr)) {
-               fprintf(stderr, _("umount: got bad hostp->h_length\n"));
-               hostp->h_length = sizeof(struct in_addr);
-          }
-          memcpy(&saddr.sin_addr, hostp->h_addr, hostp->h_length);
-      }
-
-      saddr.sin_family = AF_INET;
-      saddr.sin_port = htons(port);
-      pertry.tv_sec = 3;
-      pertry.tv_usec = 0;
-      if (opts && (p = strstr(opts, "tcp"))) {
-          /* possibly: make sure option is not "notcp"
-             possibly: try udp if tcp fails */
-          if ((clp = clnttcp_create(&saddr, MOUNTPROG, MOUNTVERS,
-                                    &so, 0, 0)) == NULL) {
-               clnt_pcreateerror("Cannot MOUNTPROG RPC (tcp)");
-               return 1;
-          }
-      } else {
-           if ((clp = clntudp_create(&saddr, MOUNTPROG, MOUNTVERS,
-                                    pertry, &so)) == NULL) {
-               clnt_pcreateerror("Cannot MOUNTPROG RPC");
-               return 1;
-          }
-      }
-      clp->cl_auth = authunix_create_default();
-      try.tv_sec = 20;
-      try.tv_usec = 0;
-      clnt_stat = clnt_call(clp, MOUNTPROC_UMNT,
-                           (xdrproc_t) xdr_dir, dirname,
-                           (xdrproc_t) xdr_void, (caddr_t) 0,
-                           try);
-
-      if (clnt_stat != RPC_SUCCESS) {
-          clnt_perror(clp, "Bad UMNT RPC");
-          return 1;
-      }
-      auth_destroy(clp->cl_auth);
-      clnt_destroy(clp);
-
-      return 0;
-}
-
 /* complain about a failed umount */
 static void complain(int err, const char *dev) {
   switch (err) {
@@ -289,11 +188,6 @@ umount_one (const char *spec, const char *node, const char *type,
        if (check_special_umountprog(spec, node, type, &status))
                return status;
 
-       /* Ignore any RPC errors, so that you can umount the filesystem
-          if the server is down.  */
-       if (strcasecmp(type, "nfs") == 0)
-               nfs_umount_rpc_call(spec, opts);
        umnt_err = umnt_err2 = 0;
        if (lazy) {
                res = umount2 (node, MNT_DETACH);