You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
2.2 KiB
Lua
62 lines
2.2 KiB
Lua
-- Import the necessary LuCI modules
|
|
local uci = require("luci.model.uci").cursor()
|
|
local sys = require("luci.sys")
|
|
local util = require("luci.util")
|
|
|
|
-- Define the model
|
|
m = Map("tganyconnect_cfg", "TorGuard AnyConnect VPN Setup")
|
|
|
|
-- Define the section for the AnyConnect settings
|
|
s = m:section(TypedSection, "anyconnectconfig", "AnyConnect VPN Settings")
|
|
s.anonymous = true
|
|
s.addremove = false
|
|
|
|
-- Define the input fields for the AnyConnect settings
|
|
user = s:option(Value, "username", translate("VPN Username"))
|
|
pass = s:option(Value, "password", translate("VPN Password"))
|
|
|
|
svr = s:option(ListValue, "server", translate("VPN Server"))
|
|
-- Add all servers here
|
|
svr:value("fr.anyconnect.host", "France Strasbourg")
|
|
svr:value("ger.anyconnect.host", "Germany Frankfurt")
|
|
svr:value("ger2.anyconnect.host", "Germany - Frankfurt 2")
|
|
svr:value("hk.anyconnect.host", "Hong Kong")
|
|
svr:value("nl.anyconnect.host", "Netherlands")
|
|
svr:value("pl.anyconnect.host", "Poland")
|
|
svr:value("sg.anyconnect.host", "Singapore")
|
|
svr:value("uk.anyconnect.host", "United Kingdom")
|
|
svr:value("la.usa.anyconnect.host", "USA LA")
|
|
svr:value("ny.usa.anyconnect.host", "USA NY")
|
|
|
|
dns = s:option(ListValue, "dns", translate("DNS"))
|
|
-- Add all ports here
|
|
dns:value("8.8.8.8 8.8.4.4", "Google")
|
|
dns:value("1.1.1.1 1.0.0.1", "Cloudflare")
|
|
dns:value("9.9.9.9 149.112.112.112", "Quad9")
|
|
dns:value("208.67.222.222 208.67.220.220", "OpenDNS")
|
|
dns:value("84.200.69.80 84.200.70.40", "DNS.WATCH")
|
|
dns:value("8.26.56.26 8.20.247.2", "Comodo Secure DNS")
|
|
dns:value("64.6.64.6 64.6.65.6", "Verisign DNS")
|
|
dns:value("185.228.168.9 185.228.169.9", "CleanBrowsing")
|
|
dns:value("77.88.8.8 77.88.8.1", "Yandex.DNS")
|
|
dns:value("91.239.100.100 89.233.43.71", "UncensoredDNS")
|
|
|
|
|
|
-- VPN Control: Start/Stop AnyConnect VPN
|
|
ctrl = m:section(TypedSection, "anyconnectconfig", "VPN Control: Start/Stop AnyConnect")
|
|
ctrl.anonymous = true
|
|
ctrl.addremove = false
|
|
|
|
btnStop = ctrl:option(Button, "_btn_start", translate("Click to Stop AnyConnect"))
|
|
function btnStop.write()
|
|
io.popen("/etc/init.d/tganyconnect stop")
|
|
end
|
|
|
|
btnStart = ctrl:option(Button, "_btn_stop", translate("Click to Start AnyConnect"))
|
|
function btnStart.write()
|
|
io.popen("/etc/init.d/tganyconnect start")
|
|
end
|
|
|
|
-- Return the configuration page
|
|
return m
|