aboutsummaryrefslogtreecommitdiff
path: root/docs/TODO
diff options
context:
space:
mode:
authorDan Fandrich <dan@coneharvesters.com>2008-10-14 23:52:36 +0000
committerDan Fandrich <dan@coneharvesters.com>2008-10-14 23:52:36 +0000
commit9b3f863cf5b34fc0c57a369e36dea18889093ad8 (patch)
tree33fc6270a1577f3db94dfcf7ba5a64cd8eac68c0 /docs/TODO
parent2f2ed4e40ebb31c80fdaeff2ab9c48d8e1654f02 (diff)
Added signal-based resolver timeout issue
Diffstat (limited to 'docs/TODO')
-rw-r--r--docs/TODO13
1 files changed, 13 insertions, 0 deletions
diff --git a/docs/TODO b/docs/TODO
index 39ce32039..7f4c02191 100644
--- a/docs/TODO
+++ b/docs/TODO
@@ -18,6 +18,7 @@
1.4 Get IP address
1.5 c-ares ipv6
1.6 configure-based info in public headers
+ 1.7 signal-based resolver timeouts
2. libcurl - multi interface
2.1 More non-blocking
@@ -161,6 +162,18 @@
The remaining problems to solve involve the platforms that can't run
configure.
+1.7 signal-based resolver timeouts
+
+ libcurl built without an asynchronous resolver library uses alarm() to time
+ out DNS lookups. When a timeout occurs, this causes libcurl to jump from the
+ signal handler back into the library with a sigsetjmp, which effectively
+ causes libcurl to continue running within the signal handler. This is
+ non-portable and could cause problems on some platforms. A discussion on the
+ problem is available at http://curl.haxx.se/mail/lib-2008-09/0197.html
+
+ Also, alarm() provides timeout resolution only to the nearest second. alarm
+ ought to be replaced by setitimer on systems that support it.
+
2. libcurl - multi interface
2.1 More non-blocking