From af13d7f2c97157fe6da7be1098cd0ef1a26569c8 Mon Sep 17 00:00:00 2001 From: Ycarus Date: Thu, 28 Jun 2018 15:44:55 +0200 Subject: [PATCH] Check Multipath status only if gateway up --- .../luasrc/controller/openmptcprouter.lua | 30 +++++++++---------- .../root/bin/omr-mptcp-intf | 6 ++-- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua b/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua index 06089cb28..96ae9ab95 100644 --- a/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua +++ b/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua @@ -383,7 +383,7 @@ function interfaces_status() local tracker_ip = uci:get("shadowsocks-libev","tracker","local_address") or "" local tracker_port = uci:get("shadowsocks-libev","tracker","local_port") if tracker_ip ~= "" then - mArray.openmptcprouter["ss_addr"] = sys.exec("curl -s -4 --socks5 " .. tracker_ip .. ":" .. tracker_port .. " -m 5 http://ip.openmptcprouter.com") + mArray.openmptcprouter["ss_addr"] = sys.exec("curl -s -4 --socks5 " .. tracker_ip .. ":" .. tracker_port .. " -m 3 http://ip.openmptcprouter.com") else mArray.openmptcprouter["ss_addr"] = "" end @@ -519,20 +519,6 @@ function interfaces_status() connectivity = 'ERROR' end - if mArray.openmptcprouter["dns"] == true then - -- Test if multipath can work on the connection - local multipath_available - local multipath_available_state = ut.trim(sys.exec("omr-mptcp-intf " .. ifname .. " | grep 'Nay, Nay, Nay'")) - if multipath_available_state == "" then - multipath_available = 'OK' - else - multipath_available = 'ERROR' - end - else - multipath_available = 'NO CHECK' - end - - -- Detect WAN gateway status local gw_ping = 'UP' if gateway == "" then @@ -554,6 +540,20 @@ function interfaces_status() if gateway == "" then connectivity = 'ERROR' end + + if mArray.openmptcprouter["dns"] == true and ifname ~= "" and gateway ~= "" and gw_ping == "UP" then + -- Test if multipath can work on the connection + local multipath_available + local multipath_available_state = ut.trim(sys.exec("omr-mptcp-intf " .. ifname .. " | grep 'Nay, Nay, Nay'")) + if multipath_available_state == "" then + multipath_available = 'OK' + else + multipath_available = 'ERROR' + end + else + multipath_available = 'NO CHECK' + end + -- Detect if WAN get an IPv6 local ipv6_discover = 'NONE' diff --git a/luci-app-openmptcprouter/root/bin/omr-mptcp-intf b/luci-app-openmptcprouter/root/bin/omr-mptcp-intf index 4de062d19..6e8e020ef 100755 --- a/luci-app-openmptcprouter/root/bin/omr-mptcp-intf +++ b/luci-app-openmptcprouter/root/bin/omr-mptcp-intf @@ -1,10 +1,10 @@ #!/bin/sh uci -q batch <<-EOF >/dev/null - add_list dhcp.dnsmasq.ipset='/multipath-tcp.org/ss_rules_dst_bypass' + add_list dhcp.@dnsmasq[-1].ipset='/multipath-tcp.org/ss_rules_dst_bypass' commit dhcp EOF -curl -s -4 -m 5 --interface $1 http://www.multipath-tcp.org +curl -s -4 -m 3 --interface $1 http://www.multipath-tcp.org uci -q batch <<-EOF >/dev/null - del_list dhcp.dnsmasq.ipset='/multipath-tcp.org/ss_rules_dst_bypass' + del_list dhcp.@dnsmasq[-1].ipset='/multipath-tcp.org/ss_rules_dst_bypass' commit dhcp EOF