Allow more than one interface to be specified on the command line.

This commit is contained in:
thorpej
2002-11-05 14:18:04 +00:00
parent ec11878985
commit fae2a5b032
2 changed files with 17 additions and 15 deletions

View File

@@ -1,4 +1,4 @@
.\" $NetBSD: mopd.8,v 1.7 2002/07/19 10:12:49 wiz Exp $ .\" $NetBSD: mopd.8,v 1.8 2002/11/05 14:18:04 thorpej Exp $
.\" .\"
.\" Copyright (c) 1993-96 Mats O Jansson. All rights reserved. .\" Copyright (c) 1993-96 Mats O Jansson. All rights reserved.
.\" .\"
@@ -37,6 +37,7 @@
.Op Fl adf .Op Fl adf
.Op Fl s Ar mopdir .Op Fl s Ar mopdir
.Op Ar interface .Op Ar interface
.Op Ar ...
.Sh DESCRIPTION .Sh DESCRIPTION
.Nm .Nm
services MOP Load requests on the Ethernet connected to services MOP Load requests on the Ethernet connected to

View File

@@ -1,4 +1,4 @@
/* $NetBSD: mopd.c,v 1.9 2002/07/19 10:05:34 mrg Exp $ */ /* $NetBSD: mopd.c,v 1.10 2002/11/05 14:18:05 thorpej Exp $ */
/* /*
* Copyright (c) 1993-96 Mats O Jansson. All rights reserved. * Copyright (c) 1993-96 Mats O Jansson. All rights reserved.
@@ -31,7 +31,7 @@
#include <sys/cdefs.h> #include <sys/cdefs.h>
#ifndef lint #ifndef lint
__RCSID("$NetBSD: mopd.c,v 1.9 2002/07/19 10:05:34 mrg Exp $"); __RCSID("$NetBSD: mopd.c,v 1.10 2002/11/05 14:18:05 thorpej Exp $");
#endif #endif
/* /*
@@ -80,11 +80,10 @@ main(argc, argv)
char **argv; char **argv;
{ {
int c, pid; int c, pid;
char *interface;
extern char version[]; extern char version[];
while ((c = getopt(argc, argv, "34adfs:v")) != -1) while ((c = getopt(argc, argv, "34adfs:v")) != -1) {
switch (c) { switch (c) {
case '3': case '3':
Not3Flag++; Not3Flag++;
@@ -111,18 +110,17 @@ main(argc, argv)
Usage(); Usage();
/* NOTREACHED */ /* NOTREACHED */
} }
}
argc -= optind;
argv += optind;
if (VersionFlag) { if (VersionFlag) {
fprintf(stdout,"%s: version %s\n", getprogname(), version); fprintf(stdout,"%s: version %s\n", getprogname(), version);
exit(0); exit(0);
} }
interface = argv[optind++]; if ((AllFlag && argc != 0) || (!AllFlag && argc == 0) ||
(Not3Flag && Not4Flag))
if ((AllFlag && interface) ||
(!AllFlag && interface == 0) ||
(argc > optind) ||
(Not3Flag && Not4Flag))
Usage(); Usage();
/* All error reporting is done through syslogs. */ /* All error reporting is done through syslogs. */
@@ -152,8 +150,10 @@ main(argc, argv)
if (AllFlag) if (AllFlag)
deviceInitAll(); deviceInitAll();
else else {
deviceInitOne(interface); while (argc--)
deviceInitOne(*argv++);
}
Loop(); Loop();
/* NOTREACHED */ /* NOTREACHED */
@@ -165,8 +165,9 @@ Usage()
{ {
(void) fprintf(stderr, "usage: %s -a [ -d -f -v ] [ -3 | -4 ]\n", (void) fprintf(stderr, "usage: %s -a [ -d -f -v ] [ -3 | -4 ]\n",
getprogname()); getprogname());
(void) fprintf(stderr, " %s [ -d -f -v ] [ -3 | -4 ] interface\n", (void) fprintf(stderr, " %s [ -d -f -v ] [ -3 | -4 ]\n",
getprogname()); getprogname());
(void) fprintf(stderr, " interface [...]\n");
exit(1); exit(1);
} }