Cause nmbd to ignore loopback interface when constructing its interface ...
authorJeremy Allison <jra@samba.org>
Wed, 29 Mar 2000 21:30:52 +0000 (21:30 +0000)
committerJeremy Allison <jra@samba.org>
Wed, 29 Mar 2000 21:30:52 +0000 (21:30 +0000)
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.
(This used to be commit cc3ad825214686ad03dd4176d0c55290d1de6221)

source3/nmbd/nmbd.c

index a7cf7560b3866d5c3fb72958d644ae6d16aad124..57d025c6604522c944d788220a46cf07658b3c83 100644 (file)
@@ -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",