1 -- Copyright 2015 Jian Chang <aa65535@live.com>
2 -- Licensed to the public under the Apache License 2.0.
6 if luci.sys.call("pidof ss-redir >/dev/null") == 0 then
7 m = Map("shadowsocks-libev", translate("ShadowSocks-libev"), translate("ShadowSocks-libev is running"))
9 m = Map("shadowsocks-libev", translate("ShadowSocks-libev"), translate("ShadowSocks-libev is not running"))
13 s = m:section(TypedSection, "shadowsocks-libev", translate("Global Setting"))
16 o = s:option(Flag, "enable", translate("Enable"))
20 o = s:option(Value, "server", translate("Server Address"))
24 o = s:option(Value, "server_port", translate("Server Port"))
28 o = s:option(Value, "local_port", translate("Local Port"))
33 o = s:option(Value, "timeout", translate("Connection Timeout"))
34 o.datatype = "uinteger"
38 o = s:option(Value, "password", translate("Password"))
62 o = s:option(ListValue, "encrypt_method", translate("Encrypt Method"))
63 for i,v in ipairs(e) do
69 s = m:section(TypedSection, "shadowsocks-libev", translate("Proxy Setting"))
72 o = s:option(ListValue, "udp_relay", translate("Proxy Protocol"))
73 o:value("0", translate("TCP only"))
74 o:value("1", translate("TCP+UDP"))
78 o = s:option(Value, "ignore_list", translate("Ignore List"))
79 o:value("/dev/null", translate("Disabled"))
80 o.default = "/dev/null"
84 s = m:section(TypedSection, "shadowsocks-libev", translate("UDP Forward"))
87 o = s:option(Flag, "tunnel_enable", translate("Enable"))
91 o = s:option(Value, "tunnel_port", translate("UDP Local Port"))
95 o = s:option(Value, "tunnel_forward", translate("Forwarding Tunnel"))
96 o.default = "8.8.4.4:53"
99 s = m:section(TypedSection, "shadowsocks-libev", translate("Access Control"))
102 s:tab("lan_ac", translate("LAN"))
104 o = s:taboption("lan_ac", ListValue, "lan_ac_mode", translate("Access Control"))
105 o:value("0", translate("Disabled"))
106 o:value("1", translate("Allow listed only"))
107 o:value("2", translate("Allow all except listed"))
111 a = luci.sys.net.arptable() or {}
113 o = s:taboption("lan_ac", DynamicList, "lan_ac_ip", translate("LAN IP List"))
114 o.datatype = "ipaddr"
115 for i,v in ipairs(a) do
116 o:value(v["IP address"])
119 s:tab("wan_ac", translate("WAN"))
121 o = s:taboption("wan_ac", DynamicList, "wan_bp_ip", translate("Bypassed IP"))
122 o.datatype = "ip4addr"
124 o = s:taboption("wan_ac", DynamicList, "wan_fw_ip", translate("Forwarded IP"))
125 o.datatype = "ip4addr"