[SCM] Samba Shared Repository - branch v3-2-test updated - initial-v3-2-test-1846-g83d1b74

Günther Deschner gd at samba.org
Mon Feb 4 17:50:25 GMT 2008


The branch, v3-2-test has been updated
       via  83d1b7429ea902742c9c1f42fca57fb1757fc2b4 (commit)
       via  e2635fa1e4785104174825c7ff063bd216060cb8 (commit)
       via  4f923d970eac5841d1f67dbb8fc0c1dd1fda95a3 (commit)
       via  a65c89c80627280247e25b695eec081386cc4fb6 (commit)
       via  4e1496894ba286aa42ff0a49d975d54c5ee04b2d (commit)
       via  94d6536809266ea3a12cd255fb7f2f7a70c42da3 (commit)
      from  e7539730d003e9bdc0bf8208d1d426082dad84a5 (commit)

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


- Log -----------------------------------------------------------------
commit 83d1b7429ea902742c9c1f42fca57fb1757fc2b4
Author: Günther Deschner <gd at samba.org>
Date:   Mon Feb 4 18:26:18 2008 +0100

    Remove unused marshalling for SAMR_ADD_GROUPMEM.
    
    Guenther

commit e2635fa1e4785104174825c7ff063bd216060cb8
Author: Günther Deschner <gd at samba.org>
Date:   Mon Feb 4 18:45:07 2008 +0100

    Use rpccli_samr_AddGroupMember() in net.
    
    Guenther

commit 4f923d970eac5841d1f67dbb8fc0c1dd1fda95a3
Author: Günther Deschner <gd at samba.org>
Date:   Mon Feb 4 18:36:44 2008 +0100

    Use pidl for _samr_AddGroupMember().
    
    Guenther

commit a65c89c80627280247e25b695eec081386cc4fb6
Author: Günther Deschner <gd at samba.org>
Date:   Mon Feb 4 18:16:30 2008 +0100

    Remove unused marshalling for SAMR_DEL_GROUPMEM.
    
    Guenther

commit 4e1496894ba286aa42ff0a49d975d54c5ee04b2d
Author: Günther Deschner <gd at samba.org>
Date:   Mon Feb 4 18:13:07 2008 +0100

    Use rpccli_samr_DeleteGroupMember() in net.
    
    Guenther

commit 94d6536809266ea3a12cd255fb7f2f7a70c42da3
Author: Günther Deschner <gd at samba.org>
Date:   Mon Feb 4 18:09:35 2008 +0100

    Use pidl for _samr_DeleteGroupMember().
    
    Guenther

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

Summary of changes:
 source/include/rpc_samr.h       |   36 ----------
 source/rpc_client/cli_samr.c    |   66 -----------------
 source/rpc_parse/parse_samr.c   |  147 ---------------------------------------
 source/rpc_server/srv_samr.c    |   46 +------------
 source/rpc_server/srv_samr_nt.c |   61 ++++++----------
 source/utils/net_rpc.c          |   13 +++-
 6 files changed, 36 insertions(+), 333 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/include/rpc_samr.h b/source/include/rpc_samr.h
index 227f709..432f900 100644
--- a/source/include/rpc_samr.h
+++ b/source/include/rpc_samr.h
@@ -1411,42 +1411,6 @@ typedef struct r_samr_query_groupmem_info
 } SAMR_R_QUERY_GROUPMEM;
 
 
-/* SAMR_Q_DEL_GROUPMEM - probably an del group member */
-typedef struct q_samr_del_group_mem_info
-{
-	POLICY_HND pol;       /* policy handle */
-	uint32 rid;         /* rid */
-
-} SAMR_Q_DEL_GROUPMEM;
-
-
-/* SAMR_R_DEL_GROUPMEM - probably an del group member */
-typedef struct r_samr_del_group_mem_info
-{
-	NTSTATUS status;         /* return status */
-
-} SAMR_R_DEL_GROUPMEM;
-
-
-/* SAMR_Q_ADD_GROUPMEM - probably an add group member */
-typedef struct q_samr_add_group_mem_info
-{
-	POLICY_HND pol;       /* policy handle */
-
-	uint32 rid;         /* rid */
-	uint32 unknown;     /* 0x0000 0005 */
-
-} SAMR_Q_ADD_GROUPMEM;
-
-
-/* SAMR_R_ADD_GROUPMEM - probably an add group member */
-typedef struct r_samr_add_group_mem_info
-{
-	NTSTATUS status;         /* return status */
-
-} SAMR_R_ADD_GROUPMEM;
-
-
 /* SAMR_Q_QUERY_ALIASMEM - query alias members */
 typedef struct q_samr_query_aliasmem_info
 {
diff --git a/source/rpc_client/cli_samr.c b/source/rpc_client/cli_samr.c
index 72e6fd3..1534b14 100644
--- a/source/rpc_client/cli_samr.c
+++ b/source/rpc_client/cli_samr.c
@@ -95,72 +95,6 @@ NTSTATUS rpccli_samr_connect4(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx,
 	return result;
 }
 
-/* Add a domain group member */
-
-NTSTATUS rpccli_samr_add_groupmem(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx,
-			       POLICY_HND *group_pol, uint32 rid)
-{
-	prs_struct qbuf, rbuf;
-	SAMR_Q_ADD_GROUPMEM q;
-	SAMR_R_ADD_GROUPMEM r;
-	NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
-
-	DEBUG(10,("cli_samr_add_groupmem\n"));
-
-	ZERO_STRUCT(q);
-	ZERO_STRUCT(r);
-
-	/* Marshall data and send request */
-
-	init_samr_q_add_groupmem(&q, group_pol, rid);
-
-	CLI_DO_RPC(cli, mem_ctx, PI_SAMR, SAMR_ADD_GROUPMEM,
-		q, r,
-		qbuf, rbuf,
-		samr_io_q_add_groupmem,
-		samr_io_r_add_groupmem,
-		NT_STATUS_UNSUCCESSFUL); 
-
-	/* Return output parameters */
-
-	result = r.status;
-
-	return result;
-}
-
-/* Delete a domain group member */
-
-NTSTATUS rpccli_samr_del_groupmem(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx,
-			       POLICY_HND *group_pol, uint32 rid)
-{
-	prs_struct qbuf, rbuf;
-	SAMR_Q_DEL_GROUPMEM q;
-	SAMR_R_DEL_GROUPMEM r;
-	NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
-
-	DEBUG(10,("cli_samr_del_groupmem\n"));
-
-	ZERO_STRUCT(q);
-	ZERO_STRUCT(r);
-
-	/* Marshall data and send request */
-
-	init_samr_q_del_groupmem(&q, group_pol, rid);
-
-	CLI_DO_RPC(cli, mem_ctx, PI_SAMR, SAMR_DEL_GROUPMEM,
-		q, r,
-		qbuf, rbuf,
-		samr_io_q_del_groupmem,
-		samr_io_r_del_groupmem,
-		NT_STATUS_UNSUCCESSFUL); 
-
-	/* Return output parameters */
-
-	result = r.status;
-
-	return result;
-}
-
 /* Query user info */
 
 NTSTATUS rpccli_samr_query_userinfo(struct rpc_pipe_client *cli,
diff --git a/source/rpc_parse/parse_samr.c b/source/rpc_parse/parse_samr.c
index 73b3086..97f70f6 100644
--- a/source/rpc_parse/parse_samr.c
+++ b/source/rpc_parse/parse_samr.c
@@ -2193,153 +2193,6 @@ static bool samr_group_info_ctr(const char *desc, GROUP_INFO_CTR **ctr,
 }
 
 /*******************************************************************
-inits a SAMR_Q_DEL_GROUPMEM structure.
-********************************************************************/
-
-void init_samr_q_del_groupmem(SAMR_Q_DEL_GROUPMEM * q_e,
-			      POLICY_HND *pol, uint32 rid)
-{
-	DEBUG(5, ("init_samr_q_del_groupmem\n"));
-
-	q_e->pol = *pol;
-	q_e->rid = rid;
-}
-
-/*******************************************************************
-reads or writes a structure.
-********************************************************************/
-
-bool samr_io_q_del_groupmem(const char *desc, SAMR_Q_DEL_GROUPMEM * q_e,
-			    prs_struct *ps, int depth)
-{
-	if (q_e == NULL)
-		return False;
-
-	prs_debug(ps, depth, desc, "samr_io_q_del_groupmem");
-	depth++;
-
-	if(!prs_align(ps))
-		return False;
-
-	if(!smb_io_pol_hnd("pol", &q_e->pol, ps, depth))
-		return False;
-
-	if(!prs_uint32("rid", ps, depth, &q_e->rid))
-		return False;
-
-	return True;
-}
-
-/*******************************************************************
-inits a SAMR_R_DEL_GROUPMEM structure.
-********************************************************************/
-
-void init_samr_r_del_groupmem(SAMR_R_DEL_GROUPMEM * r_u, POLICY_HND *pol,
-			      NTSTATUS status)
-{
-	DEBUG(5, ("init_samr_r_del_groupmem\n"));
-
-	r_u->status = status;
-}
-
-/*******************************************************************
-reads or writes a structure.
-********************************************************************/
-
-bool samr_io_r_del_groupmem(const char *desc, SAMR_R_DEL_GROUPMEM * r_u,
-			    prs_struct *ps, int depth)
-{
-	if (r_u == NULL)
-		return False;
-
-	prs_debug(ps, depth, desc, "samr_io_r_del_groupmem");
-	depth++;
-
-	if(!prs_align(ps))
-		return False;
-
-	if(!prs_ntstatus("status", ps, depth, &r_u->status))
-		return False;
-
-	return True;
-}
-
-/*******************************************************************
-inits a SAMR_Q_ADD_GROUPMEM structure.
-********************************************************************/
-
-void init_samr_q_add_groupmem(SAMR_Q_ADD_GROUPMEM * q_e,
-			      POLICY_HND *pol, uint32 rid)
-{
-	DEBUG(5, ("init_samr_q_add_groupmem\n"));
-
-	q_e->pol = *pol;
-	q_e->rid = rid;
-	q_e->unknown = 0x0005;
-}
-
-/*******************************************************************
-reads or writes a structure.
-********************************************************************/
-
-bool samr_io_q_add_groupmem(const char *desc, SAMR_Q_ADD_GROUPMEM * q_e,
-			    prs_struct *ps, int depth)
-{
-	if (q_e == NULL)
-		return False;
-
-	prs_debug(ps, depth, desc, "samr_io_q_add_groupmem");
-	depth++;
-
-	if(!prs_align(ps))
-		return False;
-
-	if(!smb_io_pol_hnd("pol", &q_e->pol, ps, depth))
-		return False;
-
-	if(!prs_uint32("rid    ", ps, depth, &q_e->rid))
-		return False;
-	if(!prs_uint32("unknown", ps, depth, &q_e->unknown))
-		return False;
-
-	return True;
-}
-
-/*******************************************************************
-inits a SAMR_R_ADD_GROUPMEM structure.
-********************************************************************/
-
-void init_samr_r_add_groupmem(SAMR_R_ADD_GROUPMEM * r_u, POLICY_HND *pol,
-			      NTSTATUS status)
-{
-	DEBUG(5, ("init_samr_r_add_groupmem\n"));
-
-	r_u->status = status;
-}
-
-/*******************************************************************
-reads or writes a structure.
-********************************************************************/
-
-bool samr_io_r_add_groupmem(const char *desc, SAMR_R_ADD_GROUPMEM * r_u,
-			    prs_struct *ps, int depth)
-{
-	if (r_u == NULL)
-		return False;
-
-	prs_debug(ps, depth, desc, "samr_io_r_add_groupmem");
-	depth++;
-
-	if(!prs_align(ps))
-		return False;
-
-	if(!prs_ntstatus("status", ps, depth, &r_u->status))
-		return False;
-
-	return True;
-}
-
-/*******************************************************************
 inits a SAMR_Q_SET_GROUPINFO structure.
 ********************************************************************/
 
diff --git a/source/rpc_server/srv_samr.c b/source/rpc_server/srv_samr.c
index dd162c7..15cbf4c 100644
--- a/source/rpc_server/srv_samr.c
+++ b/source/rpc_server/srv_samr.c
@@ -810,28 +810,7 @@ static bool api_samr_del_aliasmem(pipes_struct *p)
 
 static bool api_samr_add_groupmem(pipes_struct *p)
 {
-	SAMR_Q_ADD_GROUPMEM q_u;
-	SAMR_R_ADD_GROUPMEM 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_add_groupmem("", &q_u, data, 0)) {
-		DEBUG(0,("api_samr_add_groupmem: unable to unmarshall SAMR_Q_ADD_GROUPMEM.\n"));
-		return False;
-	}
-
-	r_u.status = _samr_add_groupmem(p, &q_u, &r_u);
-
-	if (!samr_io_r_add_groupmem("", &r_u, rdata, 0)) {
-		DEBUG(0,("api_samr_add_groupmem: unable to marshall SAMR_R_ADD_GROUPMEM.\n"));
-		return False;
-	}
-
-	return True;
+	return proxy_samr_call(p, NDR_SAMR_ADDGROUPMEMBER);
 }
 
 /*******************************************************************
@@ -840,28 +819,7 @@ static bool api_samr_add_groupmem(pipes_struct *p)
 
 static bool api_samr_del_groupmem(pipes_struct *p)
 {
-	SAMR_Q_DEL_GROUPMEM q_u;
-	SAMR_R_DEL_GROUPMEM 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_del_groupmem("", &q_u, data, 0)) {
-		DEBUG(0,("api_samr_del_groupmem: unable to unmarshall SAMR_Q_DEL_GROUPMEM.\n"));
-		return False;
-	}
-
-	r_u.status = _samr_del_groupmem(p, &q_u, &r_u);
-
-	if (!samr_io_r_del_groupmem("", &r_u, rdata, 0)) {
-		DEBUG(0,("api_samr_del_groupmem: unable to marshall SAMR_R_DEL_GROUPMEM.\n"));
-		return False;
-	}
-
-	return True;
+	return proxy_samr_call(p, NDR_SAMR_DELETEGROUPMEMBER);
 }
 
 /*******************************************************************
diff --git a/source/rpc_server/srv_samr_nt.c b/source/rpc_server/srv_samr_nt.c
index 4e0487f..95c31eb 100644
--- a/source/rpc_server/srv_samr_nt.c
+++ b/source/rpc_server/srv_samr_nt.c
@@ -4053,11 +4053,13 @@ NTSTATUS _samr_del_aliasmem(pipes_struct *p, SAMR_Q_DEL_ALIASMEM *q_u, SAMR_R_DE
 }
 
 /*********************************************************************
- _samr_add_groupmem
+ _samr_AddGroupMember
 *********************************************************************/
 
-NTSTATUS _samr_add_groupmem(pipes_struct *p, SAMR_Q_ADD_GROUPMEM *q_u, SAMR_R_ADD_GROUPMEM *r_u)
+NTSTATUS _samr_AddGroupMember(pipes_struct *p,
+			      struct samr_AddGroupMember *r)
 {
+	NTSTATUS status;
 	DOM_SID group_sid;
 	uint32 group_rid;
 	uint32 acc_granted;
@@ -4066,11 +4068,12 @@ NTSTATUS _samr_add_groupmem(pipes_struct *p, SAMR_Q_ADD_GROUPMEM *q_u, SAMR_R_AD
 	DISP_INFO *disp_info = NULL;
 
 	/* Find the policy handle. Open a policy on it. */
-	if (!get_lsa_policy_samr_sid(p, &q_u->pol, &group_sid, &acc_granted, &disp_info)) 
+	if (!get_lsa_policy_samr_sid(p, r->in.group_handle, &group_sid, &acc_granted, &disp_info))
 		return NT_STATUS_INVALID_HANDLE;
-	
-	if (!NT_STATUS_IS_OK(r_u->status = access_check_samr_function(acc_granted, SA_RIGHT_GROUP_ADD_MEMBER, "_samr_add_groupmem"))) {
-		return r_u->status;
+
+	status = access_check_samr_function(acc_granted, SA_RIGHT_GROUP_ADD_MEMBER, "_samr_AddGroupMember");
+	if (!NT_STATUS_IS_OK(status)) {
+		return status;
 	}
 
 	DEBUG(10, ("sid is %s\n", sid_string_dbg(&group_sid)));
@@ -4088,8 +4091,8 @@ NTSTATUS _samr_add_groupmem(pipes_struct *p, SAMR_Q_ADD_GROUPMEM *q_u, SAMR_R_AD
 	if ( can_add_accounts )
 		become_root();
 
-	r_u->status = pdb_add_groupmem(p->mem_ctx, group_rid, q_u->rid);
-		
+	status = pdb_add_groupmem(p->mem_ctx, group_rid, r->in.rid);
+
 	if ( can_add_accounts )
 		unbecome_root();
 		
@@ -4097,15 +4100,18 @@ NTSTATUS _samr_add_groupmem(pipes_struct *p, SAMR_Q_ADD_GROUPMEM *q_u, SAMR_R_AD
 	
 	force_flush_samr_cache(disp_info);
 
-	return r_u->status;
+	return status;
 }
 
 /*********************************************************************
- _samr_del_groupmem
+ _samr_DeleteGroupMember
 *********************************************************************/
 
-NTSTATUS _samr_del_groupmem(pipes_struct *p, SAMR_Q_DEL_GROUPMEM *q_u, SAMR_R_DEL_GROUPMEM *r_u)
+NTSTATUS _samr_DeleteGroupMember(pipes_struct *p,
+				 struct samr_DeleteGroupMember *r)
+
 {
+	NTSTATUS status;
 	DOM_SID group_sid;
 	uint32 group_rid;
 	uint32 acc_granted;
@@ -4114,17 +4120,18 @@ NTSTATUS _samr_del_groupmem(pipes_struct *p, SAMR_Q_DEL_GROUPMEM *q_u, SAMR_R_DE
 	DISP_INFO *disp_info = NULL;
 
 	/*
-	 * delete the group member named q_u->rid
+	 * delete the group member named r->in.rid
 	 * who is a member of the sid associated with the handle
 	 * the rid is a user's rid as the group is a domain group.
 	 */
 
 	/* Find the policy handle. Open a policy on it. */
-	if (!get_lsa_policy_samr_sid(p, &q_u->pol, &group_sid, &acc_granted, &disp_info)) 
+	if (!get_lsa_policy_samr_sid(p, r->in.group_handle, &group_sid, &acc_granted, &disp_info)) 
 		return NT_STATUS_INVALID_HANDLE;
 	
-	if (!NT_STATUS_IS_OK(r_u->status = access_check_samr_function(acc_granted, SA_RIGHT_GROUP_REMOVE_MEMBER, "_samr_del_groupmem"))) {
-		return r_u->status;
+	status = access_check_samr_function(acc_granted, SA_RIGHT_GROUP_REMOVE_MEMBER, "_samr_DeleteGroupMember");
+	if (!NT_STATUS_IS_OK(status)) {
+		return status;
 	}
 
 	if (!sid_peek_check_rid(get_global_sam_sid(), &group_sid,
@@ -4140,7 +4147,7 @@ NTSTATUS _samr_del_groupmem(pipes_struct *p, SAMR_Q_DEL_GROUPMEM *q_u, SAMR_R_DE
 	if ( can_add_accounts )
 		become_root();
 		
-	r_u->status = pdb_del_groupmem(p->mem_ctx, group_rid, q_u->rid);
+	status = pdb_del_groupmem(p->mem_ctx, group_rid, r->in.rid);
 
 	if ( can_add_accounts )
 		unbecome_root();
@@ -4149,7 +4156,7 @@ NTSTATUS _samr_del_groupmem(pipes_struct *p, SAMR_Q_DEL_GROUPMEM *q_u, SAMR_R_DE
 	
 	force_flush_samr_cache(disp_info);
 
-	return r_u->status;
+	return status;
 }
 
 /*********************************************************************
@@ -5200,26 +5207,6 @@ NTSTATUS _samr_SetGroupInfo(pipes_struct *p,
 /****************************************************************
 ****************************************************************/
 
-NTSTATUS _samr_AddGroupMember(pipes_struct *p,
-			      struct samr_AddGroupMember *r)
-{
-	p->rng_fault_state = true;
-	return NT_STATUS_NOT_IMPLEMENTED;
-}
-
-/****************************************************************
-****************************************************************/
-
-NTSTATUS _samr_DeleteGroupMember(pipes_struct *p,
-				 struct samr_DeleteGroupMember *r)
-{
-	p->rng_fault_state = true;
-	return NT_STATUS_NOT_IMPLEMENTED;
-}
-
-/****************************************************************
-****************************************************************/
-
 NTSTATUS _samr_QueryGroupMember(pipes_struct *p,
 				struct samr_QueryGroupMember *r)
 {
diff --git a/source/utils/net_rpc.c b/source/utils/net_rpc.c
index 7091063..9d8824c 100644
--- a/source/utils/net_rpc.c
+++ b/source/utils/net_rpc.c
@@ -1890,7 +1890,9 @@ static NTSTATUS rpc_group_delete_internals(const DOM_SID *domain_sid,
 		{
 			if (opt_verbose) 
 				d_printf("Remove group member %d...",group_rids[i]);
-			result = rpccli_samr_del_groupmem(pipe_hnd, mem_ctx, &group_pol, group_rids[i]);
+			result = rpccli_samr_DeleteGroupMember(pipe_hnd, mem_ctx,
+							       &group_pol,
+							       group_rids[i]);
 
 			if (NT_STATUS_IS_OK(result)) {
 				if (opt_verbose)
@@ -2206,7 +2208,10 @@ static NTSTATUS rpc_add_groupmem(struct rpc_pipe_client *pipe_hnd,


-- 
Samba Shared Repository


More information about the samba-cvs mailing list