Use pidl for _lsa_OpenPolicy2().
authorGünther Deschner <gd@samba.org>
Mon, 4 Feb 2008 20:00:38 +0000 (21:00 +0100)
committerGünther Deschner <gd@samba.org>
Mon, 4 Feb 2008 21:12:40 +0000 (22:12 +0100)
Guenther
(This used to be commit fc29364abe10d3ec249602cb3437e50294f5de76)

source3/rpc_server/srv_lsa.c
source3/rpc_server/srv_lsa_nt.c

index 7a5eca4e0f0d1b1ef1d9892fa22fb3170e292faa..5084bf915cd0b04818cd2eab059c7972992ec322 100644 (file)
@@ -52,29 +52,7 @@ static bool proxy_lsa_call(pipes_struct *p, uint8 opnum)
 
 static bool api_lsa_open_policy2(pipes_struct *p)
 {
-       LSA_Q_OPEN_POL2 q_u;
-       LSA_R_OPEN_POL2 r_u;
-       prs_struct *data = &p->in_data.data;
-       prs_struct *rdata = &p->out_data.rdata;
-
-       ZERO_STRUCT(q_u);
-       ZERO_STRUCT(r_u);
-
-       /* grab the server, object attributes and desired access flag...*/
-       if(!lsa_io_q_open_pol2("", &q_u, data, 0)) {
-               DEBUG(0,("api_lsa_open_policy2: unable to unmarshall LSA_Q_OPEN_POL2.\n"));
-               return False;
-       }
-
-       r_u.status = _lsa_open_policy2(p, &q_u, &r_u);
-
-       /* store the response in the SMB stream */
-       if(!lsa_io_r_open_pol2("", &r_u, rdata, 0)) {
-               DEBUG(0,("api_lsa_open_policy2: unable to marshall LSA_R_OPEN_POL2.\n"));
-               return False;
-       }
-
-       return True;
+       return proxy_lsa_call(p, NDR_LSA_OPENPOLICY2);
 }
 
 /***************************************************************************
index 6c2bf200a056efe4e1d1d71641d6e4c6e196c916..076e7aabedff71487549e9b076c5a9197127bc75 100644 (file)
@@ -516,15 +516,16 @@ static void init_dns_dom_info(LSA_DNS_DOM_INFO *r_l, const char *nb_name,
 
 
 /***************************************************************************
- _lsa_open_policy2.
+ _lsa_OpenPolicy2
  ***************************************************************************/
 
-NTSTATUS _lsa_open_policy2(pipes_struct *p, LSA_Q_OPEN_POL2 *q_u, LSA_R_OPEN_POL2 *r_u)
+NTSTATUS _lsa_OpenPolicy2(pipes_struct *p,
+                         struct lsa_OpenPolicy2 *r)
 {
        struct lsa_info *info;
        SEC_DESC *psd = NULL;
        size_t sd_size;
-       uint32 des_access=q_u->des_access;
+       uint32 des_access = r->in.access_mask;
        uint32 acc_granted;
        NTSTATUS status;
 
@@ -558,7 +559,7 @@ NTSTATUS _lsa_open_policy2(pipes_struct *p, LSA_Q_OPEN_POL2 *q_u, LSA_R_OPEN_POL
        info->access = acc_granted;
 
        /* set up the LSA QUERY INFO response */
-       if (!create_policy_hnd(p, &r_u->pol, free_lsa_info, (void *)info))
+       if (!create_policy_hnd(p, r->out.handle, free_lsa_info, (void *)info))
                return NT_STATUS_OBJECT_NAME_NOT_FOUND;
 
        return NT_STATUS_OK;
@@ -2404,12 +2405,6 @@ NTSTATUS _lsa_RetrievePrivateData(pipes_struct *p, struct lsa_RetrievePrivateDat
        return NT_STATUS_NOT_IMPLEMENTED;
 }
 
-NTSTATUS _lsa_OpenPolicy2(pipes_struct *p, struct lsa_OpenPolicy2 *r)
-{
-       p->rng_fault_state = True;
-       return NT_STATUS_NOT_IMPLEMENTED;
-}
-
 NTSTATUS _lsa_GetUserName(pipes_struct *p, struct lsa_GetUserName *r)
 {
        p->rng_fault_state = True;