diff options
| author | Daniel Stenberg <daniel@haxx.se> | 2003-09-03 21:47:41 +0000 | 
|---|---|---|
| committer | Daniel Stenberg <daniel@haxx.se> | 2003-09-03 21:47:41 +0000 | 
| commit | cafcc242e63828cbb6fb299abbe5ec7391b0560e (patch) | |
| tree | 924f198fc4f5473c6225694113b11789508034b7 /lib | |
| parent | 2ad0a7d20fba43ba6d2de7efdd556ed768e0f50f (diff) | |
Joerg Mueller-Tolk's fix to better deal with user+passwords for proxies
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/url.c | 13 | 
1 files changed, 10 insertions, 3 deletions
@@ -2144,18 +2144,24 @@ static CURLcode CreateConnection(struct SessionHandle *data,    if(conn->bits.proxy_user_passwd) {      char proxyuser[MAX_CURL_USER_LENGTH]="";      char proxypasswd[MAX_CURL_PASSWORD_LENGTH]=""; +    passwdgiven = FALSE;      if(*data->set.proxyuserpwd != ':') {        /* the name is given, get user+password */        sscanf(data->set.proxyuserpwd, "%127[^:]:%127[^\n]",               proxyuser, proxypasswd); -      } -    else +      if(strchr(data->set.proxyuserpwd, ':')) +        /* a colon means the password was given, even if blank */ +        passwdgiven = TRUE;   +    } +    else {        /* no name given, get the password only */        sscanf(data->set.proxyuserpwd+1, "%127[^\n]", proxypasswd); +      passwdgiven = TRUE; +    }      /* check for password, if no ask for one */ -    if( !proxypasswd[0] ) { +    if( !proxypasswd[0] && !passwdgiven) {        if(data->set.fpasswd( data->set.passwd_client,                              "proxy password:",                              proxypasswd, @@ -2709,6 +2715,7 @@ static CURLcode CreateConnection(struct SessionHandle *data,    user[0] =0;   /* to make everything well-defined */    passwd[0]=0; +  passwdgiven = FALSE; /* none given so far */    if (conn->protocol & (PROT_FTP|PROT_HTTP)) {      /* This is a FTP or HTTP URL, we will now try to extract the possible  | 
