r1915: use popt's cmdline_auth_info to fill the net_context
authorStefan Metzmacher <metze@samba.org>
Thu, 19 Aug 2004 12:36:05 +0000 (12:36 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 17:58:11 +0000 (12:58 -0500)
and print the user domain when prompting for a new password

metze
(This used to be commit aedb2e9e1c418a7ac3cc18299707ae9146e4047a)

source4/utils/net/net.c
source4/utils/net/net_password.c

index 05dbb35f4108d10cc49cd0d099207074751441be..89f4e77735bc485413c4a379b1fc4197ba9c2e51 100644 (file)
@@ -156,6 +156,7 @@ static int binary_net(int argc, const char **argv)
        const char **argv_new;
        TALLOC_CTX *mem_ctx;
        struct net_context *ctx;
+       const char *domain;
        poptContext pc;
        struct poptOption long_options[] = {
                POPT_AUTOHELP
@@ -172,16 +173,6 @@ static int binary_net(int argc, const char **argv)
        setbuffer(stdout, NULL, 0);
 #endif
 
-       mem_ctx = talloc_init("net_context");
-       ctx = talloc_p(mem_ctx, struct net_context);
-       if (!ctx) {
-               d_printf("talloc_init(net_context) failed\n");
-               exit(1);
-       }
-
-       ZERO_STRUCTP(ctx);
-       ctx->mem_ctx = mem_ctx;
-
        pc = poptGetContext("net", argc, (const char **) argv, long_options, 
                                POPT_CONTEXT_KEEP_FIRST);
 
@@ -213,6 +204,25 @@ static int binary_net(int argc, const char **argv)
                return 1;
        }
 
+       if (cmdline_auth_info.domain[0]) {
+               domain = cmdline_auth_info.domain;
+       } else {
+               domain = lp_workgroup();
+       }
+
+       mem_ctx = talloc_init("net_context");
+       ctx = talloc_p(mem_ctx, struct net_context);
+       if (!ctx) {
+               d_printf("talloc_init(net_context) failed\n");
+               exit(1);
+       }
+
+       ZERO_STRUCTP(ctx);
+       ctx->mem_ctx = mem_ctx;
+       ctx->user.account_name = talloc_strdup(ctx->mem_ctx, cmdline_auth_info.username);
+       ctx->user.domain_name = talloc_strdup(ctx->mem_ctx, domain);
+       ctx->user.password = talloc_strdup(ctx->mem_ctx, cmdline_auth_info.password);
+
        rc = net_run_function(ctx, argc_new-1, argv_new+1, net_functable, net_usage);
 
        if (rc != 0) {
index 90f26924a66b4ee27f0ec2d3cbf92942dd571f81..c9c549fcff22d4e79fedd84d3c241d8321d69c4e 100644 (file)
@@ -37,7 +37,8 @@ static int net_password_change(struct net_context *ctx, int argc, const char **a
        if (argc > 0 && argv[0]) {
                new_password = argv[0];
        } else {
-               password_prompt = talloc_asprintf(ctx->mem_ctx, "Enter new password for %s:", ctx->user.account_name);
+               password_prompt = talloc_asprintf(ctx->mem_ctx, "Enter new password for account [%s\\%s]:", 
+                                                       ctx->user.domain_name, ctx->user.account_name);
                new_password = getpass(password_prompt);
        }