[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