diff options
-rw-r--r-- | source4/lib/cmdline/credentials.c | 19 | ||||
-rw-r--r-- | source4/lib/cmdline/popt_common.c | 6 |
2 files changed, 18 insertions, 7 deletions
diff --git a/source4/lib/cmdline/credentials.c b/source4/lib/cmdline/credentials.c index a3d4920e6d..cb1ba5c963 100644 --- a/source4/lib/cmdline/credentials.c +++ b/source4/lib/cmdline/credentials.c @@ -32,13 +32,20 @@ static const char *cmdline_get_userpassword(struct cli_credentials *credentials) const char *username; TALLOC_CTX *mem_ctx = talloc_new(NULL); - cli_credentials_get_ntlm_username_domain(credentials, mem_ctx, &username, &domain); - if (domain && domain[0]) { - prompt = talloc_asprintf(mem_ctx, "Password for [%s\\%s]:", - domain, username); - } else { + const char *bind_dn = cli_credentials_get_bind_dn(credentials); + + if (bind_dn) { prompt = talloc_asprintf(mem_ctx, "Password for [%s]:", - username); + bind_dn); + } else { + cli_credentials_get_ntlm_username_domain(credentials, mem_ctx, &username, &domain); + if (domain && domain[0]) { + prompt = talloc_asprintf(mem_ctx, "Password for [%s\\%s]:", + domain, username); + } else { + prompt = talloc_asprintf(mem_ctx, "Password for [%s]:", + username); + } } ret = getpass(prompt); diff --git a/source4/lib/cmdline/popt_common.c b/source4/lib/cmdline/popt_common.c index 43ea203b78..0aa4a634fc 100644 --- a/source4/lib/cmdline/popt_common.c +++ b/source4/lib/cmdline/popt_common.c @@ -37,7 +37,7 @@ * -i,--scope */ -enum {OPT_OPTION=1,OPT_LEAK_REPORT,OPT_LEAK_REPORT_FULL, OPT_DEBUG_STDERR}; +enum {OPT_OPTION=1,OPT_LEAK_REPORT,OPT_LEAK_REPORT_FULL, OPT_DEBUG_STDERR, OPT_SIMPLE_BIND_DN}; struct cli_credentials *cmdline_credentials = NULL; @@ -242,6 +242,9 @@ static void popt_common_credentials_callback(poptContext con, /* machine accounts only work with kerberos (fall though)*/ break; + case OPT_SIMPLE_BIND_DN: + cli_credentials_set_bind_dn(cmdline_credentials, arg); + break; } } @@ -254,5 +257,6 @@ struct poptOption popt_common_credentials[] = { { "authentication-file", 'A', POPT_ARG_STRING, NULL, 'A', "Get the credentials from a file", "FILE" }, { "signing", 'S', POPT_ARG_STRING, NULL, 'S', "Set the client signing state", "on|off|required" }, { "machine-pass", 'P', POPT_ARG_NONE, NULL, 'P', "Use stored machine account password (implies -k)" }, + { "simple-bind-dn", 0, POPT_ARG_STRING, NULL, OPT_SIMPLE_BIND_DN, "DN to use for a simple bind" }, POPT_TABLEEND }; |