summaryrefslogtreecommitdiff
path: root/source4/librpc/idl
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2005-09-29 14:02:57 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:39:12 -0500
commitc91fa5c504b05adb56cc645ad1fa82d5e73ec42e (patch)
tree5b103d4b87602aea4f0c7184432278e66738b01b /source4/librpc/idl
parent08f16292a0cfab57c484661c1f05e1a49ec06942 (diff)
downloadsamba-c91fa5c504b05adb56cc645ad1fa82d5e73ec42e.tar.gz
r10610: forgot one file in the last commit:
make wrepl_nbt_name a scalar type that is another wire representation of struct nbt_name give wrepl_name->flags a meaning metze (This used to be commit 5fa13d6c2bd4cff9540ee97b3aa4c8a9c8e51fc5)
Diffstat (limited to 'source4/librpc/idl')
-rw-r--r--source4/librpc/idl/winsrepl.idl42
1 files changed, 37 insertions, 5 deletions
diff --git a/source4/librpc/idl/winsrepl.idl b/source4/librpc/idl/winsrepl.idl
index 8adc3c9b251..c159d258de4 100644
--- a/source4/librpc/idl/winsrepl.idl
+++ b/source4/librpc/idl/winsrepl.idl
@@ -13,7 +13,8 @@
uuid("0-1-2-3-4"),
version(0.0),
pointer_default(unique),
- pointer_default_top(unique)
+ pointer_default_top(unique),
+ depends(nbt)
]
interface wrepl
{
@@ -34,11 +35,42 @@ interface wrepl
[case(2)] wrepl_address_list addresses;
} wrepl_addresses;
+ typedef [enum8bit] enum {
+ WREPL_TYPE_UNIQUE = 0x0,
+ WREPL_TYPE_GROUP = 0x1,
+ WREPL_TYPE_SGROUP = 0x2,
+ WREPL_TYPE_MHOMED = 0x3
+ } wrepl_name_type;
+
+ typedef [enum8bit] enum {
+ WREPL_STATE_ACTIVE = 0x0,
+ WREPL_STATE_RELEASED = 0x1,
+ WREPL_STATE_TOMBSTONE = 0x2,
+ WREPL_STATE_RESERVED = 0x3
+ } wrepl_name_state;
+
+ typedef [bitmap32bit] bitmap {
+ WREPL_FLAGS_RECORD_TYPE = 0x00000003,
+ WREPL_FLAGS_RECORD_STATE = 0x0000000C,
+ WREPL_FLAGS_0x00000010 = 0x00000010,
+ WREPL_FLAGS_NODE_TYPE = 0x00000060,
+ WREPL_FLAGS_IS_STATIC = 0x00000080
+ } wrepl_flags;
+
+ typedef [v1_enum] enum {
+ WREPL_GROUP_FLAG_NO_GROUP = 0x00000000,
+ WREPL_GROUP_FLAG_IS_GROUP = 0x00000001
+ } wrepl_group_flag;
+
+#define WREPL_IS_GROUP(flags) (\
+ ((((flags) & WREPL_FLAGS_RECORD_TYPE) == WREPL_TYPE_GROUP)|| \
+ (((flags) & WREPL_FLAGS_RECORD_TYPE) == WREPL_TYPE_SGROUP))\
+ ? WREPL_GROUP_FLAG_IS_GROUP : WREPL_GROUP_FLAG_NO_GROUP)
+
typedef struct {
- uint32 name_len;
- uint8 name[name_len];
- uint32 flags;
- [flag(NDR_LITTLE_ENDIAN)] uint32 group_flag;
+ wrepl_nbt_name name;
+ wrepl_flags flags;
+ [flag(NDR_LITTLE_ENDIAN),value(WREPL_IS_GROUP(flags))] wrepl_group_flag is_group;
udlongr id;
[switch_is(flags & 2)] wrepl_addresses addresses;
ipv4address unknown;