diff --git a/bind-dyndb-ldap-11.2-servestale.patch b/bind-dyndb-ldap-11.2-servestale.patch new file mode 100644 index 0000000..1254d7f --- /dev/null +++ b/bind-dyndb-ldap-11.2-servestale.patch @@ -0,0 +1,73 @@ +From fecc0fd86f598807129ea9fa1e4e7b74cf2aba21 Mon Sep 17 00:00:00 2001 +From: Petr Mensik +Date: Mon, 11 Nov 2019 17:36:58 +0100 +Subject: [PATCH] Add support for servestale records + +Serve-stale support includes two new database methods. Add wrapper into +ldap database. +--- + configure.ac | 5 +++++ + src/ldap_driver.c | 24 ++++++++++++++++++++++++ + 2 files changed, 29 insertions(+) + +diff --git a/configure.ac b/configure.ac +index d05bad9..7997898 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -120,6 +120,11 @@ int main(void) { + [AC_MSG_ERROR([Cross compiling is not supported.])] + ) + ++dnl dns_db_setservestalettl() can be backported, detect support ++AC_CHECK_LIB([dns], [dns_db_setservestalettl], ++ [AC_DEFINE([HAVE_DNS_SERVESTALE], 1, [Define if dns library provides dns_db_setservestalettl])] ++) ++ + dnl Older autoconf (2.59, for example) doesn't define docdir + [[ ! -n "$docdir" ]] && docdir='${datadir}/doc/${PACKAGE_TARNAME}' + AC_SUBST([docdir]) +diff --git a/src/ldap_driver.c b/src/ldap_driver.c +index b9161fe..dcf65d0 100644 +--- a/src/ldap_driver.c ++++ b/src/ldap_driver.c +@@ -823,6 +823,26 @@ nodefullname(dns_db_t *db, dns_dbnode_t *node, dns_name_t *name) + return dns_db_nodefullname(ldapdb->rbtdb, node, name); + } + ++#ifdef HAVE_DNS_SERVESTALE ++static isc_result_t ++setservestalettl(dns_db_t *db, dns_ttl_t ttl) { ++ ldapdb_t *ldapdb = (ldapdb_t *) db; ++ ++ REQUIRE(VALID_LDAPDB(ldapdb)); ++ ++ return dns_db_setservestalettl(ldapdb->rbtdb, ttl); ++} ++ ++static isc_result_t ++getservestalettl(dns_db_t *db, dns_ttl_t *ttl) { ++ ldapdb_t *ldapdb = (ldapdb_t *) db; ++ ++ REQUIRE(VALID_LDAPDB(ldapdb)); ++ ++ return dns_db_getservestalettl(ldapdb->rbtdb, ttl); ++} ++#endif ++ + static dns_dbmethods_t ldapdb_methods = { + attach, + detach, +@@ -869,6 +889,10 @@ static dns_dbmethods_t ldapdb_methods = { + hashsize, + nodefullname, + NULL, // getsize method not implemented (related BZ1353563) ++#ifdef HAVE_DNS_SERVESTALE ++ setservestalettl, ++ getservestalettl, ++#endif + }; + + isc_result_t ATTR_NONNULLS +-- +2.20.1 + diff --git a/bind-dyndb-ldap.spec b/bind-dyndb-ldap.spec index 4a51a80..e7dce4e 100644 --- a/bind-dyndb-ldap.spec +++ b/bind-dyndb-ldap.spec @@ -4,7 +4,7 @@ Name: bind-dyndb-ldap Version: 11.2 -Release: 1%{?dist} +Release: 2%{?dist} Summary: LDAP back-end plug-in for BIND License: GPLv2+ @@ -12,6 +12,8 @@ URL: https://releases.pagure.org/bind-dyndb-ldap Source0: https://releases.pagure.org/%{name}/%{name}-%{VERSION}.tar.bz2 Source1: https://releases.pagure.org/%{name}/%{name}-%{VERSION}.tar.bz2.asc +Patch1: bind-dyndb-ldap-11.2-servestale.patch + BuildRequires: bind-devel >= %{bind_version}, bind-lite-devel >= %{bind_version}, bind-pkcs11-devel >= %{bind_version} BuildRequires: krb5-devel BuildRequires: openldap-devel @@ -29,6 +31,8 @@ off of your LDAP server. %prep %setup -q -n %{name}-%{VERSION} + +%patch1 -p1 -b .servestale %build autoreconf -fiv @@ -94,6 +98,9 @@ sed -i.bak -e "$SEDSCRIPT" /etc/named.conf %changelog +* Mon Nov 11 2019 Petr Menšík - 11.2-2 +- Add support for serve-stale, detected on build time + * Tue Nov 05 2019 Alexander Bokovoy - 11.2-1 - New upstream release v11.2