Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 75318
b: refs/heads/master
c: 92ffb85
h: refs/heads/master
v: v3
  • Loading branch information
Amos Waterland authored and David S. Miller committed Jan 9, 2008
1 parent 376fd4b commit 36d0fad
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 5 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: f844c74fe07321953e2dd227fe35280075f18f60
refs/heads/master: 92ffb85dd33d62ac1dad8b44da62365f2aad413d
1 change: 1 addition & 0 deletions trunk/Documentation/nfsroot.txt
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,7 @@ ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf>
this option.

off or none: don't use autoconfiguration
(do static IP assignment instead)
on or any: use any protocol available in the kernel
(default)
dhcp: use DHCP
Expand Down
22 changes: 18 additions & 4 deletions trunk/net/ipv4/ipconfig.c
Original file line number Diff line number Diff line change
Expand Up @@ -1404,8 +1404,7 @@ static int __init ic_proto_name(char *name)
return 1;
}
if (!strcmp(name, "off") || !strcmp(name, "none")) {
ic_enable = 0;
return 1;
return 0;
}
#ifdef CONFIG_IP_PNP_DHCP
else if (!strcmp(name, "dhcp")) {
Expand Down Expand Up @@ -1442,10 +1441,22 @@ static int __init ip_auto_config_setup(char *addrs)
ic_set_manually = 1;
ic_enable = 1;

/*
* If any dhcp, bootp etc options are set, leave autoconfig on
* and skip the below static IP processing.
*/
if (ic_proto_name(addrs))
return 1;

/* Parse the whole string */
/* If no static IP is given, turn off autoconfig and bail. */
if (*addrs == 0 ||
strcmp(addrs, "off") == 0 ||
strcmp(addrs, "none") == 0) {
ic_enable = 0;
return 1;
}

/* Parse string for static IP assignment. */
ip = addrs;
while (ip && *ip) {
if ((cp = strchr(ip, ':')))
Expand Down Expand Up @@ -1483,7 +1494,10 @@ static int __init ip_auto_config_setup(char *addrs)
strlcpy(user_dev_name, ip, sizeof(user_dev_name));
break;
case 6:
ic_proto_name(ip);
if (ic_proto_name(ip) == 0 &&
ic_myaddr == NONE) {
ic_enable = 0;
}
break;
}
}
Expand Down

0 comments on commit 36d0fad

Please sign in to comment.