Commit Graph
65 Commits
Author SHA1 Message Date
Yang Tse 57abe9d22d Fix compiler warning: conversion from "int" to "unsigned char"
may lose significant bits
2007-10-18 01:01:20 +00:00
Yang Tse a15a88a4e6 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
Steinar H. Gunderson 04e49e09dc 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
Steinar H. Gunderson 56ffdcefe1 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 b669e17544 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
Daniel Stenberg 2b43edc964 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 ad734e7b2d Brad House's fix to hish a win32 compiler warning 2007-07-14 13:14:58 +00:00
Daniel Stenberg 403b315a3b Vlad Dinulescu fixed two outstanding valgrind reports 2007-07-14 13:08:50 +00:00
Gunter Knauf 316c126447 few minor changes to make ares compile for NetWare CLIB architecture. 2007-07-03 16:00:36 +00:00
Daniel Stenberg fc5a460e0e 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 49fdeb1de4 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 7a77f24d26 Shmulik Regev brought cryptographically secure transaction IDs 2007-05-30 21:11:10 +00:00
Daniel Stenberg f1440b2405 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 557aad7b02 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
Gisle Vanem a627160041 Removed inclusion of <sys/types.h> in .c-files
since it's already included through "setup.h".
2007-02-26 04:33:19 +00:00
Yang Tse 679a675660 add debug messages for initialization failures 2007-02-19 02:03:58 +00:00
Yang Tse 69fa447354 use macros ERRNO, SET_ERRNO(), SOCKERRNO and SET_SOCKERRNO() for errno handling 2007-02-16 15:04:44 +00:00
Yang Tse 5dceb6d883 Oops, missing argument separator comma 2007-02-14 17:38:41 +00:00
Yang Tse 8c76cf38a7 in debug messages also show error description 2007-02-14 14:11:47 +00:00
Yang Tse 6751a208d6 Fix c-ares failing to get the search sequence of /etc/hosts and
DNS from /etc/nsswitch.conf, /etc/host.conf or /etc/svc.conf when
/etc/resolv.conf did not exist or was unable to read it.
2007-02-13 16:14:25 +00:00
Gisle Vanem 657c69ce9d Added HAVE_PROCESS_H for DOS/Win32.
Include <process.h> for getpid() in ares_init.c.
2007-02-06 19:09:57 +00:00
Yang Tse 6f872e206a add debug messages for initialization failures 2007-02-02 16:01:55 +00:00
Yang Tse fb38ee15e2 compiler warning fix 2007-02-01 01:42:13 +00:00
Daniel Stenberg 6a59182e81 Michael Wallner fixed this problem: When I set domains in the options
struct, and there are domain/search entries in /etc/resolv.conf, the domains
of the options struct will be overridden.
2006-11-22 22:54:41 +00:00
Yang Tse 877966659d avoid a couple of potential zero size memory allocations 2006-11-06 13:56:51 +00:00
Yang Tse dd3b42e1ac Replace is*() macros with our own IS*() ones.
Get rid of non ANSI/ISO isascii().
2006-10-18 03:42:06 +00:00
Daniel Stenberg d3439e3332 - Guilherme Balena Versiani: I noted a strange BUG in Win32 port
(ares_init.c/get_iphlpapi_dns_info() function): when I disable the network
  by hand or disconnect the network cable in Windows 2000 or Windows XP, my
  application gets 127.0.0.1 as the only name server. The problem comes from
  'GetNetworkParams' function, that returns the empty string "" as the only
  name server in that case. Moreover, the Windows implementation of
  inet_addr() returns INADDR_LOOPBACK instead of INADDR_NONE.
2006-09-11 20:25:13 +00:00
Gisle Vanem f417f06ca9 Added CVS id. 2006-07-22 15:38:35 +00:00
Gisle Vanem a5c01eed75 If CURLDEBUG defined, call curl_memdebug() if $CARES_MEMDEBUG is set. 2006-07-22 14:51:39 +00:00
Daniel Stenberg 22e34b53e4 Nick Mathewson added the ARES_OPT_SOCK_STATE_CB option that when set makes
c-ares call a callback on socket state changes. A better way than the
ares_getsock() to get full control over the socket state.
2006-05-03 06:11:44 +00:00
Daniel Stenberg d07656e76d James Bursa fixes: find the hosts file on RISC OS, and made it build with
newer gcc versions that no longer defines "riscos".
2006-01-05 07:57:32 +00:00
Daniel Stenberg a8bb249d07 Alfredo Tupone provided a fix for the Windows code in get_iphlpapi_dns_info()
when getting the DNS server etc.
2005-08-21 21:09:44 +00:00
Daniel Stenberg be551e6a00 killed trailing whitespace, narrowed a few lines to 80 cols 2005-08-04 08:07:44 +00:00
Daniel Stenberg 86661ab646 sortlist_alloc() is never used on win32, so ifdef out it to prevent warning 2005-04-19 23:26:14 +00:00
Daniel Stenberg c0eb11ec6c avoid warning on windows 2005-04-16 12:30:01 +00:00
Dominick Meglio 7012fc65d9 Made sortlist support IPv6 (this can probably use some testing) 2005-04-09 19:59:59 +00:00
Dominick Meglio 61f1399c2f Made sortlist support CIDR matching for IPv4 2005-04-09 16:49:47 +00:00
Daniel Stenberg b41effd113 Tupone Alfredo fixed includes of arpa/nameser_compat.h to build fine on Mac OS
X.
2005-04-06 22:27:42 +00:00
Daniel Stenberg 9d89bc0179 silence win32 compiler warnings 2005-03-20 12:29:15 +00:00
Daniel Stenberg bb42658b06 silence warnings on win32 about static functions that are never used 2005-03-19 01:03:46 +00:00
Daniel Stenberg 994f16d733 untabified 2004-12-10 21:46:00 +00:00
Gisle Vanem 6c64cc8669 Replace IsNT with IS_NT().
Return correct timeval in windows_port.c.
Squelch gcc warnings:
  use 'ares_socket_t' in ares_fds.c.
  Don't cast a 'lvalue' in ares_init.c.
2004-11-10 14:23:20 +00:00
Daniel Stenberg 3e748f4b50 removed tabs and trailing whitespace from source 2004-10-06 07:50:18 +00:00
Daniel Stenberg 47bd7d7548 - Henrik Stoerner fix: got a report that Tru64 Unix (the unix from Digital
when they made Alpha's) uses /etc/svc.conf for the purpose fixed below for
  other OSes. He made c-ares check for and understand it if present.

- Now c-ares will use local host name lookup _before_ DNS resolving by default
  if nothing else is told.
2004-09-28 22:19:39 +00:00
Daniel Stenberg 405d83852a - Henrik Stoerner: found out that C-ARES does not look at the /etc/host.conf
file to determine the sequence in which to search /etc/hosts and DNS.  So on
  systems where this order is defined by /etc/host.conf instead of a "lookup"
  entry in /etc/resolv.conf, C-ARES will always default to looking in DNS
  first, and /etc/hosts second.

  c-ares now looks at

  1) resolv.conf (for the "lookup" line);
  2) nsswitch.fon (for the "hosts:" line);
  3) host.conf (for the "order" line).

  First match wins.
2004-09-26 22:35:18 +00:00
Gisle Vanem 6deb40acac Changes for Watt-32 on Windows. I've assumed Configure
sets the required HAVE_xx defines for non-DOS/Win targets.
2004-08-20 13:45:26 +00:00
Daniel Stenberg 5d6bdc38cb Harshal Pradhan made minor syntax change to make this build with MSVC 7.1 2004-08-13 12:00:33 +00:00
Daniel Stenberg d5f3636a52 - Fixed a few variable return types for some system calls. Made configure
check for ssize_t to make it possible to use that when receiving the send()
  error code. This is necessary to prevent compiler warnings on some systems.

- Made configure create config.h, and all source files now include setup.h that
  might include the proper config.h (or a handicrafted alternative).

- Switched to 'ares_socket_t' type for sockets in ares, since Windows don't
  use 'int' for that.

- automake-ified and libool-ified c-ares. Now it builds libcares as a shared
  lib on most platforms if wanted. (This bloated the size of the release
  archive with another 200K!)

- Makefile.am now uses Makefile.inc for the c sources, h headers and man
  pages, to make it easier for other makefiles to use the exact same set of
  files.

- Adjusted 'maketgz' to use the new automake magic when building distribution
  archives.
2004-07-22 22:18:45 +00:00
Daniel Stenberg cb0a33076a Gisle Vanem made this build fine with djgpp and the Watt-32 stack. 2004-07-01 06:58:47 +00:00
Daniel Stenberg fcf36da14f prevent compiler warnings on non-win32 platforms 2004-06-14 10:45:30 +00:00