summaryrefslogtreecommitdiffstats
path: root/source/lib/interface.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/lib/interface.c')
-rw-r--r--source/lib/interface.c9
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");