cURL

curl's project page on SourceForge.net

Sponsors:
Haxx

cURL > Mailing List > Monthly Index > Single Mail

curl-tracker Archives

[curl:bugs] #1327 libcurl prunes CURLOPT_RESOLVE entries after detecting a dead connection

From: Romulo A. Ceccon <romuloceccon_at_users.sf.net>
Date: Mon, 03 Feb 2014 20:06:19 +0000

Daniel, I've written tests to reproduce the bug: https://github.com/bagder/curl/pull/89 . You can close the ticket now.

---
** [bugs:#1327] libcurl prunes CURLOPT_RESOLVE entries after detecting a dead connection**
**Status:** open-confirmed
**Created:** Mon Jan 27, 2014 02:54 PM UTC by Romulo A. Ceccon
**Last Updated:** Wed Jan 29, 2014 02:30 PM UTC
**Owner:** Daniel Stenberg
[#1303] reports an issue (now fixed) where libcurl would prune CURLOPT_RESOLVE entries after the DNS cache timeout had elapsed.
It looks like the patch is not complete, though. As of version [7.34.1-dev](https://github.com/bagder/curl/commit/0f46b3b3ddcf4fe0546477a1f09287ad358bb31e) entries are still being incorrectly removed in the following scenario:
- client starts the connection and server keeps it alive
- CURLOPT_DNS_CACHE_TIMEOUT elapses
- server kills the connection
- client starts a new request,  finds the connection to be dead and creates a new one
The attached program is basically the same one attached to bug report [#1303], except it connects to a server which keeps the connection alive for a short time (debian.org), instead of the other one, which always signaled the client to close it.
Here's the output:
    Test started with libcurl/7.34.1-DEV OpenSSL/1.0.1e zlib/1.2.8 libidn/1.28 librtmp/2.3
    debug: Added fake.host:80:150.203.164.38 to DNS cache
    debug: Rebuilt URL to: http://fake.host/
    debug: Hostname was found in DNS cache
    debug:   Trying 150.203.164.38...
    debug: Connected to fake.host (150.203.164.38) port 80 (#0)
    debug: Server Apache is not blacklisted
    debug: Connection #0 to host fake.host left intact
    HTTP transfer completed with status 0
    Sleeping for 20 seconds...
    debug: Added fake.host:80:150.203.164.38 to DNS cache
    debug: Rebuilt URL to: http://fake.host/
    debug: Found bundle for host fake.host: 0xcacc20
    debug: Connection 0 seems to be dead!
    debug: Closing connection 0
    debug: Hostname was NOT found in DNS cache
    debug: getaddrinfo(3) failed for fake.host:80
    debug: Couldn't resolve host 'fake.host'
    debug: Closing connection 1
    HTTP transfer completed with status 6
---
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 2014-02-03

These mail archives are generated by hypermail.

donate! Page updated December 29, 2013.
web site info

File upload with ASP.NET