summaryrefslogtreecommitdiff
path: root/source3
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>1997-10-26 07:50:28 +0000
committerAndrew Tridgell <tridge@samba.org>1997-10-26 07:50:28 +0000
commit205876345537ce80b24cc65dd1b610c22a117767 (patch)
tree08321687e338caac7feb7feea533886931d57455 /source3
parentf8c059517af070fe8718f7152a0a9c89668162fa (diff)
downloadsamba-205876345537ce80b24cc65dd1b610c22a117767.tar.gz
samba-205876345537ce80b24cc65dd1b610c22a117767.tar.bz2
samba-205876345537ce80b24cc65dd1b610c22a117767.zip
added -U option to nmblookup. This is similar to -B except that it
forces the client to send a unicast instead of a broadcast netbios packet. This is useful for diagnostics. (This used to be commit 57e0fac61414c032df35c8a4c0ba4d3a9f55c5b8)
Diffstat (limited to 'source3')
-rw-r--r--source3/utils/nmblookup.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/source3/utils/nmblookup.c b/source3/utils/nmblookup.c
index d26d199695..a44dad511e 100644
--- a/source3/utils/nmblookup.c
+++ b/source3/utils/nmblookup.c
@@ -100,6 +100,7 @@ int main(int argc,char *argv[])
int i;
static pstring servicesf = CONFIGFILE;
struct in_addr bcast_addr;
+ BOOL use_bcast = True;
BOOL got_bcast = False;
BOOL lookup_by_ip = False;
@@ -112,13 +113,20 @@ int main(int argc,char *argv[])
charset_initialise();
- while ((opt = getopt(argc, argv, "d:B:i:s:SMrhA")) != EOF)
+ while ((opt = getopt(argc, argv, "d:B:U:i:s:SMrhA")) != EOF)
switch (opt)
{
case 'B':
iface_set_default(NULL,optarg,NULL);
bcast_addr = *interpret_addr2(optarg);
got_bcast = True;
+ use_bcast = True;
+ break;
+ case 'U':
+ iface_set_default(NULL,optarg,NULL);
+ bcast_addr = *interpret_addr2(optarg);
+ got_bcast = True;
+ use_bcast = False;
break;
case 'i':
fstrcpy(scope,optarg);
@@ -172,7 +180,6 @@ int main(int argc,char *argv[])
for (i=optind;i<argc;i++)
{
- BOOL bcast = True;
int retries = 2;
char *p;
struct in_addr ip;
@@ -203,12 +210,11 @@ int main(int argc,char *argv[])
if (p) {
*p = 0;
sscanf(p+1,"%x",&lookup_type);
- bcast = False;
retries = 1;
}
- if (name_query(ServerFD,lookup,lookup_type,bcast,True,
- bcast_addr,&ip,NULL))
+ if (name_query(ServerFD,lookup,lookup_type,use_bcast,True,
+ bcast_addr,&ip,NULL))
{
printf("%s %s\n",inet_ntoa(ip),lookup);