From c70a3f6706c9f7ec45ec805052687dd70eb89c6b Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Wed, 27 Dec 2006 17:57:20 +0000 Subject: r20359: level -1 of DsGetDomainControllerInfo gives back a list of all active connections to the Directory Service Agent (DSA) (This can be LDAP or DRSUAPI connections) abartlet: you had just luck by using flag(BIG_ENDIAN) as BIG_ENDIAN is defined in , it should be flag(NDR_BIG_ENDIAN)... metze (This used to be commit c7e639763de1f8ddccfb954227feeaddb7386edc) --- source4/librpc/idl/drsuapi.idl | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) (limited to 'source4/librpc') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 02cafb64c1..3df247a3ef 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -1064,31 +1064,44 @@ interface drsuapi [size_is(count)] drsuapi_DsGetDCInfo2 *array; } drsuapi_DsGetDCInfoCtr2; + /* + * this represents an active connection to the + * Directory System Agent (DSA) + * this can be via LDAP or DRSUAPI + */ typedef struct { - [flag(BIG_ENDIAN)] ipv4address last_logon_ipv4_ip; + [flag(NDR_BIG_ENDIAN)] ipv4address client_ip_address; uint32 unknown2; - uint32 unknown3; + uint32 connection_time; /* in seconds */ uint32 unknown4; uint32 unknown5; uint32 unknown6; - [charset(UTF16),string] uint16 *nt4_account; - } drsuapi_DsGetDCInfo01; + /* + * client_account can be the following: + * "W2K3\Administrator" + * "Administrator@W2K3" + * "cn=Administrator,cn=Users,DC=w2k3,DC=vmnet1,DC=vm,DC=base" + * "" + * or NULL + */ + [charset(UTF16),string] uint16 *client_account; + } drsuapi_DsGetDCConnection01; typedef struct { [range(0,10000)] uint32 count; - [size_is(count)] drsuapi_DsGetDCInfo01 *array; - } drsuapi_DsGetDCInfoCtr01; + [size_is(count)] drsuapi_DsGetDCConnection01 *array; + } drsuapi_DsGetDCConnectionCtr01; typedef [v1_enum] enum { DRSUAPI_DC_INFO_CTR_1 = 1, DRSUAPI_DC_INFO_CTR_2 = 2, - DRSUAPI_DC_INFO_CTR_01 = -1 + DRSUAPI_DC_CONNECTION_CTR_01 = -1 } drsuapi_DsGetDCInfoCtrLevels; typedef [switch_type(int32)] union { [case(DRSUAPI_DC_INFO_CTR_1)] drsuapi_DsGetDCInfoCtr1 ctr1; [case(DRSUAPI_DC_INFO_CTR_2)] drsuapi_DsGetDCInfoCtr2 ctr2; - [case(DRSUAPI_DC_INFO_CTR_01)] drsuapi_DsGetDCInfoCtr01 ctr01; + [case(DRSUAPI_DC_CONNECTION_CTR_01)] drsuapi_DsGetDCConnectionCtr01 ctr01; } drsuapi_DsGetDCInfoCtr; WERROR drsuapi_DsGetDomainControllerInfo( -- cgit