From fde4194a9bc18932c6cfdc44e69a4376feb26208 Mon Sep 17 00:00:00 2001 From: Jakub Hrozek Date: Thu, 16 Jun 2011 17:14:53 +0200 Subject: Provide TTL structure names for c-ares < 1.7 https://fedorahosted.org/sssd/ticket/898 In c-ares 1.7, the upstream renamed the addrttl/addr6ttl structures to ares_addrttl/ares_addr6ttl so they are in the ares_ namespace. Because they are committed to stable ABI, the contents are the same, just the name changed -- so it is safe to just #define the new name for older c-ares version in case the new one is not detected in configure time. --- src/external/libcares.m4 | 3 +++ src/resolv/async_resolv.c | 8 ++++++++ 2 files changed, 11 insertions(+) diff --git a/src/external/libcares.m4 b/src/external/libcares.m4 index 657deac59..5b8a35875 100644 --- a/src/external/libcares.m4 +++ b/src/external/libcares.m4 @@ -18,3 +18,6 @@ AC_CHECK_LIB([cares], ) AM_CONDITIONAL(BUILD_ARES_DATA, test x$ares_data = x1) + +dnl Check if this particular version of c-ares support the new TTL structures +AC_CHECK_TYPES([struct ares_addrttl, struct ares_addr6ttl], [], [], [#include ]) diff --git a/src/resolv/async_resolv.c b/src/resolv/async_resolv.c index c05628a35..1f8056722 100644 --- a/src/resolv/async_resolv.c +++ b/src/resolv/async_resolv.c @@ -53,6 +53,14 @@ _ares_malloc_data(data) #endif /* HAVE_ARES_DATA */ +#ifndef HAVE_STRUCT_ARES_ADDRTTL +#define ares_addrttl addrttl +#endif + +#ifndef HAVE_STRUCT_ARES_ADDR6TTL +#define ares_addr6ttl addr6ttl +#endif + #define DNS__16BIT(p) (((p)[0] << 8) | (p)[1]) #define DNS_HEADER_ANCOUNT(h) DNS__16BIT((h) + 6) -- cgit