r12320: Add command-line processing hooks for simple bind DN, and password callback.
authorAndrew Bartlett <abartlet@samba.org>
Sun, 18 Dec 2005 21:44:43 +0000 (21:44 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 18:47:28 +0000 (13:47 -0500)
We may change this in future.

Andrew Bartlett
(This used to be commit 5fec784d4795af0cf82d36766586ded134f62165)

source4/lib/cmdline/credentials.c
source4/lib/cmdline/popt_common.c

index a3d4920e6d24936d078f1718dfd7762c40f1464a..cb1ba5c963d0ccf78f52cc7cc23b22f68ecc637f 100644 (file)
@@ -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);
index 43ea203b78bc9d02c6880a2fcd8c1f56412ec5d8..0aa4a634fc83c9e0bd528e9cec1802a4819aee11 100644 (file)
@@ -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
 };