diff options
author | Daniel Stenberg <daniel@haxx.se> | 2000-11-06 22:53:50 +0000 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2000-11-06 22:53:50 +0000 |
commit | 9f4f16b55d7df262774aee227933347e0ae3846e (patch) | |
tree | 26ebae60a02e272ec1fb8d2ead8dfc7559372fd5 /lib/url.c | |
parent | e05922c4285bf72b2246c9909703c7411f98163b (diff) |
new getpass proto and function pointer usage
Diffstat (limited to 'lib/url.c')
-rw-r--r-- | lib/url.c | 28 |
1 files changed, 23 insertions, 5 deletions
@@ -306,6 +306,9 @@ CURLcode curl_open(CURL **curl, char *url) /* use fread as default function to read input */ data->fread = (size_t (*)(char *, size_t, size_t, FILE *))fread; + /* set the default passwd function */ + data->fpasswd = my_getpass; + data->infilesize = -1; /* we don't know any size */ data->current_speed = -1; /* init to negative == impossible */ @@ -479,6 +482,12 @@ CURLcode curl_setopt(CURL *curl, CURLoption option, ...) case CURLOPT_PROGRESSDATA: data->progress_client = va_arg(param, void *); break; + case CURLOPT_PASSWDFUNCTION: + data->fpasswd = va_arg(param, curl_passwd_callback); + break; + case CURLOPT_PASSWDDATA: + data->passwd_client = va_arg(param, void *); + break; case CURLOPT_PROXYUSERPWD: data->proxyuserpwd = va_arg(param, char *); data->bits.proxy_user_passwd = data->proxyuserpwd?1:0; @@ -809,7 +818,10 @@ CURLcode curl_connect(CURL *curl, CURLconnect **in_connect) /* check for password, if no ask for one */ if( !data->passwd[0] ) { - my_getpass("password:", data->passwd, sizeof(data->passwd)); + if(!data->fpasswd || + data->fpasswd(data->passwd_client, + "password:", data->passwd, sizeof(data->passwd))) + return CURLE_BAD_PASSWORD_ENTERED; } } @@ -828,9 +840,12 @@ CURLcode curl_connect(CURL *curl, CURLconnect **in_connect) /* check for password, if no ask for one */ if( !data->proxypasswd[0] ) { - my_getpass("proxy password:", - data->proxypasswd, - sizeof(data->proxypasswd)); + if(!data->fpasswd || + data->fpasswd( data->passwd_client, + "proxy password:", + data->proxypasswd, + sizeof(data->proxypasswd))) + return CURLE_BAD_PASSWORD_ENTERED; } } @@ -1149,7 +1164,10 @@ CURLcode curl_connect(CURL *curl, CURLconnect **in_connect) /* check for password, if no ask for one */ if( !data->passwd[0] ) { - my_getpass("password:",data->passwd,sizeof(data->passwd)); + if(!data->fpasswd || + data->fpasswd(data->passwd_client, + "password:",data->passwd,sizeof(data->passwd))) + return CURLE_BAD_PASSWORD_ENTERED; } else { /* we have a password found in the URL, decode it! */ |