*
* @param cred Credentials structure to fill in
*/
-_PUBLIC_ void cli_credentials_guess(struct cli_credentials *cred,
- struct loadparm_context *lp_ctx)
+_PUBLIC_ bool cli_credentials_guess(struct cli_credentials *cred,
+ struct loadparm_context *lp_ctx)
{
const char *error_string;
const char *env = NULL;
+ bool ok;
if (lp_ctx != NULL) {
- cli_credentials_set_conf(cred, lp_ctx);
+ ok = cli_credentials_set_conf(cred, lp_ctx);
+ if (!ok) {
+ return false;
+ }
}
env = getenv("LOGNAME");
size_t len = strlen(env);
if (len > 0 && len <= 1024) {
- cli_credentials_set_username(cred, env, CRED_GUESS_ENV);
+ (void)cli_credentials_set_username(cred,
+ env,
+ CRED_GUESS_ENV);
}
}
if (len > 0 && len <= 1024) {
char *p = NULL;
- cli_credentials_parse_string(cred, env, CRED_GUESS_ENV);
+ (void)cli_credentials_parse_string(cred,
+ env,
+ CRED_GUESS_ENV);
if ((p = strchr_m(env, '%'))) {
memset(p, '\0', strlen(cred->password));
}
size_t len = strlen(env);
if (len > 0 && len <= 1024) {
- cli_credentials_set_password(cred, env, CRED_GUESS_ENV);
+ (void)cli_credentials_set_password(cred,
+ env,
+ CRED_GUESS_ENV);
}
}
- env = getenv("PASSWD");
+ env = getenv("PASSWD_FD");
if (env != NULL) {
size_t len = strlen(env);
if (len > 0 && len <= 1024) {
int fd = atoi(env);
- cli_credentials_parse_password_fd(cred, fd, CRED_GUESS_FILE);
+ (void)cli_credentials_parse_password_fd(cred,
+ fd,
+ CRED_GUESS_FILE);
}
}
size_t len = strlen(env);
if (len > 0 && len <= 4096) {
- cli_credentials_parse_password_file(cred, env, CRED_GUESS_FILE);
+ (void)cli_credentials_parse_password_file(cred,
+ env,
+ CRED_GUESS_FILE);
}
}
if (lp_ctx != NULL &&
cli_credentials_get_kerberos_state(cred) != CRED_USE_KERBEROS_DISABLED) {
- cli_credentials_set_ccache(cred, lp_ctx, NULL, CRED_GUESS_FILE,
- &error_string);
+ (void)cli_credentials_set_ccache(cred,
+ lp_ctx,
+ NULL,
+ CRED_GUESS_FILE,
+ &error_string);
}
+
+ return true;
}
/**
TALLOC_CTX *mem_ctx = *state;
struct cli_credentials *creds = NULL;
const char *env_user = getenv("USER");
+ bool ok;
creds = cli_credentials_init(mem_ctx);
assert_non_null(creds);
setenv("PASSWD", "SECRET", 1);
- cli_credentials_guess(creds, NULL);
+ ok = cli_credentials_guess(creds, NULL);
+ assert_true(ok);
assert_string_equal(creds->username, env_user);
assert_int_equal(creds->username_obtained, CRED_GUESS_ENV);
{
TALLOC_CTX *mem_ctx = *state;
struct cli_credentials *creds = NULL;
+ bool ok;
creds = cli_credentials_init_anon(mem_ctx);
assert_non_null(creds);
setenv("PASSWD", "SECRET", 1);
- cli_credentials_guess(creds, NULL);
+ ok = cli_credentials_guess(creds, NULL);
+ assert_true(ok);
assert_string_equal(creds->username, "");
assert_int_equal(creds->username_obtained, CRED_SPECIFIED);
assert_int_equal(creds->kerberos_state_obtained, CRED_SMB_CONF);
assert_int_equal(creds->kerberos_state, CRED_USE_KERBEROS_DESIRED);
- cli_credentials_guess(creds, lp_ctx);
+ ok = cli_credentials_guess(creds, lp_ctx);
+ assert_true(ok);
assert_int_equal(creds->kerberos_state_obtained, CRED_SMB_CONF);
assert_int_equal(creds->kerberos_state, CRED_USE_KERBEROS_DESIRED);
assert_int_equal(creds->ccache_obtained, CRED_GUESS_FILE);