diff --git a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm index 6b292f457..2732ac558 100644 --- a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm +++ b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm @@ -144,7 +144,7 @@ } } - if (mArray.openmptcprouter.socks_service_enabled == true) + if (mArray.openmptcprouter.socks_service_enabled == true && mArray.openmptcprouter.service_addr == "") { if (mArray.openmptcprouter.socks_service == false) { @@ -160,7 +160,7 @@ { statusMessage += _('Filesystem is readonly') + '
'; } - if (mArray.openmptcprouter.tun_service == false) + if (mArray.openmptcprouter.tun_service == false && mArray.openmptcprouter.service_addr == "") { statusMessage += _('VPN is not running') + '
'; } @@ -232,7 +232,7 @@ { statusMessage += _('No VPS IP address, No WAN IP address') + '
'; } - if (mArray.openmptcprouter.wan_addr !== "" && mArray.openmptcprouter.vps_status == "DOWN") + if (mArray.openmptcprouter.service_addr == "" && mArray.openmptcprouter.wan_addr !== "" && mArray.openmptcprouter.vps_status == "DOWN") { statusMessage += _('Can\'t access and use server part') + '
'; } @@ -241,33 +241,38 @@ statusMessageClass = "error"; statusIcon = "<%=resource%>/openmptcprouter/images/statusError.png"; } - if (mArray.openmptcprouter.vps_status == "DOWN") + if (mArray.openmptcprouter.service_addr == "") { - statusMessage += _('Can\'t ping server') + '
'; - } 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 == "" && mArray.openmptcprouter.external_check == true) - { - statusMessage += _('No WAN IP address detected in less than 1 second') + '
'; - } - if (mArray.openmptcprouter.vps_admin == false) - { - statusMessage += _('Can\'t contact Server Admin Script'); - if (mArray.openmptcprouter.vps_admin_error_msg !== "") + statusMessage += _('No server defined') + '
'; + } else { + if (mArray.openmptcprouter.vps_status == "DOWN") { - statusMessage += ' (' + mArray.openmptcprouter.vps_admin_error_msg + ')'; + statusMessage += _('Can\'t ping server') + '
'; + } 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 == "" && mArray.openmptcprouter.external_check == true) + { + statusMessage += _('No WAN IP address detected in less than 1 second') + '
'; } - statusMessage += '
'; - } - if (mArray.openmptcprouter.vps_mptcp == "0") - { - statusMessage += _('MPTCP is not enabled on the server') + '
'; - } - if (mArray.openmptcprouter.vps_time_accurate == false) - { - statusMessage += _('Big time difference between the server and the router') + '
'; - } + if (mArray.openmptcprouter.vps_admin == false) + { + statusMessage += _('Can\'t contact Server Admin Script'); + if (mArray.openmptcprouter.vps_admin_error_msg !== "") + { + statusMessage += ' (' + mArray.openmptcprouter.vps_admin_error_msg + ')'; + } + statusMessage += '
'; + } + if (mArray.openmptcprouter.vps_mptcp == "0") + { + statusMessage += _('MPTCP is not enabled on the server') + '
'; + } + if (mArray.openmptcprouter.vps_time_accurate == false) + { + statusMessage += _('Big time difference between the server and the router') + '
'; + } + } if (statusMessage !== "" && statusMessageClass !== "error") { statusMessageClass = "warning"; @@ -442,7 +447,7 @@ { statusMessage += _('Multipath seems to be blocked on the connection') + '
'; } - if(server_ping == 'DOWN') + if(server_ping == 'DOWN' && mArray.openmptcprouter.service_addr == "") { statusMessage += _('No Server ping response after 1 second') + '
'; } diff --git a/luci-app-openmptcprouter/root/usr/libexec/rpcd/openmptcprouter b/luci-app-openmptcprouter/root/usr/libexec/rpcd/openmptcprouter index 33a05b497..99c0b578b 100755 --- a/luci-app-openmptcprouter/root/usr/libexec/rpcd/openmptcprouter +++ b/luci-app-openmptcprouter/root/usr/libexec/rpcd/openmptcprouter @@ -635,6 +635,15 @@ function interfaces_status() mArray.openmptcprouter["latest_version_vps"] = uci:get("openmptcprouter", "latest_versions", "vps") or "" mArray.openmptcprouter["service_addr"] = uci:get("shadowsocks-libev", "sss0", "server") or "" + if mArray.openmptcprouter["service_addr"] == "" or mArray.openmptcprouter["service_addr"] == "192.168.1.3" then + mArray.openmptcprouter["service_addr"] = "" + ucic:foreach("openmptcprouter", "server", function(s) + local serverip = uci:get("openmptcprouter",s[".name"],"ip") or "" + if serverip ~= "" then + mArray.openmptcprouter["service_addr"] = serverip + end + end) + end local net = ntm:get_network("lan") local ipaddr = net:ipaddr() or "" mArray.openmptcprouter["local_addr"] = ipaddr @@ -687,7 +696,7 @@ function interfaces_status() end -- shadowsocksaddr mArray.openmptcprouter["ss_addr"] = uci:get("openmptcprouter","omr","detected_ss_ipv4") or "" - if mArray.openmptcprouter["ss_addr"] == "" then + if mArray.openmptcprouter["ss_addr"] == "" and mArray.openmptcprouter["service_addr"] ~= "" then tracker_ip = uci:get("shadowsocks-libev","tracker","local_address") or "" if tracker_ip ~= "" then local tracker_port = uci:get("shadowsocks-libev","tracker","local_port") @@ -1013,7 +1022,7 @@ function interfaces_status() end end if uci:get("openmptcprouter", interface, "manufacturer") == "huawei" then - signal = sys.exec("omr-huawei " .. gateway) + signal = sys.exec("omr-huawei " .. gateway .. " | tr -d '\n'") end elseif gateway == "" then gw_ping = "DOWN" @@ -1024,13 +1033,13 @@ function interfaces_status() local proto = section['proto'] if proto == "qmi" then local device = section['device'] - signal = sys.exec("omr-qmi " .. device) + signal = sys.exec("omr-qmi " .. device .. " | tr -d '\n'") elseif proto == "3g" then local device = section['device'] - signal = sys.exec("omr-3g " .. device) + signal = sys.exec("omr-3g " .. device .. " | tr -d '\n'") elseif proto == "modemmanager" then local device = section['device'] - signal = sys.exec("omr-modemmanager " .. device) + signal = sys.exec("omr-modemmanager " .. device .. " | tr -d '\n'") end end