Module Name:    src
Committed By:   christos
Date:           Thu Mar 17 15:25:46 UTC 2016

Modified Files:
        src/usr.sbin/nfsd: nfsd.8 nfsd.c

Log Message:
Expose debugging


To generate a diff of this commit:
cvs rdiff -u -r1.23 -r1.24 src/usr.sbin/nfsd/nfsd.8
cvs rdiff -u -r1.65 -r1.66 src/usr.sbin/nfsd/nfsd.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/usr.sbin/nfsd/nfsd.8
diff -u src/usr.sbin/nfsd/nfsd.8:1.23 src/usr.sbin/nfsd/nfsd.8:1.24
--- src/usr.sbin/nfsd/nfsd.8:1.23	Mon Aug 13 04:39:28 2012
+++ src/usr.sbin/nfsd/nfsd.8	Thu Mar 17 11:25:46 2016
@@ -1,4 +1,4 @@
-.\"   $NetBSD: nfsd.8,v 1.23 2012/08/13 08:39:28 wiz Exp $
+.\"   $NetBSD: nfsd.8,v 1.24 2016/03/17 15:25:46 christos Exp $
 .\"
 .\" Copyright (c) 1989, 1991, 1993
 .\"	The Regents of the University of California.  All rights reserved.
@@ -29,7 +29,7 @@
 .\"
 .\"	@(#)nfsd.8	8.4 (Berkeley) 3/29/95
 .\"
-.Dd August 12, 2012
+.Dd March 17, 2016
 .Dt NFSD 8
 .Os
 .Sh NAME
@@ -39,7 +39,7 @@
 server
 .Sh SYNOPSIS
 .Nm
-.Op Fl 46rut
+.Op Fl 46drut
 .Op Fl n Ar num_threads
 .Sh DESCRIPTION
 .Nm
@@ -56,6 +56,8 @@ transport are started.
 .Pp
 The following options are available:
 .Bl -tag -width Ds
+.It Fl d
+Turn on debugging, don't fork and log to stderr.
 .It Fl r
 Register the
 .Tn NFS

Index: src/usr.sbin/nfsd/nfsd.c
diff -u src/usr.sbin/nfsd/nfsd.c:1.65 src/usr.sbin/nfsd/nfsd.c:1.66
--- src/usr.sbin/nfsd/nfsd.c:1.65	Wed Dec 23 13:41:54 2015
+++ src/usr.sbin/nfsd/nfsd.c	Thu Mar 17 11:25:46 2016
@@ -1,4 +1,4 @@
-/*	$NetBSD: nfsd.c,v 1.65 2015/12/23 18:41:54 christos Exp $	*/
+/*	$NetBSD: nfsd.c,v 1.66 2016/03/17 15:25:46 christos Exp $	*/
 
 /*
  * Copyright (c) 1989, 1993, 1994
@@ -42,7 +42,7 @@ __COPYRIGHT("@(#) Copyright (c) 1989, 19
 #if 0
 static char sccsid[] = "@(#)nfsd.c	8.9 (Berkeley) 3/29/95";
 #else
-__RCSID("$NetBSD: nfsd.c,v 1.65 2015/12/23 18:41:54 christos Exp $");
+__RCSID("$NetBSD: nfsd.c,v 1.66 2016/03/17 15:25:46 christos Exp $");
 #endif
 #endif /* not lint */
 
@@ -100,16 +100,21 @@ int nfsd_main(int, char *[]);
 
 /* Global defs */
 #if defined(DEBUG) || defined(NFSD_RUMP)
-#define	syslog(e, s, args...)						\
-do {									\
-    fprintf(stderr,(s), ## args);					\
-    fprintf(stderr, "\n");						\
-} while (/*CONSTCOND*/0)
 static int	debug = 1;
 #else
 static int	debug = 0;
 #endif
 
+#define	logit(e, s, args...)						\
+do {									\
+	if (debug) {							\
+		fprintf(stderr,(s), ## args);				\
+		fprintf(stderr, "\n");					\
+	} else {							\
+		syslog(e, s, ## args);					\
+	}								\
+} while (/*CONSTCOND*/0)
+
 static void	nonfs(int);
 __dead static void	usage(void);
 
@@ -124,7 +129,7 @@ worker(void *dummy)
 	memset(&nsd, 0, sizeof(nsd));
 	while (nfssvc(nfssvc_flag, &nsd) < 0) {
 		if (errno != ENEEDAUTH) {
-			syslog(LOG_ERR, "nfssvc: %s", strerror(errno));
+			logit(LOG_ERR, "nfssvc: %s", strerror(errno));
 			exit(1);
 		}
 		nfssvc_flag = NFSSVC_NFSD | NFSSVC_AUTHINFAIL;
@@ -166,7 +171,7 @@ tryconf(struct conf *cfg, int t, int rer
 
 	ecode = getaddrinfo(NULL, "nfs", &hints, &cfg->ai);
 	if (ecode != 0) {
-		syslog(LOG_ERR, "getaddrinfo %s: %s", cfg_netconf[t],
+		logit(LOG_ERR, "getaddrinfo %s: %s", cfg_netconf[t],
 		    gai_strerror(ecode));
 		return -1;
 	}
@@ -174,7 +179,7 @@ tryconf(struct conf *cfg, int t, int rer
 	cfg->nc = getnetconfigent(cfg_netconf[t]);
 
 	if (cfg->nc == NULL) {
-		syslog(LOG_ERR, "getnetconfigent %s failed: %s",
+		logit(LOG_ERR, "getnetconfigent %s failed: %s",
 		    cfg_netconf[t], strerror(errno));
 		goto out;
 	}
@@ -183,7 +188,7 @@ tryconf(struct conf *cfg, int t, int rer
 	cfg->nb.len = cfg->nb.maxlen = cfg->ai->ai_addrlen;
 	if (reregister)
 		if (!rpcb_set(RPCPROG_NFS, 2, cfg->nc, &cfg->nb)) {
-			syslog(LOG_ERR, "rpcb_set %s failed", cfg_netconf[t]);
+			logit(LOG_ERR, "rpcb_set %s failed", cfg_netconf[t]);
 			goto out1;
 		}
 	return 0;
@@ -207,14 +212,14 @@ setupsock(struct conf *cfg, struct pollf
 	sock = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol);
 
 	if (sock == -1) {
-		syslog(LOG_ERR, "can't create %s socket: %s", cfg_netconf[p],
+		logit(LOG_ERR, "can't create %s socket: %s", cfg_netconf[p],
 		    strerror(errno));
 		return -1;
 	}
 	if (cfg_family[p] == PF_INET6) {
 		if (setsockopt(sock, IPPROTO_IPV6, IPV6_V6ONLY, &on,
 		    sizeof(on)) == -1) {
-			syslog(LOG_ERR, "can't set v6-only binding for %s "
+			logit(LOG_ERR, "can't set v6-only binding for %s "
 			    "socket: %s", cfg_netconf[p], strerror(errno));
 			goto out;
 		}
@@ -223,28 +228,28 @@ setupsock(struct conf *cfg, struct pollf
 	if (cfg_protocol[p] == IPPROTO_TCP) {
 		if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &on,
 		    sizeof(on)) == -1) {
-			syslog(LOG_ERR, "setsockopt SO_REUSEADDR for %s: %s",
+			logit(LOG_ERR, "setsockopt SO_REUSEADDR for %s: %s",
 			    cfg_netconf[p], strerror(errno));
 			goto out;
 		}
 	}
 
 	if (bind(sock, ai->ai_addr, ai->ai_addrlen) == -1) {
-		syslog(LOG_ERR, "can't bind %s addr: %s", cfg_netconf[p],
+		logit(LOG_ERR, "can't bind %s addr: %s", cfg_netconf[p],
 		    strerror(errno));
 		goto out;
 	}
 
 	if (cfg_protocol[p] == IPPROTO_TCP) {
 		if (listen(sock, 5) == -1) {
-			syslog(LOG_ERR, "listen failed");
+			logit(LOG_ERR, "listen failed");
 			goto out;
 		}
 	}
 
 	if (!rpcb_set(RPCPROG_NFS, 2, cfg->nc, &cfg->nb) ||
 	    !rpcb_set(RPCPROG_NFS, 3, cfg->nc, &cfg->nb)) {
-		syslog(LOG_ERR, "can't register with %s portmap",
+		logit(LOG_ERR, "can't register with %s portmap",
 		    cfg_netconf[p]);
 		goto out;
 	}
@@ -257,7 +262,7 @@ setupsock(struct conf *cfg, struct pollf
 		nfsdargs.name = NULL;
 		nfsdargs.namelen = 0;
 		if (nfssvc(NFSSVC_ADDSOCK, &nfsdargs) < 0) {
-			syslog(LOG_ERR, "can't add %s socket: %s",
+			logit(LOG_ERR, "can't add %s socket: %s",
 			    cfg_netconf[p], strerror(errno));
 			goto out;
 		}
@@ -425,8 +430,8 @@ main(int argc, char *argv[])
 	compat = reregister = 0;
 	tcpflag = udpflag = 1;
 	ip6flag = ip4flag = 1;
-#define	GETOPT	"46n:rtu"
-#define	USAGE	"[-46rtu] [-n num_servers]"
+#define	GETOPT	"46dn:rtu"
+#define	USAGE	"[-46drtu] [-n num_servers]"
 	while ((ch = getopt(argc, argv, GETOPT)) != -1) {
 		switch (ch) {
 		case '6':
@@ -449,6 +454,9 @@ main(int argc, char *argv[])
 			else
 				close(s);
 			break;
+		case 'd':
+			debug++;
+			break;
 		case 'n':
 			nfsdcnt = atoi(optarg);
 			if (nfsdcnt < 1) {
@@ -489,9 +497,9 @@ main(int argc, char *argv[])
 
 	if (debug == 0) {
 		parent_fd = daemon2_fork();
+		openlog("nfsd", LOG_PID, LOG_DAEMON);
 	}
 
-	openlog("nfsd", LOG_PID, LOG_DAEMON);
 
 	memset(cfg, 0, sizeof(cfg));
 	for (i = 0; i < __arraycount(cfg); i++) {
@@ -513,7 +521,7 @@ main(int argc, char *argv[])
 		error = pthread_create(&t, NULL, worker, NULL);
 		if (error) {
 			errno = error;
-			syslog(LOG_ERR, "pthread_create: %s", strerror(errno));
+			logit(LOG_ERR, "pthread_create: %s", strerror(errno));
 			exit(1);
 		}
 	}
@@ -552,7 +560,7 @@ main(int argc, char *argv[])
 	 */
 	for (;;) {
 		if (poll(set, __arraycount(set), INFTIM) == -1) {
-			syslog(LOG_ERR, "poll failed: %s", strerror(errno));
+			logit(LOG_ERR, "poll failed: %s", strerror(errno));
 			exit(1);
 		}
 
@@ -569,7 +577,7 @@ main(int argc, char *argv[])
 			if ((msgsock = accept(set[i].fd,
 			    (struct sockaddr *)&ss, &len)) == -1) {
 				int serrno = errno;
-				syslog(LOG_ERR, "accept failed: %s",
+				logit(LOG_ERR, "accept failed: %s",
 				    strerror(errno));
 				if (serrno == EINTR || serrno == ECONNABORTED)
 					continue;
@@ -577,7 +585,7 @@ main(int argc, char *argv[])
 			}
 			if (setsockopt(msgsock, SOL_SOCKET, SO_KEEPALIVE, &on,
 			    sizeof(on)) == -1)
-				syslog(LOG_ERR, "setsockopt SO_KEEPALIVE: %s",
+				logit(LOG_ERR, "setsockopt SO_KEEPALIVE: %s",
 				    strerror(errno));
 			nfsdargs.sock = msgsock;
 			nfsdargs.name = (void *)&ss;
@@ -598,5 +606,5 @@ usage(void)
 static void
 nonfs(int signo)
 {
-	syslog(LOG_ERR, "missing system call: NFS not available.");
+	logit(LOG_ERR, "missing system call: NFS not available.");
 }

Reply via email to