Add the -n flag for disabling automatic module loading, this will be used by

rc.d to stop it reloading the network module on unload.
This commit is contained in:
Andrew Thompson 2007-05-22 17:41:09 +00:00
parent a0c0e34bd4
commit a389ab003f
2 changed files with 18 additions and 2 deletions

View File

@ -39,6 +39,7 @@
.Op Fl L
.Op Fl k
.Op Fl m
.Op Fl n
.Ar interface
.Op Cm create
.Op Ar address_family
@ -1579,6 +1580,13 @@ For example, the values of 802.11 WEP keys will be printed, if accessible to
the current user.
This information is not printed by default, as it may be considered
sensitive.
.Pp
If the network interface driver is not present in the kernel then
.Nm
will attempt to load it.
The
.Fl n
flag disables this behavior.
.Pp
Only the super-user may modify the configuration of a network interface.
.Sh NOTES

View File

@ -89,6 +89,7 @@ int doalias;
int clearaddr;
int newaddr = 1;
int verbose;
int noload;
int supmedia = 0;
int printkeys = 0; /* Print keying material for interfaces. */
@ -150,10 +151,10 @@ main(int argc, char *argv[])
struct option *p;
size_t iflen;
all = downonly = uponly = namesonly = verbose = 0;
all = downonly = uponly = namesonly = noload = verbose = 0;
/* Parse leading line options */
strlcpy(options, "adklmuv", sizeof(options));
strlcpy(options, "adklmnuv", sizeof(options));
for (p = opts; p != NULL; p = p->next)
strlcat(options, p->opt, sizeof(options));
while ((c = getopt(argc, argv, options)) != -1) {
@ -173,6 +174,9 @@ main(int argc, char *argv[])
case 'm': /* show media choices in status */
supmedia = 1;
break;
case 'n': /* suppress module loading */
noload++;
break;
case 'u': /* restrict scan to "up" interfaces */
uponly++;
break;
@ -898,6 +902,10 @@ ifmaybeload(const char *name)
char ifkind[35], *dp;
const char *cp;
/* loading suppressed by the user */
if (noload)
return;
/* turn interface and unit into module name */
strcpy(ifkind, "if_");
for (cp = name, dp = ifkind + 3;