s3-lsa: implement _lsa_OpenTrustedDomainByName().
authorGünther Deschner <gd@samba.org>
Mon, 19 Oct 2009 17:02:24 +0000 (19:02 +0200)
committerGünther Deschner <gd@samba.org>
Wed, 16 Feb 2011 10:44:04 +0000 (11:44 +0100)
Guenther

Signed-off-by: Günther Deschner <gd@samba.org>
source3/rpc_server/lsa/srv_lsa_nt.c

index e3b5009e31b6f3d410b70b941bb15799153f9a17..6a9d12b652ef3cf7406c698a00056c552c4fff95 100644 (file)
@@ -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;