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 <[EMAIL PROTECTED]> Date: Thu Jul 31 15:12:09 2008 +0200 net: Use NetLocalGroupAdd() for adding aliases. Guenther commit 7e9fa2c5396d3663e83ffbf90475473fdb509871 Author: Günther Deschner <[EMAIL PROTECTED]> 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