Add support for BIND 9.18.9 (#2143258)
isc_error_fatal function has changed and prevents compilation with the latest release. Support both new and previous versions.
This commit is contained in:
parent
f11c23361f
commit
537eeb4ed8
206
bind-dyndb-ldap-11.10-bind-9.18.9.patch
Normal file
206
bind-dyndb-ldap-11.10-bind-9.18.9.patch
Normal file
@ -0,0 +1,206 @@
|
|||||||
|
From 818b95a37b9712c46eb64e3cfecfa1e8a2d0cade Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Petr=20Men=C5=A1=C3=ADk?= <pemensik@redhat.com>
|
||||||
|
Date: Mon, 21 Nov 2022 17:03:59 +0100
|
||||||
|
Subject: [PATCH] Support for BIND 9.18.9+
|
||||||
|
|
||||||
|
Bind headers changed isc_error_fatal function. Also UNEXPECTED_ERROR
|
||||||
|
from util.h has changed function signature. Use a conditional
|
||||||
|
to provide compatibility for both new and previous versions.
|
||||||
|
---
|
||||||
|
src/ldap_helper.c | 14 +++++---------
|
||||||
|
src/log.h | 5 +++++
|
||||||
|
src/settings.c | 16 ++++++++--------
|
||||||
|
src/syncrepl.c | 7 +++----
|
||||||
|
src/util.h | 10 +++++++++-
|
||||||
|
5 files changed, 30 insertions(+), 22 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/ldap_helper.c b/src/ldap_helper.c
|
||||||
|
index 7ea3df9..593cb99 100644
|
||||||
|
--- a/src/ldap_helper.c
|
||||||
|
+++ b/src/ldap_helper.c
|
||||||
|
@@ -1317,8 +1317,7 @@ configure_zone_acl(isc_mem_t *mctx, dns_zone_t *zone,
|
||||||
|
dns_zone_logc(zone, DNS_LOGCATEGORY_SECURITY, ISC_LOG_CRITICAL,
|
||||||
|
"cannot configure restrictive %s policy: %s",
|
||||||
|
type_txt, isc_result_totext(result2));
|
||||||
|
- FATAL_ERROR(__FILE__, __LINE__,
|
||||||
|
- "insecure state detected");
|
||||||
|
+ fatal_error("insecure state detected");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
acl_setter(zone, acl);
|
||||||
|
@@ -1365,8 +1364,7 @@ configure_zone_ssutable(dns_zone_t *zone, const char *update_str)
|
||||||
|
dns_zone_logc(zone, DNS_LOGCATEGORY_SECURITY, ISC_LOG_CRITICAL,
|
||||||
|
"cannot disable all updates: %s",
|
||||||
|
isc_result_totext(result2));
|
||||||
|
- FATAL_ERROR(__FILE__, __LINE__,
|
||||||
|
- "insecure state detected");
|
||||||
|
+ fatal_error("insecure state detected");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -2951,9 +2949,8 @@ force_reconnect:
|
||||||
|
ldap_inst);
|
||||||
|
break;
|
||||||
|
case AUTH_INVALID:
|
||||||
|
- UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||||
|
- "invalid auth_method_enum value %u",
|
||||||
|
- auth_method_enum);
|
||||||
|
+ DYNDB_UNEXPECTED_ERROR("invalid auth_method_enum value %u",
|
||||||
|
+ auth_method_enum);
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
@@ -3782,8 +3779,7 @@ update_zone(isc_task_t *task, isc_event_t *event)
|
||||||
|
else if (entry->class & LDAP_ENTRYCLASS_FORWARD)
|
||||||
|
CHECK(ldap_parse_fwd_zoneentry(entry, inst));
|
||||||
|
else
|
||||||
|
- FATAL_ERROR(__FILE__, __LINE__,
|
||||||
|
- "update_zone: unexpected entry class");
|
||||||
|
+ fatal_error("update_zone: unexpected entry class");
|
||||||
|
}
|
||||||
|
|
||||||
|
cleanup:
|
||||||
|
diff --git a/src/log.h b/src/log.h
|
||||||
|
index da71f8b..4207f08 100644
|
||||||
|
--- a/src/log.h
|
||||||
|
+++ b/src/log.h
|
||||||
|
@@ -17,8 +17,13 @@
|
||||||
|
#define GET_LOG_LEVEL(level) (level)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+#if LIBDNS_VERSION_MAJOR < 1809
|
||||||
|
#define fatal_error(...) \
|
||||||
|
isc_error_fatal(__FILE__, __LINE__, __VA_ARGS__)
|
||||||
|
+#else
|
||||||
|
+#define fatal_error(...) \
|
||||||
|
+ isc_error_fatal(__FILE__, __LINE__, __func__, __VA_ARGS__)
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
#define log_bug(fmt, ...) \
|
||||||
|
log_error("bug in %s(): " fmt, __func__,##__VA_ARGS__)
|
||||||
|
diff --git a/src/settings.c b/src/settings.c
|
||||||
|
index def60d7..0ae08a4 100644
|
||||||
|
--- a/src/settings.c
|
||||||
|
+++ b/src/settings.c
|
||||||
|
@@ -17,6 +17,7 @@
|
||||||
|
#include <string.h>
|
||||||
|
#include <strings.h>
|
||||||
|
|
||||||
|
+#include "dyndb-config.h"
|
||||||
|
#include "log.h"
|
||||||
|
#include "settings.h"
|
||||||
|
#include "str.h"
|
||||||
|
@@ -24,7 +25,6 @@
|
||||||
|
#include "types.h"
|
||||||
|
#include "ldap_helper.h"
|
||||||
|
#include "zone_register.h"
|
||||||
|
-#include "dyndb-config.h"
|
||||||
|
|
||||||
|
#if LIBDNS_VERSION_MAJOR < 1600
|
||||||
|
#define cfg_parse_buffer cfg_parse_buffer4
|
||||||
|
@@ -178,7 +178,7 @@ setting_get(const char *const name, const setting_type_t type,
|
||||||
|
*(bool *)target = setting->value.value_boolean;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
- UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||||
|
+ DYNDB_UNEXPECTED_ERROR(
|
||||||
|
"invalid setting_type_t value %u", type);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
@@ -278,8 +278,8 @@ set_value(isc_mem_t *mctx, const settings_set_t *set, setting_t *setting,
|
||||||
|
CLEANUP_WITH(ISC_R_IGNORE);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
- UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||||
|
- "invalid setting_type_t value %u", setting->type);
|
||||||
|
+ DYNDB_UNEXPECTED_ERROR("invalid setting_type_t value %u",
|
||||||
|
+ setting->type);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -304,8 +304,8 @@ set_value(isc_mem_t *mctx, const settings_set_t *set, setting_t *setting,
|
||||||
|
setting->value.value_boolean = numeric_value;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
- UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||||
|
- "invalid setting_type_t value %u", setting->type);
|
||||||
|
+ DYNDB_UNEXPECTED_ERROR("invalid setting_type_t value %u",
|
||||||
|
+ setting->type);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
setting->filled = 1;
|
||||||
|
@@ -389,8 +389,8 @@ setting_unset(const char *const name, const settings_set_t *set)
|
||||||
|
case ST_BOOLEAN:
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
- UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||||
|
- "invalid setting_type_t value %u", setting->type);
|
||||||
|
+ DYNDB_UNEXPECTED_ERROR("invalid setting_type_t value %u",
|
||||||
|
+ setting->type);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
setting->filled = 0;
|
||||||
|
diff --git a/src/syncrepl.c b/src/syncrepl.c
|
||||||
|
index 0bee09a..9be17bf 100644
|
||||||
|
--- a/src/syncrepl.c
|
||||||
|
+++ b/src/syncrepl.c
|
||||||
|
@@ -13,6 +13,7 @@
|
||||||
|
|
||||||
|
#include "dyndb-config.h"
|
||||||
|
#include "ldap_helper.h"
|
||||||
|
+#include "log.h"
|
||||||
|
#include "util.h"
|
||||||
|
#include "semaphore.h"
|
||||||
|
#include "syncrepl.h"
|
||||||
|
@@ -148,8 +149,7 @@ finish(isc_task_t *task, isc_event_t *event) {
|
||||||
|
case sync_datainit:
|
||||||
|
case sync_finished:
|
||||||
|
default:
|
||||||
|
- FATAL_ERROR(__FILE__, __LINE__,
|
||||||
|
- "sync_barrier_wait(): invalid state "
|
||||||
|
+ fatal_error("sync_barrier_wait(): invalid state "
|
||||||
|
"%u", bev->sctx->state);
|
||||||
|
}
|
||||||
|
sync_state_change(bev->sctx, new_state, false);
|
||||||
|
@@ -518,8 +518,7 @@ sync_barrier_wait(sync_ctx_t *sctx, ldap_instance_t *inst) {
|
||||||
|
case sync_databarrier:
|
||||||
|
case sync_finished:
|
||||||
|
default:
|
||||||
|
- FATAL_ERROR(__FILE__, __LINE__,
|
||||||
|
- "sync_barrier_wait(): invalid state "
|
||||||
|
+ fatal_error("sync_barrier_wait(): invalid state "
|
||||||
|
"%u", sctx->state);
|
||||||
|
}
|
||||||
|
|
||||||
|
diff --git a/src/util.h b/src/util.h
|
||||||
|
index 5088ff3..4fff21a 100644
|
||||||
|
--- a/src/util.h
|
||||||
|
+++ b/src/util.h
|
||||||
|
@@ -14,8 +14,8 @@
|
||||||
|
#include <dns/name.h>
|
||||||
|
#include <dns/result.h>
|
||||||
|
|
||||||
|
-#include "log.h"
|
||||||
|
#include "dyndb-config.h"
|
||||||
|
+#include "log.h"
|
||||||
|
|
||||||
|
extern bool verbose_checks; /* from settings.c */
|
||||||
|
|
||||||
|
@@ -29,6 +29,14 @@ extern bool verbose_checks; /* from settings.c */
|
||||||
|
#define dns_name_copynf(src, dst) dns_name_copy((src), (dst))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+#if LIBDNS_VERSION_MAJOR < 1809
|
||||||
|
+# define DYNDB_UNEXPECTED_ERROR(...) \
|
||||||
|
+ isc_error_unexpected(__FILE__, __LINE__, __VA_ARGS__)
|
||||||
|
+#else
|
||||||
|
+# define DYNDB_UNEXPECTED_ERROR(...) \
|
||||||
|
+ isc_error_unexpected(__FILE__, __LINE__, __func__, __VA_ARGS__)
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
#define CLEANUP_WITH(result_code) \
|
||||||
|
do { \
|
||||||
|
result = (result_code); \
|
||||||
|
--
|
||||||
|
2.38.1
|
||||||
|
|
@ -12,7 +12,7 @@
|
|||||||
|
|
||||||
Name: bind-dyndb-ldap
|
Name: bind-dyndb-ldap
|
||||||
Version: 11.10
|
Version: 11.10
|
||||||
Release: 7%{?dist}
|
Release: 8%{?dist}
|
||||||
Summary: LDAP back-end plug-in for BIND
|
Summary: LDAP back-end plug-in for BIND
|
||||||
|
|
||||||
License: GPLv2+
|
License: GPLv2+
|
||||||
@ -20,6 +20,8 @@ URL: https://releases.pagure.org/bind-dyndb-ldap
|
|||||||
Source0: https://releases.pagure.org/%{name}/%{name}-%{VERSION}.tar.bz2
|
Source0: https://releases.pagure.org/%{name}/%{name}-%{VERSION}.tar.bz2
|
||||||
Source1: https://releases.pagure.org/%{name}/%{name}-%{VERSION}.tar.bz2.asc
|
Source1: https://releases.pagure.org/%{name}/%{name}-%{VERSION}.tar.bz2.asc
|
||||||
|
|
||||||
|
Patch1: bind-dyndb-ldap-11.10-bind-9.18.9.patch
|
||||||
|
|
||||||
BuildRequires: bind-devel >= %{bind_version}, bind-lite-devel >= %{bind_version}
|
BuildRequires: bind-devel >= %{bind_version}, bind-lite-devel >= %{bind_version}
|
||||||
BuildRequires: krb5-devel
|
BuildRequires: krb5-devel
|
||||||
BuildRequires: openldap-devel
|
BuildRequires: openldap-devel
|
||||||
@ -114,6 +116,10 @@ sed -i.bak -e "$SEDSCRIPT" /etc/named.conf
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Nov 21 2022 Petr Menšík <pemensik@redhat.com> - 11.10-8
|
||||||
|
- Rebuilt for BIND 9.18.9 (#2143258)
|
||||||
|
- Support error header change
|
||||||
|
|
||||||
* Sat Oct 22 2022 Petr Menšík <pemensik@redhat.com> - 11.10-7
|
* Sat Oct 22 2022 Petr Menšík <pemensik@redhat.com> - 11.10-7
|
||||||
- Rebuilt for BIND 9.18.8 (#2136100)
|
- Rebuilt for BIND 9.18.8 (#2136100)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user