[SCM] Samba Shared Repository - branch v3-3-test updated - release-3-2-0pre2-3472-g2ed4ce0

Günther Deschner gd at samba.org
Thu Jul 31 13:16:52 GMT 2008


The branch, v3-3-test has been updated
       via  2ed4ce0bf1723e35a6c5dfa7f8fa58fb9c7ab469 (commit)
       via  7e9fa2c5396d3663e83ffbf90475473fdb509871 (commit)
      from  2b262ca20de2a41833f68a88646a8df4d9507782 (commit)

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


- Log -----------------------------------------------------------------
commit 2ed4ce0bf1723e35a6c5dfa7f8fa58fb9c7ab469
Author: Günther Deschner <gd at samba.org>
Date:   Thu Jul 31 15:12:09 2008 +0200

    net: Use NetLocalGroupAdd() for adding aliases.
    
    Guenther

commit 7e9fa2c5396d3663e83ffbf90475473fdb509871
Author: Günther Deschner <gd at samba.org>
Date:   Thu Jul 31 15:11:20 2008 +0200

    netapi: in NetLocalGroupAdd_r() only set description if necessary.
    
    Guenther

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

Summary of changes:
 source/lib/netapi/localgroup.c |    2 +-
 source/utils/net_rpc.c         |   83 ++++++++++------------------------------
 2 files changed, 22 insertions(+), 63 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/lib/netapi/localgroup.c b/source/lib/netapi/localgroup.c
index a0a122d..c15a17e 100644
--- a/source/lib/netapi/localgroup.c
+++ b/source/lib/netapi/localgroup.c
@@ -223,7 +223,7 @@ WERROR NetLocalGroupAdd_r(struct libnetapi_ctx *ctx,
 		goto done;
 	}
 
-	if (r->in.level == 1) {
+	if (r->in.level == 1 && info1->lgrpi1_comment) {
 
 		union samr_AliasInfo alias_info;
 
diff --git a/source/utils/net_rpc.c b/source/utils/net_rpc.c
index a3fdb69..730681c 100644
--- a/source/utils/net_rpc.c
+++ b/source/utils/net_rpc.c
@@ -1913,83 +1913,42 @@ static int rpc_group_add_internals(struct net_context *c, int argc, const char *
 	return 0;
 }
 
-static NTSTATUS rpc_alias_add_internals(struct net_context *c,
-					const DOM_SID *domain_sid,
-					const char *domain_name,
-					struct cli_state *cli,
-					struct rpc_pipe_client *pipe_hnd,
-					TALLOC_CTX *mem_ctx,
-					int argc,
-					const char **argv)
+static int rpc_alias_add_internals(struct net_context *c, int argc, const char **argv)
 {
-	POLICY_HND connect_pol, domain_pol, alias_pol;
-	NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
-	union samr_AliasInfo alias_info;
-	struct lsa_String alias_name;
-	uint32_t rid = 0;
+	NET_API_STATUS status;
+	struct LOCALGROUP_INFO_1 info1;
+	uint32_t parm_error = 0;
 
 	if (argc != 1 || c->display_usage) {
 		rpc_group_usage(c, argc, argv);
-		return NT_STATUS_OK;
+		return 0;
 	}
 
-	init_lsa_String(&alias_name, argv[0]);
-
-	/* Get sam policy handle */
-
-	result = rpccli_samr_Connect2(pipe_hnd, mem_ctx,
-				      pipe_hnd->desthost,
-				      MAXIMUM_ALLOWED_ACCESS,
-				      &connect_pol);
-	if (!NT_STATUS_IS_OK(result)) goto done;
-
-	/* Get domain policy handle */
-
-	result = rpccli_samr_OpenDomain(pipe_hnd, mem_ctx,
-					&connect_pol,
-					MAXIMUM_ALLOWED_ACCESS,
-					CONST_DISCARD(struct dom_sid2 *, domain_sid),
-					&domain_pol);
-	if (!NT_STATUS_IS_OK(result)) goto done;
-
-	/* Create the group */
-
-	result = rpccli_samr_CreateDomAlias(pipe_hnd, mem_ctx,
-					    &domain_pol,
-					    &alias_name,
-					    MAXIMUM_ALLOWED_ACCESS,
-					    &alias_pol,
-					    &rid);
-	if (!NT_STATUS_IS_OK(result)) goto done;
-
-	if (strlen(c->opt_comment) == 0) goto done;
-
-	/* We've got a comment to set */
-
-	init_lsa_String(&alias_info.description, c->opt_comment);
+	ZERO_STRUCT(info1);
 
-	result = rpccli_samr_SetAliasInfo(pipe_hnd, mem_ctx,
-					  &alias_pol,
-					  3,
-					  &alias_info);
+	info1.lgrpi1_name = argv[0];
+	if (c->opt_comment && strlen(c->opt_comment) > 0) {
+		info1.lgrpi1_comment = c->opt_comment;
+	}
 
-	if (!NT_STATUS_IS_OK(result)) goto done;
+	status = NetLocalGroupAdd(c->opt_host, 1, (uint8_t *)&info1, &parm_error);
 
- done:
-	if (NT_STATUS_IS_OK(result))
-		DEBUG(5, ("add alias succeeded\n"));
-	else
-		d_fprintf(stderr, "add alias failed: %s\n", nt_errstr(result));
+	if (status != 0) {
+		d_fprintf(stderr, "Failed to add alias '%s' with: %s.\n",
+			argv[0], libnetapi_get_error_string(c->netapi_ctx,
+							    status));
+		return -1;
+	} else {
+		d_printf("Added alias '%s'.\n", argv[0]);
+	}
 
-	return result;
+	return 0;
 }
 
 static int rpc_group_add(struct net_context *c, int argc, const char **argv)
 {
 	if (c->opt_localgroup)
-		return run_rpc_command(c, NULL, &ndr_table_samr.syntax_id, 0,
-				       rpc_alias_add_internals,
-				       argc, argv);
+		return rpc_alias_add_internals(c, argc, argv);
 
 	return rpc_group_add_internals(c, argc, argv);
 }


-- 
Samba Shared Repository


More information about the samba-cvs mailing list