url: Updated proxy URL parsing to use parse_login_details()

This commit is contained in:
Steve Holme 2013-04-21 12:08:35 +01:00
parent 702b0dd408
commit 11332577b3
1 changed files with 13 additions and 13 deletions

View File

@ -4196,16 +4196,13 @@ static CURLcode parse_proxy(struct SessionHandle *data,
/* Is there a username and password given in this proxy url? */
atsign = strchr(proxyptr, '@');
if(atsign) {
char proxyuser[MAX_CURL_USER_LENGTH];
char proxypasswd[MAX_CURL_PASSWORD_LENGTH];
proxypasswd[0] = 0;
if(1 <= sscanf(proxyptr,
"%" MAX_CURL_USER_LENGTH_TXT"[^:@]:"
"%" MAX_CURL_PASSWORD_LENGTH_TXT "[^@]",
proxyuser, proxypasswd)) {
CURLcode res = CURLE_OK;
CURLcode res = CURLE_OK;
char *proxyuser = NULL;
char *proxypasswd = NULL;
res = parse_login_details(proxyptr, atsign - proxyptr,
&proxyuser, &proxypasswd, NULL);
if(!res) {
/* found user and password, rip them out. note that we are
unescaping them, as there is otherwise no way to have a
username or password with reserved characters like ':' in
@ -4223,7 +4220,7 @@ static CURLcode parse_proxy(struct SessionHandle *data,
res = CURLE_OUT_OF_MEMORY;
}
if(CURLE_OK == res) {
if(!res) {
conn->bits.proxy_user_passwd = TRUE; /* enable it */
atsign++; /* the right side of the @-letter */
@ -4232,10 +4229,13 @@ static CURLcode parse_proxy(struct SessionHandle *data,
else
res = CURLE_OUT_OF_MEMORY;
}
if(res)
return res;
}
Curl_safefree(proxyuser);
Curl_safefree(proxypasswd);
if(res)
return res;
}
/* start scanning for port number at this point */