summaryrefslogtreecommitdiff
path: root/librpc
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2015-02-04 18:00:44 +0000
committerGünther Deschner <gd@samba.org>2015-03-12 17:13:44 +0100
commit080db5f60a5536160bcfa9283673ee1a4c4d524e (patch)
tree17c8bd33fe826637cd8aeb915369b0e9bee9d0be /librpc
parent701ed1117ba531430cbc845412a2dee79ad62054 (diff)
downloadsamba-080db5f60a5536160bcfa9283673ee1a4c4d524e.tar.gz
lsa.idl: improve idl for lsa_ForestTrust*Record*
The meaning of lsa_ForestTrustRecordFlags is based lsa_ForestTrustRecordType, but the type is not always available so it's not possible to use an union. Signed-off-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Guenther Deschner <gd@samba.org>
Diffstat (limited to 'librpc')
-rw-r--r--librpc/idl/lsa.idl56
1 files changed, 24 insertions, 32 deletions
diff --git a/librpc/idl/lsa.idl b/librpc/idl/lsa.idl
index 2236581948c..9e8d50876f8 100644
--- a/librpc/idl/lsa.idl
+++ b/librpc/idl/lsa.idl
@@ -1255,6 +1255,26 @@ import "misc.idl", "security.idl";
[todo] NTSTATUS lsa_LSARUNREGISTERAUDITEVENT();
/* Function 0x49 */
+ typedef [bitmap32bit,public] bitmap {
+ /* these apply to LSA_FOREST_TRUST_TOP_LEVEL_NAME */
+ LSA_TLN_DISABLED_NEW = 0x00000001,
+ LSA_TLN_DISABLED_ADMIN = 0x00000002,
+ LSA_TLN_DISABLED_CONFLICT = 0x00000004,
+
+ /* these apply to LSA_FOREST_TRUST_DOMAIN_INFO */
+ LSA_SID_DISABLED_ADMIN = 0x00000001,
+ LSA_SID_DISABLED_CONFLICT = 0x00000002,
+ LSA_NB_DISABLED_ADMIN = 0x00000004,
+ LSA_NB_DISABLED_CONFLICT = 0x00000008
+ } lsa_ForestTrustRecordFlags;
+
+ typedef enum {
+ LSA_FOREST_TRUST_TOP_LEVEL_NAME = 0,
+ LSA_FOREST_TRUST_TOP_LEVEL_NAME_EX = 1,
+ LSA_FOREST_TRUST_DOMAIN_INFO = 2,
+ LSA_FOREST_TRUST_RECORD_TYPE_LAST = 3
+ } lsa_ForestTrustRecordType;
+
typedef struct {
[range(0,131072)] uint3264 length;
[size_is(length)] uint8 *data;
@@ -1266,24 +1286,17 @@ import "misc.idl", "security.idl";
lsa_StringLarge netbios_domain_name;
} lsa_ForestTrustDomainInfo;
- typedef [switch_type(uint32)] union {
+ typedef [switch_type(lsa_ForestTrustRecordType)] union {
[case(LSA_FOREST_TRUST_TOP_LEVEL_NAME)] lsa_StringLarge top_level_name;
[case(LSA_FOREST_TRUST_TOP_LEVEL_NAME_EX)] lsa_StringLarge top_level_name_ex;
[case(LSA_FOREST_TRUST_DOMAIN_INFO)] lsa_ForestTrustDomainInfo domain_info;
[default] lsa_ForestTrustBinaryData data;
} lsa_ForestTrustData;
- typedef enum {
- LSA_FOREST_TRUST_TOP_LEVEL_NAME = 0,
- LSA_FOREST_TRUST_TOP_LEVEL_NAME_EX = 1,
- LSA_FOREST_TRUST_DOMAIN_INFO = 2,
- LSA_FOREST_TRUST_RECORD_TYPE_LAST = 3
- } lsa_ForestTrustRecordType;
-
typedef struct {
- uint32 flags;
+ lsa_ForestTrustRecordFlags flags;
lsa_ForestTrustRecordType type;
- hyper time;
+ NTTIME_hyper time;
[switch_is(type)] lsa_ForestTrustData forest_trust_data;
} lsa_ForestTrustRecord;
@@ -1308,31 +1321,10 @@ import "misc.idl", "security.idl";
LSA_FOREST_TRUST_COLLISION_OTHER = 2
} lsa_ForestTrustCollisionRecordType;
- /* if type is CollisionTdo, flags can be */
- typedef [bitmap32bit] bitmap {
- LSA_TLN_DISABLED_NEW = 0x00000001,
- LSA_TLN_DISABLED_ADMIN = 0x00000002,
- LSA_TLN_DISABLED_CONFLICT = 0x00000004
- } lsa_ForestTrustCollisionTDOFlags;
-
- /* if type is CollisionXref, flags can be */
- typedef [bitmap32bit] bitmap {
- LSA_SID_DISABLED_ADMIN = 0x00000001,
- LSA_SID_DISABLED_CONFLICT = 0x00000002,
- LSA_NB_DISABLED_ADMIN = 0x00000004,
- LSA_NB_DISABLED_CONFLICT = 0x00000008
- } lsa_ForestTrustCollisionXrefFlags;
-
- typedef [nodiscriminant] union {
- [case(LSA_FOREST_TRUST_COLLISION_TDO)] lsa_ForestTrustCollisionTDOFlags flags;
- [case(LSA_FOREST_TRUST_COLLISION_XREF)] lsa_ForestTrustCollisionXrefFlags flags;
- [default] uint32 flags;
- } lsa_ForestTrustCollisionFlags;
-
typedef [public] struct {
uint32 index;
lsa_ForestTrustCollisionRecordType type;
- [switch_is(type)] lsa_ForestTrustCollisionFlags flags;
+ lsa_ForestTrustRecordFlags flags;
lsa_String name;
} lsa_ForestTrustCollisionRecord;