1
0
mirror of https://github.com/moparisthebest/curl synced 2024-12-22 08:08:50 -05:00

now works with IPv6 and HTTP proxy

This commit is contained in:
Daniel Stenberg 2001-03-14 18:18:02 +00:00
parent 3395a2fa9e
commit b7fc1e45b5

View File

@ -766,11 +766,11 @@ CURLcode Curl_disconnect(struct connectdata *conn)
if(!conn) if(!conn)
return CURLE_OK; /* this is closed and fine already */ return CURLE_OK; /* this is closed and fine already */
infof(conn->data, "Closing live connection (#%d)\n", conn->connectindex); if(-1 != conn->connectindex) {
if(-1 != conn->connectindex)
/* unlink ourselves! */ /* unlink ourselves! */
infof(conn->data, "Closing live connection (#%d)\n", conn->connectindex);
conn->data->connects[conn->connectindex] = NULL; conn->data->connects[conn->connectindex] = NULL;
}
if(conn->curl_disconnect) if(conn->curl_disconnect)
/* This is set if protocol-specific cleanups should be made */ /* This is set if protocol-specific cleanups should be made */
@ -1162,12 +1162,14 @@ static CURLcode ConnectPlease(struct UrlData *data,
#ifdef ENABLE_IPV6 #ifdef ENABLE_IPV6
conn->firstsocket = -1; conn->firstsocket = -1;
for (ai = conn->hp; ai; ai = ai->ai_next) { for (ai = conn->hp; ai; ai = ai->ai_next) {
conn->firstsocket = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol); conn->firstsocket = socket(ai->ai_family,
ai->ai_socktype,
ai->ai_protocol);
if (conn->firstsocket < 0) if (conn->firstsocket < 0)
continue; continue;
if (connect(conn->firstsocket, ai->ai_addr, ai->ai_addrlen) < 0) { if (connect(conn->firstsocket, ai->ai_addr, ai->ai_addrlen) < 0) {
close(conn->firstsocket); sclose(conn->firstsocket);
conn->firstsocket = -1; conn->firstsocket = -1;
continue; continue;
} }
@ -1862,10 +1864,6 @@ static CURLcode Connect(struct UrlData *data,
host name name, so that we can re-use an existing connection host name name, so that we can re-use an existing connection
that may exist registered to the same proxy host. */ that may exist registered to the same proxy host. */
#ifdef ENABLE_IPV6
failf(data, "proxy yet to be supported");
return CURLE_OUT_OF_MEMORY;
#else
char *prox_portno; char *prox_portno;
char *endofprot; char *endofprot;
@ -1910,7 +1908,6 @@ static CURLcode Connect(struct UrlData *data,
conn->proxyhost = strdup(proxyptr); conn->proxyhost = strdup(proxyptr);
free(proxydup); /* free the duplicate pointer and not the modified */ free(proxydup); /* free the duplicate pointer and not the modified */
#endif /* end of IPv4-section */
} }
/************************************************************* /*************************************************************
@ -1990,7 +1987,12 @@ static CURLcode Connect(struct UrlData *data,
if we're reusing an existing connection. */ if we're reusing an existing connection. */
/* resolve proxy */ /* resolve proxy */
#ifdef ENABLE_IPV6
/* it might already be set if reusing a connection */
conn->hp = Curl_getaddrinfo(data, conn->proxyhost, conn->port);
#else
conn->hp = Curl_gethost(data, conn->proxyhost, &conn->hostent_buf); conn->hp = Curl_gethost(data, conn->proxyhost, &conn->hostent_buf);
#endif
if(!conn->hp) { if(!conn->hp) {
failf(data, "Couldn't resolve proxy '%s'", conn->proxyhost); failf(data, "Couldn't resolve proxy '%s'", conn->proxyhost);
return CURLE_COULDNT_RESOLVE_PROXY; return CURLE_COULDNT_RESOLVE_PROXY;