r10627: - use a wrepl specific enum for the node type
authorStefan Metzmacher <metze@samba.org>
Thu, 29 Sep 2005 22:06:24 +0000 (22:06 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 18:39:13 +0000 (13:39 -0500)
- the unknown flag 0x10 seems to mean that this name was localy registered on this
  currently asked server, that flag is not present in replica records

metze
(This used to be commit ba3685c41dc934692bd653f4fe9c0ee451146c40)

source4/libcli/wrepl/winsrepl.c
source4/libcli/wrepl/winsrepl.h
source4/librpc/idl/winsrepl.idl
source4/torture/nbt/winsreplication.c

index feeea321b101817e0b8c6a02dd3d46478f2133e2..aae77feb294b3b8cfafc0b71ccc847923dc64d01 100644 (file)
@@ -707,7 +707,7 @@ NTSTATUS wrepl_pull_names_recv(struct wrepl_request *req,
                talloc_steal(io->out.names, wname->name.scope);
                name->type      = WREPL_NAME_TYPE(wname->flags);
                name->state     = WREPL_NAME_STATE(wname->flags);
-               name->node      = WREPL_NBT_NODE(wname->flags);
+               name->node      = WREPL_NAME_NODE(wname->flags);
                name->is_static = WREPL_NAME_IS_STATIC(wname->flags);
                name->raw_flags = wname->flags;
                name->version_id= wname->id;
index 9b9362e4b33777e63653db4243fa8f955392bb2b..e78f0464e78a2b8f943f3387782f6c50e7a8c110 100644 (file)
@@ -106,11 +106,11 @@ struct wrepl_pull_table {
 
 #define WREPL_NAME_TYPE(flags) (flags & WREPL_FLAGS_RECORD_TYPE)
 #define WREPL_NAME_STATE(flags) ((flags & WREPL_FLAGS_RECORD_STATE)>>2)
-#define WREPL_NBT_NODE(flags) ((flags & WREPL_FLAGS_NODE_TYPE)<<8)
+#define WREPL_NAME_NODE(flags) ((flags & WREPL_FLAGS_NODE_TYPE)>>5)
 #define WREPL_NAME_IS_STATIC(flags) ((flags & WREPL_FLAGS_IS_STATIC)?True:False)
 
 #define WREPL_NAME_FLAGS(type, state, node, is_static) \
-       (type | (state << 2) | (node>>8) | \
+       (type | (state << 2) | (node << 5) | \
         (is_static ? WREPL_FLAGS_IS_STATIC : 0))
 
 /*
@@ -127,7 +127,7 @@ struct wrepl_pull_names {
                        struct nbt_name name;
                        enum wrepl_name_type type;
                        enum wrepl_name_state state;
-                       enum nbt_node_type node;
+                       enum wrepl_name_node node;
                        BOOL is_static;
                        uint32_t raw_flags;
                        uint64_t version_id;
index c159d258de4c0ccb09a036c9c32a94c1bff1764c..4d4d9c912ed7b27b1c9b60902352420dd01a71fa 100644 (file)
@@ -49,10 +49,17 @@ interface wrepl
                WREPL_STATE_RESERVED    = 0x3
        } wrepl_name_state;
 
+       typedef [enum8bit] enum {
+               WREPL_NODE_B    = 0x0,
+               WREPL_NODE_P    = 0x1,
+               WREPL_NODE_M    = 0x2,
+               WREPL_NODE_H    = 0x3
+       } wrepl_name_node;
+
        typedef [bitmap32bit] bitmap {
                WREPL_FLAGS_RECORD_TYPE         = 0x00000003,
                WREPL_FLAGS_RECORD_STATE        = 0x0000000C,
-               WREPL_FLAGS_0x00000010          = 0x00000010,
+               WREPL_FLAGS_REGISTERED_LOCAL    = 0x00000010,
                WREPL_FLAGS_NODE_TYPE           = 0x00000060,
                WREPL_FLAGS_IS_STATIC           = 0x00000080
        } wrepl_flags;
index d3ec5e84d67c0d49bca758d06c2c0a2ac7d72c81..68961ab1800b01ab82e24c9b22fd4841d2002855 100644 (file)
@@ -147,9 +147,9 @@ static void display_entry(TALLOC_CTX *mem_ctx, struct wrepl_name *name)
        int i;
 
        printf("%s\n", nbt_name_string(mem_ctx, &name->name));
-       printf("\tTYPE:%u STATE:%u NODE:0x%04X STATIC:%u VERSION_ID: %llu\n",
+       printf("\tTYPE:%u STATE:%u NODE:%u STATIC:%u VERSION_ID: %llu\n",
                name->type, name->state, name->node, name->is_static, name->version_id);
-       printf("\tRAW_FLAGS:0x%08X OWNER: %-15s\n",
+       printf("\tRAW_FLAGS: 0x%08X OWNER: %-15s\n",
                name->raw_flags, name->owner);
        for (i=0;i<name->num_addresses;i++) {
                printf("\tADDR: %-15s OWNER: %-15s\n",