From 1b259ab003430bc38234c893f2fbbfb30cc7afa0 Mon Sep 17 00:00:00 2001 From: Gerald Carter Date: Fri, 17 Oct 2003 16:27:26 +0000 Subject: [PATCH] * fix some compile warnings in the gums code * add server support for DsEnumerateDomainTrusts() (This used to be commit 06bacf6e3434db5bd09b48f84206441712e69a63) --- source3/passdb/pdb_gums.c | 2 ++ source3/rpc_server/srv_netlog.c | 37 +++++++++++++++++++++++++++++- source3/rpc_server/srv_netlog_nt.c | 14 +++++++++++ source3/sam/gums_helper.c | 2 -- 4 files changed, 52 insertions(+), 3 deletions(-) diff --git a/source3/passdb/pdb_gums.c b/source3/passdb/pdb_gums.c index dd6e682452b..caf98e648a1 100644 --- a/source3/passdb/pdb_gums.c +++ b/source3/passdb/pdb_gums.c @@ -286,6 +286,8 @@ static NTSTATUS gums_getsampwrid (struct pdb_methods *methods, sid_copy(&sid, get_global_sam_sid()); sid_append_rid(&sid, rid); gums_getsampwsid(methods, account, &sid); + + return NT_STATUS_OK; } diff --git a/source3/rpc_server/srv_netlog.c b/source3/rpc_server/srv_netlog.c index 9c10d86379d..0ef9b088a91 100644 --- a/source3/rpc_server/srv_netlog.c +++ b/source3/rpc_server/srv_netlog.c @@ -317,6 +317,40 @@ static BOOL api_net_logon_ctrl(pipes_struct *p) return True; } +/************************************************************************* + api_ds_enum_dom_trusts: + *************************************************************************/ + +static BOOL api_ds_enum_dom_trusts(pipes_struct *p) +{ + DS_Q_ENUM_DOM_TRUSTS q_u; + DS_R_ENUM_DOM_TRUSTS r_u; + + prs_struct *data = &p->in_data.data; + prs_struct *rdata = &p->out_data.rdata; + + ZERO_STRUCT(q_u); + ZERO_STRUCT(r_u); + + DEBUG(6,("api_ds_enum_dom_trusts\n")); + + if ( !ds_io_q_enum_domain_trusts("", data, 0, &q_u) ) { + DEBUG(0,("api_ds_enum_domain_trusts: Failed to unmarshall DS_Q_ENUM_DOM_TRUSTS.\n")); + return False; + } + + r_u.status = _ds_enum_dom_trusts(p, &q_u, &r_u); + + if ( !ds_io_r_enum_domain_trusts("", rdata, 0, &r_u) ) { + DEBUG(0,("api_ds_enum_domain_trusts: Failed to marshall DS_R_ENUM_DOM_TRUSTS.\n")); + return False; + } + + DEBUG(6,("api_ds_enum_dom_trusts\n")); + + return True; +} + /******************************************************************* array of \PIPE\NETLOGON operations ********************************************************************/ @@ -330,7 +364,8 @@ static struct api_struct api_net_cmds [] = { "NET_SAMLOGOFF" , NET_SAMLOGOFF , api_net_sam_logoff }, { "NET_LOGON_CTRL2" , NET_LOGON_CTRL2 , api_net_logon_ctrl2 }, { "NET_TRUST_DOM_LIST", NET_TRUST_DOM_LIST, api_net_trust_dom_list }, - { "NET_LOGON_CTRL" , NET_LOGON_CTRL , api_net_logon_ctrl } + { "NET_LOGON_CTRL" , NET_LOGON_CTRL , api_net_logon_ctrl }, + { "DS_ENUM_DOM_TRUSTS", DS_ENUM_DOM_TRUSTS, api_ds_enum_dom_trusts } }; void netlog_get_pipe_fns( struct api_struct **fns, int *n_fns ) diff --git a/source3/rpc_server/srv_netlog_nt.c b/source3/rpc_server/srv_netlog_nt.c index 602cd7d2d50..66fa6e7678d 100644 --- a/source3/rpc_server/srv_netlog_nt.c +++ b/source3/rpc_server/srv_netlog_nt.c @@ -762,4 +762,18 @@ NTSTATUS _net_sam_logon(pipes_struct *p, NET_Q_SAM_LOGON *q_u, NET_R_SAM_LOGON * return status; } +/************************************************************************* + _ds_enum_dom_trusts + *************************************************************************/ +NTSTATUS _ds_enum_dom_trusts(pipes_struct *p, DS_Q_ENUM_DOM_TRUSTS *q_u, + DS_R_ENUM_DOM_TRUSTS *r_u) +{ + NTSTATUS status = NT_STATUS_OK; + /* We just return zero trusts for now. At least that way we're + consistent with NetTrustedDomainList which is what the fallback + for this function is. Both of these functions need to be + reworked. */ + + return status; +} diff --git a/source3/sam/gums_helper.c b/source3/sam/gums_helper.c index 15486d094c6..5bbd054be14 100644 --- a/source3/sam/gums_helper.c +++ b/source3/sam/gums_helper.c @@ -173,7 +173,6 @@ NTSTATUS gums_make_domain(DOM_SID *sid, const char *name, const char *descriptio ret = fns->set_object(go); -done: gums_destroy_object(&go); return ret; } @@ -208,7 +207,6 @@ NTSTATUS gums_make_alias(DOM_SID *sid, const char *name, const char *description ret = fns->set_object(go); -done: gums_destroy_object(&go); return ret; } -- 2.34.1