]> code.ossystems Code Review - openembedded-core.git/commit
busybox: udhcpc: fix 'ip route add' with multiple interfaces on the same network
authorLuca Ceresoli <luca@lucaceresoli.net>
Wed, 22 Jan 2020 16:34:23 +0000 (17:34 +0100)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Mon, 27 Jan 2020 16:38:54 +0000 (16:38 +0000)
commitbb526eee429f25b85372f41e4d6d2865bcc39173
tree43f2eb0a15d49eb406e1302a1eb7c374b41f255d
parentbdcda2c4ff3c96f686b8bd30cd17361ff3722a0f
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>
meta/recipes-core/busybox/files/simple.script