aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNatanael Copa <natanael.copa@gmail.com>2012-02-17 19:36:26 +0000
committerDenys Vlasenko <vda.linux@googlemail.com>2012-02-19 17:25:55 +0100
commitcfcb1dac83c9e18a06a07f0b212f6701bb87c2ad (patch)
tree43e7568846a9b033d52ad3b38c31af8cf73f4ff2
parent8cce1b3ad8c28b5c34c24d79b32b6cebb75ea2f5 (diff)
downloadbusybox-w32-cfcb1dac83c9e18a06a07f0b212f6701bb87c2ad.tar.gz
busybox-w32-cfcb1dac83c9e18a06a07f0b212f6701bb87c2ad.tar.bz2
busybox-w32-cfcb1dac83c9e18a06a07f0b212f6701bb87c2ad.zip
ifupdown: support metric for static default gw
This is useful when you have multiple ISPs with failover. It allows setting the priority of the static gateway and makes it possible to specify multiple static gateways. The ubuntu ifupdown supports it. function old new delta .rodata 116725 116797 +72 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/0 up/down: 72/0) Total: 72 bytes text data bss dec hex filename 953343 7313 8984 969640 ecba8 busybox_old 953415 7313 8984 969712 ecbf0 busybox_unstripped Signed-off-by: Natanael Copa <natanael.copa@gmail.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r--networking/ifupdown.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/networking/ifupdown.c b/networking/ifupdown.c
index 73da26085..dfda20670 100644
--- a/networking/ifupdown.c
+++ b/networking/ifupdown.c
@@ -403,11 +403,11 @@ static int FAST_FUNC static_up6(struct interface_defn_t *ifd, execfn *exec)
403 result = execute("ip addr add %address%/%netmask% dev %iface%[[ label %label%]]", ifd, exec); 403 result = execute("ip addr add %address%/%netmask% dev %iface%[[ label %label%]]", ifd, exec);
404 result += execute("ip link set[[ mtu %mtu%]][[ addr %hwaddress%]] %iface% up", ifd, exec); 404 result += execute("ip link set[[ mtu %mtu%]][[ addr %hwaddress%]] %iface% up", ifd, exec);
405 /* Was: "[[ ip ....%gateway% ]]". Removed extra spaces w/o checking */ 405 /* Was: "[[ ip ....%gateway% ]]". Removed extra spaces w/o checking */
406 result += execute("[[ip route add ::/0 via %gateway%]]", ifd, exec); 406 result += execute("[[ip route add ::/0 via %gateway%]][[ prio %metric%]]", ifd, exec);
407# else 407# else
408 result = execute("ifconfig %iface%[[ media %media%]][[ hw %hwaddress%]][[ mtu %mtu%]] up", ifd, exec); 408 result = execute("ifconfig %iface%[[ media %media%]][[ hw %hwaddress%]][[ mtu %mtu%]] up", ifd, exec);
409 result += execute("ifconfig %iface% add %address%/%netmask%", ifd, exec); 409 result += execute("ifconfig %iface% add %address%/%netmask%", ifd, exec);
410 result += execute("[[route -A inet6 add ::/0 gw %gateway%]]", ifd, exec); 410 result += execute("[[route -A inet6 add ::/0 gw %gateway%[[ metric %metric%]]]]", ifd, exec);
411# endif 411# endif
412 return ((result == 3) ? 3 : 0); 412 return ((result == 3) ? 3 : 0);
413} 413}
@@ -490,7 +490,7 @@ static int FAST_FUNC static_up(struct interface_defn_t *ifd, execfn *exec)
490 result = execute("ip addr add %address%/%bnmask%[[ broadcast %broadcast%]] " 490 result = execute("ip addr add %address%/%bnmask%[[ broadcast %broadcast%]] "
491 "dev %iface%[[ peer %pointopoint%]][[ label %label%]]", ifd, exec); 491 "dev %iface%[[ peer %pointopoint%]][[ label %label%]]", ifd, exec);
492 result += execute("ip link set[[ mtu %mtu%]][[ addr %hwaddress%]] %iface% up", ifd, exec); 492 result += execute("ip link set[[ mtu %mtu%]][[ addr %hwaddress%]] %iface% up", ifd, exec);
493 result += execute("[[ip route add default via %gateway% dev %iface%]]", ifd, exec); 493 result += execute("[[ip route add default via %gateway% dev %iface%[[ prio %metric%]]]]", ifd, exec);
494 return ((result == 3) ? 3 : 0); 494 return ((result == 3) ? 3 : 0);
495# else 495# else
496 /* ifconfig said to set iface up before it processes hw %hwaddress%, 496 /* ifconfig said to set iface up before it processes hw %hwaddress%,
@@ -500,7 +500,7 @@ static int FAST_FUNC static_up(struct interface_defn_t *ifd, execfn *exec)
500 result += execute("ifconfig %iface% %address% netmask %netmask%" 500 result += execute("ifconfig %iface% %address% netmask %netmask%"
501 "[[ broadcast %broadcast%]][[ pointopoint %pointopoint%]] ", 501 "[[ broadcast %broadcast%]][[ pointopoint %pointopoint%]] ",
502 ifd, exec); 502 ifd, exec);
503 result += execute("[[route add default gw %gateway% %iface%]]", ifd, exec); 503 result += execute("[[route add default gw %gateway%[[ metric %metric%]] %iface%]]", ifd, exec);
504 return ((result == 3) ? 3 : 0); 504 return ((result == 3) ? 3 : 0);
505# endif 505# endif
506} 506}