diff options
author | Xin LI <delphij@FreeBSD.org> | 2013-02-14 01:25:14 +0000 |
---|---|---|
committer | Xin LI <delphij@FreeBSD.org> | 2013-02-14 01:25:14 +0000 |
commit | 2a0b6dc5c3a476318653a7ba94d464080c1c8908 (patch) | |
tree | d8bd0da5357ccfb33c62e1ef4fcaa5ff271046da /usr.sbin/nfsd | |
parent | f33fce48655d0c4398e2b30965b7ff33524378f7 (diff) | |
download | src-2a0b6dc5c3a476318653a7ba94d464080c1c8908.tar.gz src-2a0b6dc5c3a476318653a7ba94d464080c1c8908.zip |
Abstract out setting of nfsdcnt and consistently use MAXNFSDCNT when the
proposed value is too high and DEFNFSDCNT when proposed value is too low.
MFC after: 2 weeks
Notes
Notes:
svn path=/head/; revision=246780
Diffstat (limited to 'usr.sbin/nfsd')
-rw-r--r-- | usr.sbin/nfsd/nfsd.c | 42 |
1 files changed, 21 insertions, 21 deletions
diff --git a/usr.sbin/nfsd/nfsd.c b/usr.sbin/nfsd/nfsd.c index 7f7a245590cb..3fa267c8a32d 100644 --- a/usr.sbin/nfsd/nfsd.c +++ b/usr.sbin/nfsd/nfsd.c @@ -119,6 +119,7 @@ static void usage(void); static void open_stable(int *, int *); static void copy_stable(int, int); static void backup_stable(int); +static void set_nfsdcnt(int); /* * Nfs server daemon mostly just a user context for nfssvc() @@ -178,8 +179,7 @@ main(int argc, char **argv) bindanyflag = 1; break; case 'n': - nfsdcnt_set = 1; - nfsdcnt = atoi(optarg); + set_nfsdcnt(atoi(optarg)); break; case 'h': bindhostc++; @@ -235,15 +235,8 @@ main(int argc, char **argv) */ if (argc > 1) usage(); - if (argc == 1) { - nfsdcnt_set = 1; - nfsdcnt = atoi(argv[0]); - if (nfsdcnt < 1 || nfsdcnt > MAXNFSDCNT) { - warnx("nfsd count %d; reset to %d", nfsdcnt, - DEFNFSDCNT); - nfsdcnt = DEFNFSDCNT; - } - } + if (argc == 1) + set_nfsdcnt(atoi(argv[0])); /* * Unless the "-o" option was specified, try and run "nfsd". @@ -429,16 +422,6 @@ main(int argc, char **argv) } if (!new_syscall) { - if (nfsdcnt < 1) { - warnx("nfsd count too low %d; reset to %d", nfsdcnt, - DEFNFSDCNT); - nfsdcnt = DEFNFSDCNT; - } - if (nfsdcnt > MAXNFSDCNT) { - warnx("nfsd count too high %d; reset to %d", nfsdcnt, - DEFNFSDCNT); - nfsdcnt = MAXNFSDCNT; - } /* If we use UDP only, we start the last server below. */ srvcnt = tcpflag ? nfsdcnt : nfsdcnt - 1; for (i = 0; i < srvcnt; i++) { @@ -891,6 +874,23 @@ setbindhost(struct addrinfo **ai, const char *bindhost, struct addrinfo hints) } static void +set_nfsdcnt(int proposed) +{ + + if (proposed < 1) { + warnx("nfsd count too low %d; reset to %d", proposed, + DEFNFSDCNT); + nfsdcnt = DEFNFSDCNT; + } else if (proposed > MAXNFSDCNT) { + warnx("nfsd count too high %d; truncated to %d", proposed, + MAXNFSDCNT); + nfsdcnt = MAXNFSDCNT; + } else + nfsdcnt = proposed; + nfsdcnt_set = 1; +} + +static void usage(void) { (void)fprintf(stderr, "%s", getopt_usage); |