Skip to content
  1. Dec 05, 2011
  2. Oct 17, 2011
  3. Oct 15, 2011
  4. Sep 09, 2011
    • Daniel Stenberg's avatar
      tcpnodelay: rename variable · 303c9007
      Daniel Stenberg authored
      Renamed the variable from 'proto' to 'level' simply because it is not
      protocol you set but level and that is the name of the argument used in
      man pages and the POSIX documentation of the setsockopt function.
      303c9007
  5. Sep 03, 2011
  6. Aug 18, 2011
    • Daniel Stenberg's avatar
      connect: set TIMER_CONNECT · 3af9ba16
      Daniel Stenberg authored
      When connecting, make sure TIMER_CONNECT is set.
      3af9ba16
    • Daniel Stenberg's avatar
      FTP: fix proxy connect race condition · b998d95b
      Daniel Stenberg authored
      When using the multi interface, a SOCKS proxy, and a connection that
      wouldn't immediately consider itself connected (which my Linux tests do
      by default), libcurl would be tricked into doing _two_ connects to the
      SOCKS proxy when it setup the data connection and then of course the
      second attempt would fail miserably and cause error.
      
      This problem is a regression that was introduced by commit
      4a42e5cd that was introduced in the 7.21.7 release.
      
      Bug: http://curl.haxx.se/mail/lib-2011-08/0199.html
      Reported by: Fabian Keil
      b998d95b
  7. Aug 05, 2011
  8. Jul 26, 2011
  9. Jul 25, 2011
  10. Jul 24, 2011
  11. Jun 10, 2011
  12. Jun 04, 2011
  13. May 26, 2011
  14. May 18, 2011
  15. Apr 28, 2011
  16. Apr 27, 2011
  17. Apr 25, 2011
    • Daniel Stenberg's avatar
      async resolvers: further cleanups · 7de2f927
      Daniel Stenberg authored
      asyn-ares.c and asyn-thread.c are two separate backends that implement
      the same (internal) async resolver API for libcurl to use. Backend is
      specified at build time.
      
      The internal resolver API is defined in asyn.h for asynch resolvers.
      7de2f927
  18. Apr 21, 2011
  19. Apr 11, 2011
  20. Feb 17, 2011
  21. Feb 09, 2011
  22. Jan 10, 2011
    • Daniel Stenberg's avatar
      connect: use UDP correctly · 08a65b10
      Daniel Stenberg authored
      The idea that the protocol and socktype is part of name resolving in the
      libc functions is nuts. We keep the name resolver functions assume
      TCP/STREAM and we make sure that when we want to connect to a UDP
      service we use the correct UDP/DGRAM set instead. This bug was because
      the ->protocol field was not always set correctly.
      
      This bug was only affecting ipv6-disabled non-cares non-threaded builds.
      
      Bug: http://curl.haxx.se/bug/view.cgi?id=3154436
      Reported by: "dperham"
      08a65b10
  23. Jan 04, 2011
  24. Dec 23, 2010
    • Daniel Stenberg's avatar
      multi: connect fail => use next IP address · 5825aa14
      Daniel Stenberg authored
      When using the multi interface and connecting to a host name that
      resolves to multiple IP addresses, there was no logic that made it
      continue to the next IP if connecting to the first address times
      out. This is now corrected.
      5825aa14
  25. Dec 03, 2010
  26. Dec 01, 2010
  27. Nov 30, 2010
  28. Nov 11, 2010
    • Daniel Stenberg's avatar
      ip_version: moved to connection struct · a1f32ffe
      Daniel Stenberg authored
      The IP version choice was previously only in the UserDefined struct
      within the SessionHandle, but since we sometimes alter that option
      during a request we need to have it on a per-connection basis.
      
      I also moved more "init conn" code into the allocate_conn() function
      which is designed for that purpose more or less.
      a1f32ffe
  29. Sep 17, 2010
    • Daniel Stenberg's avatar
      Curl_timeleft: avoid returning "no timeout" by mistake · 3880dd37
      Daniel Stenberg authored
      As this function uses return code 0 to mean that there is no timeout, it
      needs to check that it doesn't return a time left value that is exactly
      zero. It could lead to libcurl doing an extra 1000 ms select() call and
      thus not timing out as accurately as it should.
      
      I fell over this bug when working on the bug 3061535 but this fix does
      not correct that problem alone, although this is a problem that needs to
      be fixed.
      
      Reported by: Rodric Glaser
      Bug: http://curl.haxx.se/bug/view.cgi?id=3061535
      3880dd37
  30. Sep 14, 2010
  31. Sep 05, 2010
  32. Aug 20, 2010
  33. Aug 10, 2010
    • Daniel Stenberg's avatar
      callbacks: acknowledge progress callback error returns · 37201e3c
      Daniel Stenberg authored
      When the progress callback is called during the TCP connection, an error
      return would accidentally not abort the operation as intended but would
      instead be counted as a failure to connect to that particular IP and
      libcurl would just continue to try the next. I made singleipconnect()
      and trynextip() return CURLcode properly.
      
      Added bonus: it corrected the error code for bad --interface usages,
      like tested in test 1084 and test 1085.
      
      Reported by: Adam Light
      Bug: http://curl.haxx.se/mail/lib-2010-08/0105.html
      37201e3c
  34. Jun 24, 2010
    • Daniel Stenberg's avatar
      multi_socket: re-use of same socket without notifying app · 8da56e12
      Daniel Stenberg authored
      When a hostname resolves to multiple IP addresses and the first one
      tried doesn't work, the socket for the second attempt may get dropped on
      the floor, causing the request to eventually time out. The issue is that
      when using kqueue (as on mac and bsd platforms) instead of select, the
      kernel removes the first fd from kqueue when it is closed (in trynextip,
      connect.c:503). Trynextip() then goes on to open a new socket, which
      gets assigned the same number as the one it just closed. Later in
      multi.c, socket_cb is not called because the fd is already in
      multi->sockhash, so the new socket is never added to kqueue.
      
      The correct fix is to ensure that socket_cb is called to remove the fd
      when trynextip() closes the socket, and again to re-add it after
      singleipsocket(). I'm not sure how to cleanly do that, but the attached
      patch works around the problem in an admittedly kludgy way by delaying
      the close to ensure that the newly-opened socket gets a different fd.
      
      Daniel's added comment: I didn't spot a way to easily do a nicer fix so
      I've proceeded with Ben's patch.
      
      Bug: http://curl.haxx.se/bug/view.cgi?id=3017819
      Patch by: Ben Darnell
      8da56e12
  35. Jun 08, 2010