mwan3: fix regression in ipv6 routing tables
authorAaron Goodman <aaronjg@stanford.edu>
Tue, 29 Dec 2020 01:09:08 +0000 (20:09 -0500)
committerAaron Goodman <aaronjg@stanford.edu>
Sun, 3 Jan 2021 02:37:37 +0000 (21:37 -0500)
Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
net/mwan3/Makefile
net/mwan3/files/etc/hotplug.d/iface/15-mwan3
net/mwan3/files/etc/init.d/mwan3
net/mwan3/files/lib/mwan3/common.sh
net/mwan3/files/lib/mwan3/mwan3.sh
net/mwan3/files/usr/sbin/mwan3
net/mwan3/files/usr/sbin/mwan3rtmon
net/mwan3/files/usr/sbin/mwan3track

index 87ad0e8a1ddbc1e2bdd80e279bc823d28b110c3c..914844674fe932ae5f96f887676e3c2280ac3587 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=mwan3
-PKG_VERSION:=2.10.5
+PKG_VERSION:=2.10.6
 PKG_RELEASE:=1
 PKG_MAINTAINER:=Florian Eckert <fe@dev.tdt.de>, \
                Aaron Goodman <aaronjg@alumni.stanford.edu>
index 32497a5a07ff760dc89906a93c66cbbef5a220a6..e00cbfa5ca3a8312f827affe9af40d1f83bb3fb1 100644 (file)
@@ -21,7 +21,8 @@ fi
 
 [ "$MWAN3_STARTUP" = "init" ] || procd_lock
 
-config_load mwan3
+mwan3_init
+
 /etc/init.d/mwan3 running || {
        [ "$MWAN3_STARTUP" = "init" ] || procd_lock
        LOG notice "mwan3 hotplug $ACTION on $INTERFACE not called because globally disabled"
@@ -34,8 +35,6 @@ $IPT4 -S mwan3_hook &>/dev/null || {
        exit 0
 }
 
-mwan3_init
-
 if [ "$MWAN3_STARTUP" != "init" ] && [ "$ACTION" = "ifup" ]; then
        mwan3_set_user_iface_rules $INTERFACE $DEVICE
 fi
index c34dda767ba2dad5ef14e6c2b41bef7a259b0ef8..2d5b53d2338c5ccaa3653e57364aa2f99ad3eff7 100755 (executable)
@@ -27,7 +27,6 @@ start_tracker() {
 start_service() {
        local enabled hotplug_pids
 
-       config_load mwan3
        mwan3_init
        config_foreach start_tracker interface
 
@@ -57,7 +56,6 @@ start_service() {
 stop_service() {
        local ipset rule IP IPTR IPT family table tid
 
-       config_load mwan3
        mwan3_init
        config_foreach mwan3_interface_shutdown interface
 
index bb55a466cbffa6d3c92a0dbef7a1c16e56f9891d..33a94ae86252f160f6a4969453c44b56750ee2dc 100644 (file)
@@ -107,8 +107,9 @@ mwan3_get_mwan3track_status()
 
 mwan3_init()
 {
-       local bitcnt
-       local mmdefault
+       local bitcnt mmdefault source_routing
+
+       config_load mwan3
 
        [ -d $MWAN3_STATUS_DIR ] || mkdir -p $MWAN3_STATUS_DIR/iface_state
 
@@ -117,7 +118,6 @@ mwan3_init()
                MMX_MASK=$(cat "${MWAN3_STATUS_DIR}/mmx_mask")
                MWAN3_INTERFACE_MAX=$(uci_get_state mwan3 globals iface_max)
        else
-               config_load mwan3
                config_get MMX_MASK globals mmx_mask '0x3F00'
                echo "$MMX_MASK"| tr 'A-F' 'a-f' > "${MWAN3_STATUS_DIR}/mmx_mask"
                LOG debug "Using firewall mask ${MMX_MASK}"
@@ -130,7 +130,9 @@ mwan3_init()
        fi
 
        # remove "linkdown", expiry and source based routing modifiers from route lines
-       MWAN3_ROUTE_LINE_EXP="s/linkdown //; s/expires [0-9]\+sec//;s/error [0-9]\+//; ${source_routing:+s/default\(.*\) from [^ ]*/default\1/;} p"
+       config_get_bool source_routing globals source_routing 0
+       [ $source_routing -eq 1 ] && unset source_routing
+       MWAN3_ROUTE_LINE_EXP="s/linkdown //; s/expires [0-9]\+sec//; s/error [0-9]\+//; ${source_routing:+s/default\(.*\) from [^ ]*/default\1/;} p"
 
        # mark mask constants
        bitcnt=$(mwan3_count_one_bits MMX_MASK)
index b99f2823181e37373a058ca71d8dfa80a38d8afb..24af3dad52c31be8b7c5b93d46a6295403ed0ae6 100644 (file)
@@ -410,9 +410,6 @@ mwan3_delete_iface_iptables()
 
 mwan3_get_routes()
 {
-       local source_routing
-       config_get_bool source_routing globals source_routing 0
-       [ $source_routing -eq 0 ] && unset source_routing
        $IP route list table main | sed -ne "$MWAN3_ROUTE_LINE_EXP" | uniq
 }
 
index 803e74b9a04c1657b4e43cda3e80182731b3e24d..51f46867606a7a9e065cd077ad0d4042d3d7543e 100755 (executable)
@@ -129,7 +129,6 @@ use() {
 
        local interface device src_ip family
        mwan3_init
-       config_load mwan3
 
        interface=$1 ; shift
        [ -z "$*" ] && echo "no command specified for mwan3 use" && return
index 96a774783d6f9e257f4357e5798980819b72b1d2..06be43597103c5f738f6a947928d46771a0e8385 100755 (executable)
@@ -69,14 +69,11 @@ mwan3_add_all_routes()
 
 mwan3_rtmon_route_handle()
 {
-       local action route_line family tbl device line tid source_routing
+       local action route_line family tbl device line tid
 
        route_line=${1##"Deleted "}
        route_family=$2
 
-       config_get_bool source_routing globals source_routing 0
-       [ $source_routing -eq 0 ] && unset source_routing
-
        if [ "$route_line" = "$1" ]; then
                action="replace"
                $IPS -! add mwan3_connected_${route_family##ip} ${route_line%% *}
@@ -143,7 +140,8 @@ main()
 {
        local IP family
 
-       config_load mwan3
+       mwan3_init
+
        family=$1
        [ -z $family ] && family=ipv4
        if [ "$family" = "ipv6" ]; then
@@ -155,7 +153,6 @@ main()
        else
                IP="$IP4"
        fi
-       mwan3_init
        sh -c "echo \$\$; exec $IP monitor route" | {
                read -r monitor_pid
                trap_with_arg func_trap "$monitor_pid" SIGINT SIGTERM SIGKILL
index bd8954c073be5ba32c405ad3e48c9f5a1def2cce..c6333198e9e1df4cb18f3bcf6daa89f5c87399da 100755 (executable)
@@ -192,7 +192,6 @@ main() {
        trap if_down USR1
        trap if_up USR2
 
-       config_load mwan3
        config_get FAMILY $INTERFACE family ipv4
        config_get track_method $INTERFACE track_method ping
        config_get_bool httping_ssl $INTERFACE httping_ssl 0