diff options
Diffstat (limited to 'source/lib/interface.c')
-rw-r--r-- | source/lib/interface.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/source/lib/interface.c b/source/lib/interface.c index 2e67b4a4a67..3a269294ed9 100644 --- a/source/lib/interface.c +++ b/source/lib/interface.c @@ -24,6 +24,7 @@ static struct iface_struct *probed_ifaces; static int total_probed; +struct in_addr ipzero; struct in_addr allones_ip; struct in_addr loopback_ip; @@ -39,8 +40,7 @@ Try and find an interface that matches an ip. If we cannot, return NULL static struct interface *iface_find(struct in_addr ip, BOOL CheckMask) { struct interface *i; - if (is_zero_ip(ip)) - return local_interfaces; + if (zero_ip(ip)) return local_interfaces; for (i=local_interfaces;i;i=i->next) if (CheckMask) { @@ -102,8 +102,8 @@ static void interpret_interface(char *token) char *p; int i, added=0; - zero_ip(&ip); - zero_ip(&nmask); + ip = ipzero; + nmask = ipzero; /* first check if it is an interface name */ for (i=0;i<total_probed;i++) { @@ -171,6 +171,7 @@ void load_interfaces(void) ptr = lp_interfaces(); + ipzero = *interpret_addr2("0.0.0.0"); allones_ip = *interpret_addr2("255.255.255.255"); loopback_ip = *interpret_addr2("127.0.0.1"); |