r12412: - the 0x1E name must be registered as group name
authorStefan Metzmacher <metze@samba.org>
Wed, 21 Dec 2005 23:03:51 +0000 (23:03 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 18:47:35 +0000 (13:47 -0500)
- reject wins registration with a static record in the database

metze

source/nbt_server/wins/winsserver.c

index caf56a277678d2895678f10036ed4957fcba7d18..8b3b09487ee1eb38489e5652714a3afbea444112 100644 (file)
@@ -196,6 +196,12 @@ static void nbtd_winsserver_register(struct nbt_name_socket *nbtsock,
                goto done;
        }
 
+       /* w2k3 refuses 0x1E names with out marked as group */
+       if (name->type == NBT_NAME_BROWSER && !(nb_flags & NBT_NM_GROUP)) {
+               rcode = NBT_RCODE_RFS;
+               goto done;
+       }
+
        status = winsdb_lookup(winssrv->wins_db, name, packet, &rec);
        if (NT_STATUS_EQUAL(NT_STATUS_OBJECT_NAME_NOT_FOUND, status)) {
                rcode = wins_register_new(nbtsock, packet, src, new_type);
@@ -203,6 +209,13 @@ static void nbtd_winsserver_register(struct nbt_name_socket *nbtsock,
        } else if (!NT_STATUS_IS_OK(status)) {
                rcode = NBT_RCODE_SVR;
                goto done;
+       } else if (rec->is_static) {
+               if (rec->type == WREPL_TYPE_GROUP || rec->type == WREPL_TYPE_SGROUP) {
+                       rcode = NBT_RCODE_OK;
+                       goto done;
+               }
+               rcode = NBT_RCODE_ACT;
+               goto done;
        }
 
        if (rec->type == WREPL_TYPE_GROUP) {