summaryrefslogtreecommitdiffhomepage
path: root/applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instance-details.lua
blob: d9a61d0bf7708a3b46b63d6eae08cca8327de8f2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
-- Copyright 2017 Yousong Zhou <yszhou4tech@gmail.com>
-- Licensed to the public under the Apache License 2.0.

local ds = require "luci.dispatcher"
local ss = require "luci.model.shadowsocks-libev"

local sname = arg[1]
local redirect_url = ds.build_url("admin/services/shadowsocks-libev/instances")
local s, o

local m = Map("shadowsocks-libev")
local sdata = m:get(sname)
if not sdata then
	luci.http.redirect(redirect_url)
	return
end
local stype = sdata[".type"]
m.redirect = redirect_url
m.title = "shadowsocks-libev - %s - %s" % {stype, sname}


s = m:section(NamedSection, sname, stype)
s:tab("general", translate("General Settings"))
s:tab("advanced", translate("Advanced Settings"))
s:taboption("general", Flag, "disabled", translate("Disable"))
ss.option_install_package(s, "general")

if stype == "ss_server" then
	ss.options_server(s, "general")
	o = s:taboption("general", Value, "bind_address",
		translate("Bind address"),
		translate("The address ss-server will initiate connection from"))
	o.datatype = "ipaddr"
	o.placeholder = "0.0.0.0"
	ss.values_ipaddr(o)
	o = s:taboption("general", Value, "manager_address", translate("Manager address"))
	o.datatype = "hostport"
else
	ss.options_client(s, "general")
	if stype == "ss_tunnel" then
		o = s:taboption("general", Value, "tunnel_address",
			translate("Tunnel address"),
			translate("The address ss-tunnel will forward traffic to"))
		o.datatype = "hostport"
	end
end
ss.options_common(s, "advanced")

return m