2000-11-09 H.J. Lu <hjl@lucon.org>
authorhjl <hjl>
Thu, 9 Nov 2000 22:16:34 +0000 (22:16 +0000)
committerhjl <hjl>
Thu, 9 Nov 2000 22:16:34 +0000 (22:16 +0000)
* etc/redhat/nfs.init (start): Pass --no-tcp to mountd if
TCP is not supported by kernel.

* support/nfs/rpcmisc.c (rpc_init): Don't set _rpcfdtype to 0.

* utils/mountd/mountd.c (longopts): Add "-n/--no-tcp".
(main): Set to _rpcfdtype to SOCK_DGRAM for "-n/--no-tcp".

* utils/mountd/mountd.man: Updated for "-n/--no-tcp".

ChangeLog
etc/redhat/nfs.init
support/nfs/rpcmisc.c
utils/mountd/mountd.c
utils/mountd/mountd.man

index 633fb02..0022c1c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2000-11-09  H.J. Lu <hjl@lucon.org>
+
+       * etc/redhat/nfs.init (start): Pass --no-tcp to mountd if
+       TCP is not supported by kernel.
+
+       * support/nfs/rpcmisc.c (rpc_init): Don't set _rpcfdtype to 0.
+
+       * utils/mountd/mountd.c (longopts): Add "-n/--no-tcp".
+       (main): Set to _rpcfdtype to SOCK_DGRAM for "-n/--no-tcp".
+
+       * utils/mountd/mountd.man: Updated for "-n/--no-tcp".
+
 2000-10-24  Lon Hohberger <hohberger@missioncriticallinux.com>
 
        * utils/statd/callback.c: Fix bug preventing callbacks to local lockd.
index 5a40f4f..836d60d 100755 (executable)
@@ -50,6 +50,12 @@ case "$1" in
                RPCMOUNTDOPTS="--no-nfs-version 3"
        fi
 
+       # Let's see if we support NFS version 3.
+       /usr/sbin/rpcinfo -p localhost | grep nfs | grep tcp &>/dev/null
+       if [ $? -ne 0 ]; then
+               RPCMOUNTDOPTS="$RPCMOUNTDOPTS --no-tcp"
+       fi
+
        echo -n "Starting NFS mountd: "
        daemon rpc.mountd $RPCMOUNTDOPTS
        echo
index 457d642..4bb4ec8 100644 (file)
@@ -50,9 +50,9 @@ rpc_init(char *name, int prog, int vers, void (*dispatch)(), int defport,
 
        asize = sizeof(saddr);
        sock = 0;
-       _rpcfdtype = 0;
        if (getsockname(0, (struct sockaddr *) &saddr, &asize) == 0) {
                int ssize = sizeof (int);
+               _rpcfdtype = 0;
                if (saddr.sin_family != AF_INET)
                        xlog(L_FATAL, "init: stdin is bound to non-inet addr");
                if (getsockopt(0, SOL_SOCKET, SO_TYPE,
index d79bf15..4df7083 100644 (file)
@@ -36,6 +36,7 @@ static struct option longopts[] =
        { "no-nfs-version", 1, 0, 'N' },
        { "version", 0, 0, 'v' },
        { "port", 1, 0, 'p' },
+       { "no-tcp", 0, 0, 'n' },
        { NULL, 0, 0, 0 }
 };
 
@@ -419,6 +420,9 @@ main(int argc, char **argv)
                case 'N':
                        nfs_version &= ~(1 << (atoi (optarg) - 1));
                        break;
+               case 'n':
+                       _rpcfdtype = SOCK_DGRAM;
+                       break;
                case 'V':
                        nfs_version |= 1 << (atoi (optarg) - 1);
                        break;
@@ -499,6 +503,6 @@ usage(const char *prog, int n)
 "Usage: %s [-Fhnv] [-d kind] [-f exports-file] [-V version]\n"
 "      [-N version] [--debug kind] [-p|--port port] [--help] [--version]\n"
 "      [--exports-file=file] [--nfs-version version]\n"
-"      [--no-nfs-version version]\n", prog);
+"      [--no-nfs-version version] [--no-tcp]\n", prog);
        exit(n);
 }
index 9dff681..c38d5e2 100644 (file)
@@ -83,6 +83,9 @@ NFS kernel module was compiled without support for NFSv3,
 must be invoked with the option
 .B "\-\-no-nfs-version 3" .
 .TP
+.B \-n " or " \-\-no-tcp
+Don't advertise TCP for mount.
+.TP
 .B \-P
 Ignored (compatibility with unfsd??).
 .TP