diff options
-rw-r--r-- | source4/nbt_server/wins/winsserver.c | 9 |
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); |