mirror of
https://github.com/moparisthebest/curl
synced 2024-12-24 00:58:48 -05:00
urlapi: fix support for address scope in IPv6 numerical addresses
Closes #3024
This commit is contained in:
parent
9bdadbbdee
commit
2097cd5152
@ -22,6 +22,10 @@
|
||||
*
|
||||
***************************************************************************/
|
||||
#include "curl_setup.h"
|
||||
/* scheme is not URL encoded, the longest libcurl supported ones are 6
|
||||
letters */
|
||||
#define MAX_SCHEME_LEN 8
|
||||
|
||||
bool Curl_is_absolute_url(const char *url, char *scheme, size_t buflen);
|
||||
char *Curl_concat_url(const char *base, const char *relurl);
|
||||
size_t Curl_strlen_url(const char *url, bool relative);
|
||||
|
@ -53,10 +53,6 @@ struct Curl_URL {
|
||||
|
||||
#define DEFAULT_SCHEME "https"
|
||||
|
||||
/* scheme is not URL encoded, the longest libcurl supported ones are 6
|
||||
letters */
|
||||
#define MAX_SCHEME_LEN 8
|
||||
|
||||
static void free_urlhandle(struct Curl_URL *u)
|
||||
{
|
||||
free(u->scheme);
|
||||
@ -480,7 +476,7 @@ static CURLUcode parse_port(struct Curl_URL *u, char *hostname)
|
||||
char endbracket;
|
||||
int len;
|
||||
|
||||
if((1 == sscanf(hostname, "[%*45[0123456789abcdefABCDEF:.]%c%n",
|
||||
if((1 == sscanf(hostname, "[%*45[0123456789abcdefABCDEF:.%%]%c%n",
|
||||
&endbracket, &len)) &&
|
||||
(']' == endbracket)) {
|
||||
/* this is a RFC2732-style specified IP-address */
|
||||
@ -561,7 +557,7 @@ static CURLUcode hostname_check(char *hostname, unsigned int flags)
|
||||
|
||||
if(hostname[0] == '[') {
|
||||
hostname++;
|
||||
l = "0123456789abcdefABCDEF::.";
|
||||
l = "0123456789abcdefABCDEF::.%";
|
||||
hlen -= 2;
|
||||
}
|
||||
|
||||
|
@ -128,6 +128,9 @@ struct querycase {
|
||||
};
|
||||
|
||||
static struct testcase get_parts_list[] ={
|
||||
{"https://[::1%252]:1234",
|
||||
"https | [11] | [12] | [13] | [::1%252] | 1234 | / | [16] | [17]",
|
||||
CURLU_DEFAULT_SCHEME, 0, CURLUE_OK},
|
||||
{"https://127.0.0.1:443",
|
||||
"https | [11] | [12] | [13] | 127.0.0.1 | [15] | / | [16] | [17]",
|
||||
0, CURLU_NO_DEFAULT_PORT, CURLUE_OK},
|
||||
|
Loading…
Reference in New Issue
Block a user