diff --git a/package/lienol/luci-app-passwall/Makefile b/package/lienol/luci-app-passwall/Makefile
index c3959889d9..a8eb6ebac8 100644
--- a/package/lienol/luci-app-passwall/Makefile
+++ b/package/lienol/luci-app-passwall/Makefile
@@ -7,8 +7,8 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-passwall
PKG_VERSION:=4
-PKG_RELEASE:=18
-PKG_DATE:=20210325
+PKG_RELEASE:=19
+PKG_DATE:=20210327
PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
diff --git a/package/lienol/luci-app-passwall/luasrc/model/cbi/passwall/api/gen_trojan.lua b/package/lienol/luci-app-passwall/luasrc/model/cbi/passwall/api/gen_trojan.lua
index 7df4d3bdaf..1ef8a51668 100644
--- a/package/lienol/luci-app-passwall/luasrc/model/cbi/passwall/api/gen_trojan.lua
+++ b/package/lienol/luci-app-passwall/luasrc/model/cbi/passwall/api/gen_trojan.lua
@@ -34,7 +34,7 @@ local trojan = {
ssl = {
verify = (node.tls_allowInsecure ~= "1") and true or false,
verify_hostname = true,
- cert = node.trojan_cert_path,
+ cert = nil,
cipher = cipher,
cipher_tls13 = cipher13,
sni = node.tls_serverName or node.address,
@@ -58,12 +58,12 @@ local trojan = {
}
}
if node.type == "Trojan-Go" then
- trojan.ssl.cipher = node.fingerprint == nil and cipher or (node.fingerprint == "disable" and cipher13 .. ":" .. cipher or "")
- trojan.ssl.cipher_tls13 = node.fingerprint == nil and cipher13 or nil
- trojan.ssl.fingerprint = (node.fingerprint ~= nil and node.fingerprint ~= "disable" ) and node.fingerprint or ""
- trojan.ssl.alpn = node.trojan_transport == 'ws' and {} or {"h2", "http/1.1"}
- if node.stream_security ~= "tls" and node.trojan_transport == "original" then trojan.ssl = nil end
- trojan.transport_plugin = node.stream_security == "none" and node.trojan_transport == "original" and {
+ trojan.ssl.cipher = (node.fingerprint == nil) and cipher or (node.fingerprint == "disable" and cipher13 .. ":" .. cipher or "")
+ trojan.ssl.cipher_tls13 = (node.fingerprint == nil) and cipher13 or nil
+ trojan.ssl.fingerprint = (node.fingerprint ~= nil and node.fingerprint ~= "disable") and node.fingerprint or ""
+ trojan.ssl.alpn = (node.trojan_transport == 'ws') and {} or {"h2", "http/1.1"}
+ if node.tls ~= "1" and node.trojan_transport == "original" then trojan.ssl = nil end
+ trojan.transport_plugin = ((not node.tls or node.tls ~= "1") and node.trojan_transport == "original") and {
enabled = node.plugin_type ~= nil,
type = node.plugin_type or "plaintext",
command = node.plugin_type ~= "plaintext" and node.plugin_cmd or nil,
@@ -71,7 +71,7 @@ if node.type == "Trojan-Go" then
arg = node.plugin_type ~= "plaintext" and { node.plugin_arg } or nil,
env = {}
} or nil
- trojan.websocket = node.trojan_transport and node.trojan_transport:find('ws') and {
+ trojan.websocket = (node.trojan_transport and node.trojan_transport:find('ws')) and {
enabled = true,
path = node.ws_path or "/",
host = node.ws_host or (node.tls_serverName or node.address)
diff --git a/package/lienol/luci-app-passwall/luasrc/model/cbi/passwall/api/gen_xray.lua b/package/lienol/luci-app-passwall/luasrc/model/cbi/passwall/api/gen_xray.lua
index 5498c5c562..fac9b40912 100644
--- a/package/lienol/luci-app-passwall/luasrc/model/cbi/passwall/api/gen_xray.lua
+++ b/package/lienol/luci-app-passwall/luasrc/model/cbi/passwall/api/gen_xray.lua
@@ -113,7 +113,8 @@ function gen_outbound(node, tag, is_proxy, proxy_tag)
} or nil,
tlsSettings = (node.stream_security == "tls") and {
serverName = node.tls_serverName,
- allowInsecure = (node.tls_allowInsecure == "1") and true or false
+ allowInsecure = (node.tls_allowInsecure == "1") and true or false,
+ fingerprint = (node.fingerprint and node.fingerprint ~= "disable") and node.fingerprint or nil
} or nil,
tcpSettings = (node.transport == "tcp" and node.protocol ~= "socks") and {
header = {
@@ -151,6 +152,9 @@ function gen_outbound(node, tag, is_proxy, proxy_tag)
security = node.quic_security,
key = node.quic_key,
header = {type = node.quic_guise}
+ } or nil,
+ grpcSettings = (node.transport == "grpc") and {
+ serviceName = node.grpc_serviceName
} or nil
} or nil,
settings = {
diff --git a/package/lienol/luci-app-passwall/luasrc/model/cbi/passwall/client/haproxy.lua b/package/lienol/luci-app-passwall/luasrc/model/cbi/passwall/client/haproxy.lua
index 10fef3c233..ea000623de 100644
--- a/package/lienol/luci-app-passwall/luasrc/model/cbi/passwall/client/haproxy.lua
+++ b/package/lienol/luci-app-passwall/luasrc/model/cbi/passwall/client/haproxy.lua
@@ -30,19 +30,19 @@ o.default = false
---- Console Username
o = s:option(Value, "console_user", translate("Console Username"))
o.default = ""
-o:depends("balancing_enable", 1)
+o:depends("balancing_enable", true)
---- Console Password
o = s:option(Value, "console_password", translate("Console Password"))
o.password = true
o.default = ""
-o:depends("balancing_enable", 1)
+o:depends("balancing_enable", true)
---- Console Port
o = s:option(Value, "console_port", translate("Console Port"), translate(
"In the browser input routing IP plus port access, such as:192.168.1.1:1188"))
o.default = "1188"
-o:depends("balancing_enable", 1)
+o:depends("balancing_enable", true)
-- [[ Balancing Settings ]]--
s = m:section(TypedSection, "haproxy_config", "",
diff --git a/package/lienol/luci-app-passwall/luasrc/model/cbi/passwall/client/node_config.lua b/package/lienol/luci-app-passwall/luasrc/model/cbi/passwall/client/node_config.lua
index 76b9ace7a9..027185540e 100644
--- a/package/lienol/luci-app-passwall/luasrc/model/cbi/passwall/client/node_config.lua
+++ b/package/lienol/luci-app-passwall/luasrc/model/cbi/passwall/client/node_config.lua
@@ -424,8 +424,8 @@ tls:depends("type", "Trojan-Go")
xtls = s:option(Flag, "xtls", translate("XTLS"))
xtls.default = 0
-xtls:depends({ type = "Xray", protocol = "vless", tls = "1" })
-xtls:depends({ type = "Xray", protocol = "trojan", tls = "1" })
+xtls:depends({ type = "Xray", protocol = "vless", tls = true })
+xtls:depends({ type = "Xray", protocol = "trojan", tls = true })
flow = s:option(Value, "flow", translate("flow"))
flow.default = "xtls-rprx-direct"
@@ -435,34 +435,41 @@ flow:value("xtls-rprx-direct")
flow:value("xtls-rprx-direct-udp443")
flow:value("xtls-rprx-splice")
flow:value("xtls-rprx-splice-udp443")
-flow:depends("xtls", "1")
+flow:depends("xtls", true)
-- [[ TLS部分 ]] --
tls_sessionTicket = s:option(Flag, "tls_sessionTicket", translate("Session Ticket"))
tls_sessionTicket.default = "0"
-tls_sessionTicket:depends({ type = "Trojan", tls = "1" })
-tls_sessionTicket:depends({ type = "Trojan-Plus", tls = "1" })
-tls_sessionTicket:depends({ type = "Trojan-Go", tls = "1" })
+tls_sessionTicket:depends({ type = "Trojan", tls = true })
+tls_sessionTicket:depends({ type = "Trojan-Plus", tls = true })
+tls_sessionTicket:depends({ type = "Trojan-Go", tls = true })
--- [[ Trojan TLS ]]--
-trojan_force_fp = s:option(ListValue, "fingerprint", translate("Finger Print"))
-for a, t in ipairs(force_fp) do trojan_force_fp:value(t) end
-trojan_force_fp.default = "firefox"
-trojan_force_fp:depends({ type = "Trojan-Go", tls = "1" })
+trojan_go_fingerprint = s:option(ListValue, "trojan_go_fingerprint", translate("Finger Print"))
+for a, t in ipairs(force_fp) do trojan_go_fingerprint:value(t) end
+trojan_go_fingerprint.default = "firefox"
+trojan_go_fingerprint:depends({ type = "Trojan-Go", tls = true })
+function trojan_go_fingerprint.cfgvalue(self, section)
+ return m:get(section, "fingerprint")
+end
+function trojan_go_fingerprint.write(self, section, value)
+ m:set(section, "fingerprint", value)
+end
tls_serverName = s:option(Value, "tls_serverName", translate("Domain"))
-tls_serverName:depends("tls", "1")
-tls_serverName:depends("xtls", "1")
+tls_serverName:depends("tls", true)
tls_allowInsecure = s:option(Flag, "tls_allowInsecure", translate("allowInsecure"), translate("Whether unsafe connections are allowed. When checked, Certificate validation will be skipped."))
tls_allowInsecure.default = "0"
-tls_allowInsecure:depends("tls", "1")
-tls_allowInsecure:depends("xtls", "1")
+tls_allowInsecure:depends("tls", true)
--- [[ Trojan Cert ]]--
-trojan_cert_path = s:option(Value, "trojan_cert_path", translate("Trojan Cert Path"))
-trojan_cert_path.default = ""
-trojan_cert_path:depends({ tls = "1", tls_allowInsecure = false })
+xray_fingerprint = s:option(ListValue, "fingerprint", translate("Finger Print"))
+xray_fingerprint:value("disable")
+xray_fingerprint:value("chrome")
+xray_fingerprint:value("firefox")
+xray_fingerprint:value("safari")
+xray_fingerprint:value("randomized")
+xray_fingerprint.default = "disable"
+xray_fingerprint:depends({ type = "Xray", tls = true, xtls = false })
trojan_transport = s:option(ListValue, "trojan_transport", translate("Transport"))
trojan_transport:value("original", "Original")
@@ -477,7 +484,7 @@ trojan_plugin:value("plaintext", "Plain Text")
trojan_plugin:value("shadowsocks", "ShadowSocks")
trojan_plugin:value("other", "Other")
trojan_plugin.default = "plaintext"
-trojan_plugin:depends({ tls = "0", trojan_transport = "original" })
+trojan_plugin:depends({ tls = false, trojan_transport = "original" })
trojan_plugin_cmd = s:option(Value, "plugin_cmd", translate("Plugin Binary"))
trojan_plugin_cmd.placeholder = "eg: /usr/bin/v2ray-plugin"
@@ -501,6 +508,7 @@ transport:value("ws", "WebSocket")
transport:value("h2", "HTTP/2")
transport:value("ds", "DomainSocket")
transport:value("quic", "QUIC")
+transport:value("grpc", "gRPC")
transport:depends({ type = "Xray", protocol = "vmess" })
transport:depends({ type = "Xray", protocol = "vless" })
transport:depends({ type = "Xray", protocol = "socks" })
@@ -611,6 +619,10 @@ quic_guise = s:option(ListValue, "quic_guise", translate("Camouflage Type"))
for a, t in ipairs(header_type_list) do quic_guise:value(t) end
quic_guise:depends("transport", "quic")
+-- [[ gRPC部分 ]]--
+grpc_serviceName = s:option(Value, "grpc_serviceName", "ServiceName")
+grpc_serviceName:depends("transport", "grpc")
+
-- [[ Trojan-Go Shadowsocks2 ]] --
ss_aead = s:option(Flag, "ss_aead", translate("Shadowsocks2"))
ss_aead:depends("type", "Trojan-Go")
diff --git a/package/lienol/luci-app-passwall/luasrc/model/cbi/passwall/client/node_subscribe.lua b/package/lienol/luci-app-passwall/luasrc/model/cbi/passwall/client/node_subscribe.lua
index 6389211156..815c9d597c 100644
--- a/package/lienol/luci-app-passwall/luasrc/model/cbi/passwall/client/node_subscribe.lua
+++ b/package/lienol/luci-app-passwall/luasrc/model/cbi/passwall/client/node_subscribe.lua
@@ -24,13 +24,13 @@ o:value(7, translate("Every day"))
for e = 1, 6 do o:value(e, translate("Week") .. e) end
o:value(0, translate("Week") .. translate("day"))
o.default = 0
-o:depends("auto_update_subscribe", 1)
+o:depends("auto_update_subscribe", true)
---- Day update rules
o = s:option(ListValue, "time_update_subscribe", translate("Day update rules"))
for e = 0, 23 do o:value(e, e .. translate("oclock")) end
o.default = 0
-o:depends("auto_update_subscribe", 1)
+o:depends("auto_update_subscribe", true)
o = s:option(ListValue, "filter_keyword_mode", translate("Filter keyword Mode"))
o:value("0", translate("Close"))
diff --git a/package/lienol/luci-app-passwall/luasrc/model/cbi/passwall/client/other.lua b/package/lienol/luci-app-passwall/luasrc/model/cbi/passwall/client/other.lua
index 5a3e2b5450..bdd566ed46 100644
--- a/package/lienol/luci-app-passwall/luasrc/model/cbi/passwall/client/other.lua
+++ b/package/lienol/luci-app-passwall/luasrc/model/cbi/passwall/client/other.lua
@@ -28,21 +28,21 @@ o.rmempty = false
---- Automatically turn off time
o = s:option(ListValue, "time_off", translate("Automatically turn off time"))
o.default = nil
-o:depends("auto_on", "1")
+o:depends("auto_on", true)
o:value(nil, translate("Disable"))
for e = 0, 23 do o:value(e, e .. translate("oclock")) end
---- Automatically turn on time
o = s:option(ListValue, "time_on", translate("Automatically turn on time"))
o.default = nil
-o:depends("auto_on", "1")
+o:depends("auto_on", true)
o:value(nil, translate("Disable"))
for e = 0, 23 do o:value(e, e .. translate("oclock")) end
---- Automatically restart time
o = s:option(ListValue, "time_restart", translate("Automatically restart time"))
o.default = nil
-o:depends("auto_on", "1")
+o:depends("auto_on", true)
o:value(nil, translate("Disable"))
for e = 0, 23 do o:value(e, e .. translate("oclock")) end
--]]
diff --git a/package/lienol/luci-app-passwall/luasrc/model/cbi/passwall/client/rule.lua b/package/lienol/luci-app-passwall/luasrc/model/cbi/passwall/client/rule.lua
index e9893b23cd..f87cadecb5 100644
--- a/package/lienol/luci-app-passwall/luasrc/model/cbi/passwall/client/rule.lua
+++ b/package/lienol/luci-app-passwall/luasrc/model/cbi/passwall/client/rule.lua
@@ -44,13 +44,13 @@ o:value(7, translate("Every day"))
for e = 1, 6 do o:value(e, translate("Week") .. e) end
o:value(0, translate("Week") .. translate("day"))
o.default = 0
-o:depends("auto_update", 1)
+o:depends("auto_update", true)
---- Time Update
o = s:option(ListValue, "time_update", translate("Day update rules"))
for e = 0, 23 do o:value(e, e .. translate("oclock")) end
o.default = 0
-o:depends("auto_update", 1)
+o:depends("auto_update", true)
o = s:option(Value, "xray_location_asset", translate("Location of Xray asset"), translate("This variable specifies a directory where geoip.dat and geosite.dat files are."))
o.default = "/usr/share/xray/"
diff --git a/package/lienol/luci-app-passwall/luasrc/model/cbi/passwall/server/api/trojan.lua b/package/lienol/luci-app-passwall/luasrc/model/cbi/passwall/server/api/trojan.lua
index 469a5c82dd..5f6a2b4ac3 100644
--- a/package/lienol/luci-app-passwall/luasrc/model/cbi/passwall/server/api/trojan.lua
+++ b/package/lienol/luci-app-passwall/luasrc/model/cbi/passwall/server/api/trojan.lua
@@ -16,7 +16,7 @@ function gen_config(user)
key_password = "",
cipher = user.fingerprint == nil and cipher or (user.fingerprint == "disable" and cipher13 .. ":" .. cipher or ""),
cipher_tls13 = user.fingerprint == nil and cipher13 or nil,
- sni = user.tls_serverName,
+ sni = nil,
verify = (user.tls_allowInsecure ~= "1") and true or false,
verify_hostname = false,
reuse_session = true,
@@ -29,7 +29,7 @@ function gen_config(user)
},
udp_timeout = 60,
disable_http_check = true,
- transport_plugin = (user.tls == nil or user.tls ~= "1") and user.trojan_transport == "original" and {
+ transport_plugin = ((user.tls == nil or user.tls ~= "1") and user.trojan_transport == "original") and {
enabled = user.plugin_type ~= nil,
type = user.plugin_type or "plaintext",
command = user.plugin_type ~= "plaintext" and user.plugin_cmd or nil,
@@ -37,10 +37,10 @@ function gen_config(user)
arg = user.plugin_type ~= "plaintext" and { user.plugin_arg } or nil,
env = {}
} or nil,
- websocket = user.trojan_transport and user.trojan_transport:find('ws') and {
+ websocket = (user.trojan_transport and user.trojan_transport:find('ws')) and {
enabled = true,
path = user.ws_path or "/",
- host = user.ws_host or (user.tls_serverName or user.address)
+ host = user.ws_host or ""
} or nil,
shadowsocks = (user.ss_aead == "1") and {
enabled = true,
diff --git a/package/lienol/luci-app-passwall/luasrc/model/cbi/passwall/server/api/xray.lua b/package/lienol/luci-app-passwall/luasrc/model/cbi/passwall/server/api/xray.lua
index 23226bf84e..7052b32f84 100644
--- a/package/lienol/luci-app-passwall/luasrc/model/cbi/passwall/server/api/xray.lua
+++ b/package/lienol/luci-app-passwall/luasrc/model/cbi/passwall/server/api/xray.lua
@@ -209,6 +209,9 @@ function gen_config(user)
security = user.quic_security,
key = user.quic_key,
header = {type = user.quic_guise}
+ } or nil,
+ grpcSettings = (user.transport == "grpc") and {
+ serviceName = user.grpc_serviceName
} or nil
}
}
diff --git a/package/lienol/luci-app-passwall/luasrc/model/cbi/passwall/server/user.lua b/package/lienol/luci-app-passwall/luasrc/model/cbi/passwall/server/user.lua
index baa4bdf56e..6e5cd098ab 100644
--- a/package/lienol/luci-app-passwall/luasrc/model/cbi/passwall/server/user.lua
+++ b/package/lienol/luci-app-passwall/luasrc/model/cbi/passwall/server/user.lua
@@ -135,11 +135,11 @@ auth:depends({ type = "Xray", protocol = "socks" })
auth:depends({ type = "Xray", protocol = "http" })
username = s:option(Value, "username", translate("Username"))
-username:depends("auth", "1")
+username:depends("auth", true)
password = s:option(Value, "password", translate("Password"))
password.password = true
-password:depends("auth", "1")
+password:depends("auth", true)
password:depends("type", "SS")
password:depends("type", "SSR")
password:depends("type", "Brook")
@@ -270,8 +270,8 @@ tls:depends("type", "Trojan-Go")
xtls = s:option(Flag, "xtls", translate("XTLS"))
xtls.default = 0
-xtls:depends({ type = "Xray", protocol = "vless", tls = "1" })
-xtls:depends({ type = "Xray", protocol = "trojan", tls = "1" })
+xtls:depends({ type = "Xray", protocol = "vless", tls = true })
+xtls:depends({ type = "Xray", protocol = "trojan", tls = true })
flow = s:option(Value, "flow", translate("flow"))
flow.default = "xtls-rprx-direct"
@@ -279,18 +279,15 @@ flow:value("xtls-rprx-origin")
flow:value("xtls-rprx-origin-udp443")
flow:value("xtls-rprx-direct")
flow:value("xtls-rprx-direct-udp443")
-flow:depends("xtls", "1")
+flow:depends("xtls", true)
-- [[ TLS部分 ]] --
tls_allowInsecure = s:option(Flag, "tls_allowInsecure", translate("allowInsecure"), translate("Whether unsafe connections are allowed. When checked, Certificate validation will be skipped."))
tls_allowInsecure.default = "0"
-tls_allowInsecure:depends({ type = "Trojan", tls = "1" })
-tls_allowInsecure:depends({ type = "Trojan-Plus", tls = "1" })
-tls_allowInsecure:depends({ type = "Trojan-Go", tls = "1" })
-
-tls_serverName = s:option(Value, "tls_serverName", translate("Domain"))
-tls_serverName:depends("tls", "1")
+tls_allowInsecure:depends({ type = "Trojan", tls = true })
+tls_allowInsecure:depends({ type = "Trojan-Plus", tls = true })
+tls_allowInsecure:depends({ type = "Trojan-Go", tls = true })
tls_certificateFile = s:option(FileUpload, "tls_certificateFile", translate("Public key absolute path"), translate("as:") .. "/etc/ssl/fullchain.pem")
tls_certificateFile.validate = function(self, value, t)
@@ -304,7 +301,7 @@ tls_certificateFile.validate = function(self, value, t)
return nil
end
tls_certificateFile.default = "/etc/config/ssl/" .. arg[1] .. ".pem"
-tls_certificateFile:depends("tls", "1")
+tls_certificateFile:depends("tls", true)
tls_keyFile = s:option(FileUpload, "tls_keyFile", translate("Private key absolute path"), translate("as:") .. "/etc/ssl/private.key")
tls_keyFile.validate = function(self, value, t)
@@ -318,13 +315,13 @@ tls_keyFile.validate = function(self, value, t)
return nil
end
tls_keyFile.default = "/etc/config/ssl/" .. arg[1] .. ".key"
-tls_keyFile:depends("tls", "1")
+tls_keyFile:depends("tls", true)
tls_sessionTicket = s:option(Flag, "tls_sessionTicket", translate("Session Ticket"))
tls_sessionTicket.default = "0"
-tls_sessionTicket:depends({ type = "Trojan", tls = "1" })
-tls_sessionTicket:depends({ type = "Trojan-Plus", tls = "1" })
-tls_sessionTicket:depends({ type = "Trojan-Go", tls = "1" })
+tls_sessionTicket:depends({ type = "Trojan", tls = true })
+tls_sessionTicket:depends({ type = "Trojan-Plus", tls = true })
+tls_sessionTicket:depends({ type = "Trojan-Go", tls = true })
transport = s:option(ListValue, "transport", translate("Transport"))
transport:value("tcp", "TCP")
@@ -333,6 +330,7 @@ transport:value("ws", "WebSocket")
transport:value("h2", "HTTP/2")
transport:value("ds", "DomainSocket")
transport:value("quic", "QUIC")
+transport:value("grpc", "gRPC")
transport:depends({ type = "Xray", protocol = "vmess" })
transport:depends({ type = "Xray", protocol = "vless" })
transport:depends({ type = "Xray", protocol = "socks" })
@@ -352,7 +350,7 @@ trojan_plugin:value("plaintext", "Plain Text")
trojan_plugin:value("shadowsocks", "ShadowSocks")
trojan_plugin:value("other", "Other")
trojan_plugin.default = "plaintext"
-trojan_plugin:depends({ tls = "0", trojan_transport = "original" })
+trojan_plugin:depends({ tls = false, trojan_transport = "original" })
trojan_plugin_cmd = s:option(Value, "plugin_cmd", translate("Plugin Binary"))
trojan_plugin_cmd.placeholder = "eg: /usr/bin/v2ray-plugin"
@@ -468,6 +466,10 @@ quic_guise = s:option(ListValue, "quic_guise", translate("Camouflage Type"))
for a, t in ipairs(header_type_list) do quic_guise:value(t) end
quic_guise:depends("transport", "quic")
+-- [[ gRPC部分 ]]--
+grpc_serviceName = s:option(Value, "grpc_serviceName", "ServiceName")
+grpc_serviceName:depends("transport", "grpc")
+
acceptProxyProtocol = s:option(Flag, "acceptProxyProtocol", translate("acceptProxyProtocol"), translate("Whether to receive PROXY protocol, when this node want to be fallback or forwarded by proxy, it must be enable, otherwise it cannot be used."))
acceptProxyProtocol:depends({ type = "Xray", transport = "tcp" })
acceptProxyProtocol:depends({ type = "Xray", transport = "ws" })
@@ -479,21 +481,21 @@ fallback:depends({ type = "Xray", protocol = "trojan", transport = "tcp" })
--[[
fallback_alpn = s:option(Value, "fallback_alpn", "Fallback alpn")
-fallback_alpn:depends("fallback", "1")
+fallback_alpn:depends("fallback", true)
fallback_path = s:option(Value, "fallback_path", "Fallback path")
-fallback_path:depends("fallback", "1")
+fallback_path:depends("fallback", true)
fallback_dest = s:option(Value, "fallback_dest", "Fallback dest")
-fallback_dest:depends("fallback", "1")
+fallback_dest:depends("fallback", true)
fallback_xver = s:option(Value, "fallback_xver", "Fallback xver")
fallback_xver.default = 0
-fallback_xver:depends("fallback", "1")
+fallback_xver:depends("fallback", true)
]]--
fallback_list = s:option(DynamicList, "fallback_list", "Fallback", translate("dest,path"))
-fallback_list:depends("fallback", "1")
+fallback_list:depends("fallback", true)
ss_aead = s:option(Flag, "ss_aead", translate("Shadowsocks2"))
ss_aead:depends("type", "Trojan-Go")
@@ -502,11 +504,11 @@ ss_aead.default = "0"
ss_aead_method = s:option(ListValue, "ss_aead_method", translate("Encrypt Method"))
for _, v in ipairs(encrypt_methods_ss_aead) do ss_aead_method:value(v, v) end
ss_aead_method.default = "aead_aes_128_gcm"
-ss_aead_method:depends("ss_aead", "1")
+ss_aead_method:depends("ss_aead", true)
ss_aead_pwd = s:option(Value, "ss_aead_pwd", translate("Password"))
ss_aead_pwd.password = true
-ss_aead_pwd:depends("ss_aead", "1")
+ss_aead_pwd:depends("ss_aead", true)
tcp_fast_open = s:option(Flag, "tcp_fast_open", translate("TCP Fast Open"))
tcp_fast_open.default = "0"
diff --git a/package/lienol/luci-app-passwall/luasrc/view/passwall/node_list/link_share_man.htm b/package/lienol/luci-app-passwall/luasrc/view/passwall/node_list/link_share_man.htm
index 9017abd722..def9ca590f 100644
--- a/package/lienol/luci-app-passwall/luasrc/view/passwall/node_list/link_share_man.htm
+++ b/package/lienol/luci-app-passwall/luasrc/view/passwall/node_list/link_share_man.htm
@@ -80,7 +80,6 @@ local api = require "luci.model.cbi.passwall.api.api"
var opt = {
base: "cbid.passwall",
client : true,
- fallback: "dummy",
get: function(opt) {
var id = this.base + "." + opt;
var obj = document.getElementsByName(id)[0] || document.getElementsByClassName(id)[0] || document.getElementById(id)
@@ -88,13 +87,6 @@ local api = require "luci.model.cbi.passwall.api.api"
return obj;
} else {
return null;
- /*
- obj = document.getElementById(this.fallback);
- if (opt === "address") obj.value = "0.0.0.0";
- else if (opt === "mux") obj.value = "0";
- if (this.client || (opt !== "address" && opt !== "mux")) alert("<%:Faltal on get option, please help in debug: %>" + opt);
- return obj;
- */
}
},
getlist: function(opt) {
@@ -131,7 +123,6 @@ local api = require "luci.model.cbi.passwall.api.api"
}
opt.base = "cbid." + urlname + "." + sid;
opt.client = urlname.indexOf("server") === -1;
- opt.fallback = urlname + "-dummy";
var v_type = opt.get("type").value;
var v_alias = opt.get("remarks");
var url = null;
@@ -352,7 +343,6 @@ local api = require "luci.model.cbi.passwall.api.api"
var opt = {
base: 'cbid.passwall',
client : true,
- fallback: 'dummy',
get: function(opt) {
var obj;
var id = this.base + '.' + opt;
@@ -360,8 +350,7 @@ local api = require "luci.model.cbi.passwall.api.api"
if (obj) {
return obj;
} else {
- if (this.client || (opt !== "address" && opt !== "mux")) alert('<%:Faltal on get option, please help in debug: %>' + opt);
- return document.getElementById(this.fallback);
+ return null;
}
},
set: function(opt, val) {
@@ -402,7 +391,6 @@ local api = require "luci.model.cbi.passwall.api.api"
}
opt.base = "cbid." + urlname + "." + sid;
opt.client = urlname.indexOf("server") === -1;
- opt.fallback = urlname + '-dummy';
var ssrurl = prompt('<%:Paste Share URL Here%>', '');
if (ssrurl === null || ssrurl === "") {
return false;
@@ -793,7 +781,6 @@ local api = require "luci.model.cbi.passwall.api.api"
}
//]]>
-