summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/lib/interface.c12
-rw-r--r--source3/nmbd/nmbd.c2
-rw-r--r--source3/smbd/server.c2
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);