summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2005-12-22 08:27:10 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:47:36 -0500
commitaa682976cde98a2ea526db84beb71f99224906fb (patch)
treef7e899d6e403860787ee12e7a5a5238fa3c7ab89
parent8b7387ee13ae50685989dd63f64711f2977dc887 (diff)
downloadsamba-aa682976cde98a2ea526db84beb71f99224906fb.tar.gz
samba-aa682976cde98a2ea526db84beb71f99224906fb.tar.bz2
samba-aa682976cde98a2ea526db84beb71f99224906fb.zip
r12425: match w2k3 and store 0x1D names when they're registered as group name,
but queries still give not found metze (This used to be commit 2e69a7cc21d796e091127c71c0234f9cd09543fd)
-rw-r--r--source4/nbt_server/wins/winsserver.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/source4/nbt_server/wins/winsserver.c b/source4/nbt_server/wins/winsserver.c
index 4c4619b5c8..6e2d470a1e 100644
--- a/source4/nbt_server/wins/winsserver.c
+++ b/source4/nbt_server/wins/winsserver.c
@@ -183,9 +183,12 @@ static void nbtd_winsserver_register(struct nbt_name_socket *nbtsock,
enum wrepl_name_type new_type = wrepl_type(nb_flags, name, mhomed);
struct winsdb_addr *winsdb_addr = NULL;
- /* as a special case, the local master browser name is always accepted
- for registration, but never stored */
- if (name->type == NBT_NAME_MASTER) {
+ /*
+ * as a special case, the local master browser name is always accepted
+ * for registration, but never stored, but w2k3 stores it if it's registered
+ * as a group name, (but a query for the 0x1D name still returns not found!)
+ */
+ if (name->type == NBT_NAME_MASTER && !(nb_flags & NBT_NM_GROUP)) {
rcode = NBT_RCODE_OK;
goto done;
}
@@ -328,6 +331,10 @@ static void nbtd_winsserver_query(struct nbt_name_socket *nbtsock,
const char **addresses;
uint16_t nb_flags = 0; /* TODO: ... */
+ if (name->type == NBT_NAME_MASTER) {
+ goto notfound;
+ }
+
status = winsdb_lookup(winssrv->wins_db, name, packet, &rec);
if (!NT_STATUS_IS_OK(status)) {
goto notfound;