summaryrefslogtreecommitdiff
path: root/source3/nameserv.c
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>1996-08-21 08:30:29 +0000
committerAndrew Tridgell <tridge@samba.org>1996-08-21 08:30:29 +0000
commit044b403a9acc74a6af076e6e254b0b974346218b (patch)
tree1a0d5eccdea2ec952ef3cdb1167c6c28fb72d24d /source3/nameserv.c
parentac1f8b11dc22115cdddcaaf2fc17a35e45562040 (diff)
downloadsamba-044b403a9acc74a6af076e6e254b0b974346218b.tar.gz
samba-044b403a9acc74a6af076e6e254b0b974346218b.tar.bz2
samba-044b403a9acc74a6af076e6e254b0b974346218b.zip
- bit a bit manipulation bug in find_name_search()
- add the * and __SAMBA__ names to all subnets - sort the name status reply list and remove duplicate entries. (This used to be commit 04353a9479c01322e34b2f59330fd74a759f6869)
Diffstat (limited to 'source3/nameserv.c')
-rw-r--r--source3/nameserv.c27
1 files changed, 13 insertions, 14 deletions
diff --git a/source3/nameserv.c b/source3/nameserv.c
index 26c2f330da..c8bbb52811 100644
--- a/source3/nameserv.c
+++ b/source3/nameserv.c
@@ -160,11 +160,7 @@ void add_my_name_entry(struct subnet_record *d,char *name,int type,int nb_flags)
**************************************************************************/
void add_my_names(void)
{
- BOOL wins = lp_wins_support();
struct subnet_record *d;
-
- struct in_addr ip = ipzero;
-
/* each subnet entry, including WINS pseudo-subnet, has SELF names */
/* XXXX if there was a transport layer added to samba (ipx/spx etc) then
@@ -173,20 +169,23 @@ void add_my_names(void)
for (d = subnetlist; d; d = d->next)
{
- add_my_name_entry(d, myname,0x20,nb_type|NB_ACTIVE);
- add_my_name_entry(d, myname,0x03,nb_type|NB_ACTIVE);
- add_my_name_entry(d, myname,0x00,nb_type|NB_ACTIVE);
- add_my_name_entry(d, myname,0x1f,nb_type|NB_ACTIVE);
+ BOOL wins = lp_wins_support() && ip_equal(d->bcast_ip,ipgrp);
+ add_my_name_entry(d, myname,0x20,nb_type|NB_ACTIVE);
+ add_my_name_entry(d, myname,0x03,nb_type|NB_ACTIVE);
+ add_my_name_entry(d, myname,0x00,nb_type|NB_ACTIVE);
+ add_my_name_entry(d, myname,0x1f,nb_type|NB_ACTIVE);
+
/* these names are added permanently (ttl of zero) and will NOT be
refreshed with the WINS server */
- add_netbios_entry(d,"*",0x0,nb_type|NB_ACTIVE,0,SELF,ip,False,wins);
- add_netbios_entry(d,"__SAMBA__",0x20,nb_type|NB_ACTIVE,0,SELF,ip,False,wins);
- add_netbios_entry(d,"__SAMBA__",0x00,nb_type|NB_ACTIVE,0,SELF,ip,False,wins);
-
+ add_netbios_entry(d,"*",0x0,nb_type|NB_ACTIVE,0,SELF,d->myip,False,wins);
+ add_netbios_entry(d,"*",0x20,nb_type|NB_ACTIVE,0,SELF,d->myip,False,wins);
+ add_netbios_entry(d,"__SAMBA__",0x20,nb_type|NB_ACTIVE,0,SELF,d->myip,False,wins);
+ add_netbios_entry(d,"__SAMBA__",0x00,nb_type|NB_ACTIVE,0,SELF,d->myip,False,wins);
+
if (lp_domain_logons()) {
- /* XXXX the 0x1c is apparently something to do with domain logons */
- add_my_name_entry(d, lp_workgroup(),0x1c,nb_type|NB_ACTIVE|NB_GROUP);
+ /* XXXX the 0x1c is apparently something to do with domain logons */
+ add_my_name_entry(d, lp_workgroup(),0x1c,nb_type|NB_ACTIVE|NB_GROUP);
}
}
if (lp_domain_master() && (d = find_subnet(ipgrp)))