restore deleted rules

This commit is contained in:
Vladimir Avtsenov 2025-02-12 04:07:45 +03:00
parent 7a356867c3
commit 1441afb6e4

View File

@ -27,11 +27,18 @@ func (nh *NetfilterHelper) CleanIPTables(chainPrefix string) error {
} }
for _, rule := range rules { for _, rule := range rules {
if strings.Contains(rule, jumpToChainPrefix) { if !strings.Contains(rule, jumpToChainPrefix) {
err = nh.IPTables.Delete(table, chain, rule) continue
if err != nil { }
return fmt.Errorf("rule deletion error: %w", err)
} ruleSlice := strings.Split(rule, " ")
if len(ruleSlice) < 2 || ruleSlice[0] != "-A" || ruleSlice[1] != chain {
continue
}
err = nh.IPTables.Delete(table, chain, ruleSlice[2:]...)
if err != nil {
return fmt.Errorf("rule deletion error: %w", err)
} }
} }
} }