struct ipv4_addr ip;
struct ipv4_addr bcast;
struct ipv4_addr nmask;
struct ipv4_addr ip;
struct ipv4_addr bcast;
struct ipv4_addr nmask;
+ const char *ip_s;
+ const char *bcast_s;
+ const char *nmask_s;
};
static struct interface *local_interfaces;
};
static struct interface *local_interfaces;
iface->nmask = tov4(nmask);
iface->bcast.addr = MKBCADDR(iface->ip.addr, iface->nmask.addr);
iface->nmask = tov4(nmask);
iface->bcast.addr = MKBCADDR(iface->ip.addr, iface->nmask.addr);
+ /* keep string versions too, to avoid people tripping over the implied
+ static in sys_inet_ntoa() */
+ iface->ip_s = talloc_strdup(iface, sys_inet_ntoa(iface->ip));
+ iface->bcast_s = talloc_strdup(iface, sys_inet_ntoa(iface->bcast));
+ iface->nmask_s = talloc_strdup(iface, sys_inet_ntoa(iface->nmask));
+
DLIST_ADD_END(local_interfaces, iface, struct interface *);
DLIST_ADD_END(local_interfaces, iface, struct interface *);
- DEBUG(2,("added interface ip=%s ",sys_inet_ntoa(iface->ip)));
- DEBUG(2,("bcast=%s ",sys_inet_ntoa(iface->bcast)));
- DEBUG(2,("nmask=%s\n",sys_inet_ntoa(iface->nmask)));
+ DEBUG(2,("added interface ip=%s bcast=%s nmask=%s\n",
+ iface->ip_s, iface->bcast_s, iface->nmask_s));
- return sys_inet_ntoa(i->ip);
- return sys_inet_ntoa(i->bcast);
- return sys_inet_ntoa(i->nmask);
ip.s_addr = interpret_addr(dest);
iface = iface_find(ip, True);
if (iface) {
ip.s_addr = interpret_addr(dest);
iface = iface_find(ip, True);
if (iface) {
- return sys_inet_ntoa(iface->ip);
}
return iface_n_ip(0);
}
}
return iface_n_ip(0);
}