Daniel Stenberg
fb5f332834
- Constantine Sapuntzakis posted bug #2891595
...
(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-11-11 09:31:37 +00:00
Yang Tse
a0ef686c54
Merged existing IPv4 and IPv6 Curl_ip2addr functions into a single one
...
which now also takes a protocol address family argument.
2008-11-06 17:19:56 +00:00
Yang Tse
c2c800d863
Move curl_dofreeaddrinfo() and curl_dofreeaddrinfo()
...
implementation from lib/hostip6.c to lib/curl_addrinfo.c
and prototypes from lib/hostip.h to lib/curl_addrinfo.h
2008-10-30 19:02:23 +00:00
Yang Tse
0ce97f77e0
Use our Curl_addrinfo definition even when an addrinfo struct is available.
...
Use a wrapper function to call system's getaddrinfo().
2008-10-30 13:45:25 +00:00
Yang Tse
bdf1724412
take 2 at fixing compiler warning: argument might be clobbered by longjmp' or
vfork'
2008-10-02 22:58:09 +00:00
Yang Tse
00dec36c72
fix compiler warning: variable' might be clobbered by
longjmp' or `vfork'
2008-10-02 14:42:57 +00:00
Dan Fandrich
4adcf7e9ed
Moved all signal-based name resolution timeout handling into a single new
...
Curl_resolv_timeout function to reduce coupling.
2008-09-29 21:02:22 +00:00
Yang Tse
a6c915aab9
fix compiler warning: external declaration in primary source file
2008-09-18 16:21:09 +00:00
Daniel Stenberg
0cd8840dba
- Andreas Schuldei improved Phil Blundell's patch for IPv6 using c-ares, and I
...
edited it slightly. Now you should be able to use IPv6 addresses fine even
with libcurl built to use c-ares.
2008-07-09 18:39:49 +00:00
Daniel Stenberg
991505e077
Woops, partly revert my previous commit and do it slightly differently instead.
...
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-15 22:44:12 +00:00
Daniel Stenberg
56f17d2c9f
I made the torture test on test 530 go through. This was actually due to
...
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.
2008-01-15 22:15:55 +00:00
Daniel Stenberg
2c105af910
Adapted the c-ares code to the API change c-ares 1.5.0 brings in the
...
notifier callback(s).
2007-09-28 21:48:28 +00:00
Gunter Knauf
afdfa4bed2
minor patches to enable building for NetWare CLIB.
...
sent by Dmitry Mityugov.
2007-06-30 20:08:13 +00:00
Yang Tse
dc7c915553
Compilation fix
2006-09-08 05:18:07 +00:00
Daniel Stenberg
b7eeb6e67f
Major overhaul introducing http pipelining support and shared connection
...
cache within the multi handle.
2006-09-07 21:49:20 +00:00
Gunter Knauf
ac02d379ba
moved ugly NetWare hack to hostip.h so that hostip.c uses it too.
2006-08-08 22:37:53 +00:00
Gisle Vanem
4e58da5222
Ares needs CURLRES_ADDRINFO_COPY. Curl_hostent_relocate() is gone.
2006-07-24 15:48:48 +00:00
Gisle Vanem
5cdbd0cf4a
Constify arguments to Curl_he2ai() and Curl_addrinfo_copy().
2006-07-21 06:21:46 +00:00
Gisle Vanem
a55c70d4ae
Constify 'hostname' and 'service' to various resolver functions.
2006-07-21 05:51:12 +00:00
Yang Tse
d2cefc140a
Change the ai_addrlen type of struct addrinfo from size_t to socklen_t, per RFC 3493.
2006-07-14 10:30:44 +00:00
Yang Tse
55138753c6
Test HAVE_GETNAMEINFO definition before using GETNAMEINFO_XXX definitions.
2006-07-04 02:27:11 +00:00
Yang Tse
43369b8096
Fix compiler warning.
2006-07-03 18:38:03 +00:00
Daniel Stenberg
c1e307f585
added docs and removed proto
2006-04-11 07:22:55 +00:00
Daniel Stenberg
686d90745b
First curl_multi_socket() commit. Should primarily be considered as an internal
...
code rearrange to fit the future better.
2006-04-10 15:00:53 +00:00
Daniel Stenberg
6fdbb01194
Lots of work and analysis by "xbx___" in bug #1431750
...
(http://curl.haxx.se/bug/view.cgi?id=1431750 ) helped me identify and fix two
different but related bugs:
1) Removing an easy handle from a multi handle before the transfer is done
could leave a connection in the connection cache for that handle that is
in a state that isn't suitable for re-use. A subsequent re-use could then
read from a NULL pointer and segfault.
2) When an easy handle was removed from the multi handle, there could be an
outstanding c-ares DNS name resolve request. When the response arrived,
it caused havoc since the connection struct it "belonged" to could've
been freed already.
Now Curl_done() is called when an easy handle is removed from a multi handle
pre-maturely (that is, before the transfer was complteted). Curl_done() also
makes sure to cancel all (if any) outstanding c-ares requests.
2006-02-23 12:20:48 +00:00
Yang Tse
b15f3bb969
Undo last changes
2005-12-11 23:37:58 +00:00
Yang Tse
36485e56ed
Fix compiler warning and compatibility issue with the type of the parameter used in getnameinfo() to receive the length of the sockaddr struct.
2005-12-11 12:03:01 +00:00
Daniel Stenberg
9b3c2b6ae2
kill warnings
2005-04-04 21:23:04 +00:00
Gisle Vanem
0b45431139
hostthre.c: destroy_thread_data() made public. Called
...
from url.c: Curl_disconnect().
2005-04-04 12:30:03 +00:00
Daniel Stenberg
6a2e21ec8c
FTP code turned into state machine. Not completely yet, but a good start.
...
The tag 'before_ftp_statemachine' was set just before this commit in case
of future need.
2005-02-09 13:06:40 +00:00
Gisle Vanem
d118312922
Curl_addrinfo?_callback() and addrinfo_callback() now returns
...
CURLE_OK or CURLE_OUT_OF_MEMORY.
Add typecast in hostares.c.
2005-02-08 12:36:13 +00:00
Daniel Stenberg
043d70fcdf
Use plain structs and not typedef'ed ones in the hash and linked-list code.
2005-01-25 00:06:29 +00:00
Daniel Stenberg
785bad388b
Gisle cleaned up remaining host resolve re-org issues
2004-06-24 14:39:52 +00:00
Daniel Stenberg
5e34f3dc01
made the Curl_he2ai() take the port number as an int intead, to avoid lots
...
of typecasts all over
2004-06-24 10:43:50 +00:00
Daniel Stenberg
c39858aac0
Source cleanups. The major one being that we now _always_ use a Curl_addrinfo
...
linked list for name resolved data, even on hosts/systems with only IPv4
stacks as this simplifies a lot of code.
2004-06-24 07:43:48 +00:00
Daniel Stenberg
8d76d4016d
removed trailing whitespace
2004-06-10 11:56:02 +00:00
Daniel Stenberg
9f92657f76
Gisle corrected two comments
2004-06-10 11:55:37 +00:00
Daniel Stenberg
9f341f9ce5
Gisle Vanem's improved verbose output and timeout handling when connecting to
...
a host name that resolves to multiple IP addresses.
2004-06-10 11:06:21 +00:00
Daniel Stenberg
245e3122df
Made defines instead of plain numbers for the Curl_resolv() return code to
...
make the code easier to read
2004-04-26 14:18:00 +00:00
Daniel Stenberg
2370d4fa02
Curl_ip2addr() now takes an in_addr_t argument instead to prevent compiler
...
warnings
2004-04-26 12:02:33 +00:00
Daniel Stenberg
648e82f05d
Major hostip.c cleanup and split into multiple files and easier #ifdef
...
usage.
2004-04-26 07:20:11 +00:00
Daniel Stenberg
7ea837a18c
adjusted to the new dns cache function to hide more hostip internals
2004-03-30 13:02:31 +00:00
Daniel Stenberg
053f6c85ef
updated year in the copyright string
2004-01-07 09:19:33 +00:00
Daniel Stenberg
3788f25eac
added a library-wide interface for doing dns cache pruning, and no longer
...
make the pruning at each name lookup, only in Curl_done().
2003-12-15 17:33:49 +00:00
Daniel Stenberg
343291ce37
Based on a patch provided by Siddhartha Prakash Jain. In Curl_resolv() when
...
my_getaddrinfo() has been called (and wait has been set to TRUE), we check
if the name already is resolved and if so don't return wait status to the
parent. This can happen with IP-only names.
2003-10-04 14:50:45 +00:00
Daniel Stenberg
b73612392d
ares awareness/usage/support added. If configure --enable-ares is used, we
...
build libcurl to use ares for asynch name resolves.
2003-08-05 14:40:59 +00:00
Daniel Stenberg
308bc9d919
use CURLDEBUG instead of MALLOCDEBUG for preprocessor conditions
2003-06-26 11:22:12 +00:00
Daniel Stenberg
e615d117a0
Setup and use CURL_INADDR_NONE all over instead of INADDR_NONE. We setup
...
the define accordingly in the hostip.h header to work nicely all over.
2003-05-13 12:12:17 +00:00
Jean-Philippe Barette-LaPierre
beb13a1d3e
added the sharing of DNS cache
2003-02-04 23:48:46 +00:00
Daniel Stenberg
f26a338a54
copyright year update in the source header
2003-01-16 21:08:12 +00:00
Daniel Stenberg
7df5677b46
fixed Curl_freeaddrinfo() to only free addrinfo, and added Curl_freednsinfo()
...
for freeing single dns cache entries
2002-11-26 09:41:54 +00:00
Daniel Stenberg
66eb98bb0a
unlock dns cache entries with a function call instead of a variable fiddle
2002-11-11 22:36:00 +00:00
Daniel Stenberg
2cff251863
Curl_resolv() now returns a different struct, and it contains a reference
...
counter so that the caller needs to decrease that counter when done with
the returned data.
If compiled with MALLOCDEBUG I've added some extra checking that the counter
is decreased before a handle is closed etc.
2002-11-05 10:51:41 +00:00
Daniel Stenberg
ba4e69bebc
updated source code boilerplate/header
2002-09-03 11:52:59 +00:00
Daniel Stenberg
8927ddec16
In order to not get problems with DNS cache pruning, we no longer store
...
any name resolved data in any curl handle struct. That way, we won't mind
if the cache entries are pruned for the next time we need them. We'll just
resolve them again instead.
This changes the Curl_resolv() proto. It modifies the SessionHandle struct
but perhaps most importantly, it'll make the internals somewhat dependent
on the DNS cache not being disabled as that will cripple operations somewhat.
Especially for persistant connections.
2002-04-25 19:00:57 +00:00
Daniel Stenberg
974f314f57
copyright string (year) update
2002-03-19 07:54:55 +00:00
Sterling Hughes
8d7f402efb
Make cach'ing work with threads now, there are now three cases:
...
- Use a global dns cache (via setting the tentatively named,
CURLOPT_DNS_USE_GLOBAL_CACHE option to true)
- Use a per-handle dns cache, by default
- Use a pooled dns cache when in the "multi" interface
2002-01-07 20:52:32 +00:00
Daniel Stenberg
6de7dc5879
Sterling Hughes' provided initial DNS cache source code.
2002-01-03 10:22:59 +00:00
Daniel Stenberg
5d9ae88f58
getaddrinfo() cleanups
2001-10-04 13:25:12 +00:00
Daniel Stenberg
51ca5fcbe0
major connecting updates
2001-10-02 09:40:06 +00:00
Daniel Stenberg
48dc74aecc
more transparant support for IPv6 name resolving
2001-09-28 07:05:26 +00:00
Daniel Stenberg
0ece1b5c34
Major rename and redesign of the internal "backbone" structs. Details will
...
be posted in a minute to the libcurl list.
2001-08-30 22:48:34 +00:00
Daniel Stenberg
f6e2bfd464
Jun-ichiro itojun Hagino's IPv6 adjustments
2001-02-05 23:04:44 +00:00
Daniel Stenberg
4031104404
Internal symbols that aren't static are now prefixed with 'Curl_'
2001-01-05 10:11:41 +00:00
Daniel Stenberg
24dee483e9
dual-license fix
2001-01-03 09:29:33 +00:00
Daniel Stenberg
aa8a2fbde3
GetHost() changed function arguments
2000-09-21 08:47:48 +00:00
Daniel Stenberg
1ef3600a07
haxx.nu => haxx.se
2000-06-20 15:31:26 +00:00
Daniel Stenberg
a0ce95e155
David LeBlanc's fixes!
2000-05-29 22:51:13 +00:00
Daniel Stenberg
ae1912cb0d
Initial revision
1999-12-29 14:20:26 +00:00