diff options
| author | Andrew Thompson <thompsa@FreeBSD.org> | 2007-10-11 20:20:39 +0000 |
|---|---|---|
| committer | Andrew Thompson <thompsa@FreeBSD.org> | 2007-10-11 20:20:39 +0000 |
| commit | 4de2a7d7e2c4b1c2c1aba0c9ae22790af3cad52c (patch) | |
| tree | c112287dbb877cc354f0bfae8d34c4739f916ae8 /sbin | |
| parent | d902e5007b337176a3d0b7fed0aebce4d2fbe314 (diff) | |
Notes
Diffstat (limited to 'sbin')
| -rw-r--r-- | sbin/ifconfig/ifconfig.8 | 8 | ||||
| -rw-r--r-- | sbin/ifconfig/ifconfig.c | 12 |
2 files changed, 18 insertions, 2 deletions
diff --git a/sbin/ifconfig/ifconfig.8 b/sbin/ifconfig/ifconfig.8 index 3aad14021e81..b57f474053a3 100644 --- a/sbin/ifconfig/ifconfig.8 +++ b/sbin/ifconfig/ifconfig.8 @@ -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 @@ -1528,6 +1529,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 diff --git a/sbin/ifconfig/ifconfig.c b/sbin/ifconfig/ifconfig.c index 4a2dd64f2280..a5b47974f83b 100644 --- a/sbin/ifconfig/ifconfig.c +++ b/sbin/ifconfig/ifconfig.c @@ -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. */ @@ -154,10 +155,10 @@ main(int argc, char *argv[]) char options[1024]; struct option *p; - 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) { @@ -177,6 +178,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; @@ -969,6 +973,10 @@ ifmaybeload(char *name) int fileid, modid; char ifkind[35], *cp, *dp; + /* loading suppressed by the user */ + if (noload) + return; + /* turn interface and unit into module name */ strcpy(ifkind, "if_"); for (cp = name, dp = ifkind + 3; |
