diff --git a/doc/lucky1.png b/doc/lucky1.png deleted file mode 100644 index a5b41b6e..00000000 Binary files a/doc/lucky1.png and /dev/null differ diff --git a/doc/lucky2.png b/doc/lucky2.png deleted file mode 100644 index ba4c026f..00000000 Binary files a/doc/lucky2.png and /dev/null differ diff --git a/doc/lucky3.png b/doc/lucky3.png deleted file mode 100644 index 6fa7982f..00000000 Binary files a/doc/lucky3.png and /dev/null differ diff --git a/doc/taskplan1.png b/doc/taskplan1.png new file mode 100644 index 00000000..1f8db7be Binary files /dev/null and b/doc/taskplan1.png differ diff --git a/doc/taskplan2.png b/doc/taskplan2.png new file mode 100644 index 00000000..edb45d6d Binary files /dev/null and b/doc/taskplan2.png differ diff --git a/doc/taskplan3.png b/doc/taskplan3.png new file mode 100644 index 00000000..d4794702 Binary files /dev/null and b/doc/taskplan3.png differ diff --git a/doc/view.png b/doc/view.png new file mode 100644 index 00000000..169e112f Binary files /dev/null and b/doc/view.png differ diff --git a/doc/view2.png b/doc/view2.png new file mode 100644 index 00000000..9058c632 Binary files /dev/null and b/doc/view2.png differ diff --git a/gn/Makefile b/gn/Makefile index 5d39a28d..766d76aa 100644 --- a/gn/Makefile +++ b/gn/Makefile @@ -9,9 +9,9 @@ PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://gn.googlesource.com/gn.git -PKG_SOURCE_DATE:=2026-09-11 -PKG_SOURCE_VERSION:=cfcd774b98f3433e18b722f9a7ff06119825b8eb -PKG_MIRROR_HASH:=d8bea9ac89f9e87f36874601588f0d8d32221bf1ad8488f2fd9775abcddf4860 +PKG_SOURCE_DATE:=2026-09-17 +PKG_SOURCE_VERSION:=127dd2a6d582528d6d61c4d838dc17385ef31abd +PKG_MIRROR_HASH:=932ef98a571d8bef6b26aca792154d989863a5746e4ceded2d37c9190793d1a0 PKG_LICENSE:=BSD 3-Clause PKG_LICENSE_FILES:=LICENSE diff --git a/gn/src/out/last_commit_position.h b/gn/src/out/last_commit_position.h index e0a3a55e..3f4c4158 100644 --- a/gn/src/out/last_commit_position.h +++ b/gn/src/out/last_commit_position.h @@ -3,7 +3,7 @@ #ifndef OUT_LAST_COMMIT_POSITION_H_ #define OUT_LAST_COMMIT_POSITION_H_ -#define LAST_COMMIT_POSITION_NUM 2563 -#define LAST_COMMIT_POSITION "2563 (cfcd774b98f3)" +#define LAST_COMMIT_POSITION_NUM 2575 +#define LAST_COMMIT_POSITION "2575 (127dd2a6d582)" #endif // OUT_LAST_COMMIT_POSITION_H_ diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/server/type/1_sing-box.lua b/luci-app-passwall/luasrc/model/cbi/passwall/server/type/1_sing-box.lua index 3cafc9a3..65e69f99 100644 --- a/luci-app-passwall/luasrc/model/cbi/passwall/server/type/1_sing-box.lua +++ b/luci-app-passwall/luasrc/model/cbi/passwall/server/type/1_sing-box.lua @@ -83,21 +83,6 @@ o = s:option(DynamicList, "users", translate("User")) for i, v in ipairs(user_list) do o:value(v[".name"], v.username) end -o.validate = function(self, value, t) - if type(value) == "string" then value = {value} end - if type(value) == "table" then - for _, u in ipairs(value) do - local found = false - for _, v in ipairs(user_list) do - if u == v[".name"] then found = true; break end - end - if not found then - return nil, translate("Please configure user info on the User Management page.") - end - end - end - return value -end o:depends({ protocol = "mixed" }) o:depends({ protocol = "socks" }) o:depends({ protocol = "http" }) diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/server/type/2_xray.lua b/luci-app-passwall/luasrc/model/cbi/passwall/server/type/2_xray.lua index 3374b1af..b126f021 100644 --- a/luci-app-passwall/luasrc/model/cbi/passwall/server/type/2_xray.lua +++ b/luci-app-passwall/luasrc/model/cbi/passwall/server/type/2_xray.lua @@ -76,21 +76,6 @@ o = s:option(DynamicList, "users", translate("User")) for i, v in ipairs(user_list) do o:value(v[".name"], v.username) end -o.validate = function(self, value, t) - if type(value) == "string" then value = {value} end - if type(value) == "table" then - for _, u in ipairs(value) do - local found = false - for _, v in ipairs(user_list) do - if u == v[".name"] then found = true; break end - end - if not found then - return nil, translate("Please configure user info on the User Management page.") - end - end - end - return value -end o:depends({ protocol = "http" }) o:depends({ protocol = "socks" }) o:depends({ protocol = "shadowsocks" }) diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/server/type/5_hysteria2.lua b/luci-app-passwall/luasrc/model/cbi/passwall/server/type/5_hysteria2.lua index 474415a0..b526498b 100644 --- a/luci-app-passwall/luasrc/model/cbi/passwall/server/type/5_hysteria2.lua +++ b/luci-app-passwall/luasrc/model/cbi/passwall/server/type/5_hysteria2.lua @@ -50,21 +50,6 @@ for i, v in ipairs(user_list) do o:value(v[".name"], v.username) end o:depends({ custom = false }) -o.validate = function(self, value, t) - if type(value) == "string" then value = {value} end - if type(value) == "table" then - for _, u in ipairs(value) do - local found = false - for _, v in ipairs(user_list) do - if u == v[".name"] then found = true; break end - end - if not found then - return nil, translate("Please configure user info on the User Management page.") - end - end - end - return value -end o = s:option(Flag, "realms", translate("Realms")) o.default = "0" diff --git a/luci-app-passwall/luasrc/view/passwall/server/config_header.htm b/luci-app-passwall/luasrc/view/passwall/server/config_header.htm index 97be8a2c..742b7151 100644 --- a/luci-app-passwall/luasrc/view/passwall/server/config_header.htm +++ b/luci-app-passwall/luasrc/view/passwall/server/config_header.htm @@ -3,13 +3,6 @@ local map = self.map local api = map.api local section = self.section -%> -