diff options
Diffstat (limited to 'source4/lib/cmdline/popt_common.c')
-rw-r--r-- | source4/lib/cmdline/popt_common.c | 88 |
1 files changed, 1 insertions, 87 deletions
diff --git a/source4/lib/cmdline/popt_common.c b/source4/lib/cmdline/popt_common.c index b1f4563fb1..b8c5b5b9d3 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, OPT_SIMPLE_BIND_DN}; +enum {OPT_OPTION=1,OPT_LEAK_REPORT,OPT_LEAK_REPORT_FULL,OPT_DEBUG_STDERR}; struct cli_credentials *cmdline_credentials = NULL; @@ -173,89 +173,3 @@ struct poptOption popt_common_version[] = { POPT_TABLEEND }; -/* Handle command line options: - * -U,--user - * -A,--authentication-file - * -k,--use-kerberos - * -N,--no-pass - * -S,--signing - * -P --machine-pass - */ - - -static BOOL dont_ask; - -/* - disable asking for a password -*/ -void popt_common_dont_ask(void) -{ - dont_ask = True; -} - -static void popt_common_credentials_callback(poptContext con, - enum poptCallbackReason reason, - const struct poptOption *opt, - const char *arg, const void *data) -{ - if (reason == POPT_CALLBACK_REASON_PRE) { - cmdline_credentials = cli_credentials_init(talloc_autofree_context()); - return; - } - - if (reason == POPT_CALLBACK_REASON_POST) { - cli_credentials_guess(cmdline_credentials); - - if (!dont_ask) { - cli_credentials_set_cmdline_callbacks(cmdline_credentials); - } - return; - } - - switch(opt->val) { - case 'U': - { - char *lp; - - cli_credentials_parse_string(cmdline_credentials, arg, CRED_SPECIFIED); - /* This breaks the abstraction, including the const above */ - if ((lp=strchr_m(arg,'%'))) { - lp[0]='\0'; - lp++; - memset(lp,0,strlen(lp)); - } - } - break; - - case 'A': - cli_credentials_parse_file(cmdline_credentials, arg, CRED_SPECIFIED); - break; - - case 'S': - lp_set_cmdline("client signing", arg); - break; - - case 'P': - /* Later, after this is all over, get the machine account details from the secrets.ldb */ - cli_credentials_set_machine_account_pending(cmdline_credentials); - - /* machine accounts only work with kerberos (fall though)*/ - break; - case OPT_SIMPLE_BIND_DN: - cli_credentials_set_bind_dn(cmdline_credentials, arg); - break; - } -} - - - -struct poptOption popt_common_credentials[] = { - { NULL, 0, POPT_ARG_CALLBACK|POPT_CBFLAG_PRE|POPT_CBFLAG_POST, popt_common_credentials_callback }, - { "user", 'U', POPT_ARG_STRING, NULL, 'U', "Set the network username", "[DOMAIN\\]USERNAME[%PASSWORD]" }, - { "no-pass", 'N', POPT_ARG_NONE, &dont_ask, True, "Don't ask for a password" }, - { "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 -}; |