diff --git a/luci-app-omr-bypass/root/etc/init.d/omr-bypass b/luci-app-omr-bypass/root/etc/init.d/omr-bypass index 2b8f56972..c69c1ce62 100755 --- a/luci-app-omr-bypass/root/etc/init.d/omr-bypass +++ b/luci-app-omr-bypass/root/etc/init.d/omr-bypass @@ -501,8 +501,8 @@ _intf_rule_v2ray_rules() { _intf_rule() { local intf - config_get intf $1 ifname - [ -z "$intf" ] && intf=$(ifstatus "$1" | jsonfilter -q -e '@["l3_device"]') + intf=$(ifstatus "$1" | jsonfilter -q -e '@["l3_device"]') + [ -z "$intf" ] && config_get intf $1 ifname [ -n "$(echo $intf | grep '@')" ] && intf=$(ifstatus "$1" | jsonfilter -q -e '@["device"]') #count=$((count+1)) config_get count $1 metric diff --git a/luci-app-openmptcprouter/root/etc/init.d/openmptcprouter b/luci-app-openmptcprouter/root/etc/init.d/openmptcprouter index 9c547bff8..8a1a5ab3c 100755 --- a/luci-app-openmptcprouter/root/etc/init.d/openmptcprouter +++ b/luci-app-openmptcprouter/root/etc/init.d/openmptcprouter @@ -18,11 +18,11 @@ omr_intf_check() { omr_intf_set() { local device local ifname - config_get ifname "$1" ifname config_get device "$1" device config_get type "$1" type - [ -z "$ifname" ] && ifname=$(ifstatus "$1" | jsonfilter -q -e '@["l3_device"]') + ifname=$(ifstatus "$1" | jsonfilter -q -e '@["l3_device"]') + [ -z "$ifname" ] && config_get ifname "$1" ifname if [ "$type" != "macvlan" ] && [ -n "$ifname" ] && [ -f /sys/class/net/${ifname}/device/uevent ]; then devicepath=$(readlink -f /sys/class/net/${ifname}) @@ -56,7 +56,6 @@ omr_set_settings() { local ifname local multipath config_get multipath "$1" multipath - config_get ifname "$1" ifname config_get device "$1" device config_get proto "$1" proto config_get type "$1" type @@ -76,7 +75,8 @@ omr_set_settings() { [ -z "$addlatency" ] && addlatency=0 devicename=$(echo "$device" | cut -d'/' -f3) - [ -z "$ifname" ] && ifname=$(ifstatus "$1" | jsonfilter -q -e '@["l3_device"]') + ifname=$(ifstatus "$1" | jsonfilter -q -e '@["l3_device"]') + [ -z "$ifname" ] && config_get ifname "$1" ifname [ -n "$(echo $ifname | grep '@')" ] && ifname=$(ifstatus "$1" | jsonfilter -q -e '@["device"]') if [ -n "$ifname" ]; then diff --git a/luci-app-openmptcprouter/root/usr/libexec/rpcd/openmptcprouter b/luci-app-openmptcprouter/root/usr/libexec/rpcd/openmptcprouter index effce068c..00b151e38 100755 --- a/luci-app-openmptcprouter/root/usr/libexec/rpcd/openmptcprouter +++ b/luci-app-openmptcprouter/root/usr/libexec/rpcd/openmptcprouter @@ -1156,7 +1156,7 @@ function interfaces_status() end duplicatemac = false - if mac ~= "" and mac ~= nil and not (section["ifname"] ~= nil and section["ifname"]:match("^@.*")) then + if mac ~= "" and mac ~= nil and not (section["ifname"] ~= nil and section["ifname"]:match("^@.*")) and not (ifname ~= nil and ifname:match("%.")) then if allmac[mac] then connectivity = "ERROR" duplicatemac = true diff --git a/mptcp/files/etc/init.d/mptcp b/mptcp/files/etc/init.d/mptcp index 604c54fe8..a4d83ea99 100755 --- a/mptcp/files/etc/init.d/mptcp +++ b/mptcp/files/etc/init.d/mptcp @@ -85,9 +85,9 @@ interface_multipath_settings() { local enabled config_get enabled "$config" auto "1" - config_get iface "$config" ifname + iface=$(ifstatus "$config" | jsonfilter -q -e '@["l3_device"]') + [ -z "$iface" ] && config_get iface "$config" ifname config_get txqueuelen "$config" txqueuelen - [ -z "$iface" ] && iface=$(ifstatus "$config" | jsonfilter -q -e '@["l3_device"]') [ -n "$(echo $iface | grep '@')" ] && iface=$(ifstatus "$config" | jsonfilter -q -e '@["device"]') if [ "$(uci -q get openmptcprouter.${config}.metric)" = "" ]; then count=$((count+1)) @@ -349,7 +349,8 @@ interface_multipath_settings() { } load_interfaces() { - config_get ifname "$1" ifname + ifname=$(ifstatus "$1" | jsonfilter -q -e '@["l3_device"]') + [ -z "$ifname" ] && config_get ifname "$1" ifname config_get multipath "$1" multipath "" [ -z "$multipath" ] && multipath="$(uci -q get openmptcprouter.$1.multipath)" [ "$multipath" != "off" ] && [ "$multipath" != "" ] && interfaces=" ${ifname} ${interfaces}" diff --git a/omr-tracker/files/etc/init.d/omr-tracker b/omr-tracker/files/etc/init.d/omr-tracker index 3276316e9..dc9fb4cb7 100755 --- a/omr-tracker/files/etc/init.d/omr-tracker +++ b/omr-tracker/files/etc/init.d/omr-tracker @@ -69,6 +69,9 @@ _launch_tracker() { [ "${ifenabled}" = "0" ] && return [ "${enabled}" = "0" ] && return [ -z "${hosts}" ] && [ "$type" != "none" ] && return + ifstatus=$(ifstatus "$1" | jsonfilter -q -e '@["up"]') + ifdevice=$(ifstatus "$1" | jsonfilter -q -e '@["device"]') + [ "${ifstatus}" = "false" ] && [ -z "${ifdevice}" ] && return [ -z "${interval_tries}" ] && interval_tries=1 procd_open_instance