[SCM] Samba Shared Repository - branch v3-2-test updated - initial-v3-2-test-1966-g2bcc01f

Günther Deschner gd at samba.org
Thu Feb 7 10:08:48 GMT 2008


The branch, v3-2-test has been updated
       via  2bcc01fd134ceff1a45311dec73a5db9397033f9 (commit)
       via  5909e9f97179b125202c323a256add20c3db9e5f (commit)
       via  a576d9e80dffb15e29c3bf4da225bbe34f77053c (commit)
      from  f56b5f976ae8a6511cbd9b73d0ec9d428da1f04d (commit)

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


- Log -----------------------------------------------------------------
commit 2bcc01fd134ceff1a45311dec73a5db9397033f9
Author: Günther Deschner <gd at samba.org>
Date:   Wed Feb 6 13:08:32 2008 +0100

    Remove unused marshalling for SAMR_SET_GROUPINFO.
    
    Guenther

commit 5909e9f97179b125202c323a256add20c3db9e5f
Author: Günther Deschner <gd at samba.org>
Date:   Wed Feb 6 13:06:31 2008 +0100

    Use rpccli_samr_SetGroupInfo() in net.
    
    Guenther

commit a576d9e80dffb15e29c3bf4da225bbe34f77053c
Author: Günther Deschner <gd at samba.org>
Date:   Wed Feb 6 12:57:59 2008 +0100

    Use pidl for _samr_SetGroupInfo().
    
    Guenther

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

Summary of changes:
 source/include/rpc_samr.h       |   16 ---------
 source/rpc_client/cli_samr.c    |   33 ------------------
 source/rpc_parse/parse_samr.c   |   71 ---------------------------------------
 source/rpc_server/srv_samr.c    |   23 +------------
 source/rpc_server/srv_samr_nt.c |   49 ++++++++++----------------
 source/utils/net_rpc.c          |   22 ++++++-----
 6 files changed, 32 insertions(+), 182 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/include/rpc_samr.h b/source/include/rpc_samr.h
index f1b3cae..271ecbf 100644
--- a/source/include/rpc_samr.h
+++ b/source/include/rpc_samr.h
@@ -882,22 +882,6 @@ typedef struct r_samr_query_groupinfo_info
 } SAMR_R_QUERY_GROUPINFO;
 
 
-/* SAMR_Q_SET_GROUPINFO - SAM Group Info */
-typedef struct q_samr_set_group_info
-{
-	POLICY_HND pol;        /* policy handle */
-	GROUP_INFO_CTR *ctr;
-
-} SAMR_Q_SET_GROUPINFO;
-
-/* SAMR_R_SET_GROUPINFO - SAM Group Info */
-typedef struct r_samr_set_group_info
-{
-	NTSTATUS status;
-
-} SAMR_R_SET_GROUPINFO;
-
-
 /********************************************************/
 
 typedef struct {
diff --git a/source/rpc_client/cli_samr.c b/source/rpc_client/cli_samr.c
index 16ba3cd..d454f95 100644
--- a/source/rpc_client/cli_samr.c
+++ b/source/rpc_client/cli_samr.c
@@ -64,39 +64,6 @@ NTSTATUS rpccli_samr_query_userinfo(struct rpc_pipe_client *cli,
 	return result;
 }
 
-/* Set group info */
-
-NTSTATUS rpccli_samr_set_groupinfo(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx,
-				POLICY_HND *group_pol, GROUP_INFO_CTR *ctr)
-{
-	prs_struct qbuf, rbuf;
-	SAMR_Q_SET_GROUPINFO q;
-	SAMR_R_SET_GROUPINFO r;
-	NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
-
-	DEBUG(10,("cli_samr_set_groupinfo\n"));
-
-	ZERO_STRUCT(q);
-	ZERO_STRUCT(r);
-
-	/* Marshall data and send request */
-
-	init_samr_q_set_groupinfo(&q, group_pol, ctr);
-
-	CLI_DO_RPC(cli, mem_ctx, PI_SAMR, SAMR_SET_GROUPINFO,
-		q, r,
-		qbuf, rbuf,
-		samr_io_q_set_groupinfo,
-		samr_io_r_set_groupinfo,
-		NT_STATUS_UNSUCCESSFUL); 
-
-	/* Return output parameters */
-
-	result = r.status;
-
-	return result;
-}
-
 /* Query group info */
 
 NTSTATUS rpccli_samr_query_groupinfo(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx,
diff --git a/source/rpc_parse/parse_samr.c b/source/rpc_parse/parse_samr.c
index 26b5b1c..dad35ec 100644
--- a/source/rpc_parse/parse_samr.c
+++ b/source/rpc_parse/parse_samr.c
@@ -1538,77 +1538,6 @@ static bool samr_group_info_ctr(const char *desc, GROUP_INFO_CTR **ctr,
 }
 
 /*******************************************************************
-inits a SAMR_Q_SET_GROUPINFO structure.
-********************************************************************/
-
-void init_samr_q_set_groupinfo(SAMR_Q_SET_GROUPINFO * q_e,
-			       POLICY_HND *pol, GROUP_INFO_CTR * ctr)
-{
-	DEBUG(5, ("init_samr_q_set_groupinfo\n"));
-
-	q_e->pol = *pol;
-	q_e->ctr = ctr;
-}
-
-/*******************************************************************
-reads or writes a structure.
-********************************************************************/
-
-bool samr_io_q_set_groupinfo(const char *desc, SAMR_Q_SET_GROUPINFO * q_e,
-			     prs_struct *ps, int depth)
-{
-	if (q_e == NULL)
-		return False;
-
-	prs_debug(ps, depth, desc, "samr_io_q_set_groupinfo");
-	depth++;
-
-	if(!prs_align(ps))
-		return False;
-
-	if(!smb_io_pol_hnd("pol", &q_e->pol, ps, depth))
-		return False;
-	
-	if(!samr_group_info_ctr("ctr", &q_e->ctr, ps, depth))
-		return False;
-
-	return True;
-}
-
-/*******************************************************************
-inits a SAMR_R_SET_GROUPINFO structure.
-********************************************************************/
-
-void init_samr_r_set_groupinfo(SAMR_R_SET_GROUPINFO * r_u, NTSTATUS status)
-{
-	DEBUG(5, ("init_samr_r_set_groupinfo\n"));
-
-	r_u->status = status;
-}
-
-/*******************************************************************
-reads or writes a structure.
-********************************************************************/
-
-bool samr_io_r_set_groupinfo(const char *desc, SAMR_R_SET_GROUPINFO * r_u,
-			     prs_struct *ps, int depth)
-{
-	if (r_u == NULL)
-		return False;
-
-	prs_debug(ps, depth, desc, "samr_io_r_set_groupinfo");
-	depth++;
-
-	if(!prs_align(ps))
-		return False;
-
-	if(!prs_ntstatus("status", ps, depth, &r_u->status))
-		return False;
-
-	return True;
-}
-
-/*******************************************************************
 inits a SAMR_Q_QUERY_GROUPINFO structure.
 ********************************************************************/
 
diff --git a/source/rpc_server/srv_samr.c b/source/rpc_server/srv_samr.c
index a38e946..2fea3c1 100644
--- a/source/rpc_server/srv_samr.c
+++ b/source/rpc_server/srv_samr.c
@@ -714,28 +714,7 @@ static bool api_samr_query_groupinfo(pipes_struct *p)
 
 static bool api_samr_set_groupinfo(pipes_struct *p)
 {
-	SAMR_Q_SET_GROUPINFO q_u;
-	SAMR_R_SET_GROUPINFO 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_set_groupinfo("", &q_u, data, 0)) {
-		DEBUG(0,("api_samr_set_groupinfo: unable to unmarshall SAMR_Q_SET_GROUPINFO.\n"));
-		return False;
-	}
-
-	r_u.status = _samr_set_groupinfo(p, &q_u, &r_u);
-
-	if (!samr_io_r_set_groupinfo("", &r_u, rdata, 0)) {
-		DEBUG(0,("api_samr_set_groupinfo: unable to marshall SAMR_R_SET_GROUPINFO.\n"));
-		return False;
-	}
-
-	return True;
+	return proxy_samr_call(p, NDR_SAMR_SETGROUPINFO);
 }
 
 /*******************************************************************
diff --git a/source/rpc_server/srv_samr_nt.c b/source/rpc_server/srv_samr_nt.c
index a06977e..092624d 100644
--- a/source/rpc_server/srv_samr_nt.c
+++ b/source/rpc_server/srv_samr_nt.c
@@ -4720,43 +4720,42 @@ NTSTATUS _samr_query_groupinfo(pipes_struct *p, SAMR_Q_QUERY_GROUPINFO *q_u, SAM
 }
 
 /*********************************************************************
- _samr_set_groupinfo
-
- update a domain group's comment.
+ _samr_SetGroupInfo
 *********************************************************************/
 
-NTSTATUS _samr_set_groupinfo(pipes_struct *p, SAMR_Q_SET_GROUPINFO *q_u, SAMR_R_SET_GROUPINFO *r_u)
+NTSTATUS _samr_SetGroupInfo(pipes_struct *p,
+			    struct samr_SetGroupInfo *r)
 {
 	DOM_SID group_sid;
 	GROUP_MAP map;
-	GROUP_INFO_CTR *ctr;
 	uint32 acc_granted;
-	NTSTATUS ret;
-	bool result;
+	NTSTATUS status;
+	bool ret;
 	bool can_mod_accounts;
 	DISP_INFO *disp_info = NULL;
 
-	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_SET_INFO, "_samr_set_groupinfo"))) {
-		return r_u->status;
+	status = access_check_samr_function(acc_granted,
+					    SA_RIGHT_GROUP_SET_INFO,
+					    "_samr_SetGroupInfo");
+	if (!NT_STATUS_IS_OK(status)) {
+		return status;
 	}
 
 	become_root();
-	result = get_domain_group_from_sid(group_sid, &map);
+	ret = get_domain_group_from_sid(group_sid, &map);
 	unbecome_root();
-	if (!result)
+	if (!ret)
 		return NT_STATUS_NO_SUCH_GROUP;
 
-	ctr=q_u->ctr;
-
-	switch (ctr->switch_value1) {
+	switch (r->in.level) {
 		case 1:
-			unistr2_to_ascii(map.comment, &(ctr->group.info1.uni_acct_desc), sizeof(map.comment));
+			fstrcpy(map.comment, r->in.info->all.description.string);
 			break;
 		case 4:
-			unistr2_to_ascii(map.comment, &(ctr->group.info4.uni_acct_desc), sizeof(map.comment));
+			fstrcpy(map.comment, r->in.info->description.string);
 			break;
 		default:
 			return NT_STATUS_INVALID_INFO_CLASS;
@@ -4769,18 +4768,18 @@ NTSTATUS _samr_set_groupinfo(pipes_struct *p, SAMR_Q_SET_GROUPINFO *q_u, SAMR_R_
 	if ( can_mod_accounts )
 		become_root();
 
-	ret = pdb_update_group_mapping_entry(&map);
+	status = pdb_update_group_mapping_entry(&map);
 
 	if ( can_mod_accounts )
 		unbecome_root();
 
 	/******** End SeAddUsers BLOCK *********/
 
-	if (NT_STATUS_IS_OK(ret)) {
+	if (NT_STATUS_IS_OK(status)) {
 		force_flush_samr_cache(disp_info);
 	}
 
-	return ret;
+	return status;
 }
 
 /*********************************************************************
@@ -5209,16 +5208,6 @@ NTSTATUS _samr_QueryGroupInfo(pipes_struct *p,
 /****************************************************************
 ****************************************************************/
 
-NTSTATUS _samr_SetGroupInfo(pipes_struct *p,
-			    struct samr_SetGroupInfo *r)
-{
-	p->rng_fault_state = true;
-	return NT_STATUS_NOT_IMPLEMENTED;
-}
-
-/****************************************************************
-****************************************************************/
-
 NTSTATUS _samr_SetMemberAttributesOfGroup(pipes_struct *p,
 					  struct samr_SetMemberAttributesOfGroup *r)
 {
diff --git a/source/utils/net_rpc.c b/source/utils/net_rpc.c
index 68a8411..560125b 100644
--- a/source/utils/net_rpc.c
+++ b/source/utils/net_rpc.c
@@ -1983,7 +1983,7 @@ static NTSTATUS rpc_group_add_internals(const DOM_SID *domain_sid,
 {
 	POLICY_HND connect_pol, domain_pol, group_pol;
 	NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
-	GROUP_INFO_CTR group_info;
+	union samr_GroupInfo group_info;
 	struct lsa_String grp_name;
 	uint32_t rid = 0;
 
@@ -2026,10 +2026,12 @@ static NTSTATUS rpc_group_add_internals(const DOM_SID *domain_sid,
 
 	/* We've got a comment to set */
 
-	group_info.switch_value1 = 4;
-	init_samr_group_info4(&group_info.group.info4, opt_comment);
+	init_lsa_String(&group_info.description, opt_comment);
 
-	result = rpccli_samr_set_groupinfo(pipe_hnd, mem_ctx, &group_pol, &group_info);
+	result = rpccli_samr_SetGroupInfo(pipe_hnd, mem_ctx,
+					  &group_pol,
+					  4,
+					  &group_info);
 	if (!NT_STATUS_IS_OK(result)) goto done;
 	
  done:
@@ -3076,7 +3078,7 @@ static NTSTATUS rpc_group_rename_internals(const DOM_SID *domain_sid,
 	NTSTATUS result;
 	POLICY_HND connect_pol, domain_pol, group_pol;
 	uint32 num_rids, *rids, *rid_types;
-	GROUP_INFO_CTR ctr;
+	union samr_GroupInfo group_info;
 
 	if (argc != 2) {
 		d_printf("Usage: 'net rpc group rename group newname'\n");
@@ -3126,12 +3128,12 @@ static NTSTATUS rpc_group_rename_internals(const DOM_SID *domain_sid,
 	if (!NT_STATUS_IS_OK(result))
 		return result;
 
-	ZERO_STRUCT(ctr);
-
-	ctr.switch_value1 = 2;
-	init_samr_group_info2(&ctr.group.info2, argv[1]);
+	init_lsa_String(&group_info.name, argv[1]);
 
-	result = rpccli_samr_set_groupinfo(pipe_hnd, mem_ctx, &group_pol, &ctr);
+	result = rpccli_samr_SetGroupInfo(pipe_hnd, mem_ctx,
+					  &group_pol,
+					  2,
+					  &group_info);
 
 	if (!NT_STATUS_IS_OK(result))
 		return result;


-- 
Samba Shared Repository


More information about the samba-cvs mailing list