diff options
author | Simon Horman <horms@verge.net.au> | 2007-12-25 23:54:42 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2007-12-26 22:36:36 -0500 |
commit | a6c05c3d064dbb83be88cba3189beb5db9d2dfc3 (patch) | |
tree | 3520d14af7692de0e66525f94f62948f1dc759cf | |
parent | ecef969e5b376f98b142e22deb1cec2f23e4f5d6 (diff) |
[IPV4]: Fix ip command line processing.
Recently the documentation in Documentation/nfsroot.txt was
update to note that in fact ip=off and ip=::::::off as the
latter is ignored and the default (on) is used.
This was certainly a step in the direction of reducing confusion.
But it seems to me that the code ought to be fixed up so that
ip=::::::off actually turns off ip autoconfiguration.
This patch also notes more specifically that ip=on (aka ip=::::::on)
is the default.
Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | Documentation/nfsroot.txt | 5 | ||||
-rw-r--r-- | net/ipv4/ipconfig.c | 10 |
2 files changed, 5 insertions, 10 deletions
diff --git a/Documentation/nfsroot.txt b/Documentation/nfsroot.txt index 9b956a969362..c86dd38e2281 100644 --- a/Documentation/nfsroot.txt +++ b/Documentation/nfsroot.txt | |||
@@ -97,10 +97,6 @@ ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf> | |||
97 | autoconfiguration will take place. The most common way to use this | 97 | autoconfiguration will take place. The most common way to use this |
98 | is "ip=dhcp". | 98 | is "ip=dhcp". |
99 | 99 | ||
100 | Note that "ip=off" is not the same thing as "ip=::::::off", because in | ||
101 | the latter autoconfiguration will take place if any of DHCP, BOOTP or RARP | ||
102 | are compiled in the kernel. | ||
103 | |||
104 | <client-ip> IP address of the client. | 100 | <client-ip> IP address of the client. |
105 | 101 | ||
106 | Default: Determined using autoconfiguration. | 102 | Default: Determined using autoconfiguration. |
@@ -150,6 +146,7 @@ ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf> | |||
150 | 146 | ||
151 | off or none: don't use autoconfiguration | 147 | off or none: don't use autoconfiguration |
152 | on or any: use any protocol available in the kernel | 148 | on or any: use any protocol available in the kernel |
149 | (default) | ||
153 | dhcp: use DHCP | 150 | dhcp: use DHCP |
154 | bootp: use BOOTP | 151 | bootp: use BOOTP |
155 | rarp: use RARP | 152 | rarp: use RARP |
diff --git a/net/ipv4/ipconfig.c b/net/ipv4/ipconfig.c index 96400b0bd08a..420f56ad59f8 100644 --- a/net/ipv4/ipconfig.c +++ b/net/ipv4/ipconfig.c | |||
@@ -1403,6 +1403,10 @@ static int __init ic_proto_name(char *name) | |||
1403 | if (!strcmp(name, "on") || !strcmp(name, "any")) { | 1403 | if (!strcmp(name, "on") || !strcmp(name, "any")) { |
1404 | return 1; | 1404 | return 1; |
1405 | } | 1405 | } |
1406 | if (!strcmp(name, "off") || !strcmp(name, "none")) { | ||
1407 | ic_enable = 0; | ||
1408 | return 1; | ||
1409 | } | ||
1406 | #ifdef CONFIG_IP_PNP_DHCP | 1410 | #ifdef CONFIG_IP_PNP_DHCP |
1407 | else if (!strcmp(name, "dhcp")) { | 1411 | else if (!strcmp(name, "dhcp")) { |
1408 | ic_proto_enabled &= ~IC_RARP; | 1412 | ic_proto_enabled &= ~IC_RARP; |
@@ -1437,12 +1441,6 @@ static int __init ip_auto_config_setup(char *addrs) | |||
1437 | 1441 | ||
1438 | ic_set_manually = 1; | 1442 | ic_set_manually = 1; |
1439 | 1443 | ||
1440 | ic_enable = (*addrs && | ||
1441 | (strcmp(addrs, "off") != 0) && | ||
1442 | (strcmp(addrs, "none") != 0)); | ||
1443 | if (!ic_enable) | ||
1444 | return 1; | ||
1445 | |||
1446 | if (ic_proto_name(addrs)) | 1444 | if (ic_proto_name(addrs)) |
1447 | return 1; | 1445 | return 1; |
1448 | 1446 | ||