svn commit: samba r11288 - in branches/SAMBA_4_0/source: librpc/idl rpc_server/lsa

abartlet at samba.org abartlet at samba.org
Tue Oct 25 12:15:29 GMT 2005


Author: abartlet
Date: 2005-10-25 12:15:29 +0000 (Tue, 25 Oct 2005)
New Revision: 11288

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

Log:
Fill out LSA LookupNames4 and LookupSids3, including a server-side
implementation.

Andrew Bartlett

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


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/idl/lsa.idl
===================================================================
--- branches/SAMBA_4_0/source/librpc/idl/lsa.idl	2005-10-25 12:14:08 UTC (rev 11287)
+++ branches/SAMBA_4_0/source/librpc/idl/lsa.idl	2005-10-25 12:15:29 UTC (rev 11288)
@@ -930,7 +930,16 @@
 		);
 
 	/* Function 0x4d */
-	NTSTATUS lsa_LSARLOOKUPNAMES4();
+	NTSTATUS lsa_LookupNames4(
+		[in,range(0,1000)] uint32 num_names,
+		[in,size_is(num_names)]  lsa_String names[],
+		[out,unique]        lsa_RefDomainList *domains,
+		[in,out] lsa_TransSidArray3 *sids,
+		[in]         uint16 level,
+		[in,out] uint32 *count,
+		[in]         uint32 unknown1,
+		[in]         uint32 unknown2
+		);
 
 	/* Function 0x4e */
 	NTSTATUS lsa_LSAROPENPOLICYSCE();

Modified: branches/SAMBA_4_0/source/rpc_server/lsa/dcesrv_lsa.c
===================================================================
--- branches/SAMBA_4_0/source/rpc_server/lsa/dcesrv_lsa.c	2005-10-25 12:14:08 UTC (rev 11287)
+++ branches/SAMBA_4_0/source/rpc_server/lsa/dcesrv_lsa.c	2005-10-25 12:15:29 UTC (rev 11288)
@@ -2515,23 +2515,18 @@
 
 
 /*
-  lsa_LookupNames3
+  lsa_LookupNames4
 */
-static NTSTATUS lsa_LookupNames3(struct dcesrv_call_state *dce_call,
+static NTSTATUS lsa_LookupNames4(struct dcesrv_call_state *dce_call,
 				 TALLOC_CTX *mem_ctx,
-				 struct lsa_LookupNames3 *r)
+				 struct lsa_LookupNames4 *r)
 {
 	struct lsa_policy_state *state;
-	struct dcesrv_handle *h;
 	int i;
 	NTSTATUS status = NT_STATUS_OK;
 
 	r->out.domains = NULL;
 
-	DCESRV_PULL_HANDLE(h, r->in.handle, LSA_HANDLE_POLICY);
-
-	state = h->data;
-
 	r->out.domains = talloc_zero(mem_ctx,  struct lsa_RefDomainList);
 	if (r->out.domains == NULL) {
 		return NT_STATUS_NO_MEMORY;
@@ -2590,6 +2585,35 @@
 	return status;
 }
 
+/* 
+  lsa_LookupNames3
+*/
+static NTSTATUS lsa_LookupNames3(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
+				 struct lsa_LookupNames3 *r)
+{
+	struct lsa_LookupNames4 r2;
+	NTSTATUS status;
+	struct dcesrv_handle *h;
+	DCESRV_PULL_HANDLE(h, r->in.handle, LSA_HANDLE_POLICY);
+	
+	r2.in.num_names = r->in.num_names;
+	r2.in.names = r->in.names;
+	r2.in.sids = r->in.sids;
+	r2.in.count = r->in.count;
+	r2.in.unknown1 = r->in.unknown1;
+	r2.in.unknown2 = r->in.unknown2;
+	
+	status = lsa_LookupNames4(dce_call, mem_ctx, &r2);
+	if (dce_call->fault_code != 0) {
+		return status;
+	}
+	
+	r->out.domains = r2.out.domains;
+	r->out.sids = r2.out.sids;
+	r->out.count = r2.out.count;
+	return status;
+}
+
 /*
   lsa_LookupNames2
 */
@@ -2861,16 +2885,7 @@
 }
 
 
-/* 
-  lsa_LSARLOOKUPNAMES4 
-*/
-static NTSTATUS lsa_LSARLOOKUPNAMES4(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
-		       struct lsa_LSARLOOKUPNAMES4 *r)
-{
-	DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
-}
 
-
 /* 
   lsa_LSAROPENPOLICYSCE 
 */



More information about the samba-cvs mailing list