diff options
-rw-r--r-- | networking/ifupdown.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/networking/ifupdown.c b/networking/ifupdown.c index d4e49c4c1..5d140f1da 100644 --- a/networking/ifupdown.c +++ b/networking/ifupdown.c | |||
@@ -417,12 +417,15 @@ static int static_up(struct interface_defn_t *ifd, execfn *exec) | |||
417 | result += execute("[[ ip route add default via %gateway% dev %iface% ]]", ifd, exec); | 417 | result += execute("[[ ip route add default via %gateway% dev %iface% ]]", ifd, exec); |
418 | return ((result == 3) ? 3 : 0); | 418 | return ((result == 3) ? 3 : 0); |
419 | #else | 419 | #else |
420 | result = execute("ifconfig %iface% %address% netmask %netmask% " | 420 | /* ifconfig said to set iface up before it processes hw %hwaddress%, |
421 | "[[broadcast %broadcast%]] [[pointopoint %pointopoint%]] " | 421 | * which then of course fails. Thus we run two separate ifconfig */ |
422 | "[[media %media%]] [[mtu %mtu%]] [[hw %hwaddress%]] up", | 422 | result = execute("ifconfig %iface% [[hw %hwaddress%]] [[media %media%]] [[mtu %mtu%]] up", |
423 | ifd, exec); | 423 | ifd, exec); |
424 | result += execute("[[ route add default gw %gateway% %iface% ]]", ifd, exec); | 424 | result += execute("ifconfig %iface% %address% netmask %netmask% " |
425 | return ((result == 2) ? 2 : 0); | 425 | "[[broadcast %broadcast%]] [[pointopoint %pointopoint%]] ", |
426 | ifd, exec); | ||
427 | result += execute("[[ route add default gw %gateway% %iface% ]]", ifd, exec); | ||
428 | return ((result == 3) ? 3 : 0); | ||
426 | #endif | 429 | #endif |
427 | } | 430 | } |
428 | 431 | ||