Commit Graph

650 Commits

Author SHA1 Message Date
Steinar H. Gunderson 91b38857ef Removed a piece of redundant code (process_answer already takes care of it). 2007-10-04 08:12:12 +00:00
Steinar H. Gunderson 6d5f899761 Another timeout fix in ares_getnameinfo(). 2007-10-04 08:09:52 +00:00
Steinar H. Gunderson 77a3e3c7f7 Send the timeout count in ares_getnameinfo(). 2007-10-04 08:09:04 +00:00
Steinar H. Gunderson 81249965f7 Moved the NULL check for channel upwards in ares_destroy(). 2007-10-04 08:07:47 +00:00
Steinar H. Gunderson 45c6db9ac4 Clarified the comment over ares_cancel. 2007-10-04 08:06:25 +00:00
Yang Tse 94162d62ac Avoid a segfault when generating a DNS "Transaction ID" in internal
function init_id_key() under low memory conditions.
2007-10-02 18:26:48 +00:00
Yang Tse f5cad68d22 Add ares_llist.c and ares_llist.h to MSCV project file. 2007-10-02 11:13:58 +00:00
Daniel Stenberg 19c8da85d8 Fixed the problem where next_lookup would use 'status' uninitialized. Now
it gets passed the initial value as an argument.
2007-10-02 08:12:30 +00:00
Yang Tse b03abddb28 Avoid inline C99ism, and move c-ares routines for managing doubly-linked lists. 2007-10-02 02:18:01 +00:00
Daniel Stenberg ccf083e26d ares_strerror() segfaulted if the input error number was out of the currently
supported range.
2007-10-01 22:52:31 +00:00
Daniel Stenberg dbd4abf0ff Prevent ares_strerror() from segfaulting if an invalid error code is passed
in as argument!
2007-10-01 22:51:38 +00:00
Yang Tse 38dd0ede9d Fix compiler warning 2007-09-30 19:43:23 +00:00
Yang Tse 62c264bcdb check availability of <netinet/tcp.h> 2007-09-30 02:12:11 +00:00
Yang Tse d243908a01 improve portability, defining MAXDNAME and MAXCDNAME 2007-09-30 00:37:47 +00:00
Steinar H. Gunderson c145fbea49 Fix a memory leak that I recently inadvertedly introduced. 2007-09-30 00:08:01 +00:00
Steinar H. Gunderson 84fcff79f4 Use ISDIGIT instead of isdigit; fixes a gcc warning. 2007-09-29 21:57:05 +00:00
Steinar H. Gunderson 2694b970e8 Port the TCP socket fix made in ares_fds() to ares_getsock() as well. 2007-09-29 19:26:59 +00:00
Steinar H. Gunderson 23f5d145ec 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.
2007-09-29 18:18:47 +00:00
Gisle Vanem b01ab65225 We should standarise on C comments. 2007-09-29 14:37:47 +00:00
Gisle Vanem 7a7f490efa Fix compiler warning in setsockopt(). 2007-09-29 14:34:59 +00:00
Steinar H. Gunderson 95c15fce0c TCP queries can time out too, not just UDP queries. (Patch from the Google tree.) 2007-09-29 14:25:14 +00:00
Steinar H. Gunderson c788efffd4 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.) 2007-09-29 14:21:47 +00:00
Steinar H. Gunderson c1a475e708 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.) 2007-09-29 14:09:14 +00:00
Steinar H. Gunderson d0de9663e2 Reject names that are longer than 255 characters, to avoid problems with strict or buggy DNS server implementations. (Patch from the Google tree) 2007-09-29 13:58:23 +00:00
Steinar H. Gunderson d6dd848523 In ares_mkquery, make sure we set buflen and buf to reasonable values if there's an error. (Patch from the Google tree) 2007-09-29 13:56:36 +00:00
Steinar H. Gunderson 9fc66e4dd9 Be stricter about what's a valid IP address in fake_hostent. (Patch from the Google tree.) 2007-09-29 13:52:14 +00:00
Steinar H. Gunderson 6ecea9453b Handle the root of the DNS tree correctly in ares_expand_name. 2007-09-29 13:38:17 +00:00
Daniel Stenberg 8179743cee today's modifications by Steinar and me 2007-09-28 20:28:20 +00:00
Daniel Stenberg 3d59a3855a 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)
2007-09-28 20:28:06 +00:00
Steinar H. Gunderson ef3b425b11 Unrevert previous 'missing' hunks. They were missing since the patch is still in for review :-) 2007-09-28 15:56:28 +00:00
Steinar H. Gunderson 026d93b4f6 Yet more missing hunks... Nggh. 2007-09-28 15:55:11 +00:00
Steinar H. Gunderson 36710c4586 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. 2007-09-28 15:53:10 +00:00
Steinar H. Gunderson 63ac6156aa Forgot to include a few hunks from ares_process.c earlier. Fixing now. 2007-09-28 15:51:00 +00:00
Steinar H. Gunderson 08a70d117c Support a few more socket options, and refactor the option setting a bit. (Patch from the Google tree.) 2007-09-28 15:15:39 +00:00
Steinar H. Gunderson 6ce589c3ee 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.) 2007-09-28 14:46:51 +00:00
Steinar H. Gunderson d426c20c0a 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. 2007-09-28 14:28:14 +00:00
Steinar H. Gunderson 54ca7d8cb2 Don't skip a server if it's the only one. (Bugfix from the Google tree.) 2007-09-28 14:26:11 +00:00
Daniel Stenberg 015fc6aa17 wrong, revert the previous "fix" and instead check that the fd_set pointer
is non-NULL before we FD_CLR
2007-09-27 12:04:56 +00:00
Daniel Stenberg a739b9bc45 eek, fix the conditions to return on either problem instead of requiring
both to occur
2007-09-27 12:02:15 +00:00
Daniel Stenberg 0f4664d27f 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.
2007-09-22 21:23:10 +00:00
Daniel Stenberg 0f89a2e639 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.
2007-09-22 21:04:16 +00:00
Daniel Stenberg 05b26e7566 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.
2007-09-22 20:45:50 +00:00
Daniel Stenberg d460b601f9 added initial pkg-config file (attempt) 2007-07-26 21:56:47 +00:00
Gunter Knauf 37dc0fa519 added curl include for debug builds. 2007-07-20 21:50:53 +00:00
Daniel Stenberg 598c589359 added another SEE ALSO 2007-07-14 23:01:49 +00:00
Daniel Stenberg 1261c3feba Brad House's fix to hish a win32 compiler warning 2007-07-14 13:14:58 +00:00
Daniel Stenberg 7fc300d5dc added Vlad's entire description of his valgrind fix 2007-07-14 13:11:36 +00:00
Daniel Stenberg 88ce03e945 Vlad Dinulescu fixed two outstanding valgrind reports 2007-07-14 13:08:50 +00:00
Gunter Knauf 41df67fc2c added better CodeWarrior detection. 2007-07-08 23:17:56 +00:00
Gunter Knauf 932d38323f removed some obsolete include paths and defines. 2007-07-07 16:26:02 +00:00
Gunter Knauf 6606ae6fe0 add test for gettimeofday() so that HAVE_GETTIMEOFDAY gets defined. 2007-07-04 17:20:19 +00:00
Gunter Knauf 3760180320 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. 2007-07-04 10:54:15 +00:00
Gunter Knauf 056af4c9ac added check for sys/param.h. 2007-07-04 09:01:40 +00:00
Gunter Knauf 07bf3c86b6 trial to catch problem with Daniels cross-mingw ares builds. 2007-07-03 18:18:40 +00:00
Gunter Knauf 4182803bc2 added NetWare CLIB-own header to solve gcc warnings. 2007-07-03 16:21:57 +00:00
Gunter Knauf 7509ef6b4e few minor changes to make ares compile for NetWare CLIB architecture. 2007-07-03 16:00:36 +00:00
Gunter Knauf a7513a8521 changed to build for CLIB / LIBC. 2007-07-03 00:42:11 +00:00
Gunter Knauf f1537d45ca sync'd with lib makefile changes: use var for awk; fixed RECV* / SEND* defines; debug var can be overwritten; added better compiler path handling. 2007-07-02 18:50:18 +00:00
Daniel Stenberg 2fd2ca9dac start working on 1.4.1 2007-06-08 09:01:33 +00:00
Daniel Stenberg 82d6240e7d 1.4.0 preps 2007-06-08 08:46:28 +00:00
Daniel Stenberg 42a2138d11 the revert 2007-06-05 13:53:10 +00:00
Daniel Stenberg 90d40aff72 Revered Ashish Sharma's multiple entries patch, as it caused memory madness 2007-06-04 21:33:02 +00:00
Daniel Stenberg 30808dca40 minor edit since getting an ID seems pointless when failure happens 2007-06-04 21:26:30 +00:00
Daniel Stenberg 8629620b1c fix the bad bad bad mess this caused on name resolves returning more than
one name... Reported by James Bursa
2007-06-04 21:04:14 +00:00
Daniel Stenberg 25d2a27c64 Brad Spencer found and fixed three flaws in the code, found with the new
gcc 4.2.0 warning: -Waddress
2007-06-02 20:09:23 +00:00
Daniel Stenberg b084dc8760 Brad House fixed VS2005 compiler warnings due to time_t being 64bit.
He also made recent Microsoft compilers use _strdup() instead of strdup().
2007-06-02 19:48:29 +00:00
Daniel Stenberg 2ae9536d32 Ashish Sharma provided a patch for supporting multiple entries in the
/etc/hosts file. Patch edited for coding style and functionality by me
(Daniel).
2007-06-02 19:42:25 +00:00
Daniel Stenberg f5713dbb2e ares_destroy_options() and ares_save_options() man pages by Brad House 2007-06-02 19:32:30 +00:00
Daniel Stenberg 14b9b823e6 make next version 1.4.0 2007-05-30 21:45:56 +00:00
Daniel Stenberg 6a674ded0e first take at detecting a random device and seeding the random key using data
from it in randomize_key()
2007-05-30 21:37:17 +00:00
Daniel Stenberg 2faba57c85 Shmulik Regev brought cryptographically secure transaction IDs 2007-05-30 21:11:10 +00:00
Daniel Stenberg 79d59ec97b 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.
2007-05-30 20:49:14 +00:00
Daniel Stenberg 670273968c 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.
2007-05-30 12:58:47 +00:00
Daniel Stenberg fcc3e2ca34 Ravi Pratap fixed a flaw in the init_by_resolv_conf() function for windows
that could cause it to return a bad return code.
2007-05-25 21:11:28 +00:00
Yang Tse 94b253fde7 Steve Little's fixes to allow compilation on VMS 64-bit mode 2007-04-25 03:00:10 +00:00
Gunter Knauf c8d3327e92 fixed ARFLAGS for CodeWarrior build. 2007-04-21 15:32:35 +00:00
Gunter Knauf f30ae93a1f added ranlib when library is created with ar. 2007-04-16 20:54:56 +00:00
Gisle Vanem 365e8eb78e No need for USE_MANUAL. Use select_s() instead of select().
Added ares_getopt.o to program sample objects.
2007-04-16 16:52:56 +00:00
Yang Tse 827228bd69 move linkage var declarations to ares_getopt.h 2007-04-16 15:35:34 +00:00
Gunter Knauf 69c5506b69 use Makefile.inc to determine sources. 2007-04-16 13:53:58 +00:00
Gunter Knauf 3a2e623fc8 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 2007-04-16 13:17:26 +00:00
Yang Tse b0b6a853f6 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
2007-04-16 09:08:15 +00:00
Yang Tse 0563a7a923 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
2007-04-16 09:01:16 +00:00
Yang Tse ea74b4b8e1 update MSVC project files with ares_getopt() 2007-04-12 19:14:00 +00:00
Yang Tse 2364066be0 use ares_getopt for all platforms 2007-04-12 19:01:19 +00:00
Yang Tse b36376e12d add ares_getopt prototype 2007-04-12 18:59:46 +00:00
Yang Tse 8aae15b630 Rename function as ares_getopt() 2007-04-12 18:06:41 +00:00
Yang Tse 88bf2a2dc7 Replace tabs with spaces 2007-04-12 17:45:57 +00:00
Yang Tse 45847c5324 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.
2007-04-12 16:53:59 +00:00
Yang Tse 84c5e846b3 convenience SIG_ATOMIC_T macro definition 2007-04-11 11:02:13 +00:00
Yang Tse 8fe9376d54 move WinSock definitions of EBADF, EINTR, EINVAL and EAFNOSUPPORT to setup_once.h 2007-04-04 06:06:36 +00:00
Yang Tse 584f3639e3 update copyright year 2007-04-03 18:25:18 +00:00
Yang Tse 305e03905f Cleanup. Warnings related with FD_SET, FD_ISSET, and FD_ZERO macros
are not icc 9.0 specific.
2007-04-03 02:45:04 +00:00
Gunter Knauf 45b2577974 added variadic macro stuff. 2007-03-27 19:27:43 +00:00
Gunter Knauf 5fbc93c3eb added CVS Id tag. 2007-03-26 01:54:06 +00:00
Gunter Knauf 8851df41c5 fixed build to use compiler-default lib extension. 2007-03-26 01:50:44 +00:00
Yang Tse 8920606b8b attempt to keep message length below 80 chars 2007-03-22 14:41:10 +00:00
Gisle Vanem de6f82d094 Added a hack to work around the circular dependency when
CURL_DEBUG is defined.
2007-03-17 17:56:21 +00:00
Yang Tse 5c7c79bd08 show better description for AMD64-linux static libraries PIC check 2007-03-15 15:35:51 +00:00
Yang Tse 3f29ed6d44 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
2007-03-08 12:04:30 +00:00