The branch, v3-2-test has been updated
       via  e74ad425ff3a139fa12c0320e4a292dcb0991888 (commit)
       via  1a98282d2c61e45645c68941631eb0499baa4cbb (commit)
       via  ea3a096bcdc42fd4a86be5df3e8f9745e99970ff (commit)
       via  15801832ecd59bdb35ed33696944fe5beb08bf3f (commit)
      from  7d369906ec37caebaa4e2097874997fa257f1a31 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-2-test


- Log -----------------------------------------------------------------
commit e74ad425ff3a139fa12c0320e4a292dcb0991888
Author: Günther Deschner <[EMAIL PROTECTED]>
Date:   Fri Feb 1 00:49:32 2008 +0100

    Use pidl for _samr_OpenGroup().
    
    Guenther

commit 1a98282d2c61e45645c68941631eb0499baa4cbb
Author: Günther Deschner <[EMAIL PROTECTED]>
Date:   Fri Feb 1 00:48:40 2008 +0100

    Use pidl for _samr_OpenAlias().
    
    Guenther

commit ea3a096bcdc42fd4a86be5df3e8f9745e99970ff
Author: Günther Deschner <[EMAIL PROTECTED]>
Date:   Fri Feb 1 00:39:06 2008 +0100

    Use pidl for _samr_OpenUser().
    
    Guenther

commit 15801832ecd59bdb35ed33696944fe5beb08bf3f
Author: Günther Deschner <[EMAIL PROTECTED]>
Date:   Fri Feb 1 00:23:50 2008 +0100

    Use pidl for _samr_OpenDomain().
    
    Guenther

-----------------------------------------------------------------------

Summary of changes:
 source/rpc_server/srv_samr.c    |   94 +---------------------------
 source/rpc_server/srv_samr_nt.c |  131 +++++++++++++-------------------------
 2 files changed, 49 insertions(+), 176 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/rpc_server/srv_samr.c b/source/rpc_server/srv_samr.c
index c05d126..447865e 100644
--- a/source/rpc_server/srv_samr.c
+++ b/source/rpc_server/srv_samr.c
@@ -71,29 +71,7 @@ static bool api_samr_close_hnd(pipes_struct *p)
 
 static bool api_samr_open_domain(pipes_struct *p)
 {
-       SAMR_Q_OPEN_DOMAIN q_u;
-       SAMR_R_OPEN_DOMAIN r_u;
-
-       prs_struct *data = &p->in_data.data;
-       prs_struct *rdata = &p->out_data.rdata;
-
-       ZERO_STRUCT(q_u);
-       ZERO_STRUCT(r_u);
-
-       if(!samr_io_q_open_domain("", &q_u, data, 0)) {
-               DEBUG(0,("api_samr_open_domain: unable to unmarshall 
SAMR_Q_OPEN_DOMAIN.\n"));
-               return False;
-       }
-
-       r_u.status = _samr_open_domain(p, &q_u, &r_u);
-
-       /* store the response in the SMB stream */
-       if(!samr_io_r_open_domain("", &r_u, rdata, 0)) {
-               DEBUG(0,("api_samr_open_domain: unable to marshall 
SAMR_R_OPEN_DOMAIN.\n"));
-               return False;
-       }
-
-       return True;
+       return proxy_samr_call(p, NDR_SAMR_OPENDOMAIN);
 }
 
 /*******************************************************************
@@ -439,28 +417,7 @@ static bool api_samr_lookup_rids(pipes_struct *p)
 
 static bool api_samr_open_user(pipes_struct *p)
 {
-       SAMR_Q_OPEN_USER q_u;
-       SAMR_R_OPEN_USER r_u;
-       prs_struct *data = &p->in_data.data;
-       prs_struct *rdata = &p->out_data.rdata;
-
-       ZERO_STRUCT(q_u);
-       ZERO_STRUCT(r_u);
-
-       if(!samr_io_q_open_user("", &q_u, data, 0)) {
-               DEBUG(0,("api_samr_open_user: unable to unmarshall 
SAMR_Q_OPEN_USER.\n"));
-               return False;
-       }
-
-       r_u.status = _samr_open_user(p, &q_u, &r_u);
-
-       /* store the response in the SMB stream */
-       if(!samr_io_r_open_user("", &r_u, rdata, 0)) {
-               DEBUG(0,("api_samr_open_user: unable to marshall 
SAMR_R_OPEN_USER.\n"));
-               return False;
-       }
-
-       return True;
+       return proxy_samr_call(p, NDR_SAMR_OPENUSER);
 }
 
 /*******************************************************************
@@ -804,29 +761,7 @@ static bool api_samr_enum_domains(pipes_struct *p)
 
 static bool api_samr_open_alias(pipes_struct *p)
 {
-       SAMR_Q_OPEN_ALIAS q_u;
-       SAMR_R_OPEN_ALIAS 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 samr open policy */
-       if(!samr_io_q_open_alias("", &q_u, data, 0)) {
-               DEBUG(0,("api_samr_open_alias: Unable to unmarshall 
SAMR_Q_OPEN_ALIAS.\n"));
-               return False;
-       }
-
-       r_u.status=_samr_open_alias(p, &q_u, &r_u);
-
-       /* store the response in the SMB stream */
-       if(!samr_io_r_open_alias("", &r_u, rdata, 0)) {
-               DEBUG(0,("api_samr_open_alias: Unable to marshall 
SAMR_R_OPEN_ALIAS.\n"));
-               return False;
-       }
-       
-       return True;
+       return proxy_samr_call(p, NDR_SAMR_OPENALIAS);
 }
 
 /*******************************************************************
@@ -1359,28 +1294,7 @@ static bool api_samr_get_dom_pwinfo(pipes_struct *p)
 
 static bool api_samr_open_group(pipes_struct *p)
 {
-       SAMR_Q_OPEN_GROUP q_u;
-       SAMR_R_OPEN_GROUP r_u;
-
-       prs_struct *data = &p->in_data.data;
-       prs_struct *rdata = &p->out_data.rdata;
-
-       ZERO_STRUCT(q_u);
-       ZERO_STRUCT(r_u);
-
-       if (!samr_io_q_open_group("", &q_u, data, 0)) {
-               DEBUG(0,("api_samr_open_group: unable to unmarshall 
SAMR_Q_OPEN_GROUP.\n"));
-               return False;
-       }
-
-       r_u.status = _samr_open_group(p, &q_u, &r_u);
-
-       if (!samr_io_r_open_group("", &r_u, rdata, 0)) {
-               DEBUG(0,("api_samr_open_group: unable to marshall 
SAMR_R_OPEN_GROUP.\n"));
-               return False;
-       }
-
-       return True;
+       return proxy_samr_call(p, NDR_SAMR_OPENGROUP);
 }
 
 /*******************************************************************
diff --git a/source/rpc_server/srv_samr_nt.c b/source/rpc_server/srv_samr_nt.c
index cf5e1a9..2fd1c98 100644
--- a/source/rpc_server/srv_samr_nt.c
+++ b/source/rpc_server/srv_samr_nt.c
@@ -558,28 +558,27 @@ NTSTATUS _samr_Close(pipes_struct *p, struct samr_Close 
*r)
 }
 
 /*******************************************************************
- samr_reply_open_domain
+ _samr_OpenDomain
  ********************************************************************/
 
-NTSTATUS _samr_open_domain(pipes_struct *p, SAMR_Q_OPEN_DOMAIN *q_u, 
SAMR_R_OPEN_DOMAIN *r_u)
+NTSTATUS _samr_OpenDomain(pipes_struct *p,
+                         struct samr_OpenDomain *r)
 {
        struct    samr_info *info;
        SEC_DESC *psd = NULL;
        uint32    acc_granted;
-       uint32    des_access = q_u->flags;
+       uint32    des_access = r->in.access_mask;
        NTSTATUS  status;
        size_t    sd_size;
        SE_PRIV se_rights;
 
-       r_u->status = NT_STATUS_OK;
-
        /* find the connection policy handle. */
        
-       if ( !find_policy_by_hnd(p, &q_u->pol, (void**)(void *)&info) )
+       if ( !find_policy_by_hnd(p, r->in.connect_handle, (void**)(void 
*)&info) )
                return NT_STATUS_INVALID_HANDLE;
 
        status = access_check_samr_function( info->acc_granted, 
-               SA_RIGHT_SAM_OPEN_DOMAIN, "_samr_open_domain" );
+               SA_RIGHT_SAM_OPEN_DOMAIN, "_samr_OpenDomain" );
                
        if ( !NT_STATUS_IS_OK(status) )
                return status;
@@ -594,28 +593,28 @@ NTSTATUS _samr_open_domain(pipes_struct *p, 
SAMR_Q_OPEN_DOMAIN *q_u, SAMR_R_OPEN
 
        status = access_check_samr_object( psd, p->pipe_user.nt_user_token, 
                &se_rights, GENERIC_RIGHTS_DOMAIN_WRITE, des_access, 
-               &acc_granted, "_samr_open_domain" );
+               &acc_granted, "_samr_OpenDomain" );
                
        if ( !NT_STATUS_IS_OK(status) )
                return status;
 
-       if (!sid_check_is_domain(&q_u->dom_sid.sid) &&
-           !sid_check_is_builtin(&q_u->dom_sid.sid)) {
+       if (!sid_check_is_domain(r->in.sid) &&
+           !sid_check_is_builtin(r->in.sid)) {
                return NT_STATUS_NO_SUCH_DOMAIN;
        }
 
        /* associate the domain SID with the (unique) handle. */
-       if ((info = get_samr_info_by_sid(&q_u->dom_sid.sid))==NULL)
+       if ((info = get_samr_info_by_sid(r->in.sid))==NULL)
                return NT_STATUS_NO_MEMORY;
        info->acc_granted = acc_granted;
 
        /* get a (unique) handle.  open a policy on it. */
-       if (!create_policy_hnd(p, &r_u->domain_pol, free_samr_info, (void 
*)info))
+       if (!create_policy_hnd(p, r->out.domain_handle, free_samr_info, (void 
*)info))
                return NT_STATUS_OBJECT_NAME_NOT_FOUND;
 
-       DEBUG(5,("samr_open_domain: %d\n", __LINE__));
+       DEBUG(5,("_samr_OpenDomain: %d\n", __LINE__));
 
-       return r_u->status;
+       return NT_STATUS_OK;
 }
 
 /*******************************************************************
@@ -1767,33 +1766,32 @@ NTSTATUS _samr_lookup_rids(pipes_struct *p, 
SAMR_Q_LOOKUP_RIDS *q_u, SAMR_R_LOOK
 }
 
 /*******************************************************************
- _samr_open_user. Safe - gives out no passwd info.
- ********************************************************************/
+ _samr_OpenUser
+********************************************************************/
 
-NTSTATUS _samr_open_user(pipes_struct *p, SAMR_Q_OPEN_USER *q_u, 
SAMR_R_OPEN_USER *r_u)
+NTSTATUS _samr_OpenUser(pipes_struct *p,
+                       struct samr_OpenUser *r)
 {
        struct samu *sampass=NULL;
        DOM_SID sid;
-       POLICY_HND domain_pol = q_u->domain_pol;
-       POLICY_HND *user_pol = &r_u->user_pol;
+       POLICY_HND domain_pol = *r->in.domain_handle;
+       POLICY_HND *user_pol = r->out.user_handle;
        struct samr_info *info = NULL;
        SEC_DESC *psd = NULL;
        uint32    acc_granted;
-       uint32    des_access = q_u->access_mask;
+       uint32    des_access = r->in.access_mask;
        size_t    sd_size;
        bool ret;
        NTSTATUS nt_status;
        SE_PRIV se_rights;
 
-       r_u->status = NT_STATUS_OK;
-
        /* find the domain policy handle and get domain SID / access bits in 
the domain policy. */
        
        if ( !get_lsa_policy_samr_sid(p, &domain_pol, &sid, &acc_granted, NULL) 
)
                return NT_STATUS_INVALID_HANDLE;
        
        nt_status = access_check_samr_function( acc_granted, 
-               SA_RIGHT_DOMAIN_OPEN_ACCOUNT, "_samr_open_user" );
+               SA_RIGHT_DOMAIN_OPEN_ACCOUNT, "_samr_OpenUser" );
                
        if ( !NT_STATUS_IS_OK(nt_status) )
                return nt_status;
@@ -1804,7 +1802,7 @@ NTSTATUS _samr_open_user(pipes_struct *p, 
SAMR_Q_OPEN_USER *q_u, SAMR_R_OPEN_USE
 
        /* append the user's RID to it */
        
-       if (!sid_append_rid(&sid, q_u->user_rid))
+       if (!sid_append_rid(&sid, r->in.rid))
                return NT_STATUS_NO_SUCH_USER;
        
        /* check if access can be granted as requested by client. */
@@ -1817,7 +1815,7 @@ NTSTATUS _samr_open_user(pipes_struct *p, 
SAMR_Q_OPEN_USER *q_u, SAMR_R_OPEN_USE
        
        nt_status = access_check_samr_object(psd, p->pipe_user.nt_user_token, 
                &se_rights, GENERIC_RIGHTS_USER_WRITE, des_access, 
-               &acc_granted, "_samr_open_user");
+               &acc_granted, "_samr_OpenUser");
                
        if ( !NT_STATUS_IS_OK(nt_status) )
                return nt_status;
@@ -1842,7 +1840,7 @@ NTSTATUS _samr_open_user(pipes_struct *p, 
SAMR_Q_OPEN_USER *q_u, SAMR_R_OPEN_USE
        if (!create_policy_hnd(p, user_pol, free_samr_info, (void *)info))
                return NT_STATUS_OBJECT_NAME_NOT_FOUND;
 
-       return r_u->status;
+       return NT_STATUS_OK;
 }
 
 /*************************************************************************
@@ -2979,32 +2977,31 @@ NTSTATUS _samr_enum_domains(pipes_struct *p, 
SAMR_Q_ENUM_DOMAINS *q_u, SAMR_R_EN
 }
 
 /*******************************************************************
- api_samr_open_alias
+ _samr_OpenAlias
  ********************************************************************/
 
-NTSTATUS _samr_open_alias(pipes_struct *p, SAMR_Q_OPEN_ALIAS *q_u, 
SAMR_R_OPEN_ALIAS *r_u)
+NTSTATUS _samr_OpenAlias(pipes_struct *p,
+                        struct samr_OpenAlias *r)
 {
        DOM_SID sid;
-       POLICY_HND domain_pol = q_u->dom_pol;
-       uint32 alias_rid = q_u->rid_alias;
-       POLICY_HND *alias_pol = &r_u->pol;
+       POLICY_HND domain_pol = *r->in.domain_handle;
+       uint32 alias_rid = r->in.rid;
+       POLICY_HND *alias_pol = r->out.alias_handle;
        struct    samr_info *info = NULL;
        SEC_DESC *psd = NULL;
        uint32    acc_granted;
-       uint32    des_access = q_u->access_mask;
+       uint32    des_access = r->in.access_mask;
        size_t    sd_size;
        NTSTATUS  status;
        SE_PRIV se_rights;
 
-       r_u->status = NT_STATUS_OK;
-
        /* find the domain policy and get the SID / access bits stored in the 
domain policy */
        
        if ( !get_lsa_policy_samr_sid(p, &domain_pol, &sid, &acc_granted, NULL) 
)
                return NT_STATUS_INVALID_HANDLE;
        
        status = access_check_samr_function(acc_granted, 
-               SA_RIGHT_DOMAIN_OPEN_ACCOUNT, "_samr_open_alias");
+               SA_RIGHT_DOMAIN_OPEN_ACCOUNT, "_samr_OpenAlias");
                
        if ( !NT_STATUS_IS_OK(status) ) 
                return status;
@@ -3024,7 +3021,7 @@ NTSTATUS _samr_open_alias(pipes_struct *p, 
SAMR_Q_OPEN_ALIAS *q_u, SAMR_R_OPEN_A
        
        status = access_check_samr_object(psd, p->pipe_user.nt_user_token, 
                &se_rights, GENERIC_RIGHTS_ALIAS_WRITE, des_access, 
-               &acc_granted, "_samr_open_alias");
+               &acc_granted, "_samr_OpenAlias");
                
        if ( !NT_STATUS_IS_OK(status) )
                return status;
@@ -3061,7 +3058,7 @@ NTSTATUS _samr_open_alias(pipes_struct *p, 
SAMR_Q_OPEN_ALIAS *q_u, SAMR_R_OPEN_A
        if (!create_policy_hnd(p, alias_pol, free_samr_info, (void *)info))
                return NT_STATUS_OBJECT_NAME_NOT_FOUND;
 
-       return r_u->status;
+       return NT_STATUS_OK;
 }
 
 /*******************************************************************
@@ -4833,10 +4830,12 @@ NTSTATUS _samr_GetDomPwInfo(pipes_struct *p,
 }
 
 /*********************************************************************
- _samr_open_group
+ _samr_OpenGroup
 *********************************************************************/
 
-NTSTATUS _samr_open_group(pipes_struct *p, SAMR_Q_OPEN_GROUP *q_u, 
SAMR_R_OPEN_GROUP *r_u)
+NTSTATUS _samr_OpenGroup(pipes_struct *p,
+                        struct samr_OpenGroup *r)
+
 {
        DOM_SID sid;
        DOM_SID info_sid;
@@ -4844,18 +4843,18 @@ NTSTATUS _samr_open_group(pipes_struct *p, 
SAMR_Q_OPEN_GROUP *q_u, SAMR_R_OPEN_G
        struct samr_info *info;
        SEC_DESC         *psd = NULL;
        uint32            acc_granted;
-       uint32            des_access = q_u->access_mask;
+       uint32            des_access = r->in.access_mask;
        size_t            sd_size;
        NTSTATUS          status;
        fstring sid_string;
        bool ret;
        SE_PRIV se_rights;
 
-       if (!get_lsa_policy_samr_sid(p, &q_u->domain_pol, &sid, &acc_granted, 
NULL)) 
+       if (!get_lsa_policy_samr_sid(p, r->in.domain_handle, &sid, 
&acc_granted, NULL)) 
                return NT_STATUS_INVALID_HANDLE;
        
        status = access_check_samr_function(acc_granted, 
-               SA_RIGHT_DOMAIN_OPEN_ACCOUNT, "_samr_open_group");
+               SA_RIGHT_DOMAIN_OPEN_ACCOUNT, "_samr_OpenGroup");
                
        if ( !NT_STATUS_IS_OK(status) )
                return status;
@@ -4868,7 +4867,7 @@ NTSTATUS _samr_open_group(pipes_struct *p, 
SAMR_Q_OPEN_GROUP *q_u, SAMR_R_OPEN_G
 
        status = access_check_samr_object(psd, p->pipe_user.nt_user_token, 
                &se_rights, GENERIC_RIGHTS_GROUP_WRITE, des_access, 
-               &acc_granted, "_samr_open_group");
+               &acc_granted, "_samr_OpenGroup");
                
        if ( !NT_STATUS_IS_OK(status) ) 
                return status;
@@ -4879,7 +4878,7 @@ NTSTATUS _samr_open_group(pipes_struct *p, 
SAMR_Q_OPEN_GROUP *q_u, SAMR_R_OPEN_G
                return NT_STATUS_ACCESS_DENIED;
 
        sid_copy(&info_sid, get_global_sam_sid());
-       sid_append_rid(&info_sid, q_u->rid_group);
+       sid_append_rid(&info_sid, r->in.rid);
        sid_to_fstring(sid_string, &info_sid);
 
        if ((info = get_samr_info_by_sid(&info_sid)) == NULL)
@@ -4887,7 +4886,7 @@ NTSTATUS _samr_open_group(pipes_struct *p, 
SAMR_Q_OPEN_GROUP *q_u, SAMR_R_OPEN_G
                
        info->acc_granted = acc_granted;
 
-       DEBUG(10, ("_samr_open_group:Opening SID: %s\n", sid_string));
+       DEBUG(10, ("_samr_OpenGroup:Opening SID: %s\n", sid_string));
 
        /* check if that group really exists */
        become_root();
@@ -4897,7 +4896,7 @@ NTSTATUS _samr_open_group(pipes_struct *p, 
SAMR_Q_OPEN_GROUP *q_u, SAMR_R_OPEN_G
                return NT_STATUS_NO_SUCH_GROUP;
 
        /* get a (unique) handle.  open a policy on it. */
-       if (!create_policy_hnd(p, &r_u->pol, free_samr_info, (void *)info))
+       if (!create_policy_hnd(p, r->out.group_handle, free_samr_info, (void 
*)info))
                return NT_STATUS_OBJECT_NAME_NOT_FOUND;
 
        return NT_STATUS_OK;
@@ -5122,16 +5121,6 @@ NTSTATUS _samr_EnumDomains(pipes_struct *p,
 /****************************************************************
 ****************************************************************/
 
-NTSTATUS _samr_OpenDomain(pipes_struct *p,
-                         struct samr_OpenDomain *r)
-{
-       p->rng_fault_state = true;
-       return NT_STATUS_NOT_IMPLEMENTED;
-}
-
-/****************************************************************
-****************************************************************/
-
 NTSTATUS _samr_QueryDomainInfo(pipes_struct *p,
                               struct samr_QueryDomainInfo *r)
 {
@@ -5242,16 +5231,6 @@ NTSTATUS _samr_LookupRids(pipes_struct *p,
 /****************************************************************
 ****************************************************************/
 
-NTSTATUS _samr_OpenGroup(pipes_struct *p,
-                        struct samr_OpenGroup *r)
-{
-       p->rng_fault_state = true;
-       return NT_STATUS_NOT_IMPLEMENTED;
-}
-
-/****************************************************************
-****************************************************************/
-
 NTSTATUS _samr_QueryGroupInfo(pipes_struct *p,
                              struct samr_QueryGroupInfo *r)
 {
@@ -5322,16 +5301,6 @@ NTSTATUS _samr_SetMemberAttributesOfGroup(pipes_struct 
*p,
 /****************************************************************
 ****************************************************************/
 
-NTSTATUS _samr_OpenAlias(pipes_struct *p,
-                        struct samr_OpenAlias *r)
-{
-       p->rng_fault_state = true;
-       return NT_STATUS_NOT_IMPLEMENTED;
-}
-
-/****************************************************************
-****************************************************************/
-
 NTSTATUS _samr_QueryAliasInfo(pipes_struct *p,
                              struct samr_QueryAliasInfo *r)
 {
@@ -5392,16 +5361,6 @@ NTSTATUS _samr_GetMembersInAlias(pipes_struct *p,
 /****************************************************************
 ****************************************************************/
 
-NTSTATUS _samr_OpenUser(pipes_struct *p,
-                       struct samr_OpenUser *r)
-{
-       p->rng_fault_state = true;
-       return NT_STATUS_NOT_IMPLEMENTED;
-}
-
-/****************************************************************
-****************************************************************/
-
 NTSTATUS _samr_DeleteUser(pipes_struct *p,
                          struct samr_DeleteUser *r)
 {


-- 
Samba Shared Repository

Reply via email to