summaryrefslogtreecommitdiffstats
path: root/meta/recipes-core/busybox/files
diff options
context:
space:
mode:
authorLuca Ceresoli <luca@lucaceresoli.net>2020-01-22 17:34:23 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2020-01-27 16:38:54 +0000
commitbb526eee429f25b85372f41e4d6d2865bcc39173 (patch)
tree43f2eb0a15d49eb406e1302a1eb7c374b41f255d /meta/recipes-core/busybox/files
parentbdcda2c4ff3c96f686b8bd30cd17361ff3722a0f (diff)
downloadopenembedded-core-contrib-bb526eee429f25b85372f41e4d6d2865bcc39173.tar.gz
busybox: udhcpc: fix 'ip route add' with multiple interfaces on the same network
The udhcpc script fails to properly set a default route when: - 'ip' is present ($have_bin_ip -eq 1) - there are 2 or more interfaces connected to the same network (e.g. ethernet + wifi on the same home LAN / same DHCP server) In this case, when the first interface gets an address from DHCP (e.g. eth0), a default route is set correctly. When the second interface (e.g. wlan0) gets its address, 'ip route add' without 'dev $interface' sets the route on the other interface. The result looks like: # ip route default via 192.168.1.1 dev eth0 metric 5 default via 192.168.1.1 dev eth0 metric 10 # wrong dev here 192.168.1.0/24 dev eth0 scope link src 192.168.1.20 192.168.1.0/24 dev wlan0 scope link src 192.168.1.30 # The situation might go unnoticed until eth0 is disconnected, because only wlan0 is present but there is no route through wlan0. Fix by explicitly passing "dev $interface" to 'ip route add'. Note that all other 'ip' invocations already have "dev $interface" passed. Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-core/busybox/files')
-rw-r--r--meta/recipes-core/busybox/files/simple.script2
1 files changed, 1 insertions, 1 deletions
diff --git a/meta/recipes-core/busybox/files/simple.script b/meta/recipes-core/busybox/files/simple.script
index 8b5eb53633..013440574d 100644
--- a/meta/recipes-core/busybox/files/simple.script
+++ b/meta/recipes-core/busybox/files/simple.script
@@ -59,7 +59,7 @@ case "$1" in
metric=10
for i in $router ; do
if [ $have_bin_ip -eq 1 ]; then
- /SBIN_DIR/ip route add default via $i metric $metric
+ /SBIN_DIR/ip route add default via $i metric $metric dev $interface
else
/SBIN_DIR/route add default gw $i dev $interface metric $metric 2>/dev/null
fi