summaryrefslogtreecommitdiff
path: root/source3/utils/nmblookup.c
diff options
context:
space:
mode:
Diffstat (limited to 'source3/utils/nmblookup.c')
-rw-r--r--source3/utils/nmblookup.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/source3/utils/nmblookup.c b/source3/utils/nmblookup.c
index c137b4f93a..ccdbec45e6 100644
--- a/source3/utils/nmblookup.c
+++ b/source3/utils/nmblookup.c
@@ -101,6 +101,8 @@ int main(int argc,char *argv[])
BOOL find_status=False;
int i;
static pstring servicesf = CONFIGFILE;
+ struct in_addr bcast_addr;
+ BOOL got_bcast = False;
DEBUGLEVEL = 1;
*lookup = 0;
@@ -116,6 +118,8 @@ int main(int argc,char *argv[])
{
case 'B':
iface_set_default(NULL,optarg,NULL);
+ bcast_addr = *interpret_addr2(optarg);
+ got_bcast = True;
break;
case 'i':
strcpy(scope,optarg);
@@ -149,14 +153,16 @@ int main(int argc,char *argv[])
if (!lp_load(servicesf,True)) {
fprintf(stderr, "Can't load %s - run testparm to debug it\n", servicesf);
- return (-1);
}
load_interfaces();
init_structs();
if (!open_sockets()) return(1);
- DEBUG(1,("Sending queries to %s\n",inet_ntoa(*iface_bcast(ipzero))));
+ if (!got_bcast)
+ bcast_addr = *iface_bcast(ipzero);
+
+ DEBUG(1,("Sending queries to %s\n",inet_ntoa(bcast_addr)));
for (i=optind;i<argc;i++)
@@ -187,7 +193,7 @@ int main(int argc,char *argv[])
}
if (name_query(ServerFD,lookup,lookup_type,bcast,True,
- *iface_bcast(ipzero),&ip,NULL))
+ bcast_addr,&ip,NULL))
{
printf("%s %s\n",inet_ntoa(ip),lookup);
}