MCPcopy Create free account
hub / github.com/SamNet-dev/snix / removeRulesLocked

Method removeRulesLocked

platform/linux/nfqueue.go:287–305  ·  view source on GitHub ↗

removeRulesLocked deletes every rule we successfully added, converting each `-A` into `-D`. Missing rules (already removed) are ignored.

()

Source from the content-addressed store, hash-verified

285// removeRulesLocked deletes every rule we successfully added, converting
286// each `-A` into `-D`. Missing rules (already removed) are ignored.
287func (b *Backend) removeRulesLocked() error {
288 var firstErr error
289 // Remove in reverse order.
290 for i := len(b.addedRules) - 1; i >= 0; i-- {
291 spec := append([]string{}, b.addedRules[i]...)
292 for j, s := range spec {
293 if s == "-A" {
294 spec[j] = "-D"
295 break
296 }
297 }
298 if err := runIptables(spec...); err != nil && firstErr == nil {
299 // Don't fail hard: rule might already be gone.
300 firstErr = fmt.Errorf("iptables delete %v: %w", spec, err)
301 }
302 }
303 b.addedRules = nil
304 return firstErr
305}
306
307var iptablesPath = func() string {
308 if p, err := exec.LookPath("iptables"); err == nil {

Callers 3

OpenMethod · 0.95
CloseMethod · 0.95
installRulesMethod · 0.95

Implementers 3

fakeBackendcore/engine/engine_test.go
Backendplatform/windows/backend.go
Backendplatform/linux/nfqueue.go

Calls 1

runIptablesFunction · 0.85

Tested by

no test coverage detected