🍕 Sync 2026-08-28 16:44:23

This commit is contained in:
github-actions[bot] committed 2026-08-28 16:44:23 +08:00
1 parent 7630ce970c
commit 6490d09e15
22 files changed
+113 -31

No files matched your search

+6 -6
View File
@@ -2,7 +2,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"POT-Creation-Date: \n" "POT-Creation-Date: \n"
"PO-Revision-Date: 2026-04-04 03:09+0000\n" "PO-Revision-Date: 2026-08-24 16:48+0000\n"
"Last-Translator: Franco Castillo <castillofrancodamian@gmail.com>\n" "Last-Translator: Franco Castillo <castillofrancodamian@gmail.com>\n"
"Language-Team: Spanish <https://hosted.weblate.org/projects/openwrt/" "Language-Team: Spanish <https://hosted.weblate.org/projects/openwrt/"
"luciapplicationsfrpc/es/>\n" "luciapplicationsfrpc/es/>\n"
@@ -11,7 +11,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n" "Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.17-dev\n" "X-Generator: Weblate 2026.9.dev0\n"
#: applications/luci-app-frpc/htdocs/luci-static/resources/view/frpc.js:1454 #: applications/luci-app-frpc/htdocs/luci-static/resources/view/frpc.js:1454
msgid "Add new proxy or visitor..." msgid "Add new proxy or visitor..."
@@ -119,7 +119,7 @@ msgstr ""
#: applications/luci-app-frpc/htdocs/luci-static/resources/view/frpc.js:1417 #: applications/luci-app-frpc/htdocs/luci-static/resources/view/frpc.js:1417
msgid "Collecting data ..." msgid "Collecting data ..."
msgstr "Recopilando los datos..." msgstr "Recopilando datos..."
#: applications/luci-app-frpc/htdocs/luci-static/resources/view/frpc.js:317 #: applications/luci-app-frpc/htdocs/luci-static/resources/view/frpc.js:317
msgid "Command arguments passed to token source exec." msgid "Command arguments passed to token source exec."
@@ -412,7 +412,7 @@ msgstr ""
#: applications/luci-app-frpc/htdocs/luci-static/resources/view/frpc.js:1460 #: applications/luci-app-frpc/htdocs/luci-static/resources/view/frpc.js:1460
msgid "General Settings" msgid "General Settings"
msgstr "Ajustes generales" msgstr "Configuración general"
#: applications/luci-app-frpc/root/usr/share/rpcd/acl.d/luci-app-frpc.json:3 #: applications/luci-app-frpc/root/usr/share/rpcd/acl.d/luci-app-frpc.json:3
msgid "Grant access to LuCI app frpc" msgid "Grant access to LuCI app frpc"
@@ -653,7 +653,7 @@ msgstr ""
#: applications/luci-app-frpc/htdocs/luci-static/resources/view/frpc.js:1390 #: applications/luci-app-frpc/htdocs/luci-static/resources/view/frpc.js:1390
msgid "NOT RUNNING" msgid "NOT RUNNING"
msgstr "NO EN EJECUCIÓN" msgstr "NO SE ESTÁ EJECUTANDO"
#: applications/luci-app-frpc/htdocs/luci-static/resources/view/frpc.js:359 #: applications/luci-app-frpc/htdocs/luci-static/resources/view/frpc.js:359
msgid "OIDC additional endpoint params" msgid "OIDC additional endpoint params"
@@ -860,7 +860,7 @@ msgstr ""
#: applications/luci-app-frpc/htdocs/luci-static/resources/view/frpc.js:1390 #: applications/luci-app-frpc/htdocs/luci-static/resources/view/frpc.js:1390
msgid "RUNNING" msgid "RUNNING"
msgstr "EN EJECUCIÓN" msgstr "EJECUTÁNDOSE"
#: applications/luci-app-frpc/htdocs/luci-static/resources/view/frpc.js:667 #: applications/luci-app-frpc/htdocs/luci-static/resources/view/frpc.js:667
msgid "Remote port" msgid "Remote port"
+2 -2
View File
@@ -1,6 +1,6 @@
msgid "" msgid ""
msgstr "" msgstr ""
"PO-Revision-Date: 2026-02-20 00:35+0000\n" "PO-Revision-Date: 2026-08-24 16:48+0000\n"
"Last-Translator: Matthaiks <kitynska@gmail.com>\n" "Last-Translator: Matthaiks <kitynska@gmail.com>\n"
"Language-Team: Polish <https://hosted.weblate.org/projects/openwrt/" "Language-Team: Polish <https://hosted.weblate.org/projects/openwrt/"
"luciapplicationsfrpc/pl/>\n" "luciapplicationsfrpc/pl/>\n"
@@ -9,7 +9,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
"|| n%100>=20) ? 1 : 2);\n" "|| n%100>=20) ? 1 : 2);\n"
"X-Generator: Weblate 5.16.1-dev\n" "X-Generator: Weblate 2026.9.dev0\n"
#: applications/luci-app-frpc/htdocs/luci-static/resources/view/frpc.js:1454 #: applications/luci-app-frpc/htdocs/luci-static/resources/view/frpc.js:1454
msgid "Add new proxy or visitor..." msgid "Add new proxy or visitor..."
+5 -5
View File
@@ -2,7 +2,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"POT-Creation-Date: \n" "POT-Creation-Date: \n"
"PO-Revision-Date: 2026-03-30 03:54+0000\n" "PO-Revision-Date: 2026-08-24 16:48+0000\n"
"Last-Translator: Franco Castillo <castillofrancodamian@gmail.com>\n" "Last-Translator: Franco Castillo <castillofrancodamian@gmail.com>\n"
"Language-Team: Spanish <https://hosted.weblate.org/projects/openwrt/" "Language-Team: Spanish <https://hosted.weblate.org/projects/openwrt/"
"luciapplicationsfrps/es/>\n" "luciapplicationsfrps/es/>\n"
@@ -11,7 +11,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n" "Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.17-dev\n" "X-Generator: Weblate 2026.9.dev0\n"
#: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:982 #: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:982
msgid "Access Control" msgid "Access Control"
@@ -79,7 +79,7 @@ msgstr "Puerto de enlace"
#: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:969 #: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:969
msgid "Collecting data ..." msgid "Collecting data ..."
msgstr "Recopilando los datos..." msgstr "Recopilando datos..."
#: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:323 #: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:323
msgid "Command arguments passed to token source exec." msgid "Command arguments passed to token source exec."
@@ -315,7 +315,7 @@ msgstr ""
#: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:942 #: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:942
msgid "NOT RUNNING" msgid "NOT RUNNING"
msgstr "NO EN EJECUCIÓN" msgstr "NO SE ESTÁ EJECUTANDO"
#: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:349 #: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:349
msgid "OIDC audience" msgid "OIDC audience"
@@ -457,7 +457,7 @@ msgstr ""
#: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:942 #: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:942
msgid "RUNNING" msgid "RUNNING"
msgstr "EN EJECUCIÓN" msgstr "EJECUTÁNDOSE"
#: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:125 #: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:125
msgid "Respawn when crashed" msgid "Respawn when crashed"
+2 -2
View File
@@ -1,6 +1,6 @@
msgid "" msgid ""
msgstr "" msgstr ""
"PO-Revision-Date: 2026-02-20 00:33+0000\n" "PO-Revision-Date: 2026-08-24 16:48+0000\n"
"Last-Translator: Matthaiks <kitynska@gmail.com>\n" "Last-Translator: Matthaiks <kitynska@gmail.com>\n"
"Language-Team: Polish <https://hosted.weblate.org/projects/openwrt/" "Language-Team: Polish <https://hosted.weblate.org/projects/openwrt/"
"luciapplicationsfrps/pl/>\n" "luciapplicationsfrps/pl/>\n"
@@ -9,7 +9,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
"|| n%100>=20) ? 1 : 2);\n" "|| n%100>=20) ? 1 : 2);\n"
"X-Generator: Weblate 5.16.1-dev\n" "X-Generator: Weblate 2026.9.dev0\n"
#: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:982 #: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:982
msgid "Access Control" msgid "Access Control"
+1 -1
View File
@@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-passwall PKG_NAME:=luci-app-passwall
PKG_VERSION:=26.8.26 PKG_VERSION:=26.8.26
PKG_RELEASE:=248 PKG_RELEASE:=249
PKG_PO_VERSION:=$(PKG_VERSION) PKG_PO_VERSION:=$(PKG_VERSION)
PKG_CONFIG_DEPENDS:= \ PKG_CONFIG_DEPENDS:= \
@@ -934,7 +934,8 @@ local backup_files = {
"/usr/share/passwall/rules/direct_host", "/usr/share/passwall/rules/direct_host",
"/usr/share/passwall/rules/direct_ip", "/usr/share/passwall/rules/direct_ip",
"/usr/share/passwall/rules/proxy_host", "/usr/share/passwall/rules/proxy_host",
"/usr/share/passwall/rules/proxy_ip" "/usr/share/passwall/rules/proxy_ip",
"/usr/share/passwall/rules/domains_excluded"
} }
function create_backup() function create_backup()
@@ -193,7 +193,7 @@ if has_xray then
o.default = 0 o.default = 0
o.description = translate("Override the connection destination address with the sniffed domain.<br />Otherwise use sniffed domain for routing only.<br />If using shunt nodes, configure the domain shunt rules correctly.") o.description = translate("Override the connection destination address with the sniffed domain.<br />Otherwise use sniffed domain for routing only.<br />If using shunt nodes, configure the domain shunt rules correctly.")
local domains_excluded = string.format("/usr/share/%s/domains_excluded", m.config) local domains_excluded = string.format("/usr/share/%s/rules/domains_excluded", m.config)
o = s_xray:option(TextValue, "excluded_domains", translate("Excluded Domains"), translate("If the traffic sniffing result is in this list, the destination address will not be overridden.")) o = s_xray:option(TextValue, "excluded_domains", translate("Excluded Domains"), translate("If the traffic sniffing result is in this list, the destination address will not be overridden."))
o.rows = 15 o.rows = 15
o.wrap = "off" o.wrap = "off"
@@ -383,6 +383,10 @@ if singbox_tags:find("with_quic") then
o.default = { "stun.sip.us:3478", "stun.nextcloud.com:3478", "global.stun.twilio.com:3478" } o.default = { "stun.sip.us:3478", "stun.nextcloud.com:3478", "global.stun.twilio.com:3478" }
o:depends({ hysteria2_realms = "1" }) o:depends({ hysteria2_realms = "1" })
o = s:option(Flag, "hysteria2_realm_upnp", translate("Enable") .. " UPnP/NAT-PMP", translate("Enable UPnP/NAT-PMP port mapping on your gateway to improve hole punching success."))
o.default = "0"
o:depends({ hysteria2_realms = "1" })
o = s:option(Value, "hysteria2_auth_password", translate("Auth Password")) o = s:option(Value, "hysteria2_auth_password", translate("Auth Password"))
o.password = true o.password = true
o:depends({ protocol = "hysteria2"}) o:depends({ protocol = "hysteria2"})
@@ -357,6 +357,10 @@ o = s:option(DynamicList, "hysteria2_realm_stun", translate("Realm STUN"))
o.default = { "stun.sip.us:3478", "stun.nextcloud.com:3478", "global.stun.twilio.com:3478" } o.default = { "stun.sip.us:3478", "stun.nextcloud.com:3478", "global.stun.twilio.com:3478" }
o:depends({ hysteria2_realms = "1" }) o:depends({ hysteria2_realms = "1" })
o = s:option(Flag, "hysteria2_realm_upnp", translate("Enable") .. " UPnP/NAT-PMP", translate("Enable UPnP/NAT-PMP port mapping on your gateway to improve hole punching success."))
o.default = "0"
o:depends({ hysteria2_realms = "1" })
o = s:option(Value, "hysteria2_auth_password", translate("Auth Password")) o = s:option(Value, "hysteria2_auth_password", translate("Auth Password"))
o.password = true o.password = true
o:depends({ protocol = "hysteria2"}) o:depends({ protocol = "hysteria2"})
@@ -61,6 +61,11 @@ o.default = { "stun.sip.us:3478", "stun.nextcloud.com:3478", "global.stun.twilio
o.rewrite_option = _n(o.option) o.rewrite_option = _n(o.option)
o:depends({ realms = "1" }) o:depends({ realms = "1" })
o = s:option(Flag, "realm_upnp", translate("Enable") .. " UPnP/NAT-PMP", translate("Enable UPnP/NAT-PMP port mapping on your gateway to improve hole punching success."))
o.default = "0"
o.rewrite_option = _n(o.option)
o:depends({ realms = "1" })
o = s:option(Value, "auth_password", translate("Auth Password")) o = s:option(Value, "auth_password", translate("Auth Password"))
o.password = true o.password = true
o.rewrite_option = _n(o.option) o.rewrite_option = _n(o.option)
@@ -124,6 +129,20 @@ o = s:option(Flag, "disable_mtu_discovery", translate("Disable MTU detection"))
o.default = "0" o.default = "0"
o.rewrite_option = _n(o.option) o.rewrite_option = _n(o.option)
o = s:option(Flag, "ech", translate("ECH"))
o.default = "0"
o:depends({ realms = false })
o = s:option(TextValue, "ech_config", translate("ECH Config"))
o.default = ""
o.rows = 5
o.wrap = "soft"
o:depends({ ech = "1" })
o.validate = function(self, value)
return api.trim(value:gsub("[\r\n]", ""))
end
o = s:option(Flag, "lazy_start", translate("Lazy Start")) o = s:option(Flag, "lazy_start", translate("Lazy Start"))
o.default = "0" o.default = "0"
o.rewrite_option = _n(o.option) o.rewrite_option = _n(o.option)
@@ -183,6 +183,10 @@ if singbox_tags:find("with_quic") then
o.default = { "stun.sip.us:3478", "stun.nextcloud.com:3478", "global.stun.twilio.com:3478" } o.default = { "stun.sip.us:3478", "stun.nextcloud.com:3478", "global.stun.twilio.com:3478" }
o:depends({ hysteria2_realms = "1" }) o:depends({ hysteria2_realms = "1" })
o = s:option(Flag, "hysteria2_realm_upnp", translate("Enable") .. " UPnP/NAT-PMP", translate("Enable UPnP/NAT-PMP port mapping on your gateway to improve hole punching success."))
o.default = "0"
o:depends({ hysteria2_realms = "1" })
o = s:option(ListValue, "hysteria2_obfs_type", translate("Obfs Type")) o = s:option(ListValue, "hysteria2_obfs_type", translate("Obfs Type"))
o:value("", translate("Disable")) o:value("", translate("Disable"))
o:value("salamander") o:value("salamander")
@@ -149,6 +149,10 @@ o = s:option(DynamicList, "hysteria2_realm_stun", translate("Realm STUN"))
o.default = { "stun.sip.us:3478", "stun.nextcloud.com:3478", "global.stun.twilio.com:3478" } o.default = { "stun.sip.us:3478", "stun.nextcloud.com:3478", "global.stun.twilio.com:3478" }
o:depends({ hysteria2_realms = "1" }) o:depends({ hysteria2_realms = "1" })
o = s:option(Flag, "hysteria2_realm_upnp", translate("Enable") .. " UPnP/NAT-PMP", translate("Enable UPnP/NAT-PMP port mapping on your gateway to improve hole punching success."))
o.default = "0"
o:depends({ hysteria2_realms = "1" })
o = s:option(ListValue, "hysteria2_obfs_type", translate("Obfs Type")) o = s:option(ListValue, "hysteria2_obfs_type", translate("Obfs Type"))
o:value("", translate("Disable")) o:value("", translate("Disable"))
o:value("salamander") o:value("salamander")
@@ -73,6 +73,11 @@ o.default = { "stun.sip.us:3478", "stun.nextcloud.com:3478", "global.stun.twilio
o.rewrite_option = _n(o.option) o.rewrite_option = _n(o.option)
o:depends({ realms = "1" }) o:depends({ realms = "1" })
o = s:option(Flag, "realm_upnp", translate("Enable") .. " UPnP/NAT-PMP", translate("Enable UPnP/NAT-PMP port mapping on your gateway to improve hole punching success."))
o.default = "0"
o.rewrite_option = _n(o.option)
o:depends({ realms = "1" })
o = s:option(ListValue, "obfs_type", translate("Obfs Type")) o = s:option(ListValue, "obfs_type", translate("Obfs Type"))
o:value("", translate("Disable")) o:value("", translate("Disable"))
o:value("salamander") o:value("salamander")
@@ -147,6 +152,19 @@ o.validate = function(self, value, t)
end end
o:depends({ custom = false }) o:depends({ custom = false })
o = s:option(FileUpload, "ech_keyFile", translate("ECH key absolute path"), translate("as:") .. "/etc/ssl/ech.pem")
o.validate = function(self, value, t)
if value and value ~= "" then
if not fs.access(value) then
return nil, translate("Can't find this file!")
else
return value
end
end
return nil
end
o:depends({ custom = false })
o = s:option(Flag, "firewall_allow", translate("Firewall Allow")) o = s:option(Flag, "firewall_allow", translate("Firewall Allow"))
o.default = "0" o.default = "0"
o:depends({ custom = false }) o:depends({ custom = false })
@@ -48,8 +48,10 @@ function gen_config_server(node)
ignoreClientBandwidth = (node.hysteria2_ignoreClientBandwidth == "1") and true or false, ignoreClientBandwidth = (node.hysteria2_ignoreClientBandwidth == "1") and true or false,
disableUDP = (node.hysteria2_udp == "0") and true or false, disableUDP = (node.hysteria2_udp == "0") and true or false,
realm = (node.hysteria2_realms and node.hysteria2_realm_stun) and { realm = (node.hysteria2_realms and node.hysteria2_realm_stun) and {
stunServers = node.hysteria2_realm_stun stunServers = node.hysteria2_realm_stun,
} or nil portMapping = (node.hysteria2_realm_upnp == "1") and { enabled = true } or nil
} or nil,
ech = (node.ech_keyFile and node.ech_keyFile ~= "") and { keyPath = node.ech_keyFile } or nil
} }
if config.obfs and config.obfs.gecko then if config.obfs and config.obfs.gecko then
@@ -101,7 +103,8 @@ function gen_config(var)
return server return server
end)(), end)(),
realm = (node.hysteria2_realms and node.hysteria2_realm_stun) and { realm = (node.hysteria2_realms and node.hysteria2_realm_stun) and {
stunServers = node.hysteria2_realm_stun stunServers = node.hysteria2_realm_stun,
portMapping = (node.hysteria2_realm_upnp == "1") and { enabled = true } or nil
} or nil, } or nil,
transport = { transport = {
type = "udp", type = "udp",
@@ -138,6 +141,7 @@ function gen_config(var)
sni = node.tls_serverName, sni = node.tls_serverName,
insecure = (node.tls_allowInsecure == "1") and true or false, insecure = (node.tls_allowInsecure == "1") and true or false,
pinSHA256 = (node.tls_pinSHA256) and node.tls_pinSHA256 or nil, pinSHA256 = (node.tls_pinSHA256) and node.tls_pinSHA256 or nil,
ech = (node.ech == "1") and node.ech_config or nil
}, },
quic = { quic = {
initStreamReceiveWindow = (node.hysteria2_recv_window) and tonumber(node.hysteria2_recv_window) or nil, initStreamReceiveWindow = (node.hysteria2_recv_window) and tonumber(node.hysteria2_recv_window) or nil,
@@ -596,6 +596,7 @@ function gen_outbound(flag, node, tag, proxy_table)
realm.scheme = nil realm.scheme = nil
realm.address = nil realm.address = nil
realm.port = nil realm.port = nil
realm.port_mapping = (node.hysteria2_realm_upnp == "1") and { enabled = true } or nil
return realm return realm
end end
return nil return nil
@@ -951,6 +952,7 @@ function gen_config_server(node)
realm.address = nil realm.address = nil
realm.port = nil realm.port = nil
realm.stun_domain_resolver = "direct" realm.stun_domain_resolver = "direct"
realm.port_mapping = (node.hysteria2_realm_upnp == "1") and { enabled = true } or nil
return realm return realm
end end
return nil return nil
@@ -15,7 +15,7 @@ local xray_version = api.get_app_version("xray")
local xray_min_version = "26.3.27" local xray_min_version = "26.3.27"
local function get_domain_excluded() local function get_domain_excluded()
local path = "/usr/share/passwall/domains_excluded" local path = string.format("/usr/share/%s/rules/domains_excluded", api.c_config)
local content = fs.readfile(path) local content = fs.readfile(path)
if not content then return nil end if not content then return nil end
local hosts = {} local hosts = {}
@@ -308,7 +308,8 @@ function gen_outbound(flag, node, tag, proxy_table)
type = "realm", type = "realm",
settings = { settings = {
url = url, url = url,
stunServers = stun stunServers = stun,
portMapping = (node.hysteria2_realm_upnp == "1") and { enabled = true } or nil
} }
} }
udp[#udp+1] = r udp[#udp+1] = r
@@ -782,7 +783,8 @@ function gen_config_server(node)
type = "realm", type = "realm",
settings = { settings = {
url = url, url = url,
stunServers = stun stunServers = stun,
portMapping = (node.hysteria2_realm_upnp == "1") and { enabled = true } or nil
} }
} }
udp[#udp+1] = r udp[#udp+1] = r
@@ -594,6 +594,7 @@ local current_node = map:get(section)
params += opt.query("pinSHA256", dom_prefix + "tls_pinSHA256"); params += opt.query("pinSHA256", dom_prefix + "tls_pinSHA256");
params += opt.query("pcs", dom_prefix + "tls_pinSHA256"); params += opt.query("pcs", dom_prefix + "tls_pinSHA256");
params += opt.query("vcn", dom_prefix + "tls_CertByName"); params += opt.query("vcn", dom_prefix + "tls_CertByName");
params += opt.query("ech", dom_prefix + "ech_config");
var v_password = null; var v_password = null;
@@ -628,7 +629,7 @@ local current_node = map:get(section)
params = params.replace(/^&/, ""); params = params.replace(/^&/, "");
url = url =
_address + ":" + _address + ":" +
v_port.value + "?" + (v_port.value || "443") + "?" +
params + params +
"#" + encodeURI(v_alias.value); "#" + encodeURI(v_alias.value);
if (v_password) { if (v_password) {
@@ -1664,6 +1665,8 @@ local current_node = map:get(section)
); );
opt.set(dom_prefix + 'tls_pinSHA256', queryParam.pcs || queryParam.pinSHA256 || ''); opt.set(dom_prefix + 'tls_pinSHA256', queryParam.pcs || queryParam.pinSHA256 || '');
opt.set(dom_prefix + 'tls_CertByName', queryParam.vcn || ''); opt.set(dom_prefix + 'tls_CertByName', queryParam.vcn || '');
opt.set(dom_prefix + 'ech', !!queryParam.ech);
opt.set(dom_prefix + 'ech_config', queryParam.ech || '');
if (m.hash) { if (m.hash) {
opt.set('remarks', decodeURIComponent(m.hash.substr(1))); opt.set('remarks', decodeURIComponent(m.hash.substr(1)));
} }
+6
View File
@@ -1646,6 +1646,9 @@ msgstr "公钥文件绝对路径"
msgid "Private key absolute path" msgid "Private key absolute path"
msgstr "私钥文件绝对路径" msgstr "私钥文件绝对路径"
msgid "ECH key absolute path"
msgstr "ECH 密钥绝对路径"
msgid "Can't find this file!" msgid "Can't find this file!"
msgstr "找不到这个文件!" msgstr "找不到这个文件!"
@@ -2202,6 +2205,9 @@ msgstr "Gecko 包大小(最小)"
msgid "Gecko Packet Size (max)" msgid "Gecko Packet Size (max)"
msgstr "Gecko 包大小(最大)" msgstr "Gecko 包大小(最大)"
msgid "Enable UPnP/NAT-PMP port mapping on your gateway to improve hole punching success."
msgstr "在网关上启用 UPnP/NAT-PMP 端口映射以提升打洞成功率。"
msgid "valid time (hh:mm)" msgid "valid time (hh:mm)"
msgstr "有效时间(hh:mm)" msgstr "有效时间(hh:mm)"
@@ -1467,6 +1467,10 @@ local function processData(szType, content, add_mode, group, sub_cfg)
result.hysteria2_up_mbps = params.upmbps or (sub_cfg and sub_hy_up_mbps or nil) result.hysteria2_up_mbps = params.upmbps or (sub_cfg and sub_hy_up_mbps or nil)
result.hysteria2_down_mbps = params.downmbps or (sub_cfg and sub_hy_down_mbps or nil) result.hysteria2_down_mbps = params.downmbps or (sub_cfg and sub_hy_down_mbps or nil)
result.hysteria2_hop = params.mport result.hysteria2_hop = params.mport
if params.ech and params.ech ~= "" then
result.ech = "1"
result.ech_config = params.ech
end
if params["obfs-password"] or params["obfs_password"] then if params["obfs-password"] or params["obfs_password"] then
result.hysteria2_obfs_type = params.obfs or "salamander" result.hysteria2_obfs_type = params.obfs or "salamander"
result.hysteria2_obfs_password = params["obfs-password"] or params["obfs_password"] result.hysteria2_obfs_password = params["obfs-password"] or params["obfs_password"]
+2 -2
View File
@@ -10,12 +10,12 @@ include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=natflow PKG_NAME:=natflow
PKG_VERSION:=20260531 PKG_VERSION:=20260531
PKG_RELEASE:=73 PKG_RELEASE:=74
PKG_SOURCE:=$(PKG_VERSION).tar.xz PKG_SOURCE:=$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=https://github.com/ptpt52/natflow.git PKG_SOURCE_URL:=https://github.com/ptpt52/natflow.git
PKG_SOURCE_PROTO:=git PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=8fa0d6022ff4f25fb123dfe8b3fc7337fc38e3fa PKG_SOURCE_VERSION:=5e3dc6435603076f0fd93ca3d4f2e3899fc87e20
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_MAINTAINER:=Chen Minqiang <ptpt52@gmail.com> PKG_MAINTAINER:=Chen Minqiang <ptpt52@gmail.com>
PKG_LICENSE:=GPL-2.0 PKG_LICENSE:=GPL-2.0
+2 -2
View File
@@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=teleproxy PKG_NAME:=teleproxy
PKG_VERSION:=4.16.1 PKG_VERSION:=4.16.1
PKG_RELEASE:=25 PKG_RELEASE:=26
PKG_MAINTAINER:=Kosntantine Shevlakov <shevlakov@132lan.ru> PKG_MAINTAINER:=Kosntantine Shevlakov <shevlakov@132lan.ru>
PKG_LICENSE:=GPLv2 PKG_LICENSE:=GPLv2
@@ -10,7 +10,7 @@ PKG_LICENSE_FILES:=LICENSE
PKG_SOURCE_PROTO:=git PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/teleproxy/teleproxy.git PKG_SOURCE_URL:=https://github.com/teleproxy/teleproxy.git
PKG_SOURCE_VERSION:=064e893a5cc8fbd9b99609c09bd000a1f3fbc09b PKG_SOURCE_VERSION:=b7d980539cf2eded55ee159c4c36376af6831a3d
PKG_SOURCE_SUBDIR:=$(PKG_NAME) PKG_SOURCE_SUBDIR:=$(PKG_NAME)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+9 -2
View File
@@ -43,11 +43,11 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=wwand PKG_NAME:=wwand
PKG_RELEASE:=11 PKG_RELEASE:=12
PKG_SOURCE_PROTO:=git PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/ddimension/wwand.git PKG_SOURCE_URL:=https://github.com/ddimension/wwand.git
PKG_SOURCE_VERSION:=fc013f140d423867b993c6026fd435ec750cbb91 PKG_SOURCE_VERSION:=2311728191b2b325de54946b0767000baa245366
PKG_SOURCE_DATE:=2026-08-27 PKG_SOURCE_DATE:=2026-08-27
PKG_MIRROR_HASH:=skip PKG_MIRROR_HASH:=skip
@@ -328,6 +328,13 @@ define Package/wwand-mhi/description
MHI bus/PCI/control/data drivers and installs the wwan-subsystem hotplug so MHI bus/PCI/control/data drivers and installs the wwan-subsystem hotplug so
wwand binds these modems on boot. Install together with a control backend wwand binds these modems on boot. Install together with a control backend
(wwand-qmi or wwand-mbim). (wwand-qmi or wwand-mbim).
Adding wwand-mbim is worthwhile even on a QMI-driven MHI modem: many of them
expose no DUN channel and therefore no AT port at all, and wwand can then
carry AT over the modem's MBIM channel instead (Quectel QDU). Without that
package the capability is simply absent — vendor AT commands, the protocol
switch and AT telemetry are unavailable, which is a limitation rather than a
failure.
endef endef
define Package/wwand-mhi/install define Package/wwand-mhi/install