From 4d22986541efc052ee7f41dceccfa48471b32fe2 Mon Sep 17 00:00:00 2001 From: Günther Deschner Date: Mon, 19 Oct 2009 19:02:24 +0200 Subject: s3-lsa: implement _lsa_OpenTrustedDomainByName(). MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Guenther Signed-off-by: Günther Deschner --- source3/rpc_server/lsa/srv_lsa_nt.c | 37 ++++++++++++++++++++++++++++++------- 1 file changed, 30 insertions(+), 7 deletions(-) (limited to 'source3') diff --git a/source3/rpc_server/lsa/srv_lsa_nt.c b/source3/rpc_server/lsa/srv_lsa_nt.c index e3b5009e31..6a9d12b652 100644 --- a/source3/rpc_server/lsa/srv_lsa_nt.c +++ b/source3/rpc_server/lsa/srv_lsa_nt.c @@ -1564,6 +1564,36 @@ NTSTATUS _lsa_OpenTrustedDomain(struct pipes_struct *p, r->out.trustdom_handle); } +/*************************************************************************** + _lsa_OpenTrustedDomainByName + ***************************************************************************/ + +NTSTATUS _lsa_OpenTrustedDomainByName(struct pipes_struct *p, + struct lsa_OpenTrustedDomainByName *r) +{ + struct lsa_info *handle = NULL; + struct trustdom_info *info; + NTSTATUS status; + + if (!find_policy_by_hnd(p, r->in.handle, (void **)(void *)&handle)) { + return NT_STATUS_INVALID_HANDLE; + } + + if (handle->type != LSA_HANDLE_POLICY_TYPE) { + return NT_STATUS_INVALID_HANDLE; + } + + status = lsa_lookup_trusted_domain_by_name(p->mem_ctx, + r->in.name.string, + &info); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return _lsa_OpenTrustedDomain_base(p, r->in.access_mask, info, + r->out.trustdom_handle); +} + /*************************************************************************** _lsa_CreateTrustedDomainEx2 ***************************************************************************/ @@ -3193,13 +3223,6 @@ NTSTATUS _lsa_SetDomainInformationPolicy(struct pipes_struct *p, return NT_STATUS_NOT_IMPLEMENTED; } -NTSTATUS _lsa_OpenTrustedDomainByName(struct pipes_struct *p, - struct lsa_OpenTrustedDomainByName *r) -{ - p->rng_fault_state = True; - return NT_STATUS_NOT_IMPLEMENTED; -} - NTSTATUS _lsa_TestCall(struct pipes_struct *p, struct lsa_TestCall *r) { p->rng_fault_state = True; -- cgit