mirror of
https://github.com/caiwx86/small-packages.git
synced 2026-11-15 20:52:53 +08:00
update 2026-11-05 05:40:53
This commit is contained in:
1 parent
3cdb943a21
commit
e54c41d8c1
161 files changed
+115
-37847
No files matched your search
+2
-2
@@ -5,8 +5,8 @@ PKG_UPSTREAM_VERSION:=1.19.33
|
||||
PKG_UPSTREAM_TAG:=v$(PKG_UPSTREAM_VERSION)
|
||||
PKG_SHORT_SHA:=3f27ef3
|
||||
|
||||
PKG_VERSION:=2026.10.25.$(PKG_UPSTREAM_VERSION)
|
||||
PKG_RELEASE:=5
|
||||
PKG_VERSION:=2026.11.04.$(PKG_UPSTREAM_VERSION)
|
||||
PKG_RELEASE:=3
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-stable-$(PKG_UPSTREAM_TAG)-$(PKG_SHORT_SHA).tar.gz
|
||||
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-stable-$(PKG_UPSTREAM_TAG)-$(PKG_SHORT_SHA)
|
||||
|
||||
@@ -1551,6 +1551,34 @@ _ensure_cn_domain_rule_provider() {
|
||||
' "$CONFIG_YAML" 2>/dev/null || true
|
||||
}
|
||||
|
||||
# fake-ip-filter 引用当前配置没定义的 rule-set 时,mihomo 会拒绝启动
|
||||
# (dns.fake-ip-filter[i] "RULE-SET,x,real-ip": rule-set 'x' not found)。
|
||||
# 切换配置后最常出现,启动前丢掉并记日志,免得整机莫名断网。
|
||||
prune_fakeip_missing_rulesets() {
|
||||
command -v yq >/dev/null 2>&1 || return 0
|
||||
[ -s "$CONFIG_YAML" ] || return 0
|
||||
|
||||
local providers entry _rs
|
||||
providers="$(yq -M e -r '.rule-providers // {} | keys | .[]' "$CONFIG_YAML" 2>/dev/null)"
|
||||
|
||||
yq -M e -r '.dns."fake-ip-filter" // [] | .[]' "$CONFIG_YAML" 2>/dev/null |
|
||||
while IFS= read -r entry; do
|
||||
case "$entry" in
|
||||
RULE-SET,*|rule-set:*) ;;
|
||||
*) continue ;;
|
||||
esac
|
||||
_rs="${entry#RULE-SET,}"
|
||||
_rs="${_rs#rule-set:}"
|
||||
_rs="${_rs%%,*}"
|
||||
[ -n "$_rs" ] || continue
|
||||
printf '%s\n' "$providers" | grep -Fxq "$_rs" && continue
|
||||
CLASHOO_DROP_ENTRY="$entry" yq -M e -i \
|
||||
'.dns."fake-ip-filter" = [.dns."fake-ip-filter"[] | select(. != strenv(CLASHOO_DROP_ENTRY))]' \
|
||||
"$CONFIG_YAML" 2>/dev/null || true
|
||||
log_msg "Skipped fake-ip-filter entry, rule-set not found: $entry" "已跳过 fake-ip-filter 条目,规则集不存在:$entry"
|
||||
done
|
||||
}
|
||||
|
||||
append_luci_fake_ip_filter_extras() {
|
||||
[ -n "${CLASHOO_KEEP_FAKEIP_FILTER:-}" ] || return 0
|
||||
command -v yq >/dev/null 2>&1 || return 0
|
||||
@@ -2252,6 +2280,7 @@ _start_prepare_config() {
|
||||
[ "$_reload_candidate" = "1" ] || _prepare_geo_bootstrap_mode
|
||||
_remap_dns_system_nameserver >/dev/null 2>&1
|
||||
ensure_dns_cn_policy_fallback >/dev/null 2>&1
|
||||
prune_fakeip_missing_rulesets
|
||||
|
||||
|
||||
if [ ! -f "$CONFIG_YAML" ];then
|
||||
|
||||
@@ -175,7 +175,7 @@ function dns_server(address, protocol, port) {
|
||||
|
||||
let dns_roles = {};
|
||||
uci.foreach('clashoo', 'dnsservers', function(sec) {
|
||||
if (b(sec.enabled) == false) return;
|
||||
if (sec.enabled != null && b(sec.enabled) == false) return;
|
||||
let role = s(sec.ser_type, 'nameserver');
|
||||
if (role == 'fallback' && cfg['dns']['enhanced-mode'] == 'fake-ip') return;
|
||||
let srv = dns_server(sec.ser_address, sec.protocol, sec.ser_port);
|
||||
@@ -202,7 +202,7 @@ if (length(bootstrap) && (!dns_present['default-nameserver'] || dns_force['defau
|
||||
let policies = {};
|
||||
let proxy_policies = {};
|
||||
uci.foreach('clashoo', 'dns_policy', function(sec) {
|
||||
if (b(sec.enabled) == false) return;
|
||||
if (sec.enabled != null && b(sec.enabled) == false) return;
|
||||
let role = s(sec.policy_type, 'nameserver-policy');
|
||||
if (role != 'nameserver-policy' && role != 'proxy-server-nameserver-policy') return;
|
||||
let matcher = trim(sec.matcher || '');
|
||||
@@ -252,7 +252,7 @@ if (need_cn_rs) {
|
||||
if (ab('authentication')) {
|
||||
cfg['authentication'] = [];
|
||||
uci.foreach('clashoo', 'authentication', function(sec) {
|
||||
if (b(sec.enabled) == false) return;
|
||||
if (sec.enabled != null && b(sec.enabled) == false) return;
|
||||
let user = trim(sec.username || '');
|
||||
let pass = trim(sec.password || '');
|
||||
if (user) push(cfg['authentication'], user + ':' + pass);
|
||||
@@ -262,7 +262,7 @@ if (ab('authentication')) {
|
||||
/* ── hosts ────────────────────────────────────────── */
|
||||
cfg['hosts'] = {};
|
||||
uci.foreach('clashoo', 'hosts', function(sec) {
|
||||
if (b(sec.enabled) == false) return;
|
||||
if (sec.enabled != null && b(sec.enabled) == false) return;
|
||||
let domain = trim(sec.adress || '');
|
||||
let ip = trim(sec.ip || '');
|
||||
if (domain && ip) cfg['hosts'][domain] = ip;
|
||||
|
||||
Reference in new issue
Block a user