From 7fc18e8c3547b7b97cd03f786905c23560a671a1 Mon Sep 17 00:00:00 2001 From: Willem Toorop Date: Wed, 18 Mar 2015 21:43:41 +0100 Subject: [PATCH] Anticipate older libldns with travis --- configure | 68 +++++++++++++++++++++++++++++++++++++++++++++++++ configure.ac | 3 +++ src/config.h.in | 3 +++ src/dnssec.c | 2 ++ 4 files changed, 76 insertions(+) diff --git a/configure b/configure index c6dfa385..730f278a 100755 --- a/configure +++ b/configure @@ -1829,6 +1829,63 @@ $as_echo "$ac_res" >&6; } } # ac_fn_c_check_decl +# ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES +# ---------------------------------------------------- +# Tries to find if the field MEMBER exists in type AGGR, after including +# INCLUDES, setting cache variable VAR accordingly. +ac_fn_c_check_member () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5 +$as_echo_n "checking for $2.$3... " >&6; } +if eval \${$4+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$5 +int +main () +{ +static $2 ac_aggr; +if (ac_aggr.$3) +return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$4=yes" +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$5 +int +main () +{ +static $2 ac_aggr; +if (sizeof ac_aggr.$3) +return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$4=yes" +else + eval "$4=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$4 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_member + # ac_fn_c_check_type LINENO TYPE VAR INCLUDES # ------------------------------------------- # Tests whether TYPE exists after having included INCLUDES, setting cache @@ -11401,6 +11458,17 @@ else fi +ac_fn_c_check_member "$LINENO" "struct ldns_struct_dnssec_zone" "hashed_names" "ac_cv_member_struct_ldns_struct_dnssec_zone_hashed_names" "#include +" +if test "x$ac_cv_member_struct_ldns_struct_dnssec_zone_hashed_names" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define LDNS_DNSSEC_ZONE_HASHED_NAMES 1 +_ACEOF + +fi + + if test $found_all_libs == 0 then as_fn_error $? "One more dependencies is missing" "$LINENO" 5 diff --git a/configure.ac b/configure.ac index e9c41a5c..d65fa0a6 100755 --- a/configure.ac +++ b/configure.ac @@ -220,6 +220,9 @@ AC_CHECK_LIB([ldns], [ldns_dname_new_frm_str], [], [found_all_libs=0]) AC_MSG_NOTICE([Checking for dependency libidn]) AC_CHECK_LIB([idn], [idna_to_ascii_8z], [], [found_all_libs=0]) +AC_CHECK_MEMBER([struct ldns_struct_dnssec_zone.hashed_names], +[AC_DEFINE_UNQUOTED([LDNS_DNSSEC_ZONE_HASHED_NAMES], [1], [When defined ldns_dnssec_zone contained the hashed_names member.])], [], [[#include ]]) + if test $found_all_libs == 0 then AC_MSG_ERROR([One more dependencies is missing]) diff --git a/src/config.h.in b/src/config.h.in index 0688d4d5..2de320cb 100644 --- a/src/config.h.in +++ b/src/config.h.in @@ -102,6 +102,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_UV_H +/* When defined ldns_dnssec_zone contained the hashed_names member. */ +#undef LDNS_DNSSEC_ZONE_HASHED_NAMES + /* Define to the sub-directory in which libtool stores uninstalled libraries. */ #undef LT_OBJDIR diff --git a/src/dnssec.c b/src/dnssec.c index e9fcb726..fda34d10 100644 --- a/src/dnssec.c +++ b/src/dnssec.c @@ -502,6 +502,7 @@ priv_getdns_ldns_dnssec_zone_add_rr(ldns_dnssec_zone *zone, ldns_rr *rr) zone->names = ldns_rbtree_create(ldns_dname_compare_v); (void)ldns_rbtree_insert(zone->names, new_node); +#ifdef LDNS_DNSSEC_ZONE_HASHED_NAMES if (!(new_node = LDNS_MALLOC(ldns_rbnode_t))) { ldns_dnssec_name_free(new_name); return LDNS_STATUS_MEM_ERR; @@ -513,6 +514,7 @@ priv_getdns_ldns_dnssec_zone_add_rr(ldns_dnssec_zone *zone, ldns_rr *rr) zone->hashed_names = ldns_rbtree_create(ldns_dname_compare_v); } (void)ldns_rbtree_insert(zone->hashed_names, new_node); +#endif return ldns_dnssec_zone_add_rr(zone, rr); }