aboutsummaryrefslogtreecommitdiff
path: root/lib/hostip.c
AgeCommit message (Collapse)Author
2011-04-25hostip: comment fixed to state current situationDaniel Stenberg
2011-04-25async resolvers: further cleanupsDaniel Stenberg
asyn-ares.c and asyn-thread.c are two separate backends that implement the same (internal) async resolver API for libcurl to use. Backend is specified at build time. The internal resolver API is defined in asyn.h for asynch resolvers.
2010-12-01fix compiler warning: conversion may lose significant bitsYang Tse
2010-11-26hostip: edit commentYang Tse
2010-11-11ip_version: moved to connection structDaniel Stenberg
The IP version choice was previously only in the UserDefined struct within the SessionHandle, but since we sometimes alter that option during a request we need to have it on a per-connection basis. I also moved more "init conn" code into the allocate_conn() function which is designed for that purpose more or less.
2010-11-08CURLOPT_RESOLVE: addedDaniel Stenberg
CURLOPT_RESOLVE is a new option that sends along a curl_slist with name:port:address sets that will populate the DNS cache with entries so that request can be "fooled" to use another host than what otherwise would've been used. Previously we've encouraged the use of Host: for that when dealing with HTTP, but this new feature has the added bonus that it allows the name from the URL to be used for TLS SNI and server certificate name checks as well. This is a first change. Surely more will follow to make it decent.
2010-04-13fix compiler warning: variable might be clobbered by longjmp or vforkYang Tse
2010-04-04simplify code of Curl_resolv_timeout()Kamil Dudka
2010-04-04eliminate a race condition in Curl_resolv_timeout()Kamil Dudka
2010-03-24avoid compiler warning without USE_ALARM_TIMEOUTDaniel Stenberg
2010-03-24remove the CVSish $Id$ linesDaniel Stenberg
2010-03-22fix the alarm()-based DNS timeoutThomas Lopatic
Looking at the code of Curl_resolv_timeout() in hostip.c, I think that in case of a timeout, the signal handler for SIGALRM never gets removed. I think that in my case it gets executed at some point later on when execution has long left Curl_resolv_timeout() or even the cURL library. The code that is jumped to with siglongjmp() simply sets the error message to "name lookup timed out" and then returns with CURLRESOLV_ERROR. I guess that instead of simply returning without cleaning up, the code should have a goto that jumps to the spot right after the call to Curl_resolv().
2010-01-23adjust preprocessor symbol definition check relative to resolver specialtyYang Tse
2010-01-22wrap long lines and do some indent policingDaniel Stenberg
2010-01-22Constantine Sapuntzakis refactoring of async callbacks, allowingYang Tse
removal of Curl_addrinfo_copy(), Curl_addrinfo6_callback(), and Curl_addrinfo4_callback()
2009-12-30VMS specific preprocessor symbol checking adjustmentsYang Tse
2009-11-18Make usage of calloc()'s arguments consistent with rest of code baseYang Tse
2009-11-12Constantine Sapuntzakis patch for hostip.cYang Tse
No need for a separate variable ndns. The memory leak detection will detect code that fails to release a dns reference. The DEBUGASSERT will detect code that releases too many references.
2009-11-12Make hostip.c compile againYang Tse
2009-11-11- Constantine Sapuntzakis posted bug #2891595Daniel Stenberg
(http://curl.haxx.se/bug/view.cgi?id=2891595) which identified how an entry in the DNS cache would linger too long if the request that added it was in use that long. He also provided the patch that now makes libcurl capable of still doing a request while the DNS hash entry may get timed out.
2009-09-01- Peter Sylvester made a debug featuer for Curl_resolv() that now will forceDaniel Stenberg
libcurl to resolve 'localhost' whatever name you use in the URL *if* you set the --interface option to (exactly) "LocalHost". This will enable us to write tests for custom hosts names but still use a local host server.
2009-04-21libcurl's memory.h renamed to curl_memory.hYang Tse
2009-04-21Moved potential inclusion of system's malloc.h and memory.h header files toYang Tse
setup_once.h. Inclusion of each header file is based on the definition of NEED_MALLOC_H and NEED_MEMORY_H respectively.
2008-11-06Merged existing IPv4 and IPv6 Curl_ip2addr functions into a single oneYang Tse
which now also takes a protocol address family argument.
2008-10-30Use our Curl_addrinfo definition even when an addrinfo struct is available.Yang Tse
Use a wrapper function to call system's getaddrinfo().
2008-10-20*** empty log message ***Yang Tse
2008-10-19fix compiler warningYang Tse
2008-10-19attempt to fix or allow further detection of an elusive icc SIGSEGVYang Tse
2008-10-19attempt to fix compiler warning relative to potential misaligned data accessYang Tse
2008-10-18Removed a line of dead code (discovered by Coverity)Dan Fandrich
2008-10-17protect against 'use after free' or race conditionYang Tse
2008-10-17fix compiler warningYang Tse
2008-10-17OOM condition fixYang Tse
2008-10-13attempt to fix or allow further detection of an elusive icc SIGSEGVYang Tse
2008-10-10attempt to fix or allow further detection of an elusive icc SIGSEGVYang Tse
2008-10-03fix another error introduced in previously mentioned commitYang Tse
2008-10-03fix error introduced in previous commitYang Tse
2008-10-02take 2 at fixing compiler warning: argument might be clobbered by `longjmp' ↵Yang Tse
or `vfork'
2008-10-02fix compiler warning: `variable' might be clobbered by `longjmp' or `vfork'Yang Tse
2008-10-01Fixed some compiler warnings with gccDan Fandrich
2008-09-29Fixed a couple of compile warnings.Dan Fandrich
2008-09-29Moved all signal-based name resolution timeout handling into a single newDan Fandrich
Curl_resolv_timeout function to reduce coupling.
2008-09-24ntoa() and inet_ntoa_r() no longer usedYang Tse
2008-09-06remove unnecessary typecasting of calloc()Yang Tse
2008-09-02Removed some redundant type castsDan Fandrich
2008-07-09- Andreas Schuldei improved Phil Blundell's patch for IPv6 using c-ares, and IDaniel Stenberg
edited it slightly. Now you should be able to use IPv6 addresses fine even with libcurl built to use c-ares.
2008-03-11- Dmitry Popov filed bug report #1911069Daniel Stenberg
(http://curl.haxx.se/bug/view.cgi?id=1911069) that identified a race condition in the name resolver code when the DNS cache is shared between multiple easy handles, each running in simultaneous threads that could cause crashes.
2008-01-15Woops, partly revert my previous commit and do it slightly differently instead.Daniel Stenberg
The signalling of that a global DNS cache is wanted is done by setting the option but the setting of the internal variable that it is in use must not be done until it finally actually gets used! NOTE and WARNING: I noticed that you can't actually switch off the global dns cache with CURLOPT_DNS_USE_GLOBAL_CACHE but you couldn't do that previously either and the option is very clearly and loudly documented as DO NOTE USE so I won't bother to fix this bug now.
2008-01-15I made the torture test on test 530 go through. This was actually due toDaniel Stenberg
silly code left from when we switched to let the multi handle "hold" the dns cache when using the multi interface... Of course this only triggered when a certain function call returned error at the correct moment.
2007-11-07if () => if()Daniel Stenberg
while () => while() and some other minor re-indentings