From 1c77b7965b7d74d60df1027af475ebebae38973f Mon Sep 17 00:00:00 2001 From: Ycarus Date: Thu, 12 Apr 2018 15:18:56 +0200 Subject: [PATCH] Add advanced settings to luci app openmptcprouter --- .../luasrc/controller/openmptcprouter.lua | 28 +++++++++++++++++- .../luasrc/view/openmptcprouter/settings.htm | 29 +++++++++++++++++++ .../etc/sysctl.d/zzz_openmptcprouter.conf | 2 ++ 3 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm create mode 100644 luci-app-openmptcprouter/root/etc/sysctl.d/zzz_openmptcprouter.conf diff --git a/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua b/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua index 7ee643502..6c7eb5ee1 100644 --- a/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua +++ b/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua @@ -13,12 +13,15 @@ function index() 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")).leaf = true end function wizard_add() local server_ip = luci.http.formvalue("server_ip") + + -- Set ShadowSocks settings local shadowsocks_key = luci.http.formvalue("shadowsocks_key") - local glorytun_key = luci.http.formvalue("glorytun_key") if shadowsocks_key ~= "" then ucic:set("shadowsocks-libev","sss0","server",server_ip) ucic:set("shadowsocks-libev","sss0","key",shadowsocks_key) @@ -28,6 +31,9 @@ function wizard_add() ucic:save("shadowsocks-libev") ucic:commit("shadowsocks-libev") end + + -- Set Glorytun TCP settings + local glorytun_key = luci.http.formvalue("glorytun_key") if glorytun_key ~= "" then ucic:set("glorytun","vpn","host",server_ip) ucic:set("glorytun","vpn","port","65001") @@ -40,6 +46,7 @@ function wizard_add() ucic:commit("glorytun") end + -- Set interfaces settings local interfaces = luci.http.formvaluetable("intf") for intf, _ in pairs(interfaces) do local ipaddr = luci.http.formvalue("cbid.network.%s.ipaddr" % intf) @@ -57,6 +64,25 @@ function wizard_add() return end +function settings_add() + -- Set tcp_keepalive_time + local tcp_keepalive_time = luci.http.formvalue("tcp_keepalive_time") + luci.sys.exec("sysctl -w net.ipv4.tcp_keepalive_time=%s" % tcp_keepalive_time) + luci.sys.exec("sed -i 's:^net.ipv4.tcp_keepalive_time = [0-9]*:net.ipv4.tcp_keepalive_time=%s:' /etc/sysctl.d/zzz_openmptcprouter.conf" % tcp_keepalive_time) + + -- Disable IPv6 + local disable_ipv6 = luci.http.formvalue("disable_ipv6") or 0 + luci.sys.exec("sysctl -w net.ipv6.conf.all.disable_ipv6=%s" % disable_ipv6) + luci.sys.exec("sed -i 's:^net.ipv6.conf.all.disable_ipv6 = [0-9]*:net.ipv6.conf.all.disable_ipv6=%s:' /etc/sysctl.d/zzz_openmptcprouter.conf" % disable_ipv6) + ucic:set("firewall",ucic:get_first("firewall","defaults"),"disable_ipv6",disable_ipv6) + ucic:save("firewall") + ucic:commit("firewall") + + -- Done, redirect + luci.http.redirect(luci.dispatcher.build_url("admin/system/openmptcprouter/settings")) + return +end + -- This function come from OverTheBox by OVH with very small changes function interfaces_status() local ut = require "luci.util" diff --git a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm new file mode 100644 index 000000000..5d3c5d4c5 --- /dev/null +++ b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm @@ -0,0 +1,29 @@ +<%+header%> + +<% if stderr and #stderr > 0 then %>
<%=pcdata(stderr)%>
<% end %> +
+
+

<%:Advanced Settings%>

+
+ <%:Networks settings%> +
+
+ +
+ "> +
+
+
+ +
+ checked<% end %>> +
+
+
+
+
+ + +
+
+<%+footer%> diff --git a/luci-app-openmptcprouter/root/etc/sysctl.d/zzz_openmptcprouter.conf b/luci-app-openmptcprouter/root/etc/sysctl.d/zzz_openmptcprouter.conf new file mode 100644 index 000000000..12e1506ee --- /dev/null +++ b/luci-app-openmptcprouter/root/etc/sysctl.d/zzz_openmptcprouter.conf @@ -0,0 +1,2 @@ +net.ipv4.tcp_keepalive_time = 1200 +net.ipv6.conf.all.disable_ipv6 = 0 \ No newline at end of file