summaryrefslogtreecommitdiff
path: root/source3/rpc_server
diff options
context:
space:
mode:
authorGünther Deschner <gd@samba.org>2008-02-13 10:23:45 +0100
committerGünther Deschner <gd@samba.org>2008-02-13 10:23:45 +0100
commit3b45ebb1b7dd384b4adc7c9ab6102ce543f643f2 (patch)
tree7dcd9a3bb6cbd4aed19d572f12ead34b47763095 /source3/rpc_server
parent0622fd72a341889fead15a50369f7ed39cc66edc (diff)
downloadsamba-3b45ebb1b7dd384b4adc7c9ab6102ce543f643f2.tar.gz
samba-3b45ebb1b7dd384b4adc7c9ab6102ce543f643f2.tar.bz2
samba-3b45ebb1b7dd384b4adc7c9ab6102ce543f643f2.zip
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 (This used to be commit 243bdaeea7900ab6a65edfda877e8c225ec7b213)
Diffstat (limited to 'source3/rpc_server')
-rw-r--r--source3/rpc_server/srv_netlog.c46
-rw-r--r--source3/rpc_server/srv_netlog_nt.c32
2 files changed, 36 insertions, 42 deletions
diff --git a/source3/rpc_server/srv_netlog.c b/source3/rpc_server/srv_netlog.c
index 30ef02bee8..4f0a0142e5 100644
--- a/source3/rpc_server/srv_netlog.c
+++ b/source3/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/source3/rpc_server/srv_netlog_nt.c b/source3/rpc_server/srv_netlog_nt.c
index 3a7075ecd6..528a33915a 100644
--- a/source3/rpc_server/srv_netlog_nt.c
+++ b/source3/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)
{