github.com/aporeto-inc/trireme-lib@v10.358.0+incompatible/controller/pkg/ipsetmanager/helpers.go (about) 1 package ipsetmanager 2 3 import ( 4 "strings" 5 ) 6 7 func addToIPset(set Ipset, data string) error { 8 9 // ipset can not program this rule 10 if data == IPv4DefaultIP { 11 if err := addToIPset(set, "0.0.0.0/1"); err != nil { 12 return err 13 } 14 15 return addToIPset(set, "128.0.0.0/1") 16 } 17 18 // ipset can not program this rule 19 if data == IPv6DefaultIP { 20 if err := addToIPset(set, "::/1"); err != nil { 21 return err 22 } 23 24 return addToIPset(set, "8000::/1") 25 } 26 27 if strings.HasPrefix(data, "!") { 28 return set.AddOption(data[1:], "nomatch", 0) 29 } 30 31 return set.Add(data, 0) 32 } 33 34 func delFromIPset(set Ipset, data string) error { 35 36 if data == IPv4DefaultIP { 37 if err := delFromIPset(set, "0.0.0.0/1"); err != nil { 38 return err 39 } 40 41 return delFromIPset(set, "128.0.0.0/1") 42 } 43 44 if data == IPv6DefaultIP { 45 if err := delFromIPset(set, "::/1"); err != nil { 46 return err 47 } 48 49 return delFromIPset(set, "8000::/1") 50 } 51 52 return set.Del(strings.TrimPrefix(data, "!")) 53 }