diff --git a/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua b/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua
index fa47878b5..945cb8f93 100644
--- a/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua
+++ b/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua
@@ -699,15 +699,21 @@ function interfaces_status()
if mArray.openmptcprouter["dns"] == true then
-- wanaddr
--mArray.openmptcprouter["wan_addr"] = uci:get("openmptcprouter","omr","public_detected_ipv4") or ""
- mArray.openmptcprouter["wan_addr"] = ut.trim(sys.exec("wget -4 -qO- -T 2 http://ip.openmptcprouter.com"))
- if mArray.openmptcprouter["wan_addr"] == "" then
- mArray.openmptcprouter["wan_addr"] = ut.trim(sys.exec("dig TXT +timeout=2 +short o-o.myaddr.l.google.com | awk -F'\"' '{print $2}'"))
- end
- if mArray.openmptcprouter["ipv6"] == "enabled" then
- mArray.openmptcprouter["wan_addr6"] = uci:get("openmptcprouter","omr","public_detected_ipv6") or ""
- if mArray.openmptcprouter["wan_addr6"] == "" then
- mArray.openmptcprouter["wan_addr6"] = ut.trim(sys.exec("wget -6 -qO- -T 2 http://ipv6.openmptcprouter.com"))
+
+ if uci:get("openmptcprouter","settings","external_check") ~= "0" then
+ mArray.openmptcprouter["wan_addr"] = ut.trim(sys.exec("wget -4 -qO- -T 2 http://ip.openmptcprouter.com"))
+ if mArray.openmptcprouter["wan_addr"] == "" then
+ mArray.openmptcprouter["wan_addr"] = ut.trim(sys.exec("dig TXT +timeout=2 +short o-o.myaddr.l.google.com | awk -F'\"' '{print $2}'"))
end
+ if mArray.openmptcprouter["ipv6"] == "enabled" then
+ mArray.openmptcprouter["wan_addr6"] = uci:get("openmptcprouter","omr","public_detected_ipv6") or ""
+ if mArray.openmptcprouter["wan_addr6"] == "" then
+ mArray.openmptcprouter["wan_addr6"] = ut.trim(sys.exec("wget -6 -qO- -T 2 http://ipv6.openmptcprouter.com"))
+ end
+ end
+ mArray.openmptcprouter["external_check"] = true
+ else
+ mArray.openmptcprouter["external_check"] = false
end
-- shadowsocksaddr
mArray.openmptcprouter["ss_addr"] = uci:get("openmptcprouter","omr","detected_ss_ipv4") or ""
@@ -715,8 +721,10 @@ function interfaces_status()
tracker_ip = uci:get("shadowsocks-libev","tracker","local_address") or ""
if tracker_ip ~= "" then
local tracker_port = uci:get("shadowsocks-libev","tracker","local_port")
- mArray.openmptcprouter["ss_addr"] = ut.trim(sys.exec("curl -s -4 --socks5 " .. tracker_ip .. ":" .. tracker_port .. " -m 2 http://ip.openmptcprouter.com"))
- --mArray.openmptcprouter["ss_addr6"] = sys.exec("curl -s -6 --socks5 " .. tracker_ip .. ":" .. tracker_port .. " -m 3 http://ipv6.openmptcprouter.com")
+ if uci:get("openmptcprouter","settings","external_check") ~= "0" then
+ mArray.openmptcprouter["ss_addr"] = ut.trim(sys.exec("curl -s -4 --socks5 " .. tracker_ip .. ":" .. tracker_port .. " -m 2 http://ip.openmptcprouter.com"))
+ --mArray.openmptcprouter["ss_addr6"] = sys.exec("curl -s -6 --socks5 " .. tracker_ip .. ":" .. tracker_port .. " -m 3 http://ipv6.openmptcprouter.com")
+ end
end
end
end
@@ -1043,13 +1051,13 @@ function interfaces_status()
end
local publicIP = uci:get("openmptcprouter",interface,"publicip") or ""
- if ifname ~= nil and publicIP == "" then
+ if ifname ~= nil and publicIP == "" and uci:get("openmptcprouter","settings","external_check") ~= "0" then
publicIP = ut.trim(sys.exec("omr-ip-intf " .. ifname))
end
local whois = ""
if publicIP ~= "" then
whois = uci:get("openmptcprouter",interface,"asn") or ""
- if whois == "" then
+ if whois == "" and uci:get("openmptcprouter","settings","external_check") ~= "0" then
--whois = ut.trim(sys.exec("whois " .. publicIP .. " | grep -i 'netname' | awk '{print $2}'"))
whois = ut.trim(sys.exec("wget -4 -qO- -T 1 'http://api.iptoasn.com/v1/as/ip/" .. publicIP .. "' | jsonfilter -q -e '@.as_description'"))
end
diff --git a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm
index 6445d89fa..02fd41f56 100644
--- a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm
+++ b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm
@@ -198,12 +198,14 @@
} else if (mArray.openmptcprouter.ss_addr != "" && mArray.openmptcprouter.vps_status != "DOWN")
{
var title = String.format("OpenMPTCProuter Server (%s)", mArray.openmptcprouter.ss_addr);
+ } else if (mArray.openmptcprouter.external_check == false) {
+ var title = String.format("OpenMPTCProuter Server ?");
} else {
var title = "No output";
}
content = "";
statusMessage = "";
- if (mArray.openmptcprouter.wan_addr == "" && mArray.openmptcprouter.ss_addr == "")
+ if (mArray.openmptcprouter.wan_addr == "" && mArray.openmptcprouter.ss_addr == "" && mArray.openmptcprouter.external_check == true) {
{
statusMessage += 'No VPS IP address, No WAN IP address
';
}
@@ -219,10 +221,10 @@
if (mArray.openmptcprouter.vps_status == "DOWN")
{
statusMessage += 'Can\'t ping server
';
- } else if (mArray.openmptcprouter.socks_service_enabled == true && mArray.openmptcprouter.ss_addr == "")
+ } else if (mArray.openmptcprouter.socks_service_enabled == true && mArray.openmptcprouter.ss_addr == "" && mArray.openmptcprouter.external_check == true)
{
statusMessage += 'Can\'t get public IP address from ShadowSocks
';
- } else if (mArray.openmptcprouter.wan_addr == "")
+ } else if (mArray.openmptcprouter.wan_addr == "" && mArray.openmptcprouter.external_check == true)
{
statusMessage += 'No WAN IP address detected in less than 1 second
';
}
diff --git a/mptcp/files/usr/share/omr/post-tracking.d/post-tracking b/mptcp/files/usr/share/omr/post-tracking.d/post-tracking
index 51f420fe2..6d66d6679 100755
--- a/mptcp/files/usr/share/omr/post-tracking.d/post-tracking
+++ b/mptcp/files/usr/share/omr/post-tracking.d/post-tracking
@@ -348,7 +348,9 @@ fi
# Save wan settings for status page
if [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.lc)" = "" ] || [ $(($(date +"%s") - $(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.lc))) -gt 3600 ]; then
_log "Get status and settings for $OMR_TRACKER_INTERFACE..."
- local ipaddr="$(omr-ip-intf $OMR_TRACKER_DEVICE)"
+ if [ "$(uci -q get openmptcprouter.settings.external_check)" != "0" ]; then
+ local ipaddr="$(omr-ip-intf $OMR_TRACKER_DEVICE)"
+ fi
[ -n "$ipaddr" ] && {
# Check if we can get a IPv6 address, if yes enable RA else disable
local ip6addr="$(curl -s -6 -m 3 http://ipv6.openmptcprouter.com/)"
@@ -371,10 +373,12 @@ if [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.lc)" = "" ] || [ $(($(
/etc/init.d/odhcpd enable > /dev/null 2>&1
fi
fi
- local asn="$(wget -4 -qO- -T 5 http://api.iptoasn.com/v1/as/ip/$ipaddr | jsonfilter -q -e '@.as_description')"
- [ -z "$asn" ] && {
- asn="$(whois $ipaddr 2>/dev/null | grep -m 1 -i 'netname' | awk '{print $2}')"
- }
+ if [ "$(uci -q get openmptcprouter.settings.external_check)" != "0" ]; then
+ local asn="$(wget -4 -qO- -T 5 http://api.iptoasn.com/v1/as/ip/$ipaddr | jsonfilter -q -e '@.as_description')"
+ [ -z "$asn" ] && {
+ asn="$(whois $ipaddr 2>/dev/null | grep -m 1 -i 'netname' | awk '{print $2}')"
+ }
+ fi
[ -z "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE)" ] && {
uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE=interface
}
@@ -421,6 +425,11 @@ if [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.lc)" = "" ] || [ $(($(
uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.lc=$(date +"%s")
fi
}
+ if [ "$(uci -q get shadowsocks-libev.sss0.server)" != "" ] && [ "$(uci -q get openmptcprouter.settings.external_check)" = "0" ]; then
+ if ping -c 1 $(uci -q get shadowsocks-libev.sss0.server) &> /dev/null; then
+ uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.lc=$(date +"%s")
+ fi
+ fi
if [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.lc)" = "" ] || [ $(($(date +"%s") - $(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.lc))) -gt 3600 ]; then
uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.lc=$(( $(date +"%s") - 3400 ))
_log "Get status and settings for $OMR_TRACKER_INTERFACE... Failed"