[oe-commits] [openembedded-core] 03/18: busybox: udhcpc: fix 'ip route add' with multiple interfaces on the same network

git at git.openembedded.org git at git.openembedded.org
Thu Jan 23 16:58:29 UTC 2020


This is an automated email from the git hooks/post-receive script.

rpurdie pushed a commit to branch master-next
in repository openembedded-core.

commit 5dfc714e857082cc2915415816165968943f6317
Author: Luca Ceresoli <luca at lucaceresoli.net>
AuthorDate: Wed Jan 22 17:34:23 2020 +0100

    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 at lucaceresoli.net>
    Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
 meta/recipes-core/busybox/files/simple.script | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meta/recipes-core/busybox/files/simple.script b/meta/recipes-core/busybox/files/simple.script
index 8b5eb53..0134405 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

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Openembedded-commits mailing list