r10610: forgot one file in the last commit:
authorStefan Metzmacher <metze@samba.org>
Thu, 29 Sep 2005 14:02:57 +0000 (14:02 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 18:39:12 +0000 (13:39 -0500)
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)

source4/librpc/idl/winsrepl.idl

index 8adc3c9b25174f071cdd9c0f79531e08d4625b7b..c159d258de4c0ccb09a036c9c32a94c1bff1764c 100644 (file)
@@ -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;