summaryrefslogtreecommitdiff
path: root/source3
diff options
context:
space:
mode:
Diffstat (limited to 'source3')
-rw-r--r--source3/passdb/pdb_gums.c2
-rw-r--r--source3/rpc_server/srv_netlog.c37
-rw-r--r--source3/rpc_server/srv_netlog_nt.c14
-rw-r--r--source3/sam/gums_helper.c2
4 files changed, 52 insertions, 3 deletions
diff --git a/source3/passdb/pdb_gums.c b/source3/passdb/pdb_gums.c
index dd6e682452..caf98e648a 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 9c10d86379..0ef9b088a9 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 602cd7d2d5..66fa6e7678 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 15486d094c..5bbd054be1 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;
}