[SCM] Samba Shared Repository - branch v3-2-test updated - initial-v3-2-test-1963-gf56b5f9

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


The branch, v3-2-test has been updated
       via  f56b5f976ae8a6511cbd9b73d0ec9d428da1f04d (commit)
       via  18c52030bb44dd0e05037477cd7e1329a8390560 (commit)
       via  f483797c688ee1a5c5f7e183cdf7c1b700b7db31 (commit)
      from  c2682273fdbe35dce0a9caffb829c8693e3cd845 (commit)

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


- Log -----------------------------------------------------------------
commit f56b5f976ae8a6511cbd9b73d0ec9d428da1f04d
Author: Günther Deschner <gd at samba.org>
Date:   Wed Feb 6 13:17:50 2008 +0100

    Remove unused marshalling for SAMR_SET_ALIASINFO.
    
    Guenther

commit 18c52030bb44dd0e05037477cd7e1329a8390560
Author: Günther Deschner <gd at samba.org>
Date:   Wed Feb 6 13:16:04 2008 +0100

    Use rpccli_samr_SetAliasInfo() in net.
    
    Guenther

commit f483797c688ee1a5c5f7e183cdf7c1b700b7db31
Author: Günther Deschner <gd at samba.org>
Date:   Wed Feb 6 12:53:43 2008 +0100

    Use pidl for _samr_SetAliasInfo().
    
    Guenther

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

Summary of changes:
 source/include/rpc_samr.h       |   12 --------
 source/rpc_client/cli_samr.c    |   33 ----------------------
 source/rpc_parse/parse_samr.c   |   58 ---------------------------------------
 source/rpc_server/srv_samr.c    |   23 +---------------
 source/rpc_server/srv_samr_nt.c |   57 ++++++++++++++------------------------
 source/utils/net_rpc.c          |   11 +++++---
 6 files changed, 29 insertions(+), 165 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/include/rpc_samr.h b/source/include/rpc_samr.h
index 63f6c27..f1b3cae 100644
--- a/source/include/rpc_samr.h
+++ b/source/include/rpc_samr.h
@@ -936,18 +936,6 @@ typedef struct {
 
 /********************************************************/
 
-typedef struct {
-	POLICY_HND alias_pol;        /* policy handle */
-	ALIAS_INFO_CTR ctr;
-} SAMR_Q_SET_ALIASINFO;
-
-typedef struct {
-	NTSTATUS status;
-} SAMR_R_SET_ALIASINFO;
-
-
-/********************************************************/
-
 /* SAMR_Q_QUERY_USERGROUPS - */
 typedef struct q_samr_query_usergroup_info
 {
diff --git a/source/rpc_client/cli_samr.c b/source/rpc_client/cli_samr.c
index 6a4d0dd..16ba3cd 100644
--- a/source/rpc_client/cli_samr.c
+++ b/source/rpc_client/cli_samr.c
@@ -172,39 +172,6 @@ NTSTATUS rpccli_samr_query_usergroups(struct rpc_pipe_client *cli,
 	return result;
 }
 
-/* Set alias info */
-
-NTSTATUS rpccli_samr_set_aliasinfo(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx,
-				POLICY_HND *alias_pol, ALIAS_INFO_CTR *ctr)
-{
-	prs_struct qbuf, rbuf;
-	SAMR_Q_SET_ALIASINFO q;
-	SAMR_R_SET_ALIASINFO r;
-	NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
-
-	DEBUG(10,("cli_samr_set_aliasinfo\n"));
-
-	ZERO_STRUCT(q);
-	ZERO_STRUCT(r);
-
-	/* Marshall data and send request */
-
-	init_samr_q_set_aliasinfo(&q, alias_pol, ctr);
-
-	CLI_DO_RPC(cli, mem_ctx, PI_SAMR, SAMR_SET_ALIASINFO,
-		q, r,
-		qbuf, rbuf,
-		samr_io_q_set_aliasinfo,
-		samr_io_r_set_aliasinfo,
-		NT_STATUS_UNSUCCESSFUL); 
-
-	/* Return output parameters */
-
-	result = r.status;
-
-	return result;
-}
-
 /**
  * Enumerate domain users
  *
diff --git a/source/rpc_parse/parse_samr.c b/source/rpc_parse/parse_samr.c
index 751c8d7..26b5b1c 100644
--- a/source/rpc_parse/parse_samr.c
+++ b/source/rpc_parse/parse_samr.c
@@ -2459,64 +2459,6 @@ bool samr_io_r_query_aliasinfo(const char *desc, SAMR_R_QUERY_ALIASINFO *out,
 }
 
 /*******************************************************************
-inits a SAMR_Q_SET_ALIASINFO structure.
-********************************************************************/
-
-void init_samr_q_set_aliasinfo(SAMR_Q_SET_ALIASINFO * q_u,
-			       POLICY_HND *hnd, ALIAS_INFO_CTR * ctr)
-{
-	DEBUG(5, ("init_samr_q_set_aliasinfo\n"));
-
-	q_u->alias_pol = *hnd;
-	q_u->ctr = *ctr;
-}
-
-/*******************************************************************
-reads or writes a structure.
-********************************************************************/
-
-bool samr_io_q_set_aliasinfo(const char *desc, SAMR_Q_SET_ALIASINFO * q_u,
-			     prs_struct *ps, int depth)
-{
-	if (q_u == NULL)
-		return False;
-
-	prs_debug(ps, depth, desc, "samr_io_q_set_aliasinfo");
-	depth++;
-
-	if(!prs_align(ps))
-		return False;
-
-	if(!smb_io_pol_hnd("alias_pol", &q_u->alias_pol, ps, depth))
-		return False;
-	if(!samr_alias_info_ctr("ctr", ps, depth, &q_u->ctr))
-		return False;
-
-	return True;
-}
-
-/*******************************************************************
-reads or writes a structure.
-********************************************************************/
-
-bool samr_io_r_set_aliasinfo(const char *desc, SAMR_R_SET_ALIASINFO * r_u,
-			     prs_struct *ps, int depth)
-{
-	if (r_u == NULL)
-		return False;
-
-	prs_debug(ps, depth, desc, "samr_io_r_set_aliasinfo");
-	depth++;
-
-	if(!prs_align(ps))
-		return False;
-	if(!prs_ntstatus("status", ps, depth, &r_u->status))
-		return False;
-
-	return True;
-}
-
-/*******************************************************************
 inits a SAMR_Q_LOOKUP_RIDS structure.
 ********************************************************************/
 
diff --git a/source/rpc_server/srv_samr.c b/source/rpc_server/srv_samr.c
index a547f0a..a38e946 100644
--- a/source/rpc_server/srv_samr.c
+++ b/source/rpc_server/srv_samr.c
@@ -744,28 +744,7 @@ static bool api_samr_set_groupinfo(pipes_struct *p)
 
 static bool api_samr_set_aliasinfo(pipes_struct *p)
 {
-	SAMR_Q_SET_ALIASINFO q_u;
-	SAMR_R_SET_ALIASINFO 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_aliasinfo("", &q_u, data, 0)) {
-		DEBUG(0,("api_samr_set_aliasinfo: unable to unmarshall SAMR_Q_SET_ALIASINFO.\n"));
-		return False;
-	}
-
-	r_u.status = _samr_set_aliasinfo(p, &q_u, &r_u);
-
-	if (!samr_io_r_set_aliasinfo("", &r_u, rdata, 0)) {
-		DEBUG(0,("api_samr_set_aliasinfo: unable to marshall SAMR_R_SET_ALIASINFO.\n"));
-		return False;
-	}
-
-	return True;
+	return proxy_samr_call(p, NDR_SAMR_SETALIASINFO);
 }
 
 /*******************************************************************
diff --git a/source/rpc_server/srv_samr_nt.c b/source/rpc_server/srv_samr_nt.c
index bb957c6..a06977e 100644
--- a/source/rpc_server/srv_samr_nt.c
+++ b/source/rpc_server/srv_samr_nt.c
@@ -4784,30 +4784,29 @@ NTSTATUS _samr_set_groupinfo(pipes_struct *p, SAMR_Q_SET_GROUPINFO *q_u, SAMR_R_
 }
 
 /*********************************************************************
- _samr_set_aliasinfo
-
- update an alias's comment.
+ _samr_SetAliasInfo
 *********************************************************************/
 
-NTSTATUS _samr_set_aliasinfo(pipes_struct *p, SAMR_Q_SET_ALIASINFO *q_u, SAMR_R_SET_ALIASINFO *r_u)
+NTSTATUS _samr_SetAliasInfo(pipes_struct *p,
+			    struct samr_SetAliasInfo *r)
 {
 	DOM_SID group_sid;
 	struct acct_info info;
-	ALIAS_INFO_CTR *ctr;
 	uint32 acc_granted;
 	bool can_mod_accounts;
 	NTSTATUS status;
 	DISP_INFO *disp_info = NULL;
 
-	if (!get_lsa_policy_samr_sid(p, &q_u->alias_pol, &group_sid, &acc_granted, &disp_info))
+	if (!get_lsa_policy_samr_sid(p, r->in.alias_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_ALIAS_SET_INFO, "_samr_set_aliasinfo"))) {
-		return r_u->status;
+	status = access_check_samr_function(acc_granted,
+					    SA_RIGHT_ALIAS_SET_INFO,
+					    "_samr_SetAliasInfo");
+	if (!NT_STATUS_IS_OK(status)) {
+		return status;
 	}
 
-	ctr=&q_u->ctr;
-
 	/* get the current group information */
 
 	become_root();
@@ -4817,10 +4816,10 @@ NTSTATUS _samr_set_aliasinfo(pipes_struct *p, SAMR_Q_SET_ALIASINFO *q_u, SAMR_R_
 	if ( !NT_STATUS_IS_OK(status))
 		return status;
 
-	switch (ctr->level) {
-		case 2:
+	switch (r->in.level) {
+		case ALIASINFONAME:
 		{
-			fstring group_name, acct_name;
+			fstring group_name;
 
 			/* We currently do not support renaming groups in the
 			   the BUILTIN domain.  Refer to util_builtin.c to understand
@@ -4833,19 +4832,16 @@ NTSTATUS _samr_set_aliasinfo(pipes_struct *p, SAMR_Q_SET_ALIASINFO *q_u, SAMR_R_
 
 			/* There has to be a valid name (and it has to be different) */
 
-			if ( !ctr->alias.info2.name.string )
+			if ( !r->in.info->name.string )
 				return NT_STATUS_INVALID_PARAMETER;
 
-			unistr2_to_ascii( acct_name, ctr->alias.info2.name.string,
-				sizeof(acct_name));
-
 			/* If the name is the same just reply "ok".  Yes this
 			   doesn't allow you to change the case of a group name. */
 
-			if ( strequal( acct_name, info.acct_name ) )
+			if ( strequal( r->in.info->name.string, info.acct_name ) )
 				return NT_STATUS_OK;
 
-			fstrcpy( info.acct_name, acct_name );
+			fstrcpy( info.acct_name, r->in.info->name.string);
 
 			/* make sure the name doesn't already exist as a user
 			   or local group */
@@ -4856,14 +4852,13 @@ NTSTATUS _samr_set_aliasinfo(pipes_struct *p, SAMR_Q_SET_ALIASINFO *q_u, SAMR_R_
 				return status;
 			break;
 		}
-		case 3:
-			if ( ctr->alias.info3.description.string ) {
-				unistr2_to_ascii( info.acct_desc,
-					ctr->alias.info3.description.string,
-					sizeof(info.acct_desc));
-			}
-			else
+		case ALIASINFODESCRIPTION:
+			if (r->in.info->description.string) {
+				fstrcpy(info.acct_desc,
+					r->in.info->description.string);
+			} else {
 				fstrcpy( info.acct_desc, "" );
+			}
 			break;
 		default:
 			return NT_STATUS_INVALID_INFO_CLASS;
@@ -5244,16 +5239,6 @@ NTSTATUS _samr_QueryAliasInfo(pipes_struct *p,
 /****************************************************************
 ****************************************************************/
 
-NTSTATUS _samr_SetAliasInfo(pipes_struct *p,
-			    struct samr_SetAliasInfo *r)
-{
-	p->rng_fault_state = true;
-	return NT_STATUS_NOT_IMPLEMENTED;
-}
-
-/****************************************************************
-****************************************************************/
-
 NTSTATUS _samr_QueryUserInfo(pipes_struct *p,
 			     struct samr_QueryUserInfo *r)
 {
diff --git a/source/utils/net_rpc.c b/source/utils/net_rpc.c
index a1e093a..68a8411 100644
--- a/source/utils/net_rpc.c
+++ b/source/utils/net_rpc.c
@@ -2051,7 +2051,7 @@ static NTSTATUS rpc_alias_add_internals(const DOM_SID *domain_sid,
 {
 	POLICY_HND connect_pol, domain_pol, alias_pol;
 	NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
-	ALIAS_INFO_CTR alias_info;
+	union samr_AliasInfo alias_info;
 	struct lsa_String alias_name;
 	uint32_t rid = 0;
 
@@ -2094,10 +2094,13 @@ static NTSTATUS rpc_alias_add_internals(const DOM_SID *domain_sid,
 
 	/* We've got a comment to set */
 
-	alias_info.level = 3;
-	init_samr_alias_info3(&alias_info.alias.info3, opt_comment);
+	init_lsa_String(&alias_info.description, opt_comment);
+
+	result = rpccli_samr_SetAliasInfo(pipe_hnd, mem_ctx,
+					  &alias_pol,
+					  3,
+					  &alias_info);
 
-	result = rpccli_samr_set_aliasinfo(pipe_hnd, mem_ctx, &alias_pol, &alias_info);
 	if (!NT_STATUS_IS_OK(result)) goto done;
 	
  done:


-- 
Samba Shared Repository


More information about the samba-cvs mailing list