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