Loading lib/connect.c +5 −1 Original line number Diff line number Diff line Loading @@ -463,7 +463,11 @@ CURLcode Curl_connecthost(struct connectdata *conn, /* context */ } hostname = data->change.proxy?conn->proxyhost:conn->hostname; infof(data, "About to connect() to %s:%d\n", hostname, port); infof(data, "About to connect() to %s%s%s:%d\n", conn->bits.ipv6_ip?"[":"", hostname, conn->bits.ipv6_ip?"]":"", port); #ifdef ENABLE_IPV6 /* Loading lib/http.c +11 −2 Original line number Diff line number Diff line Loading @@ -581,13 +581,22 @@ CURLcode Curl_http(struct connectdata *conn) if(conn->allocptr.host) free(conn->allocptr.host); /* When building Host: headers, we must put the host name within [brackets] if the host name is a plain IPv6-address. RFC2732-style. */ if(((conn->protocol&PROT_HTTPS) && (conn->remote_port == PORT_HTTPS)) || (!(conn->protocol&PROT_HTTPS) && (conn->remote_port == PORT_HTTP)) ) /* If (HTTPS on port 443) OR (non-HTTPS on port 80) then don't include the port number in the host string */ conn->allocptr.host = aprintf("Host: %s\r\n", host); conn->allocptr.host = aprintf("Host: %s%s%s\r\n", conn->bits.ipv6_ip?"[":"", host, conn->bits.ipv6_ip?"]":""); else conn->allocptr.host = aprintf("Host: %s:%d\r\n", host, conn->allocptr.host = aprintf("Host: %s%s%s:%d\r\n", conn->bits.ipv6_ip?"[":"", host, conn->bits.ipv6_ip?"]":"", conn->remote_port); } Loading lib/url.c +2 −0 Original line number Diff line number Diff line Loading @@ -2279,8 +2279,10 @@ static CURLcode CreateConnection(struct SessionHandle *data, if((1 == sscanf(conn->name, "[%*39[0-9a-fA-F:.]%c", &endbracket)) && (']' == endbracket)) { /* this is a RFC2732-style specified IP-address */ conn->bits.ipv6_ip = TRUE; conn->name++; /* pass the starting bracket */ conn->hostname++; tmp = strchr(conn->name, ']'); *tmp = 0; /* zero terminate */ tmp++; /* pass the ending bracket */ Loading lib/urldata.h +2 −1 Original line number Diff line number Diff line Loading @@ -210,7 +210,8 @@ struct ConnectBits { bool httpproxy; /* if set, this transfer is done through a http proxy */ bool user_passwd; /* do we use user+password for this connection? */ bool proxy_user_passwd; /* user+password for the proxy? */ bool ipv6_ip; /* we communicate with a remove site specified with pure IPv6 IP address */ bool use_range; bool rangestringalloc; /* the range string is malloc()'ed */ }; Loading Loading
lib/connect.c +5 −1 Original line number Diff line number Diff line Loading @@ -463,7 +463,11 @@ CURLcode Curl_connecthost(struct connectdata *conn, /* context */ } hostname = data->change.proxy?conn->proxyhost:conn->hostname; infof(data, "About to connect() to %s:%d\n", hostname, port); infof(data, "About to connect() to %s%s%s:%d\n", conn->bits.ipv6_ip?"[":"", hostname, conn->bits.ipv6_ip?"]":"", port); #ifdef ENABLE_IPV6 /* Loading
lib/http.c +11 −2 Original line number Diff line number Diff line Loading @@ -581,13 +581,22 @@ CURLcode Curl_http(struct connectdata *conn) if(conn->allocptr.host) free(conn->allocptr.host); /* When building Host: headers, we must put the host name within [brackets] if the host name is a plain IPv6-address. RFC2732-style. */ if(((conn->protocol&PROT_HTTPS) && (conn->remote_port == PORT_HTTPS)) || (!(conn->protocol&PROT_HTTPS) && (conn->remote_port == PORT_HTTP)) ) /* If (HTTPS on port 443) OR (non-HTTPS on port 80) then don't include the port number in the host string */ conn->allocptr.host = aprintf("Host: %s\r\n", host); conn->allocptr.host = aprintf("Host: %s%s%s\r\n", conn->bits.ipv6_ip?"[":"", host, conn->bits.ipv6_ip?"]":""); else conn->allocptr.host = aprintf("Host: %s:%d\r\n", host, conn->allocptr.host = aprintf("Host: %s%s%s:%d\r\n", conn->bits.ipv6_ip?"[":"", host, conn->bits.ipv6_ip?"]":"", conn->remote_port); } Loading
lib/url.c +2 −0 Original line number Diff line number Diff line Loading @@ -2279,8 +2279,10 @@ static CURLcode CreateConnection(struct SessionHandle *data, if((1 == sscanf(conn->name, "[%*39[0-9a-fA-F:.]%c", &endbracket)) && (']' == endbracket)) { /* this is a RFC2732-style specified IP-address */ conn->bits.ipv6_ip = TRUE; conn->name++; /* pass the starting bracket */ conn->hostname++; tmp = strchr(conn->name, ']'); *tmp = 0; /* zero terminate */ tmp++; /* pass the ending bracket */ Loading
lib/urldata.h +2 −1 Original line number Diff line number Diff line Loading @@ -210,7 +210,8 @@ struct ConnectBits { bool httpproxy; /* if set, this transfer is done through a http proxy */ bool user_passwd; /* do we use user+password for this connection? */ bool proxy_user_passwd; /* user+password for the proxy? */ bool ipv6_ip; /* we communicate with a remove site specified with pure IPv6 IP address */ bool use_range; bool rangestringalloc; /* the range string is malloc()'ed */ }; Loading