summaryrefslogtreecommitdiff
path: root/source4
diff options
context:
space:
mode:
Diffstat (limited to 'source4')
-rw-r--r--source4/client/client.c26
-rw-r--r--source4/lib/cmdline/popt_common.c26
2 files changed, 31 insertions, 21 deletions
diff --git a/source4/client/client.c b/source4/client/client.c
index f9fbbab6ec..35569ca75c 100644
--- a/source4/client/client.c
+++ b/source4/client/client.c
@@ -36,8 +36,6 @@ static pstring desthost;
static pstring username;
static pstring domain;
static pstring password;
-static BOOL use_kerberos;
-static BOOL got_pass;
static char *cmdstr = NULL;
static int io_bufsize = 64512;
@@ -2799,18 +2797,11 @@ static struct smbcli_state *do_connect(const char *server, const char *share)
return NULL;
}
- if (!got_pass) {
- const char *pass = getpass("Password: ");
- if (pass) {
- pstrcpy(password, pass);
- }
- }
-
status = smbcli_session_setup(c, username, password, domain);
if (NT_STATUS_IS_ERR(status)) {
d_printf("authenticated session setup failed: %s\n", nt_errstr(status));
/* if a password was not supplied then try again with a null username */
- if (password[0] || !username[0] || use_kerberos) {
+ if (password[0] || !username[0]) {
status = smbcli_session_setup(c, "", "", lp_workgroup());
}
if (NT_STATUS_IS_ERR(status)) {
@@ -3064,8 +3055,7 @@ static void remember_query_host(const char *arg,
}
if (poptPeekArg(pc)) {
- cmdline_auth_info.got_pass = True;
- pstrcpy(cmdline_auth_info.password,poptGetArg(pc));
+ cmdline_set_userpassword(poptGetArg(pc));
}
/*init_names(); */
@@ -3077,15 +3067,9 @@ static void remember_query_host(const char *arg,
poptFreeContext(pc);
- pstrcpy(username, cmdline_auth_info.username);
- if (cmdline_auth_info.domain[0]) {
- pstrcpy(domain, cmdline_auth_info.domain);
- } else {
- pstrcpy(domain, lp_workgroup());
- }
- pstrcpy(password, cmdline_auth_info.password);
- use_kerberos = cmdline_auth_info.use_kerberos;
- got_pass = cmdline_auth_info.got_pass;
+ pstrcpy(username, cmdline_get_username());
+ pstrcpy(domain, cmdline_get_userdomain());
+ pstrcpy(password, cmdline_get_userpassword());
DEBUG( 3, ( "Client started (version %s).\n", SAMBA_VERSION_STRING ) );
diff --git a/source4/lib/cmdline/popt_common.c b/source4/lib/cmdline/popt_common.c
index 20b9aac201..7acdb34bba 100644
--- a/source4/lib/cmdline/popt_common.c
+++ b/source4/lib/cmdline/popt_common.c
@@ -397,11 +397,21 @@ struct poptOption popt_common_credentials[] = {
POPT_TABLEEND
};
+void cmdline_set_username(const char *name)
+{
+ pstrcpy(cmdline_auth_info.username, name);
+}
+
const char *cmdline_get_username(void)
{
return cmdline_auth_info.username;
}
+void cmdline_set_userdomain(const char *domain)
+{
+ pstrcpy(cmdline_auth_info.domain, domain);
+}
+
const char *cmdline_get_userdomain(void)
{
if (cmdline_auth_info.domain[0]) {
@@ -431,3 +441,19 @@ const char *cmdline_get_userpassword(void)
return getpass(prompt);
}
+
+void cmdline_set_userpassword(const char *pass)
+{
+ cmdline_auth_info.got_pass = True;
+ pstrcpy(cmdline_auth_info.password, pass);
+}
+
+void cmdline_set_use_kerberos(BOOL use_kerberos)
+{
+ cmdline_auth_info.use_kerberos = use_kerberos;
+}
+
+BOOL cmdline_get_use_kerberos(void)
+{
+ return cmdline_auth_info.use_kerberos;
+}