Skip to content
  1. Nov 19, 2014
    • Jon Spencer's avatar
      multi: inform about closed sockets before they are closed · 29336986
      Jon Spencer authored
      When the connection code decides to close a socket it informs the multi
      system via the Curl_multi_closed function. The multi system may, in
      turn, invoke the CURLMOPT_SOCKETFUNCTION function with
      CURL_POLL_REMOVE. This happens after the socket has already been
      closed. Reorder the code so that CURL_POLL_REMOVE is called before the
      socket is closed.
      29336986
  2. Nov 18, 2014
    • Carlo Wood's avatar
      debug: added new connection cache output, plus fixups · 013d5c18
      Carlo Wood authored
      Debug output 'typo' fix.
      
      Don't print an extra "0x" in
        * Pipe broke: handle 0x0x2546d88, url = /
      
      Add debug output.
      Print the number of connections in the connection cache when
        adding one, and not only when one is removed.
      
      Fix typos in comments.
      013d5c18
  3. Nov 16, 2014
  4. Oct 30, 2014
  5. Oct 28, 2014
  6. Oct 24, 2014
    • Daniel Stenberg's avatar
      code cleanup: we prefer 'CURLcode result' · 0eb3d15c
      Daniel Stenberg authored
      ... for the local variable name in functions holding the return
      code. Using the same name universally makes code easier to read and
      follow.
      
      Also, unify code for checking for CURLcode errors with:
      
       if(result) or if(!result)
      
      instead of
      
       if(result == CURLE_OK), if(CURLE_OK == result) or if(result != CURLE_OK)
      0eb3d15c
  7. Oct 14, 2014
  8. Oct 04, 2014
  9. Aug 31, 2014
    • Daniel Stenberg's avatar
      low-speed-limit: avoid timeout flood · cacdc27f
      Daniel Stenberg authored
      Introducing Curl_expire_latest(). To be used when we the code flow only
      wants to get called at a later time that is "no later than X" so that
      something can be checked (and another timeout be added).
      
      The low-speed logic for example could easily be made to set very many
      expire timeouts if it would be called faster or sooner than what it had
      set its own timer and this goes for a few other timers too that aren't
      explictiy checked for timer expiration in the code.
      
      If there's no condition the code that says if(time-passed >= TIME), then
      Curl_expire_latest() is preferred to Curl_expire().
      
      If there exists such a condition, it is on the other hand important that
      Curl_expire() is used and not the other.
      
      Bug: http://curl.haxx.se/mail/lib-2014-06/0235.html
      Reported-by: Florian Weimer
      cacdc27f
  10. Aug 20, 2014
  11. Jul 04, 2014
  12. May 21, 2014
    • Daniel Stenberg's avatar
      bits.close: introduce connection close tracking · df13f8e8
      Daniel Stenberg authored
      Make all code use connclose() and connkeep() when changing the "close
      state" for a connection. These two macros take a string argument with an
      explanation, and debug builds of curl will include that in the debug
      output. Helps tracking connection re-use/close issues.
      df13f8e8
  13. May 15, 2014
    • Daniel Stenberg's avatar
      timers: fix timer regression involving redirects / reconnects · 84bd19ff
      Daniel Stenberg authored
      In commit 0b3750b5 (released in 7.36.0) we fixed a timeout issue
      but instead broke the timings.
      
      To fix this, I introduce a new timestamp to use for the timeouts and
      restored the previous timestamp and timestamp position so that the old
      timer functionality is restored.
      
      In addition to that, that change also broke connection timeouts for when
      more than one connect was used (as it would then count the total time
      from the first connect and not for the most recent one). Now
      Curl_timeleft() has been modified so that it checks against different
      start times depending on which timeout it checks.
      
      Test 1303 is updated accordingly.
      
      Bug: http://curl.haxx.se/mail/lib-2014-05/0147.html
      Reported-by: Ryan Braud
      84bd19ff
  14. Apr 18, 2014
  15. Mar 19, 2014
  16. Jan 18, 2014
  17. Jan 17, 2014
  18. Jan 15, 2014
  19. Jan 11, 2014
    • Daniel Stenberg's avatar
      multi: remove MULTI_TIMEOUT_INACCURACY · 3b183df9
      Daniel Stenberg authored
      With the recently added timeout "reminder" functionality, there's no
      reason left for us to execute timeout code before the time is
      ripe. Simplifies the handling too.
      
      This will make the *TIMEOUT and *CONNECTTIMEOUT options more accurate
      again, which probably is most important when the *_MS versions are used.
      
      In multi_socket, make sure to update 'now' after having handled activity
      on a socket.
      3b183df9
  20. Jan 08, 2014
  21. Dec 28, 2013
  22. Dec 20, 2013
  23. Dec 04, 2013
  24. Nov 27, 2013
  25. Nov 17, 2013
  26. Nov 14, 2013
  27. Nov 10, 2013
  28. Nov 04, 2013
    • Björn Stenberg's avatar
      connect: Add connection delay to Happy Eyeballs. · 02fbc26d
      Björn Stenberg authored
      This patch adds a 200ms delay between the first and second address
      family socket connection attempts.
      
      It also iterates over IP addresses in the order returned by the
      system, meaning most dual-stack systems will try IPv6 first.
      
      Additionally, it refactors the connect code, removing most code that
      handled synchronous connects. Since all sockets are now non-blocking,
      the logic can be made simpler.
      02fbc26d
  29. Nov 03, 2013
  30. Oct 29, 2013
  31. Oct 27, 2013
    • Björn Stenberg's avatar
      Typo fix in trynextip(). · 8230af0b
      Björn Stenberg authored
      8230af0b
    • Björn Stenberg's avatar
      Add "Happy Eyeballs" for IPv4/IPv6. · 7d7df831
      Björn Stenberg authored
      This patch invokes two socket connect()s nearly simultaneously, and
      the socket that is first connected "wins" and is subsequently used for
      the connection. The other is terminated.
      
      There is a very slight IPv4 preference, in that if both sockets connect
      simultaneously IPv4 is checked first and thus will win.
      7d7df831