summaryrefslogtreecommitdiff
path: root/source4/nbt_server/wins/winsserver.c
diff options
context:
space:
mode:
Diffstat (limited to 'source4/nbt_server/wins/winsserver.c')
-rw-r--r--source4/nbt_server/wins/winsserver.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/source4/nbt_server/wins/winsserver.c b/source4/nbt_server/wins/winsserver.c
index 8760ffe922..b5c008121b 100644
--- a/source4/nbt_server/wins/winsserver.c
+++ b/source4/nbt_server/wins/winsserver.c
@@ -559,7 +559,7 @@ static void nbtd_winsserver_query(struct nbt_name_socket *nbtsock,
struct winsdb_record *rec_1b = NULL;
const char **addresses;
const char **addresses_1b = NULL;
- uint16_t nb_flags = 0; /* TODO: ... */
+ uint16_t nb_flags = 0;
if (name->type == NBT_NAME_MASTER) {
goto notfound;
@@ -606,6 +606,7 @@ static void nbtd_winsserver_query(struct nbt_name_socket *nbtsock,
if (!addresses) {
goto notfound;
}
+ nb_flags |= NBT_NM_GROUP;
goto found;
}
@@ -642,6 +643,12 @@ static void nbtd_winsserver_query(struct nbt_name_socket *nbtsock,
}
}
+ if (rec->type == WREPL_TYPE_SGROUP) {
+ nb_flags |= NBT_NM_GROUP;
+ } else {
+ nb_flags |= (rec->node <<13);
+ }
+
found:
nbtd_name_query_reply(nbtsock, packet, src, name,
0, nb_flags, addresses);