Age | Commit message (Collapse) | Author |
|
check for broken connections like ares_process() did. Based on that, I
merged the two functions into a single generic one with two front-ends.
|
|
|
|
did not include a definition for HAVE_CLOSESOCKET which resulted in
function close() being inappropriately used to close sockets.
|
|
|
|
which might contain non-SRV answers, skipping over potential non-SRV
ones such as CNAMEs.
|
|
|
|
|
|
|
|
ares_addr6ttl in order to prevent name space pollution, along with
necessary changes to code base and man pages.This change does not break
ABI, there is no need to recompile existing applications. But existing
applications using these structs with the old name will need source code
adjustments when recompiled using c-ares 1.6.1.
|
|
with the ones declared in ares.h
|
|
|
|
|
|
|
|
|
|
ARES_ECANCELLED error code value and missing error code description.
|
|
- Fixing out of bounds memory overwrite triggered with malformed /etc/hosts file.
- Improving parsing of /etc/hosts file.
- Validating requested address family.
- Ensuring that failures always return a NULL pointer.
- Adjusting header inclusions.
|
|
|
|
ares_cancel() is used, to be ARES_ECANCELLED instead of ARES_ETIMEOUT to
better allow the callback to know what's happening.
|
|
fails to get inited by other means. This fixes a case of when the c-ares
init fails when internet access is fone.
|
|
libcurl is used with other projects which also have a config.h.
|
|
--enable-debug for this library.
|
|
|
|
--enable-debug
|
|
|
|
only expose functions starting with ares_.
|
|
|
|
setup_once.h. Inclusion of each header file is based on the definition of
NEED_MALLOC_H and NEED_MEMORY_H respectively.
|
|
|
|
|
|
- If the server returns garbage or nothing at all in response to an AAAA query,
go on and ask for A records anyway.
|
|
either AF_INET6 or AF_INET. It works by accepting any of the looksups in the
hosts file, and it resolves the AAAA field with a fallback to A.
|
|
now declares the private struct ares_in6_addr for all systems instead of
relying on one possibly not present in the system.
|
|
packet storms when several queries were started at the same time.
|
|
that is now used by the ares_parse_*_reply() functions instead of the
ares_expand_name() simply to easier return ARES_EBADRESP for the cases where
the name expansion fails as in responses that really isn't expected.
|
|
|
|
and I edited it to also get duped by ares_dup().
|
|
Also discussed on the ml.
|
|
buffer to shrink instead of expand if a reply contained 8 or more records.
|
|
|
|
ares_addr union is now changed into an internal struct which also holds
the address family.
|
|
resolves a host name from the given file, using the regular hosts syntax.
|
|
in man resolv.conf:
causes round robin selection of nameservers from among those listed. This
has the effect of spreading the query load among all listed servers, rather
than having all clients try the first listed server first every time.
You can enable it with ARES_OPT_ROTATE
|
|
- handles the EINPROGRESS for UDP connects
- uses closesocket instead of close on some paths that were noticed
|
|
-s option as well.
|
|
|
|
|
|
|
|
|
|
|
|
The symptom:
* Users (usually, but not always) on 2-Wire routers and the Comcast service
and a wired connection to their router would find that the second and
subsequent DNS lookups from fresh processes using c-ares to resolve the same
address would cause the process to never see a reply (it keeps polling for
around 1m15s before giving up).
The repro:
* On such a machine (and yeah, it took us a lot of QA to find the systems
that reproduce such a specific problem!), do 'ahost www.secondlife.com',
then do it again. The first process's lookup will work, subsequent lookups
will time-out and fail.
The cause:
* init_id_key() was calling randomize_key() *before* it initialized
key->state, meaning that the randomness generated by randomize_key() is
immediately overwritten with deterministic values. (/dev/urandom was also
being read incorrectly in the c-ares version we were using, but this was
fixed in a later version.)
* This makes the stream of generated query-IDs from any new c-ares process
be an identical and predictable sequence of IDs.
* This makes the 2-Wire's default built-in DNS server detect these queries
as probable-duplicates and (erroneously) not respond at all.
|