curl / Mailing Lists / curl-library / Single Mail
Buy commercial curl support from WolfSSL. We help you work out your issues, debug your libcurl applications, use the API, port to new platforms, add new features and more. With a team lead by the curl founder himself.

Regarding Async DNS resolver

From: Amit via curl-library <>
Date: Mon, 15 Jul 2019 06:31:17 +0530

Hi All,

This is regarding performance issue due to usage of async DNS resolver for
MULTI interface in lib CURL.

My application is using lib CURL (7.57 version) Muti interface with async
DNS resolver enabled (I.e CURLRES_ASYNCH and POSIX_THREADED are defined).
But I am facing performance issues as there is no mechanism in CURL to
notify DNS resolved status back to client application due to which HTTP
request (after DNS resolution) are going out of the box with delay.

The reason for the delay is that application is having a timer
implementation which wakes up every 1 second (GetAddrInfo() is used for DNS
resolution so there is no sock fd to poll) and requests CURL to check all
the ongoing requests (I.e. by calling curl_multi_perform()). So even if DNS
was resolved within 100 msec, request will only be sent out after 1 second
(I.e. with the delay of 900 msec).

I could see that in CURL release (7.59) a callback has been added to notify
the clients about DNS resolution start status, but this will not help as I
am looking for some trigger to notify about DNS resolution.

I would like to seek your opinion/thoughts if it is good idea to re-use the
existing callback to notify the client about DNS resolution ?.

Thanks & Regards,
Amit Katyal

Received on 2019-07-15