diff --git a/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua b/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua index 9af857553..b01d7a126 100644 --- a/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua +++ b/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua @@ -8,20 +8,19 @@ local ipc = require "luci.ip" module("luci.controller.openmptcprouter", package.seeall) function index() --- entry({"admin", "openmptcprouter"}, firstchild(), _("OpenMPTCProuter"), 19).index = true --- entry({"admin", "openmptcprouter", "wizard"}, template("openmptcprouter/wizard"), _("Wizard"), 1).leaf = true --- entry({"admin", "openmptcprouter", "wizard_add"}, post("wizard_add")).leaf = true - entry({"admin", "system", "openmptcprouter"}, alias("admin", "system", "openmptcprouter", "wizard"), _("OpenMPTCProuter"), 1) - entry({"admin", "system", "openmptcprouter", "wizard"}, template("openmptcprouter/wizard"), _("Settings Wizard"), 1) - entry({"admin", "system", "openmptcprouter", "wizard_add"}, post("wizard_add")) - entry({"admin", "system", "openmptcprouter", "status"}, template("openmptcprouter/wanstatus"), _("Status"), 2).leaf = true - entry({"admin", "system", "openmptcprouter", "interfaces_status"}, call("interfaces_status")).leaf = true - entry({"admin", "system", "openmptcprouter", "settings"}, template("openmptcprouter/settings"), _("Advanced Settings"), 3).leaf = true - entry({"admin", "system", "openmptcprouter", "settings_add"}, post("settings_add")) - entry({"admin", "system", "openmptcprouter", "update_vps"}, post("update_vps")) - entry({"admin", "system", "openmptcprouter", "backup"}, template("openmptcprouter/backup"), _("Backup on server"), 3).leaf = true - entry({"admin", "system", "openmptcprouter", "backupgr"}, post("backupgr")) - entry({"admin", "system", "openmptcprouter", "debug"}, template("openmptcprouter/debug"), _("Show all settings"), 5).leaf = true + local ucic = luci.model.uci.cursor() + menuentry = ucic:get("openmptcprouter","settings","menu") pr "OpenMPTCProuter" + entry({"admin", "system", menuentry:lower()}, alias("admin", "system", menuentry:lower(), "wizard"), _(menuentry), 1) + entry({"admin", "system", menuentry:lower(), "wizard"}, template("openmptcprouter/wizard"), _("Settings Wizard"), 1) + entry({"admin", "system", menuentry:lower(), "wizard_add"}, post("wizard_add")) + entry({"admin", "system", menuentry:lower(), "status"}, template("openmptcprouter/wanstatus"), _("Status"), 2).leaf = true + entry({"admin", "system", menuentry:lower(), "interfaces_status"}, call("interfaces_status")).leaf = true + entry({"admin", "system", menuentry:lower(), "settings"}, template("openmptcprouter/settings"), _("Advanced Settings"), 3).leaf = true + entry({"admin", "system", menuentry:lower(), "settings_add"}, post("settings_add")) + entry({"admin", "system", menuentry:lower(), "update_vps"}, post("update_vps")) + entry({"admin", "system", menuentry:lower(), "backup"}, template("openmptcprouter/backup"), _("Backup on server"), 3).leaf = true + entry({"admin", "system", menuentry:lower(), "backupgr"}, post("backupgr")) + entry({"admin", "system", menuentry:lower(), "debug"}, template("openmptcprouter/debug"), _("Show all settings"), 5).leaf = true end function interface_from_device(dev) @@ -730,6 +729,7 @@ function wizard_add() ucic:commit("openmptcprouter") -- Restart all + menuentry = ucic:get("openmptcprouter","settings","menu") or "openmptcprouter" if gostatus == true then luci.sys.call("/etc/init.d/macvlan restart >/dev/null 2>/dev/null") luci.sys.call("(env -i /bin/ubus call network reload) >/dev/null 2>/dev/null") @@ -751,9 +751,9 @@ function wizard_add() luci.sys.call("/etc/init.d/mptcpovervpn restart >/dev/null 2>/dev/null") luci.sys.call("/etc/init.d/vnstat restart >/dev/null 2>/dev/null") luci.sys.call("/etc/init.d/v2ray restart >/dev/null 2>/dev/null") - luci.http.redirect(luci.dispatcher.build_url("admin/system/openmptcprouter/status")) + luci.http.redirect(luci.dispatcher.build_url("admin/system/" .. menuentry:lower() .. "/status")) else - luci.http.redirect(luci.dispatcher.build_url("admin/system/openmptcprouter/wizard")) + luci.http.redirect(luci.dispatcher.build_url("admin/system/" .. menuentry:lower() .. "/wizard")) end return end @@ -914,7 +914,8 @@ function settings_add() luci.sys.call("/etc/init.d/omr-6in4 restart >/dev/null 2>/dev/null") -- Done, redirect - luci.http.redirect(luci.dispatcher.build_url("admin/system/openmptcprouter/settings")) + menuentry = ucic:get("openmptcprouter","settings","menu") or "openmptcprouter" + luci.http.redirect(luci.dispatcher.build_url("admin/system/" .. menuentry:lower() .. "/settings")) return end @@ -937,7 +938,8 @@ function backupgr() if send_backup ~= "" then luci.sys.call("/etc/init.d/openmptcprouter-vps backup_send >/dev/null 2>/dev/null") end - luci.http.redirect(luci.dispatcher.build_url("admin/system/openmptcprouter/backup")) + menuentry = ucic:get("openmptcprouter","settings","menu") or "openmptcprouter" + luci.http.redirect(luci.dispatcher.build_url("admin/system/" .. menuentry:lower() .. "/backup")) return end diff --git a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/backup.htm b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/backup.htm index 174e7cda1..f7ebf5bb0 100644 --- a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/backup.htm +++ b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/backup.htm @@ -1,9 +1,11 @@ <%+header%> <% luci.sys.call("/etc/init.d/openmptcprouter-vps backup_list >/dev/null 2>/dev/null") +local ucic = luci.model.uci.cursor() +menuentry = ucic:get("openmptcprouter","settings","menu") or "openmptcprouter" %> <% if stderr and #stderr > 0 then %>
<%=pcdata(stderr)%>
<% end %> -
+

<%:Backup on server%>

diff --git a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm index da7e9f494..fbc61a7a9 100644 --- a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm +++ b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm @@ -3,6 +3,8 @@ <% if stderr and #stderr > 0 then %>
<%=pcdata(stderr)%>
<% end %> <% local latest_omr_version=luci.model.uci.cursor():get("openmptcprouter","latest_versions","vps") + local ucic = luci.model.uci.cursor() + menuentry = ucic:get("openmptcprouter","settings","menu") or "openmptcprouter" omr_test = false uci:foreach("openmptcprouter","server", function(s) servername = s[".name"] @@ -13,7 +15,7 @@ end) if omr_test == true then %> - +

<%:Update VPS%>

@@ -34,7 +36,7 @@ %>
- +

<%:Advanced Settings%>

diff --git a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm index e02083b86..f4836fecf 100644 --- a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm +++ b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm @@ -31,6 +31,10 @@ -- * Many tests -%> <%+header%> +<% +local ucic = luci.model.uci.cursor() +menuentry = ucic:get("openmptcprouter","settings","menu") or "openmptcprouter" +%> @@ -48,7 +52,7 @@ } } function formatBytes(a,b=2){if(0===a)return"0 Bytes";const c=0>b?0:b,d=Math.floor(Math.log(a)/Math.log(1024));return parseFloat((a/Math.pow(1024,d)).toFixed(c))+" "+["Bytes","KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"][d]} - XHR.poll(20, '<%=build_url("admin/system/openmptcprouter/interfaces_status")%>', null, + XHR.poll(20, '<%=build_url("admin/system/" .. menuentry:lower() .. "/interfaces_status")%>', null, function(x, mArray) { var status = document.getElementById('openmptcprouter_status'); @@ -218,7 +222,7 @@ temp += ''; temp += '
'; temp += ''; - temp += ''; + temp += ''; var statusIcon = "<%=resource%>/openmptcprouter/images/statusOK.png"; var equipmentIcon = ''; content = ""; diff --git a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm index ad41a924f..eecac2bb7 100644 --- a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm +++ b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm @@ -7,7 +7,7 @@ local sys = require "luci.sys" local ut = require "luci.util" local ifaces = sys.net:devices() - + menuentry = uci:get("openmptcprouter","settings","menu") or "openmptcprouter" function device_notvirtual(dev) for _, iface in ipairs(net:get_networks()) do local ifacen = iface:name() @@ -35,7 +35,7 @@ } <% if stderr and #stderr > 0 then %>
<%=pcdata(stderr)%>
<% end %> - +

<%:Wizard%>

diff --git a/luci-app-openmptcprouter/root/etc/hotplug.d/net/99-omr-rename b/luci-app-openmptcprouter/root/etc/hotplug.d/net/99-omr-rename index 0928e0140..ad256bae9 100644 --- a/luci-app-openmptcprouter/root/etc/hotplug.d/net/99-omr-rename +++ b/luci-app-openmptcprouter/root/etc/hotplug.d/net/99-omr-rename @@ -14,6 +14,10 @@ _set_intf_name() { config_get device $intfname device config_get modalias $intfname modalias config_get ifname $intfname ifname + config_get type $intfname ifname + if [ "$type" = "tunnel" ] || [ "$type" = "bridge" ]; then + return + fi [ -n "$modalias" ] && { if [ -f /sys/class/net/${INTERFACE}/device/uevent ]; then chk_modalias=$MODALIAS diff --git a/luci-app-openmptcprouter/root/etc/uci-defaults/openmptcprouter b/luci-app-openmptcprouter/root/etc/uci-defaults/openmptcprouter index 9fae15302..24cbccb20 100755 --- a/luci-app-openmptcprouter/root/etc/uci-defaults/openmptcprouter +++ b/luci-app-openmptcprouter/root/etc/uci-defaults/openmptcprouter @@ -107,6 +107,12 @@ if [ "$(uci -q get openmptcprouter.settings.scaling_governor)" = "" ]; then commit openmptcprouter EOF fi +if [ "$(uci -q get openmptcprouter.settings.menu)" = "" ]; then + uci -q batch <<-EOF >/dev/null + set openmptcprouter.settings.menu='OpenMPTCProuter' + commit openmptcprouter + EOF +fi sed -i 's/net.ipv4.tcp_retries2=3$/net.ipv4.tcp_retries2=15/' /etc/sysctl.d/zzz_openmptcprouter.conf diff --git a/luci-app-openmptcprouter/root/usr/libexec/rpcd/openmptcprouter b/luci-app-openmptcprouter/root/usr/libexec/rpcd/openmptcprouter index 67a4160bd..5df98b004 100755 --- a/luci-app-openmptcprouter/root/usr/libexec/rpcd/openmptcprouter +++ b/luci-app-openmptcprouter/root/usr/libexec/rpcd/openmptcprouter @@ -703,6 +703,9 @@ function interfaces_status() local tracker_port = uci:get("shadowsocks-libev","tracker","local_port") if mArray.openmptcprouter["external_check"] ~= false then mArray.openmptcprouter["ss_addr"] = ut.trim(sys.exec("curl -s -4 --socks5 " .. tracker_ip .. ":" .. tracker_port .. " -m " .. timeout .. " " .. check_ipv4_website)) + if mArray.openmptcprouter["ss_addr"] == "" then + mArray.openmptcprouter["ss_addr"] = ut.trim(sys.exec("curl -s -4 --socks5 " .. tracker_ip .. ":" .. tracker_port .. " -m " .. timeout .. " ifconfig.co")) + end --mArray.openmptcprouter["ss_addr6"] = sys.exec("curl -s -6 --socks5 " .. tracker_ip .. ":" .. tracker_port .. " -m 3 http://ipv6.openmptcprouter.com") end end