[PATCH] ifupdown: support metric for static default gw
Natanael Copa
natanael.copa at gmail.com
Fri Feb 17 19:36:26 UTC 2012
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 <ncopa at alpinelinux.org>
---
networking/ifupdown.c | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/networking/ifupdown.c b/networking/ifupdown.c
index 73da260..ce41930 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)
result = execute("ip addr add %address%/%netmask% dev %iface%[[ label %label%]]", ifd, exec);
result += execute("ip link set[[ mtu %mtu%]][[ addr %hwaddress%]] %iface% up", ifd, exec);
/* Was: "[[ ip ....%gateway% ]]". Removed extra spaces w/o checking */
- result += execute("[[ip route add ::/0 via %gateway%]]", ifd, exec);
+ result += execute("[[ip route add ::/0 via %gateway%]][[ prio %metric%]]", ifd, exec);
# else
result = execute("ifconfig %iface%[[ media %media%]][[ hw %hwaddress%]][[ mtu %mtu%]] up", ifd, exec);
result += execute("ifconfig %iface% add %address%/%netmask%", ifd, exec);
- result += execute("[[route -A inet6 add ::/0 gw %gateway%]]", ifd, exec);
+ result += execute("[[route -A inet6 add ::/0 gw %gateway%[[ metric %metric%]]]]", ifd, exec);
# endif
return ((result == 3) ? 3 : 0);
}
@@ -490,7 +490,7 @@ static int FAST_FUNC static_up(struct interface_defn_t *ifd, execfn *exec)
result = execute("ip addr add %address%/%bnmask%[[ broadcast %broadcast%]] "
"dev %iface%[[ peer %pointopoint%]][[ label %label%]]", ifd, exec);
result += execute("ip link set[[ mtu %mtu%]][[ addr %hwaddress%]] %iface% up", ifd, exec);
- result += execute("[[ip route add default via %gateway% dev %iface%]]", ifd, exec);
+ result += execute("[[ip route add default via %gateway% dev %iface%[[ prio %metric%]]]]", ifd, exec);
return ((result == 3) ? 3 : 0);
# else
/* 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)
result += execute("ifconfig %iface% %address% netmask %netmask%"
"[[ broadcast %broadcast%]][[ pointopoint %pointopoint%]] ",
ifd, exec);
- result += execute("[[route add default gw %gateway% %iface%]]", ifd, exec);
+ result += execute("[[route add default gw %gateway%[[ metric %metric% ]]%iface%]]", ifd, exec);
return ((result == 3) ? 3 : 0);
# endif
}
--
1.7.9.1
More information about the busybox
mailing list