Steinar H. Gunderson [Sat, 29 Sep 2007 21:57:05 +0000 (21:57 +0000)]
Use ISDIGIT instead of isdigit; fixes a gcc warning.
Steinar H. Gunderson [Sat, 29 Sep 2007 19:26:59 +0000 (19:26 +0000)]
Port the TCP socket fix made in ares_fds() to ares_getsock() as well.
Steinar H. Gunderson [Sat, 29 Sep 2007 18:18:47 +0000 (18:18 +0000)]
Previously, processing a large batch of timeouts was O(n^2) in the number of
outstanding queries, and processing a DNS response packet was O(n) in the
number of outstanding queries. To speed things up in Google, we added a few circular,
doubly-linked lists of queries that are hash-bucketed based on
the attributes we care about, so most important operations are now O(1).
It might be that the number of buckets are higher than most people would need,
but on a quick calculation it should only be 100kB or so even on a 64-bit
system, so I've let it stay as-is.
Gisle Vanem [Sat, 29 Sep 2007 14:37:47 +0000 (14:37 +0000)]
We should standarise on C comments.
Gisle Vanem [Sat, 29 Sep 2007 14:34:59 +0000 (14:34 +0000)]
Fix compiler warning in setsockopt().
Steinar H. Gunderson [Sat, 29 Sep 2007 14:25:14 +0000 (14:25 +0000)]
TCP queries can time out too, not just UDP queries. (Patch from the Google tree.)
Steinar H. Gunderson [Sat, 29 Sep 2007 14:21:47 +0000 (14:21 +0000)]
Read and process as many packets as possible in read_udp_packets, to avoid having to run the entire event loop once per packet. (Patch from the Google tree.)
Steinar H. Gunderson [Sat, 29 Sep 2007 14:09:14 +0000 (14:09 +0000)]
There are two different places in write_tcp_data() that advance the send_queue; however, they are slightly different and only the first one properly uses a while loop. Consolidate both into a single function that DTTR. (Patch from the Google tree.)
Steinar H. Gunderson [Sat, 29 Sep 2007 13:58:23 +0000 (13:58 +0000)]
Reject names that are longer than 255 characters, to avoid problems with strict or buggy DNS server implementations. (Patch from the Google tree)
Steinar H. Gunderson [Sat, 29 Sep 2007 13:56:36 +0000 (13:56 +0000)]
In ares_mkquery, make sure we set buflen and buf to reasonable values if there's an error. (Patch from the Google tree)
Steinar H. Gunderson [Sat, 29 Sep 2007 13:52:14 +0000 (13:52 +0000)]
Be stricter about what's a valid IP address in fake_hostent. (Patch from the Google tree.)
Steinar H. Gunderson [Sat, 29 Sep 2007 13:38:17 +0000 (13:38 +0000)]
Handle the root of the DNS tree correctly in ares_expand_name.
Daniel Stenberg [Fri, 28 Sep 2007 20:28:20 +0000 (20:28 +0000)]
today's modifications by Steinar and me
Daniel Stenberg [Fri, 28 Sep 2007 20:28:06 +0000 (20:28 +0000)]
Bumped version to 1.5.0 for next release and soname bumped to 2 due to ABI
and API changes in the progress callback (and possibly more coming up from
Steinar)
Steinar H. Gunderson [Fri, 28 Sep 2007 15:56:28 +0000 (15:56 +0000)]
Unrevert previous 'missing' hunks. They were missing since the patch is still in for review :-)
Steinar H. Gunderson [Fri, 28 Sep 2007 15:55:11 +0000 (15:55 +0000)]
Yet more missing hunks... Nggh.
Steinar H. Gunderson [Fri, 28 Sep 2007 15:53:10 +0000 (15:53 +0000)]
Always register for TCP events even if there are no outstanding queries, as the other side could always close the connection, which is a valid event which should be responded to.
Steinar H. Gunderson [Fri, 28 Sep 2007 15:51:00 +0000 (15:51 +0000)]
Forgot to include a few hunks from ares_process.c earlier. Fixing now.
Steinar H. Gunderson [Fri, 28 Sep 2007 15:15:39 +0000 (15:15 +0000)]
Support a few more socket options, and refactor the option setting a bit. (Patch from the Google tree.)
Steinar H. Gunderson [Fri, 28 Sep 2007 14:46:51 +0000 (14:46 +0000)]
Make the query callbacks return the number of timeouts that happened during the execution of a query, and update documentation accordingly. (Patch from the Google tree.)
Steinar H. Gunderson [Fri, 28 Sep 2007 14:28:14 +0000 (14:28 +0000)]
Three fixes in one commit (sorry): a) Take care of the tcpbuf if it ends while queued for transmission, note broken servers and close them in the main loop, and store TCP socket generation number in order not to send the same query twice over the same socket.
Steinar H. Gunderson [Fri, 28 Sep 2007 14:26:11 +0000 (14:26 +0000)]
Don't skip a server if it's the only one. (Bugfix from the Google tree.)
Daniel Stenberg [Thu, 27 Sep 2007 12:04:56 +0000 (12:04 +0000)]
wrong, revert the previous "fix" and instead check that the fd_set pointer
is non-NULL before we FD_CLR
Daniel Stenberg [Thu, 27 Sep 2007 12:02:15 +0000 (12:02 +0000)]
eek, fix the conditions to return on either problem instead of requiring
both to occur
Daniel Stenberg [Sat, 22 Sep 2007 21:23:10 +0000 (21:23 +0000)]
Steinar H. Gunderson fixed: Correctly clear sockets from the fd_set on in
several functions (write_tcp_data, read_tcp_data, read_udp_packets) so that
if it fails and the socket is closed the following code doesn't try to use
the file descriptor.
Daniel Stenberg [Sat, 22 Sep 2007 21:04:16 +0000 (21:04 +0000)]
Steinar H. Gunderson modified c-ares to now also do to DNS retries even when
TCP is used since there are several edge cases where it still makes sense.
Daniel Stenberg [Sat, 22 Sep 2007 20:45:50 +0000 (20:45 +0000)]
Brad House provided a fix for ares_save_options(): Apparently I overlooked
something with the ares_save_options() where it would try to do a malloc(0)
when no options of that type needed to be saved. On most platforms, this was
fine because malloc(0) doesn't actually return NULL, but on AIX it does, so
ares_save_options would return ARES_ENOMEM.
Daniel Stenberg [Thu, 26 Jul 2007 21:56:47 +0000 (21:56 +0000)]
added initial pkg-config file (attempt)
Gunter Knauf [Fri, 20 Jul 2007 21:50:53 +0000 (21:50 +0000)]
added curl include for debug builds.
Daniel Stenberg [Sat, 14 Jul 2007 23:01:49 +0000 (23:01 +0000)]
added another SEE ALSO
Daniel Stenberg [Sat, 14 Jul 2007 13:14:58 +0000 (13:14 +0000)]
Brad House's fix to hish a win32 compiler warning
Daniel Stenberg [Sat, 14 Jul 2007 13:11:36 +0000 (13:11 +0000)]
added Vlad's entire description of his valgrind fix
Daniel Stenberg [Sat, 14 Jul 2007 13:08:50 +0000 (13:08 +0000)]
Vlad Dinulescu fixed two outstanding valgrind reports
Gunter Knauf [Sun, 8 Jul 2007 23:17:56 +0000 (23:17 +0000)]
added better CodeWarrior detection.
Gunter Knauf [Sat, 7 Jul 2007 16:26:02 +0000 (16:26 +0000)]
removed some obsolete include paths and defines.
Gunter Knauf [Wed, 4 Jul 2007 17:20:19 +0000 (17:20 +0000)]
add test for gettimeofday() so that HAVE_GETTIMEOFDAY gets defined.
Gunter Knauf [Wed, 4 Jul 2007 10:54:15 +0000 (10:54 +0000)]
although the check for HAVE_STRUCT_TIMEVAL solved the redefine it is incorrect; lets see if a check for HAVE_GETTIMEOFDAY also works; if gettimeofday() is present then we can assume we have the timezone struct too.
Gunter Knauf [Wed, 4 Jul 2007 09:01:40 +0000 (09:01 +0000)]
added check for sys/param.h.
Gunter Knauf [Tue, 3 Jul 2007 18:18:40 +0000 (18:18 +0000)]
trial to catch problem with Daniels cross-mingw ares builds.
Gunter Knauf [Tue, 3 Jul 2007 16:21:57 +0000 (16:21 +0000)]
added NetWare CLIB-own header to solve gcc warnings.
Gunter Knauf [Tue, 3 Jul 2007 16:00:36 +0000 (16:00 +0000)]
few minor changes to make ares compile for NetWare CLIB architecture.
Gunter Knauf [Tue, 3 Jul 2007 00:42:11 +0000 (00:42 +0000)]
changed to build for CLIB / LIBC.
Gunter Knauf [Mon, 2 Jul 2007 18:50:18 +0000 (18:50 +0000)]
sync'd with lib makefile changes: use var for awk; fixed RECV* / SEND* defines; debug var can be overwritten; added better compiler path handling.
Daniel Stenberg [Fri, 8 Jun 2007 09:01:33 +0000 (09:01 +0000)]
start working on 1.4.1
Daniel Stenberg [Fri, 8 Jun 2007 08:46:28 +0000 (08:46 +0000)]
1.4.0 preps
Daniel Stenberg [Tue, 5 Jun 2007 13:53:10 +0000 (13:53 +0000)]
the revert
Daniel Stenberg [Mon, 4 Jun 2007 21:33:02 +0000 (21:33 +0000)]
Revered Ashish Sharma's multiple entries patch, as it caused memory madness
Daniel Stenberg [Mon, 4 Jun 2007 21:26:30 +0000 (21:26 +0000)]
minor edit since getting an ID seems pointless when failure happens
Daniel Stenberg [Mon, 4 Jun 2007 21:04:14 +0000 (21:04 +0000)]
fix the bad bad bad mess this caused on name resolves returning more than
one name... Reported by James Bursa
Daniel Stenberg [Sat, 2 Jun 2007 20:09:23 +0000 (20:09 +0000)]
Brad Spencer found and fixed three flaws in the code, found with the new
gcc 4.2.0 warning: -Waddress
Daniel Stenberg [Sat, 2 Jun 2007 19:48:29 +0000 (19:48 +0000)]
Brad House fixed VS2005 compiler warnings due to time_t being 64bit.
He also made recent Microsoft compilers use _strdup() instead of strdup().
Daniel Stenberg [Sat, 2 Jun 2007 19:42:25 +0000 (19:42 +0000)]
Ashish Sharma provided a patch for supporting multiple entries in the
/etc/hosts file. Patch edited for coding style and functionality by me
(Daniel).
Daniel Stenberg [Sat, 2 Jun 2007 19:32:30 +0000 (19:32 +0000)]
ares_destroy_options() and ares_save_options() man pages by Brad House
Daniel Stenberg [Wed, 30 May 2007 21:45:56 +0000 (21:45 +0000)]
make next version 1.4.0
Daniel Stenberg [Wed, 30 May 2007 21:37:17 +0000 (21:37 +0000)]
first take at detecting a random device and seeding the random key using data
from it in randomize_key()
Daniel Stenberg [Wed, 30 May 2007 21:11:10 +0000 (21:11 +0000)]
Shmulik Regev brought cryptographically secure transaction IDs
Daniel Stenberg [Wed, 30 May 2007 20:49:14 +0000 (20:49 +0000)]
Brad House added ares_save_options() and ares_destroy_options() that can be
used to keep options for later re-usal when ares_init_options() is used.
Daniel Stenberg [Wed, 30 May 2007 12:58:47 +0000 (12:58 +0000)]
added ares_process_fd() to allow applications to ask for processing on
specific sockets and thus avoiding select() and associated functions/macros.
This function will be used by upcoming libcurl releases for this very
reason. It also made me export the ares_socket_t type in the public ares.h
header file, since ares_process_fd() uses that type for two of the arguments.
Daniel Stenberg [Fri, 25 May 2007 21:11:28 +0000 (21:11 +0000)]
Ravi Pratap fixed a flaw in the init_by_resolv_conf() function for windows
that could cause it to return a bad return code.
Yang Tse [Wed, 25 Apr 2007 03:00:10 +0000 (03:00 +0000)]
Steve Little's fixes to allow compilation on VMS 64-bit mode
Gunter Knauf [Sat, 21 Apr 2007 15:32:35 +0000 (15:32 +0000)]
fixed ARFLAGS for CodeWarrior build.
Gunter Knauf [Mon, 16 Apr 2007 20:54:56 +0000 (20:54 +0000)]
added ranlib when library is created with ar.
Gisle Vanem [Mon, 16 Apr 2007 16:52:56 +0000 (16:52 +0000)]
No need for USE_MANUAL. Use select_s() instead of select().
Added ares_getopt.o to program sample objects.
Yang Tse [Mon, 16 Apr 2007 15:35:34 +0000 (15:35 +0000)]
move linkage var declarations to ares_getopt.h
Gunter Knauf [Mon, 16 Apr 2007 13:53:58 +0000 (13:53 +0000)]
use Makefile.inc to determine sources.
Gunter Knauf [Mon, 16 Apr 2007 13:17:26 +0000 (13:17 +0000)]
ares_getopt() command-line parser function does not belong to actual c-ares library. It is just a convinience source code helper function for use in example programs adig.c and ahost.c
Yang Tse [Mon, 16 Apr 2007 09:08:15 +0000 (09:08 +0000)]
ares_getopt() command-line parser function does not belong to actual
c-ares library. It is just a convinience source code helper function
for use in example programs adig.c and ahost.c
Yang Tse [Mon, 16 Apr 2007 09:01:16 +0000 (09:01 +0000)]
ares_getopt() command-line parser function does not belong to actual
c-ares library. It is just a convinience source code helper function
for use in example programs adig.c and ahost.c
Yang Tse [Thu, 12 Apr 2007 19:14:00 +0000 (19:14 +0000)]
update MSVC project files with ares_getopt()
Yang Tse [Thu, 12 Apr 2007 19:01:19 +0000 (19:01 +0000)]
use ares_getopt for all platforms
Yang Tse [Thu, 12 Apr 2007 18:59:46 +0000 (18:59 +0000)]
add ares_getopt prototype
Yang Tse [Thu, 12 Apr 2007 18:06:41 +0000 (18:06 +0000)]
Rename function as ares_getopt()
Yang Tse [Thu, 12 Apr 2007 17:45:57 +0000 (17:45 +0000)]
Replace tabs with spaces
Yang Tse [Thu, 12 Apr 2007 16:53:59 +0000 (16:53 +0000)]
Add file ares_getopt.c
Original file name getopt.c Initial import into the c-ares source tree
on 2007-04-11. Lifted from version 5.2 of the 'Open Mash' project with
the modified BSD license, BSD license without the advertising clause.
Yang Tse [Wed, 11 Apr 2007 11:02:13 +0000 (11:02 +0000)]
convenience SIG_ATOMIC_T macro definition
Yang Tse [Wed, 4 Apr 2007 06:06:36 +0000 (06:06 +0000)]
move WinSock definitions of EBADF, EINTR, EINVAL and EAFNOSUPPORT to setup_once.h
Yang Tse [Tue, 3 Apr 2007 18:25:18 +0000 (18:25 +0000)]
update copyright year
Yang Tse [Tue, 3 Apr 2007 02:45:04 +0000 (02:45 +0000)]
Cleanup. Warnings related with FD_SET, FD_ISSET, and FD_ZERO macros
are not icc 9.0 specific.
Gunter Knauf [Tue, 27 Mar 2007 19:27:43 +0000 (19:27 +0000)]
added variadic macro stuff.
Gunter Knauf [Mon, 26 Mar 2007 01:54:06 +0000 (01:54 +0000)]
added CVS Id tag.
Gunter Knauf [Mon, 26 Mar 2007 01:50:44 +0000 (01:50 +0000)]
fixed build to use compiler-default lib extension.
Yang Tse [Thu, 22 Mar 2007 14:41:10 +0000 (14:41 +0000)]
attempt to keep message length below 80 chars
Gisle Vanem [Sat, 17 Mar 2007 17:56:21 +0000 (17:56 +0000)]
Added a hack to work around the circular dependency when
CURL_DEBUG is defined.
Yang Tse [Thu, 15 Mar 2007 15:35:51 +0000 (15:35 +0000)]
show better description for AMD64-linux static libraries PIC check
Yang Tse [Thu, 8 Mar 2007 12:04:30 +0000 (12:04 +0000)]
remove code superceeded by the new method used to force
libtool to skip C++ and Fortran checks in patchset:
http://cool.haxx.se/cvs.cgi/curl/ares/configure.ac.diff?r1=1.60&r2=1.64
Yang Tse [Wed, 7 Mar 2007 18:02:35 +0000 (18:02 +0000)]
fix test leftover in previous commit
Yang Tse [Wed, 7 Mar 2007 17:59:03 +0000 (17:59 +0000)]
force libtool to build static libraries with PIC on AMD64
Yang Tse [Wed, 7 Mar 2007 01:13:03 +0000 (01:13 +0000)]
Autoconf redefines the M4 builtin macro 'm4_undefine' in such a way that
it fails if the macro that is being undefined is not already defined. To
make this work under all cases and be sure that at a certain point some
specific macro isn't defined we must use the following style in configure:
m4_ifdef([macro], [m4_undefine([macro])])
Dan Fandrich [Tue, 6 Mar 2007 18:08:25 +0000 (18:08 +0000)]
Autoconf 2.57 didn't like these m4_undefine for some reason (probably a bug).
Luckily, they weren't needed.
Yang Tse [Tue, 6 Mar 2007 16:53:53 +0000 (16:53 +0000)]
skip libtool C++ and Fortran linker checks
Yang Tse [Tue, 6 Mar 2007 05:05:50 +0000 (05:05 +0000)]
skip libtool C++ and Fortran checks
Gisle Vanem [Tue, 27 Feb 2007 15:35:06 +0000 (15:35 +0000)]
Added TOPDIR variable. Put dependencies in external file.
Added -DHAVE_STRUCT_TIMEVAL to CFLAGS.
Gisle Vanem [Mon, 26 Feb 2007 04:33:19 +0000 (04:33 +0000)]
Removed inclusion of <sys/types.h> in .c-files
since it's already included through "setup.h".
Yang Tse [Thu, 22 Feb 2007 16:44:43 +0000 (16:44 +0000)]
include <sys/types.h> when checking availability of the bool type
Yang Tse [Thu, 22 Feb 2007 02:51:54 +0000 (02:51 +0000)]
Check for stdbool.h at configuration stage, and include it if available.
Check for lowercase 'bool' type at configuration stage. If not available
provide a suitable replacement with a type definition of 'unsigned char'
in setup_once.h
Move definitions of TRUE and FALSE to setup_once.h
Yang Tse [Wed, 21 Feb 2007 19:03:20 +0000 (19:03 +0000)]
curlassert macro replaced with DEBUGASSERT macro defined in setup_once.h
Gisle Vanem [Wed, 21 Feb 2007 15:01:51 +0000 (15:01 +0000)]
Cleanup WIN32 target using WSACleanup().
Yang Tse [Tue, 20 Feb 2007 12:12:27 +0000 (12:12 +0000)]
Move header file inclusion logic and definition of timeval
struct for platforms that don't have it to setup_once.h
Gisle Vanem [Mon, 19 Feb 2007 17:44:59 +0000 (17:44 +0000)]
Added ares_parse_ns_reply.obj etc.
Gisle Vanem [Mon, 19 Feb 2007 17:41:38 +0000 (17:41 +0000)]
INADDR_NONE no longer used.