Hi,

I am facing an issue with the name resolution mechanism in libcurl. I have compiled curl and libcurl myself, compiled and linked the example simple.c statically and tried to pull a simple webpage to stdout. Every call seems to be extremely slow. So, I have added curl_easy_getinfo(curl, CURLINFO_NAMELOOKUP_TIME, &nslookup_time); and realized that virtually the entire time is spent in name resolution. It varies from five to ten seconds every time.

For instance:
D:\workspace-4.2\curlsimple\Debug>curlsimple.exe http://curl.haxx.se
Provided URL: http://curl.haxx.se
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 11804 100 11804 0 0 1962 0 0:00:06 0:00:06 --:--:-- 2518
Name lookup time: 5.875000 s
Connect time: 0.047000 s
Pretransfer time: 0.000000 s
start transfer time: 0.063000 s
Total time: 6.016000 s

I am on Windows XP SP3 32 bits, I have compiled curl with MingW32 with GCC 4.5.2. Stripped it to a mininum:

curl 7.29.0 (i386-pc-win32) libcurl/7.29.0 WinSSL
Protocols: http https
Features: AsynchDNS GSS-Negotiate Largefile NTLM SSL SSPI

I tried several to resolve this issue:

1. Flushed DNS cache, no avail
2. Rebooted my router, no avail
3. Directly connected to the Internet w/o router, no avail
4. Changed DNS server in my computer and router from ISP's to Google's, no avail

Finally I tried a virtual machine with the same OS and results come instantly. I also analyzed the traffic with Wireshark. After the invocation of simple.exe nothing happens for several seconds, boom name is resolved and HTTP GET is issued. Using IP addresses works as desired.

Obviously, there is something wrong with my installtion/OS settings.
Strangely, other applications resolve names immediately like Firefox, wget, etc.

What is so different about the name resolution in libcurl?
Has anyone else experienced this?

As a side note: when running the configure script in cygwin either for curl or c-ares the script hangs on "checking types of args and return type for recvfrom..." [1]

Thanks,

Michael

PS: My C knowledge is quite limited.

[1] http://forums.unrealircd.com/viewtopic.php?f=3&t=7349
-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette:  http://curl.haxx.se/mail/etiquette.html

Reply via email to