🎨 Sync 2026-04-10 15:34:26

This commit is contained in:
github-actions[bot] committed 2026-04-10 15:34:26 +08:00
1 parent 9b1a57d792
commit 42174fc0b0
66 files changed
+6841 -2210

No files matched your search

+11 -15
View File
@@ -1241,7 +1241,6 @@ compare_rules() {
fi
# Generate temporary file for current rules
local temp_file=$(mktemp)
local rules_file=$(mktemp)
loger 7 "DEBUG: Temporary file path: $rules_file"
@@ -1255,18 +1254,18 @@ compare_rules() {
# Check if current rules were exported successfully
if [ ! -s "$rules_file" ] || ! grep -q "table" "$rules_file" 2>/dev/null; then
loger 4 "Failed to export current rules"
rm -f "$temp_file" "$rules_file"
rm -f "$rules_file"
return 1 # Export failed, need update
fi
# Compare current rules with rules in persistence file
if ! cmp -s "$rules_file" "$NFTABLES_RULES_FILE"; then
loger 6 "Rules differ, update needed"
rm -f "$temp_file" "$rules_file"
rm -f "$rules_file"
return 1 # Need update
fi
rm -f "$temp_file" "$rules_file"
rm -f "$rules_file"
loger 6 "Rules unchanged, no update needed"
return 0 # No update needed
}
@@ -1277,21 +1276,17 @@ persist_nftables_rules() {
return 0
fi
# If mode unchanged and persistence file exists, skip update
if [ "$MODE_CHANGED" = "0" ] && [ -f "$NFTABLES_RULES_FILE" ]; then
loger 6 "Mode unchanged and persistence file exists, skipping update"
return 0
fi
# Force update: skip comparison check and delete old file
if [ "$FORCE_UPDATE" = "1" ]; then
loger 6 "Force update requested, removing old persistence file"
rm -f "$NFTABLES_RULES_FILE" 2>/dev/null
# Non-force update: compare rules
# Otherwise, if persistence file exists, compare rules
elif [ -f "$NFTABLES_RULES_FILE" ]; then
if compare_rules; then
loger 6 "Rules unchanged, skipping persistence update"
return 0
else
loger 6 "Rules changed, updating persistence"
fi
fi
@@ -1299,7 +1294,7 @@ persist_nftables_rules() {
mkdir -p "$NFTABLES_RULES_DIR" 2>/dev/null
# Generate nftables rule file
cat <<-'EOF' >>$NFTABLES_RULES_FILE
cat <<-'EOF' > "$NFTABLES_RULES_FILE"
#!/usr/sbin/nft -f
# ShadowsocksR nftables rules
@@ -1374,17 +1369,18 @@ start_auto_update_daemon() {
echo $$ > "/var/run/ssr-rules-daemon.pid"
while true; do
sleep 300
sleep "$AUTO_UPDATE_INTERVAL"
if [ -x "/usr/bin/ssr-rules" ]; then
# -C returns 0 if rules are OK, non-zero if need update
if /usr/bin/ssr-rules -C >/dev/null 2>&1; then
logger -t ssr-rules[daemon] "Rules status OK, no update needed"
else
logger -t ssr-rules[daemon] "Rules changed or missing, updating persistence"
if /usr/bin/ssr-rules -P >/dev/null 2>&1; then
logger -t ssr-rules[daemon] "Persistence rules updated successfully"
else
logger -t ssr-rules[daemon] "Failed to update persistence"
fi
else
logger -t ssr-rules[daemon] "Rules status OK, no update needed"
fi
else
logger -t ssr-rules[daemon] "Script not found, exiting daemon"