diff --git a/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua b/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua
index c505c1bd0..a25c15545 100644
--- a/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua
+++ b/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua
@@ -654,16 +654,20 @@ function interfaces_status()
local token = uci:get("openmptcprouter",s[".name"],"token") or ""
if token ~= "" then
local vpsinfo_json = sys.exec('curl -4 --max-time 2 -s -k -H "Authorization: Bearer ' .. token .. '" https://' .. serverip .. ':' .. adminport .. '/status')
- local vpsinfo = json.decode(vpsinfo_json) or ""
- if vpsinfo.vps ~= nil then
- mArray.openmptcprouter["vps_loadavg"] = vpsinfo.vps.loadavg or ""
- mArray.openmptcprouter["vps_uptime"] = vpsinfo.vps.uptime or ""
- mArray.openmptcprouter["vps_mptcp"] = vpsinfo.vps.mptcp or ""
- else
- uci:set("openmptcprouter",s[".name"],"admin_error","1")
- uci:delete("openmptcprouter",s[".name"],"token")
- uci:save("openmptcprouter",s[".name"])
- uci:commit("openmptcprouter",s[".name"])
+ if vpsinfo_json ~= "" and vpsinfo_json ~= nil then
+ local status, vpsinfo = pcall(function()
+ return json.decode(vpsinfo_json)
+ end)
+ if status and vpsinfo.vps ~= nil then
+ mArray.openmptcprouter["vps_loadavg"] = vpsinfo.vps.loadavg or ""
+ mArray.openmptcprouter["vps_uptime"] = vpsinfo.vps.uptime or ""
+ mArray.openmptcprouter["vps_mptcp"] = vpsinfo.vps.mptcp or ""
+ else
+ uci:set("openmptcprouter",s[".name"],"admin_error","1")
+ uci:delete("openmptcprouter",s[".name"],"token")
+ uci:save("openmptcprouter",s[".name"])
+ uci:commit("openmptcprouter",s[".name"])
+ end
end
end
end
@@ -940,7 +944,7 @@ function interfaces_status()
whois = uci:get("openmptcprouter",interface,"asn") or ""
if whois == "" 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 -e '@.as_description'"))
+ whois = ut.trim(sys.exec("wget -4 -qO- -T 1 'http://api.iptoasn.com/v1/as/ip/" .. publicIP .. "' | jsonfilter -q -e '@.as_description'"))
end
end
diff --git a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm
index 03b2dff58..665eaf8fa 100644
--- a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm
+++ b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm
@@ -187,6 +187,9 @@
} else if (mArray.openmptcprouter.wan_addr !== "")
{
var title = String.format("Direct output (%s)", mArray.openmptcprouter.wan_addr);
+ } else if (mArray.openmptcprouter.wan_addr == "" && mArray.openmptcprouter.service_addr != "" && mArray.openmptcprouter.vps_status !== "DOWN")
+ {
+ var title = String.format("OpenMPTCProuter Server (%s)", mArray.openmptcprouter.service_addr);
} else {
var title = "No output";
}
@@ -195,9 +198,6 @@
if (mArray.openmptcprouter.wan_addr == "" && mArray.openmptcprouter.ss_addr == "")
{
statusMessage += 'No VPS IP address, No WAN IP address
';
- } else if (mArray.openmptcprouter.wan_addr == "")
- {
- statusMessage += 'No WAN IP address
';
}
if (mArray.openmptcprouter.wan_addr !== "" && mArray.openmptcprouter.vps_status == "DOWN")
{
@@ -214,6 +214,9 @@
} else if (mArray.openmptcprouter.socks_service_enabled == true && mArray.openmptcprouter.ss_addr == "")
{
statusMessage += 'Can\'t get public IP address from ShadowSocks
';
+ } else if (mArray.openmptcprouter.wan_addr == "")
+ {
+ statusMessage += 'No WAN IP address detected in less than 1 second
';
}
if (mArray.openmptcprouter.vps_mptcp == "0")
{
diff --git a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm
index 07953cbcb..cd7ac6768 100644
--- a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm
+++ b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm
@@ -99,7 +99,7 @@ end
%>