cURL cURL > Mailing List > Monthly Index > Single Mail

curl-tracker Archives

[curl:bugs] #1479 timeout issue over proxy

From: Peter <peterlaser_at_users.sf.net>
Date: Tue, 03 Feb 2015 02:46:15 +0000

attach the file, thanks.

Attachment: multi.c (90.5 kB; application/octet-stream)

---
** [bugs:#1479] timeout issue over proxy**
**Status:** open
**Created:** Mon Feb 02, 2015 06:08 AM UTC by Peter
**Last Updated:** Mon Feb 02, 2015 10:50 PM UTC
**Owner:** Daniel Stenberg
There is timeout issue over proxy in the libcurl 7.39, the root cause is due to the introduction of "Happy Eyeballs" feature of libcurl leading to waitconnect_getsock() returning 0 unexpectedly somehow over proxy.
The curl code might need to return "GETSOCK_WRITESOCK(0)" as 7.32 if 0 is going to be returned, without impacting the existing "Happy Eyeballs" feature.
http://curl.haxx.se/mail/lib-2013-10/0207.html
@@ -621,17 +621,26 @@ static int waitconnect_getsock(struct connectdata *conn,
                                curl_socket_t *sock,
                                int numsocks)
 {
+  int i;
+  int s=0;
+  int rc=0;
+
   if(!numsocks)
     return GETSOCK_BLANK;
 
-  sock[0] = conn->sock[FIRSTSOCKET];
+  for(i=0; i<2; i++) {
+    if(conn->tempsock[i] != CURL_SOCKET_BAD) {
+      sock[s] = conn->tempsock[i];
+      rc |= GETSOCK_WRITESOCK(s++);
+    }
+  }
 
   /* when we've sent a CONNECT to a proxy, we should rather wait for the
      socket to become readable to be able to get the response headers */
   if(conn->tunnel_state[FIRSTSOCKET] == TUNNEL_CONNECT)
     return GETSOCK_READSOCK(0);
 
-  return GETSOCK_WRITESOCK(0);
+  return rc;
Could you please it in the next libcurl version(7.41)?
---
Sent from sourceforge.net because curl-tracker@cool.haxx.se is subscribed to https://sourceforge.net/p/curl/bugs/
To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/curl/admin/bugs/options.  Or, if this is a mailing list, you can unsubscribe from the mailing list.
Received on 2015-02-03

These mail archives are generated by hypermail.