diff options
Diffstat (limited to 'dns/c-ares/files/ares-config-info.patch')
| -rw-r--r-- | dns/c-ares/files/ares-config-info.patch | 73 |
1 files changed, 0 insertions, 73 deletions
diff --git a/dns/c-ares/files/ares-config-info.patch b/dns/c-ares/files/ares-config-info.patch deleted file mode 100644 index 9f0c3e4bca78..000000000000 --- a/dns/c-ares/files/ares-config-info.patch +++ /dev/null @@ -1,73 +0,0 @@ -Description: Add the ares_get_config() routine used by Unreal IRCd. - Originally taken from the Unreal IRCd distribution, later modified - by me to properly support IPv6 nameserver addresses since c-ares-1.7.1. -Origin: the Unreal IRCd distribution -Author: Peter Pentchev <roam@FreeBSD.org> -Forwarded: no -Last-Update: 2010-12-19 - ---- include/ares.h.orig -+++ include/ares.h -@@ -260,6 +260,14 @@ - int nsort; - }; - -+/** Public available config (readonly) interface for ares_get_config(). */ -+struct ares_config_info { -+ int timeout; -+ int tries; -+ int numservers; -+ char **servers; -+}; -+ - struct hostent; - struct timeval; - struct sockaddr; -@@ -530,6 +538,8 @@ - CARES_EXTERN int ares_get_servers(ares_channel channel, - struct ares_addr_node **servers); - -+CARES_EXTERN int ares_get_config(struct ares_config_info *d, ares_channel c); -+ - #ifdef __cplusplus - } - #endif ---- src/lib/ares_init.c.orig 2013-02-17 11:44:02.000000000 -0500 -+++ src/lib/ares_init.c 2013-05-15 13:43:31.000000000 -0400 -@@ -1875,6 +1875,36 @@ - } - #endif /* !WIN32 & !WATT32 & !ANDROID & !__ANDROID__ */ - -+int ares_get_config(struct ares_config_info *d, ares_channel c) -+{ -+ int i; -+ const char *p; -+ char tmp[sizeof("ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255")]; -+ -+ memset(d, 0, sizeof(struct ares_config_info)); -+ -+ d->timeout = c->timeout; -+ d->tries = c->tries; -+ d->numservers = c->nservers; -+ d->servers = calloc(sizeof(char *), c->nservers); -+ for (i = 0; i < c->nservers; i++) -+ { -+ if (c->servers[i].addr.family == AF_INET) -+ p = ares_inet_ntop(c->servers[i].addr.family, -+ (const char *)&c->servers[i].addr.addrV4, -+ tmp, sizeof(tmp)); -+ else if (c->servers[i].addr.family == AF_INET6) -+ p = ares_inet_ntop(c->servers[i].addr.family, -+ (const char *)&c->servers[i].addr.addrV6, -+ tmp, sizeof(tmp)); -+ else -+ p = NULL; -+ d->servers[i] = p ? strdup(p) : NULL; -+ } -+ -+ return ARES_SUCCESS; -+} -+ - /* initialize an rc4 key. If possible a cryptographically secure random key - is generated using a suitable function (for example win32's RtlGenRandom as - described in |
