summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source4/libcli/wrepl/winsrepl.c2
-rw-r--r--source4/libcli/wrepl/winsrepl.h6
-rw-r--r--source4/librpc/idl/winsrepl.idl9
-rw-r--r--source4/torture/nbt/winsreplication.c4
4 files changed, 14 insertions, 7 deletions
diff --git a/source4/libcli/wrepl/winsrepl.c b/source4/libcli/wrepl/winsrepl.c
index feeea321b1..aae77feb29 100644
--- a/source4/libcli/wrepl/winsrepl.c
+++ b/source4/libcli/wrepl/winsrepl.c
@@ -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;
diff --git a/source4/libcli/wrepl/winsrepl.h b/source4/libcli/wrepl/winsrepl.h
index 9b9362e4b3..e78f0464e7 100644
--- a/source4/libcli/wrepl/winsrepl.h
+++ b/source4/libcli/wrepl/winsrepl.h
@@ -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;
diff --git a/source4/librpc/idl/winsrepl.idl b/source4/librpc/idl/winsrepl.idl
index c159d258de..4d4d9c912e 100644
--- a/source4/librpc/idl/winsrepl.idl
+++ b/source4/librpc/idl/winsrepl.idl
@@ -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;
diff --git a/source4/torture/nbt/winsreplication.c b/source4/torture/nbt/winsreplication.c
index d3ec5e84d6..68961ab180 100644
--- a/source4/torture/nbt/winsreplication.c
+++ b/source4/torture/nbt/winsreplication.c
@@ -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",