summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2003-01-13 12:54:59 +0000
committerAndrew Bartlett <abartlet@samba.org>2003-01-13 12:54:59 +0000
commit80120a79bc5381d86241b4173f085a00f5bb7e01 (patch)
tree068fe4cabadd7f1885cfc4ace30ad3c8d5d4fda5
parente3293c7181525a069d2006c29792a1a805d93ee0 (diff)
downloadsamba-80120a79bc5381d86241b4173f085a00f5bb7e01.tar.gz
samba-80120a79bc5381d86241b4173f085a00f5bb7e01.tar.bz2
samba-80120a79bc5381d86241b4173f085a00f5bb7e01.zip
Patch from ab, to make findsmb omit -r most of the time.
(original mail follows) -- From: Alexander Bokovoy <a.bokovoy@sam-solutions.net> Greetings! I propose to make an optional argument '-r' for findsmb utility to pass '-r' option to nmblookup optionally and default to omit it. The reason is to have findsmb working more user-friendly in contemporary office environments where Windows 95/98 boxes are rare and also to allow usage of the utility under non-priviledged accounts when Windows95/98 boxes are in minority or even absent in network neighbourhood. An attached patch provides this change for HEAD together with documentation changes. -- / Alexander Bokovoy (This used to be commit d0bebea521e12fb9cef66feecd969216607ef63d)
-rw-r--r--docs/docbook/manpages/findsmb.1.sgml19
-rwxr-xr-xsource3/script/findsmb.in21
2 files changed, 29 insertions, 11 deletions
diff --git a/docs/docbook/manpages/findsmb.1.sgml b/docs/docbook/manpages/findsmb.1.sgml
index fb953b9f25..a246b162b1 100644
--- a/docs/docbook/manpages/findsmb.1.sgml
+++ b/docs/docbook/manpages/findsmb.1.sgml
@@ -40,6 +40,15 @@
<variablelist>
<varlistentry>
+ <term>-r</term>
+ <listitem><para>Controls whether <command>findsmb</command> takes
+ bugs in Windows95 into account when trying to find a Netbios name
+ registered of the remote machine. This option is disabled by default
+ because it is specific to Windows 95 and Windows 95 machines only.
+ If set, <ulink url="nmblookup.1.html"><command>nmblookup</command></ulink>
+ will be called with <constant>-B<constant> option.</para></listitem>
+ </varlistentry>
+ <varlistentry>
<term>subnet broadcast address</term>
<listitem><para>Without this option, <command>findsmb
</command> will probe the subnet of the machine where
@@ -66,15 +75,17 @@
not show any information about the operating system or server
version.</para>
- <para>The command must be run on a system without <ulink
+ <para>The command with <constant>-r</constant> option
+ must be run on a system without <ulink
url="nmbd.8.html"><command>nmbd</command></ulink> running.
If <command>nmbd</command> is running on the system, you will
only get the IP address and the DNS name of the machine. To
get proper responses from Windows 95 and Windows 98 machines,
- the command must be run as root. </para>
+ the command must be run as root and with <constant>-r</constant>
+ option on a machine without <command>nmbd</command> running.</para>
- <para>For example, running <command>findsmb</command> on a machine
- without <command>nmbd</command> running would yield output similar
+ <para>For example, running <command>findsmb</command> without
+ <constant>-r</constant> option set would yield output similar
to the following</para>
<screen><computeroutput>
diff --git a/source3/script/findsmb.in b/source3/script/findsmb.in
index d2aa94591b..5ca1d8082a 100755
--- a/source3/script/findsmb.in
+++ b/source3/script/findsmb.in
@@ -5,7 +5,7 @@
# run as root to get correct info from WIN95 clients.
#
# syntax:
-# findsmb [subnet broadcast address]
+# findsmb [-d|-D] [-r] [subnet broadcast address]
#
# with no agrument it will list machines on the current subnet
#
@@ -13,21 +13,28 @@
# local master browsers for that workgroup. There will be an "*" in front
# of the workgroup name for machines that are the domain master browser for
# that workgroup.
+#
+# Options:
+#
+# -d|-D enable debug
+# -r add -r option to nmblookup when finding netbios name
#
$SAMBABIN = "@prefix@/bin";
-for ($i = 0; $i < 2; $i++) { # test for -d option and broadcast address
+for ($i = 0; $i < 2; $i++) { # test for -d and -r options
$_ = shift;
if (m/-d|-D/) {
$DEBUG = 1;
- } else {
- if ($_) {
- $BCAST = "-B $_";
- }
+ } else (m/-r/) {
+ $R_OPTION = "-r";
}
}
+if ($_) { # set broadcast address if it was specified
+ $BCAST = "-B $_";
+}
+
sub ipsort # do numeric sort on last field of IP address
{
@t1 = split(/\./,$a);
@@ -56,7 +63,7 @@ foreach $ip (@ipaddrs) # loop through each IP address found
# find the netbios names registered by each machine
- open(NMBLOOKUP,"$SAMBABIN/nmblookup -r -A $ip|") ||
+ open(NMBLOOKUP,"$SAMBABIN/nmblookup $R_OPTION -A $ip|") ||
die("Can't get nmb name list.\n");
@nmblookup = <NMBLOOKUP>;
close NMBLOOKUP;