mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-09-04 00:25:29 +00:00
Merge branch 'fanf-urcu' into 'main'
Build with liburcu, userspace RCU Closes #3935 See merge request isc-projects/bind9!7662
This commit is contained in:
@@ -34,6 +34,10 @@ PointerAlignment: Right
|
|||||||
PointerBindsToType: false
|
PointerBindsToType: false
|
||||||
IncludeBlocks: Regroup
|
IncludeBlocks: Regroup
|
||||||
IncludeCategories:
|
IncludeCategories:
|
||||||
|
- Regex: '^<(urcu\.h|urcu/urcu-|urcu-)'
|
||||||
|
Priority: 2
|
||||||
|
- Regex: '^<urcu/'
|
||||||
|
Priority: 3
|
||||||
- Regex: '^<isc/'
|
- Regex: '^<isc/'
|
||||||
Priority: 5
|
Priority: 5
|
||||||
- Regex: '^<(pk11|pkcs11)/'
|
- Regex: '^<(pk11|pkcs11)/'
|
||||||
@@ -59,9 +63,9 @@ IncludeCategories:
|
|||||||
- Regex: '^<tests/'
|
- Regex: '^<tests/'
|
||||||
Priority: 100
|
Priority: 100
|
||||||
- Regex: '<openssl/'
|
- Regex: '<openssl/'
|
||||||
Priority: 1
|
Priority: 4
|
||||||
- Regex: '<(mysql|protobuf-c)/'
|
- Regex: '<(mysql|protobuf-c)/'
|
||||||
Priority: 1
|
Priority: 4
|
||||||
- Regex: '.*'
|
- Regex: '.*'
|
||||||
Priority: 0
|
Priority: 0
|
||||||
IndentExternBlock: NoIndent
|
IndentExternBlock: NoIndent
|
||||||
@@ -74,3 +78,4 @@ PenaltyBreakString: 80
|
|||||||
PenaltyExcessCharacter: 100
|
PenaltyExcessCharacter: 100
|
||||||
Standard: Cpp11
|
Standard: Cpp11
|
||||||
ContinuationIndentWidth: 8
|
ContinuationIndentWidth: 8
|
||||||
|
ForEachMacros: [ 'cds_lfs_for_each', 'cds_lfs_for_each_safe', 'cds_list_for_each_entry_safe' ]
|
||||||
|
@@ -34,24 +34,40 @@ PointerAlignment: Right
|
|||||||
PointerBindsToType: false
|
PointerBindsToType: false
|
||||||
IncludeBlocks: Regroup
|
IncludeBlocks: Regroup
|
||||||
IncludeCategories:
|
IncludeCategories:
|
||||||
- Regex: '^<isc/'
|
- Regex: '^<(urcu/urcu-|urcu-)'
|
||||||
Priority: 2
|
Priority: 2
|
||||||
- Regex: '^<dns/'
|
- Regex: '^<urcu/'
|
||||||
Priority: 3
|
Priority: 3
|
||||||
- Regex: '^<iscccc/'
|
- Regex: '^<isc/'
|
||||||
Priority: 4
|
|
||||||
- Regex: '^<isccfg/'
|
|
||||||
Priority: 5
|
Priority: 5
|
||||||
- Regex: '^<ns/'
|
- Regex: '^<(pk11|pkcs11)/'
|
||||||
Priority: 6
|
|
||||||
- Regex: '^(<[^/]*)/)'
|
|
||||||
Priority: 8
|
|
||||||
- Regex: '^<tests/'
|
|
||||||
Priority: 10
|
Priority: 10
|
||||||
- Regex: '<[[:alnum:].]+>'
|
- Regex: '^<dns/'
|
||||||
Priority: 1
|
Priority: 15
|
||||||
- Regex: '".*"'
|
- Regex: '^<dst/'
|
||||||
Priority: 9
|
Priority: 20
|
||||||
|
- Regex: '^<isccc/'
|
||||||
|
Priority: 25
|
||||||
|
- Regex: '^<isccfg/'
|
||||||
|
Priority: 30
|
||||||
|
- Regex: '^<ns/'
|
||||||
|
Priority: 35
|
||||||
|
- Regex: '^<irs/'
|
||||||
|
Priority: 40
|
||||||
|
- Regex: '^<(dig|named|rndc|confgen|dlz)/'
|
||||||
|
Priority: 50
|
||||||
|
- Regex: '^<dlz_'
|
||||||
|
Priority: 55
|
||||||
|
- Regex: '^".*"'
|
||||||
|
Priority: 99
|
||||||
|
- Regex: '^<tests/'
|
||||||
|
Priority: 100
|
||||||
|
- Regex: '<openssl/'
|
||||||
|
Priority: 4
|
||||||
|
- Regex: '<(mysql|protobuf-c)/'
|
||||||
|
Priority: 4
|
||||||
|
- Regex: '.*'
|
||||||
|
Priority: 0
|
||||||
IndentExternBlock: NoIndent
|
IndentExternBlock: NoIndent
|
||||||
KeepEmptyLinesAtTheStartOfBlocks: false
|
KeepEmptyLinesAtTheStartOfBlocks: false
|
||||||
MaxEmptyLinesToKeep: 1
|
MaxEmptyLinesToKeep: 1
|
||||||
|
5
CHANGES
5
CHANGES
@@ -1,3 +1,8 @@
|
|||||||
|
6122. [func] BIND now requires liburcu for lock-free data structures
|
||||||
|
and concurrent safe memory reclamation. It replaces the
|
||||||
|
home-grown lock-free linked list and QSBR machinery
|
||||||
|
added in changes 6108 and 6109. [GL #3935]
|
||||||
|
|
||||||
6121. [cleanup] Remove support for TKEY Mode 2 (Diffie-Hellman Exchanged
|
6121. [cleanup] Remove support for TKEY Mode 2 (Diffie-Hellman Exchanged
|
||||||
Keying). [GL #3905]
|
Keying). [GL #3905]
|
||||||
|
|
||||||
|
@@ -20,9 +20,10 @@
|
|||||||
|
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
|
|
||||||
|
#include <isccc/types.h>
|
||||||
|
|
||||||
#include <isccfg/aclconf.h>
|
#include <isccfg/aclconf.h>
|
||||||
|
|
||||||
#include <isccc/types.h>
|
|
||||||
#include <named/types.h>
|
#include <named/types.h>
|
||||||
|
|
||||||
#define NAMED_CONTROL_PORT 953
|
#define NAMED_CONTROL_PORT 953
|
||||||
|
@@ -26,10 +26,11 @@
|
|||||||
#include <dns/acl.h>
|
#include <dns/acl.h>
|
||||||
#include <dns/zone.h>
|
#include <dns/zone.h>
|
||||||
|
|
||||||
|
#include <dst/dst.h>
|
||||||
|
|
||||||
#include <isccfg/aclconf.h>
|
#include <isccfg/aclconf.h>
|
||||||
#include <isccfg/cfg.h>
|
#include <isccfg/cfg.h>
|
||||||
|
|
||||||
#include <dst/dst.h>
|
|
||||||
#include <named/fuzz.h>
|
#include <named/fuzz.h>
|
||||||
#include <named/types.h>
|
#include <named/types.h>
|
||||||
|
|
||||||
|
@@ -18,9 +18,10 @@
|
|||||||
* The statistics channels built-in the name server.
|
* The statistics channels built-in the name server.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <isccc/types.h>
|
||||||
|
|
||||||
#include <isccfg/aclconf.h>
|
#include <isccfg/aclconf.h>
|
||||||
|
|
||||||
#include <isccc/types.h>
|
|
||||||
#include <named/types.h>
|
#include <named/types.h>
|
||||||
|
|
||||||
#define NAMED_STATSCHANNEL_HTTPPORT 80
|
#define NAMED_STATSCHANNEL_HTTPPORT 80
|
||||||
|
@@ -611,6 +611,9 @@ AC_CHECK_DECLS([UV_UDP_LINUX_RECVERR], [], [], [[#include <uv.h>]])
|
|||||||
|
|
||||||
AX_RESTORE_FLAGS([libuv])
|
AX_RESTORE_FLAGS([libuv])
|
||||||
|
|
||||||
|
# userspace-rcu (QSBR variant)
|
||||||
|
PKG_CHECK_MODULES([LIBURCU], [liburcu-qsbr liburcu-cds])
|
||||||
|
|
||||||
# [pairwise: --enable-doh --with-libnghttp2=auto, --enable-doh --with-libnghttp2=yes, --disable-doh]
|
# [pairwise: --enable-doh --with-libnghttp2=auto, --enable-doh --with-libnghttp2=yes, --disable-doh]
|
||||||
AC_ARG_ENABLE([doh],
|
AC_ARG_ENABLE([doh],
|
||||||
[AS_HELP_STRING([--disable-doh], [disable DNS over HTTPS, removes dependency on libnghttp2 (default is --enable-doh)])],
|
[AS_HELP_STRING([--disable-doh], [disable DNS over HTTPS, removes dependency on libnghttp2 (default is --enable-doh)])],
|
||||||
|
@@ -25,13 +25,12 @@
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <inttypes.h>
|
|
||||||
#include <stdbool.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
|
|
||||||
#include <arpa/inet.h>
|
#include <arpa/inet.h>
|
||||||
|
#include <inttypes.h>
|
||||||
#include <net/if.h>
|
#include <net/if.h>
|
||||||
#include <netinet/in.h>
|
#include <netinet/in.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
#include <stdlib.h>
|
||||||
#include <sys/socket.h>
|
#include <sys/socket.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/un.h>
|
#include <sys/un.h>
|
||||||
|
@@ -56,6 +56,7 @@ Required Libraries
|
|||||||
To build BIND 9, the following packages must be installed:
|
To build BIND 9, the following packages must be installed:
|
||||||
|
|
||||||
- ``libcrypto``, ``libssl``
|
- ``libcrypto``, ``libssl``
|
||||||
|
- ``liburcu``
|
||||||
- ``libuv``
|
- ``libuv``
|
||||||
- ``perl``
|
- ``perl``
|
||||||
- ``pkg-config`` / ``pkgconfig`` / ``pkgconf``
|
- ``pkg-config`` / ``pkgconfig`` / ``pkgconf``
|
||||||
@@ -73,6 +74,9 @@ in a nonstandard location, specify the prefix using
|
|||||||
PKCS#11 hardware service module for cryptographic operations,
|
PKCS#11 hardware service module for cryptographic operations,
|
||||||
``engine_pkcs11`` from the OpenSC project must be compiled and used.
|
``engine_pkcs11`` from the OpenSC project must be compiled and used.
|
||||||
|
|
||||||
|
The Userspace RCU library ``liburcu`` (https://liburcu.org/) is used
|
||||||
|
for lock-free data structures and concurrent safe memory reclamation.
|
||||||
|
|
||||||
On Linux, process capabilities are managed in user space using the
|
On Linux, process capabilities are managed in user space using the
|
||||||
``libcap`` library
|
``libcap`` library
|
||||||
(https://git.kernel.org/pub/scm/libs/libcap/libcap.git/), which can be
|
(https://git.kernel.org/pub/scm/libs/libcap/libcap.git/), which can be
|
||||||
|
@@ -20,13 +20,12 @@ Security Fixes
|
|||||||
New Features
|
New Features
|
||||||
~~~~~~~~~~~~
|
~~~~~~~~~~~~
|
||||||
|
|
||||||
- None.
|
- BIND now depends on ``liburcu``, Userspace RCU, for lock-free data
|
||||||
|
structures. :gl:`#3934`
|
||||||
|
|
||||||
Removed Features
|
Removed Features
|
||||||
~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
- None.
|
|
||||||
|
|
||||||
- The TKEY Mode 2 (Diffie-Hellman Exchanged Keying Mode) has been removed and
|
- The TKEY Mode 2 (Diffie-Hellman Exchanged Keying Mode) has been removed and
|
||||||
using TKEY Mode 2 is now a fatal error. Users are advised to switch to TKEY
|
using TKEY Mode 2 is now a fatal error. Users are advised to switch to TKEY
|
||||||
Mode 3 (GSS-API). :gl:`#3905`
|
Mode 3 (GSS-API). :gl:`#3905`
|
||||||
|
@@ -36,13 +36,12 @@
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include <arpa/nameser.h>
|
||||||
#include <inttypes.h>
|
#include <inttypes.h>
|
||||||
|
#include <netinet/in.h>
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
#include <arpa/nameser.h>
|
|
||||||
#include <netinet/in.h>
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@@ -46,6 +46,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <inttypes.h>
|
#include <inttypes.h>
|
||||||
|
#include <netinet/in.h>
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
|
|
||||||
#include <isc/lang.h>
|
#include <isc/lang.h>
|
||||||
@@ -58,8 +59,6 @@
|
|||||||
#include <dns/fixedname.h>
|
#include <dns/fixedname.h>
|
||||||
#include <dns/types.h>
|
#include <dns/types.h>
|
||||||
|
|
||||||
#include <netinet/in.h>
|
|
||||||
|
|
||||||
#undef DNS_RESOLVER_TRACE
|
#undef DNS_RESOLVER_TRACE
|
||||||
|
|
||||||
ISC_LANG_BEGINDECLS
|
ISC_LANG_BEGINDECLS
|
||||||
|
@@ -212,6 +212,7 @@ endif USE_ISC_RWLOCK
|
|||||||
libisc_la_CPPFLAGS = \
|
libisc_la_CPPFLAGS = \
|
||||||
$(AM_CPPFLAGS) \
|
$(AM_CPPFLAGS) \
|
||||||
$(LIBISC_CFLAGS) \
|
$(LIBISC_CFLAGS) \
|
||||||
|
$(LIBURCU_CFLAGS) \
|
||||||
$(LIBUV_CFLAGS) \
|
$(LIBUV_CFLAGS) \
|
||||||
$(OPENSSL_CFLAGS) \
|
$(OPENSSL_CFLAGS) \
|
||||||
$(ZLIB_CFLAGS)
|
$(ZLIB_CFLAGS)
|
||||||
@@ -221,6 +222,7 @@ libisc_la_LDFLAGS = \
|
|||||||
-release "$(PACKAGE_VERSION)"
|
-release "$(PACKAGE_VERSION)"
|
||||||
|
|
||||||
libisc_la_LIBADD = \
|
libisc_la_LIBADD = \
|
||||||
|
$(LIBURCU_LIBS) \
|
||||||
$(LIBUV_LIBS) \
|
$(LIBUV_LIBS) \
|
||||||
$(OPENSSL_LIBS) \
|
$(OPENSSL_LIBS) \
|
||||||
$(ZLIB_LIBS)
|
$(ZLIB_LIBS)
|
||||||
|
@@ -17,12 +17,11 @@
|
|||||||
|
|
||||||
#include <dirent.h>
|
#include <dirent.h>
|
||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
|
#include <sys/types.h> /* Required on some systems. */
|
||||||
|
|
||||||
#include <isc/lang.h>
|
#include <isc/lang.h>
|
||||||
#include <isc/result.h>
|
#include <isc/result.h>
|
||||||
|
|
||||||
#include <sys/types.h> /* Required on some systems. */
|
|
||||||
|
|
||||||
#ifndef NAME_MAX
|
#ifndef NAME_MAX
|
||||||
#define NAME_MAX 256
|
#define NAME_MAX 256
|
||||||
#endif
|
#endif
|
||||||
|
@@ -17,12 +17,11 @@
|
|||||||
|
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
|
|
||||||
#include <isc/lang.h>
|
#include <isc/lang.h>
|
||||||
#include <isc/types.h>
|
#include <isc/types.h>
|
||||||
|
|
||||||
#include <sys/stat.h>
|
|
||||||
|
|
||||||
ISC_LANG_BEGINDECLS
|
ISC_LANG_BEGINDECLS
|
||||||
|
|
||||||
isc_result_t
|
isc_result_t
|
||||||
|
@@ -65,17 +65,16 @@
|
|||||||
/***
|
/***
|
||||||
*** Imports.
|
*** Imports.
|
||||||
***/
|
***/
|
||||||
#include <inttypes.h>
|
|
||||||
|
|
||||||
#include <isc/lang.h>
|
|
||||||
#include <isc/types.h>
|
|
||||||
|
|
||||||
#include <arpa/inet.h> /* Contractual promise. */
|
#include <arpa/inet.h> /* Contractual promise. */
|
||||||
|
#include <inttypes.h>
|
||||||
#include <net/if.h>
|
#include <net/if.h>
|
||||||
#include <netinet/in.h> /* Contractual promise. */
|
#include <netinet/in.h> /* Contractual promise. */
|
||||||
#include <sys/socket.h> /* Contractual promise. */
|
#include <sys/socket.h> /* Contractual promise. */
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
|
||||||
|
#include <isc/lang.h>
|
||||||
|
#include <isc/types.h>
|
||||||
|
|
||||||
#ifndef IN6ADDR_LOOPBACK_INIT
|
#ifndef IN6ADDR_LOOPBACK_INIT
|
||||||
#ifdef s6_addr
|
#ifdef s6_addr
|
||||||
/*% IPv6 address loopback init */
|
/*% IPv6 address loopback init */
|
||||||
|
@@ -17,14 +17,13 @@
|
|||||||
|
|
||||||
#include <inttypes.h>
|
#include <inttypes.h>
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/un.h>
|
||||||
|
|
||||||
#include <isc/lang.h>
|
#include <isc/lang.h>
|
||||||
#include <isc/net.h>
|
#include <isc/net.h>
|
||||||
#include <isc/types.h>
|
#include <isc/types.h>
|
||||||
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <sys/un.h>
|
|
||||||
|
|
||||||
ISC_LANG_BEGINDECLS
|
ISC_LANG_BEGINDECLS
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@@ -13,6 +13,8 @@
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include <sys/socket.h>
|
||||||
|
#include <sys/types.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
#include <isc/mem.h>
|
#include <isc/mem.h>
|
||||||
@@ -21,9 +23,6 @@
|
|||||||
#include <isc/tls.h>
|
#include <isc/tls.h>
|
||||||
#include <isc/types.h>
|
#include <isc/types.h>
|
||||||
|
|
||||||
#include <sys/socket.h>
|
|
||||||
#include <sys/types.h>
|
|
||||||
|
|
||||||
#undef ISC_NETMGR_TRACE
|
#undef ISC_NETMGR_TRACE
|
||||||
|
|
||||||
#if defined(SO_REUSEPORT_LB) || (defined(SO_REUSEPORT) && defined(__linux__))
|
#if defined(SO_REUSEPORT_LB) || (defined(SO_REUSEPORT) && defined(__linux__))
|
||||||
|
@@ -16,13 +16,12 @@
|
|||||||
/*! \file isc/sockaddr.h */
|
/*! \file isc/sockaddr.h */
|
||||||
|
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
|
#include <sys/un.h>
|
||||||
|
|
||||||
#include <isc/lang.h>
|
#include <isc/lang.h>
|
||||||
#include <isc/net.h>
|
#include <isc/net.h>
|
||||||
#include <isc/types.h>
|
#include <isc/types.h>
|
||||||
|
|
||||||
#include <sys/un.h>
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Any updates to this structure should also be applied in
|
* Any updates to this structure should also be applied in
|
||||||
* contrib/modules/dlz/dlz_minmal.h.
|
* contrib/modules/dlz/dlz_minmal.h.
|
||||||
|
@@ -38,6 +38,7 @@
|
|||||||
#include <isc/lang.h>
|
#include <isc/lang.h>
|
||||||
|
|
||||||
#include <dst/dst.h>
|
#include <dst/dst.h>
|
||||||
|
|
||||||
#include <isccc/types.h>
|
#include <isccc/types.h>
|
||||||
|
|
||||||
ISC_LANG_BEGINDECLS
|
ISC_LANG_BEGINDECLS
|
||||||
|
Reference in New Issue
Block a user