summaryrefslogtreecommitdiff
path: root/source3/nmbd/nmbd_mynames.c
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>1998-02-24 20:05:39 +0000
committerJeremy Allison <jra@samba.org>1998-02-24 20:05:39 +0000
commit4680e65bb5a6da5131135a155573e1d2592ed1b0 (patch)
tree7e9243354a37bfc231bf329e7dc0a501b8f20926 /source3/nmbd/nmbd_mynames.c
parentcadfca4cf58003518e9afef55b9a36c33f044b3c (diff)
downloadsamba-4680e65bb5a6da5131135a155573e1d2592ed1b0.tar.gz
samba-4680e65bb5a6da5131135a155573e1d2592ed1b0.tar.bz2
samba-4680e65bb5a6da5131135a155573e1d2592ed1b0.zip
Fixed bug reported by Janne.Harju@nmp.nokia.com. When used in broadcast
only mode nmbd was not reporting WORKGROUP<0> and WORKGROUP<1e> names to a unicast node status query (although it was registering these names on the network). Also tidied up code in nmbd_mynames.c so that all known IP addresses are registered in the unicast subnet in this case rather than just the first, as was previously done. Jeremy. (This used to be commit eb71c5edcbb983ed4a1b0f57139bd66b671c67fa)
Diffstat (limited to 'source3/nmbd/nmbd_mynames.c')
-rw-r--r--source3/nmbd/nmbd_mynames.c40
1 files changed, 34 insertions, 6 deletions
diff --git a/source3/nmbd/nmbd_mynames.c b/source3/nmbd/nmbd_mynames.c
index 9441449bed..30804ab807 100644
--- a/source3/nmbd/nmbd_mynames.c
+++ b/source3/nmbd/nmbd_mynames.c
@@ -29,6 +29,7 @@ extern int DEBUGLEVEL;
extern char **my_netbios_names;
extern pstring myname;
extern fstring myworkgroup;
+extern pstring scope;
extern uint16 samba_nb_type; /* Samba's NetBIOS type. */
@@ -97,14 +98,41 @@ Exiting.\n", myworkgroup, subrec->subnet_name));
for (i=0; my_netbios_names[i]; i++)
{
- add_name_to_subnet(unicast_subnet, my_netbios_names[i],0x20,samba_nb_type, PERMANENT_TTL,
- SELF_NAME, 1, &FIRST_SUBNET->myip);
+ for(subrec = FIRST_SUBNET; subrec; subrec = NEXT_SUBNET_EXCLUDING_UNICAST(subrec))
+ {
+ /*
+ * Ensure all the IP addresses are added if we are multihomed.
+ */
+ struct nmb_name nmbname;
+
+ make_nmb_name(&nmbname, my_netbios_names[i],0x20, scope);
+ insert_permanent_name_into_unicast(subrec, &nmbname, samba_nb_type);
+
+ make_nmb_name(&nmbname, my_netbios_names[i],0x3, scope);
+ insert_permanent_name_into_unicast(subrec, &nmbname, samba_nb_type);
+
+ make_nmb_name(&nmbname, my_netbios_names[i],0x0, scope);
+ insert_permanent_name_into_unicast(subrec, &nmbname, samba_nb_type);
+ }
+ }
+
+ /*
+ * Add the WORKGROUP<0> and WORKGROUP<1e> group names to the unicast subnet
+ * also for the same reasons.
+ */
+
+ for(subrec = FIRST_SUBNET; subrec; subrec = NEXT_SUBNET_EXCLUDING_UNICAST(subrec))
+ {
+ /*
+ * Ensure all the IP addresses are added if we are multihomed.
+ */
+ struct nmb_name nmbname;
- add_name_to_subnet(unicast_subnet, my_netbios_names[i],0x3,samba_nb_type, PERMANENT_TTL,
- SELF_NAME, 1, &FIRST_SUBNET->myip);
+ make_nmb_name(&nmbname, myworkgroup, 0x0, scope);
+ insert_permanent_name_into_unicast(subrec, &nmbname, samba_nb_type|NB_GROUP);
- add_name_to_subnet(unicast_subnet, my_netbios_names[i],0x0,samba_nb_type, PERMANENT_TTL,
- SELF_NAME, 1, &FIRST_SUBNET->myip);
+ make_nmb_name(&nmbname, myworkgroup, 0x1e, scope);
+ insert_permanent_name_into_unicast(subrec, &nmbname, samba_nb_type|NB_GROUP);
}
}