Add the ability to turn off UDP listeners with the new "-u | --no-udp" flag. Signed-off-by: Steve Dickson <steved@xxxxxxxxxx> --- support/nfs/svc_create.c | 3 +++ utils/mountd/mountd.c | 10 +++++++--- utils/mountd/mountd.man | 3 +++ 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/support/nfs/svc_create.c b/support/nfs/svc_create.c index 9ae2965..6b9e85b 100644 --- a/support/nfs/svc_create.c +++ b/support/nfs/svc_create.c @@ -419,6 +419,9 @@ nfs_svc_create(char *name, const rpcprog_t program, const rpcvers_t version, continue; visible++; + if (!strcmp(nconf->nc_proto, NC_UDP) && !NFSCTL_UDPISSET(_rpcprotobits)) + continue; + if (!strcmp(nconf->nc_proto, NC_TCP) && !NFSCTL_TCPISSET(_rpcprotobits)) continue; diff --git a/utils/mountd/mountd.c b/utils/mountd/mountd.c index f918472..9fe0f40 100644 --- a/utils/mountd/mountd.c +++ b/utils/mountd/mountd.c @@ -68,6 +68,7 @@ static struct option longopts[] = { "num-threads", 1, 0, 't' }, { "reverse-lookup", 0, 0, 'r' }, { "manage-gids", 0, 0, 'g' }, + { "no-udp", 0, 0, 'u' }, { NULL, 0, 0, 0 } }; @@ -708,7 +709,7 @@ main(int argc, char **argv) /* Parse the command line options and arguments. */ opterr = 0; - while ((c = getopt_long(argc, argv, "o:nFd:f:p:P:hH:N:V:vrs:t:g", longopts, NULL)) != EOF) + while ((c = getopt_long(argc, argv, "o:nFd:f:p:P:hH:N:V:vurs:t:g", longopts, NULL)) != EOF) switch (c) { case 'g': manage_gids = 1; @@ -782,6 +783,9 @@ main(int argc, char **argv) case 'v': printf("%s version " VERSION "\n", progname); exit(0); + case 'u': + NFSCTL_UDPUNSET(_rpcprotobits); + break; case 0: break; case '?': @@ -849,7 +853,7 @@ main(int argc, char **argv) listeners += nfs_svc_create("mountd", MOUNTPROG, MOUNTVERS_NFSV3, mount_dispatch, port); if (version23() && listeners == 0) - xlog(L_FATAL, "mountd: could not create listeners\n"); + xlog(L_WARNING, "mountd: No V2 or V3 listeners created!"); sa.sa_handler = killer; sigaction(SIGINT, &sa, NULL); @@ -907,6 +911,6 @@ usage(const char *prog, int n) " [-p|--port port] [-V version|--nfs-version version]\n" " [-N version|--no-nfs-version version] [-n|--no-tcp]\n" " [-H ha-callout-prog] [-s|--state-directory-path path]\n" -" [-g|--manage-gids] [-t num|--num-threads=num]\n", prog); +" [-g|--manage-gids] [-t num|--num-threads=num] [-u|--no-udp]\n", prog); exit(n); } diff --git a/utils/mountd/mountd.man b/utils/mountd/mountd.man index b60dc90..e59a559 100644 --- a/utils/mountd/mountd.man +++ b/utils/mountd/mountd.man @@ -181,6 +181,9 @@ threads are usually only needed for NFS servers which need to handle mount storms of hundreds of NFS mounts in a few seconds, or when your DNS server is slow or unreliable. .TP +.B \-u " or " \-\-no-udp +Don't advertise UDP for mounting +.TP .B \-V " or " \-\-nfs-version This option can be used to request that .B rpc.mountd -- 1.8.3.1 -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html