url: Updated proxy URL parsing to use parse_login_details()
This commit is contained in:
Родитель
702b0dd408
Коммит
11332577b3
26
lib/url.c
26
lib/url.c
|
@ -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 */
|
||||
|
|
Загрузка…
Ссылка в новой задаче