X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fluci.git;a=blobdiff_plain;f=applications%2Fluci-app-shadowsocks-libev%2Fluasrc%2Fmodel%2Fshadowsocks-libev.lua;h=fc51dcd469e18492cd376f8837aa2ee099ae21a6;hp=0a14f33554b8766c2231524c67f4e6f776737278;hb=f1862ced41f7ff0900cfbb2ed429ad544d5f106c;hpb=bbcf73f9bf5b5dbbf3eba44ced77c019a0ce0be6 diff --git a/applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua b/applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua index 0a14f3355..fc51dcd46 100644 --- a/applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua +++ b/applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua @@ -3,6 +3,7 @@ local _up = getfenv(3) local ut = require("luci.util") +local sys = require("luci.sys") local ds = require("luci.dispatcher") local nw = require("luci.model.network") nw.init() @@ -14,20 +15,25 @@ module("luci.model.shadowsocks-libev", function(m) end) function values_actions(o) - for _, a in ipairs(actions) do - o:value(a) + o:value("bypass") + o:value("forward") + if o.option ~= "dst_default" then + o:value("checkdst") end end function values_redir(o, xmode) o.map.uci.foreach("shadowsocks-libev", "ss_redir", function(sdata) + local disabled = ucival_to_bool(sdata["disabled"]) local sname = sdata[".name"] - local mode = sdata["mode"] - if mode and mode:find(xmode) then + local mode = sdata["mode"] or "tcp_only" + if not disabled and mode:find(xmode) then local desc = "%s - %s" % {sname, mode} o:value(sname, desc) end end) + o:value("", "") + o.default = "" end function values_serverlist(o) @@ -36,14 +42,14 @@ function values_serverlist(o) local server = sdata["server"] local server_port = sdata["server_port"] if server and server_port then - local desc = "%s - %s:%s" % {sname, sdata["server"], sdata["server_port"]} + local disabled = ucival_to_bool(sdata[".disabled"]) and " - disabled" or "" + local desc = "%s - %s:%s%s" % {sname, server, server_port, disabled} o:value(sname, desc) end end) end function values_ipaddr(o) - local keys, vals = {}, {} for _, v in ipairs(nw:get_interfaces()) do for _, a in ipairs(v:ipaddrs()) do o:value(a:host():string(), '%s (%s)' %{ a:host(), v:shortname() }) @@ -51,6 +57,12 @@ function values_ipaddr(o) end end +function values_ifnames(o) + for _, v in ipairs(sys.net.devices()) do + o:value(v) + end +end + function options_client(s, tab) local o @@ -110,6 +122,7 @@ function options_common(s, tab) s:taboption(tab, Flag, "verbose", translate("Verbose")) s:taboption(tab, Flag, "ipv6_first", translate("IPv6 First"), translate("Prefer IPv6 addresses when resolving names")) s:taboption(tab, Flag, "fast_open", translate("Enable TCP Fast Open")) + s:taboption(tab, Flag, "no_delay", translate("Enable TCP_NODELAY")) s:taboption(tab, Flag, "reuse_port", translate("Enable SO_REUSEPORT")) end @@ -126,7 +139,6 @@ function cfgvalue_overview(sdata) cfgvalue_overview_(sdata, lines, names_options_common) cfgvalue_overview_(sdata, lines, { "bind_address", - "manager_address", }) elseif stype == "ss_local" or stype == "ss_redir" or stype == "ss_tunnel" then cfgvalue_overview_(sdata, lines, names_options_client) @@ -226,17 +238,13 @@ modes = { "udp_only", } -actions = { - "bypass", - "forward", - "checkdst", -} - methods = { -- aead "aes-128-gcm", "aes-192-gcm", "aes-256-gcm", + "chacha20-ietf-poly1305", + "xchacha20-ietf-poly1305", -- stream "table", "rc4",