@@ -89,38 +89,46 @@ func (c *container) Add(entry *Entry, opts ...IgnoreIPOption) error {
8989 }
9090 switch ignoreIPType {
9191 case IPv4 :
92- if ! val .hasIPv6Builder () {
93- val .ipv6Builder = new (netipx.IPSetBuilder )
92+ if ipv6set != nil {
93+ if ! val .hasIPv6Builder () {
94+ val .ipv6Builder = new (netipx.IPSetBuilder )
95+ }
96+ val .ipv6Builder .AddSet (ipv6set )
97+ val .ipv6Set = nil
9498 }
95- val .ipv6Builder .AddSet (ipv6set )
96- val .resetIPv6Set ()
9799 case IPv6 :
98- if ! val .hasIPv4Builder () {
99- val .ipv4Builder = new (netipx.IPSetBuilder )
100+ if ipv4set != nil {
101+ if ! val .hasIPv4Builder () {
102+ val .ipv4Builder = new (netipx.IPSetBuilder )
103+ }
104+ val .ipv4Builder .AddSet (ipv4set )
105+ val .ipv4Set = nil
100106 }
101- val .ipv4Builder .AddSet (ipv4set )
102- val .resetIPv4Set ()
103107 default :
104- if ! val .hasIPv4Builder () {
105- val .ipv4Builder = new (netipx.IPSetBuilder )
108+ if ipv4set != nil {
109+ if ! val .hasIPv4Builder () {
110+ val .ipv4Builder = new (netipx.IPSetBuilder )
111+ }
112+ val .ipv4Builder .AddSet (ipv4set )
113+ val .ipv4Set = nil
106114 }
107- if ! val .hasIPv6Builder () {
108- val .ipv6Builder = new (netipx.IPSetBuilder )
115+ if ipv6set != nil {
116+ if ! val .hasIPv6Builder () {
117+ val .ipv6Builder = new (netipx.IPSetBuilder )
118+ }
119+ val .ipv6Builder .AddSet (ipv6set )
120+ val .ipv6Set = nil
109121 }
110- val .ipv4Builder .AddSet (ipv4set )
111- val .ipv6Builder .AddSet (ipv6set )
112- val .resetIPv4Set ()
113- val .resetIPv6Set ()
114122 }
115123
116124 case false :
117125 switch ignoreIPType {
118126 case IPv4 :
119127 entry .ipv4Builder = nil
120- entry .resetIPv4Set ()
128+ entry .ipv4Set = nil
121129 case IPv6 :
122130 entry .ipv6Builder = nil
123- entry .resetIPv6Set ()
131+ entry .ipv6Set = nil
124132 }
125133 c .entries [name ] = entry
126134 }
@@ -161,38 +169,46 @@ func (c *container) Remove(entry *Entry, rCase CaseRemove, opts ...IgnoreIPOptio
161169
162170 switch ignoreIPType {
163171 case IPv4 :
164- if ! val .hasIPv6Builder () {
165- val .ipv6Builder = new (netipx.IPSetBuilder )
172+ if ipv6set != nil {
173+ if ! val .hasIPv6Builder () {
174+ val .ipv6Builder = new (netipx.IPSetBuilder )
175+ }
176+ val .ipv6Builder .RemoveSet (ipv6set )
177+ val .ipv6Set = nil
166178 }
167- val .ipv6Builder .RemoveSet (ipv6set )
168- val .resetIPv6Set ()
169179 case IPv6 :
170- if ! val .hasIPv4Builder () {
171- val .ipv4Builder = new (netipx.IPSetBuilder )
180+ if ipv4set != nil {
181+ if ! val .hasIPv4Builder () {
182+ val .ipv4Builder = new (netipx.IPSetBuilder )
183+ }
184+ val .ipv4Builder .RemoveSet (ipv4set )
185+ val .ipv4Set = nil
172186 }
173- val .ipv4Builder .RemoveSet (ipv4set )
174- val .resetIPv4Set ()
175187 default :
176- if ! val .hasIPv4Builder () {
177- val .ipv4Builder = new (netipx.IPSetBuilder )
188+ if ipv4set != nil {
189+ if ! val .hasIPv4Builder () {
190+ val .ipv4Builder = new (netipx.IPSetBuilder )
191+ }
192+ val .ipv4Builder .RemoveSet (ipv4set )
193+ val .ipv4Set = nil
178194 }
179- if ! val .hasIPv6Builder () {
180- val .ipv6Builder = new (netipx.IPSetBuilder )
195+ if ipv6set != nil {
196+ if ! val .hasIPv6Builder () {
197+ val .ipv6Builder = new (netipx.IPSetBuilder )
198+ }
199+ val .ipv6Builder .RemoveSet (ipv6set )
200+ val .ipv6Set = nil
181201 }
182- val .ipv4Builder .RemoveSet (ipv4set )
183- val .ipv6Builder .RemoveSet (ipv6set )
184- val .resetIPv4Set ()
185- val .resetIPv6Set ()
186202 }
187203
188204 case CaseRemoveEntry :
189205 switch ignoreIPType {
190206 case IPv4 :
191207 val .ipv6Builder = nil
192- val .resetIPv6Set ()
208+ val .ipv6Set = nil
193209 case IPv6 :
194210 val .ipv4Builder = nil
195- val .resetIPv4Set ()
211+ val .ipv4Set = nil
196212 default :
197213 delete (c .entries , name )
198214 }
0 commit comments