diff options
-rw-r--r-- | source3/lib/interface.c | 12 | ||||
-rw-r--r-- | source3/nmbd/nmbd.c | 2 | ||||
-rw-r--r-- | source3/smbd/server.c | 2 |
3 files changed, 9 insertions, 7 deletions
diff --git a/source3/lib/interface.c b/source3/lib/interface.c index 31ec846fdc..3e45d627d3 100644 --- a/source3/lib/interface.c +++ b/source3/lib/interface.c @@ -41,13 +41,15 @@ static struct interface *local_interfaces = NULL; /**************************************************************************** Try and find an interface that matches an ip. If we cannot, return NULL **************************************************************************/ -static struct interface *iface_find(struct in_addr ip) +static struct interface *iface_find(struct in_addr ip, BOOL CheckMask) { struct interface *i; if (zero_ip(ip)) return local_interfaces; for (i=local_interfaces;i;i=i->next) - if (same_net(i->ip,ip,i->nmask)) return i; + if (CheckMask) { + if (same_net(i->ip,ip,i->nmask)) return i; + } else if ((i->ip).s_addr == ip.s_addr) return i; return NULL; } @@ -59,7 +61,7 @@ add an interface to the linked list of interfaces static void add_interface(struct in_addr ip, struct in_addr nmask) { struct interface *iface; - if (iface_find(ip)) { + if (iface_find(ip, False)) { DEBUG(3,("not adding duplicate interface %s\n",inet_ntoa(ip))); return; } @@ -365,12 +367,12 @@ unsigned iface_hash(void) struct in_addr *iface_bcast(struct in_addr ip) { - struct interface *i = iface_find(ip); + struct interface *i = iface_find(ip, True); return(i ? &i->bcast : &local_interfaces->bcast); } struct in_addr *iface_ip(struct in_addr ip) { - struct interface *i = iface_find(ip); + struct interface *i = iface_find(ip, True); return(i ? &i->ip : &local_interfaces->ip); } diff --git a/source3/nmbd/nmbd.c b/source3/nmbd/nmbd.c index f772788341..32d66d39fd 100644 --- a/source3/nmbd/nmbd.c +++ b/source3/nmbd/nmbd.c @@ -272,7 +272,7 @@ static BOOL reload_nmbd_services(BOOL test) BOOL ret; extern fstring remote_machine; - fstrcpy( remote_machine, "nmb" ); + fstrcpy( remote_machine, "nmbd" ); if ( lp_loaded() ) { diff --git a/source3/smbd/server.c b/source3/smbd/server.c index 8eacd4ed58..6457dd6295 100644 --- a/source3/smbd/server.c +++ b/source3/smbd/server.c @@ -636,7 +636,7 @@ static void usage(char *pname) slprintf(debugf, sizeof(debugf), "%s/log.smbd", LOGFILEBASE); } - pstrcpy(remote_machine, "smb"); + pstrcpy(remote_machine, "smbd"); setup_logging(argv[0],False); |