Loading CHANGES +4 −0 Original line number Diff line number Diff line Loading @@ -7,6 +7,10 @@ Changelog Daniel (8 October) - Frank Ticheler provided a patch that fixes how libcurl connects to multiple addresses, if one of them fails (ipv4-code). Daniel (7 October) - Neil Dunbar provided a patch that now makes libcurl check SSL subjectAltNames when matching certs. This is apparently detailed in RFC2818 Loading RELEASE-NOTES +3 −2 Original line number Diff line number Diff line Loading @@ -19,7 +19,8 @@ This release includes the following changes: This release includes the following bugfixes: o libcurl checks subjectAltNames when matching certs o fixed the ipv4 connect code when a DNS entry has multiple IPs o now checks subjectAltNames when matching certs o HTTP POST using read callback works again o builds fine on BeOS now o CURLOPT_COOKIE set to NULL no longer sends the previously set cookie Loading Loading @@ -64,6 +65,6 @@ advice from friends like these: Early Ehlinger, Kevin Fisk, Jurij Smakov, Bjorn Reese, Tim Bartley, David Kimdon, Dominick Meglio, Markus Moeller, Giuseppe Attardi, James MacMillan, Neil Spring, Siddhartha Prakash Jain, Jon Turner, Vincent Bronner, Shard, Jeremy Friesner, Florian Schoppmann, Neil Dunbar Jeremy Friesner, Florian Schoppmann, Neil Dunbar, Frank Ticheler Thanks! (and sorry if I forgot to mention someone) lib/connect.c +20 −18 Original line number Diff line number Diff line Loading @@ -620,6 +620,14 @@ CURLcode Curl_connecthost(struct connectdata *conn, /* context */ failf(data, "no address available"); return CURLE_COULDNT_CONNECT; } /* This is the loop that attempts to connect to all IP-addresses we know for the given host. One by one. */ for(rc=-1, aliasindex=0; rc && (struct in_addr *)remotehost->addr->h_addr_list[aliasindex]; aliasindex++) { struct sockaddr_in serv_addr; /* create an IPv4 TCP socket */ sockfd = socket(AF_INET, SOCK_STREAM, 0); if(-1 == sockfd) { Loading @@ -638,13 +646,6 @@ CURLcode Curl_connecthost(struct connectdata *conn, /* context */ /* Convert socket to non-blocking type */ Curl_nonblock(sockfd, TRUE); /* This is the loop that attempts to connect to all IP-addresses we know for the given host. One by one. */ for(rc=-1, aliasindex=0; rc && (struct in_addr *)remotehost->addr->h_addr_list[aliasindex]; aliasindex++) { struct sockaddr_in serv_addr; /* do this nasty work to do the connect */ memset((char *) &serv_addr, '\0', sizeof(serv_addr)); memcpy((char *)&(serv_addr.sin_addr), Loading Loading @@ -706,6 +707,7 @@ CURLcode Curl_connecthost(struct connectdata *conn, /* context */ if(0 != rc) { /* get a new timeout for next attempt */ sclose(sockfd); after = Curl_tvnow(); timeout_ms -= Curl_tvdiff(after, before); if(timeout_ms < 0) { Loading @@ -717,9 +719,9 @@ CURLcode Curl_connecthost(struct connectdata *conn, /* context */ } break; } if(0 != rc) { /* no good connect was made */ sclose(sockfd); *sockconn = -1; failf(data, "Connect failed"); return CURLE_COULDNT_CONNECT; Loading Loading
CHANGES +4 −0 Original line number Diff line number Diff line Loading @@ -7,6 +7,10 @@ Changelog Daniel (8 October) - Frank Ticheler provided a patch that fixes how libcurl connects to multiple addresses, if one of them fails (ipv4-code). Daniel (7 October) - Neil Dunbar provided a patch that now makes libcurl check SSL subjectAltNames when matching certs. This is apparently detailed in RFC2818 Loading
RELEASE-NOTES +3 −2 Original line number Diff line number Diff line Loading @@ -19,7 +19,8 @@ This release includes the following changes: This release includes the following bugfixes: o libcurl checks subjectAltNames when matching certs o fixed the ipv4 connect code when a DNS entry has multiple IPs o now checks subjectAltNames when matching certs o HTTP POST using read callback works again o builds fine on BeOS now o CURLOPT_COOKIE set to NULL no longer sends the previously set cookie Loading Loading @@ -64,6 +65,6 @@ advice from friends like these: Early Ehlinger, Kevin Fisk, Jurij Smakov, Bjorn Reese, Tim Bartley, David Kimdon, Dominick Meglio, Markus Moeller, Giuseppe Attardi, James MacMillan, Neil Spring, Siddhartha Prakash Jain, Jon Turner, Vincent Bronner, Shard, Jeremy Friesner, Florian Schoppmann, Neil Dunbar Jeremy Friesner, Florian Schoppmann, Neil Dunbar, Frank Ticheler Thanks! (and sorry if I forgot to mention someone)
lib/connect.c +20 −18 Original line number Diff line number Diff line Loading @@ -620,6 +620,14 @@ CURLcode Curl_connecthost(struct connectdata *conn, /* context */ failf(data, "no address available"); return CURLE_COULDNT_CONNECT; } /* This is the loop that attempts to connect to all IP-addresses we know for the given host. One by one. */ for(rc=-1, aliasindex=0; rc && (struct in_addr *)remotehost->addr->h_addr_list[aliasindex]; aliasindex++) { struct sockaddr_in serv_addr; /* create an IPv4 TCP socket */ sockfd = socket(AF_INET, SOCK_STREAM, 0); if(-1 == sockfd) { Loading @@ -638,13 +646,6 @@ CURLcode Curl_connecthost(struct connectdata *conn, /* context */ /* Convert socket to non-blocking type */ Curl_nonblock(sockfd, TRUE); /* This is the loop that attempts to connect to all IP-addresses we know for the given host. One by one. */ for(rc=-1, aliasindex=0; rc && (struct in_addr *)remotehost->addr->h_addr_list[aliasindex]; aliasindex++) { struct sockaddr_in serv_addr; /* do this nasty work to do the connect */ memset((char *) &serv_addr, '\0', sizeof(serv_addr)); memcpy((char *)&(serv_addr.sin_addr), Loading Loading @@ -706,6 +707,7 @@ CURLcode Curl_connecthost(struct connectdata *conn, /* context */ if(0 != rc) { /* get a new timeout for next attempt */ sclose(sockfd); after = Curl_tvnow(); timeout_ms -= Curl_tvdiff(after, before); if(timeout_ms < 0) { Loading @@ -717,9 +719,9 @@ CURLcode Curl_connecthost(struct connectdata *conn, /* context */ } break; } if(0 != rc) { /* no good connect was made */ sclose(sockfd); *sockconn = -1; failf(data, "Connect failed"); return CURLE_COULDNT_CONNECT; Loading