diff --git a/dns/c-ares/Makefile b/dns/c-ares/Makefile index 2a1b831f4f83..c7fe96a0cdf5 100644 --- a/dns/c-ares/Makefile +++ b/dns/c-ares/Makefile @@ -1,99 +1,97 @@ -# New ports collection makefile for: ares -# Date created: 8 September 2003 -# Whom: roam@FreeBSD.org -# +# Created by: roam@FreeBSD.org # $FreeBSD$ -# PORTNAME= c-ares -PORTVERSION= 1.9.1 +PORTVERSION= 1.10.0 CATEGORIES= dns MASTER_SITES= http://c-ares.haxx.se/download/ \ http://obsd.isc.org/pub/OpenBSD/distfiles/ \ http://mirrors.rit.edu/zi/ MAINTAINER= zi@FreeBSD.org COMMENT= An asynchronous DNS resolver library LICENSE= MIT OPTIONS_DEFINE= CONFIG_INFO DEBUG HIDE_SYMBOLS OPTIMIZED_CFLAGS OPTIONS_DEFAULT= CONFIG_INFO HIDE_SYMBOLS CONFIG_INFO_DESC= Add the ares_config_info patch HIDE_SYMBOLS_DESC= Hide internal library symbols OPTIMIZED_CFLAGS_DESC= Build with compiler optimizations CONFLICTS= ares-1.* MAKE_JOBS_UNSAFE= yes .include .if ${PORT_OPTIONS:MCONFIG_INFO} EXTRA_PATCHES+= ${FILESDIR}/ares-config-info.patch PKGNAMESUFFIX= -config .endif .if ${PORT_OPTIONS:MDEBUG} CONFIGURE_ARGS+=--enable-debug .else CONFIGURE_ARGS+=--disable-debug .endif .if ${PORT_OPTIONS:MHIDE_SYMBOLS} CONFIGURE_ARGS+=--enable-symbol-hiding .else CONFIGURE_ARGS+=--disable-symbol-hiding .endif .if ${PORT_OPTIONS:MOPTIMIZED_CFLAGS} CONFIGURE_ARGS+=--enable-optimize .else CONFIGURE_ARGS+=--disable-optimize .endif USE_LDCONFIG= yes -SHLIB_VER= 2 +SHLIB_VER= 3 MAKE_ENV= SHLIB_VER="${SHLIB_VER}" PLIST_SUB= SHLIB_VER="${SHLIB_VER}" GNU_CONFIGURE= yes CONFIGURE_ARGS+=--enable-shared --disable-werror MAN3= ares_cancel.3 \ + ares_create_query.3 \ ares_destroy.3 ares_dup.3 \ ares_expand_name.3 ares_expand_string.3 \ ares_fds.3 \ ares_free_data.3 ares_free_hostent.3 ares_free_string.3 \ ares_get_servers.3 \ ares_gethostbyaddr.3 ares_gethostbyname.3 ares_gethostbyname_file.3 \ ares_getnameinfo.3 \ ares_getsock.3 \ + ares_inet_ntop.3 ares_inet_pton.3 \ ares_init.3 ares_init_options.3 \ ares_library_cleanup.3 ares_library_init.3 \ ares_mkquery.3 \ ares_parse_a_reply.3 ares_parse_aaaa_reply.3 \ ares_parse_mx_reply.3 \ ares_parse_ptr_reply.3 ares_parse_soa_reply.3 \ ares_parse_srv_reply.3 ares_parse_txt_reply.3 \ ares_process.3 \ ares_query.3 \ ares_search.3 \ ares_send.3 ares_set_socket_callback.3 \ ares_set_servers.3 \ ares_strerror.3 \ ares_timeout.3 \ ares_version.3 \ ares_parse_naptr_reply.3 \ ares_parse_ns_reply.3 \ ares_destroy_options.3 \ ares_save_options.3 PROGRAMS= acountry adig ahost post-install: ${INSTALL_PROGRAM} ${PROGRAMS:S@^@${WRKSRC}/.libs/@} ${PREFIX}/bin/ .include diff --git a/dns/c-ares/distinfo b/dns/c-ares/distinfo index ece417a8d1ee..fb23fccef3b7 100644 --- a/dns/c-ares/distinfo +++ b/dns/c-ares/distinfo @@ -1,2 +1,2 @@ -SHA256 (c-ares-1.9.1.tar.gz) = 023f28001f2f839645c8700187391a011198950c73ddd91510c7549d87373936 -SIZE (c-ares-1.9.1.tar.gz) = 782945 +SHA256 (c-ares-1.10.0.tar.gz) = 3d701674615d1158e56a59aaede7891f2dde3da0f46a6d3c684e0ae70f52d3db +SIZE (c-ares-1.10.0.tar.gz) = 809073 diff --git a/dns/c-ares/files/ares-config-info.patch b/dns/c-ares/files/ares-config-info.patch index f1391897854b..427acdebcd71 100644 --- a/dns/c-ares/files/ares-config-info.patch +++ b/dns/c-ares/files/ares-config-info.patch @@ -1,81 +1,73 @@ 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 Forwarded: no Last-Update: 2010-12-19 --- ares.h.orig +++ 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 ---- ares_init.c.orig -+++ ares_init.c -@@ -66,6 +66,7 @@ - #include - #include "ares.h" - #include "inet_net_pton.h" -+#include "inet_ntop.h" - #include "ares_library_init.h" - #include "ares_nowarn.h" - #include "ares_private.h" -@@ -1536,6 +1537,36 @@ +--- ares_init.c.orig 2013-02-17 11:44:02.000000000 -0500 ++++ ares_init.c 2013-05-15 13:43:31.000000000 -0400 +@@ -1875,6 +1875,36 @@ } - #endif /* !WIN32 && !WATT32 */ + #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