lede/package/lean/luci-app-openvpn-server/luasrc/model/cbi/openvpn-server/basic.lua

77 lines
2.2 KiB
Lua

mp = Map("openvpn")
mp.title = translate("OpenVPN Server")
mp.description = translate("An easy config OpenVPN Server Web-UI")
mp:section(SimpleSection).template = "openvpn-server/openvpn-server_status"
s = mp:section(TypedSection, "openvpn")
s.anonymous = true
s.addremove = false
o = s:option(Flag, "enabled", translate("Enable"))
proto = s:option(Value, "proto", translate("Proto"))
proto:value("tcp4", translate("TCP Server IPv4"))
proto:value("udp4", translate("UDP Server IPv4"))
proto:value("tcp6", translate("TCP Server IPv6"))
proto:value("udp6", translate("UDP Server IPv6"))
port = s:option(Value, "port", translate("Port"))
port.datatype = "range(1,65535)"
ddns = s:option(Value, "ddns", translate("WAN DDNS or IP"))
ddns.datatype = "string"
ddns.default = "exmple.com"
ddns.rmempty = false
localnet = s:option(Value, "server", translate("Client Network"))
localnet.datatype = "string"
localnet.description = translate("VPN Client Network IP with subnet")
list = s:option(DynamicList, "push")
list.title = translate("Client Settings")
list.datatype = "string"
list.description = translate("Set route 192.168.0.0 255.255.255.0 and dhcp-option DNS 192.168.0.1 base on your router")
o = s:option(Button, "certificate", translate("OpenVPN Client config file"))
o.inputtitle = translate("Download .ovpn file")
o.description = translate("If you are using IOS client, please download this .ovpn file and send it via QQ or Email to your IOS device")
o.inputstyle = "reload"
o.write = function()
luci.sys.call("sh /etc/genovpn.sh 2>&1 >/dev/null")
Download()
end
function Download()
local t,e
t = nixio.open("/tmp/my.ovpn","r")
luci.http.header('Content-Disposition','attachment; filename="my.ovpn"')
luci.http.prepare_content("application/octet-stream")
while true do
e = t:read(nixio.const.buffersize)
if (not e) or (#e==0) then
break
else
luci.http.write(e)
end
end
t:close()
luci.http.close()
end
local pid = luci.util.exec("/usr/bin/pgrep openvpn")
function openvpn_process_status()
local status = "OpenVPN is not running now "
if pid ~= "" then
status = "OpenVPN is running with the PID " .. pid .. ""
end
local status = { status = status }
local table = { pid = status }
return table
end
return mp