Yang Tse
3184a91ec8
VMS specific preprocessor symbol checking adjustments
2009-12-30 17:59:56 +00:00
Yang Tse
7e0b0763fc
Revert Joshua Kwan's patch committed 11 Sep 2009.
...
Some systems poll function sets POLLHUP in revents without setting
POLLIN, and sets POLLERR without setting POLLIN and POLLOUT. In some
libcurl code execution paths this could trigger busy wait loops with
high CPU usage until a timeout condition aborted the loop.
The reverted patch addressed the above issue for a very specific case,
when awaiting c-ares to resolve. A libcurl-wide fix superceeds this one.
http://cool.haxx.se/cvs.cgi/curl/lib/select.c.diff?r1=1.52&r2=1.53
2009-09-15 00:07:25 +00:00
Gunter Knauf
4002fbe1f5
Joshua Kwan provided a patch to pass POLLERR / POLLHUP back to c-ares.
...
This fixes a loop problem with high CPU usage.
2009-09-11 02:33:04 +00:00
Yang Tse
33a3753c3f
libcurl's memory.h renamed to curl_memory.h
2009-04-21 11:46:16 +00:00
Yang Tse
9770899a4b
Moved potential inclusion of system's malloc.h and memory.h header files to
...
setup_once.h. Inclusion of each header file is based on the definition of
NEED_MALLOC_H and NEED_MEMORY_H respectively.
2009-04-21 10:26:58 +00:00
Yang Tse
9cc6ab3922
use HAVE_LIMITS_H symbol to protect limits.h inclusion
2009-04-14 13:50:32 +00:00
Yang Tse
2c27e24bb4
include <limits.h> for INT_MAX definition
2009-04-14 13:26:06 +00:00
Daniel Stenberg
dcf92bffd2
- When building with c-ares 1.6.1 (not yet released) or later and IPv6 support
...
enabled, we can now take advantage of its brand new AF_UNSPEC support in
ares_gethostbyname(). This makes test case 241 finally run fine for me wtih
this setup since it now parses the "::1 ip6-localhost" line fine in my
/etc/hosts file!
2009-01-31 20:25:55 +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
Daniel Stenberg
85ffd33f08
Daniel Johnson reported and fixed ipv4 name resolves when libcurl is built
...
with ipv6-enabled c-ares
2008-11-01 23:49:54 +00:00
Yang Tse
c455254fd1
attempt to fix or allow further detection of an elusive icc SIGSEGV
2008-10-10 17:25:53 +00:00
Yang Tse
885805b5df
move struct namebuf6 declaration out of Curl_ip2addr6()
2008-10-10 03:01:50 +00:00
Dan Fandrich
8f467b4288
Removed unneeded includes of signal.h and setjmp.h
2008-09-29 21:44:50 +00:00
Yang Tse
4e909ee8b1
ntoa() and inet_ntoa_r() no longer used
2008-09-24 12:22:16 +00:00
Yang Tse
56f852a64f
Use 'Curl_inet_pton()' instead of 'inet_pton()'.
2008-08-20 23:32:50 +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
Yang Tse
1eebb90030
improve easy interface resolving timeout handling in c-ares enabled builds
2008-04-29 04:18:02 +00:00
Daniel Stenberg
cbd1a77ec2
if () => if()
...
while () => while()
and some other minor re-indentings
2007-11-07 09:21:35 +00:00
Yang Tse
5c8fc7dce9
Fix compiler warning: conversion from "int" to "unsigned short" may lose significant bits
2007-10-20 15:11:51 +00:00
Yang Tse
3f3a38f9c6
Fix issue related with the use of ares_timeout() result.
2007-10-03 13:19:34 +00:00
Daniel Stenberg
a4d6611d26
a name resolve that times out is still a failed name resolve
2007-09-27 12:05:39 +00:00
Daniel Stenberg
d23d686de2
restore the correct timeout time that my previous commit broke
2007-06-11 13:35:33 +00:00
Daniel Stenberg
c8677e9d3f
Properly wait for the c-ares resolve to complete, hopefully the cure for
...
bug #1733955
2007-06-11 13:32:49 +00:00
Daniel Stenberg
4c663ba9a8
When transferring 500 downloads in parallel with a c-ares enabled build only
...
to find that it crashed miserably, and this was due to some select()isms left
in the code. This was due to API restrictions in c-ares 1.3.x, but with the
upcoming c-ares 1.4.0 this is no longer the case so now libcurl runs much
better with c-ares and the multi interface with > 1024 file descriptors in
use.
2007-05-31 11:34:32 +00:00
Yang Tse
eed47311f8
New Internal wrapper function Curl_select() around select (2), it
...
uses poll() when a fine poll() is available, so now libcurl can be
built without select() support at all if a fine poll() is available.
2007-03-27 18:15:26 +00:00
Gisle Vanem
c514a2a89a
Removed inclusion of <sys/types.h> and <sys/stat.h> in .c-files
...
since they're already included through "setup.h".
2007-02-26 04:24:26 +00:00
Yang Tse
a1d5983991
use macros ERRNO, SET_ERRNO(), SOCKERRNO and SET_SOCKERRNO() for errno handling
2007-02-16 18:19:35 +00:00
Daniel Stenberg
91386937ff
- Michael Wallner provided a patch that adds support for CURLOPT_TIMEOUT_MS
...
and CURLOPT_CONNECTTIMEOUT_MS that, as their names should hint, do the
timeouts with millisecond resolution instead. The only restriction to that
is the alarm() (sometimes) used to abort name resolves as that uses full
seconds. I fixed the FTP response timeout part of the patch.
Internally we now count and keep the timeouts in milliseconds but it also
means we multiply set timeouts with 1000. The effect of this is that no
timeout can be set to more than 2^31 milliseconds (on 32 bit systems), which
equals 24.86 days. We probably couldn't before either since the code did
*1000 on the timeout values on several places already.
2007-02-05 22:51:32 +00:00
Daniel Stenberg
7a710b4970
Jeff helped me pinpoint that we didn't properly set the expire timer during
...
c-ares name resolves, but now we do!
2006-10-17 08:06:27 +00:00
Yang Tse
13616f8f96
Simplify check for NEED_MALLOC_H, and make more explicit that NEED_MALLOC_H shall be defined if <malloc.h> header file must be included even when including <stdlib.h>.
2006-07-25 13:49:49 +00:00
Gisle Vanem
e4d6ade4b3
Moved functions common to IPv4 and C-ares to hostip.c;
...
Curl_freeaddrinfo() and Curl_ip2addr().
2006-07-25 10:31:31 +00:00
Gisle Vanem
f2aa3b21e0
Use the proper Curl_freeaddrinfo() for CURLRES_ARES.
2006-07-24 15:58:33 +00:00
Gisle Vanem
a55c70d4ae
Constify 'hostname' and 'service' to various resolver functions.
2006-07-21 05:51:12 +00:00
Gisle Vanem
02938a010d
Changes for combination ENABLE_IPV6 and USE_ARES.
2006-07-21 04:22:44 +00:00
Yang Tse
fe22872d14
include <malloc.h> only if HAVE_MALLOC_H and NEED_MALLOC_H are both defined.
2006-07-11 21:34:23 +00:00
Daniel Stenberg
800193da9b
get the Curl_sockerrno proto
2006-05-05 22:07:01 +00:00
Daniel Stenberg
e85e30546c
Roland Blom filed bug report #1481217
...
(http://curl.haxx.se/bug/view.cgi?id=1481217 ), with follow-ups by Michele Bini
and David Byron. libcurl previously wrongly used GetLastError() on windows to
get error details after socket-related function calls, when it really should
use WSAGetLastError() instead.
When changing to this, the former function Curl_ourerrno() is now instead
called Curl_sockerrno() as it is necessary to only use it to get errno from
socket-related functions as otherwise it won't work as intended on Windows.
2006-05-04 22:39:47 +00:00
Gisle Vanem
3cbb1b2b64
Use the HAVE_MALLOC_H and HAVE_PROCESS_H defines
...
(more logical).
2006-04-26 17:23:28 +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
5f0366c2cb
only define _REENTRANT if not already defined, and only in setup.h
2005-04-19 23:19:23 +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
Daniel Stenberg
41def21f91
ares_gethostbyname wants a 'ares_host_callback' in the 4th argument
2005-02-08 19:03:27 +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
e36fb1ecda
Curl_wait_for_resolv() no longer disconnects on failure, but leaves that
...
operation to the caller. Disconnecting has the disadvantage that the conn
pointer gets completely invalidated and this is not handled on lots of places
in the code.
2005-02-08 07:36:57 +00:00
Daniel Stenberg
39af394a1c
removed tabs and trailing whitespace from source
2004-10-06 07:50:18 +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
bbafb2eb27
curl_global_init_mem() allows the memory functions to be replaced.
...
memory.h is included everywhere for this.
2004-05-11 11:30:23 +00:00
Daniel Stenberg
445c7791a7
James Bursa changed two error message to use the display-name instead of the
...
internally-used name.
2004-05-07 18:56:33 +00:00
Daniel Stenberg
e942df755b
get the display host name properly
2004-05-07 06:18:47 +00:00
Daniel Stenberg
8e73e55336
Michael Benedict brought a fix that fills in the errorbuffer properly
...
when ares fails to resolve a name. This was fixed before but somehow has
fallen out again!
2004-05-06 11:10:51 +00:00