luci-app-shadowsocks-libev: support ss_rules options: dst_default, ifnames
Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
This commit is contained in:
parent
1c680e8c78
commit
f5ae714d9d
2 changed files with 21 additions and 10 deletions
|
@ -39,8 +39,12 @@ ss.values_redir(o, 'udp')
|
||||||
|
|
||||||
o = s:taboption('general', ListValue, "local_default",
|
o = s:taboption('general', ListValue, "local_default",
|
||||||
translate("Local-out default"),
|
translate("Local-out default"),
|
||||||
translate("Default action for locally generated packets"))
|
translate("Default action for locally generated TCP packets"))
|
||||||
ss.values_actions(o)
|
ss.values_actions(o)
|
||||||
|
o = s:taboption('general', DynamicList, "ifnames",
|
||||||
|
translate("Ingress interfaces"),
|
||||||
|
translate("Only apply rules on packets from these network interfaces"))
|
||||||
|
ss.values_ifnames(o)
|
||||||
s:taboption('general', Value, "ipt_args",
|
s:taboption('general', Value, "ipt_args",
|
||||||
translate("Extra arguments"),
|
translate("Extra arguments"),
|
||||||
translate("Passes additional arguments to iptables. Use with care!"))
|
translate("Passes additional arguments to iptables. Use with care!"))
|
||||||
|
@ -74,5 +78,9 @@ s:taboption('dstip', FileBrowser, "dst_ips_forward_file",
|
||||||
translate("Dst ip forward file"),
|
translate("Dst ip forward file"),
|
||||||
translate("File containing ip addresses for the purposes as with <em>Dst ip forward</em>"))
|
translate("File containing ip addresses for the purposes as with <em>Dst ip forward</em>"))
|
||||||
o.datatype = "file"
|
o.datatype = "file"
|
||||||
|
o = s:taboption('dstip', ListValue, "dst_default",
|
||||||
|
translate("Dst default"),
|
||||||
|
translate("Default action for packets whose destination addresses do not match any of the destination ip list"))
|
||||||
|
ss.values_actions(o)
|
||||||
|
|
||||||
return m
|
return m
|
||||||
|
|
|
@ -14,8 +14,10 @@ module("luci.model.shadowsocks-libev", function(m)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
function values_actions(o)
|
function values_actions(o)
|
||||||
for _, a in ipairs(actions) do
|
o:value("bypass")
|
||||||
o:value(a)
|
o:value("forward")
|
||||||
|
if o.option ~= "dst_default" then
|
||||||
|
o:value("checkdst")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -43,7 +45,6 @@ function values_serverlist(o)
|
||||||
end
|
end
|
||||||
|
|
||||||
function values_ipaddr(o)
|
function values_ipaddr(o)
|
||||||
local keys, vals = {}, {}
|
|
||||||
for _, v in ipairs(nw:get_interfaces()) do
|
for _, v in ipairs(nw:get_interfaces()) do
|
||||||
for _, a in ipairs(v:ipaddrs()) do
|
for _, a in ipairs(v:ipaddrs()) do
|
||||||
o:value(a:host():string(), '%s (%s)' %{ a:host(), v:shortname() })
|
o:value(a:host():string(), '%s (%s)' %{ a:host(), v:shortname() })
|
||||||
|
@ -51,6 +52,14 @@ function values_ipaddr(o)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function values_ifnames(o)
|
||||||
|
for _, v in ipairs(nw:get_interfaces()) do
|
||||||
|
if v.dev then
|
||||||
|
o:value(v.dev.name)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
function options_client(s, tab)
|
function options_client(s, tab)
|
||||||
local o
|
local o
|
||||||
|
|
||||||
|
@ -226,12 +235,6 @@ modes = {
|
||||||
"udp_only",
|
"udp_only",
|
||||||
}
|
}
|
||||||
|
|
||||||
actions = {
|
|
||||||
"bypass",
|
|
||||||
"forward",
|
|
||||||
"checkdst",
|
|
||||||
}
|
|
||||||
|
|
||||||
methods = {
|
methods = {
|
||||||
-- aead
|
-- aead
|
||||||
"aes-128-gcm",
|
"aes-128-gcm",
|
||||||
|
|
Loading…
Reference in a new issue