svn commit: samba r3917 - in branches/SAMBA_4_0/source: librpc/idl rpc_server/lsa torture/rpc

abartlet at samba.org abartlet at samba.org
Tue Nov 23 00:31:00 GMT 2004


Author: abartlet
Date: 2004-11-23 00:31:00 +0000 (Tue, 23 Nov 2004)
New Revision: 3917

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=3917

Log:
A few more LSA RPCs found in my wanderings (for trusted domains, these
seem to be 'shortcut' RPCs, that just avoid an open/query pair).

Rename a few others to give us a slightly sensible pattern.

Andrew Bartlett

Modified:
   branches/SAMBA_4_0/source/librpc/idl/lsa.idl
   branches/SAMBA_4_0/source/rpc_server/lsa/dcesrv_lsa.c
   branches/SAMBA_4_0/source/torture/rpc/lsa.c
   branches/SAMBA_4_0/source/torture/rpc/samsync.c


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/idl/lsa.idl
===================================================================
--- branches/SAMBA_4_0/source/librpc/idl/lsa.idl	2004-11-23 00:09:23 UTC (rev 3916)
+++ branches/SAMBA_4_0/source/librpc/idl/lsa.idl	2004-11-23 00:31:00 UTC (rev 3917)
@@ -435,7 +435,7 @@
 	} lsa_TrustedDomainInfo;
 
 	/* Function:       0x1a */
-	NTSTATUS lsa_QueryInfoTrustedDomain(
+	NTSTATUS lsa_QueryTrustedDomainInfo(
 		[in,ref]     policy_handle *trustdom_handle,
 		[in]         uint16         level, 
 		[out,switch_is(level)] lsa_TrustedDomainInfo *info
@@ -544,7 +544,13 @@
 		);
 
 	/* Function:   0x27 */
-	NTSTATUS lsa_QueryTrustDomainInfo();
+	NTSTATUS lsa_QueryTrustedDomainInfoBySid(
+		[in,ref]               policy_handle         *handle,
+		[in,ref]               dom_sid2              *dom_sid,
+		[in]                   uint16                 level, 
+		[out,switch_is(level)] lsa_TrustedDomainInfo *info
+        );
+
 	/* Function:     0x28 */
 	NTSTATUS lsa_SetTrustDomainInfo();
 	/* Function:      0x29 */
@@ -581,7 +587,12 @@
 	NTSTATUS lsa_SetInfoPolicy2();
 
 	/* Function 0x30 */
-	NTSTATUS lsa_QueryTrustedDomainInfoByName();
+	NTSTATUS lsa_QueryTrustedDomainInfoByName(
+		[in,ref]               policy_handle         *handle,
+		[in]                   lsa_String             trusted_domain,
+		[in]                   uint16                 level, 
+		[out,switch_is(level)] lsa_TrustedDomainInfo *info
+		);
 
 	/* Function 0x31 */
 	NTSTATUS lsa_SetTrustedDomainInfoByName();

Modified: branches/SAMBA_4_0/source/rpc_server/lsa/dcesrv_lsa.c
===================================================================
--- branches/SAMBA_4_0/source/rpc_server/lsa/dcesrv_lsa.c	2004-11-23 00:09:23 UTC (rev 3916)
+++ branches/SAMBA_4_0/source/rpc_server/lsa/dcesrv_lsa.c	2004-11-23 00:31:00 UTC (rev 3917)
@@ -613,10 +613,10 @@
 
 
 /* 
-  lsa_QueryInfoTrustedDomain
+  lsa_QueryTrustedDomainInfo
 */
-static NTSTATUS lsa_QueryInfoTrustedDomain(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
-		       struct lsa_QueryInfoTrustedDomain *r)
+static NTSTATUS lsa_QueryTrustedDomainInfo(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
+		       struct lsa_QueryTrustedDomainInfo *r)
 {
 	DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
 }
@@ -743,10 +743,10 @@
 
 
 /* 
-  lsa_QueryTrustDomainInfo
+  lsa_QueryTrustedDomainInfoBySid
 */
-static NTSTATUS lsa_QueryTrustDomainInfo(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
-		       struct lsa_QueryTrustDomainInfo *r)
+static NTSTATUS lsa_QueryTrustedDomainInfoBySid(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
+						struct lsa_QueryTrustedDomainInfoBySid *r)
 {
 	DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
 }

Modified: branches/SAMBA_4_0/source/torture/rpc/lsa.c
===================================================================
--- branches/SAMBA_4_0/source/torture/rpc/lsa.c	2004-11-23 00:09:23 UTC (rev 3916)
+++ branches/SAMBA_4_0/source/torture/rpc/lsa.c	2004-11-23 00:31:00 UTC (rev 3917)
@@ -769,12 +769,12 @@
 		return False;
 	}
 
-	printf("\nTesting OpenTrustedDomain and OpenTrustedDomainByName\n");
+	printf("\nTesting OpenTrustedDomain, OpenTrustedDomainByName and QueryInfoTrustedDomain\n");
 
 	for (i=0; i< domains.count; i++) {
 		struct lsa_OpenTrustedDomain trust;
 		struct lsa_OpenTrustedDomainByName trust_by_name;
-		struct policy_handle trust_handle;
+		struct policy_handle trustdom_handle;
 		struct policy_handle handle2;
 		struct lsa_Close c;
 		int levels [] = {1, 3, 6};
@@ -782,7 +782,7 @@
 		trust.in.handle = handle;
 		trust.in.sid = domains.domains[i].sid;
 		trust.in.access_mask = SEC_RIGHTS_MAXIMUM_ALLOWED;
-		trust.out.trustdom_handle = &trust_handle;
+		trust.out.trustdom_handle = &trustdom_handle;
 
 		status = dcerpc_lsa_OpenTrustedDomain(p, mem_ctx, &trust);
 
@@ -791,33 +791,33 @@
 			return False;
 		}
 
-		c.in.handle = &trust_handle;
+		c.in.handle = &trustdom_handle;
 		c.out.handle = &handle2;
 		
-		for (j=1; j < ARRAY_SIZE(levels); j++) {
-			struct lsa_QueryInfoTrustedDomain q;
+		for (j=0; j < ARRAY_SIZE(levels); j++) {
+			struct lsa_QueryTrustedDomainInfo q;
 			union lsa_TrustedDomainInfo info;
-			q.in.trustdom_handle = &trust_handle;
+			q.in.trustdom_handle = &trustdom_handle;
 			q.in.level = levels[j];
 			q.out.info = &info;
-			status = dcerpc_lsa_QueryInfoTrustedDomain(p, mem_ctx, &q);
+			status = dcerpc_lsa_QueryTrustedDomainInfo(p, mem_ctx, &q);
 			if (!NT_STATUS_IS_OK(status)) {
-				printf("QueryInfoTrustedDomain level %d failed - %s\n", 
-				       j, nt_errstr(status));
+				printf("QueryTrustedDomainInfo level %d failed - %s\n", 
+				       levels[j], nt_errstr(status));
 				ret = False;
 			}
 		}
 		
 		status = dcerpc_lsa_Close(p, mem_ctx, &c);
 		if (!NT_STATUS_IS_OK(status)) {
-			printf("Close of trusted doman failed - %s\n", nt_errstr(status));
+			printf("Close of trusted domain failed - %s\n", nt_errstr(status));
 			return False;
 		}
 
 		trust_by_name.in.handle = handle;
 		trust_by_name.in.name = domains.domains[i].name;
 		trust_by_name.in.access_mask = SEC_RIGHTS_MAXIMUM_ALLOWED;
-		trust_by_name.out.trustdom_handle = &trust_handle;
+		trust_by_name.out.trustdom_handle = &trustdom_handle;
 		
 		status = dcerpc_lsa_OpenTrustedDomainByName(p, mem_ctx, &trust_by_name);
 
@@ -826,14 +826,61 @@
 			return False;
 		}
 
-		c.in.handle = &trust_handle;
+		for (j=0; j < ARRAY_SIZE(levels); j++) {
+			struct lsa_QueryTrustedDomainInfo q;
+			union lsa_TrustedDomainInfo info;
+			q.in.trustdom_handle = &trustdom_handle;
+			q.in.level = levels[j];
+			q.out.info = &info;
+			status = dcerpc_lsa_QueryTrustedDomainInfo(p, mem_ctx, &q);
+			if (!NT_STATUS_IS_OK(status)) {
+				printf("QueryTrustedDomainInfo level %d failed - %s\n", 
+				       levels[j], nt_errstr(status));
+				ret = False;
+			}
+		}
+		
+		c.in.handle = &trustdom_handle;
 		c.out.handle = &handle2;
 
 		status = dcerpc_lsa_Close(p, mem_ctx, &c);
 		if (!NT_STATUS_IS_OK(status)) {
-			printf("Close of trusted doman failed - %s\n", nt_errstr(status));
+			printf("Close of trusted domain failed - %s\n", nt_errstr(status));
 			return False;
 		}
+
+		for (j=0; j < ARRAY_SIZE(levels); j++) {
+			struct lsa_QueryTrustedDomainInfoBySid q;
+			union lsa_TrustedDomainInfo info;
+			q.in.handle  = handle;
+			q.in.dom_sid = domains.domains[i].sid;
+			q.in.level   = levels[j];
+			q.out.info   = &info;
+			status = dcerpc_lsa_QueryTrustedDomainInfoBySid(p, mem_ctx, &q);
+			if (!NT_STATUS_IS_OK(status)) {
+				printf("QueryTrustedDomainInfoBySid level %d failed - %s\n", 
+				       levels[j], nt_errstr(status));
+				ret = False;
+			}
+		}
+		
+		for (j=0; j < ARRAY_SIZE(levels); j++) {
+			struct lsa_QueryTrustedDomainInfoByName q;
+			union lsa_TrustedDomainInfo info;
+			q.in.handle         = handle;
+			q.in.trusted_domain = domains.domains[i].name;
+			q.in.level          = levels[j];
+			q.out.info          = &info;
+			status = dcerpc_lsa_QueryTrustedDomainInfoByName(p, mem_ctx, &q);
+			if (!NT_STATUS_IS_OK(status)) {
+				printf("QueryTrustedDomainInfoByName level %d failed - %s\n", 
+				       levels[j], nt_errstr(status));
+				ret = False;
+			}
+		}
+		
+		
+
 	}
 
 	return ret;

Modified: branches/SAMBA_4_0/source/torture/rpc/samsync.c
===================================================================
--- branches/SAMBA_4_0/source/torture/rpc/samsync.c	2004-11-23 00:09:23 UTC (rev 3916)
+++ branches/SAMBA_4_0/source/torture/rpc/samsync.c	2004-11-23 00:31:00 UTC (rev 3917)
@@ -781,7 +781,7 @@
 	struct samsync_trusted_domain *new = talloc_p(samsync_state, struct samsync_trusted_domain);
 	struct lsa_OpenTrustedDomain t;
 	struct policy_handle trustdom_handle;
-	struct lsa_QueryInfoTrustedDomain q;
+	struct lsa_QueryTrustedDomainInfo q;
 	union lsa_TrustedDomainInfo *info[4];
 	int levels [] = {1, 3};
 	int i;
@@ -803,7 +803,7 @@
 	for (i=0; i< ARRAY_SIZE(levels); i++) {
 		q.in.trustdom_handle = &trustdom_handle;
 		q.in.level = levels[i];
-		status = dcerpc_lsa_QueryInfoTrustedDomain(samsync_state->p_lsa, mem_ctx, &q);
+		status = dcerpc_lsa_QueryTrustedDomainInfo(samsync_state->p_lsa, mem_ctx, &q);
 		if (!NT_STATUS_IS_OK(status)) {
 			printf("QueryInfoTrustedDomain level %d failed - %s\n", 
 			       levels[i], nt_errstr(status));



More information about the samba-cvs mailing list