From 41bc2d5d2d829038373e997f20cf76ef3e5028dd Mon Sep 17 00:00:00 2001 From: Ycarus Date: Fri, 10 Aug 2018 17:24:23 +0200 Subject: [PATCH] Add mptcp check interface --- .../luasrc/controller/openmptcprouter.lua | 24 +++++++ .../view/openmptcprouter/mptcp_check.htm | 70 +++++++++++++++++++ 2 files changed, 94 insertions(+) create mode 100644 luci-app-openmptcprouter/luasrc/view/openmptcprouter/mptcp_check.htm diff --git a/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua b/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua index 383cc5978..c4aa3ff1c 100644 --- a/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua +++ b/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua @@ -16,6 +16,8 @@ function index() 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")).leaf = true + entry({"admin", "system", "openmptcprouter", "mptcp_check"}, template("openmptcprouter/mptcp_check"), _("MPTCP Support Check"), 3).leaf = true + entry({"admin", "system", "openmptcprouter", "mptcp_check_trace"}, post("mptcp_check_trace")).leaf = true end function wizard_add() @@ -829,3 +831,25 @@ function _ipv6_discover(interface) end return ra6_result end + +function mptcp_check_trace(interface) + luci.http.prepare_content("text/plain") + local tracebox + local uci = require "luci.model.uci".cursor() + local server = uci:get("shadowsocks-libev", "sss0", "server") or "" + if server == "" then return end + if interface == "" then + tracebox = io.popen("tracebox -s /usr/share/tracebox/omr-mptcp-trace.lua " .. server) + else + tracebox = io.popen("tracebox -s /usr/share/tracebox/omr-mptcp-trace.lua -i " .. interface .. " " .. server) + end + if tracebox then + while true do + local ln = tracebox:read("*l") + if not ln then break end + luci.http.write(ln) + luci.http.write("\n") + end + end + return +end \ No newline at end of file diff --git a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/mptcp_check.htm b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/mptcp_check.htm new file mode 100644 index 000000000..d7849e6bc --- /dev/null +++ b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/mptcp_check.htm @@ -0,0 +1,70 @@ +<%+header%> + +<% + local uci = require("luci.model.uci").cursor() + local sys = require "luci.sys" + local ifaces = sys.net:devices() +%> + + + + +<% if stderr and #stderr > 0 then %>
<%=pcdata(stderr)%>
<% end %> +
+
+

<%:MPTCP Support Check%>

+
<%:Check if MPTCP between interface and server is working.%>
+
+ <%:Settings%> +
+
+ +
+ +
+
+ +
+
+
+ +
+ +
+<%+footer%>