Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fcd7d31b29 | ||
|
|
87faec277a | ||
|
|
d341a782d4 |
@@ -1,8 +1,8 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=clashoo
|
||||
PKG_SHORT_SHA:=dca26db
|
||||
PKG_COMMIT_DATE:=2026.09.11
|
||||
PKG_SHORT_SHA:=dc66a8a
|
||||
PKG_COMMIT_DATE:=2026.09.14
|
||||
|
||||
PKG_VERSION:=$(PKG_COMMIT_DATE)~$(PKG_SHORT_SHA)
|
||||
PKG_RELEASE:=1
|
||||
@@ -11,8 +11,8 @@ PKG_SOURCE:=$(PKG_NAME)-alpha-$(PKG_SHORT_SHA).tar.gz
|
||||
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-alpha-$(PKG_SHORT_SHA)
|
||||
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-alpha-$(PKG_SHORT_SHA)
|
||||
PKG_SOURCE_URL:=https://github.com/kenzok8/openwrt-clashoo/releases/download/mihomo-src
|
||||
PKG_SOURCE_VERSION:=dca26db017bcde90071f3e16f97b12fafbccfa31
|
||||
PKG_HASH:=593e53b3aeb52bbd3f49ddf4ae7773ce340bf2e984a9d5634a6385fa3041b5a2
|
||||
PKG_SOURCE_VERSION:=dc66a8a180c0fa1c2b91cf5413426e68dbca320e
|
||||
PKG_HASH:=e7003359dc55a62a6f31b45f9123fc14a0a58f66c8cc4a3514ab15e94f08008b
|
||||
PKG_BUILD_VERSION:=alpha-$(PKG_SHORT_SHA)
|
||||
|
||||
PKG_LICENSE:=GPL3.0+
|
||||
|
||||
@@ -939,6 +939,7 @@ set clashoo_china6 {
|
||||
2402:7240::/32,
|
||||
2402:72a0::/32,
|
||||
2402:72c0::/32,
|
||||
2402:73e0::/32,
|
||||
2402:7540::/32,
|
||||
2402:75c0::/32,
|
||||
2402:7740::/32,
|
||||
@@ -1246,11 +1247,12 @@ set clashoo_china6 {
|
||||
2403:6280::/32,
|
||||
2403:62c0::/32,
|
||||
2403:6380::/42,
|
||||
2403:6380:41::/48,
|
||||
2403:6380:43::/48,
|
||||
2403:6380:44::/46,
|
||||
2403:6380:48::/45,
|
||||
2403:6380:50::/44,
|
||||
2403:6380:70::/44,
|
||||
2403:6380:60::/43,
|
||||
2403:6380:80::/41,
|
||||
2403:6380:100::/40,
|
||||
2403:6380:200::/39,
|
||||
@@ -2036,7 +2038,7 @@ set clashoo_china6 {
|
||||
2406:840:a18::/45,
|
||||
2406:840:a20::/44,
|
||||
2406:840:a30::/48,
|
||||
2406:840:a32::/47,
|
||||
2406:840:a33::/48,
|
||||
2406:840:a34::/46,
|
||||
2406:840:a38::/45,
|
||||
2406:840:a40::/42,
|
||||
@@ -2337,7 +2339,10 @@ set clashoo_china6 {
|
||||
2406:840:e57f::/48,
|
||||
2406:840:e580::/41,
|
||||
2406:840:e610::/44,
|
||||
2406:840:e620::/43,
|
||||
2406:840:e622::/47,
|
||||
2406:840:e624::/46,
|
||||
2406:840:e628::/45,
|
||||
2406:840:e630::/44,
|
||||
2406:840:e640::/43,
|
||||
2406:840:e660::/46,
|
||||
2406:840:e664::/47,
|
||||
@@ -2448,6 +2453,10 @@ set clashoo_china6 {
|
||||
2406:840:f600::/42,
|
||||
2406:840:f640::/43,
|
||||
2406:840:f670::/44,
|
||||
2406:840:f680::/47,
|
||||
2406:840:f682::/48,
|
||||
2406:840:f684::/46,
|
||||
2406:840:f688::/45,
|
||||
2406:840:f690::/44,
|
||||
2406:840:f6a0::/43,
|
||||
2406:840:f6c0::/42,
|
||||
@@ -3039,7 +3048,6 @@ set clashoo_china6 {
|
||||
2408:4008::/29,
|
||||
2408:4010::/30,
|
||||
2408:4014::/31,
|
||||
2408:4016:1::/48,
|
||||
2408:4016:2::/47,
|
||||
2408:4016:4::/46,
|
||||
2408:4016:8::/45,
|
||||
|
||||
@@ -920,7 +920,9 @@ set clashoo_china {
|
||||
59.153.136.0/22,
|
||||
59.153.152.0/22,
|
||||
59.153.164.0/22,
|
||||
59.153.168.0/21,
|
||||
59.153.168.0/22,
|
||||
59.153.173.0/24,
|
||||
59.153.174.0/23,
|
||||
59.153.176.0/20,
|
||||
59.153.192.0/22,
|
||||
59.155.0.0/16,
|
||||
@@ -951,6 +953,7 @@ set clashoo_china {
|
||||
61.29.128.0/18,
|
||||
61.29.192.0/19,
|
||||
61.29.224.0/20,
|
||||
61.29.251.0/24,
|
||||
61.45.128.0/18,
|
||||
61.45.224.0/20,
|
||||
61.47.128.0/18,
|
||||
@@ -2186,6 +2189,7 @@ set clashoo_china {
|
||||
103.143.132.0/22,
|
||||
103.143.174.0/23,
|
||||
103.143.228.0/23,
|
||||
103.144.41.0/24,
|
||||
103.144.66.0/23,
|
||||
103.144.70.0/23,
|
||||
103.144.72.0/23,
|
||||
@@ -2341,7 +2345,7 @@ set clashoo_china {
|
||||
103.176.244.0/23,
|
||||
103.177.28.0/23,
|
||||
103.177.44.0/23,
|
||||
103.177.70.0/23,
|
||||
103.177.71.0/24,
|
||||
103.177.162.0/23,
|
||||
103.178.240.0/23,
|
||||
103.179.76.0/22,
|
||||
@@ -2754,6 +2758,7 @@ set clashoo_china {
|
||||
103.238.24.0/21,
|
||||
103.238.32.0/21,
|
||||
103.238.40.0/22,
|
||||
103.238.46.0/23,
|
||||
103.238.48.0/21,
|
||||
103.238.56.0/22,
|
||||
103.238.88.0/21,
|
||||
@@ -3224,7 +3229,10 @@ set clashoo_china {
|
||||
114.112.228.0/24,
|
||||
114.112.230.0/23,
|
||||
114.112.234.0/23,
|
||||
114.112.240.0/20,
|
||||
114.112.240.0/21,
|
||||
114.112.248.0/22,
|
||||
114.112.252.0/23,
|
||||
114.112.255.0/24,
|
||||
114.113.0.0/17,
|
||||
114.113.128.0/21,
|
||||
114.113.140.0/22,
|
||||
@@ -3394,7 +3402,9 @@ set clashoo_china {
|
||||
117.134.128.0/18,
|
||||
117.134.205.0/24,
|
||||
117.134.207.0/24,
|
||||
117.134.208.0/20,
|
||||
117.134.208.0/23,
|
||||
117.134.212.0/23,
|
||||
117.134.216.0/21,
|
||||
117.134.232.0/21,
|
||||
117.134.240.0/20,
|
||||
117.135.0.0/16,
|
||||
@@ -3746,7 +3756,6 @@ set clashoo_china {
|
||||
123.49.236.0/24,
|
||||
123.49.240.0/24,
|
||||
123.49.242.0/23,
|
||||
123.49.245.0/24,
|
||||
123.49.248.0/21,
|
||||
123.50.160.0/19,
|
||||
123.52.0.0/14,
|
||||
@@ -3981,7 +3990,14 @@ set clashoo_china {
|
||||
140.179.0.0/16,
|
||||
140.205.0.0/16,
|
||||
140.206.0.0/15,
|
||||
140.210.0.0/16,
|
||||
140.210.0.0/20,
|
||||
140.210.16.0/21,
|
||||
140.210.24.0/22,
|
||||
140.210.28.0/23,
|
||||
140.210.30.0/24,
|
||||
140.210.32.0/19,
|
||||
140.210.64.0/18,
|
||||
140.210.128.0/17,
|
||||
140.224.0.0/16,
|
||||
140.237.0.0/16,
|
||||
140.240.0.0/16,
|
||||
@@ -4214,6 +4230,7 @@ set clashoo_china {
|
||||
163.47.4.0/22,
|
||||
163.52.28.0/23,
|
||||
163.52.76.0/23,
|
||||
163.52.108.0/23,
|
||||
163.53.0.0/20,
|
||||
163.53.36.0/22,
|
||||
163.53.40.0/21,
|
||||
|
||||
@@ -5,13 +5,13 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=dae
|
||||
PKG_VERSION:=2026.09.06
|
||||
PKG_RELEASE:=2
|
||||
PKG_VERSION:=2026.09.12
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=dae-src-2026.09.06-80525dabf966.tar.gz
|
||||
PKG_SOURCE:=dae-src-2026.09.12-187058462a1f.tar.gz
|
||||
PKG_SOURCE_URL:=https://github.com/kenzok8/openwrt-daede/releases/download/dae-src
|
||||
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
|
||||
PKG_HASH:=80525dabf966403524f3eac4ca46bb520ae487177b77e4b7b4482d24c2aa923e
|
||||
PKG_HASH:=187058462a1fd9eeb9885f4971ccf4bc81358533e71730d8509bd7968624c1c7
|
||||
|
||||
PKG_LICENSE:=AGPL-3.0-only
|
||||
PKG_LICENSE_FILE:=LICENSE
|
||||
|
||||
@@ -5,13 +5,13 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=daed
|
||||
PKG_VERSION:=2026.09.06
|
||||
PKG_RELEASE:=3
|
||||
PKG_VERSION:=2026.09.12
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=daed-src-2026.09.06-62f2e24ac52a.tar.gz
|
||||
PKG_SOURCE:=daed-src-2026.09.12-a0181f729855.tar.gz
|
||||
PKG_SOURCE_URL:=https://github.com/kenzok8/openwrt-daede/releases/download/daed-src
|
||||
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
|
||||
PKG_HASH:=62f2e24ac52a6897633d0a0ed43d5a2419164ae43fa26e5c6fe11b5fe973fa61
|
||||
PKG_HASH:=a0181f7298552497ed193e683a54b1df77f2d5441524d61989f3e3e3cf6eac51
|
||||
|
||||
PKG_LICENSE:=AGPL-3.0-only MIT
|
||||
PKG_LICENSE_FILES:=LICENSE wing/LICENSE
|
||||
|
||||
|
After Width: | Height: | Size: 91 KiB |
|
After Width: | Height: | Size: 319 KiB |
|
After Width: | Height: | Size: 389 KiB |
|
Before Width: | Height: | Size: 640 KiB |
|
Before Width: | Height: | Size: 550 KiB |
|
Before Width: | Height: | Size: 547 KiB |
|
Before Width: | Height: | Size: 659 KiB |
|
Before Width: | Height: | Size: 650 KiB |
@@ -612,21 +612,46 @@ o:value("info", "Info")
|
||||
o:value("warn", "Warning")
|
||||
o:value("error", "Error")
|
||||
|
||||
o = s:taboption("log", Flag, "advanced_log_feature", translate("Advanced log feature"), translate("For professionals only."))
|
||||
o.default = "0"
|
||||
o = s:taboption("log", Flag, "sys_log", translate("Logging to system log"), translate("Logging to the system log for more advanced functions. For example, send logs to a dedicated log server."))
|
||||
o:depends("advanced_log_feature", "1")
|
||||
o.default = "0"
|
||||
o = s:taboption("log", Value, "persist_log_path", translate("Persist log file directory"), translate("The path to the directory used to store persist log files, the \"/\" at the end can be omitted. Leave it blank to disable this feature."))
|
||||
o:depends({ ["advanced_log_feature"] = 1, ["sys_log"] = 0 })
|
||||
o = s:taboption("log", Value, "log_event_filter", translate("Log Event Filter"), translate("Support regular expression."))
|
||||
o:depends("advanced_log_feature", "1")
|
||||
o = s:taboption("log", Value, "log_event_cmd", translate("Shell Command"), translate("Shell command to execute, replace log content with %s."))
|
||||
o:depends("advanced_log_feature", "1")
|
||||
o = s:taboption("log", DummyValue, "_node_log", translate("Log File"))
|
||||
o.rawhtml = true
|
||||
o.cfgvalue = function(t, n)
|
||||
local log_file = api.TMP_PATH .. "/acl/default/global.log"
|
||||
local log_url = api.url("get_redir_log") .. "?id=default"
|
||||
local s = "<code>%s</code> " % log_file
|
||||
if api.fs.access(log_file) then
|
||||
local btn = string.format(
|
||||
'<input class="btn cbi-button cbi-button-apply" type="button" value="%s" onclick="window.open(\'%s\', \'_blank\')" />',
|
||||
translate("View Log"),
|
||||
log_url
|
||||
)
|
||||
s = s .. btn
|
||||
end
|
||||
return s
|
||||
end
|
||||
o:depends("log_node", "1")
|
||||
|
||||
o = s:taboption("log", Flag, "log_chinadns_ng", translate("Enable") .. " ChinaDNS-NG " .. translate("Log"))
|
||||
o.default = "0"
|
||||
o.rmempty = false
|
||||
o:depends("dns_shunt", "chinadns-ng")
|
||||
|
||||
o = s:taboption("log", DummyValue, "_chinadns_ng_log", translate("Log File"))
|
||||
o.rawhtml = true
|
||||
o.cfgvalue = function(t, n)
|
||||
local log_file = api.TMP_PATH .. "/acl/default/chinadns_ng.log"
|
||||
local log_url = api.url("get_chinadns_log") .. "?flag=default"
|
||||
local s = "<code>%s</code> " % log_file
|
||||
if api.fs.access(log_file) then
|
||||
local btn = string.format(
|
||||
'<input class="btn cbi-button cbi-button-apply" type="button" value="%s" onclick="window.open(\'%s\', \'_blank\')" />',
|
||||
translate("View Log"),
|
||||
log_url
|
||||
)
|
||||
s = s .. btn
|
||||
end
|
||||
return s
|
||||
end
|
||||
o:depends("log_chinadns_ng", "1")
|
||||
|
||||
o = s:taboption("log", DummyValue, "_log_tips", " ")
|
||||
o.rawhtml = true
|
||||
|
||||
@@ -12,7 +12,7 @@ local GLOBAL = {
|
||||
|
||||
local xray_version = api.get_app_version("xray")
|
||||
|
||||
local xray_min_version = "26.3.27"
|
||||
local xray_min_version = "26.7.11"
|
||||
|
||||
local function get_domain_excluded()
|
||||
local path = string.format("/usr/share/%s/rules/domains_excluded", api.c_config)
|
||||
@@ -58,7 +58,7 @@ function gen_outbound(flag, node, tag, proxy_table)
|
||||
if node.type ~= "Xray" then
|
||||
if node.type == "Socks" then
|
||||
node.protocol = "socks"
|
||||
node.transport = "tcp"
|
||||
node.transport = "raw"
|
||||
else
|
||||
local new_port
|
||||
if run_socks_instance then
|
||||
@@ -95,7 +95,7 @@ function gen_outbound(flag, node, tag, proxy_table)
|
||||
if new_port then
|
||||
node = {}
|
||||
node.protocol = "socks"
|
||||
node.transport = "tcp"
|
||||
node.transport = "raw"
|
||||
node.address = "127.0.0.1"
|
||||
node.port = new_port
|
||||
end
|
||||
@@ -172,7 +172,7 @@ function gen_outbound(flag, node, tag, proxy_table)
|
||||
} or nil,
|
||||
dialerProxy = dialer_proxy_tag,
|
||||
},
|
||||
[(api.compare_versions(xray_version, "<", "26.7.11")) and "network" or "method"] = node.transport, -- Todo: Remove version check and "network"
|
||||
method = node.transport,
|
||||
security = node.stream_security,
|
||||
tlsSettings = (node.stream_security == "tls") and {
|
||||
serverName = node.tls_serverName,
|
||||
@@ -499,7 +499,7 @@ function gen_config_server(node)
|
||||
local settings = nil
|
||||
local routing = nil
|
||||
local outbounds = {
|
||||
{ protocol = "freedom", tag = "direct", settings = { finalRules = {{ action = "allow" }}}}, { protocol = "blackhole", tag = "blocked" }
|
||||
{ protocol = "freedom", tag = "direct", finalRules = {{ action = "allow" }}}, { protocol = "blackhole", tag = "blocked" }
|
||||
}
|
||||
|
||||
local users = node.users or {}
|
||||
@@ -647,10 +647,8 @@ function gen_config_server(node)
|
||||
interface = node.outbound_node_iface
|
||||
}
|
||||
},
|
||||
settings = {
|
||||
finalRules = {{ action = "allow" }}
|
||||
}
|
||||
}
|
||||
sys.call(string.format("mkdir -p %s && touch %s/%s", api.TMP_IFACE_PATH, api.TMP_IFACE_PATH, node.outbound_node_iface))
|
||||
else
|
||||
local outbound_node_t = api.uci_get_c(node.outbound_node)
|
||||
@@ -691,7 +689,7 @@ function gen_config_server(node)
|
||||
protocol = node.protocol,
|
||||
settings = settings,
|
||||
streamSettings = {
|
||||
[(api.compare_versions(xray_version, "<", "26.7.11")) and "network" or "method"] = node.transport, -- Todo: Remove version check and "network"
|
||||
method = node.transport,
|
||||
security = "none",
|
||||
tlsSettings = ("1" == node.tls) and {
|
||||
disableSystemRoot = false,
|
||||
@@ -873,9 +871,6 @@ function gen_config_server(node)
|
||||
config.outbounds[index][k] = nil
|
||||
end
|
||||
end
|
||||
if value.protocol == "freedom" and api.compare_versions(xray_version, "<", "26.5.3") then -- Todo is to remove it
|
||||
value.settings = nil
|
||||
end
|
||||
end
|
||||
|
||||
return config
|
||||
@@ -1332,9 +1327,7 @@ function gen_config(var)
|
||||
interface = node.iface
|
||||
}
|
||||
},
|
||||
settings = (api.compare_versions(xray_version, ">", "26.4.25")) and { -- Todo: Remove version check
|
||||
finalRules = {{ action = "allow" }}
|
||||
} or nil
|
||||
}
|
||||
sys.call(string.format("mkdir -p %s && touch %s/%s", api.TMP_IFACE_PATH, api.TMP_IFACE_PATH, node.iface))
|
||||
end
|
||||
@@ -1818,11 +1811,10 @@ function gen_config(var)
|
||||
sockopt = { dialerProxy = (dns_outbound_tag ~= "blackhole") and dns_outbound_tag or "direct" }
|
||||
} or nil,
|
||||
settings = {
|
||||
address = (chn_list ~= "proxy") and "8.8.8.8" or "223.5.5.5",
|
||||
port = 53,
|
||||
network = "tcp",
|
||||
nonIPQuery = (api.compare_versions(xray_version, "<", "26.4.25")) and "reject" or nil, -- Todo is to remove it
|
||||
rules = (api.compare_versions(xray_version, ">", "26.4.17")) and {} or nil
|
||||
rewriteAddress = (chn_list ~= "proxy") and "8.8.8.8" or "223.5.5.5",
|
||||
rewritePort = 53,
|
||||
rewriteNetwork = "tcp",
|
||||
rules = {}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2046,9 +2038,7 @@ function gen_config(var)
|
||||
local direct_outbound = {
|
||||
protocol = "freedom",
|
||||
tag = "direct",
|
||||
settings = (api.compare_versions(xray_version, ">", "26.4.25")) and { -- Todo: Remove version check
|
||||
finalRules = {{ action = "allow" }}
|
||||
} or nil,
|
||||
finalRules = {{ action = "allow" }},
|
||||
streamSettings = {
|
||||
sockopt = {
|
||||
mark = 255,
|
||||
@@ -2152,7 +2142,7 @@ function gen_proto_config(var)
|
||||
local outbound = {
|
||||
protocol = server_proto,
|
||||
streamSettings = {
|
||||
network = "tcp",
|
||||
method = "raw",
|
||||
security = "none"
|
||||
},
|
||||
settings = {
|
||||
@@ -2177,10 +2167,10 @@ function gen_proto_config(var)
|
||||
table.insert(outbounds, {
|
||||
protocol = "freedom",
|
||||
tag = "direct",
|
||||
settings = (api.compare_versions(xray_version, ">", "26.4.25")) and { -- Todo: Remove version check
|
||||
finalRules = {{ action = "allow" }}
|
||||
} or nil,
|
||||
finalRules = {{ action = "allow" }},
|
||||
streamSettings = {
|
||||
sockopt = {mark = 255}
|
||||
}
|
||||
})
|
||||
|
||||
local config = {
|
||||
@@ -2192,7 +2182,10 @@ function gen_proto_config(var)
|
||||
-- 传出连接
|
||||
outbounds = outbounds,
|
||||
-- 路由
|
||||
routing = routing
|
||||
routing = routing,
|
||||
version = {
|
||||
min = xray_min_version
|
||||
}
|
||||
}
|
||||
return jsonc.stringify(config, 1)
|
||||
end
|
||||
|
||||
@@ -1643,36 +1643,6 @@ msgstr "启用节点日志"
|
||||
msgid "Log Level"
|
||||
msgstr "日志等级"
|
||||
|
||||
msgid "Advanced log feature"
|
||||
msgstr "高级日志功能"
|
||||
|
||||
msgid "For professionals only."
|
||||
msgstr "仅限专业人士使用。"
|
||||
|
||||
msgid "Persist log file directory"
|
||||
msgstr "持久性日志文件目录"
|
||||
|
||||
msgid "The path to the directory used to store persist log files, the \"/\" at the end can be omitted. Leave it blank to disable this feature."
|
||||
msgstr "用来存储持久性日志文件的目录路径,末尾的 “/” 可以省略。留空以禁用此功能。"
|
||||
|
||||
msgid "Logging to system log"
|
||||
msgstr "记录到系统日志"
|
||||
|
||||
msgid "Logging to the system log for more advanced functions. For example, send logs to a dedicated log server."
|
||||
msgstr "将日志记录到系统日志,以实现更加高级的功能。例如,把日志发送到专门的日志服务器。"
|
||||
|
||||
msgid "Log Event Filter"
|
||||
msgstr "日志事件过滤器"
|
||||
|
||||
msgid "Support regular expression."
|
||||
msgstr "支持正则表达式。"
|
||||
|
||||
msgid "Shell Command"
|
||||
msgstr "Shell 命令"
|
||||
|
||||
msgid "Shell command to execute, replace log content with %s."
|
||||
msgstr "要执行的 Shell 命令,用 %s 代替日志内容。"
|
||||
|
||||
msgid "Not enabled log"
|
||||
msgstr "未启用日志"
|
||||
|
||||
|
||||
@@ -1,17 +1,12 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Devices without a hardware RTC boot with a wrong system clock: sysfixtime can
|
||||
# only restore the mtime of the newest file under /etc, so the clock is usually
|
||||
# hours behind after a cold boot. passwall is then started by
|
||||
# /etc/hotplug.d/iface/98-passwall on ifup, which typically happens before NTP
|
||||
# has corrected the time, and time-sensitive handshakes (VMess AEAD, TLS) fail.
|
||||
#
|
||||
# Nothing restarts passwall once the clock is corrected, so it stays broken
|
||||
# until the user restarts it manually. Restart once when ntpd reports that the
|
||||
# time is valid -- the same approach dnsmasq uses for DNSSEC in
|
||||
# /etc/hotplug.d/ntp/25-dnsmasqsec.
|
||||
[ "$ACTION" = "step" ] || exit 0
|
||||
|
||||
[ "$ACTION" = "stratum" ] || exit 0
|
||||
offset=${offset#-}
|
||||
offset=${offset%.*}
|
||||
|
||||
# Skip service restart if the time adjustment is less than 120 seconds.
|
||||
[ "$offset" -lt 120 ] && exit 0
|
||||
|
||||
. /usr/share/passwall/utils.sh
|
||||
|
||||
@@ -23,5 +18,5 @@ NTP_LOCK_FILE="${LOCK_PATH}/${CONFIG}_ntp.lock"
|
||||
echo $$ > ${NTP_LOCK_FILE}
|
||||
|
||||
/etc/init.d/${CONFIG} restart >/dev/null 2>&1 &
|
||||
logger -p notice -t network -s "${CONFIG}: restart after NTP time became valid"
|
||||
logger -p notice -t network -s "${CONFIG}: restart after NTP time step (${offset}s)"
|
||||
}
|
||||
|
||||
@@ -183,8 +183,6 @@ test_auto_switch() {
|
||||
start() {
|
||||
id=$1
|
||||
LOCK_FILE=${LOCK_PATH}/${CONFIG}_socks_auto_switch_${id}.lock
|
||||
LOG_EVENT_FILTER=$(uci -q get "${CONFIG}.global[0].log_event_filter" 2>/dev/null)
|
||||
LOG_EVENT_CMD=$(uci -q get "${CONFIG}.global[0].log_event_cmd" 2>/dev/null)
|
||||
main_node=$(config_n_get $id node)
|
||||
socks_port=$(config_n_get $id port 0)
|
||||
delay=$(config_n_get $id autoswitch_testing_time 30)
|
||||
|
||||
@@ -480,25 +480,9 @@ ln_run() {
|
||||
echolog " - 找不到 ${ln_name},无法启动..."
|
||||
return 1
|
||||
}
|
||||
[ "${output}" != "/dev/null" ] && [ -n "$(echo "${output}" | grep -E "default|socks_")" ] && [ "${ln_name}" != "chinadns-ng" ] && {
|
||||
local persist_log_path=$(config_n_get @global[0] persist_log_path)
|
||||
local sys_log=$(config_n_get @global[0] sys_log "0")
|
||||
}
|
||||
if [ -z "$persist_log_path" ] && [ "$sys_log" != "1" ]; then
|
||||
|
||||
${file_func:-echolog " - ${ln_name}"} "$@" >${output} 2>&1 &
|
||||
else
|
||||
if [ -n "${persist_log_path}" ]; then
|
||||
mkdir -p ${persist_log_path}
|
||||
local log_file=${persist_log_path}/passwall_global_${ln_name}_$(date '+%F').log
|
||||
echolog "记录到持久性日志文件:${log_file}"
|
||||
${file_func:-echolog " - ${ln_name}"} "$@" >> ${log_file} 2>&1 &
|
||||
sys_log=0
|
||||
fi
|
||||
if [ "${sys_log}" = "1" ]; then
|
||||
echolog "记录 ${ln_name}_global 到系统日志"
|
||||
${file_func:-echolog " - ${ln_name}"} "$@" 2>&1 | logger -t PASSWALL_global_${ln_name} &
|
||||
fi
|
||||
fi
|
||||
|
||||
[ "$NO_REC_PROCESS" = "1" ] && return
|
||||
process_count=$(ls $TMP_SCRIPT_FUNC_PATH | wc -l)
|
||||
process_count=$((process_count + 1))
|
||||
|
||||
@@ -80,7 +80,7 @@ export function load_profile() {
|
||||
let result = {};
|
||||
const process = popen('yq -M -p yaml -o json /etc/nikki/run/config.yaml');
|
||||
if (process) {
|
||||
result = json(process);
|
||||
result = json(process.read('all'));
|
||||
process.close();
|
||||
}
|
||||
return result;
|
||||
|
||||
@@ -30,7 +30,7 @@ define Download/geosite
|
||||
HASH:=35ed26a24cafa1256bd7261414224b7bcef5c944cea7760e172b030a8b266450
|
||||
endef
|
||||
|
||||
GEOSITE_IRAN_VER:=202609070121
|
||||
GEOSITE_IRAN_VER:=202609140147
|
||||
GEOSITE_IRAN_FILE:=iran.dat.$(GEOSITE_IRAN_VER)
|
||||
define Download/geosite-ir
|
||||
URL:=https://github.com/bootmortis/iran-hosted-domains/releases/download/$(GEOSITE_IRAN_VER)/
|
||||
|
||||