7d43c4
From fbde301c2706a5d0c9c3942fe84693f2b7a6b16c Mon Sep 17 00:00:00 2001
7d43c4
From: Petr Mensik <pemensik@redhat.com>
7d43c4
Date: Sat, 7 May 2022 10:05:33 +0200
7d43c4
Subject: [PATCH] Use reserved RCODE, fake source version
7d43c4
7d43c4
Use RCODE value assigned for a private use. Previous value were possible
7d43c4
returned value.
7d43c4
7d43c4
Fake source version to be still 1.7.x. Hide real version into micro
7d43c4
version component and export it also in a proper way with _REAL
7d43c4
suffixes. Should workaround any source code detection to support correct
7d43c4
callback format. Fixes compilation error in libreswan.
7d43c4
7d43c4
Use preprocessed unbound.h to prevent failures
7d43c4
7d43c4
Swig complains about wrong @ variable formats. Make it use preprocessed
7d43c4
header instead of a template.
7d43c4
---
7d43c4
 libunbound/python/libunbound.i |  4 ++--
7d43c4
 libunbound/unbound.h           | 13 ++++++++++---
7d43c4
 services/mesh.h                |  2 +-
7d43c4
 3 files changed, 13 insertions(+), 6 deletions(-)
7d43c4
7d43c4
diff --git a/libunbound/python/libunbound.i b/libunbound/python/libunbound.i
7d43c4
index c9549bf90..f01e9111e 100644
7d43c4
--- a/libunbound/python/libunbound.i
7d43c4
+++ b/libunbound/python/libunbound.i
7d43c4
@@ -53,7 +53,7 @@
7d43c4
    #ifdef HAVE_ARPA_INET_H
7d43c4
    #include <arpa/inet.h>
7d43c4
    #endif
7d43c4
-   #include "libunbound/unbound.h"
7d43c4
+   #include "unbound.h"
7d43c4
 %}
7d43c4
 
7d43c4
 %pythoncode %{
7d43c4
@@ -855,7 +855,7 @@ Result: ['74.125.43.147', '74.125.43.99', '74.125.43.103', '74.125.43.104']
7d43c4
   //printf("resolve_stop()\n");
7d43c4
 %} 
7d43c4
 
7d43c4
-%include "libunbound/unbound.h"
7d43c4
+%include "unbound.h"
7d43c4
 
7d43c4
 %inline %{
7d43c4
   //SWIG will see the ub_ctx as a class
7d43c4
diff --git a/libunbound/unbound.h b/libunbound/unbound.h
7d43c4
index c822d3f89..82660bd51 100644
7d43c4
--- a/libunbound/unbound.h
7d43c4
+++ b/libunbound/unbound.h
7d43c4
@@ -102,9 +102,16 @@ extern "C" {
7d43c4
 #endif
7d43c4
 
7d43c4
 /** the version of this header file */
7d43c4
-#define UNBOUND_VERSION_MAJOR @UNBOUND_VERSION_MAJOR@
7d43c4
-#define UNBOUND_VERSION_MINOR @UNBOUND_VERSION_MINOR@
7d43c4
-#define UNBOUND_VERSION_MICRO @UNBOUND_VERSION_MICRO@
7d43c4
+/* Because of RHEL compat change, callback type remains at
7d43c4
+ * 1.7.3 version. To prevent source-level incompatibility,
7d43c4
+ * fake still old version. Export real version in _REAL
7d43c4
+ * suffix definitions. */
7d43c4
+#define UNBOUND_VERSION_MAJOR 1
7d43c4
+#define UNBOUND_VERSION_MINOR 7
7d43c4
+#define UNBOUND_VERSION_MICRO @UNBOUND_VERSION_MAJOR@@UNBOUND_VERSION_MINOR@@UNBOUND_VERSION_MICRO@
7d43c4
+#define UNBOUND_VERSION_MAJOR_REAL @UNBOUND_VERSION_MAJOR@
7d43c4
+#define UNBOUND_VERSION_MINOR_REAL @UNBOUND_VERSION_MINOR@
7d43c4
+#define UNBOUND_VERSION_MICRO_REAL @UNBOUND_VERSION_MICRO@
7d43c4
 
7d43c4
 /**
7d43c4
  * The validation context is created to hold the resolver status,
7d43c4
diff --git a/services/mesh.h b/services/mesh.h
7d43c4
index 9c6f958ff..c0cbf355e 100644
7d43c4
--- a/services/mesh.h
7d43c4
+++ b/services/mesh.h
7d43c4
@@ -237,7 +237,7 @@ struct mesh_reply {
7d43c4
 /* RHEL 8 compatibility layer.
7d43c4
  * Special rcode to send was_ratelimited to callback without adding
7d43c4
  * extra parameter. It is ORed to the rcode parameter of the callback. */
7d43c4
-#define LDNS_RCODE_RATELIMITED 0x100
7d43c4
+#define LDNS_RCODE_RATELIMITED 0xf80
7d43c4
 #define RCODE_IS_RATELIMITED(rcode) ((rcode & LDNS_RCODE_RATELIMITED) != 0)
7d43c4
 #define RCODE_NOT_RATELIMITED(rcode) (rcode & ~LDNS_RCODE_RATELIMITED)
7d43c4
 
7d43c4
-- 
7d43c4
2.34.1
7d43c4