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,14 +27,21 @@ func (nh *NetfilterHelper) CleanIPTables(chainPrefix string) error {
}
for _, rule := range rules {
if strings.Contains(rule, jumpToChainPrefix) {
err = nh.IPTables.Delete(table, chain, rule)
if !strings.Contains(rule, jumpToChainPrefix) {
continue
}
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)
}
}
}
}
for _, chain := range chainListToDelete {
err = nh.IPTables.ClearAndDeleteChain(table, chain)