Skip to content

Commit

Permalink
add comments to reverse/check mutation
Browse files Browse the repository at this point in the history
  • Loading branch information
leosarra committed May 20, 2024
1 parent edd5d25 commit b625cce
Showing 1 changed file with 11 additions and 1 deletion.
12 changes: 11 additions & 1 deletion tools/istio-iptables/pkg/builder/iptables_builder_impl.go
Original file line number Diff line number Diff line change
Expand Up @@ -184,23 +184,29 @@ func reverseRules(rules []*Rule) []*Rule {
skip := false
insertIndex := -1
for i, element := range r.params {
// insert index of a previous -I flag must be skipped
if insertIndex >= 0 && i == insertIndex+2 {
continue
}
if element == "-A" || element == "--append" {
// -A/--append is transformed to -D
modifiedParams = append(modifiedParams, "-D")
} else if element == "-I" || element == "--insert" {
// -I/--insert is transformed to -D, insert index at i+2 must be skipped
insertIndex = i
modifiedParams = append(modifiedParams, "-D")
} else {
// Every other flag/value is kept as it is
modifiedParams = append(modifiedParams, element)
}

if ((element == "-A" || element == "--append") || (element == "-I" || element == "--insert")) &&
i < len(r.params)-1 && strings.HasPrefix(r.params[i+1], "ISTIO_") {
// Ignore every non-jump rule in ISTIO_* chains as we will flush the chain anyway
skip = true
} else if (element == "-j" || element == "--jump") && i < len(r.params)-1 && strings.HasPrefix(r.params[i+1], "ISTIO_") {
skip = false // Override previous skip if this is a jump-rule
// Override previous skip if this is a jump-rule
skip = false
}
}
if skip {
Expand All @@ -223,15 +229,19 @@ func checkRules(rules []*Rule) []*Rule {
var modifiedParams []string
insertIndex := -1
for i, element := range r.params {
// insert index of a previous -I flag must be skipped
if insertIndex >= 0 && i == insertIndex+2 {
continue
}
if element == "-A" || element == "--append" {
// -A/--append is transformed to -D
modifiedParams = append(modifiedParams, "-C")
} else if element == "-I" || element == "--insert" {
// -I/--insert is transformed to -D, insert index at i+2 must be skipped
insertIndex = i
modifiedParams = append(modifiedParams, "-C")
} else {
// Every other flag/value is kept as it is
modifiedParams = append(modifiedParams, element)
}
}
Expand Down

0 comments on commit b625cce

Please sign in to comment.