Skip to content
  1. Jun 08, 2010
  2. Jun 07, 2010
  3. Jun 05, 2010
    • Constantine Sapuntzakis's avatar
      OpenSSL: fix spurious SSL connection aborts · a0dd9df9
      Constantine Sapuntzakis authored
      Was seeing spurious SSL connection aborts using libcurl and
      OpenSSL. I tracked it down to uncleared error state on the
      OpenSSL error stack - patch attached deals with that.
      
      Rough idea of problem:
      
      Code that uses libcurl calls some library that uses OpenSSL but
      don't clear the OpenSSL error stack after an error.
      
      ssluse.c calls SSL_read which eventually gets an EWOULDBLOCK from
      the OS. Returns -1 to indicate an error
      
      ssluse.c calls SSL_get_error. First thing, SSL_get_error calls
      ERR_get_error to check the OpenSSL error stack, finds an old
      error and returns SSL_ERROR_SSL instead of SSL_ERROR_WANT_READ or
      SSL_ERROR_WANT_WRITE.
      
      ssluse.c returns an error and aborts the connection
      
      Solution:
      
      Clear the openssl error stack before calling SSL_* operation if
      we're going to call SSL_get_error afterwards.
      
      Notes:
      
      This is much more likely to happen with multi because it's easier
      to intersperse other calls to the OpenSSL library in the same
      thread.
      a0dd9df9
    • Yang Tse's avatar
      replace socklen_t with curl_socklen_t · 4724b9d9
      Yang Tse authored
      4724b9d9
  4. Jun 04, 2010
  5. Jun 02, 2010
  6. Jun 01, 2010
    • Daniel Stenberg's avatar
      multi_socket: handles timer inaccuracy better for timeouts · 2c72732e
      Daniel Stenberg authored
      Igor Novoseltsev reported a problem with the multi socket API and
      using timeouts and timers. It boiled down to a problem with
      libcurl's use of GetTickCount() interally to figure out the
      current time, while Igor's own application code used another
      function call.
      
      It made his app call the socket API timeout function a bit
      _before_ libcurl would consider the timeout to trigger, and that
      could easily lead to timeouts or stalls in the app. It seems
      GetTickCount() in general often has no better resolution than
      16ms and switching to the alternative function
      QueryPerformanceCounter has its share of problems:
      http://www.virtualdub.org/blog/pivot/entry.php?id=106
      
      We address this problem by simply having libcurl treat timers
      that already has occured or will occur within 40ms subject for
      treatment. I'm confident that there are other implementations and
      operating systems with similarly in accurate timer functions so
      it makes sense to have applied generically and I don't believe we
      sacrifice much by adding a 40ms inaccuracy on these timeouts.
      2c72732e
    • Yang Tse's avatar
      fix ldaps option issue · e1c2c9be
      Yang Tse authored
      e1c2c9be
    • Yang Tse's avatar
      fix ldap related compilation issues · 89da5324
      Yang Tse authored
      89da5324
    • Yang Tse's avatar
  7. May 31, 2010
  8. May 29, 2010