diff options
author | Andrew Bartlett <abartlet@samba.org> | 2006-08-31 08:22:13 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 14:16:57 -0500 |
commit | e905fed4e03a50f8c17b9ff0726fccc9558ca8c4 (patch) | |
tree | d9c71252d8db4657f0d50513c6cee6d7293e6125 /source4/librpc | |
parent | 25f9e52a5d7a7dce7c98a1f27c9b38ada650d343 (diff) | |
download | samba-e905fed4e03a50f8c17b9ff0726fccc9558ca8c4.tar.gz samba-e905fed4e03a50f8c17b9ff0726fccc9558ca8c4.tar.bz2 samba-e905fed4e03a50f8c17b9ff0726fccc9558ca8c4.zip |
r17956: LSA Cleanup!
This commit cleans up a number of aspects of the LSA interface.
Firstly, we do 2 simple searches on opening the LSA policy, to obtain
the basic information we need. This also avoids us searching for
dnsDomain (an invented attribute).
While I was at it, I added and tested new LSA calls, including the
enumTrustedDomainsEx call. I have also merged the identical structures
lsa_DomainInformation and lsa_DomainList.
Also in this commit: Fix netlogon use of uninitialised variables.
Andrew Bartlett
(This used to be commit 3f3fa7f466df56612064029143fbae8effb668aa)
Diffstat (limited to 'source4/librpc')
-rw-r--r-- | source4/librpc/idl/lsa.idl | 56 |
1 files changed, 37 insertions, 19 deletions
diff --git a/source4/librpc/idl/lsa.idl b/source4/librpc/idl/lsa.idl index 0953c6d025..3c05ab2e93 100644 --- a/source4/librpc/idl/lsa.idl +++ b/source4/librpc/idl/lsa.idl @@ -279,14 +279,9 @@ /*************************************************/ /* Function: 0x0c */ - typedef struct { - lsa_StringLarge name; - dom_sid2 *sid; - } lsa_TrustInformation; - NTSTATUS lsa_CreateTrustedDomain( [in] policy_handle *handle, - [in] lsa_TrustInformation *info, + [in] lsa_DomainInfo *info, [in] uint32 access_mask, [out] policy_handle *trustdom_handle ); @@ -299,13 +294,8 @@ const int LSA_ENUM_TRUST_DOMAIN_MULTIPLIER = 60; typedef struct { - lsa_StringLarge name; - dom_sid2 *sid; - } lsa_DomainInformation; - - typedef struct { uint32 count; - [size_is(count)] lsa_DomainInformation *domains; + [size_is(count)] lsa_DomainInfo *domains; } lsa_DomainList; NTSTATUS lsa_EnumTrustDom ( @@ -341,10 +331,11 @@ [size_is(count)] lsa_TranslatedSid *sids; } lsa_TransSidArray; + const int LSA_REF_DOMAIN_LIST_MULTIPLIER = 32; typedef struct { [range(0,1000)] uint32 count; - [size_is(count)] lsa_TrustInformation *domains; - uint32 max_count; + [size_is(count)] lsa_DomainInfo *domains; + uint32 max_size; } lsa_RefDomainList; NTSTATUS lsa_LookupNames ( @@ -674,9 +665,13 @@ ); /* Function: 0x28 */ - NTSTATUS lsa_SetTrustDomainInfo(); + NTSTATUS lsa_SetTrustedDomainInfo(); /* Function: 0x29 */ - NTSTATUS lsa_DeleteTrustDomain(); + NTSTATUS lsa_DeleteTrustedDomain( + [in] policy_handle *handle, + [in] dom_sid2 *dom_sid + ); + /* Function: 0x2a */ NTSTATUS lsa_StorePrivateData(); /* Function: 0x2b */ @@ -725,17 +720,40 @@ [out,unique,switch_is(level)] lsa_TrustedDomainInfo *info ); + /**********************/ /* Function 0x31 */ - NTSTATUS lsa_SetTrustedDomainInfoByName(); + NTSTATUS lsa_SetTrustedDomainInfoByName( + [in] policy_handle *handle, + [in] lsa_String trusted_domain, + [in] lsa_TrustDomInfoEnum level, + [in,unique,switch_is(level)] lsa_TrustedDomainInfo *info + ); /* Function 0x32 */ - NTSTATUS lsa_EnumTrustedDomainsEx(); + + /* w2k3 treats max_size as max_domains*82 */ + const int LSA_ENUM_TRUST_DOMAIN_EX_MULTIPLIER = 82; + + typedef struct { + uint32 count; + [size_is(count)] lsa_TrustDomainInfoInfoEx *domains; + } lsa_DomainListEx; + + NTSTATUS lsa_EnumTrustedDomainsEx ( + [in] policy_handle *handle, + [in,out] uint32 *resume_handle, + [out] lsa_DomainListEx *domains, + [in] uint32 max_size + ); + /* Function 0x33 */ NTSTATUS lsa_CreateTrustedDomainEx(); /* Function 0x34 */ - NTSTATUS lsa_CloseTrustedDomainEx(); + NTSTATUS lsa_CloseTrustedDomainEx( + [in,out] policy_handle *handle + ); /* Function 0x35 */ |