Age | Commit message (Collapse) | Author |
|
|
|
|
|
function init_id_key() under low memory conditions.
|
|
supported range.
|
|
|
|
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.
|
|
TCP is used since there are several edge cases where it still makes sense.
|
|
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.
|
|
|
|
|
|
|
|
|
|
gcc 4.2.0 warning: -Waddress
|
|
He also made recent Microsoft compilers use _strdup() instead of strdup().
|
|
/etc/hosts file. Patch edited for coding style and functionality by me
(Daniel).
|
|
|
|
used to keep options for later re-usal when ares_init_options() is used.
|
|
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.
|
|
that could cause it to return a bad return code.
|
|
c-ares library. It is just a convinience source code helper function
for use in example programs adig.c and ahost.c
|
|
|
|
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.
|
|
struct, and there are domain/search entries in /etc/resolv.conf, the domains
of the options struct will be overridden.
|
|
|
|
|
|
|
|
|
|
|
|
(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.
|
|
o made ares_version.h use extern "C" for c++ compilers
o fixed compiler warnings in ares_getnameinfo.c
o fixed a buffer position init for TCP reads
|
|
not always zero!
|
|
|
|
|
|
ares_dns.h, which break c-ares on my Sparc64. Bit-wise operations in C
operate on logical values. And in any event the octets are already in
big-endian (aka network) byte order so they're being reversed (thus the
source of the breakage).
|
|
UDP even when a poll(2) or select(2) suggest otherwise.
|
|
things such as C++ compiler actually is a bad thing and since we don't need
that detection I added a work-around, much inspired by a previous patch by
Paolo Bonzini. This also shortens the configure script quite a lot.
|
|
c-ares call a callback on socket state changes. A better way than the
ares_getsock() to get full control over the socket state.
|
|
|
|
|
|
newer gcc versions that no longer defines "riscos".
|
|
|
|
|
|
use the reentrant getservbyport (getservbyport_r) if it isavailable to ensure it works properly in a threaded environment
|
|
|
|
|
|
when getting the DNS server etc.
|
|
|
|
Make UDP sockets non-blocking. I've confirmed that at least on Linux 2.4 a
read event can come back from poll() on a valid SOCK_DGRAM socket but
recv(2) will still block. This patch doesn't ignore EAGAIN in
read_udp_packets(), though maybe it should. (This patch was edited by Daniel
Stenberg and a new configure test was added (imported from curl's configure)
to properly detect what non-blocking socket approach to use.)
|
|
I'm not quite sure how this was happening, but I've been seeing PTR queries
which seem to return empty responses. At least, they were empty when calling
ares_expand_name() on the record. Here's a patch which guarantees to
NUL-terminate the expanded name. The old behavior failed to NUL-terminate if
len was 0, and this was causing strlen() to run past the end of the buffer
after calling ares_expand_name() and getting ARES_SUCCESS as the return
value. If q is not greater than *s then it's equal and *s is always
allocated with at least one byte.
|
|
|