Skip to content

Commit a99321c

Browse files
committed
proxy utils: check network interfaces only once
Signed-off-by: Andrew Sy Kim <[email protected]>
1 parent 3a95b11 commit a99321c

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

pkg/proxy/util/utils.go

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -181,29 +181,35 @@ func GetNodeAddresses(cidrs []string, nw NetworkInterfacer) (sets.String, error)
181181
uniqueAddressList.Insert(cidr)
182182
}
183183
}
184+
185+
itfs, err := nw.Interfaces()
186+
if err != nil {
187+
return nil, fmt.Errorf("error listing all interfaces from host, error: %v", err)
188+
}
189+
184190
// Second round of iteration to parse IPs based on cidr.
185191
for _, cidr := range cidrs {
186192
if IsZeroCIDR(cidr) {
187193
continue
188194
}
195+
189196
_, ipNet, _ := net.ParseCIDR(cidr)
190-
itfs, err := nw.Interfaces()
191-
if err != nil {
192-
return nil, fmt.Errorf("error listing all interfaces from host, error: %v", err)
193-
}
194197
for _, itf := range itfs {
195198
addrs, err := nw.Addrs(&itf)
196199
if err != nil {
197200
return nil, fmt.Errorf("error getting address from interface %s, error: %v", itf.Name, err)
198201
}
202+
199203
for _, addr := range addrs {
200204
if addr == nil {
201205
continue
202206
}
207+
203208
ip, _, err := net.ParseCIDR(addr.String())
204209
if err != nil {
205210
return nil, fmt.Errorf("error parsing CIDR for interface %s, error: %v", itf.Name, err)
206211
}
212+
207213
if ipNet.Contains(ip) {
208214
if utilnet.IsIPv6(ip) && !uniqueAddressList.Has(IPv6ZeroCIDR) {
209215
uniqueAddressList.Insert(ip.String())

0 commit comments

Comments
 (0)