[SCM] Samba Shared Repository - branch v3-2-test updated - initial-v3-2-test-2164-g243bdae

Günther Deschner gd at samba.org
Wed Feb 13 09:24:38 GMT 2008


The branch, v3-2-test has been updated
       via  243bdaeea7900ab6a65edfda877e8c225ec7b213 (commit)
      from  9fca3ca37eaf10c24f852e854dd28b7155c3e536 (commit)

http://gitweb.samba.org/?samba.git;a=shortlog;h=v3-2-test


- Log -----------------------------------------------------------------
commit 243bdaeea7900ab6a65edfda877e8c225ec7b213
Author: Günther Deschner <gd at samba.org>
Date:   Wed Feb 13 10:23:45 2008 +0100

    Use pidl for _netr_NetrEnumerateTrustedDomains().
    
    This call is completely broken. For now, just make sure that we return the exact same
    data as before the conversion to pidl.
    
    Guenther

-----------------------------------------------------------------------

Summary of changes:
 source/rpc_server/srv_netlog.c    |   46 +++++++++++++++++-------------------
 source/rpc_server/srv_netlog_nt.c |   32 +++++++++++--------------
 2 files changed, 36 insertions(+), 42 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/rpc_server/srv_netlog.c b/source/rpc_server/srv_netlog.c
index 30ef02b..4f0a014 100644
--- a/source/rpc_server/srv_netlog.c
+++ b/source/rpc_server/srv_netlog.c
@@ -28,6 +28,27 @@
 #undef DBGC_CLASS
 #define DBGC_CLASS DBGC_RPC_SRV
 
+/*******************************************************************
+ ********************************************************************/
+
+static bool proxy_netr_call(pipes_struct *p, uint8 opnum)
+{
+	struct api_struct *fns;
+	int n_fns;
+
+	netlogon_get_pipe_fns(&fns, &n_fns);
+
+	if (opnum >= n_fns) {
+		return false;
+	}
+
+	if (fns[opnum].opnum != opnum) {
+		smb_panic("NETLOGON function table not sorted");
+	}
+
+	return fns[opnum].fn(p);
+}
+
 /*************************************************************************
  api_net_req_chal:
  *************************************************************************/
@@ -218,30 +239,7 @@ static bool api_net_sam_logon(pipes_struct *p)
 
 static bool api_net_trust_dom_list(pipes_struct *p)
 {
-	NET_Q_TRUST_DOM_LIST q_u;
-	NET_R_TRUST_DOM_LIST r_u;
-	prs_struct *data = &p->in_data.data;
-	prs_struct *rdata = &p->out_data.rdata;
-
-	ZERO_STRUCT(q_u);
-	ZERO_STRUCT(r_u);
-
-	/* grab the lsa trusted domain list query... */
-	if(!net_io_q_trust_dom("", &q_u, data, 0)) {
-		DEBUG(0,("api_net_trust_dom_list: Failed to unmarshall NET_Q_TRUST_DOM_LIST.\n"));
-		return False;
-	}
-
-	/* construct reply. */
-	r_u.status = _net_trust_dom_list(p, &q_u, &r_u);
-
-	/* store the response in the SMB stream */
-	if(!net_io_r_trust_dom("", &r_u, rdata, 0)) {
-		DEBUG(0,("net_reply_trust_dom_list: Failed to marshall NET_R_TRUST_DOM_LIST.\n"));
-		return False;
-	}
-
-	return True;
+	return proxy_netr_call(p, NDR_NETR_NETRENUMERATETRUSTEDDOMAINS);
 }
 
 /*************************************************************************
diff --git a/source/rpc_server/srv_netlog_nt.c b/source/rpc_server/srv_netlog_nt.c
index 3a7075e..528a339 100644
--- a/source/rpc_server/srv_netlog_nt.c
+++ b/source/rpc_server/srv_netlog_nt.c
@@ -145,22 +145,28 @@ NTSTATUS _net_logon_ctrl2(pipes_struct *p, NET_Q_LOGON_CTRL2 *q_u, NET_R_LOGON_C
 }
 
 /*************************************************************************
- net_reply_trust_dom_list:
+ _netr_NetrEnumerateTrustedDomains
  *************************************************************************/
 
-NTSTATUS _net_trust_dom_list(pipes_struct *p, NET_Q_TRUST_DOM_LIST *q_u, NET_R_TRUST_DOM_LIST *r_u)
+WERROR _netr_NetrEnumerateTrustedDomains(pipes_struct *p,
+					 struct netr_NetrEnumerateTrustedDomains *r)
 {
-	const char *trusted_domain = "test_domain";
-	uint32 num_trust_domains = 1;
+	struct netr_Blob trusted_domains_blob;
+	DATA_BLOB blob;
 
-	DEBUG(6,("_net_trust_dom_list: %d\n", __LINE__));
+	DEBUG(6,("_netr_NetrEnumerateTrustedDomains: %d\n", __LINE__));
 
 	/* set up the Trusted Domain List response */
-	init_r_trust_dom(r_u, num_trust_domains, trusted_domain);
 
-	DEBUG(6,("_net_trust_dom_list: %d\n", __LINE__));
+	blob = data_blob_talloc_zero(p->mem_ctx, 2);
+	trusted_domains_blob.data = blob.data;
+	trusted_domains_blob.length = blob.length;
 
-	return r_u->status;
+	DEBUG(6,("_netr_NetrEnumerateTrustedDomains: %d\n", __LINE__));
+
+	*r->out.trusted_domains_blob = trusted_domains_blob;
+
+	return WERR_OK;
 }
 
 /***********************************************************************************
@@ -1331,16 +1337,6 @@ WERROR _netr_LogonControl2Ex(pipes_struct *p,
 /****************************************************************
 ****************************************************************/
 
-WERROR _netr_NetrEnumerateTrustedDomains(pipes_struct *p,
-					 struct netr_NetrEnumerateTrustedDomains *r)
-{
-	p->rng_fault_state = true;
-	return WERR_NOT_SUPPORTED;
-}
-
-/****************************************************************
-****************************************************************/
-
 WERROR _netr_DsRGetDCName(pipes_struct *p,
 			  struct netr_DsRGetDCName *r)
 {


-- 
Samba Shared Repository


More information about the samba-cvs mailing list