2019-09-07 17:36:32 +00:00
local readmeURL = " https://github.com/openwrt/packages/blob/master/net/vpnbypass/files/README.md "
2017-03-05 13:42:31 +00:00
2017-01-26 22:54:48 +00:00
m = Map ( " vpnbypass " , translate ( " VPN Bypass Settings " ) )
2019-09-07 17:36:32 +00:00
h = m : section ( NamedSection , " config " , " vpnbypass " , translate ( " Service Status " ) )
local packageName = " vpnbypass "
local uci = require " luci.model.uci " . cursor ( )
local sys = require " luci.sys "
local http = require " luci.http "
local dispatcher = require " luci.dispatcher "
en = h : option ( Button , " __toggle " )
if enabledFlag ~= " 1 " then
en.title = translate ( " Service is disabled/stopped " )
en.inputtitle = translate ( " Enable/Start " )
en.inputstyle = " apply important "
else
en.title = translate ( " Service is enabled/started " )
en.inputtitle = translate ( " Stop/Disable " )
en.inputstyle = " reset important "
end
function en . write ( )
enabledFlag = enabledFlag == " 1 " and " 0 " or " 1 "
uci : set ( packageName , " config " , " enabled " , enabledFlag )
uci : save ( packageName )
uci : commit ( packageName )
if enabledFlag == " 0 " then
sys.init . stop ( packageName )
sys.init . disable ( packageName )
else
sys.init . enable ( packageName )
sys.init . start ( packageName )
2017-03-05 13:42:31 +00:00
end
2019-10-02 01:22:35 +00:00
if dispatcher.lookup ( " admin/vpn " ) then
http.redirect ( dispatcher.build_url ( " admin/vpn/ " .. packageName ) )
else
http.redirect ( dispatcher.build_url ( " admin/services/ " .. packageName ) )
end
2017-03-05 13:42:31 +00:00
end
2017-01-26 22:54:48 +00:00
2019-09-07 17:36:32 +00:00
s = m : section ( NamedSection , " config " , " vpnbypass " , translate ( " VPN Bypass Rules " ) )
2017-01-26 22:54:48 +00:00
-- Local Ports
p1 = s : option ( DynamicList , " localport " , translate ( " Local Ports to Bypass " ) , translate ( " Local ports to trigger VPN Bypass " ) )
2017-02-17 04:16:56 +00:00
p1.datatype = " portrange "
2017-03-05 18:25:00 +00:00
-- p1.placeholder = "0-65535"
2017-03-05 13:42:31 +00:00
p1.addremove = false
p1.optional = false
2017-01-26 22:54:48 +00:00
-- Remote Ports
p2 = s : option ( DynamicList , " remoteport " , translate ( " Remote Ports to Bypass " ) , translate ( " Remote ports to trigger VPN Bypass " ) )
2017-02-17 04:16:56 +00:00
p2.datatype = " portrange "
2017-03-05 18:25:00 +00:00
-- p2.placeholder = "0-65535"
2017-03-05 13:42:31 +00:00
p2.addremove = false
p2.optional = false
2017-01-26 22:54:48 +00:00
-- Local Subnets
2017-02-17 04:16:56 +00:00
r1 = s : option ( DynamicList , " localsubnet " , translate ( " Local IP Addresses to Bypass " ) , translate ( " Local IP addresses or subnets with direct internet access (outside of the VPN tunnel) " ) )
r1.datatype = " ip4addr "
2019-09-07 17:36:32 +00:00
-- r1.placeholder = ip.new(m.uci:get("network", "lan", "ipaddr"), m.uci:get("network", "lan", "netmask"))
2017-03-05 13:42:31 +00:00
r1.addremove = false
r1.optional = false
2017-01-26 22:54:48 +00:00
-- Remote Subnets
2017-02-17 04:16:56 +00:00
r2 = s : option ( DynamicList , " remotesubnet " , translate ( " Remote IP Addresses to Bypass " ) , translate ( " Remote IP addresses or subnets which will be accessed directly (outside of the VPN tunnel) " ) )
r2.datatype = " ip4addr "
2017-03-05 18:25:00 +00:00
-- r2.placeholder = "0.0.0.0/0"
2017-03-05 13:42:31 +00:00
r2.addremove = false
r2.optional = false
2017-01-26 22:54:48 +00:00
-- Domains
2017-01-26 22:54:48 +00:00
d = Map ( " dhcp " )
s4 = d : section ( TypedSection , " dnsmasq " )
s4.anonymous = true
2017-02-15 01:19:11 +00:00
di = s4 : option ( DynamicList , " ipset " , translate ( " Domains to Bypass " ) ,
translate ( " Domains to be accessed directly (outside of the VPN tunnel), see " )
2017-03-05 13:42:31 +00:00
.. [[<a href="]] .. readmeURL .. [[#bypass-domains-formatsyntax" target="_blank">]]
2018-01-15 13:28:15 +00:00
.. translate ( " README " ) .. [[</a> ]] .. translate ( " for syntax " ) )
2019-09-07 17:36:32 +00:00
function d . on_after_commit ( map )
sys.init . restart ( " dnsmasq " )
end
2017-01-26 22:54:48 +00:00
2017-01-26 22:54:48 +00:00
return m , d