The "curl" configure script automatically detects that there is ipv6 support and therefore tries to use getaddrinfo() with ai_family set to PF_UNSPEC in order to do name resolution. The problem is, this causes extremely slow name resolution (> 10 secs) for some (but not all) names. The problem is demostrated with the attached test program (derived from the curl sources when ipv6 is enabled). You can repro the problem with the test program (make getaddrinfo): $ ./getaddrinfo www.yahoo.com www.bloomberg.com www.yahoo.com: rc = 0, time = 1 secs www.bloomberg.com: rc = 0, time = 28 secs The time for resolving www.bloomberg.com will be approximately 10 * (number of nameservers in /etc/resolv.conf) seconds. In my case, I have 3 nameservers, so ~30 seconds of delay. Or, you can repro the problem using curl itself to fetch a page from www.bloomberg.com. I've had my friends check this with the same results (even on FreeBSD). I think the bottom line is that Redhat needs to ship "curl" binaries that have been configured with --disable-ipv6. I dunno who has the high ground here, but it is unacceptable to have these kinds of delays.
Created attachment 45903 [details] C program which demostrates the problem with using getaddrinfo() in curl
Created attachment 46561 [details] Fix from CVS
Is this still a problem with curl 7.9.3?
Yes, its broken in curl 7.9.3 if compiled with ipv6 support. Basically, its broken if PF_UNSPEC is passed to getaddrinfo(). The curl author has decided to blow off ipv6 support and change the call to PF_INET, in some future version of curl that is not yet released.
curl 7.9.5 has the fix and has been built (curl-7.9.5-1)