From cc3ad825214686ad03dd4176d0c55290d1de6221 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Wed, 29 Mar 2000 21:30:52 +0000 Subject: Cause nmbd to ignore loopback interface when constructing its interface list. This is done by default when interfaces are probed, but if someone explicitly adds 127.0.0.1 to the interfaces line for smbd, then nmbd would start to try and register names on it. This was not good :-(. Jeremy. --- source/nmbd/nmbd.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'source/nmbd') diff --git a/source/nmbd/nmbd.c b/source/nmbd/nmbd.c index a7cf7560b38..57d025c6604 100644 --- a/source/nmbd/nmbd.c +++ b/source/nmbd/nmbd.c @@ -192,6 +192,7 @@ static void reload_interfaces(time_t t) int n; struct subnet_record *subrec; extern BOOL rescan_listen_set; + extern struct in_addr loopback_ip; if (t && ((t - lastt) < NMBD_INTERFACES_RELOAD)) return; lastt = t; @@ -205,10 +206,23 @@ static void reload_interfaces(time_t t) /* find any interfaces that need adding */ for (n=iface_count() - 1; n >= 0; n--) { struct interface *iface = get_interface(n); + + /* + * We don't want to add a loopback interface, in case + * someone has added 127.0.0.1 for smbd, nmbd needs to + * ignore it here. JRA. + */ + + if (ip_equal(iface->ip, loopback_ip)) { + DEBUG(2,("reload_interfaces: Ignoring loopback interface %s\n", inet_ntoa(iface->ip))); + continue; + } + for (subrec=subnetlist; subrec; subrec=subrec->next) { if (ip_equal(iface->ip, subrec->myip) && ip_equal(iface->nmask, subrec->mask_ip)) break; } + if (!subrec) { /* it wasn't found! add it */ DEBUG(2,("Found new interface %s\n", -- cgit