svn commit: samba r20359 - in branches/SAMBA_4_0/source: librpc/idl
torture/rpc
metze at samba.org
metze at samba.org
Wed Dec 27 17:57:20 GMT 2006
Author: metze
Date: 2006-12-27 17:57:20 +0000 (Wed, 27 Dec 2006)
New Revision: 20359
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=20359
Log:
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 <endian.h>, it should be flag(NDR_BIG_ENDIAN)...
metze
Modified:
branches/SAMBA_4_0/source/librpc/idl/drsuapi.idl
branches/SAMBA_4_0/source/torture/rpc/drsuapi.c
Changeset:
Modified: branches/SAMBA_4_0/source/librpc/idl/drsuapi.idl
===================================================================
--- branches/SAMBA_4_0/source/librpc/idl/drsuapi.idl 2006-12-27 15:36:50 UTC (rev 20358)
+++ branches/SAMBA_4_0/source/librpc/idl/drsuapi.idl 2006-12-27 17:57:20 UTC (rev 20359)
@@ -1064,31 +1064,44 @@
[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 at 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(
Modified: branches/SAMBA_4_0/source/torture/rpc/drsuapi.c
===================================================================
--- branches/SAMBA_4_0/source/torture/rpc/drsuapi.c 2006-12-27 15:36:50 UTC (rev 20358)
+++ branches/SAMBA_4_0/source/torture/rpc/drsuapi.c 2006-12-27 17:57:20 UTC (rev 20359)
@@ -200,8 +200,8 @@
const char *dc_account = talloc_asprintf(mem_ctx, "%s\\%s$",
torture_join_dom_netbios_name(priv->join),
priv->dcinfo.netbios_name);
- for (k=0; k < r.out.ctr.ctr1.count; k++) {
- if (strcasecmp_m(r.out.ctr.ctr01.array[k].nt4_account,
+ for (k=0; k < r.out.ctr.ctr01.count; k++) {
+ if (strcasecmp_m(r.out.ctr.ctr01.array[k].client_account,
dc_account)) {
found = True;
}
More information about the samba-cvs
mailing list