diff options
author | Steve Holme <steve_holme@hotmail.com> | 2014-02-16 11:10:09 +0000 |
---|---|---|
committer | Steve Holme <steve_holme@hotmail.com> | 2014-02-16 11:13:16 +0000 |
commit | f3bae6ed737c59791c5d36932e4d2387309f8fdb (patch) | |
tree | ab98cdcbe9ab7fa19d47876733863d4a1eca1b6f /src/tool_paramhlp.c | |
parent | 013e9a11ffffe954ca56b70b8400fe1986966e96 (diff) | |
download | curl-f3bae6ed737c59791c5d36932e4d2387309f8fdb.tar.gz |
tool_paramhlp: Added URL index to password prompt for multiple operations
Diffstat (limited to 'src/tool_paramhlp.c')
-rw-r--r-- | src/tool_paramhlp.c | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/src/tool_paramhlp.c b/src/tool_paramhlp.c index 6dcee8d5f..d4f1368c4 100644 --- a/src/tool_paramhlp.c +++ b/src/tool_paramhlp.c @@ -366,7 +366,9 @@ ParameterError str2offset(curl_off_t *val, const char *str) return PARAM_BAD_NUMERIC; } -static CURLcode checkpasswd(const char *kind, /* for what purpose */ +static CURLcode checkpasswd(const char *kind, /* for what purpose */ + const size_t index, /* operation index */ + const bool last, /* TRUE if last operation */ char **userpwd) /* pointer to allocated string */ { char *psep; @@ -393,9 +395,15 @@ static CURLcode checkpasswd(const char *kind, /* for what purpose */ *osep = '\0'; /* build a nice-looking prompt */ - curlx_msnprintf(prompt, sizeof(prompt), - "Enter %s password for user '%s':", - kind, *userpwd); + if(!index && last) + curlx_msnprintf(prompt, sizeof(prompt), + "Enter %s password for user '%s':", + kind, *userpwd); + else + curlx_msnprintf(prompt, sizeof(prompt), + "Enter %s password for user '%s' on URL #%" + CURL_FORMAT_CURL_OFF_TU ":", + kind, *userpwd, index + 1); /* get password */ getpass_r(prompt, passwd, sizeof(passwd)); @@ -473,20 +481,21 @@ static char *my_useragent(void) return strdup(CURL_NAME "/" CURL_VERSION); } -CURLcode get_args(struct Configurable *config) +CURLcode get_args(struct Configurable *config, const size_t index) { CURLcode result = CURLE_OK; + bool last = (config->next ? FALSE : TRUE); /* Check we have a password for the given host user */ if(config->userpwd && !config->xoauth2_bearer) { - result = checkpasswd("host", &config->userpwd); + result = checkpasswd("host", index, last, &config->userpwd); if(result) return result; } /* Check we have a password for the given proxy user */ if(config->proxyuserpwd) { - result = checkpasswd("proxy", &config->proxyuserpwd); + result = checkpasswd("proxy", index, last, &config->proxyuserpwd); if(result) return result; } |