From: Marek Vavrusa Date: Tue, 9 Aug 2016 20:54:26 +0000 (-0700) Subject: build: fixed build with libknot<2.3 without cookies X-Git-Tag: v1.1.0~2^2~3 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=8a8e91e0893e99becf80be1f2844814bb90aaa7e;p=thirdparty%2Fknot-resolver.git build: fixed build with libknot<2.3 without cookies the cookies require libknot>=2.3, Makefile didn't check for that, and turning cookies off wasn't possible either --- diff --git a/Makefile b/Makefile index 6179612ab..ce157d25e 100644 --- a/Makefile +++ b/Makefile @@ -65,8 +65,11 @@ endif BUILD_CFLAGS += $(libknot_CFLAGS) $(libuv_CFLAGS) $(nettle_CFLAGS) $(cmocka_CFLAGS) $(lua_CFLAGS) $(libdnssec_CFLAGS) $(libsystemd_CFLAGS) BUILD_CFLAGS += $(addprefix -I,$(wildcard contrib/ccan/*) contrib/murmurhash3) -ifeq ($(HAS_nettle),yes) +# Check if it has libknot 2.3.0 and nettle to support DNS cookies +$(eval $(call find_alt,knot230,libknot,2.3)) +ifeq ($(HAS_nettle)|$(HAS_knot230),yes|yes) BUILD_CFLAGS += -DENABLE_COOKIES +ENABLE_COOKIES := yes endif # Overview diff --git a/lib/cookies/lru_cache.h b/lib/cookies/lru_cache.h index 22c274a98..d5d694ea2 100644 --- a/lib/cookies/lru_cache.h +++ b/lib/cookies/lru_cache.h @@ -16,11 +16,17 @@ #pragma once -#include -#include #include #include +#if defined(ENABLE_COOKIES) +#include +#include +#else +#define KNOT_OPT_COOKIE_CLNT 8 +#define KNOT_OPT_COOKIE_SRVR_MAX 32 +#endif /* defined(ENABLE_COOKIES) */ + #include "lib/defines.h" #include "lib/generic/lru.h" diff --git a/lib/lib.mk b/lib/lib.mk index 2f8e00474..fe10be916 100644 --- a/lib/lib.mk +++ b/lib/lib.mk @@ -44,7 +44,7 @@ libkres_CFLAGS := -fvisibility=hidden -fPIC $(lmdb_CFLAGS) libkres_LIBS := $(contrib_TARGET) $(libknot_LIBS) $(libdnssec_LIBS) $(lmdb_LIBS) libkres_TARGET := -L$(abspath lib) -lkres -ifeq ($(HAS_nettle),yes) +ifeq ($(ENABLE_COOKIES),yes) libkres_SOURCES += \ lib/cookies/alg_containers.c \ lib/cookies/alg_sha.c \ diff --git a/lib/resolve.c b/lib/resolve.c index e4f61e431..ea907556d 100644 --- a/lib/resolve.c +++ b/lib/resolve.c @@ -31,6 +31,8 @@ #include "lib/cookies/control.h" #include "lib/cookies/helper.h" #include "lib/cookies/nonce.h" +#else /* Define compatibility macros */ +#define KNOT_EDNS_OPTION_COOKIE 10 #endif /* defined(ENABLE_COOKIES) */ #define DEBUG_MSG(qry, fmt...) QRDEBUG((qry), "resl", fmt) diff --git a/modules/modules.mk b/modules/modules.mk index b47fcd9ae..2a5575109 100644 --- a/modules/modules.mk +++ b/modules/modules.mk @@ -3,7 +3,7 @@ modules_TARGETS := hints \ stats # DNS cookies -ifeq ($(HAS_nettle),yes) +ifeq ($(ENABLE_COOKIES),yes) modules_TARGETS += cookies endif