From 30b413b43ab7d496771c7b4e565b31fe78bf5ca9 Mon Sep 17 00:00:00 2001 From: coolsnowwolf Date: Mon, 5 Nov 2018 12:15:56 +0800 Subject: [PATCH] add udp server support to openvpn luci --- package/lean/luci-app-openvpn-server/Makefile | 2 +- .../luasrc/controller/openvpn-server.lua | 8 ++++ .../cbi/openvpn-server/openvpn-server.lua | 44 ++++--------------- .../luasrc/view/openvpn/openvpn_status.htm | 22 ++++++++++ .../po/zh-cn/openvpn-server.po | 3 ++ .../root/etc/uci-defaults/openvpn | 2 +- 6 files changed, 43 insertions(+), 38 deletions(-) create mode 100644 package/lean/luci-app-openvpn-server/luasrc/view/openvpn/openvpn_status.htm diff --git a/package/lean/luci-app-openvpn-server/Makefile b/package/lean/luci-app-openvpn-server/Makefile index 1a8f23034..4e51de644 100644 --- a/package/lean/luci-app-openvpn-server/Makefile +++ b/package/lean/luci-app-openvpn-server/Makefile @@ -10,7 +10,7 @@ LUCI_DEPENDS:=+openvpn-openssl +openvpn-easy-rsa +kmod-tun LUCI_PKGARCH:=all PKG_NAME:=luci-app-openvpn-server PKG_VERSION:=2.0 -PKG_RELEASE:=17 +PKG_RELEASE:=18 include $(TOPDIR)/feeds/luci/luci.mk diff --git a/package/lean/luci-app-openvpn-server/luasrc/controller/openvpn-server.lua b/package/lean/luci-app-openvpn-server/luasrc/controller/openvpn-server.lua index b5eb40a69..3d05765f3 100644 --- a/package/lean/luci-app-openvpn-server/luasrc/controller/openvpn-server.lua +++ b/package/lean/luci-app-openvpn-server/luasrc/controller/openvpn-server.lua @@ -11,4 +11,12 @@ function index() local page entry({"admin", "vpn", "openvpn-server"}, cbi("openvpn-server/openvpn-server"), _("OpenVPN Server"), 80).dependent=false + entry({"admin", "vpn", "openvpn-server","status"},call("act_status")).leaf=true end + +function act_status() + local e={} + e.running=luci.sys.call("pgrep openvpn >/dev/null")==0 + luci.http.prepare_content("application/json") + luci.http.write_json(e) +end \ No newline at end of file diff --git a/package/lean/luci-app-openvpn-server/luasrc/model/cbi/openvpn-server/openvpn-server.lua b/package/lean/luci-app-openvpn-server/luasrc/model/cbi/openvpn-server/openvpn-server.lua index df795e4c9..974dafa10 100644 --- a/package/lean/luci-app-openvpn-server/luasrc/model/cbi/openvpn-server/openvpn-server.lua +++ b/package/lean/luci-app-openvpn-server/luasrc/model/cbi/openvpn-server/openvpn-server.lua @@ -1,9 +1,11 @@ --require("luci.tools.webadmin") -mp = Map("openvpn", "OpenVPN Server","") +mp = Map("openvpn", "OpenVPN Server",translate("An easy config OpenVPN Server Web-UI")) -s = mp:section(TypedSection, "openvpn", "", translate("An easy config OpenVPN Server Web-UI")) +mp:section(SimpleSection).template = "openvpn/openvpn_status" + +s = mp:section(TypedSection, "openvpn") s.anonymous = true s.addremove = false @@ -11,6 +13,10 @@ s:tab("basic", translate("Base Setting")) o = s:taboption("basic", Flag, "enabled", translate("Enable")) +proto = s:taboption("basic",Value,"proto", translate("Proto")) +proto:value("tcp-server", translate("TCP Server")) +proto:value("udp", translate("UDP Server")) + port = s:taboption("basic", Value, "port", translate("Port")) port.datatype = "range(1,65535)" @@ -88,44 +94,10 @@ function Download() luci.http.close() end -t = mp:section(Table, openvpn_process_status()) -t.anonymous = true - -t:option(DummyValue, "status", translate("OpenVPN status")) - -if pid == "" then - start = t:option(Button, "_start", translate("Start")) - start.inputstyle = "apply" - function start.write(self, section) - luci.util.exec("uci set openvpn.myvpn.enabled=='1' && uci commit openvpn") - message = luci.util.exec("/etc/init.d/openvpn start 2>&1") - luci.util.exec("sleep 2") - luci.http.redirect( - luci.dispatcher.build_url("admin", "vpn", "openvpn-server") .. "?message=" .. message - ) - end -else - stop = t:option(Button, "_stop", translate("Stop")) - stop.inputstyle = "reset" - function stop.write(self, section) - luci.util.exec("uci set openvpn.myvpn.enabled=='0' && uci commit openvpn") - luci.util.exec("/etc/init.d/openvpn stop") - luci.util.exec("sleep 2") - luci.http.redirect( - luci.dispatcher.build_url("admin", "vpn", "openvpn-server") - ) - end -end - function mp.on_after_commit(self) os.execute("uci set firewall.openvpn.dest_port=$(uci get openvpn.myvpn.port) && uci commit firewall && /etc/init.d/firewall restart") os.execute("/etc/init.d/openvpn restart") end ---local apply = luci.http.formvalue("cbi.apply") ---if apply then --- os.execute("/etc/init.d/openvpn restart") ---end - return mp diff --git a/package/lean/luci-app-openvpn-server/luasrc/view/openvpn/openvpn_status.htm b/package/lean/luci-app-openvpn-server/luasrc/view/openvpn/openvpn_status.htm new file mode 100644 index 000000000..752abd4d0 --- /dev/null +++ b/package/lean/luci-app-openvpn-server/luasrc/view/openvpn/openvpn_status.htm @@ -0,0 +1,22 @@ + + +
+

+ <%:Collecting data...%> +

+
\ No newline at end of file diff --git a/package/lean/luci-app-openvpn-server/po/zh-cn/openvpn-server.po b/package/lean/luci-app-openvpn-server/po/zh-cn/openvpn-server.po index 960ba61b1..b13d6a896 100644 --- a/package/lean/luci-app-openvpn-server/po/zh-cn/openvpn-server.po +++ b/package/lean/luci-app-openvpn-server/po/zh-cn/openvpn-server.po @@ -48,3 +48,6 @@ msgstr "根据路由的实际LAN IP 修改 route 192.168.0.0 255.255.255.0 和 d msgid "OpenVPN status" msgstr "OpenVPN 服务器运行状态" + +msgid "Proto" +msgstr "协议" diff --git a/package/lean/luci-app-openvpn-server/root/etc/uci-defaults/openvpn b/package/lean/luci-app-openvpn-server/root/etc/uci-defaults/openvpn index 5afa99995..412fe1c8a 100755 --- a/package/lean/luci-app-openvpn-server/root/etc/uci-defaults/openvpn +++ b/package/lean/luci-app-openvpn-server/root/etc/uci-defaults/openvpn @@ -12,7 +12,7 @@ uci rename firewall.@rule[-1]="openvpn" uci set firewall.@rule[-1].name="openvpn" uci set firewall.@rule[-1].target="ACCEPT" uci set firewall.@rule[-1].src="wan" -uci set firewall.@rule[-1].proto="tcp" +uci set firewall.@rule[-1].proto="tcp udp" uci set firewall.@rule[-1].dest_port="1194" uci delete firewall.vpn