]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
build: fixed build with libknot<2.3 without cookies
authorMarek Vavrusa <marek@vavrusa.com>
Tue, 9 Aug 2016 20:54:26 +0000 (13:54 -0700)
committerOndřej Surý <ondrej@sury.org>
Thu, 11 Aug 2016 12:06:45 +0000 (14:06 +0200)
the cookies require libknot>=2.3, Makefile didn't
check for that, and turning cookies off wasn't
possible either

Makefile
lib/cookies/lru_cache.h
lib/lib.mk
lib/resolve.c
modules/modules.mk

index 6179612ab06aaabcd414546c6858aa7ed24a204c..ce157d25e28d697a1bb05e6c805ff1a8ffc04d8a 100644 (file)
--- 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
index 22c274a98c61aa3cecff4e367154dcaa65cddede..d5d694ea2be7be16f801ed68e1e8de3c534bc146 100644 (file)
 
 #pragma once
 
-#include <libknot/rrtype/opt.h>
-#include <libknot/rrtype/opt-cookie.h>
 #include <netinet/in.h>
 #include <stdint.h>
 
+#if defined(ENABLE_COOKIES)
+#include <libknot/rrtype/opt.h>
+#include <libknot/rrtype/opt-cookie.h>
+#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"
 
index 2f8e004743515abd6f3923eacc2fceb19a5434b3..fe10be916608912d72b88c271cb17c1e199354d2 100644 (file)
@@ -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 \
index e4f61e4314815cc3b3d0cd27d9b2d6027ec73eba..ea907556d3ef2fd1881d82d6f6049807ac763da4 100644 (file)
@@ -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)
index b47fcd9ae4dd071ef998f16b04ab065ba6b571b7..2a55751098e64ac3876bddd8bef862c26106745a 100644 (file)
@@ -3,7 +3,7 @@ modules_TARGETS := hints \
                    stats
 
 # DNS cookies
-ifeq ($(HAS_nettle),yes)
+ifeq ($(ENABLE_COOKIES),yes)
 modules_TARGETS += cookies
 endif