diff options
author | Andrew Tridgell <tridge@samba.org> | 1996-08-21 08:30:29 +0000 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 1996-08-21 08:30:29 +0000 |
commit | 044b403a9acc74a6af076e6e254b0b974346218b (patch) | |
tree | 1a0d5eccdea2ec952ef3cdb1167c6c28fb72d24d /source3/namedbname.c | |
parent | ac1f8b11dc22115cdddcaaf2fc17a35e45562040 (diff) | |
download | samba-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/namedbname.c')
-rw-r--r-- | source3/namedbname.c | 36 |
1 files changed, 17 insertions, 19 deletions
diff --git a/source3/namedbname.c b/source3/namedbname.c index 58b62bd0cb..1f16553b0f 100644 --- a/source3/namedbname.c +++ b/source3/namedbname.c @@ -173,27 +173,25 @@ struct name_record *find_name_search(struct subnet_record **d, { if (d == NULL) return NULL; /* bad error! */ - if ((search & FIND_LOCAL) == FIND_LOCAL) - { - if (*d != NULL) - { - struct name_record *n = find_name((*d)->namelist, name, search); - DEBUG(4,("find_name on local: %s %s search %x\n", - namestr(name),inet_ntoa(ip), search)); - if (n) return n; - } - } - - if ((search & FIND_WINS) != FIND_WINS) return NULL; - - /* find WINS subnet record. */ - *d = find_subnet(ipgrp); + if (search & FIND_LOCAL) { + if (*d != NULL) { + struct name_record *n = find_name((*d)->namelist, name, search); + DEBUG(4,("find_name on local: %s %s search %x\n", + namestr(name),inet_ntoa(ip), search)); + if (n) return n; + } + } - if (*d == NULL) return NULL; + if (!(search & FIND_WINS)) return NULL; - DEBUG(4,("find_name on WINS: %s %s search %x\n", - namestr(name),inet_ntoa(ip), search)); - return find_name((*d)->namelist, name, search); + /* find WINS subnet record. */ + *d = find_subnet(ipgrp); + + if (*d == NULL) return NULL; + + DEBUG(4,("find_name on WINS: %s %s search %x\n", + namestr(name),inet_ntoa(ip), search)); + return find_name((*d)->namelist, name, search); } |