s3-lsa: implement _lsa_QueryTrustedDomainInfoByName().
authorGünther Deschner <gd@samba.org>
Tue, 20 Oct 2009 10:50:33 +0000 (12:50 +0200)
committerGünther Deschner <gd@samba.org>
Wed, 16 Feb 2011 10:44:03 +0000 (11:44 +0100)
Guenther

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

index 5cb383c1d085b488747d4d50ecbd6fe498893d3d..a70293aae51a4fac0111c24da1fd1ee4bb60beb6 100644 (file)
@@ -1838,6 +1838,44 @@ NTSTATUS _lsa_QueryTrustedDomainInfoBySid(struct pipes_struct *p,
        return _lsa_Close(p, &c);
 }
 
+/***************************************************************************
+ _lsa_QueryTrustedDomainInfoByName
+ ***************************************************************************/
+
+NTSTATUS _lsa_QueryTrustedDomainInfoByName(struct pipes_struct *p,
+                                          struct lsa_QueryTrustedDomainInfoByName *r)
+{
+       NTSTATUS status;
+       struct policy_handle trustdom_handle;
+       struct lsa_OpenTrustedDomainByName o;
+       struct lsa_QueryTrustedDomainInfo q;
+       struct lsa_Close c;
+
+       o.in.handle             = r->in.handle;
+       o.in.name.string        = r->in.trusted_domain->string;
+       o.in.access_mask        = SEC_FLAG_MAXIMUM_ALLOWED;
+       o.out.trustdom_handle   = &trustdom_handle;
+
+       status = _lsa_OpenTrustedDomainByName(p, &o);
+       if (!NT_STATUS_IS_OK(status)) {
+               return status;
+       }
+
+       q.in.trustdom_handle    = &trustdom_handle;
+       q.in.level              = r->in.level;
+       q.out.info              = r->out.info;
+
+       status = _lsa_QueryTrustedDomainInfo(p, &q);
+       if (!NT_STATUS_IS_OK(status)) {
+               return status;
+       }
+
+       c.in.handle             = &trustdom_handle;
+       c.out.handle            = &trustdom_handle;
+
+       return _lsa_Close(p, &c);
+}
+
 /***************************************************************************
  ***************************************************************************/
 
@@ -2976,13 +3014,6 @@ NTSTATUS _lsa_SetInfoPolicy2(struct pipes_struct *p,
        return NT_STATUS_NOT_IMPLEMENTED;
 }
 
-NTSTATUS _lsa_QueryTrustedDomainInfoByName(struct pipes_struct *p,
-                                          struct lsa_QueryTrustedDomainInfoByName *r)
-{
-       p->rng_fault_state = True;
-       return NT_STATUS_NOT_IMPLEMENTED;
-}
-
 NTSTATUS _lsa_SetTrustedDomainInfoByName(struct pipes_struct *p,
                                         struct lsa_SetTrustedDomainInfoByName *r)
 {