diff options
author | Stefan Metzmacher <metze@samba.org> | 2015-02-04 18:00:44 +0000 |
---|---|---|
committer | Günther Deschner <gd@samba.org> | 2015-03-12 17:13:44 +0100 |
commit | 080db5f60a5536160bcfa9283673ee1a4c4d524e (patch) | |
tree | 17c8bd33fe826637cd8aeb915369b0e9bee9d0be /librpc | |
parent | 701ed1117ba531430cbc845412a2dee79ad62054 (diff) | |
download | samba-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.idl | 56 |
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; |