aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDag-Erling Smørgrav <des@FreeBSD.org>2026-05-22 14:08:07 +0000
committerDag-Erling Smørgrav <des@FreeBSD.org>2026-05-22 14:08:07 +0000
commit4dd0a17edce60370304a45f2c40251e09e193bd6 (patch)
treef0cb0f27a9e83b56f8383265413d035ab01926c6
parentec5b94f552d7cb2a9d456c67e9941bcf5e3698bf (diff)
-rw-r--r--README.md21
-rw-r--r--aclocal.m4857
-rw-r--r--acx_nlnetlabs.m477
-rw-r--r--cachedb/cachedb.c108
-rw-r--r--cachedb/redis.c6
-rw-r--r--compat/arc4random.c7
-rw-r--r--compat/chacha_private.h4
-rw-r--r--compat/getentropy_linux.c20
-rw-r--r--compat/gmtime_r.c5
-rw-r--r--config.h.in397
-rwxr-xr-xconfigure6270
-rw-r--r--configure.ac123
-rwxr-xr-xconfigure~27461
-rw-r--r--contrib/README2
-rw-r--r--contrib/gost12.patch325
-rwxr-xr-xcontrib/ios/install_openssl.sh12
-rwxr-xr-xcontrib/ios/setenv_ios.sh5
-rw-r--r--contrib/unbound.service.in2
-rw-r--r--contrib/unbound_portable.service.in2
-rw-r--r--daemon/daemon.c326
-rw-r--r--daemon/daemon.h41
-rw-r--r--daemon/remote.c315
-rw-r--r--daemon/remote.h8
-rw-r--r--daemon/stats.c6
-rw-r--r--daemon/unbound.c51
-rw-r--r--daemon/worker.c258
-rw-r--r--dns64/dns64.c23
-rw-r--r--dnstap/dtstream.c16
-rw-r--r--dnstap/dtstream.h6
-rw-r--r--dnstap/unbound-dnstap-socket.c28
-rw-r--r--doc/Changelog484
-rw-r--r--doc/README2
-rw-r--r--doc/README.DNS646
-rw-r--r--doc/README.man11
-rw-r--r--doc/example.conf.in75
-rw-r--r--doc/libunbound.3.in6
-rw-r--r--doc/unbound-anchor.8.in21
-rw-r--r--doc/unbound-anchor.rst15
-rw-r--r--doc/unbound-checkconf.8.in6
-rw-r--r--doc/unbound-control.8.in45
-rw-r--r--doc/unbound-control.rst34
-rw-r--r--doc/unbound-host.1.in6
-rw-r--r--doc/unbound.8.in8
-rw-r--r--doc/unbound.conf.5.in558
-rw-r--r--doc/unbound.conf.rst522
-rw-r--r--doc/unbound.rst2
-rw-r--r--edns-subnet/subnetmod.c108
-rw-r--r--edns-subnet/subnetmod.h10
-rwxr-xr-xinstall-sh176
-rw-r--r--ipsecmod/ipsecmod.c2
-rw-r--r--iterator/iter_fwd.c5
-rw-r--r--iterator/iter_hints.c5
-rw-r--r--iterator/iter_priv.c168
-rw-r--r--iterator/iter_scrub.c70
-rw-r--r--iterator/iter_utils.c50
-rw-r--r--iterator/iter_utils.h1
-rw-r--r--iterator/iterator.c43
-rw-r--r--libunbound/python/libunbound.i2
-rw-r--r--libunbound/unbound.h4
-rw-r--r--ltmain.sh1566
-rw-r--r--pythonmod/interface.i4
-rw-r--r--pythonmod/pythonmod.c47
-rw-r--r--respip/respip.c9
-rw-r--r--services/authzone.c150
-rw-r--r--services/cache/dns.c110
-rw-r--r--services/cache/dns.h2
-rw-r--r--services/cache/infra.c3
-rw-r--r--services/cache/rrset.c37
-rw-r--r--services/listen_dnsport.c40
-rw-r--r--services/localzone.c179
-rw-r--r--services/localzone.h12
-rw-r--r--services/mesh.c130
-rw-r--r--services/mesh.h13
-rw-r--r--services/modstack.c7
-rw-r--r--services/outside_network.c65
-rw-r--r--services/outside_network.h7
-rw-r--r--services/rpz.c1
-rw-r--r--sldns/rrdef.h4
-rw-r--r--sldns/wire2str.c3
-rw-r--r--smallapp/unbound-anchor.c12
-rw-r--r--smallapp/unbound-checkconf.c48
-rw-r--r--smallapp/unbound-control.c15
-rw-r--r--smallapp/unbound-host.c12
-rw-r--r--testcode/asynclook.c12
-rw-r--r--testcode/checklocks.h1
-rw-r--r--testcode/dohclient.c12
-rw-r--r--testcode/doqclient.c2
-rwxr-xr-xtestcode/mini_tdir.sh7
-rw-r--r--testcode/petal.c37
-rw-r--r--testcode/pktview.c14
-rw-r--r--testcode/replay.h4
-rw-r--r--testcode/streamtcp.c12
-rw-r--r--testcode/testpkts.c50
-rw-r--r--testcode/testpkts.h2
-rw-r--r--testcode/unitldns.c4
-rw-r--r--testcode/unitmain.c2
-rw-r--r--testcode/unitmsgparse.c4
-rw-r--r--testcode/unitverify.c47
-rw-r--r--testcode/unitzonemd.c4
-rw-r--r--testdata/04-checkconf.tdir/good.all2
-rw-r--r--testdata/04-checkconf.tdir/good.ifport2
-rw-r--r--testdata/auth_https_origin.tdir/127.0.0.1/example.com.zone5
-rw-r--r--testdata/auth_https_origin.tdir/auth_https_origin.conf17
-rw-r--r--testdata/auth_https_origin.tdir/auth_https_origin.dsc16
-rw-r--r--testdata/auth_https_origin.tdir/auth_https_origin.post11
-rw-r--r--testdata/auth_https_origin.tdir/auth_https_origin.pre34
-rw-r--r--testdata/auth_https_origin.tdir/auth_https_origin.test63
-rw-r--r--testdata/auth_https_origin.tdir/petal.key21
-rw-r--r--testdata/auth_https_origin.tdir/petal.pem14
-rw-r--r--testdata/auth_notify_lookup.rpl341
-rw-r--r--testdata/cachedb_expired.crpl60
-rw-r--r--testdata/cachedb_expired_client_timeout.crpl57
-rw-r--r--testdata/cachedb_expired_reply_ttl.crpl47
-rw-r--r--testdata/cachedb_subnet_change.crpl46
-rw-r--r--testdata/cachedb_val_expired.crpl62
-rw-r--r--testdata/dname_unsigned_cname.rpl297
-rw-r--r--testdata/ds_wildcard_cname.rpl374
-rw-r--r--testdata/fwd_0ttlservfail.rpl21
-rw-r--r--testdata/fwd_compress_c00c.tdir/fwd_compress_c00c.test2
-rw-r--r--testdata/fwd_scrub_rrsig.rpl93
-rw-r--r--testdata/iter_dname_ttl0.rpl272
-rw-r--r--testdata/iter_nat64_donotq.rpl192
-rw-r--r--testdata/iter_priv_svcb.rpl283
-rw-r--r--testdata/iter_scrub_dname_out_of_zone.rpl122
-rw-r--r--testdata/iter_scrub_promiscuous.rpl35
-rw-r--r--testdata/iter_svcb_malformed.rpl200
-rw-r--r--testdata/long_qname.rpl73
-rw-r--r--testdata/refuse_xfr.rpl9
-rw-r--r--testdata/respip_dns64_lookup.rpl522
-rw-r--r--testdata/rrset_use_cached.rpl47
-rw-r--r--testdata/serve_expired.rpl17
-rw-r--r--testdata/serve_expired_0ttl_nodata.rpl23
-rw-r--r--testdata/serve_expired_0ttl_nxdomain.rpl4
-rw-r--r--testdata/serve_expired_0ttl_servfail.rpl2
-rw-r--r--testdata/serve_expired_client_timeout.rpl4
-rw-r--r--testdata/serve_expired_client_timeout_no_prefetch.rpl111
-rw-r--r--testdata/serve_expired_client_timeout_servfail.rpl30
-rw-r--r--testdata/serve_expired_reply_ttl.rpl75
-rw-r--r--testdata/serve_expired_ttl_client_timeout.rpl2
-rw-r--r--testdata/serve_expired_ttl_reset.rpl6
-rw-r--r--testdata/serve_expired_zerottl.rpl14
-rw-r--r--testdata/stat_values.tdir/stat_values.test6
-rw-r--r--testdata/subnet_cached_servfail_timeout.crpl239
-rw-r--r--testdata/subnet_global_prefetch_always_forward.crpl19
-rw-r--r--testdata/subnet_global_prefetch_expired.crpl29
-rw-r--r--testdata/subnet_scopezero_bogus.crpl274
-rw-r--r--testdata/subnet_scopezero_global_nocache.crpl126
-rw-r--r--testdata/test_ldnsrr.52
-rw-r--r--testdata/test_sigs.revoked21
-rw-r--r--testdata/tls_reuse_auth.tdir/tls_reuse_auth.conf22
-rw-r--r--testdata/tls_reuse_auth.tdir/tls_reuse_auth.conf240
-rw-r--r--testdata/tls_reuse_auth.tdir/tls_reuse_auth.dsc16
-rw-r--r--testdata/tls_reuse_auth.tdir/tls_reuse_auth.post19
-rw-r--r--testdata/tls_reuse_auth.tdir/tls_reuse_auth.pre34
-rw-r--r--testdata/tls_reuse_auth.tdir/tls_reuse_auth.test90
-rw-r--r--testdata/tls_reuse_auth.tdir/unbound_control.key39
-rw-r--r--testdata/tls_reuse_auth.tdir/unbound_control.pem22
-rw-r--r--testdata/tls_reuse_auth.tdir/unbound_server.key39
-rw-r--r--testdata/tls_reuse_auth.tdir/unbound_server.pem22
-rw-r--r--testdata/ttl_zero_cacherep.rpl269
-rw-r--r--testdata/val_ds_cname.rpl4
-rw-r--r--util/alloc.c2
-rw-r--r--util/config_file.c116
-rw-r--r--util/config_file.h32
-rw-r--r--util/configlexer.c7877
-rw-r--r--util/configlexer.lex4
-rw-r--r--util/configparser.c4650
-rw-r--r--util/configparser.h184
-rw-r--r--util/configparser.y53
-rw-r--r--util/data/msgencode.c58
-rw-r--r--util/data/msgencode.h4
-rw-r--r--util/data/msgparse.c12
-rw-r--r--util/data/msgparse.h25
-rw-r--r--util/data/msgreply.c72
-rw-r--r--util/data/msgreply.h28
-rw-r--r--util/data/packed_rrset.c36
-rw-r--r--util/data/packed_rrset.h3
-rw-r--r--util/fptr_wlist.c7
-rw-r--r--util/fptr_wlist.h8
-rw-r--r--util/iana_ports.inc9
-rw-r--r--util/locks.h27
-rw-r--r--util/log.c32
-rw-r--r--util/module.h19
-rw-r--r--util/net_help.c54
-rw-r--r--util/net_help.h12
-rw-r--r--util/netevent.c27
-rw-r--r--util/shm_side/shm_main.c217
-rw-r--r--util/shm_side/shm_main.h15
-rw-r--r--util/timehist.h4
-rw-r--r--validator/val_neg.c14
-rw-r--r--validator/val_sigcrypt.c12
-rw-r--r--validator/val_sigcrypt.h2
-rw-r--r--validator/val_utils.c25
-rw-r--r--validator/val_utils.h11
-rw-r--r--validator/validator.c95
-rw-r--r--winrc/win_svc.c6
196 files changed, 19773 insertions, 40856 deletions
diff --git a/README.md b/README.md
index 3bbd38b3b78b..d805e4d0a3d7 100644
--- a/README.md
+++ b/README.md
@@ -4,7 +4,7 @@
[![Packaging status](https://repology.org/badge/tiny-repos/unbound.svg)](https://repology.org/project/unbound/versions)
[![Fuzzing Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/unbound.svg)](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:unbound)
[![Documentation Status](https://readthedocs.org/projects/unbound/badge/?version=latest)](https://unbound.readthedocs.io/en/latest/?badge=latest)
-[![Mastodon Follow](https://img.shields.io/mastodon/follow/109262826617293067?domain=https%3A%2F%2Ffosstodon.org&style=social)](https://fosstodon.org/@nlnetlabs)
+[![Mastodon Follow](https://img.shields.io/mastodon/follow/114692612288811644?domain=social.nlnetlabs.nl&style=social)](https://social.nlnetlabs.nl/@nlnetlabs)
Unbound is a validating, recursive, caching DNS resolver. It is designed to be
fast and lean and incorporates modern features based on open standards. If you
@@ -25,18 +25,21 @@ Unbound can be compiled and installed using:
./configure && make && make install
```
-You can use libevent if you want. libevent is useful when using many (10000)
-outgoing ports. By default max 256 ports are opened at the same time and the
-builtin alternative is equally capable and a little faster.
-
+You can use libevent if you want. libevent is useful when using many (e.g.,
+10000) outgoing ports.
Use the `--with-libevent` configure option to compile Unbound with libevent
support.
+If not, the default builtin alternative opens max 256 ports at the same time
+and is equally capable and a little faster.
+
+
## Unbound configuration
-All of Unbound's configuration options are described in the man pages, which
-will be installed and are available on the Unbound
-[documentation page](https://unbound.docs.nlnetlabs.nl/).
+All of Unbound's configuration options are described in the `unbound.conf(5)`
+man page, which will be installed and is also available on the Unbound
+[documentation page](https://unbound.docs.nlnetlabs.nl/en/latest/manpages/unbound.conf.html)
+for the latest version.
-An example configuration file is located in
+An example configuration file, with minimal documentation, is located in
[doc/example.conf](https://github.com/NLnetLabs/unbound/blob/master/doc/example.conf.in).
diff --git a/aclocal.m4 b/aclocal.m4
index 792090e178d6..bf3c57e2fd9f 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1,6 +1,6 @@
-# generated automatically by aclocal 1.17 -*- Autoconf -*-
+# generated automatically by aclocal 1.16.2 -*- Autoconf -*-
-# Copyright (C) 1996-2024 Free Software Foundation, Inc.
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -14,8 +14,7 @@
m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
#
-# Copyright (C) 1996-2001, 2003-2019, 2021-2024 Free Software
-# Foundation, Inc.
+# Copyright (C) 1996-2001, 2003-2015 Free Software Foundation, Inc.
# Written by Gordon Matzigkeit, 1996
#
# This file is free software; the Free Software Foundation gives
@@ -23,13 +22,13 @@ m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun
# modifications, as long as this notice is preserved.
m4_define([_LT_COPYING], [dnl
-# Copyright (C) 2024 Free Software Foundation, Inc.
+# Copyright (C) 2014 Free Software Foundation, Inc.
# This is free software; see the source for copying conditions. There is NO
# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# GNU Libtool is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
+# the Free Software Foundation; either version 2 of of the License, or
# (at your option) any later version.
#
# As a special exception to the GNU General Public License, if you
@@ -46,7 +45,7 @@ m4_define([_LT_COPYING], [dnl
# along with this program. If not, see <http://www.gnu.org/licenses/>.
])
-# serial 63 LT_INIT
+# serial 58 LT_INIT
# LT_PREREQ(VERSION)
@@ -74,7 +73,7 @@ esac
# LT_INIT([OPTIONS])
# ------------------
AC_DEFUN([LT_INIT],
-[AC_PREREQ([2.64])dnl We use AC_PATH_PROGS_FEATURE_CHECK
+[AC_PREREQ([2.62])dnl We use AC_PATH_PROGS_FEATURE_CHECK
AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
AC_BEFORE([$0], [LT_LANG])dnl
AC_BEFORE([$0], [LT_OUTPUT])dnl
@@ -196,7 +195,6 @@ m4_require([_LT_FILEUTILS_DEFAULTS])dnl
m4_require([_LT_CHECK_SHELL_FEATURES])dnl
m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl
m4_require([_LT_CMD_RELOAD])dnl
-m4_require([_LT_DECL_FILECMD])dnl
m4_require([_LT_CHECK_MAGIC_METHOD])dnl
m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl
m4_require([_LT_CMD_OLD_ARCHIVE])dnl
@@ -235,8 +233,8 @@ esac
ofile=libtool
can_build_shared=yes
-# All known linkers require a '.a' archive for static linking (except MSVC and
-# ICC, which need '.lib').
+# All known linkers require a '.a' archive for static linking (except MSVC,
+# which needs '.lib').
libext=a
with_gnu_ld=$lt_cv_prog_gnu_ld
@@ -624,7 +622,7 @@ m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT
# LT_OUTPUT
# ---------
# This macro allows early generation of the libtool script (before
-# AC_OUTPUT is called), in case it is used in configure for compilation
+# AC_OUTPUT is called), incase it is used in configure for compilation
# tests.
AC_DEFUN([LT_OUTPUT],
[: ${CONFIG_LT=./config.lt}
@@ -659,9 +657,9 @@ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl
m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
configured by $[0], generated by m4_PACKAGE_STRING.
-Copyright (C) 2024 Free Software Foundation, Inc.
+Copyright (C) 2011 Free Software Foundation, Inc.
This config.lt script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it."
+gives unlimited permision to copy, distribute and modify it."
while test 0 != $[#]
do
@@ -738,6 +736,7 @@ _LT_CONFIG_SAVE_COMMANDS([
cat <<_LT_EOF >> "$cfgfile"
#! $SHELL
# Generated automatically by $as_me ($PACKAGE) $VERSION
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
# NOTE: Changes made to this file will be lost: look at ltmain.sh.
# Provide generalized library-building support services.
@@ -787,7 +786,7 @@ _LT_EOF
# if finds mixed CR/LF and LF-only lines. Since sed operates in
# text mode, it properly converts lines to CR/LF. This bash problem
# is reportedly fixed, but why not run on old versions too?
- $SED '$q' "$ltmain" >> "$cfgfile" \
+ sed '$q' "$ltmain" >> "$cfgfile" \
|| (rm -f "$cfgfile"; exit 1)
mv -f "$cfgfile" "$ofile" ||
@@ -980,7 +979,6 @@ _lt_linker_boilerplate=`cat conftest.err`
$RM -r conftest*
])# _LT_LINKER_BOILERPLATE
-
# _LT_REQUIRED_DARWIN_CHECKS
# -------------------------
m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
@@ -1031,21 +1029,6 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
rm -f conftest.*
fi])
- # Feature test to disable chained fixups since it is not
- # compatible with '-undefined dynamic_lookup'
- AC_CACHE_CHECK([for -no_fixup_chains linker flag],
- [lt_cv_support_no_fixup_chains],
- [ save_LDFLAGS=$LDFLAGS
- LDFLAGS="$LDFLAGS -Wl,-no_fixup_chains"
- AC_LINK_IFELSE(
- [AC_LANG_PROGRAM([],[])],
- lt_cv_support_no_fixup_chains=yes,
- lt_cv_support_no_fixup_chains=no
- )
- LDFLAGS=$save_LDFLAGS
- ]
- )
-
AC_CACHE_CHECK([for -exported_symbols_list linker flag],
[lt_cv_ld_exported_symbols_list],
[lt_cv_ld_exported_symbols_list=no
@@ -1065,12 +1048,12 @@ int forced_loaded() { return 2;}
_LT_EOF
echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD
$LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD
- echo "$AR $AR_FLAGS libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
- $AR $AR_FLAGS libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
+ echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
+ $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD
$RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD
cat > conftest.c << _LT_EOF
-int main(void) { return 0;}
+int main() { return 0;}
_LT_EOF
echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD
$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
@@ -1090,37 +1073,23 @@ _LT_EOF
_lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;;
darwin1.*)
_lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
- darwin*)
- case $MACOSX_DEPLOYMENT_TARGET,$host in
- 10.[[012]],*|,*powerpc*-darwin[[5-8]]*)
- _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
- *)
- _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup'
- if test yes = "$lt_cv_support_no_fixup_chains"; then
- AS_VAR_APPEND([_lt_dar_allow_undefined], [' $wl-no_fixup_chains'])
- fi
- ;;
+ darwin*) # darwin 5.x on
+ # if running on 10.5 or later, the deployment target defaults
+ # to the OS version, if on x86, and 10.4, the deployment
+ # target defaults to 10.4. Don't you love it?
+ case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
+ 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*)
+ _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
+ 10.[[012]][[,.]]*)
+ _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
+ 10.*)
+ _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
esac
;;
esac
if test yes = "$lt_cv_apple_cc_single_mod"; then
_lt_dar_single_mod='$single_module'
fi
- _lt_dar_needs_single_mod=no
- case $host_os in
- rhapsody* | darwin1.*)
- _lt_dar_needs_single_mod=yes ;;
- darwin*)
- # When targeting Mac OS X 10.4 (darwin 8) or later,
- # -single_module is the default and -multi_module is unsupported.
- # The toolchain on macOS 10.14 (darwin 18) and later cannot
- # target any OS version that needs -single_module.
- case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
- 10.0,*-darwin[[567]].*|10.[[0-3]],*-darwin[[5-9]].*|10.[[0-3]],*-darwin1[[0-7]].*)
- _lt_dar_needs_single_mod=yes ;;
- esac
- ;;
- esac
if test yes = "$lt_cv_ld_exported_symbols_list"; then
_lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym'
else
@@ -1163,12 +1132,12 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES],
output_verbose_link_cmd=func_echo_all
_LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil"
_LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil"
- _LT_TAGVAR(archive_expsym_cmds, $1)="$SED 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil"
- _LT_TAGVAR(module_expsym_cmds, $1)="$SED -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil"
+ _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil"
+ _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil"
m4_if([$1], [CXX],
-[ if test yes = "$_lt_dar_needs_single_mod" -a yes != "$lt_cv_apple_cc_single_mod"; then
+[ if test yes != "$lt_cv_apple_cc_single_mod"; then
_LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil"
- _LT_TAGVAR(archive_expsym_cmds, $1)="$SED 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil"
+ _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil"
fi
],[])
else
@@ -1282,8 +1251,7 @@ _LT_DECL([], [ECHO], [1], [An echo program that protects backslashes])
# _LT_WITH_SYSROOT
# ----------------
AC_DEFUN([_LT_WITH_SYSROOT],
-[m4_require([_LT_DECL_SED])dnl
-AC_MSG_CHECKING([for sysroot])
+[AC_MSG_CHECKING([for sysroot])
AC_ARG_WITH([sysroot],
[AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@],
[Search for dependent libraries within DIR (or the compiler's sysroot
@@ -1296,13 +1264,11 @@ lt_sysroot=
case $with_sysroot in #(
yes)
if test yes = "$GCC"; then
- # Trim trailing / since we'll always append absolute paths and we want
- # to avoid //, if only for less confusing output for the user.
- lt_sysroot=`$CC --print-sysroot 2>/dev/null | $SED 's:/\+$::'`
+ lt_sysroot=`$CC --print-sysroot 2>/dev/null`
fi
;; #(
/*)
- lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"`
+ lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
;; #(
no|'')
;; #(
@@ -1332,7 +1298,7 @@ ia64-*-hpux*)
# options accordingly.
echo 'int i;' > conftest.$ac_ext
if AC_TRY_EVAL(ac_compile); then
- case `$FILECMD conftest.$ac_objext` in
+ case `/usr/bin/file conftest.$ac_objext` in
*ELF-32*)
HPUX_IA64_MODE=32
;;
@@ -1349,7 +1315,7 @@ ia64-*-hpux*)
echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
if AC_TRY_EVAL(ac_compile); then
if test yes = "$lt_cv_prog_gnu_ld"; then
- case `$FILECMD conftest.$ac_objext` in
+ case `/usr/bin/file conftest.$ac_objext` in
*32-bit*)
LD="${LD-ld} -melf32bsmip"
;;
@@ -1361,7 +1327,7 @@ ia64-*-hpux*)
;;
esac
else
- case `$FILECMD conftest.$ac_objext` in
+ case `/usr/bin/file conftest.$ac_objext` in
*32-bit*)
LD="${LD-ld} -32"
;;
@@ -1383,7 +1349,7 @@ mips64*-*linux*)
echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
if AC_TRY_EVAL(ac_compile); then
emul=elf
- case `$FILECMD conftest.$ac_objext` in
+ case `/usr/bin/file conftest.$ac_objext` in
*32-bit*)
emul="${emul}32"
;;
@@ -1391,7 +1357,7 @@ mips64*-*linux*)
emul="${emul}64"
;;
esac
- case `$FILECMD conftest.$ac_objext` in
+ case `/usr/bin/file conftest.$ac_objext` in
*MSB*)
emul="${emul}btsmip"
;;
@@ -1399,7 +1365,7 @@ mips64*-*linux*)
emul="${emul}ltsmip"
;;
esac
- case `$FILECMD conftest.$ac_objext` in
+ case `/usr/bin/file conftest.$ac_objext` in
*N32*)
emul="${emul}n32"
;;
@@ -1410,7 +1376,7 @@ mips64*-*linux*)
;;
x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
-s390*-*linux*|s390*-*tpf*|sparc*-*linux*|x86_64-gnu*)
+s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
# Find out what ABI is being produced by ac_compile, and set linker
# options accordingly. Note that the listed cases only cover the
# situations where additional linker options are needed (such as when
@@ -1419,14 +1385,14 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*|x86_64-gnu*)
# not appear in the list.
echo 'int i;' > conftest.$ac_ext
if AC_TRY_EVAL(ac_compile); then
- case `$FILECMD conftest.o` in
+ case `/usr/bin/file conftest.o` in
*32-bit*)
case $host in
x86_64-*kfreebsd*-gnu)
LD="${LD-ld} -m elf_i386_fbsd"
;;
- x86_64-*linux*|x86_64-gnu*)
- case `$FILECMD conftest.o` in
+ x86_64-*linux*)
+ case `/usr/bin/file conftest.o` in
*x86-64*)
LD="${LD-ld} -m elf32_x86_64"
;;
@@ -1454,7 +1420,7 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*|x86_64-gnu*)
x86_64-*kfreebsd*-gnu)
LD="${LD-ld} -m elf_x86_64_fbsd"
;;
- x86_64-*linux*|x86_64-gnu*)
+ x86_64-*linux*)
LD="${LD-ld} -m elf_x86_64"
;;
powerpcle-*linux*)
@@ -1494,7 +1460,7 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*|x86_64-gnu*)
# options accordingly.
echo 'int i;' > conftest.$ac_ext
if AC_TRY_EVAL(ac_compile); then
- case `$FILECMD conftest.o` in
+ case `/usr/bin/file conftest.o` in
*64-bit*)
case $lt_cv_prog_gnu_ld in
yes*)
@@ -1533,22 +1499,9 @@ need_locks=$enable_libtool_lock
m4_defun([_LT_PROG_AR],
[AC_CHECK_TOOLS(AR, [ar], false)
: ${AR=ar}
+: ${AR_FLAGS=cru}
_LT_DECL([], [AR], [1], [The archiver])
-
-# Use ARFLAGS variable as AR's operation code to sync the variable naming with
-# Automake. If both AR_FLAGS and ARFLAGS are specified, AR_FLAGS should have
-# higher priority because that's what people were doing historically (setting
-# ARFLAGS for automake and AR_FLAGS for libtool). FIXME: Make the AR_FLAGS
-# variable obsoleted/removed.
-
-test ${AR_FLAGS+y} || AR_FLAGS=${ARFLAGS-cr}
-lt_ar_flags=$AR_FLAGS
-_LT_DECL([], [lt_ar_flags], [0], [Flags to create an archive (by configure)])
-
-# Make AR_FLAGS overridable by 'make ARFLAGS='. Don't try to run-time override
-# by AR_FLAGS because that was never working and AR_FLAGS is about to die.
-_LT_DECL([], [AR_FLAGS], [\@S|@{ARFLAGS-"\@S|@lt_ar_flags"}],
- [Flags to create an archive])
+_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive])
AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file],
[lt_cv_ar_at_file=no
@@ -1587,7 +1540,7 @@ AC_CHECK_TOOL(STRIP, strip, :)
test -z "$STRIP" && STRIP=:
_LT_DECL([], [STRIP], [1], [A symbol stripping program])
-AC_REQUIRE([AC_PROG_RANLIB])
+AC_CHECK_TOOL(RANLIB, ranlib, :)
test -z "$RANLIB" && RANLIB=:
_LT_DECL([], [RANLIB], [1],
[Commands used to install an old-style archive])
@@ -1598,8 +1551,15 @@ old_postinstall_cmds='chmod 644 $oldlib'
old_postuninstall_cmds=
if test -n "$RANLIB"; then
+ case $host_os in
+ bitrig* | openbsd*)
+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
+ ;;
+ *)
+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
+ ;;
+ esac
old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
- old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
fi
case $host_os in
@@ -1731,14 +1691,14 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
lt_cv_sys_max_cmd_len=12288; # 12K is about right
;;
- gnu* | ironclad*)
- # Under GNU Hurd and Ironclad, this test is not required because there
- # is no limit to the length of command line arguments.
+ gnu*)
+ # Under GNU Hurd, this test is not required because there is
+ # no limit to the length of command line arguments.
# Libtool will interpret -1 as no limit whatsoever
lt_cv_sys_max_cmd_len=-1;
;;
- cygwin* | mingw* | windows* | cegcc*)
+ cygwin* | mingw* | cegcc*)
# On Win9x/ME, this test blows up -- it succeeds, but takes
# about 5 minutes as the teststring grows exponentially.
# Worse, since 9x/ME are not pre-emptively multitasking,
@@ -1760,7 +1720,7 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
lt_cv_sys_max_cmd_len=8192;
;;
- darwin* | dragonfly* | freebsd* | midnightbsd* | netbsd* | openbsd*)
+ bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*)
# This has been around since 386BSD, at least. Likely further.
if test -x /sbin/sysctl; then
lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
@@ -1803,7 +1763,7 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
sysv5* | sco5v6* | sysv4.2uw2*)
kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
if test -n "$kargmax"; then
- lt_cv_sys_max_cmd_len=`echo $kargmax | $SED 's/.*[[ ]]//'`
+ lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'`
else
lt_cv_sys_max_cmd_len=32768
fi
@@ -1920,11 +1880,11 @@ else
/* When -fvisibility=hidden is used, assume the code has been annotated
correspondingly for the symbols needed. */
#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
-int fnord (void) __attribute__((visibility("default")));
+int fnord () __attribute__((visibility("default")));
#endif
-int fnord (void) { return 42; }
-int main (void)
+int fnord () { return 42; }
+int main ()
{
void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
int status = $lt_dlunknown;
@@ -1981,7 +1941,7 @@ else
lt_cv_dlopen_self=yes
;;
- mingw* | windows* | pw32* | cegcc*)
+ mingw* | pw32* | cegcc*)
lt_cv_dlopen=LoadLibrary
lt_cv_dlopen_libs=
;;
@@ -2253,35 +2213,26 @@ m4_defun([_LT_CMD_STRIPLIB],
striplib=
old_striplib=
AC_MSG_CHECKING([whether stripping libraries is possible])
-if test -z "$STRIP"; then
- AC_MSG_RESULT([no])
+if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
+ test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+ test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+ AC_MSG_RESULT([yes])
else
- if $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
- old_striplib="$STRIP --strip-debug"
- striplib="$STRIP --strip-unneeded"
- AC_MSG_RESULT([yes])
- else
- case $host_os in
- darwin*)
- # FIXME - insert some real tests, host_os isn't really good enough
+# FIXME - insert some real tests, host_os isn't really good enough
+ case $host_os in
+ darwin*)
+ if test -n "$STRIP"; then
striplib="$STRIP -x"
old_striplib="$STRIP -S"
AC_MSG_RESULT([yes])
- ;;
- freebsd*)
- if $STRIP -V 2>&1 | $GREP "elftoolchain" >/dev/null; then
- old_striplib="$STRIP --strip-debug"
- striplib="$STRIP --strip-unneeded"
- AC_MSG_RESULT([yes])
- else
- AC_MSG_RESULT([no])
- fi
- ;;
- *)
+ else
AC_MSG_RESULT([no])
- ;;
- esac
- fi
+ fi
+ ;;
+ *)
+ AC_MSG_RESULT([no])
+ ;;
+ esac
fi
_LT_DECL([], [old_striplib], [1], [Commands to strip libraries])
_LT_DECL([], [striplib], [1])
@@ -2349,7 +2300,7 @@ if test yes = "$GCC"; then
*) lt_awk_arg='/^libraries:/' ;;
esac
case $host_os in
- mingw* | windows* | cegcc*) lt_sed_strip_eq='s|=\([[A-Za-z]]:\)|\1|g' ;;
+ mingw* | cegcc*) lt_sed_strip_eq='s|=\([[A-Za-z]]:\)|\1|g' ;;
*) lt_sed_strip_eq='s|=/|/|g' ;;
esac
lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
@@ -2407,7 +2358,7 @@ BEGIN {RS = " "; FS = "/|\n";} {
# AWK program above erroneously prepends '/' to C:/dos/paths
# for these hosts.
case $host_os in
- mingw* | windows* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
+ mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
$SED 's|/\([[A-Za-z]]:\)|\1|g'` ;;
esac
sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
@@ -2482,7 +2433,7 @@ aix[[4-9]]*)
# Unfortunately, runtime linking may impact performance, so we do
# not want this to be the default eventually. Also, we use the
# versioned .so libs for executables only if there is the -brtl
- # linker flag in LDFLAGS as well, or --enable-aix-soname=svr4 only.
+ # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only.
# To allow for filename-based versioning support, we need to create
# libNAME.so.V as an archive file, containing:
# *) an Import File, referring to the versioned filename of the
@@ -2576,7 +2527,7 @@ bsdi[[45]]*)
# libtool to hard-code these into programs
;;
-cygwin* | mingw* | windows* | pw32* | cegcc*)
+cygwin* | mingw* | pw32* | cegcc*)
version_type=windows
shrext_cmds=.dll
need_version=no
@@ -2587,29 +2538,15 @@ cygwin* | mingw* | windows* | pw32* | cegcc*)
# gcc
library_names_spec='$libname.dll.a'
# DLL is installed to $(libdir)/../bin by postinstall_cmds
- # If user builds GCC with multilib enabled,
- # it should just install on $(libdir)
- # not on $(libdir)/../bin or 32 bits dlls would override 64 bit ones.
- if test xyes = x"$multilib"; then
- postinstall_cmds='base_file=`basename \$file`~
- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
- dldir=$destdir/`dirname \$dlpath`~
- $install_prog $dir/$dlname $destdir/$dlname~
- chmod a+x $destdir/$dlname~
- if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
- eval '\''$striplib $destdir/$dlname'\'' || exit \$?;
- fi'
- else
- postinstall_cmds='base_file=`basename \$file`~
- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
- dldir=$destdir/`dirname \$dlpath`~
- test -d \$dldir || mkdir -p \$dldir~
- $install_prog $dir/$dlname \$dldir/$dlname~
- chmod a+x \$dldir/$dlname~
- if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
- eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
- fi'
- fi
+ postinstall_cmds='base_file=`basename \$file`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname~
+ chmod a+x \$dldir/$dlname~
+ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+ eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+ fi'
postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
dlpath=$dir/\$dldll~
$RM \$dlpath'
@@ -2618,30 +2555,30 @@ cygwin* | mingw* | windows* | pw32* | cegcc*)
case $host_os in
cygwin*)
# Cygwin DLLs use 'cyg' prefix rather than 'lib'
- soname_spec='`echo $libname | $SED -e 's/^lib/cyg/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
+ soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
m4_if([$1], [],[
sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"])
;;
- mingw* | windows* | cegcc*)
+ mingw* | cegcc*)
# MinGW DLLs use traditional 'lib' prefix
soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
;;
pw32*)
# pw32 DLLs use 'pw' prefix rather than 'lib'
- library_names_spec='`echo $libname | $SED -e 's/^lib/pw/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
+ library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
;;
esac
dynamic_linker='Win32 ld.exe'
;;
- *,cl* | *,icl*)
- # Native MSVC or ICC
+ *,cl*)
+ # Native MSVC
libname_spec='$name'
soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
library_names_spec='$libname.dll.lib'
case $build_os in
- mingw* | windows*)
+ mingw*)
sys_lib_search_path_spec=
lt_save_ifs=$IFS
IFS=';'
@@ -2654,7 +2591,7 @@ m4_if([$1], [],[
done
IFS=$lt_save_ifs
# Convert to MSYS style.
- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'`
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'`
;;
cygwin*)
# Convert to unix form, then to dos form, then back to unix form
@@ -2691,7 +2628,7 @@ m4_if([$1], [],[
;;
*)
- # Assume MSVC and ICC wrapper
+ # Assume MSVC wrapper
library_names_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext $libname.lib'
dynamic_linker='Win32 ld.exe'
;;
@@ -2724,7 +2661,7 @@ dgux*)
shlibpath_var=LD_LIBRARY_PATH
;;
-freebsd* | dragonfly* | midnightbsd*)
+freebsd* | dragonfly*)
# DragonFly does not have aout. When/if they implement a new
# versioning mechanism, adjust this.
if test -x /usr/bin/objformat; then
@@ -2748,21 +2685,7 @@ freebsd* | dragonfly* | midnightbsd*)
need_version=yes
;;
esac
- case $host_cpu in
- powerpc64)
- # On FreeBSD bi-arch platforms, a different variable is used for 32-bit
- # binaries. See <https://man.freebsd.org/cgi/man.cgi?query=ld.so>.
- AC_COMPILE_IFELSE(
- [AC_LANG_SOURCE(
- [[int test_pointer_size[sizeof (void *) - 5];
- ]])],
- [shlibpath_var=LD_LIBRARY_PATH],
- [shlibpath_var=LD_32_LIBRARY_PATH])
- ;;
- *)
- shlibpath_var=LD_LIBRARY_PATH
- ;;
- esac
+ shlibpath_var=LD_LIBRARY_PATH
case $host_os in
freebsd2.*)
shlibpath_overrides_runpath=yes
@@ -2792,9 +2715,8 @@ haiku*)
soname_spec='$libname$release$shared_ext$major'
shlibpath_var=LIBRARY_PATH
shlibpath_overrides_runpath=no
- sys_lib_search_path_spec='/boot/system/non-packaged/develop/lib /boot/system/develop/lib'
- sys_lib_dlsearch_path_spec='/boot/home/config/non-packaged/lib /boot/home/config/lib /boot/system/non-packaged/lib /boot/system/lib'
- hardcode_into_libs=no
+ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
+ hardcode_into_libs=yes
;;
hpux9* | hpux10* | hpux11*)
@@ -2904,7 +2826,7 @@ linux*android*)
version_type=none # Android doesn't support versioned libraries.
need_lib_prefix=no
need_version=no
- library_names_spec='$libname$release$shared_ext $libname$shared_ext'
+ library_names_spec='$libname$release$shared_ext'
soname_spec='$libname$release$shared_ext'
finish_cmds=
shlibpath_var=LD_LIBRARY_PATH
@@ -2916,9 +2838,8 @@ linux*android*)
hardcode_into_libs=yes
dynamic_linker='Android linker'
- # -rpath works at least for libraries that are not overridden by
- # libraries installed in system locations.
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+ # Don't embed -rpath directories since the linker doesn't support them.
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
;;
# This must be glibc/ELF.
@@ -2955,7 +2876,7 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
# Add ABI-specific directories to the system library path.
sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib"
- # Ideally, we could use ldconfig to report *all* directories which are
+ # Ideally, we could use ldconfig to report *all* directores which are
# searched for libraries, however this is still not possible. Aside from not
# being certain /sbin/ldconfig is available, command
# 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64,
@@ -2975,18 +2896,6 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
dynamic_linker='GNU/Linux ld.so'
;;
-netbsdelf*-gnu)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- dynamic_linker='NetBSD ld.elf_so'
- ;;
-
netbsd*)
version_type=sunos
need_lib_prefix=no
@@ -3005,18 +2914,6 @@ netbsd*)
hardcode_into_libs=yes
;;
-*-mlibc)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- dynamic_linker='mlibc ld.so'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
-
newsos6)
version_type=linux # correct to gnu/linux during the next big refactor
library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
@@ -3036,7 +2933,7 @@ newsos6)
dynamic_linker='ldqnx.so'
;;
-openbsd*)
+openbsd* | bitrig*)
version_type=sunos
sys_lib_dlsearch_path_spec=/usr/lib
need_lib_prefix=no
@@ -3096,17 +2993,6 @@ rdos*)
dynamic_linker=no
;;
-serenity*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- dynamic_linker='SerenityOS LibELF'
- ;;
-
solaris*)
version_type=linux # correct to gnu/linux during the next big refactor
need_lib_prefix=no
@@ -3204,21 +3090,6 @@ uts4*)
shlibpath_var=LD_LIBRARY_PATH
;;
-emscripten*)
- version_type=none
- need_lib_prefix=no
- need_version=no
- library_names_spec='$libname$release$shared_ext'
- soname_spec='$libname$release$shared_ext'
- finish_cmds=
- dynamic_linker="Emscripten linker"
- _LT_COMPILER_PIC($1)='-fPIC'
- _LT_TAGVAR(archive_cmds, $1)='$CC -sSIDE_MODULE=2 -shared $libobjs $deplibs $compiler_flags -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$SED "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -sSIDE_MODULE=2 -shared $libobjs $deplibs $compiler_flags -o $lib -s EXPORTED_FUNCTIONS=@$output_objdir/$soname.expsym'
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_TAGVAR(no_undefined_flag, $1)=
- ;;
-
*)
dynamic_linker=no
;;
@@ -3394,7 +3265,7 @@ if test yes = "$GCC"; then
# Check if gcc -print-prog-name=ld gives a path.
AC_MSG_CHECKING([for ld used by $CC])
case $host in
- *-*-mingw* | *-*-windows*)
+ *-*-mingw*)
# gcc leaves a trailing carriage return, which upsets mingw
ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
*)
@@ -3503,7 +3374,7 @@ case $reload_flag in
esac
reload_cmds='$LD$reload_flag -o $output$reload_objs'
case $host_os in
- cygwin* | mingw* | windows* | pw32* | cegcc*)
+ cygwin* | mingw* | pw32* | cegcc*)
if test yes != "$GCC"; then
reload_cmds=false
fi
@@ -3575,6 +3446,7 @@ lt_cv_deplibs_check_method='unknown'
# 'none' -- dependencies not supported.
# 'unknown' -- same as none, but documents that we really don't know.
# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
# 'file_magic [[regex]]' -- check by looking for files in library path
# that responds to the $file_magic_cmd with a given extended regex.
# If you have 'file' or equivalent on your system and you're not sure
@@ -3591,7 +3463,7 @@ beos*)
bsdi[[45]]*)
lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
- lt_cv_file_magic_cmd='$FILECMD -L'
+ lt_cv_file_magic_cmd='/usr/bin/file -L'
lt_cv_file_magic_test_file=/shlib/libc.so
;;
@@ -3601,7 +3473,7 @@ cygwin*)
lt_cv_file_magic_cmd='func_win32_libid'
;;
-mingw* | windows* | pw32*)
+mingw* | pw32*)
# Base MSYS/MinGW do not provide the 'file' command needed by
# func_win32_libid shell function, so use a weaker test based on 'objdump',
# unless we find 'file', for example because we are cross-compiling.
@@ -3610,7 +3482,7 @@ mingw* | windows* | pw32*)
lt_cv_file_magic_cmd='func_win32_libid'
else
# Keep this pattern in sync with the one in func_win32_libid.
- lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64|pe-aarch64)'
+ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
lt_cv_file_magic_cmd='$OBJDUMP -f'
fi
;;
@@ -3625,14 +3497,14 @@ darwin* | rhapsody*)
lt_cv_deplibs_check_method=pass_all
;;
-freebsd* | dragonfly* | midnightbsd*)
+freebsd* | dragonfly*)
if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
case $host_cpu in
i*86 )
# Not sure whether the presence of OpenBSD here was a mistake.
# Let's accept both of them until this is cleared up.
lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library'
- lt_cv_file_magic_cmd=$FILECMD
+ lt_cv_file_magic_cmd=/usr/bin/file
lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
;;
esac
@@ -3646,7 +3518,7 @@ haiku*)
;;
hpux10.20* | hpux11*)
- lt_cv_file_magic_cmd=$FILECMD
+ lt_cv_file_magic_cmd=/usr/bin/file
case $host_cpu in
ia64*)
lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
@@ -3683,11 +3555,7 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
lt_cv_deplibs_check_method=pass_all
;;
-*-mlibc)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-netbsd* | netbsdelf*-gnu)
+netbsd*)
if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
else
@@ -3697,7 +3565,7 @@ netbsd* | netbsdelf*-gnu)
newos6*)
lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
- lt_cv_file_magic_cmd=$FILECMD
+ lt_cv_file_magic_cmd=/usr/bin/file
lt_cv_file_magic_test_file=/usr/lib/libnls.so
;;
@@ -3705,7 +3573,7 @@ newos6*)
lt_cv_deplibs_check_method=pass_all
;;
-openbsd*)
+openbsd* | bitrig*)
if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$'
else
@@ -3721,10 +3589,6 @@ rdos*)
lt_cv_deplibs_check_method=pass_all
;;
-serenity*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
solaris*)
lt_cv_deplibs_check_method=pass_all
;;
@@ -3773,7 +3637,7 @@ file_magic_glob=
want_nocaseglob=no
if test "$build" = "$host"; then
case $host_os in
- mingw* | windows* | pw32*)
+ mingw* | pw32*)
if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
want_nocaseglob=yes
else
@@ -3825,16 +3689,16 @@ else
# Tru64's nm complains that /dev/null is an invalid object file
# MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty
case $build_os in
- mingw* | windows*) lt_bad_file=conftest.nm/nofile ;;
+ mingw*) lt_bad_file=conftest.nm/nofile ;;
*) lt_bad_file=/dev/null ;;
esac
- case `"$tmp_nm" -B $lt_bad_file 2>&1 | $SED '1q'` in
+ case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in
*$lt_bad_file* | *'Invalid file or object type'*)
lt_cv_path_NM="$tmp_nm -B"
break 2
;;
*)
- case `"$tmp_nm" -p /dev/null 2>&1 | $SED '1q'` in
+ case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
*/dev/null*)
lt_cv_path_NM="$tmp_nm -p"
break 2
@@ -3860,7 +3724,7 @@ else
# Let the user override the test.
else
AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :)
- case `$DUMPBIN -symbols -headers /dev/null 2>&1 | $SED '1q'` in
+ case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in
*COFF*)
DUMPBIN="$DUMPBIN -symbols -headers"
;;
@@ -3916,7 +3780,7 @@ lt_cv_sharedlib_from_linklib_cmd,
[lt_cv_sharedlib_from_linklib_cmd='unknown'
case $host_os in
-cygwin* | mingw* | windows* | pw32* | cegcc*)
+cygwin* | mingw* | pw32* | cegcc*)
# two different shell functions defined in ltmain.sh;
# decide which one to use based on capabilities of $DLLTOOL
case `$DLLTOOL --help 2>&1` in
@@ -3948,16 +3812,16 @@ _LT_DECL([], [sharedlib_from_linklib_cmd], [1],
m4_defun([_LT_PATH_MANIFEST_TOOL],
[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :)
test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
-AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_manifest_tool],
- [lt_cv_path_manifest_tool=no
+AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool],
+ [lt_cv_path_mainfest_tool=no
echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD
$MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
cat conftest.err >&AS_MESSAGE_LOG_FD
if $GREP 'Manifest Tool' conftest.out > /dev/null; then
- lt_cv_path_manifest_tool=yes
+ lt_cv_path_mainfest_tool=yes
fi
rm -f conftest*])
-if test yes != "$lt_cv_path_manifest_tool"; then
+if test yes != "$lt_cv_path_mainfest_tool"; then
MANIFEST_TOOL=:
fi
_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl
@@ -3986,7 +3850,7 @@ AC_DEFUN([LT_LIB_M],
[AC_REQUIRE([AC_CANONICAL_HOST])dnl
LIBM=
case $host in
-*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-mingw* | *-*-pw32* | *-*-darwin*)
+*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*)
# These system don't have libm, or don't need it
;;
*-ncr-sysv4.3*)
@@ -4061,7 +3925,7 @@ case $host_os in
aix*)
symcode='[[BCDT]]'
;;
-cygwin* | mingw* | windows* | pw32* | cegcc*)
+cygwin* | mingw* | pw32* | cegcc*)
symcode='[[ABCDGISTW]]'
;;
hpux*)
@@ -4076,7 +3940,7 @@ osf*)
symcode='[[BCDEGQRST]]'
;;
solaris*)
- symcode='[[BCDRT]]'
+ symcode='[[BDRT]]'
;;
sco3.2v5*)
symcode='[[DT]]'
@@ -4100,7 +3964,7 @@ esac
if test "$lt_cv_nm_interface" = "MS dumpbin"; then
# Gets list of data symbols to import.
- lt_cv_sys_global_symbol_to_import="$SED -n -e 's/^I .* \(.*\)$/\1/p'"
+ lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'"
# Adjust the below global symbol transforms to fixup imported variables.
lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'"
lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'"
@@ -4118,20 +3982,20 @@ fi
# Transform an extracted symbol line into a proper C declaration.
# Some systems (esp. on ia64) link data and code symbols differently,
# so use this general approach.
-lt_cv_sys_global_symbol_to_cdecl="$SED -n"\
+lt_cv_sys_global_symbol_to_cdecl="sed -n"\
$lt_cdecl_hook\
" -e 's/^T .* \(.*\)$/extern int \1();/p'"\
" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'"
# Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="$SED -n"\
+lt_cv_sys_global_symbol_to_c_name_address="sed -n"\
$lt_c_name_hook\
" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\
" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'"
# Transform an extracted symbol line into symbol name with lib prefix and
# symbol address.
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="$SED -n"\
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\
$lt_c_name_lib_hook\
" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\
" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\
@@ -4140,7 +4004,7 @@ $lt_c_name_lib_hook\
# Handle CRLF in mingw tool chain
opt_cr=
case $build_os in
-mingw* | windows*)
+mingw*)
opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
;;
esac
@@ -4155,7 +4019,7 @@ for ac_symprfx in "" "_"; do
if test "$lt_cv_nm_interface" = "MS dumpbin"; then
# Fake it for dumpbin and say T for any non-static function,
# D for any global variable and I for any imported variable.
- # Also find C++ and __fastcall symbols from MSVC++ or ICC,
+ # Also find C++ and __fastcall symbols from MSVC++,
# which start with @ or ?.
lt_cv_sys_global_symbol_pipe="$AWK ['"\
" {last_section=section; section=\$ 3};"\
@@ -4173,9 +4037,9 @@ for ac_symprfx in "" "_"; do
" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\
" ' prfx=^$ac_symprfx]"
else
- lt_cv_sys_global_symbol_pipe="$SED -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+ lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
fi
- lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | $SED '/ __gnu_lto/d'"
+ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
# Check to see that the pipe works correctly.
pipe_works=no
@@ -4191,14 +4055,13 @@ void nm_test_func(void){}
#ifdef __cplusplus
}
#endif
-int main(void){nm_test_var='a';nm_test_func();return(0);}
+int main(){nm_test_var='a';nm_test_func();return(0);}
_LT_EOF
if AC_TRY_EVAL(ac_compile); then
# Now try to grab the symbols.
nlist=conftest.nm
- $ECHO "$as_me:$LINENO: $NM conftest.$ac_objext | $lt_cv_sys_global_symbol_pipe > $nlist" >&AS_MESSAGE_LOG_FD
- if eval "$NM" conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist 2>&AS_MESSAGE_LOG_FD && test -s "$nlist"; then
+ if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then
# Try sorting and uniquifying the output.
if sort "$nlist" | uniq > "$nlist"T; then
mv -f "$nlist"T "$nlist"
@@ -4368,7 +4231,7 @@ m4_if([$1], [CXX], [
beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
# PIC is the default for these OSes.
;;
- mingw* | windows* | cygwin* | os2* | pw32* | cegcc*)
+ mingw* | cygwin* | os2* | pw32* | cegcc*)
# This hack is so that the source file can tell whether it is being
# built for inclusion in a dll (and should export symbols for example).
# Although the cygwin gcc ignores -fPIC, still need this for old-style
@@ -4444,7 +4307,7 @@ m4_if([$1], [CXX], [
;;
esac
;;
- mingw* | windows* | cygwin* | os2* | pw32* | cegcc*)
+ mingw* | cygwin* | os2* | pw32* | cegcc*)
# This hack is so that the source file can tell whether it is being
# built for inclusion in a dll (and should export symbols for example).
m4_if([$1], [GCJ], [],
@@ -4463,7 +4326,7 @@ m4_if([$1], [CXX], [
;;
esac
;;
- freebsd* | dragonfly* | midnightbsd*)
+ freebsd* | dragonfly*)
# FreeBSD uses GNU C++
;;
hpux9* | hpux10* | hpux11*)
@@ -4546,7 +4409,7 @@ m4_if([$1], [CXX], [
_LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
;;
*)
- case `$CC -V 2>&1 | $SED 5q` in
+ case `$CC -V 2>&1 | sed 5q` in
*Sun\ C*)
# Sun C++ 5.9
_LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
@@ -4570,9 +4433,7 @@ m4_if([$1], [CXX], [
;;
esac
;;
- netbsd* | netbsdelf*-gnu)
- ;;
- *-mlibc)
+ netbsd*)
;;
*qnx* | *nto*)
# QNX uses GNU C++, but need to define -shared option too, otherwise
@@ -4602,8 +4463,6 @@ m4_if([$1], [CXX], [
;;
psos*)
;;
- serenity*)
- ;;
solaris*)
case $cc_basename in
CC* | sunCC*)
@@ -4696,7 +4555,7 @@ m4_if([$1], [CXX], [
# PIC is the default for these OSes.
;;
- mingw* | windows* | cygwin* | pw32* | os2* | cegcc*)
+ mingw* | cygwin* | pw32* | os2* | cegcc*)
# This hack is so that the source file can tell whether it is being
# built for inclusion in a dll (and should export symbols for example).
# Although the cygwin gcc ignores -fPIC, still need this for old-style
@@ -4800,7 +4659,7 @@ m4_if([$1], [CXX], [
esac
;;
- mingw* | windows* | cygwin* | pw32* | os2* | cegcc*)
+ mingw* | cygwin* | pw32* | os2* | cegcc*)
# This hack is so that the source file can tell whether it is being
# built for inclusion in a dll (and should export symbols for example).
m4_if([$1], [GCJ], [],
@@ -4842,12 +4701,6 @@ m4_if([$1], [CXX], [
_LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
_LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
;;
- *flang* | ftn | f18* | f95*)
- # Flang compiler.
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
- ;;
# icc used to be incompatible with GCC.
# ICC 10 doesn't accept -KPIC any more.
icc* | ifort*)
@@ -4892,7 +4745,7 @@ m4_if([$1], [CXX], [
_LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
;;
*)
- case `$CC -V 2>&1 | $SED 5q` in
+ case `$CC -V 2>&1 | sed 5q` in
*Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*)
# Sun Fortran 8.3 passes all unrecognized flags to the linker
_LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
@@ -4930,12 +4783,6 @@ m4_if([$1], [CXX], [
_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
;;
- *-mlibc)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
- ;;
-
*nto* | *qnx*)
# QNX uses GNU C++, but need to define -shared option too, otherwise
# it will coredump.
@@ -4952,9 +4799,6 @@ m4_if([$1], [CXX], [
_LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
;;
- serenity*)
- ;;
-
solaris*)
_LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
@@ -5084,15 +4928,15 @@ m4_if([$1], [CXX], [
if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
_LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
else
- _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
+ _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
fi
;;
pw32*)
_LT_TAGVAR(export_symbols_cmds, $1)=$ltdll_cmds
;;
- cygwin* | mingw* | windows* | cegcc*)
+ cygwin* | mingw* | cegcc*)
case $cc_basename in
- cl* | icl*)
+ cl*)
_LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
;;
*)
@@ -5148,18 +4992,21 @@ dnl Note also adjust exclude_expsyms for C++ above.
extract_expsyms_cmds=
case $host_os in
- cygwin* | mingw* | windows* | pw32* | cegcc*)
- # FIXME: the MSVC++ and ICC port hasn't been tested in a loooong time
+ cygwin* | mingw* | pw32* | cegcc*)
+ # FIXME: the MSVC++ port hasn't been tested in a loooong time
# When not using gcc, we currently assume that we are using
- # Microsoft Visual C++ or Intel C++ Compiler.
+ # Microsoft Visual C++.
if test yes != "$GCC"; then
with_gnu_ld=no
fi
;;
interix*)
- # we just hope/assume this is gcc and not c89 (= MSVC++ or ICC)
+ # we just hope/assume this is gcc and not c89 (= MSVC++)
with_gnu_ld=yes
;;
+ openbsd* | bitrig*)
+ with_gnu_ld=no
+ ;;
esac
_LT_TAGVAR(ld_shlibs, $1)=yes
@@ -5206,7 +5053,7 @@ dnl Note also adjust exclude_expsyms for C++ above.
_LT_TAGVAR(whole_archive_flag_spec, $1)=
fi
supports_anon_versioning=no
- case `$LD -v | $SED -e 's/([[^)]]\+)\s\+//' 2>&1` in
+ case `$LD -v | $SED -e 's/([^)]\+)\s\+//' 2>&1` in
*GNU\ gold*) supports_anon_versioning=yes ;;
*\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
*\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
@@ -5260,7 +5107,7 @@ _LT_EOF
fi
;;
- cygwin* | mingw* | windows* | pw32* | cegcc*)
+ cygwin* | mingw* | pw32* | cegcc*)
# _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
# as there is no search path for DLLs.
_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
@@ -5270,7 +5117,6 @@ _LT_EOF
_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
_LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
_LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
- _LT_TAGVAR(file_list_spec, $1)='@'
if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
@@ -5290,7 +5136,7 @@ _LT_EOF
haiku*)
_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
- _LT_TAGVAR(link_all_deplibs, $1)=no
+ _LT_TAGVAR(link_all_deplibs, $1)=yes
;;
os2*)
@@ -5317,9 +5163,8 @@ _LT_EOF
cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
$CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
emximp -o $lib $output_objdir/$libname.def'
- _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+ _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
- _LT_TAGVAR(file_list_spec, $1)='@'
;;
interix[[3-9]]*)
@@ -5334,7 +5179,7 @@ _LT_EOF
# 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
# time. Moving up from 0x10000000 also allows more sbrk(2) space.
_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$SED "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
;;
gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
@@ -5377,7 +5222,7 @@ _LT_EOF
_LT_TAGVAR(compiler_needs_object, $1)=yes
;;
esac
- case `$CC -V 2>&1 | $SED 5q` in
+ case `$CC -V 2>&1 | sed 5q` in
*Sun\ C*) # Sun C 5.9
_LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
_LT_TAGVAR(compiler_needs_object, $1)=yes
@@ -5389,14 +5234,13 @@ _LT_EOF
if test yes = "$supports_anon_versioning"; then
_LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
- cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
echo "local: *; };" >> $output_objdir/$libname.ver~
$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
fi
case $cc_basename in
tcc*)
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
_LT_TAGVAR(export_dynamic_flag_spec, $1)='-rdynamic'
;;
xlf* | bgf* | bgxlf* | mpixlf*)
@@ -5406,7 +5250,7 @@ _LT_EOF
_LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
if test yes = "$supports_anon_versioning"; then
_LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
- cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
echo "local: *; };" >> $output_objdir/$libname.ver~
$LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
fi
@@ -5417,12 +5261,7 @@ _LT_EOF
fi
;;
- *-mlibc)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
- ;;
-
- netbsd* | netbsdelf*-gnu)
+ netbsd*)
if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
wlarc=
@@ -5543,7 +5382,7 @@ _LT_EOF
if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
_LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
else
- _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
+ _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
fi
aix_use_runtimelinking=no
@@ -5724,14 +5563,14 @@ _LT_EOF
_LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
;;
- cygwin* | mingw* | windows* | pw32* | cegcc*)
+ cygwin* | mingw* | pw32* | cegcc*)
# When not using gcc, we currently assume that we are using
- # Microsoft Visual C++ or Intel C++ Compiler.
+ # Microsoft Visual C++.
# hardcode_libdir_flag_spec is actually meaningless, as there is
# no search path for DLLs.
case $cc_basename in
- cl* | icl*)
- # Native MSVC or ICC
+ cl*)
+ # Native MSVC
_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
_LT_TAGVAR(always_export_symbols, $1)=yes
@@ -5741,14 +5580,14 @@ _LT_EOF
# Tell ltmain to make .dll files, not .so files.
shrext_cmds=.dll
# FIXME: Setting linknames here is a bad hack.
- _LT_TAGVAR(archive_cmds, $1)='$CC -Fe$output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='
+ _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='
_LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then
cp "$export_symbols" "$output_objdir/$soname.def";
echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp";
else
$SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp;
fi~
- $CC -Fe$tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
linknames='
# The linker will not automatically build a static lib if we build a DLL.
# _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
@@ -5772,7 +5611,7 @@ _LT_EOF
fi'
;;
*)
- # Assume MSVC and ICC wrapper
+ # Assume MSVC wrapper
_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
# Tell ltmain to make .lib files, not .a files.
@@ -5820,7 +5659,7 @@ _LT_EOF
;;
# FreeBSD 3 and greater uses gcc -shared to do shared libraries.
- freebsd* | dragonfly* | midnightbsd*)
+ freebsd* | dragonfly*)
_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
_LT_TAGVAR(hardcode_direct, $1)=yes
@@ -5960,15 +5799,11 @@ _LT_EOF
# Fabrice Bellard et al's Tiny C Compiler
_LT_TAGVAR(ld_shlibs, $1)=yes
_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
;;
esac
;;
- *-mlibc)
- ;;
-
- netbsd* | netbsdelf*-gnu)
+ netbsd*)
if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
else
@@ -5990,7 +5825,7 @@ _LT_EOF
*nto* | *qnx*)
;;
- openbsd*)
+ openbsd* | bitrig*)
if test -f /usr/libexec/ld.so; then
_LT_TAGVAR(hardcode_direct, $1)=yes
_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
@@ -6033,9 +5868,8 @@ _LT_EOF
cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
$CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
emximp -o $lib $output_objdir/$libname.def'
- _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+ _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
- _LT_TAGVAR(file_list_spec, $1)='@'
;;
osf3*)
@@ -6069,9 +5903,6 @@ _LT_EOF
_LT_TAGVAR(hardcode_libdir_separator, $1)=:
;;
- serenity*)
- ;;
-
solaris*)
_LT_TAGVAR(no_undefined_flag, $1)=' -z defs'
if test yes = "$GCC"; then
@@ -6330,7 +6161,7 @@ _LT_TAGDECL([], [hardcode_direct], [0],
_LT_TAGDECL([], [hardcode_direct_absolute], [0],
[Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes
DIR into the resulting binary and the resulting library dependency is
- "absolute", i.e. impossible to change by setting $shlibpath_var if the
+ "absolute", i.e impossible to change by setting $shlibpath_var if the
library is relocated])
_LT_TAGDECL([], [hardcode_minus_L], [0],
[Set to "yes" if using the -LDIR flag during linking hardcodes DIR
@@ -6388,7 +6219,7 @@ _LT_TAGVAR(objext, $1)=$objext
lt_simple_compile_test_code="int some_variable = 0;"
# Code to be used in simple link tests
-lt_simple_link_test_code='int main(void){return(0);}'
+lt_simple_link_test_code='int main(){return(0);}'
_LT_TAG_COMPILER
# Save the default compiler, since it gets overwritten when the other
@@ -6573,7 +6404,8 @@ if test yes != "$_lt_caught_CXX_error"; then
wlarc='$wl'
# ancient GNU ld didn't support --whole-archive et. al.
- if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
+ if eval "`$CC -print-prog-name=ld` --help 2>&1" |
+ $GREP 'no-whole-archive' > /dev/null; then
_LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
else
_LT_TAGVAR(whole_archive_flag_spec, $1)=
@@ -6593,7 +6425,7 @@ if test yes != "$_lt_caught_CXX_error"; then
# Commands to make compiler produce verbose output that lists
# what "hidden" libraries, object files and flags are used when
# linking a shared library.
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " [[-]]L"'
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
else
GXX=no
@@ -6802,10 +6634,10 @@ if test yes != "$_lt_caught_CXX_error"; then
esac
;;
- cygwin* | mingw* | windows* | pw32* | cegcc*)
+ cygwin* | mingw* | pw32* | cegcc*)
case $GXX,$cc_basename in
- ,cl* | no,cl* | ,icl* | no,icl*)
- # Native MSVC or ICC
+ ,cl* | no,cl*)
+ # Native MSVC
# hardcode_libdir_flag_spec is actually meaningless, as there is
# no search path for DLLs.
_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
@@ -6855,7 +6687,6 @@ if test yes != "$_lt_caught_CXX_error"; then
_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
_LT_TAGVAR(always_export_symbols, $1)=no
_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
- _LT_TAGVAR(file_list_spec, $1)='@'
if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
_LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
@@ -6902,9 +6733,8 @@ if test yes != "$_lt_caught_CXX_error"; then
cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
$CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
emximp -o $lib $output_objdir/$libname.def'
- _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+ _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
- _LT_TAGVAR(file_list_spec, $1)='@'
;;
dgux*)
@@ -6935,7 +6765,7 @@ if test yes != "$_lt_caught_CXX_error"; then
_LT_TAGVAR(archive_cmds_need_lc, $1)=no
;;
- freebsd* | dragonfly* | midnightbsd*)
+ freebsd* | dragonfly*)
# FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
# conventions
_LT_TAGVAR(ld_shlibs, $1)=yes
@@ -6943,7 +6773,7 @@ if test yes != "$_lt_caught_CXX_error"; then
haiku*)
_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
- _LT_TAGVAR(link_all_deplibs, $1)=no
+ _LT_TAGVAR(link_all_deplibs, $1)=yes
;;
hpux9*)
@@ -6970,7 +6800,7 @@ if test yes != "$_lt_caught_CXX_error"; then
# explicitly linking system object files so we need to strip them
# from the output so that they don't get included in the library
# dependencies.
- output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "[[-]]L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+ output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
;;
*)
if test yes = "$GXX"; then
@@ -7035,7 +6865,7 @@ if test yes != "$_lt_caught_CXX_error"; then
# explicitly linking system object files so we need to strip them
# from the output so that they don't get included in the library
# dependencies.
- output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP " [[-]]L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+ output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
;;
*)
if test yes = "$GXX"; then
@@ -7072,7 +6902,7 @@ if test yes != "$_lt_caught_CXX_error"; then
# 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
# time. Moving up from 0x10000000 also allows more sbrk(2) space.
_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$SED "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
;;
irix5* | irix6*)
case $cc_basename in
@@ -7212,13 +7042,13 @@ if test yes != "$_lt_caught_CXX_error"; then
_LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
if test yes = "$supports_anon_versioning"; then
_LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
- cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
echo "local: *; };" >> $output_objdir/$libname.ver~
$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
fi
;;
*)
- case `$CC -V 2>&1 | $SED 5q` in
+ case `$CC -V 2>&1 | sed 5q` in
*Sun\ C*)
# Sun C++ 5.9
_LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
@@ -7267,10 +7097,6 @@ if test yes != "$_lt_caught_CXX_error"; then
esac
;;
- *-mlibc)
- _LT_TAGVAR(ld_shlibs, $1)=yes
- ;;
-
netbsd*)
if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
@@ -7287,7 +7113,7 @@ if test yes != "$_lt_caught_CXX_error"; then
_LT_TAGVAR(ld_shlibs, $1)=yes
;;
- openbsd*)
+ openbsd* | bitrig*)
if test -f /usr/libexec/ld.so; then
_LT_TAGVAR(hardcode_direct, $1)=yes
_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
@@ -7378,7 +7204,7 @@ if test yes != "$_lt_caught_CXX_error"; then
# Commands to make compiler produce verbose output that lists
# what "hidden" libraries, object files and flags are used when
# linking a shared library.
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " [[-]]L"'
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
else
# FIXME: insert proper C++ library support
@@ -7393,9 +7219,6 @@ if test yes != "$_lt_caught_CXX_error"; then
_LT_TAGVAR(ld_shlibs, $1)=no
;;
- serenity*)
- ;;
-
sunos4*)
case $cc_basename in
CC*)
@@ -7465,7 +7288,7 @@ if test yes != "$_lt_caught_CXX_error"; then
# Commands to make compiler produce verbose output that lists
# what "hidden" libraries, object files and flags are used when
# linking a shared library.
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " [[-]]L"'
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
else
# g++ 2.7 appears to require '-G' NOT '-shared' on this
# platform.
@@ -7476,7 +7299,7 @@ if test yes != "$_lt_caught_CXX_error"; then
# Commands to make compiler produce verbose output that lists
# what "hidden" libraries, object files and flags are used when
# linking a shared library.
- output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " [[-]]L"'
+ output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
fi
_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $wl$libdir'
@@ -7714,11 +7537,10 @@ if AC_TRY_EVAL(ac_compile); then
case $prev$p in
-L* | -R* | -l*)
- # Some compilers place space between "-{L,R,l}" and the path.
+ # Some compilers place space between "-{L,R}" and the path.
# Remove the space.
- if test x-L = x"$p" ||
- test x-R = x"$p" ||
- test x-l = x"$p"; then
+ if test x-L = "$p" ||
+ test x-R = "$p"; then
prev=$p
continue
fi
@@ -8364,14 +8186,6 @@ _LT_DECL([], [DLLTOOL], [1], [DLL creation program])
AC_SUBST([DLLTOOL])
])
-# _LT_DECL_FILECMD
-# ----------------
-# Check for a file(cmd) program that can be used to detect file type and magic
-m4_defun([_LT_DECL_FILECMD],
-[AC_CHECK_PROG([FILECMD], [file], [file], [:])
-_LT_DECL([], [FILECMD], [1], [A file(cmd) program that detects file types])
-])# _LD_DECL_FILECMD
-
# _LT_DECL_SED
# ------------
# Check for a fully-functional sed program, that truncates
@@ -8384,6 +8198,71 @@ _LT_DECL([], [SED], [1], [A sed program that does not truncate output])
_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"],
[Sed that helps us avoid accidentally triggering echo(1) options like -n])
])# _LT_DECL_SED
+
+m4_ifndef([AC_PROG_SED], [
+# NOTE: This macro has been submitted for inclusion into #
+# GNU Autoconf as AC_PROG_SED. When it is available in #
+# a released version of Autoconf we should remove this #
+# macro and use it instead. #
+
+m4_defun([AC_PROG_SED],
+[AC_MSG_CHECKING([for a sed that does not truncate output])
+AC_CACHE_VAL(lt_cv_path_SED,
+[# Loop through the user's path and test for sed and gsed.
+# Then use that list of sed's as ones to test for truncation.
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for lt_ac_prog in sed gsed; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
+ lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
+ fi
+ done
+ done
+done
+IFS=$as_save_IFS
+lt_ac_max=0
+lt_ac_count=0
+# Add /usr/xpg4/bin/sed as it is typically found on Solaris
+# along with /bin/sed that truncates output.
+for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
+ test ! -f "$lt_ac_sed" && continue
+ cat /dev/null > conftest.in
+ lt_ac_count=0
+ echo $ECHO_N "0123456789$ECHO_C" >conftest.in
+ # Check for GNU sed and select it if it is found.
+ if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
+ lt_cv_path_SED=$lt_ac_sed
+ break
+ fi
+ while true; do
+ cat conftest.in conftest.in >conftest.tmp
+ mv conftest.tmp conftest.in
+ cp conftest.in conftest.nl
+ echo >>conftest.nl
+ $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
+ cmp -s conftest.out conftest.nl || break
+ # 10000 chars as input seems more than enough
+ test 10 -lt "$lt_ac_count" && break
+ lt_ac_count=`expr $lt_ac_count + 1`
+ if test "$lt_ac_count" -gt "$lt_ac_max"; then
+ lt_ac_max=$lt_ac_count
+ lt_cv_path_SED=$lt_ac_sed
+ fi
+ done
+done
+])
+SED=$lt_cv_path_SED
+AC_SUBST([SED])
+AC_MSG_RESULT([$SED])
+])#AC_PROG_SED
+])#m4_ifndef
+
+# Old name:
+AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED])
dnl aclocal-1.4 backwards compatibility:
dnl AC_DEFUN([LT_AC_PROG_SED], [])
@@ -8430,7 +8309,7 @@ AC_CACHE_VAL(lt_cv_to_host_file_cmd,
[case $host in
*-*-mingw* )
case $build in
- *-*-mingw* | *-*-windows* ) # actually msys
+ *-*-mingw* ) # actually msys
lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
;;
*-*-cygwin* )
@@ -8443,7 +8322,7 @@ AC_CACHE_VAL(lt_cv_to_host_file_cmd,
;;
*-*-cygwin* )
case $build in
- *-*-mingw* | *-*-windows* ) # actually msys
+ *-*-mingw* ) # actually msys
lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
;;
*-*-cygwin* )
@@ -8469,9 +8348,9 @@ AC_CACHE_VAL(lt_cv_to_tool_file_cmd,
[#assume ordinary cross tools, or native build.
lt_cv_to_tool_file_cmd=func_convert_file_noop
case $host in
- *-*-mingw* | *-*-windows* )
+ *-*-mingw* )
case $build in
- *-*-mingw* | *-*-windows* ) # actually msys
+ *-*-mingw* ) # actually msys
lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
;;
esac
@@ -8486,15 +8365,15 @@ _LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd],
# Helper functions for option handling. -*- Autoconf -*-
#
-# Copyright (C) 2004-2005, 2007-2009, 2011-2019, 2021-2024 Free
-# Software Foundation, Inc.
+# Copyright (C) 2004-2005, 2007-2009, 2011-2015 Free Software
+# Foundation, Inc.
# Written by Gary V. Vaughan, 2004
#
# This file is free software; the Free Software Foundation gives
# unlimited permission to copy and/or distribute it, with or without
# modifications, as long as this notice is preserved.
-# serial 10 ltoptions.m4
+# serial 8 ltoptions.m4
# This is to help aclocal find these macros, as it can't see m4_define.
AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
@@ -8611,7 +8490,7 @@ LT_OPTION_DEFINE([LT_INIT], [win32-dll],
[enable_win32_dll=yes
case $host in
-*-*-cygwin* | *-*-mingw* | *-*-windows* | *-*-pw32* | *-*-cegcc*)
+*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
AC_CHECK_TOOL(AS, as, false)
AC_CHECK_TOOL(DLLTOOL, dlltool, false)
AC_CHECK_TOOL(OBJDUMP, objdump, false)
@@ -8806,39 +8685,29 @@ dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
# _LT_WITH_AIX_SONAME([DEFAULT])
# ----------------------------------
-# implement the --enable-aix-soname configure option, and support the
-# `aix-soname=aix' and `aix-soname=both' and `aix-soname=svr4' LT_INIT options.
-# DEFAULT is either `aix', `both', or `svr4'. If omitted, it defaults to `aix'.
+# implement the --with-aix-soname flag, and support the `aix-soname=aix'
+# and `aix-soname=both' and `aix-soname=svr4' LT_INIT options. DEFAULT
+# is either `aix', `both' or `svr4'. If omitted, it defaults to `aix'.
m4_define([_LT_WITH_AIX_SONAME],
[m4_define([_LT_WITH_AIX_SONAME_DEFAULT], [m4_if($1, svr4, svr4, m4_if($1, both, both, aix))])dnl
shared_archive_member_spec=
case $host,$enable_shared in
power*-*-aix[[5-9]]*,yes)
AC_MSG_CHECKING([which variant of shared library versioning to provide])
- AC_ARG_ENABLE([aix-soname],
- [AS_HELP_STRING([--enable-aix-soname=aix|svr4|both],
+ AC_ARG_WITH([aix-soname],
+ [AS_HELP_STRING([--with-aix-soname=aix|svr4|both],
[shared library versioning (aka "SONAME") variant to provide on AIX, @<:@default=]_LT_WITH_AIX_SONAME_DEFAULT[@:>@.])],
- [case $enableval in
- aix|svr4|both)
- ;;
- *)
- AC_MSG_ERROR([Unknown argument to --enable-aix-soname])
- ;;
- esac
- lt_cv_with_aix_soname=$enable_aix_soname],
- [_AC_ENABLE_IF([with], [aix-soname],
- [case $withval in
- aix|svr4|both)
- ;;
- *)
- AC_MSG_ERROR([Unknown argument to --with-aix-soname])
- ;;
- esac
- lt_cv_with_aix_soname=$with_aix_soname],
- [AC_CACHE_VAL([lt_cv_with_aix_soname],
- [lt_cv_with_aix_soname=]_LT_WITH_AIX_SONAME_DEFAULT)])
- enable_aix_soname=$lt_cv_with_aix_soname])
- with_aix_soname=$enable_aix_soname
+ [case $withval in
+ aix|svr4|both)
+ ;;
+ *)
+ AC_MSG_ERROR([Unknown argument to --with-aix-soname])
+ ;;
+ esac
+ lt_cv_with_aix_soname=$with_aix_soname],
+ [AC_CACHE_VAL([lt_cv_with_aix_soname],
+ [lt_cv_with_aix_soname=]_LT_WITH_AIX_SONAME_DEFAULT)
+ with_aix_soname=$lt_cv_with_aix_soname])
AC_MSG_RESULT([$with_aix_soname])
if test aix != "$with_aix_soname"; then
# For the AIX way of multilib, we name the shared archive member
@@ -8869,50 +8738,30 @@ LT_OPTION_DEFINE([LT_INIT], [aix-soname=svr4], [_LT_WITH_AIX_SONAME([svr4])])
# _LT_WITH_PIC([MODE])
# --------------------
-# implement the --enable-pic flag, and support the 'pic-only' and 'no-pic'
+# implement the --with-pic flag, and support the 'pic-only' and 'no-pic'
# LT_INIT options.
# MODE is either 'yes' or 'no'. If omitted, it defaults to 'both'.
m4_define([_LT_WITH_PIC],
-[AC_ARG_ENABLE([pic],
- [AS_HELP_STRING([--enable-pic@<:@=PKGS@:>@],
+[AC_ARG_WITH([pic],
+ [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@],
[try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
[lt_p=${PACKAGE-default}
- case $enableval in
- yes|no) pic_mode=$enableval ;;
- *)
- pic_mode=default
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
- for lt_pkg in $enableval; do
- IFS=$lt_save_ifs
- if test "X$lt_pkg" = "X$lt_p"; then
- pic_mode=yes
- fi
- done
- IFS=$lt_save_ifs
- ;;
- esac],
- [dnl Continue to support --with-pic and --without-pic, for backward
- dnl compatibility.
- _AC_ENABLE_IF([with], [pic],
- [lt_p=${PACKAGE-default}
- case $withval in
- yes|no) pic_mode=$withval ;;
- *)
- pic_mode=default
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
- for lt_pkg in $withval; do
- IFS=$lt_save_ifs
- if test "X$lt_pkg" = "X$lt_p"; then
- pic_mode=yes
- fi
- done
- IFS=$lt_save_ifs
- ;;
- esac],
- [pic_mode=m4_default([$1], [default])])]
- )
+ case $withval in
+ yes|no) pic_mode=$withval ;;
+ *)
+ pic_mode=default
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+ for lt_pkg in $withval; do
+ IFS=$lt_save_ifs
+ if test "X$lt_pkg" = "X$lt_p"; then
+ pic_mode=yes
+ fi
+ done
+ IFS=$lt_save_ifs
+ ;;
+ esac],
+ [pic_mode=m4_default([$1], [default])])
_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
])# _LT_WITH_PIC
@@ -8948,7 +8797,7 @@ LT_OPTION_DEFINE([LTDL_INIT], [convenience],
# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*-
#
-# Copyright (C) 2004-2005, 2007-2008, 2011-2019, 2021-2024 Free Software
+# Copyright (C) 2004-2005, 2007-2008, 2011-2015 Free Software
# Foundation, Inc.
# Written by Gary V. Vaughan, 2004
#
@@ -9073,8 +8922,7 @@ m4_define([lt_dict_filter],
# ltversion.m4 -- version numbers -*- Autoconf -*-
#
-# Copyright (C) 2004, 2011-2019, 2021-2024 Free Software Foundation,
-# Inc.
+# Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc.
# Written by Scott James Remnant, 2004
#
# This file is free software; the Free Software Foundation gives
@@ -9083,23 +8931,23 @@ m4_define([lt_dict_filter],
# @configure_input@
-# serial 4441 ltversion.m4
+# serial 4179 ltversion.m4
# This file is part of GNU Libtool
-m4_define([LT_PACKAGE_VERSION], [2.5.4])
-m4_define([LT_PACKAGE_REVISION], [2.5.4])
+m4_define([LT_PACKAGE_VERSION], [2.4.6])
+m4_define([LT_PACKAGE_REVISION], [2.4.6])
AC_DEFUN([LTVERSION_VERSION],
-[macro_version='2.5.4'
-macro_revision='2.5.4'
+[macro_version='2.4.6'
+macro_revision='2.4.6'
_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
_LT_DECL(, macro_revision, 0)
])
# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*-
#
-# Copyright (C) 2004-2005, 2007, 2009, 2011-2019, 2021-2024 Free
-# Software Foundation, Inc.
+# Copyright (C) 2004-2005, 2007, 2009, 2011-2015 Free Software
+# Foundation, Inc.
# Written by Scott James Remnant, 2004.
#
# This file is free software; the Free Software Foundation gives
@@ -9196,8 +9044,8 @@ m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])])
m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])])
m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])])
-# pkg.m4 - Macros to locate and use pkg-config. -*- Autoconf -*-
-# serial 12 (pkg-config-0.29.2)
+# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
+# serial 11 (pkg-config-0.29.1)
dnl Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
dnl Copyright © 2012-2015 Dan Nicholson <dbn.lists@gmail.com>
@@ -9239,13 +9087,13 @@ dnl
dnl See the "Since" comment for each macro you use to see what version
dnl of the macros you require.
m4_defun([PKG_PREREQ],
-[m4_define([PKG_MACROS_VERSION], [0.29.2])
+[m4_define([PKG_MACROS_VERSION], [0.29.1])
m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1,
[m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])])
])dnl PKG_PREREQ
-dnl PKG_PROG_PKG_CONFIG([MIN-VERSION], [ACTION-IF-NOT-FOUND])
-dnl ---------------------------------------------------------
+dnl PKG_PROG_PKG_CONFIG([MIN-VERSION])
+dnl ----------------------------------
dnl Since: 0.16
dnl
dnl Search for the pkg-config tool and set the PKG_CONFIG variable to
@@ -9253,12 +9101,6 @@ dnl first found in the path. Checks that the version of pkg-config found
dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is
dnl used since that's the first version where most current features of
dnl pkg-config existed.
-dnl
-dnl If pkg-config is not found or older than specified, it will result
-dnl in an empty PKG_CONFIG variable. To avoid widespread issues with
-dnl scripts not checking it, ACTION-IF-NOT-FOUND defaults to aborting.
-dnl You can specify [PKG_CONFIG=false] as an action instead, which would
-dnl result in pkg-config tests failing, but no bogus error messages.
AC_DEFUN([PKG_PROG_PKG_CONFIG],
[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$])
@@ -9279,9 +9121,6 @@ if test -n "$PKG_CONFIG"; then
AC_MSG_RESULT([no])
PKG_CONFIG=""
fi
-fi
-if test -z "$PKG_CONFIG"; then
- m4_default([$2], [AC_MSG_ERROR([pkg-config not found])])
fi[]dnl
])dnl PKG_PROG_PKG_CONFIG
@@ -9293,7 +9132,7 @@ dnl Check to see whether a particular set of modules exists. Similar to
dnl PKG_CHECK_MODULES(), but does not set variables or print errors.
dnl
dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
-dnl only at the first occurrence in configure.ac, so if the first place
+dnl only at the first occurence in configure.ac, so if the first place
dnl it's called might be skipped (such as if it is within an "if", you
dnl have to call PKG_CHECK_EXISTS manually
AC_DEFUN([PKG_CHECK_EXISTS],
@@ -9349,7 +9188,7 @@ AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
pkg_failed=no
-AC_MSG_CHECKING([for $2])
+AC_MSG_CHECKING([for $1])
_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
_PKG_CONFIG([$1][_LIBS], [libs], [$2])
@@ -9359,17 +9198,17 @@ and $1[]_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.])
if test $pkg_failed = yes; then
- AC_MSG_RESULT([no])
+ AC_MSG_RESULT([no])
_PKG_SHORT_ERRORS_SUPPORTED
if test $_pkg_short_errors_supported = yes; then
- $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1`
- else
- $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1`
+ $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1`
+ else
+ $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1`
fi
- # Put the nasty error message in config.log where it belongs
- echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
+ # Put the nasty error message in config.log where it belongs
+ echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
- m4_default([$4], [AC_MSG_ERROR(
+ m4_default([$4], [AC_MSG_ERROR(
[Package requirements ($2) were not met:
$$1_PKG_ERRORS
@@ -9380,8 +9219,8 @@ installed software in a non-standard prefix.
_PKG_TEXT])[]dnl
])
elif test $pkg_failed = untried; then
- AC_MSG_RESULT([no])
- m4_default([$4], [AC_MSG_FAILURE(
+ AC_MSG_RESULT([no])
+ m4_default([$4], [AC_MSG_FAILURE(
[The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
@@ -9391,10 +9230,10 @@ _PKG_TEXT
To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl
])
else
- $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
- $1[]_LIBS=$pkg_cv_[]$1[]_LIBS
+ $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
+ $1[]_LIBS=$pkg_cv_[]$1[]_LIBS
AC_MSG_RESULT([yes])
- $3
+ $3
fi[]dnl
])dnl PKG_CHECK_MODULES
@@ -9551,7 +9390,7 @@ AS_IF([test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"],
# AM_CONDITIONAL -*- Autoconf -*-
-# Copyright (C) 1997-2024 Free Software Foundation, Inc.
+# Copyright (C) 1997-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -9582,7 +9421,7 @@ AC_CONFIG_COMMANDS_PRE(
Usually this means the macro was only invoked conditionally.]])
fi])])
-# Copyright (C) 2006-2024 Free Software Foundation, Inc.
+# Copyright (C) 2006-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
diff --git a/acx_nlnetlabs.m4 b/acx_nlnetlabs.m4
index 6a01dc5a4769..5a71c7cce203 100644
--- a/acx_nlnetlabs.m4
+++ b/acx_nlnetlabs.m4
@@ -2,7 +2,12 @@
# Copyright 2009, Wouter Wijngaards, NLnet Labs.
# BSD licensed.
#
-# Version 48
+# Version 51
+# 2025-11-06 Fix ACX_CHECK_NONSTRING_ATTRIBUTE to reject clang, that prints
+# a warning for 'unknown attribute' when nonstring is used.
+# 2025-09-29 add ac_cv_func_malloc_0_nonnull as a cache value for the malloc(0)
+# check by ACX_FUNC_MALLOC.
+# 2025-09-29 add ACX_CHECK_NONSTRING_ATTRIBUTE, AHX_CONFIG_NONSTRING_ATTRIBUTE.
# 2024-01-16 fix to add -l:libssp.a to -lcrypto link check.
# and check for getaddrinfo with only header.
# 2024-01-15 fix to add crypt32 to -lcrypto link check when checking for gdi32.
@@ -71,6 +76,7 @@
# ACX_DEPFLAG - find cc dependency flags.
# ACX_DETERMINE_EXT_FLAGS_UNBOUND - find out which flags enable BSD and POSIX.
# ACX_CHECK_FORMAT_ATTRIBUTE - find cc printf format syntax.
+# ACX_CHECK_NONSTRING_ATTRIBUTE - find cc nonstring attribute syntax.
# ACX_CHECK_UNUSED_ATTRIBUTE - find cc variable unused syntax.
# ACX_CHECK_FLTO - see if cc supports -flto and use it if so.
# ACX_LIBTOOL_C_ONLY - create libtool for C only, improved.
@@ -92,6 +98,7 @@
# ACX_FUNC_IOCTLSOCKET - find ioctlsocket, portably.
# ACX_FUNC_MALLOC - check malloc, define replacement .
# AHX_CONFIG_FORMAT_ATTRIBUTE - config.h text for format.
+# AHX_CONFIG_NONSTRING_ATTRIBUTE - config.h text for nonstring.
# AHX_CONFIG_UNUSED_ATTRIBUTE - config.h text for unused.
# AHX_CONFIG_FSEEKO - define fseeko, ftello fallback.
# AHX_CONFIG_RAND_MAX - define RAND_MAX if needed.
@@ -490,7 +497,7 @@ AC_DEFUN([AHX_CONFIG_FORMAT_ATTRIBUTE],
])
dnl Check how to mark function arguments as unused.
-dnl result in HAVE_ATTR_UNUSED.
+dnl result in HAVE_ATTR_UNUSED.
dnl Make sure you include AHX_CONFIG_UNUSED_ATTRIBUTE also.
AC_DEFUN([ACX_CHECK_UNUSED_ATTRIBUTE],
[AC_REQUIRE([AC_PROG_CC])
@@ -525,6 +532,49 @@ if test $ac_cv_c_unused_attribute = yes; then
fi
])dnl
+dnl Check how to mark function arguments as nonstring.
+dnl result in HAVE_ATTR_NONSTRING.
+dnl Make sure you include AHX_CONFIG_NONSTRING_ATTRIBUTE also.
+AC_DEFUN([ACX_CHECK_NONSTRING_ATTRIBUTE],
+[AC_REQUIRE([AC_PROG_CC])
+AC_REQUIRE([ACX_CHECK_ERROR_FLAGS])
+BAKCFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS $ERRFLAG"
+AC_MSG_CHECKING(whether the C compiler (${CC-cc}) accepts the "nonstring" attribute)
+AC_CACHE_VAL(ac_cv_c_nonstring_attribute,
+[ac_cv_c_nonstring_attribute=no
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h>
+struct test {
+ char __attribute__((nonstring)) s[1];
+};
+]], [[
+ struct test t = { "1" };
+ (void) t;
+]])],[ac_cv_c_nonstring_attribute="yes"],[ac_cv_c_nonstring_attribute="no"])
+CFLAGS="$BAKCFLAGS"
+])
+
+dnl Setup ATTR_NONSTRING config.h parts.
+dnl make sure you call ACX_CHECK_NONSTRING_ATTRIBUTE also.
+AC_DEFUN([AHX_CONFIG_NONSTRING_ATTRIBUTE],
+[
+#if defined(DOXYGEN)
+# define ATTR_NONSTRING(x) x
+#elif defined(__cplusplus)
+# define ATTR_NONSTRING(x) __attribute__((nonstring)) x
+#elif defined(HAVE_ATTR_NONSTRING)
+# define ATTR_NONSTRING(x) __attribute__((nonstring)) x
+#else /* !HAVE_ATTR_NONSTRING */
+# define ATTR_NONSTRING(x) x
+#endif /* !HAVE_ATTR_NONSTRING */
+])
+
+AC_MSG_RESULT($ac_cv_c_nonstring_attribute)
+if test $ac_cv_c_nonstring_attribute = yes; then
+ AC_DEFINE(HAVE_ATTR_NONSTRING, 1, [Whether the C compiler accepts the "nonstring" attribute])
+fi
+])dnl
+
dnl Pre-fun for ACX_LIBTOOL_C_ONLY
AC_DEFUN([ACX_LIBTOOL_C_PRE], [
# skip these tests, we do not need them.
@@ -1190,8 +1240,9 @@ dnl detect malloc and provide malloc compat prototype.
dnl $1: unique name for compat code
AC_DEFUN([ACX_FUNC_MALLOC],
[
- AC_MSG_CHECKING([for GNU libc compatible malloc])
- AC_RUN_IFELSE([AC_LANG_PROGRAM(
+ AC_CACHE_CHECK([for GNU libc compatible malloc],[ac_cv_func_malloc_0_nonnull],
+ [
+ AC_RUN_IFELSE([AC_LANG_PROGRAM(
[[#if defined STDC_HEADERS || defined HAVE_STDLIB_H
#include <stdlib.h>
#else
@@ -1199,14 +1250,16 @@ char *malloc ();
#endif
]], [ if(malloc(0) != 0) return 1;])
],
- [AC_MSG_RESULT([no])
- AC_LIBOBJ(malloc)
- AC_DEFINE_UNQUOTED([malloc], [rpl_malloc_$1], [Define if replacement function should be used.])] ,
- [AC_MSG_RESULT([yes])
- AC_DEFINE([HAVE_MALLOC], 1, [If have GNU libc compatible malloc])],
- [AC_MSG_RESULT([no (crosscompile)])
- AC_LIBOBJ(malloc)
- AC_DEFINE_UNQUOTED([malloc], [rpl_malloc_$1], [Define if replacement function should be used.])] )
+ [ac_cv_func_malloc_0_nonnull=no],
+ [ac_cv_func_malloc_0_nonnull=yes],
+ [ac_cv_func_malloc_0_nonnull="no (crosscompile)"])
+ ])
+ AS_IF([test "$ac_cv_func_malloc_0_nonnull" = yes],
+ [AC_DEFINE([HAVE_MALLOC], 1, [If have GNU libc compatible malloc])],
+ [
+ AC_LIBOBJ(malloc)
+ AC_DEFINE_UNQUOTED([malloc], [rpl_malloc_$1], [Define if replacement function should be used.])
+ ])
])
dnl Define fallback for fseeko and ftello if needed.
diff --git a/cachedb/cachedb.c b/cachedb/cachedb.c
index bdb1754e42d2..fd9f04e3d656 100644
--- a/cachedb/cachedb.c
+++ b/cachedb/cachedb.c
@@ -401,12 +401,9 @@ prep_data(struct module_qstate* qstate, struct sldns_buffer* buf)
FLAGS_GET_RCODE(qstate->return_msg->rep->flags) !=
LDNS_RCODE_YXDOMAIN)
return 0;
- /* We don't store the reply if its TTL is 0 unless serve-expired is
- * enabled. Such a reply won't be reusable and simply be a waste for
- * the backend. It's also compatible with the default behavior of
- * dns_cache_store_msg(). */
- if(qstate->return_msg->rep->ttl == 0 &&
- !qstate->env->cfg->serve_expired)
+ /* We don't store the reply if its TTL is 0. This is probably coming
+ * from upstream and it is not meant to be stored. */
+ if(qstate->return_msg->rep->ttl == 0)
return 0;
/* The EDE is added to the out-list so it is encoded in the cached message */
@@ -460,7 +457,7 @@ good_expiry_and_qinfo(struct module_qstate* qstate, struct sldns_buffer* buf)
* - serve_expired needs to be set
* - if SERVE_EXPIRED_TTL is set make sure that the record is not older
* than that. */
- if((time_t)expiry < *qstate->env->now &&
+ if(TTL_IS_EXPIRED((time_t)expiry, *qstate->env->now) &&
(!qstate->env->cfg->serve_expired ||
(SERVE_EXPIRED_TTL &&
*qstate->env->now - (time_t)expiry > SERVE_EXPIRED_TTL)))
@@ -472,7 +469,8 @@ good_expiry_and_qinfo(struct module_qstate* qstate, struct sldns_buffer* buf)
/* Adjust the TTL of the given RRset by 'subtract'. If 'subtract' is
* negative, set the TTL to 0. */
static void
-packed_rrset_ttl_subtract(struct packed_rrset_data* data, time_t subtract)
+packed_rrset_ttl_subtract(struct packed_rrset_data* data, time_t subtract,
+ time_t timestamp)
{
size_t i;
size_t total = data->count + data->rrsig_count;
@@ -484,13 +482,13 @@ packed_rrset_ttl_subtract(struct packed_rrset_data* data, time_t subtract)
data->rr_ttl[i] -= subtract;
else data->rr_ttl[i] = 0;
}
- data->ttl_add = (subtract < data->ttl_add) ? (data->ttl_add - subtract) : 0;
+ data->ttl_add = timestamp;
}
/* Adjust the TTL of a DNS message and its RRs by 'adjust'. If 'adjust' is
* negative, set the TTLs to 0. */
static void
-adjust_msg_ttl(struct dns_msg* msg, time_t adjust)
+adjust_msg_ttl(struct dns_msg* msg, time_t adjust, time_t timestamp)
{
size_t i;
if(adjust >= 0 && msg->rep->ttl > adjust)
@@ -502,13 +500,13 @@ adjust_msg_ttl(struct dns_msg* msg, time_t adjust)
for(i=0; i<msg->rep->rrset_count; i++) {
packed_rrset_ttl_subtract((struct packed_rrset_data*)msg->
- rep->rrsets[i]->entry.data, adjust);
+ rep->rrsets[i]->entry.data, adjust, timestamp);
}
}
/* Set the TTL of the given RRset to fixed value. */
static void
-packed_rrset_ttl_set(struct packed_rrset_data* data, time_t ttl)
+packed_rrset_ttl_set(struct packed_rrset_data* data, time_t ttl, time_t timestamp)
{
size_t i;
size_t total = data->count + data->rrsig_count;
@@ -516,12 +514,12 @@ packed_rrset_ttl_set(struct packed_rrset_data* data, time_t ttl)
for(i=0; i<total; i++) {
data->rr_ttl[i] = ttl;
}
- data->ttl_add = 0;
+ data->ttl_add = timestamp;
}
/* Set the TTL of a DNS message and its RRs by to a fixed value. */
static void
-set_msg_ttl(struct dns_msg* msg, time_t ttl)
+set_msg_ttl(struct dns_msg* msg, time_t ttl, time_t timestamp)
{
size_t i;
msg->rep->ttl = ttl;
@@ -530,14 +528,14 @@ set_msg_ttl(struct dns_msg* msg, time_t ttl)
for(i=0; i<msg->rep->rrset_count; i++) {
packed_rrset_ttl_set((struct packed_rrset_data*)msg->
- rep->rrsets[i]->entry.data, ttl);
+ rep->rrsets[i]->entry.data, ttl, timestamp);
}
}
/** convert dns message in buffer to return_msg */
static int
parse_data(struct module_qstate* qstate, struct sldns_buffer* buf,
- int* msg_expired)
+ int* msg_expired, time_t* msg_timestamp, time_t* msg_expiry)
{
struct msg_parse* prs;
struct edns_data edns;
@@ -554,6 +552,9 @@ parse_data(struct module_qstate* qstate, struct sldns_buffer* buf,
&timestamp, sizeof(timestamp));
expiry = be64toh(expiry);
timestamp = be64toh(timestamp);
+ log_assert(timestamp <= expiry);
+ *msg_expiry = (time_t)expiry;
+ *msg_timestamp = (time_t)timestamp;
/* parse DNS packet */
regional_free_all(qstate->env->scratch);
@@ -605,11 +606,9 @@ parse_data(struct module_qstate* qstate, struct sldns_buffer* buf,
return 1; /* message from the future (clock skew?) */
}
adjust = *qstate->env->now - (time_t)timestamp;
- if(qstate->return_msg->rep->ttl < adjust) {
+ if(TTL_IS_EXPIRED((time_t)expiry, *qstate->env->now)) {
verbose(VERB_ALGO, "cachedb msg expired");
*msg_expired = 1;
- /* If serve-expired is enabled, we still use an expired message
- * setting the TTL to 0. */
if(!qstate->env->cfg->serve_expired ||
(FLAGS_GET_RCODE(qstate->return_msg->rep->flags)
!= LDNS_RCODE_NOERROR &&
@@ -618,23 +617,21 @@ parse_data(struct module_qstate* qstate, struct sldns_buffer* buf,
FLAGS_GET_RCODE(qstate->return_msg->rep->flags)
!= LDNS_RCODE_YXDOMAIN))
return 0; /* message expired */
- else
- adjust = -1;
+ /* If serve-expired is enabled, we still use an expired message.
+ * Set the TTL to 0 now and it will be handled specially later
+ * when we need to store it internally. */
+ adjust = -1;
}
+ adjust_msg_ttl(qstate->return_msg, adjust, timestamp);
verbose(VERB_ALGO, "cachedb msg adjusted down by %d", (int)adjust);
- adjust_msg_ttl(qstate->return_msg, adjust);
if(qstate->env->cfg->aggressive_nsec) {
limit_nsec_ttl(qstate->return_msg);
}
/* Similar to the unbound worker, if serve-expired is enabled and
* the msg would be considered to be expired, mark the state so a
- * refetch will be scheduled. The comparison between 'expiry' and
- * 'now' should be redundant given how these values were calculated,
- * but we check it just in case as does good_expiry_and_qinfo(). */
- if(qstate->env->cfg->serve_expired &&
- !qstate->env->cfg->serve_expired_client_timeout &&
- (adjust == -1 || (time_t)expiry < *qstate->env->now)) {
+ * refetch will be scheduled. */
+ if(*msg_expired && !qstate->env->cfg->serve_expired_client_timeout) {
qstate->need_refetch = 1;
}
@@ -647,7 +644,7 @@ parse_data(struct module_qstate* qstate, struct sldns_buffer* buf,
*/
static int
cachedb_extcache_lookup(struct module_qstate* qstate, struct cachedb_env* ie,
- int* msg_expired)
+ int* msg_expired, time_t* msg_timestamp, time_t* msg_expiry)
{
char key[(CACHEDB_HASHSIZE/8)*2+1];
calc_hash(&qstate->qinfo, qstate->env, key, sizeof(key));
@@ -664,7 +661,8 @@ cachedb_extcache_lookup(struct module_qstate* qstate, struct cachedb_env* ie,
}
/* parse dns message into return_msg */
- if( !parse_data(qstate, qstate->env->scratch_buffer, msg_expired) ) {
+ if( !parse_data(qstate, qstate->env->scratch_buffer, msg_expired,
+ msg_timestamp, msg_expiry) ) {
return 0;
}
return 1;
@@ -736,24 +734,30 @@ cachedb_intcache_lookup(struct module_qstate* qstate, struct cachedb_env* cde)
* Store query into the internal cache of unbound.
*/
static void
-cachedb_intcache_store(struct module_qstate* qstate, int msg_expired)
+cachedb_intcache_store(struct module_qstate* qstate, int msg_expired,
+ time_t msg_timestamp, time_t msg_expiry)
{
uint32_t store_flags = qstate->query_flags;
int serve_expired = qstate->env->cfg->serve_expired;
-
- if(qstate->env->cfg->serve_expired)
- store_flags |= DNSCACHE_STORE_ZEROTTL;
if(!qstate->return_msg)
return;
if(serve_expired && msg_expired) {
- /* Set TTLs to a value such that value + *env->now is
- * going to be now-3 seconds. Making it expired
- * in the cache. */
- set_msg_ttl(qstate->return_msg, (time_t)-3);
+ time_t original_ttl = msg_expiry - msg_timestamp;
+ store_flags |= DNSCACHE_STORE_EXPIRED_MSG_CACHEDB;
+ /* Pass the original TTL of the expired message and signal with
+ * the DNSCACHE_STORE_EXPIRED_MSG_CACHEDB flag that
+ * dns_cache_store_msg() needs to set absolute expired TTLs
+ * based on the original message TTL.
+ * Results as expired message in the cache */
+ set_msg_ttl(qstate->return_msg, original_ttl, 0);
+ verbose(VERB_ALGO, "cachedb expired msg set to be expired now "
+ "(original ttl: %d)", (int)original_ttl);
/* The expired entry does not get checked by the validator
* and we need a validation value for it. */
+ /* By setting this to unchecked, bogus data is not returned
+ * as non-bogus. */
if(qstate->env->cfg->cachedb_check_when_serve_expired)
- qstate->return_msg->rep->security = sec_status_insecure;
+ qstate->return_msg->rep->security = sec_status_unchecked;
}
(void)dns_cache_store(qstate->env, &qstate->qinfo,
qstate->return_msg->rep, 0, qstate->prefetch_leeway, 0,
@@ -767,12 +771,14 @@ cachedb_intcache_store(struct module_qstate* qstate, int msg_expired)
* of cache. */
return;
}
- /* set TTLs to zero again */
- adjust_msg_ttl(qstate->return_msg, -1);
/* Send serve expired responses based on the cachedb
* returned message, that was just stored in the cache.
* It can then continue to work on this query. */
mesh_respond_serve_expired(qstate->mesh_info);
+ /* set TTLs as expired for this return_msg in case it is used
+ * later on */
+ set_msg_ttl(qstate->return_msg,
+ EXPIRED_REPLY_TTL_CALC(msg_expiry, msg_timestamp), 0);
}
}
@@ -790,6 +796,7 @@ cachedb_handle_query(struct module_qstate* qstate,
struct cachedb_env* ie, int id)
{
int msg_expired = 0;
+ time_t msg_timestamp, msg_expiry;
qstate->is_cachedb_answer = 0;
/* check if we are enabled, and skip if so */
if(!ie->enabled) {
@@ -798,8 +805,11 @@ cachedb_handle_query(struct module_qstate* qstate,
return;
}
- if(qstate->blacklist || qstate->no_cache_lookup) {
- /* cache is blacklisted or we are instructed from edns to not look */
+ if(qstate->blacklist || qstate->no_cache_lookup
+ || iter_stub_fwd_no_cache(qstate, &qstate->qinfo, NULL, NULL,
+ NULL, 0)) {
+ /* cache is blacklisted or we are instructed from edns to not
+ * look or a forwarder/stub forbids it */
/* pass request to next module */
qstate->ext_state[id] = module_wait_module;
return;
@@ -824,13 +834,15 @@ cachedb_handle_query(struct module_qstate* qstate,
}
/* ask backend cache to see if we have data */
- if(cachedb_extcache_lookup(qstate, ie, &msg_expired)) {
+ if(cachedb_extcache_lookup(qstate, ie, &msg_expired, &msg_timestamp,
+ &msg_expiry)) {
if(verbosity >= VERB_ALGO)
log_dns_msg(ie->backend->name,
&qstate->return_msg->qinfo,
qstate->return_msg->rep);
/* store this result in internal cache */
- cachedb_intcache_store(qstate, msg_expired);
+ cachedb_intcache_store(qstate,
+ msg_expired, msg_timestamp, msg_expiry);
/* In case we have expired data but there is a client timer for expired
* answers, pass execution to next module in order to try updating the
* data first.
@@ -850,6 +862,8 @@ cachedb_handle_query(struct module_qstate* qstate,
qstate->ext_state[id] = module_wait_module;
return;
}
+ /* No 0TTL answers escaping from external cache. */
+ log_assert(qstate->return_msg->rep->ttl > 0);
qstate->is_cachedb_answer = 1;
/* we are done with the query */
qstate->ext_state[id] = module_finished;
@@ -883,7 +897,9 @@ cachedb_handle_response(struct module_qstate* qstate,
{
qstate->is_cachedb_answer = 0;
/* check if we are not enabled or instructed to not cache, and skip */
- if(!ie->enabled || qstate->no_cache_store) {
+ if(!ie->enabled || qstate->no_cache_store
+ || iter_stub_fwd_no_cache(qstate, &qstate->qinfo, NULL, NULL,
+ NULL, 0)) {
/* we are done with the query */
qstate->ext_state[id] = module_finished;
return;
diff --git a/cachedb/redis.c b/cachedb/redis.c
index 9383f1c8576c..902497355d28 100644
--- a/cachedb/redis.c
+++ b/cachedb/redis.c
@@ -143,6 +143,12 @@ redis_connect(const char* host, int port, const char* path,
{
struct timeval now_val;
redisContext* ctx;
+#ifdef THREADS_DISABLED
+ /* Fix attribute unused warning.
+ * wait_lock is only used with lock_basic_* functions that are nop'ed
+ * when compiled without thread support. */
+ (void)wait_lock;
+#endif /* THREADS_DISABLED */
/* See if the redis server is down, and reconnect has to wait. */
if(*reconnect_attempts > REDIS_RECONNECT_ATTEMPT_LIMIT) {
diff --git a/compat/arc4random.c b/compat/arc4random.c
index 486ab89c68d8..50d87beac98b 100644
--- a/compat/arc4random.c
+++ b/compat/arc4random.c
@@ -38,6 +38,9 @@
#ifndef UB_ON_WINDOWS
#include <sys/mman.h>
#endif
+#ifdef __QNX__
+#include "util/log.h"
+#endif /* __QNX__ */
#define KEYSTREAM_ONLY
#include "chacha_private.h"
@@ -187,7 +190,11 @@ _rs_stir(void)
if(errno != ENOSYS ||
fallback_getentropy_urandom(rnd, sizeof rnd) == -1) {
#ifdef SIGKILL
+#ifndef __QNX__
raise(SIGKILL);
+#else /* !__QNX__ */
+ fatal_exit("failed to getentropy");
+#endif /* __QNX__ */
#else
exit(9); /* windows */
#endif
diff --git a/compat/chacha_private.h b/compat/chacha_private.h
index 192258c7f491..ce4471c8a928 100644
--- a/compat/chacha_private.h
+++ b/compat/chacha_private.h
@@ -48,8 +48,8 @@ typedef struct
a = PLUS(a,b); d = ROTATE(XOR(d,a), 8); \
c = PLUS(c,d); b = ROTATE(XOR(b,c), 7);
-static const char sigma[16] = "expand 32-byte k";
-static const char tau[16] = "expand 16-byte k";
+static const char ATTR_NONSTRING(sigma[16]) = "expand 32-byte k";
+static const char ATTR_NONSTRING(tau[16]) = "expand 16-byte k";
static void
chacha_keysetup(chacha_ctx *x,const u8 *k,u32 kbits,u32 ATTR_UNUSED(ivbits))
diff --git a/compat/getentropy_linux.c b/compat/getentropy_linux.c
index 82cdb78b8047..1a91c99ed50a 100644
--- a/compat/getentropy_linux.c
+++ b/compat/getentropy_linux.c
@@ -29,7 +29,9 @@
#include <sys/param.h>
#include <sys/ioctl.h>
#include <sys/resource.h>
+#ifndef __QNX__
#include <sys/syscall.h>
+#endif /* !__QNX__ */
#ifdef SYS__sysctl
#include <linux/sysctl.h>
#endif
@@ -42,7 +44,9 @@
#include <stdlib.h>
#include <stdint.h>
#include <stdio.h>
+#ifndef __QNX__
#include <link.h>
+#endif /* __QNX__ */
#include <termios.h>
#include <fcntl.h>
#include <signal.h>
@@ -60,12 +64,14 @@
#define SHA512_Final(r, c) sha512_digest(c, SHA512_DIGEST_SIZE, r)
#endif
+#ifndef __QNX__
#include <linux/types.h>
#include <linux/random.h>
#ifdef HAVE_GETAUXVAL
#include <sys/auxv.h>
#endif
#include <sys/vfs.h>
+#endif /* !__QNX__ */
#ifndef MAP_ANON
#define MAP_ANON MAP_ANONYMOUS
#endif
@@ -94,8 +100,10 @@ static int getentropy_urandom(void *buf, size_t len);
#ifdef SYS__sysctl
static int getentropy_sysctl(void *buf, size_t len);
#endif
+#ifndef __QNX__
static int getentropy_fallback(void *buf, size_t len);
static int getentropy_phdr(struct dl_phdr_info *info, size_t size, void *data);
+#endif /* !__QNX__ */
int
getentropy(void *buf, size_t len)
@@ -178,6 +186,7 @@ getentropy(void *buf, size_t len)
* sysctl ABI, or consider providing a new failsafe API which
* works in a chroot or when file descriptors are exhausted.
*/
+#ifndef __QNX__
#undef FAIL_INSTEAD_OF_TRYING_FALLBACK
#ifdef FAIL_INSTEAD_OF_TRYING_FALLBACK
raise(SIGKILL);
@@ -185,6 +194,9 @@ getentropy(void *buf, size_t len)
ret = getentropy_fallback(buf, len);
if (ret != -1)
return (ret);
+#else /* !__QNX__ */
+ fatal_exit("failed to read from /dev/urandom");
+#endif /* __QNX__ */
errno = EIO;
return (ret);
@@ -214,7 +226,11 @@ getentropy_urandom(void *buf, size_t len)
{
struct stat st;
size_t i;
+#ifndef __QNX__
int fd, cnt, flags;
+#else /* !__QNX__ */
+ int fd, flags;
+#endif /* __QNX__ */
int save_errno = errno;
start:
@@ -241,10 +257,12 @@ start:
close(fd);
goto nodevrandom;
}
+#ifndef __QNX__
if (ioctl(fd, RNDGETENTCNT, &cnt) == -1) {
close(fd);
goto nodevrandom;
}
+#endif /* !__QNX__ */
for (i = 0; i < len; ) {
size_t wanted = len - i;
ssize_t ret = read(fd, (char *)buf + i, wanted);
@@ -265,6 +283,7 @@ nodevrandom:
return (-1);
}
+#ifndef __QNX__
#ifdef SYS__sysctl
static int
getentropy_sysctl(void *buf, size_t len)
@@ -537,3 +556,4 @@ getentropy_fallback(void *buf, size_t len)
errno = save_errno;
return (0); /* satisfied */
}
+#endif /* !__QNX__ */
diff --git a/compat/gmtime_r.c b/compat/gmtime_r.c
index 19eb637e3c9b..2b567b4ab14d 100644
--- a/compat/gmtime_r.c
+++ b/compat/gmtime_r.c
@@ -42,10 +42,7 @@ static const int year_lengths[2] = {
};
static void
-timesub(timep, offset, tmp)
-const time_t * const timep;
-const long offset;
-struct tm * const tmp;
+timesub(const time_t * const timep, const long offset, struct tm * const tmp)
{
long days;
long rem;
diff --git a/config.h.in b/config.h.in
index 4f89bfb21614..73548599103f 100644
--- a/config.h.in
+++ b/config.h.in
@@ -48,13 +48,13 @@
internal symbols */
#undef EXPORT_ALL_SYMBOLS
-/* Define to 1 if you have the 'accept4' function. */
+/* Define to 1 if you have the `accept4' function. */
#undef HAVE_ACCEPT4
-/* Define to 1 if you have the 'arc4random' function. */
+/* Define to 1 if you have the `arc4random' function. */
#undef HAVE_ARC4RANDOM
-/* Define to 1 if you have the 'arc4random_uniform' function. */
+/* Define to 1 if you have the `arc4random_uniform' function. */
#undef HAVE_ARC4RANDOM_UNIFORM
/* Define to 1 if you have the <arpa/inet.h> header file. */
@@ -66,6 +66,9 @@
/* Whether the C compiler accepts the "format" attribute */
#undef HAVE_ATTR_FORMAT
+/* Whether the C compiler accepts the "nonstring" attribute */
+#undef HAVE_ATTR_NONSTRING
+
/* Whether the C compiler accepts the "noreturn" attribute */
#undef HAVE_ATTR_NORETURN
@@ -78,7 +81,7 @@
/* If we have be64toh */
#undef HAVE_BE64TOH
-/* Define to 1 if you have the 'BIO_set_callback_ex' function. */
+/* Define to 1 if you have the `BIO_set_callback_ex' function. */
#undef HAVE_BIO_SET_CALLBACK_EX
/* Define to 1 if you have the <bsd/stdlib.h> header file. */
@@ -87,245 +90,245 @@
/* Define to 1 if you have the <bsd/string.h> header file. */
#undef HAVE_BSD_STRING_H
-/* Define to 1 if you have the 'chown' function. */
+/* Define to 1 if you have the `chown' function. */
#undef HAVE_CHOWN
-/* Define to 1 if you have the 'chroot' function. */
+/* Define to 1 if you have the `chroot' function. */
#undef HAVE_CHROOT
-/* Define to 1 if you have the 'CRYPTO_cleanup_all_ex_data' function. */
+/* Define to 1 if you have the `CRYPTO_cleanup_all_ex_data' function. */
#undef HAVE_CRYPTO_CLEANUP_ALL_EX_DATA
-/* Define to 1 if you have the 'CRYPTO_THREADID_set_callback' function. */
+/* Define to 1 if you have the `CRYPTO_THREADID_set_callback' function. */
#undef HAVE_CRYPTO_THREADID_SET_CALLBACK
-/* Define to 1 if you have the 'ctime_r' function. */
+/* Define to 1 if you have the `ctime_r' function. */
#undef HAVE_CTIME_R
-/* Define to 1 if you have the 'daemon' function. */
+/* Define to 1 if you have the `daemon' function. */
#undef HAVE_DAEMON
-/* Define to 1 if you have the declaration of 'arc4random', and to 0 if you
+/* Define to 1 if you have the declaration of `arc4random', and to 0 if you
don't. */
#undef HAVE_DECL_ARC4RANDOM
-/* Define to 1 if you have the declaration of 'arc4random_uniform', and to 0
+/* Define to 1 if you have the declaration of `arc4random_uniform', and to 0
if you don't. */
#undef HAVE_DECL_ARC4RANDOM_UNIFORM
-/* Define to 1 if you have the declaration of 'evsignal_assign', and to 0 if
+/* Define to 1 if you have the declaration of `evsignal_assign', and to 0 if
you don't. */
#undef HAVE_DECL_EVSIGNAL_ASSIGN
-/* Define to 1 if you have the declaration of 'inet_ntop', and to 0 if you
+/* Define to 1 if you have the declaration of `inet_ntop', and to 0 if you
don't. */
#undef HAVE_DECL_INET_NTOP
-/* Define to 1 if you have the declaration of 'inet_pton', and to 0 if you
+/* Define to 1 if you have the declaration of `inet_pton', and to 0 if you
don't. */
#undef HAVE_DECL_INET_PTON
-/* Define to 1 if you have the declaration of 'nghttp2_session_server_new',
+/* Define to 1 if you have the declaration of `nghttp2_session_server_new',
and to 0 if you don't. */
#undef HAVE_DECL_NGHTTP2_SESSION_SERVER_NEW
-/* Define to 1 if you have the declaration of 'ngtcp2_conn_server_new', and to
+/* Define to 1 if you have the declaration of `ngtcp2_conn_server_new', and to
0 if you don't. */
#undef HAVE_DECL_NGTCP2_CONN_SERVER_NEW
-/* Define to 1 if you have the declaration of 'ngtcp2_crypto_encrypt_cb', and
+/* Define to 1 if you have the declaration of `ngtcp2_crypto_encrypt_cb', and
to 0 if you don't. */
#undef HAVE_DECL_NGTCP2_CRYPTO_ENCRYPT_CB
-/* Define to 1 if you have the declaration of 'NID_ED25519', and to 0 if you
+/* Define to 1 if you have the declaration of `NID_ED25519', and to 0 if you
don't. */
#undef HAVE_DECL_NID_ED25519
-/* Define to 1 if you have the declaration of 'NID_ED448', and to 0 if you
+/* Define to 1 if you have the declaration of `NID_ED448', and to 0 if you
don't. */
#undef HAVE_DECL_NID_ED448
-/* Define to 1 if you have the declaration of 'NID_secp384r1', and to 0 if you
+/* Define to 1 if you have the declaration of `NID_secp384r1', and to 0 if you
don't. */
#undef HAVE_DECL_NID_SECP384R1
-/* Define to 1 if you have the declaration of 'NID_X9_62_prime256v1', and to 0
+/* Define to 1 if you have the declaration of `NID_X9_62_prime256v1', and to 0
if you don't. */
#undef HAVE_DECL_NID_X9_62_PRIME256V1
-/* Define to 1 if you have the declaration of 'reallocarray', and to 0 if you
+/* Define to 1 if you have the declaration of `reallocarray', and to 0 if you
don't. */
#undef HAVE_DECL_REALLOCARRAY
-/* Define to 1 if you have the declaration of 'redisConnect', and to 0 if you
+/* Define to 1 if you have the declaration of `redisConnect', and to 0 if you
don't. */
#undef HAVE_DECL_REDISCONNECT
-/* Define to 1 if you have the declaration of 'sk_SSL_COMP_pop_free', and to 0
+/* Define to 1 if you have the declaration of `sk_SSL_COMP_pop_free', and to 0
if you don't. */
#undef HAVE_DECL_SK_SSL_COMP_POP_FREE
/* Define to 1 if you have the declaration of
- 'SSL_COMP_get_compression_methods', and to 0 if you don't. */
+ `SSL_COMP_get_compression_methods', and to 0 if you don't. */
#undef HAVE_DECL_SSL_COMP_GET_COMPRESSION_METHODS
-/* Define to 1 if you have the declaration of 'SSL_CTX_set_ecdh_auto', and to
+/* Define to 1 if you have the declaration of `SSL_CTX_set_ecdh_auto', and to
0 if you don't. */
#undef HAVE_DECL_SSL_CTX_SET_ECDH_AUTO
-/* Define to 1 if you have the declaration of 'SSL_CTX_set_tmp_ecdh', and to 0
+/* Define to 1 if you have the declaration of `SSL_CTX_set_tmp_ecdh', and to 0
if you don't. */
#undef HAVE_DECL_SSL_CTX_SET_TMP_ECDH
-/* Define to 1 if you have the declaration of 'strlcat', and to 0 if you
+/* Define to 1 if you have the declaration of `strlcat', and to 0 if you
don't. */
#undef HAVE_DECL_STRLCAT
-/* Define to 1 if you have the declaration of 'strlcpy', and to 0 if you
+/* Define to 1 if you have the declaration of `strlcpy', and to 0 if you
don't. */
#undef HAVE_DECL_STRLCPY
-/* Define to 1 if you have the declaration of 'XML_StopParser', and to 0 if
+/* Define to 1 if you have the declaration of `XML_StopParser', and to 0 if
you don't. */
#undef HAVE_DECL_XML_STOPPARSER
/* Define to 1 if you have the <dlfcn.h> header file. */
#undef HAVE_DLFCN_H
-/* Define to 1 if you have the 'DSA_SIG_set0' function. */
+/* Define to 1 if you have the `DSA_SIG_set0' function. */
#undef HAVE_DSA_SIG_SET0
/* Define to 1 if you have the <endian.h> header file. */
#undef HAVE_ENDIAN_H
-/* Define to 1 if you have the 'endprotoent' function. */
+/* Define to 1 if you have the `endprotoent' function. */
#undef HAVE_ENDPROTOENT
-/* Define to 1 if you have the 'endpwent' function. */
+/* Define to 1 if you have the `endpwent' function. */
#undef HAVE_ENDPWENT
-/* Define to 1 if you have the 'endservent' function. */
+/* Define to 1 if you have the `endservent' function. */
#undef HAVE_ENDSERVENT
-/* Define to 1 if you have the 'ENGINE_cleanup' function. */
+/* Define to 1 if you have the `ENGINE_cleanup' function. */
#undef HAVE_ENGINE_CLEANUP
-/* Define to 1 if you have the 'ERR_free_strings' function. */
+/* Define to 1 if you have the `ERR_free_strings' function. */
#undef HAVE_ERR_FREE_STRINGS
-/* Define to 1 if you have the 'ERR_load_crypto_strings' function. */
+/* Define to 1 if you have the `ERR_load_crypto_strings' function. */
#undef HAVE_ERR_LOAD_CRYPTO_STRINGS
-/* Define to 1 if you have the 'event_assign' function. */
+/* Define to 1 if you have the `event_assign' function. */
#undef HAVE_EVENT_ASSIGN
-/* Define to 1 if you have the 'event_base_free' function. */
+/* Define to 1 if you have the `event_base_free' function. */
#undef HAVE_EVENT_BASE_FREE
-/* Define to 1 if you have the 'event_base_get_method' function. */
+/* Define to 1 if you have the `event_base_get_method' function. */
#undef HAVE_EVENT_BASE_GET_METHOD
-/* Define to 1 if you have the 'event_base_new' function. */
+/* Define to 1 if you have the `event_base_new' function. */
#undef HAVE_EVENT_BASE_NEW
-/* Define to 1 if you have the 'event_base_once' function. */
+/* Define to 1 if you have the `event_base_once' function. */
#undef HAVE_EVENT_BASE_ONCE
/* Define to 1 if you have the <event.h> header file. */
#undef HAVE_EVENT_H
-/* Define to 1 if you have the 'EVP_aes_256_cbc' function. */
+/* Define to 1 if you have the `EVP_aes_256_cbc' function. */
#undef HAVE_EVP_AES_256_CBC
-/* Define to 1 if you have the 'EVP_cleanup' function. */
+/* Define to 1 if you have the `EVP_cleanup' function. */
#undef HAVE_EVP_CLEANUP
-/* Define to 1 if you have the 'EVP_default_properties_is_fips_enabled'
+/* Define to 1 if you have the `EVP_default_properties_is_fips_enabled'
function. */
#undef HAVE_EVP_DEFAULT_PROPERTIES_IS_FIPS_ENABLED
-/* Define to 1 if you have the 'EVP_DigestVerify' function. */
+/* Define to 1 if you have the `EVP_DigestVerify' function. */
#undef HAVE_EVP_DIGESTVERIFY
-/* Define to 1 if you have the 'EVP_dss1' function. */
+/* Define to 1 if you have the `EVP_dss1' function. */
#undef HAVE_EVP_DSS1
-/* Define to 1 if you have the 'EVP_EncryptInit_ex' function. */
+/* Define to 1 if you have the `EVP_EncryptInit_ex' function. */
#undef HAVE_EVP_ENCRYPTINIT_EX
-/* Define to 1 if you have the 'EVP_MAC_CTX_set_params' function. */
+/* Define to 1 if you have the `EVP_MAC_CTX_set_params' function. */
#undef HAVE_EVP_MAC_CTX_SET_PARAMS
-/* Define to 1 if you have the 'EVP_MD_CTX_new' function. */
+/* Define to 1 if you have the `EVP_MD_CTX_new' function. */
#undef HAVE_EVP_MD_CTX_NEW
-/* Define to 1 if you have the 'EVP_sha1' function. */
+/* Define to 1 if you have the `EVP_sha1' function. */
#undef HAVE_EVP_SHA1
-/* Define to 1 if you have the 'EVP_sha256' function. */
+/* Define to 1 if you have the `EVP_sha256' function. */
#undef HAVE_EVP_SHA256
-/* Define to 1 if you have the 'EVP_sha512' function. */
+/* Define to 1 if you have the `EVP_sha512' function. */
#undef HAVE_EVP_SHA512
-/* Define to 1 if you have the 'ev_default_loop' function. */
+/* Define to 1 if you have the `ev_default_loop' function. */
#undef HAVE_EV_DEFAULT_LOOP
-/* Define to 1 if you have the 'ev_loop' function. */
+/* Define to 1 if you have the `ev_loop' function. */
#undef HAVE_EV_LOOP
/* Define to 1 if you have the <expat.h> header file. */
#undef HAVE_EXPAT_H
-/* Define to 1 if you have the 'explicit_bzero' function. */
+/* Define to 1 if you have the `explicit_bzero' function. */
#undef HAVE_EXPLICIT_BZERO
-/* Define to 1 if you have the 'fcntl' function. */
+/* Define to 1 if you have the `fcntl' function. */
#undef HAVE_FCNTL
-/* Define to 1 if you have the 'FIPS_mode' function. */
+/* Define to 1 if you have the `FIPS_mode' function. */
#undef HAVE_FIPS_MODE
-/* Define to 1 if you have the 'fork' function. */
+/* Define to 1 if you have the `fork' function. */
#undef HAVE_FORK
-/* Define to 1 if fseeko (and ftello) are declared in stdio.h. */
+/* Define to 1 if fseeko (and presumably ftello) exists and is declared. */
#undef HAVE_FSEEKO
-/* Define to 1 if you have the 'fsync' function. */
+/* Define to 1 if you have the `fsync' function. */
#undef HAVE_FSYNC
/* Whether getaddrinfo is available */
#undef HAVE_GETADDRINFO
-/* Define to 1 if you have the 'getauxval' function. */
+/* Define to 1 if you have the `getauxval' function. */
#undef HAVE_GETAUXVAL
-/* Define to 1 if you have the 'getentropy' function. */
+/* Define to 1 if you have the `getentropy' function. */
#undef HAVE_GETENTROPY
-/* Define to 1 if you have the 'getifaddrs' function. */
+/* Define to 1 if you have the `getifaddrs' function. */
#undef HAVE_GETIFADDRS
/* Define to 1 if you have the <getopt.h> header file. */
#undef HAVE_GETOPT_H
-/* Define to 1 if you have the 'getpwnam' function. */
+/* Define to 1 if you have the `getpwnam' function. */
#undef HAVE_GETPWNAM
-/* Define to 1 if you have the 'getrlimit' function. */
+/* Define to 1 if you have the `getrlimit' function. */
#undef HAVE_GETRLIMIT
-/* Define to 1 if you have the 'gettid' function. */
+/* Define to 1 if you have the `gettid' function. */
#undef HAVE_GETTID
-/* Define to 1 if you have the 'glob' function. */
+/* Define to 1 if you have the `glob' function. */
#undef HAVE_GLOB
/* Define to 1 if you have the <glob.h> header file. */
#undef HAVE_GLOB_H
-/* Define to 1 if you have the 'gmtime_r' function. */
+/* Define to 1 if you have the `gmtime_r' function. */
#undef HAVE_GMTIME_R
/* Define to 1 if you have the <grp.h> header file. */
@@ -334,7 +337,7 @@
/* Define to 1 if you have the <hiredis/hiredis.h> header file. */
#undef HAVE_HIREDIS_HIREDIS_H
-/* Define to 1 if you have the 'HMAC_Init_ex' function. */
+/* Define to 1 if you have the `HMAC_Init_ex' function. */
#undef HAVE_HMAC_INIT_EX
/* If we have htobe64 */
@@ -343,19 +346,19 @@
/* Define to 1 if you have the <ifaddrs.h> header file. */
#undef HAVE_IFADDRS_H
-/* Define to 1 if you have the 'if_nametoindex' function. */
+/* Define to 1 if you have the `if_nametoindex' function. */
#undef HAVE_IF_NAMETOINDEX
-/* Define to 1 if you have the 'inet_aton' function. */
+/* Define to 1 if you have the `inet_aton' function. */
#undef HAVE_INET_ATON
-/* Define to 1 if you have the 'inet_ntop' function. */
+/* Define to 1 if you have the `inet_ntop' function. */
#undef HAVE_INET_NTOP
-/* Define to 1 if you have the 'inet_pton' function. */
+/* Define to 1 if you have the `inet_pton' function. */
#undef HAVE_INET_PTON
-/* Define to 1 if you have the 'initgroups' function. */
+/* Define to 1 if you have the `initgroups' function. */
#undef HAVE_INITGROUPS
/* Define to 1 if you have the <inttypes.h> header file. */
@@ -367,10 +370,10 @@
/* Define to 1 if you have the <iphlpapi.h> header file. */
#undef HAVE_IPHLPAPI_H
-/* Define to 1 if you have the 'isblank' function. */
+/* Define to 1 if you have the `isblank' function. */
#undef HAVE_ISBLANK
-/* Define to 1 if you have the 'kill' function. */
+/* Define to 1 if you have the `kill' function. */
#undef HAVE_KILL
/* Use portable libbsd functions */
@@ -388,7 +391,7 @@
/* Define to 1 if you have the <linux/net_tstamp.h> header file. */
#undef HAVE_LINUX_NET_TSTAMP_H
-/* Define to 1 if you have the 'localtime_r' function. */
+/* Define to 1 if you have the `localtime_r' function. */
#undef HAVE_LOCALTIME_R
/* Define to 1 if you have the <login_cap.h> header file. */
@@ -397,7 +400,7 @@
/* If have GNU libc compatible malloc */
#undef HAVE_MALLOC
-/* Define to 1 if you have the 'memmove' function. */
+/* Define to 1 if you have the `memmove' function. */
#undef HAVE_MEMMOVE
/* Define to 1 if you have the <minix/config.h> header file. */
@@ -439,52 +442,52 @@
/* Define this to use ngtcp2. */
#undef HAVE_NGTCP2
-/* Define to 1 if you have the 'ngtcp2_ccerr_default' function. */
+/* Define to 1 if you have the `ngtcp2_ccerr_default' function. */
#undef HAVE_NGTCP2_CCERR_DEFAULT
-/* Define to 1 if you have the 'ngtcp2_conn_encode_0rtt_transport_params'
+/* Define to 1 if you have the `ngtcp2_conn_encode_0rtt_transport_params'
function. */
#undef HAVE_NGTCP2_CONN_ENCODE_0RTT_TRANSPORT_PARAMS
-/* Define to 1 if you have the 'ngtcp2_conn_get_max_local_streams_uni'
+/* Define to 1 if you have the `ngtcp2_conn_get_max_local_streams_uni'
function. */
#undef HAVE_NGTCP2_CONN_GET_MAX_LOCAL_STREAMS_UNI
-/* Define to 1 if you have the 'ngtcp2_conn_get_num_scid' function. */
+/* Define to 1 if you have the `ngtcp2_conn_get_num_scid' function. */
#undef HAVE_NGTCP2_CONN_GET_NUM_SCID
-/* Define to 1 if you have the 'ngtcp2_conn_in_closing_period' function. */
+/* Define to 1 if you have the `ngtcp2_conn_in_closing_period' function. */
#undef HAVE_NGTCP2_CONN_IN_CLOSING_PERIOD
-/* Define to 1 if you have the 'ngtcp2_conn_in_draining_period' function. */
+/* Define to 1 if you have the `ngtcp2_conn_in_draining_period' function. */
#undef HAVE_NGTCP2_CONN_IN_DRAINING_PERIOD
/* Define if ngtcp2_conn_shutdown_stream has 4 arguments. */
#undef HAVE_NGTCP2_CONN_SHUTDOWN_STREAM4
-/* Define to 1 if you have the 'ngtcp2_conn_tls_early_data_rejected' function.
+/* Define to 1 if you have the `ngtcp2_conn_tls_early_data_rejected' function.
*/
#undef HAVE_NGTCP2_CONN_TLS_EARLY_DATA_REJECTED
-/* Define to 1 if you have the 'ngtcp2_crypto_encrypt_cb' function. */
+/* Define to 1 if you have the `ngtcp2_crypto_encrypt_cb' function. */
#undef HAVE_NGTCP2_CRYPTO_ENCRYPT_CB
/* Define to 1 if you have the
- 'ngtcp2_crypto_quictls_configure_client_context' function. */
+ `ngtcp2_crypto_quictls_configure_client_context' function. */
#undef HAVE_NGTCP2_CRYPTO_QUICTLS_CONFIGURE_CLIENT_CONTEXT
/* Define to 1 if you have the
- 'ngtcp2_crypto_quictls_configure_server_context' function. */
+ `ngtcp2_crypto_quictls_configure_server_context' function. */
#undef HAVE_NGTCP2_CRYPTO_QUICTLS_CONFIGURE_SERVER_CONTEXT
/* Define to 1 if you have the
- 'ngtcp2_crypto_quictls_from_ossl_encryption_level' function. */
+ `ngtcp2_crypto_quictls_from_ossl_encryption_level' function. */
#undef HAVE_NGTCP2_CRYPTO_QUICTLS_FROM_OSSL_ENCRYPTION_LEVEL
-/* Define to 1 if you have the 'ngtcp2_crypto_quictls_init' function. */
+/* Define to 1 if you have the `ngtcp2_crypto_quictls_init' function. */
#undef HAVE_NGTCP2_CRYPTO_QUICTLS_INIT
-/* Define to 1 if the system has the type 'ngtcp2_encryption_level'. */
+/* Define to 1 if the system has the type `ngtcp2_encryption_level'. */
#undef HAVE_NGTCP2_ENCRYPTION_LEVEL
/* Define to 1 if you have the <ngtcp2/ngtcp2_crypto_openssl.h> header file.
@@ -504,13 +507,13 @@
/* Use libnss for crypto */
#undef HAVE_NSS
-/* Define to 1 if you have the 'OpenSSL_add_all_digests' function. */
+/* Define to 1 if you have the `OpenSSL_add_all_digests' function. */
#undef HAVE_OPENSSL_ADD_ALL_DIGESTS
/* Define to 1 if you have the <openssl/bn.h> header file. */
#undef HAVE_OPENSSL_BN_H
-/* Define to 1 if you have the 'OPENSSL_config' function. */
+/* Define to 1 if you have the `OPENSSL_config' function. */
#undef HAVE_OPENSSL_CONFIG
/* Define to 1 if you have the <openssl/conf.h> header file. */
@@ -531,10 +534,10 @@
/* Define to 1 if you have the <openssl/err.h> header file. */
#undef HAVE_OPENSSL_ERR_H
-/* Define to 1 if you have the 'OPENSSL_init_crypto' function. */
+/* Define to 1 if you have the `OPENSSL_init_crypto' function. */
#undef HAVE_OPENSSL_INIT_CRYPTO
-/* Define to 1 if you have the 'OPENSSL_init_ssl' function. */
+/* Define to 1 if you have the `OPENSSL_init_ssl' function. */
#undef HAVE_OPENSSL_INIT_SSL
/* Define to 1 if you have the <openssl/param_build.h> header file. */
@@ -549,10 +552,10 @@
/* Define to 1 if you have the <openssl/ssl.h> header file. */
#undef HAVE_OPENSSL_SSL_H
-/* Define to 1 if you have the 'OSSL_PARAM_BLD_new' function. */
+/* Define to 1 if you have the `OSSL_PARAM_BLD_new' function. */
#undef HAVE_OSSL_PARAM_BLD_NEW
-/* Define to 1 if you have the 'poll' function. */
+/* Define to 1 if you have the `poll' function. */
#undef HAVE_POLL
/* Define to 1 if you have the <poll.h> header file. */
@@ -561,13 +564,28 @@
/* Define if you have POSIX threads libraries and header files. */
#undef HAVE_PTHREAD
+/* Define to 1 if you have the <pthread_np.h> header file. */
+#undef HAVE_PTHREAD_NP_H
+
/* Have PTHREAD_PRIO_INHERIT. */
#undef HAVE_PTHREAD_PRIO_INHERIT
-/* Define to 1 if the system has the type 'pthread_rwlock_t'. */
+/* Define to 1 if the system has the type `pthread_rwlock_t'. */
#undef HAVE_PTHREAD_RWLOCK_T
-/* Define to 1 if the system has the type 'pthread_spinlock_t'. */
+/* Define if pthread_setname_np has the common 2 arguments. */
+#undef HAVE_PTHREAD_SETNAME_NP
+
+/* Define if pthread_setname_np has only 1 argument. */
+#undef HAVE_PTHREAD_SETNAME_NP1
+
+/* Define if pthread_setname_np has 3 arguments. */
+#undef HAVE_PTHREAD_SETNAME_NP3
+
+/* Define if pthread_setname_np exists as pthread_set_name_np instead. */
+#undef HAVE_PTHREAD_SET_NAME_NP
+
+/* Define to 1 if the system has the type `pthread_spinlock_t'. */
#undef HAVE_PTHREAD_SPINLOCK_T
/* Define to 1 if you have the <pwd.h> header file. */
@@ -576,98 +594,98 @@
/* Define if you have Python libraries and header files. */
#undef HAVE_PYTHON
-/* Define to 1 if you have the 'random' function. */
+/* Define to 1 if you have the `random' function. */
#undef HAVE_RANDOM
-/* Define to 1 if you have the 'RAND_cleanup' function. */
+/* Define to 1 if you have the `RAND_cleanup' function. */
#undef HAVE_RAND_CLEANUP
/* If we have reallocarray(3) */
#undef HAVE_REALLOCARRAY
-/* Define to 1 if you have the 'recvmsg' function. */
+/* Define to 1 if you have the `recvmsg' function. */
#undef HAVE_RECVMSG
-/* Define to 1 if you have the 'sendmsg' function. */
+/* Define to 1 if you have the `sendmsg' function. */
#undef HAVE_SENDMSG
-/* Define to 1 if you have the 'setregid' function. */
+/* Define to 1 if you have the `setregid' function. */
#undef HAVE_SETREGID
-/* Define to 1 if you have the 'setresgid' function. */
+/* Define to 1 if you have the `setresgid' function. */
#undef HAVE_SETRESGID
-/* Define to 1 if you have the 'setresuid' function. */
+/* Define to 1 if you have the `setresuid' function. */
#undef HAVE_SETRESUID
-/* Define to 1 if you have the 'setreuid' function. */
+/* Define to 1 if you have the `setreuid' function. */
#undef HAVE_SETREUID
-/* Define to 1 if you have the 'setrlimit' function. */
+/* Define to 1 if you have the `setrlimit' function. */
#undef HAVE_SETRLIMIT
-/* Define to 1 if you have the 'setsid' function. */
+/* Define to 1 if you have the `setsid' function. */
#undef HAVE_SETSID
-/* Define to 1 if you have the 'setusercontext' function. */
+/* Define to 1 if you have the `setusercontext' function. */
#undef HAVE_SETUSERCONTEXT
-/* Define to 1 if you have the 'SHA512_Update' function. */
+/* Define to 1 if you have the `SHA512_Update' function. */
#undef HAVE_SHA512_UPDATE
-/* Define to 1 if you have the 'shmget' function. */
+/* Define to 1 if you have the `shmget' function. */
#undef HAVE_SHMGET
-/* Define to 1 if you have the 'sigprocmask' function. */
+/* Define to 1 if you have the `sigprocmask' function. */
#undef HAVE_SIGPROCMASK
-/* Define to 1 if you have the 'sleep' function. */
+/* Define to 1 if you have the `sleep' function. */
#undef HAVE_SLEEP
-/* Define to 1 if you have the 'snprintf' function. */
+/* Define to 1 if you have the `snprintf' function. */
#undef HAVE_SNPRINTF
-/* Define to 1 if you have the 'socketpair' function. */
+/* Define to 1 if you have the `socketpair' function. */
#undef HAVE_SOCKETPAIR
/* Using Solaris threads */
#undef HAVE_SOLARIS_THREADS
-/* Define to 1 if you have the 'srandom' function. */
+/* Define to 1 if you have the `srandom' function. */
#undef HAVE_SRANDOM
/* Define if you have the SSL libraries installed. */
#undef HAVE_SSL
-/* Define to 1 if you have the 'SSL_CTX_set_alpn_protos' function. */
+/* Define to 1 if you have the `SSL_CTX_set_alpn_protos' function. */
#undef HAVE_SSL_CTX_SET_ALPN_PROTOS
-/* Define to 1 if you have the 'SSL_CTX_set_alpn_select_cb' function. */
+/* Define to 1 if you have the `SSL_CTX_set_alpn_select_cb' function. */
#undef HAVE_SSL_CTX_SET_ALPN_SELECT_CB
-/* Define to 1 if you have the 'SSL_CTX_set_ciphersuites' function. */
+/* Define to 1 if you have the `SSL_CTX_set_ciphersuites' function. */
#undef HAVE_SSL_CTX_SET_CIPHERSUITES
-/* Define to 1 if you have the 'SSL_CTX_set_security_level' function. */
+/* Define to 1 if you have the `SSL_CTX_set_security_level' function. */
#undef HAVE_SSL_CTX_SET_SECURITY_LEVEL
-/* Define to 1 if you have the 'SSL_CTX_set_tlsext_ticket_key_evp_cb'
+/* Define to 1 if you have the `SSL_CTX_set_tlsext_ticket_key_evp_cb'
function. */
#undef HAVE_SSL_CTX_SET_TLSEXT_TICKET_KEY_EVP_CB
-/* Define to 1 if you have the 'SSL_get0_alpn_selected' function. */
+/* Define to 1 if you have the `SSL_get0_alpn_selected' function. */
#undef HAVE_SSL_GET0_ALPN_SELECTED
-/* Define to 1 if you have the 'SSL_get0_peername' function. */
+/* Define to 1 if you have the `SSL_get0_peername' function. */
#undef HAVE_SSL_GET0_PEERNAME
-/* Define to 1 if you have the 'SSL_get1_peer_certificate' function. */
+/* Define to 1 if you have the `SSL_get1_peer_certificate' function. */
#undef HAVE_SSL_GET1_PEER_CERTIFICATE
-/* Define to 1 if you have the 'SSL_is_quic' function. */
+/* Define to 1 if you have the `SSL_is_quic' function. */
#undef HAVE_SSL_IS_QUIC
-/* Define to 1 if you have the 'SSL_set1_host' function. */
+/* Define to 1 if you have the `SSL_set1_host' function. */
#undef HAVE_SSL_SET1_HOST
/* Define to 1 if you have the <stdarg.h> header file. */
@@ -688,7 +706,7 @@
/* Define to 1 if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H
-/* Define to 1 if you have the 'strftime' function. */
+/* Define to 1 if you have the `strftime' function. */
#undef HAVE_STRFTIME
/* Define to 1 if you have the <strings.h> header file. */
@@ -697,41 +715,47 @@
/* Define to 1 if you have the <string.h> header file. */
#undef HAVE_STRING_H
-/* Define to 1 if you have the 'strlcat' function. */
+/* Define to 1 if you have the `strlcat' function. */
#undef HAVE_STRLCAT
-/* Define to 1 if you have the 'strlcpy' function. */
+/* Define to 1 if you have the `strlcpy' function. */
#undef HAVE_STRLCPY
-/* Define to 1 if you have the 'strptime' function. */
+/* Define to 1 if you have the `strptime' function. */
#undef HAVE_STRPTIME
-/* Define to 1 if you have the 'strsep' function. */
+/* Define to 1 if you have the `strsep' function. */
#undef HAVE_STRSEP
-/* Define to 1 if 'ipi_spec_dst' is a member of 'struct in_pktinfo'. */
+/* Define to 1 if `ipi_spec_dst' is a member of `struct in_pktinfo'. */
#undef HAVE_STRUCT_IN_PKTINFO_IPI_SPEC_DST
-/* Define to 1 if 'tokenlen' is a member of 'struct ngtcp2_pkt_hd'. */
+/* Define to 1 if `tokenlen' is a member of `struct ngtcp2_pkt_hd'. */
#undef HAVE_STRUCT_NGTCP2_PKT_HD_TOKENLEN
-/* Define to 1 if 'max_tx_udp_payload_size' is a member of 'struct
+/* Define to 1 if `max_tx_udp_payload_size' is a member of `struct
ngtcp2_settings'. */
#undef HAVE_STRUCT_NGTCP2_SETTINGS_MAX_TX_UDP_PAYLOAD_SIZE
-/* Define to 1 if 'tokenlen' is a member of 'struct ngtcp2_settings'. */
+/* Define to 1 if `tokenlen' is a member of `struct ngtcp2_settings'. */
#undef HAVE_STRUCT_NGTCP2_SETTINGS_TOKENLEN
-/* Define to 1 if 'original_dcid_present' is a member of 'struct
+/* Define to 1 if `original_dcid_present' is a member of `struct
ngtcp2_transport_params'. */
#undef HAVE_STRUCT_NGTCP2_TRANSPORT_PARAMS_ORIGINAL_DCID_PRESENT
-/* Define to 1 if the system has the type 'struct ngtcp2_version_cid'. */
+/* Define to 1 if the system has the type `struct ngtcp2_version_cid'. */
#undef HAVE_STRUCT_NGTCP2_VERSION_CID
-/* Define to 1 if 'sun_len' is a member of 'struct sockaddr_un'. */
+/* Define to 1 if `sun_len' is a member of `struct sockaddr_un'. */
#undef HAVE_STRUCT_SOCKADDR_UN_SUN_LEN
+/* Define to 1 if `st_mtimensec' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_MTIMENSEC
+
+/* Define to 1 if `st_mtim.tv_nsec' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC
+
/* Define if you have Swig libraries and header files. */
#undef HAVE_SWIG
@@ -789,16 +813,16 @@
/* Define to 1 if you have the <time.h> header file. */
#undef HAVE_TIME_H
-/* Define to 1 if you have the 'tzset' function. */
+/* Define to 1 if you have the `tzset' function. */
#undef HAVE_TZSET
/* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
-/* Define to 1 if you have the 'usleep' function. */
+/* Define to 1 if you have the `usleep' function. */
#undef HAVE_USLEEP
-/* Define to 1 if you have the 'vfork' function. */
+/* Define to 1 if you have the `vfork' function. */
#undef HAVE_VFORK
/* Define to 1 if you have the <vfork.h> header file. */
@@ -816,22 +840,22 @@
/* Define to 1 if you have the <winsock2.h> header file. */
#undef HAVE_WINSOCK2_H
-/* Define to 1 if 'fork' works. */
+/* Define to 1 if `fork' works. */
#undef HAVE_WORKING_FORK
-/* Define to 1 if 'vfork' works. */
+/* Define to 1 if `vfork' works. */
#undef HAVE_WORKING_VFORK
-/* Define to 1 if you have the 'writev' function. */
+/* Define to 1 if you have the `writev' function. */
#undef HAVE_WRITEV
/* Define to 1 if you have the <ws2tcpip.h> header file. */
#undef HAVE_WS2TCPIP_H
-/* Define to 1 if you have the 'X509_VERIFY_PARAM_set1_host' function. */
+/* Define to 1 if you have the `X509_VERIFY_PARAM_set1_host' function. */
#undef HAVE_X509_VERIFY_PARAM_SET1_HOST
-/* Define to 1 if you have the '_beginthreadex' function. */
+/* Define to 1 if you have the `_beginthreadex' function. */
#undef HAVE__BEGINTHREADEX
/* If HMAC_Init_ex() returns void */
@@ -930,16 +954,16 @@
/* Shared data */
#undef SHARE_DIR
-/* The size of 'pthread_t', as computed by sizeof. */
+/* The size of `pthread_t', as computed by sizeof. */
#undef SIZEOF_PTHREAD_T
-/* The size of 'size_t', as computed by sizeof. */
+/* The size of `size_t', as computed by sizeof. */
#undef SIZEOF_SIZE_T
-/* The size of 'time_t', as computed by sizeof. */
+/* The size of `time_t', as computed by sizeof. */
#undef SIZEOF_TIME_T
-/* The size of 'unsigned long', as computed by sizeof. */
+/* The size of `unsigned long', as computed by sizeof. */
#undef SIZEOF_UNSIGNED_LONG
/* define if (v)snprintf does not return length needed, (but length used) */
@@ -948,7 +972,7 @@
/* Define to 1 if libsodium supports sodium_set_misuse_handler */
#undef SODIUM_MISUSE_HANDLER
-/* Define to 1 if all of the C89 standard headers exist (not just the ones
+/* Define to 1 if all of the C90 standard headers exist (not just the ones
required in a freestanding environment). This macro is provided for
backward compatibility; new code need not use it. */
#undef STDC_HEADERS
@@ -1045,7 +1069,7 @@
/* Define this to enable SHA256 and SHA512 support. */
#undef USE_SHA2
-/* Enable extensions on AIX, Interix, z/OS. */
+/* Enable extensions on AIX 3, Interix. */
#ifndef _ALL_SOURCE
# undef _ALL_SOURCE
#endif
@@ -1106,15 +1130,11 @@
#ifndef __STDC_WANT_IEC_60559_DFP_EXT__
# undef __STDC_WANT_IEC_60559_DFP_EXT__
#endif
-/* Enable extensions specified by C23 Annex F. */
-#ifndef __STDC_WANT_IEC_60559_EXT__
-# undef __STDC_WANT_IEC_60559_EXT__
-#endif
/* Enable extensions specified by ISO/IEC TS 18661-4:2015. */
#ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__
# undef __STDC_WANT_IEC_60559_FUNCS_EXT__
#endif
-/* Enable extensions specified by C23 Annex H and ISO/IEC TS 18661-3:2015. */
+/* Enable extensions specified by ISO/IEC TS 18661-3:2015. */
#ifndef __STDC_WANT_IEC_60559_TYPES_EXT__
# undef __STDC_WANT_IEC_60559_TYPES_EXT__
#endif
@@ -1155,36 +1175,30 @@
/* Define if you want PyUnbound. */
#undef WITH_PYUNBOUND
-/* Define to 1 if 'lex' declares 'yytext' as a 'char *' by default, not a
- 'char[]'. */
+/* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a
+ `char[]'. */
#undef YYTEXT_POINTER
/* Number of bits in a file offset, on hosts where this is settable. */
#undef _FILE_OFFSET_BITS
-/* Define to 1 if necessary to make fseeko visible. */
+/* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */
#undef _LARGEFILE_SOURCE
-/* Define to 1 on platforms where this makes off_t a 64-bit type. */
+/* Define for large files, on AIX-style hosts. */
#undef _LARGE_FILES
/* Enable for compile on Minix */
#undef _NETBSD_SOURCE
-/* Number of bits in time_t, on hosts where this is settable. */
-#undef _TIME_BITS
-
-/* Define to 1 on platforms where this makes time_t a 64-bit type. */
-#undef __MINGW_USE_VC2005_COMPAT
-
/* defined to use gcc ansi snprintf and sscanf that understands %lld when
compiled for windows. */
#undef __USE_MINGW_ANSI_STDIO
-/* Define to empty if 'const' does not conform to ANSI C. */
+/* Define to empty if `const' does not conform to ANSI C. */
#undef const
-/* Define as 'int' if <sys/types.h> doesn't define. */
+/* Define to `int' if <sys/types.h> doesn't define. */
#undef gid_t
/* in_addr_t */
@@ -1193,28 +1207,28 @@
/* in_port_t */
#undef in_port_t
-/* Define to '__inline__' or '__inline' if that's what the C compiler
+/* Define to `__inline__' or `__inline' if that's what the C compiler
calls it, or to nothing if 'inline' is not supported under any name. */
#ifndef __cplusplus
#undef inline
#endif
-/* Define to 'short' if <sys/types.h> does not define. */
+/* Define to `short' if <sys/types.h> does not define. */
#undef int16_t
-/* Define to 'int' if <sys/types.h> does not define. */
+/* Define to `int' if <sys/types.h> does not define. */
#undef int32_t
-/* Define to 'long long' if <sys/types.h> does not define. */
+/* Define to `long long' if <sys/types.h> does not define. */
#undef int64_t
-/* Define to 'signed char' if <sys/types.h> does not define. */
+/* Define to `signed char' if <sys/types.h> does not define. */
#undef int8_t
/* Define if replacement function should be used. */
#undef malloc
-/* Define to 'long int' if <sys/types.h> does not define. */
+/* Define to `long int' if <sys/types.h> does not define. */
#undef off_t
/* Define as a signed integer type capable of holding a process identifier. */
@@ -1223,34 +1237,34 @@
/* Define to 'int' if not defined */
#undef rlim_t
-/* Define as 'unsigned int' if <stddef.h> doesn't define. */
+/* Define to `unsigned int' if <sys/types.h> does not define. */
#undef size_t
/* Define to 'int' if not defined */
#undef socklen_t
-/* Define to 'int' if <sys/types.h> does not define. */
+/* Define to `int' if <sys/types.h> does not define. */
#undef ssize_t
/* Define to 'unsigned char if not defined */
#undef u_char
-/* Define as 'int' if <sys/types.h> doesn't define. */
+/* Define to `int' if <sys/types.h> doesn't define. */
#undef uid_t
-/* Define to 'unsigned short' if <sys/types.h> does not define. */
+/* Define to `unsigned short' if <sys/types.h> does not define. */
#undef uint16_t
-/* Define to 'unsigned int' if <sys/types.h> does not define. */
+/* Define to `unsigned int' if <sys/types.h> does not define. */
#undef uint32_t
-/* Define to 'unsigned long long' if <sys/types.h> does not define. */
+/* Define to `unsigned long long' if <sys/types.h> does not define. */
#undef uint64_t
-/* Define to 'unsigned char' if <sys/types.h> does not define. */
+/* Define to `unsigned char' if <sys/types.h> does not define. */
#undef uint8_t
-/* Define as 'fork' if 'vfork' does not work. */
+/* Define as `fork' if `vfork' does not work. */
#undef vfork
#if defined(OMITTED__D_GNU_SOURCE) && !defined(_GNU_SOURCE)
@@ -1391,6 +1405,17 @@
#endif /* !HAVE_ATTR_UNUSED */
+#if defined(DOXYGEN)
+# define ATTR_NONSTRING(x) x
+#elif defined(__cplusplus)
+# define ATTR_NONSTRING(x) __attribute__((nonstring)) x
+#elif defined(HAVE_ATTR_NONSTRING)
+# define ATTR_NONSTRING(x) __attribute__((nonstring)) x
+#else /* !HAVE_ATTR_NONSTRING */
+# define ATTR_NONSTRING(x) x
+#endif /* !HAVE_ATTR_NONSTRING */
+
+
#ifndef HAVE_FSEEKO
#define fseeko fseek
#define ftello ftell
diff --git a/configure b/configure
index 717de9beb3e1..0642c41d7a30 100755
--- a/configure
+++ b/configure
@@ -1,11 +1,11 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.72 for unbound 1.24.2.
+# Generated by GNU Autoconf 2.71 for unbound 1.25.0.
#
# Report bugs to <unbound-bugs@nlnetlabs.nl or https://github.com/NLnetLabs/unbound/issues>.
#
#
-# Copyright (C) 1992-1996, 1998-2017, 2020-2023 Free Software Foundation,
+# Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation,
# Inc.
#
#
@@ -17,6 +17,7 @@
# Be more Bourne compatible
DUALCASE=1; export DUALCASE # for MKS sh
+as_nop=:
if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
then :
emulate sh
@@ -25,13 +26,12 @@ then :
# is contrary to our usage. Disable this feature.
alias -g '${1+"$@"}'='"$@"'
setopt NO_GLOB_SUBST
-else case e in #(
- e) case `(set -o) 2>/dev/null` in #(
+else $as_nop
+ case `(set -o) 2>/dev/null` in #(
*posix*) :
set -o posix ;; #(
*) :
;;
-esac ;;
esac
fi
@@ -103,7 +103,7 @@ IFS=$as_save_IFS
;;
esac
-# We did not find ourselves, most probably we were run as 'sh COMMAND'
+# We did not find ourselves, most probably we were run as `sh COMMAND'
# in which case we are not to be found in the path.
if test "x$as_myself" = x; then
as_myself=$0
@@ -133,14 +133,15 @@ case $- in # ((((
esac
exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
# Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed 'exec'.
+# out after a failed `exec'.
printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2
exit 255
fi
# We don't want this to propagate to other subprocesses.
{ _as_can_reexec=; unset _as_can_reexec;}
if test "x$CONFIG_SHELL" = x; then
- as_bourne_compatible="if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
+ as_bourne_compatible="as_nop=:
+if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
then :
emulate sh
NULLCMD=:
@@ -148,13 +149,12 @@ then :
# is contrary to our usage. Disable this feature.
alias -g '\${1+\"\$@\"}'='\"\$@\"'
setopt NO_GLOB_SUBST
-else case e in #(
- e) case \`(set -o) 2>/dev/null\` in #(
+else \$as_nop
+ case \`(set -o) 2>/dev/null\` in #(
*posix*) :
set -o posix ;; #(
*) :
;;
-esac ;;
esac
fi
"
@@ -172,9 +172,8 @@ as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
if ( set x; as_fn_ret_success y && test x = \"\$1\" )
then :
-else case e in #(
- e) exitcode=1; echo positional parameters were not saved. ;;
-esac
+else \$as_nop
+ exitcode=1; echo positional parameters were not saved.
fi
test x\$exitcode = x0 || exit 1
blah=\$(echo \$(echo blah))
@@ -196,15 +195,14 @@ test \$(( 1 + 1 )) = 2 || exit 1
if (eval "$as_required") 2>/dev/null
then :
as_have_required=yes
-else case e in #(
- e) as_have_required=no ;;
-esac
+else $as_nop
+ as_have_required=no
fi
if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null
then :
-else case e in #(
- e) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+else $as_nop
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
as_found=false
for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
do
@@ -237,13 +235,12 @@ IFS=$as_save_IFS
if $as_found
then :
-else case e in #(
- e) if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+else $as_nop
+ if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null
then :
CONFIG_SHELL=$SHELL as_have_required=yes
-fi ;;
-esac
+fi
fi
@@ -265,7 +262,7 @@ case $- in # ((((
esac
exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
# Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed 'exec'.
+# out after a failed `exec'.
printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2
exit 255
fi
@@ -286,8 +283,7 @@ $0: message. Then install a modern shell, or manually run
$0: the script under such a shell if you do have one."
fi
exit 1
-fi ;;
-esac
+fi
fi
fi
SHELL=${CONFIG_SHELL-/bin/sh}
@@ -326,6 +322,14 @@ as_fn_exit ()
as_fn_set_status $1
exit $1
} # as_fn_exit
+# as_fn_nop
+# ---------
+# Do nothing but, unlike ":", preserve the value of $?.
+as_fn_nop ()
+{
+ return $?
+}
+as_nop=as_fn_nop
# as_fn_mkdir_p
# -------------
@@ -394,12 +398,11 @@ then :
{
eval $1+=\$2
}'
-else case e in #(
- e) as_fn_append ()
+else $as_nop
+ as_fn_append ()
{
eval $1=\$$1\$2
- } ;;
-esac
+ }
fi # as_fn_append
# as_fn_arith ARG...
@@ -413,14 +416,21 @@ then :
{
as_val=$(( $* ))
}'
-else case e in #(
- e) as_fn_arith ()
+else $as_nop
+ as_fn_arith ()
{
as_val=`expr "$@" || test $? -eq 1`
- } ;;
-esac
+ }
fi # as_fn_arith
+# as_fn_nop
+# ---------
+# Do nothing but, unlike ":", preserve the value of $?.
+as_fn_nop ()
+{
+ return $?
+}
+as_nop=as_fn_nop
# as_fn_error STATUS ERROR [LINENO LOG_FD]
# ----------------------------------------
@@ -494,8 +504,6 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits
/[$]LINENO/=
' <$as_myself |
sed '
- t clear
- :clear
s/[$]LINENO.*/&-/
t lineno
b
@@ -544,6 +552,7 @@ esac
as_echo='printf %s\n'
as_echo_n='printf %s'
+
rm -f conf$$ conf$$.exe conf$$.file
if test -d conf$$.dir; then
rm -f conf$$.dir/conf$$.file
@@ -555,9 +564,9 @@ if (echo >conf$$.file) 2>/dev/null; then
if ln -s conf$$.file conf$$ 2>/dev/null; then
as_ln_s='ln -s'
# ... but there are two gotchas:
- # 1) On MSYS, both 'ln -s file dir' and 'ln file dir' fail.
- # 2) DJGPP < 2.04 has no symlinks; 'ln -s' creates a wrapper executable.
- # In both cases, we have to default to 'cp -pR'.
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -pR'.
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
as_ln_s='cp -pR'
elif ln conf$$.file conf$$ 2>/dev/null; then
@@ -582,12 +591,10 @@ as_test_x='test -x'
as_executable_p=as_fn_executable_p
# Sed expression to map a string onto a valid CPP name.
-as_sed_cpp="y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
-as_tr_cpp="eval sed '$as_sed_cpp'" # deprecated
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
# Sed expression to map a string onto a valid variable name.
-as_sed_sh="y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
-as_tr_sh="eval sed '$as_sed_sh'" # deprecated
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
SHELL=${CONFIG_SHELL-/bin/sh}
@@ -615,8 +622,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='unbound'
PACKAGE_TARNAME='unbound'
-PACKAGE_VERSION='1.24.2'
-PACKAGE_STRING='unbound 1.24.2'
+PACKAGE_VERSION='1.25.0'
+PACKAGE_STRING='unbound 1.25.0'
PACKAGE_BUGREPORT='unbound-bugs@nlnetlabs.nl or https://github.com/NLnetLabs/unbound/issues'
PACKAGE_URL=''
@@ -653,7 +660,6 @@ ac_includes_default="\
ac_header_c_list=
ac_func_c_list=
-enable_year2038=no
ac_subst_vars='LTLIBOBJS
date
version
@@ -742,7 +748,6 @@ PTHREAD_LIBS
PTHREAD_CXX
PTHREAD_CC
ax_pthread_config
-CPP
ASYNCLOOK_ALLOCCHECK_EXTRA_OBJ
SLDNS_ALLOCCHECK_EXTRA_OBJ
USE_SYSTEMD_FALSE
@@ -753,6 +758,7 @@ SYSTEMD_LIBS
SYSTEMD_CFLAGS
RUNTIME_PATH
LIBOBJS
+CPP
PKG_CONFIG_LIBDIR
PKG_CONFIG_PATH
PKG_CONFIG
@@ -768,7 +774,6 @@ RANLIB
ac_ct_AR
DLLTOOL
OBJDUMP
-FILECMD
LN_S
NM
ac_ct_DUMPBIN
@@ -880,10 +885,8 @@ enable_pie
enable_relro_now
enable_shared
enable_static
-enable_pic
with_pic
enable_fast_install
-enable_aix_soname
with_aix_soname
with_gnu_ld
with_sysroot
@@ -938,7 +941,6 @@ with_libmnl
enable_explicit_port_randomisation
enable_linux_ip_local_port_range
with_libunbound_only
-enable_year2038
'
ac_precious_vars='build_alias
host_alias
@@ -954,11 +956,11 @@ LT_SYS_LIBRARY_PATH
PKG_CONFIG
PKG_CONFIG_PATH
PKG_CONFIG_LIBDIR
+CPP
SYSTEMD_CFLAGS
SYSTEMD_LIBS
SYSTEMD_DAEMON_CFLAGS
SYSTEMD_DAEMON_LIBS
-CPP
PYTHON_VERSION
SOURCE_DATE_EPOCH
PROTOBUFC_CFLAGS
@@ -1071,7 +1073,7 @@ do
ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid feature name: '$ac_useropt'"
+ as_fn_error $? "invalid feature name: \`$ac_useropt'"
ac_useropt_orig=$ac_useropt
ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
@@ -1097,7 +1099,7 @@ do
ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid feature name: '$ac_useropt'"
+ as_fn_error $? "invalid feature name: \`$ac_useropt'"
ac_useropt_orig=$ac_useropt
ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
@@ -1310,7 +1312,7 @@ do
ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid package name: '$ac_useropt'"
+ as_fn_error $? "invalid package name: \`$ac_useropt'"
ac_useropt_orig=$ac_useropt
ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
@@ -1326,7 +1328,7 @@ do
ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid package name: '$ac_useropt'"
+ as_fn_error $? "invalid package name: \`$ac_useropt'"
ac_useropt_orig=$ac_useropt
ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
@@ -1356,8 +1358,8 @@ do
| --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
x_libraries=$ac_optarg ;;
- -*) as_fn_error $? "unrecognized option: '$ac_option'
-Try '$0 --help' for more information"
+ -*) as_fn_error $? "unrecognized option: \`$ac_option'
+Try \`$0 --help' for more information"
;;
*=*)
@@ -1365,7 +1367,7 @@ Try '$0 --help' for more information"
# Reject names that are not valid shell variable names.
case $ac_envvar in #(
'' | [0-9]* | *[!_$as_cr_alnum]* )
- as_fn_error $? "invalid variable name: '$ac_envvar'" ;;
+ as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
esac
eval $ac_envvar=\$ac_optarg
export $ac_envvar ;;
@@ -1415,7 +1417,7 @@ do
as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
done
-# There might be people who depend on the old broken behavior: '$host'
+# There might be people who depend on the old broken behavior: `$host'
# used to hold the argument of --host etc.
# FIXME: To remove some day.
build=$build_alias
@@ -1483,7 +1485,7 @@ if test ! -r "$srcdir/$ac_unique_file"; then
test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
fi
-ac_msg="sources are in $srcdir, but 'cd $srcdir' does not work"
+ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
ac_abs_confdir=`(
cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
pwd)`
@@ -1511,7 +1513,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-'configure' configures unbound 1.24.2 to adapt to many kinds of systems.
+\`configure' configures unbound 1.25.0 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1525,11 +1527,11 @@ Configuration:
--help=short display options specific to this package
--help=recursive display the short help of all the included packages
-V, --version display version information and exit
- -q, --quiet, --silent do not print 'checking ...' messages
+ -q, --quiet, --silent do not print \`checking ...' messages
--cache-file=FILE cache test results in FILE [disabled]
- -C, --config-cache alias for '--cache-file=config.cache'
+ -C, --config-cache alias for \`--cache-file=config.cache'
-n, --no-create do not create output files
- --srcdir=DIR find the sources in DIR [configure dir or '..']
+ --srcdir=DIR find the sources in DIR [configure dir or \`..']
Installation directories:
--prefix=PREFIX install architecture-independent files in PREFIX
@@ -1537,10 +1539,10 @@ Installation directories:
--exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
[PREFIX]
-By default, 'make install' will install all the files in
-'$ac_default_prefix/bin', '$ac_default_prefix/lib' etc. You can specify
-an installation prefix other than '$ac_default_prefix' using '--prefix',
-for instance '--prefix=\$HOME'.
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+for instance \`--prefix=\$HOME'.
For better control, use the options below.
@@ -1577,7 +1579,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of unbound 1.24.2:";;
+ short | recursive ) echo "Configuration of unbound 1.25.0:";;
esac
cat <<\_ACEOF
@@ -1594,13 +1596,8 @@ Optional Features:
NOW, to protect GOT and .dtor areas)
--enable-shared[=PKGS] build shared libraries [default=yes]
--enable-static[=PKGS] build static libraries [default=yes]
- --enable-pic[=PKGS] try to use only PIC/non-PIC objects [default=use
- both]
--enable-fast-install[=PKGS]
optimize for fast installation [default=yes]
- --enable-aix-soname=aix|svr4|both
- shared library versioning (aka "SONAME") variant to
- provide on AIX, [default=aix].
--disable-libtool-lock avoid locking (might break parallel builds)
--disable-rpath disable hardcoded rpath (default=enabled)
--disable-largefile omit support for large files
@@ -1658,7 +1655,6 @@ Optional Features:
randomness. Define this only when the target system
restricts (e.g. some of SELinux enabled
distributions) the use of non-ephemeral ports.
- --enable-year2038 support timestamps after 2038
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
@@ -1681,6 +1677,11 @@ Optional Packages:
not exist if you are content with the builtin.
--with-username=user set default user that unbound changes to (default
user is unbound)
+ --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use
+ both]
+ --with-aix-soname=aix|svr4|both
+ shared library versioning (aka "SONAME") variant to
+ provide on AIX, [default=aix].
--with-gnu-ld assume the C compiler uses GNU ld [default=no]
--with-sysroot[=DIR] Search for dependent libraries within DIR (or the
compiler's sysroot if not specified).
@@ -1729,12 +1730,12 @@ Some influential environment variables:
LIBS libraries to pass to the linker, e.g. -l<library>
CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
you have headers in a nonstandard directory <include dir>
- YACC The 'Yet Another Compiler Compiler' implementation to use.
- Defaults to the first program found out of: 'bison -y', 'byacc',
- 'yacc'.
+ YACC The `Yet Another Compiler Compiler' implementation to use.
+ Defaults to the first program found out of: `bison -y', `byacc',
+ `yacc'.
YFLAGS The list of arguments that will be passed by default to $YACC.
This script will default YFLAGS to the empty string to avoid a
- default value of '-d' given by some make applications.
+ default value of `-d' given by some make applications.
LT_SYS_LIBRARY_PATH
User-defined run-time library search path.
PKG_CONFIG path to pkg-config utility
@@ -1742,6 +1743,7 @@ Some influential environment variables:
directories to add to pkg-config's search path
PKG_CONFIG_LIBDIR
path overriding pkg-config's built-in search path
+ CPP C preprocessor
SYSTEMD_CFLAGS
C compiler flags for SYSTEMD, overriding pkg-config
SYSTEMD_LIBS
@@ -1750,7 +1752,6 @@ Some influential environment variables:
C compiler flags for SYSTEMD_DAEMON, overriding pkg-config
SYSTEMD_DAEMON_LIBS
linker flags for SYSTEMD_DAEMON, overriding pkg-config
- CPP C preprocessor
PYTHON_VERSION
The installed Python version to use, for example '2.3'. This
string will be appended to the Python interpreter canonical
@@ -1764,7 +1765,7 @@ Some influential environment variables:
PROTOBUFC_LIBS
linker flags for PROTOBUFC, overriding pkg-config
-Use these variables to override the choices made by 'configure' or to help
+Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.
Report bugs to <unbound-bugs@nlnetlabs.nl or https://github.com/NLnetLabs/unbound/issues>.
@@ -1831,10 +1832,10 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-unbound configure 1.24.2
-generated by GNU Autoconf 2.72
+unbound configure 1.25.0
+generated by GNU Autoconf 2.71
-Copyright (C) 2023 Free Software Foundation, Inc.
+Copyright (C) 2021 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it.
_ACEOF
@@ -1873,12 +1874,11 @@ printf "%s\n" "$ac_try_echo"; } >&5
} && test -s conftest.$ac_objext
then :
ac_retval=0
-else case e in #(
- e) printf "%s\n" "$as_me: failed program was:" >&5
+else $as_nop
+ printf "%s\n" "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_retval=1 ;;
-esac
+ ac_retval=1
fi
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
as_fn_set_status $ac_retval
@@ -1897,8 +1897,8 @@ printf %s "checking for $2... " >&6; }
if eval test \${$3+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$4
#include <$2>
@@ -1906,12 +1906,10 @@ _ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
eval "$3=yes"
-else case e in #(
- e) eval "$3=no" ;;
-esac
+else $as_nop
+ eval "$3=no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
-esac
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
eval ac_res=\$$3
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
@@ -1951,12 +1949,11 @@ printf "%s\n" "$ac_try_echo"; } >&5
}
then :
ac_retval=0
-else case e in #(
- e) printf "%s\n" "$as_me: failed program was:" >&5
+else $as_nop
+ printf "%s\n" "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_retval=1 ;;
-esac
+ ac_retval=1
fi
# Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
# created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
@@ -1979,15 +1976,15 @@ printf %s "checking for $2... " >&6; }
if eval test \${$3+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
For example, HP-UX 11i <limits.h> declares gettimeofday. */
#define $2 innocuous_$2
/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $2 (void); below. */
+ which can conflict with char $2 (); below. */
#include <limits.h>
#undef $2
@@ -1998,7 +1995,7 @@ else case e in #(
#ifdef __cplusplus
extern "C"
#endif
-char $2 (void);
+char $2 ();
/* The GNU C library defines this for functions which it implements
to always fail with ENOSYS. Some functions are actually named
something starting with __ and the normal name is an alias. */
@@ -2017,13 +2014,11 @@ _ACEOF
if ac_fn_c_try_link "$LINENO"
then :
eval "$3=yes"
-else case e in #(
- e) eval "$3=no" ;;
-esac
+else $as_nop
+ eval "$3=no"
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext ;;
-esac
+ conftest$ac_exeext conftest.$ac_ext
fi
eval ac_res=\$$3
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
@@ -2044,8 +2039,8 @@ printf %s "checking for $2... " >&6; }
if eval test \${$3+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) eval "$3=no"
+else $as_nop
+ eval "$3=no"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$4
@@ -2075,14 +2070,12 @@ _ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
-else case e in #(
- e) eval "$3=yes" ;;
-esac
+else $as_nop
+ eval "$3=yes"
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
-esac
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
eval ac_res=\$$3
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
@@ -2091,6 +2084,44 @@ printf "%s\n" "$ac_res" >&6; }
} # ac_fn_c_check_type
+# ac_fn_c_try_cpp LINENO
+# ----------------------
+# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_cpp ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if { { ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+printf "%s\n" "$ac_try_echo"; } >&5
+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } > conftest.i && {
+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ }
+then :
+ ac_retval=0
+else $as_nop
+ printf "%s\n" "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_cpp
+
# ac_fn_c_try_run LINENO
# ----------------------
# Try to run conftest.$ac_ext, and return whether this succeeded. Assumes that
@@ -2121,13 +2152,12 @@ printf "%s\n" "$ac_try_echo"; } >&5
test $ac_status = 0; }; }
then :
ac_retval=0
-else case e in #(
- e) printf "%s\n" "$as_me: program exited with status $ac_status" >&5
+else $as_nop
+ printf "%s\n" "$as_me: program exited with status $ac_status" >&5
printf "%s\n" "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_retval=$ac_status ;;
-esac
+ ac_retval=$ac_status
fi
rm -rf conftest.dSYM conftest_ipa8_conftest.oo
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
@@ -2180,19 +2210,18 @@ _ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_hi=$ac_mid; break
-else case e in #(
- e) as_fn_arith $ac_mid + 1 && ac_lo=$as_val
+else $as_nop
+ as_fn_arith $ac_mid + 1 && ac_lo=$as_val
if test $ac_lo -le $ac_mid; then
ac_lo= ac_hi=
break
fi
- as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val ;;
-esac
+ as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
done
-else case e in #(
- e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$4
int
@@ -2227,23 +2256,20 @@ _ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_lo=$ac_mid; break
-else case e in #(
- e) as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val
+else $as_nop
+ as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val
if test $ac_mid -le $ac_hi; then
ac_lo= ac_hi=
break
fi
- as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val ;;
-esac
+ as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
done
-else case e in #(
- e) ac_lo= ac_hi= ;;
-esac
+else $as_nop
+ ac_lo= ac_hi=
fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
-esac
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
# Binary search between lo and hi bounds.
@@ -2266,9 +2292,8 @@ _ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_hi=$ac_mid
-else case e in #(
- e) as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val ;;
-esac
+else $as_nop
+ as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
done
@@ -2316,9 +2341,8 @@ _ACEOF
if ac_fn_c_try_run "$LINENO"
then :
echo >>conftest.val; read $3 <conftest.val; ac_retval=0
-else case e in #(
- e) ac_retval=1 ;;
-esac
+else $as_nop
+ ac_retval=1
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
@@ -2330,45 +2354,6 @@ rm -f conftest.val
} # ac_fn_c_compute_int
-# ac_fn_c_try_cpp LINENO
-# ----------------------
-# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_cpp ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if { { ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- grep -v '^ *+' conftest.err >conftest.er1
- cat conftest.er1 >&5
- mv -f conftest.er1 conftest.err
- fi
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } > conftest.i && {
- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
- test ! -s conftest.err
- }
-then :
- ac_retval=0
-else case e in #(
- e) printf "%s\n" "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=1 ;;
-esac
-fi
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_cpp
-
# ac_fn_check_decl LINENO SYMBOL VAR INCLUDES EXTRA-OPTIONS FLAG-VAR
# ------------------------------------------------------------------
# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR
@@ -2382,8 +2367,8 @@ printf %s "checking whether $as_decl_name is declared... " >&6; }
if eval test \${$3+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`
+else $as_nop
+ as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`
eval ac_save_FLAGS=\$$6
as_fn_append $6 " $5"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -2407,14 +2392,12 @@ _ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
eval "$3=yes"
-else case e in #(
- e) eval "$3=no" ;;
-esac
+else $as_nop
+ eval "$3=no"
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
eval $6=\$ac_save_FLAGS
- ;;
-esac
+
fi
eval ac_res=\$$3
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
@@ -2435,8 +2418,8 @@ printf %s "checking for $2.$3... " >&6; }
if eval test \${$4+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$5
int
@@ -2452,8 +2435,8 @@ _ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
eval "$4=yes"
-else case e in #(
- e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$5
int
@@ -2469,15 +2452,12 @@ _ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
eval "$4=yes"
-else case e in #(
- e) eval "$4=no" ;;
-esac
+else $as_nop
+ eval "$4=no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
-esac
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
-esac
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
eval ac_res=\$$4
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
@@ -2509,8 +2489,8 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by unbound $as_me 1.24.2, which was
-generated by GNU Autoconf 2.72. Invocation command line was
+It was created by unbound $as_me 1.25.0, which was
+generated by GNU Autoconf 2.71. Invocation command line was
$ $0$ac_configure_args_raw
@@ -2756,10 +2736,10 @@ esac
printf "%s\n" "$as_me: loading site script $ac_site_file" >&6;}
sed 's/^/| /' "$ac_site_file" >&5
. "$ac_site_file" \
- || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "failed to load site script $ac_site_file
-See 'config.log' for more details" "$LINENO" 5; }
+See \`config.log' for more details" "$LINENO" 5; }
fi
done
@@ -2796,7 +2776,9 @@ struct stat;
/* Most of the following tests are stolen from RCS 5.7 src/conf.sh. */
struct buf { int x; };
struct buf * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (char **p, int i)
+static char *e (p, i)
+ char **p;
+ int i;
{
return p[i];
}
@@ -2810,21 +2792,6 @@ static char *f (char * (*g) (char **, int), char **p, ...)
return s;
}
-/* C89 style stringification. */
-#define noexpand_stringify(a) #a
-const char *stringified = noexpand_stringify(arbitrary+token=sequence);
-
-/* C89 style token pasting. Exercises some of the corner cases that
- e.g. old MSVC gets wrong, but not very hard. */
-#define noexpand_concat(a,b) a##b
-#define expand_concat(a,b) noexpand_concat(a,b)
-extern int vA;
-extern int vbee;
-#define aye A
-#define bee B
-int *pvA = &expand_concat(v,aye);
-int *pvbee = &noexpand_concat(v,bee);
-
/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
function prototypes and stuff, but not \xHH hex character constants.
These do not provoke an error unfortunately, instead are silently treated
@@ -2852,19 +2819,16 @@ ok |= (argc == 0 || f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]);
# Test code for whether the C compiler supports C99 (global declarations)
ac_c_conftest_c99_globals='
-/* Does the compiler advertise C99 conformance? */
+// Does the compiler advertise C99 conformance?
#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L
# error "Compiler does not advertise C99 conformance"
#endif
-// See if C++-style comments work.
-
#include <stdbool.h>
extern int puts (const char *);
extern int printf (const char *, ...);
extern int dprintf (int, const char *, ...);
extern void *malloc (size_t);
-extern void free (void *);
// Check varargs macros. These examples are taken from C99 6.10.3.5.
// dprintf is used instead of fprintf to avoid needing to declare
@@ -2914,6 +2878,7 @@ typedef const char *ccp;
static inline int
test_restrict (ccp restrict text)
{
+ // See if C++-style comments work.
// Iterate through items via the restricted pointer.
// Also check for declarations in for loops.
for (unsigned int i = 0; *(text+i) != '\''\0'\''; ++i)
@@ -2979,8 +2944,6 @@ ac_c_conftest_c99_main='
ia->datasize = 10;
for (int i = 0; i < ia->datasize; ++i)
ia->data[i] = i * 1.234;
- // Work around memory leak warnings.
- free (ia);
// Check named initializers.
struct named_init ni = {
@@ -3002,7 +2965,7 @@ ac_c_conftest_c99_main='
# Test code for whether the C compiler supports C11 (global declarations)
ac_c_conftest_c11_globals='
-/* Does the compiler advertise C11 conformance? */
+// Does the compiler advertise C11 conformance?
#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112L
# error "Compiler does not advertise C11 conformance"
#endif
@@ -3198,9 +3161,8 @@ IFS=$as_save_IFS
if $as_found
then :
-else case e in #(
- e) as_fn_error $? "cannot find required auxiliary files:$ac_missing_aux_files" "$LINENO" 5 ;;
-esac
+else $as_nop
+ as_fn_error $? "cannot find required auxiliary files:$ac_missing_aux_files" "$LINENO" 5
fi
@@ -3228,12 +3190,12 @@ for ac_var in $ac_precious_vars; do
eval ac_new_val=\$ac_env_${ac_var}_value
case $ac_old_set,$ac_new_set in
set,)
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: '$ac_var' was set to '$ac_old_val' in the previous run" >&5
-printf "%s\n" "$as_me: error: '$ac_var' was set to '$ac_old_val' in the previous run" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+printf "%s\n" "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
ac_cache_corrupted=: ;;
,set)
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: '$ac_var' was not set in the previous run" >&5
-printf "%s\n" "$as_me: error: '$ac_var' was not set in the previous run" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
+printf "%s\n" "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
ac_cache_corrupted=: ;;
,);;
*)
@@ -3242,18 +3204,18 @@ printf "%s\n" "$as_me: error: '$ac_var' was not set in the previous run" >&2;}
ac_old_val_w=`echo x $ac_old_val`
ac_new_val_w=`echo x $ac_new_val`
if test "$ac_old_val_w" != "$ac_new_val_w"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: '$ac_var' has changed since the previous run:" >&5
-printf "%s\n" "$as_me: error: '$ac_var' has changed since the previous run:" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
+printf "%s\n" "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
ac_cache_corrupted=:
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in '$ac_var' since the previous run:" >&5
-printf "%s\n" "$as_me: warning: ignoring whitespace changes in '$ac_var' since the previous run:" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+printf "%s\n" "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
eval $ac_var=\$ac_old_val
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: former value: '$ac_old_val'" >&5
-printf "%s\n" "$as_me: former value: '$ac_old_val'" >&2;}
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: current value: '$ac_new_val'" >&5
-printf "%s\n" "$as_me: current value: '$ac_new_val'" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
+printf "%s\n" "$as_me: former value: \`$ac_old_val'" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
+printf "%s\n" "$as_me: current value: \`$ac_new_val'" >&2;}
fi;;
esac
# Pass precious variables to config.status.
@@ -3269,11 +3231,11 @@ printf "%s\n" "$as_me: current value: '$ac_new_val'" >&2;}
fi
done
if $ac_cache_corrupted; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;}
- as_fn_error $? "run '${MAKE-make} distclean' and/or 'rm $cache_file'
+ as_fn_error $? "run \`${MAKE-make} distclean' and/or \`rm $cache_file'
and start over" "$LINENO" 5
fi
## -------------------- ##
@@ -3289,13 +3251,13 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
UNBOUND_VERSION_MAJOR=1
-UNBOUND_VERSION_MINOR=24
+UNBOUND_VERSION_MINOR=25
-UNBOUND_VERSION_MICRO=2
+UNBOUND_VERSION_MICRO=0
LIBUNBOUND_CURRENT=9
-LIBUNBOUND_REVISION=34
+LIBUNBOUND_REVISION=36
LIBUNBOUND_AGE=1
# 1.0.0 had 0:12:0
# 1.0.1 had 0:13:0
@@ -3398,6 +3360,7 @@ LIBUNBOUND_AGE=1
# 1.24.0 had 9:33:1
# 1.24.1 had 9:34:1
# 1.24.2 had 9:35:1
+# 1.25.0 had 9:36:1
# Current -- the number of the binary API that we're implementing
# Revision -- which iteration of the implementation of the binary
@@ -3450,8 +3413,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_CC+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test -n "$CC"; then
+else $as_nop
+ if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -3473,8 +3436,7 @@ done
done
IFS=$as_save_IFS
-fi ;;
-esac
+fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
@@ -3496,8 +3458,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_CC+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test -n "$ac_ct_CC"; then
+else $as_nop
+ if test -n "$ac_ct_CC"; then
ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -3519,8 +3481,7 @@ done
done
IFS=$as_save_IFS
-fi ;;
-esac
+fi
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
@@ -3555,8 +3516,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_CC+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test -n "$CC"; then
+else $as_nop
+ if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -3578,8 +3539,7 @@ done
done
IFS=$as_save_IFS
-fi ;;
-esac
+fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
@@ -3601,8 +3561,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_CC+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test -n "$CC"; then
+else $as_nop
+ if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
ac_prog_rejected=no
@@ -3641,8 +3601,7 @@ if test $ac_prog_rejected = yes; then
ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@"
fi
fi
-fi ;;
-esac
+fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
@@ -3666,8 +3625,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_CC+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test -n "$CC"; then
+else $as_nop
+ if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -3689,8 +3648,7 @@ done
done
IFS=$as_save_IFS
-fi ;;
-esac
+fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
@@ -3716,8 +3674,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_CC+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test -n "$ac_ct_CC"; then
+else $as_nop
+ if test -n "$ac_ct_CC"; then
ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -3739,8 +3697,7 @@ done
done
IFS=$as_save_IFS
-fi ;;
-esac
+fi
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
@@ -3778,8 +3735,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_CC+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test -n "$CC"; then
+else $as_nop
+ if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -3801,8 +3758,7 @@ done
done
IFS=$as_save_IFS
-fi ;;
-esac
+fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
@@ -3824,8 +3780,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_CC+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test -n "$ac_ct_CC"; then
+else $as_nop
+ if test -n "$ac_ct_CC"; then
ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -3847,8 +3803,7 @@ done
done
IFS=$as_save_IFS
-fi ;;
-esac
+fi
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
@@ -3877,10 +3832,10 @@ fi
fi
-test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "no acceptable C compiler found in \$PATH
-See 'config.log' for more details" "$LINENO" 5; }
+See \`config.log' for more details" "$LINENO" 5; }
# Provide some information about the compiler.
printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
@@ -3952,8 +3907,8 @@ printf "%s\n" "$ac_try_echo"; } >&5
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
then :
- # Autoconf-2.13 could set the ac_cv_exeext variable to 'no'.
-# So ignore a value of 'no', otherwise this would lead to 'EXEEXT = no'
+ # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
+# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
# in a Makefile. We should not override ac_cv_exeext if it was cached,
# so that the user can short-circuit this test for compilers unknown to
# Autoconf.
@@ -3973,7 +3928,7 @@ do
ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
fi
# We set ac_cv_exeext here because the later test for it is not
- # safe: cross compilers may not add the suffix if given an '-o'
+ # safe: cross compilers may not add the suffix if given an `-o'
# argument, so we may need to know it at that point already.
# Even if this section looks crufty: it has the advantage of
# actually working.
@@ -3984,9 +3939,8 @@ do
done
test "$ac_cv_exeext" = no && ac_cv_exeext=
-else case e in #(
- e) ac_file='' ;;
-esac
+else $as_nop
+ ac_file=''
fi
if test -z "$ac_file"
then :
@@ -3995,14 +3949,13 @@ printf "%s\n" "no" >&6; }
printf "%s\n" "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
-{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error 77 "C compiler cannot create executables
-See 'config.log' for more details" "$LINENO" 5; }
-else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; } ;;
-esac
+See \`config.log' for more details" "$LINENO" 5; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
printf %s "checking for C compiler default output file name... " >&6; }
@@ -4026,10 +3979,10 @@ printf "%s\n" "$ac_try_echo"; } >&5
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
then :
- # If both 'conftest.exe' and 'conftest' are 'present' (well, observable)
-# catch 'conftest.exe'. For instance with Cygwin, 'ls conftest' will
-# work properly (i.e., refer to 'conftest.exe'), while it won't with
-# 'rm'.
+ # If both `conftest.exe' and `conftest' are `present' (well, observable)
+# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
for ac_file in conftest.exe conftest conftest.*; do
test -f "$ac_file" || continue
case $ac_file in
@@ -4039,12 +3992,11 @@ for ac_file in conftest.exe conftest conftest.*; do
* ) break;;
esac
done
-else case e in #(
- e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+else $as_nop
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot compute suffix of executables: cannot compile and link
-See 'config.log' for more details" "$LINENO" 5; } ;;
-esac
+See \`config.log' for more details" "$LINENO" 5; }
fi
rm -f conftest conftest$ac_cv_exeext
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
@@ -4060,8 +4012,6 @@ int
main (void)
{
FILE *f = fopen ("conftest.out", "w");
- if (!f)
- return 1;
return ferror (f) || fclose (f) != 0;
;
@@ -4101,27 +4051,26 @@ printf "%s\n" "$ac_try_echo"; } >&5
if test "$cross_compiling" = maybe; then
cross_compiling=yes
else
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error 77 "cannot run C compiled programs.
-If you meant to cross compile, use '--host'.
-See 'config.log' for more details" "$LINENO" 5; }
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details" "$LINENO" 5; }
fi
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
printf "%s\n" "$cross_compiling" >&6; }
-rm -f conftest.$ac_ext conftest$ac_cv_exeext \
- conftest.o conftest.obj conftest.out
+rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
ac_clean_files=$ac_clean_files_save
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
printf %s "checking for suffix of object files... " >&6; }
if test ${ac_cv_objext+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
@@ -4153,18 +4102,16 @@ then :
break;;
esac
done
-else case e in #(
- e) printf "%s\n" "$as_me: failed program was:" >&5
+else $as_nop
+ printf "%s\n" "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
-{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot compute suffix of object files: cannot compile
-See 'config.log' for more details" "$LINENO" 5; } ;;
-esac
+See \`config.log' for more details" "$LINENO" 5; }
fi
-rm -f conftest.$ac_cv_objext conftest.$ac_ext ;;
-esac
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
printf "%s\n" "$ac_cv_objext" >&6; }
@@ -4175,8 +4122,8 @@ printf %s "checking whether the compiler supports GNU C... " >&6; }
if test ${ac_cv_c_compiler_gnu+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
@@ -4193,14 +4140,12 @@ _ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_compiler_gnu=yes
-else case e in #(
- e) ac_compiler_gnu=no ;;
-esac
+else $as_nop
+ ac_compiler_gnu=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
ac_cv_c_compiler_gnu=$ac_compiler_gnu
- ;;
-esac
+
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; }
@@ -4218,8 +4163,8 @@ printf %s "checking whether $CC accepts -g... " >&6; }
if test ${ac_cv_prog_cc_g+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) ac_save_c_werror_flag=$ac_c_werror_flag
+else $as_nop
+ ac_save_c_werror_flag=$ac_c_werror_flag
ac_c_werror_flag=yes
ac_cv_prog_cc_g=no
CFLAGS="-g"
@@ -4237,8 +4182,8 @@ _ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_prog_cc_g=yes
-else case e in #(
- e) CFLAGS=""
+else $as_nop
+ CFLAGS=""
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -4253,8 +4198,8 @@ _ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
-else case e in #(
- e) ac_c_werror_flag=$ac_save_c_werror_flag
+else $as_nop
+ ac_c_werror_flag=$ac_save_c_werror_flag
CFLAGS="-g"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -4271,15 +4216,12 @@ if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_prog_cc_g=yes
fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
-esac
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
-esac
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
- ac_c_werror_flag=$ac_save_c_werror_flag ;;
-esac
+ ac_c_werror_flag=$ac_save_c_werror_flag
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
printf "%s\n" "$ac_cv_prog_cc_g" >&6; }
@@ -4306,8 +4248,8 @@ printf %s "checking for $CC option to enable C11 features... " >&6; }
if test ${ac_cv_prog_cc_c11+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) ac_cv_prog_cc_c11=no
+else $as_nop
+ ac_cv_prog_cc_c11=no
ac_save_CC=$CC
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -4324,28 +4266,25 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam
test "x$ac_cv_prog_cc_c11" != "xno" && break
done
rm -f conftest.$ac_ext
-CC=$ac_save_CC ;;
-esac
+CC=$ac_save_CC
fi
if test "x$ac_cv_prog_cc_c11" = xno
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
printf "%s\n" "unsupported" >&6; }
-else case e in #(
- e) if test "x$ac_cv_prog_cc_c11" = x
+else $as_nop
+ if test "x$ac_cv_prog_cc_c11" = x
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
printf "%s\n" "none needed" >&6; }
-else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5
printf "%s\n" "$ac_cv_prog_cc_c11" >&6; }
- CC="$CC $ac_cv_prog_cc_c11" ;;
-esac
+ CC="$CC $ac_cv_prog_cc_c11"
fi
ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11
- ac_prog_cc_stdc=c11 ;;
-esac
+ ac_prog_cc_stdc=c11
fi
fi
if test x$ac_prog_cc_stdc = xno
@@ -4355,8 +4294,8 @@ printf %s "checking for $CC option to enable C99 features... " >&6; }
if test ${ac_cv_prog_cc_c99+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) ac_cv_prog_cc_c99=no
+else $as_nop
+ ac_cv_prog_cc_c99=no
ac_save_CC=$CC
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -4373,28 +4312,25 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam
test "x$ac_cv_prog_cc_c99" != "xno" && break
done
rm -f conftest.$ac_ext
-CC=$ac_save_CC ;;
-esac
+CC=$ac_save_CC
fi
if test "x$ac_cv_prog_cc_c99" = xno
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
printf "%s\n" "unsupported" >&6; }
-else case e in #(
- e) if test "x$ac_cv_prog_cc_c99" = x
+else $as_nop
+ if test "x$ac_cv_prog_cc_c99" = x
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
printf "%s\n" "none needed" >&6; }
-else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5
printf "%s\n" "$ac_cv_prog_cc_c99" >&6; }
- CC="$CC $ac_cv_prog_cc_c99" ;;
-esac
+ CC="$CC $ac_cv_prog_cc_c99"
fi
ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99
- ac_prog_cc_stdc=c99 ;;
-esac
+ ac_prog_cc_stdc=c99
fi
fi
if test x$ac_prog_cc_stdc = xno
@@ -4404,8 +4340,8 @@ printf %s "checking for $CC option to enable C89 features... " >&6; }
if test ${ac_cv_prog_cc_c89+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) ac_cv_prog_cc_c89=no
+else $as_nop
+ ac_cv_prog_cc_c89=no
ac_save_CC=$CC
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -4422,28 +4358,25 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam
test "x$ac_cv_prog_cc_c89" != "xno" && break
done
rm -f conftest.$ac_ext
-CC=$ac_save_CC ;;
-esac
+CC=$ac_save_CC
fi
if test "x$ac_cv_prog_cc_c89" = xno
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
printf "%s\n" "unsupported" >&6; }
-else case e in #(
- e) if test "x$ac_cv_prog_cc_c89" = x
+else $as_nop
+ if test "x$ac_cv_prog_cc_c89" = x
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
printf "%s\n" "none needed" >&6; }
-else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
printf "%s\n" "$ac_cv_prog_cc_c89" >&6; }
- CC="$CC $ac_cv_prog_cc_c89" ;;
-esac
+ CC="$CC $ac_cv_prog_cc_c89"
fi
ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89
- ac_prog_cc_stdc=c89 ;;
-esac
+ ac_prog_cc_stdc=c89
fi
fi
@@ -4494,8 +4427,8 @@ printf %s "checking whether it is safe to define __EXTENSIONS__... " >&6; }
if test ${ac_cv_safe_to_define___extensions__+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
# define __EXTENSIONS__ 1
@@ -4511,12 +4444,10 @@ _ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_safe_to_define___extensions__=yes
-else case e in #(
- e) ac_cv_safe_to_define___extensions__=no ;;
-esac
+else $as_nop
+ ac_cv_safe_to_define___extensions__=no
fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
-esac
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5
printf "%s\n" "$ac_cv_safe_to_define___extensions__" >&6; }
@@ -4526,8 +4457,8 @@ printf %s "checking whether _XOPEN_SOURCE should be defined... " >&6; }
if test ${ac_cv_should_define__xopen_source+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) ac_cv_should_define__xopen_source=no
+else $as_nop
+ ac_cv_should_define__xopen_source=no
if test $ac_cv_header_wchar_h = yes
then :
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -4546,8 +4477,8 @@ _ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
-else case e in #(
- e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#define _XOPEN_SOURCE 500
@@ -4565,12 +4496,10 @@ if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_should_define__xopen_source=yes
fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
-esac
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi ;;
-esac
+fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_should_define__xopen_source" >&5
printf "%s\n" "$ac_cv_should_define__xopen_source" >&6; }
@@ -4595,8 +4524,6 @@ printf "%s\n" "$ac_cv_should_define__xopen_source" >&6; }
printf "%s\n" "#define __STDC_WANT_IEC_60559_DFP_EXT__ 1" >>confdefs.h
- printf "%s\n" "#define __STDC_WANT_IEC_60559_EXT__ 1" >>confdefs.h
-
printf "%s\n" "#define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1" >>confdefs.h
printf "%s\n" "#define __STDC_WANT_IEC_60559_TYPES_EXT__ 1" >>confdefs.h
@@ -4616,9 +4543,8 @@ then :
printf "%s\n" "#define _POSIX_1_SOURCE 2" >>confdefs.h
-else case e in #(
- e) MINIX= ;;
-esac
+else $as_nop
+ MINIX=
fi
if test $ac_cv_safe_to_define___extensions__ = yes
then :
@@ -4713,14 +4639,13 @@ printf "%s\n" X"$ub_conf_file" |
if test ${with_run_dir+y}
then :
withval=$with_run_dir; UNBOUND_RUN_DIR="$withval"
-else case e in #(
- e) if test $on_mingw = no; then
+else $as_nop
+ if test $on_mingw = no; then
UNBOUND_RUN_DIR=`dirname "$ub_conf_file"`
else
UNBOUND_RUN_DIR=""
fi
- ;;
-esac
+
fi
@@ -4735,14 +4660,13 @@ printf "%s\n" "#define RUN_DIR \"$hdr_run\"" >>confdefs.h
if test ${with_chroot_dir+y}
then :
withval=$with_chroot_dir; UNBOUND_CHROOT_DIR="$withval"
-else case e in #(
- e) if test $on_mingw = no; then
+else $as_nop
+ if test $on_mingw = no; then
UNBOUND_CHROOT_DIR="$UNBOUND_RUN_DIR"
else
UNBOUND_CHROOT_DIR=""
fi
- ;;
-esac
+
fi
@@ -4757,9 +4681,8 @@ printf "%s\n" "#define CHROOT_DIR \"$hdr_chroot\"" >>confdefs.h
if test ${with_share_dir+y}
then :
withval=$with_share_dir; UNBOUND_SHARE_DIR="$withval"
-else case e in #(
- e) UNBOUND_SHARE_DIR="$UNBOUND_RUN_DIR" ;;
-esac
+else $as_nop
+ UNBOUND_SHARE_DIR="$UNBOUND_RUN_DIR"
fi
@@ -4772,14 +4695,13 @@ printf "%s\n" "#define SHARE_DIR \"$UNBOUND_SHARE_DIR\"" >>confdefs.h
if test ${with_pidfile+y}
then :
withval=$with_pidfile; UNBOUND_PIDFILE="$withval"
-else case e in #(
- e) if test $on_mingw = no; then
+else $as_nop
+ if test $on_mingw = no; then
UNBOUND_PIDFILE="$UNBOUND_RUN_DIR/unbound.pid"
else
UNBOUND_PIDFILE=""
fi
- ;;
-esac
+
fi
@@ -4794,14 +4716,13 @@ printf "%s\n" "#define PIDFILE \"$hdr_pid\"" >>confdefs.h
if test ${with_rootkey_file+y}
then :
withval=$with_rootkey_file; UNBOUND_ROOTKEY_FILE="$withval"
-else case e in #(
- e) if test $on_mingw = no; then
+else $as_nop
+ if test $on_mingw = no; then
UNBOUND_ROOTKEY_FILE="$UNBOUND_RUN_DIR/root.key"
else
UNBOUND_ROOTKEY_FILE="C:\\Program Files\\Unbound\\root.key"
fi
- ;;
-esac
+
fi
@@ -4816,14 +4737,13 @@ printf "%s\n" "#define ROOT_ANCHOR_FILE \"$hdr_rkey\"" >>confdefs.h
if test ${with_rootcert_file+y}
then :
withval=$with_rootcert_file; UNBOUND_ROOTCERT_FILE="$withval"
-else case e in #(
- e) if test $on_mingw = no; then
+else $as_nop
+ if test $on_mingw = no; then
UNBOUND_ROOTCERT_FILE="$UNBOUND_RUN_DIR/icannbundle.pem"
else
UNBOUND_ROOTCERT_FILE="C:\\Program Files\\Unbound\\icannbundle.pem"
fi
- ;;
-esac
+
fi
@@ -4838,9 +4758,8 @@ printf "%s\n" "#define ROOT_CERT_FILE \"$hdr_rpem\"" >>confdefs.h
if test ${with_username+y}
then :
withval=$with_username; UNBOUND_USERNAME="$withval"
-else case e in #(
- e) UNBOUND_USERNAME="unbound" ;;
-esac
+else $as_nop
+ UNBOUND_USERNAME="unbound"
fi
@@ -4863,8 +4782,8 @@ printf %s "checking for grep that handles long lines and -e... " >&6; }
if test ${ac_cv_path_GREP+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test -z "$GREP"; then
+else $as_nop
+ if test -z "$GREP"; then
ac_path_GREP_found=false
# Loop through the user's path and test for each of PROGNAME-LIST
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -4883,10 +4802,9 @@ do
as_fn_executable_p "$ac_path_GREP" || continue
# Check for GNU ac_path_GREP and select it if it is found.
# Check for GNU $ac_path_GREP
-case `"$ac_path_GREP" --version 2>&1` in #(
+case `"$ac_path_GREP" --version 2>&1` in
*GNU*)
ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
-#(
*)
ac_count=0
printf %s 0123456789 >"conftest.in"
@@ -4921,8 +4839,7 @@ IFS=$as_save_IFS
else
ac_cv_path_GREP=$GREP
fi
- ;;
-esac
+
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
printf "%s\n" "$ac_cv_path_GREP" >&6; }
@@ -4936,8 +4853,8 @@ printf %s "checking for an ANSI C-conforming const... " >&6; }
if test ${ac_cv_c_const+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
@@ -5001,12 +4918,10 @@ _ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_c_const=yes
-else case e in #(
- e) ac_cv_c_const=no ;;
-esac
+else $as_nop
+ ac_cv_c_const=no
fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
-esac
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5
printf "%s\n" "$ac_cv_c_const" >&6; }
@@ -5033,8 +4948,8 @@ cache=`echo g | sed 'y%.=/+-%___p_%'`
if eval test \${cv_prog_cc_flag_$cache+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e)
+else $as_nop
+
echo 'void f(void){}' >conftest.c
if test -z "`$CC $CPPFLAGS $CFLAGS -g -c conftest.c 2>&1`"; then
eval "cv_prog_cc_flag_$cache=yes"
@@ -5042,8 +4957,7 @@ else
eval "cv_prog_cc_flag_$cache=no"
fi
rm -f conftest conftest.o conftest.c
- ;;
-esac
+
fi
if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
@@ -5066,8 +4980,8 @@ cache=`echo O2 | sed 'y%.=/+-%___p_%'`
if eval test \${cv_prog_cc_flag_$cache+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e)
+else $as_nop
+
echo 'void f(void){}' >conftest.c
if test -z "`$CC $CPPFLAGS $CFLAGS -O2 -c conftest.c 2>&1`"; then
eval "cv_prog_cc_flag_$cache=yes"
@@ -5075,8 +4989,7 @@ else
eval "cv_prog_cc_flag_$cache=no"
fi
rm -f conftest conftest.o conftest.c
- ;;
-esac
+
fi
if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
@@ -5106,8 +5019,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_CC+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test -n "$CC"; then
+else $as_nop
+ if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -5129,8 +5042,7 @@ done
done
IFS=$as_save_IFS
-fi ;;
-esac
+fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
@@ -5152,8 +5064,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_CC+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test -n "$ac_ct_CC"; then
+else $as_nop
+ if test -n "$ac_ct_CC"; then
ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -5175,8 +5087,7 @@ done
done
IFS=$as_save_IFS
-fi ;;
-esac
+fi
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
@@ -5211,8 +5122,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_CC+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test -n "$CC"; then
+else $as_nop
+ if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -5234,8 +5145,7 @@ done
done
IFS=$as_save_IFS
-fi ;;
-esac
+fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
@@ -5257,8 +5167,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_CC+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test -n "$CC"; then
+else $as_nop
+ if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
ac_prog_rejected=no
@@ -5297,8 +5207,7 @@ if test $ac_prog_rejected = yes; then
ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@"
fi
fi
-fi ;;
-esac
+fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
@@ -5322,8 +5231,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_CC+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test -n "$CC"; then
+else $as_nop
+ if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -5345,8 +5254,7 @@ done
done
IFS=$as_save_IFS
-fi ;;
-esac
+fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
@@ -5372,8 +5280,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_CC+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test -n "$ac_ct_CC"; then
+else $as_nop
+ if test -n "$ac_ct_CC"; then
ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -5395,8 +5303,7 @@ done
done
IFS=$as_save_IFS
-fi ;;
-esac
+fi
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
@@ -5434,8 +5341,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_CC+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test -n "$CC"; then
+else $as_nop
+ if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -5457,8 +5364,7 @@ done
done
IFS=$as_save_IFS
-fi ;;
-esac
+fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
@@ -5480,8 +5386,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_CC+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test -n "$ac_ct_CC"; then
+else $as_nop
+ if test -n "$ac_ct_CC"; then
ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -5503,8 +5409,7 @@ done
done
IFS=$as_save_IFS
-fi ;;
-esac
+fi
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
@@ -5533,10 +5438,10 @@ fi
fi
-test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "no acceptable C compiler found in \$PATH
-See 'config.log' for more details" "$LINENO" 5; }
+See \`config.log' for more details" "$LINENO" 5; }
# Provide some information about the compiler.
printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
@@ -5568,8 +5473,8 @@ printf %s "checking whether the compiler supports GNU C... " >&6; }
if test ${ac_cv_c_compiler_gnu+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
@@ -5586,14 +5491,12 @@ _ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_compiler_gnu=yes
-else case e in #(
- e) ac_compiler_gnu=no ;;
-esac
+else $as_nop
+ ac_compiler_gnu=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
ac_cv_c_compiler_gnu=$ac_compiler_gnu
- ;;
-esac
+
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; }
@@ -5611,8 +5514,8 @@ printf %s "checking whether $CC accepts -g... " >&6; }
if test ${ac_cv_prog_cc_g+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) ac_save_c_werror_flag=$ac_c_werror_flag
+else $as_nop
+ ac_save_c_werror_flag=$ac_c_werror_flag
ac_c_werror_flag=yes
ac_cv_prog_cc_g=no
CFLAGS="-g"
@@ -5630,8 +5533,8 @@ _ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_prog_cc_g=yes
-else case e in #(
- e) CFLAGS=""
+else $as_nop
+ CFLAGS=""
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -5646,8 +5549,8 @@ _ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
-else case e in #(
- e) ac_c_werror_flag=$ac_save_c_werror_flag
+else $as_nop
+ ac_c_werror_flag=$ac_save_c_werror_flag
CFLAGS="-g"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -5664,15 +5567,12 @@ if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_prog_cc_g=yes
fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
-esac
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
-esac
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
- ac_c_werror_flag=$ac_save_c_werror_flag ;;
-esac
+ ac_c_werror_flag=$ac_save_c_werror_flag
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
printf "%s\n" "$ac_cv_prog_cc_g" >&6; }
@@ -5699,8 +5599,8 @@ printf %s "checking for $CC option to enable C11 features... " >&6; }
if test ${ac_cv_prog_cc_c11+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) ac_cv_prog_cc_c11=no
+else $as_nop
+ ac_cv_prog_cc_c11=no
ac_save_CC=$CC
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -5717,28 +5617,25 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam
test "x$ac_cv_prog_cc_c11" != "xno" && break
done
rm -f conftest.$ac_ext
-CC=$ac_save_CC ;;
-esac
+CC=$ac_save_CC
fi
if test "x$ac_cv_prog_cc_c11" = xno
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
printf "%s\n" "unsupported" >&6; }
-else case e in #(
- e) if test "x$ac_cv_prog_cc_c11" = x
+else $as_nop
+ if test "x$ac_cv_prog_cc_c11" = x
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
printf "%s\n" "none needed" >&6; }
-else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5
printf "%s\n" "$ac_cv_prog_cc_c11" >&6; }
- CC="$CC $ac_cv_prog_cc_c11" ;;
-esac
+ CC="$CC $ac_cv_prog_cc_c11"
fi
ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11
- ac_prog_cc_stdc=c11 ;;
-esac
+ ac_prog_cc_stdc=c11
fi
fi
if test x$ac_prog_cc_stdc = xno
@@ -5748,8 +5645,8 @@ printf %s "checking for $CC option to enable C99 features... " >&6; }
if test ${ac_cv_prog_cc_c99+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) ac_cv_prog_cc_c99=no
+else $as_nop
+ ac_cv_prog_cc_c99=no
ac_save_CC=$CC
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -5766,28 +5663,25 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam
test "x$ac_cv_prog_cc_c99" != "xno" && break
done
rm -f conftest.$ac_ext
-CC=$ac_save_CC ;;
-esac
+CC=$ac_save_CC
fi
if test "x$ac_cv_prog_cc_c99" = xno
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
printf "%s\n" "unsupported" >&6; }
-else case e in #(
- e) if test "x$ac_cv_prog_cc_c99" = x
+else $as_nop
+ if test "x$ac_cv_prog_cc_c99" = x
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
printf "%s\n" "none needed" >&6; }
-else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5
printf "%s\n" "$ac_cv_prog_cc_c99" >&6; }
- CC="$CC $ac_cv_prog_cc_c99" ;;
-esac
+ CC="$CC $ac_cv_prog_cc_c99"
fi
ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99
- ac_prog_cc_stdc=c99 ;;
-esac
+ ac_prog_cc_stdc=c99
fi
fi
if test x$ac_prog_cc_stdc = xno
@@ -5797,8 +5691,8 @@ printf %s "checking for $CC option to enable C89 features... " >&6; }
if test ${ac_cv_prog_cc_c89+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) ac_cv_prog_cc_c89=no
+else $as_nop
+ ac_cv_prog_cc_c89=no
ac_save_CC=$CC
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -5815,28 +5709,25 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam
test "x$ac_cv_prog_cc_c89" != "xno" && break
done
rm -f conftest.$ac_ext
-CC=$ac_save_CC ;;
-esac
+CC=$ac_save_CC
fi
if test "x$ac_cv_prog_cc_c89" = xno
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
printf "%s\n" "unsupported" >&6; }
-else case e in #(
- e) if test "x$ac_cv_prog_cc_c89" = x
+else $as_nop
+ if test "x$ac_cv_prog_cc_c89" = x
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
printf "%s\n" "none needed" >&6; }
-else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
printf "%s\n" "$ac_cv_prog_cc_c89" >&6; }
- CC="$CC $ac_cv_prog_cc_c89" ;;
-esac
+ CC="$CC $ac_cv_prog_cc_c89"
fi
ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89
- ac_prog_cc_stdc=c89 ;;
-esac
+ ac_prog_cc_stdc=c89
fi
fi
@@ -5873,8 +5764,8 @@ cache=`echo Werror | sed 'y%.=/+-%___p_%'`
if eval test \${cv_prog_cc_flag_$cache+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e)
+else $as_nop
+
echo 'void f(void){}' >conftest.c
if test -z "`$CC $CPPFLAGS $CFLAGS -Werror -c conftest.c 2>&1`"; then
eval "cv_prog_cc_flag_$cache=yes"
@@ -5882,8 +5773,7 @@ else
eval "cv_prog_cc_flag_$cache=no"
fi
rm -f conftest conftest.o conftest.c
- ;;
-esac
+
fi
if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
@@ -5906,8 +5796,8 @@ cache=`echo Wall | sed 'y%.=/+-%___p_%'`
if eval test \${cv_prog_cc_flag_$cache+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e)
+else $as_nop
+
echo 'void f(void){}' >conftest.c
if test -z "`$CC $CPPFLAGS $CFLAGS -Wall -c conftest.c 2>&1`"; then
eval "cv_prog_cc_flag_$cache=yes"
@@ -5915,8 +5805,7 @@ else
eval "cv_prog_cc_flag_$cache=no"
fi
rm -f conftest conftest.o conftest.c
- ;;
-esac
+
fi
if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
@@ -5941,8 +5830,8 @@ cache=`echo std=c99 | sed 'y%.=/+-%___p_%'`
if eval test \${cv_prog_cc_flag_$cache+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e)
+else $as_nop
+
echo 'void f(void){}' >conftest.c
if test -z "`$CC $CPPFLAGS $CFLAGS -std=c99 -c conftest.c 2>&1`"; then
eval "cv_prog_cc_flag_$cache=yes"
@@ -5950,8 +5839,7 @@ else
eval "cv_prog_cc_flag_$cache=no"
fi
rm -f conftest conftest.o conftest.c
- ;;
-esac
+
fi
if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
@@ -5974,8 +5862,8 @@ cache=`echo xc99 | sed 'y%.=/+-%___p_%'`
if eval test \${cv_prog_cc_flag_$cache+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e)
+else $as_nop
+
echo 'void f(void){}' >conftest.c
if test -z "`$CC $CPPFLAGS $CFLAGS -xc99 -c conftest.c 2>&1`"; then
eval "cv_prog_cc_flag_$cache=yes"
@@ -5983,8 +5871,7 @@ else
eval "cv_prog_cc_flag_$cache=no"
fi
rm -f conftest conftest.o conftest.c
- ;;
-esac
+
fi
if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
@@ -6021,12 +5908,12 @@ fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we need $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED=1 -D_ALL_SOURCE as a flag for $CC" >&5
printf %s "checking whether we need $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED=1 -D_ALL_SOURCE as a flag for $CC... " >&6; }
-cache=`printf "%s\n" "$C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED=1 -D_ALL_SOURCE" | sed "$as_sed_sh"`
+cache=`printf "%s\n" "$C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED=1 -D_ALL_SOURCE" | $as_tr_sh`
if eval test \${cv_prog_cc_flag_needed_$cache+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e)
+else $as_nop
+
echo '
#include "confdefs.h"
#include <stdlib.h>
@@ -6080,8 +5967,7 @@ fi
fi
rm -f conftest conftest.c conftest.o
- ;;
-esac
+
fi
if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = yes"; then
@@ -6114,12 +6000,12 @@ fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we need $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_ALL_SOURCE as a flag for $CC" >&5
printf %s "checking whether we need $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_ALL_SOURCE as a flag for $CC... " >&6; }
-cache=`printf "%s\n" "$C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_ALL_SOURCE" | sed "$as_sed_sh"`
+cache=`printf "%s\n" "$C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_ALL_SOURCE" | $as_tr_sh`
if eval test \${cv_prog_cc_flag_needed_$cache+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e)
+else $as_nop
+
echo '
#include "confdefs.h"
#include <stdlib.h>
@@ -6173,8 +6059,7 @@ fi
fi
rm -f conftest conftest.c conftest.o
- ;;
-esac
+
fi
if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = yes"; then
@@ -6207,12 +6092,12 @@ fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we need $C99FLAG as a flag for $CC" >&5
printf %s "checking whether we need $C99FLAG as a flag for $CC... " >&6; }
-cache=`printf "%s\n" "$C99FLAG" | sed "$as_sed_sh"`
+cache=`printf "%s\n" "$C99FLAG" | $as_tr_sh`
if eval test \${cv_prog_cc_flag_needed_$cache+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e)
+else $as_nop
+
echo '
#include <stdbool.h>
#include <ctype.h>
@@ -6239,8 +6124,7 @@ fi
fi
rm -f conftest conftest.c conftest.o
- ;;
-esac
+
fi
if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = yes"; then
@@ -6277,8 +6161,8 @@ cache=_D_BSD_SOURCE__D_DEFAULT_SOURCE
if eval test \${cv_prog_cc_flag_needed_$cache+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e)
+else $as_nop
+
echo '
#include <ctype.h>
@@ -6306,8 +6190,7 @@ fi
fi
rm -f conftest conftest.c conftest.o
- ;;
-esac
+
fi
if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = yes"; then
@@ -6344,8 +6227,8 @@ cache=_D_GNU_SOURCE
if eval test \${cv_prog_cc_flag_needed_$cache+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e)
+else $as_nop
+
echo '
#include <netinet/in.h>
@@ -6373,8 +6256,7 @@ fi
fi
rm -f conftest conftest.c conftest.o
- ;;
-esac
+
fi
if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = yes"; then
@@ -6414,8 +6296,8 @@ cache=_D_GNU_SOURCE__D_FRSRESGID
if eval test \${cv_prog_cc_flag_needed_$cache+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e)
+else $as_nop
+
echo '
#include <unistd.h>
@@ -6443,8 +6325,7 @@ fi
fi
rm -f conftest conftest.c conftest.o
- ;;
-esac
+
fi
if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = yes"; then
@@ -6481,8 +6362,8 @@ cache=_D_POSIX_C_SOURCE_200112
if eval test \${cv_prog_cc_flag_needed_$cache+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e)
+else $as_nop
+
echo '
#include "confdefs.h"
#ifdef HAVE_TIME_H
@@ -6521,8 +6402,7 @@ fi
fi
rm -f conftest conftest.c conftest.o
- ;;
-esac
+
fi
if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = yes"; then
@@ -6559,8 +6439,8 @@ cache=_D__EXTENSIONS__
if eval test \${cv_prog_cc_flag_needed_$cache+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e)
+else $as_nop
+
echo '
#include "confdefs.h"
#include <stdlib.h>
@@ -6605,8 +6485,7 @@ fi
fi
rm -f conftest conftest.c conftest.o
- ;;
-esac
+
fi
if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = yes"; then
@@ -6662,8 +6541,8 @@ cache=`echo W | sed 'y%.=/+-%___p_%'`
if eval test \${cv_prog_cc_flag_$cache+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e)
+else $as_nop
+
echo 'void f(void){}' >conftest.c
if test -z "`$CC $CPPFLAGS $CFLAGS -W -c conftest.c 2>&1`"; then
eval "cv_prog_cc_flag_$cache=yes"
@@ -6671,8 +6550,7 @@ else
eval "cv_prog_cc_flag_$cache=no"
fi
rm -f conftest conftest.o conftest.c
- ;;
-esac
+
fi
if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
@@ -6695,8 +6573,8 @@ cache=`echo Wall | sed 'y%.=/+-%___p_%'`
if eval test \${cv_prog_cc_flag_$cache+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e)
+else $as_nop
+
echo 'void f(void){}' >conftest.c
if test -z "`$CC $CPPFLAGS $CFLAGS -Wall -c conftest.c 2>&1`"; then
eval "cv_prog_cc_flag_$cache=yes"
@@ -6704,8 +6582,7 @@ else
eval "cv_prog_cc_flag_$cache=no"
fi
rm -f conftest conftest.o conftest.c
- ;;
-esac
+
fi
if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
@@ -6728,8 +6605,8 @@ cache=`echo Wextra | sed 'y%.=/+-%___p_%'`
if eval test \${cv_prog_cc_flag_$cache+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e)
+else $as_nop
+
echo 'void f(void){}' >conftest.c
if test -z "`$CC $CPPFLAGS $CFLAGS -Wextra -c conftest.c 2>&1`"; then
eval "cv_prog_cc_flag_$cache=yes"
@@ -6737,8 +6614,7 @@ else
eval "cv_prog_cc_flag_$cache=no"
fi
rm -f conftest conftest.o conftest.c
- ;;
-esac
+
fi
if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
@@ -6761,8 +6637,8 @@ cache=`echo Wdeclaration-after-statement | sed 'y%.=/+-%___p_%'`
if eval test \${cv_prog_cc_flag_$cache+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e)
+else $as_nop
+
echo 'void f(void){}' >conftest.c
if test -z "`$CC $CPPFLAGS $CFLAGS -Wdeclaration-after-statement -c conftest.c 2>&1`"; then
eval "cv_prog_cc_flag_$cache=yes"
@@ -6770,8 +6646,7 @@ else
eval "cv_prog_cc_flag_$cache=no"
fi
rm -f conftest conftest.o conftest.c
- ;;
-esac
+
fi
if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
@@ -6836,10 +6711,9 @@ printf "%s\n" "yes" >&6; }
fi
rm -f conftest conftest.c conftest.o
-else case e in #(
- e) CFLAGS="$BAKCFLAGS" ; { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; } ;;
-esac
+else $as_nop
+ CFLAGS="$BAKCFLAGS" ; { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
@@ -6886,10 +6760,9 @@ printf "%s\n" "yes" >&6; }
fi
rm -f conftest conftest.c conftest.o
-else case e in #(
- e) LDFLAGS="$BAKLDFLAGS" ; CFLAGS="$BAKCFLAGS" ; { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; } ;;
-esac
+else $as_nop
+ LDFLAGS="$BAKLDFLAGS" ; CFLAGS="$BAKCFLAGS" ; { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
@@ -6934,10 +6807,9 @@ printf "%s\n" "yes" >&6; }
fi
rm -f conftest conftest.c conftest.o
-else case e in #(
- e) LDFLAGS="$BAKLDFLAGS" ; { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; } ;;
-esac
+else $as_nop
+ LDFLAGS="$BAKLDFLAGS" ; { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
@@ -6951,8 +6823,8 @@ printf %s "checking for inline... " >&6; }
if test ${ac_cv_c_inline+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) ac_cv_c_inline=no
+else $as_nop
+ ac_cv_c_inline=no
for ac_kw in inline __inline__ __inline; do
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -6970,8 +6842,7 @@ fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
test "$ac_cv_c_inline" != no && break
done
- ;;
-esac
+
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5
printf "%s\n" "$ac_cv_c_inline" >&6; }
@@ -6997,8 +6868,8 @@ printf %s "checking whether the C compiler (${CC-cc}) accepts the \"format\" att
if test ${ac_cv_c_format_attribute+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) ac_cv_c_format_attribute=no
+else $as_nop
+ ac_cv_c_format_attribute=no
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdio.h>
@@ -7018,13 +6889,11 @@ _ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_c_format_attribute="yes"
-else case e in #(
- e) ac_cv_c_format_attribute="no" ;;
-esac
+else $as_nop
+ ac_cv_c_format_attribute="no"
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
- ;;
-esac
+
fi
@@ -7042,8 +6911,8 @@ printf %s "checking whether the C compiler (${CC-cc}) accepts the \"unused\" att
if test ${ac_cv_c_unused_attribute+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) ac_cv_c_unused_attribute=no
+else $as_nop
+ ac_cv_c_unused_attribute=no
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdio.h>
@@ -7062,13 +6931,11 @@ _ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_c_unused_attribute="yes"
-else case e in #(
- e) ac_cv_c_unused_attribute="no" ;;
-esac
+else $as_nop
+ ac_cv_c_unused_attribute="no"
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
- ;;
-esac
+
fi
@@ -7084,14 +6951,65 @@ fi
+BAKCFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS $ERRFLAG"
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler (${CC-cc}) accepts the \"nonstring\" attribute" >&5
+printf %s "checking whether the C compiler (${CC-cc}) accepts the \"nonstring\" attribute... " >&6; }
+if test ${ac_cv_c_nonstring_attribute+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ ac_cv_c_nonstring_attribute=no
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdio.h>
+struct test {
+ char __attribute__((nonstring)) s[1];
+};
+
+int
+main (void)
+{
+
+ struct test t = { "1" };
+ (void) t;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+ ac_cv_c_nonstring_attribute="yes"
+else $as_nop
+ ac_cv_c_nonstring_attribute="no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+CFLAGS="$BAKCFLAGS"
+
+fi
+
+
+
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_nonstring_attribute" >&5
+printf "%s\n" "$ac_cv_c_nonstring_attribute" >&6; }
+if test $ac_cv_c_nonstring_attribute = yes; then
+
+printf "%s\n" "#define HAVE_ATTR_NONSTRING 1" >>confdefs.h
+
+fi
+
+
+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler (${CC-cc}) accepts the \"weak\" attribute" >&5
printf %s "checking whether the C compiler (${CC-cc}) accepts the \"weak\" attribute... " >&6; }
if test ${ac_cv_c_weak_attribute+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) ac_cv_c_weak_attribute=no
+else $as_nop
+ ac_cv_c_weak_attribute=no
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdio.h>
@@ -7110,13 +7028,11 @@ _ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_c_weak_attribute="yes"
-else case e in #(
- e) ac_cv_c_weak_attribute="no" ;;
-esac
+else $as_nop
+ ac_cv_c_weak_attribute="no"
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
- ;;
-esac
+
fi
@@ -7143,12 +7059,19 @@ printf %s "checking whether the C compiler (${CC-cc}) accepts the \"noreturn\" a
if test ${ac_cv_c_noreturn_attribute+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) ac_cv_c_noreturn_attribute=no
+else $as_nop
+ ac_cv_c_noreturn_attribute=no
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdio.h>
-__attribute__((noreturn)) void f(int x) { printf("%d", x); }
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+#else
+# ifdef HAVE_STDLIB_H
+# include <stdlib.h>
+# endif
+#endif
+__attribute__((noreturn)) void f(int x) { printf("%d", x); exit(1); }
int
main (void)
@@ -7163,13 +7086,11 @@ _ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_c_noreturn_attribute="yes"
-else case e in #(
- e) ac_cv_c_noreturn_attribute="no" ;;
-esac
+else $as_nop
+ ac_cv_c_noreturn_attribute="no"
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
- ;;
-esac
+
fi
@@ -7198,8 +7119,8 @@ CFLAGS="$CFLAGS -Werror"
if test ${ac_cv_c_fallthrough_attribute+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) ac_cv_c_fallthrough_attribute=no
+else $as_nop
+ ac_cv_c_fallthrough_attribute=no
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdio.h>
@@ -7233,13 +7154,11 @@ _ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_c_fallthrough_attribute="yes"
-else case e in #(
- e) ac_cv_c_fallthrough_attribute="no" ;;
-esac
+else $as_nop
+ ac_cv_c_fallthrough_attribute="no"
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
- ;;
-esac
+
fi
CFLAGS="$BAKCFLAGS"
@@ -7277,8 +7196,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_LEX+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test -n "$LEX"; then
+else $as_nop
+ if test -n "$LEX"; then
ac_cv_prog_LEX="$LEX" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -7300,8 +7219,7 @@ done
done
IFS=$as_save_IFS
-fi ;;
-esac
+fi
fi
LEX=$ac_cv_prog_LEX
if test -n "$LEX"; then
@@ -7359,8 +7277,8 @@ printf %s "checking for lex output file root... " >&6; }
if test ${ac_cv_prog_lex_root+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e)
+else $as_nop
+
ac_cv_prog_lex_root=unknown
{ { ac_try="$LEX conftest.l"
case "(($ac_try" in
@@ -7377,8 +7295,7 @@ if test -f lex.yy.c; then
ac_cv_prog_lex_root=lex.yy
elif test -f lexyy.c; then
ac_cv_prog_lex_root=lexyy
-fi ;;
-esac
+fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_lex_root" >&5
printf "%s\n" "$ac_cv_prog_lex_root" >&6; }
@@ -7393,15 +7310,15 @@ LEX_OUTPUT_ROOT=$ac_cv_prog_lex_root
if test ${LEXLIB+y}
then :
-else case e in #(
- e)
+else $as_nop
+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for lex library" >&5
printf %s "checking for lex library... " >&6; }
if test ${ac_cv_lib_lex+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e)
+else $as_nop
+
ac_save_LIBS="$LIBS"
ac_found=false
for ac_cv_lib_lex in 'none needed' -lfl -ll 'not found'; do
@@ -7431,8 +7348,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam \
fi
done
LIBS="$ac_save_LIBS"
- ;;
-esac
+
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lex" >&5
printf "%s\n" "$ac_cv_lib_lex" >&6; }
@@ -7444,12 +7360,10 @@ printf "%s\n" "$as_me: WARNING: required lex library not found; giving up on $LE
elif test "$ac_cv_lib_lex" = 'none needed'
then :
LEXLIB=''
-else case e in #(
- e) LEXLIB=$ac_cv_lib_lex ;;
-esac
+else $as_nop
+ LEXLIB=$ac_cv_lib_lex
fi
- ;;
-esac
+
fi
@@ -7461,8 +7375,8 @@ printf %s "checking whether yytext is a pointer... " >&6; }
if test ${ac_cv_prog_lex_yytext_pointer+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) # POSIX says lex can declare yytext either as a pointer or an array; the
+else $as_nop
+ # POSIX says lex can declare yytext either as a pointer or an array; the
# default is implementation-dependent. Figure out which it is, since
# not all implementations provide the %pointer and %array declarations.
ac_cv_prog_lex_yytext_pointer=no
@@ -7477,8 +7391,7 @@ then :
ac_cv_prog_lex_yytext_pointer=yes
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
- ;;
-esac
+
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_lex_yytext_pointer" >&5
printf "%s\n" "$ac_cv_prog_lex_yytext_pointer" >&6; }
@@ -7538,8 +7451,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_YACC+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test -n "$YACC"; then
+else $as_nop
+ if test -n "$YACC"; then
ac_cv_prog_YACC="$YACC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -7561,8 +7474,7 @@ done
done
IFS=$as_save_IFS
-fi ;;
-esac
+fi
fi
YACC=$ac_cv_prog_YACC
if test -n "$YACC"; then
@@ -7590,8 +7502,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_doxygen+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test -n "$doxygen"; then
+else $as_nop
+ if test -n "$doxygen"; then
ac_cv_prog_doxygen="$doxygen" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -7613,8 +7525,7 @@ done
done
IFS=$as_save_IFS
-fi ;;
-esac
+fi
fi
doxygen=$ac_cv_prog_doxygen
if test -n "$doxygen"; then
@@ -7634,8 +7545,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_STRIP+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test -n "$STRIP"; then
+else $as_nop
+ if test -n "$STRIP"; then
ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -7657,8 +7568,7 @@ done
done
IFS=$as_save_IFS
-fi ;;
-esac
+fi
fi
STRIP=$ac_cv_prog_STRIP
if test -n "$STRIP"; then
@@ -7680,8 +7590,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_STRIP+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test -n "$ac_ct_STRIP"; then
+else $as_nop
+ if test -n "$ac_ct_STRIP"; then
ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -7703,8 +7613,7 @@ done
done
IFS=$as_save_IFS
-fi ;;
-esac
+fi
fi
ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
if test -n "$ac_ct_STRIP"; then
@@ -7742,16 +7651,15 @@ printf %s "checking build system type... " >&6; }
if test ${ac_cv_build+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) ac_build_alias=$build_alias
+else $as_nop
+ ac_build_alias=$build_alias
test "x$ac_build_alias" = x &&
ac_build_alias=`$SHELL "${ac_aux_dir}config.guess"`
test "x$ac_build_alias" = x &&
as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
ac_cv_build=`$SHELL "${ac_aux_dir}config.sub" $ac_build_alias` ||
as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $ac_build_alias failed" "$LINENO" 5
- ;;
-esac
+
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
printf "%s\n" "$ac_cv_build" >&6; }
@@ -7778,15 +7686,14 @@ printf %s "checking host system type... " >&6; }
if test ${ac_cv_host+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test "x$host_alias" = x; then
+else $as_nop
+ if test "x$host_alias" = x; then
ac_cv_host=$ac_cv_build
else
ac_cv_host=`$SHELL "${ac_aux_dir}config.sub" $host_alias` ||
as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $host_alias failed" "$LINENO" 5
fi
- ;;
-esac
+
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
printf "%s\n" "$ac_cv_host" >&6; }
@@ -7836,8 +7743,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_path_AR+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) case $AR in
+else $as_nop
+ case $AR in
[\\/]* | ?:[\\/]*)
ac_cv_path_AR="$AR" # Let the user override the test with a path.
;;
@@ -7862,7 +7769,6 @@ done
IFS=$as_save_IFS
;;
-esac ;;
esac
fi
AR=$ac_cv_path_AR
@@ -7885,8 +7791,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_path_ac_pt_AR+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) case $ac_pt_AR in
+else $as_nop
+ case $ac_pt_AR in
[\\/]* | ?:[\\/]*)
ac_cv_path_ac_pt_AR="$ac_pt_AR" # Let the user override the test with a path.
;;
@@ -7911,7 +7817,6 @@ done
IFS=$as_save_IFS
;;
-esac ;;
esac
fi
ac_pt_AR=$ac_cv_path_ac_pt_AR
@@ -7951,8 +7856,8 @@ esac
-macro_version='2.5.4'
-macro_revision='2.5.4'
+macro_version='2.4.6'
+macro_revision='2.4.6'
@@ -8043,8 +7948,8 @@ printf %s "checking for a sed that does not truncate output... " >&6; }
if test ${ac_cv_path_SED+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
+else $as_nop
+ ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
for ac_i in 1 2 3 4 5 6 7; do
ac_script="$ac_script$as_nl$ac_script"
done
@@ -8069,10 +7974,9 @@ do
as_fn_executable_p "$ac_path_SED" || continue
# Check for GNU ac_path_SED and select it if it is found.
# Check for GNU $ac_path_SED
-case `"$ac_path_SED" --version 2>&1` in #(
+case `"$ac_path_SED" --version 2>&1` in
*GNU*)
ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
-#(
*)
ac_count=0
printf %s 0123456789 >"conftest.in"
@@ -8107,8 +8011,7 @@ IFS=$as_save_IFS
else
ac_cv_path_SED=$SED
fi
- ;;
-esac
+
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
printf "%s\n" "$ac_cv_path_SED" >&6; }
@@ -8133,8 +8036,8 @@ printf %s "checking for egrep... " >&6; }
if test ${ac_cv_path_EGREP+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+else $as_nop
+ if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
then ac_cv_path_EGREP="$GREP -E"
else
if test -z "$EGREP"; then
@@ -8156,10 +8059,9 @@ do
as_fn_executable_p "$ac_path_EGREP" || continue
# Check for GNU ac_path_EGREP and select it if it is found.
# Check for GNU $ac_path_EGREP
-case `"$ac_path_EGREP" --version 2>&1` in #(
+case `"$ac_path_EGREP" --version 2>&1` in
*GNU*)
ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
-#(
*)
ac_count=0
printf %s 0123456789 >"conftest.in"
@@ -8195,23 +8097,20 @@ else
ac_cv_path_EGREP=$EGREP
fi
- fi ;;
-esac
+ fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
printf "%s\n" "$ac_cv_path_EGREP" >&6; }
EGREP="$ac_cv_path_EGREP"
- EGREP_TRADITIONAL=$EGREP
- ac_cv_path_EGREP_TRADITIONAL=$EGREP
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
printf %s "checking for fgrep... " >&6; }
if test ${ac_cv_path_FGREP+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
+else $as_nop
+ if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
then ac_cv_path_FGREP="$GREP -F"
else
if test -z "$FGREP"; then
@@ -8233,10 +8132,9 @@ do
as_fn_executable_p "$ac_path_FGREP" || continue
# Check for GNU ac_path_FGREP and select it if it is found.
# Check for GNU $ac_path_FGREP
-case `"$ac_path_FGREP" --version 2>&1` in #(
+case `"$ac_path_FGREP" --version 2>&1` in
*GNU*)
ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;;
-#(
*)
ac_count=0
printf %s 0123456789 >"conftest.in"
@@ -8272,8 +8170,7 @@ else
ac_cv_path_FGREP=$FGREP
fi
- fi ;;
-esac
+ fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
printf "%s\n" "$ac_cv_path_FGREP" >&6; }
@@ -8304,9 +8201,8 @@ test -z "$GREP" && GREP=grep
if test ${with_gnu_ld+y}
then :
withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes
-else case e in #(
- e) with_gnu_ld=no ;;
-esac
+else $as_nop
+ with_gnu_ld=no
fi
ac_prog=ld
@@ -8315,7 +8211,7 @@ if test yes = "$GCC"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
printf %s "checking for ld used by $CC... " >&6; }
case $host in
- *-*-mingw* | *-*-windows*)
+ *-*-mingw*)
# gcc leaves a trailing carriage return, which upsets mingw
ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
*)
@@ -8351,8 +8247,8 @@ fi
if test ${lt_cv_path_LD+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test -z "$LD"; then
+else $as_nop
+ if test -z "$LD"; then
lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
for ac_dir in $PATH; do
IFS=$lt_save_ifs
@@ -8375,8 +8271,7 @@ else case e in #(
IFS=$lt_save_ifs
else
lt_cv_path_LD=$LD # Let the user override the test with a path.
-fi ;;
-esac
+fi
fi
LD=$lt_cv_path_LD
@@ -8393,8 +8288,8 @@ printf %s "checking if the linker ($LD) is GNU ld... " >&6; }
if test ${lt_cv_prog_gnu_ld+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) # I'd rather use --version here, but apparently some GNU lds only accept -v.
+else $as_nop
+ # I'd rather use --version here, but apparently some GNU lds only accept -v.
case `$LD -v 2>&1 </dev/null` in
*GNU* | *'with BFD'*)
lt_cv_prog_gnu_ld=yes
@@ -8402,7 +8297,6 @@ case `$LD -v 2>&1 </dev/null` in
*)
lt_cv_prog_gnu_ld=no
;;
-esac ;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
@@ -8422,8 +8316,8 @@ printf %s "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
if test ${lt_cv_path_NM+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test -n "$NM"; then
+else $as_nop
+ if test -n "$NM"; then
# Let the user override the test.
lt_cv_path_NM=$NM
else
@@ -8444,16 +8338,16 @@ else
# Tru64's nm complains that /dev/null is an invalid object file
# MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty
case $build_os in
- mingw* | windows*) lt_bad_file=conftest.nm/nofile ;;
+ mingw*) lt_bad_file=conftest.nm/nofile ;;
*) lt_bad_file=/dev/null ;;
esac
- case `"$tmp_nm" -B $lt_bad_file 2>&1 | $SED '1q'` in
+ case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in
*$lt_bad_file* | *'Invalid file or object type'*)
lt_cv_path_NM="$tmp_nm -B"
break 2
;;
*)
- case `"$tmp_nm" -p /dev/null 2>&1 | $SED '1q'` in
+ case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
*/dev/null*)
lt_cv_path_NM="$tmp_nm -p"
break 2
@@ -8470,8 +8364,7 @@ else
IFS=$lt_save_ifs
done
: ${lt_cv_path_NM=no}
-fi ;;
-esac
+fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
printf "%s\n" "$lt_cv_path_NM" >&6; }
@@ -8492,8 +8385,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_DUMPBIN+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test -n "$DUMPBIN"; then
+else $as_nop
+ if test -n "$DUMPBIN"; then
ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -8515,8 +8408,7 @@ done
done
IFS=$as_save_IFS
-fi ;;
-esac
+fi
fi
DUMPBIN=$ac_cv_prog_DUMPBIN
if test -n "$DUMPBIN"; then
@@ -8542,8 +8434,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_DUMPBIN+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test -n "$ac_ct_DUMPBIN"; then
+else $as_nop
+ if test -n "$ac_ct_DUMPBIN"; then
ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -8565,8 +8457,7 @@ done
done
IFS=$as_save_IFS
-fi ;;
-esac
+fi
fi
ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN
if test -n "$ac_ct_DUMPBIN"; then
@@ -8594,7 +8485,7 @@ esac
fi
fi
- case `$DUMPBIN -symbols -headers /dev/null 2>&1 | $SED '1q'` in
+ case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in
*COFF*)
DUMPBIN="$DUMPBIN -symbols -headers"
;;
@@ -8620,8 +8511,8 @@ printf %s "checking the name lister ($NM) interface... " >&6; }
if test ${lt_cv_nm_interface+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) lt_cv_nm_interface="BSD nm"
+else $as_nop
+ lt_cv_nm_interface="BSD nm"
echo "int some_variable = 0;" > conftest.$ac_ext
(eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5)
(eval "$ac_compile" 2>conftest.err)
@@ -8634,8 +8525,7 @@ else case e in #(
if $GREP 'External.*some_variable' conftest.out > /dev/null; then
lt_cv_nm_interface="MS dumpbin"
fi
- rm -f conftest* ;;
-esac
+ rm -f conftest*
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
printf "%s\n" "$lt_cv_nm_interface" >&6; }
@@ -8657,8 +8547,8 @@ printf %s "checking the maximum length of command line arguments... " >&6; }
if test ${lt_cv_sys_max_cmd_len+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) i=0
+else $as_nop
+ i=0
teststring=ABCD
case $build_os in
@@ -8670,14 +8560,14 @@ else case e in #(
lt_cv_sys_max_cmd_len=12288; # 12K is about right
;;
- gnu* | ironclad*)
- # Under GNU Hurd and Ironclad, this test is not required because there
- # is no limit to the length of command line arguments.
+ gnu*)
+ # Under GNU Hurd, this test is not required because there is
+ # no limit to the length of command line arguments.
# Libtool will interpret -1 as no limit whatsoever
lt_cv_sys_max_cmd_len=-1;
;;
- cygwin* | mingw* | windows* | cegcc*)
+ cygwin* | mingw* | cegcc*)
# On Win9x/ME, this test blows up -- it succeeds, but takes
# about 5 minutes as the teststring grows exponentially.
# Worse, since 9x/ME are not pre-emptively multitasking,
@@ -8699,7 +8589,7 @@ else case e in #(
lt_cv_sys_max_cmd_len=8192;
;;
- darwin* | dragonfly* | freebsd* | midnightbsd* | netbsd* | openbsd*)
+ bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*)
# This has been around since 386BSD, at least. Likely further.
if test -x /sbin/sysctl; then
lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
@@ -8742,7 +8632,7 @@ else case e in #(
sysv5* | sco5v6* | sysv4.2uw2*)
kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
if test -n "$kargmax"; then
- lt_cv_sys_max_cmd_len=`echo $kargmax | $SED 's/.*[ ]//'`
+ lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'`
else
lt_cv_sys_max_cmd_len=32768
fi
@@ -8780,8 +8670,7 @@ else case e in #(
fi
;;
esac
- ;;
-esac
+
fi
if test -n "$lt_cv_sys_max_cmd_len"; then
@@ -8838,11 +8727,11 @@ printf %s "checking how to convert $build file names to $host format... " >&6; }
if test ${lt_cv_to_host_file_cmd+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) case $host in
+else $as_nop
+ case $host in
*-*-mingw* )
case $build in
- *-*-mingw* | *-*-windows* ) # actually msys
+ *-*-mingw* ) # actually msys
lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
;;
*-*-cygwin* )
@@ -8855,7 +8744,7 @@ else case e in #(
;;
*-*-cygwin* )
case $build in
- *-*-mingw* | *-*-windows* ) # actually msys
+ *-*-mingw* ) # actually msys
lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
;;
*-*-cygwin* )
@@ -8870,8 +8759,7 @@ else case e in #(
lt_cv_to_host_file_cmd=func_convert_file_noop
;;
esac
- ;;
-esac
+
fi
to_host_file_cmd=$lt_cv_to_host_file_cmd
@@ -8887,20 +8775,19 @@ printf %s "checking how to convert $build file names to toolchain format... " >&
if test ${lt_cv_to_tool_file_cmd+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) #assume ordinary cross tools, or native build.
+else $as_nop
+ #assume ordinary cross tools, or native build.
lt_cv_to_tool_file_cmd=func_convert_file_noop
case $host in
- *-*-mingw* | *-*-windows* )
+ *-*-mingw* )
case $build in
- *-*-mingw* | *-*-windows* ) # actually msys
+ *-*-mingw* ) # actually msys
lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
;;
esac
;;
esac
- ;;
-esac
+
fi
to_tool_file_cmd=$lt_cv_to_tool_file_cmd
@@ -8916,9 +8803,8 @@ printf %s "checking for $LD option to reload object files... " >&6; }
if test ${lt_cv_ld_reload_flag+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) lt_cv_ld_reload_flag='-r' ;;
-esac
+else $as_nop
+ lt_cv_ld_reload_flag='-r'
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
printf "%s\n" "$lt_cv_ld_reload_flag" >&6; }
@@ -8929,7 +8815,7 @@ case $reload_flag in
esac
reload_cmds='$LD$reload_flag -o $output$reload_objs'
case $host_os in
- cygwin* | mingw* | windows* | pw32* | cegcc*)
+ cygwin* | mingw* | pw32* | cegcc*)
if test yes != "$GCC"; then
reload_cmds=false
fi
@@ -8951,56 +8837,6 @@ esac
-# Extract the first word of "file", so it can be a program name with args.
-set dummy file; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_FILECMD+y}
-then :
- printf %s "(cached) " >&6
-else case e in #(
- e) if test -n "$FILECMD"; then
- ac_cv_prog_FILECMD="$FILECMD" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_FILECMD="file"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
- test -z "$ac_cv_prog_FILECMD" && ac_cv_prog_FILECMD=":"
-fi ;;
-esac
-fi
-FILECMD=$ac_cv_prog_FILECMD
-if test -n "$FILECMD"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $FILECMD" >&5
-printf "%s\n" "$FILECMD" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
-
-
-
-
-
-
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
set dummy ${ac_tool_prefix}objdump; ac_word=$2
@@ -9009,8 +8845,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_OBJDUMP+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test -n "$OBJDUMP"; then
+else $as_nop
+ if test -n "$OBJDUMP"; then
ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -9032,8 +8868,7 @@ done
done
IFS=$as_save_IFS
-fi ;;
-esac
+fi
fi
OBJDUMP=$ac_cv_prog_OBJDUMP
if test -n "$OBJDUMP"; then
@@ -9055,8 +8890,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_OBJDUMP+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test -n "$ac_ct_OBJDUMP"; then
+else $as_nop
+ if test -n "$ac_ct_OBJDUMP"; then
ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -9078,8 +8913,7 @@ done
done
IFS=$as_save_IFS
-fi ;;
-esac
+fi
fi
ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
if test -n "$ac_ct_OBJDUMP"; then
@@ -9120,8 +8954,8 @@ printf %s "checking how to recognize dependent libraries... " >&6; }
if test ${lt_cv_deplibs_check_method+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) lt_cv_file_magic_cmd='$MAGIC_CMD'
+else $as_nop
+ lt_cv_file_magic_cmd='$MAGIC_CMD'
lt_cv_file_magic_test_file=
lt_cv_deplibs_check_method='unknown'
# Need to set the preceding variable on all platforms that support
@@ -9129,6 +8963,7 @@ lt_cv_deplibs_check_method='unknown'
# 'none' -- dependencies not supported.
# 'unknown' -- same as none, but documents that we really don't know.
# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
# 'file_magic [[regex]]' -- check by looking for files in library path
# that responds to the $file_magic_cmd with a given extended regex.
# If you have 'file' or equivalent on your system and you're not sure
@@ -9145,7 +8980,7 @@ beos*)
bsdi[45]*)
lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
- lt_cv_file_magic_cmd='$FILECMD -L'
+ lt_cv_file_magic_cmd='/usr/bin/file -L'
lt_cv_file_magic_test_file=/shlib/libc.so
;;
@@ -9155,7 +8990,7 @@ cygwin*)
lt_cv_file_magic_cmd='func_win32_libid'
;;
-mingw* | windows* | pw32*)
+mingw* | pw32*)
# Base MSYS/MinGW do not provide the 'file' command needed by
# func_win32_libid shell function, so use a weaker test based on 'objdump',
# unless we find 'file', for example because we are cross-compiling.
@@ -9164,7 +8999,7 @@ mingw* | windows* | pw32*)
lt_cv_file_magic_cmd='func_win32_libid'
else
# Keep this pattern in sync with the one in func_win32_libid.
- lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64|pe-aarch64)'
+ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
lt_cv_file_magic_cmd='$OBJDUMP -f'
fi
;;
@@ -9179,14 +9014,14 @@ darwin* | rhapsody*)
lt_cv_deplibs_check_method=pass_all
;;
-freebsd* | dragonfly* | midnightbsd*)
+freebsd* | dragonfly*)
if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
case $host_cpu in
i*86 )
# Not sure whether the presence of OpenBSD here was a mistake.
# Let's accept both of them until this is cleared up.
lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'
- lt_cv_file_magic_cmd=$FILECMD
+ lt_cv_file_magic_cmd=/usr/bin/file
lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
;;
esac
@@ -9200,7 +9035,7 @@ haiku*)
;;
hpux10.20* | hpux11*)
- lt_cv_file_magic_cmd=$FILECMD
+ lt_cv_file_magic_cmd=/usr/bin/file
case $host_cpu in
ia64*)
lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
@@ -9237,11 +9072,7 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
lt_cv_deplibs_check_method=pass_all
;;
-*-mlibc)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-netbsd* | netbsdelf*-gnu)
+netbsd*)
if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
else
@@ -9251,7 +9082,7 @@ netbsd* | netbsdelf*-gnu)
newos6*)
lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
- lt_cv_file_magic_cmd=$FILECMD
+ lt_cv_file_magic_cmd=/usr/bin/file
lt_cv_file_magic_test_file=/usr/lib/libnls.so
;;
@@ -9259,7 +9090,7 @@ newos6*)
lt_cv_deplibs_check_method=pass_all
;;
-openbsd*)
+openbsd* | bitrig*)
if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
else
@@ -9275,10 +9106,6 @@ rdos*)
lt_cv_deplibs_check_method=pass_all
;;
-serenity*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
solaris*)
lt_cv_deplibs_check_method=pass_all
;;
@@ -9321,8 +9148,7 @@ os2*)
lt_cv_deplibs_check_method=pass_all
;;
esac
- ;;
-esac
+
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
printf "%s\n" "$lt_cv_deplibs_check_method" >&6; }
@@ -9331,7 +9157,7 @@ file_magic_glob=
want_nocaseglob=no
if test "$build" = "$host"; then
case $host_os in
- mingw* | windows* | pw32*)
+ mingw* | pw32*)
if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
want_nocaseglob=yes
else
@@ -9374,8 +9200,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_DLLTOOL+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test -n "$DLLTOOL"; then
+else $as_nop
+ if test -n "$DLLTOOL"; then
ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -9397,8 +9223,7 @@ done
done
IFS=$as_save_IFS
-fi ;;
-esac
+fi
fi
DLLTOOL=$ac_cv_prog_DLLTOOL
if test -n "$DLLTOOL"; then
@@ -9420,8 +9245,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_DLLTOOL+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test -n "$ac_ct_DLLTOOL"; then
+else $as_nop
+ if test -n "$ac_ct_DLLTOOL"; then
ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -9443,8 +9268,7 @@ done
done
IFS=$as_save_IFS
-fi ;;
-esac
+fi
fi
ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
if test -n "$ac_ct_DLLTOOL"; then
@@ -9486,11 +9310,11 @@ printf %s "checking how to associate runtime and link libraries... " >&6; }
if test ${lt_cv_sharedlib_from_linklib_cmd+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) lt_cv_sharedlib_from_linklib_cmd='unknown'
+else $as_nop
+ lt_cv_sharedlib_from_linklib_cmd='unknown'
case $host_os in
-cygwin* | mingw* | windows* | pw32* | cegcc*)
+cygwin* | mingw* | pw32* | cegcc*)
# two different shell functions defined in ltmain.sh;
# decide which one to use based on capabilities of $DLLTOOL
case `$DLLTOOL --help 2>&1` in
@@ -9507,8 +9331,7 @@ cygwin* | mingw* | windows* | pw32* | cegcc*)
lt_cv_sharedlib_from_linklib_cmd=$ECHO
;;
esac
- ;;
-esac
+
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5
printf "%s\n" "$lt_cv_sharedlib_from_linklib_cmd" >&6; }
@@ -9522,110 +9345,6 @@ test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_RANLIB+y}
-then :
- printf %s "(cached) " >&6
-else case e in #(
- e) if test -n "$RANLIB"; then
- ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi ;;
-esac
-fi
-RANLIB=$ac_cv_prog_RANLIB
-if test -n "$RANLIB"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
-printf "%s\n" "$RANLIB" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_RANLIB"; then
- ac_ct_RANLIB=$RANLIB
- # Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_ac_ct_RANLIB+y}
-then :
- printf %s "(cached) " >&6
-else case e in #(
- e) if test -n "$ac_ct_RANLIB"; then
- ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_RANLIB="ranlib"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi ;;
-esac
-fi
-ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
-if test -n "$ac_ct_RANLIB"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
-printf "%s\n" "$ac_ct_RANLIB" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
- if test "x$ac_ct_RANLIB" = x; then
- RANLIB=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- RANLIB=$ac_ct_RANLIB
- fi
-else
- RANLIB="$ac_cv_prog_RANLIB"
-fi
-
-if test -n "$ac_tool_prefix"; then
for ac_prog in ar
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
@@ -9635,8 +9354,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_AR+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test -n "$AR"; then
+else $as_nop
+ if test -n "$AR"; then
ac_cv_prog_AR="$AR" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -9658,8 +9377,7 @@ done
done
IFS=$as_save_IFS
-fi ;;
-esac
+fi
fi
AR=$ac_cv_prog_AR
if test -n "$AR"; then
@@ -9685,8 +9403,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_AR+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test -n "$ac_ct_AR"; then
+else $as_nop
+ if test -n "$ac_ct_AR"; then
ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -9708,8 +9426,7 @@ done
done
IFS=$as_save_IFS
-fi ;;
-esac
+fi
fi
ac_ct_AR=$ac_cv_prog_ac_ct_AR
if test -n "$ac_ct_AR"; then
@@ -9738,29 +9455,13 @@ esac
fi
: ${AR=ar}
+: ${AR_FLAGS=cru}
-# Use ARFLAGS variable as AR's operation code to sync the variable naming with
-# Automake. If both AR_FLAGS and ARFLAGS are specified, AR_FLAGS should have
-# higher priority because that's what people were doing historically (setting
-# ARFLAGS for automake and AR_FLAGS for libtool). FIXME: Make the AR_FLAGS
-# variable obsoleted/removed.
-
-test ${AR_FLAGS+y} || AR_FLAGS=${ARFLAGS-cr}
-lt_ar_flags=$AR_FLAGS
-
-
-
-
-
-
-# Make AR_FLAGS overridable by 'make ARFLAGS='. Don't try to run-time override
-# by AR_FLAGS because that was never working and AR_FLAGS is about to die.
-
@@ -9771,8 +9472,8 @@ printf %s "checking for archiver @FILE support... " >&6; }
if test ${lt_cv_ar_at_file+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) lt_cv_ar_at_file=no
+else $as_nop
+ lt_cv_ar_at_file=no
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -9809,8 +9510,7 @@ then :
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
- ;;
-esac
+
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
printf "%s\n" "$lt_cv_ar_at_file" >&6; }
@@ -9835,8 +9535,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_STRIP+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test -n "$STRIP"; then
+else $as_nop
+ if test -n "$STRIP"; then
ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -9858,8 +9558,7 @@ done
done
IFS=$as_save_IFS
-fi ;;
-esac
+fi
fi
STRIP=$ac_cv_prog_STRIP
if test -n "$STRIP"; then
@@ -9881,8 +9580,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_STRIP+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test -n "$ac_ct_STRIP"; then
+else $as_nop
+ if test -n "$ac_ct_STRIP"; then
ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -9904,8 +9603,7 @@ done
done
IFS=$as_save_IFS
-fi ;;
-esac
+fi
fi
ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
if test -n "$ac_ct_STRIP"; then
@@ -9938,6 +9636,107 @@ test -z "$STRIP" && STRIP=:
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_RANLIB+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$RANLIB"; then
+ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
+printf "%s\n" "$RANLIB" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_RANLIB"; then
+ ac_ct_RANLIB=$RANLIB
+ # Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_RANLIB+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$ac_ct_RANLIB"; then
+ ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_RANLIB="ranlib"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
+printf "%s\n" "$ac_ct_RANLIB" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+ if test "x$ac_ct_RANLIB" = x; then
+ RANLIB=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ RANLIB=$ac_ct_RANLIB
+ fi
+else
+ RANLIB="$ac_cv_prog_RANLIB"
+fi
test -z "$RANLIB" && RANLIB=:
@@ -9952,8 +9751,15 @@ old_postinstall_cmds='chmod 644 $oldlib'
old_postuninstall_cmds=
if test -n "$RANLIB"; then
+ case $host_os in
+ bitrig* | openbsd*)
+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
+ ;;
+ *)
+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
+ ;;
+ esac
old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
- old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
fi
case $host_os in
@@ -9992,8 +9798,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_AWK+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test -n "$AWK"; then
+else $as_nop
+ if test -n "$AWK"; then
ac_cv_prog_AWK="$AWK" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -10015,8 +9821,7 @@ done
done
IFS=$as_save_IFS
-fi ;;
-esac
+fi
fi
AWK=$ac_cv_prog_AWK
if test -n "$AWK"; then
@@ -10065,8 +9870,8 @@ printf %s "checking command to parse $NM output from $compiler object... " >&6;
if test ${lt_cv_sys_global_symbol_pipe+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e)
+else $as_nop
+
# These are sane defaults that work on at least a few old systems.
# [They come from Ultrix. What could be older than Ultrix?!! ;)]
@@ -10081,7 +9886,7 @@ case $host_os in
aix*)
symcode='[BCDT]'
;;
-cygwin* | mingw* | windows* | pw32* | cegcc*)
+cygwin* | mingw* | pw32* | cegcc*)
symcode='[ABCDGISTW]'
;;
hpux*)
@@ -10096,7 +9901,7 @@ osf*)
symcode='[BCDEGQRST]'
;;
solaris*)
- symcode='[BCDRT]'
+ symcode='[BDRT]'
;;
sco3.2v5*)
symcode='[DT]'
@@ -10120,7 +9925,7 @@ esac
if test "$lt_cv_nm_interface" = "MS dumpbin"; then
# Gets list of data symbols to import.
- lt_cv_sys_global_symbol_to_import="$SED -n -e 's/^I .* \(.*\)$/\1/p'"
+ lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'"
# Adjust the below global symbol transforms to fixup imported variables.
lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'"
lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'"
@@ -10138,20 +9943,20 @@ fi
# Transform an extracted symbol line into a proper C declaration.
# Some systems (esp. on ia64) link data and code symbols differently,
# so use this general approach.
-lt_cv_sys_global_symbol_to_cdecl="$SED -n"\
+lt_cv_sys_global_symbol_to_cdecl="sed -n"\
$lt_cdecl_hook\
" -e 's/^T .* \(.*\)$/extern int \1();/p'"\
" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'"
# Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="$SED -n"\
+lt_cv_sys_global_symbol_to_c_name_address="sed -n"\
$lt_c_name_hook\
" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\
" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'"
# Transform an extracted symbol line into symbol name with lib prefix and
# symbol address.
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="$SED -n"\
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\
$lt_c_name_lib_hook\
" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\
" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\
@@ -10160,7 +9965,7 @@ $lt_c_name_lib_hook\
# Handle CRLF in mingw tool chain
opt_cr=
case $build_os in
-mingw* | windows*)
+mingw*)
opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
;;
esac
@@ -10175,7 +9980,7 @@ for ac_symprfx in "" "_"; do
if test "$lt_cv_nm_interface" = "MS dumpbin"; then
# Fake it for dumpbin and say T for any non-static function,
# D for any global variable and I for any imported variable.
- # Also find C++ and __fastcall symbols from MSVC++ or ICC,
+ # Also find C++ and __fastcall symbols from MSVC++,
# which start with @ or ?.
lt_cv_sys_global_symbol_pipe="$AWK '"\
" {last_section=section; section=\$ 3};"\
@@ -10193,9 +9998,9 @@ for ac_symprfx in "" "_"; do
" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\
" ' prfx=^$ac_symprfx"
else
- lt_cv_sys_global_symbol_pipe="$SED -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+ lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
fi
- lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | $SED '/ __gnu_lto/d'"
+ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
# Check to see that the pipe works correctly.
pipe_works=no
@@ -10211,7 +10016,7 @@ void nm_test_func(void){}
#ifdef __cplusplus
}
#endif
-int main(void){nm_test_var='a';nm_test_func();return(0);}
+int main(){nm_test_var='a';nm_test_func();return(0);}
_LT_EOF
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
@@ -10221,8 +10026,11 @@ _LT_EOF
test $ac_status = 0; }; then
# Now try to grab the symbols.
nlist=conftest.nm
- $ECHO "$as_me:$LINENO: $NM conftest.$ac_objext | $lt_cv_sys_global_symbol_pipe > $nlist" >&5
- if eval "$NM" conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist 2>&5 && test -s "$nlist"; then
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5
+ (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5
+ ac_status=$?
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s "$nlist"; then
# Try sorting and uniquifying the output.
if sort "$nlist" | uniq > "$nlist"T; then
mv -f "$nlist"T "$nlist"
@@ -10318,8 +10126,7 @@ _LT_EOF
lt_cv_sys_global_symbol_pipe=
fi
done
- ;;
-esac
+
fi
if test -z "$lt_cv_sys_global_symbol_pipe"; then
@@ -10383,9 +10190,8 @@ printf %s "checking for sysroot... " >&6; }
if test ${with_sysroot+y}
then :
withval=$with_sysroot;
-else case e in #(
- e) with_sysroot=no ;;
-esac
+else $as_nop
+ with_sysroot=no
fi
@@ -10393,13 +10199,11 @@ lt_sysroot=
case $with_sysroot in #(
yes)
if test yes = "$GCC"; then
- # Trim trailing / since we'll always append absolute paths and we want
- # to avoid //, if only for less confusing output for the user.
- lt_sysroot=`$CC --print-sysroot 2>/dev/null | $SED 's:/\+$::'`
+ lt_sysroot=`$CC --print-sysroot 2>/dev/null`
fi
;; #(
/*)
- lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"`
+ lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
;; #(
no|'')
;; #(
@@ -10422,8 +10226,8 @@ printf %s "checking for a working dd... " >&6; }
if test ${ac_cv_path_lt_DD+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) printf 0123456789abcdef0123456789abcdef >conftest.i
+else $as_nop
+ printf 0123456789abcdef0123456789abcdef >conftest.i
cat conftest.i conftest.i >conftest2.i
: ${lt_DD:=$DD}
if test -z "$lt_DD"; then
@@ -10459,8 +10263,7 @@ else
ac_cv_path_lt_DD=$lt_DD
fi
-rm -f conftest.i conftest2.i conftest.out ;;
-esac
+rm -f conftest.i conftest2.i conftest.out
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5
printf "%s\n" "$ac_cv_path_lt_DD" >&6; }
@@ -10471,8 +10274,8 @@ printf %s "checking how to truncate binary pipes... " >&6; }
if test ${lt_cv_truncate_bin+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) printf 0123456789abcdef0123456789abcdef >conftest.i
+else $as_nop
+ printf 0123456789abcdef0123456789abcdef >conftest.i
cat conftest.i conftest.i >conftest2.i
lt_cv_truncate_bin=
if "$ac_cv_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
@@ -10480,8 +10283,7 @@ if "$ac_cv_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; the
&& lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1"
fi
rm -f conftest.i conftest2.i conftest.out
-test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q" ;;
-esac
+test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5
printf "%s\n" "$lt_cv_truncate_bin" >&6; }
@@ -10526,7 +10328,7 @@ ia64-*-hpux*)
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
- case `$FILECMD conftest.$ac_objext` in
+ case `/usr/bin/file conftest.$ac_objext` in
*ELF-32*)
HPUX_IA64_MODE=32
;;
@@ -10547,7 +10349,7 @@ ia64-*-hpux*)
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
if test yes = "$lt_cv_prog_gnu_ld"; then
- case `$FILECMD conftest.$ac_objext` in
+ case `/usr/bin/file conftest.$ac_objext` in
*32-bit*)
LD="${LD-ld} -melf32bsmip"
;;
@@ -10559,7 +10361,7 @@ ia64-*-hpux*)
;;
esac
else
- case `$FILECMD conftest.$ac_objext` in
+ case `/usr/bin/file conftest.$ac_objext` in
*32-bit*)
LD="${LD-ld} -32"
;;
@@ -10585,7 +10387,7 @@ mips64*-*linux*)
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
emul=elf
- case `$FILECMD conftest.$ac_objext` in
+ case `/usr/bin/file conftest.$ac_objext` in
*32-bit*)
emul="${emul}32"
;;
@@ -10593,7 +10395,7 @@ mips64*-*linux*)
emul="${emul}64"
;;
esac
- case `$FILECMD conftest.$ac_objext` in
+ case `/usr/bin/file conftest.$ac_objext` in
*MSB*)
emul="${emul}btsmip"
;;
@@ -10601,7 +10403,7 @@ mips64*-*linux*)
emul="${emul}ltsmip"
;;
esac
- case `$FILECMD conftest.$ac_objext` in
+ case `/usr/bin/file conftest.$ac_objext` in
*N32*)
emul="${emul}n32"
;;
@@ -10612,7 +10414,7 @@ mips64*-*linux*)
;;
x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
-s390*-*linux*|s390*-*tpf*|sparc*-*linux*|x86_64-gnu*)
+s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
# Find out what ABI is being produced by ac_compile, and set linker
# options accordingly. Note that the listed cases only cover the
# situations where additional linker options are needed (such as when
@@ -10625,14 +10427,14 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*|x86_64-gnu*)
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
- case `$FILECMD conftest.o` in
+ case `/usr/bin/file conftest.o` in
*32-bit*)
case $host in
x86_64-*kfreebsd*-gnu)
LD="${LD-ld} -m elf_i386_fbsd"
;;
- x86_64-*linux*|x86_64-gnu*)
- case `$FILECMD conftest.o` in
+ x86_64-*linux*)
+ case `/usr/bin/file conftest.o` in
*x86-64*)
LD="${LD-ld} -m elf32_x86_64"
;;
@@ -10660,7 +10462,7 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*|x86_64-gnu*)
x86_64-*kfreebsd*-gnu)
LD="${LD-ld} -m elf_x86_64_fbsd"
;;
- x86_64-*linux*|x86_64-gnu*)
+ x86_64-*linux*)
LD="${LD-ld} -m elf_x86_64"
;;
powerpcle-*linux*)
@@ -10691,8 +10493,8 @@ printf %s "checking whether the C compiler needs -belf... " >&6; }
if test ${lt_cv_cc_needs_belf+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) ac_ext=c
+else $as_nop
+ ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
@@ -10712,9 +10514,8 @@ _ACEOF
if ac_fn_c_try_link "$LINENO"
then :
lt_cv_cc_needs_belf=yes
-else case e in #(
- e) lt_cv_cc_needs_belf=no ;;
-esac
+else $as_nop
+ lt_cv_cc_needs_belf=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
@@ -10723,8 +10524,7 @@ ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
- ;;
-esac
+
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
printf "%s\n" "$lt_cv_cc_needs_belf" >&6; }
@@ -10742,7 +10542,7 @@ printf "%s\n" "$lt_cv_cc_needs_belf" >&6; }
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
- case `$FILECMD conftest.o` in
+ case `/usr/bin/file conftest.o` in
*64-bit*)
case $lt_cv_prog_gnu_ld in
yes*)
@@ -10782,8 +10582,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_MANIFEST_TOOL+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test -n "$MANIFEST_TOOL"; then
+else $as_nop
+ if test -n "$MANIFEST_TOOL"; then
ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -10805,8 +10605,7 @@ done
done
IFS=$as_save_IFS
-fi ;;
-esac
+fi
fi
MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL
if test -n "$MANIFEST_TOOL"; then
@@ -10828,8 +10627,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_MANIFEST_TOOL+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test -n "$ac_ct_MANIFEST_TOOL"; then
+else $as_nop
+ if test -n "$ac_ct_MANIFEST_TOOL"; then
ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -10851,8 +10650,7 @@ done
done
IFS=$as_save_IFS
-fi ;;
-esac
+fi
fi
ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL
if test -n "$ac_ct_MANIFEST_TOOL"; then
@@ -10881,23 +10679,22 @@ fi
test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5
printf %s "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }
-if test ${lt_cv_path_manifest_tool+y}
+if test ${lt_cv_path_mainfest_tool+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) lt_cv_path_manifest_tool=no
+else $as_nop
+ lt_cv_path_mainfest_tool=no
echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5
$MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
cat conftest.err >&5
if $GREP 'Manifest Tool' conftest.out > /dev/null; then
- lt_cv_path_manifest_tool=yes
+ lt_cv_path_mainfest_tool=yes
fi
- rm -f conftest* ;;
-esac
+ rm -f conftest*
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_manifest_tool" >&5
-printf "%s\n" "$lt_cv_path_manifest_tool" >&6; }
-if test yes != "$lt_cv_path_manifest_tool"; then
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
+printf "%s\n" "$lt_cv_path_mainfest_tool" >&6; }
+if test yes != "$lt_cv_path_mainfest_tool"; then
MANIFEST_TOOL=:
fi
@@ -10916,8 +10713,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_DSYMUTIL+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test -n "$DSYMUTIL"; then
+else $as_nop
+ if test -n "$DSYMUTIL"; then
ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -10939,8 +10736,7 @@ done
done
IFS=$as_save_IFS
-fi ;;
-esac
+fi
fi
DSYMUTIL=$ac_cv_prog_DSYMUTIL
if test -n "$DSYMUTIL"; then
@@ -10962,8 +10758,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_DSYMUTIL+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test -n "$ac_ct_DSYMUTIL"; then
+else $as_nop
+ if test -n "$ac_ct_DSYMUTIL"; then
ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -10985,8 +10781,7 @@ done
done
IFS=$as_save_IFS
-fi ;;
-esac
+fi
fi
ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
if test -n "$ac_ct_DSYMUTIL"; then
@@ -11020,8 +10815,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_NMEDIT+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test -n "$NMEDIT"; then
+else $as_nop
+ if test -n "$NMEDIT"; then
ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -11043,8 +10838,7 @@ done
done
IFS=$as_save_IFS
-fi ;;
-esac
+fi
fi
NMEDIT=$ac_cv_prog_NMEDIT
if test -n "$NMEDIT"; then
@@ -11066,8 +10860,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_NMEDIT+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test -n "$ac_ct_NMEDIT"; then
+else $as_nop
+ if test -n "$ac_ct_NMEDIT"; then
ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -11089,8 +10883,7 @@ done
done
IFS=$as_save_IFS
-fi ;;
-esac
+fi
fi
ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
if test -n "$ac_ct_NMEDIT"; then
@@ -11124,8 +10917,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_LIPO+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test -n "$LIPO"; then
+else $as_nop
+ if test -n "$LIPO"; then
ac_cv_prog_LIPO="$LIPO" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -11147,8 +10940,7 @@ done
done
IFS=$as_save_IFS
-fi ;;
-esac
+fi
fi
LIPO=$ac_cv_prog_LIPO
if test -n "$LIPO"; then
@@ -11170,8 +10962,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_LIPO+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test -n "$ac_ct_LIPO"; then
+else $as_nop
+ if test -n "$ac_ct_LIPO"; then
ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -11193,8 +10985,7 @@ done
done
IFS=$as_save_IFS
-fi ;;
-esac
+fi
fi
ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO
if test -n "$ac_ct_LIPO"; then
@@ -11228,8 +11019,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_OTOOL+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test -n "$OTOOL"; then
+else $as_nop
+ if test -n "$OTOOL"; then
ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -11251,8 +11042,7 @@ done
done
IFS=$as_save_IFS
-fi ;;
-esac
+fi
fi
OTOOL=$ac_cv_prog_OTOOL
if test -n "$OTOOL"; then
@@ -11274,8 +11064,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_OTOOL+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test -n "$ac_ct_OTOOL"; then
+else $as_nop
+ if test -n "$ac_ct_OTOOL"; then
ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -11297,8 +11087,7 @@ done
done
IFS=$as_save_IFS
-fi ;;
-esac
+fi
fi
ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL
if test -n "$ac_ct_OTOOL"; then
@@ -11332,8 +11121,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_OTOOL64+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test -n "$OTOOL64"; then
+else $as_nop
+ if test -n "$OTOOL64"; then
ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -11355,8 +11144,7 @@ done
done
IFS=$as_save_IFS
-fi ;;
-esac
+fi
fi
OTOOL64=$ac_cv_prog_OTOOL64
if test -n "$OTOOL64"; then
@@ -11378,8 +11166,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_OTOOL64+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test -n "$ac_ct_OTOOL64"; then
+else $as_nop
+ if test -n "$ac_ct_OTOOL64"; then
ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -11401,8 +11189,7 @@ done
done
IFS=$as_save_IFS
-fi ;;
-esac
+fi
fi
ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64
if test -n "$ac_ct_OTOOL64"; then
@@ -11459,8 +11246,8 @@ printf %s "checking for -single_module linker flag... " >&6; }
if test ${lt_cv_apple_cc_single_mod+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) lt_cv_apple_cc_single_mod=no
+else $as_nop
+ lt_cv_apple_cc_single_mod=no
if test -z "$LT_MULTI_MODULE"; then
# By default we will add the -single_module flag. You can override
# by either setting the environment variable LT_MULTI_MODULE
@@ -11486,58 +11273,18 @@ else case e in #(
fi
rm -rf libconftest.dylib*
rm -f conftest.*
- fi ;;
-esac
+ fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
printf "%s\n" "$lt_cv_apple_cc_single_mod" >&6; }
- # Feature test to disable chained fixups since it is not
- # compatible with '-undefined dynamic_lookup'
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -no_fixup_chains linker flag" >&5
-printf %s "checking for -no_fixup_chains linker flag... " >&6; }
-if test ${lt_cv_support_no_fixup_chains+y}
-then :
- printf %s "(cached) " >&6
-else case e in #(
- e) save_LDFLAGS=$LDFLAGS
- LDFLAGS="$LDFLAGS -Wl,-no_fixup_chains"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main (void)
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
- lt_cv_support_no_fixup_chains=yes
-else case e in #(
- e) lt_cv_support_no_fixup_chains=no
- ;;
-esac
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
- LDFLAGS=$save_LDFLAGS
-
- ;;
-esac
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_support_no_fixup_chains" >&5
-printf "%s\n" "$lt_cv_support_no_fixup_chains" >&6; }
-
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
printf %s "checking for -exported_symbols_list linker flag... " >&6; }
if test ${lt_cv_ld_exported_symbols_list+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) lt_cv_ld_exported_symbols_list=no
+else $as_nop
+ lt_cv_ld_exported_symbols_list=no
save_LDFLAGS=$LDFLAGS
echo "_main" > conftest.sym
LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
@@ -11555,15 +11302,13 @@ _ACEOF
if ac_fn_c_try_link "$LINENO"
then :
lt_cv_ld_exported_symbols_list=yes
-else case e in #(
- e) lt_cv_ld_exported_symbols_list=no ;;
-esac
+else $as_nop
+ lt_cv_ld_exported_symbols_list=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LDFLAGS=$save_LDFLAGS
- ;;
-esac
+
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
printf "%s\n" "$lt_cv_ld_exported_symbols_list" >&6; }
@@ -11573,19 +11318,19 @@ printf %s "checking for -force_load linker flag... " >&6; }
if test ${lt_cv_ld_force_load+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) lt_cv_ld_force_load=no
+else $as_nop
+ lt_cv_ld_force_load=no
cat > conftest.c << _LT_EOF
int forced_loaded() { return 2;}
_LT_EOF
echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5
$LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
- echo "$AR $AR_FLAGS libconftest.a conftest.o" >&5
- $AR $AR_FLAGS libconftest.a conftest.o 2>&5
+ echo "$AR cru libconftest.a conftest.o" >&5
+ $AR cru libconftest.a conftest.o 2>&5
echo "$RANLIB libconftest.a" >&5
$RANLIB libconftest.a 2>&5
cat > conftest.c << _LT_EOF
-int main(void) { return 0;}
+int main() { return 0;}
_LT_EOF
echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5
$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
@@ -11599,8 +11344,7 @@ _LT_EOF
fi
rm -f conftest.err libconftest.a conftest conftest.c
rm -rf conftest.dSYM
- ;;
-esac
+
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5
printf "%s\n" "$lt_cv_ld_force_load" >&6; }
@@ -11609,37 +11353,23 @@ printf "%s\n" "$lt_cv_ld_force_load" >&6; }
_lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;;
darwin1.*)
_lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
- darwin*)
- case $MACOSX_DEPLOYMENT_TARGET,$host in
- 10.[012],*|,*powerpc*-darwin[5-8]*)
- _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
- *)
- _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup'
- if test yes = "$lt_cv_support_no_fixup_chains"; then
- as_fn_append _lt_dar_allow_undefined ' $wl-no_fixup_chains'
- fi
- ;;
+ darwin*) # darwin 5.x on
+ # if running on 10.5 or later, the deployment target defaults
+ # to the OS version, if on x86, and 10.4, the deployment
+ # target defaults to 10.4. Don't you love it?
+ case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
+ 10.0,*86*-darwin8*|10.0,*-darwin[91]*)
+ _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
+ 10.[012][,.]*)
+ _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
+ 10.*)
+ _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
esac
;;
esac
if test yes = "$lt_cv_apple_cc_single_mod"; then
_lt_dar_single_mod='$single_module'
fi
- _lt_dar_needs_single_mod=no
- case $host_os in
- rhapsody* | darwin1.*)
- _lt_dar_needs_single_mod=yes ;;
- darwin*)
- # When targeting Mac OS X 10.4 (darwin 8) or later,
- # -single_module is the default and -multi_module is unsupported.
- # The toolchain on macOS 10.14 (darwin 18) and later cannot
- # target any OS version that needs -single_module.
- case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
- 10.0,*-darwin[567].*|10.[0-3],*-darwin[5-9].*|10.[0-3],*-darwin1[0-7].*)
- _lt_dar_needs_single_mod=yes ;;
- esac
- ;;
- esac
if test yes = "$lt_cv_ld_exported_symbols_list"; then
_lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym'
else
@@ -11732,9 +11462,8 @@ then :
IFS=$lt_save_ifs
;;
esac
-else case e in #(
- e) enable_shared=yes ;;
-esac
+else $as_nop
+ enable_shared=yes
fi
@@ -11765,9 +11494,8 @@ then :
IFS=$lt_save_ifs
;;
esac
-else case e in #(
- e) enable_static=yes ;;
-esac
+else $as_nop
+ enable_static=yes
fi
@@ -11778,52 +11506,28 @@ fi
- # Check whether --enable-pic was given.
-if test ${enable_pic+y}
-then :
- enableval=$enable_pic; lt_p=${PACKAGE-default}
- case $enableval in
- yes|no) pic_mode=$enableval ;;
- *)
- pic_mode=default
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
- for lt_pkg in $enableval; do
- IFS=$lt_save_ifs
- if test "X$lt_pkg" = "X$lt_p"; then
- pic_mode=yes
- fi
- done
- IFS=$lt_save_ifs
- ;;
- esac
-else case e in #(
- e) # Check whether --with-pic was given.
+
+# Check whether --with-pic was given.
if test ${with_pic+y}
then :
withval=$with_pic; lt_p=${PACKAGE-default}
- case $withval in
- yes|no) pic_mode=$withval ;;
- *)
- pic_mode=default
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
- for lt_pkg in $withval; do
- IFS=$lt_save_ifs
- if test "X$lt_pkg" = "X$lt_p"; then
- pic_mode=yes
- fi
- done
- IFS=$lt_save_ifs
- ;;
- esac
-else case e in #(
- e) pic_mode=default ;;
-esac
-fi
-
- ;;
-esac
+ case $withval in
+ yes|no) pic_mode=$withval ;;
+ *)
+ pic_mode=default
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+ for lt_pkg in $withval; do
+ IFS=$lt_save_ifs
+ if test "X$lt_pkg" = "X$lt_p"; then
+ pic_mode=yes
+ fi
+ done
+ IFS=$lt_save_ifs
+ ;;
+ esac
+else $as_nop
+ pic_mode=default
fi
@@ -11853,9 +11557,8 @@ then :
IFS=$lt_save_ifs
;;
esac
-else case e in #(
- e) enable_fast_install=yes ;;
-esac
+else $as_nop
+ enable_fast_install=yes
fi
@@ -11870,46 +11573,29 @@ case $host,$enable_shared in
power*-*-aix[5-9]*,yes)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5
printf %s "checking which variant of shared library versioning to provide... " >&6; }
- # Check whether --enable-aix-soname was given.
-if test ${enable_aix_soname+y}
-then :
- enableval=$enable_aix_soname; case $enableval in
- aix|svr4|both)
- ;;
- *)
- as_fn_error $? "Unknown argument to --enable-aix-soname" "$LINENO" 5
- ;;
- esac
- lt_cv_with_aix_soname=$enable_aix_soname
-else case e in #(
- e) # Check whether --with-aix-soname was given.
+
+# Check whether --with-aix-soname was given.
if test ${with_aix_soname+y}
then :
withval=$with_aix_soname; case $withval in
- aix|svr4|both)
- ;;
- *)
- as_fn_error $? "Unknown argument to --with-aix-soname" "$LINENO" 5
- ;;
- esac
- lt_cv_with_aix_soname=$with_aix_soname
-else case e in #(
- e) if test ${lt_cv_with_aix_soname+y}
+ aix|svr4|both)
+ ;;
+ *)
+ as_fn_error $? "Unknown argument to --with-aix-soname" "$LINENO" 5
+ ;;
+ esac
+ lt_cv_with_aix_soname=$with_aix_soname
+else $as_nop
+ if test ${lt_cv_with_aix_soname+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) lt_cv_with_aix_soname=aix ;;
-esac
-fi
- ;;
-esac
+else $as_nop
+ lt_cv_with_aix_soname=aix
fi
- enable_aix_soname=$lt_cv_with_aix_soname ;;
-esac
+ with_aix_soname=$lt_cv_with_aix_soname
fi
- with_aix_soname=$enable_aix_soname
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5
printf "%s\n" "$with_aix_soname" >&6; }
if test aix != "$with_aix_soname"; then
@@ -11998,8 +11684,8 @@ printf %s "checking for objdir... " >&6; }
if test ${lt_cv_objdir+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) rm -f .libs 2>/dev/null
+else $as_nop
+ rm -f .libs 2>/dev/null
mkdir .libs 2>/dev/null
if test -d .libs; then
lt_cv_objdir=.libs
@@ -12007,8 +11693,7 @@ else
# MS-DOS does not allow filenames that begin with a dot.
lt_cv_objdir=_libs
fi
-rmdir .libs 2>/dev/null ;;
-esac
+rmdir .libs 2>/dev/null
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
printf "%s\n" "$lt_cv_objdir" >&6; }
@@ -12039,8 +11724,8 @@ esac
ofile=libtool
can_build_shared=yes
-# All known linkers require a '.a' archive for static linking (except MSVC and
-# ICC, which need '.lib').
+# All known linkers require a '.a' archive for static linking (except MSVC,
+# which needs '.lib').
libext=a
with_gnu_ld=$lt_cv_prog_gnu_ld
@@ -12069,8 +11754,8 @@ printf %s "checking for ${ac_tool_prefix}file... " >&6; }
if test ${lt_cv_path_MAGIC_CMD+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) case $MAGIC_CMD in
+else $as_nop
+ case $MAGIC_CMD in
[\\/*] | ?:[\\/]*)
lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
;;
@@ -12113,7 +11798,6 @@ _LT_EOF
IFS=$lt_save_ifs
MAGIC_CMD=$lt_save_MAGIC_CMD
;;
-esac ;;
esac
fi
@@ -12137,8 +11821,8 @@ printf %s "checking for file... " >&6; }
if test ${lt_cv_path_MAGIC_CMD+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) case $MAGIC_CMD in
+else $as_nop
+ case $MAGIC_CMD in
[\\/*] | ?:[\\/]*)
lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
;;
@@ -12181,7 +11865,6 @@ _LT_EOF
IFS=$lt_save_ifs
MAGIC_CMD=$lt_save_MAGIC_CMD
;;
-esac ;;
esac
fi
@@ -12225,7 +11908,7 @@ objext=$objext
lt_simple_compile_test_code="int some_variable = 0;"
# Code to be used in simple link tests
-lt_simple_link_test_code='int main(void){return(0);}'
+lt_simple_link_test_code='int main(){return(0);}'
@@ -12277,8 +11960,8 @@ printf %s "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
if test ${lt_cv_prog_compiler_rtti_exceptions+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) lt_cv_prog_compiler_rtti_exceptions=no
+else $as_nop
+ lt_cv_prog_compiler_rtti_exceptions=no
ac_outfile=conftest.$ac_objext
echo "$lt_simple_compile_test_code" > conftest.$ac_ext
lt_compiler_flag="-fno-rtti -fno-exceptions" ## exclude from sc_useless_quotes_in_assignment
@@ -12306,8 +11989,7 @@ else case e in #(
fi
fi
$RM conftest*
- ;;
-esac
+
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
printf "%s\n" "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
@@ -12363,7 +12045,7 @@ lt_prog_compiler_static=
# PIC is the default for these OSes.
;;
- mingw* | windows* | cygwin* | pw32* | os2* | cegcc*)
+ mingw* | cygwin* | pw32* | os2* | cegcc*)
# This hack is so that the source file can tell whether it is being
# built for inclusion in a dll (and should export symbols for example).
# Although the cygwin gcc ignores -fPIC, still need this for old-style
@@ -12466,7 +12148,7 @@ lt_prog_compiler_static=
esac
;;
- mingw* | windows* | cygwin* | pw32* | os2* | cegcc*)
+ mingw* | cygwin* | pw32* | os2* | cegcc*)
# This hack is so that the source file can tell whether it is being
# built for inclusion in a dll (and should export symbols for example).
lt_prog_compiler_pic='-DDLL_EXPORT'
@@ -12507,12 +12189,6 @@ lt_prog_compiler_static=
lt_prog_compiler_pic='-KPIC'
lt_prog_compiler_static='-static'
;;
- *flang* | ftn | f18* | f95*)
- # Flang compiler.
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-fPIC'
- lt_prog_compiler_static='-static'
- ;;
# icc used to be incompatible with GCC.
# ICC 10 doesn't accept -KPIC any more.
icc* | ifort*)
@@ -12557,7 +12233,7 @@ lt_prog_compiler_static=
lt_prog_compiler_static='-qstaticlink'
;;
*)
- case `$CC -V 2>&1 | $SED 5q` in
+ case `$CC -V 2>&1 | sed 5q` in
*Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*)
# Sun Fortran 8.3 passes all unrecognized flags to the linker
lt_prog_compiler_pic='-KPIC'
@@ -12595,12 +12271,6 @@ lt_prog_compiler_static=
lt_prog_compiler_static='-Bstatic'
;;
- *-mlibc)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-fPIC'
- lt_prog_compiler_static='-static'
- ;;
-
*nto* | *qnx*)
# QNX uses GNU C++, but need to define -shared option too, otherwise
# it will coredump.
@@ -12617,9 +12287,6 @@ lt_prog_compiler_static=
lt_prog_compiler_static='-non_shared'
;;
- serenity*)
- ;;
-
solaris*)
lt_prog_compiler_pic='-KPIC'
lt_prog_compiler_static='-Bstatic'
@@ -12687,9 +12354,8 @@ printf %s "checking for $compiler option to produce PIC... " >&6; }
if test ${lt_cv_prog_compiler_pic+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) lt_cv_prog_compiler_pic=$lt_prog_compiler_pic ;;
-esac
+else $as_nop
+ lt_cv_prog_compiler_pic=$lt_prog_compiler_pic
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
printf "%s\n" "$lt_cv_prog_compiler_pic" >&6; }
@@ -12704,8 +12370,8 @@ printf %s "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6;
if test ${lt_cv_prog_compiler_pic_works+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) lt_cv_prog_compiler_pic_works=no
+else $as_nop
+ lt_cv_prog_compiler_pic_works=no
ac_outfile=conftest.$ac_objext
echo "$lt_simple_compile_test_code" > conftest.$ac_ext
lt_compiler_flag="$lt_prog_compiler_pic -DPIC" ## exclude from sc_useless_quotes_in_assignment
@@ -12733,8 +12399,7 @@ else case e in #(
fi
fi
$RM conftest*
- ;;
-esac
+
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
printf "%s\n" "$lt_cv_prog_compiler_pic_works" >&6; }
@@ -12770,8 +12435,8 @@ printf %s "checking if $compiler static flag $lt_tmp_static_flag works... " >&6;
if test ${lt_cv_prog_compiler_static_works+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) lt_cv_prog_compiler_static_works=no
+else $as_nop
+ lt_cv_prog_compiler_static_works=no
save_LDFLAGS=$LDFLAGS
LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
echo "$lt_simple_link_test_code" > conftest.$ac_ext
@@ -12792,8 +12457,7 @@ else case e in #(
fi
$RM -r conftest*
LDFLAGS=$save_LDFLAGS
- ;;
-esac
+
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
printf "%s\n" "$lt_cv_prog_compiler_static_works" >&6; }
@@ -12815,8 +12479,8 @@ printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
if test ${lt_cv_prog_compiler_c_o+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) lt_cv_prog_compiler_c_o=no
+else $as_nop
+ lt_cv_prog_compiler_c_o=no
$RM -r conftest 2>/dev/null
mkdir conftest
cd conftest
@@ -12856,8 +12520,7 @@ else case e in #(
cd ..
$RM -r conftest
$RM conftest*
- ;;
-esac
+
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
printf "%s\n" "$lt_cv_prog_compiler_c_o" >&6; }
@@ -12872,8 +12535,8 @@ printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
if test ${lt_cv_prog_compiler_c_o+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) lt_cv_prog_compiler_c_o=no
+else $as_nop
+ lt_cv_prog_compiler_c_o=no
$RM -r conftest 2>/dev/null
mkdir conftest
cd conftest
@@ -12913,8 +12576,7 @@ else case e in #(
cd ..
$RM -r conftest
$RM conftest*
- ;;
-esac
+
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
printf "%s\n" "$lt_cv_prog_compiler_c_o" >&6; }
@@ -12993,18 +12655,21 @@ printf %s "checking whether the $compiler linker ($LD) supports shared libraries
extract_expsyms_cmds=
case $host_os in
- cygwin* | mingw* | windows* | pw32* | cegcc*)
- # FIXME: the MSVC++ and ICC port hasn't been tested in a loooong time
+ cygwin* | mingw* | pw32* | cegcc*)
+ # FIXME: the MSVC++ port hasn't been tested in a loooong time
# When not using gcc, we currently assume that we are using
- # Microsoft Visual C++ or Intel C++ Compiler.
+ # Microsoft Visual C++.
if test yes != "$GCC"; then
with_gnu_ld=no
fi
;;
interix*)
- # we just hope/assume this is gcc and not c89 (= MSVC++ or ICC)
+ # we just hope/assume this is gcc and not c89 (= MSVC++)
with_gnu_ld=yes
;;
+ openbsd* | bitrig*)
+ with_gnu_ld=no
+ ;;
esac
ld_shlibs=yes
@@ -13051,7 +12716,7 @@ printf %s "checking whether the $compiler linker ($LD) supports shared libraries
whole_archive_flag_spec=
fi
supports_anon_versioning=no
- case `$LD -v | $SED -e 's/([^)]\+)\s\+//' 2>&1` in
+ case `$LD -v | $SED -e 's/(^)\+)\s\+//' 2>&1` in
*GNU\ gold*) supports_anon_versioning=yes ;;
*\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
*\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
@@ -13105,7 +12770,7 @@ _LT_EOF
fi
;;
- cygwin* | mingw* | windows* | pw32* | cegcc*)
+ cygwin* | mingw* | pw32* | cegcc*)
# _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
# as there is no search path for DLLs.
hardcode_libdir_flag_spec='-L$libdir'
@@ -13115,7 +12780,6 @@ _LT_EOF
enable_shared_with_static_runtimes=yes
export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
- file_list_spec='@'
if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
@@ -13135,7 +12799,7 @@ _LT_EOF
haiku*)
archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
- link_all_deplibs=no
+ link_all_deplibs=yes
;;
os2*)
@@ -13162,9 +12826,8 @@ _LT_EOF
cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
$CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
emximp -o $lib $output_objdir/$libname.def'
- old_archive_from_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+ old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
enable_shared_with_static_runtimes=yes
- file_list_spec='@'
;;
interix[3-9]*)
@@ -13179,7 +12842,7 @@ _LT_EOF
# 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
# time. Moving up from 0x10000000 also allows more sbrk(2) space.
archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- archive_expsym_cmds='$SED "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ archive_expsym_cmds='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
;;
gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
@@ -13222,7 +12885,7 @@ _LT_EOF
compiler_needs_object=yes
;;
esac
- case `$CC -V 2>&1 | $SED 5q` in
+ case `$CC -V 2>&1 | sed 5q` in
*Sun\ C*) # Sun C 5.9
whole_archive_flag_spec='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
compiler_needs_object=yes
@@ -13234,14 +12897,13 @@ _LT_EOF
if test yes = "$supports_anon_versioning"; then
archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
- cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
echo "local: *; };" >> $output_objdir/$libname.ver~
$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
fi
case $cc_basename in
tcc*)
- hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
export_dynamic_flag_spec='-rdynamic'
;;
xlf* | bgf* | bgxlf* | mpixlf*)
@@ -13251,7 +12913,7 @@ _LT_EOF
archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
if test yes = "$supports_anon_versioning"; then
archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
- cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
echo "local: *; };" >> $output_objdir/$libname.ver~
$LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
fi
@@ -13262,12 +12924,7 @@ _LT_EOF
fi
;;
- *-mlibc)
- archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
- archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
- ;;
-
- netbsd* | netbsdelf*-gnu)
+ netbsd*)
if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
wlarc=
@@ -13388,7 +13045,7 @@ _LT_EOF
if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
else
- export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
+ export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
fi
aix_use_runtimelinking=no
@@ -13513,8 +13170,8 @@ else
if test ${lt_cv_aix_libpath_+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
@@ -13546,8 +13203,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam \
if test -z "$lt_cv_aix_libpath_"; then
lt_cv_aix_libpath_=/usr/lib:/lib
fi
- ;;
-esac
+
fi
aix_libpath=$lt_cv_aix_libpath_
@@ -13569,8 +13225,8 @@ else
if test ${lt_cv_aix_libpath_+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
@@ -13602,8 +13258,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam \
if test -z "$lt_cv_aix_libpath_"; then
lt_cv_aix_libpath_=/usr/lib:/lib
fi
- ;;
-esac
+
fi
aix_libpath=$lt_cv_aix_libpath_
@@ -13659,14 +13314,14 @@ fi
export_dynamic_flag_spec=-rdynamic
;;
- cygwin* | mingw* | windows* | pw32* | cegcc*)
+ cygwin* | mingw* | pw32* | cegcc*)
# When not using gcc, we currently assume that we are using
- # Microsoft Visual C++ or Intel C++ Compiler.
+ # Microsoft Visual C++.
# hardcode_libdir_flag_spec is actually meaningless, as there is
# no search path for DLLs.
case $cc_basename in
- cl* | icl*)
- # Native MSVC or ICC
+ cl*)
+ # Native MSVC
hardcode_libdir_flag_spec=' '
allow_undefined_flag=unsupported
always_export_symbols=yes
@@ -13676,14 +13331,14 @@ fi
# Tell ltmain to make .dll files, not .so files.
shrext_cmds=.dll
# FIXME: Setting linknames here is a bad hack.
- archive_cmds='$CC -Fe$output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='
+ archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='
archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then
cp "$export_symbols" "$output_objdir/$soname.def";
echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp";
else
$SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp;
fi~
- $CC -Fe$tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
linknames='
# The linker will not automatically build a static lib if we build a DLL.
# _LT_TAGVAR(old_archive_from_new_cmds, )='true'
@@ -13707,7 +13362,7 @@ fi
fi'
;;
*)
- # Assume MSVC and ICC wrapper
+ # Assume MSVC wrapper
hardcode_libdir_flag_spec=' '
allow_undefined_flag=unsupported
# Tell ltmain to make .lib files, not .a files.
@@ -13748,8 +13403,8 @@ fi
output_verbose_link_cmd=func_echo_all
archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil"
module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil"
- archive_expsym_cmds="$SED 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil"
- module_expsym_cmds="$SED -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil"
+ archive_expsym_cmds="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil"
+ module_expsym_cmds="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil"
else
ld_shlibs=no
@@ -13783,7 +13438,7 @@ fi
;;
# FreeBSD 3 and greater uses gcc -shared to do shared libraries.
- freebsd* | dragonfly* | midnightbsd*)
+ freebsd* | dragonfly*)
archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
hardcode_libdir_flag_spec='-R$libdir'
hardcode_direct=yes
@@ -13854,8 +13509,8 @@ printf %s "checking if $CC understands -b... " >&6; }
if test ${lt_cv_prog_compiler__b+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) lt_cv_prog_compiler__b=no
+else $as_nop
+ lt_cv_prog_compiler__b=no
save_LDFLAGS=$LDFLAGS
LDFLAGS="$LDFLAGS -b"
echo "$lt_simple_link_test_code" > conftest.$ac_ext
@@ -13876,8 +13531,7 @@ else case e in #(
fi
$RM -r conftest*
LDFLAGS=$save_LDFLAGS
- ;;
-esac
+
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5
printf "%s\n" "$lt_cv_prog_compiler__b" >&6; }
@@ -13925,8 +13579,8 @@ printf %s "checking whether the $host_os linker accepts -exported_symbol... " >&
if test ${lt_cv_irix_exported_symbol+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) save_LDFLAGS=$LDFLAGS
+else $as_nop
+ save_LDFLAGS=$LDFLAGS
LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -13935,14 +13589,12 @@ _ACEOF
if ac_fn_c_try_link "$LINENO"
then :
lt_cv_irix_exported_symbol=yes
-else case e in #(
- e) lt_cv_irix_exported_symbol=no ;;
-esac
+else $as_nop
+ lt_cv_irix_exported_symbol=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
- LDFLAGS=$save_LDFLAGS ;;
-esac
+ LDFLAGS=$save_LDFLAGS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
printf "%s\n" "$lt_cv_irix_exported_symbol" >&6; }
@@ -13966,15 +13618,11 @@ printf "%s\n" "$lt_cv_irix_exported_symbol" >&6; }
# Fabrice Bellard et al's Tiny C Compiler
ld_shlibs=yes
archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
;;
esac
;;
- *-mlibc)
- ;;
-
- netbsd* | netbsdelf*-gnu)
+ netbsd*)
if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
else
@@ -13996,7 +13644,7 @@ printf "%s\n" "$lt_cv_irix_exported_symbol" >&6; }
*nto* | *qnx*)
;;
- openbsd*)
+ openbsd* | bitrig*)
if test -f /usr/libexec/ld.so; then
hardcode_direct=yes
hardcode_shlibpath_var=no
@@ -14039,9 +13687,8 @@ printf "%s\n" "$lt_cv_irix_exported_symbol" >&6; }
cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
$CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
emximp -o $lib $output_objdir/$libname.def'
- old_archive_from_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+ old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
enable_shared_with_static_runtimes=yes
- file_list_spec='@'
;;
osf3*)
@@ -14075,9 +13722,6 @@ printf "%s\n" "$lt_cv_irix_exported_symbol" >&6; }
hardcode_libdir_separator=:
;;
- serenity*)
- ;;
-
solaris*)
no_undefined_flag=' -z defs'
if test yes = "$GCC"; then
@@ -14275,8 +13919,8 @@ printf %s "checking whether -lc should be explicitly linked in... " >&6; }
if test ${lt_cv_archive_cmds_need_lc+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) $RM conftest*
+else $as_nop
+ $RM conftest*
echo "$lt_simple_compile_test_code" > conftest.$ac_ext
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
@@ -14312,8 +13956,7 @@ else case e in #(
cat conftest.err 1>&5
fi
$RM conftest*
- ;;
-esac
+
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5
printf "%s\n" "$lt_cv_archive_cmds_need_lc" >&6; }
@@ -14484,7 +14127,7 @@ if test yes = "$GCC"; then
*) lt_awk_arg='/^libraries:/' ;;
esac
case $host_os in
- mingw* | windows* | cegcc*) lt_sed_strip_eq='s|=\([A-Za-z]:\)|\1|g' ;;
+ mingw* | cegcc*) lt_sed_strip_eq='s|=\([A-Za-z]:\)|\1|g' ;;
*) lt_sed_strip_eq='s|=/|/|g' ;;
esac
lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
@@ -14542,7 +14185,7 @@ BEGIN {RS = " "; FS = "/|\n";} {
# AWK program above erroneously prepends '/' to C:/dos/paths
# for these hosts.
case $host_os in
- mingw* | windows* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
+ mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
$SED 's|/\([A-Za-z]:\)|\1|g'` ;;
esac
sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
@@ -14616,7 +14259,7 @@ aix[4-9]*)
# Unfortunately, runtime linking may impact performance, so we do
# not want this to be the default eventually. Also, we use the
# versioned .so libs for executables only if there is the -brtl
- # linker flag in LDFLAGS as well, or --enable-aix-soname=svr4 only.
+ # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only.
# To allow for filename-based versioning support, we need to create
# libNAME.so.V as an archive file, containing:
# *) an Import File, referring to the versioned filename of the
@@ -14710,7 +14353,7 @@ bsdi[45]*)
# libtool to hard-code these into programs
;;
-cygwin* | mingw* | windows* | pw32* | cegcc*)
+cygwin* | mingw* | pw32* | cegcc*)
version_type=windows
shrext_cmds=.dll
need_version=no
@@ -14721,29 +14364,15 @@ cygwin* | mingw* | windows* | pw32* | cegcc*)
# gcc
library_names_spec='$libname.dll.a'
# DLL is installed to $(libdir)/../bin by postinstall_cmds
- # If user builds GCC with multilib enabled,
- # it should just install on $(libdir)
- # not on $(libdir)/../bin or 32 bits dlls would override 64 bit ones.
- if test xyes = x"$multilib"; then
- postinstall_cmds='base_file=`basename \$file`~
- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
- dldir=$destdir/`dirname \$dlpath`~
- $install_prog $dir/$dlname $destdir/$dlname~
- chmod a+x $destdir/$dlname~
- if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
- eval '\''$striplib $destdir/$dlname'\'' || exit \$?;
- fi'
- else
- postinstall_cmds='base_file=`basename \$file`~
- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
- dldir=$destdir/`dirname \$dlpath`~
- test -d \$dldir || mkdir -p \$dldir~
- $install_prog $dir/$dlname \$dldir/$dlname~
- chmod a+x \$dldir/$dlname~
- if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
- eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
- fi'
- fi
+ postinstall_cmds='base_file=`basename \$file`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname~
+ chmod a+x \$dldir/$dlname~
+ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+ eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+ fi'
postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
dlpath=$dir/\$dldll~
$RM \$dlpath'
@@ -14752,30 +14381,30 @@ cygwin* | mingw* | windows* | pw32* | cegcc*)
case $host_os in
cygwin*)
# Cygwin DLLs use 'cyg' prefix rather than 'lib'
- soname_spec='`echo $libname | $SED -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
+ soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"
;;
- mingw* | windows* | cegcc*)
+ mingw* | cegcc*)
# MinGW DLLs use traditional 'lib' prefix
soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
;;
pw32*)
# pw32 DLLs use 'pw' prefix rather than 'lib'
- library_names_spec='`echo $libname | $SED -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
+ library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
;;
esac
dynamic_linker='Win32 ld.exe'
;;
- *,cl* | *,icl*)
- # Native MSVC or ICC
+ *,cl*)
+ # Native MSVC
libname_spec='$name'
soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
library_names_spec='$libname.dll.lib'
case $build_os in
- mingw* | windows*)
+ mingw*)
sys_lib_search_path_spec=
lt_save_ifs=$IFS
IFS=';'
@@ -14788,7 +14417,7 @@ cygwin* | mingw* | windows* | pw32* | cegcc*)
done
IFS=$lt_save_ifs
# Convert to MSYS style.
- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
;;
cygwin*)
# Convert to unix form, then to dos form, then back to unix form
@@ -14825,7 +14454,7 @@ cygwin* | mingw* | windows* | pw32* | cegcc*)
;;
*)
- # Assume MSVC and ICC wrapper
+ # Assume MSVC wrapper
library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib'
dynamic_linker='Win32 ld.exe'
;;
@@ -14858,7 +14487,7 @@ dgux*)
shlibpath_var=LD_LIBRARY_PATH
;;
-freebsd* | dragonfly* | midnightbsd*)
+freebsd* | dragonfly*)
# DragonFly does not have aout. When/if they implement a new
# versioning mechanism, adjust this.
if test -x /usr/bin/objformat; then
@@ -14882,28 +14511,7 @@ freebsd* | dragonfly* | midnightbsd*)
need_version=yes
;;
esac
- case $host_cpu in
- powerpc64)
- # On FreeBSD bi-arch platforms, a different variable is used for 32-bit
- # binaries. See <https://man.freebsd.org/cgi/man.cgi?query=ld.so>.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-int test_pointer_size[sizeof (void *) - 5];
-
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
shlibpath_var=LD_LIBRARY_PATH
-else case e in #(
- e) shlibpath_var=LD_32_LIBRARY_PATH ;;
-esac
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
- ;;
- *)
- shlibpath_var=LD_LIBRARY_PATH
- ;;
- esac
case $host_os in
freebsd2.*)
shlibpath_overrides_runpath=yes
@@ -14933,9 +14541,8 @@ haiku*)
soname_spec='$libname$release$shared_ext$major'
shlibpath_var=LIBRARY_PATH
shlibpath_overrides_runpath=no
- sys_lib_search_path_spec='/boot/system/non-packaged/develop/lib /boot/system/develop/lib'
- sys_lib_dlsearch_path_spec='/boot/home/config/non-packaged/lib /boot/home/config/lib /boot/system/non-packaged/lib /boot/system/lib'
- hardcode_into_libs=no
+ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
+ hardcode_into_libs=yes
;;
hpux9* | hpux10* | hpux11*)
@@ -15045,7 +14652,7 @@ linux*android*)
version_type=none # Android doesn't support versioned libraries.
need_lib_prefix=no
need_version=no
- library_names_spec='$libname$release$shared_ext $libname$shared_ext'
+ library_names_spec='$libname$release$shared_ext'
soname_spec='$libname$release$shared_ext'
finish_cmds=
shlibpath_var=LD_LIBRARY_PATH
@@ -15057,9 +14664,8 @@ linux*android*)
hardcode_into_libs=yes
dynamic_linker='Android linker'
- # -rpath works at least for libraries that are not overridden by
- # libraries installed in system locations.
- hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ # Don't embed -rpath directories since the linker doesn't support them.
+ hardcode_libdir_flag_spec='-L$libdir'
;;
# This must be glibc/ELF.
@@ -15077,8 +14683,8 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
if test ${lt_cv_shlibpath_overrides_runpath+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) lt_cv_shlibpath_overrides_runpath=no
+else $as_nop
+ lt_cv_shlibpath_overrides_runpath=no
save_LDFLAGS=$LDFLAGS
save_libdir=$libdir
eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
@@ -15105,8 +14711,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LDFLAGS=$save_LDFLAGS
libdir=$save_libdir
- ;;
-esac
+
fi
shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
@@ -15119,7 +14724,7 @@ fi
# Add ABI-specific directories to the system library path.
sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib"
- # Ideally, we could use ldconfig to report *all* directories which are
+ # Ideally, we could use ldconfig to report *all* directores which are
# searched for libraries, however this is still not possible. Aside from not
# being certain /sbin/ldconfig is available, command
# 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64,
@@ -15139,18 +14744,6 @@ fi
dynamic_linker='GNU/Linux ld.so'
;;
-netbsdelf*-gnu)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- dynamic_linker='NetBSD ld.elf_so'
- ;;
-
netbsd*)
version_type=sunos
need_lib_prefix=no
@@ -15169,18 +14762,6 @@ netbsd*)
hardcode_into_libs=yes
;;
-*-mlibc)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- dynamic_linker='mlibc ld.so'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
-
newsos6)
version_type=linux # correct to gnu/linux during the next big refactor
library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
@@ -15200,7 +14781,7 @@ newsos6)
dynamic_linker='ldqnx.so'
;;
-openbsd*)
+openbsd* | bitrig*)
version_type=sunos
sys_lib_dlsearch_path_spec=/usr/lib
need_lib_prefix=no
@@ -15260,17 +14841,6 @@ rdos*)
dynamic_linker=no
;;
-serenity*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- dynamic_linker='SerenityOS LibELF'
- ;;
-
solaris*)
version_type=linux # correct to gnu/linux during the next big refactor
need_lib_prefix=no
@@ -15368,496 +14938,6 @@ uts4*)
shlibpath_var=LD_LIBRARY_PATH
;;
-emscripten*)
- version_type=none
- need_lib_prefix=no
- need_version=no
- library_names_spec='$libname$release$shared_ext'
- soname_spec='$libname$release$shared_ext'
- finish_cmds=
- dynamic_linker="Emscripten linker"
- lt_prog_compiler_wl=
-lt_prog_compiler_pic=
-lt_prog_compiler_static=
-
-
- if test yes = "$GCC"; then
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_static='-static'
-
- case $host_os in
- aix*)
- # All AIX code is PIC.
- if test ia64 = "$host_cpu"; then
- # AIX 5 now supports IA64 processor
- lt_prog_compiler_static='-Bstatic'
- fi
- lt_prog_compiler_pic='-fPIC'
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- lt_prog_compiler_pic='-fPIC'
- ;;
- m68k)
- # FIXME: we need at least 68020 code to build shared libraries, but
- # adding the '-m68020' flag to GCC prevents building anything better,
- # like '-m68040'.
- lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
- ;;
- esac
- ;;
-
- beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
- # PIC is the default for these OSes.
- ;;
-
- mingw* | windows* | cygwin* | pw32* | os2* | cegcc*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- # Although the cygwin gcc ignores -fPIC, still need this for old-style
- # (--disable-auto-import) libraries
- lt_prog_compiler_pic='-DDLL_EXPORT'
- case $host_os in
- os2*)
- lt_prog_compiler_static='$wl-static'
- ;;
- esac
- ;;
-
- darwin* | rhapsody*)
- # PIC is the default on this platform
- # Common symbols not allowed in MH_DYLIB files
- lt_prog_compiler_pic='-fno-common'
- ;;
-
- haiku*)
- # PIC is the default for Haiku.
- # The "-static" flag exists, but is broken.
- lt_prog_compiler_static=
- ;;
-
- hpux*)
- # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
- # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
- # sets the default TLS model and affects inlining.
- case $host_cpu in
- hppa*64*)
- # +Z the default
- ;;
- *)
- lt_prog_compiler_pic='-fPIC'
- ;;
- esac
- ;;
-
- interix[3-9]*)
- # Interix 3.x gcc -fpic/-fPIC options generate broken code.
- # Instead, we relocate shared libraries at runtime.
- ;;
-
- msdosdjgpp*)
- # Just because we use GCC doesn't mean we suddenly get shared libraries
- # on systems that don't support them.
- lt_prog_compiler_can_build_shared=no
- enable_shared=no
- ;;
-
- *nto* | *qnx*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- lt_prog_compiler_pic='-fPIC -shared'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec; then
- lt_prog_compiler_pic=-Kconform_pic
- fi
- ;;
-
- *)
- lt_prog_compiler_pic='-fPIC'
- ;;
- esac
-
- case $cc_basename in
- nvcc*) # Cuda Compiler Driver 2.2
- lt_prog_compiler_wl='-Xlinker '
- if test -n "$lt_prog_compiler_pic"; then
- lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic"
- fi
- ;;
- esac
- else
- # PORTME Check for flag to pass linker flags through the system compiler.
- case $host_os in
- aix*)
- lt_prog_compiler_wl='-Wl,'
- if test ia64 = "$host_cpu"; then
- # AIX 5 now supports IA64 processor
- lt_prog_compiler_static='-Bstatic'
- else
- lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
- fi
- ;;
-
- darwin* | rhapsody*)
- # PIC is the default on this platform
- # Common symbols not allowed in MH_DYLIB files
- lt_prog_compiler_pic='-fno-common'
- case $cc_basename in
- nagfor*)
- # NAG Fortran compiler
- lt_prog_compiler_wl='-Wl,-Wl,,'
- lt_prog_compiler_pic='-PIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
- esac
- ;;
-
- mingw* | windows* | cygwin* | pw32* | os2* | cegcc*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- lt_prog_compiler_pic='-DDLL_EXPORT'
- case $host_os in
- os2*)
- lt_prog_compiler_static='$wl-static'
- ;;
- esac
- ;;
-
- hpux9* | hpux10* | hpux11*)
- lt_prog_compiler_wl='-Wl,'
- # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
- # not for PA HP-UX.
- case $host_cpu in
- hppa*64*|ia64*)
- # +Z the default
- ;;
- *)
- lt_prog_compiler_pic='+Z'
- ;;
- esac
- # Is there a better lt_prog_compiler_static that works with the bundled CC?
- lt_prog_compiler_static='$wl-a ${wl}archive'
- ;;
-
- irix5* | irix6* | nonstopux*)
- lt_prog_compiler_wl='-Wl,'
- # PIC (with -KPIC) is the default.
- lt_prog_compiler_static='-non_shared'
- ;;
-
- linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
- case $cc_basename in
- # old Intel for x86_64, which still supported -KPIC.
- ecc*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-static'
- ;;
- *flang* | ftn | f18* | f95*)
- # Flang compiler.
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-fPIC'
- lt_prog_compiler_static='-static'
- ;;
- # icc used to be incompatible with GCC.
- # ICC 10 doesn't accept -KPIC any more.
- icc* | ifort*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-fPIC'
- lt_prog_compiler_static='-static'
- ;;
- # Lahey Fortran 8.1.
- lf95*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='--shared'
- lt_prog_compiler_static='--static'
- ;;
- nagfor*)
- # NAG Fortran compiler
- lt_prog_compiler_wl='-Wl,-Wl,,'
- lt_prog_compiler_pic='-PIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
- tcc*)
- # Fabrice Bellard et al's Tiny C Compiler
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-fPIC'
- lt_prog_compiler_static='-static'
- ;;
- pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
- # Portland Group compilers (*not* the Pentium gcc compiler,
- # which looks to be a dead project)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-fpic'
- lt_prog_compiler_static='-Bstatic'
- ;;
- ccc*)
- lt_prog_compiler_wl='-Wl,'
- # All Alpha code is PIC.
- lt_prog_compiler_static='-non_shared'
- ;;
- xl* | bgxl* | bgf* | mpixl*)
- # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-qpic'
- lt_prog_compiler_static='-qstaticlink'
- ;;
- *)
- case `$CC -V 2>&1 | $SED 5q` in
- *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*)
- # Sun Fortran 8.3 passes all unrecognized flags to the linker
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- lt_prog_compiler_wl=''
- ;;
- *Sun\ F* | *Sun*Fortran*)
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- lt_prog_compiler_wl='-Qoption ld '
- ;;
- *Sun\ C*)
- # Sun C 5.9
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- lt_prog_compiler_wl='-Wl,'
- ;;
- *Intel*\ [CF]*Compiler*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-fPIC'
- lt_prog_compiler_static='-static'
- ;;
- *Portland\ Group*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-fpic'
- lt_prog_compiler_static='-Bstatic'
- ;;
- esac
- ;;
- esac
- ;;
-
- newsos6)
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
-
- *-mlibc)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-fPIC'
- lt_prog_compiler_static='-static'
- ;;
-
- *nto* | *qnx*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- lt_prog_compiler_pic='-fPIC -shared'
- ;;
-
- osf3* | osf4* | osf5*)
- lt_prog_compiler_wl='-Wl,'
- # All OSF/1 code is PIC.
- lt_prog_compiler_static='-non_shared'
- ;;
-
- rdos*)
- lt_prog_compiler_static='-non_shared'
- ;;
-
- serenity*)
- ;;
-
- solaris*)
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- case $cc_basename in
- f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
- lt_prog_compiler_wl='-Qoption ld ';;
- *)
- lt_prog_compiler_wl='-Wl,';;
- esac
- ;;
-
- sunos4*)
- lt_prog_compiler_wl='-Qoption ld '
- lt_prog_compiler_pic='-PIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
-
- sysv4 | sysv4.2uw2* | sysv4.3*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec; then
- lt_prog_compiler_pic='-Kconform_pic'
- lt_prog_compiler_static='-Bstatic'
- fi
- ;;
-
- sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
-
- unicos*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_can_build_shared=no
- ;;
-
- uts4*)
- lt_prog_compiler_pic='-pic'
- lt_prog_compiler_static='-Bstatic'
- ;;
-
- *)
- lt_prog_compiler_can_build_shared=no
- ;;
- esac
- fi
-
-case $host_os in
- # For platforms that do not support PIC, -DPIC is meaningless:
- *djgpp*)
- lt_prog_compiler_pic=
- ;;
- *)
- lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
- ;;
-esac
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
-printf %s "checking for $compiler option to produce PIC... " >&6; }
-if test ${lt_cv_prog_compiler_pic+y}
-then :
- printf %s "(cached) " >&6
-else case e in #(
- e) lt_cv_prog_compiler_pic=$lt_prog_compiler_pic ;;
-esac
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
-printf "%s\n" "$lt_cv_prog_compiler_pic" >&6; }
-lt_prog_compiler_pic=$lt_cv_prog_compiler_pic
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$lt_prog_compiler_pic"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
-printf %s "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
-if test ${lt_cv_prog_compiler_pic_works+y}
-then :
- printf %s "(cached) " >&6
-else case e in #(
- e) lt_cv_prog_compiler_pic_works=no
- ac_outfile=conftest.$ac_objext
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
- lt_compiler_flag="$lt_prog_compiler_pic -DPIC" ## exclude from sc_useless_quotes_in_assignment
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- # The option is referenced via a variable to avoid confusing sed.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>conftest.err)
- ac_status=$?
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s "$ac_outfile"; then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings other than the usual output.
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_pic_works=yes
- fi
- fi
- $RM conftest*
- ;;
-esac
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
-printf "%s\n" "$lt_cv_prog_compiler_pic_works" >&6; }
-
-if test yes = "$lt_cv_prog_compiler_pic_works"; then
- case $lt_prog_compiler_pic in
- "" | " "*) ;;
- *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
- esac
-else
- lt_prog_compiler_pic=
- lt_prog_compiler_can_build_shared=no
-fi
-
-fi
-
-
-
-
-
-#
-# Check to make sure the static flag actually works.
-#
-wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
-printf %s "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
-if test ${lt_cv_prog_compiler_static_works+y}
-then :
- printf %s "(cached) " >&6
-else case e in #(
- e) lt_cv_prog_compiler_static_works=no
- save_LDFLAGS=$LDFLAGS
- LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
- echo "$lt_simple_link_test_code" > conftest.$ac_ext
- if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
- # The linker can only warn and ignore the option if not recognized
- # So say no if there are warnings
- if test -s conftest.err; then
- # Append any errors to the config.log.
- cat conftest.err 1>&5
- $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if diff conftest.exp conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_static_works=yes
- fi
- else
- lt_cv_prog_compiler_static_works=yes
- fi
- fi
- $RM -r conftest*
- LDFLAGS=$save_LDFLAGS
- ;;
-esac
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
-printf "%s\n" "$lt_cv_prog_compiler_static_works" >&6; }
-
-if test yes = "$lt_cv_prog_compiler_static_works"; then
- :
-else
- lt_prog_compiler_static=
-fi
-
-
-
-='-fPIC'
- archive_cmds='$CC -sSIDE_MODULE=2 -shared $libobjs $deplibs $compiler_flags -o $lib'
- archive_expsym_cmds='$SED "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -sSIDE_MODULE=2 -shared $libobjs $deplibs $compiler_flags -o $lib -s EXPORTED_FUNCTIONS=@$output_objdir/$soname.expsym'
- archive_cmds_need_lc=no
- no_undefined_flag=
- ;;
-
*)
dynamic_linker=no
;;
@@ -16042,7 +15122,7 @@ else
lt_cv_dlopen_self=yes
;;
- mingw* | windows* | pw32* | cegcc*)
+ mingw* | pw32* | cegcc*)
lt_cv_dlopen=LoadLibrary
lt_cv_dlopen_libs=
;;
@@ -16059,22 +15139,16 @@ printf %s "checking for dlopen in -ldl... " >&6; }
if test ${ac_cv_lib_dl_dlopen+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) ac_check_lib_save_LIBS=$LIBS
+else $as_nop
+ ac_check_lib_save_LIBS=$LIBS
LIBS="-ldl $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply.
- The 'extern "C"' is for builds by C++ compilers;
- although this is not generally supported in C code supporting it here
- has little cost and some practical benefit (sr 110532). */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen (void);
+ builtin and then its argument prototype would still apply. */
+char dlopen ();
int
main (void)
{
@@ -16086,27 +15160,24 @@ _ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_lib_dl_dlopen=yes
-else case e in #(
- e) ac_cv_lib_dl_dlopen=no ;;
-esac
+else $as_nop
+ ac_cv_lib_dl_dlopen=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS ;;
-esac
+LIBS=$ac_check_lib_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
printf "%s\n" "$ac_cv_lib_dl_dlopen" >&6; }
if test "x$ac_cv_lib_dl_dlopen" = xyes
then :
lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl
-else case e in #(
- e)
+else $as_nop
+
lt_cv_dlopen=dyld
lt_cv_dlopen_libs=
lt_cv_dlopen_self=yes
- ;;
-esac
+
fi
;;
@@ -16124,28 +15195,22 @@ fi
if test "x$ac_cv_func_shl_load" = xyes
then :
lt_cv_dlopen=shl_load
-else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
printf %s "checking for shl_load in -ldld... " >&6; }
if test ${ac_cv_lib_dld_shl_load+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) ac_check_lib_save_LIBS=$LIBS
+else $as_nop
+ ac_check_lib_save_LIBS=$LIBS
LIBS="-ldld $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply.
- The 'extern "C"' is for builds by C++ compilers;
- although this is not generally supported in C code supporting it here
- has little cost and some practical benefit (sr 110532). */
-#ifdef __cplusplus
-extern "C"
-#endif
-char shl_load (void);
+ builtin and then its argument prototype would still apply. */
+char shl_load ();
int
main (void)
{
@@ -16157,47 +15222,39 @@ _ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_lib_dld_shl_load=yes
-else case e in #(
- e) ac_cv_lib_dld_shl_load=no ;;
-esac
+else $as_nop
+ ac_cv_lib_dld_shl_load=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS ;;
-esac
+LIBS=$ac_check_lib_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
printf "%s\n" "$ac_cv_lib_dld_shl_load" >&6; }
if test "x$ac_cv_lib_dld_shl_load" = xyes
then :
lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld
-else case e in #(
- e) ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
+else $as_nop
+ ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
if test "x$ac_cv_func_dlopen" = xyes
then :
lt_cv_dlopen=dlopen
-else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
printf %s "checking for dlopen in -ldl... " >&6; }
if test ${ac_cv_lib_dl_dlopen+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) ac_check_lib_save_LIBS=$LIBS
+else $as_nop
+ ac_check_lib_save_LIBS=$LIBS
LIBS="-ldl $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply.
- The 'extern "C"' is for builds by C++ compilers;
- although this is not generally supported in C code supporting it here
- has little cost and some practical benefit (sr 110532). */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen (void);
+ builtin and then its argument prototype would still apply. */
+char dlopen ();
int
main (void)
{
@@ -16209,42 +15266,34 @@ _ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_lib_dl_dlopen=yes
-else case e in #(
- e) ac_cv_lib_dl_dlopen=no ;;
-esac
+else $as_nop
+ ac_cv_lib_dl_dlopen=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS ;;
-esac
+LIBS=$ac_check_lib_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
printf "%s\n" "$ac_cv_lib_dl_dlopen" >&6; }
if test "x$ac_cv_lib_dl_dlopen" = xyes
then :
lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl
-else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
printf %s "checking for dlopen in -lsvld... " >&6; }
if test ${ac_cv_lib_svld_dlopen+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) ac_check_lib_save_LIBS=$LIBS
+else $as_nop
+ ac_check_lib_save_LIBS=$LIBS
LIBS="-lsvld $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply.
- The 'extern "C"' is for builds by C++ compilers;
- although this is not generally supported in C code supporting it here
- has little cost and some practical benefit (sr 110532). */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen (void);
+ builtin and then its argument prototype would still apply. */
+char dlopen ();
int
main (void)
{
@@ -16256,42 +15305,34 @@ _ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_lib_svld_dlopen=yes
-else case e in #(
- e) ac_cv_lib_svld_dlopen=no ;;
-esac
+else $as_nop
+ ac_cv_lib_svld_dlopen=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS ;;
-esac
+LIBS=$ac_check_lib_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
printf "%s\n" "$ac_cv_lib_svld_dlopen" >&6; }
if test "x$ac_cv_lib_svld_dlopen" = xyes
then :
lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld
-else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
printf %s "checking for dld_link in -ldld... " >&6; }
if test ${ac_cv_lib_dld_dld_link+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) ac_check_lib_save_LIBS=$LIBS
+else $as_nop
+ ac_check_lib_save_LIBS=$LIBS
LIBS="-ldld $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply.
- The 'extern "C"' is for builds by C++ compilers;
- although this is not generally supported in C code supporting it here
- has little cost and some practical benefit (sr 110532). */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dld_link (void);
+ builtin and then its argument prototype would still apply. */
+char dld_link ();
int
main (void)
{
@@ -16303,14 +15344,12 @@ _ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_lib_dld_dld_link=yes
-else case e in #(
- e) ac_cv_lib_dld_dld_link=no ;;
-esac
+else $as_nop
+ ac_cv_lib_dld_dld_link=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS ;;
-esac
+LIBS=$ac_check_lib_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
printf "%s\n" "$ac_cv_lib_dld_dld_link" >&6; }
@@ -16319,24 +15358,19 @@ then :
lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld
fi
- ;;
-esac
+
fi
- ;;
-esac
+
fi
- ;;
-esac
+
fi
- ;;
-esac
+
fi
- ;;
-esac
+
fi
;;
@@ -16364,8 +15398,8 @@ printf %s "checking whether a program can dlopen itself... " >&6; }
if test ${lt_cv_dlopen_self+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test yes = "$cross_compiling"; then :
+else $as_nop
+ if test yes = "$cross_compiling"; then :
lt_cv_dlopen_self=cross
else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
@@ -16415,11 +15449,11 @@ else
/* When -fvisibility=hidden is used, assume the code has been annotated
correspondingly for the symbols needed. */
#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
-int fnord (void) __attribute__((visibility("default")));
+int fnord () __attribute__((visibility("default")));
#endif
-int fnord (void) { return 42; }
-int main (void)
+int fnord () { return 42; }
+int main ()
{
void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
int status = $lt_dlunknown;
@@ -16459,8 +15493,7 @@ _LT_EOF
fi
rm -fr conftest*
- ;;
-esac
+
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
printf "%s\n" "$lt_cv_dlopen_self" >&6; }
@@ -16472,8 +15505,8 @@ printf %s "checking whether a statically linked program can dlopen itself... " >
if test ${lt_cv_dlopen_self_static+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test yes = "$cross_compiling"; then :
+else $as_nop
+ if test yes = "$cross_compiling"; then :
lt_cv_dlopen_self_static=cross
else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
@@ -16523,11 +15556,11 @@ else
/* When -fvisibility=hidden is used, assume the code has been annotated
correspondingly for the symbols needed. */
#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
-int fnord (void) __attribute__((visibility("default")));
+int fnord () __attribute__((visibility("default")));
#endif
-int fnord (void) { return 42; }
-int main (void)
+int fnord () { return 42; }
+int main ()
{
void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
int status = $lt_dlunknown;
@@ -16567,8 +15600,7 @@ _LT_EOF
fi
rm -fr conftest*
- ;;
-esac
+
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
printf "%s\n" "$lt_cv_dlopen_self_static" >&6; }
@@ -16611,41 +15643,30 @@ striplib=
old_striplib=
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
printf %s "checking whether stripping libraries is possible... " >&6; }
-if test -z "$STRIP"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-else
- if $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
- old_striplib="$STRIP --strip-debug"
- striplib="$STRIP --strip-unneeded"
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
+ test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+ test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
- else
- case $host_os in
- darwin*)
- # FIXME - insert some real tests, host_os isn't really good enough
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+ case $host_os in
+ darwin*)
+ if test -n "$STRIP"; then
striplib="$STRIP -x"
old_striplib="$STRIP -S"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
- ;;
- freebsd*)
- if $STRIP -V 2>&1 | $GREP "elftoolchain" >/dev/null; then
- old_striplib="$STRIP --strip-debug"
- striplib="$STRIP --strip-unneeded"
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
- else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- fi
- ;;
- *)
+ else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
- ;;
- esac
- fi
+ fi
+ ;;
+ *)
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+ ;;
+ esac
fi
@@ -16754,8 +15775,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_path_PKG_CONFIG+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) case $PKG_CONFIG in
+else $as_nop
+ case $PKG_CONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
;;
@@ -16780,7 +15801,6 @@ done
IFS=$as_save_IFS
;;
-esac ;;
esac
fi
PKG_CONFIG=$ac_cv_path_PKG_CONFIG
@@ -16803,8 +15823,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_path_ac_pt_PKG_CONFIG+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) case $ac_pt_PKG_CONFIG in
+else $as_nop
+ case $ac_pt_PKG_CONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
;;
@@ -16829,7 +15849,6 @@ done
IFS=$as_save_IFS
;;
-esac ;;
esac
fi
ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
@@ -16870,9 +15889,6 @@ printf "%s\n" "no" >&6; }
PKG_CONFIG=""
fi
fi
-if test -z "$PKG_CONFIG"; then
- as_fn_error $? "pkg-config not found" "$LINENO" 5
-fi
fi
# Checks for header files.
@@ -17164,132 +16180,265 @@ ac_fn_c_check_type "$LINENO" "int8_t" "ac_cv_type_int8_t" "$ac_includes_default"
if test "x$ac_cv_type_int8_t" = xyes
then :
-else case e in #(
- e)
+else $as_nop
+
printf "%s\n" "#define int8_t signed char" >>confdefs.h
- ;;
-esac
+
fi
ac_fn_c_check_type "$LINENO" "int16_t" "ac_cv_type_int16_t" "$ac_includes_default"
if test "x$ac_cv_type_int16_t" = xyes
then :
-else case e in #(
- e)
+else $as_nop
+
printf "%s\n" "#define int16_t short" >>confdefs.h
- ;;
-esac
+
fi
ac_fn_c_check_type "$LINENO" "int32_t" "ac_cv_type_int32_t" "$ac_includes_default"
if test "x$ac_cv_type_int32_t" = xyes
then :
-else case e in #(
- e)
+else $as_nop
+
printf "%s\n" "#define int32_t int" >>confdefs.h
- ;;
-esac
+
fi
ac_fn_c_check_type "$LINENO" "int64_t" "ac_cv_type_int64_t" "$ac_includes_default"
if test "x$ac_cv_type_int64_t" = xyes
then :
-else case e in #(
- e)
+else $as_nop
+
printf "%s\n" "#define int64_t long long" >>confdefs.h
- ;;
-esac
+
fi
ac_fn_c_check_type "$LINENO" "uint8_t" "ac_cv_type_uint8_t" "$ac_includes_default"
if test "x$ac_cv_type_uint8_t" = xyes
then :
-else case e in #(
- e)
+else $as_nop
+
printf "%s\n" "#define uint8_t unsigned char" >>confdefs.h
- ;;
-esac
+
fi
ac_fn_c_check_type "$LINENO" "uint16_t" "ac_cv_type_uint16_t" "$ac_includes_default"
if test "x$ac_cv_type_uint16_t" = xyes
then :
-else case e in #(
- e)
+else $as_nop
+
printf "%s\n" "#define uint16_t unsigned short" >>confdefs.h
- ;;
-esac
+
fi
ac_fn_c_check_type "$LINENO" "uint32_t" "ac_cv_type_uint32_t" "$ac_includes_default"
if test "x$ac_cv_type_uint32_t" = xyes
then :
-else case e in #(
- e)
+else $as_nop
+
printf "%s\n" "#define uint32_t unsigned int" >>confdefs.h
- ;;
-esac
+
fi
ac_fn_c_check_type "$LINENO" "uint64_t" "ac_cv_type_uint64_t" "$ac_includes_default"
if test "x$ac_cv_type_uint64_t" = xyes
then :
-else case e in #(
- e)
+else $as_nop
+
printf "%s\n" "#define uint64_t unsigned long long" >>confdefs.h
- ;;
-esac
+
fi
ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
if test "x$ac_cv_type_size_t" = xyes
then :
-else case e in #(
- e)
+else $as_nop
+
printf "%s\n" "#define size_t unsigned int" >>confdefs.h
- ;;
-esac
+
fi
ac_fn_c_check_type "$LINENO" "ssize_t" "ac_cv_type_ssize_t" "$ac_includes_default"
if test "x$ac_cv_type_ssize_t" = xyes
then :
-else case e in #(
- e)
+else $as_nop
+
printf "%s\n" "#define ssize_t int" >>confdefs.h
- ;;
-esac
+
fi
-ac_fn_c_check_type "$LINENO" "uid_t" "ac_cv_type_uid_t" "$ac_includes_default"
-if test "x$ac_cv_type_uid_t" = xyes
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
+printf %s "checking how to run the C preprocessor... " >&6; }
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+ CPP=
+fi
+if test -z "$CPP"; then
+ if test ${ac_cv_prog_CPP+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ # Double quotes because $CC needs to be expanded
+ for CPP in "$CC -E" "$CC -E -traditional-cpp" cpp /lib/cpp
+ do
+ ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <limits.h>
+ Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"
then :
-else case e in #(
- e)
-printf "%s\n" "#define uid_t int" >>confdefs.h
- ;;
-esac
+else $as_nop
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"
+then :
+ # Broken: success on invalid input.
+continue
+else $as_nop
+ # Passes both tests.
+ac_preproc_ok=:
+break
fi
+rm -f conftest.err conftest.i conftest.$ac_ext
-ac_fn_c_check_type "$LINENO" "gid_t" "ac_cv_type_gid_t" "$ac_includes_default"
-if test "x$ac_cv_type_gid_t" = xyes
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok
then :
+ break
+fi
+
+ done
+ ac_cv_prog_CPP=$CPP
+
+fi
+ CPP=$ac_cv_prog_CPP
+else
+ ac_cv_prog_CPP=$CPP
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
+printf "%s\n" "$CPP" >&6; }
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <limits.h>
+ Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"
+then :
+
+else $as_nop
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"
+then :
+ # Broken: success on invalid input.
+continue
+else $as_nop
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok
+then :
+
+else $as_nop
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for uid_t in sys/types.h" >&5
+printf %s "checking for uid_t in sys/types.h... " >&6; }
+if test ${ac_cv_type_uid_t+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "uid_t" >/dev/null 2>&1
+then :
+ ac_cv_type_uid_t=yes
+else $as_nop
+ ac_cv_type_uid_t=no
+fi
+rm -rf conftest*
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_uid_t" >&5
+printf "%s\n" "$ac_cv_type_uid_t" >&6; }
+if test $ac_cv_type_uid_t = no; then
+
+printf "%s\n" "#define uid_t int" >>confdefs.h
+
-else case e in #(
- e)
printf "%s\n" "#define gid_t int" >>confdefs.h
- ;;
-esac
+
fi
@@ -17298,8 +16447,8 @@ fi
if test "x$ac_cv_type_pid_t" = xyes
then :
-else case e in #(
- e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#if defined _WIN64 && !defined __CYGWIN__
@@ -17318,16 +16467,14 @@ _ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_pid_type='int'
-else case e in #(
- e) ac_pid_type='__int64' ;;
-esac
+else $as_nop
+ ac_pid_type='__int64'
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
printf "%s\n" "#define pid_t $ac_pid_type" >>confdefs.h
- ;;
-esac
+
fi
@@ -17335,11 +16482,10 @@ ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default"
if test "x$ac_cv_type_off_t" = xyes
then :
-else case e in #(
- e)
+else $as_nop
+
printf "%s\n" "#define off_t long int" >>confdefs.h
- ;;
-esac
+
fi
ac_fn_c_check_type "$LINENO" "u_char" "ac_cv_type_u_char" "
@@ -17352,11 +16498,10 @@ $ac_includes_default
if test "x$ac_cv_type_u_char" = xyes
then :
-else case e in #(
- e)
+else $as_nop
+
printf "%s\n" "#define u_char unsigned char" >>confdefs.h
- ;;
-esac
+
fi
ac_fn_c_check_type "$LINENO" "rlim_t" "ac_cv_type_rlim_t" "
@@ -17369,11 +16514,10 @@ $ac_includes_default
if test "x$ac_cv_type_rlim_t" = xyes
then :
-else case e in #(
- e)
+else $as_nop
+
printf "%s\n" "#define rlim_t unsigned long" >>confdefs.h
- ;;
-esac
+
fi
@@ -17390,11 +16534,10 @@ $ac_includes_default
if test "x$ac_cv_type_socklen_t" = xyes
then :
-else case e in #(
- e)
+else $as_nop
+
printf "%s\n" "#define socklen_t int" >>confdefs.h
- ;;
-esac
+
fi
ac_fn_c_check_type "$LINENO" "in_addr_t" "ac_cv_type_in_addr_t" "
@@ -17410,11 +16553,10 @@ $ac_includes_default
if test "x$ac_cv_type_in_addr_t" = xyes
then :
-else case e in #(
- e)
+else $as_nop
+
printf "%s\n" "#define in_addr_t uint32_t" >>confdefs.h
- ;;
-esac
+
fi
ac_fn_c_check_type "$LINENO" "in_port_t" "ac_cv_type_in_port_t" "
@@ -17430,11 +16572,10 @@ $ac_includes_default
if test "x$ac_cv_type_in_port_t" = xyes
then :
-else case e in #(
- e)
+else $as_nop
+
printf "%s\n" "#define in_port_t uint16_t" >>confdefs.h
- ;;
-esac
+
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if memcmp compares unsigned" >&5
@@ -17453,8 +16594,8 @@ printf "%s\n" "#define MEMCMP_IS_BROKEN 1" >>confdefs.h
esac
-else case e in #(
- e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdio.h>
@@ -17473,8 +16614,8 @@ if ac_fn_c_try_run "$LINENO"
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
-else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
printf "%s\n" "#define MEMCMP_IS_BROKEN 1" >>confdefs.h
@@ -17485,26 +16626,24 @@ printf "%s\n" "#define MEMCMP_IS_BROKEN 1" >>confdefs.h
;;
esac
- ;;
-esac
+
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
-esac
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
# The cast to long int works around a bug in the HP C Compiler
# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'.
+# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
# This bug is HP SR number 8606223364.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of time_t" >&5
printf %s "checking size of time_t... " >&6; }
if test ${ac_cv_sizeof_time_t+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (time_t))" "ac_cv_sizeof_time_t" "
+else $as_nop
+ if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (time_t))" "ac_cv_sizeof_time_t" "
$ac_includes_default
#ifdef TIME_WITH_SYS_TIME
# include <sys/time.h>
@@ -17520,19 +16659,17 @@ $ac_includes_default
"
then :
-else case e in #(
- e) if test "$ac_cv_type_time_t" = yes; then
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+else $as_nop
+ if test "$ac_cv_type_time_t" = yes; then
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error 77 "cannot compute sizeof (time_t)
-See 'config.log' for more details" "$LINENO" 5; }
+See \`config.log' for more details" "$LINENO" 5; }
else
ac_cv_sizeof_time_t=0
- fi ;;
-esac
+ fi
fi
- ;;
-esac
+
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_time_t" >&5
printf "%s\n" "$ac_cv_sizeof_time_t" >&6; }
@@ -17544,30 +16681,28 @@ printf "%s\n" "#define SIZEOF_TIME_T $ac_cv_sizeof_time_t" >>confdefs.h
# The cast to long int works around a bug in the HP C Compiler
# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'.
+# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
# This bug is HP SR number 8606223364.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of size_t" >&5
printf %s "checking size of size_t... " >&6; }
if test ${ac_cv_sizeof_size_t+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (size_t))" "ac_cv_sizeof_size_t" "$ac_includes_default"
+else $as_nop
+ if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (size_t))" "ac_cv_sizeof_size_t" "$ac_includes_default"
then :
-else case e in #(
- e) if test "$ac_cv_type_size_t" = yes; then
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+else $as_nop
+ if test "$ac_cv_type_size_t" = yes; then
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error 77 "cannot compute sizeof (size_t)
-See 'config.log' for more details" "$LINENO" 5; }
+See \`config.log' for more details" "$LINENO" 5; }
else
ac_cv_sizeof_size_t=0
- fi ;;
-esac
+ fi
fi
- ;;
-esac
+
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_size_t" >&5
printf "%s\n" "$ac_cv_sizeof_size_t" >&6; }
@@ -17584,9 +16719,8 @@ printf "%s\n" "#define SIZEOF_SIZE_T $ac_cv_sizeof_size_t" >>confdefs.h
if test ${enable_rpath+y}
then :
enableval=$enable_rpath; enable_rpath=$enableval
-else case e in #(
- e) enable_rpath=yes ;;
-esac
+else $as_nop
+ enable_rpath=yes
fi
if test "x$enable_rpath" = xno; then
@@ -17602,21 +16736,15 @@ printf %s "checking for library containing inet_pton... " >&6; }
if test ${ac_cv_search_inet_pton+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) ac_func_search_save_LIBS=$LIBS
+else $as_nop
+ ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply.
- The 'extern "C"' is for builds by C++ compilers;
- although this is not generally supported in C code supporting it here
- has little cost and some practical benefit (sr 110532). */
-#ifdef __cplusplus
-extern "C"
-#endif
-char inet_pton (void);
+ builtin and then its argument prototype would still apply. */
+char inet_pton ();
int
main (void)
{
@@ -17647,13 +16775,11 @@ done
if test ${ac_cv_search_inet_pton+y}
then :
-else case e in #(
- e) ac_cv_search_inet_pton=no ;;
-esac
+else $as_nop
+ ac_cv_search_inet_pton=no
fi
rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS ;;
-esac
+LIBS=$ac_func_search_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_inet_pton" >&5
printf "%s\n" "$ac_cv_search_inet_pton" >&6; }
@@ -17669,21 +16795,15 @@ printf %s "checking for library containing socket... " >&6; }
if test ${ac_cv_search_socket+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) ac_func_search_save_LIBS=$LIBS
+else $as_nop
+ ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply.
- The 'extern "C"' is for builds by C++ compilers;
- although this is not generally supported in C code supporting it here
- has little cost and some practical benefit (sr 110532). */
-#ifdef __cplusplus
-extern "C"
-#endif
-char socket (void);
+ builtin and then its argument prototype would still apply. */
+char socket ();
int
main (void)
{
@@ -17714,13 +16834,11 @@ done
if test ${ac_cv_search_socket+y}
then :
-else case e in #(
- e) ac_cv_search_socket=no ;;
-esac
+else $as_nop
+ ac_cv_search_socket=no
fi
rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS ;;
-esac
+LIBS=$ac_func_search_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_socket" >&5
printf "%s\n" "$ac_cv_search_socket" >&6; }
@@ -17740,8 +16858,8 @@ printf %s "checking for working chown... " >&6; }
if test ${ac_cv_func_chown_works+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test "$cross_compiling" = yes
+else $as_nop
+ if test "$cross_compiling" = yes
then :
case "$host_os" in # ((
# Guess yes on glibc systems.
@@ -17749,8 +16867,8 @@ then :
# If we don't know, assume the worst.
*) ac_cv_func_chown_works=no ;;
esac
-else case e in #(
- e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$ac_includes_default
#include <fcntl.h>
@@ -17778,18 +16896,15 @@ _ACEOF
if ac_fn_c_try_run "$LINENO"
then :
ac_cv_func_chown_works=yes
-else case e in #(
- e) ac_cv_func_chown_works=no ;;
-esac
+else $as_nop
+ ac_cv_func_chown_works=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
-esac
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
rm -f conftest.chown
- ;;
-esac
+
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_chown_works" >&5
printf "%s\n" "$ac_cv_func_chown_works" >&6; }
@@ -17822,19 +16937,19 @@ printf %s "checking for working fork... " >&6; }
if test ${ac_cv_func_fork_works+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test "$cross_compiling" = yes
+else $as_nop
+ if test "$cross_compiling" = yes
then :
ac_cv_func_fork_works=cross
-else case e in #(
- e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$ac_includes_default
int
main (void)
{
- /* By R. Kuhlmann. */
+ /* By Ruediger Kuhlmann. */
return fork () < 0;
;
@@ -17844,16 +16959,13 @@ _ACEOF
if ac_fn_c_try_run "$LINENO"
then :
ac_cv_func_fork_works=yes
-else case e in #(
- e) ac_cv_func_fork_works=no ;;
-esac
+else $as_nop
+ ac_cv_func_fork_works=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
-esac
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
- ;;
-esac
+
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_fork_works" >&5
printf "%s\n" "$ac_cv_func_fork_works" >&6; }
@@ -17881,12 +16993,12 @@ printf %s "checking for working vfork... " >&6; }
if test ${ac_cv_func_vfork_works+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test "$cross_compiling" = yes
+else $as_nop
+ if test "$cross_compiling" = yes
then :
ac_cv_func_vfork_works=cross
-else case e in #(
- e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Thanks to Paul Eggert for this test. */
$ac_includes_default
@@ -17997,16 +17109,13 @@ _ACEOF
if ac_fn_c_try_run "$LINENO"
then :
ac_cv_func_vfork_works=yes
-else case e in #(
- e) ac_cv_func_vfork_works=no ;;
-esac
+else $as_nop
+ ac_cv_func_vfork_works=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
-esac
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
- ;;
-esac
+
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_vfork_works" >&5
printf "%s\n" "$ac_cv_func_vfork_works" >&6; }
@@ -18036,97 +17145,72 @@ fi
printf "%s\n" "#define RETSIGTYPE void" >>confdefs.h
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for declarations of fseeko and ftello" >&5
-printf %s "checking for declarations of fseeko and ftello... " >&6; }
-if test ${ac_cv_func_fseeko_ftello+y}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for _LARGEFILE_SOURCE value needed for large files" >&5
+printf %s "checking for _LARGEFILE_SOURCE value needed for large files... " >&6; }
+if test ${ac_cv_sys_largefile_source+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else $as_nop
+ while :; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-
-#if defined __hpux && !defined _LARGEFILE_SOURCE
-# include <limits.h>
-# if LONG_MAX >> 31 == 0
-# error "32-bit HP-UX 11/ia64 needs _LARGEFILE_SOURCE for fseeko in C++"
-# endif
-#endif
#include <sys/types.h> /* for off_t */
-#include <stdio.h>
-
+ #include <stdio.h>
int
main (void)
{
-
- int (*fp1) (FILE *, off_t, int) = fseeko;
- off_t (*fp2) (FILE *) = ftello;
- return fseeko (stdin, 0, 0)
- && fp1 (stdin, 0, 0)
- && ftello (stdin) >= 0
- && fp2 (stdin) >= 0;
-
+int (*fp) (FILE *, off_t, int) = fseeko;
+ return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);
;
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"
+if ac_fn_c_try_link "$LINENO"
then :
- ac_cv_func_fseeko_ftello=yes
-else case e in #(
- e) ac_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE=1"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ ac_cv_sys_largefile_source=no; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+ conftest$ac_exeext conftest.$ac_ext
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-
-#if defined __hpux && !defined _LARGEFILE_SOURCE
-# include <limits.h>
-# if LONG_MAX >> 31 == 0
-# error "32-bit HP-UX 11/ia64 needs _LARGEFILE_SOURCE for fseeko in C++"
-# endif
-#endif
+#define _LARGEFILE_SOURCE 1
#include <sys/types.h> /* for off_t */
-#include <stdio.h>
-
+ #include <stdio.h>
int
main (void)
{
-
- int (*fp1) (FILE *, off_t, int) = fseeko;
- off_t (*fp2) (FILE *) = ftello;
- return fseeko (stdin, 0, 0)
- && fp1 (stdin, 0, 0)
- && ftello (stdin) >= 0
- && fp2 (stdin) >= 0;
-
+int (*fp) (FILE *, off_t, int) = fseeko;
+ return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);
;
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"
+if ac_fn_c_try_link "$LINENO"
then :
- ac_cv_func_fseeko_ftello="need _LARGEFILE_SOURCE"
-else case e in #(
- e) ac_cv_func_fseeko_ftello=no ;;
-esac
+ ac_cv_sys_largefile_source=1; break
fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
-esac
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+ conftest$ac_exeext conftest.$ac_ext
+ ac_cv_sys_largefile_source=unknown
+ break
+done
fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_source" >&5
+printf "%s\n" "$ac_cv_sys_largefile_source" >&6; }
+case $ac_cv_sys_largefile_source in #(
+ no | unknown) ;;
+ *)
+printf "%s\n" "#define _LARGEFILE_SOURCE $ac_cv_sys_largefile_source" >>confdefs.h
+;;
esac
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_fseeko_ftello" >&5
-printf "%s\n" "$ac_cv_func_fseeko_ftello" >&6; }
-if test "$ac_cv_func_fseeko_ftello" != no
-then :
+rm -rf conftest*
-printf "%s\n" "#define HAVE_FSEEKO 1" >>confdefs.h
+# We used to try defining _XOPEN_SOURCE=500 too, to work around a bug
+# in glibc 2.1.3, but that breaks too many other things.
+# If you want fseeko and ftello with glibc, upgrade to a fixed glibc.
+if test $ac_cv_sys_largefile_source != unknown; then
-fi
-if test "$ac_cv_func_fseeko_ftello" = "need _LARGEFILE_SOURCE"
-then :
-
-printf "%s\n" "#define _LARGEFILE_SOURCE 1" >>confdefs.h
+printf "%s\n" "#define HAVE_FSEEKO 1" >>confdefs.h
fi
@@ -18136,34 +17220,31 @@ if test ${enable_largefile+y}
then :
enableval=$enable_largefile;
fi
-if test "$enable_largefile,$enable_year2038" != no,no
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable large file support" >&5
-printf %s "checking for $CC option to enable large file support... " >&6; }
-if test ${ac_cv_sys_largefile_opts+y}
+
+if test "$enable_largefile" != no; then
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5
+printf %s "checking for special C compiler options needed for large files... " >&6; }
+if test ${ac_cv_sys_largefile_CC+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) ac_save_CC="$CC"
- ac_opt_found=no
- for ac_opt in "none needed" "-D_FILE_OFFSET_BITS=64" "-D_LARGE_FILES=1" "-n32"; do
- if test x"$ac_opt" != x"none needed"
-then :
- CC="$ac_save_CC $ac_opt"
-fi
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else $as_nop
+ ac_cv_sys_largefile_CC=no
+ if test "$GCC" != yes; then
+ ac_save_CC=$CC
+ while :; do
+ # IRIX 6.2 and later do not support large files by default,
+ # so use the C compiler's -n32 option if that helps.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
-#ifndef FTYPE
-# define FTYPE off_t
-#endif
- /* Check that FTYPE can represent 2**63 - 1 correctly.
- We can't simply define LARGE_FTYPE to be 9223372036854775807,
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_FTYPE (((FTYPE) 1 << 31 << 31) - 1 + ((FTYPE) 1 << 31 << 31))
- int FTYPE_is_large[(LARGE_FTYPE % 2147483629 == 721
- && LARGE_FTYPE % 2147483647 == 1)
+#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
int
main (void)
@@ -18173,88 +17254,142 @@ main (void)
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- if test x"$ac_opt" = x"none needed"
-then :
- # GNU/Linux s390x and alpha need _FILE_OFFSET_BITS=64 for wide ino_t.
- CC="$CC -DFTYPE=ino_t"
if ac_fn_c_try_compile "$LINENO"
then :
-
-else case e in #(
- e) CC="$CC -D_FILE_OFFSET_BITS=64"
- if ac_fn_c_try_compile "$LINENO"
-then :
- ac_opt='-D_FILE_OFFSET_BITS=64'
+ break
fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam ;;
-esac
+rm -f core conftest.err conftest.$ac_objext conftest.beam
+ CC="$CC -n32"
+ if ac_fn_c_try_compile "$LINENO"
+then :
+ ac_cv_sys_largefile_CC=' -n32'; break
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam
+ break
+ done
+ CC=$ac_save_CC
+ rm -f conftest.$ac_ext
+ fi
fi
- ac_cv_sys_largefile_opts=$ac_opt
- ac_opt_found=yes
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5
+printf "%s\n" "$ac_cv_sys_largefile_CC" >&6; }
+ if test "$ac_cv_sys_largefile_CC" != no; then
+ CC=$CC$ac_cv_sys_largefile_CC
+ fi
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5
+printf %s "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; }
+if test ${ac_cv_sys_file_offset_bits+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ while :; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main (void)
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+ ac_cv_sys_file_offset_bits=no; break
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
- test $ac_opt_found = no || break
- done
- CC="$ac_save_CC"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#define _FILE_OFFSET_BITS 64
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main (void)
+{
- test $ac_opt_found = yes || ac_cv_sys_largefile_opts="support not detected" ;;
-esac
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+ ac_cv_sys_file_offset_bits=64; break
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_opts" >&5
-printf "%s\n" "$ac_cv_sys_largefile_opts" >&6; }
-
-ac_have_largefile=yes
-case $ac_cv_sys_largefile_opts in #(
- "none needed") :
- ;; #(
- "supported through gnulib") :
- ;; #(
- "support not detected") :
- ac_have_largefile=no ;; #(
- "-D_FILE_OFFSET_BITS=64") :
-
-printf "%s\n" "#define _FILE_OFFSET_BITS 64" >>confdefs.h
- ;; #(
- "-D_LARGE_FILES=1") :
-
-printf "%s\n" "#define _LARGE_FILES 1" >>confdefs.h
- ;; #(
- "-n32") :
- CC="$CC -n32" ;; #(
- *) :
- as_fn_error $? "internal error: bad value for \$ac_cv_sys_largefile_opts" "$LINENO" 5 ;;
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+ ac_cv_sys_file_offset_bits=unknown
+ break
+done
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5
+printf "%s\n" "$ac_cv_sys_file_offset_bits" >&6; }
+case $ac_cv_sys_file_offset_bits in #(
+ no | unknown) ;;
+ *)
+printf "%s\n" "#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits" >>confdefs.h
+;;
esac
-
-if test "$enable_year2038" != no
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option for timestamps after 2038" >&5
-printf %s "checking for $CC option for timestamps after 2038... " >&6; }
-if test ${ac_cv_sys_year2038_opts+y}
+rm -rf conftest*
+ if test $ac_cv_sys_file_offset_bits = unknown; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5
+printf %s "checking for _LARGE_FILES value needed for large files... " >&6; }
+if test ${ac_cv_sys_large_files+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) ac_save_CPPFLAGS="$CPPFLAGS"
- ac_opt_found=no
- for ac_opt in "none needed" "-D_TIME_BITS=64" "-D__MINGW_USE_VC2005_COMPAT" "-U_USE_32_BIT_TIME_T -D__MINGW_USE_VC2005_COMPAT"; do
- if test x"$ac_opt" != x"none needed"
+else $as_nop
+ while :; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main (void)
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
then :
- CPPFLAGS="$ac_save_CPPFLAGS $ac_opt"
+ ac_cv_sys_large_files=no; break
fi
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-
- #include <time.h>
- /* Check that time_t can represent 2**32 - 1 correctly. */
- #define LARGE_TIME_T \\
- ((time_t) (((time_t) 1 << 30) - 1 + 3 * ((time_t) 1 << 30)))
- int verify_time_t_range[(LARGE_TIME_T / 65537 == 65535
- && LARGE_TIME_T % 65537 == 0)
- ? 1 : -1];
-
+#define _LARGE_FILES 1
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
int
main (void)
{
@@ -18265,47 +17400,25 @@ main (void)
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
- ac_cv_sys_year2038_opts="$ac_opt"
- ac_opt_found=yes
+ ac_cv_sys_large_files=1; break
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
- test $ac_opt_found = no || break
- done
- CPPFLAGS="$ac_save_CPPFLAGS"
- test $ac_opt_found = yes || ac_cv_sys_year2038_opts="support not detected" ;;
-esac
+ ac_cv_sys_large_files=unknown
+ break
+done
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_year2038_opts" >&5
-printf "%s\n" "$ac_cv_sys_year2038_opts" >&6; }
-
-ac_have_year2038=yes
-case $ac_cv_sys_year2038_opts in #(
- "none needed") :
- ;; #(
- "support not detected") :
- ac_have_year2038=no ;; #(
- "-D_TIME_BITS=64") :
-
-printf "%s\n" "#define _TIME_BITS 64" >>confdefs.h
- ;; #(
- "-D__MINGW_USE_VC2005_COMPAT") :
-
-printf "%s\n" "#define __MINGW_USE_VC2005_COMPAT 1" >>confdefs.h
- ;; #(
- "-U_USE_32_BIT_TIME_T"*) :
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
-as_fn_error $? "the 'time_t' type is currently forced to be 32-bit. It
-will stop working after mid-January 2038. Remove
-_USE_32BIT_TIME_T from the compiler flags.
-See 'config.log' for more details" "$LINENO" 5; } ;; #(
- *) :
- as_fn_error $? "internal error: bad value for \$ac_cv_sys_year2038_opts" "$LINENO" 5 ;;
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5
+printf "%s\n" "$ac_cv_sys_large_files" >&6; }
+case $ac_cv_sys_large_files in #(
+ no | unknown) ;;
+ *)
+printf "%s\n" "#define _LARGE_FILES $ac_cv_sys_large_files" >>confdefs.h
+;;
esac
-
+rm -rf conftest*
+ fi
fi
-fi
@@ -18315,8 +17428,8 @@ cache=_D_LARGEFILE_SOURCE_1
if eval test \${cv_prog_cc_flag_needed_$cache+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e)
+else $as_nop
+
echo '
#include <stdio.h>
int test(void) {
@@ -18342,8 +17455,7 @@ fi
fi
rm -f conftest conftest.c conftest.o
- ;;
-esac
+
fi
if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = yes"; then
@@ -18387,8 +17499,8 @@ then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: crosscompile(yes)" >&5
printf "%s\n" "crosscompile(yes)" >&6; }
-else case e in #(
- e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -18523,19 +17635,17 @@ then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
-else case e in #(
- e)
+else $as_nop
+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
printf "%s\n" "#define NONBLOCKING_IS_BROKEN 1" >>confdefs.h
- ;;
-esac
+
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
-esac
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
fi
@@ -18573,11 +17683,10 @@ printf "%s\n" "yes" >&6; }
printf "%s\n" "#define MKDIR_HAS_ONE_ARG 1" >>confdefs.h
-else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
- ;;
-esac
+
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
@@ -18595,8 +17704,8 @@ if test c${cross_compiling} = cno; then
if test "$cross_compiling" = yes
then :
eval "ac_cv_c_strptime_works=maybe"
-else case e in #(
- e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#define _XOPEN_SOURCE 600
@@ -18611,13 +17720,11 @@ _ACEOF
if ac_fn_c_try_run "$LINENO"
then :
eval "ac_cv_c_strptime_works=yes"
-else case e in #(
- e) eval "ac_cv_c_strptime_works=no" ;;
-esac
+else $as_nop
+ eval "ac_cv_c_strptime_works=no"
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
-esac
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
else
@@ -18638,14 +17745,13 @@ printf "%s\n" "#define STRPTIME_WORKS 1" >>confdefs.h
fi
-else case e in #(
- e) case " $LIBOBJS " in
+else $as_nop
+ case " $LIBOBJS " in
*" strptime.$ac_objext "* ) ;;
*) LIBOBJS="$LIBOBJS strptime.$ac_objext"
;;
esac
- ;;
-esac
+
fi
done
@@ -18672,9 +17778,8 @@ fi
if test ${enable_systemd+y}
then :
enableval=$enable_systemd;
-else case e in #(
- e) enable_systemd=no ;;
-esac
+else $as_nop
+ enable_systemd=no
fi
have_systemd=no
@@ -18685,8 +17790,8 @@ then :
have_systemd=no
pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libsystemd" >&5
-printf %s "checking for libsystemd... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SYSTEMD" >&5
+printf %s "checking for SYSTEMD... " >&6; }
if test -n "$SYSTEMD_CFLAGS"; then
pkg_cv_SYSTEMD_CFLAGS="$SYSTEMD_CFLAGS"
@@ -18726,7 +17831,7 @@ fi
if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
@@ -18735,14 +17840,14 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- SYSTEMD_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libsystemd" 2>&1`
+ SYSTEMD_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libsystemd" 2>&1`
else
- SYSTEMD_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libsystemd" 2>&1`
+ SYSTEMD_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libsystemd" 2>&1`
fi
- # Put the nasty error message in config.log where it belongs
- echo "$SYSTEMD_PKG_ERRORS" >&5
+ # Put the nasty error message in config.log where it belongs
+ echo "$SYSTEMD_PKG_ERRORS" >&5
- as_fn_error $? "Package requirements (libsystemd) were not met:
+ as_fn_error $? "Package requirements (libsystemd) were not met:
$SYSTEMD_PKG_ERRORS
@@ -18753,10 +17858,10 @@ Alternatively, you may set the environment variables SYSTEMD_CFLAGS
and SYSTEMD_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
@@ -18766,13 +17871,13 @@ and SYSTEMD_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
To get pkg-config, see <http://pkg-config.freedesktop.org/>.
-See 'config.log' for more details" "$LINENO" 5; }
+See \`config.log' for more details" "$LINENO" 5; }
else
- SYSTEMD_CFLAGS=$pkg_cv_SYSTEMD_CFLAGS
- SYSTEMD_LIBS=$pkg_cv_SYSTEMD_LIBS
+ SYSTEMD_CFLAGS=$pkg_cv_SYSTEMD_CFLAGS
+ SYSTEMD_LIBS=$pkg_cv_SYSTEMD_LIBS
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
- have_systemd=yes
+ have_systemd=yes
fi
if test "x$have_systemd" != "xyes"
then :
@@ -18780,8 +17885,8 @@ then :
have_systemd_daemon=no
pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libsystemd-daemon" >&5
-printf %s "checking for libsystemd-daemon... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SYSTEMD_DAEMON" >&5
+printf %s "checking for SYSTEMD_DAEMON... " >&6; }
if test -n "$SYSTEMD_DAEMON_CFLAGS"; then
pkg_cv_SYSTEMD_DAEMON_CFLAGS="$SYSTEMD_DAEMON_CFLAGS"
@@ -18821,7 +17926,7 @@ fi
if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
@@ -18830,14 +17935,14 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- SYSTEMD_DAEMON_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libsystemd-daemon" 2>&1`
+ SYSTEMD_DAEMON_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libsystemd-daemon" 2>&1`
else
- SYSTEMD_DAEMON_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libsystemd-daemon" 2>&1`
+ SYSTEMD_DAEMON_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libsystemd-daemon" 2>&1`
fi
- # Put the nasty error message in config.log where it belongs
- echo "$SYSTEMD_DAEMON_PKG_ERRORS" >&5
+ # Put the nasty error message in config.log where it belongs
+ echo "$SYSTEMD_DAEMON_PKG_ERRORS" >&5
- as_fn_error $? "Package requirements (libsystemd-daemon) were not met:
+ as_fn_error $? "Package requirements (libsystemd-daemon) were not met:
$SYSTEMD_DAEMON_PKG_ERRORS
@@ -18848,10 +17953,10 @@ Alternatively, you may set the environment variables SYSTEMD_DAEMON_CFLAGS
and SYSTEMD_DAEMON_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
@@ -18861,13 +17966,13 @@ and SYSTEMD_DAEMON_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
To get pkg-config, see <http://pkg-config.freedesktop.org/>.
-See 'config.log' for more details" "$LINENO" 5; }
+See \`config.log' for more details" "$LINENO" 5; }
else
- SYSTEMD_DAEMON_CFLAGS=$pkg_cv_SYSTEMD_DAEMON_CFLAGS
- SYSTEMD_DAEMON_LIBS=$pkg_cv_SYSTEMD_DAEMON_LIBS
+ SYSTEMD_DAEMON_CFLAGS=$pkg_cv_SYSTEMD_DAEMON_CFLAGS
+ SYSTEMD_DAEMON_LIBS=$pkg_cv_SYSTEMD_DAEMON_LIBS
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
- have_systemd_daemon=yes
+ have_systemd_daemon=yes
fi
if test "x$have_systemd_daemon" = "xyes"
then :
@@ -18928,7 +18033,9 @@ if test x_$enable_alloc_nonregional = x_yes; then
printf "%s\n" "#define UNBOUND_ALLOC_NONREGIONAL 1" >>confdefs.h
fi
-if test x_$enable_alloc_checks = x_yes; then
+if test x_$enable_alloc_checks = x_yes
+then :
+
printf "%s\n" "#define UNBOUND_ALLOC_STATS 1" >>confdefs.h
@@ -18936,30 +18043,31 @@ printf "%s\n" "#define UNBOUND_ALLOC_STATS 1" >>confdefs.h
ASYNCLOOK_ALLOCCHECK_EXTRA_OBJ="alloc.lo"
-else
- if test x_$enable_alloc_lite = x_yes; then
+
+else $as_nop
+
+ if test x_$enable_alloc_lite = x_yes
+then :
+
printf "%s\n" "#define UNBOUND_ALLOC_LITE 1" >>confdefs.h
- else
+
+else $as_nop
+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible malloc" >&5
printf %s "checking for GNU libc compatible malloc... " >&6; }
- if test "$cross_compiling" = yes
+if test ${ac_cv_func_malloc_0_nonnull+y}
then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no (crosscompile)" >&5
-printf "%s\n" "no (crosscompile)" >&6; }
- case " $LIBOBJS " in
- *" malloc.$ac_objext "* ) ;;
- *) LIBOBJS="$LIBOBJS malloc.$ac_objext"
- ;;
-esac
-
-
-printf "%s\n" "#define malloc rpl_malloc_unbound" >>confdefs.h
+ printf %s "(cached) " >&6
+else $as_nop
-else case e in #(
- e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ if test "$cross_compiling" = yes
+then :
+ ac_cv_func_malloc_0_nonnull="no (crosscompile)"
+else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#if defined STDC_HEADERS || defined HAVE_STDLIB_H
#include <stdlib.h>
@@ -18978,9 +18086,26 @@ main (void)
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- case " $LIBOBJS " in
+ ac_cv_func_malloc_0_nonnull=no
+else $as_nop
+ ac_cv_func_malloc_0_nonnull=yes
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_malloc_0_nonnull" >&5
+printf "%s\n" "$ac_cv_func_malloc_0_nonnull" >&6; }
+ if test "$ac_cv_func_malloc_0_nonnull" = yes
+then :
+
+printf "%s\n" "#define HAVE_MALLOC 1" >>confdefs.h
+
+else $as_nop
+
+ case " $LIBOBJS " in
*" malloc.$ac_objext "* ) ;;
*) LIBOBJS="$LIBOBJS malloc.$ac_objext"
;;
@@ -18989,21 +18114,12 @@ esac
printf "%s\n" "#define malloc rpl_malloc_unbound" >>confdefs.h
-else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-printf "%s\n" "#define HAVE_MALLOC 1" >>confdefs.h
- ;;
-esac
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
-esac
fi
- fi
+fi
+
fi
# check windows threads (we use them, not pthreads, on windows).
@@ -19044,11 +18160,10 @@ printf "%s\n" "yes" >&6; }
printf "%s\n" "#define HAVE_WINDOWS_THREADS 1" >>confdefs.h
-else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
- ;;
-esac
+
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
@@ -19064,286 +18179,12 @@ else
if test ${with_pthreads+y}
then :
withval=$with_pthreads;
-else case e in #(
- e) withval="yes" ;;
-esac
+else $as_nop
+ withval="yes"
fi
ub_have_pthreads=no
if test x_$withval != x_no; then
- ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
-printf %s "checking how to run the C preprocessor... " >&6; }
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
- CPP=
-fi
-if test -z "$CPP"; then
- if test ${ac_cv_prog_CPP+y}
-then :
- printf %s "(cached) " >&6
-else case e in #(
- e) # Double quotes because $CC needs to be expanded
- for CPP in "$CC -E" "$CC -E -traditional-cpp" cpp /lib/cpp
- do
- ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <limits.h>
- Syntax error
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"
-then :
-
-else case e in #(
- e) # Broken: fails on valid input.
-continue ;;
-esac
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether nonexistent headers
- # can be detected and how.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"
-then :
- # Broken: success on invalid input.
-continue
-else case e in #(
- e) # Passes both tests.
-ac_preproc_ok=:
-break ;;
-esac
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of 'break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok
-then :
- break
-fi
-
- done
- ac_cv_prog_CPP=$CPP
- ;;
-esac
-fi
- CPP=$ac_cv_prog_CPP
-else
- ac_cv_prog_CPP=$CPP
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
-printf "%s\n" "$CPP" >&6; }
-ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <limits.h>
- Syntax error
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"
-then :
-
-else case e in #(
- e) # Broken: fails on valid input.
-continue ;;
-esac
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether nonexistent headers
- # can be detected and how.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"
-then :
- # Broken: success on invalid input.
-continue
-else case e in #(
- e) # Passes both tests.
-ac_preproc_ok=:
-break ;;
-esac
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of 'break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok
-then :
-
-else case e in #(
- e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
-as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
-See 'config.log' for more details" "$LINENO" 5; } ;;
-esac
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep -e" >&5
-printf %s "checking for egrep -e... " >&6; }
-if test ${ac_cv_path_EGREP_TRADITIONAL+y}
-then :
- printf %s "(cached) " >&6
-else case e in #(
- e) if test -z "$EGREP_TRADITIONAL"; then
- ac_path_EGREP_TRADITIONAL_found=false
- # Loop through the user's path and test for each of PROGNAME-LIST
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_prog in grep ggrep
- do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_EGREP_TRADITIONAL="$as_dir$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_EGREP_TRADITIONAL" || continue
-# Check for GNU ac_path_EGREP_TRADITIONAL and select it if it is found.
- # Check for GNU $ac_path_EGREP_TRADITIONAL
-case `"$ac_path_EGREP_TRADITIONAL" --version 2>&1` in #(
-*GNU*)
- ac_cv_path_EGREP_TRADITIONAL="$ac_path_EGREP_TRADITIONAL" ac_path_EGREP_TRADITIONAL_found=:;;
-#(
-*)
- ac_count=0
- printf %s 0123456789 >"conftest.in"
- while :
- do
- cat "conftest.in" "conftest.in" >"conftest.tmp"
- mv "conftest.tmp" "conftest.in"
- cp "conftest.in" "conftest.nl"
- printf "%s\n" 'EGREP_TRADITIONAL' >> "conftest.nl"
- "$ac_path_EGREP_TRADITIONAL" -E 'EGR(EP|AC)_TRADITIONAL$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- as_fn_arith $ac_count + 1 && ac_count=$as_val
- if test $ac_count -gt ${ac_path_EGREP_TRADITIONAL_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_EGREP_TRADITIONAL="$ac_path_EGREP_TRADITIONAL"
- ac_path_EGREP_TRADITIONAL_max=$ac_count
- fi
- # 10*(2^10) chars as input seems more than enough
- test $ac_count -gt 10 && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
- $ac_path_EGREP_TRADITIONAL_found && break 3
- done
- done
- done
-IFS=$as_save_IFS
- if test -z "$ac_cv_path_EGREP_TRADITIONAL"; then
- :
- fi
-else
- ac_cv_path_EGREP_TRADITIONAL=$EGREP_TRADITIONAL
-fi
-
- if test "$ac_cv_path_EGREP_TRADITIONAL"
-then :
- ac_cv_path_EGREP_TRADITIONAL="$ac_cv_path_EGREP_TRADITIONAL -E"
-else case e in #(
- e) if test -z "$EGREP_TRADITIONAL"; then
- ac_path_EGREP_TRADITIONAL_found=false
- # Loop through the user's path and test for each of PROGNAME-LIST
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_prog in egrep
- do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_EGREP_TRADITIONAL="$as_dir$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_EGREP_TRADITIONAL" || continue
-# Check for GNU ac_path_EGREP_TRADITIONAL and select it if it is found.
- # Check for GNU $ac_path_EGREP_TRADITIONAL
-case `"$ac_path_EGREP_TRADITIONAL" --version 2>&1` in #(
-*GNU*)
- ac_cv_path_EGREP_TRADITIONAL="$ac_path_EGREP_TRADITIONAL" ac_path_EGREP_TRADITIONAL_found=:;;
-#(
-*)
- ac_count=0
- printf %s 0123456789 >"conftest.in"
- while :
- do
- cat "conftest.in" "conftest.in" >"conftest.tmp"
- mv "conftest.tmp" "conftest.in"
- cp "conftest.in" "conftest.nl"
- printf "%s\n" 'EGREP_TRADITIONAL' >> "conftest.nl"
- "$ac_path_EGREP_TRADITIONAL" 'EGR(EP|AC)_TRADITIONAL$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- as_fn_arith $ac_count + 1 && ac_count=$as_val
- if test $ac_count -gt ${ac_path_EGREP_TRADITIONAL_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_EGREP_TRADITIONAL="$ac_path_EGREP_TRADITIONAL"
- ac_path_EGREP_TRADITIONAL_max=$ac_count
- fi
- # 10*(2^10) chars as input seems more than enough
- test $ac_count -gt 10 && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
- $ac_path_EGREP_TRADITIONAL_found && break 3
- done
- done
- done
-IFS=$as_save_IFS
- if test -z "$ac_cv_path_EGREP_TRADITIONAL"; then
- as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
- fi
-else
- ac_cv_path_EGREP_TRADITIONAL=$EGREP_TRADITIONAL
-fi
- ;;
-esac
-fi ;;
-esac
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP_TRADITIONAL" >&5
-printf "%s\n" "$ac_cv_path_EGREP_TRADITIONAL" >&6; }
- EGREP_TRADITIONAL=$ac_cv_path_EGREP_TRADITIONAL
-
@@ -19384,14 +18225,8 @@ printf %s "checking for pthread_join using $CC $PTHREAD_CFLAGS $PTHREAD_LIBS...
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply.
- The 'extern "C"' is for builds by C++ compilers;
- although this is not generally supported in C code supporting it here
- has little cost and some practical benefit (sr 110532). */
-#ifdef __cplusplus
-extern "C"
-#endif
-char pthread_join (void);
+ builtin and then its argument prototype would still apply. */
+char pthread_join ();
int
main (void)
{
@@ -19485,7 +18320,7 @@ case $host_os in
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP_TRADITIONAL "AX_PTHREAD_ZOS_MISSING" >/dev/null 2>&1
+ $EGREP "AX_PTHREAD_ZOS_MISSING" >/dev/null 2>&1
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: IBM z/OS requires -D_OPEN_THREADS or -D_UNIX03_THREADS to enable pthreads support." >&5
printf "%s\n" "$as_me: WARNING: IBM z/OS requires -D_OPEN_THREADS or -D_UNIX03_THREADS to enable pthreads support." >&2;}
@@ -19515,8 +18350,8 @@ printf %s "checking whether $CC is Clang... " >&6; }
if test ${ax_cv_PTHREAD_CLANG+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) ax_cv_PTHREAD_CLANG=no
+else $as_nop
+ ax_cv_PTHREAD_CLANG=no
# Note that Autoconf sets GCC=yes for Clang as well as GCC
if test "x$GCC" = "xyes"; then
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -19528,15 +18363,14 @@ else case e in #(
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP_TRADITIONAL "AX_PTHREAD_CC_IS_CLANG" >/dev/null 2>&1
+ $EGREP "AX_PTHREAD_CC_IS_CLANG" >/dev/null 2>&1
then :
ax_cv_PTHREAD_CLANG=yes
fi
rm -rf conftest*
fi
- ;;
-esac
+
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_CLANG" >&5
printf "%s\n" "$ax_cv_PTHREAD_CLANG" >&6; }
@@ -19586,9 +18420,8 @@ esac
if test "x$ax_pthread_check_macro" = "x--"
then :
ax_pthread_check_cond=0
-else case e in #(
- e) ax_pthread_check_cond="!defined($ax_pthread_check_macro)" ;;
-esac
+else $as_nop
+ ax_pthread_check_cond="!defined($ax_pthread_check_macro)"
fi
@@ -19622,8 +18455,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ax_pthread_config+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test -n "$ax_pthread_config"; then
+else $as_nop
+ if test -n "$ax_pthread_config"; then
ac_cv_prog_ax_pthread_config="$ax_pthread_config" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -19646,8 +18479,7 @@ done
IFS=$as_save_IFS
test -z "$ac_cv_prog_ax_pthread_config" && ac_cv_prog_ax_pthread_config="no"
-fi ;;
-esac
+fi
fi
ax_pthread_config=$ac_cv_prog_ax_pthread_config
if test -n "$ax_pthread_config"; then
@@ -19780,8 +18612,8 @@ printf %s "checking whether Clang needs flag to prevent \"argument unused\" warn
if test ${ax_cv_PTHREAD_CLANG_NO_WARN_FLAG+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) ax_cv_PTHREAD_CLANG_NO_WARN_FLAG=unknown
+else $as_nop
+ ax_cv_PTHREAD_CLANG_NO_WARN_FLAG=unknown
# Create an alternate version of $ac_link that compiles and
# links in two steps (.c -> .o, .o -> exe) instead of one
# (.c -> exe), because the warning occurs only in the second
@@ -19827,8 +18659,7 @@ then :
ax_pthread_try=no
fi
ax_cv_PTHREAD_CLANG_NO_WARN_FLAG="$ax_pthread_try"
- ;;
-esac
+
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" >&5
printf "%s\n" "$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" >&6; }
@@ -19855,8 +18686,8 @@ printf %s "checking for joinable pthread attribute... " >&6; }
if test ${ax_cv_PTHREAD_JOINABLE_ATTR+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) ax_cv_PTHREAD_JOINABLE_ATTR=unknown
+else $as_nop
+ ax_cv_PTHREAD_JOINABLE_ATTR=unknown
for ax_pthread_attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -19876,8 +18707,7 @@ fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
done
- ;;
-esac
+
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_JOINABLE_ATTR" >&5
printf "%s\n" "$ax_cv_PTHREAD_JOINABLE_ATTR" >&6; }
@@ -19897,15 +18727,14 @@ printf %s "checking whether more special flags are required for pthreads... " >&
if test ${ax_cv_PTHREAD_SPECIAL_FLAGS+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) ax_cv_PTHREAD_SPECIAL_FLAGS=no
+else $as_nop
+ ax_cv_PTHREAD_SPECIAL_FLAGS=no
case $host_os in
solaris*)
ax_cv_PTHREAD_SPECIAL_FLAGS="-D_POSIX_PTHREAD_SEMANTICS"
;;
esac
- ;;
-esac
+
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_SPECIAL_FLAGS" >&5
printf "%s\n" "$ax_cv_PTHREAD_SPECIAL_FLAGS" >&6; }
@@ -19921,8 +18750,8 @@ printf %s "checking for PTHREAD_PRIO_INHERIT... " >&6; }
if test ${ax_cv_PTHREAD_PRIO_INHERIT+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <pthread.h>
int
@@ -19937,14 +18766,12 @@ _ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ax_cv_PTHREAD_PRIO_INHERIT=yes
-else case e in #(
- e) ax_cv_PTHREAD_PRIO_INHERIT=no ;;
-esac
+else $as_nop
+ ax_cv_PTHREAD_PRIO_INHERIT=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
- ;;
-esac
+
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_PRIO_INHERIT" >&5
printf "%s\n" "$ax_cv_PTHREAD_PRIO_INHERIT" >&6; }
@@ -19994,8 +18821,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_PTHREAD_CC+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test -n "$PTHREAD_CC"; then
+else $as_nop
+ if test -n "$PTHREAD_CC"; then
ac_cv_prog_PTHREAD_CC="$PTHREAD_CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -20017,8 +18844,7 @@ done
done
IFS=$as_save_IFS
-fi ;;
-esac
+fi
fi
PTHREAD_CC=$ac_cv_prog_PTHREAD_CC
if test -n "$PTHREAD_CC"; then
@@ -20045,8 +18871,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_PTHREAD_CXX+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test -n "$PTHREAD_CXX"; then
+else $as_nop
+ if test -n "$PTHREAD_CXX"; then
ac_cv_prog_PTHREAD_CXX="$PTHREAD_CXX" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -20068,8 +18894,7 @@ done
done
IFS=$as_save_IFS
-fi ;;
-esac
+fi
fi
PTHREAD_CXX=$ac_cv_prog_PTHREAD_CXX
if test -n "$PTHREAD_CXX"; then
@@ -20139,30 +18964,28 @@ fi
# The cast to long int works around a bug in the HP C Compiler
# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'.
+# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
# This bug is HP SR number 8606223364.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of unsigned long" >&5
printf %s "checking size of unsigned long... " >&6; }
if test ${ac_cv_sizeof_unsigned_long+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (unsigned long))" "ac_cv_sizeof_unsigned_long" "$ac_includes_default"
+else $as_nop
+ if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (unsigned long))" "ac_cv_sizeof_unsigned_long" "$ac_includes_default"
then :
-else case e in #(
- e) if test "$ac_cv_type_unsigned_long" = yes; then
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+else $as_nop
+ if test "$ac_cv_type_unsigned_long" = yes; then
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error 77 "cannot compute sizeof (unsigned long)
-See 'config.log' for more details" "$LINENO" 5; }
+See \`config.log' for more details" "$LINENO" 5; }
else
ac_cv_sizeof_unsigned_long=0
- fi ;;
-esac
+ fi
fi
- ;;
-esac
+
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_unsigned_long" >&5
printf "%s\n" "$ac_cv_sizeof_unsigned_long" >&6; }
@@ -20174,30 +18997,28 @@ printf "%s\n" "#define SIZEOF_UNSIGNED_LONG $ac_cv_sizeof_unsigned_long" >>confd
# The cast to long int works around a bug in the HP C Compiler
# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'.
+# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
# This bug is HP SR number 8606223364.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of pthread_t" >&5
printf %s "checking size of pthread_t... " >&6; }
if test ${ac_cv_sizeof_pthread_t+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (pthread_t))" "ac_cv_sizeof_pthread_t" "$ac_includes_default"
+else $as_nop
+ if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (pthread_t))" "ac_cv_sizeof_pthread_t" "$ac_includes_default"
then :
-else case e in #(
- e) if test "$ac_cv_type_pthread_t" = yes; then
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+else $as_nop
+ if test "$ac_cv_type_pthread_t" = yes; then
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error 77 "cannot compute sizeof (pthread_t)
-See 'config.log' for more details" "$LINENO" 5; }
+See \`config.log' for more details" "$LINENO" 5; }
else
ac_cv_sizeof_pthread_t=0
- fi ;;
-esac
+ fi
fi
- ;;
-esac
+
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_pthread_t" >&5
printf "%s\n" "$ac_cv_sizeof_pthread_t" >&6; }
@@ -20259,15 +19080,179 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
fi
+if test x_$ub_have_pthreads != x_no; then
+ # Long checks to support pthread_setname_np().
+ # Some OSes have the extra non-portable functions in a specific
+ # header file.
+ ac_fn_c_check_header_compile "$LINENO" "pthread_np.h" "ac_cv_header_pthread_np_h" "$ac_includes_default
+"
+if test "x$ac_cv_header_pthread_np_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_PTHREAD_NP_H 1" >>confdefs.h
+
+fi
+
+ BAKCFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -Werror"
+ # MacOS only has 1 argument, the name.
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether pthread_setname_np has only 1 argument" >&5
+printf %s "checking whether pthread_setname_np has only 1 argument... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+#include <pthread.h>
+#ifdef HAVE_PTHREAD_NP_H
+#include <pthread_np.h>
+#endif
+
+int
+main (void)
+{
+
+ (void)pthread_setname_np("");
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+
+printf "%s\n" "#define HAVE_PTHREAD_SETNAME_NP1 1" >>confdefs.h
+
+
+else $as_nop
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+ # NetBSD has 3 arguments to allow for formatting of the name.
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether pthread_setname_np has 3 arguments" >&5
+printf %s "checking whether pthread_setname_np has 3 arguments... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+#include <pthread.h>
+#ifdef HAVE_PTHREAD_NP_H
+#include <pthread_np.h>
+#endif
+
+int
+main (void)
+{
+
+ (void)pthread_setname_np(0, "", NULL);
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+
+printf "%s\n" "#define HAVE_PTHREAD_SETNAME_NP3 1" >>confdefs.h
+
+
+else $as_nop
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+ # Most OSes have the common 2 arguments, thread and name.
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether pthread_setname_np has the common 2 arguments" >&5
+printf %s "checking whether pthread_setname_np has the common 2 arguments... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+#include <pthread.h>
+#ifdef HAVE_PTHREAD_NP_H
+#include <pthread_np.h>
+#endif
+
+int
+main (void)
+{
+
+ (void)pthread_setname_np(0, "");
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+
+printf "%s\n" "#define HAVE_PTHREAD_SETNAME_NP 1" >>confdefs.h
+
+
+else $as_nop
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+ # FreeBSD/OpenBSD use a slightly different function name.
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether pthread_setname_np exists as pthread_set_name_np instead" >&5
+printf %s "checking whether pthread_setname_np exists as pthread_set_name_np instead... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+#include <pthread.h>
+#ifdef HAVE_PTHREAD_NP_H
+#include <pthread_np.h>
+#endif
+
+int
+main (void)
+{
+
+ (void)pthread_set_name_np(0, "");
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+
+printf "%s\n" "#define HAVE_PTHREAD_SET_NAME_NP 1" >>confdefs.h
+
+
+else $as_nop
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+ CFLAGS="$BAKCFLAGS"
+fi
+
# check solaris thread library
# Check whether --with-solaris-threads was given.
if test ${with_solaris_threads+y}
then :
withval=$with_solaris_threads;
-else case e in #(
- e) withval="no" ;;
-esac
+else $as_nop
+ withval="no"
fi
ub_have_sol_threads=no
@@ -20281,21 +19266,15 @@ printf %s "checking for library containing thr_create... " >&6; }
if test ${ac_cv_search_thr_create+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) ac_func_search_save_LIBS=$LIBS
+else $as_nop
+ ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply.
- The 'extern "C"' is for builds by C++ compilers;
- although this is not generally supported in C code supporting it here
- has little cost and some practical benefit (sr 110532). */
-#ifdef __cplusplus
-extern "C"
-#endif
-char thr_create (void);
+ builtin and then its argument prototype would still apply. */
+char thr_create ();
int
main (void)
{
@@ -20326,13 +19305,11 @@ done
if test ${ac_cv_search_thr_create+y}
then :
-else case e in #(
- e) ac_cv_search_thr_create=no ;;
-esac
+else $as_nop
+ ac_cv_search_thr_create=no
fi
rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS ;;
-esac
+LIBS=$ac_func_search_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_thr_create" >&5
printf "%s\n" "$ac_cv_search_thr_create" >&6; }
@@ -20353,8 +19330,8 @@ cache=`echo mt | sed 'y%.=/+-%___p_%'`
if eval test \${cv_prog_cc_flag_$cache+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e)
+else $as_nop
+
echo 'void f(void){}' >conftest.c
if test -z "`$CC $CPPFLAGS $CFLAGS -mt -c conftest.c 2>&1`"; then
eval "cv_prog_cc_flag_$cache=yes"
@@ -20362,8 +19339,7 @@ else
eval "cv_prog_cc_flag_$cache=no"
fi
rm -f conftest conftest.o conftest.c
- ;;
-esac
+
fi
if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
@@ -20380,11 +19356,10 @@ fi
ub_have_sol_threads=yes
-else case e in #(
- e)
+else $as_nop
+
as_fn_error $? "no solaris threads found." "$LINENO" 5
- ;;
-esac
+
fi
fi
@@ -20417,9 +19392,8 @@ printf "%s\n" "#define UB_SYSLOG_FACILITY ${UNBOUND_SYSLOG_FACILITY}" >>confdefs
if test ${with_dynlibmodule+y}
then :
withval=$with_dynlibmodule;
-else case e in #(
- e) withval="no" ;;
-esac
+else $as_nop
+ withval="no"
fi
@@ -20442,21 +19416,15 @@ printf %s "checking for library containing dlopen... " >&6; }
if test ${ac_cv_search_dlopen+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) ac_func_search_save_LIBS=$LIBS
+else $as_nop
+ ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply.
- The 'extern "C"' is for builds by C++ compilers;
- although this is not generally supported in C code supporting it here
- has little cost and some practical benefit (sr 110532). */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen (void);
+ builtin and then its argument prototype would still apply. */
+char dlopen ();
int
main (void)
{
@@ -20487,13 +19455,11 @@ done
if test ${ac_cv_search_dlopen+y}
then :
-else case e in #(
- e) ac_cv_search_dlopen=no ;;
-esac
+else $as_nop
+ ac_cv_search_dlopen=no
fi
rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS ;;
-esac
+LIBS=$ac_func_search_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5
printf "%s\n" "$ac_cv_search_dlopen" >&6; }
@@ -20517,9 +19483,8 @@ fi
if test ${with_pyunbound+y}
then :
withval=$with_pyunbound;
-else case e in #(
- e) withval="no" ;;
-esac
+else $as_nop
+ withval="no"
fi
@@ -20536,9 +19501,8 @@ fi
if test ${with_pythonmodule+y}
then :
withval=$with_pythonmodule;
-else case e in #(
- e) withval="no" ;;
-esac
+else $as_nop
+ withval="no"
fi
@@ -20566,8 +19530,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_path_PYTHON+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) case $PYTHON in
+else $as_nop
+ case $PYTHON in
[\\/]* | ?:[\\/]*)
ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path.
;;
@@ -20592,7 +19556,6 @@ done
IFS=$as_save_IFS
;;
-esac ;;
esac
fi
PYTHON=$ac_cv_path_PYTHON
@@ -20770,9 +19733,8 @@ _ACEOF
if ac_fn_c_try_link "$LINENO"
then :
pythonexists=yes
-else case e in #(
- e) pythonexists=no ;;
-esac
+else $as_nop
+ pythonexists=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
@@ -20882,8 +19844,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_path_SWIG+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) case $SWIG in
+else $as_nop
+ case $SWIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_SWIG="$SWIG" # Let the user override the test with a path.
;;
@@ -20908,7 +19870,6 @@ done
IFS=$as_save_IFS
;;
-esac ;;
esac
fi
SWIG=$ac_cv_path_SWIG
@@ -21009,8 +19970,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_path_SWIG+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) case $SWIG in
+else $as_nop
+ case $SWIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_SWIG="$SWIG" # Let the user override the test with a path.
;;
@@ -21035,7 +19996,6 @@ done
IFS=$as_save_IFS
;;
-esac ;;
esac
fi
SWIG=$ac_cv_path_SWIG
@@ -21197,17 +20157,15 @@ ax_date_fmt="%Y%m%d"
if test x"$SOURCE_DATE_EPOCH" = x
then :
CONFIG_DATE=`date "+$ax_date_fmt"`
-else case e in #(
- e) ax_build_date=`date -u -d "@$SOURCE_DATE_EPOCH" "+$ax_date_fmt" 2>/dev/null \
+else $as_nop
+ ax_build_date=`date -u -d "@$SOURCE_DATE_EPOCH" "+$ax_date_fmt" 2>/dev/null \
|| date -u -r "$SOURCE_DATE_EPOCH" "+$ax_date_fmt" 2>/dev/null`
if test x"$ax_build_date" = x
then :
as_fn_error $? "malformed SOURCE_DATE_EPOCH" "$LINENO" 5
-else case e in #(
- e) CONFIG_DATE=$ax_build_date ;;
-esac
-fi ;;
-esac
+else $as_nop
+ CONFIG_DATE=$ax_build_date
+fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CONFIG_DATE" >&5
printf "%s\n" "$CONFIG_DATE" >&6; }
@@ -21302,11 +20260,10 @@ if test ${with_ssl+y}
then :
withval=$with_ssl;
-else case e in #(
- e)
+else $as_nop
+
withval="yes"
- ;;
-esac
+
fi
if test x_$withval = x_no; then
@@ -21402,8 +20359,8 @@ printf "%s\n" "yes" >&6; }
printf "%s\n" "#define HAVE_EVP_SHA256 1" >>confdefs.h
-else case e in #(
- e)
+else $as_nop
+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
# check if -lwsock32 or -lgdi32 are needed.
@@ -21436,8 +20393,8 @@ printf "%s\n" "#define HAVE_EVP_SHA256 1" >>confdefs.h
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
-else case e in #(
- e)
+else $as_nop
+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
LIBS="$BAKLIBS"
@@ -21470,8 +20427,8 @@ printf "%s\n" "#define HAVE_EVP_SHA256 1" >>confdefs.h
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
-else case e in #(
- e)
+else $as_nop
+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
LIBS="$BAKLIBS"
@@ -21504,8 +20461,8 @@ printf "%s\n" "#define HAVE_EVP_SHA256 1" >>confdefs.h
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
-else case e in #(
- e)
+else $as_nop
+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
LIBS="$BAKLIBS"
@@ -21538,8 +20495,8 @@ printf "%s\n" "#define HAVE_EVP_SHA256 1" >>confdefs.h
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
-else case e in #(
- e)
+else $as_nop
+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
LIBS="$BAKLIBS"
@@ -21571,38 +20528,32 @@ printf "%s\n" "#define HAVE_EVP_SHA256 1" >>confdefs.h
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
-else case e in #(
- e)
+else $as_nop
+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
as_fn_error $? "OpenSSL found in $ssldir, but version 0.9.7 or higher is required" "$LINENO" 5
- ;;
-esac
+
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
- ;;
-esac
+
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
- ;;
-esac
+
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
- ;;
-esac
+
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
- ;;
-esac
+
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
- ;;
-esac
+
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
@@ -21647,14 +20598,8 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply.
- The 'extern "C"' is for builds by C++ compilers;
- although this is not generally supported in C code supporting it here
- has little cost and some practical benefit (sr 110532). */
-#ifdef __cplusplus
-extern "C"
-#endif
-char SSL_CTX_new (void);
+ builtin and then its argument prototype would still apply. */
+char SSL_CTX_new ();
int
main (void)
{
@@ -21670,8 +20615,8 @@ then :
printf "%s\n" "no" >&6; }
LIBS="$BAKLIBS"
-else case e in #(
- e)
+else $as_nop
+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
LIBS="$BAKLIBS"
@@ -21680,21 +20625,15 @@ printf %s "checking for library containing dlopen... " >&6; }
if test ${ac_cv_search_dlopen+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) ac_func_search_save_LIBS=$LIBS
+else $as_nop
+ ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply.
- The 'extern "C"' is for builds by C++ compilers;
- although this is not generally supported in C code supporting it here
- has little cost and some practical benefit (sr 110532). */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen (void);
+ builtin and then its argument prototype would still apply. */
+char dlopen ();
int
main (void)
{
@@ -21725,13 +20664,11 @@ done
if test ${ac_cv_search_dlopen+y}
then :
-else case e in #(
- e) ac_cv_search_dlopen=no ;;
-esac
+else $as_nop
+ ac_cv_search_dlopen=no
fi
rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS ;;
-esac
+LIBS=$ac_func_search_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5
printf "%s\n" "$ac_cv_search_dlopen" >&6; }
@@ -21742,8 +20679,7 @@ then :
fi
- ;;
-esac
+
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
@@ -21778,14 +20714,13 @@ then :
printf "%s\n" "no" >&6; }
LIBS="$BAKLIBS"
-else case e in #(
- e)
+else $as_nop
+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
LIBS="$BAKLIBS"
LIBS="$LIBS -lcrypt32"
- ;;
-esac
+
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
@@ -21805,8 +20740,8 @@ printf %s "checking for $CC options needed to detect all undeclared functions...
if test ${ac_cv_c_undeclared_builtin_options+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) ac_save_CFLAGS=$CFLAGS
+else $as_nop
+ ac_save_CFLAGS=$CFLAGS
ac_cv_c_undeclared_builtin_options='cannot detect'
for ac_arg in '' -fno-builtin; do
CFLAGS="$ac_save_CFLAGS $ac_arg"
@@ -21825,8 +20760,8 @@ _ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
-else case e in #(
- e) # This test program should compile successfully.
+else $as_nop
+ # This test program should compile successfully.
# No library function is consistently available on
# freestanding implementations, so test against a dummy
# declaration. Include always-available headers on the
@@ -21854,29 +20789,26 @@ then :
if test x"$ac_arg" = x
then :
ac_cv_c_undeclared_builtin_options='none needed'
-else case e in #(
- e) ac_cv_c_undeclared_builtin_options=$ac_arg ;;
-esac
+else $as_nop
+ ac_cv_c_undeclared_builtin_options=$ac_arg
fi
break
fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
-esac
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
done
CFLAGS=$ac_save_CFLAGS
- ;;
-esac
+
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_undeclared_builtin_options" >&5
printf "%s\n" "$ac_cv_c_undeclared_builtin_options" >&6; }
case $ac_cv_c_undeclared_builtin_options in #(
'cannot detect') :
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot make $CC report undeclared builtins
-See 'config.log' for more details" "$LINENO" 5; } ;; #(
+See \`config.log' for more details" "$LINENO" 5; } ;; #(
'none needed') :
ac_c_undeclared_builtin_options='' ;; #(
*) :
@@ -21887,36 +20819,32 @@ ac_fn_check_decl "$LINENO" "strlcpy" "ac_cv_have_decl_strlcpy" "$ac_includes_def
if test "x$ac_cv_have_decl_strlcpy" = xyes
then :
ac_have_decl=1
-else case e in #(
- e) ac_have_decl=0 ;;
-esac
+else $as_nop
+ ac_have_decl=0
fi
printf "%s\n" "#define HAVE_DECL_STRLCPY $ac_have_decl" >>confdefs.h
ac_fn_check_decl "$LINENO" "strlcat" "ac_cv_have_decl_strlcat" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS"
if test "x$ac_cv_have_decl_strlcat" = xyes
then :
ac_have_decl=1
-else case e in #(
- e) ac_have_decl=0 ;;
-esac
+else $as_nop
+ ac_have_decl=0
fi
printf "%s\n" "#define HAVE_DECL_STRLCAT $ac_have_decl" >>confdefs.h
ac_fn_check_decl "$LINENO" "arc4random" "ac_cv_have_decl_arc4random" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS"
if test "x$ac_cv_have_decl_arc4random" = xyes
then :
ac_have_decl=1
-else case e in #(
- e) ac_have_decl=0 ;;
-esac
+else $as_nop
+ ac_have_decl=0
fi
printf "%s\n" "#define HAVE_DECL_ARC4RANDOM $ac_have_decl" >>confdefs.h
ac_fn_check_decl "$LINENO" "arc4random_uniform" "ac_cv_have_decl_arc4random_uniform" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS"
if test "x$ac_cv_have_decl_arc4random_uniform" = xyes
then :
ac_have_decl=1
-else case e in #(
- e) ac_have_decl=0 ;;
-esac
+else $as_nop
+ ac_have_decl=0
fi
printf "%s\n" "#define HAVE_DECL_ARC4RANDOM_UNIFORM $ac_have_decl" >>confdefs.h
@@ -22229,9 +21157,8 @@ $ac_includes_default
if test "x$ac_cv_have_decl_SSL_COMP_get_compression_methods" = xyes
then :
ac_have_decl=1
-else case e in #(
- e) ac_have_decl=0 ;;
-esac
+else $as_nop
+ ac_have_decl=0
fi
printf "%s\n" "#define HAVE_DECL_SSL_COMP_GET_COMPRESSION_METHODS $ac_have_decl" >>confdefs.h
ac_fn_check_decl "$LINENO" "sk_SSL_COMP_pop_free" "ac_cv_have_decl_sk_SSL_COMP_pop_free" "
@@ -22258,9 +21185,8 @@ $ac_includes_default
if test "x$ac_cv_have_decl_sk_SSL_COMP_pop_free" = xyes
then :
ac_have_decl=1
-else case e in #(
- e) ac_have_decl=0 ;;
-esac
+else $as_nop
+ ac_have_decl=0
fi
printf "%s\n" "#define HAVE_DECL_SK_SSL_COMP_POP_FREE $ac_have_decl" >>confdefs.h
ac_fn_check_decl "$LINENO" "SSL_CTX_set_ecdh_auto" "ac_cv_have_decl_SSL_CTX_set_ecdh_auto" "
@@ -22287,9 +21213,8 @@ $ac_includes_default
if test "x$ac_cv_have_decl_SSL_CTX_set_ecdh_auto" = xyes
then :
ac_have_decl=1
-else case e in #(
- e) ac_have_decl=0 ;;
-esac
+else $as_nop
+ ac_have_decl=0
fi
printf "%s\n" "#define HAVE_DECL_SSL_CTX_SET_ECDH_AUTO $ac_have_decl" >>confdefs.h
ac_fn_check_decl "$LINENO" "SSL_CTX_set_tmp_ecdh" "ac_cv_have_decl_SSL_CTX_set_tmp_ecdh" "
@@ -22316,9 +21241,8 @@ $ac_includes_default
if test "x$ac_cv_have_decl_SSL_CTX_set_tmp_ecdh" = xyes
then :
ac_have_decl=1
-else case e in #(
- e) ac_have_decl=0 ;;
-esac
+else $as_nop
+ ac_have_decl=0
fi
printf "%s\n" "#define HAVE_DECL_SSL_CTX_SET_TMP_ECDH $ac_have_decl" >>confdefs.h
@@ -22368,15 +21292,14 @@ then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: int" >&5
printf "%s\n" "int" >&6; }
-else case e in #(
- e)
+else $as_nop
+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: void" >&5
printf "%s\n" "void" >&6; }
printf "%s\n" "#define HMAC_INIT_EX_RETURNS_VOID 1" >>confdefs.h
- ;;
-esac
+
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
@@ -22407,27 +21330,21 @@ fi
if test "x$ac_cv_header_bsd_string_h" = xyes -a "x$ac_cv_header_bsd_stdlib_h" = xyes; then
for func in strlcpy strlcat arc4random arc4random_uniform reallocarray; do
- as_ac_Search=`printf "%s\n" "ac_cv_search_$func" | sed "$as_sed_sh"`
+ as_ac_Search=`printf "%s\n" "ac_cv_search_$func" | $as_tr_sh`
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing $func" >&5
printf %s "checking for library containing $func... " >&6; }
if eval test \${$as_ac_Search+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) ac_func_search_save_LIBS=$LIBS
+else $as_nop
+ ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply.
- The 'extern "C"' is for builds by C++ compilers;
- although this is not generally supported in C code supporting it here
- has little cost and some practical benefit (sr 110532). */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $func (void);
+ builtin and then its argument prototype would still apply. */
+char $func ();
int
main (void)
{
@@ -22458,13 +21375,11 @@ done
if eval test \${$as_ac_Search+y}
then :
-else case e in #(
- e) eval "$as_ac_Search=no" ;;
-esac
+else $as_nop
+ eval "$as_ac_Search=no"
fi
rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS ;;
-esac
+LIBS=$ac_func_search_save_LIBS
fi
eval ac_res=\$$as_ac_Search
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
@@ -22559,18 +21474,16 @@ case "$enable_gost" in
if test "x$ac_cv_func_EVP_PKEY_set_type_str" = xyes
then :
:
-else case e in #(
- e) as_fn_error $? "OpenSSL 1.0.0 is needed for GOST support" "$LINENO" 5 ;;
-esac
+else $as_nop
+ as_fn_error $? "OpenSSL 1.0.0 is needed for GOST support" "$LINENO" 5
fi
ac_fn_c_check_func "$LINENO" "EC_KEY_new" "ac_cv_func_EC_KEY_new"
if test "x$ac_cv_func_EC_KEY_new" = xyes
then :
-else case e in #(
- e) as_fn_error $? "OpenSSL does not support ECC, needed for GOST support" "$LINENO" 5 ;;
-esac
+else $as_nop
+ as_fn_error $? "OpenSSL does not support ECC, needed for GOST support" "$LINENO" 5
fi
@@ -22584,8 +21497,8 @@ fi
if test "$cross_compiling" = yes
then :
eval "ac_cv_c_gost_works=maybe"
-else case e in #(
- e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <string.h>
@@ -22673,13 +21586,11 @@ _ACEOF
if ac_fn_c_try_run "$LINENO"
then :
eval "ac_cv_c_gost_works=yes"
-else case e in #(
- e) eval "ac_cv_c_gost_works=no" ;;
-esac
+else $as_nop
+ eval "ac_cv_c_gost_works=no"
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
-esac
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
CFLAGS="$BAKCFLAGS"
@@ -22725,29 +21636,26 @@ then :
fi
-else case e in #(
- e)
+else $as_nop
+
# without EVP_PKEY_fromdata, older openssl, check for support
ac_fn_c_check_func "$LINENO" "ECDSA_sign" "ac_cv_func_ECDSA_sign"
if test "x$ac_cv_func_ECDSA_sign" = xyes
then :
-else case e in #(
- e) as_fn_error $? "OpenSSL does not support ECDSA: please upgrade or rerun with --disable-ecdsa" "$LINENO" 5 ;;
-esac
+else $as_nop
+ as_fn_error $? "OpenSSL does not support ECDSA: please upgrade or rerun with --disable-ecdsa" "$LINENO" 5
fi
ac_fn_c_check_func "$LINENO" "SHA384_Init" "ac_cv_func_SHA384_Init"
if test "x$ac_cv_func_SHA384_Init" = xyes
then :
-else case e in #(
- e) as_fn_error $? "OpenSSL does not support SHA384: please upgrade or rerun with --disable-ecdsa" "$LINENO" 5 ;;
-esac
+else $as_nop
+ as_fn_error $? "OpenSSL does not support SHA384: please upgrade or rerun with --disable-ecdsa" "$LINENO" 5
fi
- ;;
-esac
+
fi
ac_fn_check_decl "$LINENO" "NID_X9_62_prime256v1" "ac_cv_have_decl_NID_X9_62_prime256v1" "$ac_includes_default
@@ -22757,17 +21665,15 @@ fi
if test "x$ac_cv_have_decl_NID_X9_62_prime256v1" = xyes
then :
ac_have_decl=1
-else case e in #(
- e) ac_have_decl=0 ;;
-esac
+else $as_nop
+ ac_have_decl=0
fi
printf "%s\n" "#define HAVE_DECL_NID_X9_62_PRIME256V1 $ac_have_decl" >>confdefs.h
if test $ac_have_decl = 1
then :
-else case e in #(
- e) as_fn_error $? "OpenSSL does not support the ECDSA curves: please upgrade or rerun with --disable-ecdsa" "$LINENO" 5 ;;
-esac
+else $as_nop
+ as_fn_error $? "OpenSSL does not support the ECDSA curves: please upgrade or rerun with --disable-ecdsa" "$LINENO" 5
fi
ac_fn_check_decl "$LINENO" "NID_secp384r1" "ac_cv_have_decl_NID_secp384r1" "$ac_includes_default
#include <openssl/evp.h>
@@ -22776,24 +21682,22 @@ ac_fn_check_decl "$LINENO" "NID_secp384r1" "ac_cv_have_decl_NID_secp384r1" "$ac_
if test "x$ac_cv_have_decl_NID_secp384r1" = xyes
then :
ac_have_decl=1
-else case e in #(
- e) ac_have_decl=0 ;;
-esac
+else $as_nop
+ ac_have_decl=0
fi
printf "%s\n" "#define HAVE_DECL_NID_SECP384R1 $ac_have_decl" >>confdefs.h
if test $ac_have_decl = 1
then :
-else case e in #(
- e) as_fn_error $? "OpenSSL does not support the ECDSA curves: please upgrade or rerun with --disable-ecdsa" "$LINENO" 5 ;;
-esac
+else $as_nop
+ as_fn_error $? "OpenSSL does not support the ECDSA curves: please upgrade or rerun with --disable-ecdsa" "$LINENO" 5
fi
# see if OPENSSL 1.0.0 or later (has EVP MD and Verify independency)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if openssl supports SHA2 and ECDSA with EVP" >&5
printf %s "checking if openssl supports SHA2 and ECDSA with EVP... " >&6; }
if grep OPENSSL_VERSION_TEXT $ssldir_include/openssl/opensslv.h | grep "OpenSSL" >/dev/null; then
- if grep OPENSSL_VERSION_NUMBER $ssldir_include/openssl/opensslv.h | grep 0x0 >/dev/null; then
+ if grep OPENSSL_VERSION_TEXT $ssldir_include/openssl/opensslv.h | grep "OpenSSL 0\." >/dev/null; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
@@ -22832,7 +21736,7 @@ case "$enable_dsa" in
if test "x$ac_cv_func_DSA_SIG_new" = xyes
then :
- as_ac_Type=`printf "%s\n" "ac_cv_type_DSA_SIG*" | sed "$as_sed_sh"`
+ as_ac_Type=`printf "%s\n" "ac_cv_type_DSA_SIG*" | $as_tr_sh`
ac_fn_c_check_type "$LINENO" "DSA_SIG*" "$as_ac_Type" "
$ac_includes_default
#ifdef HAVE_OPENSSL_ERR_H
@@ -22859,17 +21763,15 @@ then :
printf "%s\n" "#define USE_DSA 1" >>confdefs.h
-else case e in #(
- e) if test "x$enable_dsa" = "xyes"; then as_fn_error $? "OpenSSL does not support DSA and you used --enable-dsa." "$LINENO" 5
- fi ;;
-esac
+else $as_nop
+ if test "x$enable_dsa" = "xyes"; then as_fn_error $? "OpenSSL does not support DSA and you used --enable-dsa." "$LINENO" 5
+ fi
fi
-else case e in #(
- e) if test "x$enable_dsa" = "xyes"; then as_fn_error $? "OpenSSL does not support DSA and you used --enable-dsa." "$LINENO" 5
- fi ;;
-esac
+else $as_nop
+ if test "x$enable_dsa" = "xyes"; then as_fn_error $? "OpenSSL does not support DSA and you used --enable-dsa." "$LINENO" 5
+ fi
fi
else
@@ -22916,9 +21818,8 @@ case "$enable_ed25519" in
if test "x$ac_cv_have_decl_NID_ED25519" = xyes
then :
ac_have_decl=1
-else case e in #(
- e) ac_have_decl=0 ;;
-esac
+else $as_nop
+ ac_have_decl=0
fi
printf "%s\n" "#define HAVE_DECL_NID_ED25519 $ac_have_decl" >>confdefs.h
if test $ac_have_decl = 1
@@ -22926,10 +21827,9 @@ then :
use_ed25519="yes"
-else case e in #(
- e) if test "x$enable_ed25519" = "xyes"; then as_fn_error $? "OpenSSL does not support ED25519 and you used --enable-ed25519." "$LINENO" 5
- fi ;;
-esac
+else $as_nop
+ if test "x$enable_ed25519" = "xyes"; then as_fn_error $? "OpenSSL does not support ED25519 and you used --enable-ed25519." "$LINENO" 5
+ fi
fi
fi
@@ -22973,9 +21873,8 @@ case "$enable_ed448" in
if test "x$ac_cv_have_decl_NID_ED448" = xyes
then :
ac_have_decl=1
-else case e in #(
- e) ac_have_decl=0 ;;
-esac
+else $as_nop
+ ac_have_decl=0
fi
printf "%s\n" "#define HAVE_DECL_NID_ED448 $ac_have_decl" >>confdefs.h
if test $ac_have_decl = 1
@@ -22983,10 +21882,9 @@ then :
use_ed448="yes"
-else case e in #(
- e) if test "x$enable_ed448" = "xyes"; then as_fn_error $? "OpenSSL does not support ED448 and you used --enable-ed448." "$LINENO" 5
- fi ;;
-esac
+else $as_nop
+ if test "x$enable_ed448" = "xyes"; then as_fn_error $? "OpenSSL does not support ED448 and you used --enable-ed448." "$LINENO" 5
+ fi
fi
fi
@@ -23032,9 +21930,8 @@ if test "x$ac_cv_have_decl_MSG_FASTOPEN" = xyes
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Check the platform specific TFO kernel parameters are correctly configured to support client mode TFO" >&5
printf "%s\n" "$as_me: WARNING: Check the platform specific TFO kernel parameters are correctly configured to support client mode TFO" >&2;}
-else case e in #(
- e) as_fn_error $? "TCP Fast Open is not available for client mode: please rerun without --enable-tfo-client" "$LINENO" 5 ;;
-esac
+else $as_nop
+ as_fn_error $? "TCP Fast Open is not available for client mode: please rerun without --enable-tfo-client" "$LINENO" 5
fi
printf "%s\n" "#define USE_MSG_FASTOPEN 1" >>confdefs.h
@@ -23048,9 +21945,8 @@ if test "x$ac_cv_have_decl_CONNECT_RESUME_ON_READ_WRITE" = xyes
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Check the platform specific TFO kernel parameters are correctly configured to support client mode TFO" >&5
printf "%s\n" "$as_me: WARNING: Check the platform specific TFO kernel parameters are correctly configured to support client mode TFO" >&2;}
-else case e in #(
- e) as_fn_error $? "TCP Fast Open is not available for client mode: please rerun without --enable-tfo-client" "$LINENO" 5 ;;
-esac
+else $as_nop
+ as_fn_error $? "TCP Fast Open is not available for client mode: please rerun without --enable-tfo-client" "$LINENO" 5
fi
printf "%s\n" "#define USE_OSX_MSG_FASTOPEN 1" >>confdefs.h
@@ -23078,9 +21974,8 @@ if test "x$ac_cv_have_decl_TCP_FASTOPEN" = xyes
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Check the platform specific TFO kernel parameters are correctly configured to support server mode TFO" >&5
printf "%s\n" "$as_me: WARNING: Check the platform specific TFO kernel parameters are correctly configured to support server mode TFO" >&2;}
-else case e in #(
- e) as_fn_error $? "TCP Fast Open is not available for server mode: please rerun without --enable-tfo-server" "$LINENO" 5 ;;
-esac
+else $as_nop
+ as_fn_error $? "TCP Fast Open is not available for server mode: please rerun without --enable-tfo-server" "$LINENO" 5
fi
printf "%s\n" "#define USE_TCP_FASTOPEN 1" >>confdefs.h
@@ -23096,9 +21991,8 @@ esac
if test ${with_libevent+y}
then :
withval=$with_libevent;
-else case e in #(
- e) with_libevent="no" ;;
-esac
+else $as_nop
+ with_libevent="no"
fi
if test "x_$with_libevent" != x_no; then
@@ -23177,21 +22071,15 @@ printf %s "checking for library containing clock_gettime... " >&6; }
if test ${ac_cv_search_clock_gettime+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) ac_func_search_save_LIBS=$LIBS
+else $as_nop
+ ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply.
- The 'extern "C"' is for builds by C++ compilers;
- although this is not generally supported in C code supporting it here
- has little cost and some practical benefit (sr 110532). */
-#ifdef __cplusplus
-extern "C"
-#endif
-char clock_gettime (void);
+ builtin and then its argument prototype would still apply. */
+char clock_gettime ();
int
main (void)
{
@@ -23222,13 +22110,11 @@ done
if test ${ac_cv_search_clock_gettime+y}
then :
-else case e in #(
- e) ac_cv_search_clock_gettime=no ;;
-esac
+else $as_nop
+ ac_cv_search_clock_gettime=no
fi
rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS ;;
-esac
+LIBS=$ac_func_search_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_clock_gettime" >&5
printf "%s\n" "$ac_cv_search_clock_gettime" >&6; }
@@ -23261,21 +22147,15 @@ printf %s "checking for library containing event_set... " >&6; }
if test ${ac_cv_search_event_set+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) ac_func_search_save_LIBS=$LIBS
+else $as_nop
+ ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply.
- The 'extern "C"' is for builds by C++ compilers;
- although this is not generally supported in C code supporting it here
- has little cost and some practical benefit (sr 110532). */
-#ifdef __cplusplus
-extern "C"
-#endif
-char event_set (void);
+ builtin and then its argument prototype would still apply. */
+char event_set ();
int
main (void)
{
@@ -23306,13 +22186,11 @@ done
if test ${ac_cv_search_event_set+y}
then :
-else case e in #(
- e) ac_cv_search_event_set=no ;;
-esac
+else $as_nop
+ ac_cv_search_event_set=no
fi
rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS ;;
-esac
+LIBS=$ac_func_search_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_event_set" >&5
printf "%s\n" "$ac_cv_search_event_set" >&6; }
@@ -23324,28 +22202,22 @@ then :
fi
-else case e in #(
- e)
+else $as_nop
+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing event_set" >&5
printf %s "checking for library containing event_set... " >&6; }
if test ${ac_cv_search_event_set+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) ac_func_search_save_LIBS=$LIBS
+else $as_nop
+ ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply.
- The 'extern "C"' is for builds by C++ compilers;
- although this is not generally supported in C code supporting it here
- has little cost and some practical benefit (sr 110532). */
-#ifdef __cplusplus
-extern "C"
-#endif
-char event_set (void);
+ builtin and then its argument prototype would still apply. */
+char event_set ();
int
main (void)
{
@@ -23376,13 +22248,11 @@ done
if test ${ac_cv_search_event_set+y}
then :
-else case e in #(
- e) ac_cv_search_event_set=no ;;
-esac
+else $as_nop
+ ac_cv_search_event_set=no
fi
rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS ;;
-esac
+LIBS=$ac_func_search_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_event_set" >&5
printf "%s\n" "$ac_cv_search_event_set" >&6; }
@@ -23393,8 +22263,7 @@ then :
fi
- ;;
-esac
+
fi
ac_fn_c_check_func "$LINENO" "event_base_free" "ac_cv_func_event_base_free"
if test "x$ac_cv_func_event_base_free" = xyes
@@ -23456,9 +22325,8 @@ fi
if test "x$ac_cv_have_decl_evsignal_assign" = xyes
then :
ac_have_decl=1
-else case e in #(
- e) ac_have_decl=0 ;;
-esac
+else $as_nop
+ ac_have_decl=0
fi
printf "%s\n" "#define HAVE_DECL_EVSIGNAL_ASSIGN $ac_have_decl" >>confdefs.h
@@ -23479,9 +22347,8 @@ fi
if test ${with_libexpat+y}
then :
withval=$with_libexpat;
-else case e in #(
- e) withval="/usr/local /opt/local /usr/lib /usr/pkg /usr/sfw /usr" ;;
-esac
+else $as_nop
+ withval="/usr/local /opt/local /usr/lib /usr/pkg /usr/sfw /usr"
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libexpat" >&5
@@ -23517,9 +22384,8 @@ ac_fn_check_decl "$LINENO" "XML_StopParser" "ac_cv_have_decl_XML_StopParser" "$a
if test "x$ac_cv_have_decl_XML_StopParser" = xyes
then :
ac_have_decl=1
-else case e in #(
- e) ac_have_decl=0 ;;
-esac
+else $as_nop
+ ac_have_decl=0
fi
printf "%s\n" "#define HAVE_DECL_XML_STOPPARSER $ac_have_decl" >>confdefs.h
@@ -23530,9 +22396,8 @@ printf "%s\n" "#define HAVE_DECL_XML_STOPPARSER $ac_have_decl" >>confdefs.h
if test ${with_libhiredis+y}
then :
withval=$with_libhiredis;
-else case e in #(
- e) withval="no" ;;
-esac
+else $as_nop
+ withval="no"
fi
found_libhiredis="no"
@@ -23576,9 +22441,8 @@ fi
if test "x$ac_cv_have_decl_redisConnect" = xyes
then :
ac_have_decl=1
-else case e in #(
- e) ac_have_decl=0 ;;
-esac
+else $as_nop
+ ac_have_decl=0
fi
printf "%s\n" "#define HAVE_DECL_REDISCONNECT $ac_have_decl" >>confdefs.h
@@ -23590,9 +22454,8 @@ fi
if test ${with_libnghttp2+y}
then :
withval=$with_libnghttp2;
-else case e in #(
- e) withval="no" ;;
-esac
+else $as_nop
+ withval="no"
fi
found_libnghttp2="no"
@@ -23636,9 +22499,8 @@ fi
if test "x$ac_cv_have_decl_nghttp2_session_server_new" = xyes
then :
ac_have_decl=1
-else case e in #(
- e) ac_have_decl=0 ;;
-esac
+else $as_nop
+ ac_have_decl=0
fi
printf "%s\n" "#define HAVE_DECL_NGHTTP2_SESSION_SERVER_NEW $ac_have_decl" >>confdefs.h
@@ -23650,9 +22512,8 @@ fi
if test ${with_libngtcp2+y}
then :
withval=$with_libngtcp2;
-else case e in #(
- e) withval="no" ;;
-esac
+else $as_nop
+ withval="no"
fi
found_libngtcp2="no"
@@ -23717,9 +22578,8 @@ fi
if test "x$ac_cv_have_decl_ngtcp2_conn_server_new" = xyes
then :
ac_have_decl=1
-else case e in #(
- e) ac_have_decl=0 ;;
-esac
+else $as_nop
+ ac_have_decl=0
fi
printf "%s\n" "#define HAVE_DECL_NGTCP2_CONN_SERVER_NEW $ac_have_decl" >>confdefs.h
@@ -23730,9 +22590,8 @@ printf "%s\n" "#define HAVE_DECL_NGTCP2_CONN_SERVER_NEW $ac_have_decl" >>confdef
if test "x$ac_cv_have_decl_ngtcp2_crypto_encrypt_cb" = xyes
then :
ac_have_decl=1
-else case e in #(
- e) ac_have_decl=0 ;;
-esac
+else $as_nop
+ ac_have_decl=0
fi
printf "%s\n" "#define HAVE_DECL_NGTCP2_CRYPTO_ENCRYPT_CB $ac_have_decl" >>confdefs.h
@@ -23741,22 +22600,16 @@ printf %s "checking for ngtcp2_crypto_encrypt_cb in -lngtcp2_crypto_ossl... " >&
if test ${ac_cv_lib_ngtcp2_crypto_ossl_ngtcp2_crypto_encrypt_cb+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) ac_check_lib_save_LIBS=$LIBS
+else $as_nop
+ ac_check_lib_save_LIBS=$LIBS
LIBS="-lngtcp2_crypto_ossl $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply.
- The 'extern "C"' is for builds by C++ compilers;
- although this is not generally supported in C code supporting it here
- has little cost and some practical benefit (sr 110532). */
-#ifdef __cplusplus
-extern "C"
-#endif
-char ngtcp2_crypto_encrypt_cb (void);
+ builtin and then its argument prototype would still apply. */
+char ngtcp2_crypto_encrypt_cb ();
int
main (void)
{
@@ -23768,14 +22621,12 @@ _ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_lib_ngtcp2_crypto_ossl_ngtcp2_crypto_encrypt_cb=yes
-else case e in #(
- e) ac_cv_lib_ngtcp2_crypto_ossl_ngtcp2_crypto_encrypt_cb=no ;;
-esac
+else $as_nop
+ ac_cv_lib_ngtcp2_crypto_ossl_ngtcp2_crypto_encrypt_cb=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS ;;
-esac
+LIBS=$ac_check_lib_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ngtcp2_crypto_ossl_ngtcp2_crypto_encrypt_cb" >&5
printf "%s\n" "$ac_cv_lib_ngtcp2_crypto_ossl_ngtcp2_crypto_encrypt_cb" >&6; }
@@ -23787,29 +22638,23 @@ then :
printf "%s\n" "#define USE_NGTCP2_CRYPTO_OSSL 1" >>confdefs.h
-else case e in #(
- e)
+else $as_nop
+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ngtcp2_crypto_encrypt_cb in -lngtcp2_crypto_openssl" >&5
printf %s "checking for ngtcp2_crypto_encrypt_cb in -lngtcp2_crypto_openssl... " >&6; }
if test ${ac_cv_lib_ngtcp2_crypto_openssl_ngtcp2_crypto_encrypt_cb+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) ac_check_lib_save_LIBS=$LIBS
+else $as_nop
+ ac_check_lib_save_LIBS=$LIBS
LIBS="-lngtcp2_crypto_openssl $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply.
- The 'extern "C"' is for builds by C++ compilers;
- although this is not generally supported in C code supporting it here
- has little cost and some practical benefit (sr 110532). */
-#ifdef __cplusplus
-extern "C"
-#endif
-char ngtcp2_crypto_encrypt_cb (void);
+ builtin and then its argument prototype would still apply. */
+char ngtcp2_crypto_encrypt_cb ();
int
main (void)
{
@@ -23821,43 +22666,35 @@ _ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_lib_ngtcp2_crypto_openssl_ngtcp2_crypto_encrypt_cb=yes
-else case e in #(
- e) ac_cv_lib_ngtcp2_crypto_openssl_ngtcp2_crypto_encrypt_cb=no ;;
-esac
+else $as_nop
+ ac_cv_lib_ngtcp2_crypto_openssl_ngtcp2_crypto_encrypt_cb=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS ;;
-esac
+LIBS=$ac_check_lib_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ngtcp2_crypto_openssl_ngtcp2_crypto_encrypt_cb" >&5
printf "%s\n" "$ac_cv_lib_ngtcp2_crypto_openssl_ngtcp2_crypto_encrypt_cb" >&6; }
if test "x$ac_cv_lib_ngtcp2_crypto_openssl_ngtcp2_crypto_encrypt_cb" = xyes
then :
LIBS="$LIBS -lngtcp2_crypto_openssl"
-else case e in #(
- e)
+else $as_nop
+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ngtcp2_crypto_encrypt_cb in -lngtcp2_crypto_quictls" >&5
printf %s "checking for ngtcp2_crypto_encrypt_cb in -lngtcp2_crypto_quictls... " >&6; }
if test ${ac_cv_lib_ngtcp2_crypto_quictls_ngtcp2_crypto_encrypt_cb+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) ac_check_lib_save_LIBS=$LIBS
+else $as_nop
+ ac_check_lib_save_LIBS=$LIBS
LIBS="-lngtcp2_crypto_quictls $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply.
- The 'extern "C"' is for builds by C++ compilers;
- although this is not generally supported in C code supporting it here
- has little cost and some practical benefit (sr 110532). */
-#ifdef __cplusplus
-extern "C"
-#endif
-char ngtcp2_crypto_encrypt_cb (void);
+ builtin and then its argument prototype would still apply. */
+char ngtcp2_crypto_encrypt_cb ();
int
main (void)
{
@@ -23869,14 +22706,12 @@ _ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_lib_ngtcp2_crypto_quictls_ngtcp2_crypto_encrypt_cb=yes
-else case e in #(
- e) ac_cv_lib_ngtcp2_crypto_quictls_ngtcp2_crypto_encrypt_cb=no ;;
-esac
+else $as_nop
+ ac_cv_lib_ngtcp2_crypto_quictls_ngtcp2_crypto_encrypt_cb=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS ;;
-esac
+LIBS=$ac_check_lib_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ngtcp2_crypto_quictls_ngtcp2_crypto_encrypt_cb" >&5
printf "%s\n" "$ac_cv_lib_ngtcp2_crypto_quictls_ngtcp2_crypto_encrypt_cb" >&6; }
@@ -23885,12 +22720,10 @@ then :
LIBS="$LIBS -lngtcp2_crypto_quictls"
fi
- ;;
-esac
+
fi
- ;;
-esac
+
fi
ac_fn_c_check_func "$LINENO" "ngtcp2_crypto_encrypt_cb" "ac_cv_func_ngtcp2_crypto_encrypt_cb"
@@ -23978,9 +22811,8 @@ if test "x$ac_cv_func_SSL_is_quic" = xyes
then :
printf "%s\n" "#define HAVE_SSL_IS_QUIC 1" >>confdefs.h
-else case e in #(
- e) as_fn_error $? "No QUIC support detected in OpenSSL. Need OpenSSL version with QUIC support to enable DNS over QUIC with libngtcp2." "$LINENO" 5 ;;
-esac
+else $as_nop
+ as_fn_error $? "No QUIC support detected in OpenSSL. Need OpenSSL version with QUIC support to enable DNS over QUIC with libngtcp2." "$LINENO" 5
fi
done
@@ -24081,12 +22913,11 @@ printf "%s\n" "yes" >&6; }
printf "%s\n" "#define HAVE_NGTCP2_CONN_SHUTDOWN_STREAM4 1" >>confdefs.h
-else case e in #(
- e)
+else $as_nop
+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
- ;;
-esac
+
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
@@ -24116,22 +22947,16 @@ printf %s "checking for compress in -lz... " >&6; }
if test ${ac_cv_lib_z_compress+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) ac_check_lib_save_LIBS=$LIBS
+else $as_nop
+ ac_check_lib_save_LIBS=$LIBS
LIBS="-lz $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply.
- The 'extern "C"' is for builds by C++ compilers;
- although this is not generally supported in C code supporting it here
- has little cost and some practical benefit (sr 110532). */
-#ifdef __cplusplus
-extern "C"
-#endif
-char compress (void);
+ builtin and then its argument prototype would still apply. */
+char compress ();
int
main (void)
{
@@ -24143,14 +22968,12 @@ _ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_lib_z_compress=yes
-else case e in #(
- e) ac_cv_lib_z_compress=no ;;
-esac
+else $as_nop
+ ac_cv_lib_z_compress=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS ;;
-esac
+LIBS=$ac_check_lib_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_compress" >&5
printf "%s\n" "$ac_cv_lib_z_compress" >&6; }
@@ -24159,10 +22982,12 @@ then :
LIBS="$LIBS -lz"
fi
- if echo "$LIBS" | grep -e "libssp.a" -e "lssp" >/dev/null; then
- :
- else
- LIBS="$LIBS -l:libssp.a"
+ if echo "$host" | $GREP -i -e linux >/dev/null; then
+ if echo "$LIBS" | grep -e "libssp.a" -e "lssp" >/dev/null; then
+ :
+ else
+ LIBS="$LIBS -l:libssp.a"
+ fi
fi
fi
fi
@@ -24188,22 +23013,16 @@ printf %s "checking for compress in -lz... " >&6; }
if test ${ac_cv_lib_z_compress+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) ac_check_lib_save_LIBS=$LIBS
+else $as_nop
+ ac_check_lib_save_LIBS=$LIBS
LIBS="-lz $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply.
- The 'extern "C"' is for builds by C++ compilers;
- although this is not generally supported in C code supporting it here
- has little cost and some practical benefit (sr 110532). */
-#ifdef __cplusplus
-extern "C"
-#endif
-char compress (void);
+ builtin and then its argument prototype would still apply. */
+char compress ();
int
main (void)
{
@@ -24215,14 +23034,12 @@ _ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_lib_z_compress=yes
-else case e in #(
- e) ac_cv_lib_z_compress=no ;;
-esac
+else $as_nop
+ ac_cv_lib_z_compress=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS ;;
-esac
+LIBS=$ac_check_lib_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_compress" >&5
printf "%s\n" "$ac_cv_lib_z_compress" >&6; }
@@ -24231,10 +23048,12 @@ then :
LIBS="$LIBS -lz"
fi
- if echo "$LIBS" | grep -e "libssp.a" -e "lssp" >/dev/null; then
- :
- else
- LIBS="$LIBS -l:libssp.a"
+ if echo "$host" | $GREP -i -e linux >/dev/null; then
+ if echo "$LIBS" | grep -e "libssp.a" -e "lssp" >/dev/null; then
+ :
+ else
+ LIBS="$LIBS -l:libssp.a"
+ fi
fi
fi
fi
@@ -24291,8 +23110,8 @@ printf "%s\n" "#define USE_WINSOCK 1" >>confdefs.h
fi
fi
-else case e in #(
- e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#ifdef HAVE_WS2TCPIP_H
@@ -24319,8 +23138,8 @@ printf "%s\n" "#define USE_WINSOCK 1" >>confdefs.h
USE_WINSOCK="1"
-else case e in #(
- e) ORIGLIBS="$LIBS"
+else $as_nop
+ ORIGLIBS="$LIBS"
LIBS="$LIBS -lws2_32"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -24349,22 +23168,19 @@ printf "%s\n" "#define USE_WINSOCK 1" >>confdefs.h
USE_WINSOCK="1"
-else case e in #(
- e)
+else $as_nop
+
ac_cv_func_getaddrinfo="no"
LIBS="$ORIGLIBS"
- ;;
-esac
+
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
- ;;
-esac
+
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
- ;;
-esac
+
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
@@ -24399,8 +23215,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_WINDRES+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test -n "$WINDRES"; then
+else $as_nop
+ if test -n "$WINDRES"; then
ac_cv_prog_WINDRES="$WINDRES" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -24422,8 +23238,7 @@ done
done
IFS=$as_save_IFS
-fi ;;
-esac
+fi
fi
WINDRES=$ac_cv_prog_WINDRES
if test -n "$WINDRES"; then
@@ -24445,8 +23260,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_WINDRES+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) if test -n "$ac_ct_WINDRES"; then
+else $as_nop
+ if test -n "$ac_ct_WINDRES"; then
ac_cv_prog_ac_ct_WINDRES="$ac_ct_WINDRES" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -24468,8 +23283,7 @@ done
done
IFS=$as_save_IFS
-fi ;;
-esac
+fi
fi
ac_ct_WINDRES=$ac_cv_prog_ac_ct_WINDRES
if test -n "$ac_ct_WINDRES"; then
@@ -24559,10 +23373,9 @@ printf "%s\n" "yes" >&6; }
printf "%s\n" "#define HAVE_IOCTLSOCKET 1" >>confdefs.h
-else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; } ;;
-esac
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
@@ -24585,8 +23398,8 @@ cache=`echo daemon | sed 'y%.=/+-%___p_%'`
if eval test \${cv_cc_deprecated_$cache+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e)
+else $as_nop
+
echo '
#include <stdlib.h>
#include <unistd.h>
@@ -24598,8 +23411,7 @@ else
eval "cv_cc_deprecated_$cache=yes"
fi
rm -f conftest conftest.o conftest.c
- ;;
-esac
+
fi
if eval "test \"`echo '$cv_cc_deprecated_'$cache`\" = yes"; then
@@ -24619,6 +23431,23 @@ fi
fi
+ac_fn_c_check_member "$LINENO" "struct stat" "st_mtimensec" "ac_cv_member_struct_stat_st_mtimensec" "$ac_includes_default"
+if test "x$ac_cv_member_struct_stat_st_mtimensec" = xyes
+then :
+
+printf "%s\n" "#define HAVE_STRUCT_STAT_ST_MTIMENSEC 1" >>confdefs.h
+
+
+fi
+ac_fn_c_check_member "$LINENO" "struct stat" "st_mtim.tv_nsec" "ac_cv_member_struct_stat_st_mtim_tv_nsec" "$ac_includes_default"
+if test "x$ac_cv_member_struct_stat_st_mtim_tv_nsec" = xyes
+then :
+
+printf "%s\n" "#define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1" >>confdefs.h
+
+
+fi
+
ac_fn_c_check_member "$LINENO" "struct sockaddr_un" "sun_len" "ac_cv_member_struct_sockaddr_un_sun_len" "
$ac_includes_default
#ifdef HAVE_SYS_UN_H
@@ -24706,10 +23535,9 @@ printf "%s\n" "yes" >&6; }
printf "%s\n" "#define HAVE_HTOBE64 1" >>confdefs.h
-else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; } ;;
-esac
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
@@ -24742,10 +23570,9 @@ printf "%s\n" "yes" >&6; }
printf "%s\n" "#define HAVE_BE64TOH 1" >>confdefs.h
-else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; } ;;
-esac
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
@@ -24755,21 +23582,15 @@ printf %s "checking for library containing setusercontext... " >&6; }
if test ${ac_cv_search_setusercontext+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) ac_func_search_save_LIBS=$LIBS
+else $as_nop
+ ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply.
- The 'extern "C"' is for builds by C++ compilers;
- although this is not generally supported in C code supporting it here
- has little cost and some practical benefit (sr 110532). */
-#ifdef __cplusplus
-extern "C"
-#endif
-char setusercontext (void);
+ builtin and then its argument prototype would still apply. */
+char setusercontext ();
int
main (void)
{
@@ -24800,13 +23621,11 @@ done
if test ${ac_cv_search_setusercontext+y}
then :
-else case e in #(
- e) ac_cv_search_setusercontext=no ;;
-esac
+else $as_nop
+ ac_cv_search_setusercontext=no
fi
rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS ;;
-esac
+LIBS=$ac_func_search_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_setusercontext" >&5
printf "%s\n" "$ac_cv_search_setusercontext" >&6; }
@@ -25030,15 +23849,14 @@ if test "x$ac_cv_func_setresuid" = xyes
then :
printf "%s\n" "#define HAVE_SETRESUID 1" >>confdefs.h
-else case e in #(
- e) ac_fn_c_check_func "$LINENO" "setreuid" "ac_cv_func_setreuid"
+else $as_nop
+ ac_fn_c_check_func "$LINENO" "setreuid" "ac_cv_func_setreuid"
if test "x$ac_cv_func_setreuid" = xyes
then :
printf "%s\n" "#define HAVE_SETREUID 1" >>confdefs.h
fi
- ;;
-esac
+
fi
done
@@ -25050,15 +23868,14 @@ if test "x$ac_cv_func_setresgid" = xyes
then :
printf "%s\n" "#define HAVE_SETRESGID 1" >>confdefs.h
-else case e in #(
- e) ac_fn_c_check_func "$LINENO" "setregid" "ac_cv_func_setregid"
+else $as_nop
+ ac_fn_c_check_func "$LINENO" "setregid" "ac_cv_func_setregid"
if test "x$ac_cv_func_setregid" = xyes
then :
printf "%s\n" "#define HAVE_SETREGID 1" >>confdefs.h
fi
- ;;
-esac
+
fi
done
@@ -25102,12 +23919,11 @@ printf "%s\n" "yes" >&6; }
printf "%s\n" "#define HAVE_LINK_ATOMIC_STORE 1" >>confdefs.h
-else case e in #(
- e)
+else $as_nop
+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
- ;;
-esac
+
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
@@ -25138,9 +23954,8 @@ $ac_includes_default
if test "x$ac_cv_have_decl_inet_pton" = xyes
then :
ac_have_decl=1
-else case e in #(
- e) ac_have_decl=0 ;;
-esac
+else $as_nop
+ ac_have_decl=0
fi
printf "%s\n" "#define HAVE_DECL_INET_PTON $ac_have_decl" >>confdefs.h
ac_fn_check_decl "$LINENO" "inet_ntop" "ac_cv_have_decl_inet_ntop" "
@@ -25169,9 +23984,8 @@ $ac_includes_default
if test "x$ac_cv_have_decl_inet_ntop" = xyes
then :
ac_have_decl=1
-else case e in #(
- e) ac_have_decl=0 ;;
-esac
+else $as_nop
+ ac_have_decl=0
fi
printf "%s\n" "#define HAVE_DECL_INET_NTOP $ac_have_decl" >>confdefs.h
@@ -25180,14 +23994,13 @@ if test "x$ac_cv_func_inet_aton" = xyes
then :
printf "%s\n" "#define HAVE_INET_ATON 1" >>confdefs.h
-else case e in #(
- e) case " $LIBOBJS " in
+else $as_nop
+ case " $LIBOBJS " in
*" inet_aton.$ac_objext "* ) ;;
*) LIBOBJS="$LIBOBJS inet_aton.$ac_objext"
;;
esac
- ;;
-esac
+
fi
ac_fn_c_check_func "$LINENO" "inet_pton" "ac_cv_func_inet_pton"
@@ -25195,14 +24008,13 @@ if test "x$ac_cv_func_inet_pton" = xyes
then :
printf "%s\n" "#define HAVE_INET_PTON 1" >>confdefs.h
-else case e in #(
- e) case " $LIBOBJS " in
+else $as_nop
+ case " $LIBOBJS " in
*" inet_pton.$ac_objext "* ) ;;
*) LIBOBJS="$LIBOBJS inet_pton.$ac_objext"
;;
esac
- ;;
-esac
+
fi
ac_fn_c_check_func "$LINENO" "inet_ntop" "ac_cv_func_inet_ntop"
@@ -25210,14 +24022,13 @@ if test "x$ac_cv_func_inet_ntop" = xyes
then :
printf "%s\n" "#define HAVE_INET_NTOP 1" >>confdefs.h
-else case e in #(
- e) case " $LIBOBJS " in
+else $as_nop
+ case " $LIBOBJS " in
*" inet_ntop.$ac_objext "* ) ;;
*) LIBOBJS="$LIBOBJS inet_ntop.$ac_objext"
;;
esac
- ;;
-esac
+
fi
ac_fn_c_check_func "$LINENO" "snprintf" "ac_cv_func_snprintf"
@@ -25225,14 +24036,13 @@ if test "x$ac_cv_func_snprintf" = xyes
then :
printf "%s\n" "#define HAVE_SNPRINTF 1" >>confdefs.h
-else case e in #(
- e) case " $LIBOBJS " in
+else $as_nop
+ case " $LIBOBJS " in
*" snprintf.$ac_objext "* ) ;;
*) LIBOBJS="$LIBOBJS snprintf.$ac_objext"
;;
esac
- ;;
-esac
+
fi
# test if snprintf return the proper length
@@ -25244,8 +24054,8 @@ printf %s "checking for correct snprintf return value... " >&6; }
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: maybe" >&5
printf "%s\n" "maybe" >&6; }
-else case e in #(
- e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$ac_includes_default
@@ -25256,8 +24066,8 @@ if ac_fn_c_try_run "$LINENO"
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
-else case e in #(
- e)
+else $as_nop
+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
@@ -25269,12 +24079,10 @@ printf "%s\n" "#define SNPRINTF_RET_BROKEN /**/" >>confdefs.h
;;
esac
- ;;
-esac
+
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
-esac
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
fi
@@ -25284,14 +24092,13 @@ if test "x$ac_cv_func_strlcat" = xyes
then :
printf "%s\n" "#define HAVE_STRLCAT 1" >>confdefs.h
-else case e in #(
- e) case " $LIBOBJS " in
+else $as_nop
+ case " $LIBOBJS " in
*" strlcat.$ac_objext "* ) ;;
*) LIBOBJS="$LIBOBJS strlcat.$ac_objext"
;;
esac
- ;;
-esac
+
fi
ac_fn_c_check_func "$LINENO" "strlcpy" "ac_cv_func_strlcpy"
@@ -25299,14 +24106,13 @@ if test "x$ac_cv_func_strlcpy" = xyes
then :
printf "%s\n" "#define HAVE_STRLCPY 1" >>confdefs.h
-else case e in #(
- e) case " $LIBOBJS " in
+else $as_nop
+ case " $LIBOBJS " in
*" strlcpy.$ac_objext "* ) ;;
*) LIBOBJS="$LIBOBJS strlcpy.$ac_objext"
;;
esac
- ;;
-esac
+
fi
ac_fn_c_check_func "$LINENO" "memmove" "ac_cv_func_memmove"
@@ -25314,14 +24120,13 @@ if test "x$ac_cv_func_memmove" = xyes
then :
printf "%s\n" "#define HAVE_MEMMOVE 1" >>confdefs.h
-else case e in #(
- e) case " $LIBOBJS " in
+else $as_nop
+ case " $LIBOBJS " in
*" memmove.$ac_objext "* ) ;;
*) LIBOBJS="$LIBOBJS memmove.$ac_objext"
;;
esac
- ;;
-esac
+
fi
ac_fn_c_check_func "$LINENO" "gmtime_r" "ac_cv_func_gmtime_r"
@@ -25329,14 +24134,13 @@ if test "x$ac_cv_func_gmtime_r" = xyes
then :
printf "%s\n" "#define HAVE_GMTIME_R 1" >>confdefs.h
-else case e in #(
- e) case " $LIBOBJS " in
+else $as_nop
+ case " $LIBOBJS " in
*" gmtime_r.$ac_objext "* ) ;;
*) LIBOBJS="$LIBOBJS gmtime_r.$ac_objext"
;;
esac
- ;;
-esac
+
fi
ac_fn_c_check_func "$LINENO" "isblank" "ac_cv_func_isblank"
@@ -25344,14 +24148,13 @@ if test "x$ac_cv_func_isblank" = xyes
then :
printf "%s\n" "#define HAVE_ISBLANK 1" >>confdefs.h
-else case e in #(
- e) case " $LIBOBJS " in
+else $as_nop
+ case " $LIBOBJS " in
*" isblank.$ac_objext "* ) ;;
*) LIBOBJS="$LIBOBJS isblank.$ac_objext"
;;
esac
- ;;
-esac
+
fi
ac_fn_c_check_func "$LINENO" "explicit_bzero" "ac_cv_func_explicit_bzero"
@@ -25359,14 +24162,13 @@ if test "x$ac_cv_func_explicit_bzero" = xyes
then :
printf "%s\n" "#define HAVE_EXPLICIT_BZERO 1" >>confdefs.h
-else case e in #(
- e) case " $LIBOBJS " in
+else $as_nop
+ case " $LIBOBJS " in
*" explicit_bzero.$ac_objext "* ) ;;
*) LIBOBJS="$LIBOBJS explicit_bzero.$ac_objext"
;;
esac
- ;;
-esac
+
fi
LIBOBJ_WITHOUT_CTIMEARC4="$LIBOBJS"
@@ -25396,8 +24198,8 @@ printf "%s\n" "yes" >&6; }
printf "%s\n" "#define HAVE_REALLOCARRAY 1" >>confdefs.h
-else case e in #(
- e)
+else $as_nop
+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
case " $LIBOBJS " in
@@ -25406,8 +24208,7 @@ printf "%s\n" "no" >&6; }
;;
esac
- ;;
-esac
+
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
@@ -25415,9 +24216,8 @@ ac_fn_check_decl "$LINENO" "reallocarray" "ac_cv_have_decl_reallocarray" "$ac_in
if test "x$ac_cv_have_decl_reallocarray" = xyes
then :
ac_have_decl=1
-else case e in #(
- e) ac_have_decl=0 ;;
-esac
+else $as_nop
+ ac_have_decl=0
fi
printf "%s\n" "#define HAVE_DECL_REALLOCARRAY $ac_have_decl" >>confdefs.h
@@ -25427,14 +24227,13 @@ if test "x$ac_cv_func_arc4random" = xyes
then :
printf "%s\n" "#define HAVE_ARC4RANDOM 1" >>confdefs.h
-else case e in #(
- e) case " $LIBOBJS " in
+else $as_nop
+ case " $LIBOBJS " in
*" arc4random.$ac_objext "* ) ;;
*) LIBOBJS="$LIBOBJS arc4random.$ac_objext"
;;
esac
- ;;
-esac
+
fi
ac_fn_c_check_func "$LINENO" "arc4random_uniform" "ac_cv_func_arc4random_uniform"
@@ -25442,14 +24241,13 @@ if test "x$ac_cv_func_arc4random_uniform" = xyes
then :
printf "%s\n" "#define HAVE_ARC4RANDOM_UNIFORM 1" >>confdefs.h
-else case e in #(
- e) case " $LIBOBJS " in
+else $as_nop
+ case " $LIBOBJS " in
*" arc4random_uniform.$ac_objext "* ) ;;
*) LIBOBJS="$LIBOBJS arc4random_uniform.$ac_objext"
;;
esac
- ;;
-esac
+
fi
if test "$ac_cv_func_arc4random" = "no"; then
@@ -25467,8 +24265,8 @@ if test "x$ac_cv_func_getentropy" = xyes
then :
printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h
-else case e in #(
- e)
+else $as_nop
+
if test "$USE_WINSOCK" = 1; then
case " $LIBOBJS " in
*" getentropy_win.$ac_objext "* ) ;;
@@ -25501,8 +24299,8 @@ if test "x$ac_cv_header_sys_sha2_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_SHA2_H 1" >>confdefs.h
-else case e in #(
- e)
+else $as_nop
+
for ac_func in SHA512_Update
do :
@@ -25511,21 +24309,19 @@ if test "x$ac_cv_func_SHA512_Update" = xyes
then :
printf "%s\n" "#define HAVE_SHA512_UPDATE 1" >>confdefs.h
-else case e in #(
- e)
+else $as_nop
+
case " $LIBOBJS " in
*" sha512.$ac_objext "* ) ;;
*) LIBOBJS="$LIBOBJS sha512.$ac_objext"
;;
esac
- ;;
-esac
+
fi
done
- ;;
-esac
+
fi
done
@@ -25538,21 +24334,15 @@ printf %s "checking for library containing clock_gettime... " >&6; }
if test ${ac_cv_search_clock_gettime+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) ac_func_search_save_LIBS=$LIBS
+else $as_nop
+ ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply.
- The 'extern "C"' is for builds by C++ compilers;
- although this is not generally supported in C code supporting it here
- has little cost and some practical benefit (sr 110532). */
-#ifdef __cplusplus
-extern "C"
-#endif
-char clock_gettime (void);
+ builtin and then its argument prototype would still apply. */
+char clock_gettime ();
int
main (void)
{
@@ -25583,13 +24373,11 @@ done
if test ${ac_cv_search_clock_gettime+y}
then :
-else case e in #(
- e) ac_cv_search_clock_gettime=no ;;
-esac
+else $as_nop
+ ac_cv_search_clock_gettime=no
fi
rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS ;;
-esac
+LIBS=$ac_func_search_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_clock_gettime" >&5
printf "%s\n" "$ac_cv_search_clock_gettime" >&6; }
@@ -25624,8 +24412,8 @@ if test "x$ac_cv_func_SHA512_Update" = xyes
then :
printf "%s\n" "#define HAVE_SHA512_UPDATE 1" >>confdefs.h
-else case e in #(
- e)
+else $as_nop
+
printf "%s\n" "#define COMPAT_SHA512 1" >>confdefs.h
@@ -25635,8 +24423,7 @@ printf "%s\n" "#define COMPAT_SHA512 1" >>confdefs.h
;;
esac
- ;;
-esac
+
fi
done
@@ -25660,21 +24447,15 @@ printf %s "checking for library containing clock_gettime... " >&6; }
if test ${ac_cv_search_clock_gettime+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) ac_func_search_save_LIBS=$LIBS
+else $as_nop
+ ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply.
- The 'extern "C"' is for builds by C++ compilers;
- although this is not generally supported in C code supporting it here
- has little cost and some practical benefit (sr 110532). */
-#ifdef __cplusplus
-extern "C"
-#endif
-char clock_gettime (void);
+ builtin and then its argument prototype would still apply. */
+char clock_gettime ();
int
main (void)
{
@@ -25705,13 +24486,11 @@ done
if test ${ac_cv_search_clock_gettime+y}
then :
-else case e in #(
- e) ac_cv_search_clock_gettime=no ;;
-esac
+else $as_nop
+ ac_cv_search_clock_gettime=no
fi
rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS ;;
-esac
+LIBS=$ac_func_search_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_clock_gettime" >&5
printf "%s\n" "$ac_cv_search_clock_gettime" >&6; }
@@ -25725,8 +24504,7 @@ fi
;;
esac
fi
- ;;
-esac
+
fi
done
@@ -25739,14 +24517,13 @@ if test "x$ac_cv_func_ctime_r" = xyes
then :
printf "%s\n" "#define HAVE_CTIME_R 1" >>confdefs.h
-else case e in #(
- e) case " $LIBOBJS " in
+else $as_nop
+ case " $LIBOBJS " in
*" ctime_r.$ac_objext "* ) ;;
*) LIBOBJS="$LIBOBJS ctime_r.$ac_objext"
;;
esac
- ;;
-esac
+
fi
ac_fn_c_check_func "$LINENO" "strsep" "ac_cv_func_strsep"
@@ -25754,14 +24531,13 @@ if test "x$ac_cv_func_strsep" = xyes
then :
printf "%s\n" "#define HAVE_STRSEP 1" >>confdefs.h
-else case e in #(
- e) case " $LIBOBJS " in
+else $as_nop
+ case " $LIBOBJS " in
*" strsep.$ac_objext "* ) ;;
*) LIBOBJS="$LIBOBJS strsep.$ac_objext"
;;
esac
- ;;
-esac
+
fi
@@ -25812,9 +24588,8 @@ fi
if test ${enable_dnstap+y}
then :
enableval=$enable_dnstap; opt_dnstap=$enableval
-else case e in #(
- e) opt_dnstap=no ;;
-esac
+else $as_nop
+ opt_dnstap=no
fi
@@ -25823,9 +24598,8 @@ fi
if test ${with_dnstap_socket_path+y}
then :
withval=$with_dnstap_socket_path; opt_dnstap_socket_path=$withval
-else case e in #(
- e) opt_dnstap_socket_path="$UNBOUND_RUN_DIR/dnstap.sock" ;;
-esac
+else $as_nop
+ opt_dnstap_socket_path="$UNBOUND_RUN_DIR/dnstap.sock"
fi
@@ -25837,8 +24611,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_path_PROTOC+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) case $PROTOC in
+else $as_nop
+ case $PROTOC in
[\\/]* | ?:[\\/]*)
ac_cv_path_PROTOC="$PROTOC" # Let the user override the test with a path.
;;
@@ -25863,7 +24637,6 @@ done
IFS=$as_save_IFS
;;
-esac ;;
esac
fi
PROTOC=$ac_cv_path_PROTOC
@@ -25886,8 +24659,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_path_PROTOC_C+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) case $PROTOC_C in
+else $as_nop
+ case $PROTOC_C in
[\\/]* | ?:[\\/]*)
ac_cv_path_PROTOC_C="$PROTOC_C" # Let the user override the test with a path.
;;
@@ -25912,7 +24685,6 @@ done
IFS=$as_save_IFS
;;
-esac ;;
esac
fi
PROTOC_C=$ac_cv_path_PROTOC_C
@@ -25940,8 +24712,8 @@ printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_path_PROTOC_GEN_C+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) case $PROTOC_GEN_C in
+else $as_nop
+ case $PROTOC_GEN_C in
[\\/]* | ?:[\\/]*)
ac_cv_path_PROTOC_GEN_C="$PROTOC_GEN_C" # Let the user override the test with a path.
;;
@@ -25966,7 +24738,6 @@ done
IFS=$as_save_IFS
;;
-esac ;;
esac
fi
PROTOC_GEN_C=$ac_cv_path_PROTOC_GEN_C
@@ -26016,13 +24787,13 @@ then :
fi
LDFLAGS="$LDFLAGS -L$withval/lib"
-else case e in #(
- e)
+else $as_nop
+
if test -n "$PKG_CONFIG"; then
pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libprotobuf-c" >&5
-printf %s "checking for libprotobuf-c... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for PROTOBUFC" >&5
+printf %s "checking for PROTOBUFC... " >&6; }
if test -n "$PROTOBUFC_CFLAGS"; then
pkg_cv_PROTOBUFC_CFLAGS="$PROTOBUFC_CFLAGS"
@@ -26062,7 +24833,7 @@ fi
if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
@@ -26071,12 +24842,12 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- PROTOBUFC_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libprotobuf-c" 2>&1`
+ PROTOBUFC_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libprotobuf-c" 2>&1`
else
- PROTOBUFC_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libprotobuf-c" 2>&1`
+ PROTOBUFC_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libprotobuf-c" 2>&1`
fi
- # Put the nasty error message in config.log where it belongs
- echo "$PROTOBUFC_PKG_ERRORS" >&5
+ # Put the nasty error message in config.log where it belongs
+ echo "$PROTOBUFC_PKG_ERRORS" >&5
# pkg-config failed; try falling back to known values
@@ -26094,7 +24865,7 @@ fi
elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
# pkg-config failed; try falling back to known values
@@ -26112,8 +24883,8 @@ printf "%s\n" "no" >&6; }
else
- PROTOBUFC_CFLAGS=$pkg_cv_PROTOBUFC_CFLAGS
- PROTOBUFC_LIBS=$pkg_cv_PROTOBUFC_LIBS
+ PROTOBUFC_CFLAGS=$pkg_cv_PROTOBUFC_CFLAGS
+ PROTOBUFC_LIBS=$pkg_cv_PROTOBUFC_LIBS
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
@@ -26133,8 +24904,7 @@ fi
fi
fi
- ;;
-esac
+
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing protobuf_c_message_pack" >&5
@@ -26142,21 +24912,15 @@ printf %s "checking for library containing protobuf_c_message_pack... " >&6; }
if test ${ac_cv_search_protobuf_c_message_pack+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) ac_func_search_save_LIBS=$LIBS
+else $as_nop
+ ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply.
- The 'extern "C"' is for builds by C++ compilers;
- although this is not generally supported in C code supporting it here
- has little cost and some practical benefit (sr 110532). */
-#ifdef __cplusplus
-extern "C"
-#endif
-char protobuf_c_message_pack (void);
+ builtin and then its argument prototype would still apply. */
+char protobuf_c_message_pack ();
int
main (void)
{
@@ -26187,13 +24951,11 @@ done
if test ${ac_cv_search_protobuf_c_message_pack+y}
then :
-else case e in #(
- e) ac_cv_search_protobuf_c_message_pack=no ;;
-esac
+else $as_nop
+ ac_cv_search_protobuf_c_message_pack=no
fi
rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS ;;
-esac
+LIBS=$ac_func_search_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_protobuf_c_message_pack" >&5
printf "%s\n" "$ac_cv_search_protobuf_c_message_pack" >&6; }
@@ -26202,9 +24964,8 @@ if test "$ac_res" != no
then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-else case e in #(
- e) as_fn_error $? "The protobuf-c library was not found. Please install the development libraries for protobuf-c!" "$LINENO" 5 ;;
-esac
+else $as_nop
+ as_fn_error $? "The protobuf-c library was not found. Please install the development libraries for protobuf-c!" "$LINENO" 5
fi
@@ -26244,9 +25005,8 @@ printf "%s\n" "#define DNSTAP_SOCKET_PATH \"$hdr_dnstap_socket_path\"" >>confdef
if test ${enable_dnscrypt+y}
then :
enableval=$enable_dnscrypt; opt_dnscrypt=$enableval
-else case e in #(
- e) opt_dnscrypt=no ;;
-esac
+else $as_nop
+ opt_dnscrypt=no
fi
@@ -26266,21 +25026,15 @@ printf %s "checking for library containing sodium_init... " >&6; }
if test ${ac_cv_search_sodium_init+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) ac_func_search_save_LIBS=$LIBS
+else $as_nop
+ ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply.
- The 'extern "C"' is for builds by C++ compilers;
- although this is not generally supported in C code supporting it here
- has little cost and some practical benefit (sr 110532). */
-#ifdef __cplusplus
-extern "C"
-#endif
-char sodium_init (void);
+ builtin and then its argument prototype would still apply. */
+char sodium_init ();
int
main (void)
{
@@ -26311,13 +25065,11 @@ done
if test ${ac_cv_search_sodium_init+y}
then :
-else case e in #(
- e) ac_cv_search_sodium_init=no ;;
-esac
+else $as_nop
+ ac_cv_search_sodium_init=no
fi
rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS ;;
-esac
+LIBS=$ac_func_search_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_sodium_init" >&5
printf "%s\n" "$ac_cv_search_sodium_init" >&6; }
@@ -26326,9 +25078,8 @@ if test "$ac_res" != no
then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-else case e in #(
- e) as_fn_error $? "The sodium library was not found. Please install sodium!" "$LINENO" 5 ;;
-esac
+else $as_nop
+ as_fn_error $? "The sodium library was not found. Please install sodium!" "$LINENO" 5
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing crypto_box_curve25519xchacha20poly1305_beforenm" >&5
@@ -26336,21 +25087,15 @@ printf %s "checking for library containing crypto_box_curve25519xchacha20poly130
if test ${ac_cv_search_crypto_box_curve25519xchacha20poly1305_beforenm+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) ac_func_search_save_LIBS=$LIBS
+else $as_nop
+ ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply.
- The 'extern "C"' is for builds by C++ compilers;
- although this is not generally supported in C code supporting it here
- has little cost and some practical benefit (sr 110532). */
-#ifdef __cplusplus
-extern "C"
-#endif
-char crypto_box_curve25519xchacha20poly1305_beforenm (void);
+ builtin and then its argument prototype would still apply. */
+char crypto_box_curve25519xchacha20poly1305_beforenm ();
int
main (void)
{
@@ -26381,13 +25126,11 @@ done
if test ${ac_cv_search_crypto_box_curve25519xchacha20poly1305_beforenm+y}
then :
-else case e in #(
- e) ac_cv_search_crypto_box_curve25519xchacha20poly1305_beforenm=no ;;
-esac
+else $as_nop
+ ac_cv_search_crypto_box_curve25519xchacha20poly1305_beforenm=no
fi
rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS ;;
-esac
+LIBS=$ac_func_search_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_crypto_box_curve25519xchacha20poly1305_beforenm" >&5
printf "%s\n" "$ac_cv_search_crypto_box_curve25519xchacha20poly1305_beforenm" >&6; }
@@ -26402,12 +25145,11 @@ then :
printf "%s\n" "#define USE_DNSCRYPT_XCHACHA20 1" >>confdefs.h
-else case e in #(
- e)
+else $as_nop
+
ENABLE_DNSCRYPT_XCHACHA20=0
- ;;
-esac
+
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing sodium_set_misuse_handler" >&5
@@ -26415,21 +25157,15 @@ printf %s "checking for library containing sodium_set_misuse_handler... " >&6; }
if test ${ac_cv_search_sodium_set_misuse_handler+y}
then :
printf %s "(cached) " >&6
-else case e in #(
- e) ac_func_search_save_LIBS=$LIBS
+else $as_nop
+ ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply.
- The 'extern "C"' is for builds by C++ compilers;
- although this is not generally supported in C code supporting it here
- has little cost and some practical benefit (sr 110532). */
-#ifdef __cplusplus
-extern "C"
-#endif
-char sodium_set_misuse_handler (void);
+ builtin and then its argument prototype would still apply. */
+char sodium_set_misuse_handler ();
int
main (void)
{
@@ -26460,13 +25196,11 @@ done
if test ${ac_cv_search_sodium_set_misuse_handler+y}
then :
-else case e in #(
- e) ac_cv_search_sodium_set_misuse_handler=no ;;
-esac
+else $as_nop
+ ac_cv_search_sodium_set_misuse_handler=no
fi
rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS ;;
-esac
+LIBS=$ac_func_search_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_sodium_set_misuse_handler" >&5
printf "%s\n" "$ac_cv_search_sodium_set_misuse_handler" >&6; }
@@ -26579,17 +25313,16 @@ if test "x$ac_cv_header_net_pfvar_h" = xyes
then :
printf "%s\n" "#define HAVE_NET_PFVAR_H 1" >>confdefs.h
-else case e in #(
- e)
+else $as_nop
+
# mnl
# Check whether --with-libmnl was given.
if test ${with_libmnl+y}
then :
withval=$with_libmnl;
-else case e in #(
- e) withval="yes" ;;
-esac
+else $as_nop
+ withval="yes"
fi
found_libmnl="no"
@@ -26620,8 +25353,7 @@ printf "%s\n" "found in $dir" >&6; }
if test x_$found_libmnl != x_yes; then
as_fn_error $? "Could not find libmnl, libmnl.h" "$LINENO" 5
fi
- ;;
-esac
+
fi
done
@@ -26819,7 +25551,7 @@ printf "%s\n" "#define MAXSYSLOGMSGLEN 10240" >>confdefs.h
-version=1.24.2
+version=1.25.0
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for build time" >&5
printf %s "checking for build time... " >&6; }
@@ -26827,17 +25559,15 @@ ax_date_fmt="%b %e, %Y"
if test x"$SOURCE_DATE_EPOCH" = x
then :
date=`date "+$ax_date_fmt"`
-else case e in #(
- e) ax_build_date=`date -u -d "@$SOURCE_DATE_EPOCH" "+$ax_date_fmt" 2>/dev/null \
+else $as_nop
+ ax_build_date=`date -u -d "@$SOURCE_DATE_EPOCH" "+$ax_date_fmt" 2>/dev/null \
|| date -u -r "$SOURCE_DATE_EPOCH" "+$ax_date_fmt" 2>/dev/null`
if test x"$ax_build_date" = x
then :
as_fn_error $? "malformed SOURCE_DATE_EPOCH" "$LINENO" 5
-else case e in #(
- e) date=$ax_build_date ;;
-esac
-fi ;;
-esac
+else $as_nop
+ date=$ax_build_date
+fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $date" >&5
printf "%s\n" "$date" >&6; }
@@ -26858,8 +25588,8 @@ cat >confcache <<\_ACEOF
# config.status only pays attention to the cache file if you give it
# the --recheck option to rerun configure.
#
-# 'ac_cv_env_foo' variables (set or unset) will be overridden when
-# loading this file, other *unset* 'ac_cv_foo' will be assigned the
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
# following values.
_ACEOF
@@ -26889,14 +25619,14 @@ printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;}
(set) 2>&1 |
case $as_nl`(ac_space=' '; set) 2>&1` in #(
*${as_nl}ac_space=\ *)
- # 'set' does not quote correctly, so add quotes: double-quote
+ # `set' does not quote correctly, so add quotes: double-quote
# substitution turns \\\\ into \\, and sed turns \\ into \.
sed -n \
"s/'/'\\\\''/g;
s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
;; #(
*)
- # 'set' quotes correctly as required by POSIX, so do not add quotes.
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
;;
esac |
@@ -26957,12 +25687,6 @@ LIBOBJS=$ac_libobjs
LTLIBOBJS=$ac_ltlibobjs
-# Check whether --enable-year2038 was given.
-if test ${enable_year2038+y}
-then :
- enableval=$enable_year2038;
-fi
-
if test -z "${USE_SYSTEMD_TRUE}" && test -z "${USE_SYSTEMD_FALSE}"; then
as_fn_error $? "conditional \"USE_SYSTEMD\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -26996,6 +25720,7 @@ cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
# Be more Bourne compatible
DUALCASE=1; export DUALCASE # for MKS sh
+as_nop=:
if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
then :
emulate sh
@@ -27004,13 +25729,12 @@ then :
# is contrary to our usage. Disable this feature.
alias -g '${1+"$@"}'='"$@"'
setopt NO_GLOB_SUBST
-else case e in #(
- e) case `(set -o) 2>/dev/null` in #(
+else $as_nop
+ case `(set -o) 2>/dev/null` in #(
*posix*) :
set -o posix ;; #(
*) :
;;
-esac ;;
esac
fi
@@ -27082,7 +25806,7 @@ IFS=$as_save_IFS
;;
esac
-# We did not find ourselves, most probably we were run as 'sh COMMAND'
+# We did not find ourselves, most probably we were run as `sh COMMAND'
# in which case we are not to be found in the path.
if test "x$as_myself" = x; then
as_myself=$0
@@ -27111,6 +25835,7 @@ as_fn_error ()
} # as_fn_error
+
# as_fn_set_status STATUS
# -----------------------
# Set $? to STATUS, without forking.
@@ -27150,12 +25875,11 @@ then :
{
eval $1+=\$2
}'
-else case e in #(
- e) as_fn_append ()
+else $as_nop
+ as_fn_append ()
{
eval $1=\$$1\$2
- } ;;
-esac
+ }
fi # as_fn_append
# as_fn_arith ARG...
@@ -27169,12 +25893,11 @@ then :
{
as_val=$(( $* ))
}'
-else case e in #(
- e) as_fn_arith ()
+else $as_nop
+ as_fn_arith ()
{
as_val=`expr "$@" || test $? -eq 1`
- } ;;
-esac
+ }
fi # as_fn_arith
@@ -27257,9 +25980,9 @@ if (echo >conf$$.file) 2>/dev/null; then
if ln -s conf$$.file conf$$ 2>/dev/null; then
as_ln_s='ln -s'
# ... but there are two gotchas:
- # 1) On MSYS, both 'ln -s file dir' and 'ln file dir' fail.
- # 2) DJGPP < 2.04 has no symlinks; 'ln -s' creates a wrapper executable.
- # In both cases, we have to default to 'cp -pR'.
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -pR'.
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
as_ln_s='cp -pR'
elif ln conf$$.file conf$$ 2>/dev/null; then
@@ -27340,12 +26063,10 @@ as_test_x='test -x'
as_executable_p=as_fn_executable_p
# Sed expression to map a string onto a valid CPP name.
-as_sed_cpp="y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
-as_tr_cpp="eval sed '$as_sed_cpp'" # deprecated
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
# Sed expression to map a string onto a valid variable name.
-as_sed_sh="y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
-as_tr_sh="eval sed '$as_sed_sh'" # deprecated
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
exec 6>&1
@@ -27360,8 +26081,8 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by unbound $as_me 1.24.2, which was
-generated by GNU Autoconf 2.72. Invocation command line was
+This file was extended by unbound $as_me 1.25.0, which was
+generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
@@ -27393,7 +26114,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
ac_cs_usage="\
-'$as_me' instantiates files and other configuration actions
+\`$as_me' instantiates files and other configuration actions
from templates according to the current configuration. Unless the files
and actions are specified as TAGs, all are instantiated by default.
@@ -27428,11 +26149,11 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\
-unbound config.status 1.24.2
-configured by $0, generated by GNU Autoconf 2.72,
+unbound config.status 1.25.0
+configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\"
-Copyright (C) 2023 Free Software Foundation, Inc.
+Copyright (C) 2021 Free Software Foundation, Inc.
This config.status script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it."
@@ -27492,8 +26213,8 @@ do
ac_need_defaults=false;;
--he | --h)
# Conflict between --help and --header
- as_fn_error $? "ambiguous option: '$1'
-Try '$0 --help' for more information.";;
+ as_fn_error $? "ambiguous option: \`$1'
+Try \`$0 --help' for more information.";;
--help | --hel | -h )
printf "%s\n" "$ac_cs_usage"; exit ;;
-q | -quiet | --quiet | --quie | --qui | --qu | --q \
@@ -27501,8 +26222,8 @@ Try '$0 --help' for more information.";;
ac_cs_silent=: ;;
# This is an error.
- -*) as_fn_error $? "unrecognized option: '$1'
-Try '$0 --help' for more information." ;;
+ -*) as_fn_error $? "unrecognized option: \`$1'
+Try \`$0 --help' for more information." ;;
*) as_fn_append ac_config_targets " $1"
ac_need_defaults=false ;;
@@ -27588,7 +26309,6 @@ lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_q
lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`'
reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
-FILECMD='`$ECHO "$FILECMD" | $SED "$delay_single_quote_subst"`'
OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
@@ -27597,7 +26317,6 @@ want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`'
DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`'
sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`'
AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
-lt_ar_flags='`$ECHO "$lt_ar_flags" | $SED "$delay_single_quote_subst"`'
AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`'
STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
@@ -27718,7 +26437,6 @@ LN_S \
lt_SP2NL \
lt_NL2SP \
reload_flag \
-FILECMD \
OBJDUMP \
deplibs_check_method \
file_magic_cmd \
@@ -27727,6 +26445,7 @@ want_nocaseglob \
DLLTOOL \
sharedlib_from_linklib_cmd \
AR \
+AR_FLAGS \
archiver_list_spec \
STRIP \
RANLIB \
@@ -27859,7 +26578,7 @@ do
"contrib/unbound_portable.service") CONFIG_FILES="$CONFIG_FILES contrib/unbound_portable.service" ;;
"config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
- *) as_fn_error $? "invalid argument: '$ac_config_target'" "$LINENO" 5;;
+ *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
esac
done
@@ -27879,7 +26598,7 @@ fi
# creating and moving files from /tmp can sometimes cause problems.
# Hook for its removal unless debugging.
# Note that there is a small window in which the directory will not be cleaned:
-# after its creation but before its name has been assigned to '$tmp'.
+# after its creation but before its name has been assigned to `$tmp'.
$debug ||
{
tmp= ac_tmp=
@@ -27903,7 +26622,7 @@ ac_tmp=$tmp
# Set up the scripts for CONFIG_FILES section.
# No need to generate them if there are no CONFIG_FILES.
-# This happens for instance with './config.status config.h'.
+# This happens for instance with `./config.status config.h'.
if test -n "$CONFIG_FILES"; then
@@ -28061,13 +26780,13 @@ fi # test -n "$CONFIG_FILES"
# Set up the scripts for CONFIG_HEADERS section.
# No need to generate them if there are no CONFIG_HEADERS.
-# This happens for instance with './config.status Makefile'.
+# This happens for instance with `./config.status Makefile'.
if test -n "$CONFIG_HEADERS"; then
cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
BEGIN {
_ACEOF
-# Transform confdefs.h into an awk script 'defines.awk', embedded as
+# Transform confdefs.h into an awk script `defines.awk', embedded as
# here-document in config.status, that substitutes the proper values into
# config.h.in to produce config.h.
@@ -28177,7 +26896,7 @@ do
esac
case $ac_mode$ac_tag in
:[FHL]*:*);;
- :L* | :C*:*) as_fn_error $? "invalid tag '$ac_tag'" "$LINENO" 5;;
+ :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
:[FH]-) ac_tag=-:-;;
:[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
esac
@@ -28199,19 +26918,19 @@ do
-) ac_f="$ac_tmp/stdin";;
*) # Look for the file first in the build tree, then in the source tree
# (if the path is not absolute). The absolute path cannot be DOS-style,
- # because $ac_f cannot contain ':'.
+ # because $ac_f cannot contain `:'.
test -f "$ac_f" ||
case $ac_f in
[\\/$]*) false;;
*) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
esac ||
- as_fn_error 1 "cannot find input file: '$ac_f'" "$LINENO" 5;;
+ as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
esac
case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
as_fn_append ac_file_inputs " '$ac_f'"
done
- # Let's still pretend it is 'configure' which instantiates (i.e., don't
+ # Let's still pretend it is `configure' which instantiates (i.e., don't
# use $as_me), people would be surprised to read:
# /* config.h. Generated by config.status. */
configure_input='Generated from '`
@@ -28335,7 +27054,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
esac
_ACEOF
-# Neutralize VPATH when '$srcdir' = '.'.
+# Neutralize VPATH when `$srcdir' = `.'.
# Shell code in configure.ac might set extrasub.
# FIXME: do we really want to maintain this feature?
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
@@ -28364,9 +27083,9 @@ test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
{ ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
{ ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
"$ac_tmp/out"`; test -z "$ac_out"; } &&
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable 'datarootdir'
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
which seems to be undefined. Please make sure it is defined" >&5
-printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable 'datarootdir'
+printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
which seems to be undefined. Please make sure it is defined" >&2;}
rm -f "$ac_tmp/stdin"
@@ -28423,18 +27142,19 @@ printf "%s\n" "$as_me: executing $ac_file commands" >&6;}
cat <<_LT_EOF >> "$cfgfile"
#! $SHELL
# Generated automatically by $as_me ($PACKAGE) $VERSION
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
# NOTE: Changes made to this file will be lost: look at ltmain.sh.
# Provide generalized library-building support services.
# Written by Gordon Matzigkeit, 1996
-# Copyright (C) 2024 Free Software Foundation, Inc.
+# Copyright (C) 2014 Free Software Foundation, Inc.
# This is free software; see the source for copying conditions. There is NO
# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# GNU Libtool is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
+# the Free Software Foundation; either version 2 of of the License, or
# (at your option) any later version.
#
# As a special exception to the GNU General Public License, if you
@@ -28542,9 +27262,6 @@ to_host_file_cmd=$lt_cv_to_host_file_cmd
# convert \$build files to toolchain format.
to_tool_file_cmd=$lt_cv_to_tool_file_cmd
-# A file(cmd) program that detects file types.
-FILECMD=$lt_FILECMD
-
# An object symbol dumper.
OBJDUMP=$lt_OBJDUMP
@@ -28569,11 +27286,8 @@ sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd
# The archiver.
AR=$lt_AR
-# Flags to create an archive (by configure).
-lt_ar_flags=$lt_ar_flags
-
# Flags to create an archive.
-AR_FLAGS=\${ARFLAGS-"\$lt_ar_flags"}
+AR_FLAGS=$lt_AR_FLAGS
# How to feed a file listing to the archiver.
archiver_list_spec=$lt_archiver_list_spec
@@ -28815,7 +27529,7 @@ hardcode_direct=$hardcode_direct
# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes
# DIR into the resulting binary and the resulting library dependency is
-# "absolute",i.e. impossible to change by setting \$shlibpath_var if the
+# "absolute",i.e impossible to change by setting \$shlibpath_var if the
# library is relocated.
hardcode_direct_absolute=$hardcode_direct_absolute
@@ -28949,7 +27663,7 @@ ltmain=$ac_aux_dir/ltmain.sh
# if finds mixed CR/LF and LF-only lines. Since sed operates in
# text mode, it properly converts lines to CR/LF. This bash problem
# is reportedly fixed, but why not run on old versions too?
- $SED '$q' "$ltmain" >> "$cfgfile" \
+ sed '$q' "$ltmain" >> "$cfgfile" \
|| (rm -f "$cfgfile"; exit 1)
mv -f "$cfgfile" "$ofile" ||
diff --git a/configure.ac b/configure.ac
index 6a43fd5de933..ce1ca641707f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -11,15 +11,15 @@ sinclude(dnscrypt/dnscrypt.m4)
# must be numbers. ac_defun because of later processing
m4_define([VERSION_MAJOR],[1])
-m4_define([VERSION_MINOR],[24])
-m4_define([VERSION_MICRO],[2])
+m4_define([VERSION_MINOR],[25])
+m4_define([VERSION_MICRO],[0])
AC_INIT([unbound],m4_defn([VERSION_MAJOR]).m4_defn([VERSION_MINOR]).m4_defn([VERSION_MICRO]),[unbound-bugs@nlnetlabs.nl or https://github.com/NLnetLabs/unbound/issues],[unbound])
AC_SUBST(UNBOUND_VERSION_MAJOR, [VERSION_MAJOR])
AC_SUBST(UNBOUND_VERSION_MINOR, [VERSION_MINOR])
AC_SUBST(UNBOUND_VERSION_MICRO, [VERSION_MICRO])
LIBUNBOUND_CURRENT=9
-LIBUNBOUND_REVISION=34
+LIBUNBOUND_REVISION=36
LIBUNBOUND_AGE=1
# 1.0.0 had 0:12:0
# 1.0.1 had 0:13:0
@@ -122,6 +122,7 @@ LIBUNBOUND_AGE=1
# 1.24.0 had 9:33:1
# 1.24.1 had 9:34:1
# 1.24.2 had 9:35:1
+# 1.25.0 had 9:36:1
# Current -- the number of the binary API that we're implementing
# Revision -- which iteration of the implementation of the binary
@@ -330,6 +331,7 @@ fi
AC_C_INLINE
ACX_CHECK_FORMAT_ATTRIBUTE
ACX_CHECK_UNUSED_ATTRIBUTE
+ACX_CHECK_NONSTRING_ATTRIBUTE
AC_DEFUN([CHECK_WEAK_ATTRIBUTE],
[AC_REQUIRE([AC_PROG_CC])
@@ -360,7 +362,14 @@ AC_MSG_CHECKING(whether the C compiler (${CC-cc}) accepts the "noreturn" attribu
AC_CACHE_VAL(ac_cv_c_noreturn_attribute,
[ac_cv_c_noreturn_attribute=no
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include <stdio.h>
-__attribute__((noreturn)) void f(int x) { printf("%d", x); }
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+#else
+# ifdef HAVE_STDLIB_H
+# include <stdlib.h>
+# endif
+#endif
+__attribute__((noreturn)) void f(int x) { printf("%d", x); exit(1); }
]], [[
f(1);
]])],[ac_cv_c_noreturn_attribute="yes"],[ac_cv_c_noreturn_attribute="no"])
@@ -635,19 +644,19 @@ AC_ARG_ENABLE(alloc-nonregional, AS_HELP_STRING([--enable-alloc-nonregional],[ e
if test x_$enable_alloc_nonregional = x_yes; then
AC_DEFINE(UNBOUND_ALLOC_NONREGIONAL, 1, [use malloc not regions, for debug use])
fi
-if test x_$enable_alloc_checks = x_yes; then
+AS_IF([test x_$enable_alloc_checks = x_yes],[
AC_DEFINE(UNBOUND_ALLOC_STATS, 1, [use statistics for allocs and frees, for debug use])
SLDNS_ALLOCCHECK_EXTRA_OBJ="alloc.lo log.lo"
AC_SUBST(SLDNS_ALLOCCHECK_EXTRA_OBJ)
ASYNCLOOK_ALLOCCHECK_EXTRA_OBJ="alloc.lo"
AC_SUBST(ASYNCLOOK_ALLOCCHECK_EXTRA_OBJ)
-else
- if test x_$enable_alloc_lite = x_yes; then
+],[
+ AS_IF([test x_$enable_alloc_lite = x_yes],[
AC_DEFINE(UNBOUND_ALLOC_LITE, 1, [use to enable lightweight alloc assertions, for debug use])
- else
+ ],[
ACX_FUNC_MALLOC([unbound])
- fi
-fi
+ ])
+])
# check windows threads (we use them, not pthreads, on windows).
if test "$on_mingw" = "yes"; then
@@ -722,6 +731,76 @@ int main(void) {return 0;}
])
fi
+if test x_$ub_have_pthreads != x_no; then
+ # Long checks to support pthread_setname_np().
+ # Some OSes have the extra non-portable functions in a specific
+ # header file.
+ AC_CHECK_HEADERS([pthread_np.h],,, [AC_INCLUDES_DEFAULT])
+ BAKCFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -Werror"
+ # MacOS only has 1 argument, the name.
+ AC_MSG_CHECKING([whether pthread_setname_np has only 1 argument])
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT
+#include <pthread.h>
+#ifdef HAVE_PTHREAD_NP_H
+#include <pthread_np.h>
+#endif
+ ],[
+ (void)pthread_setname_np("");
+ ])],[
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_PTHREAD_SETNAME_NP1, 1, [Define if pthread_setname_np has only 1 argument.])
+ ],[
+ AC_MSG_RESULT(no)
+ ])
+ # NetBSD has 3 arguments to allow for formatting of the name.
+ AC_MSG_CHECKING([whether pthread_setname_np has 3 arguments])
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT
+#include <pthread.h>
+#ifdef HAVE_PTHREAD_NP_H
+#include <pthread_np.h>
+#endif
+ ],[
+ (void)pthread_setname_np(0, "", NULL);
+ ])],[
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_PTHREAD_SETNAME_NP3, 1, [Define if pthread_setname_np has 3 arguments.])
+ ],[
+ AC_MSG_RESULT(no)
+ ])
+ # Most OSes have the common 2 arguments, thread and name.
+ AC_MSG_CHECKING([whether pthread_setname_np has the common 2 arguments])
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT
+#include <pthread.h>
+#ifdef HAVE_PTHREAD_NP_H
+#include <pthread_np.h>
+#endif
+ ],[
+ (void)pthread_setname_np(0, "");
+ ])],[
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_PTHREAD_SETNAME_NP, 1, [Define if pthread_setname_np has the common 2 arguments.])
+ ],[
+ AC_MSG_RESULT(no)
+ ])
+ # FreeBSD/OpenBSD use a slightly different function name.
+ AC_MSG_CHECKING([whether pthread_setname_np exists as pthread_set_name_np instead])
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT
+#include <pthread.h>
+#ifdef HAVE_PTHREAD_NP_H
+#include <pthread_np.h>
+#endif
+ ],[
+ (void)pthread_set_name_np(0, "");
+ ])],[
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_PTHREAD_SET_NAME_NP, 1, [Define if pthread_setname_np exists as pthread_set_name_np instead.])
+ ],[
+ AC_MSG_RESULT(no)
+ ])
+ CFLAGS="$BAKCFLAGS"
+fi
+
# check solaris thread library
AC_ARG_WITH(solaris-threads, AS_HELP_STRING([--with-solaris-threads],[use solaris native thread library.]), [ ],[ withval="no" ])
ub_have_sol_threads=no
@@ -1253,7 +1332,7 @@ case "$enable_ecdsa" in
# see if OPENSSL 1.0.0 or later (has EVP MD and Verify independency)
AC_MSG_CHECKING([if openssl supports SHA2 and ECDSA with EVP])
if grep OPENSSL_VERSION_TEXT $ssldir_include/openssl/opensslv.h | grep "OpenSSL" >/dev/null; then
- if grep OPENSSL_VERSION_NUMBER $ssldir_include/openssl/opensslv.h | grep 0x0 >/dev/null; then
+ if grep OPENSSL_VERSION_TEXT $ssldir_include/openssl/opensslv.h | grep "OpenSSL 0\." >/dev/null; then
AC_MSG_RESULT([no])
AC_DEFINE_UNQUOTED([USE_ECDSA_EVP_WORKAROUND], [1], [Define this to enable an EVP workaround for older openssl])
else
@@ -1673,10 +1752,12 @@ if test x_$enable_static_exe = x_yes; then
LIBS="$LIBS -lgdi32"
fi
AC_CHECK_LIB([z], [compress], [ LIBS="$LIBS -lz" ])
- if echo "$LIBS" | grep -e "libssp.a" -e "lssp" >/dev/null; then
- :
- else
- LIBS="$LIBS -l:libssp.a"
+ if echo "$host" | $GREP -i -e linux >/dev/null; then
+ if echo "$LIBS" | grep -e "libssp.a" -e "lssp" >/dev/null; then
+ :
+ else
+ LIBS="$LIBS -l:libssp.a"
+ fi
fi
fi
fi
@@ -1694,10 +1775,12 @@ if test x_$enable_fully_static = x_yes; then
LIBS="$LIBS -lgdi32"
fi
AC_CHECK_LIB([z], [compress], [ LIBS="$LIBS -lz" ])
- if echo "$LIBS" | grep -e "libssp.a" -e "lssp" >/dev/null; then
- :
- else
- LIBS="$LIBS -l:libssp.a"
+ if echo "$host" | $GREP -i -e linux >/dev/null; then
+ if echo "$LIBS" | grep -e "libssp.a" -e "lssp" >/dev/null; then
+ :
+ else
+ LIBS="$LIBS -l:libssp.a"
+ fi
fi
fi
fi
@@ -1756,6 +1839,7 @@ if test $ac_cv_func_daemon = yes; then
])
fi
+AC_CHECK_MEMBERS([struct stat.st_mtimensec, struct stat.st_mtim.tv_nsec])
AC_CHECK_MEMBERS([struct sockaddr_un.sun_len],,,[
AC_INCLUDES_DEFAULT
#ifdef HAVE_SYS_UN_H
@@ -2293,6 +2377,7 @@ dnl includes
AHX_CONFIG_FORMAT_ATTRIBUTE
AHX_CONFIG_UNUSED_ATTRIBUTE
+AHX_CONFIG_NONSTRING_ATTRIBUTE
AHX_CONFIG_FSEEKO
AHX_CONFIG_MAXHOSTNAMELEN
#if !defined(HAVE_SNPRINTF) || defined(SNPRINTF_RET_BROKEN)
diff --git a/configure~ b/configure~
deleted file mode 100755
index 66a97a7b6262..000000000000
--- a/configure~
+++ /dev/null
@@ -1,27461 +0,0 @@
-#! /bin/sh
-# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71 for unbound 1.24.2.
-#
-# Report bugs to <unbound-bugs@nlnetlabs.nl or https://github.com/NLnetLabs/unbound/issues>.
-#
-#
-# Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation,
-# Inc.
-#
-#
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-## -------------------- ##
-## M4sh Initialization. ##
-## -------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-as_nop=:
-if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
-then :
- emulate sh
- NULLCMD=:
- # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else $as_nop
- case `(set -o) 2>/dev/null` in #(
- *posix*) :
- set -o posix ;; #(
- *) :
- ;;
-esac
-fi
-
-
-
-# Reset variables that may have inherited troublesome values from
-# the environment.
-
-# IFS needs to be set, to space, tab, and newline, in precisely that order.
-# (If _AS_PATH_WALK were called with IFS unset, it would have the
-# side effect of setting IFS to empty, thus disabling word splitting.)
-# Quoting is to prevent editors from complaining about space-tab.
-as_nl='
-'
-export as_nl
-IFS=" "" $as_nl"
-
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# Ensure predictable behavior from utilities with locale-dependent output.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# We cannot yet rely on "unset" to work, but we need these variables
-# to be unset--not just set to an empty or harmless value--now, to
-# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct
-# also avoids known problems related to "unset" and subshell syntax
-# in other old shells (e.g. bash 2.01 and pdksh 5.2.14).
-for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH
-do eval test \${$as_var+y} \
- && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-
-# Ensure that fds 0, 1, and 2 are open.
-if (exec 3>&0) 2>/dev/null; then :; else exec 0</dev/null; fi
-if (exec 3>&1) 2>/dev/null; then :; else exec 1>/dev/null; fi
-if (exec 3>&2) ; then :; else exec 2>/dev/null; fi
-
-# The user is always right.
-if ${PATH_SEPARATOR+false} :; then
- PATH_SEPARATOR=:
- (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
- (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
- PATH_SEPARATOR=';'
- }
-fi
-
-
-# Find who we are. Look in the path if we contain no directory separator.
-as_myself=
-case $0 in #((
- *[\\/]* ) as_myself=$0 ;;
- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- test -r "$as_dir$0" && as_myself=$as_dir$0 && break
- done
-IFS=$as_save_IFS
-
- ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
- as_myself=$0
-fi
-if test ! -f "$as_myself"; then
- printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
- exit 1
-fi
-
-
-# Use a proper internal environment variable to ensure we don't fall
- # into an infinite loop, continuously re-executing ourselves.
- if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
- _as_can_reexec=no; export _as_can_reexec;
- # We cannot yet assume a decent shell, so we have to provide a
-# neutralization value for shells without unset; and this also
-# works around shells that cannot unset nonexistent variables.
-# Preserve -v and -x to the replacement shell.
-BASH_ENV=/dev/null
-ENV=/dev/null
-(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-case $- in # ((((
- *v*x* | *x*v* ) as_opts=-vx ;;
- *v* ) as_opts=-v ;;
- *x* ) as_opts=-x ;;
- * ) as_opts= ;;
-esac
-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
-# Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed `exec'.
-printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2
-exit 255
- fi
- # We don't want this to propagate to other subprocesses.
- { _as_can_reexec=; unset _as_can_reexec;}
-if test "x$CONFIG_SHELL" = x; then
- as_bourne_compatible="as_nop=:
-if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
-then :
- emulate sh
- NULLCMD=:
- # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '\${1+\"\$@\"}'='\"\$@\"'
- setopt NO_GLOB_SUBST
-else \$as_nop
- case \`(set -o) 2>/dev/null\` in #(
- *posix*) :
- set -o posix ;; #(
- *) :
- ;;
-esac
-fi
-"
- as_required="as_fn_return () { (exit \$1); }
-as_fn_success () { as_fn_return 0; }
-as_fn_failure () { as_fn_return 1; }
-as_fn_ret_success () { return 0; }
-as_fn_ret_failure () { return 1; }
-
-exitcode=0
-as_fn_success || { exitcode=1; echo as_fn_success failed.; }
-as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
-as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
-as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
-if ( set x; as_fn_ret_success y && test x = \"\$1\" )
-then :
-
-else \$as_nop
- exitcode=1; echo positional parameters were not saved.
-fi
-test x\$exitcode = x0 || exit 1
-blah=\$(echo \$(echo blah))
-test x\"\$blah\" = xblah || exit 1
-test -x / || exit 1"
- as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
- as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
- eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
- test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
-test \$(( 1 + 1 )) = 2 || exit 1
-
- test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || (
- ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
- ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
- ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
- PATH=/empty FPATH=/empty; export PATH FPATH
- test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\
- || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1"
- if (eval "$as_required") 2>/dev/null
-then :
- as_have_required=yes
-else $as_nop
- as_have_required=no
-fi
- if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null
-then :
-
-else $as_nop
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_found=false
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- as_found=:
- case $as_dir in #(
- /*)
- for as_base in sh bash ksh sh5; do
- # Try only shells that exist, to save several forks.
- as_shell=$as_dir$as_base
- if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
- as_run=a "$as_shell" -c "$as_bourne_compatible""$as_required" 2>/dev/null
-then :
- CONFIG_SHELL=$as_shell as_have_required=yes
- if as_run=a "$as_shell" -c "$as_bourne_compatible""$as_suggested" 2>/dev/null
-then :
- break 2
-fi
-fi
- done;;
- esac
- as_found=false
-done
-IFS=$as_save_IFS
-if $as_found
-then :
-
-else $as_nop
- if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
- as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null
-then :
- CONFIG_SHELL=$SHELL as_have_required=yes
-fi
-fi
-
-
- if test "x$CONFIG_SHELL" != x
-then :
- export CONFIG_SHELL
- # We cannot yet assume a decent shell, so we have to provide a
-# neutralization value for shells without unset; and this also
-# works around shells that cannot unset nonexistent variables.
-# Preserve -v and -x to the replacement shell.
-BASH_ENV=/dev/null
-ENV=/dev/null
-(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-case $- in # ((((
- *v*x* | *x*v* ) as_opts=-vx ;;
- *v* ) as_opts=-v ;;
- *x* ) as_opts=-x ;;
- * ) as_opts= ;;
-esac
-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
-# Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed `exec'.
-printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2
-exit 255
-fi
-
- if test x$as_have_required = xno
-then :
- printf "%s\n" "$0: This script requires a shell more modern than all"
- printf "%s\n" "$0: the shells that I found on your system."
- if test ${ZSH_VERSION+y} ; then
- printf "%s\n" "$0: In particular, zsh $ZSH_VERSION has bugs and should"
- printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later."
- else
- printf "%s\n" "$0: Please tell bug-autoconf@gnu.org and
-$0: unbound-bugs@nlnetlabs.nl or
-$0: https://github.com/NLnetLabs/unbound/issues about your
-$0: system, including any error possibly output before this
-$0: message. Then install a modern shell, or manually run
-$0: the script under such a shell if you do have one."
- fi
- exit 1
-fi
-fi
-fi
-SHELL=${CONFIG_SHELL-/bin/sh}
-export SHELL
-# Unset more variables known to interfere with behavior of common tools.
-CLICOLOR_FORCE= GREP_OPTIONS=
-unset CLICOLOR_FORCE GREP_OPTIONS
-
-## --------------------- ##
-## M4sh Shell Functions. ##
-## --------------------- ##
-# as_fn_unset VAR
-# ---------------
-# Portably unset VAR.
-as_fn_unset ()
-{
- { eval $1=; unset $1;}
-}
-as_unset=as_fn_unset
-
-
-# as_fn_set_status STATUS
-# -----------------------
-# Set $? to STATUS, without forking.
-as_fn_set_status ()
-{
- return $1
-} # as_fn_set_status
-
-# as_fn_exit STATUS
-# -----------------
-# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
-as_fn_exit ()
-{
- set +e
- as_fn_set_status $1
- exit $1
-} # as_fn_exit
-# as_fn_nop
-# ---------
-# Do nothing but, unlike ":", preserve the value of $?.
-as_fn_nop ()
-{
- return $?
-}
-as_nop=as_fn_nop
-
-# as_fn_mkdir_p
-# -------------
-# Create "$as_dir" as a directory, including parents if necessary.
-as_fn_mkdir_p ()
-{
-
- case $as_dir in #(
- -*) as_dir=./$as_dir;;
- esac
- test -d "$as_dir" || eval $as_mkdir_p || {
- as_dirs=
- while :; do
- case $as_dir in #(
- *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
- *) as_qdir=$as_dir;;
- esac
- as_dirs="'$as_qdir' $as_dirs"
- as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-printf "%s\n" X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- test -d "$as_dir" && break
- done
- test -z "$as_dirs" || eval "mkdir $as_dirs"
- } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
-
-
-} # as_fn_mkdir_p
-
-# as_fn_executable_p FILE
-# -----------------------
-# Test if FILE is an executable regular file.
-as_fn_executable_p ()
-{
- test -f "$1" && test -x "$1"
-} # as_fn_executable_p
-# as_fn_append VAR VALUE
-# ----------------------
-# Append the text in VALUE to the end of the definition contained in VAR. Take
-# advantage of any shell optimizations that allow amortized linear growth over
-# repeated appends, instead of the typical quadratic growth present in naive
-# implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null
-then :
- eval 'as_fn_append ()
- {
- eval $1+=\$2
- }'
-else $as_nop
- as_fn_append ()
- {
- eval $1=\$$1\$2
- }
-fi # as_fn_append
-
-# as_fn_arith ARG...
-# ------------------
-# Perform arithmetic evaluation on the ARGs, and store the result in the
-# global $as_val. Take advantage of shells that can avoid forks. The arguments
-# must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null
-then :
- eval 'as_fn_arith ()
- {
- as_val=$(( $* ))
- }'
-else $as_nop
- as_fn_arith ()
- {
- as_val=`expr "$@" || test $? -eq 1`
- }
-fi # as_fn_arith
-
-# as_fn_nop
-# ---------
-# Do nothing but, unlike ":", preserve the value of $?.
-as_fn_nop ()
-{
- return $?
-}
-as_nop=as_fn_nop
-
-# as_fn_error STATUS ERROR [LINENO LOG_FD]
-# ----------------------------------------
-# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with STATUS, using 1 if that was 0.
-as_fn_error ()
-{
- as_status=$1; test $as_status -eq 0 && as_status=1
- if test "$4"; then
- as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
- fi
- printf "%s\n" "$as_me: error: $2" >&2
- as_fn_exit $as_status
-} # as_fn_error
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
- test "X`expr 00001 : '.*\(...\)'`" = X001; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
- as_basename=basename
-else
- as_basename=false
-fi
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
- as_dirname=dirname
-else
- as_dirname=false
-fi
-
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-printf "%s\n" X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{
- s//\1/
- q
- }
- /^X\/\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\/\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
-
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-
- as_lineno_1=$LINENO as_lineno_1a=$LINENO
- as_lineno_2=$LINENO as_lineno_2a=$LINENO
- eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
- test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
- # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
- sed -n '
- p
- /[$]LINENO/=
- ' <$as_myself |
- sed '
- s/[$]LINENO.*/&-/
- t lineno
- b
- :lineno
- N
- :loop
- s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
- t loop
- s/-\n.*//
- ' >$as_me.lineno &&
- chmod +x "$as_me.lineno" ||
- { printf "%s\n" "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
-
- # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
- # already done that, so ensure we don't try to do so again and fall
- # in an infinite loop. This has already happened in practice.
- _as_can_reexec=no; export _as_can_reexec
- # Don't try to exec as it changes $[0], causing all sort of problems
- # (the dirname of $[0] is not the place where we might find the
- # original and so on. Autoconf is especially sensitive to this).
- . "./$as_me.lineno"
- # Exit status is that of the last command.
- exit
-}
-
-
-# Determine whether it's possible to make 'echo' print without a newline.
-# These variables are no longer used directly by Autoconf, but are AC_SUBSTed
-# for compatibility with existing Makefiles.
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in #(((((
--n*)
- case `echo 'xy\c'` in
- *c*) ECHO_T=' ';; # ECHO_T is single tab character.
- xy) ECHO_C='\c';;
- *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
- ECHO_T=' ';;
- esac;;
-*)
- ECHO_N='-n';;
-esac
-
-# For backward compatibility with old third-party macros, we provide
-# the shell variables $as_echo and $as_echo_n. New code should use
-# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively.
-as_echo='printf %s\n'
-as_echo_n='printf %s'
-
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
- rm -f conf$$.dir/conf$$.file
-else
- rm -f conf$$.dir
- mkdir conf$$.dir 2>/dev/null
-fi
-if (echo >conf$$.file) 2>/dev/null; then
- if ln -s conf$$.file conf$$ 2>/dev/null; then
- as_ln_s='ln -s'
- # ... but there are two gotchas:
- # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
- # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -pR'.
- ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -pR'
- elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
- else
- as_ln_s='cp -pR'
- fi
-else
- as_ln_s='cp -pR'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-if mkdir -p . 2>/dev/null; then
- as_mkdir_p='mkdir -p "$as_dir"'
-else
- test -d ./-p && rmdir ./-p
- as_mkdir_p=false
-fi
-
-as_test_x='test -x'
-as_executable_p=as_fn_executable_p
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-
-test -n "$DJDIR" || exec 7<&0 </dev/null
-exec 6>&1
-
-# Name of the host.
-# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
-# so uname gets run too.
-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
-
-#
-# Initializations.
-#
-ac_default_prefix=/usr/local
-ac_clean_files=
-ac_config_libobj_dir=.
-LIBOBJS=
-cross_compiling=no
-subdirs=
-MFLAGS=
-MAKEFLAGS=
-
-# Identity of this package.
-PACKAGE_NAME='unbound'
-PACKAGE_TARNAME='unbound'
-PACKAGE_VERSION='1.24.2'
-PACKAGE_STRING='unbound 1.24.2'
-PACKAGE_BUGREPORT='unbound-bugs@nlnetlabs.nl or https://github.com/NLnetLabs/unbound/issues'
-PACKAGE_URL=''
-
-# Factoring default headers for most tests.
-ac_includes_default="\
-#include <stddef.h>
-#ifdef HAVE_STDIO_H
-# include <stdio.h>
-#endif
-#ifdef HAVE_STDLIB_H
-# include <stdlib.h>
-#endif
-#ifdef HAVE_STRING_H
-# include <string.h>
-#endif
-#ifdef HAVE_INTTYPES_H
-# include <inttypes.h>
-#endif
-#ifdef HAVE_STDINT_H
-# include <stdint.h>
-#endif
-#ifdef HAVE_STRINGS_H
-# include <strings.h>
-#endif
-#ifdef HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_STAT_H
-# include <sys/stat.h>
-#endif
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif"
-
-ac_header_c_list=
-ac_func_c_list=
-ac_subst_vars='LTLIBOBJS
-date
-version
-INSTALLTARGET
-ALLTARGET
-SOURCEFILE
-SOURCEDETERMINE
-IPSET_OBJ
-IPSET_SRC
-IPSECMOD_HEADER
-IPSECMOD_OBJ
-CACHEDB_OBJ
-CACHEDB_SRC
-DNSCRYPT_OBJ
-DNSCRYPT_SRC
-ENABLE_DNSCRYPT
-ENABLE_DNSCRYPT_XCHACHA20
-DNSTAP_OBJ
-DNSTAP_SRC
-DNSTAP_SOCKET_TESTBIN
-DNSTAP_SOCKET_PATH
-opt_dnstap_socket_path
-ENABLE_DNSTAP
-PROTOBUFC_LIBS
-PROTOBUFC_CFLAGS
-PROTOC_GEN_C
-PROTOC_C
-PROTOC
-UBSYMS
-EXTRALINK
-COMMON_OBJ_ALL_SYMBOLS
-LIBOBJ_WITHOUT_CTIME
-LIBOBJ_WITHOUT_CTIMEARC4
-WIN_CHECKCONF_OBJ_LINK
-WIN_CONTROL_OBJ_LINK
-WIN_UBANCHOR_OBJ_LINK
-WIN_HOST_OBJ_LINK
-WIN_DAEMON_OBJ_LINK
-WIN_DAEMON_OBJ
-WIN_DAEMON_SRC
-WINAPPS
-WINDRES
-CHECKLOCK_OBJ
-staticexe
-PC_LIBEVENT_DEPENDENCY
-UNBOUND_EVENT_UNINSTALL
-UNBOUND_EVENT_INSTALL
-SUBNET_HEADER
-SUBNET_OBJ
-PC_LIBBSD_DEPENDENCY
-SSLLIB
-HAVE_SSL
-PC_CRYPTO_DEPENDENCY
-CONFIG_DATE
-SOURCE_DATE_EPOCH
-GCC_DOCKER_LINTFLAGS
-NETBSD_LINTFLAGS
-PYUNBOUND_UNINSTALL
-PYUNBOUND_INSTALL
-PYUNBOUND_TARGET
-PYUNBOUND_OBJ
-WITH_PYUNBOUND
-PYTHONMOD_UNINSTALL
-PYTHONMOD_INSTALL
-PYTHONMOD_HEADER
-PYTHONMOD_OBJ
-WITH_PYTHONMODULE
-swig
-SWIG_LIB
-SWIG
-PC_PY_DEPENDENCY
-PYTHON_LIBS
-PY_MAJOR_VERSION
-PYTHON_SITE_PKG
-PYTHON_LDFLAGS
-PYTHON_CPPFLAGS
-PYTHON
-PYTHON_VERSION
-DYNLIBMOD_EXTRALIBS
-DYNLIBMOD_HEADER
-DYNLIBMOD_OBJ
-WITH_DYNLIBMODULE
-PTHREAD_CFLAGS_ONLY
-PTHREAD_CFLAGS
-PTHREAD_LIBS
-PTHREAD_CXX
-PTHREAD_CC
-ax_pthread_config
-ASYNCLOOK_ALLOCCHECK_EXTRA_OBJ
-SLDNS_ALLOCCHECK_EXTRA_OBJ
-USE_SYSTEMD_FALSE
-USE_SYSTEMD_TRUE
-SYSTEMD_DAEMON_LIBS
-SYSTEMD_DAEMON_CFLAGS
-SYSTEMD_LIBS
-SYSTEMD_CFLAGS
-RUNTIME_PATH
-LIBOBJS
-CPP
-PKG_CONFIG_LIBDIR
-PKG_CONFIG_PATH
-PKG_CONFIG
-LT_SYS_LIBRARY_PATH
-OTOOL64
-OTOOL
-LIPO
-NMEDIT
-DSYMUTIL
-MANIFEST_TOOL
-AWK
-RANLIB
-ac_ct_AR
-DLLTOOL
-OBJDUMP
-LN_S
-NM
-ac_ct_DUMPBIN
-DUMPBIN
-LD
-FGREP
-EGREP
-SED
-LIBTOOL
-AR
-host_os
-host_vendor
-host_cpu
-host
-build_os
-build_vendor
-build_cpu
-build
-libtool
-STRIP
-doxygen
-YFLAGS
-YACC
-LEXLIB
-LEX_OUTPUT_ROOT
-LEX
-debug_enabled
-DEPFLAG
-GREP
-UNBOUND_USERNAME
-UNBOUND_ROOTCERT_FILE
-UNBOUND_ROOTKEY_FILE
-UNBOUND_PIDFILE
-UNBOUND_SHARE_DIR
-UNBOUND_CHROOT_DIR
-UNBOUND_RUN_DIR
-ub_conf_dir
-ub_conf_file
-UNBOUND_LOCALSTATE_DIR
-UNBOUND_SYSCONF_DIR
-UNBOUND_SBIN_DIR
-OBJEXT
-EXEEXT
-ac_ct_CC
-CPPFLAGS
-LDFLAGS
-CFLAGS
-CC
-LIBUNBOUND_AGE
-LIBUNBOUND_REVISION
-LIBUNBOUND_CURRENT
-UNBOUND_VERSION_MICRO
-UNBOUND_VERSION_MINOR
-UNBOUND_VERSION_MAJOR
-target_alias
-host_alias
-build_alias
-LIBS
-ECHO_T
-ECHO_N
-ECHO_C
-DEFS
-mandir
-localedir
-libdir
-psdir
-pdfdir
-dvidir
-htmldir
-infodir
-docdir
-oldincludedir
-includedir
-runstatedir
-localstatedir
-sharedstatedir
-sysconfdir
-datadir
-datarootdir
-libexecdir
-sbindir
-bindir
-program_transform_name
-prefix
-exec_prefix
-PACKAGE_URL
-PACKAGE_BUGREPORT
-PACKAGE_STRING
-PACKAGE_VERSION
-PACKAGE_TARNAME
-PACKAGE_NAME
-PATH_SEPARATOR
-SHELL'
-ac_subst_files=''
-ac_user_opts='
-enable_option_checking
-with_conf_file
-with_run_dir
-with_chroot_dir
-with_share_dir
-with_pidfile
-with_rootkey_file
-with_rootcert_file
-with_username
-enable_checking
-enable_debug
-enable_flto
-enable_pie
-enable_relro_now
-enable_shared
-enable_static
-with_pic
-enable_fast_install
-with_aix_soname
-with_gnu_ld
-with_sysroot
-enable_libtool_lock
-enable_rpath
-enable_largefile
-enable_systemd
-enable_alloc_checks
-enable_alloc_lite
-enable_alloc_nonregional
-with_pthreads
-with_solaris_threads
-with_syslog_facility
-with_dynlibmodule
-with_pyunbound
-with_pythonmodule
-enable_swig_version_check
-with_nss
-with_nettle
-with_ssl
-with_libbsd
-enable_sha1
-enable_sha2
-enable_subnet
-enable_gost
-enable_ecdsa
-enable_dsa
-with_deprecate_rsa_1024
-enable_ed25519
-enable_ed448
-enable_event_api
-enable_tfo_client
-enable_tfo_server
-with_libevent
-with_libexpat
-with_libhiredis
-with_libnghttp2
-with_libngtcp2
-enable_static_exe
-enable_fully_static
-enable_lock_checks
-enable_allsymbols
-enable_dnstap
-with_dnstap_socket_path
-with_protobuf_c
-enable_dnscrypt
-with_libsodium
-enable_cachedb
-enable_ipsecmod
-enable_ipset
-with_libmnl
-enable_explicit_port_randomisation
-enable_linux_ip_local_port_range
-with_libunbound_only
-'
- ac_precious_vars='build_alias
-host_alias
-target_alias
-CC
-CFLAGS
-LDFLAGS
-LIBS
-CPPFLAGS
-YACC
-YFLAGS
-LT_SYS_LIBRARY_PATH
-PKG_CONFIG
-PKG_CONFIG_PATH
-PKG_CONFIG_LIBDIR
-CPP
-SYSTEMD_CFLAGS
-SYSTEMD_LIBS
-SYSTEMD_DAEMON_CFLAGS
-SYSTEMD_DAEMON_LIBS
-PYTHON_VERSION
-SOURCE_DATE_EPOCH
-PROTOBUFC_CFLAGS
-PROTOBUFC_LIBS'
-
-
-# Initialize some variables set by options.
-ac_init_help=
-ac_init_version=false
-ac_unrecognized_opts=
-ac_unrecognized_sep=
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-cache_file=/dev/null
-exec_prefix=NONE
-no_create=
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-verbose=
-x_includes=NONE
-x_libraries=NONE
-
-# Installation directory options.
-# These are left unexpanded so users can "make install exec_prefix=/foo"
-# and all the variables that are supposed to be based on exec_prefix
-# by default will actually change.
-# Use braces instead of parens because sh, perl, etc. also accept them.
-# (The list follows the same order as the GNU Coding Standards.)
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datarootdir='${prefix}/share'
-datadir='${datarootdir}'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-runstatedir='${localstatedir}/run'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
-infodir='${datarootdir}/info'
-htmldir='${docdir}'
-dvidir='${docdir}'
-pdfdir='${docdir}'
-psdir='${docdir}'
-libdir='${exec_prefix}/lib'
-localedir='${datarootdir}/locale'
-mandir='${datarootdir}/man'
-
-ac_prev=
-ac_dashdash=
-for ac_option
-do
- # If the previous option needs an argument, assign it.
- if test -n "$ac_prev"; then
- eval $ac_prev=\$ac_option
- ac_prev=
- continue
- fi
-
- case $ac_option in
- *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
- *=) ac_optarg= ;;
- *) ac_optarg=yes ;;
- esac
-
- case $ac_dashdash$ac_option in
- --)
- ac_dashdash=yes ;;
-
- -bindir | --bindir | --bindi | --bind | --bin | --bi)
- ac_prev=bindir ;;
- -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
- bindir=$ac_optarg ;;
-
- -build | --build | --buil | --bui | --bu)
- ac_prev=build_alias ;;
- -build=* | --build=* | --buil=* | --bui=* | --bu=*)
- build_alias=$ac_optarg ;;
-
- -cache-file | --cache-file | --cache-fil | --cache-fi \
- | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
- ac_prev=cache_file ;;
- -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
- | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
- cache_file=$ac_optarg ;;
-
- --config-cache | -C)
- cache_file=config.cache ;;
-
- -datadir | --datadir | --datadi | --datad)
- ac_prev=datadir ;;
- -datadir=* | --datadir=* | --datadi=* | --datad=*)
- datadir=$ac_optarg ;;
-
- -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
- | --dataroo | --dataro | --datar)
- ac_prev=datarootdir ;;
- -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
- | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
- datarootdir=$ac_optarg ;;
-
- -disable-* | --disable-*)
- ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid feature name: \`$ac_useropt'"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"enable_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval enable_$ac_useropt=no ;;
-
- -docdir | --docdir | --docdi | --doc | --do)
- ac_prev=docdir ;;
- -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
- docdir=$ac_optarg ;;
-
- -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
- ac_prev=dvidir ;;
- -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
- dvidir=$ac_optarg ;;
-
- -enable-* | --enable-*)
- ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid feature name: \`$ac_useropt'"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"enable_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval enable_$ac_useropt=\$ac_optarg ;;
-
- -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
- | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
- | --exec | --exe | --ex)
- ac_prev=exec_prefix ;;
- -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
- | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
- | --exec=* | --exe=* | --ex=*)
- exec_prefix=$ac_optarg ;;
-
- -gas | --gas | --ga | --g)
- # Obsolete; use --with-gas.
- with_gas=yes ;;
-
- -help | --help | --hel | --he | -h)
- ac_init_help=long ;;
- -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
- ac_init_help=recursive ;;
- -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
- ac_init_help=short ;;
-
- -host | --host | --hos | --ho)
- ac_prev=host_alias ;;
- -host=* | --host=* | --hos=* | --ho=*)
- host_alias=$ac_optarg ;;
-
- -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
- ac_prev=htmldir ;;
- -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
- | --ht=*)
- htmldir=$ac_optarg ;;
-
- -includedir | --includedir | --includedi | --included | --include \
- | --includ | --inclu | --incl | --inc)
- ac_prev=includedir ;;
- -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
- | --includ=* | --inclu=* | --incl=* | --inc=*)
- includedir=$ac_optarg ;;
-
- -infodir | --infodir | --infodi | --infod | --info | --inf)
- ac_prev=infodir ;;
- -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
- infodir=$ac_optarg ;;
-
- -libdir | --libdir | --libdi | --libd)
- ac_prev=libdir ;;
- -libdir=* | --libdir=* | --libdi=* | --libd=*)
- libdir=$ac_optarg ;;
-
- -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
- | --libexe | --libex | --libe)
- ac_prev=libexecdir ;;
- -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
- | --libexe=* | --libex=* | --libe=*)
- libexecdir=$ac_optarg ;;
-
- -localedir | --localedir | --localedi | --localed | --locale)
- ac_prev=localedir ;;
- -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
- localedir=$ac_optarg ;;
-
- -localstatedir | --localstatedir | --localstatedi | --localstated \
- | --localstate | --localstat | --localsta | --localst | --locals)
- ac_prev=localstatedir ;;
- -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
- | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
- localstatedir=$ac_optarg ;;
-
- -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
- ac_prev=mandir ;;
- -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
- mandir=$ac_optarg ;;
-
- -nfp | --nfp | --nf)
- # Obsolete; use --without-fp.
- with_fp=no ;;
-
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c | -n)
- no_create=yes ;;
-
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
- no_recursion=yes ;;
-
- -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
- | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
- | --oldin | --oldi | --old | --ol | --o)
- ac_prev=oldincludedir ;;
- -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
- | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
- | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
- oldincludedir=$ac_optarg ;;
-
- -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
- ac_prev=prefix ;;
- -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
- prefix=$ac_optarg ;;
-
- -program-prefix | --program-prefix | --program-prefi | --program-pref \
- | --program-pre | --program-pr | --program-p)
- ac_prev=program_prefix ;;
- -program-prefix=* | --program-prefix=* | --program-prefi=* \
- | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
- program_prefix=$ac_optarg ;;
-
- -program-suffix | --program-suffix | --program-suffi | --program-suff \
- | --program-suf | --program-su | --program-s)
- ac_prev=program_suffix ;;
- -program-suffix=* | --program-suffix=* | --program-suffi=* \
- | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
- program_suffix=$ac_optarg ;;
-
- -program-transform-name | --program-transform-name \
- | --program-transform-nam | --program-transform-na \
- | --program-transform-n | --program-transform- \
- | --program-transform | --program-transfor \
- | --program-transfo | --program-transf \
- | --program-trans | --program-tran \
- | --progr-tra | --program-tr | --program-t)
- ac_prev=program_transform_name ;;
- -program-transform-name=* | --program-transform-name=* \
- | --program-transform-nam=* | --program-transform-na=* \
- | --program-transform-n=* | --program-transform-=* \
- | --program-transform=* | --program-transfor=* \
- | --program-transfo=* | --program-transf=* \
- | --program-trans=* | --program-tran=* \
- | --progr-tra=* | --program-tr=* | --program-t=*)
- program_transform_name=$ac_optarg ;;
-
- -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
- ac_prev=pdfdir ;;
- -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
- pdfdir=$ac_optarg ;;
-
- -psdir | --psdir | --psdi | --psd | --ps)
- ac_prev=psdir ;;
- -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
- psdir=$ac_optarg ;;
-
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- silent=yes ;;
-
- -runstatedir | --runstatedir | --runstatedi | --runstated \
- | --runstate | --runstat | --runsta | --runst | --runs \
- | --run | --ru | --r)
- ac_prev=runstatedir ;;
- -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
- | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
- | --run=* | --ru=* | --r=*)
- runstatedir=$ac_optarg ;;
-
- -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
- ac_prev=sbindir ;;
- -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
- | --sbi=* | --sb=*)
- sbindir=$ac_optarg ;;
-
- -sharedstatedir | --sharedstatedir | --sharedstatedi \
- | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
- | --sharedst | --shareds | --shared | --share | --shar \
- | --sha | --sh)
- ac_prev=sharedstatedir ;;
- -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
- | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
- | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
- | --sha=* | --sh=*)
- sharedstatedir=$ac_optarg ;;
-
- -site | --site | --sit)
- ac_prev=site ;;
- -site=* | --site=* | --sit=*)
- site=$ac_optarg ;;
-
- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
- ac_prev=srcdir ;;
- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
- srcdir=$ac_optarg ;;
-
- -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
- | --syscon | --sysco | --sysc | --sys | --sy)
- ac_prev=sysconfdir ;;
- -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
- | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
- sysconfdir=$ac_optarg ;;
-
- -target | --target | --targe | --targ | --tar | --ta | --t)
- ac_prev=target_alias ;;
- -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
- target_alias=$ac_optarg ;;
-
- -v | -verbose | --verbose | --verbos | --verbo | --verb)
- verbose=yes ;;
-
- -version | --version | --versio | --versi | --vers | -V)
- ac_init_version=: ;;
-
- -with-* | --with-*)
- ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid package name: \`$ac_useropt'"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"with_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval with_$ac_useropt=\$ac_optarg ;;
-
- -without-* | --without-*)
- ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid package name: \`$ac_useropt'"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"with_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval with_$ac_useropt=no ;;
-
- --x)
- # Obsolete; use --with-x.
- with_x=yes ;;
-
- -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
- | --x-incl | --x-inc | --x-in | --x-i)
- ac_prev=x_includes ;;
- -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
- | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
- x_includes=$ac_optarg ;;
-
- -x-libraries | --x-libraries | --x-librarie | --x-librari \
- | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
- ac_prev=x_libraries ;;
- -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
- | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
- x_libraries=$ac_optarg ;;
-
- -*) as_fn_error $? "unrecognized option: \`$ac_option'
-Try \`$0 --help' for more information"
- ;;
-
- *=*)
- ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
- # Reject names that are not valid shell variable names.
- case $ac_envvar in #(
- '' | [0-9]* | *[!_$as_cr_alnum]* )
- as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
- esac
- eval $ac_envvar=\$ac_optarg
- export $ac_envvar ;;
-
- *)
- # FIXME: should be removed in autoconf 3.0.
- printf "%s\n" "$as_me: WARNING: you should use --build, --host, --target" >&2
- expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
- printf "%s\n" "$as_me: WARNING: invalid host type: $ac_option" >&2
- : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
- ;;
-
- esac
-done
-
-if test -n "$ac_prev"; then
- ac_option=--`echo $ac_prev | sed 's/_/-/g'`
- as_fn_error $? "missing argument to $ac_option"
-fi
-
-if test -n "$ac_unrecognized_opts"; then
- case $enable_option_checking in
- no) ;;
- fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
- *) printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
- esac
-fi
-
-# Check all directory arguments for consistency.
-for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
- datadir sysconfdir sharedstatedir localstatedir includedir \
- oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
- libdir localedir mandir runstatedir
-do
- eval ac_val=\$$ac_var
- # Remove trailing slashes.
- case $ac_val in
- */ )
- ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
- eval $ac_var=\$ac_val;;
- esac
- # Be sure to have absolute directory names.
- case $ac_val in
- [\\/$]* | ?:[\\/]* ) continue;;
- NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
- esac
- as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
-done
-
-# There might be people who depend on the old broken behavior: `$host'
-# used to hold the argument of --host etc.
-# FIXME: To remove some day.
-build=$build_alias
-host=$host_alias
-target=$target_alias
-
-# FIXME: To remove some day.
-if test "x$host_alias" != x; then
- if test "x$build_alias" = x; then
- cross_compiling=maybe
- elif test "x$build_alias" != "x$host_alias"; then
- cross_compiling=yes
- fi
-fi
-
-ac_tool_prefix=
-test -n "$host_alias" && ac_tool_prefix=$host_alias-
-
-test "$silent" = yes && exec 6>/dev/null
-
-
-ac_pwd=`pwd` && test -n "$ac_pwd" &&
-ac_ls_di=`ls -di .` &&
-ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
- as_fn_error $? "working directory cannot be determined"
-test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
- as_fn_error $? "pwd does not report name of working directory"
-
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
- ac_srcdir_defaulted=yes
- # Try the directory containing this script, then the parent directory.
- ac_confdir=`$as_dirname -- "$as_myself" ||
-$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_myself" : 'X\(//\)[^/]' \| \
- X"$as_myself" : 'X\(//\)$' \| \
- X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
-printf "%s\n" X"$as_myself" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- srcdir=$ac_confdir
- if test ! -r "$srcdir/$ac_unique_file"; then
- srcdir=..
- fi
-else
- ac_srcdir_defaulted=no
-fi
-if test ! -r "$srcdir/$ac_unique_file"; then
- test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
- as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
-fi
-ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
-ac_abs_confdir=`(
- cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
- pwd)`
-# When building in place, set srcdir=.
-if test "$ac_abs_confdir" = "$ac_pwd"; then
- srcdir=.
-fi
-# Remove unnecessary trailing slashes from srcdir.
-# Double slashes in file names in object file debugging info
-# mess up M-x gdb in Emacs.
-case $srcdir in
-*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
-esac
-for ac_var in $ac_precious_vars; do
- eval ac_env_${ac_var}_set=\${${ac_var}+set}
- eval ac_env_${ac_var}_value=\$${ac_var}
- eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
- eval ac_cv_env_${ac_var}_value=\$${ac_var}
-done
-
-#
-# Report the --help message.
-#
-if test "$ac_init_help" = "long"; then
- # Omit some internal or obsolete options to make the list less imposing.
- # This message is too long to be a string in the A/UX 3.1 sh.
- cat <<_ACEOF
-\`configure' configures unbound 1.24.2 to adapt to many kinds of systems.
-
-Usage: $0 [OPTION]... [VAR=VALUE]...
-
-To assign environment variables (e.g., CC, CFLAGS...), specify them as
-VAR=VALUE. See below for descriptions of some of the useful variables.
-
-Defaults for the options are specified in brackets.
-
-Configuration:
- -h, --help display this help and exit
- --help=short display options specific to this package
- --help=recursive display the short help of all the included packages
- -V, --version display version information and exit
- -q, --quiet, --silent do not print \`checking ...' messages
- --cache-file=FILE cache test results in FILE [disabled]
- -C, --config-cache alias for \`--cache-file=config.cache'
- -n, --no-create do not create output files
- --srcdir=DIR find the sources in DIR [configure dir or \`..']
-
-Installation directories:
- --prefix=PREFIX install architecture-independent files in PREFIX
- [$ac_default_prefix]
- --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
- [PREFIX]
-
-By default, \`make install' will install all the files in
-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
-an installation prefix other than \`$ac_default_prefix' using \`--prefix',
-for instance \`--prefix=\$HOME'.
-
-For better control, use the options below.
-
-Fine tuning of the installation directories:
- --bindir=DIR user executables [EPREFIX/bin]
- --sbindir=DIR system admin executables [EPREFIX/sbin]
- --libexecdir=DIR program executables [EPREFIX/libexec]
- --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
- --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
- --localstatedir=DIR modifiable single-machine data [PREFIX/var]
- --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
- --libdir=DIR object code libraries [EPREFIX/lib]
- --includedir=DIR C header files [PREFIX/include]
- --oldincludedir=DIR C header files for non-gcc [/usr/include]
- --datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
- --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
- --infodir=DIR info documentation [DATAROOTDIR/info]
- --localedir=DIR locale-dependent data [DATAROOTDIR/locale]
- --mandir=DIR man documentation [DATAROOTDIR/man]
- --docdir=DIR documentation root [DATAROOTDIR/doc/unbound]
- --htmldir=DIR html documentation [DOCDIR]
- --dvidir=DIR dvi documentation [DOCDIR]
- --pdfdir=DIR pdf documentation [DOCDIR]
- --psdir=DIR ps documentation [DOCDIR]
-_ACEOF
-
- cat <<\_ACEOF
-
-System types:
- --build=BUILD configure for building on BUILD [guessed]
- --host=HOST cross-compile to build programs to run on HOST [BUILD]
-_ACEOF
-fi
-
-if test -n "$ac_init_help"; then
- case $ac_init_help in
- short | recursive ) echo "Configuration of unbound 1.24.2:";;
- esac
- cat <<\_ACEOF
-
-Optional Features:
- --disable-option-checking ignore unrecognized --enable/--with options
- --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
- --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
- --enable-checking Enable warnings, asserts, makefile-dependencies
- --enable-debug same as enable-checking
- --disable-flto Disable link-time optimization (gcc specific option)
- --enable-pie Enable Position-Independent Executable (eg. to fully
- benefit from ASLR, small performance penalty)
- --enable-relro-now Enable full relocation binding at load-time (RELRO
- NOW, to protect GOT and .dtor areas)
- --enable-shared[=PKGS] build shared libraries [default=yes]
- --enable-static[=PKGS] build static libraries [default=yes]
- --enable-fast-install[=PKGS]
- optimize for fast installation [default=yes]
- --disable-libtool-lock avoid locking (might break parallel builds)
- --disable-rpath disable hardcoded rpath (default=enabled)
- --disable-largefile omit support for large files
- --enable-systemd compile with systemd support (requires libsystemd,
- pkg-config)
- --enable-alloc-checks enable to memory allocation statistics, for debug
- purposes
- --enable-alloc-lite enable for lightweight alloc assertions, for debug
- purposes
- --enable-alloc-nonregional
- enable nonregional allocs, slow but exposes regional
- allocations to other memory purifiers, for debug
- purposes
- --disable-swig-version-check
- Disable swig version check to build python modules
- with older swig even though that is unreliable
- --disable-sha1 Disable SHA1 RRSIG support, does not disable nsec3
- support
- --disable-sha2 Disable SHA256 and SHA512 RRSIG support
- --enable-subnet Enable client subnet
- --disable-gost Disable GOST support
- --disable-ecdsa Disable ECDSA support
- --disable-dsa Disable DSA support
- --disable-ed25519 Disable ED25519 support
- --disable-ed448 Disable ED448 support
- --enable-event-api Enable (experimental) pluggable event base
- libunbound API installed to unbound-event.h
- --enable-tfo-client Enable TCP Fast Open for client mode
- --enable-tfo-server Enable TCP Fast Open for server mode
- --enable-static-exe enable to compile executables statically against
- (event) uninstalled libs, for debug purposes
- --enable-fully-static enable to compile fully static
- --enable-lock-checks enable to check lock and unlock calls, for debug
- purposes
- --enable-allsymbols export all symbols from libunbound and link binaries
- to it, smaller install size but libunbound export
- table is polluted by internal symbols
- --enable-dnstap Enable dnstap support (requires protobuf-c)
- --enable-dnscrypt Enable dnscrypt support (requires libsodium)
- --enable-cachedb enable cachedb module that can use external cache
- storage
- --enable-ipsecmod Enable ipsecmod module that facilitates
- opportunistic IPsec
- --enable-ipset enable ipset module
- --disable-explicit-port-randomisation
- disable explicit source port randomisation and rely
- on the kernel to provide random source ports
- --enable-linux-ip-local-port-range
- Define this to enable use of
- /proc/sys/net/ipv4/ip_local_port_range as a default
- outgoing port range. This is only for the libunbound
- on Linux and does not affect unbound resolving
- daemon itself. This may severely limit the number of
- available outgoing ports and thus decrease
- randomness. Define this only when the target system
- restricts (e.g. some of SELinux enabled
- distributions) the use of non-ephemeral ports.
-
-Optional Packages:
- --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
- --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
- --with-conf-file=path Pathname to the Unbound configuration file
- --with-run-dir=path set default directory to chdir to (by default dir
- part of cfg file)
- --with-chroot-dir=path set default directory to chroot to (by default same
- as run-dir)
- --with-share-dir=path set default directory with shared data (by default
- same as share/unbound)
- --with-pidfile=filename set default pathname to unbound pidfile (default
- run-dir/unbound.pid)
- --with-rootkey-file=filename
- set default pathname to root key file (default
- run-dir/root.key). This file is read and written.
- --with-rootcert-file=filename
- set default pathname to root update certificate file
- (default run-dir/icannbundle.pem). This file need
- not exist if you are content with the builtin.
- --with-username=user set default user that unbound changes to (default
- user is unbound)
- --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use
- both]
- --with-aix-soname=aix|svr4|both
- shared library versioning (aka "SONAME") variant to
- provide on AIX, [default=aix].
- --with-gnu-ld assume the C compiler uses GNU ld [default=no]
- --with-sysroot[=DIR] Search for dependent libraries within DIR (or the
- compiler's sysroot if not specified).
- --with-pthreads use pthreads library, or --without-pthreads to
- disable threading support.
- --with-solaris-threads use solaris native thread library.
- --with-syslog-facility=LOCAL0 - LOCAL7
- set SYSLOG_FACILITY, default DAEMON
- --with-dynlibmodule build dynamic library module, or
- --without-dynlibmodule to disable it. (default=no)
- --with-pyunbound build PyUnbound, or --without-pyunbound to skip it.
- (default=no)
- --with-pythonmodule build Python module, or --without-pythonmodule to
- disable script engine. (default=no)
- --with-nss=path use libnss instead of openssl, installed at path.
- --with-nettle=path use libnettle as crypto library, installed at path.
- --with-ssl=pathname enable SSL (will check /usr/local/ssl /usr/lib/ssl
- /usr/ssl /usr/pkg /usr/local /opt/local /usr/sfw
- /usr or specify like /usr/include/openssl11)
- --with-libbsd Use portable libbsd functions
- --with-deprecate-rsa-1024
- Deprecate RSA 1024 bit length, makes that an
- unsupported key, for use when OpenSSL FIPS refuses
- 1024 bit verification
- --with-libevent=pathname
- use libevent (will check /usr/local /opt/local
- /usr/lib /usr/pkg /usr/sfw /usr or you can specify
- an explicit path). Slower, but allows use of large
- outgoing port ranges.
- --with-libexpat=path specify explicit path for libexpat.
- --with-libhiredis=path specify explicit path for libhiredis.
- --with-libnghttp2=path specify explicit path for libnghttp2.
- --with-libngtcp2=path specify explicit path for libngtcp2, for QUIC.
- --with-dnstap-socket-path=pathname
- set default dnstap socket path
- --with-protobuf-c=path Path where protobuf-c is installed, for dnstap
- --with-libsodium=path Path where libsodium is installed, for dnscrypt
- --with-libmnl=path specify explicit path for libmnl.
- --with-libunbound-only do not build daemon and tool programs
-
-Some influential environment variables:
- CC C compiler command
- CFLAGS C compiler flags
- LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
- nonstandard directory <lib dir>
- LIBS libraries to pass to the linker, e.g. -l<library>
- CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
- you have headers in a nonstandard directory <include dir>
- YACC The `Yet Another Compiler Compiler' implementation to use.
- Defaults to the first program found out of: `bison -y', `byacc',
- `yacc'.
- YFLAGS The list of arguments that will be passed by default to $YACC.
- This script will default YFLAGS to the empty string to avoid a
- default value of `-d' given by some make applications.
- LT_SYS_LIBRARY_PATH
- User-defined run-time library search path.
- PKG_CONFIG path to pkg-config utility
- PKG_CONFIG_PATH
- directories to add to pkg-config's search path
- PKG_CONFIG_LIBDIR
- path overriding pkg-config's built-in search path
- CPP C preprocessor
- SYSTEMD_CFLAGS
- C compiler flags for SYSTEMD, overriding pkg-config
- SYSTEMD_LIBS
- linker flags for SYSTEMD, overriding pkg-config
- SYSTEMD_DAEMON_CFLAGS
- C compiler flags for SYSTEMD_DAEMON, overriding pkg-config
- SYSTEMD_DAEMON_LIBS
- linker flags for SYSTEMD_DAEMON, overriding pkg-config
- PYTHON_VERSION
- The installed Python version to use, for example '2.3'. This
- string will be appended to the Python interpreter canonical
- name.
- SOURCE_DATE_EPOCH
- If it is set, it uses the value of that variable instead of the
- current time as the build timestamp. The format is a unix
- timestamp. This enables reproducible build output.
- PROTOBUFC_CFLAGS
- C compiler flags for PROTOBUFC, overriding pkg-config
- PROTOBUFC_LIBS
- linker flags for PROTOBUFC, overriding pkg-config
-
-Use these variables to override the choices made by `configure' or to help
-it to find libraries and programs with nonstandard names/locations.
-
-Report bugs to <unbound-bugs@nlnetlabs.nl or https://github.com/NLnetLabs/unbound/issues>.
-_ACEOF
-ac_status=$?
-fi
-
-if test "$ac_init_help" = "recursive"; then
- # If there are subdirs, report their specific --help.
- for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
- test -d "$ac_dir" ||
- { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
- continue
- ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
- ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'`
- # A ".." for each directory in $ac_dir_suffix.
- ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
- case $ac_top_builddir_sub in
- "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
- *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
- esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
-
-case $srcdir in
- .) # We are building in place.
- ac_srcdir=.
- ac_top_srcdir=$ac_top_builddir_sub
- ac_abs_top_srcdir=$ac_pwd ;;
- [\\/]* | ?:[\\/]* ) # Absolute name.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir
- ac_abs_top_srcdir=$srcdir ;;
- *) # Relative name.
- ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_build_prefix$srcdir
- ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
- cd "$ac_dir" || { ac_status=$?; continue; }
- # Check for configure.gnu first; this name is used for a wrapper for
- # Metaconfig's "Configure" on case-insensitive file systems.
- if test -f "$ac_srcdir/configure.gnu"; then
- echo &&
- $SHELL "$ac_srcdir/configure.gnu" --help=recursive
- elif test -f "$ac_srcdir/configure"; then
- echo &&
- $SHELL "$ac_srcdir/configure" --help=recursive
- else
- printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2
- fi || ac_status=$?
- cd "$ac_pwd" || { ac_status=$?; break; }
- done
-fi
-
-test -n "$ac_init_help" && exit $ac_status
-if $ac_init_version; then
- cat <<\_ACEOF
-unbound configure 1.24.2
-generated by GNU Autoconf 2.71
-
-Copyright (C) 2021 Free Software Foundation, Inc.
-This configure script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it.
-_ACEOF
- exit
-fi
-
-## ------------------------ ##
-## Autoconf initialization. ##
-## ------------------------ ##
-
-# ac_fn_c_try_compile LINENO
-# --------------------------
-# Try to compile conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_compile ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- rm -f conftest.$ac_objext conftest.beam
- if { { ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
- (eval "$ac_compile") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- grep -v '^ *+' conftest.err >conftest.er1
- cat conftest.er1 >&5
- mv -f conftest.er1 conftest.err
- fi
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext
-then :
- ac_retval=0
-else $as_nop
- printf "%s\n" "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=1
-fi
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_compile
-
-# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
-# -------------------------------------------------------
-# Tests whether HEADER exists and can be compiled using the include files in
-# INCLUDES, setting the cache variable VAR accordingly.
-ac_fn_c_check_header_compile ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-printf %s "checking for $2... " >&6; }
-if eval test \${$3+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-#include <$2>
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- eval "$3=yes"
-else $as_nop
- eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-eval ac_res=\$$3
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_header_compile
-
-# ac_fn_c_try_link LINENO
-# -----------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_link ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- rm -f conftest.$ac_objext conftest.beam conftest$ac_exeext
- if { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- grep -v '^ *+' conftest.err >conftest.er1
- cat conftest.er1 >&5
- mv -f conftest.er1 conftest.err
- fi
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext && {
- test "$cross_compiling" = yes ||
- test -x conftest$ac_exeext
- }
-then :
- ac_retval=0
-else $as_nop
- printf "%s\n" "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=1
-fi
- # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
- # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
- # interfere with the next link command; also delete a directory that is
- # left behind by Apple's compiler. We do this before executing the actions.
- rm -rf conftest.dSYM conftest_ipa8_conftest.oo
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_link
-
-# ac_fn_c_check_func LINENO FUNC VAR
-# ----------------------------------
-# Tests whether FUNC exists, setting the cache variable VAR accordingly
-ac_fn_c_check_func ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-printf %s "checking for $2... " >&6; }
-if eval test \${$3+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define $2 innocuous_$2
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $2 (); below. */
-
-#include <limits.h>
-#undef $2
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $2 ();
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined __stub_$2 || defined __stub___$2
-choke me
-#endif
-
-int
-main (void)
-{
-return $2 ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
- eval "$3=yes"
-else $as_nop
- eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
-fi
-eval ac_res=\$$3
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_func
-
-# ac_fn_c_check_type LINENO TYPE VAR INCLUDES
-# -------------------------------------------
-# Tests whether TYPE exists after having included INCLUDES, setting cache
-# variable VAR accordingly.
-ac_fn_c_check_type ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-printf %s "checking for $2... " >&6; }
-if eval test \${$3+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- eval "$3=no"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-int
-main (void)
-{
-if (sizeof ($2))
- return 0;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-int
-main (void)
-{
-if (sizeof (($2)))
- return 0;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
-
-else $as_nop
- eval "$3=yes"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-eval ac_res=\$$3
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_type
-
-# ac_fn_c_try_cpp LINENO
-# ----------------------
-# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_cpp ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if { { ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- grep -v '^ *+' conftest.err >conftest.er1
- cat conftest.er1 >&5
- mv -f conftest.er1 conftest.err
- fi
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } > conftest.i && {
- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
- test ! -s conftest.err
- }
-then :
- ac_retval=0
-else $as_nop
- printf "%s\n" "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=1
-fi
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_cpp
-
-# ac_fn_c_try_run LINENO
-# ----------------------
-# Try to run conftest.$ac_ext, and return whether this succeeded. Assumes that
-# executables *can* be run.
-ac_fn_c_try_run ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
- { { case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }
-then :
- ac_retval=0
-else $as_nop
- printf "%s\n" "$as_me: program exited with status $ac_status" >&5
- printf "%s\n" "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=$ac_status
-fi
- rm -rf conftest.dSYM conftest_ipa8_conftest.oo
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_run
-
-# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES
-# --------------------------------------------
-# Tries to find the compile-time value of EXPR in a program that includes
-# INCLUDES, setting VAR accordingly. Returns whether the value could be
-# computed
-ac_fn_c_compute_int ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if test "$cross_compiling" = yes; then
- # Depending upon the size, compute the lo and hi bounds.
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-int
-main (void)
-{
-static int test_array [1 - 2 * !(($2) >= 0)];
-test_array [0] = 0;
-return test_array [0];
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- ac_lo=0 ac_mid=0
- while :; do
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-int
-main (void)
-{
-static int test_array [1 - 2 * !(($2) <= $ac_mid)];
-test_array [0] = 0;
-return test_array [0];
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- ac_hi=$ac_mid; break
-else $as_nop
- as_fn_arith $ac_mid + 1 && ac_lo=$as_val
- if test $ac_lo -le $ac_mid; then
- ac_lo= ac_hi=
- break
- fi
- as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
- done
-else $as_nop
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-int
-main (void)
-{
-static int test_array [1 - 2 * !(($2) < 0)];
-test_array [0] = 0;
-return test_array [0];
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- ac_hi=-1 ac_mid=-1
- while :; do
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-int
-main (void)
-{
-static int test_array [1 - 2 * !(($2) >= $ac_mid)];
-test_array [0] = 0;
-return test_array [0];
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- ac_lo=$ac_mid; break
-else $as_nop
- as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val
- if test $ac_mid -le $ac_hi; then
- ac_lo= ac_hi=
- break
- fi
- as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
- done
-else $as_nop
- ac_lo= ac_hi=
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-# Binary search between lo and hi bounds.
-while test "x$ac_lo" != "x$ac_hi"; do
- as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-int
-main (void)
-{
-static int test_array [1 - 2 * !(($2) <= $ac_mid)];
-test_array [0] = 0;
-return test_array [0];
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- ac_hi=$ac_mid
-else $as_nop
- as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-done
-case $ac_lo in #((
-?*) eval "$3=\$ac_lo"; ac_retval=0 ;;
-'') ac_retval=1 ;;
-esac
- else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-static long int longval (void) { return $2; }
-static unsigned long int ulongval (void) { return $2; }
-#include <stdio.h>
-#include <stdlib.h>
-int
-main (void)
-{
-
- FILE *f = fopen ("conftest.val", "w");
- if (! f)
- return 1;
- if (($2) < 0)
- {
- long int i = longval ();
- if (i != ($2))
- return 1;
- fprintf (f, "%ld", i);
- }
- else
- {
- unsigned long int i = ulongval ();
- if (i != ($2))
- return 1;
- fprintf (f, "%lu", i);
- }
- /* Do not output a trailing newline, as this causes \r\n confusion
- on some platforms. */
- return ferror (f) || fclose (f) != 0;
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"
-then :
- echo >>conftest.val; read $3 <conftest.val; ac_retval=0
-else $as_nop
- ac_retval=1
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-rm -f conftest.val
-
- fi
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_compute_int
-
-# ac_fn_check_decl LINENO SYMBOL VAR INCLUDES EXTRA-OPTIONS FLAG-VAR
-# ------------------------------------------------------------------
-# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR
-# accordingly. Pass EXTRA-OPTIONS to the compiler, using FLAG-VAR.
-ac_fn_check_decl ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- as_decl_name=`echo $2|sed 's/ *(.*//'`
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
-printf %s "checking whether $as_decl_name is declared... " >&6; }
-if eval test \${$3+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`
- eval ac_save_FLAGS=\$$6
- as_fn_append $6 " $5"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-int
-main (void)
-{
-#ifndef $as_decl_name
-#ifdef __cplusplus
- (void) $as_decl_use;
-#else
- (void) $as_decl_name;
-#endif
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- eval "$3=yes"
-else $as_nop
- eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
- eval $6=\$ac_save_FLAGS
-
-fi
-eval ac_res=\$$3
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_check_decl
-
-# ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES
-# ----------------------------------------------------
-# Tries to find if the field MEMBER exists in type AGGR, after including
-# INCLUDES, setting cache variable VAR accordingly.
-ac_fn_c_check_member ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5
-printf %s "checking for $2.$3... " >&6; }
-if eval test \${$4+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$5
-int
-main (void)
-{
-static $2 ac_aggr;
-if (ac_aggr.$3)
-return 0;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- eval "$4=yes"
-else $as_nop
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$5
-int
-main (void)
-{
-static $2 ac_aggr;
-if (sizeof ac_aggr.$3)
-return 0;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- eval "$4=yes"
-else $as_nop
- eval "$4=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-eval ac_res=\$$4
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_member
-ac_configure_args_raw=
-for ac_arg
-do
- case $ac_arg in
- *\'*)
- ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
- esac
- as_fn_append ac_configure_args_raw " '$ac_arg'"
-done
-
-case $ac_configure_args_raw in
- *$as_nl*)
- ac_safe_unquote= ;;
- *)
- ac_unsafe_z='|&;<>()$`\\"*?[ '' ' # This string ends in space, tab.
- ac_unsafe_a="$ac_unsafe_z#~"
- ac_safe_unquote="s/ '\\([^$ac_unsafe_a][^$ac_unsafe_z]*\\)'/ \\1/g"
- ac_configure_args_raw=` printf "%s\n" "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;;
-esac
-
-cat >config.log <<_ACEOF
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-It was created by unbound $as_me 1.24.2, which was
-generated by GNU Autoconf 2.71. Invocation command line was
-
- $ $0$ac_configure_args_raw
-
-_ACEOF
-exec 5>>config.log
-{
-cat <<_ASUNAME
-## --------- ##
-## Platform. ##
-## --------- ##
-
-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
-
-/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
-/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
-/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
-/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
-/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
-
-_ASUNAME
-
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- printf "%s\n" "PATH: $as_dir"
- done
-IFS=$as_save_IFS
-
-} >&5
-
-cat >&5 <<_ACEOF
-
-
-## ----------- ##
-## Core tests. ##
-## ----------- ##
-
-_ACEOF
-
-
-# Keep a trace of the command line.
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Strip out --silent because we don't want to record it for future runs.
-# Also quote any args containing shell meta-characters.
-# Make two passes to allow for proper duplicate-argument suppression.
-ac_configure_args=
-ac_configure_args0=
-ac_configure_args1=
-ac_must_keep_next=false
-for ac_pass in 1 2
-do
- for ac_arg
- do
- case $ac_arg in
- -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- continue ;;
- *\'*)
- ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
- esac
- case $ac_pass in
- 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
- 2)
- as_fn_append ac_configure_args1 " '$ac_arg'"
- if test $ac_must_keep_next = true; then
- ac_must_keep_next=false # Got value, back to normal.
- else
- case $ac_arg in
- *=* | --config-cache | -C | -disable-* | --disable-* \
- | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
- | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
- | -with-* | --with-* | -without-* | --without-* | --x)
- case "$ac_configure_args0 " in
- "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
- esac
- ;;
- -* ) ac_must_keep_next=true ;;
- esac
- fi
- as_fn_append ac_configure_args " '$ac_arg'"
- ;;
- esac
- done
-done
-{ ac_configure_args0=; unset ac_configure_args0;}
-{ ac_configure_args1=; unset ac_configure_args1;}
-
-# When interrupted or exit'd, cleanup temporary files, and complete
-# config.log. We remove comments because anyway the quotes in there
-# would cause problems or look ugly.
-# WARNING: Use '\'' to represent an apostrophe within the trap.
-# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
-trap 'exit_status=$?
- # Sanitize IFS.
- IFS=" "" $as_nl"
- # Save into config.log some information that might help in debugging.
- {
- echo
-
- printf "%s\n" "## ---------------- ##
-## Cache variables. ##
-## ---------------- ##"
- echo
- # The following way of writing the cache mishandles newlines in values,
-(
- for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
- eval ac_val=\$$ac_var
- case $ac_val in #(
- *${as_nl}*)
- case $ac_var in #(
- *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
- esac
- case $ac_var in #(
- _ | IFS | as_nl) ;; #(
- BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
- *) { eval $ac_var=; unset $ac_var;} ;;
- esac ;;
- esac
- done
- (set) 2>&1 |
- case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
- *${as_nl}ac_space=\ *)
- sed -n \
- "s/'\''/'\''\\\\'\'''\''/g;
- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
- ;; #(
- *)
- sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
- ;;
- esac |
- sort
-)
- echo
-
- printf "%s\n" "## ----------------- ##
-## Output variables. ##
-## ----------------- ##"
- echo
- for ac_var in $ac_subst_vars
- do
- eval ac_val=\$$ac_var
- case $ac_val in
- *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
- esac
- printf "%s\n" "$ac_var='\''$ac_val'\''"
- done | sort
- echo
-
- if test -n "$ac_subst_files"; then
- printf "%s\n" "## ------------------- ##
-## File substitutions. ##
-## ------------------- ##"
- echo
- for ac_var in $ac_subst_files
- do
- eval ac_val=\$$ac_var
- case $ac_val in
- *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
- esac
- printf "%s\n" "$ac_var='\''$ac_val'\''"
- done | sort
- echo
- fi
-
- if test -s confdefs.h; then
- printf "%s\n" "## ----------- ##
-## confdefs.h. ##
-## ----------- ##"
- echo
- cat confdefs.h
- echo
- fi
- test "$ac_signal" != 0 &&
- printf "%s\n" "$as_me: caught signal $ac_signal"
- printf "%s\n" "$as_me: exit $exit_status"
- } >&5
- rm -f core *.core core.conftest.* &&
- rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
- exit $exit_status
-' 0
-for ac_signal in 1 2 13 15; do
- trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
-done
-ac_signal=0
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -f -r conftest* confdefs.h
-
-printf "%s\n" "/* confdefs.h */" > confdefs.h
-
-# Predefined preprocessor variables.
-
-printf "%s\n" "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h
-
-printf "%s\n" "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h
-
-printf "%s\n" "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h
-
-printf "%s\n" "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h
-
-printf "%s\n" "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h
-
-printf "%s\n" "#define PACKAGE_URL \"$PACKAGE_URL\"" >>confdefs.h
-
-
-# Let the site file select an alternate cache file if it wants to.
-# Prefer an explicitly selected file to automatically selected ones.
-if test -n "$CONFIG_SITE"; then
- ac_site_files="$CONFIG_SITE"
-elif test "x$prefix" != xNONE; then
- ac_site_files="$prefix/share/config.site $prefix/etc/config.site"
-else
- ac_site_files="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
-fi
-
-for ac_site_file in $ac_site_files
-do
- case $ac_site_file in #(
- */*) :
- ;; #(
- *) :
- ac_site_file=./$ac_site_file ;;
-esac
- if test -f "$ac_site_file" && test -r "$ac_site_file"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
-printf "%s\n" "$as_me: loading site script $ac_site_file" >&6;}
- sed 's/^/| /' "$ac_site_file" >&5
- . "$ac_site_file" \
- || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "failed to load site script $ac_site_file
-See \`config.log' for more details" "$LINENO" 5; }
- fi
-done
-
-if test -r "$cache_file"; then
- # Some versions of bash will fail to source /dev/null (special files
- # actually), so we avoid doing that. DJGPP emulates it as a regular file.
- if test /dev/null != "$cache_file" && test -f "$cache_file"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
-printf "%s\n" "$as_me: loading cache $cache_file" >&6;}
- case $cache_file in
- [\\/]* | ?:[\\/]* ) . "$cache_file";;
- *) . "./$cache_file";;
- esac
- fi
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
-printf "%s\n" "$as_me: creating cache $cache_file" >&6;}
- >$cache_file
-fi
-
-as_fn_append ac_header_c_list " stdio.h stdio_h HAVE_STDIO_H"
-# Test code for whether the C compiler supports C89 (global declarations)
-ac_c_conftest_c89_globals='
-/* Does the compiler advertise C89 conformance?
- Do not test the value of __STDC__, because some compilers set it to 0
- while being otherwise adequately conformant. */
-#if !defined __STDC__
-# error "Compiler does not advertise C89 conformance"
-#endif
-
-#include <stddef.h>
-#include <stdarg.h>
-struct stat;
-/* Most of the following tests are stolen from RCS 5.7 src/conf.sh. */
-struct buf { int x; };
-struct buf * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
- char **p;
- int i;
-{
- return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
- char *s;
- va_list v;
- va_start (v,p);
- s = g (p, va_arg (v,int));
- va_end (v);
- return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
- function prototypes and stuff, but not \xHH hex character constants.
- These do not provoke an error unfortunately, instead are silently treated
- as an "x". The following induces an error, until -std is added to get
- proper ANSI mode. Curiously \x00 != x always comes out true, for an
- array size at least. It is necessary to write \x00 == 0 to get something
- that is true only with -std. */
-int osf4_cc_array ['\''\x00'\'' == 0 ? 1 : -1];
-
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
- inside strings and character constants. */
-#define FOO(x) '\''x'\''
-int xlc6_cc_array[FOO(a) == '\''x'\'' ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, int *(*)(struct buf *, struct stat *, int),
- int, int);'
-
-# Test code for whether the C compiler supports C89 (body of main).
-ac_c_conftest_c89_main='
-ok |= (argc == 0 || f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]);
-'
-
-# Test code for whether the C compiler supports C99 (global declarations)
-ac_c_conftest_c99_globals='
-// Does the compiler advertise C99 conformance?
-#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L
-# error "Compiler does not advertise C99 conformance"
-#endif
-
-#include <stdbool.h>
-extern int puts (const char *);
-extern int printf (const char *, ...);
-extern int dprintf (int, const char *, ...);
-extern void *malloc (size_t);
-
-// Check varargs macros. These examples are taken from C99 6.10.3.5.
-// dprintf is used instead of fprintf to avoid needing to declare
-// FILE and stderr.
-#define debug(...) dprintf (2, __VA_ARGS__)
-#define showlist(...) puts (#__VA_ARGS__)
-#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__))
-static void
-test_varargs_macros (void)
-{
- int x = 1234;
- int y = 5678;
- debug ("Flag");
- debug ("X = %d\n", x);
- showlist (The first, second, and third items.);
- report (x>y, "x is %d but y is %d", x, y);
-}
-
-// Check long long types.
-#define BIG64 18446744073709551615ull
-#define BIG32 4294967295ul
-#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0)
-#if !BIG_OK
- #error "your preprocessor is broken"
-#endif
-#if BIG_OK
-#else
- #error "your preprocessor is broken"
-#endif
-static long long int bignum = -9223372036854775807LL;
-static unsigned long long int ubignum = BIG64;
-
-struct incomplete_array
-{
- int datasize;
- double data[];
-};
-
-struct named_init {
- int number;
- const wchar_t *name;
- double average;
-};
-
-typedef const char *ccp;
-
-static inline int
-test_restrict (ccp restrict text)
-{
- // See if C++-style comments work.
- // Iterate through items via the restricted pointer.
- // Also check for declarations in for loops.
- for (unsigned int i = 0; *(text+i) != '\''\0'\''; ++i)
- continue;
- return 0;
-}
-
-// Check varargs and va_copy.
-static bool
-test_varargs (const char *format, ...)
-{
- va_list args;
- va_start (args, format);
- va_list args_copy;
- va_copy (args_copy, args);
-
- const char *str = "";
- int number = 0;
- float fnumber = 0;
-
- while (*format)
- {
- switch (*format++)
- {
- case '\''s'\'': // string
- str = va_arg (args_copy, const char *);
- break;
- case '\''d'\'': // int
- number = va_arg (args_copy, int);
- break;
- case '\''f'\'': // float
- fnumber = va_arg (args_copy, double);
- break;
- default:
- break;
- }
- }
- va_end (args_copy);
- va_end (args);
-
- return *str && number && fnumber;
-}
-'
-
-# Test code for whether the C compiler supports C99 (body of main).
-ac_c_conftest_c99_main='
- // Check bool.
- _Bool success = false;
- success |= (argc != 0);
-
- // Check restrict.
- if (test_restrict ("String literal") == 0)
- success = true;
- char *restrict newvar = "Another string";
-
- // Check varargs.
- success &= test_varargs ("s, d'\'' f .", "string", 65, 34.234);
- test_varargs_macros ();
-
- // Check flexible array members.
- struct incomplete_array *ia =
- malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10));
- ia->datasize = 10;
- for (int i = 0; i < ia->datasize; ++i)
- ia->data[i] = i * 1.234;
-
- // Check named initializers.
- struct named_init ni = {
- .number = 34,
- .name = L"Test wide string",
- .average = 543.34343,
- };
-
- ni.number = 58;
-
- int dynamic_array[ni.number];
- dynamic_array[0] = argv[0][0];
- dynamic_array[ni.number - 1] = 543;
-
- // work around unused variable warnings
- ok |= (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == '\''x'\''
- || dynamic_array[ni.number - 1] != 543);
-'
-
-# Test code for whether the C compiler supports C11 (global declarations)
-ac_c_conftest_c11_globals='
-// Does the compiler advertise C11 conformance?
-#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112L
-# error "Compiler does not advertise C11 conformance"
-#endif
-
-// Check _Alignas.
-char _Alignas (double) aligned_as_double;
-char _Alignas (0) no_special_alignment;
-extern char aligned_as_int;
-char _Alignas (0) _Alignas (int) aligned_as_int;
-
-// Check _Alignof.
-enum
-{
- int_alignment = _Alignof (int),
- int_array_alignment = _Alignof (int[100]),
- char_alignment = _Alignof (char)
-};
-_Static_assert (0 < -_Alignof (int), "_Alignof is signed");
-
-// Check _Noreturn.
-int _Noreturn does_not_return (void) { for (;;) continue; }
-
-// Check _Static_assert.
-struct test_static_assert
-{
- int x;
- _Static_assert (sizeof (int) <= sizeof (long int),
- "_Static_assert does not work in struct");
- long int y;
-};
-
-// Check UTF-8 literals.
-#define u8 syntax error!
-char const utf8_literal[] = u8"happens to be ASCII" "another string";
-
-// Check duplicate typedefs.
-typedef long *long_ptr;
-typedef long int *long_ptr;
-typedef long_ptr long_ptr;
-
-// Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1.
-struct anonymous
-{
- union {
- struct { int i; int j; };
- struct { int k; long int l; } w;
- };
- int m;
-} v1;
-'
-
-# Test code for whether the C compiler supports C11 (body of main).
-ac_c_conftest_c11_main='
- _Static_assert ((offsetof (struct anonymous, i)
- == offsetof (struct anonymous, w.k)),
- "Anonymous union alignment botch");
- v1.i = 2;
- v1.w.k = 5;
- ok |= v1.i != 5;
-'
-
-# Test code for whether the C compiler supports C11 (complete).
-ac_c_conftest_c11_program="${ac_c_conftest_c89_globals}
-${ac_c_conftest_c99_globals}
-${ac_c_conftest_c11_globals}
-
-int
-main (int argc, char **argv)
-{
- int ok = 0;
- ${ac_c_conftest_c89_main}
- ${ac_c_conftest_c99_main}
- ${ac_c_conftest_c11_main}
- return ok;
-}
-"
-
-# Test code for whether the C compiler supports C99 (complete).
-ac_c_conftest_c99_program="${ac_c_conftest_c89_globals}
-${ac_c_conftest_c99_globals}
-
-int
-main (int argc, char **argv)
-{
- int ok = 0;
- ${ac_c_conftest_c89_main}
- ${ac_c_conftest_c99_main}
- return ok;
-}
-"
-
-# Test code for whether the C compiler supports C89 (complete).
-ac_c_conftest_c89_program="${ac_c_conftest_c89_globals}
-
-int
-main (int argc, char **argv)
-{
- int ok = 0;
- ${ac_c_conftest_c89_main}
- return ok;
-}
-"
-
-as_fn_append ac_header_c_list " stdlib.h stdlib_h HAVE_STDLIB_H"
-as_fn_append ac_header_c_list " string.h string_h HAVE_STRING_H"
-as_fn_append ac_header_c_list " inttypes.h inttypes_h HAVE_INTTYPES_H"
-as_fn_append ac_header_c_list " stdint.h stdint_h HAVE_STDINT_H"
-as_fn_append ac_header_c_list " strings.h strings_h HAVE_STRINGS_H"
-as_fn_append ac_header_c_list " sys/stat.h sys_stat_h HAVE_SYS_STAT_H"
-as_fn_append ac_header_c_list " sys/types.h sys_types_h HAVE_SYS_TYPES_H"
-as_fn_append ac_header_c_list " unistd.h unistd_h HAVE_UNISTD_H"
-as_fn_append ac_header_c_list " wchar.h wchar_h HAVE_WCHAR_H"
-as_fn_append ac_header_c_list " minix/config.h minix_config_h HAVE_MINIX_CONFIG_H"
-as_fn_append ac_header_c_list " vfork.h vfork_h HAVE_VFORK_H"
-as_fn_append ac_func_c_list " fork HAVE_FORK"
-as_fn_append ac_func_c_list " vfork HAVE_VFORK"
-
-# Auxiliary files required by this configure script.
-ac_aux_files="ltmain.sh config.guess config.sub"
-
-# Locations in which to look for auxiliary files.
-ac_aux_dir_candidates="${srcdir}${PATH_SEPARATOR}${srcdir}/..${PATH_SEPARATOR}${srcdir}/../.."
-
-# Search for a directory containing all of the required auxiliary files,
-# $ac_aux_files, from the $PATH-style list $ac_aux_dir_candidates.
-# If we don't find one directory that contains all the files we need,
-# we report the set of missing files from the *first* directory in
-# $ac_aux_dir_candidates and give up.
-ac_missing_aux_files=""
-ac_first_candidate=:
-printf "%s\n" "$as_me:${as_lineno-$LINENO}: looking for aux files: $ac_aux_files" >&5
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_found=false
-for as_dir in $ac_aux_dir_candidates
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- as_found=:
-
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: trying $as_dir" >&5
- ac_aux_dir_found=yes
- ac_install_sh=
- for ac_aux in $ac_aux_files
- do
- # As a special case, if "install-sh" is required, that requirement
- # can be satisfied by any of "install-sh", "install.sh", or "shtool",
- # and $ac_install_sh is set appropriately for whichever one is found.
- if test x"$ac_aux" = x"install-sh"
- then
- if test -f "${as_dir}install-sh"; then
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install-sh found" >&5
- ac_install_sh="${as_dir}install-sh -c"
- elif test -f "${as_dir}install.sh"; then
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install.sh found" >&5
- ac_install_sh="${as_dir}install.sh -c"
- elif test -f "${as_dir}shtool"; then
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}shtool found" >&5
- ac_install_sh="${as_dir}shtool install -c"
- else
- ac_aux_dir_found=no
- if $ac_first_candidate; then
- ac_missing_aux_files="${ac_missing_aux_files} install-sh"
- else
- break
- fi
- fi
- else
- if test -f "${as_dir}${ac_aux}"; then
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}${ac_aux} found" >&5
- else
- ac_aux_dir_found=no
- if $ac_first_candidate; then
- ac_missing_aux_files="${ac_missing_aux_files} ${ac_aux}"
- else
- break
- fi
- fi
- fi
- done
- if test "$ac_aux_dir_found" = yes; then
- ac_aux_dir="$as_dir"
- break
- fi
- ac_first_candidate=false
-
- as_found=false
-done
-IFS=$as_save_IFS
-if $as_found
-then :
-
-else $as_nop
- as_fn_error $? "cannot find required auxiliary files:$ac_missing_aux_files" "$LINENO" 5
-fi
-
-
-# These three variables are undocumented and unsupported,
-# and are intended to be withdrawn in a future Autoconf release.
-# They can cause serious problems if a builder's source tree is in a directory
-# whose full name contains unusual characters.
-if test -f "${ac_aux_dir}config.guess"; then
- ac_config_guess="$SHELL ${ac_aux_dir}config.guess"
-fi
-if test -f "${ac_aux_dir}config.sub"; then
- ac_config_sub="$SHELL ${ac_aux_dir}config.sub"
-fi
-if test -f "$ac_aux_dir/configure"; then
- ac_configure="$SHELL ${ac_aux_dir}configure"
-fi
-
-# Check that the precious variables saved in the cache have kept the same
-# value.
-ac_cache_corrupted=false
-for ac_var in $ac_precious_vars; do
- eval ac_old_set=\$ac_cv_env_${ac_var}_set
- eval ac_new_set=\$ac_env_${ac_var}_set
- eval ac_old_val=\$ac_cv_env_${ac_var}_value
- eval ac_new_val=\$ac_env_${ac_var}_value
- case $ac_old_set,$ac_new_set in
- set,)
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-printf "%s\n" "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,set)
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
-printf "%s\n" "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,);;
- *)
- if test "x$ac_old_val" != "x$ac_new_val"; then
- # differences in whitespace do not lead to failure.
- ac_old_val_w=`echo x $ac_old_val`
- ac_new_val_w=`echo x $ac_new_val`
- if test "$ac_old_val_w" != "$ac_new_val_w"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
-printf "%s\n" "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
- ac_cache_corrupted=:
- else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
-printf "%s\n" "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
- eval $ac_var=\$ac_old_val
- fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
-printf "%s\n" "$as_me: former value: \`$ac_old_val'" >&2;}
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
-printf "%s\n" "$as_me: current value: \`$ac_new_val'" >&2;}
- fi;;
- esac
- # Pass precious variables to config.status.
- if test "$ac_new_set" = set; then
- case $ac_new_val in
- *\'*) ac_arg=$ac_var=`printf "%s\n" "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
- *) ac_arg=$ac_var=$ac_new_val ;;
- esac
- case " $ac_configure_args " in
- *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
- *) as_fn_append ac_configure_args " '$ac_arg'" ;;
- esac
- fi
-done
-if $ac_cache_corrupted; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
-printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;}
- as_fn_error $? "run \`${MAKE-make} distclean' and/or \`rm $cache_file'
- and start over" "$LINENO" 5
-fi
-## -------------------- ##
-## Main body of script. ##
-## -------------------- ##
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-UNBOUND_VERSION_MAJOR=1
-
-UNBOUND_VERSION_MINOR=24
-
-UNBOUND_VERSION_MICRO=2
-
-
-LIBUNBOUND_CURRENT=9
-LIBUNBOUND_REVISION=34
-LIBUNBOUND_AGE=1
-# 1.0.0 had 0:12:0
-# 1.0.1 had 0:13:0
-# 1.0.2 had 0:14:0
-# 1.1.0 had 0:15:0
-# 1.1.1 had 0:16:0
-# 1.2.0 had 0:17:0
-# 1.2.1 had 0:18:0
-# 1.3.0 had 1:0:0 # ub_cancel and -export-symbols.
-# 1.3.1 had 1:1:0
-# 1.3.2 had 1:2:0
-# 1.3.3 had 1:3:0
-# 1.3.4 had 1:4:0
-# 1.4.0-snapshots had 1:5:0
-# 1.4.0 had 1:5:0 (not 2:0:0) # ub_result.why_bogus
-# 1.4.1 had 2:1:0
-# 1.4.2 had 2:2:0
-# 1.4.3 had 2:3:0
-# 1.4.4 had 2:4:0
-# 1.4.5 had 2:5:0
-# 1.4.6 had 2:6:0
-# 1.4.7 had 2:7:0
-# 1.4.8 had 2:8:0
-# 1.4.9 had 2:9:0
-# 1.4.10 had 2:10:0
-# 1.4.11 had 2:11:0
-# 1.4.12 had 2:12:0
-# 1.4.13 had 2:13:0
-# and 1.4.13p1 and 1.4.13.p2
-# 1.4.14 had 2:14:0
-# 1.4.15 had 3:0:1 # adds ub_version()
-# 1.4.16 had 3:1:1
-# 1.4.17 had 3:2:1
-# 1.4.18 had 3:3:1
-# 1.4.19 had 3:4:1
-# 1.4.20 had 4:0:2 # adds libunbound.ttl # but shipped 3:5:1
-# 1.4.21 had 4:1:2
-# 1.4.22 had 4:1:2
-# 1.5.0 had 5:3:3 # adds ub_ctx_add_ta_autr
-# 1.5.1 had 5:3:3
-# 1.5.2 had 5:5:3
-# 1.5.3 had 5:6:3
-# 1.5.4 had 5:7:3
-# 1.5.5 had 5:8:3
-# 1.5.6 had 5:9:3
-# 1.5.7 had 5:10:3
-# 1.5.8 had 6:0:4 # adds ub_ctx_set_stub
-# 1.5.9 had 6:1:4
-# 1.5.10 had 6:2:4
-# 1.6.0 had 6:3:4
-# 1.6.1 had 7:0:5 # ub_callback_t typedef renamed to ub_callback_type
-# 1.6.2 had 7:1:5
-# 1.6.3 had 7:2:5
-# 1.6.4 had 7:3:5
-# 1.6.5 had 7:4:5
-# 1.6.6 had 7:5:5
-# 1.6.7 had 7:6:5
-# 1.6.8 had 7:7:5
-# 1.7.0 had 7:8:5
-# 1.7.1 had 7:9:5
-# 1.7.2 had 7:10:5
-# 1.7.3 had 7:11:5
-# 1.8.0 had 8:0:0 # changes the event callback function signature
-# 1.8.1 had 8:1:0
-# 1.8.2 had 8:2:0
-# 1.8.3 had 8:3:0
-# 1.9.0 had 9:0:1 # add ub_ctx_set_tls
-# 1.9.1 had 9:1:1
-# 1.9.2 had 9:2:1
-# 1.9.3 had 9:3:1
-# 1.9.4 had 9:4:1
-# 1.9.5 had 9:5:1
-# 1.9.6 had 9:6:1
-# 1.10.0 had 9:7:1
-# 1.10.1 had 9:8:1
-# 1.11.0 had 9:9:1
-# 1.12.0 had 9:10:1
-# 1.13.0 had 9:11:1
-# 1.13.1 had 9:12:1
-# 1.13.2 had 9:13:1
-# 1.14.0 had 9:14:1
-# 1.15.0 had 9:15:1
-# 1.16.0 had 9:16:1
-# 1.16.1 had 9:17:1
-# 1.16.2 had 9:18:1
-# 1.16.3 had 9:19:1
-# 1.17.0 had 9:20:1
-# 1.17.1 had 9:21:1
-# 1.18.0 had 9:22:1
-# 1.19.0 had 9:23:1
-# 1.19.1 had 9:24:1
-# 1.19.2 had 9:25:1
-# 1.19.3 had 9:26:1
-# 1.20.0 had 9:27:1
-# 1.21.0 had 9:28:1
-# 1.21.1 had 9:29:1
-# 1.22.0 had 9:30:1
-# 1.23.0 had 9:31:1
-# 1.23.1 had 9:32:1
-# 1.24.0 had 9:33:1
-# 1.24.1 had 9:34:1
-# 1.24.2 had 9:35:1
-
-# Current -- the number of the binary API that we're implementing
-# Revision -- which iteration of the implementation of the binary
-# API are we supplying?
-# Age -- How many previous binary API versions do we also
-# support?
-#
-# If we release a new version that does not change the binary API,
-# increment Revision.
-#
-# If we release a new version that changes the binary API, but does
-# not break programs compiled against the old binary API, increment
-# Current and Age. Set Revision to 0, since this is the first
-# implementation of the new API.
-#
-# Otherwise, we're changing the binary API and breaking backward
-# compatibility with old binaries. Increment Current. Set Age to 0,
-# since we're backward compatible with no previous APIs. Set Revision
-# to 0 too.
-
-
-
-
-
-cmdln="`echo $@ | sed -e 's/\\\\/\\\\\\\\/g' | sed -e 's/"/\\\\"/'g`"
-
-printf "%s\n" "#define CONFCMDLINE \"$cmdln\"" >>confdefs.h
-
-
-CFLAGS="$CFLAGS"
-
-
-
-
-
-
-
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_CC+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}gcc"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-printf "%s\n" "$CC" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_CC"; then
- ac_ct_CC=$CC
- # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_ac_ct_CC+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="gcc"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-printf "%s\n" "$ac_ct_CC" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
- if test "x$ac_ct_CC" = x; then
- CC=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- CC=$ac_ct_CC
- fi
-else
- CC="$ac_cv_prog_CC"
-fi
-
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_CC+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}cc"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-printf "%s\n" "$CC" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
- fi
-fi
-if test -z "$CC"; then
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_CC+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- if test "$as_dir$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
- ac_prog_rejected=yes
- continue
- fi
- ac_cv_prog_CC="cc"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-if test $ac_prog_rejected = yes; then
- # We found a bogon in the path, so make sure we never use it.
- set dummy $ac_cv_prog_CC
- shift
- if test $# != 0; then
- # We chose a different compiler from the bogus one.
- # However, it has the same basename, so the bogon will be chosen
- # first if we set CC to just the basename; use the full file name.
- shift
- ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@"
- fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-printf "%s\n" "$CC" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
-fi
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- for ac_prog in cl.exe
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_CC+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-printf "%s\n" "$CC" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
- test -n "$CC" && break
- done
-fi
-if test -z "$CC"; then
- ac_ct_CC=$CC
- for ac_prog in cl.exe
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_ac_ct_CC+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="$ac_prog"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-printf "%s\n" "$ac_ct_CC" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
- test -n "$ac_ct_CC" && break
-done
-
- if test "x$ac_ct_CC" = x; then
- CC=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- CC=$ac_ct_CC
- fi
-fi
-
-fi
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args.
-set dummy ${ac_tool_prefix}clang; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_CC+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}clang"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-printf "%s\n" "$CC" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_CC"; then
- ac_ct_CC=$CC
- # Extract the first word of "clang", so it can be a program name with args.
-set dummy clang; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_ac_ct_CC+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="clang"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-printf "%s\n" "$ac_ct_CC" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
- if test "x$ac_ct_CC" = x; then
- CC=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- CC=$ac_ct_CC
- fi
-else
- CC="$ac_cv_prog_CC"
-fi
-
-fi
-
-
-test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "no acceptable C compiler found in \$PATH
-See \`config.log' for more details" "$LINENO" 5; }
-
-# Provide some information about the compiler.
-printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-for ac_option in --version -v -V -qversion -version; do
- { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
- (eval "$ac_compiler $ac_option >&5") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- sed '10a\
-... rest of stderr output deleted ...
- 10q' conftest.err >conftest.er1
- cat conftest.er1 >&5
- fi
- rm -f conftest.er1 conftest.err
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
-done
-
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main (void)
-{
-
- ;
- return 0;
-}
-_ACEOF
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
-# Try to create an executable without -o first, disregard a.out.
-# It will help us diagnose broken compilers, and finding out an intuition
-# of exeext.
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
-printf %s "checking whether the C compiler works... " >&6; }
-ac_link_default=`printf "%s\n" "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
-
-# The possible output files:
-ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
-
-ac_rmfiles=
-for ac_file in $ac_files
-do
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
- * ) ac_rmfiles="$ac_rmfiles $ac_file";;
- esac
-done
-rm -f $ac_rmfiles
-
-if { { ac_try="$ac_link_default"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
- (eval "$ac_link_default") 2>&5
- ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
-then :
- # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
-# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
-# in a Makefile. We should not override ac_cv_exeext if it was cached,
-# so that the user can short-circuit this test for compilers unknown to
-# Autoconf.
-for ac_file in $ac_files ''
-do
- test -f "$ac_file" || continue
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
- ;;
- [ab].out )
- # We found the default executable, but exeext='' is most
- # certainly right.
- break;;
- *.* )
- if test ${ac_cv_exeext+y} && test "$ac_cv_exeext" != no;
- then :; else
- ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
- fi
- # We set ac_cv_exeext here because the later test for it is not
- # safe: cross compilers may not add the suffix if given an `-o'
- # argument, so we may need to know it at that point already.
- # Even if this section looks crufty: it has the advantage of
- # actually working.
- break;;
- * )
- break;;
- esac
-done
-test "$ac_cv_exeext" = no && ac_cv_exeext=
-
-else $as_nop
- ac_file=''
-fi
-if test -z "$ac_file"
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-printf "%s\n" "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "C compiler cannot create executables
-See \`config.log' for more details" "$LINENO" 5; }
-else $as_nop
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
-printf %s "checking for C compiler default output file name... " >&6; }
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
-printf "%s\n" "$ac_file" >&6; }
-ac_exeext=$ac_cv_exeext
-
-rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
-ac_clean_files=$ac_clean_files_save
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
-printf %s "checking for suffix of executables... " >&6; }
-if { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
-then :
- # If both `conftest.exe' and `conftest' are `present' (well, observable)
-# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
-# work properly (i.e., refer to `conftest.exe'), while it won't with
-# `rm'.
-for ac_file in conftest.exe conftest conftest.*; do
- test -f "$ac_file" || continue
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
- *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
- break;;
- * ) break;;
- esac
-done
-else $as_nop
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-rm -f conftest conftest$ac_cv_exeext
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
-printf "%s\n" "$ac_cv_exeext" >&6; }
-
-rm -f conftest.$ac_ext
-EXEEXT=$ac_cv_exeext
-ac_exeext=$EXEEXT
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdio.h>
-int
-main (void)
-{
-FILE *f = fopen ("conftest.out", "w");
- return ferror (f) || fclose (f) != 0;
-
- ;
- return 0;
-}
-_ACEOF
-ac_clean_files="$ac_clean_files conftest.out"
-# Check that the compiler produces executables we can run. If not, either
-# the compiler is broken, or we cross compile.
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
-printf %s "checking whether we are cross compiling... " >&6; }
-if test "$cross_compiling" != yes; then
- { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
- if { ac_try='./conftest$ac_cv_exeext'
- { { case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }; then
- cross_compiling=no
- else
- if test "$cross_compiling" = maybe; then
- cross_compiling=yes
- else
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details" "$LINENO" 5; }
- fi
- fi
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
-printf "%s\n" "$cross_compiling" >&6; }
-
-rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
-ac_clean_files=$ac_clean_files_save
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
-printf %s "checking for suffix of object files... " >&6; }
-if test ${ac_cv_objext+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main (void)
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.o conftest.obj
-if { { ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
- (eval "$ac_compile") 2>&5
- ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
-then :
- for ac_file in conftest.o conftest.obj conftest.*; do
- test -f "$ac_file" || continue;
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
- *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
- break;;
- esac
-done
-else $as_nop
- printf "%s\n" "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot compute suffix of object files: cannot compile
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-rm -f conftest.$ac_cv_objext conftest.$ac_ext
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
-printf "%s\n" "$ac_cv_objext" >&6; }
-OBJEXT=$ac_cv_objext
-ac_objext=$OBJEXT
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5
-printf %s "checking whether the compiler supports GNU C... " >&6; }
-if test ${ac_cv_c_compiler_gnu+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main (void)
-{
-#ifndef __GNUC__
- choke me
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- ac_compiler_gnu=yes
-else $as_nop
- ac_compiler_gnu=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
-printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; }
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-if test $ac_compiler_gnu = yes; then
- GCC=yes
-else
- GCC=
-fi
-ac_test_CFLAGS=${CFLAGS+y}
-ac_save_CFLAGS=$CFLAGS
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
-printf %s "checking whether $CC accepts -g... " >&6; }
-if test ${ac_cv_prog_cc_g+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_save_c_werror_flag=$ac_c_werror_flag
- ac_c_werror_flag=yes
- ac_cv_prog_cc_g=no
- CFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main (void)
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- ac_cv_prog_cc_g=yes
-else $as_nop
- CFLAGS=""
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main (void)
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
-
-else $as_nop
- ac_c_werror_flag=$ac_save_c_werror_flag
- CFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main (void)
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- ac_cv_prog_cc_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
- ac_c_werror_flag=$ac_save_c_werror_flag
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
-printf "%s\n" "$ac_cv_prog_cc_g" >&6; }
-if test $ac_test_CFLAGS; then
- CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-g"
- fi
-else
- if test "$GCC" = yes; then
- CFLAGS="-O2"
- else
- CFLAGS=
- fi
-fi
-ac_prog_cc_stdc=no
-if test x$ac_prog_cc_stdc = xno
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5
-printf %s "checking for $CC option to enable C11 features... " >&6; }
-if test ${ac_cv_prog_cc_c11+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_cv_prog_cc_c11=no
-ac_save_CC=$CC
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$ac_c_conftest_c11_program
-_ACEOF
-for ac_arg in '' -std=gnu11
-do
- CC="$ac_save_CC $ac_arg"
- if ac_fn_c_try_compile "$LINENO"
-then :
- ac_cv_prog_cc_c11=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam
- test "x$ac_cv_prog_cc_c11" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
-fi
-
-if test "x$ac_cv_prog_cc_c11" = xno
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-printf "%s\n" "unsupported" >&6; }
-else $as_nop
- if test "x$ac_cv_prog_cc_c11" = x
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-printf "%s\n" "none needed" >&6; }
-else $as_nop
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5
-printf "%s\n" "$ac_cv_prog_cc_c11" >&6; }
- CC="$CC $ac_cv_prog_cc_c11"
-fi
- ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11
- ac_prog_cc_stdc=c11
-fi
-fi
-if test x$ac_prog_cc_stdc = xno
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5
-printf %s "checking for $CC option to enable C99 features... " >&6; }
-if test ${ac_cv_prog_cc_c99+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_cv_prog_cc_c99=no
-ac_save_CC=$CC
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$ac_c_conftest_c99_program
-_ACEOF
-for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99=
-do
- CC="$ac_save_CC $ac_arg"
- if ac_fn_c_try_compile "$LINENO"
-then :
- ac_cv_prog_cc_c99=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam
- test "x$ac_cv_prog_cc_c99" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
-fi
-
-if test "x$ac_cv_prog_cc_c99" = xno
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-printf "%s\n" "unsupported" >&6; }
-else $as_nop
- if test "x$ac_cv_prog_cc_c99" = x
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-printf "%s\n" "none needed" >&6; }
-else $as_nop
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5
-printf "%s\n" "$ac_cv_prog_cc_c99" >&6; }
- CC="$CC $ac_cv_prog_cc_c99"
-fi
- ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99
- ac_prog_cc_stdc=c99
-fi
-fi
-if test x$ac_prog_cc_stdc = xno
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5
-printf %s "checking for $CC option to enable C89 features... " >&6; }
-if test ${ac_cv_prog_cc_c89+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_cv_prog_cc_c89=no
-ac_save_CC=$CC
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$ac_c_conftest_c89_program
-_ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
- CC="$ac_save_CC $ac_arg"
- if ac_fn_c_try_compile "$LINENO"
-then :
- ac_cv_prog_cc_c89=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam
- test "x$ac_cv_prog_cc_c89" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
-fi
-
-if test "x$ac_cv_prog_cc_c89" = xno
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-printf "%s\n" "unsupported" >&6; }
-else $as_nop
- if test "x$ac_cv_prog_cc_c89" = x
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-printf "%s\n" "none needed" >&6; }
-else $as_nop
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
-printf "%s\n" "$ac_cv_prog_cc_c89" >&6; }
- CC="$CC $ac_cv_prog_cc_c89"
-fi
- ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89
- ac_prog_cc_stdc=c89
-fi
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-ac_header= ac_cache=
-for ac_item in $ac_header_c_list
-do
- if test $ac_cache; then
- ac_fn_c_check_header_compile "$LINENO" $ac_header ac_cv_header_$ac_cache "$ac_includes_default"
- if eval test \"x\$ac_cv_header_$ac_cache\" = xyes; then
- printf "%s\n" "#define $ac_item 1" >> confdefs.h
- fi
- ac_header= ac_cache=
- elif test $ac_header; then
- ac_cache=$ac_item
- else
- ac_header=$ac_item
- fi
-done
-
-
-
-
-
-
-
-
-if test $ac_cv_header_stdlib_h = yes && test $ac_cv_header_string_h = yes
-then :
-
-printf "%s\n" "#define STDC_HEADERS 1" >>confdefs.h
-
-fi
-
-
-
-
-
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5
-printf %s "checking whether it is safe to define __EXTENSIONS__... " >&6; }
-if test ${ac_cv_safe_to_define___extensions__+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-# define __EXTENSIONS__ 1
- $ac_includes_default
-int
-main (void)
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- ac_cv_safe_to_define___extensions__=yes
-else $as_nop
- ac_cv_safe_to_define___extensions__=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5
-printf "%s\n" "$ac_cv_safe_to_define___extensions__" >&6; }
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether _XOPEN_SOURCE should be defined" >&5
-printf %s "checking whether _XOPEN_SOURCE should be defined... " >&6; }
-if test ${ac_cv_should_define__xopen_source+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_cv_should_define__xopen_source=no
- if test $ac_cv_header_wchar_h = yes
-then :
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
- #include <wchar.h>
- mbstate_t x;
-int
-main (void)
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
-
-else $as_nop
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
- #define _XOPEN_SOURCE 500
- #include <wchar.h>
- mbstate_t x;
-int
-main (void)
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- ac_cv_should_define__xopen_source=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_should_define__xopen_source" >&5
-printf "%s\n" "$ac_cv_should_define__xopen_source" >&6; }
-
- printf "%s\n" "#define _ALL_SOURCE 1" >>confdefs.h
-
- printf "%s\n" "#define _DARWIN_C_SOURCE 1" >>confdefs.h
-
- printf "%s\n" "#define _GNU_SOURCE 1" >>confdefs.h
-
- printf "%s\n" "#define _HPUX_ALT_XOPEN_SOCKET_API 1" >>confdefs.h
-
- printf "%s\n" "#define _NETBSD_SOURCE 1" >>confdefs.h
-
- printf "%s\n" "#define _OPENBSD_SOURCE 1" >>confdefs.h
-
- printf "%s\n" "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h
-
- printf "%s\n" "#define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1" >>confdefs.h
-
- printf "%s\n" "#define __STDC_WANT_IEC_60559_BFP_EXT__ 1" >>confdefs.h
-
- printf "%s\n" "#define __STDC_WANT_IEC_60559_DFP_EXT__ 1" >>confdefs.h
-
- printf "%s\n" "#define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1" >>confdefs.h
-
- printf "%s\n" "#define __STDC_WANT_IEC_60559_TYPES_EXT__ 1" >>confdefs.h
-
- printf "%s\n" "#define __STDC_WANT_LIB_EXT2__ 1" >>confdefs.h
-
- printf "%s\n" "#define __STDC_WANT_MATH_SPEC_FUNCS__ 1" >>confdefs.h
-
- printf "%s\n" "#define _TANDEM_SOURCE 1" >>confdefs.h
-
- if test $ac_cv_header_minix_config_h = yes
-then :
- MINIX=yes
- printf "%s\n" "#define _MINIX 1" >>confdefs.h
-
- printf "%s\n" "#define _POSIX_SOURCE 1" >>confdefs.h
-
- printf "%s\n" "#define _POSIX_1_SOURCE 2" >>confdefs.h
-
-else $as_nop
- MINIX=
-fi
- if test $ac_cv_safe_to_define___extensions__ = yes
-then :
- printf "%s\n" "#define __EXTENSIONS__ 1" >>confdefs.h
-
-fi
- if test $ac_cv_should_define__xopen_source = yes
-then :
- printf "%s\n" "#define _XOPEN_SOURCE 500" >>confdefs.h
-
-fi
-
-if test "$ac_cv_header_minix_config_h" = "yes"; then
-
-printf "%s\n" "#define _NETBSD_SOURCE 1" >>confdefs.h
-
-fi
-
-case "$prefix" in
- NONE)
- prefix="/usr/local"
- ;;
-esac
-case "$exec_prefix" in
- NONE)
- exec_prefix="$prefix"
- ;;
-esac
-
-# are we on MinGW?
-if uname -s 2>&1 | grep MINGW >/dev/null; then on_mingw="yes"
-else
- if echo $host | grep mingw >/dev/null; then on_mingw="yes"
- else on_mingw="no"; fi
-fi
-
-#
-# Determine configuration file
-# the eval is to evaluate shell expansion twice
-UNBOUND_SBIN_DIR=`eval echo "${sbindir}"`
-
-UNBOUND_SYSCONF_DIR=`eval echo "${sysconfdir}"`
-
-UNBOUND_LOCALSTATE_DIR=`eval echo "${localstatedir}"`
-
-if test $on_mingw = "no"; then
- ub_conf_file=`eval echo "${sysconfdir}/unbound/unbound.conf"`
-else
- ub_conf_file="C:\\Program Files\\Unbound\\service.conf"
-fi
-
-# Check whether --with-conf_file was given.
-if test ${with_conf_file+y}
-then :
- withval=$with_conf_file; ub_conf_file="$withval"
-fi
-
-
-hdr_config="`echo $ub_conf_file | sed -e 's/\\\\/\\\\\\\\/g'`"
-
-
-printf "%s\n" "#define CONFIGFILE \"$hdr_config\"" >>confdefs.h
-
-ub_conf_dir=`$as_dirname -- "$ub_conf_file" ||
-$as_expr X"$ub_conf_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$ub_conf_file" : 'X\(//\)[^/]' \| \
- X"$ub_conf_file" : 'X\(//\)$' \| \
- X"$ub_conf_file" : 'X\(/\)' \| . 2>/dev/null ||
-printf "%s\n" X"$ub_conf_file" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
-
-
-# Determine run, chroot directory and pidfile locations
-
-# Check whether --with-run-dir was given.
-if test ${with_run_dir+y}
-then :
- withval=$with_run_dir; UNBOUND_RUN_DIR="$withval"
-else $as_nop
- if test $on_mingw = no; then
- UNBOUND_RUN_DIR=`dirname "$ub_conf_file"`
-else
- UNBOUND_RUN_DIR=""
-fi
-
-fi
-
-
-hdr_run="`echo $UNBOUND_RUN_DIR | sed -e 's/\\\\/\\\\\\\\/g'`"
-
-
-printf "%s\n" "#define RUN_DIR \"$hdr_run\"" >>confdefs.h
-
-
-
-# Check whether --with-chroot-dir was given.
-if test ${with_chroot_dir+y}
-then :
- withval=$with_chroot_dir; UNBOUND_CHROOT_DIR="$withval"
-else $as_nop
- if test $on_mingw = no; then
- UNBOUND_CHROOT_DIR="$UNBOUND_RUN_DIR"
-else
- UNBOUND_CHROOT_DIR=""
-fi
-
-fi
-
-
-hdr_chroot="`echo $UNBOUND_CHROOT_DIR | sed -e 's/\\\\/\\\\\\\\/g'`"
-
-
-printf "%s\n" "#define CHROOT_DIR \"$hdr_chroot\"" >>confdefs.h
-
-
-
-# Check whether --with-share-dir was given.
-if test ${with_share_dir+y}
-then :
- withval=$with_share_dir; UNBOUND_SHARE_DIR="$withval"
-else $as_nop
- UNBOUND_SHARE_DIR="$UNBOUND_RUN_DIR"
-fi
-
-
-
-printf "%s\n" "#define SHARE_DIR \"$UNBOUND_SHARE_DIR\"" >>confdefs.h
-
-
-
-# Check whether --with-pidfile was given.
-if test ${with_pidfile+y}
-then :
- withval=$with_pidfile; UNBOUND_PIDFILE="$withval"
-else $as_nop
- if test $on_mingw = no; then
- UNBOUND_PIDFILE="$UNBOUND_RUN_DIR/unbound.pid"
-else
- UNBOUND_PIDFILE=""
-fi
-
-fi
-
-
-hdr_pid="`echo $UNBOUND_PIDFILE | sed -e 's/\\\\/\\\\\\\\/g'`"
-
-
-printf "%s\n" "#define PIDFILE \"$hdr_pid\"" >>confdefs.h
-
-
-
-# Check whether --with-rootkey-file was given.
-if test ${with_rootkey_file+y}
-then :
- withval=$with_rootkey_file; UNBOUND_ROOTKEY_FILE="$withval"
-else $as_nop
- if test $on_mingw = no; then
- UNBOUND_ROOTKEY_FILE="$UNBOUND_RUN_DIR/root.key"
-else
- UNBOUND_ROOTKEY_FILE="C:\\Program Files\\Unbound\\root.key"
-fi
-
-fi
-
-
-hdr_rkey="`echo $UNBOUND_ROOTKEY_FILE | sed -e 's/\\\\/\\\\\\\\/g'`"
-
-
-printf "%s\n" "#define ROOT_ANCHOR_FILE \"$hdr_rkey\"" >>confdefs.h
-
-
-
-# Check whether --with-rootcert-file was given.
-if test ${with_rootcert_file+y}
-then :
- withval=$with_rootcert_file; UNBOUND_ROOTCERT_FILE="$withval"
-else $as_nop
- if test $on_mingw = no; then
- UNBOUND_ROOTCERT_FILE="$UNBOUND_RUN_DIR/icannbundle.pem"
-else
- UNBOUND_ROOTCERT_FILE="C:\\Program Files\\Unbound\\icannbundle.pem"
-fi
-
-fi
-
-
-hdr_rpem="`echo $UNBOUND_ROOTCERT_FILE | sed -e 's/\\\\/\\\\\\\\/g'`"
-
-
-printf "%s\n" "#define ROOT_CERT_FILE \"$hdr_rpem\"" >>confdefs.h
-
-
-
-# Check whether --with-username was given.
-if test ${with_username+y}
-then :
- withval=$with_username; UNBOUND_USERNAME="$withval"
-else $as_nop
- UNBOUND_USERNAME="unbound"
-fi
-
-
-
-printf "%s\n" "#define UB_USERNAME \"$UNBOUND_USERNAME\"" >>confdefs.h
-
-
-
-printf "%s\n" "#define WINVER 0x0502" >>confdefs.h
-
-wnvs=`echo $PACKAGE_VERSION | sed -e 's/^[^0-9]*\([0-9][0-9]*\)[^0-9][^0-9]*\([0-9][0-9]*\)[^0-9][^0-9]*\([0-9][0-9]*\)[^0-9][^0-9]*\([0-9][0-9]*\).*$/\1,\2,\3,\4/' -e 's/^[^0-9]*\([0-9][0-9]*\)[^0-9][^0-9]*\([0-9][0-9]*\)[^0-9][^0-9]*\([0-9][0-9]*\)[^0-9]*$/\1,\2,\3,0/' `
-
-
-printf "%s\n" "#define RSRC_PACKAGE_VERSION $wnvs" >>confdefs.h
-
-
-# Check for 'grep -e' program, here, since ACX_CHECK_FLTO needs that.
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
-printf %s "checking for grep that handles long lines and -e... " >&6; }
-if test ${ac_cv_path_GREP+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -z "$GREP"; then
- ac_path_GREP_found=false
- # Loop through the user's path and test for each of PROGNAME-LIST
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_prog in grep ggrep
- do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_GREP="$as_dir$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_GREP" || continue
-# Check for GNU ac_path_GREP and select it if it is found.
- # Check for GNU $ac_path_GREP
-case `"$ac_path_GREP" --version 2>&1` in
-*GNU*)
- ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
-*)
- ac_count=0
- printf %s 0123456789 >"conftest.in"
- while :
- do
- cat "conftest.in" "conftest.in" >"conftest.tmp"
- mv "conftest.tmp" "conftest.in"
- cp "conftest.in" "conftest.nl"
- printf "%s\n" 'GREP' >> "conftest.nl"
- "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- as_fn_arith $ac_count + 1 && ac_count=$as_val
- if test $ac_count -gt ${ac_path_GREP_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_GREP="$ac_path_GREP"
- ac_path_GREP_max=$ac_count
- fi
- # 10*(2^10) chars as input seems more than enough
- test $ac_count -gt 10 && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
- $ac_path_GREP_found && break 3
- done
- done
- done
-IFS=$as_save_IFS
- if test -z "$ac_cv_path_GREP"; then
- as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
- fi
-else
- ac_cv_path_GREP=$GREP
-fi
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
-printf "%s\n" "$ac_cv_path_GREP" >&6; }
- GREP="$ac_cv_path_GREP"
-
-
-
-# Checks for typedefs, structures, and compiler characteristics.
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5
-printf %s "checking for an ANSI C-conforming const... " >&6; }
-if test ${ac_cv_c_const+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main (void)
-{
-
-#ifndef __cplusplus
- /* Ultrix mips cc rejects this sort of thing. */
- typedef int charset[2];
- const charset cs = { 0, 0 };
- /* SunOS 4.1.1 cc rejects this. */
- char const *const *pcpcc;
- char **ppc;
- /* NEC SVR4.0.2 mips cc rejects this. */
- struct point {int x, y;};
- static struct point const zero = {0,0};
- /* IBM XL C 1.02.0.0 rejects this.
- It does not let you subtract one const X* pointer from another in
- an arm of an if-expression whose if-part is not a constant
- expression */
- const char *g = "string";
- pcpcc = &g + (g ? g-g : 0);
- /* HPUX 7.0 cc rejects these. */
- ++pcpcc;
- ppc = (char**) pcpcc;
- pcpcc = (char const *const *) ppc;
- { /* SCO 3.2v4 cc rejects this sort of thing. */
- char tx;
- char *t = &tx;
- char const *s = 0 ? (char *) 0 : (char const *) 0;
-
- *t++ = 0;
- if (s) return 0;
- }
- { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */
- int x[] = {25, 17};
- const int *foo = &x[0];
- ++foo;
- }
- { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
- typedef const int *iptr;
- iptr p = 0;
- ++p;
- }
- { /* IBM XL C 1.02.0.0 rejects this sort of thing, saying
- "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
- struct s { int j; const int *ap[3]; } bx;
- struct s *b = &bx; b->j = 5;
- }
- { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
- const int foo = 10;
- if (!foo) return 0;
- }
- return !cs[0] && !zero.x;
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- ac_cv_c_const=yes
-else $as_nop
- ac_cv_c_const=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5
-printf "%s\n" "$ac_cv_c_const" >&6; }
-if test $ac_cv_c_const = no; then
-
-printf "%s\n" "#define const /**/" >>confdefs.h
-
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-# allow user to override the -g -O2 flags.
-default_cflags=no
-if test "x$CFLAGS" = "x" ; then
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -g" >&5
-printf %s "checking whether $CC supports -g... " >&6; }
-cache=`echo g | sed 'y%.=/+-%___p_%'`
-if eval test \${cv_prog_cc_flag_$cache+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
-
-echo 'void f(void){}' >conftest.c
-if test -z "`$CC $CPPFLAGS $CFLAGS -g -c conftest.c 2>&1`"; then
-eval "cv_prog_cc_flag_$cache=yes"
-else
-eval "cv_prog_cc_flag_$cache=no"
-fi
-rm -f conftest conftest.o conftest.c
-
-fi
-
-if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-:
-CFLAGS="$CFLAGS -g"
-else
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-:
-
-fi
-
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -O2" >&5
-printf %s "checking whether $CC supports -O2... " >&6; }
-cache=`echo O2 | sed 'y%.=/+-%___p_%'`
-if eval test \${cv_prog_cc_flag_$cache+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
-
-echo 'void f(void){}' >conftest.c
-if test -z "`$CC $CPPFLAGS $CFLAGS -O2 -c conftest.c 2>&1`"; then
-eval "cv_prog_cc_flag_$cache=yes"
-else
-eval "cv_prog_cc_flag_$cache=no"
-fi
-rm -f conftest conftest.o conftest.c
-
-fi
-
-if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-:
-CFLAGS="$CFLAGS -O2"
-else
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-:
-
-fi
-
-default_cflags=yes
-fi
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_CC+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}gcc"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-printf "%s\n" "$CC" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_CC"; then
- ac_ct_CC=$CC
- # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_ac_ct_CC+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="gcc"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-printf "%s\n" "$ac_ct_CC" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
- if test "x$ac_ct_CC" = x; then
- CC=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- CC=$ac_ct_CC
- fi
-else
- CC="$ac_cv_prog_CC"
-fi
-
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_CC+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}cc"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-printf "%s\n" "$CC" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
- fi
-fi
-if test -z "$CC"; then
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_CC+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- if test "$as_dir$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
- ac_prog_rejected=yes
- continue
- fi
- ac_cv_prog_CC="cc"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-if test $ac_prog_rejected = yes; then
- # We found a bogon in the path, so make sure we never use it.
- set dummy $ac_cv_prog_CC
- shift
- if test $# != 0; then
- # We chose a different compiler from the bogus one.
- # However, it has the same basename, so the bogon will be chosen
- # first if we set CC to just the basename; use the full file name.
- shift
- ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@"
- fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-printf "%s\n" "$CC" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
-fi
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- for ac_prog in cl.exe
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_CC+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-printf "%s\n" "$CC" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
- test -n "$CC" && break
- done
-fi
-if test -z "$CC"; then
- ac_ct_CC=$CC
- for ac_prog in cl.exe
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_ac_ct_CC+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="$ac_prog"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-printf "%s\n" "$ac_ct_CC" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
- test -n "$ac_ct_CC" && break
-done
-
- if test "x$ac_ct_CC" = x; then
- CC=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- CC=$ac_ct_CC
- fi
-fi
-
-fi
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args.
-set dummy ${ac_tool_prefix}clang; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_CC+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}clang"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-printf "%s\n" "$CC" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_CC"; then
- ac_ct_CC=$CC
- # Extract the first word of "clang", so it can be a program name with args.
-set dummy clang; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_ac_ct_CC+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="clang"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-printf "%s\n" "$ac_ct_CC" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
- if test "x$ac_ct_CC" = x; then
- CC=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- CC=$ac_ct_CC
- fi
-else
- CC="$ac_cv_prog_CC"
-fi
-
-fi
-
-
-test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "no acceptable C compiler found in \$PATH
-See \`config.log' for more details" "$LINENO" 5; }
-
-# Provide some information about the compiler.
-printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-for ac_option in --version -v -V -qversion -version; do
- { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
- (eval "$ac_compiler $ac_option >&5") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- sed '10a\
-... rest of stderr output deleted ...
- 10q' conftest.err >conftest.er1
- cat conftest.er1 >&5
- fi
- rm -f conftest.er1 conftest.err
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
-done
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5
-printf %s "checking whether the compiler supports GNU C... " >&6; }
-if test ${ac_cv_c_compiler_gnu+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main (void)
-{
-#ifndef __GNUC__
- choke me
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- ac_compiler_gnu=yes
-else $as_nop
- ac_compiler_gnu=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
-printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; }
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-if test $ac_compiler_gnu = yes; then
- GCC=yes
-else
- GCC=
-fi
-ac_test_CFLAGS=${CFLAGS+y}
-ac_save_CFLAGS=$CFLAGS
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
-printf %s "checking whether $CC accepts -g... " >&6; }
-if test ${ac_cv_prog_cc_g+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_save_c_werror_flag=$ac_c_werror_flag
- ac_c_werror_flag=yes
- ac_cv_prog_cc_g=no
- CFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main (void)
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- ac_cv_prog_cc_g=yes
-else $as_nop
- CFLAGS=""
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main (void)
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
-
-else $as_nop
- ac_c_werror_flag=$ac_save_c_werror_flag
- CFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main (void)
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- ac_cv_prog_cc_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
- ac_c_werror_flag=$ac_save_c_werror_flag
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
-printf "%s\n" "$ac_cv_prog_cc_g" >&6; }
-if test $ac_test_CFLAGS; then
- CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-g"
- fi
-else
- if test "$GCC" = yes; then
- CFLAGS="-O2"
- else
- CFLAGS=
- fi
-fi
-ac_prog_cc_stdc=no
-if test x$ac_prog_cc_stdc = xno
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5
-printf %s "checking for $CC option to enable C11 features... " >&6; }
-if test ${ac_cv_prog_cc_c11+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_cv_prog_cc_c11=no
-ac_save_CC=$CC
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$ac_c_conftest_c11_program
-_ACEOF
-for ac_arg in '' -std=gnu11
-do
- CC="$ac_save_CC $ac_arg"
- if ac_fn_c_try_compile "$LINENO"
-then :
- ac_cv_prog_cc_c11=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam
- test "x$ac_cv_prog_cc_c11" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
-fi
-
-if test "x$ac_cv_prog_cc_c11" = xno
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-printf "%s\n" "unsupported" >&6; }
-else $as_nop
- if test "x$ac_cv_prog_cc_c11" = x
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-printf "%s\n" "none needed" >&6; }
-else $as_nop
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5
-printf "%s\n" "$ac_cv_prog_cc_c11" >&6; }
- CC="$CC $ac_cv_prog_cc_c11"
-fi
- ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11
- ac_prog_cc_stdc=c11
-fi
-fi
-if test x$ac_prog_cc_stdc = xno
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5
-printf %s "checking for $CC option to enable C99 features... " >&6; }
-if test ${ac_cv_prog_cc_c99+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_cv_prog_cc_c99=no
-ac_save_CC=$CC
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$ac_c_conftest_c99_program
-_ACEOF
-for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99=
-do
- CC="$ac_save_CC $ac_arg"
- if ac_fn_c_try_compile "$LINENO"
-then :
- ac_cv_prog_cc_c99=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam
- test "x$ac_cv_prog_cc_c99" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
-fi
-
-if test "x$ac_cv_prog_cc_c99" = xno
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-printf "%s\n" "unsupported" >&6; }
-else $as_nop
- if test "x$ac_cv_prog_cc_c99" = x
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-printf "%s\n" "none needed" >&6; }
-else $as_nop
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5
-printf "%s\n" "$ac_cv_prog_cc_c99" >&6; }
- CC="$CC $ac_cv_prog_cc_c99"
-fi
- ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99
- ac_prog_cc_stdc=c99
-fi
-fi
-if test x$ac_prog_cc_stdc = xno
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5
-printf %s "checking for $CC option to enable C89 features... " >&6; }
-if test ${ac_cv_prog_cc_c89+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_cv_prog_cc_c89=no
-ac_save_CC=$CC
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$ac_c_conftest_c89_program
-_ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
- CC="$ac_save_CC $ac_arg"
- if ac_fn_c_try_compile "$LINENO"
-then :
- ac_cv_prog_cc_c89=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam
- test "x$ac_cv_prog_cc_c89" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
-fi
-
-if test "x$ac_cv_prog_cc_c89" = xno
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-printf "%s\n" "unsupported" >&6; }
-else $as_nop
- if test "x$ac_cv_prog_cc_c89" = x
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-printf "%s\n" "none needed" >&6; }
-else $as_nop
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
-printf "%s\n" "$ac_cv_prog_cc_c89" >&6; }
- CC="$CC $ac_cv_prog_cc_c89"
-fi
- ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89
- ac_prog_cc_stdc=c89
-fi
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking $CC dependency flag" >&5
-printf %s "checking $CC dependency flag... " >&6; }
-echo 'void f(void){}' >conftest.c
-if test "`$CC -MM conftest.c 2>&1`" = "conftest.o: conftest.c"; then
- DEPFLAG="-MM"
-else
- if test "`$CC -xM1 conftest.c 2>&1`" = "conftest.o: conftest.c"; then
- DEPFLAG="-xM1"
- else
- DEPFLAG="-MM" # dunno do something
- fi
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DEPFLAG" >&5
-printf "%s\n" "$DEPFLAG" >&6; }
-rm -f conftest.c
-
-
-
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Werror" >&5
-printf %s "checking whether $CC supports -Werror... " >&6; }
-cache=`echo Werror | sed 'y%.=/+-%___p_%'`
-if eval test \${cv_prog_cc_flag_$cache+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
-
-echo 'void f(void){}' >conftest.c
-if test -z "`$CC $CPPFLAGS $CFLAGS -Werror -c conftest.c 2>&1`"; then
-eval "cv_prog_cc_flag_$cache=yes"
-else
-eval "cv_prog_cc_flag_$cache=no"
-fi
-rm -f conftest conftest.o conftest.c
-
-fi
-
-if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-:
-ERRFLAG="-Werror"
-else
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-:
-ERRFLAG="-errwarn"
-fi
-
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wall" >&5
-printf %s "checking whether $CC supports -Wall... " >&6; }
-cache=`echo Wall | sed 'y%.=/+-%___p_%'`
-if eval test \${cv_prog_cc_flag_$cache+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
-
-echo 'void f(void){}' >conftest.c
-if test -z "`$CC $CPPFLAGS $CFLAGS -Wall -c conftest.c 2>&1`"; then
-eval "cv_prog_cc_flag_$cache=yes"
-else
-eval "cv_prog_cc_flag_$cache=no"
-fi
-rm -f conftest conftest.o conftest.c
-
-fi
-
-if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-:
-ERRFLAG="$ERRFLAG -Wall"
-else
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-:
-ERRFLAG="$ERRFLAG -errfmt"
-fi
-
-
-
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -std=c99" >&5
-printf %s "checking whether $CC supports -std=c99... " >&6; }
-cache=`echo std=c99 | sed 'y%.=/+-%___p_%'`
-if eval test \${cv_prog_cc_flag_$cache+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
-
-echo 'void f(void){}' >conftest.c
-if test -z "`$CC $CPPFLAGS $CFLAGS -std=c99 -c conftest.c 2>&1`"; then
-eval "cv_prog_cc_flag_$cache=yes"
-else
-eval "cv_prog_cc_flag_$cache=no"
-fi
-rm -f conftest conftest.o conftest.c
-
-fi
-
-if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-:
-C99FLAG="-std=c99"
-else
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-:
-
-fi
-
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -xc99" >&5
-printf %s "checking whether $CC supports -xc99... " >&6; }
-cache=`echo xc99 | sed 'y%.=/+-%___p_%'`
-if eval test \${cv_prog_cc_flag_$cache+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
-
-echo 'void f(void){}' >conftest.c
-if test -z "`$CC $CPPFLAGS $CFLAGS -xc99 -c conftest.c 2>&1`"; then
-eval "cv_prog_cc_flag_$cache=yes"
-else
-eval "cv_prog_cc_flag_$cache=no"
-fi
-rm -f conftest conftest.o conftest.c
-
-fi
-
-if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-:
-C99FLAG="-xc99"
-else
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-:
-
-fi
-
-
-ac_fn_c_check_header_compile "$LINENO" "getopt.h" "ac_cv_header_getopt_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_getopt_h" = xyes
-then :
- printf "%s\n" "#define HAVE_GETOPT_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "time.h" "ac_cv_header_time_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_time_h" = xyes
-then :
- printf "%s\n" "#define HAVE_TIME_H 1" >>confdefs.h
-
-fi
-
-
-
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we need $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED=1 -D_ALL_SOURCE as a flag for $CC" >&5
-printf %s "checking whether we need $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED=1 -D_ALL_SOURCE as a flag for $CC... " >&6; }
-cache=`printf "%s\n" "$C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED=1 -D_ALL_SOURCE" | $as_tr_sh`
-if eval test \${cv_prog_cc_flag_needed_$cache+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
-
-echo '
-#include "confdefs.h"
-#include <stdlib.h>
-#include <ctype.h>
-#include <sys/time.h>
-#ifdef HAVE_TIME_H
-#include <time.h>
-#endif
-#include <unistd.h>
-#include <netdb.h>
-#ifdef HAVE_GETOPT_H
-#include <getopt.h>
-#endif
-
-int test(void) {
- int a;
- char **opts = NULL;
- struct timeval tv;
- char *t;
- time_t time = 0;
- char *buf = NULL;
- const char* str = NULL;
- struct msghdr msg;
- msg.msg_control = 0;
- t = ctime_r(&time, buf);
- tv.tv_usec = 10;
- srandom(32);
- a = getopt(2, opts, "a");
- a = isascii(32);
- str = gai_strerror(0);
- if(str && t && tv.tv_usec && msg.msg_control)
- a = 0;
- return a;
-}
-' > conftest.c
-echo 'void f(void){}' >>conftest.c
-if test -z "`$CC $CPPFLAGS $CFLAGS $ERRFLAG -c conftest.c 2>&1`"; then
-eval "cv_prog_cc_flag_needed_$cache=no"
-else
-
-if test -z "`$CC $CPPFLAGS $CFLAGS $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED=1 -D_ALL_SOURCE $ERRFLAG -c conftest.c 2>&1`"; then
-eval "cv_prog_cc_flag_needed_$cache=yes"
-else
-eval "cv_prog_cc_flag_needed_$cache=fail"
-#echo 'Test with flag fails too!'
-#cat conftest.c
-#echo "$CC $CPPFLAGS $CFLAGS $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED=1 -D_ALL_SOURCE $ERRFLAG -c conftest.c 2>&1"
-#echo `$CC $CPPFLAGS $CFLAGS $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED=1 -D_ALL_SOURCE $ERRFLAG -c conftest.c 2>&1`
-#exit 1
-fi
-
-fi
-rm -f conftest conftest.c conftest.o
-
-fi
-
-if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = yes"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-:
-CFLAGS="$CFLAGS $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED=1 -D_ALL_SOURCE"
-else
-if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = no"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-#echo 'Test with flag is no!'
-#cat conftest.c
-#echo "$CC $CPPFLAGS $CFLAGS $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED=1 -D_ALL_SOURCE $ERRFLAG -c conftest.c 2>&1"
-#echo `$CC $CPPFLAGS $CFLAGS $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED=1 -D_ALL_SOURCE $ERRFLAG -c conftest.c 2>&1`
-#exit 1
-:
-
-else
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: failed" >&5
-printf "%s\n" "failed" >&6; }
-:
-
-fi
-fi
-
-
-
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we need $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_ALL_SOURCE as a flag for $CC" >&5
-printf %s "checking whether we need $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_ALL_SOURCE as a flag for $CC... " >&6; }
-cache=`printf "%s\n" "$C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_ALL_SOURCE" | $as_tr_sh`
-if eval test \${cv_prog_cc_flag_needed_$cache+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
-
-echo '
-#include "confdefs.h"
-#include <stdlib.h>
-#include <ctype.h>
-#include <sys/time.h>
-#ifdef HAVE_TIME_H
-#include <time.h>
-#endif
-#include <unistd.h>
-#include <netdb.h>
-#ifdef HAVE_GETOPT_H
-#include <getopt.h>
-#endif
-
-int test(void) {
- int a;
- char **opts = NULL;
- struct timeval tv;
- char *t;
- time_t time = 0;
- char *buf = NULL;
- const char* str = NULL;
- struct msghdr msg;
- msg.msg_control = 0;
- t = ctime_r(&time, buf);
- tv.tv_usec = 10;
- srandom(32);
- a = getopt(2, opts, "a");
- a = isascii(32);
- str = gai_strerror(0);
- if(str && t && tv.tv_usec && msg.msg_control)
- a = 0;
- return a;
-}
-' > conftest.c
-echo 'void f(void){}' >>conftest.c
-if test -z "`$CC $CPPFLAGS $CFLAGS $ERRFLAG -c conftest.c 2>&1`"; then
-eval "cv_prog_cc_flag_needed_$cache=no"
-else
-
-if test -z "`$CC $CPPFLAGS $CFLAGS $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_ALL_SOURCE $ERRFLAG -c conftest.c 2>&1`"; then
-eval "cv_prog_cc_flag_needed_$cache=yes"
-else
-eval "cv_prog_cc_flag_needed_$cache=fail"
-#echo 'Test with flag fails too!'
-#cat conftest.c
-#echo "$CC $CPPFLAGS $CFLAGS $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_ALL_SOURCE $ERRFLAG -c conftest.c 2>&1"
-#echo `$CC $CPPFLAGS $CFLAGS $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_ALL_SOURCE $ERRFLAG -c conftest.c 2>&1`
-#exit 1
-fi
-
-fi
-rm -f conftest conftest.c conftest.o
-
-fi
-
-if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = yes"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-:
-CFLAGS="$CFLAGS $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_ALL_SOURCE"
-else
-if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = no"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-#echo 'Test with flag is no!'
-#cat conftest.c
-#echo "$CC $CPPFLAGS $CFLAGS $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_ALL_SOURCE $ERRFLAG -c conftest.c 2>&1"
-#echo `$CC $CPPFLAGS $CFLAGS $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_ALL_SOURCE $ERRFLAG -c conftest.c 2>&1`
-#exit 1
-:
-
-else
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: failed" >&5
-printf "%s\n" "failed" >&6; }
-:
-
-fi
-fi
-
-
-
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we need $C99FLAG as a flag for $CC" >&5
-printf %s "checking whether we need $C99FLAG as a flag for $CC... " >&6; }
-cache=`printf "%s\n" "$C99FLAG" | $as_tr_sh`
-if eval test \${cv_prog_cc_flag_needed_$cache+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
-
-echo '
-#include <stdbool.h>
-#include <ctype.h>
-int test(void) {
- int a = 0;
- return a;
-}
-' > conftest.c
-echo 'void f(void){}' >>conftest.c
-if test -z "`$CC $CPPFLAGS $CFLAGS $ERRFLAG -c conftest.c 2>&1`"; then
-eval "cv_prog_cc_flag_needed_$cache=no"
-else
-
-if test -z "`$CC $CPPFLAGS $CFLAGS $C99FLAG $ERRFLAG -c conftest.c 2>&1`"; then
-eval "cv_prog_cc_flag_needed_$cache=yes"
-else
-eval "cv_prog_cc_flag_needed_$cache=fail"
-#echo 'Test with flag fails too!'
-#cat conftest.c
-#echo "$CC $CPPFLAGS $CFLAGS $C99FLAG $ERRFLAG -c conftest.c 2>&1"
-#echo `$CC $CPPFLAGS $CFLAGS $C99FLAG $ERRFLAG -c conftest.c 2>&1`
-#exit 1
-fi
-
-fi
-rm -f conftest conftest.c conftest.o
-
-fi
-
-if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = yes"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-:
-CFLAGS="$CFLAGS $C99FLAG"
-else
-if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = no"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-#echo 'Test with flag is no!'
-#cat conftest.c
-#echo "$CC $CPPFLAGS $CFLAGS $C99FLAG $ERRFLAG -c conftest.c 2>&1"
-#echo `$CC $CPPFLAGS $CFLAGS $C99FLAG $ERRFLAG -c conftest.c 2>&1`
-#exit 1
-:
-
-else
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: failed" >&5
-printf "%s\n" "failed" >&6; }
-:
-
-fi
-fi
-
-
-
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we need -D_BSD_SOURCE -D_DEFAULT_SOURCE as a flag for $CC" >&5
-printf %s "checking whether we need -D_BSD_SOURCE -D_DEFAULT_SOURCE as a flag for $CC... " >&6; }
-cache=_D_BSD_SOURCE__D_DEFAULT_SOURCE
-if eval test \${cv_prog_cc_flag_needed_$cache+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
-
-echo '
-#include <ctype.h>
-
-int test(void) {
- int a;
- a = isascii(32);
- return a;
-}
-' > conftest.c
-echo 'void f(void){}' >>conftest.c
-if test -z "`$CC $CPPFLAGS $CFLAGS $ERRFLAG -c conftest.c 2>&1`"; then
-eval "cv_prog_cc_flag_needed_$cache=no"
-else
-
-if test -z "`$CC $CPPFLAGS $CFLAGS -D_BSD_SOURCE -D_DEFAULT_SOURCE $ERRFLAG -c conftest.c 2>&1`"; then
-eval "cv_prog_cc_flag_needed_$cache=yes"
-else
-eval "cv_prog_cc_flag_needed_$cache=fail"
-#echo 'Test with flag fails too!'
-#cat conftest.c
-#echo "$CC $CPPFLAGS $CFLAGS -D_BSD_SOURCE -D_DEFAULT_SOURCE $ERRFLAG -c conftest.c 2>&1"
-#echo `$CC $CPPFLAGS $CFLAGS -D_BSD_SOURCE -D_DEFAULT_SOURCE $ERRFLAG -c conftest.c 2>&1`
-#exit 1
-fi
-
-fi
-rm -f conftest conftest.c conftest.o
-
-fi
-
-if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = yes"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-:
-CFLAGS="$CFLAGS -D_BSD_SOURCE -D_DEFAULT_SOURCE"
-else
-if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = no"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-#echo 'Test with flag is no!'
-#cat conftest.c
-#echo "$CC $CPPFLAGS $CFLAGS -D_BSD_SOURCE -D_DEFAULT_SOURCE $ERRFLAG -c conftest.c 2>&1"
-#echo `$CC $CPPFLAGS $CFLAGS -D_BSD_SOURCE -D_DEFAULT_SOURCE $ERRFLAG -c conftest.c 2>&1`
-#exit 1
-:
-
-else
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: failed" >&5
-printf "%s\n" "failed" >&6; }
-:
-
-fi
-fi
-
-
-
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we need -D_GNU_SOURCE as a flag for $CC" >&5
-printf %s "checking whether we need -D_GNU_SOURCE as a flag for $CC... " >&6; }
-cache=_D_GNU_SOURCE
-if eval test \${cv_prog_cc_flag_needed_$cache+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
-
-echo '
-#include <netinet/in.h>
-
-int test(void) {
- struct in6_pktinfo inf;
- int a = (int)sizeof(inf);
- return a;
-}
-' > conftest.c
-echo 'void f(void){}' >>conftest.c
-if test -z "`$CC $CPPFLAGS $CFLAGS $ERRFLAG -c conftest.c 2>&1`"; then
-eval "cv_prog_cc_flag_needed_$cache=no"
-else
-
-if test -z "`$CC $CPPFLAGS $CFLAGS -D_GNU_SOURCE $ERRFLAG -c conftest.c 2>&1`"; then
-eval "cv_prog_cc_flag_needed_$cache=yes"
-else
-eval "cv_prog_cc_flag_needed_$cache=fail"
-#echo 'Test with flag fails too!'
-#cat conftest.c
-#echo "$CC $CPPFLAGS $CFLAGS -D_GNU_SOURCE $ERRFLAG -c conftest.c 2>&1"
-#echo `$CC $CPPFLAGS $CFLAGS -D_GNU_SOURCE $ERRFLAG -c conftest.c 2>&1`
-#exit 1
-fi
-
-fi
-rm -f conftest conftest.c conftest.o
-
-fi
-
-if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = yes"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-:
-CFLAGS="$CFLAGS -D_GNU_SOURCE"
-else
-if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = no"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-#echo 'Test with flag is no!'
-#cat conftest.c
-#echo "$CC $CPPFLAGS $CFLAGS -D_GNU_SOURCE $ERRFLAG -c conftest.c 2>&1"
-#echo `$CC $CPPFLAGS $CFLAGS -D_GNU_SOURCE $ERRFLAG -c conftest.c 2>&1`
-#exit 1
-:
-
-else
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: failed" >&5
-printf "%s\n" "failed" >&6; }
-:
-
-fi
-fi
-
-
-# check again for GNU_SOURCE for setresgid. May fail if setresgid
-# is not available at all. -D_FRSRESGID is to make this check unique.
-# otherwise we would get the previous cached result.
-
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we need -D_GNU_SOURCE -D_FRSRESGID as a flag for $CC" >&5
-printf %s "checking whether we need -D_GNU_SOURCE -D_FRSRESGID as a flag for $CC... " >&6; }
-cache=_D_GNU_SOURCE__D_FRSRESGID
-if eval test \${cv_prog_cc_flag_needed_$cache+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
-
-echo '
-#include <unistd.h>
-
-int test(void) {
- int a = setresgid(0,0,0);
- a = setresuid(0,0,0);
- return a;
-}
-' > conftest.c
-echo 'void f(void){}' >>conftest.c
-if test -z "`$CC $CPPFLAGS $CFLAGS $ERRFLAG -c conftest.c 2>&1`"; then
-eval "cv_prog_cc_flag_needed_$cache=no"
-else
-
-if test -z "`$CC $CPPFLAGS $CFLAGS -D_GNU_SOURCE -D_FRSRESGID $ERRFLAG -c conftest.c 2>&1`"; then
-eval "cv_prog_cc_flag_needed_$cache=yes"
-else
-eval "cv_prog_cc_flag_needed_$cache=fail"
-#echo 'Test with flag fails too!'
-#cat conftest.c
-#echo "$CC $CPPFLAGS $CFLAGS -D_GNU_SOURCE -D_FRSRESGID $ERRFLAG -c conftest.c 2>&1"
-#echo `$CC $CPPFLAGS $CFLAGS -D_GNU_SOURCE -D_FRSRESGID $ERRFLAG -c conftest.c 2>&1`
-#exit 1
-fi
-
-fi
-rm -f conftest conftest.c conftest.o
-
-fi
-
-if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = yes"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-:
-CFLAGS="$CFLAGS -D_GNU_SOURCE"
-else
-if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = no"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-#echo 'Test with flag is no!'
-#cat conftest.c
-#echo "$CC $CPPFLAGS $CFLAGS -D_GNU_SOURCE -D_FRSRESGID $ERRFLAG -c conftest.c 2>&1"
-#echo `$CC $CPPFLAGS $CFLAGS -D_GNU_SOURCE -D_FRSRESGID $ERRFLAG -c conftest.c 2>&1`
-#exit 1
-:
-
-else
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: failed" >&5
-printf "%s\n" "failed" >&6; }
-:
-
-fi
-fi
-
-
-
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we need -D_POSIX_C_SOURCE=200112 as a flag for $CC" >&5
-printf %s "checking whether we need -D_POSIX_C_SOURCE=200112 as a flag for $CC... " >&6; }
-cache=_D_POSIX_C_SOURCE_200112
-if eval test \${cv_prog_cc_flag_needed_$cache+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
-
-echo '
-#include "confdefs.h"
-#ifdef HAVE_TIME_H
-#include <time.h>
-#endif
-#include <netdb.h>
-
-int test(void) {
- int a = 0;
- char *t;
- time_t time = 0;
- char *buf = NULL;
- const char* str = NULL;
- t = ctime_r(&time, buf);
- str = gai_strerror(0);
- if(t && str)
- a = 0;
- return a;
-}
-' > conftest.c
-echo 'void f(void){}' >>conftest.c
-if test -z "`$CC $CPPFLAGS $CFLAGS $ERRFLAG -c conftest.c 2>&1`"; then
-eval "cv_prog_cc_flag_needed_$cache=no"
-else
-
-if test -z "`$CC $CPPFLAGS $CFLAGS -D_POSIX_C_SOURCE=200112 $ERRFLAG -c conftest.c 2>&1`"; then
-eval "cv_prog_cc_flag_needed_$cache=yes"
-else
-eval "cv_prog_cc_flag_needed_$cache=fail"
-#echo 'Test with flag fails too!'
-#cat conftest.c
-#echo "$CC $CPPFLAGS $CFLAGS -D_POSIX_C_SOURCE=200112 $ERRFLAG -c conftest.c 2>&1"
-#echo `$CC $CPPFLAGS $CFLAGS -D_POSIX_C_SOURCE=200112 $ERRFLAG -c conftest.c 2>&1`
-#exit 1
-fi
-
-fi
-rm -f conftest conftest.c conftest.o
-
-fi
-
-if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = yes"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-:
-CFLAGS="$CFLAGS -D_POSIX_C_SOURCE=200112"
-else
-if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = no"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-#echo 'Test with flag is no!'
-#cat conftest.c
-#echo "$CC $CPPFLAGS $CFLAGS -D_POSIX_C_SOURCE=200112 $ERRFLAG -c conftest.c 2>&1"
-#echo `$CC $CPPFLAGS $CFLAGS -D_POSIX_C_SOURCE=200112 $ERRFLAG -c conftest.c 2>&1`
-#exit 1
-:
-
-else
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: failed" >&5
-printf "%s\n" "failed" >&6; }
-:
-
-fi
-fi
-
-
-
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we need -D__EXTENSIONS__ as a flag for $CC" >&5
-printf %s "checking whether we need -D__EXTENSIONS__ as a flag for $CC... " >&6; }
-cache=_D__EXTENSIONS__
-if eval test \${cv_prog_cc_flag_needed_$cache+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
-
-echo '
-#include "confdefs.h"
-#include <stdlib.h>
-#include <ctype.h>
-#include <sys/time.h>
-#ifdef HAVE_TIME_H
-#include <time.h>
-#endif
-#include <unistd.h>
-#ifdef HAVE_GETOPT_H
-#include <getopt.h>
-#endif
-
-int test(void) {
- int a;
- char **opts = NULL;
- struct timeval tv;
- tv.tv_usec = 10;
- srandom(32);
- a = getopt(2, opts, "a");
- a = isascii(32);
- if(tv.tv_usec)
- a = 0;
- return a;
-}
-' > conftest.c
-echo 'void f(void){}' >>conftest.c
-if test -z "`$CC $CPPFLAGS $CFLAGS $ERRFLAG -c conftest.c 2>&1`"; then
-eval "cv_prog_cc_flag_needed_$cache=no"
-else
-
-if test -z "`$CC $CPPFLAGS $CFLAGS -D__EXTENSIONS__ $ERRFLAG -c conftest.c 2>&1`"; then
-eval "cv_prog_cc_flag_needed_$cache=yes"
-else
-eval "cv_prog_cc_flag_needed_$cache=fail"
-#echo 'Test with flag fails too!'
-#cat conftest.c
-#echo "$CC $CPPFLAGS $CFLAGS -D__EXTENSIONS__ $ERRFLAG -c conftest.c 2>&1"
-#echo `$CC $CPPFLAGS $CFLAGS -D__EXTENSIONS__ $ERRFLAG -c conftest.c 2>&1`
-#exit 1
-fi
-
-fi
-rm -f conftest conftest.c conftest.o
-
-fi
-
-if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = yes"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-:
-CFLAGS="$CFLAGS -D__EXTENSIONS__"
-else
-if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = no"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-#echo 'Test with flag is no!'
-#cat conftest.c
-#echo "$CC $CPPFLAGS $CFLAGS -D__EXTENSIONS__ $ERRFLAG -c conftest.c 2>&1"
-#echo `$CC $CPPFLAGS $CFLAGS -D__EXTENSIONS__ $ERRFLAG -c conftest.c 2>&1`
-#exit 1
-:
-
-else
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: failed" >&5
-printf "%s\n" "failed" >&6; }
-:
-
-fi
-fi
-
-
-
-
-# debug mode flags warnings
-# Check whether --enable-checking was given.
-if test ${enable_checking+y}
-then :
- enableval=$enable_checking;
-fi
-
-# Check whether --enable-debug was given.
-if test ${enable_debug+y}
-then :
- enableval=$enable_debug;
-fi
-
-if test "$enable_debug" = "yes"; then debug_enabled="$enable_debug";
-else debug_enabled="$enable_checking"; fi
-
-case "$debug_enabled" in
- yes)
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -W" >&5
-printf %s "checking whether $CC supports -W... " >&6; }
-cache=`echo W | sed 'y%.=/+-%___p_%'`
-if eval test \${cv_prog_cc_flag_$cache+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
-
-echo 'void f(void){}' >conftest.c
-if test -z "`$CC $CPPFLAGS $CFLAGS -W -c conftest.c 2>&1`"; then
-eval "cv_prog_cc_flag_$cache=yes"
-else
-eval "cv_prog_cc_flag_$cache=no"
-fi
-rm -f conftest conftest.o conftest.c
-
-fi
-
-if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-:
-CFLAGS="$CFLAGS -W"
-else
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-:
-
-fi
-
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wall" >&5
-printf %s "checking whether $CC supports -Wall... " >&6; }
-cache=`echo Wall | sed 'y%.=/+-%___p_%'`
-if eval test \${cv_prog_cc_flag_$cache+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
-
-echo 'void f(void){}' >conftest.c
-if test -z "`$CC $CPPFLAGS $CFLAGS -Wall -c conftest.c 2>&1`"; then
-eval "cv_prog_cc_flag_$cache=yes"
-else
-eval "cv_prog_cc_flag_$cache=no"
-fi
-rm -f conftest conftest.o conftest.c
-
-fi
-
-if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-:
-CFLAGS="$CFLAGS -Wall"
-else
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-:
-
-fi
-
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wextra" >&5
-printf %s "checking whether $CC supports -Wextra... " >&6; }
-cache=`echo Wextra | sed 'y%.=/+-%___p_%'`
-if eval test \${cv_prog_cc_flag_$cache+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
-
-echo 'void f(void){}' >conftest.c
-if test -z "`$CC $CPPFLAGS $CFLAGS -Wextra -c conftest.c 2>&1`"; then
-eval "cv_prog_cc_flag_$cache=yes"
-else
-eval "cv_prog_cc_flag_$cache=no"
-fi
-rm -f conftest conftest.o conftest.c
-
-fi
-
-if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-:
-CFLAGS="$CFLAGS -Wextra"
-else
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-:
-
-fi
-
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wdeclaration-after-statement" >&5
-printf %s "checking whether $CC supports -Wdeclaration-after-statement... " >&6; }
-cache=`echo Wdeclaration-after-statement | sed 'y%.=/+-%___p_%'`
-if eval test \${cv_prog_cc_flag_$cache+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
-
-echo 'void f(void){}' >conftest.c
-if test -z "`$CC $CPPFLAGS $CFLAGS -Wdeclaration-after-statement -c conftest.c 2>&1`"; then
-eval "cv_prog_cc_flag_$cache=yes"
-else
-eval "cv_prog_cc_flag_$cache=no"
-fi
-rm -f conftest conftest.o conftest.c
-
-fi
-
-if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-:
-CFLAGS="$CFLAGS -Wdeclaration-after-statement"
-else
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-:
-
-fi
-
-
-printf "%s\n" "#define UNBOUND_DEBUG /**/" >>confdefs.h
-
- ;;
- no|*)
- # nothing to do.
- ;;
-esac
-if test "$default_cflags" = "yes"; then
- # only when CFLAGS was "" at the start, if the users wants to
- # override we shouldn't add default cflags, because they wouldn't
- # be able to turn off these options and set the CFLAGS wanted.
-
- # Check whether --enable-flto was given.
-if test ${enable_flto+y}
-then :
- enableval=$enable_flto;
-fi
-
- if test "x$enable_flto" != "xno"
-then :
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC supports -flto" >&5
-printf %s "checking if $CC supports -flto... " >&6; }
- BAKCFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -flto"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main (void)
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
-
- if $CC $CFLAGS -o conftest conftest.c 2>&1 | $GREP -e "warning: no debug symbols in executable" -e "warning: object" >/dev/null; then
- CFLAGS="$BAKCFLAGS"
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
- fi
- rm -f conftest conftest.c conftest.o
-
-else $as_nop
- CFLAGS="$BAKCFLAGS" ; { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
-
-fi
-
-
- # Check whether --enable-pie was given.
-if test ${enable_pie+y}
-then :
- enableval=$enable_pie;
-fi
-
- if test "x$enable_pie" = "xyes"
-then :
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC supports PIE" >&5
-printf %s "checking if $CC supports PIE... " >&6; }
- BAKLDFLAGS="$LDFLAGS"
- BAKCFLAGS="$CFLAGS"
- LDFLAGS="$LDFLAGS -pie"
- CFLAGS="$CFLAGS -fPIE"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main (void)
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
-
- if $CC $CFLAGS $LDFLAGS -o conftest conftest.c 2>&1 | grep "warning: no debug symbols in executable" >/dev/null; then
- LDFLAGS="$BAKLDFLAGS"
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
- fi
- rm -f conftest conftest.c conftest.o
-
-else $as_nop
- LDFLAGS="$BAKLDFLAGS" ; CFLAGS="$BAKCFLAGS" ; { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
-
-fi
-
-
- # Check whether --enable-relro_now was given.
-if test ${enable_relro_now+y}
-then :
- enableval=$enable_relro_now;
-fi
-
- if test "x$enable_relro_now" = "xyes"
-then :
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wl,-z,relro,-z,now" >&5
-printf %s "checking if $CC supports -Wl,-z,relro,-z,now... " >&6; }
- BAKLDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS -Wl,-z,relro,-z,now"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main (void)
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
-
- if $CC $CFLAGS $LDFLAGS -o conftest conftest.c 2>&1 | grep "warning: no debug symbols in executable" >/dev/null; then
- LDFLAGS="$BAKLDFLAGS"
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
- fi
- rm -f conftest conftest.c conftest.o
-
-else $as_nop
- LDFLAGS="$BAKLDFLAGS" ; { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
-
-fi
-
-fi
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for inline" >&5
-printf %s "checking for inline... " >&6; }
-if test ${ac_cv_c_inline+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_cv_c_inline=no
-for ac_kw in inline __inline__ __inline; do
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifndef __cplusplus
-typedef int foo_t;
-static $ac_kw foo_t static_foo (void) {return 0; }
-$ac_kw foo_t foo (void) {return 0; }
-#endif
-
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- ac_cv_c_inline=$ac_kw
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
- test "$ac_cv_c_inline" != no && break
-done
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5
-printf "%s\n" "$ac_cv_c_inline" >&6; }
-
-case $ac_cv_c_inline in
- inline | yes) ;;
- *)
- case $ac_cv_c_inline in
- no) ac_val=;;
- *) ac_val=$ac_cv_c_inline;;
- esac
- cat >>confdefs.h <<_ACEOF
-#ifndef __cplusplus
-#define inline $ac_val
-#endif
-_ACEOF
- ;;
-esac
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler (${CC-cc}) accepts the \"format\" attribute" >&5
-printf %s "checking whether the C compiler (${CC-cc}) accepts the \"format\" attribute... " >&6; }
-if test ${ac_cv_c_format_attribute+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_cv_c_format_attribute=no
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdio.h>
-void f (char *format, ...) __attribute__ ((format (printf, 1, 2)));
-void (*pf) (char *format, ...) __attribute__ ((format (printf, 1, 2)));
-
-int
-main (void)
-{
-
- f ("%s", "str");
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- ac_cv_c_format_attribute="yes"
-else $as_nop
- ac_cv_c_format_attribute="no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-
-fi
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_format_attribute" >&5
-printf "%s\n" "$ac_cv_c_format_attribute" >&6; }
-if test $ac_cv_c_format_attribute = yes; then
-
-printf "%s\n" "#define HAVE_ATTR_FORMAT 1" >>confdefs.h
-
-fi
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler (${CC-cc}) accepts the \"unused\" attribute" >&5
-printf %s "checking whether the C compiler (${CC-cc}) accepts the \"unused\" attribute... " >&6; }
-if test ${ac_cv_c_unused_attribute+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_cv_c_unused_attribute=no
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdio.h>
-void f (char *u __attribute__((unused)));
-
-int
-main (void)
-{
-
- f ("x");
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- ac_cv_c_unused_attribute="yes"
-else $as_nop
- ac_cv_c_unused_attribute="no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-
-fi
-
-
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_unused_attribute" >&5
-printf "%s\n" "$ac_cv_c_unused_attribute" >&6; }
-if test $ac_cv_c_unused_attribute = yes; then
-
-printf "%s\n" "#define HAVE_ATTR_UNUSED 1" >>confdefs.h
-
-fi
-
-
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler (${CC-cc}) accepts the \"weak\" attribute" >&5
-printf %s "checking whether the C compiler (${CC-cc}) accepts the \"weak\" attribute... " >&6; }
-if test ${ac_cv_c_weak_attribute+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_cv_c_weak_attribute=no
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
- #include <stdio.h>
-__attribute__((weak)) void f(int x) { printf("%d", x); }
-
-int
-main (void)
-{
-
- f(1);
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- ac_cv_c_weak_attribute="yes"
-else $as_nop
- ac_cv_c_weak_attribute="no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-
-fi
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_weak_attribute" >&5
-printf "%s\n" "$ac_cv_c_weak_attribute" >&6; }
-if test $ac_cv_c_weak_attribute = yes; then
-
-printf "%s\n" "#define HAVE_ATTR_WEAK 1" >>confdefs.h
-
-
-printf "%s\n" "#define ATTR_WEAK __attribute__((weak))" >>confdefs.h
-
-else
-
-printf "%s\n" "#define ATTR_WEAK /**/" >>confdefs.h
-
-fi
-
-
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler (${CC-cc}) accepts the \"noreturn\" attribute" >&5
-printf %s "checking whether the C compiler (${CC-cc}) accepts the \"noreturn\" attribute... " >&6; }
-if test ${ac_cv_c_noreturn_attribute+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_cv_c_noreturn_attribute=no
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
- #include <stdio.h>
-__attribute__((noreturn)) void f(int x) { printf("%d", x); }
-
-int
-main (void)
-{
-
- f(1);
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- ac_cv_c_noreturn_attribute="yes"
-else $as_nop
- ac_cv_c_noreturn_attribute="no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-
-fi
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_noreturn_attribute" >&5
-printf "%s\n" "$ac_cv_c_noreturn_attribute" >&6; }
-if test $ac_cv_c_noreturn_attribute = yes; then
-
-printf "%s\n" "#define HAVE_ATTR_NORETURN 1" >>confdefs.h
-
-
-printf "%s\n" "#define ATTR_NORETURN __attribute__((__noreturn__))" >>confdefs.h
-
-else
-
-printf "%s\n" "#define ATTR_NORETURN /**/" >>confdefs.h
-
-fi
-
-
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler (${CC-cc}) accepts the \"fallthrough\" attribute" >&5
-printf %s "checking whether the C compiler (${CC-cc}) accepts the \"fallthrough\" attribute... " >&6; }
-BAKCFLAGS="$CFLAGS"
-CFLAGS="$CFLAGS -Werror"
-if test ${ac_cv_c_fallthrough_attribute+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_cv_c_fallthrough_attribute=no
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
- #include <stdio.h>
-void f(int x) {
- int y = 0;
- switch(x) {
- case 1:
- y = 1;
- __attribute__((fallthrough));
- /* fallthrough */
- case 2:
- y++;
- break;
- case 3:
- y = 3;
- break;
- }
- printf("%d", y);
-}
-
-int
-main (void)
-{
-
- f(1);
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- ac_cv_c_fallthrough_attribute="yes"
-else $as_nop
- ac_cv_c_fallthrough_attribute="no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-
-fi
-
-CFLAGS="$BAKCFLAGS"
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_fallthrough_attribute" >&5
-printf "%s\n" "$ac_cv_c_fallthrough_attribute" >&6; }
-if test $ac_cv_c_fallthrough_attribute = yes; then
-
-printf "%s\n" "#define HAVE_ATTR_FALLTHROUGH 1" >>confdefs.h
-
-
-printf "%s\n" "#define ATTR_FALLTHROUGH __attribute__((fallthrough));" >>confdefs.h
-
-else
-
-printf "%s\n" "#define ATTR_FALLTHROUGH /**/" >>confdefs.h
-
-fi
-
-
-if test "$srcdir" != "."; then
- CPPFLAGS="$CPPFLAGS -I$srcdir"
-fi
-
-
-
-
-
-for ac_prog in flex lex
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_LEX+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$LEX"; then
- ac_cv_prog_LEX="$LEX" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_LEX="$ac_prog"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-LEX=$ac_cv_prog_LEX
-if test -n "$LEX"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LEX" >&5
-printf "%s\n" "$LEX" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
- test -n "$LEX" && break
-done
-test -n "$LEX" || LEX=":"
-
- if test "x$LEX" != "x:"; then
- cat >conftest.l <<_ACEOF
-%{
-#ifdef __cplusplus
-extern "C"
-#endif
-int yywrap(void);
-%}
-%%
-a { ECHO; }
-b { REJECT; }
-c { yymore (); }
-d { yyless (1); }
-e { /* IRIX 6.5 flex 2.5.4 underquotes its yyless argument. */
-#ifdef __cplusplus
- yyless ((yyinput () != 0));
-#else
- yyless ((input () != 0));
-#endif
- }
-f { unput (yytext[0]); }
-. { BEGIN INITIAL; }
-%%
-#ifdef YYTEXT_POINTER
-extern char *yytext;
-#endif
-int
-yywrap (void)
-{
- return 1;
-}
-int
-main (void)
-{
- return ! yylex ();
-}
-_ACEOF
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for lex output file root" >&5
-printf %s "checking for lex output file root... " >&6; }
-if test ${ac_cv_prog_lex_root+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
-
-ac_cv_prog_lex_root=unknown
-{ { ac_try="$LEX conftest.l"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
- (eval "$LEX conftest.l") 2>&5
- ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } &&
-if test -f lex.yy.c; then
- ac_cv_prog_lex_root=lex.yy
-elif test -f lexyy.c; then
- ac_cv_prog_lex_root=lexyy
-fi
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_lex_root" >&5
-printf "%s\n" "$ac_cv_prog_lex_root" >&6; }
-if test "$ac_cv_prog_lex_root" = unknown
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cannot find output from $LEX; giving up on $LEX" >&5
-printf "%s\n" "$as_me: WARNING: cannot find output from $LEX; giving up on $LEX" >&2;}
- LEX=: LEXLIB=
-fi
-LEX_OUTPUT_ROOT=$ac_cv_prog_lex_root
-
-if test ${LEXLIB+y}
-then :
-
-else $as_nop
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for lex library" >&5
-printf %s "checking for lex library... " >&6; }
-if test ${ac_cv_lib_lex+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
-
- ac_save_LIBS="$LIBS"
- ac_found=false
- for ac_cv_lib_lex in 'none needed' -lfl -ll 'not found'; do
- case $ac_cv_lib_lex in #(
- 'none needed') :
- ;; #(
- 'not found') :
- break ;; #(
- *) :
- LIBS="$ac_cv_lib_lex $ac_save_LIBS" ;; #(
- *) :
- ;;
-esac
-
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-`cat $LEX_OUTPUT_ROOT.c`
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
- ac_found=:
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
- if $ac_found; then
- break
- fi
- done
- LIBS="$ac_save_LIBS"
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lex" >&5
-printf "%s\n" "$ac_cv_lib_lex" >&6; }
- if test "$ac_cv_lib_lex" = 'not found'
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: required lex library not found; giving up on $LEX" >&5
-printf "%s\n" "$as_me: WARNING: required lex library not found; giving up on $LEX" >&2;}
- LEX=: LEXLIB=
-elif test "$ac_cv_lib_lex" = 'none needed'
-then :
- LEXLIB=''
-else $as_nop
- LEXLIB=$ac_cv_lib_lex
-fi
-
-fi
-
-
-if test "$LEX" != :
-then :
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether yytext is a pointer" >&5
-printf %s "checking whether yytext is a pointer... " >&6; }
-if test ${ac_cv_prog_lex_yytext_pointer+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- # POSIX says lex can declare yytext either as a pointer or an array; the
-# default is implementation-dependent. Figure out which it is, since
-# not all implementations provide the %pointer and %array declarations.
-ac_cv_prog_lex_yytext_pointer=no
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
- #define YYTEXT_POINTER 1
-`cat $LEX_OUTPUT_ROOT.c`
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- ac_cv_prog_lex_yytext_pointer=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_lex_yytext_pointer" >&5
-printf "%s\n" "$ac_cv_prog_lex_yytext_pointer" >&6; }
-if test $ac_cv_prog_lex_yytext_pointer = yes; then
-
-printf "%s\n" "#define YYTEXT_POINTER 1" >>confdefs.h
-
-fi
-
-fi
-rm -f conftest.l $LEX_OUTPUT_ROOT.c
-
-fi
-if test "$LEX" != "" -a "$LEX" != ":"; then
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for yylex_destroy" >&5
-printf %s "checking for yylex_destroy... " >&6; }
- if echo %% | $LEX -t 2>&1 | grep yylex_destroy >/dev/null 2>&1; then
-
-printf "%s\n" "#define LEX_HAS_YYLEX_DESTROY 1" >>confdefs.h
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
- else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; };
- LEX=":"
- fi
-
-fi
-if test "$LEX" != "" -a "$LEX" != ":"; then
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for lex %option" >&5
-printf %s "checking for lex %option... " >&6; }
- if cat <<EOF | $LEX -t 2>&1 | grep yy_delete_buffer >/dev/null 2>&1; then
-%option nounput
-%%
-EOF
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
- else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; };
- LEX=":"
- fi
-
-fi
-if test "$LEX" = "" -o "$LEX" = ":"; then
- if test ! -f util/configlexer.c; then
- as_fn_error $? "no lex and no util/configlexer.c: need flex and bison to compile from source repository." "$LINENO" 5
- fi
-fi
-for ac_prog in 'bison -y' byacc
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_YACC+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$YACC"; then
- ac_cv_prog_YACC="$YACC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_YACC="$ac_prog"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-YACC=$ac_cv_prog_YACC
-if test -n "$YACC"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $YACC" >&5
-printf "%s\n" "$YACC" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
- test -n "$YACC" && break
-done
-test -n "$YACC" || YACC="yacc"
-
-if test "$YACC" = "" -o "$YACC" = ":"; then
- if test ! -f util/configparser.c; then
- as_fn_error $? "no yacc and no util/configparser.c: need flex and bison to compile from source repository." "$LINENO" 5
- fi
-fi
-# Extract the first word of "doxygen", so it can be a program name with args.
-set dummy doxygen; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_doxygen+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$doxygen"; then
- ac_cv_prog_doxygen="$doxygen" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_doxygen="doxygen"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-doxygen=$ac_cv_prog_doxygen
-if test -n "$doxygen"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $doxygen" >&5
-printf "%s\n" "$doxygen" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_STRIP+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$STRIP"; then
- ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_STRIP="${ac_tool_prefix}strip"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-STRIP=$ac_cv_prog_STRIP
-if test -n "$STRIP"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
-printf "%s\n" "$STRIP" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_STRIP"; then
- ac_ct_STRIP=$STRIP
- # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_ac_ct_STRIP+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$ac_ct_STRIP"; then
- ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_STRIP="strip"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
-if test -n "$ac_ct_STRIP"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
-printf "%s\n" "$ac_ct_STRIP" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
- if test "x$ac_ct_STRIP" = x; then
- STRIP=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- STRIP=$ac_ct_STRIP
- fi
-else
- STRIP="$ac_cv_prog_STRIP"
-fi
-
-
-
-
- # Make sure we can run config.sub.
-$SHELL "${ac_aux_dir}config.sub" sun4 >/dev/null 2>&1 ||
- as_fn_error $? "cannot run $SHELL ${ac_aux_dir}config.sub" "$LINENO" 5
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
-printf %s "checking build system type... " >&6; }
-if test ${ac_cv_build+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_build_alias=$build_alias
-test "x$ac_build_alias" = x &&
- ac_build_alias=`$SHELL "${ac_aux_dir}config.guess"`
-test "x$ac_build_alias" = x &&
- as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
-ac_cv_build=`$SHELL "${ac_aux_dir}config.sub" $ac_build_alias` ||
- as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $ac_build_alias failed" "$LINENO" 5
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
-printf "%s\n" "$ac_cv_build" >&6; }
-case $ac_cv_build in
-*-*-*) ;;
-*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
-esac
-build=$ac_cv_build
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_build
-shift
-build_cpu=$1
-build_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-build_os=$*
-IFS=$ac_save_IFS
-case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
-printf %s "checking host system type... " >&6; }
-if test ${ac_cv_host+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test "x$host_alias" = x; then
- ac_cv_host=$ac_cv_build
-else
- ac_cv_host=`$SHELL "${ac_aux_dir}config.sub" $host_alias` ||
- as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $host_alias failed" "$LINENO" 5
-fi
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
-printf "%s\n" "$ac_cv_host" >&6; }
-case $ac_cv_host in
-*-*-*) ;;
-*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
-esac
-host=$ac_cv_host
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_host
-shift
-host_cpu=$1
-host_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-host_os=$*
-IFS=$ac_save_IFS
-case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
-
-
-
-# skip these tests, we do not need them.
-
-
-
-
-
-
-
-
-# always use ./libtool unless override from commandline (libtool=mylibtool)
-if test -z "$libtool"; then
- libtool="./libtool"
-fi
-
-# avoid libtool max commandline length test on systems that fork slowly.
-
-if echo "$host_os" | grep "sunos4" >/dev/null; then
- lt_cv_sys_max_cmd_len=32750;
-fi
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ar; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_path_AR+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- case $AR in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_AR="$AR" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_path_AR="$as_dir$ac_word$ac_exec_ext"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
- ;;
-esac
-fi
-AR=$ac_cv_path_AR
-if test -n "$AR"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
-printf "%s\n" "$AR" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_path_AR"; then
- ac_pt_AR=$AR
- # Extract the first word of "ar", so it can be a program name with args.
-set dummy ar; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_path_ac_pt_AR+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- case $ac_pt_AR in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_ac_pt_AR="$ac_pt_AR" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_path_ac_pt_AR="$as_dir$ac_word$ac_exec_ext"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
- ;;
-esac
-fi
-ac_pt_AR=$ac_cv_path_ac_pt_AR
-if test -n "$ac_pt_AR"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_AR" >&5
-printf "%s\n" "$ac_pt_AR" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
- if test "x$ac_pt_AR" = x; then
- AR="false"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- AR=$ac_pt_AR
- fi
-else
- AR="$ac_cv_path_AR"
-fi
-
-if test $AR = false; then
- as_fn_error $? "Cannot find 'ar', please extend PATH to include it" "$LINENO" 5
-fi
-
-
-case `pwd` in
- *\ * | *\ *)
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
-printf "%s\n" "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;
-esac
-
-
-
-macro_version='2.4.6'
-macro_revision='2.4.6'
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-ltmain=$ac_aux_dir/ltmain.sh
-
-# Backslashify metacharacters that are still active within
-# double-quoted strings.
-sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\(["`\\]\)/\\\1/g'
-
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# Sed substitution to delay expansion of an escaped single quote.
-delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
-
-# Sed substitution to avoid accidental globbing in evaled expressions
-no_glob_subst='s/\*/\\\*/g'
-
-ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
-ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
-printf %s "checking how to print strings... " >&6; }
-# Test print first, because it will be a builtin if present.
-if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
- test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
- ECHO='print -r --'
-elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
- ECHO='printf %s\n'
-else
- # Use this function as a fallback that always works.
- func_fallback_echo ()
- {
- eval 'cat <<_LTECHO_EOF
-$1
-_LTECHO_EOF'
- }
- ECHO='func_fallback_echo'
-fi
-
-# func_echo_all arg...
-# Invoke $ECHO with all args, space-separated.
-func_echo_all ()
-{
- $ECHO ""
-}
-
-case $ECHO in
- printf*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: printf" >&5
-printf "%s\n" "printf" >&6; } ;;
- print*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: print -r" >&5
-printf "%s\n" "print -r" >&6; } ;;
- *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: cat" >&5
-printf "%s\n" "cat" >&6; } ;;
-esac
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
-printf %s "checking for a sed that does not truncate output... " >&6; }
-if test ${ac_cv_path_SED+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
- for ac_i in 1 2 3 4 5 6 7; do
- ac_script="$ac_script$as_nl$ac_script"
- done
- echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
- { ac_script=; unset ac_script;}
- if test -z "$SED"; then
- ac_path_SED_found=false
- # Loop through the user's path and test for each of PROGNAME-LIST
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_prog in sed gsed
- do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_SED="$as_dir$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_SED" || continue
-# Check for GNU ac_path_SED and select it if it is found.
- # Check for GNU $ac_path_SED
-case `"$ac_path_SED" --version 2>&1` in
-*GNU*)
- ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
-*)
- ac_count=0
- printf %s 0123456789 >"conftest.in"
- while :
- do
- cat "conftest.in" "conftest.in" >"conftest.tmp"
- mv "conftest.tmp" "conftest.in"
- cp "conftest.in" "conftest.nl"
- printf "%s\n" '' >> "conftest.nl"
- "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- as_fn_arith $ac_count + 1 && ac_count=$as_val
- if test $ac_count -gt ${ac_path_SED_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_SED="$ac_path_SED"
- ac_path_SED_max=$ac_count
- fi
- # 10*(2^10) chars as input seems more than enough
- test $ac_count -gt 10 && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
- $ac_path_SED_found && break 3
- done
- done
- done
-IFS=$as_save_IFS
- if test -z "$ac_cv_path_SED"; then
- as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5
- fi
-else
- ac_cv_path_SED=$SED
-fi
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
-printf "%s\n" "$ac_cv_path_SED" >&6; }
- SED="$ac_cv_path_SED"
- rm -f conftest.sed
-
-test -z "$SED" && SED=sed
-Xsed="$SED -e 1s/^X//"
-
-
-
-
-
-
-
-
-
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
-printf %s "checking for egrep... " >&6; }
-if test ${ac_cv_path_EGREP+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
- then ac_cv_path_EGREP="$GREP -E"
- else
- if test -z "$EGREP"; then
- ac_path_EGREP_found=false
- # Loop through the user's path and test for each of PROGNAME-LIST
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_prog in egrep
- do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_EGREP="$as_dir$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_EGREP" || continue
-# Check for GNU ac_path_EGREP and select it if it is found.
- # Check for GNU $ac_path_EGREP
-case `"$ac_path_EGREP" --version 2>&1` in
-*GNU*)
- ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
-*)
- ac_count=0
- printf %s 0123456789 >"conftest.in"
- while :
- do
- cat "conftest.in" "conftest.in" >"conftest.tmp"
- mv "conftest.tmp" "conftest.in"
- cp "conftest.in" "conftest.nl"
- printf "%s\n" 'EGREP' >> "conftest.nl"
- "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- as_fn_arith $ac_count + 1 && ac_count=$as_val
- if test $ac_count -gt ${ac_path_EGREP_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_EGREP="$ac_path_EGREP"
- ac_path_EGREP_max=$ac_count
- fi
- # 10*(2^10) chars as input seems more than enough
- test $ac_count -gt 10 && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
- $ac_path_EGREP_found && break 3
- done
- done
- done
-IFS=$as_save_IFS
- if test -z "$ac_cv_path_EGREP"; then
- as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
- fi
-else
- ac_cv_path_EGREP=$EGREP
-fi
-
- fi
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
-printf "%s\n" "$ac_cv_path_EGREP" >&6; }
- EGREP="$ac_cv_path_EGREP"
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
-printf %s "checking for fgrep... " >&6; }
-if test ${ac_cv_path_FGREP+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
- then ac_cv_path_FGREP="$GREP -F"
- else
- if test -z "$FGREP"; then
- ac_path_FGREP_found=false
- # Loop through the user's path and test for each of PROGNAME-LIST
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_prog in fgrep
- do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_FGREP="$as_dir$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_FGREP" || continue
-# Check for GNU ac_path_FGREP and select it if it is found.
- # Check for GNU $ac_path_FGREP
-case `"$ac_path_FGREP" --version 2>&1` in
-*GNU*)
- ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;;
-*)
- ac_count=0
- printf %s 0123456789 >"conftest.in"
- while :
- do
- cat "conftest.in" "conftest.in" >"conftest.tmp"
- mv "conftest.tmp" "conftest.in"
- cp "conftest.in" "conftest.nl"
- printf "%s\n" 'FGREP' >> "conftest.nl"
- "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- as_fn_arith $ac_count + 1 && ac_count=$as_val
- if test $ac_count -gt ${ac_path_FGREP_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_FGREP="$ac_path_FGREP"
- ac_path_FGREP_max=$ac_count
- fi
- # 10*(2^10) chars as input seems more than enough
- test $ac_count -gt 10 && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
- $ac_path_FGREP_found && break 3
- done
- done
- done
-IFS=$as_save_IFS
- if test -z "$ac_cv_path_FGREP"; then
- as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
- fi
-else
- ac_cv_path_FGREP=$FGREP
-fi
-
- fi
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
-printf "%s\n" "$ac_cv_path_FGREP" >&6; }
- FGREP="$ac_cv_path_FGREP"
-
-
-test -z "$GREP" && GREP=grep
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# Check whether --with-gnu-ld was given.
-if test ${with_gnu_ld+y}
-then :
- withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes
-else $as_nop
- with_gnu_ld=no
-fi
-
-ac_prog=ld
-if test yes = "$GCC"; then
- # Check if gcc -print-prog-name=ld gives a path.
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
-printf %s "checking for ld used by $CC... " >&6; }
- case $host in
- *-*-mingw*)
- # gcc leaves a trailing carriage return, which upsets mingw
- ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
- *)
- ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
- esac
- case $ac_prog in
- # Accept absolute paths.
- [\\/]* | ?:[\\/]*)
- re_direlt='/[^/][^/]*/\.\./'
- # Canonicalize the pathname of ld
- ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
- while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
- ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
- done
- test -z "$LD" && LD=$ac_prog
- ;;
- "")
- # If it fails, then pretend we aren't using GCC.
- ac_prog=ld
- ;;
- *)
- # If it is relative, then search for the first ld in PATH.
- with_gnu_ld=unknown
- ;;
- esac
-elif test yes = "$with_gnu_ld"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
-printf %s "checking for GNU ld... " >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
-printf %s "checking for non-GNU ld... " >&6; }
-fi
-if test ${lt_cv_path_LD+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -z "$LD"; then
- lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
- for ac_dir in $PATH; do
- IFS=$lt_save_ifs
- test -z "$ac_dir" && ac_dir=.
- if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
- lt_cv_path_LD=$ac_dir/$ac_prog
- # Check to see if the program is GNU ld. I'd rather use --version,
- # but apparently some variants of GNU ld only accept -v.
- # Break only if it was the GNU/non-GNU ld that we prefer.
- case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
- *GNU* | *'with BFD'*)
- test no != "$with_gnu_ld" && break
- ;;
- *)
- test yes != "$with_gnu_ld" && break
- ;;
- esac
- fi
- done
- IFS=$lt_save_ifs
-else
- lt_cv_path_LD=$LD # Let the user override the test with a path.
-fi
-fi
-
-LD=$lt_cv_path_LD
-if test -n "$LD"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
-printf "%s\n" "$LD" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
-printf %s "checking if the linker ($LD) is GNU ld... " >&6; }
-if test ${lt_cv_prog_gnu_ld+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- # I'd rather use --version here, but apparently some GNU lds only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
- lt_cv_prog_gnu_ld=yes
- ;;
-*)
- lt_cv_prog_gnu_ld=no
- ;;
-esac
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
-printf "%s\n" "$lt_cv_prog_gnu_ld" >&6; }
-with_gnu_ld=$lt_cv_prog_gnu_ld
-
-
-
-
-
-
-
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
-printf %s "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
-if test ${lt_cv_path_NM+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$NM"; then
- # Let the user override the test.
- lt_cv_path_NM=$NM
-else
- lt_nm_to_check=${ac_tool_prefix}nm
- if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
- lt_nm_to_check="$lt_nm_to_check nm"
- fi
- for lt_tmp_nm in $lt_nm_to_check; do
- lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
- for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
- IFS=$lt_save_ifs
- test -z "$ac_dir" && ac_dir=.
- tmp_nm=$ac_dir/$lt_tmp_nm
- if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then
- # Check to see if the nm accepts a BSD-compat flag.
- # Adding the 'sed 1q' prevents false positives on HP-UX, which says:
- # nm: unknown option "B" ignored
- # Tru64's nm complains that /dev/null is an invalid object file
- # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty
- case $build_os in
- mingw*) lt_bad_file=conftest.nm/nofile ;;
- *) lt_bad_file=/dev/null ;;
- esac
- case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in
- *$lt_bad_file* | *'Invalid file or object type'*)
- lt_cv_path_NM="$tmp_nm -B"
- break 2
- ;;
- *)
- case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
- */dev/null*)
- lt_cv_path_NM="$tmp_nm -p"
- break 2
- ;;
- *)
- lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
- continue # so that we can try to find one that supports BSD flags
- ;;
- esac
- ;;
- esac
- fi
- done
- IFS=$lt_save_ifs
- done
- : ${lt_cv_path_NM=no}
-fi
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
-printf "%s\n" "$lt_cv_path_NM" >&6; }
-if test no != "$lt_cv_path_NM"; then
- NM=$lt_cv_path_NM
-else
- # Didn't find any BSD compatible name lister, look for dumpbin.
- if test -n "$DUMPBIN"; then :
- # Let the user override the test.
- else
- if test -n "$ac_tool_prefix"; then
- for ac_prog in dumpbin "link -dump"
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_DUMPBIN+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$DUMPBIN"; then
- ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-DUMPBIN=$ac_cv_prog_DUMPBIN
-if test -n "$DUMPBIN"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
-printf "%s\n" "$DUMPBIN" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
- test -n "$DUMPBIN" && break
- done
-fi
-if test -z "$DUMPBIN"; then
- ac_ct_DUMPBIN=$DUMPBIN
- for ac_prog in dumpbin "link -dump"
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_ac_ct_DUMPBIN+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$ac_ct_DUMPBIN"; then
- ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN
-if test -n "$ac_ct_DUMPBIN"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5
-printf "%s\n" "$ac_ct_DUMPBIN" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
- test -n "$ac_ct_DUMPBIN" && break
-done
-
- if test "x$ac_ct_DUMPBIN" = x; then
- DUMPBIN=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- DUMPBIN=$ac_ct_DUMPBIN
- fi
-fi
-
- case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in
- *COFF*)
- DUMPBIN="$DUMPBIN -symbols -headers"
- ;;
- *)
- DUMPBIN=:
- ;;
- esac
- fi
-
- if test : != "$DUMPBIN"; then
- NM=$DUMPBIN
- fi
-fi
-test -z "$NM" && NM=nm
-
-
-
-
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
-printf %s "checking the name lister ($NM) interface... " >&6; }
-if test ${lt_cv_nm_interface+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- lt_cv_nm_interface="BSD nm"
- echo "int some_variable = 0;" > conftest.$ac_ext
- (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5)
- (eval "$ac_compile" 2>conftest.err)
- cat conftest.err >&5
- (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
- (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
- cat conftest.err >&5
- (eval echo "\"\$as_me:$LINENO: output\"" >&5)
- cat conftest.out >&5
- if $GREP 'External.*some_variable' conftest.out > /dev/null; then
- lt_cv_nm_interface="MS dumpbin"
- fi
- rm -f conftest*
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
-printf "%s\n" "$lt_cv_nm_interface" >&6; }
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
-printf %s "checking whether ln -s works... " >&6; }
-LN_S=$as_ln_s
-if test "$LN_S" = "ln -s"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
-printf "%s\n" "no, using $LN_S" >&6; }
-fi
-
-# find the maximum length of command line arguments
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
-printf %s "checking the maximum length of command line arguments... " >&6; }
-if test ${lt_cv_sys_max_cmd_len+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- i=0
- teststring=ABCD
-
- case $build_os in
- msdosdjgpp*)
- # On DJGPP, this test can blow up pretty badly due to problems in libc
- # (any single argument exceeding 2000 bytes causes a buffer overrun
- # during glob expansion). Even if it were fixed, the result of this
- # check would be larger than it should be.
- lt_cv_sys_max_cmd_len=12288; # 12K is about right
- ;;
-
- gnu*)
- # Under GNU Hurd, this test is not required because there is
- # no limit to the length of command line arguments.
- # Libtool will interpret -1 as no limit whatsoever
- lt_cv_sys_max_cmd_len=-1;
- ;;
-
- cygwin* | mingw* | cegcc*)
- # On Win9x/ME, this test blows up -- it succeeds, but takes
- # about 5 minutes as the teststring grows exponentially.
- # Worse, since 9x/ME are not pre-emptively multitasking,
- # you end up with a "frozen" computer, even though with patience
- # the test eventually succeeds (with a max line length of 256k).
- # Instead, let's just punt: use the minimum linelength reported by
- # all of the supported platforms: 8192 (on NT/2K/XP).
- lt_cv_sys_max_cmd_len=8192;
- ;;
-
- mint*)
- # On MiNT this can take a long time and run out of memory.
- lt_cv_sys_max_cmd_len=8192;
- ;;
-
- amigaos*)
- # On AmigaOS with pdksh, this test takes hours, literally.
- # So we just punt and use a minimum line length of 8192.
- lt_cv_sys_max_cmd_len=8192;
- ;;
-
- bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*)
- # This has been around since 386BSD, at least. Likely further.
- if test -x /sbin/sysctl; then
- lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
- elif test -x /usr/sbin/sysctl; then
- lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
- else
- lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs
- fi
- # And add a safety zone
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
- ;;
-
- interix*)
- # We know the value 262144 and hardcode it with a safety zone (like BSD)
- lt_cv_sys_max_cmd_len=196608
- ;;
-
- os2*)
- # The test takes a long time on OS/2.
- lt_cv_sys_max_cmd_len=8192
- ;;
-
- osf*)
- # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
- # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
- # nice to cause kernel panics so lets avoid the loop below.
- # First set a reasonable default.
- lt_cv_sys_max_cmd_len=16384
- #
- if test -x /sbin/sysconfig; then
- case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
- *1*) lt_cv_sys_max_cmd_len=-1 ;;
- esac
- fi
- ;;
- sco3.2v5*)
- lt_cv_sys_max_cmd_len=102400
- ;;
- sysv5* | sco5v6* | sysv4.2uw2*)
- kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
- if test -n "$kargmax"; then
- lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'`
- else
- lt_cv_sys_max_cmd_len=32768
- fi
- ;;
- *)
- lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
- if test -n "$lt_cv_sys_max_cmd_len" && \
- test undefined != "$lt_cv_sys_max_cmd_len"; then
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
- else
- # Make teststring a little bigger before we do anything with it.
- # a 1K string should be a reasonable start.
- for i in 1 2 3 4 5 6 7 8; do
- teststring=$teststring$teststring
- done
- SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
- # If test is not a shell built-in, we'll probably end up computing a
- # maximum length that is only half of the actual maximum length, but
- # we can't tell.
- while { test X`env echo "$teststring$teststring" 2>/dev/null` \
- = "X$teststring$teststring"; } >/dev/null 2>&1 &&
- test 17 != "$i" # 1/2 MB should be enough
- do
- i=`expr $i + 1`
- teststring=$teststring$teststring
- done
- # Only check the string length outside the loop.
- lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
- teststring=
- # Add a significant safety factor because C++ compilers can tack on
- # massive amounts of additional arguments before passing them to the
- # linker. It appears as though 1/2 is a usable value.
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
- fi
- ;;
- esac
-
-fi
-
-if test -n "$lt_cv_sys_max_cmd_len"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
-printf "%s\n" "$lt_cv_sys_max_cmd_len" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none" >&5
-printf "%s\n" "none" >&6; }
-fi
-max_cmd_len=$lt_cv_sys_max_cmd_len
-
-
-
-
-
-
-: ${CP="cp -f"}
-: ${MV="mv -f"}
-: ${RM="rm -f"}
-
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
- lt_unset=unset
-else
- lt_unset=false
-fi
-
-
-
-
-
-# test EBCDIC or ASCII
-case `echo X|tr X '\101'` in
- A) # ASCII based system
- # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
- lt_SP2NL='tr \040 \012'
- lt_NL2SP='tr \015\012 \040\040'
- ;;
- *) # EBCDIC based system
- lt_SP2NL='tr \100 \n'
- lt_NL2SP='tr \r\n \100\100'
- ;;
-esac
-
-
-
-
-
-
-
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5
-printf %s "checking how to convert $build file names to $host format... " >&6; }
-if test ${lt_cv_to_host_file_cmd+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- case $host in
- *-*-mingw* )
- case $build in
- *-*-mingw* ) # actually msys
- lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
- ;;
- *-*-cygwin* )
- lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
- ;;
- * ) # otherwise, assume *nix
- lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
- ;;
- esac
- ;;
- *-*-cygwin* )
- case $build in
- *-*-mingw* ) # actually msys
- lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
- ;;
- *-*-cygwin* )
- lt_cv_to_host_file_cmd=func_convert_file_noop
- ;;
- * ) # otherwise, assume *nix
- lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
- ;;
- esac
- ;;
- * ) # unhandled hosts (and "normal" native builds)
- lt_cv_to_host_file_cmd=func_convert_file_noop
- ;;
-esac
-
-fi
-
-to_host_file_cmd=$lt_cv_to_host_file_cmd
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5
-printf "%s\n" "$lt_cv_to_host_file_cmd" >&6; }
-
-
-
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5
-printf %s "checking how to convert $build file names to toolchain format... " >&6; }
-if test ${lt_cv_to_tool_file_cmd+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- #assume ordinary cross tools, or native build.
-lt_cv_to_tool_file_cmd=func_convert_file_noop
-case $host in
- *-*-mingw* )
- case $build in
- *-*-mingw* ) # actually msys
- lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
- ;;
- esac
- ;;
-esac
-
-fi
-
-to_tool_file_cmd=$lt_cv_to_tool_file_cmd
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5
-printf "%s\n" "$lt_cv_to_tool_file_cmd" >&6; }
-
-
-
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
-printf %s "checking for $LD option to reload object files... " >&6; }
-if test ${lt_cv_ld_reload_flag+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- lt_cv_ld_reload_flag='-r'
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
-printf "%s\n" "$lt_cv_ld_reload_flag" >&6; }
-reload_flag=$lt_cv_ld_reload_flag
-case $reload_flag in
-"" | " "*) ;;
-*) reload_flag=" $reload_flag" ;;
-esac
-reload_cmds='$LD$reload_flag -o $output$reload_objs'
-case $host_os in
- cygwin* | mingw* | pw32* | cegcc*)
- if test yes != "$GCC"; then
- reload_cmds=false
- fi
- ;;
- darwin*)
- if test yes = "$GCC"; then
- reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs'
- else
- reload_cmds='$LD$reload_flag -o $output$reload_objs'
- fi
- ;;
-esac
-
-
-
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
-set dummy ${ac_tool_prefix}objdump; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_OBJDUMP+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$OBJDUMP"; then
- ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-OBJDUMP=$ac_cv_prog_OBJDUMP
-if test -n "$OBJDUMP"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
-printf "%s\n" "$OBJDUMP" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_OBJDUMP"; then
- ac_ct_OBJDUMP=$OBJDUMP
- # Extract the first word of "objdump", so it can be a program name with args.
-set dummy objdump; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_ac_ct_OBJDUMP+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$ac_ct_OBJDUMP"; then
- ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_OBJDUMP="objdump"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
-if test -n "$ac_ct_OBJDUMP"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
-printf "%s\n" "$ac_ct_OBJDUMP" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
- if test "x$ac_ct_OBJDUMP" = x; then
- OBJDUMP="false"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- OBJDUMP=$ac_ct_OBJDUMP
- fi
-else
- OBJDUMP="$ac_cv_prog_OBJDUMP"
-fi
-
-test -z "$OBJDUMP" && OBJDUMP=objdump
-
-
-
-
-
-
-
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
-printf %s "checking how to recognize dependent libraries... " >&6; }
-if test ${lt_cv_deplibs_check_method+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- lt_cv_file_magic_cmd='$MAGIC_CMD'
-lt_cv_file_magic_test_file=
-lt_cv_deplibs_check_method='unknown'
-# Need to set the preceding variable on all platforms that support
-# interlibrary dependencies.
-# 'none' -- dependencies not supported.
-# 'unknown' -- same as none, but documents that we really don't know.
-# 'pass_all' -- all dependencies passed with no checks.
-# 'test_compile' -- check by making test program.
-# 'file_magic [[regex]]' -- check by looking for files in library path
-# that responds to the $file_magic_cmd with a given extended regex.
-# If you have 'file' or equivalent on your system and you're not sure
-# whether 'pass_all' will *always* work, you probably want this one.
-
-case $host_os in
-aix[4-9]*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-beos*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-bsdi[45]*)
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
- lt_cv_file_magic_cmd='/usr/bin/file -L'
- lt_cv_file_magic_test_file=/shlib/libc.so
- ;;
-
-cygwin*)
- # func_win32_libid is a shell function defined in ltmain.sh
- lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
- lt_cv_file_magic_cmd='func_win32_libid'
- ;;
-
-mingw* | pw32*)
- # Base MSYS/MinGW do not provide the 'file' command needed by
- # func_win32_libid shell function, so use a weaker test based on 'objdump',
- # unless we find 'file', for example because we are cross-compiling.
- if ( file / ) >/dev/null 2>&1; then
- lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
- lt_cv_file_magic_cmd='func_win32_libid'
- else
- # Keep this pattern in sync with the one in func_win32_libid.
- lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
- lt_cv_file_magic_cmd='$OBJDUMP -f'
- fi
- ;;
-
-cegcc*)
- # use the weaker test based on 'objdump'. See mingw*.
- lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
- lt_cv_file_magic_cmd='$OBJDUMP -f'
- ;;
-
-darwin* | rhapsody*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-freebsd* | dragonfly*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
- case $host_cpu in
- i*86 )
- # Not sure whether the presence of OpenBSD here was a mistake.
- # Let's accept both of them until this is cleared up.
- lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
- ;;
- esac
- else
- lt_cv_deplibs_check_method=pass_all
- fi
- ;;
-
-haiku*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-hpux10.20* | hpux11*)
- lt_cv_file_magic_cmd=/usr/bin/file
- case $host_cpu in
- ia64*)
- lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
- lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
- ;;
- hppa*64*)
- lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'
- lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
- ;;
- *)
- lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library'
- lt_cv_file_magic_test_file=/usr/lib/libc.sl
- ;;
- esac
- ;;
-
-interix[3-9]*)
- # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$'
- ;;
-
-irix5* | irix6* | nonstopux*)
- case $LD in
- *-32|*"-32 ") libmagic=32-bit;;
- *-n32|*"-n32 ") libmagic=N32;;
- *-64|*"-64 ") libmagic=64-bit;;
- *) libmagic=never-match;;
- esac
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-# This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-netbsd*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
- else
- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$'
- fi
- ;;
-
-newos6*)
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=/usr/lib/libnls.so
- ;;
-
-*nto* | *qnx*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-openbsd* | bitrig*)
- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
- else
- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
- fi
- ;;
-
-osf3* | osf4* | osf5*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-rdos*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-solaris*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-sysv4 | sysv4.3*)
- case $host_vendor in
- motorola)
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
- ;;
- ncr)
- lt_cv_deplibs_check_method=pass_all
- ;;
- sequent)
- lt_cv_file_magic_cmd='/bin/file'
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
- ;;
- sni)
- lt_cv_file_magic_cmd='/bin/file'
- lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
- lt_cv_file_magic_test_file=/lib/libc.so
- ;;
- siemens)
- lt_cv_deplibs_check_method=pass_all
- ;;
- pc)
- lt_cv_deplibs_check_method=pass_all
- ;;
- esac
- ;;
-
-tpf*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-os2*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-esac
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
-printf "%s\n" "$lt_cv_deplibs_check_method" >&6; }
-
-file_magic_glob=
-want_nocaseglob=no
-if test "$build" = "$host"; then
- case $host_os in
- mingw* | pw32*)
- if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
- want_nocaseglob=yes
- else
- file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"`
- fi
- ;;
- esac
-fi
-
-file_magic_cmd=$lt_cv_file_magic_cmd
-deplibs_check_method=$lt_cv_deplibs_check_method
-test -z "$deplibs_check_method" && deplibs_check_method=unknown
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
-set dummy ${ac_tool_prefix}dlltool; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_DLLTOOL+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$DLLTOOL"; then
- ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-DLLTOOL=$ac_cv_prog_DLLTOOL
-if test -n "$DLLTOOL"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
-printf "%s\n" "$DLLTOOL" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_DLLTOOL"; then
- ac_ct_DLLTOOL=$DLLTOOL
- # Extract the first word of "dlltool", so it can be a program name with args.
-set dummy dlltool; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_ac_ct_DLLTOOL+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$ac_ct_DLLTOOL"; then
- ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_DLLTOOL="dlltool"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
-if test -n "$ac_ct_DLLTOOL"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
-printf "%s\n" "$ac_ct_DLLTOOL" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
- if test "x$ac_ct_DLLTOOL" = x; then
- DLLTOOL="false"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- DLLTOOL=$ac_ct_DLLTOOL
- fi
-else
- DLLTOOL="$ac_cv_prog_DLLTOOL"
-fi
-
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-
-
-
-
-
-
-
-
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5
-printf %s "checking how to associate runtime and link libraries... " >&6; }
-if test ${lt_cv_sharedlib_from_linklib_cmd+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- lt_cv_sharedlib_from_linklib_cmd='unknown'
-
-case $host_os in
-cygwin* | mingw* | pw32* | cegcc*)
- # two different shell functions defined in ltmain.sh;
- # decide which one to use based on capabilities of $DLLTOOL
- case `$DLLTOOL --help 2>&1` in
- *--identify-strict*)
- lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
- ;;
- *)
- lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
- ;;
- esac
- ;;
-*)
- # fallback: assume linklib IS sharedlib
- lt_cv_sharedlib_from_linklib_cmd=$ECHO
- ;;
-esac
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5
-printf "%s\n" "$lt_cv_sharedlib_from_linklib_cmd" >&6; }
-sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
-test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
-
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
- for ac_prog in ar
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_AR+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$AR"; then
- ac_cv_prog_AR="$AR" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-AR=$ac_cv_prog_AR
-if test -n "$AR"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
-printf "%s\n" "$AR" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
- test -n "$AR" && break
- done
-fi
-if test -z "$AR"; then
- ac_ct_AR=$AR
- for ac_prog in ar
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_ac_ct_AR+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$ac_ct_AR"; then
- ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_AR="$ac_prog"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_AR=$ac_cv_prog_ac_ct_AR
-if test -n "$ac_ct_AR"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
-printf "%s\n" "$ac_ct_AR" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
- test -n "$ac_ct_AR" && break
-done
-
- if test "x$ac_ct_AR" = x; then
- AR="false"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- AR=$ac_ct_AR
- fi
-fi
-
-: ${AR=ar}
-: ${AR_FLAGS=cru}
-
-
-
-
-
-
-
-
-
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5
-printf %s "checking for archiver @FILE support... " >&6; }
-if test ${lt_cv_ar_at_file+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- lt_cv_ar_at_file=no
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main (void)
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- echo conftest.$ac_objext > conftest.lst
- lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5'
- { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
- (eval $lt_ar_try) 2>&5
- ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
- if test 0 -eq "$ac_status"; then
- # Ensure the archiver fails upon bogus file names.
- rm -f conftest.$ac_objext libconftest.a
- { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
- (eval $lt_ar_try) 2>&5
- ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
- if test 0 -ne "$ac_status"; then
- lt_cv_ar_at_file=@
- fi
- fi
- rm -f conftest.* libconftest.a
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
-printf "%s\n" "$lt_cv_ar_at_file" >&6; }
-
-if test no = "$lt_cv_ar_at_file"; then
- archiver_list_spec=
-else
- archiver_list_spec=$lt_cv_ar_at_file
-fi
-
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_STRIP+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$STRIP"; then
- ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_STRIP="${ac_tool_prefix}strip"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-STRIP=$ac_cv_prog_STRIP
-if test -n "$STRIP"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
-printf "%s\n" "$STRIP" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_STRIP"; then
- ac_ct_STRIP=$STRIP
- # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_ac_ct_STRIP+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$ac_ct_STRIP"; then
- ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_STRIP="strip"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
-if test -n "$ac_ct_STRIP"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
-printf "%s\n" "$ac_ct_STRIP" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
- if test "x$ac_ct_STRIP" = x; then
- STRIP=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- STRIP=$ac_ct_STRIP
- fi
-else
- STRIP="$ac_cv_prog_STRIP"
-fi
-
-test -z "$STRIP" && STRIP=:
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_RANLIB+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$RANLIB"; then
- ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-RANLIB=$ac_cv_prog_RANLIB
-if test -n "$RANLIB"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
-printf "%s\n" "$RANLIB" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_RANLIB"; then
- ac_ct_RANLIB=$RANLIB
- # Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_ac_ct_RANLIB+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$ac_ct_RANLIB"; then
- ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_RANLIB="ranlib"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
-if test -n "$ac_ct_RANLIB"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
-printf "%s\n" "$ac_ct_RANLIB" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
- if test "x$ac_ct_RANLIB" = x; then
- RANLIB=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- RANLIB=$ac_ct_RANLIB
- fi
-else
- RANLIB="$ac_cv_prog_RANLIB"
-fi
-
-test -z "$RANLIB" && RANLIB=:
-
-
-
-
-
-
-# Determine commands to create old-style static archives.
-old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
-old_postinstall_cmds='chmod 644 $oldlib'
-old_postuninstall_cmds=
-
-if test -n "$RANLIB"; then
- case $host_os in
- bitrig* | openbsd*)
- old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
- ;;
- *)
- old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
- ;;
- esac
- old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
-fi
-
-case $host_os in
- darwin*)
- lock_old_archive_extraction=yes ;;
- *)
- lock_old_archive_extraction=no ;;
-esac
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-for ac_prog in gawk mawk nawk awk
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_AWK+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$AWK"; then
- ac_cv_prog_AWK="$AWK" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_AWK="$ac_prog"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-AWK=$ac_cv_prog_AWK
-if test -n "$AWK"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
-printf "%s\n" "$AWK" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
- test -n "$AWK" && break
-done
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-
-# Check for command to grab the raw symbol name followed by C symbol from nm.
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
-printf %s "checking command to parse $NM output from $compiler object... " >&6; }
-if test ${lt_cv_sys_global_symbol_pipe+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
-
-# These are sane defaults that work on at least a few old systems.
-# [They come from Ultrix. What could be older than Ultrix?!! ;)]
-
-# Character class describing NM global symbol codes.
-symcode='[BCDEGRST]'
-
-# Regexp to match symbols that can be accessed directly from C.
-sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
-
-# Define system-specific variables.
-case $host_os in
-aix*)
- symcode='[BCDT]'
- ;;
-cygwin* | mingw* | pw32* | cegcc*)
- symcode='[ABCDGISTW]'
- ;;
-hpux*)
- if test ia64 = "$host_cpu"; then
- symcode='[ABCDEGRST]'
- fi
- ;;
-irix* | nonstopux*)
- symcode='[BCDEGRST]'
- ;;
-osf*)
- symcode='[BCDEGQRST]'
- ;;
-solaris*)
- symcode='[BDRT]'
- ;;
-sco3.2v5*)
- symcode='[DT]'
- ;;
-sysv4.2uw2*)
- symcode='[DT]'
- ;;
-sysv5* | sco5v6* | unixware* | OpenUNIX*)
- symcode='[ABDT]'
- ;;
-sysv4)
- symcode='[DFNSTU]'
- ;;
-esac
-
-# If we're using GNU nm, then use its standard symbol codes.
-case `$NM -V 2>&1` in
-*GNU* | *'with BFD'*)
- symcode='[ABCDGIRSTW]' ;;
-esac
-
-if test "$lt_cv_nm_interface" = "MS dumpbin"; then
- # Gets list of data symbols to import.
- lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'"
- # Adjust the below global symbol transforms to fixup imported variables.
- lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'"
- lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'"
- lt_c_name_lib_hook="\
- -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\
- -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'"
-else
- # Disable hooks by default.
- lt_cv_sys_global_symbol_to_import=
- lt_cdecl_hook=
- lt_c_name_hook=
- lt_c_name_lib_hook=
-fi
-
-# Transform an extracted symbol line into a proper C declaration.
-# Some systems (esp. on ia64) link data and code symbols differently,
-# so use this general approach.
-lt_cv_sys_global_symbol_to_cdecl="sed -n"\
-$lt_cdecl_hook\
-" -e 's/^T .* \(.*\)$/extern int \1();/p'"\
-" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'"
-
-# Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n"\
-$lt_c_name_hook\
-" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\
-" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'"
-
-# Transform an extracted symbol line into symbol name with lib prefix and
-# symbol address.
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\
-$lt_c_name_lib_hook\
-" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\
-" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\
-" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'"
-
-# Handle CRLF in mingw tool chain
-opt_cr=
-case $build_os in
-mingw*)
- opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
- ;;
-esac
-
-# Try without a prefix underscore, then with it.
-for ac_symprfx in "" "_"; do
-
- # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
- symxfrm="\\1 $ac_symprfx\\2 \\2"
-
- # Write the raw and C identifiers.
- if test "$lt_cv_nm_interface" = "MS dumpbin"; then
- # Fake it for dumpbin and say T for any non-static function,
- # D for any global variable and I for any imported variable.
- # Also find C++ and __fastcall symbols from MSVC++,
- # which start with @ or ?.
- lt_cv_sys_global_symbol_pipe="$AWK '"\
-" {last_section=section; section=\$ 3};"\
-" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
-" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
-" /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\
-" /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\
-" /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\
-" \$ 0!~/External *\|/{next};"\
-" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
-" {if(hide[section]) next};"\
-" {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\
-" {split(\$ 0,a,/\||\r/); split(a[2],s)};"\
-" s[1]~/^[@?]/{print f,s[1],s[1]; next};"\
-" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\
-" ' prfx=^$ac_symprfx"
- else
- lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
- fi
- lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
-
- # Check to see that the pipe works correctly.
- pipe_works=no
-
- rm -f conftest*
- cat > conftest.$ac_ext <<_LT_EOF
-#ifdef __cplusplus
-extern "C" {
-#endif
-char nm_test_var;
-void nm_test_func(void);
-void nm_test_func(void){}
-#ifdef __cplusplus
-}
-#endif
-int main(){nm_test_var='a';nm_test_func();return(0);}
-_LT_EOF
-
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- # Now try to grab the symbols.
- nlist=conftest.nm
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5
- (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5
- ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && test -s "$nlist"; then
- # Try sorting and uniquifying the output.
- if sort "$nlist" | uniq > "$nlist"T; then
- mv -f "$nlist"T "$nlist"
- else
- rm -f "$nlist"T
- fi
-
- # Make sure that we snagged all the symbols we need.
- if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
- if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
- cat <<_LT_EOF > conftest.$ac_ext
-/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
-#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE
-/* DATA imports from DLLs on WIN32 can't be const, because runtime
- relocations are performed -- see ld's documentation on pseudo-relocs. */
-# define LT_DLSYM_CONST
-#elif defined __osf__
-/* This system does not cope well with relocations in const data. */
-# define LT_DLSYM_CONST
-#else
-# define LT_DLSYM_CONST const
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-_LT_EOF
- # Now generate the symbol file.
- eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
-
- cat <<_LT_EOF >> conftest.$ac_ext
-
-/* The mapping between symbol names and symbols. */
-LT_DLSYM_CONST struct {
- const char *name;
- void *address;
-}
-lt__PROGRAM__LTX_preloaded_symbols[] =
-{
- { "@PROGRAM@", (void *) 0 },
-_LT_EOF
- $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
- cat <<\_LT_EOF >> conftest.$ac_ext
- {0, (void *) 0}
-};
-
-/* This works around a problem in FreeBSD linker */
-#ifdef FREEBSD_WORKAROUND
-static const void *lt_preloaded_setup() {
- return lt__PROGRAM__LTX_preloaded_symbols;
-}
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-_LT_EOF
- # Now try linking the two files.
- mv conftest.$ac_objext conftstm.$ac_objext
- lt_globsym_save_LIBS=$LIBS
- lt_globsym_save_CFLAGS=$CFLAGS
- LIBS=conftstm.$ac_objext
- CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && test -s conftest$ac_exeext; then
- pipe_works=yes
- fi
- LIBS=$lt_globsym_save_LIBS
- CFLAGS=$lt_globsym_save_CFLAGS
- else
- echo "cannot find nm_test_func in $nlist" >&5
- fi
- else
- echo "cannot find nm_test_var in $nlist" >&5
- fi
- else
- echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
- fi
- else
- echo "$progname: failed program was:" >&5
- cat conftest.$ac_ext >&5
- fi
- rm -rf conftest* conftst*
-
- # Do not use the global_symbol_pipe unless it works.
- if test yes = "$pipe_works"; then
- break
- else
- lt_cv_sys_global_symbol_pipe=
- fi
-done
-
-fi
-
-if test -z "$lt_cv_sys_global_symbol_pipe"; then
- lt_cv_sys_global_symbol_to_cdecl=
-fi
-if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: failed" >&5
-printf "%s\n" "failed" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ok" >&5
-printf "%s\n" "ok" >&6; }
-fi
-
-# Response file support.
-if test "$lt_cv_nm_interface" = "MS dumpbin"; then
- nm_file_list_spec='@'
-elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then
- nm_file_list_spec='@'
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
-printf %s "checking for sysroot... " >&6; }
-
-# Check whether --with-sysroot was given.
-if test ${with_sysroot+y}
-then :
- withval=$with_sysroot;
-else $as_nop
- with_sysroot=no
-fi
-
-
-lt_sysroot=
-case $with_sysroot in #(
- yes)
- if test yes = "$GCC"; then
- lt_sysroot=`$CC --print-sysroot 2>/dev/null`
- fi
- ;; #(
- /*)
- lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
- ;; #(
- no|'')
- ;; #(
- *)
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5
-printf "%s\n" "$with_sysroot" >&6; }
- as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5
- ;;
-esac
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5
-printf "%s\n" "${lt_sysroot:-no}" >&6; }
-
-
-
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5
-printf %s "checking for a working dd... " >&6; }
-if test ${ac_cv_path_lt_DD+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- printf 0123456789abcdef0123456789abcdef >conftest.i
-cat conftest.i conftest.i >conftest2.i
-: ${lt_DD:=$DD}
-if test -z "$lt_DD"; then
- ac_path_lt_DD_found=false
- # Loop through the user's path and test for each of PROGNAME-LIST
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_prog in dd
- do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_lt_DD="$as_dir$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_lt_DD" || continue
-if "$ac_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
- cmp -s conftest.i conftest.out \
- && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=:
-fi
- $ac_path_lt_DD_found && break 3
- done
- done
- done
-IFS=$as_save_IFS
- if test -z "$ac_cv_path_lt_DD"; then
- :
- fi
-else
- ac_cv_path_lt_DD=$lt_DD
-fi
-
-rm -f conftest.i conftest2.i conftest.out
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5
-printf "%s\n" "$ac_cv_path_lt_DD" >&6; }
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5
-printf %s "checking how to truncate binary pipes... " >&6; }
-if test ${lt_cv_truncate_bin+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- printf 0123456789abcdef0123456789abcdef >conftest.i
-cat conftest.i conftest.i >conftest2.i
-lt_cv_truncate_bin=
-if "$ac_cv_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
- cmp -s conftest.i conftest.out \
- && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1"
-fi
-rm -f conftest.i conftest2.i conftest.out
-test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5
-printf "%s\n" "$lt_cv_truncate_bin" >&6; }
-
-
-
-
-
-
-
-# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.
-func_cc_basename ()
-{
- for cc_temp in $*""; do
- case $cc_temp in
- compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
- distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
- \-*) ;;
- *) break;;
- esac
- done
- func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
-}
-
-# Check whether --enable-libtool-lock was given.
-if test ${enable_libtool_lock+y}
-then :
- enableval=$enable_libtool_lock;
-fi
-
-test no = "$enable_libtool_lock" || enable_libtool_lock=yes
-
-# Some flags need to be propagated to the compiler or linker for good
-# libtool support.
-case $host in
-ia64-*-hpux*)
- # Find out what ABI is being produced by ac_compile, and set mode
- # options accordingly.
- echo 'int i;' > conftest.$ac_ext
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- case `/usr/bin/file conftest.$ac_objext` in
- *ELF-32*)
- HPUX_IA64_MODE=32
- ;;
- *ELF-64*)
- HPUX_IA64_MODE=64
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-*-*-irix6*)
- # Find out what ABI is being produced by ac_compile, and set linker
- # options accordingly.
- echo '#line '$LINENO' "configure"' > conftest.$ac_ext
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- if test yes = "$lt_cv_prog_gnu_ld"; then
- case `/usr/bin/file conftest.$ac_objext` in
- *32-bit*)
- LD="${LD-ld} -melf32bsmip"
- ;;
- *N32*)
- LD="${LD-ld} -melf32bmipn32"
- ;;
- *64-bit*)
- LD="${LD-ld} -melf64bmip"
- ;;
- esac
- else
- case `/usr/bin/file conftest.$ac_objext` in
- *32-bit*)
- LD="${LD-ld} -32"
- ;;
- *N32*)
- LD="${LD-ld} -n32"
- ;;
- *64-bit*)
- LD="${LD-ld} -64"
- ;;
- esac
- fi
- fi
- rm -rf conftest*
- ;;
-
-mips64*-*linux*)
- # Find out what ABI is being produced by ac_compile, and set linker
- # options accordingly.
- echo '#line '$LINENO' "configure"' > conftest.$ac_ext
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- emul=elf
- case `/usr/bin/file conftest.$ac_objext` in
- *32-bit*)
- emul="${emul}32"
- ;;
- *64-bit*)
- emul="${emul}64"
- ;;
- esac
- case `/usr/bin/file conftest.$ac_objext` in
- *MSB*)
- emul="${emul}btsmip"
- ;;
- *LSB*)
- emul="${emul}ltsmip"
- ;;
- esac
- case `/usr/bin/file conftest.$ac_objext` in
- *N32*)
- emul="${emul}n32"
- ;;
- esac
- LD="${LD-ld} -m $emul"
- fi
- rm -rf conftest*
- ;;
-
-x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
-s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
- # Find out what ABI is being produced by ac_compile, and set linker
- # options accordingly. Note that the listed cases only cover the
- # situations where additional linker options are needed (such as when
- # doing 32-bit compilation for a host where ld defaults to 64-bit, or
- # vice versa); the common cases where no linker options are needed do
- # not appear in the list.
- echo 'int i;' > conftest.$ac_ext
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- case `/usr/bin/file conftest.o` in
- *32-bit*)
- case $host in
- x86_64-*kfreebsd*-gnu)
- LD="${LD-ld} -m elf_i386_fbsd"
- ;;
- x86_64-*linux*)
- case `/usr/bin/file conftest.o` in
- *x86-64*)
- LD="${LD-ld} -m elf32_x86_64"
- ;;
- *)
- LD="${LD-ld} -m elf_i386"
- ;;
- esac
- ;;
- powerpc64le-*linux*)
- LD="${LD-ld} -m elf32lppclinux"
- ;;
- powerpc64-*linux*)
- LD="${LD-ld} -m elf32ppclinux"
- ;;
- s390x-*linux*)
- LD="${LD-ld} -m elf_s390"
- ;;
- sparc64-*linux*)
- LD="${LD-ld} -m elf32_sparc"
- ;;
- esac
- ;;
- *64-bit*)
- case $host in
- x86_64-*kfreebsd*-gnu)
- LD="${LD-ld} -m elf_x86_64_fbsd"
- ;;
- x86_64-*linux*)
- LD="${LD-ld} -m elf_x86_64"
- ;;
- powerpcle-*linux*)
- LD="${LD-ld} -m elf64lppc"
- ;;
- powerpc-*linux*)
- LD="${LD-ld} -m elf64ppc"
- ;;
- s390*-*linux*|s390*-*tpf*)
- LD="${LD-ld} -m elf64_s390"
- ;;
- sparc*-*linux*)
- LD="${LD-ld} -m elf64_sparc"
- ;;
- esac
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-
-*-*-sco3.2v5*)
- # On SCO OpenServer 5, we need -belf to get full-featured binaries.
- SAVE_CFLAGS=$CFLAGS
- CFLAGS="$CFLAGS -belf"
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
-printf %s "checking whether the C compiler needs -belf... " >&6; }
-if test ${lt_cv_cc_needs_belf+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main (void)
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
- lt_cv_cc_needs_belf=yes
-else $as_nop
- lt_cv_cc_needs_belf=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
- ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
-printf "%s\n" "$lt_cv_cc_needs_belf" >&6; }
- if test yes != "$lt_cv_cc_needs_belf"; then
- # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
- CFLAGS=$SAVE_CFLAGS
- fi
- ;;
-*-*solaris*)
- # Find out what ABI is being produced by ac_compile, and set linker
- # options accordingly.
- echo 'int i;' > conftest.$ac_ext
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- case `/usr/bin/file conftest.o` in
- *64-bit*)
- case $lt_cv_prog_gnu_ld in
- yes*)
- case $host in
- i?86-*-solaris*|x86_64-*-solaris*)
- LD="${LD-ld} -m elf_x86_64"
- ;;
- sparc*-*-solaris*)
- LD="${LD-ld} -m elf64_sparc"
- ;;
- esac
- # GNU ld 2.21 introduced _sol2 emulations. Use them if available.
- if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
- LD=${LD-ld}_sol2
- fi
- ;;
- *)
- if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
- LD="${LD-ld} -64"
- fi
- ;;
- esac
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-esac
-
-need_locks=$enable_libtool_lock
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args.
-set dummy ${ac_tool_prefix}mt; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_MANIFEST_TOOL+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$MANIFEST_TOOL"; then
- ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL
-if test -n "$MANIFEST_TOOL"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5
-printf "%s\n" "$MANIFEST_TOOL" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_MANIFEST_TOOL"; then
- ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL
- # Extract the first word of "mt", so it can be a program name with args.
-set dummy mt; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_ac_ct_MANIFEST_TOOL+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$ac_ct_MANIFEST_TOOL"; then
- ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_MANIFEST_TOOL="mt"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL
-if test -n "$ac_ct_MANIFEST_TOOL"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5
-printf "%s\n" "$ac_ct_MANIFEST_TOOL" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
- if test "x$ac_ct_MANIFEST_TOOL" = x; then
- MANIFEST_TOOL=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL
- fi
-else
- MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL"
-fi
-
-test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5
-printf %s "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }
-if test ${lt_cv_path_mainfest_tool+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- lt_cv_path_mainfest_tool=no
- echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5
- $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
- cat conftest.err >&5
- if $GREP 'Manifest Tool' conftest.out > /dev/null; then
- lt_cv_path_mainfest_tool=yes
- fi
- rm -f conftest*
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
-printf "%s\n" "$lt_cv_path_mainfest_tool" >&6; }
-if test yes != "$lt_cv_path_mainfest_tool"; then
- MANIFEST_TOOL=:
-fi
-
-
-
-
-
-
- case $host_os in
- rhapsody* | darwin*)
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
-set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_DSYMUTIL+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$DSYMUTIL"; then
- ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-DSYMUTIL=$ac_cv_prog_DSYMUTIL
-if test -n "$DSYMUTIL"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
-printf "%s\n" "$DSYMUTIL" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_DSYMUTIL"; then
- ac_ct_DSYMUTIL=$DSYMUTIL
- # Extract the first word of "dsymutil", so it can be a program name with args.
-set dummy dsymutil; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_ac_ct_DSYMUTIL+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$ac_ct_DSYMUTIL"; then
- ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
-if test -n "$ac_ct_DSYMUTIL"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5
-printf "%s\n" "$ac_ct_DSYMUTIL" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
- if test "x$ac_ct_DSYMUTIL" = x; then
- DSYMUTIL=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- DSYMUTIL=$ac_ct_DSYMUTIL
- fi
-else
- DSYMUTIL="$ac_cv_prog_DSYMUTIL"
-fi
-
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
-set dummy ${ac_tool_prefix}nmedit; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_NMEDIT+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$NMEDIT"; then
- ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-NMEDIT=$ac_cv_prog_NMEDIT
-if test -n "$NMEDIT"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
-printf "%s\n" "$NMEDIT" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_NMEDIT"; then
- ac_ct_NMEDIT=$NMEDIT
- # Extract the first word of "nmedit", so it can be a program name with args.
-set dummy nmedit; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_ac_ct_NMEDIT+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$ac_ct_NMEDIT"; then
- ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_NMEDIT="nmedit"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
-if test -n "$ac_ct_NMEDIT"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5
-printf "%s\n" "$ac_ct_NMEDIT" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
- if test "x$ac_ct_NMEDIT" = x; then
- NMEDIT=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- NMEDIT=$ac_ct_NMEDIT
- fi
-else
- NMEDIT="$ac_cv_prog_NMEDIT"
-fi
-
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args.
-set dummy ${ac_tool_prefix}lipo; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_LIPO+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$LIPO"; then
- ac_cv_prog_LIPO="$LIPO" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-LIPO=$ac_cv_prog_LIPO
-if test -n "$LIPO"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
-printf "%s\n" "$LIPO" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_LIPO"; then
- ac_ct_LIPO=$LIPO
- # Extract the first word of "lipo", so it can be a program name with args.
-set dummy lipo; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_ac_ct_LIPO+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$ac_ct_LIPO"; then
- ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_LIPO="lipo"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO
-if test -n "$ac_ct_LIPO"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5
-printf "%s\n" "$ac_ct_LIPO" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
- if test "x$ac_ct_LIPO" = x; then
- LIPO=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- LIPO=$ac_ct_LIPO
- fi
-else
- LIPO="$ac_cv_prog_LIPO"
-fi
-
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args.
-set dummy ${ac_tool_prefix}otool; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_OTOOL+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$OTOOL"; then
- ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-OTOOL=$ac_cv_prog_OTOOL
-if test -n "$OTOOL"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
-printf "%s\n" "$OTOOL" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_OTOOL"; then
- ac_ct_OTOOL=$OTOOL
- # Extract the first word of "otool", so it can be a program name with args.
-set dummy otool; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_ac_ct_OTOOL+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$ac_ct_OTOOL"; then
- ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_OTOOL="otool"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL
-if test -n "$ac_ct_OTOOL"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5
-printf "%s\n" "$ac_ct_OTOOL" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
- if test "x$ac_ct_OTOOL" = x; then
- OTOOL=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- OTOOL=$ac_ct_OTOOL
- fi
-else
- OTOOL="$ac_cv_prog_OTOOL"
-fi
-
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args.
-set dummy ${ac_tool_prefix}otool64; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_OTOOL64+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$OTOOL64"; then
- ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-OTOOL64=$ac_cv_prog_OTOOL64
-if test -n "$OTOOL64"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
-printf "%s\n" "$OTOOL64" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_OTOOL64"; then
- ac_ct_OTOOL64=$OTOOL64
- # Extract the first word of "otool64", so it can be a program name with args.
-set dummy otool64; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_ac_ct_OTOOL64+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$ac_ct_OTOOL64"; then
- ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_OTOOL64="otool64"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64
-if test -n "$ac_ct_OTOOL64"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5
-printf "%s\n" "$ac_ct_OTOOL64" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
- if test "x$ac_ct_OTOOL64" = x; then
- OTOOL64=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- OTOOL64=$ac_ct_OTOOL64
- fi
-else
- OTOOL64="$ac_cv_prog_OTOOL64"
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
-printf %s "checking for -single_module linker flag... " >&6; }
-if test ${lt_cv_apple_cc_single_mod+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- lt_cv_apple_cc_single_mod=no
- if test -z "$LT_MULTI_MODULE"; then
- # By default we will add the -single_module flag. You can override
- # by either setting the environment variable LT_MULTI_MODULE
- # non-empty at configure time, or by adding -multi_module to the
- # link flags.
- rm -rf libconftest.dylib*
- echo "int foo(void){return 1;}" > conftest.c
- echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
--dynamiclib -Wl,-single_module conftest.c" >&5
- $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
- -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
- _lt_result=$?
- # If there is a non-empty error log, and "single_module"
- # appears in it, assume the flag caused a linker warning
- if test -s conftest.err && $GREP single_module conftest.err; then
- cat conftest.err >&5
- # Otherwise, if the output was created with a 0 exit code from
- # the compiler, it worked.
- elif test -f libconftest.dylib && test 0 = "$_lt_result"; then
- lt_cv_apple_cc_single_mod=yes
- else
- cat conftest.err >&5
- fi
- rm -rf libconftest.dylib*
- rm -f conftest.*
- fi
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
-printf "%s\n" "$lt_cv_apple_cc_single_mod" >&6; }
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
-printf %s "checking for -exported_symbols_list linker flag... " >&6; }
-if test ${lt_cv_ld_exported_symbols_list+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- lt_cv_ld_exported_symbols_list=no
- save_LDFLAGS=$LDFLAGS
- echo "_main" > conftest.sym
- LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main (void)
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
- lt_cv_ld_exported_symbols_list=yes
-else $as_nop
- lt_cv_ld_exported_symbols_list=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
- LDFLAGS=$save_LDFLAGS
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
-printf "%s\n" "$lt_cv_ld_exported_symbols_list" >&6; }
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
-printf %s "checking for -force_load linker flag... " >&6; }
-if test ${lt_cv_ld_force_load+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- lt_cv_ld_force_load=no
- cat > conftest.c << _LT_EOF
-int forced_loaded() { return 2;}
-_LT_EOF
- echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5
- $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
- echo "$AR cru libconftest.a conftest.o" >&5
- $AR cru libconftest.a conftest.o 2>&5
- echo "$RANLIB libconftest.a" >&5
- $RANLIB libconftest.a 2>&5
- cat > conftest.c << _LT_EOF
-int main() { return 0;}
-_LT_EOF
- echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5
- $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
- _lt_result=$?
- if test -s conftest.err && $GREP force_load conftest.err; then
- cat conftest.err >&5
- elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then
- lt_cv_ld_force_load=yes
- else
- cat conftest.err >&5
- fi
- rm -f conftest.err libconftest.a conftest conftest.c
- rm -rf conftest.dSYM
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5
-printf "%s\n" "$lt_cv_ld_force_load" >&6; }
- case $host_os in
- rhapsody* | darwin1.[012])
- _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;;
- darwin1.*)
- _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
- darwin*) # darwin 5.x on
- # if running on 10.5 or later, the deployment target defaults
- # to the OS version, if on x86, and 10.4, the deployment
- # target defaults to 10.4. Don't you love it?
- case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
- 10.0,*86*-darwin8*|10.0,*-darwin[91]*)
- _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
- 10.[012][,.]*)
- _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
- 10.*)
- _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
- esac
- ;;
- esac
- if test yes = "$lt_cv_apple_cc_single_mod"; then
- _lt_dar_single_mod='$single_module'
- fi
- if test yes = "$lt_cv_ld_exported_symbols_list"; then
- _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym'
- else
- _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib'
- fi
- if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then
- _lt_dsymutil='~$DSYMUTIL $lib || :'
- else
- _lt_dsymutil=
- fi
- ;;
- esac
-
-# func_munge_path_list VARIABLE PATH
-# -----------------------------------
-# VARIABLE is name of variable containing _space_ separated list of
-# directories to be munged by the contents of PATH, which is string
-# having a format:
-# "DIR[:DIR]:"
-# string "DIR[ DIR]" will be prepended to VARIABLE
-# ":DIR[:DIR]"
-# string "DIR[ DIR]" will be appended to VARIABLE
-# "DIRP[:DIRP]::[DIRA:]DIRA"
-# string "DIRP[ DIRP]" will be prepended to VARIABLE and string
-# "DIRA[ DIRA]" will be appended to VARIABLE
-# "DIR[:DIR]"
-# VARIABLE will be replaced by "DIR[ DIR]"
-func_munge_path_list ()
-{
- case x$2 in
- x)
- ;;
- *:)
- eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\"
- ;;
- x:*)
- eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\"
- ;;
- *::*)
- eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\"
- eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\"
- ;;
- *)
- eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\"
- ;;
- esac
-}
-
-ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_dlfcn_h" = xyes
-then :
- printf "%s\n" "#define HAVE_DLFCN_H 1" >>confdefs.h
-
-fi
-
-
-
-
-
-
-
-# Set options
-
-
-
- enable_dlopen=no
-
-
- enable_win32_dll=no
-
-
- # Check whether --enable-shared was given.
-if test ${enable_shared+y}
-then :
- enableval=$enable_shared; p=${PACKAGE-default}
- case $enableval in
- yes) enable_shared=yes ;;
- no) enable_shared=no ;;
- *)
- enable_shared=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
- for pkg in $enableval; do
- IFS=$lt_save_ifs
- if test "X$pkg" = "X$p"; then
- enable_shared=yes
- fi
- done
- IFS=$lt_save_ifs
- ;;
- esac
-else $as_nop
- enable_shared=yes
-fi
-
-
-
-
-
-
-
-
-
- # Check whether --enable-static was given.
-if test ${enable_static+y}
-then :
- enableval=$enable_static; p=${PACKAGE-default}
- case $enableval in
- yes) enable_static=yes ;;
- no) enable_static=no ;;
- *)
- enable_static=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
- for pkg in $enableval; do
- IFS=$lt_save_ifs
- if test "X$pkg" = "X$p"; then
- enable_static=yes
- fi
- done
- IFS=$lt_save_ifs
- ;;
- esac
-else $as_nop
- enable_static=yes
-fi
-
-
-
-
-
-
-
-
-
-
-# Check whether --with-pic was given.
-if test ${with_pic+y}
-then :
- withval=$with_pic; lt_p=${PACKAGE-default}
- case $withval in
- yes|no) pic_mode=$withval ;;
- *)
- pic_mode=default
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
- for lt_pkg in $withval; do
- IFS=$lt_save_ifs
- if test "X$lt_pkg" = "X$lt_p"; then
- pic_mode=yes
- fi
- done
- IFS=$lt_save_ifs
- ;;
- esac
-else $as_nop
- pic_mode=default
-fi
-
-
-
-
-
-
-
-
- # Check whether --enable-fast-install was given.
-if test ${enable_fast_install+y}
-then :
- enableval=$enable_fast_install; p=${PACKAGE-default}
- case $enableval in
- yes) enable_fast_install=yes ;;
- no) enable_fast_install=no ;;
- *)
- enable_fast_install=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
- for pkg in $enableval; do
- IFS=$lt_save_ifs
- if test "X$pkg" = "X$p"; then
- enable_fast_install=yes
- fi
- done
- IFS=$lt_save_ifs
- ;;
- esac
-else $as_nop
- enable_fast_install=yes
-fi
-
-
-
-
-
-
-
-
- shared_archive_member_spec=
-case $host,$enable_shared in
-power*-*-aix[5-9]*,yes)
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5
-printf %s "checking which variant of shared library versioning to provide... " >&6; }
-
-# Check whether --with-aix-soname was given.
-if test ${with_aix_soname+y}
-then :
- withval=$with_aix_soname; case $withval in
- aix|svr4|both)
- ;;
- *)
- as_fn_error $? "Unknown argument to --with-aix-soname" "$LINENO" 5
- ;;
- esac
- lt_cv_with_aix_soname=$with_aix_soname
-else $as_nop
- if test ${lt_cv_with_aix_soname+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- lt_cv_with_aix_soname=aix
-fi
-
- with_aix_soname=$lt_cv_with_aix_soname
-fi
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5
-printf "%s\n" "$with_aix_soname" >&6; }
- if test aix != "$with_aix_soname"; then
- # For the AIX way of multilib, we name the shared archive member
- # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o',
- # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File.
- # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag,
- # the AIX toolchain works better with OBJECT_MODE set (default 32).
- if test 64 = "${OBJECT_MODE-32}"; then
- shared_archive_member_spec=shr_64
- else
- shared_archive_member_spec=shr
- fi
- fi
- ;;
-*)
- with_aix_soname=aix
- ;;
-esac
-
-
-
-
-
-
-
-
-
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS=$ltmain
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-test -z "$LN_S" && LN_S="ln -s"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-if test -n "${ZSH_VERSION+set}"; then
- setopt NO_GLOB_SUBST
-fi
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
-printf %s "checking for objdir... " >&6; }
-if test ${lt_cv_objdir+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- rm -f .libs 2>/dev/null
-mkdir .libs 2>/dev/null
-if test -d .libs; then
- lt_cv_objdir=.libs
-else
- # MS-DOS does not allow filenames that begin with a dot.
- lt_cv_objdir=_libs
-fi
-rmdir .libs 2>/dev/null
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
-printf "%s\n" "$lt_cv_objdir" >&6; }
-objdir=$lt_cv_objdir
-
-
-
-
-
-printf "%s\n" "#define LT_OBJDIR \"$lt_cv_objdir/\"" >>confdefs.h
-
-
-
-
-case $host_os in
-aix3*)
- # AIX sometimes has problems with the GCC collect2 program. For some
- # reason, if we set the COLLECT_NAMES environment variable, the problems
- # vanish in a puff of smoke.
- if test set != "${COLLECT_NAMES+set}"; then
- COLLECT_NAMES=
- export COLLECT_NAMES
- fi
- ;;
-esac
-
-# Global variables:
-ofile=libtool
-can_build_shared=yes
-
-# All known linkers require a '.a' archive for static linking (except MSVC,
-# which needs '.lib').
-libext=a
-
-with_gnu_ld=$lt_cv_prog_gnu_ld
-
-old_CC=$CC
-old_CFLAGS=$CFLAGS
-
-# Set sane defaults for various variables
-test -z "$CC" && CC=cc
-test -z "$LTCC" && LTCC=$CC
-test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
-test -z "$LD" && LD=ld
-test -z "$ac_objext" && ac_objext=o
-
-func_cc_basename $compiler
-cc_basename=$func_cc_basename_result
-
-
-# Only perform the check for file, if the check method requires it
-test -z "$MAGIC_CMD" && MAGIC_CMD=file
-case $deplibs_check_method in
-file_magic*)
- if test "$file_magic_cmd" = '$MAGIC_CMD'; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
-printf %s "checking for ${ac_tool_prefix}file... " >&6; }
-if test ${lt_cv_path_MAGIC_CMD+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- case $MAGIC_CMD in
-[\\/*] | ?:[\\/]*)
- lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
- ;;
-*)
- lt_save_MAGIC_CMD=$MAGIC_CMD
- lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
- ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
- for ac_dir in $ac_dummy; do
- IFS=$lt_save_ifs
- test -z "$ac_dir" && ac_dir=.
- if test -f "$ac_dir/${ac_tool_prefix}file"; then
- lt_cv_path_MAGIC_CMD=$ac_dir/"${ac_tool_prefix}file"
- if test -n "$file_magic_test_file"; then
- case $deplibs_check_method in
- "file_magic "*)
- file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
- MAGIC_CMD=$lt_cv_path_MAGIC_CMD
- if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
- $EGREP "$file_magic_regex" > /dev/null; then
- :
- else
- cat <<_LT_EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such. This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem. Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-_LT_EOF
- fi ;;
- esac
- fi
- break
- fi
- done
- IFS=$lt_save_ifs
- MAGIC_CMD=$lt_save_MAGIC_CMD
- ;;
-esac
-fi
-
-MAGIC_CMD=$lt_cv_path_MAGIC_CMD
-if test -n "$MAGIC_CMD"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
-printf "%s\n" "$MAGIC_CMD" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
-
-
-
-if test -z "$lt_cv_path_MAGIC_CMD"; then
- if test -n "$ac_tool_prefix"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for file" >&5
-printf %s "checking for file... " >&6; }
-if test ${lt_cv_path_MAGIC_CMD+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- case $MAGIC_CMD in
-[\\/*] | ?:[\\/]*)
- lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
- ;;
-*)
- lt_save_MAGIC_CMD=$MAGIC_CMD
- lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
- ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
- for ac_dir in $ac_dummy; do
- IFS=$lt_save_ifs
- test -z "$ac_dir" && ac_dir=.
- if test -f "$ac_dir/file"; then
- lt_cv_path_MAGIC_CMD=$ac_dir/"file"
- if test -n "$file_magic_test_file"; then
- case $deplibs_check_method in
- "file_magic "*)
- file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
- MAGIC_CMD=$lt_cv_path_MAGIC_CMD
- if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
- $EGREP "$file_magic_regex" > /dev/null; then
- :
- else
- cat <<_LT_EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such. This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem. Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-_LT_EOF
- fi ;;
- esac
- fi
- break
- fi
- done
- IFS=$lt_save_ifs
- MAGIC_CMD=$lt_save_MAGIC_CMD
- ;;
-esac
-fi
-
-MAGIC_CMD=$lt_cv_path_MAGIC_CMD
-if test -n "$MAGIC_CMD"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
-printf "%s\n" "$MAGIC_CMD" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
- else
- MAGIC_CMD=:
- fi
-fi
-
- fi
- ;;
-esac
-
-# Use C for the default configuration in the libtool script
-
-lt_save_CC=$CC
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-# Source file extension for C test sources.
-ac_ext=c
-
-# Object file extension for compiled C test sources.
-objext=o
-objext=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='int main(){return(0);}'
-
-
-
-
-
-
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-# Save the default compiler, since it gets overwritten when the other
-# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
-compiler_DEFAULT=$CC
-
-# save warnings/boilerplate of simple test code
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_compile_test_code" >conftest.$ac_ext
-eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_compiler_boilerplate=`cat conftest.err`
-$RM conftest*
-
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_linker_boilerplate=`cat conftest.err`
-$RM -r conftest*
-
-
-if test -n "$compiler"; then
-
-lt_prog_compiler_no_builtin_flag=
-
-if test yes = "$GCC"; then
- case $cc_basename in
- nvcc*)
- lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;;
- *)
- lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;;
- esac
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
-printf %s "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
-if test ${lt_cv_prog_compiler_rtti_exceptions+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- lt_cv_prog_compiler_rtti_exceptions=no
- ac_outfile=conftest.$ac_objext
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
- lt_compiler_flag="-fno-rtti -fno-exceptions" ## exclude from sc_useless_quotes_in_assignment
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- # The option is referenced via a variable to avoid confusing sed.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>conftest.err)
- ac_status=$?
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s "$ac_outfile"; then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings other than the usual output.
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_rtti_exceptions=yes
- fi
- fi
- $RM conftest*
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
-printf "%s\n" "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
-
-if test yes = "$lt_cv_prog_compiler_rtti_exceptions"; then
- lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
-else
- :
-fi
-
-fi
-
-
-
-
-
-
- lt_prog_compiler_wl=
-lt_prog_compiler_pic=
-lt_prog_compiler_static=
-
-
- if test yes = "$GCC"; then
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_static='-static'
-
- case $host_os in
- aix*)
- # All AIX code is PIC.
- if test ia64 = "$host_cpu"; then
- # AIX 5 now supports IA64 processor
- lt_prog_compiler_static='-Bstatic'
- fi
- lt_prog_compiler_pic='-fPIC'
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- lt_prog_compiler_pic='-fPIC'
- ;;
- m68k)
- # FIXME: we need at least 68020 code to build shared libraries, but
- # adding the '-m68020' flag to GCC prevents building anything better,
- # like '-m68040'.
- lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
- ;;
- esac
- ;;
-
- beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
- # PIC is the default for these OSes.
- ;;
-
- mingw* | cygwin* | pw32* | os2* | cegcc*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- # Although the cygwin gcc ignores -fPIC, still need this for old-style
- # (--disable-auto-import) libraries
- lt_prog_compiler_pic='-DDLL_EXPORT'
- case $host_os in
- os2*)
- lt_prog_compiler_static='$wl-static'
- ;;
- esac
- ;;
-
- darwin* | rhapsody*)
- # PIC is the default on this platform
- # Common symbols not allowed in MH_DYLIB files
- lt_prog_compiler_pic='-fno-common'
- ;;
-
- haiku*)
- # PIC is the default for Haiku.
- # The "-static" flag exists, but is broken.
- lt_prog_compiler_static=
- ;;
-
- hpux*)
- # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
- # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
- # sets the default TLS model and affects inlining.
- case $host_cpu in
- hppa*64*)
- # +Z the default
- ;;
- *)
- lt_prog_compiler_pic='-fPIC'
- ;;
- esac
- ;;
-
- interix[3-9]*)
- # Interix 3.x gcc -fpic/-fPIC options generate broken code.
- # Instead, we relocate shared libraries at runtime.
- ;;
-
- msdosdjgpp*)
- # Just because we use GCC doesn't mean we suddenly get shared libraries
- # on systems that don't support them.
- lt_prog_compiler_can_build_shared=no
- enable_shared=no
- ;;
-
- *nto* | *qnx*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- lt_prog_compiler_pic='-fPIC -shared'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec; then
- lt_prog_compiler_pic=-Kconform_pic
- fi
- ;;
-
- *)
- lt_prog_compiler_pic='-fPIC'
- ;;
- esac
-
- case $cc_basename in
- nvcc*) # Cuda Compiler Driver 2.2
- lt_prog_compiler_wl='-Xlinker '
- if test -n "$lt_prog_compiler_pic"; then
- lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic"
- fi
- ;;
- esac
- else
- # PORTME Check for flag to pass linker flags through the system compiler.
- case $host_os in
- aix*)
- lt_prog_compiler_wl='-Wl,'
- if test ia64 = "$host_cpu"; then
- # AIX 5 now supports IA64 processor
- lt_prog_compiler_static='-Bstatic'
- else
- lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
- fi
- ;;
-
- darwin* | rhapsody*)
- # PIC is the default on this platform
- # Common symbols not allowed in MH_DYLIB files
- lt_prog_compiler_pic='-fno-common'
- case $cc_basename in
- nagfor*)
- # NAG Fortran compiler
- lt_prog_compiler_wl='-Wl,-Wl,,'
- lt_prog_compiler_pic='-PIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
- esac
- ;;
-
- mingw* | cygwin* | pw32* | os2* | cegcc*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- lt_prog_compiler_pic='-DDLL_EXPORT'
- case $host_os in
- os2*)
- lt_prog_compiler_static='$wl-static'
- ;;
- esac
- ;;
-
- hpux9* | hpux10* | hpux11*)
- lt_prog_compiler_wl='-Wl,'
- # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
- # not for PA HP-UX.
- case $host_cpu in
- hppa*64*|ia64*)
- # +Z the default
- ;;
- *)
- lt_prog_compiler_pic='+Z'
- ;;
- esac
- # Is there a better lt_prog_compiler_static that works with the bundled CC?
- lt_prog_compiler_static='$wl-a ${wl}archive'
- ;;
-
- irix5* | irix6* | nonstopux*)
- lt_prog_compiler_wl='-Wl,'
- # PIC (with -KPIC) is the default.
- lt_prog_compiler_static='-non_shared'
- ;;
-
- linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
- case $cc_basename in
- # old Intel for x86_64, which still supported -KPIC.
- ecc*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-static'
- ;;
- # icc used to be incompatible with GCC.
- # ICC 10 doesn't accept -KPIC any more.
- icc* | ifort*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-fPIC'
- lt_prog_compiler_static='-static'
- ;;
- # Lahey Fortran 8.1.
- lf95*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='--shared'
- lt_prog_compiler_static='--static'
- ;;
- nagfor*)
- # NAG Fortran compiler
- lt_prog_compiler_wl='-Wl,-Wl,,'
- lt_prog_compiler_pic='-PIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
- tcc*)
- # Fabrice Bellard et al's Tiny C Compiler
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-fPIC'
- lt_prog_compiler_static='-static'
- ;;
- pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
- # Portland Group compilers (*not* the Pentium gcc compiler,
- # which looks to be a dead project)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-fpic'
- lt_prog_compiler_static='-Bstatic'
- ;;
- ccc*)
- lt_prog_compiler_wl='-Wl,'
- # All Alpha code is PIC.
- lt_prog_compiler_static='-non_shared'
- ;;
- xl* | bgxl* | bgf* | mpixl*)
- # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-qpic'
- lt_prog_compiler_static='-qstaticlink'
- ;;
- *)
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*)
- # Sun Fortran 8.3 passes all unrecognized flags to the linker
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- lt_prog_compiler_wl=''
- ;;
- *Sun\ F* | *Sun*Fortran*)
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- lt_prog_compiler_wl='-Qoption ld '
- ;;
- *Sun\ C*)
- # Sun C 5.9
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- lt_prog_compiler_wl='-Wl,'
- ;;
- *Intel*\ [CF]*Compiler*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-fPIC'
- lt_prog_compiler_static='-static'
- ;;
- *Portland\ Group*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-fpic'
- lt_prog_compiler_static='-Bstatic'
- ;;
- esac
- ;;
- esac
- ;;
-
- newsos6)
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
-
- *nto* | *qnx*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- lt_prog_compiler_pic='-fPIC -shared'
- ;;
-
- osf3* | osf4* | osf5*)
- lt_prog_compiler_wl='-Wl,'
- # All OSF/1 code is PIC.
- lt_prog_compiler_static='-non_shared'
- ;;
-
- rdos*)
- lt_prog_compiler_static='-non_shared'
- ;;
-
- solaris*)
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- case $cc_basename in
- f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
- lt_prog_compiler_wl='-Qoption ld ';;
- *)
- lt_prog_compiler_wl='-Wl,';;
- esac
- ;;
-
- sunos4*)
- lt_prog_compiler_wl='-Qoption ld '
- lt_prog_compiler_pic='-PIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
-
- sysv4 | sysv4.2uw2* | sysv4.3*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec; then
- lt_prog_compiler_pic='-Kconform_pic'
- lt_prog_compiler_static='-Bstatic'
- fi
- ;;
-
- sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
-
- unicos*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_can_build_shared=no
- ;;
-
- uts4*)
- lt_prog_compiler_pic='-pic'
- lt_prog_compiler_static='-Bstatic'
- ;;
-
- *)
- lt_prog_compiler_can_build_shared=no
- ;;
- esac
- fi
-
-case $host_os in
- # For platforms that do not support PIC, -DPIC is meaningless:
- *djgpp*)
- lt_prog_compiler_pic=
- ;;
- *)
- lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
- ;;
-esac
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
-printf %s "checking for $compiler option to produce PIC... " >&6; }
-if test ${lt_cv_prog_compiler_pic+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- lt_cv_prog_compiler_pic=$lt_prog_compiler_pic
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
-printf "%s\n" "$lt_cv_prog_compiler_pic" >&6; }
-lt_prog_compiler_pic=$lt_cv_prog_compiler_pic
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$lt_prog_compiler_pic"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
-printf %s "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
-if test ${lt_cv_prog_compiler_pic_works+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- lt_cv_prog_compiler_pic_works=no
- ac_outfile=conftest.$ac_objext
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
- lt_compiler_flag="$lt_prog_compiler_pic -DPIC" ## exclude from sc_useless_quotes_in_assignment
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- # The option is referenced via a variable to avoid confusing sed.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>conftest.err)
- ac_status=$?
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s "$ac_outfile"; then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings other than the usual output.
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_pic_works=yes
- fi
- fi
- $RM conftest*
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
-printf "%s\n" "$lt_cv_prog_compiler_pic_works" >&6; }
-
-if test yes = "$lt_cv_prog_compiler_pic_works"; then
- case $lt_prog_compiler_pic in
- "" | " "*) ;;
- *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
- esac
-else
- lt_prog_compiler_pic=
- lt_prog_compiler_can_build_shared=no
-fi
-
-fi
-
-
-
-
-
-
-
-
-
-
-
-#
-# Check to make sure the static flag actually works.
-#
-wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
-printf %s "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
-if test ${lt_cv_prog_compiler_static_works+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- lt_cv_prog_compiler_static_works=no
- save_LDFLAGS=$LDFLAGS
- LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
- echo "$lt_simple_link_test_code" > conftest.$ac_ext
- if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
- # The linker can only warn and ignore the option if not recognized
- # So say no if there are warnings
- if test -s conftest.err; then
- # Append any errors to the config.log.
- cat conftest.err 1>&5
- $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if diff conftest.exp conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_static_works=yes
- fi
- else
- lt_cv_prog_compiler_static_works=yes
- fi
- fi
- $RM -r conftest*
- LDFLAGS=$save_LDFLAGS
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
-printf "%s\n" "$lt_cv_prog_compiler_static_works" >&6; }
-
-if test yes = "$lt_cv_prog_compiler_static_works"; then
- :
-else
- lt_prog_compiler_static=
-fi
-
-
-
-
-
-
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if test ${lt_cv_prog_compiler_c_o+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- lt_cv_prog_compiler_c_o=no
- $RM -r conftest 2>/dev/null
- mkdir conftest
- cd conftest
- mkdir out
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- lt_compiler_flag="-o out/conftest2.$ac_objext"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>out/conftest.err)
- ac_status=$?
- cat out/conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s out/conftest2.$ac_objext
- then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
- $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
- if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_c_o=yes
- fi
- fi
- chmod u+w . 2>&5
- $RM conftest*
- # SGI C++ compiler will create directory out/ii_files/ for
- # template instantiation
- test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
- $RM out/* && rmdir out
- cd ..
- $RM -r conftest
- $RM conftest*
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
-printf "%s\n" "$lt_cv_prog_compiler_c_o" >&6; }
-
-
-
-
-
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if test ${lt_cv_prog_compiler_c_o+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- lt_cv_prog_compiler_c_o=no
- $RM -r conftest 2>/dev/null
- mkdir conftest
- cd conftest
- mkdir out
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- lt_compiler_flag="-o out/conftest2.$ac_objext"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>out/conftest.err)
- ac_status=$?
- cat out/conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s out/conftest2.$ac_objext
- then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
- $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
- if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_c_o=yes
- fi
- fi
- chmod u+w . 2>&5
- $RM conftest*
- # SGI C++ compiler will create directory out/ii_files/ for
- # template instantiation
- test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
- $RM out/* && rmdir out
- cd ..
- $RM -r conftest
- $RM conftest*
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
-printf "%s\n" "$lt_cv_prog_compiler_c_o" >&6; }
-
-
-
-
-hard_links=nottested
-if test no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; then
- # do not overwrite the value of need_locks provided by the user
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
-printf %s "checking if we can lock with hard links... " >&6; }
- hard_links=yes
- $RM conftest*
- ln conftest.a conftest.b 2>/dev/null && hard_links=no
- touch conftest.a
- ln conftest.a conftest.b 2>&5 || hard_links=no
- ln conftest.a conftest.b 2>/dev/null && hard_links=no
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
-printf "%s\n" "$hard_links" >&6; }
- if test no = "$hard_links"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5
-printf "%s\n" "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;}
- need_locks=warn
- fi
-else
- need_locks=no
-fi
-
-
-
-
-
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-printf %s "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
-
- runpath_var=
- allow_undefined_flag=
- always_export_symbols=no
- archive_cmds=
- archive_expsym_cmds=
- compiler_needs_object=no
- enable_shared_with_static_runtimes=no
- export_dynamic_flag_spec=
- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
- hardcode_automatic=no
- hardcode_direct=no
- hardcode_direct_absolute=no
- hardcode_libdir_flag_spec=
- hardcode_libdir_separator=
- hardcode_minus_L=no
- hardcode_shlibpath_var=unsupported
- inherit_rpath=no
- link_all_deplibs=unknown
- module_cmds=
- module_expsym_cmds=
- old_archive_from_new_cmds=
- old_archive_from_expsyms_cmds=
- thread_safe_flag_spec=
- whole_archive_flag_spec=
- # include_expsyms should be a list of space-separated symbols to be *always*
- # included in the symbol list
- include_expsyms=
- # exclude_expsyms can be an extended regexp of symbols to exclude
- # it will be wrapped by ' (' and ')$', so one must not match beginning or
- # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc',
- # as well as any symbol that contains 'd'.
- exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
- # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
- # platforms (ab)use it in PIC code, but their linkers get confused if
- # the symbol is explicitly referenced. Since portable code cannot
- # rely on this symbol name, it's probably fine to never include it in
- # preloaded symbol tables.
- # Exclude shared library initialization/finalization symbols.
- extract_expsyms_cmds=
-
- case $host_os in
- cygwin* | mingw* | pw32* | cegcc*)
- # FIXME: the MSVC++ port hasn't been tested in a loooong time
- # When not using gcc, we currently assume that we are using
- # Microsoft Visual C++.
- if test yes != "$GCC"; then
- with_gnu_ld=no
- fi
- ;;
- interix*)
- # we just hope/assume this is gcc and not c89 (= MSVC++)
- with_gnu_ld=yes
- ;;
- openbsd* | bitrig*)
- with_gnu_ld=no
- ;;
- esac
-
- ld_shlibs=yes
-
- # On some targets, GNU ld is compatible enough with the native linker
- # that we're better off using the native interface for both.
- lt_use_gnu_ld_interface=no
- if test yes = "$with_gnu_ld"; then
- case $host_os in
- aix*)
- # The AIX port of GNU ld has always aspired to compatibility
- # with the native linker. However, as the warning in the GNU ld
- # block says, versions before 2.19.5* couldn't really create working
- # shared libraries, regardless of the interface used.
- case `$LD -v 2>&1` in
- *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
- *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;;
- *\ \(GNU\ Binutils\)\ [3-9]*) ;;
- *)
- lt_use_gnu_ld_interface=yes
- ;;
- esac
- ;;
- *)
- lt_use_gnu_ld_interface=yes
- ;;
- esac
- fi
-
- if test yes = "$lt_use_gnu_ld_interface"; then
- # If archive_cmds runs LD, not CC, wlarc should be empty
- wlarc='$wl'
-
- # Set some defaults for GNU ld with shared library support. These
- # are reset later if shared libraries are not supported. Putting them
- # here allows them to be overridden if necessary.
- runpath_var=LD_RUN_PATH
- hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
- export_dynamic_flag_spec='$wl--export-dynamic'
- # ancient GNU ld didn't support --whole-archive et. al.
- if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
- whole_archive_flag_spec=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
- else
- whole_archive_flag_spec=
- fi
- supports_anon_versioning=no
- case `$LD -v | $SED -e 's/(^)\+)\s\+//' 2>&1` in
- *GNU\ gold*) supports_anon_versioning=yes ;;
- *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
- *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
- *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
- *\ 2.11.*) ;; # other 2.11 versions
- *) supports_anon_versioning=yes ;;
- esac
-
- # See if GNU ld supports shared libraries.
- case $host_os in
- aix[3-9]*)
- # On AIX/PPC, the GNU linker is very broken
- if test ia64 != "$host_cpu"; then
- ld_shlibs=no
- cat <<_LT_EOF 1>&2
-
-*** Warning: the GNU linker, at least up to release 2.19, is reported
-*** to be unable to reliably create shared libraries on AIX.
-*** Therefore, libtool is disabling shared libraries support. If you
-*** really care for shared libraries, you may want to install binutils
-*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
-*** You will then need to restart the configuration process.
-
-_LT_EOF
- fi
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
- archive_expsym_cmds=''
- ;;
- m68k)
- archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_minus_L=yes
- ;;
- esac
- ;;
-
- beos*)
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- allow_undefined_flag=unsupported
- # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
- # support --undefined. This deserves some investigation. FIXME
- archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
- else
- ld_shlibs=no
- fi
- ;;
-
- cygwin* | mingw* | pw32* | cegcc*)
- # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
- # as there is no search path for DLLs.
- hardcode_libdir_flag_spec='-L$libdir'
- export_dynamic_flag_spec='$wl--export-all-symbols'
- allow_undefined_flag=unsupported
- always_export_symbols=no
- enable_shared_with_static_runtimes=yes
- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
- exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
-
- if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- # If the export-symbols file already is a .def file, use it as
- # is; otherwise, prepend EXPORTS...
- archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then
- cp $export_symbols $output_objdir/$soname.def;
- else
- echo EXPORTS > $output_objdir/$soname.def;
- cat $export_symbols >> $output_objdir/$soname.def;
- fi~
- $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- else
- ld_shlibs=no
- fi
- ;;
-
- haiku*)
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
- link_all_deplibs=yes
- ;;
-
- os2*)
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_minus_L=yes
- allow_undefined_flag=unsupported
- shrext_cmds=.dll
- archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
- $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
- $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
- $ECHO EXPORTS >> $output_objdir/$libname.def~
- emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
- $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
- emximp -o $lib $output_objdir/$libname.def'
- archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
- $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
- $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
- $ECHO EXPORTS >> $output_objdir/$libname.def~
- prefix_cmds="$SED"~
- if test EXPORTS = "`$SED 1q $export_symbols`"; then
- prefix_cmds="$prefix_cmds -e 1d";
- fi~
- prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
- cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
- $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
- emximp -o $lib $output_objdir/$libname.def'
- old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
- enable_shared_with_static_runtimes=yes
- ;;
-
- interix[3-9]*)
- hardcode_direct=no
- hardcode_shlibpath_var=no
- hardcode_libdir_flag_spec='$wl-rpath,$libdir'
- export_dynamic_flag_spec='$wl-E'
- # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
- # Instead, shared libraries are loaded at an image base (0x10000000 by
- # default) and relocated if they conflict, which is a slow very memory
- # consuming and fragmenting process. To avoid this, we pick a random,
- # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
- # time. Moving up from 0x10000000 also allows more sbrk(2) space.
- archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- archive_expsym_cmds='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- ;;
-
- gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
- tmp_diet=no
- if test linux-dietlibc = "$host_os"; then
- case $cc_basename in
- diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn)
- esac
- fi
- if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
- && test no = "$tmp_diet"
- then
- tmp_addflag=' $pic_flag'
- tmp_sharedflag='-shared'
- case $cc_basename,$host_cpu in
- pgcc*) # Portland Group C compiler
- whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
- tmp_addflag=' $pic_flag'
- ;;
- pgf77* | pgf90* | pgf95* | pgfortran*)
- # Portland Group f77 and f90 compilers
- whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
- tmp_addflag=' $pic_flag -Mnomain' ;;
- ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
- tmp_addflag=' -i_dynamic' ;;
- efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
- tmp_addflag=' -i_dynamic -nofor_main' ;;
- ifc* | ifort*) # Intel Fortran compiler
- tmp_addflag=' -nofor_main' ;;
- lf95*) # Lahey Fortran 8.1
- whole_archive_flag_spec=
- tmp_sharedflag='--shared' ;;
- nagfor*) # NAGFOR 5.3
- tmp_sharedflag='-Wl,-shared' ;;
- xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
- tmp_sharedflag='-qmkshrobj'
- tmp_addflag= ;;
- nvcc*) # Cuda Compiler Driver 2.2
- whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
- compiler_needs_object=yes
- ;;
- esac
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ C*) # Sun C 5.9
- whole_archive_flag_spec='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
- compiler_needs_object=yes
- tmp_sharedflag='-G' ;;
- *Sun\ F*) # Sun Fortran 8.3
- tmp_sharedflag='-G' ;;
- esac
- archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
-
- if test yes = "$supports_anon_versioning"; then
- archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
- echo "local: *; };" >> $output_objdir/$libname.ver~
- $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
- fi
-
- case $cc_basename in
- tcc*)
- export_dynamic_flag_spec='-rdynamic'
- ;;
- xlf* | bgf* | bgxlf* | mpixlf*)
- # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
- whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
- hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
- archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
- if test yes = "$supports_anon_versioning"; then
- archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
- echo "local: *; };" >> $output_objdir/$libname.ver~
- $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
- fi
- ;;
- esac
- else
- ld_shlibs=no
- fi
- ;;
-
- netbsd*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
- wlarc=
- else
- archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
- archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
- fi
- ;;
-
- solaris*)
- if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
- ld_shlibs=no
- cat <<_LT_EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems. Therefore, libtool
-*** is disabling shared libraries support. We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer. Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
- elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
- archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
- else
- ld_shlibs=no
- fi
- ;;
-
- sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
- case `$LD -v 2>&1` in
- *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
- ld_shlibs=no
- cat <<_LT_EOF 1>&2
-
-*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot
-*** reliably create shared libraries on SCO systems. Therefore, libtool
-*** is disabling shared libraries support. We urge you to upgrade GNU
-*** binutils to release 2.16.91.0.3 or newer. Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
- ;;
- *)
- # For security reasons, it is highly recommended that you always
- # use absolute paths for naming shared libraries, and exclude the
- # DT_RUNPATH tag from executables and libraries. But doing so
- # requires that you compile everything twice, which is a pain.
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
- else
- ld_shlibs=no
- fi
- ;;
- esac
- ;;
-
- sunos4*)
- archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- wlarc=
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- ;;
-
- *)
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
- archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
- else
- ld_shlibs=no
- fi
- ;;
- esac
-
- if test no = "$ld_shlibs"; then
- runpath_var=
- hardcode_libdir_flag_spec=
- export_dynamic_flag_spec=
- whole_archive_flag_spec=
- fi
- else
- # PORTME fill in a description of your system's linker (not GNU ld)
- case $host_os in
- aix3*)
- allow_undefined_flag=unsupported
- always_export_symbols=yes
- archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
- # Note: this linker hardcodes the directories in LIBPATH if there
- # are no directories specified by -L.
- hardcode_minus_L=yes
- if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then
- # Neither direct hardcoding nor static linking is supported with a
- # broken collect2.
- hardcode_direct=unsupported
- fi
- ;;
-
- aix[4-9]*)
- if test ia64 = "$host_cpu"; then
- # On IA64, the linker does run time linking by default, so we don't
- # have to do anything special.
- aix_use_runtimelinking=no
- exp_sym_flag='-Bexport'
- no_entry_flag=
- else
- # If we're using GNU nm, then we don't want the "-C" option.
- # -C means demangle to GNU nm, but means don't demangle to AIX nm.
- # Without the "-l" option, or with the "-B" option, AIX nm treats
- # weak defined symbols like other global defined symbols, whereas
- # GNU nm marks them as "W".
- # While the 'weak' keyword is ignored in the Export File, we need
- # it in the Import File for the 'aix-soname' feature, so we have
- # to replace the "-B" option with "-P" for AIX nm.
- if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
- export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
- else
- export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
- fi
- aix_use_runtimelinking=no
-
- # Test if we are trying to use run time linking or normal
- # AIX style linking. If -brtl is somewhere in LDFLAGS, we
- # have runtime linking enabled, and use it for executables.
- # For shared libraries, we enable/disable runtime linking
- # depending on the kind of the shared library created -
- # when "with_aix_soname,aix_use_runtimelinking" is:
- # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables
- # "aix,yes" lib.so shared, rtl:yes, for executables
- # lib.a static archive
- # "both,no" lib.so.V(shr.o) shared, rtl:yes
- # lib.a(lib.so.V) shared, rtl:no, for executables
- # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables
- # lib.a(lib.so.V) shared, rtl:no
- # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables
- # lib.a static archive
- case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
- for ld_flag in $LDFLAGS; do
- if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then
- aix_use_runtimelinking=yes
- break
- fi
- done
- if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then
- # With aix-soname=svr4, we create the lib.so.V shared archives only,
- # so we don't have lib.a shared libs to link our executables.
- # We have to force runtime linking in this case.
- aix_use_runtimelinking=yes
- LDFLAGS="$LDFLAGS -Wl,-brtl"
- fi
- ;;
- esac
-
- exp_sym_flag='-bexport'
- no_entry_flag='-bnoentry'
- fi
-
- # When large executables or shared objects are built, AIX ld can
- # have problems creating the table of contents. If linking a library
- # or program results in "error TOC overflow" add -mminimal-toc to
- # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
- # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
- archive_cmds=''
- hardcode_direct=yes
- hardcode_direct_absolute=yes
- hardcode_libdir_separator=':'
- link_all_deplibs=yes
- file_list_spec='$wl-f,'
- case $with_aix_soname,$aix_use_runtimelinking in
- aix,*) ;; # traditional, no import file
- svr4,* | *,yes) # use import file
- # The Import File defines what to hardcode.
- hardcode_direct=no
- hardcode_direct_absolute=no
- ;;
- esac
-
- if test yes = "$GCC"; then
- case $host_os in aix4.[012]|aix4.[012].*)
- # We only want to do this on AIX 4.2 and lower, the check
- # below for broken collect2 doesn't work under 4.3+
- collect2name=`$CC -print-prog-name=collect2`
- if test -f "$collect2name" &&
- strings "$collect2name" | $GREP resolve_lib_name >/dev/null
- then
- # We have reworked collect2
- :
- else
- # We have old collect2
- hardcode_direct=unsupported
- # It fails to find uninstalled libraries when the uninstalled
- # path is not listed in the libpath. Setting hardcode_minus_L
- # to unsupported forces relinking
- hardcode_minus_L=yes
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_libdir_separator=
- fi
- ;;
- esac
- shared_flag='-shared'
- if test yes = "$aix_use_runtimelinking"; then
- shared_flag="$shared_flag "'$wl-G'
- fi
- # Need to ensure runtime linking is disabled for the traditional
- # shared library, or the linker may eventually find shared libraries
- # /with/ Import File - we do not want to mix them.
- shared_flag_aix='-shared'
- shared_flag_svr4='-shared $wl-G'
- else
- # not using gcc
- if test ia64 = "$host_cpu"; then
- # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
- # chokes on -Wl,-G. The following line is correct:
- shared_flag='-G'
- else
- if test yes = "$aix_use_runtimelinking"; then
- shared_flag='$wl-G'
- else
- shared_flag='$wl-bM:SRE'
- fi
- shared_flag_aix='$wl-bM:SRE'
- shared_flag_svr4='$wl-G'
- fi
- fi
-
- export_dynamic_flag_spec='$wl-bexpall'
- # It seems that -bexpall does not export symbols beginning with
- # underscore (_), so it is better to generate a list of symbols to export.
- always_export_symbols=yes
- if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then
- # Warning - without using the other runtime loading flags (-brtl),
- # -berok will link without error, but may produce a broken library.
- allow_undefined_flag='-berok'
- # Determine the default libpath from the value encoded in an
- # empty executable.
- if test set = "${lt_cv_aix_libpath+set}"; then
- aix_libpath=$lt_cv_aix_libpath
-else
- if test ${lt_cv_aix_libpath_+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main (void)
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
-
- lt_aix_libpath_sed='
- /Import File Strings/,/^$/ {
- /^0/ {
- s/^0 *\([^ ]*\) *$/\1/
- p
- }
- }'
- lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
- # Check for a 64-bit object if we didn't find anything.
- if test -z "$lt_cv_aix_libpath_"; then
- lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
- fi
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
- if test -z "$lt_cv_aix_libpath_"; then
- lt_cv_aix_libpath_=/usr/lib:/lib
- fi
-
-fi
-
- aix_libpath=$lt_cv_aix_libpath_
-fi
-
- hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath"
- archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag
- else
- if test ia64 = "$host_cpu"; then
- hardcode_libdir_flag_spec='$wl-R $libdir:/usr/lib:/lib'
- allow_undefined_flag="-z nodefs"
- archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols"
- else
- # Determine the default libpath from the value encoded in an
- # empty executable.
- if test set = "${lt_cv_aix_libpath+set}"; then
- aix_libpath=$lt_cv_aix_libpath
-else
- if test ${lt_cv_aix_libpath_+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main (void)
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
-
- lt_aix_libpath_sed='
- /Import File Strings/,/^$/ {
- /^0/ {
- s/^0 *\([^ ]*\) *$/\1/
- p
- }
- }'
- lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
- # Check for a 64-bit object if we didn't find anything.
- if test -z "$lt_cv_aix_libpath_"; then
- lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
- fi
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
- if test -z "$lt_cv_aix_libpath_"; then
- lt_cv_aix_libpath_=/usr/lib:/lib
- fi
-
-fi
-
- aix_libpath=$lt_cv_aix_libpath_
-fi
-
- hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath"
- # Warning - without using the other run time loading flags,
- # -berok will link without error, but may produce a broken library.
- no_undefined_flag=' $wl-bernotok'
- allow_undefined_flag=' $wl-berok'
- if test yes = "$with_gnu_ld"; then
- # We only use this code for GNU lds that support --whole-archive.
- whole_archive_flag_spec='$wl--whole-archive$convenience $wl--no-whole-archive'
- else
- # Exported symbols can be pulled into shared objects from archives
- whole_archive_flag_spec='$convenience'
- fi
- archive_cmds_need_lc=yes
- archive_expsym_cmds='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d'
- # -brtl affects multiple linker settings, -berok does not and is overridden later
- compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`'
- if test svr4 != "$with_aix_soname"; then
- # This is similar to how AIX traditionally builds its shared libraries.
- archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname'
- fi
- if test aix != "$with_aix_soname"; then
- archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp'
- else
- # used by -dlpreopen to get the symbols
- archive_expsym_cmds="$archive_expsym_cmds"'~$MV $output_objdir/$realname.d/$soname $output_objdir'
- fi
- archive_expsym_cmds="$archive_expsym_cmds"'~$RM -r $output_objdir/$realname.d'
- fi
- fi
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
- archive_expsym_cmds=''
- ;;
- m68k)
- archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_minus_L=yes
- ;;
- esac
- ;;
-
- bsdi[45]*)
- export_dynamic_flag_spec=-rdynamic
- ;;
-
- cygwin* | mingw* | pw32* | cegcc*)
- # When not using gcc, we currently assume that we are using
- # Microsoft Visual C++.
- # hardcode_libdir_flag_spec is actually meaningless, as there is
- # no search path for DLLs.
- case $cc_basename in
- cl*)
- # Native MSVC
- hardcode_libdir_flag_spec=' '
- allow_undefined_flag=unsupported
- always_export_symbols=yes
- file_list_spec='@'
- # Tell ltmain to make .lib files, not .a files.
- libext=lib
- # Tell ltmain to make .dll files, not .so files.
- shrext_cmds=.dll
- # FIXME: Setting linknames here is a bad hack.
- archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='
- archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then
- cp "$export_symbols" "$output_objdir/$soname.def";
- echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp";
- else
- $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp;
- fi~
- $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
- linknames='
- # The linker will not automatically build a static lib if we build a DLL.
- # _LT_TAGVAR(old_archive_from_new_cmds, )='true'
- enable_shared_with_static_runtimes=yes
- exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
- # Don't use ranlib
- old_postinstall_cmds='chmod 644 $oldlib'
- postlink_cmds='lt_outputfile="@OUTPUT@"~
- lt_tool_outputfile="@TOOL_OUTPUT@"~
- case $lt_outputfile in
- *.exe|*.EXE) ;;
- *)
- lt_outputfile=$lt_outputfile.exe
- lt_tool_outputfile=$lt_tool_outputfile.exe
- ;;
- esac~
- if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then
- $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
- $RM "$lt_outputfile.manifest";
- fi'
- ;;
- *)
- # Assume MSVC wrapper
- hardcode_libdir_flag_spec=' '
- allow_undefined_flag=unsupported
- # Tell ltmain to make .lib files, not .a files.
- libext=lib
- # Tell ltmain to make .dll files, not .so files.
- shrext_cmds=.dll
- # FIXME: Setting linknames here is a bad hack.
- archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
- # The linker will automatically build a .lib file if we build a DLL.
- old_archive_from_new_cmds='true'
- # FIXME: Should let the user specify the lib program.
- old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
- enable_shared_with_static_runtimes=yes
- ;;
- esac
- ;;
-
- darwin* | rhapsody*)
-
-
- archive_cmds_need_lc=no
- hardcode_direct=no
- hardcode_automatic=yes
- hardcode_shlibpath_var=unsupported
- if test yes = "$lt_cv_ld_force_load"; then
- whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
-
- else
- whole_archive_flag_spec=''
- fi
- link_all_deplibs=yes
- allow_undefined_flag=$_lt_dar_allow_undefined
- case $cc_basename in
- ifort*|nagfor*) _lt_dar_can_shared=yes ;;
- *) _lt_dar_can_shared=$GCC ;;
- esac
- if test yes = "$_lt_dar_can_shared"; then
- output_verbose_link_cmd=func_echo_all
- archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil"
- module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil"
- archive_expsym_cmds="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil"
- module_expsym_cmds="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil"
-
- else
- ld_shlibs=no
- fi
-
- ;;
-
- dgux*)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_shlibpath_var=no
- ;;
-
- # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
- # support. Future versions do this automatically, but an explicit c++rt0.o
- # does not break anything, and helps significantly (at the cost of a little
- # extra space).
- freebsd2.2*)
- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- ;;
-
- # Unfortunately, older versions of FreeBSD 2 do not have this feature.
- freebsd2.*)
- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- hardcode_direct=yes
- hardcode_minus_L=yes
- hardcode_shlibpath_var=no
- ;;
-
- # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
- freebsd* | dragonfly*)
- archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- ;;
-
- hpux9*)
- if test yes = "$GCC"; then
- archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
- else
- archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
- fi
- hardcode_libdir_flag_spec='$wl+b $wl$libdir'
- hardcode_libdir_separator=:
- hardcode_direct=yes
-
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- hardcode_minus_L=yes
- export_dynamic_flag_spec='$wl-E'
- ;;
-
- hpux10*)
- if test yes,no = "$GCC,$with_gnu_ld"; then
- archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
- else
- archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
- fi
- if test no = "$with_gnu_ld"; then
- hardcode_libdir_flag_spec='$wl+b $wl$libdir'
- hardcode_libdir_separator=:
- hardcode_direct=yes
- hardcode_direct_absolute=yes
- export_dynamic_flag_spec='$wl-E'
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- hardcode_minus_L=yes
- fi
- ;;
-
- hpux11*)
- if test yes,no = "$GCC,$with_gnu_ld"; then
- case $host_cpu in
- hppa*64*)
- archive_cmds='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- ia64*)
- archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
- archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- esac
- else
- case $host_cpu in
- hppa*64*)
- archive_cmds='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- ia64*)
- archive_cmds='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
-
- # Older versions of the 11.00 compiler do not understand -b yet
- # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5
-printf %s "checking if $CC understands -b... " >&6; }
-if test ${lt_cv_prog_compiler__b+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- lt_cv_prog_compiler__b=no
- save_LDFLAGS=$LDFLAGS
- LDFLAGS="$LDFLAGS -b"
- echo "$lt_simple_link_test_code" > conftest.$ac_ext
- if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
- # The linker can only warn and ignore the option if not recognized
- # So say no if there are warnings
- if test -s conftest.err; then
- # Append any errors to the config.log.
- cat conftest.err 1>&5
- $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if diff conftest.exp conftest.er2 >/dev/null; then
- lt_cv_prog_compiler__b=yes
- fi
- else
- lt_cv_prog_compiler__b=yes
- fi
- fi
- $RM -r conftest*
- LDFLAGS=$save_LDFLAGS
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5
-printf "%s\n" "$lt_cv_prog_compiler__b" >&6; }
-
-if test yes = "$lt_cv_prog_compiler__b"; then
- archive_cmds='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-else
- archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
-fi
-
- ;;
- esac
- fi
- if test no = "$with_gnu_ld"; then
- hardcode_libdir_flag_spec='$wl+b $wl$libdir'
- hardcode_libdir_separator=:
-
- case $host_cpu in
- hppa*64*|ia64*)
- hardcode_direct=no
- hardcode_shlibpath_var=no
- ;;
- *)
- hardcode_direct=yes
- hardcode_direct_absolute=yes
- export_dynamic_flag_spec='$wl-E'
-
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- hardcode_minus_L=yes
- ;;
- esac
- fi
- ;;
-
- irix5* | irix6* | nonstopux*)
- if test yes = "$GCC"; then
- archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
- # Try to use the -exported_symbol ld option, if it does not
- # work, assume that -exports_file does not work either and
- # implicitly export all symbols.
- # This should be the same for all languages, so no per-tag cache variable.
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
-printf %s "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
-if test ${lt_cv_irix_exported_symbol+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- save_LDFLAGS=$LDFLAGS
- LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-int foo (void) { return 0; }
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
- lt_cv_irix_exported_symbol=yes
-else $as_nop
- lt_cv_irix_exported_symbol=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
- LDFLAGS=$save_LDFLAGS
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
-printf "%s\n" "$lt_cv_irix_exported_symbol" >&6; }
- if test yes = "$lt_cv_irix_exported_symbol"; then
- archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib'
- fi
- else
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib'
- fi
- archive_cmds_need_lc='no'
- hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
- hardcode_libdir_separator=:
- inherit_rpath=yes
- link_all_deplibs=yes
- ;;
-
- linux*)
- case $cc_basename in
- tcc*)
- # Fabrice Bellard et al's Tiny C Compiler
- ld_shlibs=yes
- archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- esac
- ;;
-
- netbsd*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
- else
- archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
- fi
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- ;;
-
- newsos6)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_direct=yes
- hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
- hardcode_libdir_separator=:
- hardcode_shlibpath_var=no
- ;;
-
- *nto* | *qnx*)
- ;;
-
- openbsd* | bitrig*)
- if test -f /usr/libexec/ld.so; then
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- hardcode_direct_absolute=yes
- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
- archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols'
- hardcode_libdir_flag_spec='$wl-rpath,$libdir'
- export_dynamic_flag_spec='$wl-E'
- else
- archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- hardcode_libdir_flag_spec='$wl-rpath,$libdir'
- fi
- else
- ld_shlibs=no
- fi
- ;;
-
- os2*)
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_minus_L=yes
- allow_undefined_flag=unsupported
- shrext_cmds=.dll
- archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
- $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
- $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
- $ECHO EXPORTS >> $output_objdir/$libname.def~
- emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
- $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
- emximp -o $lib $output_objdir/$libname.def'
- archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
- $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
- $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
- $ECHO EXPORTS >> $output_objdir/$libname.def~
- prefix_cmds="$SED"~
- if test EXPORTS = "`$SED 1q $export_symbols`"; then
- prefix_cmds="$prefix_cmds -e 1d";
- fi~
- prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
- cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
- $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
- emximp -o $lib $output_objdir/$libname.def'
- old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
- enable_shared_with_static_runtimes=yes
- ;;
-
- osf3*)
- if test yes = "$GCC"; then
- allow_undefined_flag=' $wl-expect_unresolved $wl\*'
- archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
- else
- allow_undefined_flag=' -expect_unresolved \*'
- archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
- fi
- archive_cmds_need_lc='no'
- hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
- hardcode_libdir_separator=:
- ;;
-
- osf4* | osf5*) # as osf3* with the addition of -msym flag
- if test yes = "$GCC"; then
- allow_undefined_flag=' $wl-expect_unresolved $wl\*'
- archive_cmds='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
- hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
- else
- allow_undefined_flag=' -expect_unresolved \*'
- archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
- archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
- $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp'
-
- # Both c and cxx compiler support -rpath directly
- hardcode_libdir_flag_spec='-rpath $libdir'
- fi
- archive_cmds_need_lc='no'
- hardcode_libdir_separator=:
- ;;
-
- solaris*)
- no_undefined_flag=' -z defs'
- if test yes = "$GCC"; then
- wlarc='$wl'
- archive_cmds='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
- else
- case `$CC -V 2>&1` in
- *"Compilers 5.0"*)
- wlarc=''
- archive_cmds='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags'
- archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
- ;;
- *)
- wlarc='$wl'
- archive_cmds='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
- ;;
- esac
- fi
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_shlibpath_var=no
- case $host_os in
- solaris2.[0-5] | solaris2.[0-5].*) ;;
- *)
- # The compiler driver will combine and reorder linker options,
- # but understands '-z linker_flag'. GCC discards it without '$wl',
- # but is careful enough not to reorder.
- # Supported since Solaris 2.6 (maybe 2.5.1?)
- if test yes = "$GCC"; then
- whole_archive_flag_spec='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract'
- else
- whole_archive_flag_spec='-z allextract$convenience -z defaultextract'
- fi
- ;;
- esac
- link_all_deplibs=yes
- ;;
-
- sunos4*)
- if test sequent = "$host_vendor"; then
- # Use $CC to link under sequent, because it throws in some extra .o
- # files that make .init and .fini sections work.
- archive_cmds='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
- fi
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_direct=yes
- hardcode_minus_L=yes
- hardcode_shlibpath_var=no
- ;;
-
- sysv4)
- case $host_vendor in
- sni)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_direct=yes # is this really true???
- ;;
- siemens)
- ## LD is ld it makes a PLAMLIB
- ## CC just makes a GrossModule.
- archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
- reload_cmds='$CC -r -o $output$reload_objs'
- hardcode_direct=no
- ;;
- motorola)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_direct=no #Motorola manual says yes, but my tests say they lie
- ;;
- esac
- runpath_var='LD_RUN_PATH'
- hardcode_shlibpath_var=no
- ;;
-
- sysv4.3*)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_shlibpath_var=no
- export_dynamic_flag_spec='-Bexport'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec; then
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_shlibpath_var=no
- runpath_var=LD_RUN_PATH
- hardcode_runpath_var=yes
- ld_shlibs=yes
- fi
- ;;
-
- sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
- no_undefined_flag='$wl-z,text'
- archive_cmds_need_lc=no
- hardcode_shlibpath_var=no
- runpath_var='LD_RUN_PATH'
-
- if test yes = "$GCC"; then
- archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- fi
- ;;
-
- sysv5* | sco3.2v5* | sco5v6*)
- # Note: We CANNOT use -z defs as we might desire, because we do not
- # link with -lc, and that would cause any symbols used from libc to
- # always be unresolved, which means just about no library would
- # ever link correctly. If we're not using GNU ld we use -z text
- # though, which does catch some bad symbols but isn't as heavy-handed
- # as -z defs.
- no_undefined_flag='$wl-z,text'
- allow_undefined_flag='$wl-z,nodefs'
- archive_cmds_need_lc=no
- hardcode_shlibpath_var=no
- hardcode_libdir_flag_spec='$wl-R,$libdir'
- hardcode_libdir_separator=':'
- link_all_deplibs=yes
- export_dynamic_flag_spec='$wl-Bexport'
- runpath_var='LD_RUN_PATH'
-
- if test yes = "$GCC"; then
- archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- fi
- ;;
-
- uts4*)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_shlibpath_var=no
- ;;
-
- *)
- ld_shlibs=no
- ;;
- esac
-
- if test sni = "$host_vendor"; then
- case $host in
- sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
- export_dynamic_flag_spec='$wl-Blargedynsym'
- ;;
- esac
- fi
- fi
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
-printf "%s\n" "$ld_shlibs" >&6; }
-test no = "$ld_shlibs" && can_build_shared=no
-
-with_gnu_ld=$with_gnu_ld
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$archive_cmds_need_lc" in
-x|xyes)
- # Assume -lc should be added
- archive_cmds_need_lc=yes
-
- if test yes,yes = "$GCC,$enable_shared"; then
- case $archive_cmds in
- *'~'*)
- # FIXME: we may have to deal with multi-command sequences.
- ;;
- '$CC '*)
- # Test whether the compiler implicitly links with -lc since on some
- # systems, -lgcc has to come before -lc. If gcc already passes -lc
- # to ld, don't add -lc before -lgcc.
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
-printf %s "checking whether -lc should be explicitly linked in... " >&6; }
-if test ${lt_cv_archive_cmds_need_lc+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- $RM conftest*
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } 2>conftest.err; then
- soname=conftest
- lib=conftest
- libobjs=conftest.$ac_objext
- deplibs=
- wl=$lt_prog_compiler_wl
- pic_flag=$lt_prog_compiler_pic
- compiler_flags=-v
- linker_flags=-v
- verstring=
- output_objdir=.
- libname=conftest
- lt_save_allow_undefined_flag=$allow_undefined_flag
- allow_undefined_flag=
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
- (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
- ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
- then
- lt_cv_archive_cmds_need_lc=no
- else
- lt_cv_archive_cmds_need_lc=yes
- fi
- allow_undefined_flag=$lt_save_allow_undefined_flag
- else
- cat conftest.err 1>&5
- fi
- $RM conftest*
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5
-printf "%s\n" "$lt_cv_archive_cmds_need_lc" >&6; }
- archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
- ;;
- esac
- fi
- ;;
-esac
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
-printf %s "checking dynamic linker characteristics... " >&6; }
-
-if test yes = "$GCC"; then
- case $host_os in
- darwin*) lt_awk_arg='/^libraries:/,/LR/' ;;
- *) lt_awk_arg='/^libraries:/' ;;
- esac
- case $host_os in
- mingw* | cegcc*) lt_sed_strip_eq='s|=\([A-Za-z]:\)|\1|g' ;;
- *) lt_sed_strip_eq='s|=/|/|g' ;;
- esac
- lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
- case $lt_search_path_spec in
- *\;*)
- # if the path contains ";" then we assume it to be the separator
- # otherwise default to the standard path separator (i.e. ":") - it is
- # assumed that no part of a normal pathname contains ";" but that should
- # okay in the real world where ";" in dirpaths is itself problematic.
- lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
- ;;
- *)
- lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
- ;;
- esac
- # Ok, now we have the path, separated by spaces, we can step through it
- # and add multilib dir if necessary...
- lt_tmp_lt_search_path_spec=
- lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
- # ...but if some path component already ends with the multilib dir we assume
- # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer).
- case "$lt_multi_os_dir; $lt_search_path_spec " in
- "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*)
- lt_multi_os_dir=
- ;;
- esac
- for lt_sys_path in $lt_search_path_spec; do
- if test -d "$lt_sys_path$lt_multi_os_dir"; then
- lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir"
- elif test -n "$lt_multi_os_dir"; then
- test -d "$lt_sys_path" && \
- lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
- fi
- done
- lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
-BEGIN {RS = " "; FS = "/|\n";} {
- lt_foo = "";
- lt_count = 0;
- for (lt_i = NF; lt_i > 0; lt_i--) {
- if ($lt_i != "" && $lt_i != ".") {
- if ($lt_i == "..") {
- lt_count++;
- } else {
- if (lt_count == 0) {
- lt_foo = "/" $lt_i lt_foo;
- } else {
- lt_count--;
- }
- }
- }
- }
- if (lt_foo != "") { lt_freq[lt_foo]++; }
- if (lt_freq[lt_foo] == 1) { print lt_foo; }
-}'`
- # AWK program above erroneously prepends '/' to C:/dos/paths
- # for these hosts.
- case $host_os in
- mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
- $SED 's|/\([A-Za-z]:\)|\1|g'` ;;
- esac
- sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
-else
- sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=.so
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-
-
-case $host_os in
-aix3*)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='$libname$release$shared_ext$versuffix $libname.a'
- shlibpath_var=LIBPATH
-
- # AIX 3 has no versioning support, so we append a major version to the name.
- soname_spec='$libname$release$shared_ext$major'
- ;;
-
-aix[4-9]*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- hardcode_into_libs=yes
- if test ia64 = "$host_cpu"; then
- # AIX 5 supports IA64
- library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext'
- shlibpath_var=LD_LIBRARY_PATH
- else
- # With GCC up to 2.95.x, collect2 would create an import file
- # for dependence libraries. The import file would start with
- # the line '#! .'. This would cause the generated library to
- # depend on '.', always an invalid library. This was fixed in
- # development snapshots of GCC prior to 3.0.
- case $host_os in
- aix4 | aix4.[01] | aix4.[01].*)
- if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
- echo ' yes '
- echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then
- :
- else
- can_build_shared=no
- fi
- ;;
- esac
- # Using Import Files as archive members, it is possible to support
- # filename-based versioning of shared library archives on AIX. While
- # this would work for both with and without runtime linking, it will
- # prevent static linking of such archives. So we do filename-based
- # shared library versioning with .so extension only, which is used
- # when both runtime linking and shared linking is enabled.
- # Unfortunately, runtime linking may impact performance, so we do
- # not want this to be the default eventually. Also, we use the
- # versioned .so libs for executables only if there is the -brtl
- # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only.
- # To allow for filename-based versioning support, we need to create
- # libNAME.so.V as an archive file, containing:
- # *) an Import File, referring to the versioned filename of the
- # archive as well as the shared archive member, telling the
- # bitwidth (32 or 64) of that shared object, and providing the
- # list of exported symbols of that shared object, eventually
- # decorated with the 'weak' keyword
- # *) the shared object with the F_LOADONLY flag set, to really avoid
- # it being seen by the linker.
- # At run time we better use the real file rather than another symlink,
- # but for link time we create the symlink libNAME.so -> libNAME.so.V
-
- case $with_aix_soname,$aix_use_runtimelinking in
- # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct
- # soname into executable. Probably we can add versioning support to
- # collect2, so additional links can be useful in future.
- aix,yes) # traditional libtool
- dynamic_linker='AIX unversionable lib.so'
- # If using run time linking (on AIX 4.2 or later) use lib<name>.so
- # instead of lib<name>.a to let people know that these are not
- # typical AIX shared libraries.
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- ;;
- aix,no) # traditional AIX only
- dynamic_linker='AIX lib.a(lib.so.V)'
- # We preserve .a as extension for shared libraries through AIX4.2
- # and later when we are not doing run time linking.
- library_names_spec='$libname$release.a $libname.a'
- soname_spec='$libname$release$shared_ext$major'
- ;;
- svr4,*) # full svr4 only
- dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)"
- library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
- # We do not specify a path in Import Files, so LIBPATH fires.
- shlibpath_overrides_runpath=yes
- ;;
- *,yes) # both, prefer svr4
- dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)"
- library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
- # unpreferred sharedlib libNAME.a needs extra handling
- postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"'
- postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"'
- # We do not specify a path in Import Files, so LIBPATH fires.
- shlibpath_overrides_runpath=yes
- ;;
- *,no) # both, prefer aix
- dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)"
- library_names_spec='$libname$release.a $libname.a'
- soname_spec='$libname$release$shared_ext$major'
- # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling
- postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)'
- postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"'
- ;;
- esac
- shlibpath_var=LIBPATH
- fi
- ;;
-
-amigaos*)
- case $host_cpu in
- powerpc)
- # Since July 2007 AmigaOS4 officially supports .so libraries.
- # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- ;;
- m68k)
- library_names_spec='$libname.ixlibrary $libname.a'
- # Create ${libname}_ixlibrary.a entries in /sys/libs.
- finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
- ;;
- esac
- ;;
-
-beos*)
- library_names_spec='$libname$shared_ext'
- dynamic_linker="$host_os ld.so"
- shlibpath_var=LIBRARY_PATH
- ;;
-
-bsdi[45]*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_version=no
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
- sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
- # the default ld.so.conf also contains /usr/contrib/lib and
- # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
- # libtool to hard-code these into programs
- ;;
-
-cygwin* | mingw* | pw32* | cegcc*)
- version_type=windows
- shrext_cmds=.dll
- need_version=no
- need_lib_prefix=no
-
- case $GCC,$cc_basename in
- yes,*)
- # gcc
- library_names_spec='$libname.dll.a'
- # DLL is installed to $(libdir)/../bin by postinstall_cmds
- postinstall_cmds='base_file=`basename \$file`~
- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
- dldir=$destdir/`dirname \$dlpath`~
- test -d \$dldir || mkdir -p \$dldir~
- $install_prog $dir/$dlname \$dldir/$dlname~
- chmod a+x \$dldir/$dlname~
- if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
- eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
- fi'
- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
- dlpath=$dir/\$dldll~
- $RM \$dlpath'
- shlibpath_overrides_runpath=yes
-
- case $host_os in
- cygwin*)
- # Cygwin DLLs use 'cyg' prefix rather than 'lib'
- soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
-
- sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"
- ;;
- mingw* | cegcc*)
- # MinGW DLLs use traditional 'lib' prefix
- soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
- ;;
- pw32*)
- # pw32 DLLs use 'pw' prefix rather than 'lib'
- library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
- ;;
- esac
- dynamic_linker='Win32 ld.exe'
- ;;
-
- *,cl*)
- # Native MSVC
- libname_spec='$name'
- soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
- library_names_spec='$libname.dll.lib'
-
- case $build_os in
- mingw*)
- sys_lib_search_path_spec=
- lt_save_ifs=$IFS
- IFS=';'
- for lt_path in $LIB
- do
- IFS=$lt_save_ifs
- # Let DOS variable expansion print the short 8.3 style file name.
- lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
- sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
- done
- IFS=$lt_save_ifs
- # Convert to MSYS style.
- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
- ;;
- cygwin*)
- # Convert to unix form, then to dos form, then back to unix form
- # but this time dos style (no spaces!) so that the unix form looks
- # like /cygdrive/c/PROGRA~1:/cygdr...
- sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
- sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
- sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
- ;;
- *)
- sys_lib_search_path_spec=$LIB
- if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
- # It is most probably a Windows format PATH.
- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
- else
- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
- fi
- # FIXME: find the short name or the path components, as spaces are
- # common. (e.g. "Program Files" -> "PROGRA~1")
- ;;
- esac
-
- # DLL is installed to $(libdir)/../bin by postinstall_cmds
- postinstall_cmds='base_file=`basename \$file`~
- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
- dldir=$destdir/`dirname \$dlpath`~
- test -d \$dldir || mkdir -p \$dldir~
- $install_prog $dir/$dlname \$dldir/$dlname'
- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
- dlpath=$dir/\$dldll~
- $RM \$dlpath'
- shlibpath_overrides_runpath=yes
- dynamic_linker='Win32 link.exe'
- ;;
-
- *)
- # Assume MSVC wrapper
- library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib'
- dynamic_linker='Win32 ld.exe'
- ;;
- esac
- # FIXME: first we should search . and the directory the executable is in
- shlibpath_var=PATH
- ;;
-
-darwin* | rhapsody*)
- dynamic_linker="$host_os dyld"
- version_type=darwin
- need_lib_prefix=no
- need_version=no
- library_names_spec='$libname$release$major$shared_ext $libname$shared_ext'
- soname_spec='$libname$release$major$shared_ext'
- shlibpath_overrides_runpath=yes
- shlibpath_var=DYLD_LIBRARY_PATH
- shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
-
- sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"
- sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
- ;;
-
-dgux*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-freebsd* | dragonfly*)
- # DragonFly does not have aout. When/if they implement a new
- # versioning mechanism, adjust this.
- if test -x /usr/bin/objformat; then
- objformat=`/usr/bin/objformat`
- else
- case $host_os in
- freebsd[23].*) objformat=aout ;;
- *) objformat=elf ;;
- esac
- fi
- version_type=freebsd-$objformat
- case $version_type in
- freebsd-elf*)
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- need_version=no
- need_lib_prefix=no
- ;;
- freebsd-*)
- library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
- need_version=yes
- ;;
- esac
- shlibpath_var=LD_LIBRARY_PATH
- case $host_os in
- freebsd2.*)
- shlibpath_overrides_runpath=yes
- ;;
- freebsd3.[01]* | freebsdelf3.[01]*)
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
- freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
- freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
- *) # from 4.6 on, and DragonFly
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
- esac
- ;;
-
-haiku*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- dynamic_linker="$host_os runtime_loader"
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- shlibpath_var=LIBRARY_PATH
- shlibpath_overrides_runpath=no
- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
- hardcode_into_libs=yes
- ;;
-
-hpux9* | hpux10* | hpux11*)
- # Give a soname corresponding to the major version so that dld.sl refuses to
- # link against other versions.
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- case $host_cpu in
- ia64*)
- shrext_cmds='.so'
- hardcode_into_libs=yes
- dynamic_linker="$host_os dld.so"
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- if test 32 = "$HPUX_IA64_MODE"; then
- sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
- sys_lib_dlsearch_path_spec=/usr/lib/hpux32
- else
- sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
- sys_lib_dlsearch_path_spec=/usr/lib/hpux64
- fi
- ;;
- hppa*64*)
- shrext_cmds='.sl'
- hardcode_into_libs=yes
- dynamic_linker="$host_os dld.sl"
- shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
- ;;
- *)
- shrext_cmds='.sl'
- dynamic_linker="$host_os dld.sl"
- shlibpath_var=SHLIB_PATH
- shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- ;;
- esac
- # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
- postinstall_cmds='chmod 555 $lib'
- # or fails outright, so override atomically:
- install_override_mode=555
- ;;
-
-interix[3-9]*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
-
-irix5* | irix6* | nonstopux*)
- case $host_os in
- nonstopux*) version_type=nonstopux ;;
- *)
- if test yes = "$lt_cv_prog_gnu_ld"; then
- version_type=linux # correct to gnu/linux during the next big refactor
- else
- version_type=irix
- fi ;;
- esac
- need_lib_prefix=no
- need_version=no
- soname_spec='$libname$release$shared_ext$major'
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext'
- case $host_os in
- irix5* | nonstopux*)
- libsuff= shlibsuff=
- ;;
- *)
- case $LD in # libtool.m4 will add one of these switches to LD
- *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
- libsuff= shlibsuff= libmagic=32-bit;;
- *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
- libsuff=32 shlibsuff=N32 libmagic=N32;;
- *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
- libsuff=64 shlibsuff=64 libmagic=64-bit;;
- *) libsuff= shlibsuff= libmagic=never-match;;
- esac
- ;;
- esac
- shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
- shlibpath_overrides_runpath=no
- sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff"
- sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff"
- hardcode_into_libs=yes
- ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
- dynamic_linker=no
- ;;
-
-linux*android*)
- version_type=none # Android doesn't support versioned libraries.
- need_lib_prefix=no
- need_version=no
- library_names_spec='$libname$release$shared_ext'
- soname_spec='$libname$release$shared_ext'
- finish_cmds=
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
-
- # This implies no fast_install, which is unacceptable.
- # Some rework will be needed to allow for fast_install
- # before this can be enabled.
- hardcode_into_libs=yes
-
- dynamic_linker='Android linker'
- # Don't embed -rpath directories since the linker doesn't support them.
- hardcode_libdir_flag_spec='-L$libdir'
- ;;
-
-# This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
-
- # Some binutils ld are patched to set DT_RUNPATH
- if test ${lt_cv_shlibpath_overrides_runpath+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- lt_cv_shlibpath_overrides_runpath=no
- save_LDFLAGS=$LDFLAGS
- save_libdir=$libdir
- eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
- LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main (void)
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
- if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null
-then :
- lt_cv_shlibpath_overrides_runpath=yes
-fi
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
- LDFLAGS=$save_LDFLAGS
- libdir=$save_libdir
-
-fi
-
- shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
-
- # This implies no fast_install, which is unacceptable.
- # Some rework will be needed to allow for fast_install
- # before this can be enabled.
- hardcode_into_libs=yes
-
- # Add ABI-specific directories to the system library path.
- sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib"
-
- # Ideally, we could use ldconfig to report *all* directores which are
- # searched for libraries, however this is still not possible. Aside from not
- # being certain /sbin/ldconfig is available, command
- # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64,
- # even though it is searched at run-time. Try to do the best guess by
- # appending ld.so.conf contents (and includes) to the search path.
- if test -f /etc/ld.so.conf; then
- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
- sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra"
- fi
-
- # We used to test for /lib/ld.so.1 and disable shared libraries on
- # powerpc, because MkLinux only supported shared libraries with the
- # GNU dynamic linker. Since this was broken with cross compilers,
- # most powerpc-linux boxes support dynamic linking these days and
- # people can always --disable-shared, the test was removed, and we
- # assume the GNU/Linux dynamic linker is in use.
- dynamic_linker='GNU/Linux ld.so'
- ;;
-
-netbsd*)
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- dynamic_linker='NetBSD (a.out) ld.so'
- else
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- dynamic_linker='NetBSD ld.elf_so'
- fi
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
-
-newsos6)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- ;;
-
-*nto* | *qnx*)
- version_type=qnx
- need_lib_prefix=no
- need_version=no
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- dynamic_linker='ldqnx.so'
- ;;
-
-openbsd* | bitrig*)
- version_type=sunos
- sys_lib_dlsearch_path_spec=/usr/lib
- need_lib_prefix=no
- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
- need_version=no
- else
- need_version=yes
- fi
- library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- ;;
-
-os2*)
- libname_spec='$name'
- version_type=windows
- shrext_cmds=.dll
- need_version=no
- need_lib_prefix=no
- # OS/2 can only load a DLL with a base name of 8 characters or less.
- soname_spec='`test -n "$os2dllname" && libname="$os2dllname";
- v=$($ECHO $release$versuffix | tr -d .-);
- n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _);
- $ECHO $n$v`$shared_ext'
- library_names_spec='${libname}_dll.$libext'
- dynamic_linker='OS/2 ld.exe'
- shlibpath_var=BEGINLIBPATH
- sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
- postinstall_cmds='base_file=`basename \$file`~
- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~
- dldir=$destdir/`dirname \$dlpath`~
- test -d \$dldir || mkdir -p \$dldir~
- $install_prog $dir/$dlname \$dldir/$dlname~
- chmod a+x \$dldir/$dlname~
- if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
- eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
- fi'
- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~
- dlpath=$dir/\$dldll~
- $RM \$dlpath'
- ;;
-
-osf3* | osf4* | osf5*)
- version_type=osf
- need_lib_prefix=no
- need_version=no
- soname_spec='$libname$release$shared_ext$major'
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- shlibpath_var=LD_LIBRARY_PATH
- sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
- ;;
-
-rdos*)
- dynamic_linker=no
- ;;
-
-solaris*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- # ldd complains unless libraries are executable
- postinstall_cmds='chmod +x $lib'
- ;;
-
-sunos4*)
- version_type=sunos
- library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
- finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- if test yes = "$with_gnu_ld"; then
- need_lib_prefix=no
- fi
- need_version=yes
- ;;
-
-sysv4 | sysv4.3*)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- shlibpath_var=LD_LIBRARY_PATH
- case $host_vendor in
- sni)
- shlibpath_overrides_runpath=no
- need_lib_prefix=no
- runpath_var=LD_RUN_PATH
- ;;
- siemens)
- need_lib_prefix=no
- ;;
- motorola)
- need_lib_prefix=no
- need_version=no
- shlibpath_overrides_runpath=no
- sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
- ;;
- esac
- ;;
-
-sysv4*MP*)
- if test -d /usr/nec; then
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext'
- soname_spec='$libname$shared_ext.$major'
- shlibpath_var=LD_LIBRARY_PATH
- fi
- ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
- version_type=sco
- need_lib_prefix=no
- need_version=no
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- if test yes = "$with_gnu_ld"; then
- sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
- else
- sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
- case $host_os in
- sco3.2v5*)
- sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
- ;;
- esac
- fi
- sys_lib_dlsearch_path_spec='/usr/lib'
- ;;
-
-tpf*)
- # TPF is a cross-target only. Preferred cross-host = GNU/Linux.
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
-
-uts4*)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-*)
- dynamic_linker=no
- ;;
-esac
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
-printf "%s\n" "$dynamic_linker" >&6; }
-test no = "$dynamic_linker" && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test yes = "$GCC"; then
- variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then
- sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec
-fi
-
-if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then
- sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec
-fi
-
-# remember unaugmented sys_lib_dlsearch_path content for libtool script decls...
-configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec
-
-# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code
-func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH"
-
-# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool
-configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
-printf %s "checking how to hardcode library paths into programs... " >&6; }
-hardcode_action=
-if test -n "$hardcode_libdir_flag_spec" ||
- test -n "$runpath_var" ||
- test yes = "$hardcode_automatic"; then
-
- # We can hardcode non-existent directories.
- if test no != "$hardcode_direct" &&
- # If the only mechanism to avoid hardcoding is shlibpath_var, we
- # have to relink, otherwise we might link with an installed library
- # when we should be linking with a yet-to-be-installed one
- ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, )" &&
- test no != "$hardcode_minus_L"; then
- # Linking always hardcodes the temporary library directory.
- hardcode_action=relink
- else
- # We can link without hardcoding, and we can hardcode nonexisting dirs.
- hardcode_action=immediate
- fi
-else
- # We cannot hardcode anything, or else we can only hardcode existing
- # directories.
- hardcode_action=unsupported
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
-printf "%s\n" "$hardcode_action" >&6; }
-
-if test relink = "$hardcode_action" ||
- test yes = "$inherit_rpath"; then
- # Fast installation is not supported
- enable_fast_install=no
-elif test yes = "$shlibpath_overrides_runpath" ||
- test no = "$enable_shared"; then
- # Fast installation is not necessary
- enable_fast_install=needless
-fi
-
-
-
-
-
-
- if test yes != "$enable_dlopen"; then
- enable_dlopen=unknown
- enable_dlopen_self=unknown
- enable_dlopen_self_static=unknown
-else
- lt_cv_dlopen=no
- lt_cv_dlopen_libs=
-
- case $host_os in
- beos*)
- lt_cv_dlopen=load_add_on
- lt_cv_dlopen_libs=
- lt_cv_dlopen_self=yes
- ;;
-
- mingw* | pw32* | cegcc*)
- lt_cv_dlopen=LoadLibrary
- lt_cv_dlopen_libs=
- ;;
-
- cygwin*)
- lt_cv_dlopen=dlopen
- lt_cv_dlopen_libs=
- ;;
-
- darwin*)
- # if libdl is installed we need to link against it
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
-printf %s "checking for dlopen in -ldl... " >&6; }
-if test ${ac_cv_lib_dl_dlopen+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-char dlopen ();
-int
-main (void)
-{
-return dlopen ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
- ac_cv_lib_dl_dlopen=yes
-else $as_nop
- ac_cv_lib_dl_dlopen=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
-printf "%s\n" "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = xyes
-then :
- lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl
-else $as_nop
-
- lt_cv_dlopen=dyld
- lt_cv_dlopen_libs=
- lt_cv_dlopen_self=yes
-
-fi
-
- ;;
-
- tpf*)
- # Don't try to run any link tests for TPF. We know it's impossible
- # because TPF is a cross-compiler, and we know how we open DSOs.
- lt_cv_dlopen=dlopen
- lt_cv_dlopen_libs=
- lt_cv_dlopen_self=no
- ;;
-
- *)
- ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
-if test "x$ac_cv_func_shl_load" = xyes
-then :
- lt_cv_dlopen=shl_load
-else $as_nop
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
-printf %s "checking for shl_load in -ldld... " >&6; }
-if test ${ac_cv_lib_dld_shl_load+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-char shl_load ();
-int
-main (void)
-{
-return shl_load ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
- ac_cv_lib_dld_shl_load=yes
-else $as_nop
- ac_cv_lib_dld_shl_load=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
-printf "%s\n" "$ac_cv_lib_dld_shl_load" >&6; }
-if test "x$ac_cv_lib_dld_shl_load" = xyes
-then :
- lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld
-else $as_nop
- ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
-if test "x$ac_cv_func_dlopen" = xyes
-then :
- lt_cv_dlopen=dlopen
-else $as_nop
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
-printf %s "checking for dlopen in -ldl... " >&6; }
-if test ${ac_cv_lib_dl_dlopen+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-char dlopen ();
-int
-main (void)
-{
-return dlopen ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
- ac_cv_lib_dl_dlopen=yes
-else $as_nop
- ac_cv_lib_dl_dlopen=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
-printf "%s\n" "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = xyes
-then :
- lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl
-else $as_nop
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
-printf %s "checking for dlopen in -lsvld... " >&6; }
-if test ${ac_cv_lib_svld_dlopen+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsvld $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-char dlopen ();
-int
-main (void)
-{
-return dlopen ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
- ac_cv_lib_svld_dlopen=yes
-else $as_nop
- ac_cv_lib_svld_dlopen=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
-printf "%s\n" "$ac_cv_lib_svld_dlopen" >&6; }
-if test "x$ac_cv_lib_svld_dlopen" = xyes
-then :
- lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld
-else $as_nop
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
-printf %s "checking for dld_link in -ldld... " >&6; }
-if test ${ac_cv_lib_dld_dld_link+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-char dld_link ();
-int
-main (void)
-{
-return dld_link ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
- ac_cv_lib_dld_dld_link=yes
-else $as_nop
- ac_cv_lib_dld_dld_link=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
-printf "%s\n" "$ac_cv_lib_dld_dld_link" >&6; }
-if test "x$ac_cv_lib_dld_dld_link" = xyes
-then :
- lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
- ;;
- esac
-
- if test no = "$lt_cv_dlopen"; then
- enable_dlopen=no
- else
- enable_dlopen=yes
- fi
-
- case $lt_cv_dlopen in
- dlopen)
- save_CPPFLAGS=$CPPFLAGS
- test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
-
- save_LDFLAGS=$LDFLAGS
- wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
-
- save_LIBS=$LIBS
- LIBS="$lt_cv_dlopen_libs $LIBS"
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
-printf %s "checking whether a program can dlopen itself... " >&6; }
-if test ${lt_cv_dlopen_self+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test yes = "$cross_compiling"; then :
- lt_cv_dlopen_self=cross
-else
- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
- lt_status=$lt_dlunknown
- cat > conftest.$ac_ext <<_LT_EOF
-#line $LINENO "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-# define LT_DLGLOBAL RTLD_GLOBAL
-#else
-# ifdef DL_GLOBAL
-# define LT_DLGLOBAL DL_GLOBAL
-# else
-# define LT_DLGLOBAL 0
-# endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
- find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-# ifdef RTLD_LAZY
-# define LT_DLLAZY_OR_NOW RTLD_LAZY
-# else
-# ifdef DL_LAZY
-# define LT_DLLAZY_OR_NOW DL_LAZY
-# else
-# ifdef RTLD_NOW
-# define LT_DLLAZY_OR_NOW RTLD_NOW
-# else
-# ifdef DL_NOW
-# define LT_DLLAZY_OR_NOW DL_NOW
-# else
-# define LT_DLLAZY_OR_NOW 0
-# endif
-# endif
-# endif
-# endif
-#endif
-
-/* When -fvisibility=hidden is used, assume the code has been annotated
- correspondingly for the symbols needed. */
-#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
-int fnord () __attribute__((visibility("default")));
-#endif
-
-int fnord () { return 42; }
-int main ()
-{
- void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
- int status = $lt_dlunknown;
-
- if (self)
- {
- if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
- else
- {
- if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
- else puts (dlerror ());
- }
- /* dlclose (self); */
- }
- else
- puts (dlerror ());
-
- return status;
-}
-_LT_EOF
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then
- (./conftest; exit; ) >&5 2>/dev/null
- lt_status=$?
- case x$lt_status in
- x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
- x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
- x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;;
- esac
- else :
- # compilation failed
- lt_cv_dlopen_self=no
- fi
-fi
-rm -fr conftest*
-
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
-printf "%s\n" "$lt_cv_dlopen_self" >&6; }
-
- if test yes = "$lt_cv_dlopen_self"; then
- wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
-printf %s "checking whether a statically linked program can dlopen itself... " >&6; }
-if test ${lt_cv_dlopen_self_static+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test yes = "$cross_compiling"; then :
- lt_cv_dlopen_self_static=cross
-else
- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
- lt_status=$lt_dlunknown
- cat > conftest.$ac_ext <<_LT_EOF
-#line $LINENO "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-# define LT_DLGLOBAL RTLD_GLOBAL
-#else
-# ifdef DL_GLOBAL
-# define LT_DLGLOBAL DL_GLOBAL
-# else
-# define LT_DLGLOBAL 0
-# endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
- find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-# ifdef RTLD_LAZY
-# define LT_DLLAZY_OR_NOW RTLD_LAZY
-# else
-# ifdef DL_LAZY
-# define LT_DLLAZY_OR_NOW DL_LAZY
-# else
-# ifdef RTLD_NOW
-# define LT_DLLAZY_OR_NOW RTLD_NOW
-# else
-# ifdef DL_NOW
-# define LT_DLLAZY_OR_NOW DL_NOW
-# else
-# define LT_DLLAZY_OR_NOW 0
-# endif
-# endif
-# endif
-# endif
-#endif
-
-/* When -fvisibility=hidden is used, assume the code has been annotated
- correspondingly for the symbols needed. */
-#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
-int fnord () __attribute__((visibility("default")));
-#endif
-
-int fnord () { return 42; }
-int main ()
-{
- void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
- int status = $lt_dlunknown;
-
- if (self)
- {
- if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
- else
- {
- if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
- else puts (dlerror ());
- }
- /* dlclose (self); */
- }
- else
- puts (dlerror ());
-
- return status;
-}
-_LT_EOF
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then
- (./conftest; exit; ) >&5 2>/dev/null
- lt_status=$?
- case x$lt_status in
- x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
- x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
- x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;;
- esac
- else :
- # compilation failed
- lt_cv_dlopen_self_static=no
- fi
-fi
-rm -fr conftest*
-
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
-printf "%s\n" "$lt_cv_dlopen_self_static" >&6; }
- fi
-
- CPPFLAGS=$save_CPPFLAGS
- LDFLAGS=$save_LDFLAGS
- LIBS=$save_LIBS
- ;;
- esac
-
- case $lt_cv_dlopen_self in
- yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
- *) enable_dlopen_self=unknown ;;
- esac
-
- case $lt_cv_dlopen_self_static in
- yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
- *) enable_dlopen_self_static=unknown ;;
- esac
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-striplib=
-old_striplib=
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
-printf %s "checking whether stripping libraries is possible... " >&6; }
-if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
- test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
- test -z "$striplib" && striplib="$STRIP --strip-unneeded"
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-else
-# FIXME - insert some real tests, host_os isn't really good enough
- case $host_os in
- darwin*)
- if test -n "$STRIP"; then
- striplib="$STRIP -x"
- old_striplib="$STRIP -S"
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
- else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- fi
- ;;
- *)
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- ;;
- esac
-fi
-
-
-
-
-
-
-
-
-
-
-
-
- # Report what library types will actually be built
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
-printf %s "checking if libtool supports shared libraries... " >&6; }
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
-printf "%s\n" "$can_build_shared" >&6; }
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
-printf %s "checking whether to build shared libraries... " >&6; }
- test no = "$can_build_shared" && enable_shared=no
-
- # On AIX, shared libraries and static libraries use the same namespace, and
- # are all built from PIC.
- case $host_os in
- aix3*)
- test yes = "$enable_shared" && enable_static=no
- if test -n "$RANLIB"; then
- archive_cmds="$archive_cmds~\$RANLIB \$lib"
- postinstall_cmds='$RANLIB $lib'
- fi
- ;;
-
- aix[4-9]*)
- if test ia64 != "$host_cpu"; then
- case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in
- yes,aix,yes) ;; # shared object as lib.so file only
- yes,svr4,*) ;; # shared object as lib.so archive member only
- yes,*) enable_static=no ;; # shared object in lib.a archive as well
- esac
- fi
- ;;
- esac
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
-printf "%s\n" "$enable_shared" >&6; }
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
-printf %s "checking whether to build static libraries... " >&6; }
- # Make sure either enable_shared or enable_static is yes.
- test yes = "$enable_shared" || enable_static=yes
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
-printf "%s\n" "$enable_static" >&6; }
-
-
-
-
-fi
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-CC=$lt_save_CC
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ac_config_commands="$ac_config_commands libtool"
-
-
-
-
-# Only expand once:
-
-
-
-
-# pkg-config is only needed for these options, do not require it otherwise
-if test "$enable_systemd" = "yes" -o "$enable_dnstap" = "yes" -o "$with_pyunbound" = "yes" -o "$with_pythonmod" = "yes"; then
-
-
-
-
-
-
-
-if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
-set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_path_PKG_CONFIG+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- case $PKG_CONFIG in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_path_PKG_CONFIG="$as_dir$ac_word$ac_exec_ext"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
- ;;
-esac
-fi
-PKG_CONFIG=$ac_cv_path_PKG_CONFIG
-if test -n "$PKG_CONFIG"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
-printf "%s\n" "$PKG_CONFIG" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_path_PKG_CONFIG"; then
- ac_pt_PKG_CONFIG=$PKG_CONFIG
- # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_path_ac_pt_PKG_CONFIG+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- case $ac_pt_PKG_CONFIG in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_path_ac_pt_PKG_CONFIG="$as_dir$ac_word$ac_exec_ext"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
- ;;
-esac
-fi
-ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
-if test -n "$ac_pt_PKG_CONFIG"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
-printf "%s\n" "$ac_pt_PKG_CONFIG" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
- if test "x$ac_pt_PKG_CONFIG" = x; then
- PKG_CONFIG=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- PKG_CONFIG=$ac_pt_PKG_CONFIG
- fi
-else
- PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
-fi
-
-fi
-if test -n "$PKG_CONFIG"; then
- _pkg_min_version=0.9.0
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
-printf %s "checking pkg-config is at least version $_pkg_min_version... " >&6; }
- if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
- else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- PKG_CONFIG=""
- fi
-fi
-fi
-
-# Checks for header files.
-ac_fn_c_check_header_compile "$LINENO" "stdarg.h" "ac_cv_header_stdarg_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_stdarg_h" = xyes
-then :
- printf "%s\n" "#define HAVE_STDARG_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "stdbool.h" "ac_cv_header_stdbool_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_stdbool_h" = xyes
-then :
- printf "%s\n" "#define HAVE_STDBOOL_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "netinet/in.h" "ac_cv_header_netinet_in_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_netinet_in_h" = xyes
-then :
- printf "%s\n" "#define HAVE_NETINET_IN_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "netinet/tcp.h" "ac_cv_header_netinet_tcp_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_netinet_tcp_h" = xyes
-then :
- printf "%s\n" "#define HAVE_NETINET_TCP_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "sys/param.h" "ac_cv_header_sys_param_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_sys_param_h" = xyes
-then :
- printf "%s\n" "#define HAVE_SYS_PARAM_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "sys/select.h" "ac_cv_header_sys_select_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_sys_select_h" = xyes
-then :
- printf "%s\n" "#define HAVE_SYS_SELECT_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "sys/socket.h" "ac_cv_header_sys_socket_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_sys_socket_h" = xyes
-then :
- printf "%s\n" "#define HAVE_SYS_SOCKET_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "sys/un.h" "ac_cv_header_sys_un_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_sys_un_h" = xyes
-then :
- printf "%s\n" "#define HAVE_SYS_UN_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "sys/uio.h" "ac_cv_header_sys_uio_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_sys_uio_h" = xyes
-then :
- printf "%s\n" "#define HAVE_SYS_UIO_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "sys/resource.h" "ac_cv_header_sys_resource_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_sys_resource_h" = xyes
-then :
- printf "%s\n" "#define HAVE_SYS_RESOURCE_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "arpa/inet.h" "ac_cv_header_arpa_inet_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_arpa_inet_h" = xyes
-then :
- printf "%s\n" "#define HAVE_ARPA_INET_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "syslog.h" "ac_cv_header_syslog_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_syslog_h" = xyes
-then :
- printf "%s\n" "#define HAVE_SYSLOG_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "netdb.h" "ac_cv_header_netdb_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_netdb_h" = xyes
-then :
- printf "%s\n" "#define HAVE_NETDB_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "sys/wait.h" "ac_cv_header_sys_wait_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_sys_wait_h" = xyes
-then :
- printf "%s\n" "#define HAVE_SYS_WAIT_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "pwd.h" "ac_cv_header_pwd_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_pwd_h" = xyes
-then :
- printf "%s\n" "#define HAVE_PWD_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "glob.h" "ac_cv_header_glob_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_glob_h" = xyes
-then :
- printf "%s\n" "#define HAVE_GLOB_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "grp.h" "ac_cv_header_grp_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_grp_h" = xyes
-then :
- printf "%s\n" "#define HAVE_GRP_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "login_cap.h" "ac_cv_header_login_cap_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_login_cap_h" = xyes
-then :
- printf "%s\n" "#define HAVE_LOGIN_CAP_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_winsock2_h" = xyes
-then :
- printf "%s\n" "#define HAVE_WINSOCK2_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "ws2tcpip.h" "ac_cv_header_ws2tcpip_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_ws2tcpip_h" = xyes
-then :
- printf "%s\n" "#define HAVE_WS2TCPIP_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "endian.h" "ac_cv_header_endian_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_endian_h" = xyes
-then :
- printf "%s\n" "#define HAVE_ENDIAN_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "sys/endian.h" "ac_cv_header_sys_endian_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_sys_endian_h" = xyes
-then :
- printf "%s\n" "#define HAVE_SYS_ENDIAN_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "libkern/OSByteOrder.h" "ac_cv_header_libkern_OSByteOrder_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_libkern_OSByteOrder_h" = xyes
-then :
- printf "%s\n" "#define HAVE_LIBKERN_OSBYTEORDER_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "sys/ipc.h" "ac_cv_header_sys_ipc_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_sys_ipc_h" = xyes
-then :
- printf "%s\n" "#define HAVE_SYS_IPC_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "sys/shm.h" "ac_cv_header_sys_shm_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_sys_shm_h" = xyes
-then :
- printf "%s\n" "#define HAVE_SYS_SHM_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "ifaddrs.h" "ac_cv_header_ifaddrs_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_ifaddrs_h" = xyes
-then :
- printf "%s\n" "#define HAVE_IFADDRS_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "poll.h" "ac_cv_header_poll_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_poll_h" = xyes
-then :
- printf "%s\n" "#define HAVE_POLL_H 1" >>confdefs.h
-
-fi
-
-# net/if.h portability for Darwin see:
-# https://www.gnu.org/software/autoconf/manual/autoconf-2.69/html_node/Header-Portability.html
-ac_fn_c_check_header_compile "$LINENO" "net/if.h" "ac_cv_header_net_if_h" "
-#include <stdio.h>
-#ifdef STDC_HEADERS
-# include <stdlib.h>
-# include <stddef.h>
-#else
-# ifdef HAVE_STDLIB_H
-# include <stdlib.h>
-# endif
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-# include <sys/socket.h>
-#endif
-
-"
-if test "x$ac_cv_header_net_if_h" = xyes
-then :
- printf "%s\n" "#define HAVE_NET_IF_H 1" >>confdefs.h
-
-fi
-
-
-# Check for Apple header. This uncovers TARGET_OS_IPHONE, TARGET_OS_TV or TARGET_OS_WATCH
-ac_fn_c_check_header_compile "$LINENO" "TargetConditionals.h" "ac_cv_header_TargetConditionals_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_TargetConditionals_h" = xyes
-then :
- printf "%s\n" "#define HAVE_TARGETCONDITIONALS_H 1" >>confdefs.h
-
-fi
-
-ac_fn_c_check_header_compile "$LINENO" "netioapi.h" "ac_cv_header_netioapi_h" "$ac_includes_default
-#if HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-
-#ifdef HAVE_SYS_UIO_H
-#include <sys/uio.h>
-#endif
-
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-
-#ifdef HAVE_NETINET_TCP_H
-#include <netinet/tcp.h>
-#endif
-
-#ifdef HAVE_ARPA_INET_H
-#include <arpa/inet.h>
-#endif
-
-#ifdef HAVE_WINSOCK2_H
-#include <winsock2.h>
-#endif
-
-#ifdef HAVE_WS2TCPIP_H
-#include <ws2tcpip.h>
-#endif
-
-"
-if test "x$ac_cv_header_netioapi_h" = xyes
-then :
- printf "%s\n" "#define HAVE_NETIOAPI_H 1" >>confdefs.h
-
-fi
-
-
-# Check for Linux timestamping headers
-ac_fn_c_check_header_compile "$LINENO" "linux/net_tstamp.h" "ac_cv_header_linux_net_tstamp_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_linux_net_tstamp_h" = xyes
-then :
- printf "%s\n" "#define HAVE_LINUX_NET_TSTAMP_H 1" >>confdefs.h
-
-fi
-
-ac_fn_c_check_header_compile "$LINENO" "stdatomic.h" "ac_cv_header_stdatomic_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_stdatomic_h" = xyes
-then :
- printf "%s\n" "#define HAVE_STDATOMIC_H 1" >>confdefs.h
-
-fi
-
-
-# check for types.
-# Using own tests for int64* because autoconf builtin only give 32bit.
-ac_fn_c_check_type "$LINENO" "int8_t" "ac_cv_type_int8_t" "$ac_includes_default"
-if test "x$ac_cv_type_int8_t" = xyes
-then :
-
-else $as_nop
-
-printf "%s\n" "#define int8_t signed char" >>confdefs.h
-
-fi
-
-ac_fn_c_check_type "$LINENO" "int16_t" "ac_cv_type_int16_t" "$ac_includes_default"
-if test "x$ac_cv_type_int16_t" = xyes
-then :
-
-else $as_nop
-
-printf "%s\n" "#define int16_t short" >>confdefs.h
-
-fi
-
-ac_fn_c_check_type "$LINENO" "int32_t" "ac_cv_type_int32_t" "$ac_includes_default"
-if test "x$ac_cv_type_int32_t" = xyes
-then :
-
-else $as_nop
-
-printf "%s\n" "#define int32_t int" >>confdefs.h
-
-fi
-
-ac_fn_c_check_type "$LINENO" "int64_t" "ac_cv_type_int64_t" "$ac_includes_default"
-if test "x$ac_cv_type_int64_t" = xyes
-then :
-
-else $as_nop
-
-printf "%s\n" "#define int64_t long long" >>confdefs.h
-
-fi
-
-ac_fn_c_check_type "$LINENO" "uint8_t" "ac_cv_type_uint8_t" "$ac_includes_default"
-if test "x$ac_cv_type_uint8_t" = xyes
-then :
-
-else $as_nop
-
-printf "%s\n" "#define uint8_t unsigned char" >>confdefs.h
-
-fi
-
-ac_fn_c_check_type "$LINENO" "uint16_t" "ac_cv_type_uint16_t" "$ac_includes_default"
-if test "x$ac_cv_type_uint16_t" = xyes
-then :
-
-else $as_nop
-
-printf "%s\n" "#define uint16_t unsigned short" >>confdefs.h
-
-fi
-
-ac_fn_c_check_type "$LINENO" "uint32_t" "ac_cv_type_uint32_t" "$ac_includes_default"
-if test "x$ac_cv_type_uint32_t" = xyes
-then :
-
-else $as_nop
-
-printf "%s\n" "#define uint32_t unsigned int" >>confdefs.h
-
-fi
-
-ac_fn_c_check_type "$LINENO" "uint64_t" "ac_cv_type_uint64_t" "$ac_includes_default"
-if test "x$ac_cv_type_uint64_t" = xyes
-then :
-
-else $as_nop
-
-printf "%s\n" "#define uint64_t unsigned long long" >>confdefs.h
-
-fi
-
-ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
-if test "x$ac_cv_type_size_t" = xyes
-then :
-
-else $as_nop
-
-printf "%s\n" "#define size_t unsigned int" >>confdefs.h
-
-fi
-
-ac_fn_c_check_type "$LINENO" "ssize_t" "ac_cv_type_ssize_t" "$ac_includes_default"
-if test "x$ac_cv_type_ssize_t" = xyes
-then :
-
-else $as_nop
-
-printf "%s\n" "#define ssize_t int" >>confdefs.h
-
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
-printf %s "checking how to run the C preprocessor... " >&6; }
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
- CPP=
-fi
-if test -z "$CPP"; then
- if test ${ac_cv_prog_CPP+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- # Double quotes because $CC needs to be expanded
- for CPP in "$CC -E" "$CC -E -traditional-cpp" cpp /lib/cpp
- do
- ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <limits.h>
- Syntax error
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"
-then :
-
-else $as_nop
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether nonexistent headers
- # can be detected and how.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"
-then :
- # Broken: success on invalid input.
-continue
-else $as_nop
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok
-then :
- break
-fi
-
- done
- ac_cv_prog_CPP=$CPP
-
-fi
- CPP=$ac_cv_prog_CPP
-else
- ac_cv_prog_CPP=$CPP
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
-printf "%s\n" "$CPP" >&6; }
-ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <limits.h>
- Syntax error
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"
-then :
-
-else $as_nop
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether nonexistent headers
- # can be detected and how.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"
-then :
- # Broken: success on invalid input.
-continue
-else $as_nop
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok
-then :
-
-else $as_nop
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for uid_t in sys/types.h" >&5
-printf %s "checking for uid_t in sys/types.h... " >&6; }
-if test ${ac_cv_type_uid_t+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <sys/types.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "uid_t" >/dev/null 2>&1
-then :
- ac_cv_type_uid_t=yes
-else $as_nop
- ac_cv_type_uid_t=no
-fi
-rm -rf conftest*
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_uid_t" >&5
-printf "%s\n" "$ac_cv_type_uid_t" >&6; }
-if test $ac_cv_type_uid_t = no; then
-
-printf "%s\n" "#define uid_t int" >>confdefs.h
-
-
-printf "%s\n" "#define gid_t int" >>confdefs.h
-
-fi
-
-
- ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default
-"
-if test "x$ac_cv_type_pid_t" = xyes
-then :
-
-else $as_nop
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
- #if defined _WIN64 && !defined __CYGWIN__
- LLP64
- #endif
-
-int
-main (void)
-{
-
- ;
- return 0;
-}
-
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- ac_pid_type='int'
-else $as_nop
- ac_pid_type='__int64'
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-
-printf "%s\n" "#define pid_t $ac_pid_type" >>confdefs.h
-
-
-fi
-
-
-ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default"
-if test "x$ac_cv_type_off_t" = xyes
-then :
-
-else $as_nop
-
-printf "%s\n" "#define off_t long int" >>confdefs.h
-
-fi
-
-ac_fn_c_check_type "$LINENO" "u_char" "ac_cv_type_u_char" "
-$ac_includes_default
-#ifdef HAVE_WINSOCK2_H
-# include <winsock2.h>
-#endif
-
-"
-if test "x$ac_cv_type_u_char" = xyes
-then :
-
-else $as_nop
-
-printf "%s\n" "#define u_char unsigned char" >>confdefs.h
-
-fi
-
-ac_fn_c_check_type "$LINENO" "rlim_t" "ac_cv_type_rlim_t" "
-$ac_includes_default
-#ifdef HAVE_SYS_RESOURCE_H
-# include <sys/resource.h>
-#endif
-
-"
-if test "x$ac_cv_type_rlim_t" = xyes
-then :
-
-else $as_nop
-
-printf "%s\n" "#define rlim_t unsigned long" >>confdefs.h
-
-fi
-
-
-ac_fn_c_check_type "$LINENO" "socklen_t" "ac_cv_type_socklen_t" "
-$ac_includes_default
-#ifdef HAVE_SYS_SOCKET_H
-# include <sys/socket.h>
-#endif
-#ifdef HAVE_WS2TCPIP_H
-# include <ws2tcpip.h>
-#endif
-
-"
-if test "x$ac_cv_type_socklen_t" = xyes
-then :
-
-else $as_nop
-
-printf "%s\n" "#define socklen_t int" >>confdefs.h
-
-fi
-
- ac_fn_c_check_type "$LINENO" "in_addr_t" "ac_cv_type_in_addr_t" "
-$ac_includes_default
-#ifdef HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#ifdef HAVE_NETINET_IN_H
-# include <netinet/in.h>
-#endif
-
-"
-if test "x$ac_cv_type_in_addr_t" = xyes
-then :
-
-else $as_nop
-
-printf "%s\n" "#define in_addr_t uint32_t" >>confdefs.h
-
-fi
-
- ac_fn_c_check_type "$LINENO" "in_port_t" "ac_cv_type_in_port_t" "
-$ac_includes_default
-#ifdef HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#ifdef HAVE_NETINET_IN_H
-# include <netinet/in.h>
-#endif
-
-"
-if test "x$ac_cv_type_in_port_t" = xyes
-then :
-
-else $as_nop
-
-printf "%s\n" "#define in_port_t uint16_t" >>confdefs.h
-
-fi
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if memcmp compares unsigned" >&5
-printf %s "checking if memcmp compares unsigned... " >&6; }
-if test "$cross_compiling" = yes
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: cross-compile no" >&5
-printf "%s\n" "cross-compile no" >&6; }
-
-printf "%s\n" "#define MEMCMP_IS_BROKEN 1" >>confdefs.h
-
- case " $LIBOBJS " in
- *" memcmp.$ac_objext "* ) ;;
- *) LIBOBJS="$LIBOBJS memcmp.$ac_objext"
- ;;
-esac
-
-
-else $as_nop
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-int main(void)
-{
- char a = 255, b = 0;
- if(memcmp(&a, &b, 1) < 0)
- return 1;
- return 0;
-}
-
-_ACEOF
-if ac_fn_c_try_run "$LINENO"
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-else $as_nop
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-
-printf "%s\n" "#define MEMCMP_IS_BROKEN 1" >>confdefs.h
-
- case " $LIBOBJS " in
- *" memcmp.$ac_objext "* ) ;;
- *) LIBOBJS="$LIBOBJS memcmp.$ac_objext"
- ;;
-esac
-
-
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-
-# The cast to long int works around a bug in the HP C Compiler
-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-# This bug is HP SR number 8606223364.
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of time_t" >&5
-printf %s "checking size of time_t... " >&6; }
-if test ${ac_cv_sizeof_time_t+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (time_t))" "ac_cv_sizeof_time_t" "
-$ac_includes_default
-#ifdef TIME_WITH_SYS_TIME
-# include <sys/time.h>
-# include <time.h>
-#else
-# ifdef HAVE_SYS_TIME_H
-# include <sys/time.h>
-# else
-# include <time.h>
-# endif
-#endif
-
-"
-then :
-
-else $as_nop
- if test "$ac_cv_type_time_t" = yes; then
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "cannot compute sizeof (time_t)
-See \`config.log' for more details" "$LINENO" 5; }
- else
- ac_cv_sizeof_time_t=0
- fi
-fi
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_time_t" >&5
-printf "%s\n" "$ac_cv_sizeof_time_t" >&6; }
-
-
-
-printf "%s\n" "#define SIZEOF_TIME_T $ac_cv_sizeof_time_t" >>confdefs.h
-
-
-# The cast to long int works around a bug in the HP C Compiler
-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-# This bug is HP SR number 8606223364.
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of size_t" >&5
-printf %s "checking size of size_t... " >&6; }
-if test ${ac_cv_sizeof_size_t+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (size_t))" "ac_cv_sizeof_size_t" "$ac_includes_default"
-then :
-
-else $as_nop
- if test "$ac_cv_type_size_t" = yes; then
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "cannot compute sizeof (size_t)
-See \`config.log' for more details" "$LINENO" 5; }
- else
- ac_cv_sizeof_size_t=0
- fi
-fi
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_size_t" >&5
-printf "%s\n" "$ac_cv_sizeof_size_t" >&6; }
-
-
-
-printf "%s\n" "#define SIZEOF_SIZE_T $ac_cv_sizeof_size_t" >>confdefs.h
-
-
-
-# add option to disable the evil rpath
-
-# Check whether --enable-rpath was given.
-if test ${enable_rpath+y}
-then :
- enableval=$enable_rpath; enable_rpath=$enableval
-else $as_nop
- enable_rpath=yes
-fi
-
-if test "x$enable_rpath" = xno; then
- ac_config_commands="$ac_config_commands disable-rpath"
-
-fi
-
-
-
-# check to see if libraries are needed for these functions.
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing inet_pton" >&5
-printf %s "checking for library containing inet_pton... " >&6; }
-if test ${ac_cv_search_inet_pton+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_func_search_save_LIBS=$LIBS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-char inet_pton ();
-int
-main (void)
-{
-return inet_pton ();
- ;
- return 0;
-}
-_ACEOF
-for ac_lib in '' nsl
-do
- if test -z "$ac_lib"; then
- ac_res="none required"
- else
- ac_res=-l$ac_lib
- LIBS="-l$ac_lib $ac_func_search_save_LIBS"
- fi
- if ac_fn_c_try_link "$LINENO"
-then :
- ac_cv_search_inet_pton=$ac_res
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext
- if test ${ac_cv_search_inet_pton+y}
-then :
- break
-fi
-done
-if test ${ac_cv_search_inet_pton+y}
-then :
-
-else $as_nop
- ac_cv_search_inet_pton=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_inet_pton" >&5
-printf "%s\n" "$ac_cv_search_inet_pton" >&6; }
-ac_res=$ac_cv_search_inet_pton
-if test "$ac_res" != no
-then :
- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
-fi
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing socket" >&5
-printf %s "checking for library containing socket... " >&6; }
-if test ${ac_cv_search_socket+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_func_search_save_LIBS=$LIBS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-char socket ();
-int
-main (void)
-{
-return socket ();
- ;
- return 0;
-}
-_ACEOF
-for ac_lib in '' socket
-do
- if test -z "$ac_lib"; then
- ac_res="none required"
- else
- ac_res=-l$ac_lib
- LIBS="-l$ac_lib $ac_func_search_save_LIBS"
- fi
- if ac_fn_c_try_link "$LINENO"
-then :
- ac_cv_search_socket=$ac_res
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext
- if test ${ac_cv_search_socket+y}
-then :
- break
-fi
-done
-if test ${ac_cv_search_socket+y}
-then :
-
-else $as_nop
- ac_cv_search_socket=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_socket" >&5
-printf "%s\n" "$ac_cv_search_socket" >&6; }
-ac_res=$ac_cv_search_socket
-if test "$ac_res" != no
-then :
- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
-fi
-
-
-# check whether strptime also works
-
-# check some functions of the OS before linking libs (while still runnable).
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working chown" >&5
-printf %s "checking for working chown... " >&6; }
-if test ${ac_cv_func_chown_works+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test "$cross_compiling" = yes
-then :
- case "$host_os" in # ((
- # Guess yes on glibc systems.
- *-gnu*) ac_cv_func_chown_works=yes ;;
- # If we don't know, assume the worst.
- *) ac_cv_func_chown_works=no ;;
- esac
-else $as_nop
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$ac_includes_default
-#include <fcntl.h>
-
-int
-main (void)
-{
- char *f = "conftest.chown";
- struct stat before, after;
-
- if (creat (f, 0600) < 0)
- return 1;
- if (stat (f, &before) < 0)
- return 1;
- if (chown (f, (uid_t) -1, (gid_t) -1) == -1)
- return 1;
- if (stat (f, &after) < 0)
- return 1;
- return ! (before.st_uid == after.st_uid && before.st_gid == after.st_gid);
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"
-then :
- ac_cv_func_chown_works=yes
-else $as_nop
- ac_cv_func_chown_works=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-rm -f conftest.chown
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_chown_works" >&5
-printf "%s\n" "$ac_cv_func_chown_works" >&6; }
-if test $ac_cv_func_chown_works = yes; then
-
-printf "%s\n" "#define HAVE_CHOWN 1" >>confdefs.h
-
-fi
-
-
-ac_func=
-for ac_item in $ac_func_c_list
-do
- if test $ac_func; then
- ac_fn_c_check_func "$LINENO" $ac_func ac_cv_func_$ac_func
- if eval test \"x\$ac_cv_func_$ac_func\" = xyes; then
- echo "#define $ac_item 1" >> confdefs.h
- fi
- ac_func=
- else
- ac_func=$ac_item
- fi
-done
-
-
-
-if test "x$ac_cv_func_fork" = xyes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working fork" >&5
-printf %s "checking for working fork... " >&6; }
-if test ${ac_cv_func_fork_works+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test "$cross_compiling" = yes
-then :
- ac_cv_func_fork_works=cross
-else $as_nop
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$ac_includes_default
-int
-main (void)
-{
-
- /* By Ruediger Kuhlmann. */
- return fork () < 0;
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"
-then :
- ac_cv_func_fork_works=yes
-else $as_nop
- ac_cv_func_fork_works=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_fork_works" >&5
-printf "%s\n" "$ac_cv_func_fork_works" >&6; }
-
-else
- ac_cv_func_fork_works=$ac_cv_func_fork
-fi
-if test "x$ac_cv_func_fork_works" = xcross; then
- case $host in
- *-*-amigaos* | *-*-msdosdjgpp*)
- # Override, as these systems have only a dummy fork() stub
- ac_cv_func_fork_works=no
- ;;
- *)
- ac_cv_func_fork_works=yes
- ;;
- esac
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&5
-printf "%s\n" "$as_me: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&2;}
-fi
-ac_cv_func_vfork_works=$ac_cv_func_vfork
-if test "x$ac_cv_func_vfork" = xyes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working vfork" >&5
-printf %s "checking for working vfork... " >&6; }
-if test ${ac_cv_func_vfork_works+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test "$cross_compiling" = yes
-then :
- ac_cv_func_vfork_works=cross
-else $as_nop
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-/* Thanks to Paul Eggert for this test. */
-$ac_includes_default
-#include <signal.h>
-#include <sys/wait.h>
-#ifdef HAVE_VFORK_H
-# include <vfork.h>
-#endif
-
-static void
-do_nothing (int sig)
-{
- (void) sig;
-}
-
-/* On some sparc systems, changes by the child to local and incoming
- argument registers are propagated back to the parent. The compiler
- is told about this with #include <vfork.h>, but some compilers
- (e.g. gcc -O) don't grok <vfork.h>. Test for this by using a
- static variable whose address is put into a register that is
- clobbered by the vfork. */
-static void
-sparc_address_test (int arg)
-{
- static pid_t child;
- if (!child) {
- child = vfork ();
- if (child < 0) {
- perror ("vfork");
- _exit(2);
- }
- if (!child) {
- arg = getpid();
- write(-1, "", 0);
- _exit (arg);
- }
- }
-}
-
-int
-main (void)
-{
- pid_t parent = getpid ();
- pid_t child;
-
- sparc_address_test (0);
-
- /* On Solaris 2.4, changes by the child to the signal handler
- also munge signal handlers in the parent. To detect this,
- start by putting the parent's handler in a known state. */
- signal (SIGTERM, SIG_DFL);
-
- child = vfork ();
-
- if (child == 0) {
- /* Here is another test for sparc vfork register problems. This
- test uses lots of local variables, at least as many local
- variables as main has allocated so far including compiler
- temporaries. 4 locals are enough for gcc 1.40.3 on a Solaris
- 4.1.3 sparc, but we use 8 to be safe. A buggy compiler should
- reuse the register of parent for one of the local variables,
- since it will think that parent can't possibly be used any more
- in this routine. Assigning to the local variable will thus
- munge parent in the parent process. */
- pid_t
- p = getpid(), p1 = getpid(), p2 = getpid(), p3 = getpid(),
- p4 = getpid(), p5 = getpid(), p6 = getpid(), p7 = getpid();
- /* Convince the compiler that p..p7 are live; otherwise, it might
- use the same hardware register for all 8 local variables. */
- if (p != p1 || p != p2 || p != p3 || p != p4
- || p != p5 || p != p6 || p != p7)
- _exit(1);
-
- /* Alter the child's signal handler. */
- if (signal (SIGTERM, do_nothing) != SIG_DFL)
- _exit(1);
-
- /* On some systems (e.g. IRIX 3.3), vfork doesn't separate parent
- from child file descriptors. If the child closes a descriptor
- before it execs or exits, this munges the parent's descriptor
- as well. Test for this by closing stdout in the child. */
- _exit(close(fileno(stdout)) != 0);
- } else {
- int status;
- struct stat st;
-
- while (wait(&status) != child)
- ;
- return (
- /* Was there some problem with vforking? */
- child < 0
-
- /* Did the child munge the parent's signal handler? */
- || signal (SIGTERM, SIG_DFL) != SIG_DFL
-
- /* Did the child fail? (This shouldn't happen.) */
- || status
-
- /* Did the vfork/compiler bug occur? */
- || parent != getpid()
-
- /* Did the file descriptor bug occur? */
- || fstat(fileno(stdout), &st) != 0
- );
- }
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"
-then :
- ac_cv_func_vfork_works=yes
-else $as_nop
- ac_cv_func_vfork_works=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_vfork_works" >&5
-printf "%s\n" "$ac_cv_func_vfork_works" >&6; }
-
-fi;
-if test "x$ac_cv_func_fork_works" = xcross; then
- ac_cv_func_vfork_works=$ac_cv_func_vfork
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&5
-printf "%s\n" "$as_me: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&2;}
-fi
-
-if test "x$ac_cv_func_vfork_works" = xyes; then
-
-printf "%s\n" "#define HAVE_WORKING_VFORK 1" >>confdefs.h
-
-else
-
-printf "%s\n" "#define vfork fork" >>confdefs.h
-
-fi
-if test "x$ac_cv_func_fork_works" = xyes; then
-
-printf "%s\n" "#define HAVE_WORKING_FORK 1" >>confdefs.h
-
-fi
-
-
-printf "%s\n" "#define RETSIGTYPE void" >>confdefs.h
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for _LARGEFILE_SOURCE value needed for large files" >&5
-printf %s "checking for _LARGEFILE_SOURCE value needed for large files... " >&6; }
-if test ${ac_cv_sys_largefile_source+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- while :; do
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <sys/types.h> /* for off_t */
- #include <stdio.h>
-int
-main (void)
-{
-int (*fp) (FILE *, off_t, int) = fseeko;
- return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
- ac_cv_sys_largefile_source=no; break
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#define _LARGEFILE_SOURCE 1
-#include <sys/types.h> /* for off_t */
- #include <stdio.h>
-int
-main (void)
-{
-int (*fp) (FILE *, off_t, int) = fseeko;
- return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
- ac_cv_sys_largefile_source=1; break
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
- ac_cv_sys_largefile_source=unknown
- break
-done
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_source" >&5
-printf "%s\n" "$ac_cv_sys_largefile_source" >&6; }
-case $ac_cv_sys_largefile_source in #(
- no | unknown) ;;
- *)
-printf "%s\n" "#define _LARGEFILE_SOURCE $ac_cv_sys_largefile_source" >>confdefs.h
-;;
-esac
-rm -rf conftest*
-
-# We used to try defining _XOPEN_SOURCE=500 too, to work around a bug
-# in glibc 2.1.3, but that breaks too many other things.
-# If you want fseeko and ftello with glibc, upgrade to a fixed glibc.
-if test $ac_cv_sys_largefile_source != unknown; then
-
-printf "%s\n" "#define HAVE_FSEEKO 1" >>confdefs.h
-
-fi
-
-
-# Check whether --enable-largefile was given.
-if test ${enable_largefile+y}
-then :
- enableval=$enable_largefile;
-fi
-
-if test "$enable_largefile" != no; then
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5
-printf %s "checking for special C compiler options needed for large files... " >&6; }
-if test ${ac_cv_sys_largefile_CC+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_cv_sys_largefile_CC=no
- if test "$GCC" != yes; then
- ac_save_CC=$CC
- while :; do
- # IRIX 6.2 and later do not support large files by default,
- # so use the C compiler's -n32 option if that helps.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <sys/types.h>
- /* Check that off_t can represent 2**63 - 1 correctly.
- We can't simply define LARGE_OFF_T to be 9223372036854775807,
- since some C++ compilers masquerading as C compilers
- incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
- int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
- && LARGE_OFF_T % 2147483647 == 1)
- ? 1 : -1];
-int
-main (void)
-{
-
- ;
- return 0;
-}
-_ACEOF
- if ac_fn_c_try_compile "$LINENO"
-then :
- break
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam
- CC="$CC -n32"
- if ac_fn_c_try_compile "$LINENO"
-then :
- ac_cv_sys_largefile_CC=' -n32'; break
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam
- break
- done
- CC=$ac_save_CC
- rm -f conftest.$ac_ext
- fi
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5
-printf "%s\n" "$ac_cv_sys_largefile_CC" >&6; }
- if test "$ac_cv_sys_largefile_CC" != no; then
- CC=$CC$ac_cv_sys_largefile_CC
- fi
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5
-printf %s "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; }
-if test ${ac_cv_sys_file_offset_bits+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- while :; do
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <sys/types.h>
- /* Check that off_t can represent 2**63 - 1 correctly.
- We can't simply define LARGE_OFF_T to be 9223372036854775807,
- since some C++ compilers masquerading as C compilers
- incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
- int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
- && LARGE_OFF_T % 2147483647 == 1)
- ? 1 : -1];
-int
-main (void)
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- ac_cv_sys_file_offset_bits=no; break
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#define _FILE_OFFSET_BITS 64
-#include <sys/types.h>
- /* Check that off_t can represent 2**63 - 1 correctly.
- We can't simply define LARGE_OFF_T to be 9223372036854775807,
- since some C++ compilers masquerading as C compilers
- incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
- int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
- && LARGE_OFF_T % 2147483647 == 1)
- ? 1 : -1];
-int
-main (void)
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- ac_cv_sys_file_offset_bits=64; break
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
- ac_cv_sys_file_offset_bits=unknown
- break
-done
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5
-printf "%s\n" "$ac_cv_sys_file_offset_bits" >&6; }
-case $ac_cv_sys_file_offset_bits in #(
- no | unknown) ;;
- *)
-printf "%s\n" "#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits" >>confdefs.h
-;;
-esac
-rm -rf conftest*
- if test $ac_cv_sys_file_offset_bits = unknown; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5
-printf %s "checking for _LARGE_FILES value needed for large files... " >&6; }
-if test ${ac_cv_sys_large_files+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- while :; do
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <sys/types.h>
- /* Check that off_t can represent 2**63 - 1 correctly.
- We can't simply define LARGE_OFF_T to be 9223372036854775807,
- since some C++ compilers masquerading as C compilers
- incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
- int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
- && LARGE_OFF_T % 2147483647 == 1)
- ? 1 : -1];
-int
-main (void)
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- ac_cv_sys_large_files=no; break
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#define _LARGE_FILES 1
-#include <sys/types.h>
- /* Check that off_t can represent 2**63 - 1 correctly.
- We can't simply define LARGE_OFF_T to be 9223372036854775807,
- since some C++ compilers masquerading as C compilers
- incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
- int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
- && LARGE_OFF_T % 2147483647 == 1)
- ? 1 : -1];
-int
-main (void)
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- ac_cv_sys_large_files=1; break
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
- ac_cv_sys_large_files=unknown
- break
-done
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5
-printf "%s\n" "$ac_cv_sys_large_files" >&6; }
-case $ac_cv_sys_large_files in #(
- no | unknown) ;;
- *)
-printf "%s\n" "#define _LARGE_FILES $ac_cv_sys_large_files" >>confdefs.h
-;;
-esac
-rm -rf conftest*
- fi
-fi
-
-
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we need -D_LARGEFILE_SOURCE=1 as a flag for $CC" >&5
-printf %s "checking whether we need -D_LARGEFILE_SOURCE=1 as a flag for $CC... " >&6; }
-cache=_D_LARGEFILE_SOURCE_1
-if eval test \${cv_prog_cc_flag_needed_$cache+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
-
-echo '
-#include <stdio.h>
-int test(void) {
- int a = fseeko(stdin, 0, 0);
- return a;
-}
-' > conftest.c
-echo 'void f(void){}' >>conftest.c
-if test -z "`$CC $CPPFLAGS $CFLAGS $ERRFLAG -c conftest.c 2>&1`"; then
-eval "cv_prog_cc_flag_needed_$cache=no"
-else
-
-if test -z "`$CC $CPPFLAGS $CFLAGS -D_LARGEFILE_SOURCE=1 $ERRFLAG -c conftest.c 2>&1`"; then
-eval "cv_prog_cc_flag_needed_$cache=yes"
-else
-eval "cv_prog_cc_flag_needed_$cache=fail"
-#echo 'Test with flag fails too!'
-#cat conftest.c
-#echo "$CC $CPPFLAGS $CFLAGS -D_LARGEFILE_SOURCE=1 $ERRFLAG -c conftest.c 2>&1"
-#echo `$CC $CPPFLAGS $CFLAGS -D_LARGEFILE_SOURCE=1 $ERRFLAG -c conftest.c 2>&1`
-#exit 1
-fi
-
-fi
-rm -f conftest conftest.c conftest.o
-
-fi
-
-if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = yes"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-:
-CFLAGS="$CFLAGS -D_LARGEFILE_SOURCE=1"
-else
-if eval "test \"`echo '$cv_prog_cc_flag_needed_'$cache`\" = no"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-#echo 'Test with flag is no!'
-#cat conftest.c
-#echo "$CC $CPPFLAGS $CFLAGS -D_LARGEFILE_SOURCE=1 $ERRFLAG -c conftest.c 2>&1"
-#echo `$CC $CPPFLAGS $CFLAGS -D_LARGEFILE_SOURCE=1 $ERRFLAG -c conftest.c 2>&1`
-#exit 1
-:
-
-else
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: failed" >&5
-printf "%s\n" "failed" >&6; }
-:
-
-fi
-fi
-
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if nonblocking sockets work" >&5
-printf %s "checking if nonblocking sockets work... " >&6; }
-if echo $host | grep mingw >/dev/null; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no (windows)" >&5
-printf "%s\n" "no (windows)" >&6; }
-
-printf "%s\n" "#define NONBLOCKING_IS_BROKEN 1" >>confdefs.h
-
-else
-if test "$cross_compiling" = yes
-then :
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: crosscompile(yes)" >&5
-printf "%s\n" "crosscompile(yes)" >&6; }
-
-else $as_nop
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <fcntl.h>
-#include <errno.h>
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_SELECT_H
-#include <sys/select.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#ifdef HAVE_ARPA_INET_H
-#include <arpa/inet.h>
-#endif
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#ifdef HAVE_TIME_H
-#include <time.h>
-#endif
-
-int main(void)
-{
- int port;
- int sfd, cfd;
- int num = 10;
- int i, p;
- struct sockaddr_in a;
- /* test if select and nonblocking reads work well together */
- /* open port.
- fork child to send 10 messages.
- select to read.
- then try to nonblocking read the 10 messages
- then, nonblocking read must give EAGAIN
- */
-
- port = 12345 + (time(0)%32);
- sfd = socket(PF_INET, SOCK_DGRAM, 0);
- if(sfd == -1) {
- perror("socket");
- return 1;
- }
- memset(&a, 0, sizeof(a));
- a.sin_family = AF_INET;
- a.sin_port = htons(port);
- a.sin_addr.s_addr = inet_addr("127.0.0.1");
- if(bind(sfd, (struct sockaddr*)&a, sizeof(a)) < 0) {
- perror("bind");
- return 1;
- }
- if(fcntl(sfd, F_SETFL, O_NONBLOCK) == -1) {
- perror("fcntl");
- return 1;
- }
-
- cfd = socket(PF_INET, SOCK_DGRAM, 0);
- if(cfd == -1) {
- perror("client socket");
- return 1;
- }
- a.sin_port = 0;
- if(bind(cfd, (struct sockaddr*)&a, sizeof(a)) < 0) {
- perror("client bind");
- return 1;
- }
- a.sin_port = htons(port);
-
- /* no handler, causes exit in 10 seconds */
- alarm(10);
-
- /* send and receive on the socket */
- if((p=fork()) == 0) {
- for(i=0; i<num; i++) {
- if(sendto(cfd, &i, sizeof(i), 0,
- (struct sockaddr*)&a, sizeof(a)) < 0) {
- perror("sendto");
- return 1;
- }
- }
- } else {
- /* parent */
- fd_set rset;
- int x;
- if(p == -1) {
- perror("fork");
- return 1;
- }
- FD_ZERO(&rset);
- FD_SET(sfd, &rset);
- if(select(sfd+1, &rset, NULL, NULL, NULL) < 1) {
- perror("select");
- return 1;
- }
- i = 0;
- while(i < num) {
- if(recv(sfd, &x, sizeof(x), 0) != sizeof(x)) {
- if(errno == EAGAIN)
- continue;
- perror("recv");
- return 1;
- }
- i++;
- }
- /* now we want to get EAGAIN: nonblocking goodness */
- errno = 0;
- recv(sfd, &x, sizeof(x), 0);
- if(errno != EAGAIN) {
- perror("trying to recv again");
- return 1;
- }
- /* EAGAIN encountered */
- }
-
- close(sfd);
- close(cfd);
- return 0;
-}
-
-_ACEOF
-if ac_fn_c_try_run "$LINENO"
-then :
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-
-else $as_nop
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-
-printf "%s\n" "#define NONBLOCKING_IS_BROKEN 1" >>confdefs.h
-
-
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mkdir has one arg" >&5
-printf %s "checking whether mkdir has one arg... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-#include <stdio.h>
-#include <unistd.h>
-#ifdef HAVE_WINSOCK2_H
-#include <winsock2.h>
-#endif
-#ifdef HAVE_SYS_STAT_H
-#include <sys/stat.h>
-#endif
-
-int
-main (void)
-{
-
- (void)mkdir("directory");
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-
-printf "%s\n" "#define MKDIR_HAS_ONE_ARG 1" >>confdefs.h
-
-
-else $as_nop
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-
-
- for ac_func in strptime
-do :
- ac_fn_c_check_func "$LINENO" "strptime" "ac_cv_func_strptime"
-if test "x$ac_cv_func_strptime" = xyes
-then :
- printf "%s\n" "#define HAVE_STRPTIME 1" >>confdefs.h
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether strptime works" >&5
-printf %s "checking whether strptime works... " >&6; }
-if test c${cross_compiling} = cno; then
-if test "$cross_compiling" = yes
-then :
- eval "ac_cv_c_strptime_works=maybe"
-else $as_nop
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-#define _XOPEN_SOURCE 600
-#include <time.h>
-int main(void) { struct tm tm; char *res;
-res = strptime("2010-07-15T00:00:00+00:00", "%t%Y%t-%t%m%t-%t%d%tT%t%H%t:%t%M%t:%t%S%t", &tm);
-if (!res) return 2;
-res = strptime("20070207111842", "%Y%m%d%H%M%S", &tm);
-if (!res) return 1; return 0; }
-
-_ACEOF
-if ac_fn_c_try_run "$LINENO"
-then :
- eval "ac_cv_c_strptime_works=yes"
-else $as_nop
- eval "ac_cv_c_strptime_works=no"
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-else
-eval "ac_cv_c_strptime_works=maybe"
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_strptime_works" >&5
-printf "%s\n" "$ac_cv_c_strptime_works" >&6; }
-if test $ac_cv_c_strptime_works = no; then
-case " $LIBOBJS " in
- *" strptime.$ac_objext "* ) ;;
- *) LIBOBJS="$LIBOBJS strptime.$ac_objext"
- ;;
-esac
-
-else
-
-printf "%s\n" "#define STRPTIME_WORKS 1" >>confdefs.h
-
-fi
-
-else $as_nop
- case " $LIBOBJS " in
- *" strptime.$ac_objext "* ) ;;
- *) LIBOBJS="$LIBOBJS strptime.$ac_objext"
- ;;
-esac
-
-fi
-
-done
-
-# check if we can use SO_REUSEPORT
-reuseport_default=0
-if echo "$host" | $GREP -i -e linux >/dev/null; then reuseport_default=1; fi
-if echo "$host" | $GREP -i -e dragonfly >/dev/null; then reuseport_default=1; fi
-if test "$reuseport_default" = 1; then
-
-printf "%s\n" "#define REUSEPORT_DEFAULT 1" >>confdefs.h
-
-else
-
-printf "%s\n" "#define REUSEPORT_DEFAULT 0" >>confdefs.h
-
-fi
-
-# Include systemd.m4 - begin
-# macros for configuring systemd
-# Copyright 2015, Sami Kerola, CloudFlare.
-# BSD licensed.
-# Check whether --enable-systemd was given.
-if test ${enable_systemd+y}
-then :
- enableval=$enable_systemd;
-else $as_nop
- enable_systemd=no
-fi
-
-have_systemd=no
-if test "x$enable_systemd" != xno
-then :
-
- if test -n "$PKG_CONFIG"; then
- have_systemd=no
-
-pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SYSTEMD" >&5
-printf %s "checking for SYSTEMD... " >&6; }
-
-if test -n "$SYSTEMD_CFLAGS"; then
- pkg_cv_SYSTEMD_CFLAGS="$SYSTEMD_CFLAGS"
- elif test -n "$PKG_CONFIG"; then
- if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsystemd\""; } >&5
- ($PKG_CONFIG --exists --print-errors "libsystemd") 2>&5
- ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- pkg_cv_SYSTEMD_CFLAGS=`$PKG_CONFIG --cflags "libsystemd" 2>/dev/null`
- test "x$?" != "x0" && pkg_failed=yes
-else
- pkg_failed=yes
-fi
- else
- pkg_failed=untried
-fi
-if test -n "$SYSTEMD_LIBS"; then
- pkg_cv_SYSTEMD_LIBS="$SYSTEMD_LIBS"
- elif test -n "$PKG_CONFIG"; then
- if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsystemd\""; } >&5
- ($PKG_CONFIG --exists --print-errors "libsystemd") 2>&5
- ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- pkg_cv_SYSTEMD_LIBS=`$PKG_CONFIG --libs "libsystemd" 2>/dev/null`
- test "x$?" != "x0" && pkg_failed=yes
-else
- pkg_failed=yes
-fi
- else
- pkg_failed=untried
-fi
-
-
-
-if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-
-if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
- _pkg_short_errors_supported=yes
-else
- _pkg_short_errors_supported=no
-fi
- if test $_pkg_short_errors_supported = yes; then
- SYSTEMD_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libsystemd" 2>&1`
- else
- SYSTEMD_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libsystemd" 2>&1`
- fi
- # Put the nasty error message in config.log where it belongs
- echo "$SYSTEMD_PKG_ERRORS" >&5
-
- as_fn_error $? "Package requirements (libsystemd) were not met:
-
-$SYSTEMD_PKG_ERRORS
-
-Consider adjusting the PKG_CONFIG_PATH environment variable if you
-installed software in a non-standard prefix.
-
-Alternatively, you may set the environment variables SYSTEMD_CFLAGS
-and SYSTEMD_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details." "$LINENO" 5
-elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
-is in your PATH or set the PKG_CONFIG environment variable to the full
-path to pkg-config.
-
-Alternatively, you may set the environment variables SYSTEMD_CFLAGS
-and SYSTEMD_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-
-To get pkg-config, see <http://pkg-config.freedesktop.org/>.
-See \`config.log' for more details" "$LINENO" 5; }
-else
- SYSTEMD_CFLAGS=$pkg_cv_SYSTEMD_CFLAGS
- SYSTEMD_LIBS=$pkg_cv_SYSTEMD_LIBS
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
- have_systemd=yes
-fi
- if test "x$have_systemd" != "xyes"
-then :
-
- have_systemd_daemon=no
-
-pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SYSTEMD_DAEMON" >&5
-printf %s "checking for SYSTEMD_DAEMON... " >&6; }
-
-if test -n "$SYSTEMD_DAEMON_CFLAGS"; then
- pkg_cv_SYSTEMD_DAEMON_CFLAGS="$SYSTEMD_DAEMON_CFLAGS"
- elif test -n "$PKG_CONFIG"; then
- if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsystemd-daemon\""; } >&5
- ($PKG_CONFIG --exists --print-errors "libsystemd-daemon") 2>&5
- ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- pkg_cv_SYSTEMD_DAEMON_CFLAGS=`$PKG_CONFIG --cflags "libsystemd-daemon" 2>/dev/null`
- test "x$?" != "x0" && pkg_failed=yes
-else
- pkg_failed=yes
-fi
- else
- pkg_failed=untried
-fi
-if test -n "$SYSTEMD_DAEMON_LIBS"; then
- pkg_cv_SYSTEMD_DAEMON_LIBS="$SYSTEMD_DAEMON_LIBS"
- elif test -n "$PKG_CONFIG"; then
- if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsystemd-daemon\""; } >&5
- ($PKG_CONFIG --exists --print-errors "libsystemd-daemon") 2>&5
- ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- pkg_cv_SYSTEMD_DAEMON_LIBS=`$PKG_CONFIG --libs "libsystemd-daemon" 2>/dev/null`
- test "x$?" != "x0" && pkg_failed=yes
-else
- pkg_failed=yes
-fi
- else
- pkg_failed=untried
-fi
-
-
-
-if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-
-if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
- _pkg_short_errors_supported=yes
-else
- _pkg_short_errors_supported=no
-fi
- if test $_pkg_short_errors_supported = yes; then
- SYSTEMD_DAEMON_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libsystemd-daemon" 2>&1`
- else
- SYSTEMD_DAEMON_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libsystemd-daemon" 2>&1`
- fi
- # Put the nasty error message in config.log where it belongs
- echo "$SYSTEMD_DAEMON_PKG_ERRORS" >&5
-
- as_fn_error $? "Package requirements (libsystemd-daemon) were not met:
-
-$SYSTEMD_DAEMON_PKG_ERRORS
-
-Consider adjusting the PKG_CONFIG_PATH environment variable if you
-installed software in a non-standard prefix.
-
-Alternatively, you may set the environment variables SYSTEMD_DAEMON_CFLAGS
-and SYSTEMD_DAEMON_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details." "$LINENO" 5
-elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
-is in your PATH or set the PKG_CONFIG environment variable to the full
-path to pkg-config.
-
-Alternatively, you may set the environment variables SYSTEMD_DAEMON_CFLAGS
-and SYSTEMD_DAEMON_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-
-To get pkg-config, see <http://pkg-config.freedesktop.org/>.
-See \`config.log' for more details" "$LINENO" 5; }
-else
- SYSTEMD_DAEMON_CFLAGS=$pkg_cv_SYSTEMD_DAEMON_CFLAGS
- SYSTEMD_DAEMON_LIBS=$pkg_cv_SYSTEMD_DAEMON_LIBS
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
- have_systemd_daemon=yes
-fi
- if test "x$have_systemd_daemon" = "xyes"
-then :
- have_systemd=yes
-fi
-
-fi
- case $enable_systemd:$have_systemd in #(
- yes:no) :
- as_fn_error $? "systemd enabled but libsystemd not found" "$LINENO" 5 ;; #(
- *:yes) :
-
-printf "%s\n" "#define HAVE_SYSTEMD 1" >>confdefs.h
-
- LIBS="$LIBS $SYSTEMD_LIBS"
-
- ;; #(
- *) :
- ;;
-esac
- else
- as_fn_error $? "systemd enabled but need pkg-config to configure for it" "$LINENO" 5
- fi
-
-fi
- if test "x$have_systemd" = xyes; then
- USE_SYSTEMD_TRUE=
- USE_SYSTEMD_FALSE='#'
-else
- USE_SYSTEMD_TRUE='#'
- USE_SYSTEMD_FALSE=
-fi
-
-
-# Include systemd.m4 - end
-
-# set memory allocation checking if requested
-# Check whether --enable-alloc-checks was given.
-if test ${enable_alloc_checks+y}
-then :
- enableval=$enable_alloc_checks;
-fi
-
-# Check whether --enable-alloc-lite was given.
-if test ${enable_alloc_lite+y}
-then :
- enableval=$enable_alloc_lite;
-fi
-
-# Check whether --enable-alloc-nonregional was given.
-if test ${enable_alloc_nonregional+y}
-then :
- enableval=$enable_alloc_nonregional;
-fi
-
-if test x_$enable_alloc_nonregional = x_yes; then
-
-printf "%s\n" "#define UNBOUND_ALLOC_NONREGIONAL 1" >>confdefs.h
-
-fi
-if test x_$enable_alloc_checks = x_yes; then
-
-printf "%s\n" "#define UNBOUND_ALLOC_STATS 1" >>confdefs.h
-
- SLDNS_ALLOCCHECK_EXTRA_OBJ="alloc.lo log.lo"
-
- ASYNCLOOK_ALLOCCHECK_EXTRA_OBJ="alloc.lo"
-
-else
- if test x_$enable_alloc_lite = x_yes; then
-
-printf "%s\n" "#define UNBOUND_ALLOC_LITE 1" >>confdefs.h
-
- else
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible malloc" >&5
-printf %s "checking for GNU libc compatible malloc... " >&6; }
- if test "$cross_compiling" = yes
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no (crosscompile)" >&5
-printf "%s\n" "no (crosscompile)" >&6; }
- case " $LIBOBJS " in
- *" malloc.$ac_objext "* ) ;;
- *) LIBOBJS="$LIBOBJS malloc.$ac_objext"
- ;;
-esac
-
-
-printf "%s\n" "#define malloc rpl_malloc_unbound" >>confdefs.h
-
-else $as_nop
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#if defined STDC_HEADERS || defined HAVE_STDLIB_H
-#include <stdlib.h>
-#else
-char *malloc ();
-#endif
-
-int
-main (void)
-{
- if(malloc(0) != 0) return 1;
- ;
- return 0;
-}
-
-_ACEOF
-if ac_fn_c_try_run "$LINENO"
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- case " $LIBOBJS " in
- *" malloc.$ac_objext "* ) ;;
- *) LIBOBJS="$LIBOBJS malloc.$ac_objext"
- ;;
-esac
-
-
-printf "%s\n" "#define malloc rpl_malloc_unbound" >>confdefs.h
-
-else $as_nop
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-
-printf "%s\n" "#define HAVE_MALLOC 1" >>confdefs.h
-
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-
- fi
-fi
-
-# check windows threads (we use them, not pthreads, on windows).
-if test "$on_mingw" = "yes"; then
-# check windows threads
- ac_fn_c_check_header_compile "$LINENO" "windows.h" "ac_cv_header_windows_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_windows_h" = xyes
-then :
- printf "%s\n" "#define HAVE_WINDOWS_H 1" >>confdefs.h
-
-fi
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for CreateThread" >&5
-printf %s "checking for CreateThread... " >&6; }
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-#ifdef HAVE_WINDOWS_H
-#include <windows.h>
-#endif
-
-int
-main (void)
-{
-
- HANDLE t = CreateThread(NULL, 0, NULL, NULL, 0, NULL);
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-
-printf "%s\n" "#define HAVE_WINDOWS_THREADS 1" >>confdefs.h
-
-
-else $as_nop
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-
-else
-# not on mingw, check thread libraries.
-
-# check for thread library.
-# check this first, so that the pthread lib does not get linked in via
-# libssl or libpython, and thus distorts the tests, and we end up using
-# the non-threadsafe C libraries.
-
-# Check whether --with-pthreads was given.
-if test ${with_pthreads+y}
-then :
- withval=$with_pthreads;
-else $as_nop
- withval="yes"
-fi
-
-ub_have_pthreads=no
-if test x_$withval != x_no; then
-
-
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-ax_pthread_ok=no
-
-# We used to check for pthread.h first, but this fails if pthread.h
-# requires special compiler flags (e.g. on Tru64 or Sequent).
-# It gets checked for in the link test anyway.
-
-# First of all, check if the user has set any of the PTHREAD_LIBS,
-# etcetera environment variables, and if threads linking works using
-# them:
-if test "x$PTHREAD_CFLAGS$PTHREAD_LIBS" != "x"; then
- ax_pthread_save_CC="$CC"
- ax_pthread_save_CFLAGS="$CFLAGS"
- ax_pthread_save_LIBS="$LIBS"
- if test "x$PTHREAD_CC" != "x"
-then :
- CC="$PTHREAD_CC"
-fi
- if test "x$PTHREAD_CXX" != "x"
-then :
- CXX="$PTHREAD_CXX"
-fi
- CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
- LIBS="$PTHREAD_LIBS $LIBS"
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_join using $CC $PTHREAD_CFLAGS $PTHREAD_LIBS" >&5
-printf %s "checking for pthread_join using $CC $PTHREAD_CFLAGS $PTHREAD_LIBS... " >&6; }
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-char pthread_join ();
-int
-main (void)
-{
-return pthread_join ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
- ax_pthread_ok=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_ok" >&5
-printf "%s\n" "$ax_pthread_ok" >&6; }
- if test "x$ax_pthread_ok" = "xno"; then
- PTHREAD_LIBS=""
- PTHREAD_CFLAGS=""
- fi
- CC="$ax_pthread_save_CC"
- CFLAGS="$ax_pthread_save_CFLAGS"
- LIBS="$ax_pthread_save_LIBS"
-fi
-
-# We must check for the threads library under a number of different
-# names; the ordering is very important because some systems
-# (e.g. DEC) have both -lpthread and -lpthreads, where one of the
-# libraries is broken (non-POSIX).
-
-# Create a list of thread flags to try. Items with a "," contain both
-# C compiler flags (before ",") and linker flags (after ","). Other items
-# starting with a "-" are C compiler flags, and remaining items are
-# library names, except for "none" which indicates that we try without
-# any flags at all, and "pthread-config" which is a program returning
-# the flags for the Pth emulation library.
-
-ax_pthread_flags="pthreads none -Kthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config"
-
-# The ordering *is* (sometimes) important. Some notes on the
-# individual items follow:
-
-# pthreads: AIX (must check this before -lpthread)
-# none: in case threads are in libc; should be tried before -Kthread and
-# other compiler flags to prevent continual compiler warnings
-# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h)
-# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads), Tru64
-# (Note: HP C rejects this with "bad form for `-t' option")
-# -pthreads: Solaris/gcc (Note: HP C also rejects)
-# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it
-# doesn't hurt to check since this sometimes defines pthreads and
-# -D_REENTRANT too), HP C (must be checked before -lpthread, which
-# is present but should not be used directly; and before -mthreads,
-# because the compiler interprets this as "-mt" + "-hreads")
-# -mthreads: Mingw32/gcc, Lynx/gcc
-# pthread: Linux, etcetera
-# --thread-safe: KAI C++
-# pthread-config: use pthread-config program (for GNU Pth library)
-
-case $host_os in
-
- freebsd*)
-
- # -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able)
- # lthread: LinuxThreads port on FreeBSD (also preferred to -pthread)
-
- ax_pthread_flags="-kthread lthread $ax_pthread_flags"
- ;;
-
- hpux*)
-
- # From the cc(1) man page: "[-mt] Sets various -D flags to enable
- # multi-threading and also sets -lpthread."
-
- ax_pthread_flags="-mt -pthread pthread $ax_pthread_flags"
- ;;
-
- openedition*)
-
- # IBM z/OS requires a feature-test macro to be defined in order to
- # enable POSIX threads at all, so give the user a hint if this is
- # not set. (We don't define these ourselves, as they can affect
- # other portions of the system API in unpredictable ways.)
-
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-# if !defined(_OPEN_THREADS) && !defined(_UNIX03_THREADS)
- AX_PTHREAD_ZOS_MISSING
-# endif
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "AX_PTHREAD_ZOS_MISSING" >/dev/null 2>&1
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: IBM z/OS requires -D_OPEN_THREADS or -D_UNIX03_THREADS to enable pthreads support." >&5
-printf "%s\n" "$as_me: WARNING: IBM z/OS requires -D_OPEN_THREADS or -D_UNIX03_THREADS to enable pthreads support." >&2;}
-fi
-rm -rf conftest*
-
- ;;
-
- solaris*)
-
- # On Solaris (at least, for some versions), libc contains stubbed
- # (non-functional) versions of the pthreads routines, so link-based
- # tests will erroneously succeed. (N.B.: The stubs are missing
- # pthread_cleanup_push, or rather a function called by this macro,
- # so we could check for that, but who knows whether they'll stub
- # that too in a future libc.) So we'll check first for the
- # standard Solaris way of linking pthreads (-mt -lpthread).
-
- ax_pthread_flags="-mt,-lpthread pthread $ax_pthread_flags"
- ;;
-esac
-
-# Are we compiling with Clang?
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC is Clang" >&5
-printf %s "checking whether $CC is Clang... " >&6; }
-if test ${ax_cv_PTHREAD_CLANG+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ax_cv_PTHREAD_CLANG=no
- # Note that Autoconf sets GCC=yes for Clang as well as GCC
- if test "x$GCC" = "xyes"; then
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-/* Note: Clang 2.7 lacks __clang_[a-z]+__ */
-# if defined(__clang__) && defined(__llvm__)
- AX_PTHREAD_CC_IS_CLANG
-# endif
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "AX_PTHREAD_CC_IS_CLANG" >/dev/null 2>&1
-then :
- ax_cv_PTHREAD_CLANG=yes
-fi
-rm -rf conftest*
-
- fi
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_CLANG" >&5
-printf "%s\n" "$ax_cv_PTHREAD_CLANG" >&6; }
-ax_pthread_clang="$ax_cv_PTHREAD_CLANG"
-
-
-# GCC generally uses -pthread, or -pthreads on some platforms (e.g. SPARC)
-
-# Note that for GCC and Clang -pthread generally implies -lpthread,
-# except when -nostdlib is passed.
-# This is problematic using libtool to build C++ shared libraries with pthread:
-# [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=25460
-# [2] https://bugzilla.redhat.com/show_bug.cgi?id=661333
-# [3] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=468555
-# To solve this, first try -pthread together with -lpthread for GCC
-
-if test "x$GCC" = "xyes"
-then :
- ax_pthread_flags="-pthread,-lpthread -pthread -pthreads $ax_pthread_flags"
-fi
-
-# Clang takes -pthread (never supported any other flag), but we'll try with -lpthread first
-
-if test "x$ax_pthread_clang" = "xyes"
-then :
- ax_pthread_flags="-pthread,-lpthread -pthread"
-fi
-
-
-# The presence of a feature test macro requesting re-entrant function
-# definitions is, on some systems, a strong hint that pthreads support is
-# correctly enabled
-
-case $host_os in
- darwin* | hpux* | linux* | osf* | solaris*)
- ax_pthread_check_macro="_REENTRANT"
- ;;
-
- aix*)
- ax_pthread_check_macro="_THREAD_SAFE"
- ;;
-
- *)
- ax_pthread_check_macro="--"
- ;;
-esac
-if test "x$ax_pthread_check_macro" = "x--"
-then :
- ax_pthread_check_cond=0
-else $as_nop
- ax_pthread_check_cond="!defined($ax_pthread_check_macro)"
-fi
-
-
-if test "x$ax_pthread_ok" = "xno"; then
-for ax_pthread_try_flag in $ax_pthread_flags; do
-
- case $ax_pthread_try_flag in
- none)
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether pthreads work without any flags" >&5
-printf %s "checking whether pthreads work without any flags... " >&6; }
- ;;
-
- *,*)
- PTHREAD_CFLAGS=`echo $ax_pthread_try_flag | sed "s/^\(.*\),\(.*\)$/\1/"`
- PTHREAD_LIBS=`echo $ax_pthread_try_flag | sed "s/^\(.*\),\(.*\)$/\2/"`
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether pthreads work with \"$PTHREAD_CFLAGS\" and \"$PTHREAD_LIBS\"" >&5
-printf %s "checking whether pthreads work with \"$PTHREAD_CFLAGS\" and \"$PTHREAD_LIBS\"... " >&6; }
- ;;
-
- -*)
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether pthreads work with $ax_pthread_try_flag" >&5
-printf %s "checking whether pthreads work with $ax_pthread_try_flag... " >&6; }
- PTHREAD_CFLAGS="$ax_pthread_try_flag"
- ;;
-
- pthread-config)
- # Extract the first word of "pthread-config", so it can be a program name with args.
-set dummy pthread-config; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_ax_pthread_config+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$ax_pthread_config"; then
- ac_cv_prog_ax_pthread_config="$ax_pthread_config" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_ax_pthread_config="yes"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
- test -z "$ac_cv_prog_ax_pthread_config" && ac_cv_prog_ax_pthread_config="no"
-fi
-fi
-ax_pthread_config=$ac_cv_prog_ax_pthread_config
-if test -n "$ax_pthread_config"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_config" >&5
-printf "%s\n" "$ax_pthread_config" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
- if test "x$ax_pthread_config" = "xno"
-then :
- continue
-fi
- PTHREAD_CFLAGS="`pthread-config --cflags`"
- PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`"
- ;;
-
- *)
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for the pthreads library -l$ax_pthread_try_flag" >&5
-printf %s "checking for the pthreads library -l$ax_pthread_try_flag... " >&6; }
- PTHREAD_LIBS="-l$ax_pthread_try_flag"
- ;;
- esac
-
- ax_pthread_save_CFLAGS="$CFLAGS"
- ax_pthread_save_LIBS="$LIBS"
- CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
- LIBS="$PTHREAD_LIBS $LIBS"
-
- # Check for various functions. We must include pthread.h,
- # since some functions may be macros. (On the Sequent, we
- # need a special flag -Kthread to make this header compile.)
- # We check for pthread_join because it is in -lpthread on IRIX
- # while pthread_create is in libc. We check for pthread_attr_init
- # due to DEC craziness with -lpthreads. We check for
- # pthread_cleanup_push because it is one of the few pthread
- # functions on Solaris that doesn't have a non-functional libc stub.
- # We try pthread_create on general principles.
-
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <pthread.h>
-# if $ax_pthread_check_cond
-# error "$ax_pthread_check_macro must be defined"
-# endif
- static void *some_global = NULL;
- static void routine(void *a)
- {
- /* To avoid any unused-parameter or
- unused-but-set-parameter warning. */
- some_global = a;
- }
- static void *start_routine(void *a) { return a; }
-int
-main (void)
-{
-pthread_t th; pthread_attr_t attr;
- pthread_create(&th, 0, start_routine, 0);
- pthread_join(th, 0);
- pthread_attr_init(&attr);
- pthread_cleanup_push(routine, 0);
- pthread_cleanup_pop(0) /* ; */
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
- ax_pthread_ok=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
-
- CFLAGS="$ax_pthread_save_CFLAGS"
- LIBS="$ax_pthread_save_LIBS"
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_ok" >&5
-printf "%s\n" "$ax_pthread_ok" >&6; }
- if test "x$ax_pthread_ok" = "xyes"
-then :
- break
-fi
-
- PTHREAD_LIBS=""
- PTHREAD_CFLAGS=""
-done
-fi
-
-
-# Clang needs special handling, because older versions handle the -pthread
-# option in a rather... idiosyncratic way
-
-if test "x$ax_pthread_clang" = "xyes"; then
-
- # Clang takes -pthread; it has never supported any other flag
-
- # (Note 1: This will need to be revisited if a system that Clang
- # supports has POSIX threads in a separate library. This tends not
- # to be the way of modern systems, but it's conceivable.)
-
- # (Note 2: On some systems, notably Darwin, -pthread is not needed
- # to get POSIX threads support; the API is always present and
- # active. We could reasonably leave PTHREAD_CFLAGS empty. But
- # -pthread does define _REENTRANT, and while the Darwin headers
- # ignore this macro, third-party headers might not.)
-
- # However, older versions of Clang make a point of warning the user
- # that, in an invocation where only linking and no compilation is
- # taking place, the -pthread option has no effect ("argument unused
- # during compilation"). They expect -pthread to be passed in only
- # when source code is being compiled.
- #
- # Problem is, this is at odds with the way Automake and most other
- # C build frameworks function, which is that the same flags used in
- # compilation (CFLAGS) are also used in linking. Many systems
- # supported by AX_PTHREAD require exactly this for POSIX threads
- # support, and in fact it is often not straightforward to specify a
- # flag that is used only in the compilation phase and not in
- # linking. Such a scenario is extremely rare in practice.
- #
- # Even though use of the -pthread flag in linking would only print
- # a warning, this can be a nuisance for well-run software projects
- # that build with -Werror. So if the active version of Clang has
- # this misfeature, we search for an option to squash it.
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether Clang needs flag to prevent \"argument unused\" warning when linking with -pthread" >&5
-printf %s "checking whether Clang needs flag to prevent \"argument unused\" warning when linking with -pthread... " >&6; }
-if test ${ax_cv_PTHREAD_CLANG_NO_WARN_FLAG+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ax_cv_PTHREAD_CLANG_NO_WARN_FLAG=unknown
- # Create an alternate version of $ac_link that compiles and
- # links in two steps (.c -> .o, .o -> exe) instead of one
- # (.c -> exe), because the warning occurs only in the second
- # step
- ax_pthread_save_ac_link="$ac_link"
- ax_pthread_sed='s/conftest\.\$ac_ext/conftest.$ac_objext/g'
- ax_pthread_link_step=`printf "%s\n" "$ac_link" | sed "$ax_pthread_sed"`
- ax_pthread_2step_ac_link="($ac_compile) && (echo ==== >&5) && ($ax_pthread_link_step)"
- ax_pthread_save_CFLAGS="$CFLAGS"
- for ax_pthread_try in '' -Qunused-arguments -Wno-unused-command-line-argument unknown; do
- if test "x$ax_pthread_try" = "xunknown"
-then :
- break
-fi
- CFLAGS="-Werror -Wunknown-warning-option $ax_pthread_try -pthread $ax_pthread_save_CFLAGS"
- ac_link="$ax_pthread_save_ac_link"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-int main(void){return 0;}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
- ac_link="$ax_pthread_2step_ac_link"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-int main(void){return 0;}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
- break
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
- done
- ac_link="$ax_pthread_save_ac_link"
- CFLAGS="$ax_pthread_save_CFLAGS"
- if test "x$ax_pthread_try" = "x"
-then :
- ax_pthread_try=no
-fi
- ax_cv_PTHREAD_CLANG_NO_WARN_FLAG="$ax_pthread_try"
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" >&5
-printf "%s\n" "$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" >&6; }
-
- case "$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" in
- no | unknown) ;;
- *) PTHREAD_CFLAGS="$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG $PTHREAD_CFLAGS" ;;
- esac
-
-fi # $ax_pthread_clang = yes
-
-
-
-# Various other checks:
-if test "x$ax_pthread_ok" = "xyes"; then
- ax_pthread_save_CFLAGS="$CFLAGS"
- ax_pthread_save_LIBS="$LIBS"
- CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
- LIBS="$PTHREAD_LIBS $LIBS"
-
- # Detect AIX lossage: JOINABLE attribute is called UNDETACHED.
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for joinable pthread attribute" >&5
-printf %s "checking for joinable pthread attribute... " >&6; }
-if test ${ax_cv_PTHREAD_JOINABLE_ATTR+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ax_cv_PTHREAD_JOINABLE_ATTR=unknown
- for ax_pthread_attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <pthread.h>
-int
-main (void)
-{
-int attr = $ax_pthread_attr; return attr /* ; */
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
- ax_cv_PTHREAD_JOINABLE_ATTR=$ax_pthread_attr; break
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
- done
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_JOINABLE_ATTR" >&5
-printf "%s\n" "$ax_cv_PTHREAD_JOINABLE_ATTR" >&6; }
- if test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xunknown" && \
- test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xPTHREAD_CREATE_JOINABLE" && \
- test "x$ax_pthread_joinable_attr_defined" != "xyes"
-then :
-
-printf "%s\n" "#define PTHREAD_CREATE_JOINABLE $ax_cv_PTHREAD_JOINABLE_ATTR" >>confdefs.h
-
- ax_pthread_joinable_attr_defined=yes
-
-fi
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether more special flags are required for pthreads" >&5
-printf %s "checking whether more special flags are required for pthreads... " >&6; }
-if test ${ax_cv_PTHREAD_SPECIAL_FLAGS+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ax_cv_PTHREAD_SPECIAL_FLAGS=no
- case $host_os in
- solaris*)
- ax_cv_PTHREAD_SPECIAL_FLAGS="-D_POSIX_PTHREAD_SEMANTICS"
- ;;
- esac
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_SPECIAL_FLAGS" >&5
-printf "%s\n" "$ax_cv_PTHREAD_SPECIAL_FLAGS" >&6; }
- if test "x$ax_cv_PTHREAD_SPECIAL_FLAGS" != "xno" && \
- test "x$ax_pthread_special_flags_added" != "xyes"
-then :
- PTHREAD_CFLAGS="$ax_cv_PTHREAD_SPECIAL_FLAGS $PTHREAD_CFLAGS"
- ax_pthread_special_flags_added=yes
-fi
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for PTHREAD_PRIO_INHERIT" >&5
-printf %s "checking for PTHREAD_PRIO_INHERIT... " >&6; }
-if test ${ax_cv_PTHREAD_PRIO_INHERIT+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <pthread.h>
-int
-main (void)
-{
-int i = PTHREAD_PRIO_INHERIT;
- return i;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
- ax_cv_PTHREAD_PRIO_INHERIT=yes
-else $as_nop
- ax_cv_PTHREAD_PRIO_INHERIT=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_PRIO_INHERIT" >&5
-printf "%s\n" "$ax_cv_PTHREAD_PRIO_INHERIT" >&6; }
- if test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes" && \
- test "x$ax_pthread_prio_inherit_defined" != "xyes"
-then :
-
-printf "%s\n" "#define HAVE_PTHREAD_PRIO_INHERIT 1" >>confdefs.h
-
- ax_pthread_prio_inherit_defined=yes
-
-fi
-
- CFLAGS="$ax_pthread_save_CFLAGS"
- LIBS="$ax_pthread_save_LIBS"
-
- # More AIX lossage: compile with *_r variant
- if test "x$GCC" != "xyes"; then
- case $host_os in
- aix*)
- case "x/$CC" in #(
- x*/c89|x*/c89_128|x*/c99|x*/c99_128|x*/cc|x*/cc128|x*/xlc|x*/xlc_v6|x*/xlc128|x*/xlc128_v6) :
- #handle absolute path differently from PATH based program lookup
- case "x$CC" in #(
- x/*) :
-
- if as_fn_executable_p ${CC}_r
-then :
- PTHREAD_CC="${CC}_r"
-fi
- if test "x${CXX}" != "x"
-then :
- if as_fn_executable_p ${CXX}_r
-then :
- PTHREAD_CXX="${CXX}_r"
-fi
-fi
- ;; #(
- *) :
-
- for ac_prog in ${CC}_r
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_PTHREAD_CC+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$PTHREAD_CC"; then
- ac_cv_prog_PTHREAD_CC="$PTHREAD_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_PTHREAD_CC="$ac_prog"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-PTHREAD_CC=$ac_cv_prog_PTHREAD_CC
-if test -n "$PTHREAD_CC"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PTHREAD_CC" >&5
-printf "%s\n" "$PTHREAD_CC" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
- test -n "$PTHREAD_CC" && break
-done
-test -n "$PTHREAD_CC" || PTHREAD_CC="$CC"
-
- if test "x${CXX}" != "x"
-then :
- for ac_prog in ${CXX}_r
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_PTHREAD_CXX+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$PTHREAD_CXX"; then
- ac_cv_prog_PTHREAD_CXX="$PTHREAD_CXX" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_PTHREAD_CXX="$ac_prog"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-PTHREAD_CXX=$ac_cv_prog_PTHREAD_CXX
-if test -n "$PTHREAD_CXX"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PTHREAD_CXX" >&5
-printf "%s\n" "$PTHREAD_CXX" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
- test -n "$PTHREAD_CXX" && break
-done
-test -n "$PTHREAD_CXX" || PTHREAD_CXX="$CXX"
-
-fi
-
- ;;
-esac
- ;; #(
- *) :
- ;;
-esac
- ;;
- esac
- fi
-fi
-
-test -n "$PTHREAD_CC" || PTHREAD_CC="$CC"
-test -n "$PTHREAD_CXX" || PTHREAD_CXX="$CXX"
-
-
-
-
-
-
-# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
-if test "x$ax_pthread_ok" = "xyes"; then
-
-
-printf "%s\n" "#define HAVE_PTHREAD 1" >>confdefs.h
-
- if test -n "$PTHREAD_LIBS"; then
- LIBS="$PTHREAD_LIBS $LIBS"
- fi
- CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
- CC="$PTHREAD_CC"
- ub_have_pthreads=yes
- ac_fn_c_check_type "$LINENO" "pthread_spinlock_t" "ac_cv_type_pthread_spinlock_t" "#include <pthread.h>
-"
-if test "x$ac_cv_type_pthread_spinlock_t" = xyes
-then :
-
-printf "%s\n" "#define HAVE_PTHREAD_SPINLOCK_T 1" >>confdefs.h
-
-
-fi
-ac_fn_c_check_type "$LINENO" "pthread_rwlock_t" "ac_cv_type_pthread_rwlock_t" "#include <pthread.h>
-"
-if test "x$ac_cv_type_pthread_rwlock_t" = xyes
-then :
-
-printf "%s\n" "#define HAVE_PTHREAD_RWLOCK_T 1" >>confdefs.h
-
-
-fi
-
- # The cast to long int works around a bug in the HP C Compiler
-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-# This bug is HP SR number 8606223364.
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of unsigned long" >&5
-printf %s "checking size of unsigned long... " >&6; }
-if test ${ac_cv_sizeof_unsigned_long+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (unsigned long))" "ac_cv_sizeof_unsigned_long" "$ac_includes_default"
-then :
-
-else $as_nop
- if test "$ac_cv_type_unsigned_long" = yes; then
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "cannot compute sizeof (unsigned long)
-See \`config.log' for more details" "$LINENO" 5; }
- else
- ac_cv_sizeof_unsigned_long=0
- fi
-fi
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_unsigned_long" >&5
-printf "%s\n" "$ac_cv_sizeof_unsigned_long" >&6; }
-
-
-
-printf "%s\n" "#define SIZEOF_UNSIGNED_LONG $ac_cv_sizeof_unsigned_long" >>confdefs.h
-
-
- # The cast to long int works around a bug in the HP C Compiler
-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-# This bug is HP SR number 8606223364.
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of pthread_t" >&5
-printf %s "checking size of pthread_t... " >&6; }
-if test ${ac_cv_sizeof_pthread_t+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (pthread_t))" "ac_cv_sizeof_pthread_t" "$ac_includes_default"
-then :
-
-else $as_nop
- if test "$ac_cv_type_pthread_t" = yes; then
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "cannot compute sizeof (pthread_t)
-See \`config.log' for more details" "$LINENO" 5; }
- else
- ac_cv_sizeof_pthread_t=0
- fi
-fi
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_pthread_t" >&5
-printf "%s\n" "$ac_cv_sizeof_pthread_t" >&6; }
-
-
-
-printf "%s\n" "#define SIZEOF_PTHREAD_T $ac_cv_sizeof_pthread_t" >>confdefs.h
-
-
-
- if echo "$CFLAGS" | $GREP -e "-pthread" >/dev/null; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if -pthread unused during linking" >&5
-printf %s "checking if -pthread unused during linking... " >&6; }
- # catch clang warning 'argument unused during compilation'
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$ac_includes_default
-
-int main(void) {return 0;}
-
-_ACEOF
- pthread_unused="yes"
- # first compile
- echo "$CC $CFLAGS -c conftest.c -o conftest.o" >&5
- $CC $CFLAGS -c conftest.c -o conftest.o 2>&5 >&5
- if test $? = 0; then
- # then link
- echo "$CC $CFLAGS -Werror $LDFLAGS $LIBS -o conftest contest.o" >&5
- $CC $CFLAGS -Werror $LDFLAGS $LIBS -o conftest conftest.o 2>&5 >&5
- if test $? -ne 0; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
- CFLAGS=`echo "$CFLAGS" | sed -e 's/-pthread//'`
- PTHREAD_CFLAGS_ONLY="-pthread"
-
- else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- fi
- else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- fi # endif cc successful
- rm -f conftest conftest.c conftest.o
- fi # endif -pthread in CFLAGS
-
-
- :
-else
- ax_pthread_ok=no
-
-fi
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-fi
-
-# check solaris thread library
-
-# Check whether --with-solaris-threads was given.
-if test ${with_solaris_threads+y}
-then :
- withval=$with_solaris_threads;
-else $as_nop
- withval="no"
-fi
-
-ub_have_sol_threads=no
-if test x_$withval != x_no; then
- if test x_$ub_have_pthreads != x_no; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Have pthreads already, ignoring --with-solaris-threads" >&5
-printf "%s\n" "$as_me: WARNING: Have pthreads already, ignoring --with-solaris-threads" >&2;}
- else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing thr_create" >&5
-printf %s "checking for library containing thr_create... " >&6; }
-if test ${ac_cv_search_thr_create+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_func_search_save_LIBS=$LIBS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-char thr_create ();
-int
-main (void)
-{
-return thr_create ();
- ;
- return 0;
-}
-_ACEOF
-for ac_lib in '' thread
-do
- if test -z "$ac_lib"; then
- ac_res="none required"
- else
- ac_res=-l$ac_lib
- LIBS="-l$ac_lib $ac_func_search_save_LIBS"
- fi
- if ac_fn_c_try_link "$LINENO"
-then :
- ac_cv_search_thr_create=$ac_res
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext
- if test ${ac_cv_search_thr_create+y}
-then :
- break
-fi
-done
-if test ${ac_cv_search_thr_create+y}
-then :
-
-else $as_nop
- ac_cv_search_thr_create=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_thr_create" >&5
-printf "%s\n" "$ac_cv_search_thr_create" >&6; }
-ac_res=$ac_cv_search_thr_create
-if test "$ac_res" != no
-then :
- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
-
-printf "%s\n" "#define HAVE_SOLARIS_THREADS 1" >>confdefs.h
-
-
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -mt" >&5
-printf %s "checking whether $CC supports -mt... " >&6; }
-cache=`echo mt | sed 'y%.=/+-%___p_%'`
-if eval test \${cv_prog_cc_flag_$cache+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
-
-echo 'void f(void){}' >conftest.c
-if test -z "`$CC $CPPFLAGS $CFLAGS -mt -c conftest.c 2>&1`"; then
-eval "cv_prog_cc_flag_$cache=yes"
-else
-eval "cv_prog_cc_flag_$cache=no"
-fi
-rm -f conftest conftest.o conftest.c
-
-fi
-
-if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-:
-CFLAGS="$CFLAGS -mt"
-else
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-:
-CFLAGS="$CFLAGS -D_REENTRANT"
-fi
-
- ub_have_sol_threads=yes
-
-else $as_nop
-
- as_fn_error $? "no solaris threads found." "$LINENO" 5
-
-fi
-
- fi
-fi
-
-fi # end of non-mingw check of thread libraries
-
-# Check for SYSLOG_FACILITY
-
-# Check whether --with-syslog-facility was given.
-if test ${with_syslog_facility+y}
-then :
- withval=$with_syslog_facility; UNBOUND_SYSLOG_FACILITY="$withval"
-fi
-
-case "${UNBOUND_SYSLOG_FACILITY}" in
-
- LOCAL[0-7]) UNBOUND_SYSLOG_FACILITY="LOG_${UNBOUND_SYSLOG_FACILITY}" ;;
-
- *) UNBOUND_SYSLOG_FACILITY="LOG_DAEMON" ;;
-
-esac
-
-printf "%s\n" "#define UB_SYSLOG_FACILITY ${UNBOUND_SYSLOG_FACILITY}" >>confdefs.h
-
-
-# Check for dynamic library module
-
-# Check whether --with-dynlibmodule was given.
-if test ${with_dynlibmodule+y}
-then :
- withval=$with_dynlibmodule;
-else $as_nop
- withval="no"
-fi
-
-
-if test x_$withval != x_no; then
-
-printf "%s\n" "#define WITH_DYNLIBMODULE 1" >>confdefs.h
-
- WITH_DYNLIBMODULE=yes
-
- DYNLIBMOD_OBJ="dynlibmod.lo"
-
- DYNLIBMOD_HEADER='$(srcdir)/dynlibmod/dynlibmod.h'
-
- if test $on_mingw = "no"; then
- # link with -ldl if not already there, for all executables because
- # dlopen call is in the dynlib module. For unbound executable, also
- # export symbols.
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5
-printf %s "checking for library containing dlopen... " >&6; }
-if test ${ac_cv_search_dlopen+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_func_search_save_LIBS=$LIBS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-char dlopen ();
-int
-main (void)
-{
-return dlopen ();
- ;
- return 0;
-}
-_ACEOF
-for ac_lib in '' dl
-do
- if test -z "$ac_lib"; then
- ac_res="none required"
- else
- ac_res=-l$ac_lib
- LIBS="-l$ac_lib $ac_func_search_save_LIBS"
- fi
- if ac_fn_c_try_link "$LINENO"
-then :
- ac_cv_search_dlopen=$ac_res
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext
- if test ${ac_cv_search_dlopen+y}
-then :
- break
-fi
-done
-if test ${ac_cv_search_dlopen+y}
-then :
-
-else $as_nop
- ac_cv_search_dlopen=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5
-printf "%s\n" "$ac_cv_search_dlopen" >&6; }
-ac_res=$ac_cv_search_dlopen
-if test "$ac_res" != no
-then :
- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
-fi
-
- DYNLIBMOD_EXTRALIBS="-export-dynamic"
- else
- DYNLIBMOD_EXTRALIBS="-Wl,--export-all-symbols,--out-implib,libunbound.dll.a"
- fi
-
-fi
-
-# Check for PyUnbound
-
-# Check whether --with-pyunbound was given.
-if test ${with_pyunbound+y}
-then :
- withval=$with_pyunbound;
-else $as_nop
- withval="no"
-fi
-
-
-ub_test_python=no
-ub_with_pyunbound=no
-if test x_$withval != x_no; then
- ub_with_pyunbound=yes
- ub_test_python=yes
-fi
-
-# Check for Python module
-
-# Check whether --with-pythonmodule was given.
-if test ${with_pythonmodule+y}
-then :
- withval=$with_pythonmodule;
-else $as_nop
- withval="no"
-fi
-
-
-ub_with_pythonmod=no
-if test x_$withval != x_no; then
- ub_with_pythonmod=yes
- ub_test_python=yes
-fi
-
-# Check for Python & SWIG only on PyUnbound or PyModule
-if test x_$ub_test_python != x_no; then
-
- # Check for Python
- ub_have_python=no
- ac_save_LIBS="$LIBS"
- #
- # Allow the use of a (user set) custom python version
- #
-
-
- # Extract the first word of "python[$PYTHON_VERSION]", so it can be a program name with args.
-set dummy python$PYTHON_VERSION; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_path_PYTHON+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- case $PYTHON in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_path_PYTHON="$as_dir$ac_word$ac_exec_ext"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
- ;;
-esac
-fi
-PYTHON=$ac_cv_path_PYTHON
-if test -n "$PYTHON"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5
-printf "%s\n" "$PYTHON" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
- if test -z "$PYTHON"; then
- as_fn_error $? "Cannot find 'python$PYTHON_VERSION' in your system path. You can use the environment variable 'PYTHON_VERSION=version_number' for an explicit version." "$LINENO" 5
- PYTHON_VERSION=""
- fi
-
- if test -z "$PYTHON_VERSION"; then
- PYTHON_VERSION=`$PYTHON -c "import sys; \
- print(sys.version.split()[0])"`
- fi
- # calculate the version number components.
-
- v="$PYTHON_VERSION"
- PYTHON_VERSION_MAJOR=`echo $v | sed 's/[^0-9].*//'`
- if test -z "$PYTHON_VERSION_MAJOR"; then PYTHON_VERSION_MAJOR="0"; fi
- v=`echo $v | sed -e 's/^[0-9]*$//' -e 's/[0-9]*[^0-9]//'`
- PYTHON_VERSION_MINOR=`echo $v | sed 's/[^0-9].*//'`
- if test -z "$PYTHON_VERSION_MINOR"; then PYTHON_VERSION_MINOR="0"; fi
- v=`echo $v | sed -e 's/^[0-9]*$//' -e 's/[0-9]*[^0-9]//'`
- PYTHON_VERSION_PATCH=`echo $v | sed 's/[^0-9].*//'`
- if test -z "$PYTHON_VERSION_PATCH"; then PYTHON_VERSION_PATCH="0"; fi
-
-
- # For some systems, sysconfig exists, but has the wrong paths,
- # on Debian 10, for python 2.7 and 3.7. So, we check the version,
- # and for older versions try distutils.sysconfig first. For newer
- # versions>=3.10, where distutils.sysconfig is deprecated, use
- # sysconfig first and then attempt the other one.
- py_distutils_first="no"
- if test $PYTHON_VERSION_MAJOR -lt 3; then
- py_distutils_first="yes"
- fi
- if test $PYTHON_VERSION_MAJOR -eq 3 -a $PYTHON_VERSION_MINOR -lt 10; then
- py_distutils_first="yes"
- fi
-
- # Check if you have the first module
- if test "$py_distutils_first" = "yes"; then m="distutils"; else m="sysconfig"; fi
- sysconfig_module=""
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for the $m Python module" >&5
-printf %s "checking for the $m Python module... " >&6; }
- if ac_modulecheck_result1=`$PYTHON -c "import $m" 2>&1`; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
- sysconfig_module="$m"
- else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- fi
-
- # if not found, try the other one.
- if test -z "$sysconfig_module"; then
- if test "$py_distutils_first" = "yes"; then m2="sysconfig"; else m2="distutils"; fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for the $m2 Python module" >&5
-printf %s "checking for the $m2 Python module... " >&6; }
- if ac_modulecheck_result2=`$PYTHON -c "import $m2" 2>&1`; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
- sysconfig_module="$m2"
- else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- as_fn_error $? "cannot import Python module \"$m\", or \"$m2\".
- Please check your Python installation. The errors are:
- $m
- $ac_modulecheck_result1
- $m2
- $ac_modulecheck_result2" "$LINENO" 5
- PYTHON_VERSION=""
- fi
- fi
- if test "$sysconfig_module" = "distutils"; then sysconfig_module="distutils.sysconfig"; fi
-
- #
- # Check for Python include path
- #
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Python include path" >&5
-printf %s "checking for Python include path... " >&6; }
- if test -z "$PYTHON_CPPFLAGS"; then
- if test "$sysconfig_module" = "sysconfig"; then
- python_path=`$PYTHON -c 'import sysconfig; \
- print(sysconfig.get_path("include"));'`
- else
- python_path=`$PYTHON -c "import distutils.sysconfig; \
- print(distutils.sysconfig.get_python_inc());"`
- fi
- if test -n "${python_path}"; then
- python_path="-I$python_path"
- fi
- PYTHON_CPPFLAGS=$python_path
- fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PYTHON_CPPFLAGS" >&5
-printf "%s\n" "$PYTHON_CPPFLAGS" >&6; }
-
-
- #
- # Check for Python library path
- #
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Python library path" >&5
-printf %s "checking for Python library path... " >&6; }
- if test -z "$PYTHON_LDFLAGS"; then
- PYTHON_LDFLAGS=`$PYTHON -c "from $sysconfig_module import *; \
- print('-L'+get_config_var('LIBDIR')+' -L'+get_config_var('LIBDEST')+' '+get_config_var('BLDLIBRARY'));"`
- fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PYTHON_LDFLAGS" >&5
-printf "%s\n" "$PYTHON_LDFLAGS" >&6; }
-
-
- if test -z "$PYTHON_LIBDIR"; then
- PYTHON_LIBDIR=`$PYTHON -c "from $sysconfig_module import *; \
- print(get_config_var('LIBDIR'));"`
- fi
-
- #
- # Check for site packages
- #
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Python site-packages path" >&5
-printf %s "checking for Python site-packages path... " >&6; }
- if test -z "$PYTHON_SITE_PKG"; then
- if test "$sysconfig_module" = "sysconfig"; then
- PYTHON_SITE_PKG=`$PYTHON -c 'import sysconfig; \
- print(sysconfig.get_path("platlib"));'`
- else
- PYTHON_SITE_PKG=`$PYTHON -c "import distutils.sysconfig; \
- print(distutils.sysconfig.get_python_lib(1,0));"`
- fi
- fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PYTHON_SITE_PKG" >&5
-printf "%s\n" "$PYTHON_SITE_PKG" >&6; }
-
-
- #
- # final check to see if everything compiles alright
- #
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking consistency of all components of python development environment" >&5
-printf %s "checking consistency of all components of python development environment... " >&6; }
- ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
- # save current global flags
- ac_save_LIBS="$LIBS"
- ac_save_CPPFLAGS="$CPPFLAGS"
-
- LIBS="$LIBS $PYTHON_LDFLAGS"
- CPPFLAGS="$CPPFLAGS $PYTHON_CPPFLAGS"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
- #include <Python.h>
-
-int
-main (void)
-{
-
- Py_Initialize();
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
- pythonexists=yes
-else $as_nop
- pythonexists=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $pythonexists" >&5
-printf "%s\n" "$pythonexists" >&6; }
-
- if test ! "$pythonexists" = "yes"; then
- as_fn_error $? "
- Could not link test program to Python. Maybe the main Python library has been
- installed in some non-standard library path. If so, pass it to configure,
- via the LDFLAGS environment variable.
- Example: ./configure LDFLAGS=\"-L/usr/non-standard-path/python/lib\"
- ============================================================================
- ERROR!
- You probably have to install the development version of the Python package
- for your distribution. The exact name of this package varies among them.
- ============================================================================
- " "$LINENO" 5
- PYTHON_VERSION=""
- fi
- ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
- # turn back to default flags
- CPPFLAGS="$ac_save_CPPFLAGS"
- LIBS="$ac_save_LIBS"
-
- #
- # all done!
- #
-
- if test ! -z "$PYTHON_VERSION"; then
- badversion="no"
- if test "$PYTHON_VERSION_MAJOR" -lt 2; then
- badversion="yes"
- fi
- if test "$PYTHON_VERSION_MAJOR" -eq 2 -a "$PYTHON_VERSION_MINOR" -lt 4; then
- badversion="yes"
- fi
- if test "$badversion" = "yes"; then
- as_fn_error $? "Python version >= 2.4.0 is required" "$LINENO" 5
- fi
-
- PY_MAJOR_VERSION="`$PYTHON -c \"import sys; print(sys.version_info[0])\"`"
-
- # Have Python
-
-printf "%s\n" "#define HAVE_PYTHON 1" >>confdefs.h
-
- if test x_$ub_with_pythonmod != x_no; then
- if test -n "$LIBS"; then
- LIBS="$PYTHON_LDFLAGS $LIBS"
- else
- LIBS="$PYTHON_LDFLAGS"
- fi
- fi
- PYTHON_LIBS="$PYTHON_LDFLAGS"
-
- if test -n "$CPPFLAGS"; then
- CPPFLAGS="$CPPFLAGS $PYTHON_CPPFLAGS"
- else
- CPPFLAGS="$PYTHON_CPPFLAGS"
- fi
- if test "$PYTHON_LIBDIR" != "/usr/lib" -a "$PYTHON_LIBDIR" != "" -a "$PYTHON_LIBDIR" != "/usr/lib64"; then
-
- if test "x$enable_rpath" = xyes; then
- if echo "$PYTHON_LIBDIR" | grep "^/" >/dev/null; then
- RUNTIME_PATH="$RUNTIME_PATH -R$PYTHON_LIBDIR"
- fi
- fi
-
- fi
- ub_have_python=yes
- if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\"python\${PY_MAJOR_VERSION}\"\""; } >&5
- ($PKG_CONFIG --exists --print-errors ""python${PY_MAJOR_VERSION}"") 2>&5
- ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- PC_PY_DEPENDENCY="python${PY_MAJOR_VERSION}"
-else
- PC_PY_DEPENDENCY="python"
-fi
-
-
- # Check for SWIG
- ub_have_swig=no
- # Check whether --enable-swig-version-check was given.
-if test ${enable_swig_version_check+y}
-then :
- enableval=$enable_swig_version_check;
-fi
-
- if test "$enable_swig_version_check" = "yes"; then
-
- # Find path to the "swig" executable.
- for ac_prog in swig swig3.0 swig2.0
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_path_SWIG+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- case $SWIG in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_SWIG="$SWIG" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_path_SWIG="$as_dir$ac_word$ac_exec_ext"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
- ;;
-esac
-fi
-SWIG=$ac_cv_path_SWIG
-if test -n "$SWIG"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $SWIG" >&5
-printf "%s\n" "$SWIG" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
- test -n "$SWIG" && break
-done
-
- if test -z "$SWIG" ; then
- :
- elif test -z "2.0.1" ; then
- :
- else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking SWIG version" >&5
-printf %s "checking SWIG version... " >&6; }
- swig_version=`$SWIG -version 2>&1 | grep 'SWIG Version' | sed 's/.*\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*/\1/g'`
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $swig_version" >&5
-printf "%s\n" "$swig_version" >&6; }
- if test -n "$swig_version" ; then
- # Calculate the required version number components
- required=2.0.1
- required_major=`echo $required | sed 's/[^0-9].*//'`
- if test -z "$required_major" ; then
- required_major=0
- fi
- required=`echo $required. | sed 's/[0-9]*[^0-9]//'`
- required_minor=`echo $required | sed 's/[^0-9].*//'`
- if test -z "$required_minor" ; then
- required_minor=0
- fi
- required=`echo $required. | sed 's/[0-9]*[^0-9]//'`
- required_patch=`echo $required | sed 's/[^0-9].*//'`
- if test -z "$required_patch" ; then
- required_patch=0
- fi
- # Calculate the available version number components
- available=$swig_version
- available_major=`echo $available | sed 's/[^0-9].*//'`
- if test -z "$available_major" ; then
- available_major=0
- fi
- available=`echo $available | sed 's/[0-9]*[^0-9]//'`
- available_minor=`echo $available | sed 's/[^0-9].*//'`
- if test -z "$available_minor" ; then
- available_minor=0
- fi
- available=`echo $available | sed 's/[0-9]*[^0-9]//'`
- available_patch=`echo $available | sed 's/[^0-9].*//'`
- if test -z "$available_patch" ; then
- available_patch=0
- fi
- # Convert the version tuple into a single number for easier comparison.
- # Using base 100 should be safe since SWIG internally uses BCD values
- # to encode its version number.
- required_swig_vernum=`expr $required_major \* 10000 \
- \+ $required_minor \* 100 \+ $required_patch`
- available_swig_vernum=`expr $available_major \* 10000 \
- \+ $available_minor \* 100 \+ $available_patch`
-
- if test $available_swig_vernum -lt $required_swig_vernum; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: SWIG version >= 2.0.1 is required. You have $swig_version." >&5
-printf "%s\n" "$as_me: WARNING: SWIG version >= 2.0.1 is required. You have $swig_version." >&2;}
- SWIG=''
-
- else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SWIG library" >&5
-printf %s "checking for SWIG library... " >&6; }
- SWIG_LIB=`$SWIG -swiglib | tr '\r\n' ' '`
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $SWIG_LIB" >&5
-printf "%s\n" "$SWIG_LIB" >&6; }
-
- fi
- else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cannot determine SWIG version" >&5
-printf "%s\n" "$as_me: WARNING: cannot determine SWIG version" >&2;}
- SWIG=''
-
- fi
- fi
-
-
- else
-
- # Find path to the "swig" executable.
- for ac_prog in swig swig3.0 swig2.0
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_path_SWIG+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- case $SWIG in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_SWIG="$SWIG" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_path_SWIG="$as_dir$ac_word$ac_exec_ext"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
- ;;
-esac
-fi
-SWIG=$ac_cv_path_SWIG
-if test -n "$SWIG"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $SWIG" >&5
-printf "%s\n" "$SWIG" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
- test -n "$SWIG" && break
-done
-
- if test -z "$SWIG" ; then
- :
- elif test -z "" ; then
- :
- else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking SWIG version" >&5
-printf %s "checking SWIG version... " >&6; }
- swig_version=`$SWIG -version 2>&1 | grep 'SWIG Version' | sed 's/.*\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*/\1/g'`
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $swig_version" >&5
-printf "%s\n" "$swig_version" >&6; }
- if test -n "$swig_version" ; then
- # Calculate the required version number components
- required=
- required_major=`echo $required | sed 's/[^0-9].*//'`
- if test -z "$required_major" ; then
- required_major=0
- fi
- required=`echo $required. | sed 's/[0-9]*[^0-9]//'`
- required_minor=`echo $required | sed 's/[^0-9].*//'`
- if test -z "$required_minor" ; then
- required_minor=0
- fi
- required=`echo $required. | sed 's/[0-9]*[^0-9]//'`
- required_patch=`echo $required | sed 's/[^0-9].*//'`
- if test -z "$required_patch" ; then
- required_patch=0
- fi
- # Calculate the available version number components
- available=$swig_version
- available_major=`echo $available | sed 's/[^0-9].*//'`
- if test -z "$available_major" ; then
- available_major=0
- fi
- available=`echo $available | sed 's/[0-9]*[^0-9]//'`
- available_minor=`echo $available | sed 's/[^0-9].*//'`
- if test -z "$available_minor" ; then
- available_minor=0
- fi
- available=`echo $available | sed 's/[0-9]*[^0-9]//'`
- available_patch=`echo $available | sed 's/[^0-9].*//'`
- if test -z "$available_patch" ; then
- available_patch=0
- fi
- # Convert the version tuple into a single number for easier comparison.
- # Using base 100 should be safe since SWIG internally uses BCD values
- # to encode its version number.
- required_swig_vernum=`expr $required_major \* 10000 \
- \+ $required_minor \* 100 \+ $required_patch`
- available_swig_vernum=`expr $available_major \* 10000 \
- \+ $available_minor \* 100 \+ $available_patch`
-
- if test $available_swig_vernum -lt $required_swig_vernum; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: SWIG version >= is required. You have $swig_version." >&5
-printf "%s\n" "$as_me: WARNING: SWIG version >= is required. You have $swig_version." >&2;}
- SWIG=''
-
- else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SWIG library" >&5
-printf %s "checking for SWIG library... " >&6; }
- SWIG_LIB=`$SWIG -swiglib | tr '\r\n' ' '`
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $SWIG_LIB" >&5
-printf "%s\n" "$SWIG_LIB" >&6; }
-
- fi
- else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cannot determine SWIG version" >&5
-printf "%s\n" "$as_me: WARNING: cannot determine SWIG version" >&2;}
- SWIG=''
-
- fi
- fi
-
-
- fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking SWIG" >&5
-printf %s "checking SWIG... " >&6; }
- if test ! -x "$SWIG"; then
- as_fn_error $? "failed to find swig tool, install it, or do not build Python module and PyUnbound" "$LINENO" 5
- else
-
-printf "%s\n" "#define HAVE_SWIG 1" >>confdefs.h
-
- swig="$SWIG"
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: present" >&5
-printf "%s\n" "present" >&6; }
-
- # If have Python & SWIG
- # Declare PythonMod
- if test x_$ub_with_pythonmod != x_no; then
-
-printf "%s\n" "#define WITH_PYTHONMODULE 1" >>confdefs.h
-
- WITH_PYTHONMODULE=yes
-
- PYTHONMOD_OBJ="pythonmod.lo pythonmod_utils.lo"
-
- PYTHONMOD_HEADER='$(srcdir)/pythonmod/pythonmod.h'
-
- PYTHONMOD_INSTALL=pythonmod-install
-
- PYTHONMOD_UNINSTALL=pythonmod-uninstall
-
- fi
-
- # Declare PyUnbound
- if test x_$ub_with_pyunbound != x_no; then
-
-printf "%s\n" "#define WITH_PYUNBOUND 1" >>confdefs.h
-
- WITH_PYUNBOUND=yes
-
- PYUNBOUND_OBJ="libunbound_wrap.lo"
-
- PYUNBOUND_TARGET="_unbound.la"
-
- PYUNBOUND_INSTALL=pyunbound-install
-
- PYUNBOUND_UNINSTALL=pyunbound-uninstall
-
- fi
- fi
- else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** Python libraries not found, won't build PythonMod or PyUnbound ***" >&5
-printf "%s\n" "*** Python libraries not found, won't build PythonMod or PyUnbound ***" >&6; }
- ub_with_pyunbound=no
- ub_with_pythonmod=no
- fi
-fi
-
-if test "`uname`" = "NetBSD"; then
- NETBSD_LINTFLAGS='"-D__RENAME(x)=" -D_NETINET_IN_H_'
-
-fi
-
-if test "`uname`" = "Linux"; then
- # splint cannot parse modern c99 header files
- GCC_DOCKER_LINTFLAGS='-syntax'
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for build time" >&5
-printf %s "checking for build time... " >&6; }
-ax_date_fmt="%Y%m%d"
-if test x"$SOURCE_DATE_EPOCH" = x
-then :
- CONFIG_DATE=`date "+$ax_date_fmt"`
-else $as_nop
- ax_build_date=`date -u -d "@$SOURCE_DATE_EPOCH" "+$ax_date_fmt" 2>/dev/null \
- || date -u -r "$SOURCE_DATE_EPOCH" "+$ax_date_fmt" 2>/dev/null`
- if test x"$ax_build_date" = x
-then :
- as_fn_error $? "malformed SOURCE_DATE_EPOCH" "$LINENO" 5
-else $as_nop
- CONFIG_DATE=$ax_build_date
-fi
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CONFIG_DATE" >&5
-printf "%s\n" "$CONFIG_DATE" >&6; }
-
-
-
-
-# Checks for libraries.
-
-# libnss
-USE_NSS="no"
-
-# Check whether --with-nss was given.
-if test ${with_nss+y}
-then :
- withval=$with_nss;
- USE_NSS="yes"
-
-printf "%s\n" "#define HAVE_NSS 1" >>confdefs.h
-
- if test "$withval" != "" -a "$withval" != "yes"; then
- CPPFLAGS="$CPPFLAGS -I$withval/include/nss3"
- LDFLAGS="$LDFLAGS -L$withval/lib"
-
- if test "x$enable_rpath" = xyes; then
- if echo "$withval/lib" | grep "^/" >/dev/null; then
- RUNTIME_PATH="$RUNTIME_PATH -R$withval/lib"
- fi
- fi
-
- CPPFLAGS="-I$withval/include/nspr4 $CPPFLAGS"
- else
- CPPFLAGS="$CPPFLAGS -I/usr/include/nss3"
- CPPFLAGS="-I/usr/include/nspr4 $CPPFLAGS"
- fi
- LIBS="$LIBS -lnss3 -lnspr4"
- SSLLIB=""
- PC_CRYPTO_DEPENDENCY="nss nspr"
-
-
-
-fi
-
-
-# libnettle
-USE_NETTLE="no"
-
-# Check whether --with-nettle was given.
-if test ${with_nettle+y}
-then :
- withval=$with_nettle;
- USE_NETTLE="yes"
-
-printf "%s\n" "#define HAVE_NETTLE 1" >>confdefs.h
-
- ac_fn_c_check_header_compile "$LINENO" "nettle/dsa-compat.h" "ac_cv_header_nettle_dsa_compat_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_nettle_dsa_compat_h" = xyes
-then :
- printf "%s\n" "#define HAVE_NETTLE_DSA_COMPAT_H 1" >>confdefs.h
-
-fi
-
- if test "$withval" != "" -a "$withval" != "yes"; then
- CPPFLAGS="$CPPFLAGS -I$withval/include/nettle"
- LDFLAGS="$LDFLAGS -L$withval/lib"
-
- if test "x$enable_rpath" = xyes; then
- if echo "$withval/lib" | grep "^/" >/dev/null; then
- RUNTIME_PATH="$RUNTIME_PATH -R$withval/lib"
- fi
- fi
-
- else
- CPPFLAGS="$CPPFLAGS -I/usr/include/nettle"
- fi
- LIBS="$LIBS -lhogweed -lnettle -lgmp"
- SSLLIB=""
- PC_CRYPTO_DEPENDENCY="hogweed nettle"
-
-
-
-fi
-
-
-# openssl
-if test $USE_NSS = "no" -a $USE_NETTLE = "no"; then
-
-
-# Check whether --with-ssl was given.
-if test ${with_ssl+y}
-then :
- withval=$with_ssl;
-
-else $as_nop
-
- withval="yes"
-
-fi
-
- if test x_$withval = x_no; then
- as_fn_error $? "Need SSL library to do digital signature cryptography" "$LINENO" 5
- fi
-
- withval=$withval
- if test x_$withval != x_no; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SSL" >&5
-printf %s "checking for SSL... " >&6; }
- if test -n "$withval"; then
- if test ! -f "$withval/include/openssl/ssl.h" -a -f "$withval/openssl/ssl.h"; then
- ssldir="$withval"
- found_ssl="yes"
- withval=""
- ssldir_include="$ssldir"
- ssldir_lib=`echo $ssldir | sed -e 's/include/lib/'`
- if test -f "$ssldir_lib/libssl.a" -o -f "$ssldir_lib/libssl.so"; then
- : # found here
- else
- ssldir_lib=`echo $ssldir | sed -e 's/include/lib64/'`
- if test -f "$ssldir_lib/libssl.a" -o -f "$ssldir_lib/libssl.so"; then
- : # found here
- else
- as_fn_error $? "Could not find openssl lib file, $ssldir_lib/libssl.so,a, pass like \"/usr/local\" or \"/usr/include/openssl11\"" "$LINENO" 5
- fi
- fi
- fi
- fi
- if test x_$withval = x_ -o x_$withval = x_yes; then
- withval="/usr/local/ssl /usr/lib/ssl /usr/ssl /usr/pkg /usr/local /opt/local /usr/sfw /usr"
- fi
- for dir in $withval; do
- ssldir="$dir"
- if test -f "$dir/include/openssl/ssl.h"; then
- found_ssl="yes"
- ssldir_include="$ssldir/include"
- if test ! -d "$ssldir/lib" -a -d "$ssldir/lib64"; then
- ssldir_lib="$ssldir/lib64"
- else
- ssldir_lib="$ssldir/lib"
- fi
- break;
- fi
- done
- if test x_$found_ssl != x_yes; then
- as_fn_error $? "Cannot find the SSL libraries in $withval" "$LINENO" 5
- else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found in $ssldir" >&5
-printf "%s\n" "found in $ssldir" >&6; }
-
-printf "%s\n" "#define HAVE_SSL /**/" >>confdefs.h
-
- HAVE_SSL=yes
- if test "$ssldir" != "/usr"; then
- CPPFLAGS="$CPPFLAGS -I$ssldir_include"
- LIBSSL_CPPFLAGS="$LIBSSL_CPPFLAGS -I$ssldir_include"
- LDFLAGS="$LDFLAGS -L$ssldir_lib"
- LIBSSL_LDFLAGS="$LIBSSL_LDFLAGS -L$ssldir_lib"
-
- if test "x$enable_rpath" = xyes; then
- if echo "$ssldir_lib" | grep "^/" >/dev/null; then
- RUNTIME_PATH="$RUNTIME_PATH -R$ssldir_lib"
- fi
- fi
-
- fi
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for EVP_sha256 in -lcrypto" >&5
-printf %s "checking for EVP_sha256 in -lcrypto... " >&6; }
- LIBS="$LIBS -lcrypto"
- LIBSSL_LIBS="$LIBSSL_LIBS -lcrypto"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main (void)
-{
-
- int EVP_sha256(void);
- (void)EVP_sha256();
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-
-printf "%s\n" "#define HAVE_EVP_SHA256 1" >>confdefs.h
-
-
-else $as_nop
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- # check if -lwsock32 or -lgdi32 are needed.
- BAKLIBS="$LIBS"
- BAKSSLLIBS="$LIBSSL_LIBS"
- LIBS="$LIBS -lgdi32 -lws2_32"
- LIBSSL_LIBS="$LIBSSL_LIBS -lgdi32 -lws2_32"
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if -lcrypto needs -lgdi32" >&5
-printf %s "checking if -lcrypto needs -lgdi32... " >&6; }
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main (void)
-{
-
- int EVP_sha256(void);
- (void)EVP_sha256();
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
-
-
-printf "%s\n" "#define HAVE_EVP_SHA256 1" >>confdefs.h
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-
-else $as_nop
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- LIBS="$BAKLIBS"
- LIBSSL_LIBS="$BAKSSLLIBS"
-
- LIBS="$LIBS -lgdi32 -lws2_32 -lcrypt32"
- LIBSSL_LIBS="$LIBSSL_LIBS -lgdi32 -lws2_32 -lcrypt32"
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if -lcrypto needs -lgdi32 -lws2_32 -lcrypt32" >&5
-printf %s "checking if -lcrypto needs -lgdi32 -lws2_32 -lcrypt32... " >&6; }
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main (void)
-{
-
- int EVP_sha256(void);
- (void)EVP_sha256();
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
-
-
-printf "%s\n" "#define HAVE_EVP_SHA256 1" >>confdefs.h
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-
-else $as_nop
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- LIBS="$BAKLIBS"
- LIBSSL_LIBS="$BAKSSLLIBS"
-
- LIBS="$LIBS -lgdi32 -lws2_32 -lcrypt32 -l:libssp.a"
- LIBSSL_LIBS="$LIBSSL_LIBS -lgdi32 -lws2_32 -lcrypt32 -l:libssp.a"
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if -lcrypto needs -lgdi32 -lws2_32 -lcrypt32 -l:libssp.a" >&5
-printf %s "checking if -lcrypto needs -lgdi32 -lws2_32 -lcrypt32 -l:libssp.a... " >&6; }
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main (void)
-{
-
- int EVP_sha256(void);
- (void)EVP_sha256();
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
-
-
-printf "%s\n" "#define HAVE_EVP_SHA256 1" >>confdefs.h
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-
-else $as_nop
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- LIBS="$BAKLIBS"
- LIBSSL_LIBS="$BAKSSLLIBS"
-
- LIBS="$LIBS -ldl"
- LIBSSL_LIBS="$LIBSSL_LIBS -ldl"
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if -lcrypto needs -ldl" >&5
-printf %s "checking if -lcrypto needs -ldl... " >&6; }
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main (void)
-{
-
- int EVP_sha256(void);
- (void)EVP_sha256();
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
-
-
-printf "%s\n" "#define HAVE_EVP_SHA256 1" >>confdefs.h
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-
-else $as_nop
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- LIBS="$BAKLIBS"
- LIBSSL_LIBS="$BAKSSLLIBS"
- LIBS="$LIBS -ldl -pthread"
- LIBSSL_LIBS="$LIBSSL_LIBS -ldl -pthread"
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if -lcrypto needs -ldl -pthread" >&5
-printf %s "checking if -lcrypto needs -ldl -pthread... " >&6; }
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main (void)
-{
-
- int EVP_sha256(void);
- (void)EVP_sha256();
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
-
-
-printf "%s\n" "#define HAVE_EVP_SHA256 1" >>confdefs.h
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-
-else $as_nop
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- as_fn_error $? "OpenSSL found in $ssldir, but version 0.9.7 or higher is required" "$LINENO" 5
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
- fi
-
-
- fi
-ac_fn_c_check_header_compile "$LINENO" "openssl/ssl.h" "ac_cv_header_openssl_ssl_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_openssl_ssl_h" = xyes
-then :
- printf "%s\n" "#define HAVE_OPENSSL_SSL_H 1" >>confdefs.h
-
-fi
-
-ac_fn_c_check_header_compile "$LINENO" "openssl/err.h" "ac_cv_header_openssl_err_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_openssl_err_h" = xyes
-then :
- printf "%s\n" "#define HAVE_OPENSSL_ERR_H 1" >>confdefs.h
-
-fi
-
-ac_fn_c_check_header_compile "$LINENO" "openssl/rand.h" "ac_cv_header_openssl_rand_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_openssl_rand_h" = xyes
-then :
- printf "%s\n" "#define HAVE_OPENSSL_RAND_H 1" >>confdefs.h
-
-fi
-
-
-
-
-# check if libssl needs libdl
-BAKLIBS="$LIBS"
-LIBS="-lssl $LIBS"
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if libssl needs libdl" >&5
-printf %s "checking if libssl needs libdl... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-char SSL_CTX_new ();
-int
-main (void)
-{
-return SSL_CTX_new ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- LIBS="$BAKLIBS"
-
-else $as_nop
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
- LIBS="$BAKLIBS"
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5
-printf %s "checking for library containing dlopen... " >&6; }
-if test ${ac_cv_search_dlopen+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_func_search_save_LIBS=$LIBS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-char dlopen ();
-int
-main (void)
-{
-return dlopen ();
- ;
- return 0;
-}
-_ACEOF
-for ac_lib in '' dl
-do
- if test -z "$ac_lib"; then
- ac_res="none required"
- else
- ac_res=-l$ac_lib
- LIBS="-l$ac_lib $ac_func_search_save_LIBS"
- fi
- if ac_fn_c_try_link "$LINENO"
-then :
- ac_cv_search_dlopen=$ac_res
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext
- if test ${ac_cv_search_dlopen+y}
-then :
- break
-fi
-done
-if test ${ac_cv_search_dlopen+y}
-then :
-
-else $as_nop
- ac_cv_search_dlopen=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5
-printf "%s\n" "$ac_cv_search_dlopen" >&6; }
-ac_res=$ac_cv_search_dlopen
-if test "$ac_res" != no
-then :
- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
-fi
-
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
-SSLLIB="-lssl"
-
-PC_CRYPTO_DEPENDENCY=""
-
-
-# check if -lcrypt32 is needed because CAPIENG needs that. (on windows)
-BAKLIBS="$LIBS"
-LIBS="-lssl $LIBS"
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if libssl needs -lcrypt32" >&5
-printf %s "checking if libssl needs -lcrypt32... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main (void)
-{
-
- int EVP_sha256(void);
- (void)EVP_sha256();
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- LIBS="$BAKLIBS"
-
-else $as_nop
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
- LIBS="$BAKLIBS"
- LIBS="$LIBS -lcrypt32"
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for LibreSSL" >&5
-printf %s "checking for LibreSSL... " >&6; }
-if grep VERSION_TEXT $ssldir_include/openssl/opensslv.h | grep "LibreSSL" >/dev/null; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-
-printf "%s\n" "#define HAVE_LIBRESSL 1" >>confdefs.h
-
- # libressl provides these compat functions, but they may also be
- # declared by the OS in libc. See if they have been declared.
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5
-printf %s "checking for $CC options needed to detect all undeclared functions... " >&6; }
-if test ${ac_cv_c_undeclared_builtin_options+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_save_CFLAGS=$CFLAGS
- ac_cv_c_undeclared_builtin_options='cannot detect'
- for ac_arg in '' -fno-builtin; do
- CFLAGS="$ac_save_CFLAGS $ac_arg"
- # This test program should *not* compile successfully.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main (void)
-{
-(void) strchr;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
-
-else $as_nop
- # This test program should compile successfully.
- # No library function is consistently available on
- # freestanding implementations, so test against a dummy
- # declaration. Include always-available headers on the
- # off chance that they somehow elicit warnings.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <float.h>
-#include <limits.h>
-#include <stdarg.h>
-#include <stddef.h>
-extern void ac_decl (int, char *);
-
-int
-main (void)
-{
-(void) ac_decl (0, (char *) 0);
- (void) ac_decl;
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- if test x"$ac_arg" = x
-then :
- ac_cv_c_undeclared_builtin_options='none needed'
-else $as_nop
- ac_cv_c_undeclared_builtin_options=$ac_arg
-fi
- break
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
- done
- CFLAGS=$ac_save_CFLAGS
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_undeclared_builtin_options" >&5
-printf "%s\n" "$ac_cv_c_undeclared_builtin_options" >&6; }
- case $ac_cv_c_undeclared_builtin_options in #(
- 'cannot detect') :
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot make $CC report undeclared builtins
-See \`config.log' for more details" "$LINENO" 5; } ;; #(
- 'none needed') :
- ac_c_undeclared_builtin_options='' ;; #(
- *) :
- ac_c_undeclared_builtin_options=$ac_cv_c_undeclared_builtin_options ;;
-esac
-
-ac_fn_check_decl "$LINENO" "strlcpy" "ac_cv_have_decl_strlcpy" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS"
-if test "x$ac_cv_have_decl_strlcpy" = xyes
-then :
- ac_have_decl=1
-else $as_nop
- ac_have_decl=0
-fi
-printf "%s\n" "#define HAVE_DECL_STRLCPY $ac_have_decl" >>confdefs.h
-ac_fn_check_decl "$LINENO" "strlcat" "ac_cv_have_decl_strlcat" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS"
-if test "x$ac_cv_have_decl_strlcat" = xyes
-then :
- ac_have_decl=1
-else $as_nop
- ac_have_decl=0
-fi
-printf "%s\n" "#define HAVE_DECL_STRLCAT $ac_have_decl" >>confdefs.h
-ac_fn_check_decl "$LINENO" "arc4random" "ac_cv_have_decl_arc4random" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS"
-if test "x$ac_cv_have_decl_arc4random" = xyes
-then :
- ac_have_decl=1
-else $as_nop
- ac_have_decl=0
-fi
-printf "%s\n" "#define HAVE_DECL_ARC4RANDOM $ac_have_decl" >>confdefs.h
-ac_fn_check_decl "$LINENO" "arc4random_uniform" "ac_cv_have_decl_arc4random_uniform" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS"
-if test "x$ac_cv_have_decl_arc4random_uniform" = xyes
-then :
- ac_have_decl=1
-else $as_nop
- ac_have_decl=0
-fi
-printf "%s\n" "#define HAVE_DECL_ARC4RANDOM_UNIFORM $ac_have_decl" >>confdefs.h
-
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-ac_fn_c_check_header_compile "$LINENO" "openssl/conf.h" "ac_cv_header_openssl_conf_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_openssl_conf_h" = xyes
-then :
- printf "%s\n" "#define HAVE_OPENSSL_CONF_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "openssl/engine.h" "ac_cv_header_openssl_engine_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_openssl_engine_h" = xyes
-then :
- printf "%s\n" "#define HAVE_OPENSSL_ENGINE_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "openssl/bn.h" "ac_cv_header_openssl_bn_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_openssl_bn_h" = xyes
-then :
- printf "%s\n" "#define HAVE_OPENSSL_BN_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "openssl/dh.h" "ac_cv_header_openssl_dh_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_openssl_dh_h" = xyes
-then :
- printf "%s\n" "#define HAVE_OPENSSL_DH_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "openssl/dsa.h" "ac_cv_header_openssl_dsa_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_openssl_dsa_h" = xyes
-then :
- printf "%s\n" "#define HAVE_OPENSSL_DSA_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "openssl/rsa.h" "ac_cv_header_openssl_rsa_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_openssl_rsa_h" = xyes
-then :
- printf "%s\n" "#define HAVE_OPENSSL_RSA_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "openssl/core_names.h" "ac_cv_header_openssl_core_names_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_openssl_core_names_h" = xyes
-then :
- printf "%s\n" "#define HAVE_OPENSSL_CORE_NAMES_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "openssl/param_build.h" "ac_cv_header_openssl_param_build_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_openssl_param_build_h" = xyes
-then :
- printf "%s\n" "#define HAVE_OPENSSL_PARAM_BUILD_H 1" >>confdefs.h
-
-fi
-
-ac_fn_c_check_func "$LINENO" "OPENSSL_config" "ac_cv_func_OPENSSL_config"
-if test "x$ac_cv_func_OPENSSL_config" = xyes
-then :
- printf "%s\n" "#define HAVE_OPENSSL_CONFIG 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "EVP_sha1" "ac_cv_func_EVP_sha1"
-if test "x$ac_cv_func_EVP_sha1" = xyes
-then :
- printf "%s\n" "#define HAVE_EVP_SHA1 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "EVP_sha256" "ac_cv_func_EVP_sha256"
-if test "x$ac_cv_func_EVP_sha256" = xyes
-then :
- printf "%s\n" "#define HAVE_EVP_SHA256 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "EVP_sha512" "ac_cv_func_EVP_sha512"
-if test "x$ac_cv_func_EVP_sha512" = xyes
-then :
- printf "%s\n" "#define HAVE_EVP_SHA512 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "FIPS_mode" "ac_cv_func_FIPS_mode"
-if test "x$ac_cv_func_FIPS_mode" = xyes
-then :
- printf "%s\n" "#define HAVE_FIPS_MODE 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "EVP_default_properties_is_fips_enabled" "ac_cv_func_EVP_default_properties_is_fips_enabled"
-if test "x$ac_cv_func_EVP_default_properties_is_fips_enabled" = xyes
-then :
- printf "%s\n" "#define HAVE_EVP_DEFAULT_PROPERTIES_IS_FIPS_ENABLED 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "EVP_MD_CTX_new" "ac_cv_func_EVP_MD_CTX_new"
-if test "x$ac_cv_func_EVP_MD_CTX_new" = xyes
-then :
- printf "%s\n" "#define HAVE_EVP_MD_CTX_NEW 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "OpenSSL_add_all_digests" "ac_cv_func_OpenSSL_add_all_digests"
-if test "x$ac_cv_func_OpenSSL_add_all_digests" = xyes
-then :
- printf "%s\n" "#define HAVE_OPENSSL_ADD_ALL_DIGESTS 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "OPENSSL_init_crypto" "ac_cv_func_OPENSSL_init_crypto"
-if test "x$ac_cv_func_OPENSSL_init_crypto" = xyes
-then :
- printf "%s\n" "#define HAVE_OPENSSL_INIT_CRYPTO 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "EVP_cleanup" "ac_cv_func_EVP_cleanup"
-if test "x$ac_cv_func_EVP_cleanup" = xyes
-then :
- printf "%s\n" "#define HAVE_EVP_CLEANUP 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "ENGINE_cleanup" "ac_cv_func_ENGINE_cleanup"
-if test "x$ac_cv_func_ENGINE_cleanup" = xyes
-then :
- printf "%s\n" "#define HAVE_ENGINE_CLEANUP 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "ERR_load_crypto_strings" "ac_cv_func_ERR_load_crypto_strings"
-if test "x$ac_cv_func_ERR_load_crypto_strings" = xyes
-then :
- printf "%s\n" "#define HAVE_ERR_LOAD_CRYPTO_STRINGS 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "CRYPTO_cleanup_all_ex_data" "ac_cv_func_CRYPTO_cleanup_all_ex_data"
-if test "x$ac_cv_func_CRYPTO_cleanup_all_ex_data" = xyes
-then :
- printf "%s\n" "#define HAVE_CRYPTO_CLEANUP_ALL_EX_DATA 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "ERR_free_strings" "ac_cv_func_ERR_free_strings"
-if test "x$ac_cv_func_ERR_free_strings" = xyes
-then :
- printf "%s\n" "#define HAVE_ERR_FREE_STRINGS 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "RAND_cleanup" "ac_cv_func_RAND_cleanup"
-if test "x$ac_cv_func_RAND_cleanup" = xyes
-then :
- printf "%s\n" "#define HAVE_RAND_CLEANUP 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "DSA_SIG_set0" "ac_cv_func_DSA_SIG_set0"
-if test "x$ac_cv_func_DSA_SIG_set0" = xyes
-then :
- printf "%s\n" "#define HAVE_DSA_SIG_SET0 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "EVP_dss1" "ac_cv_func_EVP_dss1"
-if test "x$ac_cv_func_EVP_dss1" = xyes
-then :
- printf "%s\n" "#define HAVE_EVP_DSS1 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "EVP_DigestVerify" "ac_cv_func_EVP_DigestVerify"
-if test "x$ac_cv_func_EVP_DigestVerify" = xyes
-then :
- printf "%s\n" "#define HAVE_EVP_DIGESTVERIFY 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "EVP_aes_256_cbc" "ac_cv_func_EVP_aes_256_cbc"
-if test "x$ac_cv_func_EVP_aes_256_cbc" = xyes
-then :
- printf "%s\n" "#define HAVE_EVP_AES_256_CBC 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "EVP_EncryptInit_ex" "ac_cv_func_EVP_EncryptInit_ex"
-if test "x$ac_cv_func_EVP_EncryptInit_ex" = xyes
-then :
- printf "%s\n" "#define HAVE_EVP_ENCRYPTINIT_EX 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "HMAC_Init_ex" "ac_cv_func_HMAC_Init_ex"
-if test "x$ac_cv_func_HMAC_Init_ex" = xyes
-then :
- printf "%s\n" "#define HAVE_HMAC_INIT_EX 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "CRYPTO_THREADID_set_callback" "ac_cv_func_CRYPTO_THREADID_set_callback"
-if test "x$ac_cv_func_CRYPTO_THREADID_set_callback" = xyes
-then :
- printf "%s\n" "#define HAVE_CRYPTO_THREADID_SET_CALLBACK 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "EVP_MAC_CTX_set_params" "ac_cv_func_EVP_MAC_CTX_set_params"
-if test "x$ac_cv_func_EVP_MAC_CTX_set_params" = xyes
-then :
- printf "%s\n" "#define HAVE_EVP_MAC_CTX_SET_PARAMS 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "OSSL_PARAM_BLD_new" "ac_cv_func_OSSL_PARAM_BLD_new"
-if test "x$ac_cv_func_OSSL_PARAM_BLD_new" = xyes
-then :
- printf "%s\n" "#define HAVE_OSSL_PARAM_BLD_NEW 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "BIO_set_callback_ex" "ac_cv_func_BIO_set_callback_ex"
-if test "x$ac_cv_func_BIO_set_callback_ex" = xyes
-then :
- printf "%s\n" "#define HAVE_BIO_SET_CALLBACK_EX 1" >>confdefs.h
-
-fi
-
-
-# these check_funcs need -lssl
-BAKLIBS="$LIBS"
-LIBS="-lssl $LIBS"
-ac_fn_c_check_func "$LINENO" "OPENSSL_init_ssl" "ac_cv_func_OPENSSL_init_ssl"
-if test "x$ac_cv_func_OPENSSL_init_ssl" = xyes
-then :
- printf "%s\n" "#define HAVE_OPENSSL_INIT_SSL 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "SSL_CTX_set_security_level" "ac_cv_func_SSL_CTX_set_security_level"
-if test "x$ac_cv_func_SSL_CTX_set_security_level" = xyes
-then :
- printf "%s\n" "#define HAVE_SSL_CTX_SET_SECURITY_LEVEL 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "SSL_set1_host" "ac_cv_func_SSL_set1_host"
-if test "x$ac_cv_func_SSL_set1_host" = xyes
-then :
- printf "%s\n" "#define HAVE_SSL_SET1_HOST 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "SSL_get0_peername" "ac_cv_func_SSL_get0_peername"
-if test "x$ac_cv_func_SSL_get0_peername" = xyes
-then :
- printf "%s\n" "#define HAVE_SSL_GET0_PEERNAME 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "X509_VERIFY_PARAM_set1_host" "ac_cv_func_X509_VERIFY_PARAM_set1_host"
-if test "x$ac_cv_func_X509_VERIFY_PARAM_set1_host" = xyes
-then :
- printf "%s\n" "#define HAVE_X509_VERIFY_PARAM_SET1_HOST 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "SSL_CTX_set_ciphersuites" "ac_cv_func_SSL_CTX_set_ciphersuites"
-if test "x$ac_cv_func_SSL_CTX_set_ciphersuites" = xyes
-then :
- printf "%s\n" "#define HAVE_SSL_CTX_SET_CIPHERSUITES 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "SSL_CTX_set_tlsext_ticket_key_evp_cb" "ac_cv_func_SSL_CTX_set_tlsext_ticket_key_evp_cb"
-if test "x$ac_cv_func_SSL_CTX_set_tlsext_ticket_key_evp_cb" = xyes
-then :
- printf "%s\n" "#define HAVE_SSL_CTX_SET_TLSEXT_TICKET_KEY_EVP_CB 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "SSL_CTX_set_alpn_select_cb" "ac_cv_func_SSL_CTX_set_alpn_select_cb"
-if test "x$ac_cv_func_SSL_CTX_set_alpn_select_cb" = xyes
-then :
- printf "%s\n" "#define HAVE_SSL_CTX_SET_ALPN_SELECT_CB 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "SSL_get0_alpn_selected" "ac_cv_func_SSL_get0_alpn_selected"
-if test "x$ac_cv_func_SSL_get0_alpn_selected" = xyes
-then :
- printf "%s\n" "#define HAVE_SSL_GET0_ALPN_SELECTED 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "SSL_CTX_set_alpn_protos" "ac_cv_func_SSL_CTX_set_alpn_protos"
-if test "x$ac_cv_func_SSL_CTX_set_alpn_protos" = xyes
-then :
- printf "%s\n" "#define HAVE_SSL_CTX_SET_ALPN_PROTOS 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "SSL_get1_peer_certificate" "ac_cv_func_SSL_get1_peer_certificate"
-if test "x$ac_cv_func_SSL_get1_peer_certificate" = xyes
-then :
- printf "%s\n" "#define HAVE_SSL_GET1_PEER_CERTIFICATE 1" >>confdefs.h
-
-fi
-
-LIBS="$BAKLIBS"
-
-ac_fn_check_decl "$LINENO" "SSL_COMP_get_compression_methods" "ac_cv_have_decl_SSL_COMP_get_compression_methods" "
-$ac_includes_default
-#ifdef HAVE_OPENSSL_ERR_H
-#include <openssl/err.h>
-#endif
-
-#ifdef HAVE_OPENSSL_RAND_H
-#include <openssl/rand.h>
-#endif
-
-#ifdef HAVE_OPENSSL_CONF_H
-#include <openssl/conf.h>
-#endif
-
-#ifdef HAVE_OPENSSL_ENGINE_H
-#include <openssl/engine.h>
-#endif
-#include <openssl/ssl.h>
-#include <openssl/evp.h>
-
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
-if test "x$ac_cv_have_decl_SSL_COMP_get_compression_methods" = xyes
-then :
- ac_have_decl=1
-else $as_nop
- ac_have_decl=0
-fi
-printf "%s\n" "#define HAVE_DECL_SSL_COMP_GET_COMPRESSION_METHODS $ac_have_decl" >>confdefs.h
-ac_fn_check_decl "$LINENO" "sk_SSL_COMP_pop_free" "ac_cv_have_decl_sk_SSL_COMP_pop_free" "
-$ac_includes_default
-#ifdef HAVE_OPENSSL_ERR_H
-#include <openssl/err.h>
-#endif
-
-#ifdef HAVE_OPENSSL_RAND_H
-#include <openssl/rand.h>
-#endif
-
-#ifdef HAVE_OPENSSL_CONF_H
-#include <openssl/conf.h>
-#endif
-
-#ifdef HAVE_OPENSSL_ENGINE_H
-#include <openssl/engine.h>
-#endif
-#include <openssl/ssl.h>
-#include <openssl/evp.h>
-
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
-if test "x$ac_cv_have_decl_sk_SSL_COMP_pop_free" = xyes
-then :
- ac_have_decl=1
-else $as_nop
- ac_have_decl=0
-fi
-printf "%s\n" "#define HAVE_DECL_SK_SSL_COMP_POP_FREE $ac_have_decl" >>confdefs.h
-ac_fn_check_decl "$LINENO" "SSL_CTX_set_ecdh_auto" "ac_cv_have_decl_SSL_CTX_set_ecdh_auto" "
-$ac_includes_default
-#ifdef HAVE_OPENSSL_ERR_H
-#include <openssl/err.h>
-#endif
-
-#ifdef HAVE_OPENSSL_RAND_H
-#include <openssl/rand.h>
-#endif
-
-#ifdef HAVE_OPENSSL_CONF_H
-#include <openssl/conf.h>
-#endif
-
-#ifdef HAVE_OPENSSL_ENGINE_H
-#include <openssl/engine.h>
-#endif
-#include <openssl/ssl.h>
-#include <openssl/evp.h>
-
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
-if test "x$ac_cv_have_decl_SSL_CTX_set_ecdh_auto" = xyes
-then :
- ac_have_decl=1
-else $as_nop
- ac_have_decl=0
-fi
-printf "%s\n" "#define HAVE_DECL_SSL_CTX_SET_ECDH_AUTO $ac_have_decl" >>confdefs.h
-ac_fn_check_decl "$LINENO" "SSL_CTX_set_tmp_ecdh" "ac_cv_have_decl_SSL_CTX_set_tmp_ecdh" "
-$ac_includes_default
-#ifdef HAVE_OPENSSL_ERR_H
-#include <openssl/err.h>
-#endif
-
-#ifdef HAVE_OPENSSL_RAND_H
-#include <openssl/rand.h>
-#endif
-
-#ifdef HAVE_OPENSSL_CONF_H
-#include <openssl/conf.h>
-#endif
-
-#ifdef HAVE_OPENSSL_ENGINE_H
-#include <openssl/engine.h>
-#endif
-#include <openssl/ssl.h>
-#include <openssl/evp.h>
-
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
-if test "x$ac_cv_have_decl_SSL_CTX_set_tmp_ecdh" = xyes
-then :
- ac_have_decl=1
-else $as_nop
- ac_have_decl=0
-fi
-printf "%s\n" "#define HAVE_DECL_SSL_CTX_SET_TMP_ECDH $ac_have_decl" >>confdefs.h
-
-
-if test "$ac_cv_func_HMAC_Init_ex" = "yes"; then
-# check function return type.
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the return type of HMAC_Init_ex" >&5
-printf %s "checking the return type of HMAC_Init_ex... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-#ifdef HAVE_OPENSSL_ERR_H
-#include <openssl/err.h>
-#endif
-
-#ifdef HAVE_OPENSSL_RAND_H
-#include <openssl/rand.h>
-#endif
-
-#ifdef HAVE_OPENSSL_CONF_H
-#include <openssl/conf.h>
-#endif
-
-#ifdef HAVE_OPENSSL_ENGINE_H
-#include <openssl/engine.h>
-#endif
-#include <openssl/ssl.h>
-#include <openssl/evp.h>
-
-int
-main (void)
-{
-
- HMAC_CTX* hmac_ctx = NULL;
- void* hmac_key = NULL;
- const EVP_MD* digest = NULL;
- int x = HMAC_Init_ex(hmac_ctx, hmac_key, 32, digest, NULL);
- (void)x;
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: int" >&5
-printf "%s\n" "int" >&6; }
-
-else $as_nop
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: void" >&5
-printf "%s\n" "void" >&6; }
-
-printf "%s\n" "#define HMAC_INIT_EX_RETURNS_VOID 1" >>confdefs.h
-
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-
-
-# libbsd
-
-# Check whether --with-libbsd was given.
-if test ${with_libbsd+y}
-then :
- withval=$with_libbsd;
- ac_fn_c_check_header_compile "$LINENO" "bsd/string.h" "ac_cv_header_bsd_string_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_bsd_string_h" = xyes
-then :
- printf "%s\n" "#define HAVE_BSD_STRING_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "bsd/stdlib.h" "ac_cv_header_bsd_stdlib_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_bsd_stdlib_h" = xyes
-then :
- printf "%s\n" "#define HAVE_BSD_STDLIB_H 1" >>confdefs.h
-
-fi
-
- if test "x$ac_cv_header_bsd_string_h" = xyes -a "x$ac_cv_header_bsd_stdlib_h" = xyes; then
- for func in strlcpy strlcat arc4random arc4random_uniform reallocarray; do
- as_ac_Search=`printf "%s\n" "ac_cv_search_$func" | $as_tr_sh`
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing $func" >&5
-printf %s "checking for library containing $func... " >&6; }
-if eval test \${$as_ac_Search+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_func_search_save_LIBS=$LIBS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-char $func ();
-int
-main (void)
-{
-return $func ();
- ;
- return 0;
-}
-_ACEOF
-for ac_lib in '' bsd
-do
- if test -z "$ac_lib"; then
- ac_res="none required"
- else
- ac_res=-l$ac_lib
- LIBS="-l$ac_lib $ac_func_search_save_LIBS"
- fi
- if ac_fn_c_try_link "$LINENO"
-then :
- eval "$as_ac_Search=\$ac_res"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext
- if eval test \${$as_ac_Search+y}
-then :
- break
-fi
-done
-if eval test \${$as_ac_Search+y}
-then :
-
-else $as_nop
- eval "$as_ac_Search=no"
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-eval ac_res=\$$as_ac_Search
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
-eval ac_res=\$$as_ac_Search
-if test "$ac_res" != no
-then :
- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
-
-printf "%s\n" "#define HAVE_LIBBSD 1" >>confdefs.h
-
- PC_LIBBSD_DEPENDENCY=libbsd
-
-
-fi
-
- done
- fi
-
-fi
-
-
-# Check whether --enable-sha1 was given.
-if test ${enable_sha1+y}
-then :
- enableval=$enable_sha1;
-fi
-
-case "$enable_sha1" in
- no)
- ;;
- yes|*)
-
-printf "%s\n" "#define USE_SHA1 1" >>confdefs.h
-
- ;;
-esac
-
-
-# Check whether --enable-sha2 was given.
-if test ${enable_sha2+y}
-then :
- enableval=$enable_sha2;
-fi
-
-case "$enable_sha2" in
- no)
- ;;
- yes|*)
-
-printf "%s\n" "#define USE_SHA2 1" >>confdefs.h
-
- ;;
-esac
-
-# Check whether --enable-subnet was given.
-if test ${enable_subnet+y}
-then :
- enableval=$enable_subnet;
-fi
-
-case "$enable_subnet" in
- yes)
-
-printf "%s\n" "#define CLIENT_SUBNET 1" >>confdefs.h
-
- SUBNET_OBJ="edns-subnet.lo subnetmod.lo addrtree.lo subnet-whitelist.lo"
-
- SUBNET_HEADER='$(srcdir)/edns-subnet/subnetmod.h $(srcdir)/edns-subnet/edns-subnet.h $(srcdir)/edns-subnet/subnet-whitelist.h $(srcdir)/edns-subnet/addrtree.h'
-
- ;;
- no|*)
- ;;
-esac
-
-# check whether gost also works
-
-# Check whether --enable-gost was given.
-if test ${enable_gost+y}
-then :
- enableval=$enable_gost;
-fi
-
-use_gost="no"
-if test $USE_NSS = "no" -a $USE_NETTLE = "no"; then
-case "$enable_gost" in
- no)
- ;;
- *)
- ac_fn_c_check_func "$LINENO" "EVP_PKEY_set_type_str" "ac_cv_func_EVP_PKEY_set_type_str"
-if test "x$ac_cv_func_EVP_PKEY_set_type_str" = xyes
-then :
- :
-else $as_nop
- as_fn_error $? "OpenSSL 1.0.0 is needed for GOST support" "$LINENO" 5
-fi
-
- ac_fn_c_check_func "$LINENO" "EC_KEY_new" "ac_cv_func_EC_KEY_new"
-if test "x$ac_cv_func_EC_KEY_new" = xyes
-then :
-
-else $as_nop
- as_fn_error $? "OpenSSL does not support ECC, needed for GOST support" "$LINENO" 5
-fi
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if GOST works" >&5
-printf %s "checking if GOST works... " >&6; }
-if test c${cross_compiling} = cno; then
-BAKCFLAGS="$CFLAGS"
-if test -n "$ssldir"; then
- CFLAGS="$CFLAGS -Wl,-rpath,$ssldir_lib"
-fi
-if test "$cross_compiling" = yes
-then :
- eval "ac_cv_c_gost_works=maybe"
-else $as_nop
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-#include <string.h>
-#include <openssl/ssl.h>
-#include <openssl/evp.h>
-#include <openssl/engine.h>
-#include <openssl/conf.h>
-/* routine to load gost (from sldns) */
-int load_gost_id(void)
-{
- static int gost_id = 0;
- const EVP_PKEY_ASN1_METHOD* meth;
- ENGINE* e;
-
- if(gost_id) return gost_id;
-
- /* see if configuration loaded gost implementation from other engine*/
- meth = EVP_PKEY_asn1_find_str(NULL, "gost2001", -1);
- if(meth) {
- EVP_PKEY_asn1_get0_info(&gost_id, NULL, NULL, NULL, NULL, meth);
- return gost_id;
- }
-
- /* see if engine can be loaded already */
- e = ENGINE_by_id("gost");
- if(!e) {
- /* load it ourself, in case statically linked */
- ENGINE_load_builtin_engines();
- ENGINE_load_dynamic();
- e = ENGINE_by_id("gost");
- }
- if(!e) {
- /* no gost engine in openssl */
- return 0;
- }
- if(!ENGINE_set_default(e, ENGINE_METHOD_ALL)) {
- ENGINE_finish(e);
- ENGINE_free(e);
- return 0;
- }
-
- meth = EVP_PKEY_asn1_find_str(&e, "gost2001", -1);
- if(!meth) {
- /* algo not found */
- ENGINE_finish(e);
- ENGINE_free(e);
- return 0;
- }
- EVP_PKEY_asn1_get0_info(&gost_id, NULL, NULL, NULL, NULL, meth);
- return gost_id;
-}
-int main(void) {
- EVP_MD_CTX* ctx;
- const EVP_MD* md;
- unsigned char digest[64]; /* its a 256-bit digest, so uses 32 bytes */
- const char* str = "Hello world";
- const unsigned char check[] = {
- 0x40 , 0xed , 0xf8 , 0x56 , 0x5a , 0xc5 , 0x36 , 0xe1 ,
- 0x33 , 0x7c , 0x7e , 0x87 , 0x62 , 0x1c , 0x42 , 0xe0 ,
- 0x17 , 0x1b , 0x5e , 0xce , 0xa8 , 0x46 , 0x65 , 0x4d ,
- 0x8d , 0x3e , 0x22 , 0x9b , 0xe1 , 0x30 , 0x19 , 0x9d
- };
- OPENSSL_config(NULL);
- (void)load_gost_id();
- md = EVP_get_digestbyname("md_gost94");
- if(!md) return 1;
- memset(digest, 0, sizeof(digest));
- ctx = EVP_MD_CTX_create();
- if(!ctx) return 2;
- if(!EVP_DigestInit_ex(ctx, md, NULL)) return 3;
- if(!EVP_DigestUpdate(ctx, str, 10)) return 4;
- if(!EVP_DigestFinal_ex(ctx, digest, NULL)) return 5;
- /* uncomment to see the hash calculated.
- {int i;
- for(i=0; i<32; i++)
- printf(" %2.2x", (int)digest[i]);
- printf("\n");}
- */
- if(memcmp(digest, check, sizeof(check)) != 0)
- return 6;
- return 0;
-}
-
-_ACEOF
-if ac_fn_c_try_run "$LINENO"
-then :
- eval "ac_cv_c_gost_works=yes"
-else $as_nop
- eval "ac_cv_c_gost_works=no"
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-CFLAGS="$BAKCFLAGS"
-else
-eval "ac_cv_c_gost_works=maybe"
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_gost_works" >&5
-printf "%s\n" "$ac_cv_c_gost_works" >&6; }
-
- if test "$ac_cv_c_gost_works" != no; then
- use_gost="yes"
-
-printf "%s\n" "#define USE_GOST 1" >>confdefs.h
-
- fi
- ;;
-esac
-fi
-# Check whether --enable-ecdsa was given.
-if test ${enable_ecdsa+y}
-then :
- enableval=$enable_ecdsa;
-fi
-
-use_ecdsa="no"
-case "$enable_ecdsa" in
- no)
- ;;
- *)
- if test $USE_NSS = "no" -a $USE_NETTLE = "no"; then
- ac_fn_c_check_func "$LINENO" "EVP_PKEY_fromdata" "ac_cv_func_EVP_PKEY_fromdata"
-if test "x$ac_cv_func_EVP_PKEY_fromdata" = xyes
-then :
-
- # with EVP_PKEY_fromdata, check if EC is not disabled
- ac_fn_check_decl "$LINENO" "OPENSSL_NO_EC" "ac_cv_have_decl_OPENSSL_NO_EC" "$ac_includes_default
-#include <openssl/evp.h>
-
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
-if test "x$ac_cv_have_decl_OPENSSL_NO_EC" = xyes
-then :
- as_fn_error $? "OpenSSL does not support ECDSA: please upgrade or rerun with --disable-ecdsa" "$LINENO" 5
-
-fi
-
-else $as_nop
-
- # without EVP_PKEY_fromdata, older openssl, check for support
- ac_fn_c_check_func "$LINENO" "ECDSA_sign" "ac_cv_func_ECDSA_sign"
-if test "x$ac_cv_func_ECDSA_sign" = xyes
-then :
-
-else $as_nop
- as_fn_error $? "OpenSSL does not support ECDSA: please upgrade or rerun with --disable-ecdsa" "$LINENO" 5
-fi
-
- ac_fn_c_check_func "$LINENO" "SHA384_Init" "ac_cv_func_SHA384_Init"
-if test "x$ac_cv_func_SHA384_Init" = xyes
-then :
-
-else $as_nop
- as_fn_error $? "OpenSSL does not support SHA384: please upgrade or rerun with --disable-ecdsa" "$LINENO" 5
-fi
-
-
-fi
-
- ac_fn_check_decl "$LINENO" "NID_X9_62_prime256v1" "ac_cv_have_decl_NID_X9_62_prime256v1" "$ac_includes_default
-#include <openssl/evp.h>
-
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
-if test "x$ac_cv_have_decl_NID_X9_62_prime256v1" = xyes
-then :
- ac_have_decl=1
-else $as_nop
- ac_have_decl=0
-fi
-printf "%s\n" "#define HAVE_DECL_NID_X9_62_PRIME256V1 $ac_have_decl" >>confdefs.h
-if test $ac_have_decl = 1
-then :
-
-else $as_nop
- as_fn_error $? "OpenSSL does not support the ECDSA curves: please upgrade or rerun with --disable-ecdsa" "$LINENO" 5
-fi
-ac_fn_check_decl "$LINENO" "NID_secp384r1" "ac_cv_have_decl_NID_secp384r1" "$ac_includes_default
-#include <openssl/evp.h>
-
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
-if test "x$ac_cv_have_decl_NID_secp384r1" = xyes
-then :
- ac_have_decl=1
-else $as_nop
- ac_have_decl=0
-fi
-printf "%s\n" "#define HAVE_DECL_NID_SECP384R1 $ac_have_decl" >>confdefs.h
-if test $ac_have_decl = 1
-then :
-
-else $as_nop
- as_fn_error $? "OpenSSL does not support the ECDSA curves: please upgrade or rerun with --disable-ecdsa" "$LINENO" 5
-fi
-
- # see if OPENSSL 1.0.0 or later (has EVP MD and Verify independency)
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if openssl supports SHA2 and ECDSA with EVP" >&5
-printf %s "checking if openssl supports SHA2 and ECDSA with EVP... " >&6; }
- if grep OPENSSL_VERSION_TEXT $ssldir_include/openssl/opensslv.h | grep "OpenSSL" >/dev/null; then
- if grep OPENSSL_VERSION_NUMBER $ssldir_include/openssl/opensslv.h | grep 0x0 >/dev/null; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-
-printf "%s\n" "#define USE_ECDSA_EVP_WORKAROUND 1" >>confdefs.h
-
- else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
- fi
- else
- # not OpenSSL, thus likely LibreSSL, which supports it
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
- fi
- fi
- # we now know we have ECDSA and the required curves.
-
-printf "%s\n" "#define USE_ECDSA 1" >>confdefs.h
-
- use_ecdsa="yes"
- ;;
-esac
-
-# Check whether --enable-dsa was given.
-if test ${enable_dsa+y}
-then :
- enableval=$enable_dsa;
-fi
-
-use_dsa="no"
-case "$enable_dsa" in
- yes)
- # detect if DSA is supported, and turn it off if not.
- if test $USE_NSS = "no" -a $USE_NETTLE = "no"; then
- ac_fn_c_check_func "$LINENO" "DSA_SIG_new" "ac_cv_func_DSA_SIG_new"
-if test "x$ac_cv_func_DSA_SIG_new" = xyes
-then :
-
- as_ac_Type=`printf "%s\n" "ac_cv_type_DSA_SIG*" | $as_tr_sh`
-ac_fn_c_check_type "$LINENO" "DSA_SIG*" "$as_ac_Type" "
-$ac_includes_default
-#ifdef HAVE_OPENSSL_ERR_H
-#include <openssl/err.h>
-#endif
-
-#ifdef HAVE_OPENSSL_RAND_H
-#include <openssl/rand.h>
-#endif
-
-#ifdef HAVE_OPENSSL_CONF_H
-#include <openssl/conf.h>
-#endif
-
-#ifdef HAVE_OPENSSL_ENGINE_H
-#include <openssl/engine.h>
-#endif
-
-"
-if eval test \"x\$"$as_ac_Type"\" = x"yes"
-then :
-
-
-printf "%s\n" "#define USE_DSA 1" >>confdefs.h
-
-
-else $as_nop
- if test "x$enable_dsa" = "xyes"; then as_fn_error $? "OpenSSL does not support DSA and you used --enable-dsa." "$LINENO" 5
- fi
-fi
-
-
-else $as_nop
- if test "x$enable_dsa" = "xyes"; then as_fn_error $? "OpenSSL does not support DSA and you used --enable-dsa." "$LINENO" 5
- fi
-fi
-
- else
-
-printf "%s\n" "#define USE_DSA 1" >>confdefs.h
-
- fi
- ;;
- *)
- # disable dsa by default, RFC 8624 section 3.1, validators MUST NOT
- # support DSA for DNSSEC Validation.
- ;;
-esac
-
-
-# Check whether --with-deprecate-rsa-1024 was given.
-if test ${with_deprecate_rsa_1024+y}
-then :
- withval=$with_deprecate_rsa_1024;
-fi
-
-if test "$with_deprecate_rsa_1024" = "yes"; then
-
-printf "%s\n" "#define DEPRECATE_RSA_1024 1" >>confdefs.h
-
-fi
-
-# Check whether --enable-ed25519 was given.
-if test ${enable_ed25519+y}
-then :
- enableval=$enable_ed25519;
-fi
-
-use_ed25519="no"
-case "$enable_ed25519" in
- no)
- ;;
- *)
- if test $USE_NSS = "no" -a $USE_NETTLE = "no"; then
- ac_fn_check_decl "$LINENO" "NID_ED25519" "ac_cv_have_decl_NID_ED25519" "$ac_includes_default
-#include <openssl/evp.h>
-
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
-if test "x$ac_cv_have_decl_NID_ED25519" = xyes
-then :
- ac_have_decl=1
-else $as_nop
- ac_have_decl=0
-fi
-printf "%s\n" "#define HAVE_DECL_NID_ED25519 $ac_have_decl" >>confdefs.h
-if test $ac_have_decl = 1
-then :
-
- use_ed25519="yes"
-
-else $as_nop
- if test "x$enable_ed25519" = "xyes"; then as_fn_error $? "OpenSSL does not support ED25519 and you used --enable-ed25519." "$LINENO" 5
- fi
-fi
-
- fi
- if test $USE_NETTLE = "yes"; then
- for ac_header in nettle/eddsa.h
-do :
- ac_fn_c_check_header_compile "$LINENO" "nettle/eddsa.h" "ac_cv_header_nettle_eddsa_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_nettle_eddsa_h" = xyes
-then :
- printf "%s\n" "#define HAVE_NETTLE_EDDSA_H 1" >>confdefs.h
- use_ed25519="yes"
-fi
-
-done
- fi
- if test $use_ed25519 = "yes"; then
-
-printf "%s\n" "#define USE_ED25519 1" >>confdefs.h
-
- fi
- ;;
-esac
-
-# Check whether --enable-ed448 was given.
-if test ${enable_ed448+y}
-then :
- enableval=$enable_ed448;
-fi
-
-use_ed448="no"
-case "$enable_ed448" in
- no)
- ;;
- *)
- if test $USE_NSS = "no" -a $USE_NETTLE = "no"; then
- ac_fn_check_decl "$LINENO" "NID_ED448" "ac_cv_have_decl_NID_ED448" "$ac_includes_default
-#include <openssl/evp.h>
-
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
-if test "x$ac_cv_have_decl_NID_ED448" = xyes
-then :
- ac_have_decl=1
-else $as_nop
- ac_have_decl=0
-fi
-printf "%s\n" "#define HAVE_DECL_NID_ED448 $ac_have_decl" >>confdefs.h
-if test $ac_have_decl = 1
-then :
-
- use_ed448="yes"
-
-else $as_nop
- if test "x$enable_ed448" = "xyes"; then as_fn_error $? "OpenSSL does not support ED448 and you used --enable-ed448." "$LINENO" 5
- fi
-fi
-
- fi
- if test $use_ed448 = "yes"; then
-
-printf "%s\n" "#define USE_ED448 1" >>confdefs.h
-
- fi
- ;;
-esac
-
-# Check whether --enable-event-api was given.
-if test ${enable_event_api+y}
-then :
- enableval=$enable_event_api;
-fi
-
-case "$enable_event_api" in
- yes)
- UNBOUND_EVENT_INSTALL=unbound-event-install
-
- UNBOUND_EVENT_UNINSTALL=unbound-event-uninstall
-
- ;;
- *)
- ;;
-esac
-
-# Check whether --enable-tfo-client was given.
-if test ${enable_tfo_client+y}
-then :
- enableval=$enable_tfo_client;
-fi
-
-case "$enable_tfo_client" in
- yes)
- case "$host_os" in
- linux*) ac_fn_check_decl "$LINENO" "MSG_FASTOPEN" "ac_cv_have_decl_MSG_FASTOPEN" "$ac_includes_default
-#include <netinet/tcp.h>
-
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
-if test "x$ac_cv_have_decl_MSG_FASTOPEN" = xyes
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Check the platform specific TFO kernel parameters are correctly configured to support client mode TFO" >&5
-printf "%s\n" "$as_me: WARNING: Check the platform specific TFO kernel parameters are correctly configured to support client mode TFO" >&2;}
-else $as_nop
- as_fn_error $? "TCP Fast Open is not available for client mode: please rerun without --enable-tfo-client" "$LINENO" 5
-fi
-
-printf "%s\n" "#define USE_MSG_FASTOPEN 1" >>confdefs.h
-
- ;;
- darwin*) ac_fn_check_decl "$LINENO" "CONNECT_RESUME_ON_READ_WRITE" "ac_cv_have_decl_CONNECT_RESUME_ON_READ_WRITE" "$ac_includes_default
-#include <sys/socket.h>
-
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
-if test "x$ac_cv_have_decl_CONNECT_RESUME_ON_READ_WRITE" = xyes
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Check the platform specific TFO kernel parameters are correctly configured to support client mode TFO" >&5
-printf "%s\n" "$as_me: WARNING: Check the platform specific TFO kernel parameters are correctly configured to support client mode TFO" >&2;}
-else $as_nop
- as_fn_error $? "TCP Fast Open is not available for client mode: please rerun without --enable-tfo-client" "$LINENO" 5
-fi
-
-printf "%s\n" "#define USE_OSX_MSG_FASTOPEN 1" >>confdefs.h
-
- ;;
- esac
- ;;
- no|*)
- ;;
-esac
-
-# Check whether --enable-tfo-server was given.
-if test ${enable_tfo_server+y}
-then :
- enableval=$enable_tfo_server;
-fi
-
-case "$enable_tfo_server" in
- yes)
- ac_fn_check_decl "$LINENO" "TCP_FASTOPEN" "ac_cv_have_decl_TCP_FASTOPEN" "$ac_includes_default
-#include <netinet/tcp.h>
-
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
-if test "x$ac_cv_have_decl_TCP_FASTOPEN" = xyes
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Check the platform specific TFO kernel parameters are correctly configured to support server mode TFO" >&5
-printf "%s\n" "$as_me: WARNING: Check the platform specific TFO kernel parameters are correctly configured to support server mode TFO" >&2;}
-else $as_nop
- as_fn_error $? "TCP Fast Open is not available for server mode: please rerun without --enable-tfo-server" "$LINENO" 5
-fi
-
-printf "%s\n" "#define USE_TCP_FASTOPEN 1" >>confdefs.h
-
- ;;
- no|*)
- ;;
-esac
-
-# check for libevent
-
-# Check whether --with-libevent was given.
-if test ${with_libevent+y}
-then :
- withval=$with_libevent;
-else $as_nop
- with_libevent="no"
-fi
-
-if test "x_$with_libevent" != x_no; then
-
-printf "%s\n" "#define USE_LIBEVENT 1" >>confdefs.h
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libevent" >&5
-printf %s "checking for libevent... " >&6; }
- if test "x_$with_libevent" = x_ -o "x_$with_libevent" = x_yes; then
- with_libevent="/usr/local /opt/local /usr/lib /usr/pkg /usr/sfw /usr"
- fi
- for dir in $with_libevent; do
- thedir="$dir"
- if test -f "$dir/include/event.h" -o -f "$dir/include/event2/event.h"; then
- found_libevent="yes"
- if test "$thedir" != "/usr"; then
- CPPFLAGS="$CPPFLAGS -I$thedir/include"
- fi
- break;
- fi
- done
- if test x_$found_libevent != x_yes; then
- if test -f "$dir/event.h" -a \( -f "$dir/libevent.la" -o -f "$dir/libev.la" \) ; then
- # libevent source directory
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found in $thedir" >&5
-printf "%s\n" "found in $thedir" >&6; }
- CPPFLAGS="$CPPFLAGS -I$thedir -I$thedir/include"
- BAK_LDFLAGS_SET="1"
- BAK_LDFLAGS="$LDFLAGS"
- # remove evdns from linking
- mkdir build >/dev/null 2>&1
- mkdir build/libevent >/dev/null 2>&1
- mkdir build/libevent/.libs >/dev/null 2>&1
- ev_files_o=`ls $thedir/*.o | grep -v evdns\.o | grep -v bufferevent_openssl\.o`
- ev_files_lo=`ls $thedir/*.lo | grep -v evdns\.lo | grep -v bufferevent_openssl\.lo`
- ev_files_libso=`ls $thedir/.libs/*.o | grep -v evdns\.o | grep -v bufferevent_openssl\.o`
- cp $ev_files_o build/libevent
- cp $ev_files_lo build/libevent
- cp $ev_files_libso build/libevent/.libs
- LATE_LDFLAGS="build/libevent/*.lo -lm"
- LDFLAGS="build/libevent/*.o $LDFLAGS -lm"
- else
- as_fn_error $? "Cannot find the libevent library in $with_libevent
-You can restart ./configure --with-libevent=no to use a builtin alternative.
-Please note that this alternative is not as capable as libevent when using
-large outgoing port ranges. " "$LINENO" 5
- fi
- else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found in $thedir" >&5
-printf "%s\n" "found in $thedir" >&6; }
- if test ! -f $thedir/lib/libevent.a -a ! -f $thedir/lib/libevent.so -a -d "$thedir/lib/event2"; then
- LDFLAGS="$LDFLAGS -L$thedir/lib/event2"
-
- if test "x$enable_rpath" = xyes; then
- if echo "$thedir/lib/event2" | grep "^/" >/dev/null; then
- RUNTIME_PATH="$RUNTIME_PATH -R$thedir/lib/event2"
- fi
- fi
-
- else
- if test "$thedir" != "/usr" -a "$thedir" != ""; then
- LDFLAGS="$LDFLAGS -L$thedir/lib"
-
- if test "x$enable_rpath" = xyes; then
- if echo "$thedir/lib" | grep "^/" >/dev/null; then
- RUNTIME_PATH="$RUNTIME_PATH -R$thedir/lib"
- fi
- fi
-
- fi
- fi
- fi
- # check for library used by libevent after 1.3c
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing clock_gettime" >&5
-printf %s "checking for library containing clock_gettime... " >&6; }
-if test ${ac_cv_search_clock_gettime+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_func_search_save_LIBS=$LIBS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-char clock_gettime ();
-int
-main (void)
-{
-return clock_gettime ();
- ;
- return 0;
-}
-_ACEOF
-for ac_lib in '' rt
-do
- if test -z "$ac_lib"; then
- ac_res="none required"
- else
- ac_res=-l$ac_lib
- LIBS="-l$ac_lib $ac_func_search_save_LIBS"
- fi
- if ac_fn_c_try_link "$LINENO"
-then :
- ac_cv_search_clock_gettime=$ac_res
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext
- if test ${ac_cv_search_clock_gettime+y}
-then :
- break
-fi
-done
-if test ${ac_cv_search_clock_gettime+y}
-then :
-
-else $as_nop
- ac_cv_search_clock_gettime=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_clock_gettime" >&5
-printf "%s\n" "$ac_cv_search_clock_gettime" >&6; }
-ac_res=$ac_cv_search_clock_gettime
-if test "$ac_res" != no
-then :
- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
-fi
-
-
- # is the event.h header libev or libevent?
- ac_fn_c_check_header_compile "$LINENO" "event.h" "ac_cv_header_event_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_event_h" = xyes
-then :
- printf "%s\n" "#define HAVE_EVENT_H 1" >>confdefs.h
-
-fi
-
- ac_fn_check_decl "$LINENO" "EV_VERSION_MAJOR" "ac_cv_have_decl_EV_VERSION_MAJOR" "$ac_includes_default
-#include <event.h>
-
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
-if test "x$ac_cv_have_decl_EV_VERSION_MAJOR" = xyes
-then :
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing event_set" >&5
-printf %s "checking for library containing event_set... " >&6; }
-if test ${ac_cv_search_event_set+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_func_search_save_LIBS=$LIBS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-char event_set ();
-int
-main (void)
-{
-return event_set ();
- ;
- return 0;
-}
-_ACEOF
-for ac_lib in '' ev
-do
- if test -z "$ac_lib"; then
- ac_res="none required"
- else
- ac_res=-l$ac_lib
- LIBS="-l$ac_lib $ac_func_search_save_LIBS"
- fi
- if ac_fn_c_try_link "$LINENO"
-then :
- ac_cv_search_event_set=$ac_res
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext
- if test ${ac_cv_search_event_set+y}
-then :
- break
-fi
-done
-if test ${ac_cv_search_event_set+y}
-then :
-
-else $as_nop
- ac_cv_search_event_set=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_event_set" >&5
-printf "%s\n" "$ac_cv_search_event_set" >&6; }
-ac_res=$ac_cv_search_event_set
-if test "$ac_res" != no
-then :
- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
-fi
-
-
-else $as_nop
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing event_set" >&5
-printf %s "checking for library containing event_set... " >&6; }
-if test ${ac_cv_search_event_set+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_func_search_save_LIBS=$LIBS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-char event_set ();
-int
-main (void)
-{
-return event_set ();
- ;
- return 0;
-}
-_ACEOF
-for ac_lib in '' event
-do
- if test -z "$ac_lib"; then
- ac_res="none required"
- else
- ac_res=-l$ac_lib
- LIBS="-l$ac_lib $ac_func_search_save_LIBS"
- fi
- if ac_fn_c_try_link "$LINENO"
-then :
- ac_cv_search_event_set=$ac_res
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext
- if test ${ac_cv_search_event_set+y}
-then :
- break
-fi
-done
-if test ${ac_cv_search_event_set+y}
-then :
-
-else $as_nop
- ac_cv_search_event_set=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_event_set" >&5
-printf "%s\n" "$ac_cv_search_event_set" >&6; }
-ac_res=$ac_cv_search_event_set
-if test "$ac_res" != no
-then :
- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
-fi
-
-
-fi
- ac_fn_c_check_func "$LINENO" "event_base_free" "ac_cv_func_event_base_free"
-if test "x$ac_cv_func_event_base_free" = xyes
-then :
- printf "%s\n" "#define HAVE_EVENT_BASE_FREE 1" >>confdefs.h
-
-fi
- # only in libevent 1.2 and later
- ac_fn_c_check_func "$LINENO" "event_base_once" "ac_cv_func_event_base_once"
-if test "x$ac_cv_func_event_base_once" = xyes
-then :
- printf "%s\n" "#define HAVE_EVENT_BASE_ONCE 1" >>confdefs.h
-
-fi
- # only in libevent 1.4.1 and later
- ac_fn_c_check_func "$LINENO" "event_base_new" "ac_cv_func_event_base_new"
-if test "x$ac_cv_func_event_base_new" = xyes
-then :
- printf "%s\n" "#define HAVE_EVENT_BASE_NEW 1" >>confdefs.h
-
-fi
- # only in libevent 1.4.1 and later
- ac_fn_c_check_func "$LINENO" "event_base_get_method" "ac_cv_func_event_base_get_method"
-if test "x$ac_cv_func_event_base_get_method" = xyes
-then :
- printf "%s\n" "#define HAVE_EVENT_BASE_GET_METHOD 1" >>confdefs.h
-
-fi
- # only in libevent 1.4.3 and later
- ac_fn_c_check_func "$LINENO" "ev_loop" "ac_cv_func_ev_loop"
-if test "x$ac_cv_func_ev_loop" = xyes
-then :
- printf "%s\n" "#define HAVE_EV_LOOP 1" >>confdefs.h
-
-fi
- # only in libev. (tested on 3.51)
- ac_fn_c_check_func "$LINENO" "ev_default_loop" "ac_cv_func_ev_default_loop"
-if test "x$ac_cv_func_ev_default_loop" = xyes
-then :
- printf "%s\n" "#define HAVE_EV_DEFAULT_LOOP 1" >>confdefs.h
-
-fi
- # only in libev. (tested on 4.00)
- ac_fn_c_check_func "$LINENO" "event_assign" "ac_cv_func_event_assign"
-if test "x$ac_cv_func_event_assign" = xyes
-then :
- printf "%s\n" "#define HAVE_EVENT_ASSIGN 1" >>confdefs.h
-
-fi
- # in libevent, for thread-safety
- ac_fn_check_decl "$LINENO" "evsignal_assign" "ac_cv_have_decl_evsignal_assign" "$ac_includes_default
-#ifdef HAVE_EVENT_H
-# include <event.h>
-#else
-# include \"event2/event.h\"
-#endif
-
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
-if test "x$ac_cv_have_decl_evsignal_assign" = xyes
-then :
- ac_have_decl=1
-else $as_nop
- ac_have_decl=0
-fi
-printf "%s\n" "#define HAVE_DECL_EVSIGNAL_ASSIGN $ac_have_decl" >>confdefs.h
-
- PC_LIBEVENT_DEPENDENCY="libevent"
-
- if test -n "$BAK_LDFLAGS_SET"; then
- LDFLAGS="$BAK_LDFLAGS"
- fi
-else
-
-printf "%s\n" "#define USE_MINI_EVENT 1" >>confdefs.h
-
-fi
-
-# check for libexpat
-
-# Check whether --with-libexpat was given.
-if test ${with_libexpat+y}
-then :
- withval=$with_libexpat;
-else $as_nop
- withval="/usr/local /opt/local /usr/lib /usr/pkg /usr/sfw /usr"
-fi
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libexpat" >&5
-printf %s "checking for libexpat... " >&6; }
-found_libexpat="no"
-for dir in $withval ; do
- if test -f "$dir/include/expat.h"; then
- found_libexpat="yes"
- if test "$dir" != "/usr"; then
- CPPFLAGS="$CPPFLAGS -I$dir/include"
- LDFLAGS="$LDFLAGS -L$dir/lib"
- fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found in $dir" >&5
-printf "%s\n" "found in $dir" >&6; }
- break;
- fi
-done
-if test x_$found_libexpat != x_yes; then
- as_fn_error $? "Could not find libexpat, expat.h" "$LINENO" 5
-fi
-ac_fn_c_check_header_compile "$LINENO" "expat.h" "ac_cv_header_expat_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_expat_h" = xyes
-then :
- printf "%s\n" "#define HAVE_EXPAT_H 1" >>confdefs.h
-
-fi
-
-ac_fn_check_decl "$LINENO" "XML_StopParser" "ac_cv_have_decl_XML_StopParser" "$ac_includes_default
-#include <expat.h>
-
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
-if test "x$ac_cv_have_decl_XML_StopParser" = xyes
-then :
- ac_have_decl=1
-else $as_nop
- ac_have_decl=0
-fi
-printf "%s\n" "#define HAVE_DECL_XML_STOPPARSER $ac_have_decl" >>confdefs.h
-
-
-# hiredis (redis C client for cachedb)
-
-# Check whether --with-libhiredis was given.
-if test ${with_libhiredis+y}
-then :
- withval=$with_libhiredis;
-else $as_nop
- withval="no"
-fi
-
-found_libhiredis="no"
-if test x_$withval = x_yes -o x_$withval != x_no; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libhiredis" >&5
-printf %s "checking for libhiredis... " >&6; }
- if test x_$withval = x_ -o x_$withval = x_yes; then
- withval="/usr/local /opt/local /usr/lib /usr/pkg /usr/sfw /usr"
- fi
- for dir in $withval ; do
- if test -f "$dir/include/hiredis/hiredis.h"; then
- found_libhiredis="yes"
- if test "$dir" != "/usr"; then
- CPPFLAGS="$CPPFLAGS -I$dir/include"
- LDFLAGS="$LDFLAGS -L$dir/lib"
- fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found in $dir" >&5
-printf "%s\n" "found in $dir" >&6; }
-
-printf "%s\n" "#define USE_REDIS 1" >>confdefs.h
-
- LIBS="$LIBS -lhiredis"
- break;
- fi
- done
- if test x_$found_libhiredis != x_yes; then
- as_fn_error $? "Could not find libhiredis, hiredis.h" "$LINENO" 5
- fi
- ac_fn_c_check_header_compile "$LINENO" "hiredis/hiredis.h" "ac_cv_header_hiredis_hiredis_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_hiredis_hiredis_h" = xyes
-then :
- printf "%s\n" "#define HAVE_HIREDIS_HIREDIS_H 1" >>confdefs.h
-
-fi
-
- ac_fn_check_decl "$LINENO" "redisConnect" "ac_cv_have_decl_redisConnect" "$ac_includes_default
- #include <hiredis/hiredis.h>
-
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
-if test "x$ac_cv_have_decl_redisConnect" = xyes
-then :
- ac_have_decl=1
-else $as_nop
- ac_have_decl=0
-fi
-printf "%s\n" "#define HAVE_DECL_REDISCONNECT $ac_have_decl" >>confdefs.h
-
-fi
-
-# nghttp2
-
-# Check whether --with-libnghttp2 was given.
-if test ${with_libnghttp2+y}
-then :
- withval=$with_libnghttp2;
-else $as_nop
- withval="no"
-fi
-
-found_libnghttp2="no"
-if test x_$withval = x_yes -o x_$withval != x_no; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libnghttp2" >&5
-printf %s "checking for libnghttp2... " >&6; }
- if test x_$withval = x_ -o x_$withval = x_yes; then
- withval="/usr/local /opt/local /usr/lib /usr/pkg /usr/sfw /usr"
- fi
- for dir in $withval ; do
- if test -f "$dir/include/nghttp2/nghttp2.h"; then
- found_libnghttp2="yes"
- if test "$dir" != "/usr"; then
- CPPFLAGS="$CPPFLAGS -I$dir/include"
- LDFLAGS="$LDFLAGS -L$dir/lib"
- fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found in $dir" >&5
-printf "%s\n" "found in $dir" >&6; }
-
-printf "%s\n" "#define HAVE_NGHTTP2 1" >>confdefs.h
-
- LIBS="$LIBS -lnghttp2"
- break;
- fi
- done
- if test x_$found_libnghttp2 != x_yes; then
- as_fn_error $? "Could not find libnghttp2, nghttp2.h" "$LINENO" 5
- fi
- ac_fn_c_check_header_compile "$LINENO" "nghttp2/nghttp2.h" "ac_cv_header_nghttp2_nghttp2_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_nghttp2_nghttp2_h" = xyes
-then :
- printf "%s\n" "#define HAVE_NGHTTP2_NGHTTP2_H 1" >>confdefs.h
-
-fi
-
- ac_fn_check_decl "$LINENO" "nghttp2_session_server_new" "ac_cv_have_decl_nghttp2_session_server_new" "$ac_includes_default
- #include <nghttp2/nghttp2.h>
-
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
-if test "x$ac_cv_have_decl_nghttp2_session_server_new" = xyes
-then :
- ac_have_decl=1
-else $as_nop
- ac_have_decl=0
-fi
-printf "%s\n" "#define HAVE_DECL_NGHTTP2_SESSION_SERVER_NEW $ac_have_decl" >>confdefs.h
-
-fi
-
-# ngtcp2
-
-# Check whether --with-libngtcp2 was given.
-if test ${with_libngtcp2+y}
-then :
- withval=$with_libngtcp2;
-else $as_nop
- withval="no"
-fi
-
-found_libngtcp2="no"
-if test x_$withval = x_yes -o x_$withval != x_no; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libngtcp2" >&5
-printf %s "checking for libngtcp2... " >&6; }
- if test x_$withval = x_ -o x_$withval = x_yes; then
- withval="/usr/local /opt/local /usr/lib /usr/pkg /usr/sfw /usr"
- fi
- for dir in $withval ; do
- if test -f "$dir/include/ngtcp2/ngtcp2.h"; then
- found_libngtcp2="yes"
- if test "$dir" != "/usr"; then
- CPPFLAGS="$CPPFLAGS -I$dir/include"
- LDFLAGS="$LDFLAGS -L$dir/lib"
- fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found in $dir" >&5
-printf "%s\n" "found in $dir" >&6; }
-
-printf "%s\n" "#define HAVE_NGTCP2 1" >>confdefs.h
-
- LIBS="$LIBS -lngtcp2"
- break;
- fi
- done
- if test x_$found_libngtcp2 != x_yes; then
- as_fn_error $? "Could not find libngtcp2, ngtcp2.h" "$LINENO" 5
- fi
- ac_fn_c_check_header_compile "$LINENO" "ngtcp2/ngtcp2.h" "ac_cv_header_ngtcp2_ngtcp2_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_ngtcp2_ngtcp2_h" = xyes
-then :
- printf "%s\n" "#define HAVE_NGTCP2_NGTCP2_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "ngtcp2/ngtcp2_crypto_ossl.h" "ac_cv_header_ngtcp2_ngtcp2_crypto_ossl_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_ngtcp2_ngtcp2_crypto_ossl_h" = xyes
-then :
- printf "%s\n" "#define HAVE_NGTCP2_NGTCP2_CRYPTO_OSSL_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "ngtcp2/ngtcp2_crypto_openssl.h" "ac_cv_header_ngtcp2_ngtcp2_crypto_openssl_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_ngtcp2_ngtcp2_crypto_openssl_h" = xyes
-then :
- printf "%s\n" "#define HAVE_NGTCP2_NGTCP2_CRYPTO_OPENSSL_H 1" >>confdefs.h
-
-fi
-ac_fn_c_check_header_compile "$LINENO" "ngtcp2/ngtcp2_crypto_quictls.h" "ac_cv_header_ngtcp2_ngtcp2_crypto_quictls_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_ngtcp2_ngtcp2_crypto_quictls_h" = xyes
-then :
- printf "%s\n" "#define HAVE_NGTCP2_NGTCP2_CRYPTO_QUICTLS_H 1" >>confdefs.h
-
-fi
-
- ac_fn_check_decl "$LINENO" "ngtcp2_conn_server_new" "ac_cv_have_decl_ngtcp2_conn_server_new" "$ac_includes_default
- #include <ngtcp2/ngtcp2.h>
-
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
-if test "x$ac_cv_have_decl_ngtcp2_conn_server_new" = xyes
-then :
- ac_have_decl=1
-else $as_nop
- ac_have_decl=0
-fi
-printf "%s\n" "#define HAVE_DECL_NGTCP2_CONN_SERVER_NEW $ac_have_decl" >>confdefs.h
-
- ac_fn_check_decl "$LINENO" "ngtcp2_crypto_encrypt_cb" "ac_cv_have_decl_ngtcp2_crypto_encrypt_cb" "$ac_includes_default
- #include <ngtcp2/ngtcp2_crypto.h>
-
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
-if test "x$ac_cv_have_decl_ngtcp2_crypto_encrypt_cb" = xyes
-then :
- ac_have_decl=1
-else $as_nop
- ac_have_decl=0
-fi
-printf "%s\n" "#define HAVE_DECL_NGTCP2_CRYPTO_ENCRYPT_CB $ac_have_decl" >>confdefs.h
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ngtcp2_crypto_encrypt_cb in -lngtcp2_crypto_ossl" >&5
-printf %s "checking for ngtcp2_crypto_encrypt_cb in -lngtcp2_crypto_ossl... " >&6; }
-if test ${ac_cv_lib_ngtcp2_crypto_ossl_ngtcp2_crypto_encrypt_cb+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lngtcp2_crypto_ossl $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-char ngtcp2_crypto_encrypt_cb ();
-int
-main (void)
-{
-return ngtcp2_crypto_encrypt_cb ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
- ac_cv_lib_ngtcp2_crypto_ossl_ngtcp2_crypto_encrypt_cb=yes
-else $as_nop
- ac_cv_lib_ngtcp2_crypto_ossl_ngtcp2_crypto_encrypt_cb=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ngtcp2_crypto_ossl_ngtcp2_crypto_encrypt_cb" >&5
-printf "%s\n" "$ac_cv_lib_ngtcp2_crypto_ossl_ngtcp2_crypto_encrypt_cb" >&6; }
-if test "x$ac_cv_lib_ngtcp2_crypto_ossl_ngtcp2_crypto_encrypt_cb" = xyes
-then :
-
- LIBS="$LIBS -lngtcp2_crypto_ossl"
-
-printf "%s\n" "#define USE_NGTCP2_CRYPTO_OSSL 1" >>confdefs.h
-
-
-else $as_nop
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ngtcp2_crypto_encrypt_cb in -lngtcp2_crypto_openssl" >&5
-printf %s "checking for ngtcp2_crypto_encrypt_cb in -lngtcp2_crypto_openssl... " >&6; }
-if test ${ac_cv_lib_ngtcp2_crypto_openssl_ngtcp2_crypto_encrypt_cb+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lngtcp2_crypto_openssl $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-char ngtcp2_crypto_encrypt_cb ();
-int
-main (void)
-{
-return ngtcp2_crypto_encrypt_cb ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
- ac_cv_lib_ngtcp2_crypto_openssl_ngtcp2_crypto_encrypt_cb=yes
-else $as_nop
- ac_cv_lib_ngtcp2_crypto_openssl_ngtcp2_crypto_encrypt_cb=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ngtcp2_crypto_openssl_ngtcp2_crypto_encrypt_cb" >&5
-printf "%s\n" "$ac_cv_lib_ngtcp2_crypto_openssl_ngtcp2_crypto_encrypt_cb" >&6; }
-if test "x$ac_cv_lib_ngtcp2_crypto_openssl_ngtcp2_crypto_encrypt_cb" = xyes
-then :
- LIBS="$LIBS -lngtcp2_crypto_openssl"
-else $as_nop
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ngtcp2_crypto_encrypt_cb in -lngtcp2_crypto_quictls" >&5
-printf %s "checking for ngtcp2_crypto_encrypt_cb in -lngtcp2_crypto_quictls... " >&6; }
-if test ${ac_cv_lib_ngtcp2_crypto_quictls_ngtcp2_crypto_encrypt_cb+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lngtcp2_crypto_quictls $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-char ngtcp2_crypto_encrypt_cb ();
-int
-main (void)
-{
-return ngtcp2_crypto_encrypt_cb ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
- ac_cv_lib_ngtcp2_crypto_quictls_ngtcp2_crypto_encrypt_cb=yes
-else $as_nop
- ac_cv_lib_ngtcp2_crypto_quictls_ngtcp2_crypto_encrypt_cb=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ngtcp2_crypto_quictls_ngtcp2_crypto_encrypt_cb" >&5
-printf "%s\n" "$ac_cv_lib_ngtcp2_crypto_quictls_ngtcp2_crypto_encrypt_cb" >&6; }
-if test "x$ac_cv_lib_ngtcp2_crypto_quictls_ngtcp2_crypto_encrypt_cb" = xyes
-then :
- LIBS="$LIBS -lngtcp2_crypto_quictls"
-fi
-
-
-fi
-
-
-fi
-
- ac_fn_c_check_func "$LINENO" "ngtcp2_crypto_encrypt_cb" "ac_cv_func_ngtcp2_crypto_encrypt_cb"
-if test "x$ac_cv_func_ngtcp2_crypto_encrypt_cb" = xyes
-then :
- printf "%s\n" "#define HAVE_NGTCP2_CRYPTO_ENCRYPT_CB 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "ngtcp2_ccerr_default" "ac_cv_func_ngtcp2_ccerr_default"
-if test "x$ac_cv_func_ngtcp2_ccerr_default" = xyes
-then :
- printf "%s\n" "#define HAVE_NGTCP2_CCERR_DEFAULT 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "ngtcp2_conn_in_closing_period" "ac_cv_func_ngtcp2_conn_in_closing_period"
-if test "x$ac_cv_func_ngtcp2_conn_in_closing_period" = xyes
-then :
- printf "%s\n" "#define HAVE_NGTCP2_CONN_IN_CLOSING_PERIOD 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "ngtcp2_conn_in_draining_period" "ac_cv_func_ngtcp2_conn_in_draining_period"
-if test "x$ac_cv_func_ngtcp2_conn_in_draining_period" = xyes
-then :
- printf "%s\n" "#define HAVE_NGTCP2_CONN_IN_DRAINING_PERIOD 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "ngtcp2_conn_get_max_local_streams_uni" "ac_cv_func_ngtcp2_conn_get_max_local_streams_uni"
-if test "x$ac_cv_func_ngtcp2_conn_get_max_local_streams_uni" = xyes
-then :
- printf "%s\n" "#define HAVE_NGTCP2_CONN_GET_MAX_LOCAL_STREAMS_UNI 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "ngtcp2_crypto_quictls_from_ossl_encryption_level" "ac_cv_func_ngtcp2_crypto_quictls_from_ossl_encryption_level"
-if test "x$ac_cv_func_ngtcp2_crypto_quictls_from_ossl_encryption_level" = xyes
-then :
- printf "%s\n" "#define HAVE_NGTCP2_CRYPTO_QUICTLS_FROM_OSSL_ENCRYPTION_LEVEL 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "ngtcp2_crypto_quictls_configure_server_context" "ac_cv_func_ngtcp2_crypto_quictls_configure_server_context"
-if test "x$ac_cv_func_ngtcp2_crypto_quictls_configure_server_context" = xyes
-then :
- printf "%s\n" "#define HAVE_NGTCP2_CRYPTO_QUICTLS_CONFIGURE_SERVER_CONTEXT 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "ngtcp2_crypto_quictls_configure_client_context" "ac_cv_func_ngtcp2_crypto_quictls_configure_client_context"
-if test "x$ac_cv_func_ngtcp2_crypto_quictls_configure_client_context" = xyes
-then :
- printf "%s\n" "#define HAVE_NGTCP2_CRYPTO_QUICTLS_CONFIGURE_CLIENT_CONTEXT 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "ngtcp2_crypto_quictls_init" "ac_cv_func_ngtcp2_crypto_quictls_init"
-if test "x$ac_cv_func_ngtcp2_crypto_quictls_init" = xyes
-then :
- printf "%s\n" "#define HAVE_NGTCP2_CRYPTO_QUICTLS_INIT 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "ngtcp2_conn_get_num_scid" "ac_cv_func_ngtcp2_conn_get_num_scid"
-if test "x$ac_cv_func_ngtcp2_conn_get_num_scid" = xyes
-then :
- printf "%s\n" "#define HAVE_NGTCP2_CONN_GET_NUM_SCID 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "ngtcp2_conn_tls_early_data_rejected" "ac_cv_func_ngtcp2_conn_tls_early_data_rejected"
-if test "x$ac_cv_func_ngtcp2_conn_tls_early_data_rejected" = xyes
-then :
- printf "%s\n" "#define HAVE_NGTCP2_CONN_TLS_EARLY_DATA_REJECTED 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "ngtcp2_conn_encode_0rtt_transport_params" "ac_cv_func_ngtcp2_conn_encode_0rtt_transport_params"
-if test "x$ac_cv_func_ngtcp2_conn_encode_0rtt_transport_params" = xyes
-then :
- printf "%s\n" "#define HAVE_NGTCP2_CONN_ENCODE_0RTT_TRANSPORT_PARAMS 1" >>confdefs.h
-
-fi
-
-
- # these check_funcs need -lssl
- BAKLIBS="$LIBS"
- LIBS="-lssl $LIBS"
-
- for ac_func in SSL_is_quic
-do :
- ac_fn_c_check_func "$LINENO" "SSL_is_quic" "ac_cv_func_SSL_is_quic"
-if test "x$ac_cv_func_SSL_is_quic" = xyes
-then :
- printf "%s\n" "#define HAVE_SSL_IS_QUIC 1" >>confdefs.h
-
-else $as_nop
- as_fn_error $? "No QUIC support detected in OpenSSL. Need OpenSSL version with QUIC support to enable DNS over QUIC with libngtcp2." "$LINENO" 5
-fi
-
-done
- LIBS="$BAKLIBS"
-
- ac_fn_c_check_type "$LINENO" "struct ngtcp2_version_cid" "ac_cv_type_struct_ngtcp2_version_cid" "$ac_includes_default
- #include <ngtcp2/ngtcp2.h>
-
-"
-if test "x$ac_cv_type_struct_ngtcp2_version_cid" = xyes
-then :
-
-printf "%s\n" "#define HAVE_STRUCT_NGTCP2_VERSION_CID 1" >>confdefs.h
-
-
-fi
-ac_fn_c_check_type "$LINENO" "ngtcp2_encryption_level" "ac_cv_type_ngtcp2_encryption_level" "$ac_includes_default
- #include <ngtcp2/ngtcp2.h>
-
-"
-if test "x$ac_cv_type_ngtcp2_encryption_level" = xyes
-then :
-
-printf "%s\n" "#define HAVE_NGTCP2_ENCRYPTION_LEVEL 1" >>confdefs.h
-
-
-fi
-
- ac_fn_c_check_member "$LINENO" "struct ngtcp2_pkt_hd" "tokenlen" "ac_cv_member_struct_ngtcp2_pkt_hd_tokenlen" "$ac_includes_default
- #include <ngtcp2/ngtcp2.h>
-
-"
-if test "x$ac_cv_member_struct_ngtcp2_pkt_hd_tokenlen" = xyes
-then :
-
-printf "%s\n" "#define HAVE_STRUCT_NGTCP2_PKT_HD_TOKENLEN 1" >>confdefs.h
-
-
-fi
-ac_fn_c_check_member "$LINENO" "struct ngtcp2_settings" "tokenlen" "ac_cv_member_struct_ngtcp2_settings_tokenlen" "$ac_includes_default
- #include <ngtcp2/ngtcp2.h>
-
-"
-if test "x$ac_cv_member_struct_ngtcp2_settings_tokenlen" = xyes
-then :
-
-printf "%s\n" "#define HAVE_STRUCT_NGTCP2_SETTINGS_TOKENLEN 1" >>confdefs.h
-
-
-fi
-ac_fn_c_check_member "$LINENO" "struct ngtcp2_settings" "max_tx_udp_payload_size" "ac_cv_member_struct_ngtcp2_settings_max_tx_udp_payload_size" "$ac_includes_default
- #include <ngtcp2/ngtcp2.h>
-
-"
-if test "x$ac_cv_member_struct_ngtcp2_settings_max_tx_udp_payload_size" = xyes
-then :
-
-printf "%s\n" "#define HAVE_STRUCT_NGTCP2_SETTINGS_MAX_TX_UDP_PAYLOAD_SIZE 1" >>confdefs.h
-
-
-fi
-ac_fn_c_check_member "$LINENO" "struct ngtcp2_transport_params" "original_dcid_present" "ac_cv_member_struct_ngtcp2_transport_params_original_dcid_present" "$ac_includes_default
- #include <ngtcp2/ngtcp2.h>
-
-"
-if test "x$ac_cv_member_struct_ngtcp2_transport_params_original_dcid_present" = xyes
-then :
-
-printf "%s\n" "#define HAVE_STRUCT_NGTCP2_TRANSPORT_PARAMS_ORIGINAL_DCID_PRESENT 1" >>confdefs.h
-
-
-fi
-
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ngtcp2_conn_shutdown_stream has 4 arguments" >&5
-printf %s "checking whether ngtcp2_conn_shutdown_stream has 4 arguments... " >&6; }
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$ac_includes_default
-#include <ngtcp2/ngtcp2.h>
-
-int
-main (void)
-{
-
- (void)ngtcp2_conn_shutdown_stream(NULL, 0, 0, 0);
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-
-printf "%s\n" "#define HAVE_NGTCP2_CONN_SHUTDOWN_STREAM4 1" >>confdefs.h
-
-
-else $as_nop
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-
-fi
-
-# set static linking for uninstalled libraries if requested
-
-staticexe=""
-# Check whether --enable-static-exe was given.
-if test ${enable_static_exe+y}
-then :
- enableval=$enable_static_exe;
-fi
-
-if test x_$enable_static_exe = x_yes; then
- staticexe="-static"
- if test "$on_mingw" = yes; then
- staticexe="-all-static"
- # for static compile, include gdi32 and zlib here.
- if echo "$LIBS" | grep 'lgdi32' >/dev/null; then
- :
- else
- LIBS="$LIBS -lgdi32"
- fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for compress in -lz" >&5
-printf %s "checking for compress in -lz... " >&6; }
-if test ${ac_cv_lib_z_compress+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lz $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-char compress ();
-int
-main (void)
-{
-return compress ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
- ac_cv_lib_z_compress=yes
-else $as_nop
- ac_cv_lib_z_compress=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_compress" >&5
-printf "%s\n" "$ac_cv_lib_z_compress" >&6; }
-if test "x$ac_cv_lib_z_compress" = xyes
-then :
- LIBS="$LIBS -lz"
-fi
-
- if echo "$LIBS" | grep -e "libssp.a" -e "lssp" >/dev/null; then
- :
- else
- LIBS="$LIBS -l:libssp.a"
- fi
- fi
-fi
-
-# set full static linking if requested
-# Check whether --enable-fully-static was given.
-if test ${enable_fully_static+y}
-then :
- enableval=$enable_fully_static;
-fi
-
-if test x_$enable_fully_static = x_yes; then
- staticexe="-all-static"
- if test "$on_mingw" = yes; then
- # for static compile, include gdi32 and zlib here.
- if echo $LIBS | grep 'lgdi32' >/dev/null; then
- :
- else
- LIBS="$LIBS -lgdi32"
- fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for compress in -lz" >&5
-printf %s "checking for compress in -lz... " >&6; }
-if test ${ac_cv_lib_z_compress+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lz $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-char compress ();
-int
-main (void)
-{
-return compress ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
- ac_cv_lib_z_compress=yes
-else $as_nop
- ac_cv_lib_z_compress=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_compress" >&5
-printf "%s\n" "$ac_cv_lib_z_compress" >&6; }
-if test "x$ac_cv_lib_z_compress" = xyes
-then :
- LIBS="$LIBS -lz"
-fi
-
- if echo "$LIBS" | grep -e "libssp.a" -e "lssp" >/dev/null; then
- :
- else
- LIBS="$LIBS -l:libssp.a"
- fi
- fi
-fi
-
-# set lock checking if requested
-# Check whether --enable-lock_checks was given.
-if test ${enable_lock_checks+y}
-then :
- enableval=$enable_lock_checks;
-fi
-
-if test x_$enable_lock_checks = x_yes; then
-
-printf "%s\n" "#define ENABLE_LOCK_CHECKS 1" >>confdefs.h
-
- CHECKLOCK_OBJ="checklocks.lo"
-
-fi
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for getaddrinfo" >&5
-printf %s "checking for getaddrinfo... " >&6; }
-ac_cv_func_getaddrinfo=no
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-char* getaddrinfo();
-char* (*f) () = getaddrinfo;
-#ifdef __cplusplus
-}
-#endif
-int main(void) {
- ;
- return 0;
-}
-
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
- ac_cv_func_getaddrinfo="yes"
-if test "$ac_cv_header_windows_h" = "yes"; then
-
-printf "%s\n" "#define USE_WINSOCK 1" >>confdefs.h
-
- USE_WINSOCK="1"
- if echo "$LIBS" | grep 'lws2_32' >/dev/null; then
- :
- else
- LIBS="$LIBS -lws2_32"
- fi
-fi
-
-else $as_nop
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-#ifdef HAVE_WS2TCPIP_H
-#include <ws2tcpip.h>
-#endif
-
-int
-main (void)
-{
-
- (void)getaddrinfo(NULL, NULL, NULL, NULL);
-
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
-
-ac_cv_func_getaddrinfo="yes"
-
-printf "%s\n" "#define USE_WINSOCK 1" >>confdefs.h
-
-USE_WINSOCK="1"
-
-else $as_nop
- ORIGLIBS="$LIBS"
-LIBS="$LIBS -lws2_32"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-#ifdef HAVE_WS2TCPIP_H
-#include <ws2tcpip.h>
-#endif
-
-int
-main (void)
-{
-
- (void)getaddrinfo(NULL, NULL, NULL, NULL);
-
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
-
-ac_cv_func_getaddrinfo="yes"
-
-printf "%s\n" "#define USE_WINSOCK 1" >>confdefs.h
-
-USE_WINSOCK="1"
-
-else $as_nop
-
-ac_cv_func_getaddrinfo="no"
-LIBS="$ORIGLIBS"
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_getaddrinfo" >&5
-printf "%s\n" "$ac_cv_func_getaddrinfo" >&6; }
-if test $ac_cv_func_getaddrinfo = yes; then
-
-printf "%s\n" "#define HAVE_GETADDRINFO 1" >>confdefs.h
-
-fi
-
-if test "$USE_WINSOCK" = 1; then
-
-printf "%s\n" "#define UB_ON_WINDOWS 1" >>confdefs.h
-
- ac_fn_c_check_header_compile "$LINENO" "iphlpapi.h" "ac_cv_header_iphlpapi_h" "$ac_includes_default
-#include <windows.h>
-
-"
-if test "x$ac_cv_header_iphlpapi_h" = xyes
-then :
- printf "%s\n" "#define HAVE_IPHLPAPI_H 1" >>confdefs.h
-
-fi
-
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}windres", so it can be a program name with args.
-set dummy ${ac_tool_prefix}windres; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_WINDRES+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$WINDRES"; then
- ac_cv_prog_WINDRES="$WINDRES" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_WINDRES="${ac_tool_prefix}windres"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-WINDRES=$ac_cv_prog_WINDRES
-if test -n "$WINDRES"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $WINDRES" >&5
-printf "%s\n" "$WINDRES" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_WINDRES"; then
- ac_ct_WINDRES=$WINDRES
- # Extract the first word of "windres", so it can be a program name with args.
-set dummy windres; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_prog_ac_ct_WINDRES+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- if test -n "$ac_ct_WINDRES"; then
- ac_cv_prog_ac_ct_WINDRES="$ac_ct_WINDRES" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_WINDRES="windres"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_WINDRES=$ac_cv_prog_ac_ct_WINDRES
-if test -n "$ac_ct_WINDRES"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_WINDRES" >&5
-printf "%s\n" "$ac_ct_WINDRES" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
- if test "x$ac_ct_WINDRES" = x; then
- WINDRES=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- WINDRES=$ac_ct_WINDRES
- fi
-else
- WINDRES="$ac_cv_prog_WINDRES"
-fi
-
- if echo "$LIBS" | grep crypt32 >/dev/null; then
- LIBS="$LIBS -liphlpapi"
- else
- LIBS="$LIBS -liphlpapi -lcrypt32"
- fi
- WINAPPS="unbound-service-install.exe unbound-service-remove.exe anchor-update.exe"
-
- WIN_DAEMON_SRC="winrc/win_svc.c winrc/w_inst.c"
-
- WIN_DAEMON_OBJ="win_svc.lo w_inst.lo"
-
- WIN_DAEMON_OBJ_LINK="rsrc_unbound.o"
-
- WIN_HOST_OBJ_LINK="rsrc_unbound_host.o"
-
- WIN_UBANCHOR_OBJ_LINK="rsrc_unbound_anchor.o log.lo locks.lo"
-
- WIN_CONTROL_OBJ_LINK="rsrc_unbound_control.o"
-
- WIN_CHECKCONF_OBJ_LINK="rsrc_unbound_checkconf.o"
-
-
-printf "%s\n" "#define __USE_MINGW_ANSI_STDIO 1" >>confdefs.h
-
-fi
-if test $ac_cv_func_getaddrinfo = no; then
- case " $LIBOBJS " in
- *" fake-rfc2553.$ac_objext "* ) ;;
- *) LIBOBJS="$LIBOBJS fake-rfc2553.$ac_objext"
- ;;
-esac
-
-fi
-# check after getaddrinfo for its libraries
-
-# check ioctlsocket
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ioctlsocket" >&5
-printf %s "checking for ioctlsocket... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-#ifdef HAVE_WINSOCK2_H
-#include <winsock2.h>
-#endif
-
-int
-main (void)
-{
-
- (void)ioctlsocket(0, 0, NULL);
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-
-printf "%s\n" "#define HAVE_IOCTLSOCKET 1" >>confdefs.h
-
-
-else $as_nop
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
-
-
-# see if daemon(3) exists, and if it is deprecated.
-ac_fn_c_check_func "$LINENO" "daemon" "ac_cv_func_daemon"
-if test "x$ac_cv_func_daemon" = xyes
-then :
- printf "%s\n" "#define HAVE_DAEMON 1" >>confdefs.h
-
-fi
-
-if test $ac_cv_func_daemon = yes; then
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if daemon is deprecated" >&5
-printf %s "checking if daemon is deprecated... " >&6; }
-cache=`echo daemon | sed 'y%.=/+-%___p_%'`
-if eval test \${cv_cc_deprecated_$cache+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
-
-echo '
-#include <stdlib.h>
-#include <unistd.h>
-' >conftest.c
-echo 'void f(void){ (void)daemon(0, 0); }' >>conftest.c
-if test -z "`$CC $CPPFLAGS $CFLAGS -c conftest.c 2>&1 | grep -e deprecated -e unavailable`"; then
-eval "cv_cc_deprecated_$cache=no"
-else
-eval "cv_cc_deprecated_$cache=yes"
-fi
-rm -f conftest conftest.o conftest.c
-
-fi
-
-if eval "test \"`echo '$cv_cc_deprecated_'$cache`\" = yes"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-
-printf "%s\n" "#define DEPRECATED_DAEMON 1" >>confdefs.h
-
-:
-
-else
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-:
-
-fi
-
-fi
-
-ac_fn_c_check_member "$LINENO" "struct sockaddr_un" "sun_len" "ac_cv_member_struct_sockaddr_un_sun_len" "
-$ac_includes_default
-#ifdef HAVE_SYS_UN_H
-#include <sys/un.h>
-#endif
-
-"
-if test "x$ac_cv_member_struct_sockaddr_un_sun_len" = xyes
-then :
-
-printf "%s\n" "#define HAVE_STRUCT_SOCKADDR_UN_SUN_LEN 1" >>confdefs.h
-
-
-fi
-
-ac_fn_c_check_member "$LINENO" "struct in_pktinfo" "ipi_spec_dst" "ac_cv_member_struct_in_pktinfo_ipi_spec_dst" "
-$ac_includes_default
-#if HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-
-#ifdef HAVE_SYS_UIO_H
-#include <sys/uio.h>
-#endif
-
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-
-#ifdef HAVE_NETINET_TCP_H
-#include <netinet/tcp.h>
-#endif
-
-#ifdef HAVE_ARPA_INET_H
-#include <arpa/inet.h>
-#endif
-
-#ifdef HAVE_WINSOCK2_H
-#include <winsock2.h>
-#endif
-
-#ifdef HAVE_WS2TCPIP_H
-#include <ws2tcpip.h>
-#endif
-
-"
-if test "x$ac_cv_member_struct_in_pktinfo_ipi_spec_dst" = xyes
-then :
-
-printf "%s\n" "#define HAVE_STRUCT_IN_PKTINFO_IPI_SPEC_DST 1" >>confdefs.h
-
-
-fi
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for htobe64" >&5
-printf %s "checking for htobe64... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-#include <stdio.h>
-#ifdef HAVE_ENDIAN_H
-# include <endian.h>
-#endif
-#ifdef HAVE_SYS_ENDIAN_H
-# include <sys/endian.h>
-#endif
-
-int
-main (void)
-{
-unsigned long long x = htobe64(0); printf("%u", (unsigned)x);
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-
-printf "%s\n" "#define HAVE_HTOBE64 1" >>confdefs.h
-
-else $as_nop
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for be64toh" >&5
-printf %s "checking for be64toh... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-#include <stdio.h>
-#ifdef HAVE_ENDIAN_H
-# include <endian.h>
-#endif
-#ifdef HAVE_SYS_ENDIAN_H
-# include <sys/endian.h>
-#endif
-
-int
-main (void)
-{
-unsigned long long x = be64toh(0); printf("%u", (unsigned)x);
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-
-printf "%s\n" "#define HAVE_BE64TOH 1" >>confdefs.h
-
-else $as_nop
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing setusercontext" >&5
-printf %s "checking for library containing setusercontext... " >&6; }
-if test ${ac_cv_search_setusercontext+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_func_search_save_LIBS=$LIBS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-char setusercontext ();
-int
-main (void)
-{
-return setusercontext ();
- ;
- return 0;
-}
-_ACEOF
-for ac_lib in '' util
-do
- if test -z "$ac_lib"; then
- ac_res="none required"
- else
- ac_res=-l$ac_lib
- LIBS="-l$ac_lib $ac_func_search_save_LIBS"
- fi
- if ac_fn_c_try_link "$LINENO"
-then :
- ac_cv_search_setusercontext=$ac_res
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext
- if test ${ac_cv_search_setusercontext+y}
-then :
- break
-fi
-done
-if test ${ac_cv_search_setusercontext+y}
-then :
-
-else $as_nop
- ac_cv_search_setusercontext=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_setusercontext" >&5
-printf "%s\n" "$ac_cv_search_setusercontext" >&6; }
-ac_res=$ac_cv_search_setusercontext
-if test "$ac_res" != no
-then :
- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
-fi
-
-ac_fn_c_check_func "$LINENO" "tzset" "ac_cv_func_tzset"
-if test "x$ac_cv_func_tzset" = xyes
-then :
- printf "%s\n" "#define HAVE_TZSET 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "sigprocmask" "ac_cv_func_sigprocmask"
-if test "x$ac_cv_func_sigprocmask" = xyes
-then :
- printf "%s\n" "#define HAVE_SIGPROCMASK 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "fcntl" "ac_cv_func_fcntl"
-if test "x$ac_cv_func_fcntl" = xyes
-then :
- printf "%s\n" "#define HAVE_FCNTL 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "getpwnam" "ac_cv_func_getpwnam"
-if test "x$ac_cv_func_getpwnam" = xyes
-then :
- printf "%s\n" "#define HAVE_GETPWNAM 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "endpwent" "ac_cv_func_endpwent"
-if test "x$ac_cv_func_endpwent" = xyes
-then :
- printf "%s\n" "#define HAVE_ENDPWENT 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "getrlimit" "ac_cv_func_getrlimit"
-if test "x$ac_cv_func_getrlimit" = xyes
-then :
- printf "%s\n" "#define HAVE_GETRLIMIT 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "setrlimit" "ac_cv_func_setrlimit"
-if test "x$ac_cv_func_setrlimit" = xyes
-then :
- printf "%s\n" "#define HAVE_SETRLIMIT 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "setsid" "ac_cv_func_setsid"
-if test "x$ac_cv_func_setsid" = xyes
-then :
- printf "%s\n" "#define HAVE_SETSID 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "chroot" "ac_cv_func_chroot"
-if test "x$ac_cv_func_chroot" = xyes
-then :
- printf "%s\n" "#define HAVE_CHROOT 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "kill" "ac_cv_func_kill"
-if test "x$ac_cv_func_kill" = xyes
-then :
- printf "%s\n" "#define HAVE_KILL 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "chown" "ac_cv_func_chown"
-if test "x$ac_cv_func_chown" = xyes
-then :
- printf "%s\n" "#define HAVE_CHOWN 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "sleep" "ac_cv_func_sleep"
-if test "x$ac_cv_func_sleep" = xyes
-then :
- printf "%s\n" "#define HAVE_SLEEP 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "usleep" "ac_cv_func_usleep"
-if test "x$ac_cv_func_usleep" = xyes
-then :
- printf "%s\n" "#define HAVE_USLEEP 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "random" "ac_cv_func_random"
-if test "x$ac_cv_func_random" = xyes
-then :
- printf "%s\n" "#define HAVE_RANDOM 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "srandom" "ac_cv_func_srandom"
-if test "x$ac_cv_func_srandom" = xyes
-then :
- printf "%s\n" "#define HAVE_SRANDOM 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "recvmsg" "ac_cv_func_recvmsg"
-if test "x$ac_cv_func_recvmsg" = xyes
-then :
- printf "%s\n" "#define HAVE_RECVMSG 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "sendmsg" "ac_cv_func_sendmsg"
-if test "x$ac_cv_func_sendmsg" = xyes
-then :
- printf "%s\n" "#define HAVE_SENDMSG 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "writev" "ac_cv_func_writev"
-if test "x$ac_cv_func_writev" = xyes
-then :
- printf "%s\n" "#define HAVE_WRITEV 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "socketpair" "ac_cv_func_socketpair"
-if test "x$ac_cv_func_socketpair" = xyes
-then :
- printf "%s\n" "#define HAVE_SOCKETPAIR 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "glob" "ac_cv_func_glob"
-if test "x$ac_cv_func_glob" = xyes
-then :
- printf "%s\n" "#define HAVE_GLOB 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "initgroups" "ac_cv_func_initgroups"
-if test "x$ac_cv_func_initgroups" = xyes
-then :
- printf "%s\n" "#define HAVE_INITGROUPS 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "strftime" "ac_cv_func_strftime"
-if test "x$ac_cv_func_strftime" = xyes
-then :
- printf "%s\n" "#define HAVE_STRFTIME 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "localtime_r" "ac_cv_func_localtime_r"
-if test "x$ac_cv_func_localtime_r" = xyes
-then :
- printf "%s\n" "#define HAVE_LOCALTIME_R 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "setusercontext" "ac_cv_func_setusercontext"
-if test "x$ac_cv_func_setusercontext" = xyes
-then :
- printf "%s\n" "#define HAVE_SETUSERCONTEXT 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "_beginthreadex" "ac_cv_func__beginthreadex"
-if test "x$ac_cv_func__beginthreadex" = xyes
-then :
- printf "%s\n" "#define HAVE__BEGINTHREADEX 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "endservent" "ac_cv_func_endservent"
-if test "x$ac_cv_func_endservent" = xyes
-then :
- printf "%s\n" "#define HAVE_ENDSERVENT 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "endprotoent" "ac_cv_func_endprotoent"
-if test "x$ac_cv_func_endprotoent" = xyes
-then :
- printf "%s\n" "#define HAVE_ENDPROTOENT 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "fsync" "ac_cv_func_fsync"
-if test "x$ac_cv_func_fsync" = xyes
-then :
- printf "%s\n" "#define HAVE_FSYNC 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "shmget" "ac_cv_func_shmget"
-if test "x$ac_cv_func_shmget" = xyes
-then :
- printf "%s\n" "#define HAVE_SHMGET 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "accept4" "ac_cv_func_accept4"
-if test "x$ac_cv_func_accept4" = xyes
-then :
- printf "%s\n" "#define HAVE_ACCEPT4 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "getifaddrs" "ac_cv_func_getifaddrs"
-if test "x$ac_cv_func_getifaddrs" = xyes
-then :
- printf "%s\n" "#define HAVE_GETIFADDRS 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "if_nametoindex" "ac_cv_func_if_nametoindex"
-if test "x$ac_cv_func_if_nametoindex" = xyes
-then :
- printf "%s\n" "#define HAVE_IF_NAMETOINDEX 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "poll" "ac_cv_func_poll"
-if test "x$ac_cv_func_poll" = xyes
-then :
- printf "%s\n" "#define HAVE_POLL 1" >>confdefs.h
-
-fi
-ac_fn_c_check_func "$LINENO" "gettid" "ac_cv_func_gettid"
-if test "x$ac_cv_func_gettid" = xyes
-then :
- printf "%s\n" "#define HAVE_GETTID 1" >>confdefs.h
-
-fi
-
-
- for ac_func in setresuid
-do :
- ac_fn_c_check_func "$LINENO" "setresuid" "ac_cv_func_setresuid"
-if test "x$ac_cv_func_setresuid" = xyes
-then :
- printf "%s\n" "#define HAVE_SETRESUID 1" >>confdefs.h
-
-else $as_nop
- ac_fn_c_check_func "$LINENO" "setreuid" "ac_cv_func_setreuid"
-if test "x$ac_cv_func_setreuid" = xyes
-then :
- printf "%s\n" "#define HAVE_SETREUID 1" >>confdefs.h
-
-fi
-
-fi
-
-done
-
- for ac_func in setresgid
-do :
- ac_fn_c_check_func "$LINENO" "setresgid" "ac_cv_func_setresgid"
-if test "x$ac_cv_func_setresgid" = xyes
-then :
- printf "%s\n" "#define HAVE_SETRESGID 1" >>confdefs.h
-
-else $as_nop
- ac_fn_c_check_func "$LINENO" "setregid" "ac_cv_func_setregid"
-if test "x$ac_cv_func_setregid" = xyes
-then :
- printf "%s\n" "#define HAVE_SETREGID 1" >>confdefs.h
-
-fi
-
-fi
-
-done
-
-# check if setreuid en setregid fail, on MacOSX10.4(darwin8).
-if echo $host_os | grep darwin8 > /dev/null; then
-
-printf "%s\n" "#define DARWIN_BROKEN_SETREUID 1" >>confdefs.h
-
-fi
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for atomic_store" >&5
-printf %s "checking for atomic_store... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$ac_includes_default
-#ifdef HAVE_STDATOMIC_H
-#include <stdatomic.h>
-#endif
-
-int
-main (void)
-{
-
- int newvar = 5, var = 0;
- atomic_store((_Atomic int*)&var, newvar);
- newvar = 0;
- /* condition to use the variables. */
- if(var == newvar) return 1;
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-
-printf "%s\n" "#define HAVE_LINK_ATOMIC_STORE 1" >>confdefs.h
-
-
-else $as_nop
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
-
-ac_fn_check_decl "$LINENO" "inet_pton" "ac_cv_have_decl_inet_pton" "
-$ac_includes_default
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-
-#ifdef HAVE_NETINET_TCP_H
-#include <netinet/tcp.h>
-#endif
-
-#ifdef HAVE_ARPA_INET_H
-#include <arpa/inet.h>
-#endif
-
-#ifdef HAVE_WINSOCK2_H
-#include <winsock2.h>
-#endif
-
-#ifdef HAVE_WS2TCPIP_H
-#include <ws2tcpip.h>
-#endif
-
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
-if test "x$ac_cv_have_decl_inet_pton" = xyes
-then :
- ac_have_decl=1
-else $as_nop
- ac_have_decl=0
-fi
-printf "%s\n" "#define HAVE_DECL_INET_PTON $ac_have_decl" >>confdefs.h
-ac_fn_check_decl "$LINENO" "inet_ntop" "ac_cv_have_decl_inet_ntop" "
-$ac_includes_default
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-
-#ifdef HAVE_NETINET_TCP_H
-#include <netinet/tcp.h>
-#endif
-
-#ifdef HAVE_ARPA_INET_H
-#include <arpa/inet.h>
-#endif
-
-#ifdef HAVE_WINSOCK2_H
-#include <winsock2.h>
-#endif
-
-#ifdef HAVE_WS2TCPIP_H
-#include <ws2tcpip.h>
-#endif
-
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
-if test "x$ac_cv_have_decl_inet_ntop" = xyes
-then :
- ac_have_decl=1
-else $as_nop
- ac_have_decl=0
-fi
-printf "%s\n" "#define HAVE_DECL_INET_NTOP $ac_have_decl" >>confdefs.h
-
-ac_fn_c_check_func "$LINENO" "inet_aton" "ac_cv_func_inet_aton"
-if test "x$ac_cv_func_inet_aton" = xyes
-then :
- printf "%s\n" "#define HAVE_INET_ATON 1" >>confdefs.h
-
-else $as_nop
- case " $LIBOBJS " in
- *" inet_aton.$ac_objext "* ) ;;
- *) LIBOBJS="$LIBOBJS inet_aton.$ac_objext"
- ;;
-esac
-
-fi
-
-ac_fn_c_check_func "$LINENO" "inet_pton" "ac_cv_func_inet_pton"
-if test "x$ac_cv_func_inet_pton" = xyes
-then :
- printf "%s\n" "#define HAVE_INET_PTON 1" >>confdefs.h
-
-else $as_nop
- case " $LIBOBJS " in
- *" inet_pton.$ac_objext "* ) ;;
- *) LIBOBJS="$LIBOBJS inet_pton.$ac_objext"
- ;;
-esac
-
-fi
-
-ac_fn_c_check_func "$LINENO" "inet_ntop" "ac_cv_func_inet_ntop"
-if test "x$ac_cv_func_inet_ntop" = xyes
-then :
- printf "%s\n" "#define HAVE_INET_NTOP 1" >>confdefs.h
-
-else $as_nop
- case " $LIBOBJS " in
- *" inet_ntop.$ac_objext "* ) ;;
- *) LIBOBJS="$LIBOBJS inet_ntop.$ac_objext"
- ;;
-esac
-
-fi
-
-ac_fn_c_check_func "$LINENO" "snprintf" "ac_cv_func_snprintf"
-if test "x$ac_cv_func_snprintf" = xyes
-then :
- printf "%s\n" "#define HAVE_SNPRINTF 1" >>confdefs.h
-
-else $as_nop
- case " $LIBOBJS " in
- *" snprintf.$ac_objext "* ) ;;
- *) LIBOBJS="$LIBOBJS snprintf.$ac_objext"
- ;;
-esac
-
-fi
-
-# test if snprintf return the proper length
-if test "x$ac_cv_func_snprintf" = xyes; then
- if test c${cross_compiling} = cno; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for correct snprintf return value" >&5
-printf %s "checking for correct snprintf return value... " >&6; }
- if test "$cross_compiling" = yes
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: maybe" >&5
-printf "%s\n" "maybe" >&6; }
-else $as_nop
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$ac_includes_default
-
-int main(void) { return !(snprintf(NULL, 0, "test") == 4); }
-
-_ACEOF
-if ac_fn_c_try_run "$LINENO"
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-else $as_nop
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-
-printf "%s\n" "#define SNPRINTF_RET_BROKEN /**/" >>confdefs.h
-
- case " $LIBOBJS " in
- *" snprintf.$ac_objext "* ) ;;
- *) LIBOBJS="$LIBOBJS snprintf.$ac_objext"
- ;;
-esac
-
-
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
- fi
-fi
-ac_fn_c_check_func "$LINENO" "strlcat" "ac_cv_func_strlcat"
-if test "x$ac_cv_func_strlcat" = xyes
-then :
- printf "%s\n" "#define HAVE_STRLCAT 1" >>confdefs.h
-
-else $as_nop
- case " $LIBOBJS " in
- *" strlcat.$ac_objext "* ) ;;
- *) LIBOBJS="$LIBOBJS strlcat.$ac_objext"
- ;;
-esac
-
-fi
-
-ac_fn_c_check_func "$LINENO" "strlcpy" "ac_cv_func_strlcpy"
-if test "x$ac_cv_func_strlcpy" = xyes
-then :
- printf "%s\n" "#define HAVE_STRLCPY 1" >>confdefs.h
-
-else $as_nop
- case " $LIBOBJS " in
- *" strlcpy.$ac_objext "* ) ;;
- *) LIBOBJS="$LIBOBJS strlcpy.$ac_objext"
- ;;
-esac
-
-fi
-
-ac_fn_c_check_func "$LINENO" "memmove" "ac_cv_func_memmove"
-if test "x$ac_cv_func_memmove" = xyes
-then :
- printf "%s\n" "#define HAVE_MEMMOVE 1" >>confdefs.h
-
-else $as_nop
- case " $LIBOBJS " in
- *" memmove.$ac_objext "* ) ;;
- *) LIBOBJS="$LIBOBJS memmove.$ac_objext"
- ;;
-esac
-
-fi
-
-ac_fn_c_check_func "$LINENO" "gmtime_r" "ac_cv_func_gmtime_r"
-if test "x$ac_cv_func_gmtime_r" = xyes
-then :
- printf "%s\n" "#define HAVE_GMTIME_R 1" >>confdefs.h
-
-else $as_nop
- case " $LIBOBJS " in
- *" gmtime_r.$ac_objext "* ) ;;
- *) LIBOBJS="$LIBOBJS gmtime_r.$ac_objext"
- ;;
-esac
-
-fi
-
-ac_fn_c_check_func "$LINENO" "isblank" "ac_cv_func_isblank"
-if test "x$ac_cv_func_isblank" = xyes
-then :
- printf "%s\n" "#define HAVE_ISBLANK 1" >>confdefs.h
-
-else $as_nop
- case " $LIBOBJS " in
- *" isblank.$ac_objext "* ) ;;
- *) LIBOBJS="$LIBOBJS isblank.$ac_objext"
- ;;
-esac
-
-fi
-
-ac_fn_c_check_func "$LINENO" "explicit_bzero" "ac_cv_func_explicit_bzero"
-if test "x$ac_cv_func_explicit_bzero" = xyes
-then :
- printf "%s\n" "#define HAVE_EXPLICIT_BZERO 1" >>confdefs.h
-
-else $as_nop
- case " $LIBOBJS " in
- *" explicit_bzero.$ac_objext "* ) ;;
- *) LIBOBJS="$LIBOBJS explicit_bzero.$ac_objext"
- ;;
-esac
-
-fi
-
-LIBOBJ_WITHOUT_CTIMEARC4="$LIBOBJS"
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for reallocarray" >&5
-printf %s "checking for reallocarray... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$ac_includes_default
-
-#ifndef _OPENBSD_SOURCE
-#define _OPENBSD_SOURCE 1
-#endif
-#include <stdlib.h>
-int main(void) {
- void* p = reallocarray(NULL, 10, 100);
- free(p);
- return 0;
-}
-
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-
-printf "%s\n" "#define HAVE_REALLOCARRAY 1" >>confdefs.h
-
-
-else $as_nop
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- case " $LIBOBJS " in
- *" reallocarray.$ac_objext "* ) ;;
- *) LIBOBJS="$LIBOBJS reallocarray.$ac_objext"
- ;;
-esac
-
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
-ac_fn_check_decl "$LINENO" "reallocarray" "ac_cv_have_decl_reallocarray" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS"
-if test "x$ac_cv_have_decl_reallocarray" = xyes
-then :
- ac_have_decl=1
-else $as_nop
- ac_have_decl=0
-fi
-printf "%s\n" "#define HAVE_DECL_REALLOCARRAY $ac_have_decl" >>confdefs.h
-
-if test "$USE_NSS" = "no"; then
- ac_fn_c_check_func "$LINENO" "arc4random" "ac_cv_func_arc4random"
-if test "x$ac_cv_func_arc4random" = xyes
-then :
- printf "%s\n" "#define HAVE_ARC4RANDOM 1" >>confdefs.h
-
-else $as_nop
- case " $LIBOBJS " in
- *" arc4random.$ac_objext "* ) ;;
- *) LIBOBJS="$LIBOBJS arc4random.$ac_objext"
- ;;
-esac
-
-fi
-
- ac_fn_c_check_func "$LINENO" "arc4random_uniform" "ac_cv_func_arc4random_uniform"
-if test "x$ac_cv_func_arc4random_uniform" = xyes
-then :
- printf "%s\n" "#define HAVE_ARC4RANDOM_UNIFORM 1" >>confdefs.h
-
-else $as_nop
- case " $LIBOBJS " in
- *" arc4random_uniform.$ac_objext "* ) ;;
- *) LIBOBJS="$LIBOBJS arc4random_uniform.$ac_objext"
- ;;
-esac
-
-fi
-
- if test "$ac_cv_func_arc4random" = "no"; then
- case " $LIBOBJS " in
- *" arc4_lock.$ac_objext "* ) ;;
- *) LIBOBJS="$LIBOBJS arc4_lock.$ac_objext"
- ;;
-esac
-
-
- for ac_func in getentropy
-do :
- ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy"
-if test "x$ac_cv_func_getentropy" = xyes
-then :
- printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h
-
-else $as_nop
-
- if test "$USE_WINSOCK" = 1; then
- case " $LIBOBJS " in
- *" getentropy_win.$ac_objext "* ) ;;
- *) LIBOBJS="$LIBOBJS getentropy_win.$ac_objext"
- ;;
-esac
-
- else
- case "$host" in
- Darwin|*darwin*)
- case " $LIBOBJS " in
- *" getentropy_osx.$ac_objext "* ) ;;
- *) LIBOBJS="$LIBOBJS getentropy_osx.$ac_objext"
- ;;
-esac
-
- ;;
- *solaris*|*sunos*|SunOS)
- case " $LIBOBJS " in
- *" getentropy_solaris.$ac_objext "* ) ;;
- *) LIBOBJS="$LIBOBJS getentropy_solaris.$ac_objext"
- ;;
-esac
-
- for ac_header in sys/sha2.h
-do :
- ac_fn_c_check_header_compile "$LINENO" "sys/sha2.h" "ac_cv_header_sys_sha2_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_sys_sha2_h" = xyes
-then :
- printf "%s\n" "#define HAVE_SYS_SHA2_H 1" >>confdefs.h
-
-else $as_nop
-
-
- for ac_func in SHA512_Update
-do :
- ac_fn_c_check_func "$LINENO" "SHA512_Update" "ac_cv_func_SHA512_Update"
-if test "x$ac_cv_func_SHA512_Update" = xyes
-then :
- printf "%s\n" "#define HAVE_SHA512_UPDATE 1" >>confdefs.h
-
-else $as_nop
-
- case " $LIBOBJS " in
- *" sha512.$ac_objext "* ) ;;
- *) LIBOBJS="$LIBOBJS sha512.$ac_objext"
- ;;
-esac
-
-
-fi
-
-done
-
-fi
-
-done
- if test "$ac_cv_header_sys_sha2_h" = "yes"; then
- # this lib needed for sha2 on solaris
- LIBS="$LIBS -lmd"
- fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing clock_gettime" >&5
-printf %s "checking for library containing clock_gettime... " >&6; }
-if test ${ac_cv_search_clock_gettime+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_func_search_save_LIBS=$LIBS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-char clock_gettime ();
-int
-main (void)
-{
-return clock_gettime ();
- ;
- return 0;
-}
-_ACEOF
-for ac_lib in '' rt
-do
- if test -z "$ac_lib"; then
- ac_res="none required"
- else
- ac_res=-l$ac_lib
- LIBS="-l$ac_lib $ac_func_search_save_LIBS"
- fi
- if ac_fn_c_try_link "$LINENO"
-then :
- ac_cv_search_clock_gettime=$ac_res
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext
- if test ${ac_cv_search_clock_gettime+y}
-then :
- break
-fi
-done
-if test ${ac_cv_search_clock_gettime+y}
-then :
-
-else $as_nop
- ac_cv_search_clock_gettime=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_clock_gettime" >&5
-printf "%s\n" "$ac_cv_search_clock_gettime" >&6; }
-ac_res=$ac_cv_search_clock_gettime
-if test "$ac_res" != no
-then :
- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
-fi
-
- ;;
- *freebsd*|*FreeBSD)
- case " $LIBOBJS " in
- *" getentropy_freebsd.$ac_objext "* ) ;;
- *) LIBOBJS="$LIBOBJS getentropy_freebsd.$ac_objext"
- ;;
-esac
-
- ;;
- *linux*|Linux|*)
- case " $LIBOBJS " in
- *" getentropy_linux.$ac_objext "* ) ;;
- *) LIBOBJS="$LIBOBJS getentropy_linux.$ac_objext"
- ;;
-esac
-
-
- for ac_func in SHA512_Update
-do :
- ac_fn_c_check_func "$LINENO" "SHA512_Update" "ac_cv_func_SHA512_Update"
-if test "x$ac_cv_func_SHA512_Update" = xyes
-then :
- printf "%s\n" "#define HAVE_SHA512_UPDATE 1" >>confdefs.h
-
-else $as_nop
-
-
-printf "%s\n" "#define COMPAT_SHA512 1" >>confdefs.h
-
- case " $LIBOBJS " in
- *" sha512.$ac_objext "* ) ;;
- *) LIBOBJS="$LIBOBJS sha512.$ac_objext"
- ;;
-esac
-
-
-fi
-
-done
- ac_fn_c_check_header_compile "$LINENO" "sys/sysctl.h" "ac_cv_header_sys_sysctl_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_sys_sysctl_h" = xyes
-then :
- printf "%s\n" "#define HAVE_SYS_SYSCTL_H 1" >>confdefs.h
-
-fi
-
- ac_fn_c_check_func "$LINENO" "getauxval" "ac_cv_func_getauxval"
-if test "x$ac_cv_func_getauxval" = xyes
-then :
- printf "%s\n" "#define HAVE_GETAUXVAL 1" >>confdefs.h
-
-fi
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing clock_gettime" >&5
-printf %s "checking for library containing clock_gettime... " >&6; }
-if test ${ac_cv_search_clock_gettime+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_func_search_save_LIBS=$LIBS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-char clock_gettime ();
-int
-main (void)
-{
-return clock_gettime ();
- ;
- return 0;
-}
-_ACEOF
-for ac_lib in '' rt
-do
- if test -z "$ac_lib"; then
- ac_res="none required"
- else
- ac_res=-l$ac_lib
- LIBS="-l$ac_lib $ac_func_search_save_LIBS"
- fi
- if ac_fn_c_try_link "$LINENO"
-then :
- ac_cv_search_clock_gettime=$ac_res
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext
- if test ${ac_cv_search_clock_gettime+y}
-then :
- break
-fi
-done
-if test ${ac_cv_search_clock_gettime+y}
-then :
-
-else $as_nop
- ac_cv_search_clock_gettime=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_clock_gettime" >&5
-printf "%s\n" "$ac_cv_search_clock_gettime" >&6; }
-ac_res=$ac_cv_search_clock_gettime
-if test "$ac_res" != no
-then :
- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
-fi
-
- ;;
- esac
- fi
-
-fi
-
-done
- fi
-fi
-LIBOBJ_WITHOUT_CTIME="$LIBOBJS"
-
-ac_fn_c_check_func "$LINENO" "ctime_r" "ac_cv_func_ctime_r"
-if test "x$ac_cv_func_ctime_r" = xyes
-then :
- printf "%s\n" "#define HAVE_CTIME_R 1" >>confdefs.h
-
-else $as_nop
- case " $LIBOBJS " in
- *" ctime_r.$ac_objext "* ) ;;
- *) LIBOBJS="$LIBOBJS ctime_r.$ac_objext"
- ;;
-esac
-
-fi
-
-ac_fn_c_check_func "$LINENO" "strsep" "ac_cv_func_strsep"
-if test "x$ac_cv_func_strsep" = xyes
-then :
- printf "%s\n" "#define HAVE_STRSEP 1" >>confdefs.h
-
-else $as_nop
- case " $LIBOBJS " in
- *" strsep.$ac_objext "* ) ;;
- *) LIBOBJS="$LIBOBJS strsep.$ac_objext"
- ;;
-esac
-
-fi
-
-
-# Check whether --enable-allsymbols was given.
-if test ${enable_allsymbols+y}
-then :
- enableval=$enable_allsymbols;
-fi
-
-case "$enable_allsymbols" in
- yes)
- COMMON_OBJ_ALL_SYMBOLS=""
- UBSYMS=""
- EXTRALINK="libunbound.la"
-
-printf "%s\n" "#define EXPORT_ALL_SYMBOLS 1" >>confdefs.h
-
- ;;
- no|*)
- COMMON_OBJ_ALL_SYMBOLS='$(COMMON_OBJ)'
- UBSYMS='-export-symbols $(srcdir)/libunbound/ubsyms.def'
- EXTRALINK=""
- ;;
-esac
-
-
-
-if test x_$enable_lock_checks = x_yes; then
- UBSYMS="-export-symbols clubsyms.def"
- cp ${srcdir}/libunbound/ubsyms.def clubsyms.def
- echo lock_protect >> clubsyms.def
- echo lock_protect_place >> clubsyms.def
- echo lock_unprotect >> clubsyms.def
- echo lock_get_mem >> clubsyms.def
- echo checklock_start >> clubsyms.def
- echo checklock_stop >> clubsyms.def
- echo checklock_set_output_name >> clubsyms.def
- echo checklock_lock >> clubsyms.def
- echo checklock_unlock >> clubsyms.def
- echo checklock_init >> clubsyms.def
- echo checklock_thrcreate >> clubsyms.def
- echo checklock_thrjoin >> clubsyms.def
-fi
-
-# check for dnstap if requested
-
- # Check whether --enable-dnstap was given.
-if test ${enable_dnstap+y}
-then :
- enableval=$enable_dnstap; opt_dnstap=$enableval
-else $as_nop
- opt_dnstap=no
-fi
-
-
-
-# Check whether --with-dnstap-socket-path was given.
-if test ${with_dnstap_socket_path+y}
-then :
- withval=$with_dnstap_socket_path; opt_dnstap_socket_path=$withval
-else $as_nop
- opt_dnstap_socket_path="$UNBOUND_RUN_DIR/dnstap.sock"
-fi
-
-
- if test "x$opt_dnstap" != "xno"; then
- # Extract the first word of "protoc", so it can be a program name with args.
-set dummy protoc; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_path_PROTOC+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- case $PROTOC in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_PROTOC="$PROTOC" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_path_PROTOC="$as_dir$ac_word$ac_exec_ext"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
- ;;
-esac
-fi
-PROTOC=$ac_cv_path_PROTOC
-if test -n "$PROTOC"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PROTOC" >&5
-printf "%s\n" "$PROTOC" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
- # 'protoc-c' is deprecated. We use 'protoc' instead. If it can not be
- # found, try 'protoc-c'.
- if test -z "$PROTOC"; then
- # Extract the first word of "protoc-c", so it can be a program name with args.
-set dummy protoc-c; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_path_PROTOC_C+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- case $PROTOC_C in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_PROTOC_C="$PROTOC_C" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_path_PROTOC_C="$as_dir$ac_word$ac_exec_ext"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
- ;;
-esac
-fi
-PROTOC_C=$ac_cv_path_PROTOC_C
-if test -n "$PROTOC_C"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PROTOC_C" >&5
-printf "%s\n" "$PROTOC_C" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
- else
- PROTOC_C="$PROTOC"
- fi
- if test -z "$PROTOC_C"; then
- as_fn_error $? "The protoc or protoc-c program was not found. It is needed for dnstap, use --disable-dnstap, or install protobuf-c to provide protoc or protoc-c" "$LINENO" 5
- fi
-
- # Check for protoc-gen-c plugin
- # Extract the first word of "protoc-gen-c", so it can be a program name with args.
-set dummy protoc-gen-c; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_path_PROTOC_GEN_C+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- case $PROTOC_GEN_C in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_PROTOC_GEN_C="$PROTOC_GEN_C" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
- ac_cv_path_PROTOC_GEN_C="$as_dir$ac_word$ac_exec_ext"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
- ;;
-esac
-fi
-PROTOC_GEN_C=$ac_cv_path_PROTOC_GEN_C
-if test -n "$PROTOC_GEN_C"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PROTOC_GEN_C" >&5
-printf "%s\n" "$PROTOC_GEN_C" >&6; }
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
- if test -z "$PROTOC_GEN_C"; then
- as_fn_error $? "The protoc-gen-c plugin was not found. It is needed for dnstap, use --disable-dnstap, or install protobuf-c-compiler to provide protoc-gen-c" "$LINENO" 5
- fi
-
- # Test that protoc-gen-c actually works
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if protoc-gen-c plugin works" >&5
-printf %s "checking if protoc-gen-c plugin works... " >&6; }
- cat > conftest.proto << EOF
-syntax = "proto2";
-message TestMessage {
- optional string test_field = 1;
-}
-EOF
- if $PROTOC_C --c_out=. conftest.proto >/dev/null 2>&1; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
- rm -f conftest.proto conftest.pb-c.c conftest.pb-c.h
- else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- rm -f conftest.proto conftest.pb-c.c conftest.pb-c.h
- as_fn_error $? "The protoc-gen-c plugin is not working properly. Please ensure protobuf-c-compiler is properly installed" "$LINENO" 5
- fi
-
-
-# Check whether --with-protobuf-c was given.
-if test ${with_protobuf_c+y}
-then :
- withval=$with_protobuf_c;
- # workaround for protobuf-c includes at old dir before protobuf-c-1.0.0
- if test -f $withval/include/google/protobuf-c/protobuf-c.h; then
- CFLAGS="$CFLAGS -I$withval/include/google"
- else
- CFLAGS="$CFLAGS -I$withval/include"
- fi
- LDFLAGS="$LDFLAGS -L$withval/lib"
-
-else $as_nop
-
- if test -n "$PKG_CONFIG"; then
-
-pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for PROTOBUFC" >&5
-printf %s "checking for PROTOBUFC... " >&6; }
-
-if test -n "$PROTOBUFC_CFLAGS"; then
- pkg_cv_PROTOBUFC_CFLAGS="$PROTOBUFC_CFLAGS"
- elif test -n "$PKG_CONFIG"; then
- if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libprotobuf-c\""; } >&5
- ($PKG_CONFIG --exists --print-errors "libprotobuf-c") 2>&5
- ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- pkg_cv_PROTOBUFC_CFLAGS=`$PKG_CONFIG --cflags "libprotobuf-c" 2>/dev/null`
- test "x$?" != "x0" && pkg_failed=yes
-else
- pkg_failed=yes
-fi
- else
- pkg_failed=untried
-fi
-if test -n "$PROTOBUFC_LIBS"; then
- pkg_cv_PROTOBUFC_LIBS="$PROTOBUFC_LIBS"
- elif test -n "$PKG_CONFIG"; then
- if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libprotobuf-c\""; } >&5
- ($PKG_CONFIG --exists --print-errors "libprotobuf-c") 2>&5
- ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- pkg_cv_PROTOBUFC_LIBS=`$PKG_CONFIG --libs "libprotobuf-c" 2>/dev/null`
- test "x$?" != "x0" && pkg_failed=yes
-else
- pkg_failed=yes
-fi
- else
- pkg_failed=untried
-fi
-
-
-
-if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-
-if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
- _pkg_short_errors_supported=yes
-else
- _pkg_short_errors_supported=no
-fi
- if test $_pkg_short_errors_supported = yes; then
- PROTOBUFC_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libprotobuf-c" 2>&1`
- else
- PROTOBUFC_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libprotobuf-c" 2>&1`
- fi
- # Put the nasty error message in config.log where it belongs
- echo "$PROTOBUFC_PKG_ERRORS" >&5
-
-
- # pkg-config failed; try falling back to known values
- # workaround for protobuf-c includes at old dir before protobuf-c-1.0.0
- if test -f /usr/include/google/protobuf-c/protobuf-c.h; then
- CFLAGS="$CFLAGS -I/usr/include/google"
- else
- if test -f /usr/local/include/google/protobuf-c/protobuf-c.h; then
- CFLAGS="$CFLAGS -I/usr/local/include/google"
- LDFLAGS="$LDFLAGS -L/usr/local/lib"
- else
- as_fn_error $? "The protobuf-c package was not found with pkg-config. Please install protobuf-c!" "$LINENO" 5
- fi
- fi
-
-
-elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-
- # pkg-config failed; try falling back to known values
- # workaround for protobuf-c includes at old dir before protobuf-c-1.0.0
- if test -f /usr/include/google/protobuf-c/protobuf-c.h; then
- CFLAGS="$CFLAGS -I/usr/include/google"
- else
- if test -f /usr/local/include/google/protobuf-c/protobuf-c.h; then
- CFLAGS="$CFLAGS -I/usr/local/include/google"
- LDFLAGS="$LDFLAGS -L/usr/local/lib"
- else
- as_fn_error $? "The protobuf-c package was not found with pkg-config. Please install protobuf-c!" "$LINENO" 5
- fi
- fi
-
-
-else
- PROTOBUFC_CFLAGS=$pkg_cv_PROTOBUFC_CFLAGS
- PROTOBUFC_LIBS=$pkg_cv_PROTOBUFC_LIBS
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-
- CFLAGS="$CFLAGS $PROTOBUFC_CFLAGS"
- LIBS="$LIBS $PROTOBUFC_LIBS"
-
-fi
- else
- # workaround for protobuf-c includes at old dir before protobuf-c-1.0.0
- if test -f /usr/include/google/protobuf-c/protobuf-c.h; then
- CFLAGS="$CFLAGS -I/usr/include/google"
- else
- if test -f /usr/local/include/google/protobuf-c/protobuf-c.h; then
- CFLAGS="$CFLAGS -I/usr/local/include/google"
- LDFLAGS="$LDFLAGS -L/usr/local/lib"
- fi
- fi
- fi
-
-
-fi
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing protobuf_c_message_pack" >&5
-printf %s "checking for library containing protobuf_c_message_pack... " >&6; }
-if test ${ac_cv_search_protobuf_c_message_pack+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_func_search_save_LIBS=$LIBS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-char protobuf_c_message_pack ();
-int
-main (void)
-{
-return protobuf_c_message_pack ();
- ;
- return 0;
-}
-_ACEOF
-for ac_lib in '' protobuf-c
-do
- if test -z "$ac_lib"; then
- ac_res="none required"
- else
- ac_res=-l$ac_lib
- LIBS="-l$ac_lib $ac_func_search_save_LIBS"
- fi
- if ac_fn_c_try_link "$LINENO"
-then :
- ac_cv_search_protobuf_c_message_pack=$ac_res
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext
- if test ${ac_cv_search_protobuf_c_message_pack+y}
-then :
- break
-fi
-done
-if test ${ac_cv_search_protobuf_c_message_pack+y}
-then :
-
-else $as_nop
- ac_cv_search_protobuf_c_message_pack=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_protobuf_c_message_pack" >&5
-printf "%s\n" "$ac_cv_search_protobuf_c_message_pack" >&6; }
-ac_res=$ac_cv_search_protobuf_c_message_pack
-if test "$ac_res" != no
-then :
- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
-else $as_nop
- as_fn_error $? "The protobuf-c library was not found. Please install the development libraries for protobuf-c!" "$LINENO" 5
-fi
-
-
-
-printf "%s\n" "#define USE_DNSTAP 1" >>confdefs.h
-
- ENABLE_DNSTAP=1
-
-
-
- hdr_dnstap_socket_path="`echo $opt_dnstap_socket_path | sed -e 's/\\\\/\\\\\\\\/g'`"
-
-
-printf "%s\n" "#define DNSTAP_SOCKET_PATH \"$hdr_dnstap_socket_path\"" >>confdefs.h
-
- DNSTAP_SOCKET_PATH="$hdr_dnstap_socket_path"
-
- DNSTAP_SOCKET_TESTBIN='unbound-dnstap-socket$(EXEEXT)'
-
- DNSTAP_SRC="dnstap/dnstap.c dnstap/dnstap.pb-c.c dnstap/dnstap_fstrm.c dnstap/dtstream.c"
-
- DNSTAP_OBJ="dnstap.lo dnstap.pb-c.lo dnstap_fstrm.lo dtstream.lo"
-
-
- else
-
- ENABLE_DNSTAP=0
-
-
-
- fi
-
-
-# check for dnscrypt if requested
-
- # Check whether --enable-dnscrypt was given.
-if test ${enable_dnscrypt+y}
-then :
- enableval=$enable_dnscrypt; opt_dnscrypt=$enableval
-else $as_nop
- opt_dnscrypt=no
-fi
-
-
- if test "x$opt_dnscrypt" != "xno"; then
-
-# Check whether --with-libsodium was given.
-if test ${with_libsodium+y}
-then :
- withval=$with_libsodium;
- CFLAGS="$CFLAGS -I$withval/include"
- LDFLAGS="$LDFLAGS -L$withval/lib"
-
-fi
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing sodium_init" >&5
-printf %s "checking for library containing sodium_init... " >&6; }
-if test ${ac_cv_search_sodium_init+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_func_search_save_LIBS=$LIBS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-char sodium_init ();
-int
-main (void)
-{
-return sodium_init ();
- ;
- return 0;
-}
-_ACEOF
-for ac_lib in '' sodium
-do
- if test -z "$ac_lib"; then
- ac_res="none required"
- else
- ac_res=-l$ac_lib
- LIBS="-l$ac_lib $ac_func_search_save_LIBS"
- fi
- if ac_fn_c_try_link "$LINENO"
-then :
- ac_cv_search_sodium_init=$ac_res
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext
- if test ${ac_cv_search_sodium_init+y}
-then :
- break
-fi
-done
-if test ${ac_cv_search_sodium_init+y}
-then :
-
-else $as_nop
- ac_cv_search_sodium_init=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_sodium_init" >&5
-printf "%s\n" "$ac_cv_search_sodium_init" >&6; }
-ac_res=$ac_cv_search_sodium_init
-if test "$ac_res" != no
-then :
- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
-else $as_nop
- as_fn_error $? "The sodium library was not found. Please install sodium!" "$LINENO" 5
-fi
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing crypto_box_curve25519xchacha20poly1305_beforenm" >&5
-printf %s "checking for library containing crypto_box_curve25519xchacha20poly1305_beforenm... " >&6; }
-if test ${ac_cv_search_crypto_box_curve25519xchacha20poly1305_beforenm+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_func_search_save_LIBS=$LIBS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-char crypto_box_curve25519xchacha20poly1305_beforenm ();
-int
-main (void)
-{
-return crypto_box_curve25519xchacha20poly1305_beforenm ();
- ;
- return 0;
-}
-_ACEOF
-for ac_lib in '' sodium
-do
- if test -z "$ac_lib"; then
- ac_res="none required"
- else
- ac_res=-l$ac_lib
- LIBS="-l$ac_lib $ac_func_search_save_LIBS"
- fi
- if ac_fn_c_try_link "$LINENO"
-then :
- ac_cv_search_crypto_box_curve25519xchacha20poly1305_beforenm=$ac_res
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext
- if test ${ac_cv_search_crypto_box_curve25519xchacha20poly1305_beforenm+y}
-then :
- break
-fi
-done
-if test ${ac_cv_search_crypto_box_curve25519xchacha20poly1305_beforenm+y}
-then :
-
-else $as_nop
- ac_cv_search_crypto_box_curve25519xchacha20poly1305_beforenm=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_crypto_box_curve25519xchacha20poly1305_beforenm" >&5
-printf "%s\n" "$ac_cv_search_crypto_box_curve25519xchacha20poly1305_beforenm" >&6; }
-ac_res=$ac_cv_search_crypto_box_curve25519xchacha20poly1305_beforenm
-if test "$ac_res" != no
-then :
- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
- ENABLE_DNSCRYPT_XCHACHA20=1
-
-
-printf "%s\n" "#define USE_DNSCRYPT_XCHACHA20 1" >>confdefs.h
-
-
-else $as_nop
-
- ENABLE_DNSCRYPT_XCHACHA20=0
-
-
-fi
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing sodium_set_misuse_handler" >&5
-printf %s "checking for library containing sodium_set_misuse_handler... " >&6; }
-if test ${ac_cv_search_sodium_set_misuse_handler+y}
-then :
- printf %s "(cached) " >&6
-else $as_nop
- ac_func_search_save_LIBS=$LIBS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-char sodium_set_misuse_handler ();
-int
-main (void)
-{
-return sodium_set_misuse_handler ();
- ;
- return 0;
-}
-_ACEOF
-for ac_lib in '' sodium
-do
- if test -z "$ac_lib"; then
- ac_res="none required"
- else
- ac_res=-l$ac_lib
- LIBS="-l$ac_lib $ac_func_search_save_LIBS"
- fi
- if ac_fn_c_try_link "$LINENO"
-then :
- ac_cv_search_sodium_set_misuse_handler=$ac_res
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext
- if test ${ac_cv_search_sodium_set_misuse_handler+y}
-then :
- break
-fi
-done
-if test ${ac_cv_search_sodium_set_misuse_handler+y}
-then :
-
-else $as_nop
- ac_cv_search_sodium_set_misuse_handler=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_sodium_set_misuse_handler" >&5
-printf "%s\n" "$ac_cv_search_sodium_set_misuse_handler" >&6; }
-ac_res=$ac_cv_search_sodium_set_misuse_handler
-if test "$ac_res" != no
-then :
- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
-
-printf "%s\n" "#define SODIUM_MISUSE_HANDLER 1" >>confdefs.h
-
-
-fi
-
-
-
-printf "%s\n" "#define USE_DNSCRYPT 1" >>confdefs.h
-
- ENABLE_DNSCRYPT=1
-
-
- DNSCRYPT_SRC="dnscrypt/dnscrypt.c"
-
- DNSCRYPT_OBJ="dnscrypt.lo"
-
-
- else
- ENABLE_DNSCRYPT_XCHACHA20=0
-
-
- ENABLE_DNSCRYPT=0
-
-
-
- fi
-
-
-# check for cachedb if requested
-# Check whether --enable-cachedb was given.
-if test ${enable_cachedb+y}
-then :
- enableval=$enable_cachedb;
-fi
-
-# turn on cachedb when hiredis support is enabled.
-if test "$found_libhiredis" = "yes"; then enable_cachedb="yes"; fi
-case "$enable_cachedb" in
- yes)
-
-printf "%s\n" "#define USE_CACHEDB 1" >>confdefs.h
-
- CACHEDB_SRC="cachedb/cachedb.c cachedb/redis.c"
-
- CACHEDB_OBJ="cachedb.lo redis.lo"
-
- ;;
- no|*)
- # nothing
- ;;
-esac
-
-# check for ipsecmod if requested
-# Check whether --enable-ipsecmod was given.
-if test ${enable_ipsecmod+y}
-then :
- enableval=$enable_ipsecmod;
-fi
-
-case "$enable_ipsecmod" in
- yes)
-
-printf "%s\n" "#define USE_IPSECMOD 1" >>confdefs.h
-
- IPSECMOD_OBJ="ipsecmod.lo ipsecmod-whitelist.lo"
-
- IPSECMOD_HEADER='$(srcdir)/ipsecmod/ipsecmod.h $(srcdir)/ipsecmod/ipsecmod-whitelist.h'
-
- ;;
- no|*)
- # nothing
- ;;
-esac
-
-# check for ipset if requested
-# Check whether --enable-ipset was given.
-if test ${enable_ipset+y}
-then :
- enableval=$enable_ipset;
-fi
-
-case "$enable_ipset" in
- yes)
-
-printf "%s\n" "#define USE_IPSET 1" >>confdefs.h
-
- IPSET_SRC="ipset/ipset.c"
-
- IPSET_OBJ="ipset.lo"
-
-
- # BSD's pf
- for ac_header in net/pfvar.h
-do :
- ac_fn_c_check_header_compile "$LINENO" "net/pfvar.h" "ac_cv_header_net_pfvar_h" "
- #include <netinet/in.h>
- #include <net/if.h>
-
-"
-if test "x$ac_cv_header_net_pfvar_h" = xyes
-then :
- printf "%s\n" "#define HAVE_NET_PFVAR_H 1" >>confdefs.h
-
-else $as_nop
-
- # mnl
-
-# Check whether --with-libmnl was given.
-if test ${with_libmnl+y}
-then :
- withval=$with_libmnl;
-else $as_nop
- withval="yes"
-fi
-
- found_libmnl="no"
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libmnl" >&5
-printf %s "checking for libmnl... " >&6; }
- if test x_$withval = x_ -o x_$withval = x_yes; then
- withval="/usr/local /opt/local /usr/lib /usr/pkg /usr/sfw /usr"
- fi
- for dir in $withval ; do
- if test -f "$dir/include/libmnl/libmnl.h" -o -f "$dir/include/libmnl/libmnl/libmnl.h"; then
- found_libmnl="yes"
- extralibmnl=""
- if test -f "$dir/include/libmnl/libmnl/libmnl.h"; then
- extralibmnl="/libmnl"
- fi
- if test "$dir" != "/usr" -o -n "$extralibmnl"; then
- CPPFLAGS="$CPPFLAGS -I$dir/include$extralibmnl"
- fi
- if test "$dir" != "/usr"; then
- LDFLAGS="$LDFLAGS -L$dir/lib"
- fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found in $dir" >&5
-printf "%s\n" "found in $dir" >&6; }
- LIBS="$LIBS -lmnl"
- break;
- fi
- done
- if test x_$found_libmnl != x_yes; then
- as_fn_error $? "Could not find libmnl, libmnl.h" "$LINENO" 5
- fi
-
-fi
-
-done
- ;;
- no|*)
- # nothing
- ;;
-esac
-# Check whether --enable-explicit-port-randomisation was given.
-if test ${enable_explicit_port_randomisation+y}
-then :
- enableval=$enable_explicit_port_randomisation;
-fi
-
-case "$enable_explicit_port_randomisation" in
- no)
-
-printf "%s\n" "#define DISABLE_EXPLICIT_PORT_RANDOMISATION 1" >>confdefs.h
-
- ;;
- yes|*)
- ;;
-esac
-
-if echo "$host" | $GREP -i -e linux >/dev/null; then
- # Check whether --enable-linux-ip-local-port-range was given.
-if test ${enable_linux_ip_local_port_range+y}
-then :
- enableval=$enable_linux_ip_local_port_range;
-fi
-
- case "$enable_linux_ip_local_port_range" in
- yes)
-
-printf "%s\n" "#define USE_LINUX_IP_LOCAL_PORT_RANGE 1" >>confdefs.h
-
- ;;
- no|*)
- ;;
- esac
-fi
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if ${MAKE:-make} supports $< with implicit rule in scope" >&5
-printf %s "checking if ${MAKE:-make} supports $< with implicit rule in scope... " >&6; }
-# on openBSD, the implicit rule make $< work.
-# on Solaris, it does not work ($? is changed sources, $^ lists dependencies).
-# gmake works.
-cat >conftest.make <<EOF
-all: conftest.lo
-
-conftest.lo foo.lo bla.lo:
- if test -f "\$<"; then touch \$@; fi
-
-.SUFFIXES: .lo
-.c.lo:
- if test -f "\$<"; then touch \$@; fi
-
-conftest.lo: conftest.dir/conftest.c
-EOF
-mkdir conftest.dir
-touch conftest.dir/conftest.c
-rm -f conftest.lo conftest.c
-${MAKE:-make} -f conftest.make >/dev/null
-rm -f conftest.make conftest.c conftest.dir/conftest.c
-rm -rf conftest.dir
-if test ! -f conftest.lo; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- SOURCEDETERMINE='echo "$^" | awk "-F " "{print \$$1;}" > .source'
- SOURCEFILE='`cat .source`'
-else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
- SOURCEDETERMINE=':'
- SOURCEFILE='$<'
-fi
-rm -f conftest.lo
-
-
-
-# see if we want to build the library or everything
-ALLTARGET="alltargets"
-INSTALLTARGET="install-all"
-
-# Check whether --with-libunbound-only was given.
-if test ${with_libunbound_only+y}
-then :
- withval=$with_libunbound_only;
- if test "$withval" = "yes"; then
- ALLTARGET="lib"
- INSTALLTARGET="install-lib"
- fi
-
-fi
-
-if test $ALLTARGET = "alltargets"; then
- if test $USE_NSS = "yes"; then
- as_fn_error $? "--with-nss can only be used in combination with --with-libunbound-only." "$LINENO" 5
- fi
- if test $USE_NETTLE = "yes"; then
- as_fn_error $? "--with-nettle can only be used in combination with --with-libunbound-only." "$LINENO" 5
- fi
-fi
-
-
-
-
-
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Stripping extension flags..." >&5
-printf "%s\n" "$as_me: Stripping extension flags..." >&6;}
-
- if echo $CFLAGS | grep " -D_GNU_SOURCE" >/dev/null 2>&1; then
- CFLAGS="`echo $CFLAGS | sed -e 's/ -D_GNU_SOURCE//g'`"
-
-printf "%s\n" "#define OMITTED__D_GNU_SOURCE 1" >>confdefs.h
-
- fi
-
-
- if echo $CFLAGS | grep " -D_BSD_SOURCE" >/dev/null 2>&1; then
- CFLAGS="`echo $CFLAGS | sed -e 's/ -D_BSD_SOURCE//g'`"
-
-printf "%s\n" "#define OMITTED__D_BSD_SOURCE 1" >>confdefs.h
-
- fi
-
-
- if echo $CFLAGS | grep " -D_DEFAULT_SOURCE" >/dev/null 2>&1; then
- CFLAGS="`echo $CFLAGS | sed -e 's/ -D_DEFAULT_SOURCE//g'`"
-
-printf "%s\n" "#define OMITTED__D_DEFAULT_SOURCE 1" >>confdefs.h
-
- fi
-
-
- if echo $CFLAGS | grep " -D__EXTENSIONS__" >/dev/null 2>&1; then
- CFLAGS="`echo $CFLAGS | sed -e 's/ -D__EXTENSIONS__//g'`"
-
-printf "%s\n" "#define OMITTED__D__EXTENSIONS__ 1" >>confdefs.h
-
- fi
-
-
- if echo $CFLAGS | grep " -D_POSIX_C_SOURCE=200112" >/dev/null 2>&1; then
- CFLAGS="`echo $CFLAGS | sed -e 's/ -D_POSIX_C_SOURCE=200112//g'`"
-
-printf "%s\n" "#define OMITTED__D_POSIX_C_SOURCE_200112 1" >>confdefs.h
-
- fi
-
-
- if echo $CFLAGS | grep " -D_XOPEN_SOURCE=600" >/dev/null 2>&1; then
- CFLAGS="`echo $CFLAGS | sed -e 's/ -D_XOPEN_SOURCE=600//g'`"
-
-printf "%s\n" "#define OMITTED__D_XOPEN_SOURCE_600 1" >>confdefs.h
-
- fi
-
-
- if echo $CFLAGS | grep " -D_XOPEN_SOURCE_EXTENDED=1" >/dev/null 2>&1; then
- CFLAGS="`echo $CFLAGS | sed -e 's/ -D_XOPEN_SOURCE_EXTENDED=1//g'`"
-
-printf "%s\n" "#define OMITTED__D_XOPEN_SOURCE_EXTENDED_1 1" >>confdefs.h
-
- fi
-
-
- if echo $CFLAGS | grep " -D_ALL_SOURCE" >/dev/null 2>&1; then
- CFLAGS="`echo $CFLAGS | sed -e 's/ -D_ALL_SOURCE//g'`"
-
-printf "%s\n" "#define OMITTED__D_ALL_SOURCE 1" >>confdefs.h
-
- fi
-
-
- if echo $CFLAGS | grep " -D_LARGEFILE_SOURCE=1" >/dev/null 2>&1; then
- CFLAGS="`echo $CFLAGS | sed -e 's/ -D_LARGEFILE_SOURCE=1//g'`"
-
-printf "%s\n" "#define OMITTED__D_LARGEFILE_SOURCE_1 1" >>confdefs.h
-
- fi
-
-
-if test -n "$LATE_LDFLAGS"; then
- LDFLAGS="$LATE_LDFLAGS $LDFLAGS"
-fi
-# remove start spaces
-LDFLAGS=`echo "$LDFLAGS"|sed -e 's/^ *//'`
-LIBS=`echo "$LIBS"|sed -e 's/^ *//'`
-
-
-printf "%s\n" "#define MAXSYSLOGMSGLEN 10240" >>confdefs.h
-
-
-
-
-version=1.24.2
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for build time" >&5
-printf %s "checking for build time... " >&6; }
-ax_date_fmt="%b %e, %Y"
-if test x"$SOURCE_DATE_EPOCH" = x
-then :
- date=`date "+$ax_date_fmt"`
-else $as_nop
- ax_build_date=`date -u -d "@$SOURCE_DATE_EPOCH" "+$ax_date_fmt" 2>/dev/null \
- || date -u -r "$SOURCE_DATE_EPOCH" "+$ax_date_fmt" 2>/dev/null`
- if test x"$ax_build_date" = x
-then :
- as_fn_error $? "malformed SOURCE_DATE_EPOCH" "$LINENO" 5
-else $as_nop
- date=$ax_build_date
-fi
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $date" >&5
-printf "%s\n" "$date" >&6; }
-
-
-
-ac_config_files="$ac_config_files Makefile doc/example.conf doc/libunbound.3 doc/unbound.8 doc/unbound-anchor.8 doc/unbound-checkconf.8 doc/unbound.conf.5 doc/unbound-control.8 doc/unbound-host.1 smallapp/unbound-control-setup.sh dnstap/dnstap_config.h dnscrypt/dnscrypt_config.h contrib/libunbound.pc contrib/unbound.socket contrib/unbound.service contrib/unbound_portable.service"
-
-ac_config_headers="$ac_config_headers config.h"
-
-cat >confcache <<\_ACEOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs, see configure's option --config-cache.
-# It is not useful on other systems. If it contains results you don't
-# want to keep, you may remove or edit it.
-#
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
-#
-# `ac_cv_env_foo' variables (set or unset) will be overridden when
-# loading this file, other *unset* `ac_cv_foo' will be assigned the
-# following values.
-
-_ACEOF
-
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, we kill variables containing newlines.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(
- for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
- eval ac_val=\$$ac_var
- case $ac_val in #(
- *${as_nl}*)
- case $ac_var in #(
- *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
- esac
- case $ac_var in #(
- _ | IFS | as_nl) ;; #(
- BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
- *) { eval $ac_var=; unset $ac_var;} ;;
- esac ;;
- esac
- done
-
- (set) 2>&1 |
- case $as_nl`(ac_space=' '; set) 2>&1` in #(
- *${as_nl}ac_space=\ *)
- # `set' does not quote correctly, so add quotes: double-quote
- # substitution turns \\\\ into \\, and sed turns \\ into \.
- sed -n \
- "s/'/'\\\\''/g;
- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
- ;; #(
- *)
- # `set' quotes correctly as required by POSIX, so do not add quotes.
- sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
- ;;
- esac |
- sort
-) |
- sed '
- /^ac_cv_env_/b end
- t clear
- :clear
- s/^\([^=]*\)=\(.*[{}].*\)$/test ${\1+y} || &/
- t end
- s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
- :end' >>confcache
-if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
- if test -w "$cache_file"; then
- if test "x$cache_file" != "x/dev/null"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
-printf "%s\n" "$as_me: updating cache $cache_file" >&6;}
- if test ! -f "$cache_file" || test -h "$cache_file"; then
- cat confcache >"$cache_file"
- else
- case $cache_file in #(
- */* | ?:*)
- mv -f confcache "$cache_file"$$ &&
- mv -f "$cache_file"$$ "$cache_file" ;; #(
- *)
- mv -f confcache "$cache_file" ;;
- esac
- fi
- fi
- else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
-printf "%s\n" "$as_me: not updating unwritable cache $cache_file" >&6;}
- fi
-fi
-rm -f confcache
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-DEFS=-DHAVE_CONFIG_H
-
-ac_libobjs=
-ac_ltlibobjs=
-U=
-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
- # 1. Remove the extension, and $U if already installed.
- ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
- ac_i=`printf "%s\n" "$ac_i" | sed "$ac_script"`
- # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
- # will be set to the directory where LIBOBJS objects are built.
- as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
- as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
-done
-LIBOBJS=$ac_libobjs
-
-LTLIBOBJS=$ac_ltlibobjs
-
-
-if test -z "${USE_SYSTEMD_TRUE}" && test -z "${USE_SYSTEMD_FALSE}"; then
- as_fn_error $? "conditional \"USE_SYSTEMD\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-
-: "${CONFIG_STATUS=./config.status}"
-ac_write_fail=0
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
-printf "%s\n" "$as_me: creating $CONFIG_STATUS" >&6;}
-as_write_fail=0
-cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
-#! $SHELL
-# Generated by $as_me.
-# Run this file to recreate the current configuration.
-# Compiler output produced by configure, useful for debugging
-# configure, is in config.log if it exists.
-
-debug=false
-ac_cs_recheck=false
-ac_cs_silent=false
-
-SHELL=\${CONFIG_SHELL-$SHELL}
-export SHELL
-_ASEOF
-cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
-## -------------------- ##
-## M4sh Initialization. ##
-## -------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-as_nop=:
-if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
-then :
- emulate sh
- NULLCMD=:
- # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else $as_nop
- case `(set -o) 2>/dev/null` in #(
- *posix*) :
- set -o posix ;; #(
- *) :
- ;;
-esac
-fi
-
-
-
-# Reset variables that may have inherited troublesome values from
-# the environment.
-
-# IFS needs to be set, to space, tab, and newline, in precisely that order.
-# (If _AS_PATH_WALK were called with IFS unset, it would have the
-# side effect of setting IFS to empty, thus disabling word splitting.)
-# Quoting is to prevent editors from complaining about space-tab.
-as_nl='
-'
-export as_nl
-IFS=" "" $as_nl"
-
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# Ensure predictable behavior from utilities with locale-dependent output.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# We cannot yet rely on "unset" to work, but we need these variables
-# to be unset--not just set to an empty or harmless value--now, to
-# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct
-# also avoids known problems related to "unset" and subshell syntax
-# in other old shells (e.g. bash 2.01 and pdksh 5.2.14).
-for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH
-do eval test \${$as_var+y} \
- && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-
-# Ensure that fds 0, 1, and 2 are open.
-if (exec 3>&0) 2>/dev/null; then :; else exec 0</dev/null; fi
-if (exec 3>&1) 2>/dev/null; then :; else exec 1>/dev/null; fi
-if (exec 3>&2) ; then :; else exec 2>/dev/null; fi
-
-# The user is always right.
-if ${PATH_SEPARATOR+false} :; then
- PATH_SEPARATOR=:
- (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
- (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
- PATH_SEPARATOR=';'
- }
-fi
-
-
-# Find who we are. Look in the path if we contain no directory separator.
-as_myself=
-case $0 in #((
- *[\\/]* ) as_myself=$0 ;;
- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- case $as_dir in #(((
- '') as_dir=./ ;;
- */) ;;
- *) as_dir=$as_dir/ ;;
- esac
- test -r "$as_dir$0" && as_myself=$as_dir$0 && break
- done
-IFS=$as_save_IFS
-
- ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
- as_myself=$0
-fi
-if test ! -f "$as_myself"; then
- printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
- exit 1
-fi
-
-
-
-# as_fn_error STATUS ERROR [LINENO LOG_FD]
-# ----------------------------------------
-# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with STATUS, using 1 if that was 0.
-as_fn_error ()
-{
- as_status=$1; test $as_status -eq 0 && as_status=1
- if test "$4"; then
- as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
- fi
- printf "%s\n" "$as_me: error: $2" >&2
- as_fn_exit $as_status
-} # as_fn_error
-
-
-
-# as_fn_set_status STATUS
-# -----------------------
-# Set $? to STATUS, without forking.
-as_fn_set_status ()
-{
- return $1
-} # as_fn_set_status
-
-# as_fn_exit STATUS
-# -----------------
-# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
-as_fn_exit ()
-{
- set +e
- as_fn_set_status $1
- exit $1
-} # as_fn_exit
-
-# as_fn_unset VAR
-# ---------------
-# Portably unset VAR.
-as_fn_unset ()
-{
- { eval $1=; unset $1;}
-}
-as_unset=as_fn_unset
-
-# as_fn_append VAR VALUE
-# ----------------------
-# Append the text in VALUE to the end of the definition contained in VAR. Take
-# advantage of any shell optimizations that allow amortized linear growth over
-# repeated appends, instead of the typical quadratic growth present in naive
-# implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null
-then :
- eval 'as_fn_append ()
- {
- eval $1+=\$2
- }'
-else $as_nop
- as_fn_append ()
- {
- eval $1=\$$1\$2
- }
-fi # as_fn_append
-
-# as_fn_arith ARG...
-# ------------------
-# Perform arithmetic evaluation on the ARGs, and store the result in the
-# global $as_val. Take advantage of shells that can avoid forks. The arguments
-# must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null
-then :
- eval 'as_fn_arith ()
- {
- as_val=$(( $* ))
- }'
-else $as_nop
- as_fn_arith ()
- {
- as_val=`expr "$@" || test $? -eq 1`
- }
-fi # as_fn_arith
-
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
- test "X`expr 00001 : '.*\(...\)'`" = X001; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
- as_basename=basename
-else
- as_basename=false
-fi
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
- as_dirname=dirname
-else
- as_dirname=false
-fi
-
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-printf "%s\n" X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{
- s//\1/
- q
- }
- /^X\/\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\/\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
-
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-
-# Determine whether it's possible to make 'echo' print without a newline.
-# These variables are no longer used directly by Autoconf, but are AC_SUBSTed
-# for compatibility with existing Makefiles.
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in #(((((
--n*)
- case `echo 'xy\c'` in
- *c*) ECHO_T=' ';; # ECHO_T is single tab character.
- xy) ECHO_C='\c';;
- *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
- ECHO_T=' ';;
- esac;;
-*)
- ECHO_N='-n';;
-esac
-
-# For backward compatibility with old third-party macros, we provide
-# the shell variables $as_echo and $as_echo_n. New code should use
-# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively.
-as_echo='printf %s\n'
-as_echo_n='printf %s'
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
- rm -f conf$$.dir/conf$$.file
-else
- rm -f conf$$.dir
- mkdir conf$$.dir 2>/dev/null
-fi
-if (echo >conf$$.file) 2>/dev/null; then
- if ln -s conf$$.file conf$$ 2>/dev/null; then
- as_ln_s='ln -s'
- # ... but there are two gotchas:
- # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
- # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -pR'.
- ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -pR'
- elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
- else
- as_ln_s='cp -pR'
- fi
-else
- as_ln_s='cp -pR'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-
-# as_fn_mkdir_p
-# -------------
-# Create "$as_dir" as a directory, including parents if necessary.
-as_fn_mkdir_p ()
-{
-
- case $as_dir in #(
- -*) as_dir=./$as_dir;;
- esac
- test -d "$as_dir" || eval $as_mkdir_p || {
- as_dirs=
- while :; do
- case $as_dir in #(
- *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
- *) as_qdir=$as_dir;;
- esac
- as_dirs="'$as_qdir' $as_dirs"
- as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-printf "%s\n" X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- test -d "$as_dir" && break
- done
- test -z "$as_dirs" || eval "mkdir $as_dirs"
- } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
-
-
-} # as_fn_mkdir_p
-if mkdir -p . 2>/dev/null; then
- as_mkdir_p='mkdir -p "$as_dir"'
-else
- test -d ./-p && rmdir ./-p
- as_mkdir_p=false
-fi
-
-
-# as_fn_executable_p FILE
-# -----------------------
-# Test if FILE is an executable regular file.
-as_fn_executable_p ()
-{
- test -f "$1" && test -x "$1"
-} # as_fn_executable_p
-as_test_x='test -x'
-as_executable_p=as_fn_executable_p
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-exec 6>&1
-## ----------------------------------- ##
-## Main body of $CONFIG_STATUS script. ##
-## ----------------------------------- ##
-_ASEOF
-test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# Save the log message, to keep $0 and so on meaningful, and to
-# report actual input values of CONFIG_FILES etc. instead of their
-# values after options handling.
-ac_log="
-This file was extended by unbound $as_me 1.24.2, which was
-generated by GNU Autoconf 2.71. Invocation command line was
-
- CONFIG_FILES = $CONFIG_FILES
- CONFIG_HEADERS = $CONFIG_HEADERS
- CONFIG_LINKS = $CONFIG_LINKS
- CONFIG_COMMANDS = $CONFIG_COMMANDS
- $ $0 $@
-
-on `(hostname || uname -n) 2>/dev/null | sed 1q`
-"
-
-_ACEOF
-
-case $ac_config_files in *"
-"*) set x $ac_config_files; shift; ac_config_files=$*;;
-esac
-
-case $ac_config_headers in *"
-"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
-esac
-
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-# Files that config.status was made for.
-config_files="$ac_config_files"
-config_headers="$ac_config_headers"
-config_commands="$ac_config_commands"
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-ac_cs_usage="\
-\`$as_me' instantiates files and other configuration actions
-from templates according to the current configuration. Unless the files
-and actions are specified as TAGs, all are instantiated by default.
-
-Usage: $0 [OPTION]... [TAG]...
-
- -h, --help print this help, then exit
- -V, --version print version number and configuration settings, then exit
- --config print configuration, then exit
- -q, --quiet, --silent
- do not print progress messages
- -d, --debug don't remove temporary files
- --recheck update $as_me by reconfiguring in the same conditions
- --file=FILE[:TEMPLATE]
- instantiate the configuration file FILE
- --header=FILE[:TEMPLATE]
- instantiate the configuration header FILE
-
-Configuration files:
-$config_files
-
-Configuration headers:
-$config_headers
-
-Configuration commands:
-$config_commands
-
-Report bugs to <unbound-bugs@nlnetlabs.nl or https://github.com/NLnetLabs/unbound/issues>."
-
-_ACEOF
-ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"`
-ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"`
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_cs_config='$ac_cs_config_escaped'
-ac_cs_version="\\
-unbound config.status 1.24.2
-configured by $0, generated by GNU Autoconf 2.71,
- with options \\"\$ac_cs_config\\"
-
-Copyright (C) 2021 Free Software Foundation, Inc.
-This config.status script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it."
-
-ac_pwd='$ac_pwd'
-srcdir='$srcdir'
-AWK='$AWK'
-test -n "\$AWK" || AWK=awk
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# The default lists apply if the user does not specify any file.
-ac_need_defaults=:
-while test $# != 0
-do
- case $1 in
- --*=?*)
- ac_option=`expr "X$1" : 'X\([^=]*\)='`
- ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
- ac_shift=:
- ;;
- --*=)
- ac_option=`expr "X$1" : 'X\([^=]*\)='`
- ac_optarg=
- ac_shift=:
- ;;
- *)
- ac_option=$1
- ac_optarg=$2
- ac_shift=shift
- ;;
- esac
-
- case $ac_option in
- # Handling of the options.
- -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
- ac_cs_recheck=: ;;
- --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
- printf "%s\n" "$ac_cs_version"; exit ;;
- --config | --confi | --conf | --con | --co | --c )
- printf "%s\n" "$ac_cs_config"; exit ;;
- --debug | --debu | --deb | --de | --d | -d )
- debug=: ;;
- --file | --fil | --fi | --f )
- $ac_shift
- case $ac_optarg in
- *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
- '') as_fn_error $? "missing file argument" ;;
- esac
- as_fn_append CONFIG_FILES " '$ac_optarg'"
- ac_need_defaults=false;;
- --header | --heade | --head | --hea )
- $ac_shift
- case $ac_optarg in
- *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
- esac
- as_fn_append CONFIG_HEADERS " '$ac_optarg'"
- ac_need_defaults=false;;
- --he | --h)
- # Conflict between --help and --header
- as_fn_error $? "ambiguous option: \`$1'
-Try \`$0 --help' for more information.";;
- --help | --hel | -h )
- printf "%s\n" "$ac_cs_usage"; exit ;;
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil | --si | --s)
- ac_cs_silent=: ;;
-
- # This is an error.
- -*) as_fn_error $? "unrecognized option: \`$1'
-Try \`$0 --help' for more information." ;;
-
- *) as_fn_append ac_config_targets " $1"
- ac_need_defaults=false ;;
-
- esac
- shift
-done
-
-ac_configure_extra_args=
-
-if $ac_cs_silent; then
- exec 6>/dev/null
- ac_configure_extra_args="$ac_configure_extra_args --silent"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-if \$ac_cs_recheck; then
- set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
- shift
- \printf "%s\n" "running CONFIG_SHELL=$SHELL \$*" >&6
- CONFIG_SHELL='$SHELL'
- export CONFIG_SHELL
- exec "\$@"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-exec 5>>config.log
-{
- echo
- sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## Running $as_me. ##
-_ASBOX
- printf "%s\n" "$ac_log"
-} >&5
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-#
-# INIT-COMMANDS
-#
-
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-sed_quote_subst='$sed_quote_subst'
-double_quote_subst='$double_quote_subst'
-delay_variable_subst='$delay_variable_subst'
-macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`'
-macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`'
-enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`'
-enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`'
-pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`'
-enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`'
-shared_archive_member_spec='`$ECHO "$shared_archive_member_spec" | $SED "$delay_single_quote_subst"`'
-SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`'
-ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`'
-PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`'
-host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`'
-host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`'
-host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`'
-build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`'
-build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`'
-build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`'
-SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`'
-Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`'
-GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`'
-EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`'
-FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`'
-LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`'
-NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`'
-LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`'
-max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`'
-ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`'
-exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
-lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
-lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
-lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
-lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`'
-lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`'
-reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
-reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
-OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
-deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
-file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
-file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`'
-want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`'
-DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`'
-sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`'
-AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
-AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
-archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`'
-STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
-RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
-old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
-old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
-old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`'
-lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`'
-CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`'
-CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`'
-compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`'
-GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_import='`$ECHO "$lt_cv_sys_global_symbol_to_import" | $SED "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
-lt_cv_nm_interface='`$ECHO "$lt_cv_nm_interface" | $SED "$delay_single_quote_subst"`'
-nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`'
-lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`'
-lt_cv_truncate_bin='`$ECHO "$lt_cv_truncate_bin" | $SED "$delay_single_quote_subst"`'
-objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`'
-MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`'
-lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`'
-need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`'
-MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`'
-DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
-NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
-LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
-OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`'
-OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`'
-libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`'
-shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`'
-extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
-archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`'
-enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`'
-export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`'
-whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`'
-compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`'
-old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`'
-old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
-archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`'
-archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`'
-module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`'
-module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`'
-with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`'
-allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`'
-no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`'
-hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`'
-hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`'
-hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`'
-hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`'
-hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`'
-hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
-inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
-link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
-always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`'
-export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`'
-exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`'
-include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`'
-prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`'
-postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`'
-file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
-variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
-need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
-need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`'
-version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`'
-runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`'
-shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`'
-shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`'
-libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`'
-library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`'
-soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`'
-install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`'
-postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`'
-postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
-finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`'
-finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`'
-hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`'
-sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`'
-configure_time_dlsearch_path='`$ECHO "$configure_time_dlsearch_path" | $SED "$delay_single_quote_subst"`'
-configure_time_lt_sys_library_path='`$ECHO "$configure_time_lt_sys_library_path" | $SED "$delay_single_quote_subst"`'
-hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`'
-enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`'
-enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`'
-enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`'
-old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`'
-striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`'
-
-LTCC='$LTCC'
-LTCFLAGS='$LTCFLAGS'
-compiler='$compiler_DEFAULT'
-
-# A function that is used when there is no print builtin or printf.
-func_fallback_echo ()
-{
- eval 'cat <<_LTECHO_EOF
-\$1
-_LTECHO_EOF'
-}
-
-# Quote evaled strings.
-for var in SHELL \
-ECHO \
-PATH_SEPARATOR \
-SED \
-GREP \
-EGREP \
-FGREP \
-LD \
-NM \
-LN_S \
-lt_SP2NL \
-lt_NL2SP \
-reload_flag \
-OBJDUMP \
-deplibs_check_method \
-file_magic_cmd \
-file_magic_glob \
-want_nocaseglob \
-DLLTOOL \
-sharedlib_from_linklib_cmd \
-AR \
-AR_FLAGS \
-archiver_list_spec \
-STRIP \
-RANLIB \
-CC \
-CFLAGS \
-compiler \
-lt_cv_sys_global_symbol_pipe \
-lt_cv_sys_global_symbol_to_cdecl \
-lt_cv_sys_global_symbol_to_import \
-lt_cv_sys_global_symbol_to_c_name_address \
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
-lt_cv_nm_interface \
-nm_file_list_spec \
-lt_cv_truncate_bin \
-lt_prog_compiler_no_builtin_flag \
-lt_prog_compiler_pic \
-lt_prog_compiler_wl \
-lt_prog_compiler_static \
-lt_cv_prog_compiler_c_o \
-need_locks \
-MANIFEST_TOOL \
-DSYMUTIL \
-NMEDIT \
-LIPO \
-OTOOL \
-OTOOL64 \
-shrext_cmds \
-export_dynamic_flag_spec \
-whole_archive_flag_spec \
-compiler_needs_object \
-with_gnu_ld \
-allow_undefined_flag \
-no_undefined_flag \
-hardcode_libdir_flag_spec \
-hardcode_libdir_separator \
-exclude_expsyms \
-include_expsyms \
-file_list_spec \
-variables_saved_for_relink \
-libname_spec \
-library_names_spec \
-soname_spec \
-install_override_mode \
-finish_eval \
-old_striplib \
-striplib; do
- case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
- *[\\\\\\\`\\"\\\$]*)
- eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
- ;;
- *)
- eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
- ;;
- esac
-done
-
-# Double-quote double-evaled strings.
-for var in reload_cmds \
-old_postinstall_cmds \
-old_postuninstall_cmds \
-old_archive_cmds \
-extract_expsyms_cmds \
-old_archive_from_new_cmds \
-old_archive_from_expsyms_cmds \
-archive_cmds \
-archive_expsym_cmds \
-module_cmds \
-module_expsym_cmds \
-export_symbols_cmds \
-prelink_cmds \
-postlink_cmds \
-postinstall_cmds \
-postuninstall_cmds \
-finish_cmds \
-sys_lib_search_path_spec \
-configure_time_dlsearch_path \
-configure_time_lt_sys_library_path; do
- case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
- *[\\\\\\\`\\"\\\$]*)
- eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
- ;;
- *)
- eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
- ;;
- esac
-done
-
-ac_aux_dir='$ac_aux_dir'
-
-# See if we are running on zsh, and set the options that allow our
-# commands through without removal of \ escapes INIT.
-if test -n "\${ZSH_VERSION+set}"; then
- setopt NO_GLOB_SUBST
-fi
-
-
- PACKAGE='$PACKAGE'
- VERSION='$VERSION'
- RM='$RM'
- ofile='$ofile'
-
-
-
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-
-# Handling of arguments.
-for ac_config_target in $ac_config_targets
-do
- case $ac_config_target in
- "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
- "disable-rpath") CONFIG_COMMANDS="$CONFIG_COMMANDS disable-rpath" ;;
- "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
- "doc/example.conf") CONFIG_FILES="$CONFIG_FILES doc/example.conf" ;;
- "doc/libunbound.3") CONFIG_FILES="$CONFIG_FILES doc/libunbound.3" ;;
- "doc/unbound.8") CONFIG_FILES="$CONFIG_FILES doc/unbound.8" ;;
- "doc/unbound-anchor.8") CONFIG_FILES="$CONFIG_FILES doc/unbound-anchor.8" ;;
- "doc/unbound-checkconf.8") CONFIG_FILES="$CONFIG_FILES doc/unbound-checkconf.8" ;;
- "doc/unbound.conf.5") CONFIG_FILES="$CONFIG_FILES doc/unbound.conf.5" ;;
- "doc/unbound-control.8") CONFIG_FILES="$CONFIG_FILES doc/unbound-control.8" ;;
- "doc/unbound-host.1") CONFIG_FILES="$CONFIG_FILES doc/unbound-host.1" ;;
- "smallapp/unbound-control-setup.sh") CONFIG_FILES="$CONFIG_FILES smallapp/unbound-control-setup.sh" ;;
- "dnstap/dnstap_config.h") CONFIG_FILES="$CONFIG_FILES dnstap/dnstap_config.h" ;;
- "dnscrypt/dnscrypt_config.h") CONFIG_FILES="$CONFIG_FILES dnscrypt/dnscrypt_config.h" ;;
- "contrib/libunbound.pc") CONFIG_FILES="$CONFIG_FILES contrib/libunbound.pc" ;;
- "contrib/unbound.socket") CONFIG_FILES="$CONFIG_FILES contrib/unbound.socket" ;;
- "contrib/unbound.service") CONFIG_FILES="$CONFIG_FILES contrib/unbound.service" ;;
- "contrib/unbound_portable.service") CONFIG_FILES="$CONFIG_FILES contrib/unbound_portable.service" ;;
- "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
-
- *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
- esac
-done
-
-
-# If the user did not use the arguments to specify the items to instantiate,
-# then the envvar interface is used. Set only those that are not.
-# We use the long form for the default assignment because of an extremely
-# bizarre bug on SunOS 4.1.3.
-if $ac_need_defaults; then
- test ${CONFIG_FILES+y} || CONFIG_FILES=$config_files
- test ${CONFIG_HEADERS+y} || CONFIG_HEADERS=$config_headers
- test ${CONFIG_COMMANDS+y} || CONFIG_COMMANDS=$config_commands
-fi
-
-# Have a temporary directory for convenience. Make it in the build tree
-# simply because there is no reason against having it here, and in addition,
-# creating and moving files from /tmp can sometimes cause problems.
-# Hook for its removal unless debugging.
-# Note that there is a small window in which the directory will not be cleaned:
-# after its creation but before its name has been assigned to `$tmp'.
-$debug ||
-{
- tmp= ac_tmp=
- trap 'exit_status=$?
- : "${ac_tmp:=$tmp}"
- { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
-' 0
- trap 'as_fn_exit 1' 1 2 13 15
-}
-# Create a (secure) tmp directory for tmp files.
-
-{
- tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
- test -d "$tmp"
-} ||
-{
- tmp=./conf$$-$RANDOM
- (umask 077 && mkdir "$tmp")
-} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
-ac_tmp=$tmp
-
-# Set up the scripts for CONFIG_FILES section.
-# No need to generate them if there are no CONFIG_FILES.
-# This happens for instance with `./config.status config.h'.
-if test -n "$CONFIG_FILES"; then
-
-
-ac_cr=`echo X | tr X '\015'`
-# On cygwin, bash can eat \r inside `` if the user requested igncr.
-# But we know of no other shell where ac_cr would be empty at this
-# point, so we can use a bashism as a fallback.
-if test "x$ac_cr" = x; then
- eval ac_cr=\$\'\\r\'
-fi
-ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
-if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
- ac_cs_awk_cr='\\r'
-else
- ac_cs_awk_cr=$ac_cr
-fi
-
-echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
-_ACEOF
-
-
-{
- echo "cat >conf$$subs.awk <<_ACEOF" &&
- echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
- echo "_ACEOF"
-} >conf$$subs.sh ||
- as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
-ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
-ac_delim='%!_!# '
-for ac_last_try in false false false false false :; do
- . ./conf$$subs.sh ||
- as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
-
- ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
- if test $ac_delim_n = $ac_delim_num; then
- break
- elif $ac_last_try; then
- as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
- else
- ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
- fi
-done
-rm -f conf$$subs.sh
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
-_ACEOF
-sed -n '
-h
-s/^/S["/; s/!.*/"]=/
-p
-g
-s/^[^!]*!//
-:repl
-t repl
-s/'"$ac_delim"'$//
-t delim
-:nl
-h
-s/\(.\{148\}\)..*/\1/
-t more1
-s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
-p
-n
-b repl
-:more1
-s/["\\]/\\&/g; s/^/"/; s/$/"\\/
-p
-g
-s/.\{148\}//
-t nl
-:delim
-h
-s/\(.\{148\}\)..*/\1/
-t more2
-s/["\\]/\\&/g; s/^/"/; s/$/"/
-p
-b
-:more2
-s/["\\]/\\&/g; s/^/"/; s/$/"\\/
-p
-g
-s/.\{148\}//
-t delim
-' <conf$$subs.awk | sed '
-/^[^""]/{
- N
- s/\n//
-}
-' >>$CONFIG_STATUS || ac_write_fail=1
-rm -f conf$$subs.awk
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-_ACAWK
-cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
- for (key in S) S_is_set[key] = 1
- FS = ""
-
-}
-{
- line = $ 0
- nfields = split(line, field, "@")
- substed = 0
- len = length(field[1])
- for (i = 2; i < nfields; i++) {
- key = field[i]
- keylen = length(key)
- if (S_is_set[key]) {
- value = S[key]
- line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
- len += length(value) + length(field[++i])
- substed = 1
- } else
- len += 1 + keylen
- }
-
- print line
-}
-
-_ACAWK
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
- sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
-else
- cat
-fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
- || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
-_ACEOF
-
-# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
-# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
-# trailing colons and then remove the whole line if VPATH becomes empty
-# (actually we leave an empty line to preserve line numbers).
-if test "x$srcdir" = x.; then
- ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
-h
-s///
-s/^/:/
-s/[ ]*$/:/
-s/:\$(srcdir):/:/g
-s/:\${srcdir}:/:/g
-s/:@srcdir@:/:/g
-s/^:*//
-s/:*$//
-x
-s/\(=[ ]*\).*/\1/
-G
-s/\n//
-s/^[^=]*=[ ]*$//
-}'
-fi
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-fi # test -n "$CONFIG_FILES"
-
-# Set up the scripts for CONFIG_HEADERS section.
-# No need to generate them if there are no CONFIG_HEADERS.
-# This happens for instance with `./config.status Makefile'.
-if test -n "$CONFIG_HEADERS"; then
-cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
-BEGIN {
-_ACEOF
-
-# Transform confdefs.h into an awk script `defines.awk', embedded as
-# here-document in config.status, that substitutes the proper values into
-# config.h.in to produce config.h.
-
-# Create a delimiter string that does not exist in confdefs.h, to ease
-# handling of long lines.
-ac_delim='%!_!# '
-for ac_last_try in false false :; do
- ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
- if test -z "$ac_tt"; then
- break
- elif $ac_last_try; then
- as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
- else
- ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
- fi
-done
-
-# For the awk script, D is an array of macro values keyed by name,
-# likewise P contains macro parameters if any. Preserve backslash
-# newline sequences.
-
-ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
-sed -n '
-s/.\{148\}/&'"$ac_delim"'/g
-t rset
-:rset
-s/^[ ]*#[ ]*define[ ][ ]*/ /
-t def
-d
-:def
-s/\\$//
-t bsnl
-s/["\\]/\\&/g
-s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
-D["\1"]=" \3"/p
-s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p
-d
-:bsnl
-s/["\\]/\\&/g
-s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
-D["\1"]=" \3\\\\\\n"\\/p
-t cont
-s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
-t cont
-d
-:cont
-n
-s/.\{148\}/&'"$ac_delim"'/g
-t clear
-:clear
-s/\\$//
-t bsnlc
-s/["\\]/\\&/g; s/^/"/; s/$/"/p
-d
-:bsnlc
-s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
-b cont
-' <confdefs.h | sed '
-s/'"$ac_delim"'/"\\\
-"/g' >>$CONFIG_STATUS || ac_write_fail=1
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
- for (key in D) D_is_set[key] = 1
- FS = ""
-}
-/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
- line = \$ 0
- split(line, arg, " ")
- if (arg[1] == "#") {
- defundef = arg[2]
- mac1 = arg[3]
- } else {
- defundef = substr(arg[1], 2)
- mac1 = arg[2]
- }
- split(mac1, mac2, "(") #)
- macro = mac2[1]
- prefix = substr(line, 1, index(line, defundef) - 1)
- if (D_is_set[macro]) {
- # Preserve the white space surrounding the "#".
- print prefix "define", macro P[macro] D[macro]
- next
- } else {
- # Replace #undef with comments. This is necessary, for example,
- # in the case of _POSIX_SOURCE, which is predefined and required
- # on some systems where configure will not decide to define it.
- if (defundef == "undef") {
- print "/*", prefix defundef, macro, "*/"
- next
- }
- }
-}
-{ print }
-_ACAWK
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
- as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
-fi # test -n "$CONFIG_HEADERS"
-
-
-eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS"
-shift
-for ac_tag
-do
- case $ac_tag in
- :[FHLC]) ac_mode=$ac_tag; continue;;
- esac
- case $ac_mode$ac_tag in
- :[FHL]*:*);;
- :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
- :[FH]-) ac_tag=-:-;;
- :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
- esac
- ac_save_IFS=$IFS
- IFS=:
- set x $ac_tag
- IFS=$ac_save_IFS
- shift
- ac_file=$1
- shift
-
- case $ac_mode in
- :L) ac_source=$1;;
- :[FH])
- ac_file_inputs=
- for ac_f
- do
- case $ac_f in
- -) ac_f="$ac_tmp/stdin";;
- *) # Look for the file first in the build tree, then in the source tree
- # (if the path is not absolute). The absolute path cannot be DOS-style,
- # because $ac_f cannot contain `:'.
- test -f "$ac_f" ||
- case $ac_f in
- [\\/$]*) false;;
- *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
- esac ||
- as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
- esac
- case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
- as_fn_append ac_file_inputs " '$ac_f'"
- done
-
- # Let's still pretend it is `configure' which instantiates (i.e., don't
- # use $as_me), people would be surprised to read:
- # /* config.h. Generated by config.status. */
- configure_input='Generated from '`
- printf "%s\n" "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
- `' by configure.'
- if test x"$ac_file" != x-; then
- configure_input="$ac_file. $configure_input"
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
-printf "%s\n" "$as_me: creating $ac_file" >&6;}
- fi
- # Neutralize special characters interpreted by sed in replacement strings.
- case $configure_input in #(
- *\&* | *\|* | *\\* )
- ac_sed_conf_input=`printf "%s\n" "$configure_input" |
- sed 's/[\\\\&|]/\\\\&/g'`;; #(
- *) ac_sed_conf_input=$configure_input;;
- esac
-
- case $ac_tag in
- *:-:* | *:-) cat >"$ac_tmp/stdin" \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
- esac
- ;;
- esac
-
- ac_dir=`$as_dirname -- "$ac_file" ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$ac_file" : 'X\(//\)[^/]' \| \
- X"$ac_file" : 'X\(//\)$' \| \
- X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
-printf "%s\n" X"$ac_file" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- as_dir="$ac_dir"; as_fn_mkdir_p
- ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
- ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'`
- # A ".." for each directory in $ac_dir_suffix.
- ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
- case $ac_top_builddir_sub in
- "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
- *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
- esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
-
-case $srcdir in
- .) # We are building in place.
- ac_srcdir=.
- ac_top_srcdir=$ac_top_builddir_sub
- ac_abs_top_srcdir=$ac_pwd ;;
- [\\/]* | ?:[\\/]* ) # Absolute name.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir
- ac_abs_top_srcdir=$srcdir ;;
- *) # Relative name.
- ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_build_prefix$srcdir
- ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
-
- case $ac_mode in
- :F)
- #
- # CONFIG_FILE
- #
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# If the template does not know about datarootdir, expand it.
-# FIXME: This hack should be removed a few years after 2.60.
-ac_datarootdir_hack=; ac_datarootdir_seen=
-ac_sed_dataroot='
-/datarootdir/ {
- p
- q
-}
-/@datadir@/p
-/@docdir@/p
-/@infodir@/p
-/@localedir@/p
-/@mandir@/p'
-case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
-*datarootdir*) ac_datarootdir_seen=yes;;
-*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
-printf "%s\n" "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
- ac_datarootdir_hack='
- s&@datadir@&$datadir&g
- s&@docdir@&$docdir&g
- s&@infodir@&$infodir&g
- s&@localedir@&$localedir&g
- s&@mandir@&$mandir&g
- s&\\\${datarootdir}&$datarootdir&g' ;;
-esac
-_ACEOF
-
-# Neutralize VPATH when `$srcdir' = `.'.
-# Shell code in configure.ac might set extrasub.
-# FIXME: do we really want to maintain this feature?
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_sed_extra="$ac_vpsub
-$extrasub
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-:t
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s|@configure_input@|$ac_sed_conf_input|;t t
-s&@top_builddir@&$ac_top_builddir_sub&;t t
-s&@top_build_prefix@&$ac_top_build_prefix&;t t
-s&@srcdir@&$ac_srcdir&;t t
-s&@abs_srcdir@&$ac_abs_srcdir&;t t
-s&@top_srcdir@&$ac_top_srcdir&;t t
-s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
-s&@builddir@&$ac_builddir&;t t
-s&@abs_builddir@&$ac_abs_builddir&;t t
-s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
-$ac_datarootdir_hack
-"
-eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
- >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
-
-test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
- { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
- { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
- "$ac_tmp/out"`; test -z "$ac_out"; } &&
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined. Please make sure it is defined" >&5
-printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined. Please make sure it is defined" >&2;}
-
- rm -f "$ac_tmp/stdin"
- case $ac_file in
- -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
- *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
- esac \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5
- ;;
- :H)
- #
- # CONFIG_HEADER
- #
- if test x"$ac_file" != x-; then
- {
- printf "%s\n" "/* $configure_input */" >&1 \
- && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
- } >"$ac_tmp/config.h" \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5
- if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
-printf "%s\n" "$as_me: $ac_file is unchanged" >&6;}
- else
- rm -f "$ac_file"
- mv "$ac_tmp/config.h" "$ac_file" \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5
- fi
- else
- printf "%s\n" "/* $configure_input */" >&1 \
- && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
- || as_fn_error $? "could not create -" "$LINENO" 5
- fi
- ;;
-
- :C) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
-printf "%s\n" "$as_me: executing $ac_file commands" >&6;}
- ;;
- esac
-
-
- case $ac_file$ac_mode in
- "libtool":C)
-
- # See if we are running on zsh, and set the options that allow our
- # commands through without removal of \ escapes.
- if test -n "${ZSH_VERSION+set}"; then
- setopt NO_GLOB_SUBST
- fi
-
- cfgfile=${ofile}T
- trap "$RM \"$cfgfile\"; exit 1" 1 2 15
- $RM "$cfgfile"
-
- cat <<_LT_EOF >> "$cfgfile"
-#! $SHELL
-# Generated automatically by $as_me ($PACKAGE) $VERSION
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-# NOTE: Changes made to this file will be lost: look at ltmain.sh.
-
-# Provide generalized library-building support services.
-# Written by Gordon Matzigkeit, 1996
-
-# Copyright (C) 2014 Free Software Foundation, Inc.
-# This is free software; see the source for copying conditions. There is NO
-# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-# GNU Libtool is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of of the License, or
-# (at your option) any later version.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program or library that is built
-# using GNU Libtool, you may include this file under the same
-# distribution terms that you use for the rest of that program.
-#
-# GNU Libtool is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-
-# The names of the tagged configurations supported by this script.
-available_tags=''
-
-# Configured defaults for sys_lib_dlsearch_path munging.
-: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"}
-
-# ### BEGIN LIBTOOL CONFIG
-
-# Which release of libtool.m4 was used?
-macro_version=$macro_version
-macro_revision=$macro_revision
-
-# Whether or not to build shared libraries.
-build_libtool_libs=$enable_shared
-
-# Whether or not to build static libraries.
-build_old_libs=$enable_static
-
-# What type of objects to build.
-pic_mode=$pic_mode
-
-# Whether or not to optimize for fast installation.
-fast_install=$enable_fast_install
-
-# Shared archive member basename,for filename based shared library versioning on AIX.
-shared_archive_member_spec=$shared_archive_member_spec
-
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
-
-# An echo program that protects backslashes.
-ECHO=$lt_ECHO
-
-# The PATH separator for the build system.
-PATH_SEPARATOR=$lt_PATH_SEPARATOR
-
-# The host system.
-host_alias=$host_alias
-host=$host
-host_os=$host_os
-
-# The build system.
-build_alias=$build_alias
-build=$build
-build_os=$build_os
-
-# A sed program that does not truncate output.
-SED=$lt_SED
-
-# Sed that helps us avoid accidentally triggering echo(1) options like -n.
-Xsed="\$SED -e 1s/^X//"
-
-# A grep program that handles long lines.
-GREP=$lt_GREP
-
-# An ERE matcher.
-EGREP=$lt_EGREP
-
-# A literal string matcher.
-FGREP=$lt_FGREP
-
-# A BSD- or MS-compatible name lister.
-NM=$lt_NM
-
-# Whether we need soft or hard links.
-LN_S=$lt_LN_S
-
-# What is the maximum length of a command?
-max_cmd_len=$max_cmd_len
-
-# Object file suffix (normally "o").
-objext=$ac_objext
-
-# Executable file suffix (normally "").
-exeext=$exeext
-
-# whether the shell understands "unset".
-lt_unset=$lt_unset
-
-# turn spaces into newlines.
-SP2NL=$lt_lt_SP2NL
-
-# turn newlines into spaces.
-NL2SP=$lt_lt_NL2SP
-
-# convert \$build file names to \$host format.
-to_host_file_cmd=$lt_cv_to_host_file_cmd
-
-# convert \$build files to toolchain format.
-to_tool_file_cmd=$lt_cv_to_tool_file_cmd
-
-# An object symbol dumper.
-OBJDUMP=$lt_OBJDUMP
-
-# Method to check whether dependent libraries are shared objects.
-deplibs_check_method=$lt_deplibs_check_method
-
-# Command to use when deplibs_check_method = "file_magic".
-file_magic_cmd=$lt_file_magic_cmd
-
-# How to find potential files when deplibs_check_method = "file_magic".
-file_magic_glob=$lt_file_magic_glob
-
-# Find potential files using nocaseglob when deplibs_check_method = "file_magic".
-want_nocaseglob=$lt_want_nocaseglob
-
-# DLL creation program.
-DLLTOOL=$lt_DLLTOOL
-
-# Command to associate shared and link libraries.
-sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd
-
-# The archiver.
-AR=$lt_AR
-
-# Flags to create an archive.
-AR_FLAGS=$lt_AR_FLAGS
-
-# How to feed a file listing to the archiver.
-archiver_list_spec=$lt_archiver_list_spec
-
-# A symbol stripping program.
-STRIP=$lt_STRIP
-
-# Commands used to install an old-style archive.
-RANLIB=$lt_RANLIB
-old_postinstall_cmds=$lt_old_postinstall_cmds
-old_postuninstall_cmds=$lt_old_postuninstall_cmds
-
-# Whether to use a lock for old archive extraction.
-lock_old_archive_extraction=$lock_old_archive_extraction
-
-# A C compiler.
-LTCC=$lt_CC
-
-# LTCC compiler flags.
-LTCFLAGS=$lt_CFLAGS
-
-# Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
-
-# Transform the output of nm in a proper C declaration.
-global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
-
-# Transform the output of nm into a list of symbols to manually relocate.
-global_symbol_to_import=$lt_lt_cv_sys_global_symbol_to_import
-
-# Transform the output of nm in a C name address pair.
-global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
-
-# Transform the output of nm in a C name address pair when lib prefix is needed.
-global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
-
-# The name lister interface.
-nm_interface=$lt_lt_cv_nm_interface
-
-# Specify filename containing input files for \$NM.
-nm_file_list_spec=$lt_nm_file_list_spec
-
-# The root where to search for dependent libraries,and where our libraries should be installed.
-lt_sysroot=$lt_sysroot
-
-# Command to truncate a binary pipe.
-lt_truncate_bin=$lt_lt_cv_truncate_bin
-
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
-
-# Used to examine libraries when file_magic_cmd begins with "file".
-MAGIC_CMD=$MAGIC_CMD
-
-# Must we lock files when doing compilation?
-need_locks=$lt_need_locks
-
-# Manifest tool.
-MANIFEST_TOOL=$lt_MANIFEST_TOOL
-
-# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
-DSYMUTIL=$lt_DSYMUTIL
-
-# Tool to change global to local symbols on Mac OS X.
-NMEDIT=$lt_NMEDIT
-
-# Tool to manipulate fat objects and archives on Mac OS X.
-LIPO=$lt_LIPO
-
-# ldd/readelf like tool for Mach-O binaries on Mac OS X.
-OTOOL=$lt_OTOOL
-
-# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4.
-OTOOL64=$lt_OTOOL64
-
-# Old archive suffix (normally "a").
-libext=$libext
-
-# Shared library suffix (normally ".so").
-shrext_cmds=$lt_shrext_cmds
-
-# The commands to extract the exported symbol list from a shared archive.
-extract_expsyms_cmds=$lt_extract_expsyms_cmds
-
-# Variables whose values should be saved in libtool wrapper scripts and
-# restored at link time.
-variables_saved_for_relink=$lt_variables_saved_for_relink
-
-# Do we need the "lib" prefix for modules?
-need_lib_prefix=$need_lib_prefix
-
-# Do we need a version for libraries?
-need_version=$need_version
-
-# Library versioning type.
-version_type=$version_type
-
-# Shared library runtime path variable.
-runpath_var=$runpath_var
-
-# Shared library path variable.
-shlibpath_var=$shlibpath_var
-
-# Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
-
-# Format of library name prefix.
-libname_spec=$lt_libname_spec
-
-# List of archive names. First name is the real one, the rest are links.
-# The last name is the one that the linker finds with -lNAME
-library_names_spec=$lt_library_names_spec
-
-# The coded name of the library, if different from the real name.
-soname_spec=$lt_soname_spec
-
-# Permission mode override for installation of shared libraries.
-install_override_mode=$lt_install_override_mode
-
-# Command to use after installation of a shared archive.
-postinstall_cmds=$lt_postinstall_cmds
-
-# Command to use after uninstallation of a shared archive.
-postuninstall_cmds=$lt_postuninstall_cmds
-
-# Commands used to finish a libtool library installation in a directory.
-finish_cmds=$lt_finish_cmds
-
-# As "finish_cmds", except a single script fragment to be evaled but
-# not shown.
-finish_eval=$lt_finish_eval
-
-# Whether we should hardcode library paths into libraries.
-hardcode_into_libs=$hardcode_into_libs
-
-# Compile-time system search path for libraries.
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
-
-# Detected run-time system search path for libraries.
-sys_lib_dlsearch_path_spec=$lt_configure_time_dlsearch_path
-
-# Explicit LT_SYS_LIBRARY_PATH set during ./configure time.
-configure_time_lt_sys_library_path=$lt_configure_time_lt_sys_library_path
-
-# Whether dlopen is supported.
-dlopen_support=$enable_dlopen
-
-# Whether dlopen of programs is supported.
-dlopen_self=$enable_dlopen_self
-
-# Whether dlopen of statically linked programs is supported.
-dlopen_self_static=$enable_dlopen_self_static
-
-# Commands to strip libraries.
-old_striplib=$lt_old_striplib
-striplib=$lt_striplib
-
-
-# The linker used to build libraries.
-LD=$lt_LD
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag
-reload_cmds=$lt_reload_cmds
-
-# Commands used to build an old-style archive.
-old_archive_cmds=$lt_old_archive_cmds
-
-# A language specific compiler.
-CC=$lt_compiler
-
-# Is the compiler the GNU compiler?
-with_gcc=$GCC
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_lt_prog_compiler_pic
-
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_lt_prog_compiler_static
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_lt_cv_prog_compiler_c_o
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$archive_cmds_need_lc
-
-# Whether or not to disallow shared libs when runtime libs are static.
-allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_whole_archive_flag_spec
-
-# Whether the compiler copes with passing no objects directly.
-compiler_needs_object=$lt_compiler_needs_object
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
-
-# Commands used to build a shared archive.
-archive_cmds=$lt_archive_cmds
-archive_expsym_cmds=$lt_archive_expsym_cmds
-
-# Commands used to build a loadable module if different from building
-# a shared archive.
-module_cmds=$lt_module_cmds
-module_expsym_cmds=$lt_module_expsym_cmds
-
-# Whether we are building with GNU ld or not.
-with_gnu_ld=$lt_with_gnu_ld
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_allow_undefined_flag
-
-# Flag that enforces no undefined symbols.
-no_undefined_flag=$lt_no_undefined_flag
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist
-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
-
-# Whether we need a single "-rpath" flag with a separated argument.
-hardcode_libdir_separator=$lt_hardcode_libdir_separator
-
-# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes
-# DIR into the resulting binary.
-hardcode_direct=$hardcode_direct
-
-# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes
-# DIR into the resulting binary and the resulting library dependency is
-# "absolute",i.e impossible to change by setting \$shlibpath_var if the
-# library is relocated.
-hardcode_direct_absolute=$hardcode_direct_absolute
-
-# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
-# into the resulting binary.
-hardcode_minus_L=$hardcode_minus_L
-
-# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
-# into the resulting binary.
-hardcode_shlibpath_var=$hardcode_shlibpath_var
-
-# Set to "yes" if building a shared library automatically hardcodes DIR
-# into the library and all subsequent libraries and executables linked
-# against it.
-hardcode_automatic=$hardcode_automatic
-
-# Set to yes if linker adds runtime paths of dependent libraries
-# to runtime path list.
-inherit_rpath=$inherit_rpath
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$link_all_deplibs
-
-# Set to "yes" if exported symbols are required.
-always_export_symbols=$always_export_symbols
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_export_symbols_cmds
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_exclude_expsyms
-
-# Symbols that must always be exported.
-include_expsyms=$lt_include_expsyms
-
-# Commands necessary for linking programs (against libraries) with templates.
-prelink_cmds=$lt_prelink_cmds
-
-# Commands necessary for finishing linking programs.
-postlink_cmds=$lt_postlink_cmds
-
-# Specify filename containing input files.
-file_list_spec=$lt_file_list_spec
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$hardcode_action
-
-# ### END LIBTOOL CONFIG
-
-_LT_EOF
-
- cat <<'_LT_EOF' >> "$cfgfile"
-
-# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE
-
-# func_munge_path_list VARIABLE PATH
-# -----------------------------------
-# VARIABLE is name of variable containing _space_ separated list of
-# directories to be munged by the contents of PATH, which is string
-# having a format:
-# "DIR[:DIR]:"
-# string "DIR[ DIR]" will be prepended to VARIABLE
-# ":DIR[:DIR]"
-# string "DIR[ DIR]" will be appended to VARIABLE
-# "DIRP[:DIRP]::[DIRA:]DIRA"
-# string "DIRP[ DIRP]" will be prepended to VARIABLE and string
-# "DIRA[ DIRA]" will be appended to VARIABLE
-# "DIR[:DIR]"
-# VARIABLE will be replaced by "DIR[ DIR]"
-func_munge_path_list ()
-{
- case x$2 in
- x)
- ;;
- *:)
- eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\"
- ;;
- x:*)
- eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\"
- ;;
- *::*)
- eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\"
- eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\"
- ;;
- *)
- eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\"
- ;;
- esac
-}
-
-
-# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.
-func_cc_basename ()
-{
- for cc_temp in $*""; do
- case $cc_temp in
- compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
- distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
- \-*) ;;
- *) break;;
- esac
- done
- func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
-}
-
-
-# ### END FUNCTIONS SHARED WITH CONFIGURE
-
-_LT_EOF
-
- case $host_os in
- aix3*)
- cat <<\_LT_EOF >> "$cfgfile"
-# AIX sometimes has problems with the GCC collect2 program. For some
-# reason, if we set the COLLECT_NAMES environment variable, the problems
-# vanish in a puff of smoke.
-if test set != "${COLLECT_NAMES+set}"; then
- COLLECT_NAMES=
- export COLLECT_NAMES
-fi
-_LT_EOF
- ;;
- esac
-
-
-
-ltmain=$ac_aux_dir/ltmain.sh
-
-
- # We use sed instead of cat because bash on DJGPP gets confused if
- # if finds mixed CR/LF and LF-only lines. Since sed operates in
- # text mode, it properly converts lines to CR/LF. This bash problem
- # is reportedly fixed, but why not run on old versions too?
- sed '$q' "$ltmain" >> "$cfgfile" \
- || (rm -f "$cfgfile"; exit 1)
-
- mv -f "$cfgfile" "$ofile" ||
- (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
- chmod +x "$ofile"
-
- ;;
- "disable-rpath":C)
- sed < libtool > libtool-2 \
- 's/^hardcode_libdir_flag_spec.*$'/'hardcode_libdir_flag_spec=" -D__LIBTOOL_RPATH_SED__ "/'
- mv libtool-2 libtool
- chmod 755 libtool
- libtool="./libtool"
- ;;
-
- esac
-done # for ac_tag
-
-
-as_fn_exit 0
-_ACEOF
-ac_clean_files=$ac_clean_files_save
-
-test $ac_write_fail = 0 ||
- as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
-
-
-# configure is writing to config.log, and then calls config.status.
-# config.status does its own redirection, appending to config.log.
-# Unfortunately, on DOS this fails, as config.log is still kept open
-# by configure, so config.status won't be able to write to it; its
-# output is simply discarded. So we exec the FD to /dev/null,
-# effectively closing config.log, so it can be properly (re)opened and
-# appended to by config.status. When coming back to configure, we
-# need to make the FD available again.
-if test "$no_create" != yes; then
- ac_cs_success=:
- ac_config_status_args=
- test "$silent" = yes &&
- ac_config_status_args="$ac_config_status_args --quiet"
- exec 5>/dev/null
- $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
- exec 5>>config.log
- # Use ||, not &&, to avoid exiting from the if with $? = 1, which
- # would make configure fail if this is the last instruction.
- $ac_cs_success || as_fn_exit 1
-fi
-if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
-printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
-fi
-
-
diff --git a/contrib/README b/contrib/README
index 2427a02947fd..101264fd482c 100644
--- a/contrib/README
+++ b/contrib/README
@@ -58,3 +58,5 @@ distribution but may be helpful.
* unbound.init_yocto: An init script to start and stop the server. Put it
in /etc/init.d/unbound to use it. It is for the Yocto Project, in
embedded systems, contributed by beni-sandu.
+* gost12.patch: adds ECC-GOST12 support for the informational RFC9558.
+ Contributed by Igor V. Ruzanov.
diff --git a/contrib/gost12.patch b/contrib/gost12.patch
new file mode 100644
index 000000000000..c8df071666aa
--- /dev/null
+++ b/contrib/gost12.patch
@@ -0,0 +1,325 @@
+diff --git a/sldns/keyraw.c b/sldns/keyraw.c
+index 42a9262a3..cc6406a56 100644
+--- a/sldns/keyraw.c
++++ b/sldns/keyraw.c
+@@ -85,7 +85,7 @@ sldns_rr_dnskey_key_size_raw(const unsigned char* keydata,
+ }
+ break;
+ #ifdef USE_GOST
+- case LDNS_ECC_GOST:
++ case LDNS_ECC_GOST12:
+ return 512;
+ #endif
+ #ifdef USE_ECDSA
+@@ -146,7 +146,7 @@ sldns_key_EVP_load_gost_id(void)
+ if(gost_id) return gost_id;
+
+ /* see if configuration loaded gost implementation from other engine*/
+- meth = EVP_PKEY_asn1_find_str(NULL, "gost2001", -1);
++ meth = EVP_PKEY_asn1_find_str(NULL, "gost2012_256", -1);
+ if(meth) {
+ EVP_PKEY_asn1_get0_info(&gost_id, NULL, NULL, NULL, NULL, meth);
+ return gost_id;
+@@ -170,7 +170,7 @@ sldns_key_EVP_load_gost_id(void)
+ return 0;
+ }
+
+- meth = EVP_PKEY_asn1_find_str(&e, "gost2001", -1);
++ meth = EVP_PKEY_asn1_find_str(&e, "gost2012_256", -1);
+ if(!meth) {
+ /* algo not found */
+ ENGINE_finish(e);
+@@ -536,12 +536,17 @@ EVP_PKEY* sldns_key_rsa2pkey_raw(unsigned char* key, size_t len)
+ EVP_PKEY*
+ sldns_gost2pkey_raw(unsigned char* key, size_t keylen)
+ {
+- /* prefix header for X509 encoding */
+- uint8_t asn[37] = { 0x30, 0x63, 0x30, 0x1c, 0x06, 0x06, 0x2a, 0x85,
+- 0x03, 0x02, 0x02, 0x13, 0x30, 0x12, 0x06, 0x07, 0x2a, 0x85,
+- 0x03, 0x02, 0x02, 0x23, 0x01, 0x06, 0x07, 0x2a, 0x85, 0x03,
+- 0x02, 0x02, 0x1e, 0x01, 0x03, 0x43, 0x00, 0x04, 0x40};
+- unsigned char encoded[37+64];
++ /* prefix header for X509 encoding
++ *
++ * note: based on draft-makarenko-gost2012-dnssec-01 (pre-RFC9558 and it DOES work!)
++ * ASN1 header described in RFC9558 is not suitable due to d2i_PUBKEY() works with
++ * non-compressed public keys (two additional bytes 0x04, 0x40 at the end of header)
++ */
++ uint8_t asn[32] = { 0x30, 0x5e, 0x30, 0x17, 0x06, 0x08, 0x2a, 0x85,
++ 0x03, 0x07, 0x01, 0x01, 0x01, 0x01, 0x30, 0x0b,
++ 0x06, 0x09, 0x2a, 0x85, 0x03, 0x07, 0x01, 0x02,
++ 0x01, 0x01, 0x01, 0x03, 0x43, 0x00, 0x04, 0x40 };
++ unsigned char encoded[32+64];
+ const unsigned char* pp;
+ if(keylen != 64) {
+ /* key wrong size */
+@@ -549,8 +554,8 @@ sldns_gost2pkey_raw(unsigned char* key, size_t keylen)
+ }
+
+ /* create evp_key */
+- memmove(encoded, asn, 37);
+- memmove(encoded+37, key, 64);
++ memmove(encoded, asn, 32);
++ memmove(encoded+32, key, 64);
+ pp = (unsigned char*)&encoded[0];
+
+ return d2i_PUBKEY(NULL, &pp, (int)sizeof(encoded));
+diff --git a/sldns/rrdef.h b/sldns/rrdef.h
+index bbc3d5b86..7d5f3c057 100644
+--- a/sldns/rrdef.h
++++ b/sldns/rrdef.h
+@@ -384,11 +384,12 @@ enum sldns_enum_algorithm
+ LDNS_RSASHA1_NSEC3 = 7,
+ LDNS_RSASHA256 = 8, /* RFC 5702 */
+ LDNS_RSASHA512 = 10, /* RFC 5702 */
+- LDNS_ECC_GOST = 12, /* RFC 5933 */
++ LDNS_ECC_GOST = 12, /* RFC 5933, deprecated */
+ LDNS_ECDSAP256SHA256 = 13, /* RFC 6605 */
+ LDNS_ECDSAP384SHA384 = 14, /* RFC 6605 */
+ LDNS_ED25519 = 15, /* RFC 8080 */
+ LDNS_ED448 = 16, /* RFC 8080 */
++ LDNS_ECC_GOST12 = 23, /* RFC 9558 */
+ LDNS_INDIRECT = 252,
+ LDNS_PRIVATEDNS = 253,
+ LDNS_PRIVATEOID = 254
+@@ -402,8 +403,9 @@ enum sldns_enum_hash
+ {
+ LDNS_SHA1 = 1, /* RFC 4034 */
+ LDNS_SHA256 = 2, /* RFC 4509 */
+- LDNS_HASH_GOST = 3, /* RFC 5933 */
+- LDNS_SHA384 = 4 /* RFC 6605 */
++ LDNS_HASH_GOST = 3, /* RFC 5933, deprecated */
++ LDNS_SHA384 = 4, /* RFC 6605 */
++ LDNS_HASH_GOST12 = 5 /* RFC 9558 */
+ };
+ typedef enum sldns_enum_hash sldns_hash;
+
+diff --git a/sldns/wire2str.c b/sldns/wire2str.c
+index 75b8f37b0..b4c4755e6 100644
+--- a/sldns/wire2str.c
++++ b/sldns/wire2str.c
+@@ -45,11 +45,12 @@ static sldns_lookup_table sldns_algorithms_data[] = {
+ { LDNS_RSASHA1_NSEC3, "RSASHA1-NSEC3-SHA1" },
+ { LDNS_RSASHA256, "RSASHA256"},
+ { LDNS_RSASHA512, "RSASHA512"},
+- { LDNS_ECC_GOST, "ECC-GOST"},
++ { LDNS_ECC_GOST, "ECC-GOST"}, /* deprecated */
+ { LDNS_ECDSAP256SHA256, "ECDSAP256SHA256"},
+ { LDNS_ECDSAP384SHA384, "ECDSAP384SHA384"},
+ { LDNS_ED25519, "ED25519"},
+ { LDNS_ED448, "ED448"},
++ { LDNS_ECC_GOST12, "ECC-GOST12"},
+ { LDNS_INDIRECT, "INDIRECT" },
+ { LDNS_PRIVATEDNS, "PRIVATEDNS" },
+ { LDNS_PRIVATEOID, "PRIVATEOID" },
+@@ -61,8 +62,9 @@ sldns_lookup_table* sldns_algorithms = sldns_algorithms_data;
+ static sldns_lookup_table sldns_hashes_data[] = {
+ { LDNS_SHA1, "SHA1" },
+ { LDNS_SHA256, "SHA256" },
+- { LDNS_HASH_GOST, "HASH-GOST" },
++ { LDNS_HASH_GOST, "HASH-GOST" }, /* deprecated */
+ { LDNS_SHA384, "SHA384" },
++ { LDNS_HASH_GOST12, "HASH-GOST12" },
+ { 0, NULL }
+ };
+ sldns_lookup_table* sldns_hashes = sldns_hashes_data;
+diff --git a/testcode/unitverify.c b/testcode/unitverify.c
+index fcf2e2ffe..4a33e9f6a 100644
+--- a/testcode/unitverify.c
++++ b/testcode/unitverify.c
+@@ -696,7 +696,7 @@ verify_test(void)
+ #endif
+ #ifdef USE_GOST
+ if(sldns_key_EVP_load_gost_id())
+- verifytest_file(SRCDIRSTR "/testdata/test_sigs.gost", "20090807060504");
++ verifytest_file(SRCDIRSTR "/testdata/test_sigs.gost12", "20251226060504");
+ else printf("Warning: skipped GOST, openssl does not provide gost.\n");
+ #endif
+ #ifdef USE_ECDSA
+diff --git a/testdata/test_sigs.gost12 b/testdata/test_sigs.gost12
+new file mode 100644
+index 000000000..72a250cff
+--- /dev/null
++++ b/testdata/test_sigs.gost12
+@@ -0,0 +1,39 @@
++; Signature test file
++
++; first entry is a DNSKEY answer, with the DNSKEY rrset used for verification.
++; later entries are verified with it.
++
++; Test GOST signatures using algo number 23.
++
++ENTRY_BEGIN
++SECTION QUESTION
++nlnetlabs.nl. IN DNSKEY
++SECTION ANSWER
++nlnetlabs.nl. 3600 IN DNSKEY 256 3 23 cdOtkEcb6NhcdOpIbPYtWyWxdlUiKgtKQbYg3lIjtG7i3fYjUID9zyOgoQEiV9wuGCfrw5cNsnvNw+8HiVFK4g== ;{id = 12301 (zsk), size = 512b}
++ENTRY_END
++
++; entry to test
++ENTRY_BEGIN
++SECTION QUESTION
++open.nlnetlabs.nl. IN A
++SECTION ANSWER
++open.nlnetlabs.nl. 600 IN A 213.154.224.1
++open.nlnetlabs.nl. 600 IN RRSIG A 23 3 600 20260122084903 20251225084903 12301 nlnetlabs.nl. I12wYNs96DxMy26CWx296/sWMJAFg4nNXBo0sw7PnuMbJW5NFAmZYtFWhUdOWn4umaiodYOAmKG8Zg/OKvEtAQ==
++ENTRY_END
++
++ENTRY_BEGIN
++SECTION QUESTION
++open.nlnetlabs.nl. IN AAAA
++SECTION ANSWER
++open.nlnetlabs.nl. 600 IN AAAA 2001:7b8:206:1::1
++open.nlnetlabs.nl. 600 IN AAAA 2001:7b8:206:1::53
++open.nlnetlabs.nl. 600 IN RRSIG AAAA 23 3 600 20260122084903 20251225084903 12301 nlnetlabs.nl. J0jHa+CP8HM6UDa2+uYgaze2mfpJTh2hkZ2KwMTYb5sfL6iBmxxql0c/403Itk4fMfYBMGn7zfzDQ+CxnCgSWw==
++ENTRY_END
++
++ENTRY_BEGIN
++SECTION QUESTION
++open.nlnetlabs.nl. IN NSEC
++SECTION ANSWER
++open.nlnetlabs.nl. 86400 IN NSEC nlnetlabs.nl. A AAAA RRSIG NSEC
++open.nlnetlabs.nl. 86400 IN RRSIG NSEC 23 3 86400 20260122084903 20251225084903 12301 nlnetlabs.nl. INCLYe9vAaNYaYx5Ay3Q6QdX+wPW9sMRvVlGt/jUEGgCi+88QlV80CT1oHrhRI66I14Wk6NRAGZRNx1tUPSHSg==
++ENTRY_END
+diff --git a/validator/val_secalgo.c b/validator/val_secalgo.c
+index be8347b1b..4f621a309 100644
+--- a/validator/val_secalgo.c
++++ b/validator/val_secalgo.c
+@@ -246,10 +246,10 @@ ds_digest_size_supported(int algo)
+ return SHA256_DIGEST_LENGTH;
+ #endif
+ #ifdef USE_GOST
+- case LDNS_HASH_GOST:
++ case LDNS_HASH_GOST12:
+ /* we support GOST if it can be loaded */
+ (void)sldns_key_EVP_load_gost_id();
+- if(EVP_get_digestbyname("md_gost94"))
++ if(EVP_get_digestbyname("md_gost12_256"))
+ return 32;
+ else return 0;
+ #endif
+@@ -265,9 +265,9 @@ ds_digest_size_supported(int algo)
+ #ifdef USE_GOST
+ /** Perform GOST hash */
+ static int
+-do_gost94(unsigned char* data, size_t len, unsigned char* dest)
++do_gost12(unsigned char* data, size_t len, unsigned char* dest)
+ {
+- const EVP_MD* md = EVP_get_digestbyname("md_gost94");
++ const EVP_MD* md = EVP_get_digestbyname("md_gost12_256");
+ if(!md)
+ return 0;
+ return sldns_digest_evp(data, (unsigned int)len, dest, md);
+@@ -302,8 +302,8 @@ secalgo_ds_digest(int algo, unsigned char* buf, size_t len,
+ return 1;
+ #endif
+ #ifdef USE_GOST
+- case LDNS_HASH_GOST:
+- if(do_gost94(buf, len, res))
++ case LDNS_HASH_GOST12:
++ if(do_gost12(buf, len, res))
+ return 1;
+ break;
+ #endif
+@@ -384,7 +384,7 @@ dnskey_algo_id_is_supported(int id)
+ #endif
+
+ #ifdef USE_GOST
+- case LDNS_ECC_GOST:
++ case LDNS_ECC_GOST12:
+ /* we support GOST if it can be loaded */
+ return sldns_key_EVP_load_gost_id();
+ #endif
+@@ -612,17 +612,17 @@ setup_key_digest(int algo, EVP_PKEY** evp_key, const EVP_MD** digest_type,
+
+ break;
+ #ifdef USE_GOST
+- case LDNS_ECC_GOST:
++ case LDNS_ECC_GOST12:
+ *evp_key = sldns_gost2pkey_raw(key, keylen);
+ if(!*evp_key) {
+ verbose(VERB_QUERY, "verify: "
+ "sldns_gost2pkey_raw failed");
+ return 0;
+ }
+- *digest_type = EVP_get_digestbyname("md_gost94");
++ *digest_type = EVP_get_digestbyname("md_gost12_256");
+ if(!*digest_type) {
+ verbose(VERB_QUERY, "verify: "
+- "EVP_getdigest md_gost94 failed");
++ "EVP_getdigest md_gost12_256 failed");
+ return 0;
+ }
+ break;
+@@ -964,7 +964,7 @@ ds_digest_size_supported(int algo)
+ return SHA384_LENGTH;
+ #endif
+ /* GOST not supported in NSS */
+- case LDNS_HASH_GOST:
++ case LDNS_HASH_GOST12:
+ default: break;
+ }
+ return 0;
+@@ -991,7 +991,7 @@ secalgo_ds_digest(int algo, unsigned char* buf, size_t len,
+ return HASH_HashBuf(HASH_AlgSHA384, res, buf, len)
+ == SECSuccess;
+ #endif
+- case LDNS_HASH_GOST:
++ case LDNS_HASH_GOST12:
+ default:
+ verbose(VERB_QUERY, "unknown DS digest algorithm %d",
+ algo);
+@@ -1031,7 +1031,7 @@ dnskey_algo_id_is_supported(int id)
+ case LDNS_ECDSAP384SHA384:
+ return PK11_TokenExists(CKM_ECDSA);
+ #endif
+- case LDNS_ECC_GOST:
++ case LDNS_ECC_GOST12:
+ default:
+ return 0;
+ }
+@@ -1352,7 +1352,7 @@ nss_setup_key_digest(int algo, SECKEYPublicKey** pubkey, HASH_HashType* htype,
+ /* no prefix for DSA verification */
+ break;
+ #endif /* USE_ECDSA */
+- case LDNS_ECC_GOST:
++ case LDNS_ECC_GOST12:
+ default:
+ verbose(VERB_QUERY, "verify: unknown algorithm %d",
+ algo);
+@@ -1675,7 +1675,7 @@ ds_digest_size_supported(int algo)
+ return SHA384_DIGEST_SIZE;
+ #endif
+ /* GOST not supported */
+- case LDNS_HASH_GOST:
++ case LDNS_ECC_GOST12:
+ default:
+ break;
+ }
+@@ -1700,7 +1700,7 @@ secalgo_ds_digest(int algo, unsigned char* buf, size_t len,
+ return _digest_nettle(SHA384_DIGEST_SIZE, buf, len, res);
+
+ #endif
+- case LDNS_HASH_GOST:
++ case LDNS_ECC_GOST12:
+ default:
+ verbose(VERB_QUERY, "unknown DS digest algorithm %d",
+ algo);
+@@ -1744,7 +1744,7 @@ dnskey_algo_id_is_supported(int id)
+ return 1;
+ #endif
+ case LDNS_RSAMD5: /* RFC 6725 deprecates RSAMD5 */
+- case LDNS_ECC_GOST:
++ case LDNS_ECC_GOST12:
+ default:
+ return 0;
+ }
+@@ -2103,7 +2103,7 @@ verify_canonrrset(sldns_buffer* buf, int algo, unsigned char* sigblock,
+ return sec_status_secure;
+ #endif
+ case LDNS_RSAMD5:
+- case LDNS_ECC_GOST:
++ case LDNS_ECC_GOST12:
+ default:
+ *reason = "unable to verify signature, unknown algorithm";
+ return sec_status_bogus;
diff --git a/contrib/ios/install_openssl.sh b/contrib/ios/install_openssl.sh
index 31e65d64e353..d656c53d10d6 100755
--- a/contrib/ios/install_openssl.sh
+++ b/contrib/ios/install_openssl.sh
@@ -1,21 +1,22 @@
#!/usr/bin/env bash
+OPENSSL_VERSION=1.1.1d
echo "Downloading OpenSSL"
-if ! curl -L -k -s -o openssl-1.1.1d.tar.gz https://www.openssl.org/source/openssl-1.1.1d.tar.gz;
+if ! curl -L -k -s -o openssl-$OPENSSL_VERSION.tar.gz https://www.openssl.org/source/openssl-$OPENSSL_VERSION.tar.gz;
then
echo "Failed to download OpenSSL"
exit 1
fi
echo "Unpacking OpenSSL"
-rm -rf ./openssl-1.1.1d
-if ! tar -xf openssl-1.1.1d.tar.gz;
+rm -rf ./openssl-$OPENSSL_VERSION
+if ! tar -xf openssl-$OPENSSL_VERSION.tar.gz;
then
echo "Failed to unpack OpenSSL"
exit 1
fi
-cd openssl-1.1.1d || exit 1
+cd openssl-$OPENSSL_VERSION || exit 1
if ! cp ../contrib/ios/15-ios.conf Configurations/; then
echo "Failed to copy OpenSSL ios config"
@@ -27,7 +28,8 @@ fi
# Also see https://github.com/openssl/openssl/issues/7607.
if ! patch -u -p0 < ../contrib/ios/openssl.patch; then
echo "Failed to patch OpenSSL"
- exit 1
+ # the partial patch may be useful.
+ #exit 1
fi
echo "Configuring OpenSSL"
diff --git a/contrib/ios/setenv_ios.sh b/contrib/ios/setenv_ios.sh
index df433d17c2d3..f4c7e783fbc9 100755
--- a/contrib/ios/setenv_ios.sh
+++ b/contrib/ios/setenv_ios.sh
@@ -175,6 +175,7 @@ fi
# For example, remove 4.3, 6.2, and 6.1 if they are not installed. We go back to
# the 1.0 SDKs because Apple WatchOS uses low numbers, like 2.0 and 2.1.
XCODE_SDK=
+if test -z "$SDK_VERSION"; then
for i in $(seq -f "%.1f" 30.0 -0.1 1.0)
do
if [ -d "$XCODE_DEVELOPER_SDK/Developer/SDKs/$IOS_SDK$i.sdk" ]; then
@@ -182,6 +183,10 @@ do
break
fi
done
+else
+ i="$SDK_VERSION"
+ XCODE_SDK="$IOS_SDK$i.sdk"
+fi
# Error checking
if [ -z "$XCODE_SDK" ]; then
diff --git a/contrib/unbound.service.in b/contrib/unbound.service.in
index cc8d0ed2dab3..b05e2c959a77 100644
--- a/contrib/unbound.service.in
+++ b/contrib/unbound.service.in
@@ -59,7 +59,7 @@ ExecReload=+/bin/kill -HUP $MAINPID
ExecStart=@UNBOUND_SBIN_DIR@/unbound -d -p
NotifyAccess=main
Type=notify
-CapabilityBoundingSet=CAP_NET_BIND_SERVICE CAP_SETGID CAP_SETUID CAP_SYS_CHROOT CAP_SYS_RESOURCE CAP_NET_RAW
+CapabilityBoundingSet=CAP_NET_BIND_SERVICE CAP_SETGID CAP_SETUID CAP_SYS_CHROOT CAP_SYS_RESOURCE CAP_NET_ADMIN
MemoryDenyWriteExecute=true
NoNewPrivileges=true
PrivateDevices=true
diff --git a/contrib/unbound_portable.service.in b/contrib/unbound_portable.service.in
index 22cd4463861a..d03197d5539e 100644
--- a/contrib/unbound_portable.service.in
+++ b/contrib/unbound_portable.service.in
@@ -26,7 +26,7 @@ ExecReload=+/bin/kill -HUP $MAINPID
ExecStart=@UNBOUND_SBIN_DIR@/unbound -d -p
NotifyAccess=main
Type=notify
-CapabilityBoundingSet=CAP_NET_BIND_SERVICE CAP_SETGID CAP_SETUID CAP_SYS_CHROOT CAP_SYS_RESOURCE CAP_NET_RAW
+CapabilityBoundingSet=CAP_NET_BIND_SERVICE CAP_SETGID CAP_SETUID CAP_SYS_CHROOT CAP_SYS_RESOURCE CAP_NET_ADMIN
MemoryDenyWriteExecute=true
NoNewPrivileges=true
PrivateDevices=true
diff --git a/daemon/daemon.c b/daemon/daemon.c
index f882bb9ad62e..ea4e83e70932 100644
--- a/daemon/daemon.c
+++ b/daemon/daemon.c
@@ -199,6 +199,255 @@ signal_handling_playback(struct worker* wrk)
sig_record_reload = 0;
}
+#ifdef HAVE_SSL
+/* setup a listening ssl context, fatal_exit() on any failure */
+static void
+setup_listen_sslctx(void** ctx, int is_dot, int is_doh,
+ struct config_file* cfg, char* chroot)
+{
+ char* key = cfg->ssl_service_key;
+ char* pem = cfg->ssl_service_pem;
+ if(chroot && strncmp(key, chroot, strlen(chroot)) == 0)
+ key += strlen(chroot);
+ if(chroot && pem && strncmp(pem, chroot, strlen(chroot)) == 0)
+ pem += strlen(chroot);
+ if(!(*ctx = listen_sslctx_create(key, pem, NULL,
+ cfg->tls_ciphers, cfg->tls_ciphersuites,
+ (cfg->tls_session_ticket_keys.first &&
+ cfg->tls_session_ticket_keys.first->str[0] != 0),
+ is_dot, is_doh, cfg->tls_protocols))) {
+ fatal_exit("could not set up listen SSL_CTX");
+ }
+}
+#endif /* HAVE_SSL */
+
+#ifdef HAVE_SSL
+void* daemon_setup_listen_dot_sslctx(struct daemon* daemon,
+ struct config_file* cfg)
+{
+ void* ctx;
+ (void)setup_listen_sslctx(&ctx, 1, 0, cfg, daemon->chroot);
+ return ctx;
+}
+#endif /* HAVE_SSL */
+
+#ifdef HAVE_SSL
+#ifdef HAVE_NGHTTP2_NGHTTP2_H
+void* daemon_setup_listen_doh_sslctx(struct daemon* daemon,
+ struct config_file* cfg)
+{
+ void* ctx;
+ (void)setup_listen_sslctx(&ctx, 0, 1, cfg, daemon->chroot);
+ return ctx;
+}
+#endif /* HAVE_NGHTTP2_NGHTTP2_H */
+#endif /* HAVE_SSL */
+
+#ifdef HAVE_SSL
+#ifdef HAVE_NGTCP2
+void* daemon_setup_listen_quic_sslctx(struct daemon* daemon,
+ struct config_file* cfg)
+{
+ void* ctx;
+ char* chroot = daemon->chroot;
+ char* key = cfg->ssl_service_key;
+ char* pem = cfg->ssl_service_pem;
+ if(chroot && strncmp(key, chroot, strlen(chroot)) == 0)
+ key += strlen(chroot);
+ if(chroot && pem && strncmp(pem, chroot, strlen(chroot)) == 0)
+ pem += strlen(chroot);
+
+ if(!(ctx = quic_sslctx_create(key, pem, NULL))) {
+ fatal_exit("could not set up quic SSL_CTX");
+ }
+ return ctx;
+}
+#endif /* HAVE_NGTCP2 */
+#endif /* HAVE_SSL */
+
+#ifdef HAVE_SSL
+void* daemon_setup_connect_dot_sslctx(struct daemon* daemon,
+ struct config_file* cfg)
+{
+ void* ctx;
+ char* bundle, *chroot = daemon->chroot;
+ bundle = cfg->tls_cert_bundle;
+ if(chroot && bundle && strncmp(bundle, chroot, strlen(chroot)) == 0)
+ bundle += strlen(chroot);
+
+ if(!(ctx = connect_sslctx_create(NULL, NULL, bundle,
+ cfg->tls_win_cert)))
+ fatal_exit("could not set up connect SSL_CTX");
+ return ctx;
+}
+#endif /* HAVE_SSL */
+
+/* setups the needed ssl contexts, fatal_exit() on any failure */
+void
+daemon_setup_sslctxs(struct daemon* daemon, struct config_file* cfg)
+{
+#ifdef HAVE_SSL
+ char* chroot = daemon->chroot;
+ if(cfg->ssl_service_key && cfg->ssl_service_key[0]) {
+ char* key = cfg->ssl_service_key;
+ char* pem = cfg->ssl_service_pem;
+ if(chroot && strncmp(key, chroot, strlen(chroot)) == 0)
+ key += strlen(chroot);
+ if(chroot && pem && strncmp(pem, chroot, strlen(chroot)) == 0)
+ pem += strlen(chroot);
+
+ /* setup the session keys; the callback to use them will be
+ * attached to each sslctx separately */
+ if(cfg->tls_session_ticket_keys.first &&
+ cfg->tls_session_ticket_keys.first->str[0] != 0) {
+ if(!listen_sslctx_setup_ticket_keys(
+ cfg->tls_session_ticket_keys.first, chroot)) {
+ fatal_exit("could not set session ticket SSL_CTX");
+ }
+ }
+ daemon->listen_dot_sslctx = daemon_setup_listen_dot_sslctx(
+ daemon, cfg);
+#ifdef HAVE_NGHTTP2_NGHTTP2_H
+ if(cfg_has_https(cfg)) {
+ daemon->listen_doh_sslctx =
+ daemon_setup_listen_doh_sslctx(daemon, cfg);
+ }
+#endif
+#ifdef HAVE_NGTCP2
+ if(cfg_has_quic(cfg)) {
+ daemon->listen_quic_sslctx =
+ daemon_setup_listen_quic_sslctx(daemon, cfg);
+ }
+#endif /* HAVE_NGTCP2 */
+
+ /* Store the file name and mtime to detect changes later. */
+ daemon->ssl_service_key = strdup(cfg->ssl_service_key);
+ if(!daemon->ssl_service_key)
+ fatal_exit("could not setup ssl ctx: out of memory");
+ if(cfg->ssl_service_pem) {
+ daemon->ssl_service_pem = strdup(cfg->ssl_service_pem);
+ if(!daemon->ssl_service_pem)
+ fatal_exit("could not setup ssl ctx: out of memory");
+ } else {
+ daemon->ssl_service_pem = NULL;
+ }
+ if(!file_get_mtime(key,
+ &daemon->mtime_ssl_service_key,
+ &daemon->mtime_ns_ssl_service_key, NULL))
+ log_err("Could not stat(%s): %s",
+ key, strerror(errno));
+ if(pem) {
+ if(!file_get_mtime(pem,
+ &daemon->mtime_ssl_service_pem,
+ &daemon->mtime_ns_ssl_service_pem, NULL))
+ log_err("Could not stat(%s): %s",
+ pem, strerror(errno));
+ } else {
+ daemon->mtime_ssl_service_pem = 0;
+ daemon->mtime_ns_ssl_service_pem = 0;
+ }
+ }
+ daemon->connect_dot_sslctx = daemon_setup_connect_dot_sslctx(
+ daemon, cfg);
+#else /* HAVE_SSL */
+ (void)daemon;(void)cfg;
+#endif /* HAVE_SSL */
+}
+
+/** Delete the ssl ctxs */
+static void
+daemon_delete_sslctxs(struct daemon* daemon)
+{
+#ifdef HAVE_SSL
+ listen_sslctx_delete_ticket_keys();
+ SSL_CTX_free((SSL_CTX*)daemon->listen_dot_sslctx);
+ daemon->listen_dot_sslctx = NULL;
+ SSL_CTX_free((SSL_CTX*)daemon->listen_doh_sslctx);
+ daemon->listen_doh_sslctx = NULL;
+ SSL_CTX_free((SSL_CTX*)daemon->connect_dot_sslctx);
+ daemon->connect_dot_sslctx = NULL;
+ free(daemon->ssl_service_key);
+ daemon->ssl_service_key = NULL;
+ free(daemon->ssl_service_pem);
+ daemon->ssl_service_pem = NULL;
+#else
+ (void)daemon;
+#endif
+#ifdef HAVE_NGTCP2
+ SSL_CTX_free((SSL_CTX*)daemon->listen_quic_sslctx);
+ daemon->listen_quic_sslctx = NULL;
+#endif
+}
+
+int
+ssl_cert_changed(struct daemon* daemon, struct config_file* cfg)
+{
+ time_t mtime = 0;
+ long ns = 0;
+ char* chroot = daemon->chroot;
+ char* key = cfg->ssl_service_key;
+ char* pem = cfg->ssl_service_pem;
+ log_assert(daemon->ssl_service_key && cfg->ssl_service_key);
+ if(chroot && strncmp(key, chroot, strlen(chroot)) == 0)
+ key += strlen(chroot);
+ if(chroot && pem && strncmp(pem, chroot, strlen(chroot)) == 0)
+ pem += strlen(chroot);
+
+ if(strcmp(daemon->ssl_service_key, cfg->ssl_service_key) != 0)
+ return 1;
+ if(daemon->ssl_service_pem && cfg->ssl_service_pem &&
+ strcmp(daemon->ssl_service_pem, cfg->ssl_service_pem) != 0)
+ return 1;
+ if(!file_get_mtime(key, &mtime, &ns, NULL)) {
+ log_err("Could not stat(%s): %s",
+ key, strerror(errno));
+ /* It has probably changed, but file read is likely going to
+ * fail. */
+ return 0;
+ }
+ if(mtime != daemon->mtime_ssl_service_key ||
+ ns != daemon->mtime_ns_ssl_service_key)
+ return 1;
+ if(pem) {
+ if(!file_get_mtime(pem, &mtime, &ns, NULL)) {
+ log_err("Could not stat(%s): %s",
+ pem, strerror(errno));
+ /* It has probably changed, but file read is likely going to
+ * fail. */
+ return 0;
+ }
+ if(mtime != daemon->mtime_ssl_service_pem ||
+ ns != daemon->mtime_ns_ssl_service_pem)
+ return 1;
+ }
+ return 0;
+}
+
+/** Reload the sslctxs if they have changed */
+static void
+daemon_reload_sslctxs(struct daemon* daemon)
+{
+#ifdef HAVE_SSL
+ if(daemon->cfg->ssl_service_key && daemon->cfg->ssl_service_key[0]) {
+ /* See if changed */
+ if(!daemon->ssl_service_key ||
+ ssl_cert_changed(daemon,daemon->cfg)) {
+ verbose(VERB_ALGO, "Reloading certificates");
+ daemon_delete_sslctxs(daemon);
+ daemon_setup_sslctxs(daemon, daemon->cfg);
+ }
+ } else {
+ /* See if sslctxs are removed from config. */
+ if(daemon->ssl_service_key) {
+ verbose(VERB_ALGO, "Removing certificates");
+ daemon_delete_sslctxs(daemon);
+ }
+ }
+#else
+ (void)daemon;
+#endif
+}
+
struct daemon*
daemon_init(void)
{
@@ -235,7 +484,11 @@ daemon_init(void)
# else
OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS
| OPENSSL_INIT_ADD_ALL_DIGESTS
- | OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL);
+ | OPENSSL_INIT_LOAD_CRYPTO_STRINGS
+# if defined(OPENSSL_INIT_NO_LOAD_CONFIG) && defined(UB_ON_WINDOWS)
+ | OPENSSL_INIT_NO_LOAD_CONFIG
+# endif
+ , NULL);
# endif
# if HAVE_DECL_SSL_COMP_GET_COMPRESSION_METHODS
/* grab the COMP method ptr because openssl leaks it */
@@ -244,7 +497,11 @@ daemon_init(void)
# if OPENSSL_VERSION_NUMBER < 0x10100000 || !defined(HAVE_OPENSSL_INIT_SSL)
(void)SSL_library_init();
# else
- (void)OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS, NULL);
+ (void)OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS
+# if defined(OPENSSL_INIT_NO_LOAD_CONFIG) && defined(UB_ON_WINDOWS)
+ | OPENSSL_INIT_NO_LOAD_CONFIG
+# endif
+ , NULL);
# endif
# if defined(HAVE_SSL) && defined(OPENSSL_THREADS) && !defined(THREADS_DISABLED)
if(!ub_openssl_lock_init())
@@ -558,9 +815,11 @@ daemon_create_workers(struct daemon* daemon)
verbose(VERB_ALGO, "total of %d outgoing ports available", numport);
#ifdef HAVE_NGTCP2
- daemon->doq_table = doq_table_create(daemon->cfg, daemon->rand);
- if(!daemon->doq_table)
- fatal_exit("could not create doq_table: out of memory");
+ if (cfg_has_quic(daemon->cfg)) {
+ daemon->doq_table = doq_table_create(daemon->cfg, daemon->rand);
+ if(!daemon->doq_table)
+ fatal_exit("could not create doq_table: out of memory");
+ }
#endif
daemon->num = (daemon->cfg->num_threads?daemon->cfg->num_threads:1);
@@ -632,6 +891,25 @@ static void close_other_pipes(struct daemon* daemon, int thr)
#endif /* THREADS_DISABLED */
/**
+ * Function to set the thread local log ID.
+ * Either the internal thread number, or the LWP ID on Linux based on
+ * configuration.
+ */
+static void
+set_log_thread_id(struct worker* worker, struct config_file* cfg)
+{
+ (void)cfg;
+ log_assert(worker);
+#if defined(HAVE_GETTID) && !defined(THREADS_DISABLED)
+ worker->thread_tid = gettid();
+ if(cfg->log_thread_id)
+ log_thread_set(&worker->thread_tid);
+ else
+#endif
+ log_thread_set(&worker->thread_num);
+}
+
+/**
* Function to start one thread.
* @param arg: user argument.
* @return: void* user return value could be used for thread_join results.
@@ -641,7 +919,14 @@ thread_start(void* arg)
{
struct worker* worker = (struct worker*)arg;
int port_num = 0;
- log_thread_set(&worker->thread_num);
+ log_assert(worker->thr_id);
+ set_log_thread_id(worker, worker->daemon->cfg);
+ {
+ char name[16]; /* seems to be the safest size between
+ different OSes */
+ snprintf(name, sizeof(name), "unbound/%u", worker->thread_num);
+ ub_thread_setname(worker->thr_id, name);
+ }
ub_thread_blocksigs();
#ifdef THREADS_DISABLED
/* close pipe ends used by main */
@@ -716,6 +1001,7 @@ daemon_fork(struct daemon* daemon)
#endif
log_assert(daemon);
+ daemon_reload_sslctxs(daemon);
if(!(daemon->env->views = views_create()))
fatal_exit("Could not create views: out of memory");
/* create individual views and their localzone/data trees */
@@ -801,9 +1087,19 @@ daemon_fork(struct daemon* daemon)
fatal_exit("RPZ requires the respip module");
/* first create all the worker structures, so we can pass
- * them to the newly created threads.
+ * them to the newly created threads.
*/
daemon_create_workers(daemon);
+ /* Set it for the first (main) worker since it does not take part in
+ * the thread_start() procedure.
+ */
+ set_log_thread_id(daemon->workers[0], daemon->cfg);
+ /* If shm stats need an offset, calculate it */
+ if(daemon->cfg->shm_enable && daemon->cfg->stat_interval > 0) {
+ daemon->stat_time_specific = 1;
+ daemon->stat_time_offset =
+ ((int)time(NULL))%daemon->cfg->stat_interval;
+ }
#if defined(HAVE_EV_LOOP) || defined(HAVE_EV_DEFAULT_LOOP)
/* in libev the first inited base gets signals */
@@ -917,8 +1213,10 @@ daemon_cleanup(struct daemon* daemon)
daemon->dnscenv = NULL;
#endif
#ifdef HAVE_NGTCP2
- doq_table_delete(daemon->doq_table);
- daemon->doq_table = NULL;
+ if (daemon->doq_table) {
+ doq_table_delete(daemon->doq_table);
+ daemon->doq_table = NULL;
+ }
#endif
daemon->cfg = NULL;
}
@@ -956,15 +1254,7 @@ daemon_delete(struct daemon* daemon)
free(daemon->pidfile);
free(daemon->cfgfile);
free(daemon->env);
-#ifdef HAVE_SSL
- listen_sslctx_delete_ticket_keys();
- SSL_CTX_free((SSL_CTX*)daemon->listen_dot_sslctx);
- SSL_CTX_free((SSL_CTX*)daemon->listen_doh_sslctx);
- SSL_CTX_free((SSL_CTX*)daemon->connect_dot_sslctx);
-#endif
-#ifdef HAVE_NGTCP2
- SSL_CTX_free((SSL_CTX*)daemon->listen_quic_sslctx);
-#endif
+ daemon_delete_sslctxs(daemon);
free(daemon);
/* lex cleanup */
ub_c_lex_destroy();
diff --git a/daemon/daemon.h b/daemon/daemon.h
index 2295761ab7e3..20386d7fc9a0 100644
--- a/daemon/daemon.h
+++ b/daemon/daemon.h
@@ -107,6 +107,18 @@ struct daemon {
void* listen_doh_sslctx;
/** ssl context for listening to quic */
void* listen_quic_sslctx;
+ /** the file name that the ssl context is made with, private key. */
+ char* ssl_service_key;
+ /** the file name that the ssl context is made with, certificate. */
+ char* ssl_service_pem;
+ /** modification time for ssl_service_key, in sec and ns. Like
+ * in a struct timespec, but without that for portability. */
+ time_t mtime_ssl_service_key;
+ long mtime_ns_ssl_service_key;
+ /** modification time for ssl_service_pem, in sec and ns. Like
+ * in a struct timespec, but without that for portability. */
+ time_t mtime_ssl_service_pem;
+ long mtime_ns_ssl_service_pem;
/** num threads allocated */
int num;
/** num threads allocated in the previous config or 0 at first */
@@ -143,7 +155,14 @@ struct daemon {
/** the dnstap environment master value, copied and changed by threads*/
struct dt_env* dtenv;
#endif
+ /** The SHM info for shared memory stats. */
struct shm_main_info* shm_info;
+ /** if the timeout for statistics is attempted at specific offset.
+ * If it is true, the stat timeout is the interval+offset, and that
+ * picks (roughly) the same time offset every time period. */
+ int stat_time_specific;
+ /** if the timeout is specific, what offset in the period. */
+ int stat_time_offset;
/** some response-ip tags or actions are configured if true */
int use_response_ip;
/** some RPZ policies are configured */
@@ -229,4 +248,26 @@ void daemon_apply_cfg(struct daemon* daemon, struct config_file* cfg);
*/
int setup_acl_for_ports(struct acl_list* list, struct listen_port* port_list);
+/* setups the needed ssl contexts, fatal_exit() on any failure */
+void daemon_setup_sslctxs(struct daemon* daemon, struct config_file* cfg);
+
+/** See if the SSL cert files have changed */
+int ssl_cert_changed(struct daemon* daemon, struct config_file* cfg);
+
+/** Setup the listening DoT SSL_CTX, returns the ssl ctx. */
+void* daemon_setup_listen_dot_sslctx(struct daemon* daemon,
+ struct config_file* cfg);
+
+/** Setup the listening DoH SSL_CTX, returns the ssl ctx. */
+void* daemon_setup_listen_doh_sslctx(struct daemon* daemon,
+ struct config_file* cfg);
+
+/** Setup the listening Quic SSL_CTX, returns the ssl ctx */
+void* daemon_setup_listen_quic_sslctx(struct daemon* daemon,
+ struct config_file* cfg);
+
+/** Setup the connect DoT SSL_CTX, returns the ssl ctx */
+void* daemon_setup_connect_dot_sslctx(struct daemon* daemon,
+ struct config_file* cfg);
+
#endif /* DAEMON_H */
diff --git a/daemon/remote.c b/daemon/remote.c
index d8ee7fa7d7c1..1eaf90016b88 100644
--- a/daemon/remote.c
+++ b/daemon/remote.c
@@ -153,7 +153,7 @@ remote_setup_ctx(struct daemon_remote* rc, struct config_file* cfg)
log_crypto_err("could not SSL_CTX_new");
return 0;
}
- if(!listen_sslctx_setup(rc->ctx)) {
+ if(!listen_sslctx_setup(rc->ctx, cfg->tls_protocols)) {
return 0;
}
@@ -307,6 +307,26 @@ add_open(const char* ip, int nr, struct listen_port** list, int noproto_is_err,
#endif
}
} else {
+ char* s = strchr(ip, '@');
+ char newif[128];
+ if(s) {
+ /* override port with ifspec@port */
+ int portnr;
+ if((size_t)(s-ip) >= sizeof(newif)) {
+ log_err("ifname too long: %s", ip);
+ return -1;
+ }
+ portnr = atoi(s+1);
+ if(portnr < 0 || 0 == portnr || portnr > 65535) {
+ log_err("invalid portnumber in control-interface: %s", ip);
+ return -1;
+ }
+ (void)strlcpy(newif, ip, sizeof(newif));
+ newif[s-ip] = 0;
+ ip = newif;
+ snprintf(port, sizeof(port), "%d", portnr);
+ port[sizeof(port)-1]=0;
+ }
hints.ai_socktype = SOCK_STREAM;
hints.ai_flags = AI_PASSIVE | AI_NUMERICHOST;
if((r = getaddrinfo(ip, port, &hints, &res)) != 0 || !res) {
@@ -801,6 +821,8 @@ print_stats(RES* ssl, const char* nm, struct ub_stats_info* s)
(unsigned long)s->svr.num_queries_cookie_invalid)) return 0;
if(!ssl_printf(ssl, "%s.num.queries_discard_timeout"SQ"%lu\n", nm,
(unsigned long)s->svr.num_queries_discard_timeout)) return 0;
+ if(!ssl_printf(ssl, "%s.num.queries_replyaddr_limit"SQ"%lu\n", nm,
+ (unsigned long)s->svr.num_queries_replyaddr_limit)) return 0;
if(!ssl_printf(ssl, "%s.num.queries_wait_limit"SQ"%lu\n", nm,
(unsigned long)s->svr.num_queries_wait_limit)) return 0;
if(!ssl_printf(ssl, "%s.num.cachehits"SQ"%lu\n", nm,
@@ -845,6 +867,8 @@ print_stats(RES* ssl, const char* nm, struct ub_stats_info* s)
(unsigned long)s->mesh_num_states)) return 0;
if(!ssl_printf(ssl, "%s.requestlist.current.user"SQ"%lu\n", nm,
(unsigned long)s->mesh_num_reply_states)) return 0;
+ if(!ssl_printf(ssl, "%s.requestlist.current.replies"SQ"%lu\n", nm,
+ (unsigned long)s->mesh_num_reply_addrs)) return 0;
#ifndef S_SPLINT_S
sumwait.tv_sec = s->mesh_replies_sum_wait_sec;
sumwait.tv_usec = s->mesh_replies_sum_wait_usec;
@@ -4629,6 +4653,26 @@ fr_init_time(struct timeval* time_start, struct timeval* time_read,
* are kept in here. They can then be deleted.
*/
struct fast_reload_construct {
+ /** ssl context for listening to dnstcp over ssl */
+ void* listen_dot_sslctx;
+ /** ssl context for connecting to dnstcp over ssl */
+ void* connect_dot_sslctx;
+ /** ssl context for listening to DoH */
+ void* listen_doh_sslctx;
+ /** ssl context for listening to quic */
+ void* listen_quic_sslctx;
+ /** the file name that the ssl context is made with, private key. */
+ char* ssl_service_key;
+ /** the file name that the ssl context is made with, certificate. */
+ char* ssl_service_pem;
+ /** modification time for ssl_service_key, in sec and ns. Like
+ * in a struct timespec, but without that for portability. */
+ time_t mtime_ssl_service_key;
+ long mtime_ns_ssl_service_key;
+ /** modification time for ssl_service_pem, in sec and ns. Like
+ * in a struct timespec, but without that for portability. */
+ time_t mtime_ssl_service_pem;
+ long mtime_ns_ssl_service_pem;
/** construct for views */
struct views* views;
/** construct for auth zones */
@@ -4932,9 +4976,7 @@ fr_check_compat_cfg(struct fast_reload_thread* fr, struct config_file* newcfg)
FR_CHECK_CHANGED_CFG("http_notls_downstream", http_notls_downstream, changed_str);
FR_CHECK_CHANGED_CFG("https-port", https_port, changed_str);
FR_CHECK_CHANGED_CFG("tls-port", ssl_port, changed_str);
- FR_CHECK_CHANGED_CFG_STR("tls-service-key", ssl_service_key, changed_str);
- FR_CHECK_CHANGED_CFG_STR("tls-service-pem", ssl_service_pem, changed_str);
- FR_CHECK_CHANGED_CFG_STR("tls-cert-bundle", tls_cert_bundle, changed_str);
+ FR_CHECK_CHANGED_CFG_STR("tls-protocols", tls_protocols, changed_str);
FR_CHECK_CHANGED_CFG_STRLIST("proxy-protocol-port", proxy_protocol_port, changed_str);
FR_CHECK_CHANGED_CFG_STRLIST("tls-additional-port", tls_additional_port, changed_str);
FR_CHECK_CHANGED_CFG_STR("interface-automatic-ports", if_automatic_ports, changed_str);
@@ -5043,6 +5085,19 @@ fr_construct_clear(struct fast_reload_construct* ct)
wait_limits_free(&ct->wait_limits_netblock);
wait_limits_free(&ct->wait_limits_cookie_netblock);
domain_limits_free(&ct->domain_limits);
+#ifdef HAVE_SSL
+ /* The SSL contexts can be SSL_CTX_free here. It is reference
+ * counted. So ongoing transfers with can continue.
+ * Once they are done, the context is freed. */
+ SSL_CTX_free((SSL_CTX*)ct->listen_dot_sslctx);
+ SSL_CTX_free((SSL_CTX*)ct->connect_dot_sslctx);
+ SSL_CTX_free((SSL_CTX*)ct->listen_doh_sslctx);
+#endif /* HAVE_SSL */
+#ifdef HAVE_NGTCP2
+ SSL_CTX_free((SSL_CTX*)ct->listen_quic_sslctx);
+#endif
+ free(ct->ssl_service_key);
+ free(ct->ssl_service_pem);
/* Delete the log identity here so that the global value is not
* reset by config_delete. */
if(ct->oldcfg && ct->oldcfg->log_identity) {
@@ -5175,6 +5230,7 @@ config_file_getmem(struct config_file* cfg)
m += getmem_config_strlist(cfg->tls_session_ticket_keys.first);
m += getmem_str(cfg->tls_ciphers);
m += getmem_str(cfg->tls_ciphersuites);
+ m += getmem_str(cfg->tls_protocols);
m += getmem_str(cfg->http_endpoint);
m += (cfg->outgoing_avail_ports?65536*sizeof(int):0);
m += getmem_str(cfg->target_fetch_policy);
@@ -5291,6 +5347,8 @@ fr_printmem(struct fast_reload_thread* fr,
size_t mem = 0;
if(fr_poll_for_quit(fr))
return 1;
+ mem += getmem_str(ct->ssl_service_key);
+ mem += getmem_str(ct->ssl_service_pem);
mem += views_get_mem(ct->views);
mem += respip_set_get_mem(ct->respip_set);
mem += auth_zones_get_mem(ct->auth_zones);
@@ -5524,6 +5582,96 @@ auth_zones_check_changes(struct fast_reload_thread* fr,
return 1;
}
+/** Check if the sslctxs have changed. */
+static int
+fr_check_sslctx_change(struct fast_reload_thread* fr,
+ struct config_file* newcfg)
+{
+#ifdef HAVE_SSL
+ struct daemon* daemon = fr->worker->daemon;
+ if(newcfg->ssl_service_key && newcfg->ssl_service_key[0]) {
+ if(!daemon->ssl_service_key ||
+ ssl_cert_changed(daemon, newcfg))
+ return 1;
+ } else {
+ if(daemon->ssl_service_key)
+ return 1; /* it is removed */
+ }
+ if((daemon->cfg->tls_cert_bundle && !newcfg->tls_cert_bundle) ||
+ (!daemon->cfg->tls_cert_bundle && newcfg->tls_cert_bundle) ||
+ (daemon->cfg->tls_cert_bundle && newcfg->tls_cert_bundle &&
+ strcmp(daemon->cfg->tls_cert_bundle, newcfg->tls_cert_bundle)!=0))
+ return 1; /* The tls-cert-bundle has changed and return
+ true here makes it reload the connect_dot_sslctx. */
+#else
+ (void)fr; (void)newcfg;
+#endif /* HAVE_SSL */
+ return 0;
+}
+
+/** Create the SSL CTXs when they have changed. */
+static int
+ct_create_sslctxs(struct fast_reload_construct* ct,
+ struct config_file* newcfg, struct daemon* daemon)
+{
+#ifdef HAVE_SSL
+ char* chroot = daemon->chroot;
+ char* key = newcfg->ssl_service_key;
+ char* pem = newcfg->ssl_service_pem;
+
+ if(!(newcfg->ssl_service_key && newcfg->ssl_service_key[0])) {
+ /* Leave listen ctxs and file str at NULL */
+ ct->connect_dot_sslctx = daemon_setup_connect_dot_sslctx(
+ daemon, newcfg);
+ return 1;
+ }
+
+ if(chroot && strncmp(key, chroot, strlen(chroot)) == 0)
+ key += strlen(chroot);
+ if(chroot && pem && strncmp(pem, chroot, strlen(chroot)) == 0)
+ pem += strlen(chroot);
+
+ ct->listen_dot_sslctx = daemon_setup_listen_dot_sslctx(daemon, newcfg);
+#ifdef HAVE_NGHTTP2_NGHTTP2_H
+ if(cfg_has_https(newcfg)) {
+ ct->listen_doh_sslctx = daemon_setup_listen_doh_sslctx(
+ daemon, newcfg);
+ }
+#endif
+#ifdef HAVE_NGTCP2
+ if(cfg_has_quic(newcfg)) {
+ ct->listen_quic_sslctx = daemon_setup_listen_quic_sslctx(
+ daemon, newcfg);
+ }
+#endif /* HAVE_NGTCP2 */
+ ct->connect_dot_sslctx = daemon_setup_connect_dot_sslctx(daemon,
+ newcfg);
+
+ /* Store mtime and names */
+ ct->ssl_service_key = strdup(newcfg->ssl_service_key);
+ if(!ct->ssl_service_key) {
+ log_err("ct_create_sslctxs: out of memory");
+ return 0;
+ }
+ ct->ssl_service_pem = strdup(newcfg->ssl_service_pem);
+ if(!ct->ssl_service_pem) {
+ log_err("ct_create_sslctxs: out of memory");
+ return 0;
+ }
+ if(!file_get_mtime(key, &ct->mtime_ssl_service_key,
+ &ct->mtime_ns_ssl_service_key, NULL))
+ log_err("Could not stat(%s): %s",
+ key, strerror(errno));
+ if(!file_get_mtime(pem, &ct->mtime_ssl_service_pem,
+ &ct->mtime_ns_ssl_service_pem, NULL))
+ log_err("Could not stat(%s): %s",
+ pem, strerror(errno));
+#else
+ (void)ct; (void)newcfg; (void)daemon;
+#endif /* HAVE_SSL */
+ return 1;
+}
+
/** fast reload thread, construct from config the new items */
static int
fr_construct_from_config(struct fast_reload_thread* fr,
@@ -5531,6 +5679,13 @@ fr_construct_from_config(struct fast_reload_thread* fr,
{
int have_view_respip_cfg = 0;
+ fr->sslctxs_changed = fr_check_sslctx_change(fr, newcfg);
+ if(fr->sslctxs_changed) {
+ if(!ct_create_sslctxs(ct, newcfg, fr->worker->daemon)) {
+ fr_construct_clear(ct);
+ return 0;
+ }
+ }
if(!(ct->views = views_create())) {
fr_construct_clear(ct);
return 0;
@@ -5808,6 +5963,44 @@ auth_zones_swap(struct auth_zones* az, struct auth_zones* data)
* the xfer elements can continue to be their callbacks. */
}
+/** Swap two void* */
+static void
+void_ptr_swap(void** a, void **b)
+{
+ void* tmp = *a;
+ *a = *b;
+ *b = tmp;
+}
+
+/** Swap two char* */
+static void
+char_ptr_swap(char** a, char **b)
+{
+ char* tmp = *a;
+ *a = *b;
+ *b = tmp;
+}
+
+/** Swap and set ssl ctx information */
+static void
+sslctxs_swap(struct daemon* daemon, struct fast_reload_construct* ct)
+{
+ void_ptr_swap(&daemon->listen_dot_sslctx, &ct->listen_dot_sslctx);
+ void_ptr_swap(&daemon->connect_dot_sslctx, &ct->connect_dot_sslctx);
+#ifdef HAVE_NGHTTP2_NGHTTP2_H
+ void_ptr_swap(&daemon->listen_doh_sslctx, &ct->listen_doh_sslctx);
+#endif
+#ifdef HAVE_NGTCP2
+ void_ptr_swap(&daemon->listen_quic_sslctx, &ct->listen_quic_sslctx);
+#endif /* HAVE_NGTCP2 */
+ char_ptr_swap(&daemon->ssl_service_key, &ct->ssl_service_key);
+ char_ptr_swap(&daemon->ssl_service_pem, &ct->ssl_service_pem);
+ daemon->mtime_ssl_service_key = ct->mtime_ssl_service_key;
+ daemon->mtime_ns_ssl_service_key = ct->mtime_ns_ssl_service_key;
+ daemon->mtime_ssl_service_pem = ct->mtime_ssl_service_pem;
+ daemon->mtime_ns_ssl_service_pem = ct->mtime_ns_ssl_service_pem;
+}
+
#if defined(ATOMIC_POINTER_LOCK_FREE) && defined(HAVE_LINK_ATOMIC_STORE)
/** Fast reload thread, if atomics are available, copy the config items
* one by one with atomic store operations. */
@@ -5869,6 +6062,7 @@ fr_atomic_copy_cfg(struct config_file* oldcfg, struct config_file* cfg,
COPY_VAR_ptr(tls_session_ticket_keys.last);
COPY_VAR_ptr(tls_ciphers);
COPY_VAR_ptr(tls_ciphersuites);
+ COPY_VAR_ptr(tls_protocols);
COPY_VAR_int(tls_use_sni);
COPY_VAR_int(https_port);
COPY_VAR_ptr(http_endpoint);
@@ -5967,6 +6161,7 @@ fr_atomic_copy_cfg(struct config_file* oldcfg, struct config_file* cfg,
COPY_VAR_int(log_servfail);
COPY_VAR_ptr(log_identity);
COPY_VAR_int(log_destaddr);
+ COPY_VAR_int(log_thread_id);
COPY_VAR_int(hide_identity);
COPY_VAR_int(hide_version);
COPY_VAR_int(hide_trustanchor);
@@ -6176,7 +6371,20 @@ fr_atomic_copy_cfg(struct config_file* oldcfg, struct config_file* cfg,
COPY_VAR_ptr(ipset_name_v6);
#endif
COPY_VAR_int(ede);
+ COPY_VAR_int(iter_scrub_ns);
+ COPY_VAR_int(iter_scrub_cname);
+ COPY_VAR_int(iter_scrub_rrsig);
+ COPY_VAR_int(max_global_quota);
COPY_VAR_int(iter_scrub_promiscuous);
+
+#undef COPY_VAR_int
+#undef COPY_VAR_ptr
+#undef COPY_VAR_unsigned_int
+#undef COPY_VAR_size_t
+#undef COPY_VAR_uint8_t
+#undef COPY_VAR_uint16_t
+#undef COPY_VAR_uint32_t
+#undef COPY_VAR_int32_t
}
#endif /* ATOMIC_POINTER_LOCK_FREE && HAVE_LINK_ATOMIC_STORE */
@@ -6402,6 +6610,9 @@ fr_reload_config(struct fast_reload_thread* fr, struct config_file* newcfg,
daemon->env->cachedb_enabled = cachedb_is_enabled(&daemon->mods,
daemon->env);
#endif
+ if(fr->sslctxs_changed) {
+ sslctxs_swap(daemon, ct);
+ }
#ifdef USE_DNSTAP
if(env->cfg->dnstap) {
if(!fr->fr_nopause)
@@ -6626,7 +6837,19 @@ static void* fast_reload_thread_main(void* arg)
struct fast_reload_thread* fast_reload_thread = (struct fast_reload_thread*)arg;
struct timeval time_start, time_read, time_construct, time_reload,
time_end;
- log_thread_set(&fast_reload_thread->threadnum);
+ const char name[16] = "unbound/freload"; /* seems to be the safest size
+ between different OSes */
+
+#if defined(HAVE_GETTID) && !defined(THREADS_DISABLED)
+ fast_reload_thread->thread_tid = gettid();
+ if(fast_reload_thread->thread_tid_log)
+ log_thread_set(&fast_reload_thread->thread_tid);
+ else
+#endif
+ log_thread_set(&fast_reload_thread->threadnum);
+
+ ub_thread_setname(fast_reload_thread->tid, name);
+ (void)name; /* When setname is not defined, ignore the name variable. */
verbose(VERB_ALGO, "start fast reload thread");
if(fast_reload_thread->fr_verb >= 1) {
@@ -7014,6 +7237,9 @@ fast_reload_thread_setup(struct worker* worker, int fr_verb, int fr_nopause,
lock_basic_init(&fr->fr_output_lock);
lock_protect(&fr->fr_output_lock, fr->fr_output,
sizeof(*fr->fr_output));
+#ifdef HAVE_GETTID
+ fr->thread_tid_log = worker->env.cfg->log_thread_id;
+#endif
return 1;
}
@@ -7588,6 +7814,44 @@ fr_worker_pickup_auth_changes(struct worker* worker,
}
}
+/** Fast reload, the worker picks up changes in listen_dnsport. */
+static void
+fr_worker_pickup_listen_dnsport(struct worker* worker)
+{
+ struct listen_dnsport* front = worker->front;
+ struct daemon* daemon = worker->daemon;
+ if(worker->daemon->fast_reload_thread->sslctxs_changed) {
+ struct listen_list* ll;
+ void* dot_sslctx = daemon->listen_dot_sslctx;
+ void* doh_sslctx = daemon->listen_doh_sslctx;
+#ifdef HAVE_NGTCP2
+ void* quic_sslctx = daemon->listen_quic_sslctx;
+#endif /* HAVE_NGTCP2 */
+ for(ll = front->cps; ll; ll = ll->next) {
+ struct comm_point* cp = ll->com;
+ if(cp->type == comm_tcp_accept &&
+ cp->tcp_handlers &&
+ cp->max_tcp_count > 0 &&
+ cp->tcp_handlers[0]->type == comm_http) {
+ if(cp->ssl)
+ cp->ssl = doh_sslctx;
+ } else if(cp->type == comm_tcp_accept) {
+ if(cp->ssl)
+ cp->ssl = dot_sslctx;
+#ifdef HAVE_NGTCP2
+ } else if(cp->type == comm_doq) {
+ if(cp->ssl) {
+ cp->ssl = quic_sslctx;
+ if(cp->doq_socket)
+ cp->doq_socket->ctx =
+ (SSL_CTX*)quic_sslctx;
+ }
+#endif /* HAVE_NGTCP2 */
+ }
+ }
+ }
+}
+
/** Fast reload, the worker picks up changes in outside_network. */
static void
fr_worker_pickup_outside_network(struct worker* worker)
@@ -7603,6 +7867,8 @@ fr_worker_pickup_outside_network(struct worker* worker)
outnet->tcp_reuse_timeout = cfg->tcp_reuse_timeout;
outnet->tcp_auth_query_timeout = cfg->tcp_auth_query_timeout;
outnet->delayclose = cfg->delay_close;
+ if(worker->daemon->fast_reload_thread->sslctxs_changed)
+ outnet->sslctx = worker->daemon->connect_dot_sslctx;
if(outnet->delayclose) {
#ifndef S_SPLINT_S
outnet->delay_tv.tv_sec = cfg->delay_close/1000;
@@ -7611,6 +7877,41 @@ fr_worker_pickup_outside_network(struct worker* worker)
}
}
+#ifdef USE_DNSTAP
+/** Fast reload, the worker picks up changes to DNSTAP configuration. */
+static void
+fr_worker_pickup_dnstap_changes(struct worker* worker)
+{
+ struct dt_env* w_dtenv = &worker->dtenv;
+ struct dt_env* d_dtenv = worker->daemon->dtenv;
+ log_assert(d_dtenv != NULL || !worker->daemon->cfg->dnstap);
+ if(d_dtenv == NULL) {
+ /* There is no environment when DNSTAP was not enabled
+ * in the configuration. */
+ return;
+ }
+ w_dtenv->identity = d_dtenv->identity;
+ w_dtenv->len_identity = d_dtenv->len_identity;
+ w_dtenv->version = d_dtenv->version;
+ w_dtenv->len_version = d_dtenv->len_version;
+ w_dtenv->log_resolver_query_messages =
+ d_dtenv->log_resolver_query_messages;
+ w_dtenv->log_resolver_response_messages =
+ d_dtenv->log_resolver_response_messages;
+ w_dtenv->log_client_query_messages =
+ d_dtenv->log_client_query_messages;
+ w_dtenv->log_client_response_messages =
+ d_dtenv->log_client_response_messages;
+ w_dtenv->log_forwarder_query_messages =
+ d_dtenv->log_forwarder_query_messages;
+ w_dtenv->log_forwarder_response_messages =
+ d_dtenv->log_forwarder_response_messages;
+ lock_basic_lock(&d_dtenv->sample_lock);
+ w_dtenv->sample_rate = d_dtenv->sample_rate;
+ lock_basic_unlock(&d_dtenv->sample_lock);
+}
+#endif /* USE_DNSTAP */
+
void
fast_reload_worker_pickup_changes(struct worker* worker)
{
@@ -7638,7 +7939,11 @@ fast_reload_worker_pickup_changes(struct worker* worker)
#ifdef USE_CACHEDB
worker->env.cachedb_enabled = worker->daemon->env->cachedb_enabled;
#endif
+ fr_worker_pickup_listen_dnsport(worker);
fr_worker_pickup_outside_network(worker);
+#ifdef USE_DNSTAP
+ fr_worker_pickup_dnstap_changes(worker);
+#endif
}
/** fast reload thread, handle reload_stop notification, send reload stop
diff --git a/daemon/remote.h b/daemon/remote.h
index 064d7b7fccce..e9c392fd819e 100644
--- a/daemon/remote.h
+++ b/daemon/remote.h
@@ -206,6 +206,12 @@ struct fast_reload_thread {
int commpair[2];
/** thread id, of the io thread */
ub_thread_type tid;
+#ifdef HAVE_GETTID
+ /** thread tid, the LWP id */
+ pid_t thread_tid;
+ /** if logging should include the LWP id */
+ int thread_tid_log;
+#endif
/** if the io processing has started */
int started;
/** if the thread has to quit */
@@ -249,6 +255,8 @@ struct fast_reload_thread {
struct fast_reload_auth_change* auth_zone_change_list;
/** the old tree of auth zones, to lookup. */
struct auth_zones* old_auth_zones;
+ /** If the ssl ctxs have changed. */
+ int sslctxs_changed;
};
/**
diff --git a/daemon/stats.c b/daemon/stats.c
index 41c4656aaec5..43a9f7092034 100644
--- a/daemon/stats.c
+++ b/daemon/stats.c
@@ -262,6 +262,7 @@ server_stats_compile(struct worker* worker, struct ub_stats_info* s, int reset)
s->svr = worker->stats;
s->mesh_num_states = (long long)worker->env.mesh->all.count;
s->mesh_num_reply_states = (long long)worker->env.mesh->num_reply_states;
+ s->mesh_num_reply_addrs = (long long)worker->env.mesh->num_reply_addrs;
s->mesh_jostled = (long long)worker->env.mesh->stats_jostled;
s->mesh_dropped = (long long)worker->env.mesh->stats_dropped;
s->mesh_replies_sent = (long long)worker->env.mesh->replies_sent;
@@ -284,6 +285,8 @@ server_stats_compile(struct worker* worker, struct ub_stats_info* s, int reset)
NUM_BUCKETS_HIST);
s->svr.num_queries_discard_timeout +=
(long long)worker->env.mesh->num_queries_discard_timeout;
+ s->svr.num_queries_replyaddr_limit +=
+ (long long)worker->env.mesh->num_queries_replyaddr_limit;
s->svr.num_queries_wait_limit +=
(long long)worker->env.mesh->num_queries_wait_limit;
s->svr.num_dns_error_reports +=
@@ -448,6 +451,8 @@ void server_stats_add(struct ub_stats_info* total, struct ub_stats_info* a)
total->svr.num_queries_cookie_invalid += a->svr.num_queries_cookie_invalid;
total->svr.num_queries_discard_timeout +=
a->svr.num_queries_discard_timeout;
+ total->svr.num_queries_replyaddr_limit +=
+ a->svr.num_queries_replyaddr_limit;
total->svr.num_queries_wait_limit += a->svr.num_queries_wait_limit;
total->svr.num_dns_error_reports += a->svr.num_dns_error_reports;
total->svr.num_queries_missed_cache += a->svr.num_queries_missed_cache;
@@ -519,6 +524,7 @@ void server_stats_add(struct ub_stats_info* total, struct ub_stats_info* a)
total->mesh_num_states += a->mesh_num_states;
total->mesh_num_reply_states += a->mesh_num_reply_states;
+ total->mesh_num_reply_addrs += a->mesh_num_reply_addrs;
total->mesh_jostled += a->mesh_jostled;
total->mesh_dropped += a->mesh_dropped;
total->mesh_replies_sent += a->mesh_replies_sent;
diff --git a/daemon/unbound.c b/daemon/unbound.c
index 164d0fb89509..a787b76fead4 100644
--- a/daemon/unbound.c
+++ b/daemon/unbound.c
@@ -463,57 +463,13 @@ detach(void)
#endif /* HAVE_DAEMON */
}
-#ifdef HAVE_SSL
-/* setup a listening ssl context, fatal_exit() on any failure */
-static void
-setup_listen_sslctx(void** ctx, int is_dot, int is_doh, struct config_file* cfg)
-{
- if(!(*ctx = listen_sslctx_create(
- cfg->ssl_service_key, cfg->ssl_service_pem, NULL,
- cfg->tls_ciphers, cfg->tls_ciphersuites,
- (cfg->tls_session_ticket_keys.first &&
- cfg->tls_session_ticket_keys.first->str[0] != 0),
- is_dot, is_doh))) {
- fatal_exit("could not set up listen SSL_CTX");
- }
-}
-#endif /* HAVE_SSL */
-
-/* setups the needed ssl contexts, fatal_exit() on any failure */
+/** setup the remote and ticket keys */
static void
-setup_sslctxs(struct daemon* daemon, struct config_file* cfg)
+setup_sslctx_remote(struct daemon* daemon, struct config_file* cfg)
{
#ifdef HAVE_SSL
if(!(daemon->rc = daemon_remote_create(cfg)))
fatal_exit("could not set up remote-control");
- if(cfg->ssl_service_key && cfg->ssl_service_key[0]) {
- /* setup the session keys; the callback to use them will be
- * attached to each sslctx separately */
- if(cfg->tls_session_ticket_keys.first &&
- cfg->tls_session_ticket_keys.first->str[0] != 0) {
- if(!listen_sslctx_setup_ticket_keys(
- cfg->tls_session_ticket_keys.first)) {
- fatal_exit("could not set session ticket SSL_CTX");
- }
- }
- (void)setup_listen_sslctx(&daemon->listen_dot_sslctx, 1, 0, cfg);
-#ifdef HAVE_NGHTTP2_NGHTTP2_H
- if(cfg_has_https(cfg)) {
- (void)setup_listen_sslctx(&daemon->listen_doh_sslctx, 0, 1, cfg);
- }
-#endif
-#ifdef HAVE_NGTCP2
- if(cfg_has_quic(cfg)) {
- if(!(daemon->listen_quic_sslctx = quic_sslctx_create(
- cfg->ssl_service_key, cfg->ssl_service_pem, NULL))) {
- fatal_exit("could not set up quic SSL_CTX");
- }
- }
-#endif /* HAVE_NGTCP2 */
- }
- if(!(daemon->connect_dot_sslctx = connect_sslctx_create(NULL, NULL,
- cfg->tls_cert_bundle, cfg->tls_win_cert)))
- fatal_exit("could not set up connect SSL_CTX");
#else /* HAVE_SSL */
(void)daemon;(void)cfg;
#endif /* HAVE_SSL */
@@ -545,7 +501,8 @@ perform_setup(struct daemon* daemon, struct config_file* cfg, int debug_mode,
#endif
/* read ssl keys while superuser and outside chroot */
- (void)setup_sslctxs(daemon, cfg);
+ setup_sslctx_remote(daemon, cfg);
+ daemon_setup_sslctxs(daemon, cfg);
/* init syslog (as root) if needed, before daemonize, otherwise
* a fork error could not be printed since daemonize closed stderr.*/
diff --git a/daemon/worker.c b/daemon/worker.c
index 8e4a9b3d650a..a5dd9bc028e8 100644
--- a/daemon/worker.c
+++ b/daemon/worker.c
@@ -255,7 +255,8 @@ worker_handle_service_reply(struct comm_point* c, void* arg, int error,
return 0;
}
/* sanity check. */
- if(!LDNS_QR_WIRE(sldns_buffer_begin(c->buffer))
+ if(sldns_buffer_limit(c->buffer) < LDNS_HEADER_SIZE
+ || !LDNS_QR_WIRE(sldns_buffer_begin(c->buffer))
|| LDNS_OPCODE_WIRE(sldns_buffer_begin(c->buffer)) !=
LDNS_PACKET_QUERY
|| LDNS_QDCOUNT(sldns_buffer_begin(c->buffer)) > 1) {
@@ -293,6 +294,44 @@ worker_err_ratelimit(struct worker* worker, int err)
}
/**
+ * Reply with an error.
+ * This reply includes the qname if it has been parsed.
+ * For error ratelimiting, the err ratelimit routine should be checked
+ * beforehand. The reply is without EDNS, and copies RD and sets QR flag.
+ * @param pkt: the packet buffer from the comm point.
+ * @param err: the error code that would be wanted.
+ * @param qname_len: 0 if not parsed, and the qname length in packet.
+ */
+static void
+query_error(sldns_buffer* pkt, int err, size_t qname_len)
+{
+ /* Preserve the RD flag.
+ * The CD flag must be cleared in authoritative answers,
+ * also the AD flag need not be copied into answers.
+ * The other flags need not be copied into the answer. */
+ sldns_buffer_write_u16_at(pkt, 2,
+ sldns_buffer_read_u16_at(pkt, 2)&0x0100U);
+ LDNS_QR_SET(sldns_buffer_begin(pkt)); /* Set QR flag. */
+ LDNS_RCODE_SET(sldns_buffer_begin(pkt), err); /* Set rcode */
+
+ if(qname_len && LDNS_QDCOUNT(sldns_buffer_begin(pkt))>=1 &&
+ qname_len <= LDNS_MAX_DOMAINLEN) {
+ /* Copy query into the answer. */
+ LDNS_QDCOUNT_SET(sldns_buffer_begin(pkt), 1);
+ sldns_buffer_set_position(pkt, LDNS_HEADER_SIZE +
+ qname_len + 2 /* type */ + 2 /* class */ );
+ } else {
+ /* No query section in answer. */
+ LDNS_QDCOUNT_SET(sldns_buffer_begin(pkt), 0);
+ sldns_buffer_set_position(pkt, LDNS_HEADER_SIZE);
+ }
+ LDNS_ANCOUNT_SET(sldns_buffer_begin(pkt), 0);
+ LDNS_NSCOUNT_SET(sldns_buffer_begin(pkt), 0);
+ LDNS_ARCOUNT_SET(sldns_buffer_begin(pkt), 0);
+ sldns_buffer_flip(pkt);
+}
+
+/**
* Structure holding the result of the worker_check_request function.
* Based on configuration it could be called up to four times; ideally should
* be called once.
@@ -329,7 +368,6 @@ worker_check_request(sldns_buffer* pkt, struct worker* worker,
return;
}
if(LDNS_TC_WIRE(sldns_buffer_begin(pkt))) {
- LDNS_TC_CLR(sldns_buffer_begin(pkt));
verbose(VERB_QUERY, "request bad, has TC bit on");
out->value = worker_err_ratelimit(worker, LDNS_RCODE_FORMERR);
return;
@@ -746,7 +784,7 @@ answer_from_cache(struct worker* worker, struct query_info* qinfo,
*partial_repp = NULL; /* avoid accidental further pass */
/* Check TTL */
- if(rep->ttl < timenow) {
+ if(TTL_IS_EXPIRED(rep->ttl, timenow)) {
/* Check if we need to serve expired now */
if(worker->env.cfg->serve_expired &&
/* if serve-expired-client-timeout is set, serve
@@ -971,6 +1009,7 @@ chaos_replystr(sldns_buffer* pkt, char** str, int num, struct edns_data* edns,
size_t udpsize = edns->udp_size;
edns->edns_version = EDNS_ADVERTISED_VERSION;
edns->udp_size = EDNS_ADVERTISED_SIZE;
+ edns->ext_rcode = 0;
edns->bits &= EDNS_DO;
if(!inplace_cb_reply_local_call(&worker->env, NULL, NULL, NULL,
LDNS_RCODE_NOERROR, edns, repinfo, worker->scratchpad,
@@ -1229,9 +1268,7 @@ deny_refuse(struct comm_point* c, enum acl_access acl,
worker_check_request(c->buffer, worker, check_result);
if(check_result->value != 0) {
if(check_result->value != -1) {
- LDNS_QR_SET(sldns_buffer_begin(c->buffer));
- LDNS_RCODE_SET(sldns_buffer_begin(c->buffer),
- check_result->value);
+ query_error(c->buffer, check_result->value, 0);
return 1;
}
comm_point_drop_reply(repinfo);
@@ -1248,41 +1285,17 @@ deny_refuse(struct comm_point* c, enum acl_access acl,
/* check additional section is present and that we respond with EDEs */
if(LDNS_ARCOUNT(sldns_buffer_begin(c->buffer)) != 1
|| !ede) {
- LDNS_QDCOUNT_SET(sldns_buffer_begin(c->buffer), 0);
- LDNS_ANCOUNT_SET(sldns_buffer_begin(c->buffer), 0);
- LDNS_NSCOUNT_SET(sldns_buffer_begin(c->buffer), 0);
- LDNS_ARCOUNT_SET(sldns_buffer_begin(c->buffer), 0);
- LDNS_QR_SET(sldns_buffer_begin(c->buffer));
- LDNS_RCODE_SET(sldns_buffer_begin(c->buffer),
- LDNS_RCODE_REFUSED);
- sldns_buffer_set_position(c->buffer, LDNS_HEADER_SIZE);
- sldns_buffer_flip(c->buffer);
+ query_error(c->buffer, LDNS_RCODE_REFUSED, 0);
return 1;
}
if (!query_dname_len(c->buffer)) {
- LDNS_QDCOUNT_SET(sldns_buffer_begin(c->buffer), 0);
- LDNS_ANCOUNT_SET(sldns_buffer_begin(c->buffer), 0);
- LDNS_NSCOUNT_SET(sldns_buffer_begin(c->buffer), 0);
- LDNS_ARCOUNT_SET(sldns_buffer_begin(c->buffer), 0);
- LDNS_QR_SET(sldns_buffer_begin(c->buffer));
- LDNS_RCODE_SET(sldns_buffer_begin(c->buffer),
- LDNS_RCODE_FORMERR);
- sldns_buffer_set_position(c->buffer, LDNS_HEADER_SIZE);
- sldns_buffer_flip(c->buffer);
+ query_error(c->buffer, LDNS_RCODE_FORMERR, 0);
return 1;
}
/* space available for query type and class? */
if (sldns_buffer_remaining(c->buffer) < 2 * sizeof(uint16_t)) {
- LDNS_QR_SET(sldns_buffer_begin(c->buffer));
- LDNS_RCODE_SET(sldns_buffer_begin(c->buffer),
- LDNS_RCODE_FORMERR);
- LDNS_QDCOUNT_SET(sldns_buffer_begin(c->buffer), 0);
- LDNS_ANCOUNT_SET(sldns_buffer_begin(c->buffer), 0);
- LDNS_NSCOUNT_SET(sldns_buffer_begin(c->buffer), 0);
- LDNS_ARCOUNT_SET(sldns_buffer_begin(c->buffer), 0);
- sldns_buffer_set_position(c->buffer, LDNS_HEADER_SIZE);
- sldns_buffer_flip(c->buffer);
+ query_error(c->buffer, LDNS_RCODE_FORMERR, 0);
return 1;
}
LDNS_QR_SET(sldns_buffer_begin(c->buffer));
@@ -1304,35 +1317,27 @@ deny_refuse(struct comm_point* c, enum acl_access acl,
if(!skip_pkt_rrs(c->buffer,
((int)LDNS_ANCOUNT(sldns_buffer_begin(c->buffer)))+
((int)LDNS_NSCOUNT(sldns_buffer_begin(c->buffer))))) {
- LDNS_RCODE_SET(sldns_buffer_begin(c->buffer),
- LDNS_RCODE_FORMERR);
- LDNS_ANCOUNT_SET(sldns_buffer_begin(c->buffer), 0);
- LDNS_NSCOUNT_SET(sldns_buffer_begin(c->buffer), 0);
- LDNS_ARCOUNT_SET(sldns_buffer_begin(c->buffer), 0);
- sldns_buffer_set_position(c->buffer, opt_rr_mark);
- sldns_buffer_flip(c->buffer);
+ query_error(c->buffer, LDNS_RCODE_FORMERR,
+ opt_rr_mark - LDNS_HEADER_SIZE
+ - 2 /* qtype */ - 2 /* qclass */);
return 1;
}
}
/* Do we have a valid OPT RR here? If not return REFUSED (could be a valid TSIG or something so no FORMERR) */
/* domain name must be the root of length 1. */
if(sldns_buffer_remaining(c->buffer) < 1 || *sldns_buffer_current(c->buffer) != 0) {
- LDNS_ANCOUNT_SET(sldns_buffer_begin(c->buffer), 0);
- LDNS_NSCOUNT_SET(sldns_buffer_begin(c->buffer), 0);
- LDNS_ARCOUNT_SET(sldns_buffer_begin(c->buffer), 0);
- sldns_buffer_set_position(c->buffer, opt_rr_mark);
- sldns_buffer_flip(c->buffer);
+ query_error(c->buffer, LDNS_RCODE_REFUSED,
+ opt_rr_mark - LDNS_HEADER_SIZE
+ - 2 /* qtype */ - 2 /* qclass */);
return 1;
} else {
sldns_buffer_skip(c->buffer, 1); /* skip root label */
}
if(sldns_buffer_remaining(c->buffer) < 2 ||
sldns_buffer_read_u16(c->buffer) != LDNS_RR_TYPE_OPT) {
- LDNS_ANCOUNT_SET(sldns_buffer_begin(c->buffer), 0);
- LDNS_NSCOUNT_SET(sldns_buffer_begin(c->buffer), 0);
- LDNS_ARCOUNT_SET(sldns_buffer_begin(c->buffer), 0);
- sldns_buffer_set_position(c->buffer, opt_rr_mark);
- sldns_buffer_flip(c->buffer);
+ query_error(c->buffer, LDNS_RCODE_REFUSED,
+ opt_rr_mark - LDNS_HEADER_SIZE
+ - 2 /* qtype */ - 2 /* qclass */);
return 1;
}
/* Write OPT RR directly after the query,
@@ -1444,6 +1449,24 @@ check_ip_ratelimit(struct worker* worker, struct sockaddr_storage* addr,
return 1;
}
+/*
+ * This is the callback function when a request arrives. It is passed
+ * the packet and user argument. Return true to send a reply.
+ * This is of type comm_point_callback_type. The struct comm_point contains
+ * more comments on the comm_point.callback member about the function.
+ * @param c: the comm_point where the request arrives on.
+ * @param arg: the user argument for the callback, the worker.
+ * @param error: This can be NETEVENT_NOERROR, NETEVENT_TIMEOUT,
+ * NETEVENT_CLOSED or other comm point callback error values.
+ * @param repinfo: The reply info, use it to send a reply. If the reply
+ * is immediate, return 1. If the reply is later on return 0 and save
+ * the repinfo, to call comm_point_send_reply on.
+ * @return 1 to sent a reply straight away, for like cache response so that
+ * no allocation needs to be done. And only internal preallocated buffers
+ * are used. Return 0 and save the repinfo to reply later, for responses
+ * that need to be looked up. Return 0 and call comm_point_drop_reply on
+ * the repinfo to drop the response.
+ */
int
worker_handle_request(struct comm_point* c, void* arg, int error,
struct comm_reply* repinfo)
@@ -1510,6 +1533,10 @@ worker_handle_request(struct comm_point* c, void* arg, int error,
"dnscrypt: worker check request: bad query.");
log_addr(VERB_CLIENT,"from",&repinfo->client_addr,
repinfo->client_addrlen);
+ if(check_result.value != -1) {
+ query_error(c->buffer, check_result.value, 0);
+ return 1;
+ }
comm_point_drop_reply(repinfo);
return 0;
}
@@ -1518,8 +1545,12 @@ worker_handle_request(struct comm_point* c, void* arg, int error,
"dnscrypt: worker parse request: formerror.");
log_addr(VERB_CLIENT, "from", &repinfo->client_addr,
repinfo->client_addrlen);
- comm_point_drop_reply(repinfo);
- return 0;
+ if(worker_err_ratelimit(worker, LDNS_RCODE_FORMERR) == -1) {
+ comm_point_drop_reply(repinfo);
+ return 0;
+ }
+ query_error(c->buffer, LDNS_RCODE_FORMERR, 0);
+ return 1;
}
dname_str(qinfo.qname, buf);
if(!(qinfo.qtype == LDNS_RR_TYPE_TXT &&
@@ -1530,9 +1561,14 @@ worker_handle_request(struct comm_point* c, void* arg, int error,
worker->daemon->dnscenv->provider_name,
sldns_rr_descript(qinfo.qtype)->_name,
buf);
- comm_point_drop_reply(repinfo);
+ if(worker_err_ratelimit(worker, LDNS_RCODE_SERVFAIL) == -1) {
+ comm_point_drop_reply(repinfo);
+ return 0;
+ }
+ query_error(c->buffer, LDNS_RCODE_SERVFAIL,
+ qinfo.qname_len);
worker->stats.num_query_dnscrypt_cleartext++;
- return 0;
+ return 1;
}
worker->stats.num_query_dnscrypt_cert++;
sldns_buffer_rewind(c->buffer);
@@ -1572,9 +1608,7 @@ worker_handle_request(struct comm_point* c, void* arg, int error,
verbose(VERB_ALGO, "worker check request: bad query.");
log_addr(VERB_CLIENT,"from",&repinfo->client_addr, repinfo->client_addrlen);
if(check_result.value != -1) {
- LDNS_QR_SET(sldns_buffer_begin(c->buffer));
- LDNS_RCODE_SET(sldns_buffer_begin(c->buffer),
- check_result.value);
+ query_error(c->buffer, check_result.value, 0);
return 1;
}
comm_point_drop_reply(repinfo);
@@ -1608,10 +1642,7 @@ worker_handle_request(struct comm_point* c, void* arg, int error,
comm_point_drop_reply(repinfo);
return 0;
}
- sldns_buffer_rewind(c->buffer);
- LDNS_QR_SET(sldns_buffer_begin(c->buffer));
- LDNS_RCODE_SET(sldns_buffer_begin(c->buffer),
- LDNS_RCODE_FORMERR);
+ query_error(c->buffer, LDNS_RCODE_FORMERR, 0);
goto send_reply;
}
if(worker->env.cfg->log_queries) {
@@ -1624,10 +1655,11 @@ worker_handle_request(struct comm_point* c, void* arg, int error,
verbose(VERB_ALGO, "worker request: refused zone transfer.");
log_addr(VERB_CLIENT, "from", &repinfo->client_addr,
repinfo->client_addrlen);
- sldns_buffer_rewind(c->buffer);
- LDNS_QR_SET(sldns_buffer_begin(c->buffer));
- LDNS_RCODE_SET(sldns_buffer_begin(c->buffer),
- LDNS_RCODE_REFUSED);
+ if(worker_err_ratelimit(worker, LDNS_RCODE_REFUSED) == -1) {
+ comm_point_drop_reply(repinfo);
+ return 0;
+ }
+ query_error(c->buffer, LDNS_RCODE_REFUSED, qinfo.qname_len);
if(worker->stats.extended) {
worker->stats.qtype[qinfo.qtype]++;
}
@@ -1646,10 +1678,7 @@ worker_handle_request(struct comm_point* c, void* arg, int error,
comm_point_drop_reply(repinfo);
return 0;
}
- sldns_buffer_rewind(c->buffer);
- LDNS_QR_SET(sldns_buffer_begin(c->buffer));
- LDNS_RCODE_SET(sldns_buffer_begin(c->buffer),
- LDNS_RCODE_FORMERR);
+ query_error(c->buffer, LDNS_RCODE_FORMERR, qinfo.qname_len);
if(worker->stats.extended) {
worker->stats.qtype[qinfo.qtype]++;
}
@@ -1657,13 +1686,17 @@ worker_handle_request(struct comm_point* c, void* arg, int error,
}
if((ret=parse_edns_from_query_pkt(
c->buffer, &edns, worker->env.cfg, c, repinfo,
- (worker->env.now ? *worker->env.now : time(NULL)),
- worker->scratchpad,
+ *worker->env.now, worker->scratchpad,
worker->daemon->cookie_secrets)) != 0) {
struct edns_data reply_edns;
verbose(VERB_ALGO, "worker parse edns: formerror.");
log_addr(VERB_CLIENT, "from", &repinfo->client_addr,
repinfo->client_addrlen);
+ if(worker_err_ratelimit(worker, ret) == -1) {
+ comm_point_drop_reply(repinfo);
+ regional_free_all(worker->scratchpad);
+ return 0;
+ }
memset(&reply_edns, 0, sizeof(reply_edns));
reply_edns.edns_present = 1;
error_encode(c->buffer, ret, &qinfo,
@@ -1680,6 +1713,11 @@ worker_handle_request(struct comm_point* c, void* arg, int error,
verbose(VERB_ALGO, "query with bad edns version.");
log_addr(VERB_CLIENT, "from", &repinfo->client_addr,
repinfo->client_addrlen);
+ if(worker_err_ratelimit(worker, EDNS_RCODE_BADVERS) == -1) {
+ comm_point_drop_reply(repinfo);
+ regional_free_all(worker->scratchpad);
+ return 0;
+ }
extended_error_encode(c->buffer, EDNS_RCODE_BADVERS, &qinfo,
*(uint16_t*)(void *)sldns_buffer_begin(c->buffer),
sldns_buffer_read_u16_at(c->buffer, 2), 0, &edns);
@@ -1725,6 +1763,11 @@ worker_handle_request(struct comm_point* c, void* arg, int error,
else if(edns.cookie_present) {
/* Cookie present, but not valid: Cookie was bad! */
+ if(worker_err_ratelimit(worker, LDNS_EXT_RCODE_BADCOOKIE) == -1) {
+ comm_point_drop_reply(repinfo);
+ regional_free_all(worker->scratchpad);
+ return 0;
+ }
extended_error_encode(c->buffer,
LDNS_EXT_RCODE_BADCOOKIE, &qinfo,
*(uint16_t*)(void *)
@@ -1739,6 +1782,11 @@ worker_handle_request(struct comm_point* c, void* arg, int error,
"need cookie or stateful transport");
log_addr(VERB_ALGO, "from",&repinfo->remote_addr
, repinfo->remote_addrlen);
+ if(worker_err_ratelimit(worker, LDNS_RCODE_REFUSED) == -1) {
+ comm_point_drop_reply(repinfo);
+ regional_free_all(worker->scratchpad);
+ return 0;
+ }
EDNS_OPT_LIST_APPEND_EDE(&edns.opt_list_out,
worker->scratchpad, LDNS_EDE_OTHER,
"DNS Cookie needed for UDP replies");
@@ -1765,14 +1813,14 @@ worker_handle_request(struct comm_point* c, void* arg, int error,
verbose(VERB_ALGO, "worker request: edns is too small.");
log_addr(VERB_CLIENT, "from", &repinfo->client_addr,
repinfo->client_addrlen);
- LDNS_QR_SET(sldns_buffer_begin(c->buffer));
+ if(worker_err_ratelimit(worker, LDNS_RCODE_SERVFAIL) == -1) {
+ comm_point_drop_reply(repinfo);
+ regional_free_all(worker->scratchpad);
+ return 0;
+ }
+ /* A small error without qname, and TC flag on. */
+ query_error(c->buffer, LDNS_RCODE_SERVFAIL, 0);
LDNS_TC_SET(sldns_buffer_begin(c->buffer));
- LDNS_RCODE_SET(sldns_buffer_begin(c->buffer),
- LDNS_RCODE_SERVFAIL);
- sldns_buffer_set_position(c->buffer, LDNS_HEADER_SIZE);
- sldns_buffer_write_at(c->buffer, 4,
- (uint8_t*)"\0\0\0\0\0\0\0\0", 8);
- sldns_buffer_flip(c->buffer);
regional_free_all(worker->scratchpad);
goto send_reply;
}
@@ -1857,6 +1905,15 @@ worker_handle_request(struct comm_point* c, void* arg, int error,
* ACLs allow the snooping. */
if(!(LDNS_RD_WIRE(sldns_buffer_begin(c->buffer))) &&
acl != acl_allow_snoop ) {
+ log_addr(VERB_ALGO, "refused nonrec (cache snoop) query from",
+ &repinfo->client_addr, repinfo->client_addrlen);
+ /* This ratelimited error query is accounted in the stats,
+ * as an incoming query. */
+ if(worker_err_ratelimit(worker, LDNS_RCODE_REFUSED) == -1) {
+ comm_point_drop_reply(repinfo);
+ regional_free_all(worker->scratchpad);
+ return 0;
+ }
if(worker->env.cfg->ede) {
EDNS_OPT_LIST_APPEND_EDE(&edns.opt_list_out,
worker->scratchpad, LDNS_EDE_NOT_AUTHORITATIVE, "");
@@ -1865,9 +1922,6 @@ worker_handle_request(struct comm_point* c, void* arg, int error,
*(uint16_t*)(void *)sldns_buffer_begin(c->buffer),
sldns_buffer_read_u16_at(c->buffer, 2), &edns);
regional_free_all(worker->scratchpad);
- log_addr(VERB_ALGO, "refused nonrec (cache snoop) query from",
- &repinfo->client_addr, repinfo->client_addrlen);
-
goto send_reply;
}
@@ -1929,11 +1983,11 @@ lookup_cache:
if((worker->env.cfg->prefetch &&
rep->prefetch_ttl <= *worker->env.now) ||
(worker->env.cfg->serve_expired &&
- rep->ttl < *worker->env.now &&
+ TTL_IS_EXPIRED(rep->ttl, *worker->env.now) &&
!(*worker->env.now < rep->serve_expired_norec_ttl))) {
- time_t leeway = rep->ttl - *worker->env.now;
- if(rep->ttl < *worker->env.now)
- leeway = 0;
+ time_t leeway =
+ TTL_IS_EXPIRED(rep->ttl, *worker->env.now)
+ ? 0 : rep->ttl - *worker->env.now;
lock_rw_unlock(&e->lock);
reply_and_prefetch(worker, lookup_qinfo,
@@ -2106,10 +2160,37 @@ worker_restart_timer(struct worker* worker)
{
if(worker->env.cfg->stat_interval > 0) {
struct timeval tv;
+ if(worker->daemon->stat_time_specific) {
+ struct timeval dest, now;
+ int interval = worker->env.cfg->stat_interval;
+ int offset = worker->daemon->stat_time_offset;
+ int nows, spec;
+ if(gettimeofday(&now, NULL) < 0)
+ log_err("gettimeofday: %s", strerror(errno));
#ifndef S_SPLINT_S
- tv.tv_sec = worker->env.cfg->stat_interval;
- tv.tv_usec = 0;
+ nows = (int)now.tv_sec;
+ /* The next time is on the timer interval, at the
+ * specific offset, time value % interval = offset. */
+ /* It relies on the integer division below to drop the
+ * remainder in order to calculate the expected
+ * result. */
+ spec = ((nows-offset)/interval+1)*interval+offset;
+ /* This is instead of an assertion, and should not
+ * be needed. So assert(spec > nows), tv is going to
+ * be positive. */
+ if(spec<=nows) spec += interval;
+ dest.tv_sec = spec;
+ dest.tv_usec = 0;
#endif
+ /* Subtract in timeval, so the fractions of a second
+ * are rounded to the whole specific time. */
+ timeval_subtract(&tv, &dest, &now);
+ } else {
+#ifndef S_SPLINT_S
+ tv.tv_sec = worker->env.cfg->stat_interval;
+ tv.tv_usec = 0;
+#endif
+ }
comm_timer_set(worker->stat_timer, &tv);
}
}
@@ -2185,9 +2266,6 @@ worker_init(struct worker* worker, struct config_file *cfg,
#else
void* dtenv = NULL;
#endif
-#ifdef HAVE_GETTID
- worker->thread_tid = gettid();
-#endif
worker->need_to_exit = 0;
worker->base = comm_base_create(do_sigs);
if(!worker->base) {
diff --git a/dns64/dns64.c b/dns64/dns64.c
index fbdbd87b9f63..9a407072ef07 100644
--- a/dns64/dns64.c
+++ b/dns64/dns64.c
@@ -366,22 +366,23 @@ static int
dns64_apply_cfg(struct dns64_env* dns64_env, struct config_file* cfg)
{
struct config_strlist* s;
- verbose(VERB_ALGO, "dns64-prefix: %s", cfg->dns64_prefix);
- if (!netblockstrtoaddr(cfg->dns64_prefix ? cfg->dns64_prefix :
- DEFAULT_DNS64_PREFIX, 0, &dns64_env->prefix_addr,
+ const char* dns64_prefix = cfg->dns64_prefix ?
+ cfg->dns64_prefix : DEFAULT_DNS64_PREFIX;
+ verbose(VERB_ALGO, "dns64-prefix: %s", dns64_prefix);
+ if (!netblockstrtoaddr(dns64_prefix, 0, &dns64_env->prefix_addr,
&dns64_env->prefix_addrlen, &dns64_env->prefix_net)) {
- log_err("cannot parse dns64-prefix netblock: %s", cfg->dns64_prefix);
+ log_err("cannot parse dns64-prefix netblock: %s", dns64_prefix);
return 0;
}
if (!addr_is_ip6(&dns64_env->prefix_addr, dns64_env->prefix_addrlen)) {
- log_err("dns64_prefix is not IPv6: %s", cfg->dns64_prefix);
+ log_err("dns64_prefix is not IPv6: %s", dns64_prefix);
return 0;
}
if (dns64_env->prefix_net != 32 && dns64_env->prefix_net != 40 &&
dns64_env->prefix_net != 48 && dns64_env->prefix_net != 56 &&
dns64_env->prefix_net != 64 && dns64_env->prefix_net != 96 ) {
- log_err("dns64-prefix length it not 32, 40, 48, 56, 64 or 96: %s",
- cfg->dns64_prefix);
+ log_err("dns64-prefix length is not 32, 40, 48, 56, 64 or 96: %s",
+ dns64_prefix);
return 0;
}
for(s = cfg->dns64_ignore_aaaa; s; s = s->next) {
@@ -496,8 +497,8 @@ handle_ipv6_ptr(struct module_qstate* qstate, int id)
/* Create the new sub-query. */
fptr_ok(fptr_whitelist_modenv_attach_sub(qstate->env->attach_sub));
- if(!(*qstate->env->attach_sub)(qstate, &qinfo, qstate->query_flags, 0, 0,
- &subq))
+ if(!(*qstate->env->attach_sub)(qstate, &qinfo, qstate->client_info,
+ qstate->query_flags, 0, 0, &subq))
return module_error;
if (subq) {
subq->curmod = id;
@@ -522,8 +523,8 @@ generate_type_A_query(struct module_qstate* qstate, int id)
/* Start the sub-query. */
fptr_ok(fptr_whitelist_modenv_attach_sub(qstate->env->attach_sub));
- if(!(*qstate->env->attach_sub)(qstate, &qinfo, qstate->query_flags, 0,
- 0, &subq))
+ if(!(*qstate->env->attach_sub)(qstate, &qinfo, qstate->client_info,
+ qstate->query_flags, 0, 0, &subq))
{
verbose(VERB_ALGO, "dns64: sub-query creation failed");
return module_error;
diff --git a/dnstap/dtstream.c b/dnstap/dtstream.c
index 39d43403bc62..09bdfd662794 100644
--- a/dnstap/dtstream.c
+++ b/dnstap/dtstream.c
@@ -448,6 +448,9 @@ int dt_io_thread_apply_cfg(struct dt_io_thread* dtio, struct config_file *cfg)
dtio->tls_use_sni = cfg->tls_use_sni;
#endif /* HAVE_SSL */
}
+#ifdef HAVE_GETTID
+ dtio->thread_tid_log = cfg->log_thread_id;
+#endif
return 1;
}
@@ -2130,7 +2133,18 @@ static void* dnstap_io(void* arg)
struct dt_io_thread* dtio = (struct dt_io_thread*)arg;
time_t secs = 0;
struct timeval now;
- log_thread_set(&dtio->threadnum);
+ const char name[16] = "unbound/dnstap"; /* seems to be the safest size
+ between different OSes */
+
+#if defined(HAVE_GETTID) && !defined(THREADS_DISABLED)
+ dtio->thread_tid = gettid();
+ if(dtio->thread_tid_log)
+ log_thread_set(&dtio->thread_tid);
+ else
+#endif
+ log_thread_set(&dtio->threadnum);
+
+ ub_thread_setname(dtio->tid, name);
/* setup */
verbose(VERB_ALGO, "start dnstap io thread");
diff --git a/dnstap/dtstream.h b/dnstap/dtstream.h
index f87d6dc8d386..4c0a6285fe3c 100644
--- a/dnstap/dtstream.h
+++ b/dnstap/dtstream.h
@@ -131,6 +131,12 @@ struct dt_io_thread {
struct dt_io_list_item* io_list_iter;
/** thread id, of the io thread */
ub_thread_type tid;
+#ifdef HAVE_GETTID
+ /** thread tid, the LWP id */
+ pid_t thread_tid;
+ /** if logging should include the LWP id */
+ int thread_tid_log;
+#endif
/** if the io processing has started */
int started;
/** ssl context for the io thread, for tls connections. type SSL_CTX* */
diff --git a/dnstap/unbound-dnstap-socket.c b/dnstap/unbound-dnstap-socket.c
index a01627de9650..90b0f6003ff6 100644
--- a/dnstap/unbound-dnstap-socket.c
+++ b/dnstap/unbound-dnstap-socket.c
@@ -330,7 +330,7 @@ static struct tap_socket* tap_socket_new_tcpaccept(char* ip,
/** create new socket (unconnected, not base-added), or NULL malloc fail */
static struct tap_socket* tap_socket_new_tlsaccept(char* ip,
void (*ev_cb)(int, short, void*), void* data, char* server_key,
- char* server_cert, char* verifypem)
+ char* server_cert, char* verifypem, char* tls_protocols)
{
struct tap_socket* s = calloc(1, sizeof(*s));
if(!s) {
@@ -347,7 +347,7 @@ static struct tap_socket* tap_socket_new_tlsaccept(char* ip,
s->ev_cb = ev_cb;
s->data = data;
s->sslctx = listen_sslctx_create(server_key, server_cert, verifypem,
- NULL, NULL, 0, 0, 0);
+ NULL, NULL, 0, 0, 0, tls_protocols);
if(!s->sslctx) {
log_err("could not create ssl context");
free(s->ip);
@@ -1261,13 +1261,13 @@ static void setup_tcp_list(struct main_tap_data* maindata,
/** setup tls accept sockets */
static void setup_tls_list(struct main_tap_data* maindata,
struct config_strlist_head* tls_list, char* server_key,
- char* server_cert, char* verifypem)
+ char* server_cert, char* verifypem, char* tls_protocols)
{
struct config_strlist* item;
for(item = tls_list->first; item; item = item->next) {
struct tap_socket* s;
s = tap_socket_new_tlsaccept(item->str, &dtio_mainfdcallback,
- maindata, server_key, server_cert, verifypem);
+ maindata, server_key, server_cert, verifypem, tls_protocols);
if(!s) fatal_exit("out of memory");
if(!tap_socket_list_insert(&maindata->acceptlist, s))
fatal_exit("out of memory");
@@ -1300,7 +1300,7 @@ static void
setup_and_run(struct config_strlist_head* local_list,
struct config_strlist_head* tcp_list,
struct config_strlist_head* tls_list, char* server_key,
- char* server_cert, char* verifypem)
+ char* server_cert, char* verifypem, char* tls_protocols)
{
time_t secs = 0;
struct timeval now;
@@ -1326,7 +1326,7 @@ setup_and_run(struct config_strlist_head* local_list,
setup_local_list(maindata, local_list);
setup_tcp_list(maindata, tcp_list);
setup_tls_list(maindata, tls_list, server_key, server_cert,
- verifypem);
+ verifypem, tls_protocols);
if(!tap_socket_list_addevs(maindata->acceptlist, base))
fatal_exit("could not setup accept events");
if(verbosity) log_info("start of service");
@@ -1462,6 +1462,8 @@ int main(int argc, char** argv)
struct config_strlist_head tcp_list;
struct config_strlist_head tls_list;
char* server_key = NULL, *server_cert = NULL, *verifypem = NULL;
+
+ char* tls_protocols = "TLSv1.2 TLSv1.3";
#ifdef USE_WINSOCK
WSADATA wsa_data;
if(WSAStartup(MAKEWORD(2,2), &wsa_data) != 0) {
@@ -1561,17 +1563,25 @@ int main(int argc, char** argv)
#else
OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS
| OPENSSL_INIT_ADD_ALL_DIGESTS
- | OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL);
+ | OPENSSL_INIT_LOAD_CRYPTO_STRINGS
+# if defined(OPENSSL_INIT_NO_LOAD_CONFIG) && defined(UB_ON_WINDOWS)
+ | OPENSSL_INIT_NO_LOAD_CONFIG
+# endif
+ , NULL);
#endif
#if OPENSSL_VERSION_NUMBER < 0x10100000 || !defined(HAVE_OPENSSL_INIT_SSL)
(void)SSL_library_init();
#else
- (void)OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS, NULL);
+ (void)OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS
+# if defined(OPENSSL_INIT_NO_LOAD_CONFIG) && defined(UB_ON_WINDOWS)
+ | OPENSSL_INIT_NO_LOAD_CONFIG
+# endif
+ , NULL);
#endif
#endif /* HAVE_SSL */
}
setup_and_run(&local_list, &tcp_list, &tls_list, server_key,
- server_cert, verifypem);
+ server_cert, verifypem, tls_protocols);
config_delstrlist(local_list.first);
config_delstrlist(tcp_list.first);
config_delstrlist(tls_list.first);
diff --git a/doc/Changelog b/doc/Changelog
index c78cdff3b9bf..a1c5e918ad0c 100644
--- a/doc/Changelog
+++ b/doc/Changelog
@@ -1,3 +1,487 @@
+23 April 2026: Wouter
+ - Merge #1441: Fix buffer overrun in
+ doq_repinfo_retrieve_localaddr().
+ - For #1441: Fix type of ipv6 addr struct.
+
+21 April 2026: Wouter
+ - Add test case for malformed SVCB records. Thanks to
+ Qifan Zhang, Palo Alto Networks for the additional test.
+ - Fix for the Jiggle Attack. The server is fixed to answer
+ with errors for error cases, and does not stay silent.
+ In addition, the error replies do not contain parts of the
+ incoming query. This is more conformant, stops reflection
+ and stops it as a covert channel. Thanks to Yuqi Qiu and
+ Xiang Li, Nankai University (AOSP Lab) for the report.
+ In addition, thanks to Qifan Zhang, Palo Alto Networks, for
+ noting the fingerprinting possibility, that is also fixed
+ with this.
+ - Fix EDNS extended RCODE reflection. This fixes that
+ the server does not echo extended rcode values after class
+ chaos queries. Thanks to Qifan Zhang, Palo Alto Networks
+ for the report.
+ - Fix for iterator RCODE handling of YXDOMAIN. This fixes
+ that the server only accepts YXDOMAIN answers that contain
+ a DNAME record. This stops bad answers, and checks that
+ the authoritative server gives correct replies.
+ Thanks to Qifan Zhang, Palo Alto Networks for the report.
+ - Fix for missing bounds check for decompressing dnames
+ for downloaded authority zones. This fixes that the server
+ could end up with malformed zone content after receiving
+ truncated packet contents from an AXFR. In addition, the
+ domain names in the SOA rdata are checked before the
+ authority code picks up the zone serial.
+ Thanks to Halil Oktay for the report.
+ - Fix that upstream TLS connections are not reused as TLS
+ connections for a different name, at the same IP. This
+ checks that the tls name is correct when reusing the
+ upstream connections. Thanks to TaoFei Guo from Peking
+ University and JianJun Chen from Tsinghua University for
+ the report.
+ - Fix that signatures are not allowed with revoked dnskeys.
+ Thanks to Qifan Zhang, Palo Alto Networks for the report.
+ - Fix that a DNAME with an unsigned CNAME is checked for
+ the correct match. This stops that for certain zone
+ configurations an unchecked unsigned CNAME could get
+ secure status. Thanks to Qifan Zhang, Palo Alto Networks
+ for the report.
+ - Fix handling of wildcard CNAMEs in the chain of trust.
+ An improper wildcard in the chain of trust would send
+ the retries to the wrong upstream. Also it could label
+ the step in the chain of trust as secure, when it was not.
+ Thanks to Qifan Zhang, Palo Alto Networks for the report.
+ - Set version number to 1.25.0 of code repository.
+ - Fix doxygen comment syntax.
+
+20 April 2026: Wouter
+ - Fix compile warnings for thread setname routine, and test compile.
+ - Fix unused variable warning when compiled without ssl.
+ - Fix test with https zone for libressl.
+
+17 April 2026: Wouter
+ - Fix setup of ssl context copy of the tls service pem option,
+ from a clang analyzer warning.
+ - Fix setup of ssl context copy, to check for the tls service
+ pem option for stat calls.
+ - Fix to compile the shm code when there is no shmget.
+ - Update github ci to use actions/checkout@v6.
+ - Update github ci cross platform to use
+ cross-platform-actions/action@v1.0.0.
+ - Fix github ci to speed up with parralel build, for windows ci.
+ - Fix compat/chacha_private sigma and tau definitions to use
+ nonstring attribute.
+ - Fix compat/gmtime_r old style definition syntax.
+ - Fix to increase size of the buffer for the win_svc reportev log
+ function.
+ - Fix ttl comparisons in rdata_copy for 32bit signed or unsigned.
+ - Fix subnet store of servfail to not leak memory.
+ - Update generated man pages.
+ - Update generated configure, with autoconf.
+ - Fix pthread_setname detection to fail on warnings.
+
+17 April 2026: Yorgos
+ - Merge #1400: Support pthread_setname_np. Adds support for
+ pthread_setname_np and variants to set the name on spawned threads
+ for easier debugging/monitoring.
+
+16 April 2026: Yorgos
+ - Merge #1406: Introduce new 'tls-protocols' configuration option.
+ - Introduce new 'tls-protocols' configuration option that specifies
+ which of the supported TLS protocols will be used.
+ This change invalidates some previous changes:
+ - TLSv1.2 is again enabled by default, but can be selectively turned
+ off if desired (related to #1303).
+ - The biefly introduced (not yet released) 'tls-use-system-versions'
+ configuration option, that addressed #1346, is reverted in favor of
+ 'tls-protocols'.
+ - The briefly introduced (not yet released) '--enable-system-tls'
+ configure option, related to #1401, is no longer needed with the new
+ option and the current default.
+ - Fix cleaning up DoH session. The same query can be on multiple
+ streams in a session.
+
+16 April 2026: Wouter
+ - Fix configure, autoconf for #1406.
+
+15 April 2026: Wouter
+ - Fix RFC7766 compliance when client sends EOF over TCP. It stops
+ pending replies and closes. Thanks to Yuxiao Wu, Tsinghua
+ University for the report.
+ - Fix to shorten RRSIG count in scrubber, this protects against
+ an overly large number of RRSIGs. It can be configured with
+ `iter-scrub-rrsig: 8`, it has default 8. Thanks to Yuxiao Wu,
+ Tsinghua University for the report.
+
+14 April 2026: Wouter
+ - Fix #1017: memory corruption related core dumps.
+ When alloc_reg_obtain has an empty list, return a new allocation.
+ - Fix clang analyzer warning for subnetmod, when return_msg is
+ NULL for update cache, like when it stores servfail status.
+ - iana portlist updated.
+
+13 April 2026: Yorgos
+ - Update the documentation of 'max-query-restarts' in the man page.
+
+10 April 2026: Wouter
+ - Fix for EDNS client subnet so that it does not store SERVFAIL in
+ the global cache after a failed lookup, such as timeouts. A failure
+ entry is stored in the subnet cache, for the query name, for a
+ couple of seconds. Queries can continue to use the subnet cache
+ during that time.
+
+7 April 2026: Yorgos
+ - Fix unused variable warning.
+
+30 March 2026: Wouter
+ - Merge #1408: Fix shared memory stats with threads.
+
+27 March 2026: Wouter
+ - Fix to allow the control-interface config to use ip@port notation.
+ - Fix test code to allow empty hex answer packets from testbound.
+ - Fix defense in depth for service callback with empty packet.
+
+24 March 2026: Wouter
+ - Fix to check for invalid http content length and chunk size,
+ and to check the RR rdata field lengths when decompressing and
+ inserting RRs from an authority zone transfer. This stops
+ large memory use and heap buffer-overflow read errors. Thanks
+ to Haruto Kimura (Stella) for the report.
+
+20 March 2026: Wouter
+ - Fix for testcode pktview to check buffer size and log errors.
+
+13 March 2026: Yorgos
+ - Fix to ignore out-of-zone DNAME records for CNAME synthesis. Thanks
+ to Yuxiao Wu, Yiyi Wang, Zhang Chao, Baojun Liu, and Haixin Duan from
+ Tsinghua University.
+
+13 March 2026: Wouter
+ - Fix #278: DoT: complete unbound restart required on certificate
+ renew. Fix so that a reload checks if the files have changed, and
+ if so, reload the contexts. Also for DoH, DoQ and outgoing DoT.
+ - iana portlist updated.
+ - For #278: fast_reload can reload tls-service-key, tls-service-pem
+ and tls-cert-bundle changes. It checks the modification time of
+ the tls-service-key and tls-service-pem files for update.
+ - Fix detection of http listening port in fast_reload.
+ - Fix to add tls-service-key to memory printout for fast_reload.
+
+9 March 2026: Wouter
+ - Fix compile failure in unbound-checkconf for older gcc compiler.
+ - Merge #1418: Apply cache TTL policy to DNAME and synthesized
+ CNAME on wire path.
+
+6 March 2026: Wouter
+ - Merge #1415: Add lock unlock for view in memory error handling.
+
+6 March 2026: Yorgos
+ - Document the suggestion for a higher value for 'outgoing-range';
+ helps when the request list is full.
+ - Warn for unused 'nodefault' local-zone configuration in
+ unbound-checkconf (related to #1416).
+
+5 March 2026: Wouter
+ - Fix for DNS Rebinding Bypass via SVCB/HTTPS Records in Unbound.
+ Thanks to Kunta Chu, School of Software, Tsinghua University,
+ Taofei Guo, Peking University, and Jianjun Chen, Institute for
+ Network Sciences and Cyberspace, Tsinghua University for the
+ report. The private-address option is fixed to also elide
+ SVCB and HTTPS records that match the filter.
+ - Update generated man pages.
+
+4 March 2026: Yorgos
+ - For #1411: Introduce a failing case in the rpl test so that it only
+ passes with the fix in place.
+
+3 March 2026: Wouter
+ - Merge #1411: Allow synthesized DNAME TTL=0 to be served from cache
+ within grace period. The responses are served from cache within
+ a 1-second grace period. Reduces recursion when authoritative
+ servers return DNAME with TTL=0 (RFC 2308). Response
+ still returns TTL=0 to clients. Adds a test for it.
+ - For #1411: Fix that the lookup for DNAME uses flag. Fix assertion
+ in expired calc debug routine.
+
+27 February 2026: Wouter
+ - Merge #1409: Documentation CNAME in redirect-type local-zone.
+ - Update generated man pages.
+
+25 February 2026: Wouter
+ - Fix validator to set unchecked when validation recursion
+ requests are passed. The edns subnet module checks if validation
+ is needed for a cache response, and set the validator to protect
+ the cache with validation for non-subnet lookups.
+
+23 February 2026: Wouter
+ - Fix to have cachedb not return expired bogus data as non-bogus.
+ - Fix to make the cachedb_val_expired.crpl succeed.
+
+23 February 2026: Yorgos
+ - Fix to disallow cache lookup/store in external cachedb when a
+ forwarder/stub forbids it with the no-cache option.
+ - Fixed some typos reported in #1395 by rezky_nightky.
+
+17 February 2026: Wouter
+ - Fix to remove unused conditional from cookie timestamp at
+ worker env.
+ - For #1405: local-zone always_refuse also blocks queries of type DS.
+
+16 February 2026: Yorgos
+ - Fix #1404: Priming the root key fails after loading ipfire.org RPZ
+ zones. Fixed by including the ZONEMD RRtype in the list of types to
+ ignore for RPZ zones. Analysis and patch provided by ummeegge.
+
+16 February 2026: Wouter
+ - Fix that cachedb aggressive negative responses have the RA flag set.
+
+11 February 2026: Wouter
+ - Fix #1403: Inconsistency between do-nat64 and do-not-query-address
+ during retries.
+
+9 February 2026: Wouter
+ - Merge #1401: Add a new build-time option for system TLS.
+ The --enable-system-tls flag enables the
+ tls-use-system-policy-versions setting by default.
+ - Update generated man pages.
+
+6 February 2026: Yorgos
+ - Fix #1389: [FR] replacement with ECC-GOST12 according to RFC9558.
+ Patch contributed by Igor V. Ruzanov, available in
+ contrib/gost12.patch.
+
+4 February 2026: Wouter
+ - Fix local privilege escalation on Windows. Thanks to Hao Huang and
+ CrisprXiang with Fudan University for the report. The OpenSSL
+ init calls are set to not load the openssl.cnf file when compiled
+ for Windows.
+
+3 February 2026: Yorgos
+ - Eagerly remove .skip mark files in between mini_tdir.sh runs in case
+ there has been a change on the environment.
+
+27 January 2026: Wouter
+ - Add test for allow-notify with a host name.
+
+26 January 2026: Wouter
+ - Fix that allow-notify entries with hostnames are copied after IPv4
+ and IPv6 lookup.
+ - Fix to not skip allow-notify hostname lookups when there are only
+ urls.
+
+23 January 2026: Yorgos
+ - Merge #1396: Log Linux thread ID.
+ - On Linux systems log the system-wide unique thread ID instead of
+ Unbound's internal thread counter.
+ - Introduce the 'log-thread-id' configuration option to manage logging
+ the system-wide Linux thread ID for easier debugging with system
+ tools.
+ - Update generated man pages.
+
+22 January 2026: Wouter
+ - Fix that fast reload copies the iter_scrub_ns, iter_scrub_cname
+ and max_global_quota options.
+ - Fix http test tool petal to not print errors when there is no
+ error.
+
+21 January 2026: Wouter
+ - Merge #1388: QNX Porting support for unbound.
+
+19 January 2026: Wouter
+ - Merge #1392: Include "V" (version) option in synopsis.
+
+15 January 2026: Wouter
+ - Fix documentation for requestlist.overwritten and
+ requestlist.exceeded, it explains which query was dropped.
+
+8 January 2026: Wouter
+ - Merge #1381: Do not initialize quic_table unless it is enabled.
+
+6 January 2026: Wouter
+ - Fix edns subnet, that scope zero queries, when there is a
+ subquery without subnet, and the forward-no-cache or
+ stub-no-cache option is set, it is not stored in cache due to
+ the forward or stub option.
+
+6 January 2026: Yorgos
+ - Merge #1391 from Götz Görisch: Fix documentation to adhere to
+ RFC5952.
+
+31 December 2025: Yorgos
+ - Update the unbound-anchor man page to note write permissions of the
+ generated file if it is to be used with Unbound's
+ auto-trust-anchor-file option.
+ - Use the same EDE removal logic when encoding errors as when encoding
+ replies.
+
+30 December 2025: Yorgos
+ - Mark "THROWAWAY" and "(DNSSEC) LAME" responses clearly as Unbound's
+ categorization in the log output.
+
+24 December 2025: Yorgos
+ - More specific wording in the unbound.conf man page for stub-first
+ and forward-first options.
+
+3 December 2025: Wouter
+ - Fix http2 drop handling to clear the postpone_drop state so that
+ other streams on the http2 session are not affected by a drop,
+ and can clean up properly if also dropped. Fix http2 send reply
+ so that when there is a send failure is does not recurse into
+ the mesh functions and also does not drop the connection due to
+ the condition of one stream.
+
+2 December 2025: Wouter
+ - Fix to remove http2 stream mesh state when mesh new request is
+ dropping the new request.
+
+1 December 2025: Wouter
+ - Fix to add EDNS CO flag to testbound and debug message log.
+ - Fix header comment about EDE reference in validator/val_sigcrypt.h.
+
+28 November 2025: Yorgos
+ - For #1375, there is no DNSTAP environment if it wasn't configured.
+
+26 November 2025: Yorgos
+ - Tag for 1.24.2 release.
+ The repository continues with version 1.24.3.
+
+13 November 2025: Wouter
+ - Merge #1374: Mesh reply counters.
+ This adds the statistics num.queries.replyaddr_limit and
+ requestlist.current.replies.
+ - Merge #1375: Copy DNSTAP changes from daemon to workers after
+ fast_reload.
+
+12 November 2025: Wouter
+ - Fix that when discard timeout drops packet, they are accounted as
+ less reply addresses in use in the mesh area.
+ - iana portlist updated.
+
+6 November 2025: Wouter
+ - Fix add comment to worker_handle_request function that explain it.
+ - Fix configure test for noreturn attribute so it compiles without
+ warning.
+ - Fix configure test for nonstring attribute so that it does not
+ accept when the compiler prints a warning about an unknown
+ attribute.
+
+4 November 2025: Wouter
+ - Fix dns64 log output to log the default instead of a null string.
+
+1 November 2025: Yorgos
+ - Fix #1366: Infra cache does not work correctly for NAT64, by
+ moving the NAT64 synthesis from the iterator when selecting a target
+ address, to the delegation point itself when adding target
+ addresses.
+
+27 October 2025: Yorgos
+ - Merge #1331 from Jitka Plesníková: Replace deprecated $function by
+ new $action, for SWIG.
+ - Fix #1165, document the possible circular dependency when using
+ host names instead of IP addresses for name servers in stub/forward
+ zones and log a warning when spotted in the configuration.
+
+24 October 2025: Yorgos
+ - unbound.conf man page updates to include a preview of the section
+ clauses and some reformatting around the use of "clause", "option"
+ and "attributes". Based on Havard Eidnes' suggestions on the
+ mailing list.
+ - Fix unused attribute warning in redis.c when threads are not
+ supported.
+ - For #1364, use OPENSSL_VERSION_TEXT instead of OPENSSL_VERSION_NUMBER
+ for part of the configure script. OPENSSL_VERSION_TEXT is more
+ consistent across versions.
+
+22 October 2025: Yorgos
+ - Tag for 1.24.1 release.
+ The repository continues with version 1.24.2.
+
+15 October 2025: Wouter
+ - Fix to drop UDP for discard-timeout, but not stream connections.
+ - Fix to reply with SERVFAIL when the wait-limit is exceeded.
+ - Add extended dns error code for invalid query type to definition
+ list.
+ - Fix unbound.conf man page entry for root-hints to say it can
+ be used without strongly recommending it.
+ - Remove iPhone armv7s, and iPhoneSimulator i386 from ios ci.
+ The lib system does not provide symbols for it on the new macos
+ runner.
+ - Fix to exclude libssp for windows compiles.
+
+10 October 2025: Wouter
+ - Fix #1358 Enabling FIPS in OpenSSL causes unit test to fail.
+
+3 October 2025: Yorgos
+ - Note 'respip' and 'dns64' module order in the unbound.conf
+ man page.
+ - Note clearly that 'wait-limit: 0' disables all wait limits.
+ - 'wait-limit-cookie: 0' can now disable cookie validated wait
+ limits.
+
+2 October 2025: Wouter
+ - Fix that https is set up as enabled when the port is listed in
+ interface-automatic-ports. Also for the set up of quic it is
+ enabled when listed there.
+
+30 September 2025: Wouter
+ - Fix for #1344: Fix that respip and dns64 can be enabled at the
+ same time, the client info is copied for attach_sub and add_sub
+ calls. That makes respip work on dns64 synthesized answers, and
+ also makes RPZ work with DNS64. The order for the modules is
+ module-config: "respip dns64 validator iterator".
+
+29 September 2025: Wouter
+ - Rebuild configure script from its sources.
+ - Fix modstack_call_init to use the original string when it has
+ changed, to call modstack_config with. And skip the changed name
+ in the string correctly. Thanks to Jan Komissar.
+ - Neaten up the change in acx_nlnetlabs.m4 to version 49.
+ - Fix fr_atomic_copy_cfg.
+ - Rebuild configure script from its sources.
+ - Fix #1353: auth-zone can not use empty label for $ORIGIN when
+ http download.
+ - Fix #1344: module conf 'respip dns64 validator cachedb iterator'
+ is not known to work.
+
+29 September 2025: Yorgos
+ - Merge #1349: Fix #1346: [FR] Please allow back TLS 1.2.
+ - Merge #1351: ac_cv_func_malloc_0_nonnull for malloc(0) check.
+
+26 September 2025: Yorgos
+ - Test for nonstring attribute in configure and add
+ nonstring attribute annotations.
+
+24 September 2025: Yorgos
+ - Avoid calling mesh_detect_cycle_found() when there is no mesh state
+ to begin with.
+
+23 September 2025: Yorgos
+ - Merge #1352 from Petr Vaganov: pythonmod: fix HANDLE_LEAK on
+ pythonmod_init.
+ - For #1352, align with the current Python<3 code.
+ - Merge #1350 from Maryse47: unbound.service.in: allow CAP_NET_ADMIN.
+ - For #1350, same CAP_NET_ADMIN change for unbound_portable.service.in
+ as well.
+
+19 September 2025: Wouter
+ - Fix to remove configure~ from release tarballs.
+
+19 September 2025: Yorgos
+ - Update README.man with clearer text.
+ - Merge #1337: 0 TTL cached replies and some TTL behavior changes.
+ - TTL change: Cached records that reach TTL 0 are expired.
+ - TTL change: TTL 0 upstream answers are no longer cached by
+ cachedb, as they should.
+ - TTL change: 'serve-expired-reply-ttl' is now capped by the original
+ TTL value of the record to try and make some sense when replying
+ with expired records.
+ - TTL change: TTL decoding was updated to adhere to RFC8767 section 4
+ where a 'set high-order bit' means the value is positive instead of
+ 0.
+ - unbound.conf manpage: explicitly mention RFC6891.
+
+18 September 2025: Wouter
+ - Tag for 1.24.0 release. Includes the fixes below after rc1.
+ The repository continues with version 1.24.1.
+
17 September 2025: Yorgos
- Too many quotes for the EDE message debug printout.
diff --git a/doc/README b/doc/README
index 4b24767480c0..b3798453dbf2 100644
--- a/doc/README
+++ b/doc/README
@@ -1,4 +1,4 @@
-README for Unbound 1.24.2
+README for Unbound 1.25.0
Copyright 2007 NLnet Labs
http://unbound.net
diff --git a/doc/README.DNS64 b/doc/README.DNS64
index 71e2310ed9aa..2f2484434dfd 100644
--- a/doc/README.DNS64
+++ b/doc/README.DNS64
@@ -13,7 +13,7 @@ If you're not using DNSSEC then you may remove "validator".
2. The "dns64-prefix" directive indicates your DNS64 prefix. For example:
- dns64-prefix: 64:FF9B::/96
+ dns64-prefix: 64:ff9b::/96
The prefix must be a /96 or shorter.
@@ -42,9 +42,9 @@ To enable NAT64 in Unbound, add to unbound.conf's "server" section:
do-nat64: yes
The NAT64 prefix defaults to the DNS64 prefix, which in turn defaults to the
-standard 64:FF9B::/96 prefix. You can reconfigure it with:
+standard 64:ff9b::/96 prefix. You can reconfigure it with:
- nat64-prefix: 64:FF9B::/96
+ nat64-prefix: 64:ff9b::/96
To test NAT64 operation, pick a domain that only has IPv4 reachability for its
nameservers and try resolving any names in that domain.
diff --git a/doc/README.man b/doc/README.man
index 8e7897f47790..dae1bc94c38a 100644
--- a/doc/README.man
+++ b/doc/README.man
@@ -6,11 +6,16 @@ and makes it easier to maintain and contribute to the documentation.
The templated man pages (*.in) are still part of the code repository as to not
alter current procedures that could be in place by users/packagers.
+These man pages (*.in) are still the ones being used when
+configuring/installing Unbound.
+Packagers/users do not have to generate any man pages themselves, this is done
+by the core developers during development and upon releasing new versions.
+
The templated man pages (*.in) are generated by Sphinx (used for the online
documentation).
The online documentation has its own repository at
https://github.com/NLnetLabs/unbound-manual.
-In the README.md there (branch test-auto for now), there are further simple
-instructions on how to generate the templated man pages there and update them
-in this repository.
+In that README.md (https://github.com/NLnetLabs/unbound-manual/README.md)
+there are further simple instructions on how to generate the templated man
+pages there and update them in this repository.
diff --git a/doc/example.conf.in b/doc/example.conf.in
index fda565cd62f6..63a8d6587af7 100644
--- a/doc/example.conf.in
+++ b/doc/example.conf.in
@@ -1,7 +1,7 @@
#
# Example configuration file.
#
-# See unbound.conf(5) man page, version 1.24.2.
+# See unbound.conf(5) man page, version 1.25.0.
#
# this is a comment.
@@ -54,7 +54,7 @@ server:
# interface: 192.0.2.153
# interface: 192.0.2.154
# interface: 192.0.2.154@5003
- # interface: 2001:DB8::5
+ # interface: 2001:db8::5
# interface: eth0@5003
# enable this feature to copy the source address of queries to reply.
@@ -72,12 +72,12 @@ server:
# server from by ip-address. If none, the default (all) interface
# is used. Specify every interface on a 'outgoing-interface:' line.
# outgoing-interface: 192.0.2.153
- # outgoing-interface: 2001:DB8::5
- # outgoing-interface: 2001:DB8::6
+ # outgoing-interface: 2001:db8::5
+ # outgoing-interface: 2001:db8::6
# Specify a netblock to use remainder 64 bits as random bits for
# upstream queries. Uses freebind option (Linux).
- # outgoing-interface: 2001:DB8::/64
+ # outgoing-interface: 2001:db8::/64
# Also (Linux:) ip -6 addr add 2001:db8::/64 dev lo
# And: ip -6 route add local 2001:db8::/64 dev lo
# And set prefer-ip6: yes to use the ip6 randomness from a netblock.
@@ -193,6 +193,9 @@ server:
# Limit on number of CNAME, DNAME records for incoming packets.
# iter-scrub-cname: 11
+ # Limit on number of RRSIGs for an RRset for incoming packets.
+ # iter-scrub-rrsig: 8
+
# Limit on upstream queries for an incoming query and its recursion.
# max-global-quota: 200
@@ -379,7 +382,7 @@ server:
# interface-action: 192.0.2.153 allow
# interface-action: 192.0.2.154 allow
# interface-action: 192.0.2.154@5003 allow
- # interface-action: 2001:DB8::5 allow
+ # interface-action: 2001:db8::5 allow
# interface-action: eth0@5003 allow
# Similar to 'access-control-tag:' but for interfaces.
@@ -496,6 +499,10 @@ server:
# print log lines that say why queries return SERVFAIL to clients.
# log-servfail: no
+ # log system-wide Linux thread ID, insted of Unbound's internal thread
+ # counter. Only on Linux and only when threads are available.
+ # log-thread-id: no
+
# the pid file. Can be an absolute path outside of chroot/work dir.
# pidfile: "@UNBOUND_PIDFILE@"
@@ -658,7 +665,7 @@ server:
# or, just before the iterator).
# module-config: "validator iterator"
- # File with trusted keys, kept uptodate using RFC5011 probes,
+ # File with trusted keys, kept up-to-date using RFC5011 probes,
# initial file like trust-anchor-file, then it stores metadata.
# Use several entries, one per domain name, to track multiple zones.
#
@@ -718,7 +725,7 @@ server:
# val-max-restart: 5
# Should additional section of secure message also be kept clean of
- # unsecure data. Useful to shield the users of this validator from
+ # non-secure data. Useful to shield the users of this validator from
# potential bogus data in the additional section. All unsigned data
# in the additional section is removed from secure messages.
# val-clean-additional: yes
@@ -756,6 +763,7 @@ server:
# serve-expired-ttl-reset: no
#
# TTL value to use when replying with expired data.
+ # Capped by the original TTL of the record.
# serve-expired-reply-ttl: 30
#
# Time in milliseconds before replying to the client with expired data.
@@ -925,6 +933,22 @@ server:
# add a netblock specific override to a localzone, with zone type
# local-zone-override: "example.com" 192.0.2.0/24 refuse
+ # Action to apply when the IP address in an AAAA or A RR in the answer
+ # section of a response matches the specified IP netblock.
+ # Requires use of the respip module.
+ # response-ip: 192.0.2.0/24 redirect
+
+ # Redirect as specified by the "resource record string" when the IP
+ # address in an AAAA or A RR in the answer section of a response
+ # matches the specified IP netblock.
+ # Requires use of the respip module.
+ # response-ip-data: 192.0.2.0/24 "example. A 192.0.2.1"
+
+ # Apply tag(s) when the IP address in an AAAA or A RR in the answer
+ # section of a response matches the specified IP netblock.
+ # Requires use of the respip module.
+ # response-ip-tag: 192.0.2.0/24 "tag1 tag2"
+
# service clients over TLS (on the TCP sockets) with plain DNS inside
# the TLS stream, and over HTTPS using HTTP/2 as specified in RFC8484.
# Give the certificate to use and private key.
@@ -935,21 +959,22 @@ server:
# https-port: 443
# quic-port: 853
+ # Also serve tls on these port numbers (eg. 443, ...), by listing
+ # tls-additional-port: portno for each of the port numbers.
+
# cipher setting for TLSv1.2
# tls-ciphers: "DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256"
# cipher setting for TLSv1.3
# tls-ciphersuites: "TLS_AES_128_GCM_SHA256:TLS_AES_128_CCM_8_SHA256:TLS_AES_128_CCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256"
- # Pad responses to padded queries received over TLS
- # pad-responses: yes
-
- # Padded responses will be padded to the closest multiple of this size.
- # pad-responses-block-size: 468
-
# Use the SNI extension for TLS connections. Default is yes.
- # Changing the value requires a reload.
+ # Changing the value requires a restart.
# tls-use-sni: yes
+ # TLS protocols.
+ # Changing the value requires a restart.
+ # tls-protocols: "TLSv1.2 TLSv1.3"
+
# Add the secret file for TLS Session Ticket.
# Secret file must be 80 bytes of random data.
# First key use to encrypt and decrypt TLS session tickets.
@@ -970,15 +995,18 @@ server:
# and on other systems, the default openssl certificates
# tls-system-cert: no
+ # Pad responses to padded queries received over TLS
+ # pad-responses: yes
+
+ # Padded responses will be padded to the closest multiple of this size.
+ # pad-responses-block-size: 468
+
# Pad queries over TLS upstreams
# pad-queries: yes
# Padded queries will be padded to the closest multiple of this size.
# pad-queries-block-size: 128
- # Also serve tls on these port numbers (eg. 443, ...), by listing
- # tls-additional-port: portno for each of the port numbers.
-
# HTTP endpoint to provide DNS-over-HTTPS service on.
# http-endpoint: "/dns-query"
@@ -1261,10 +1289,11 @@ remote-control:
# zonefile: "example.org.zone"
# Views
-# Create named views. Name must be unique. Map views to requests using
-# the access-control-view option. Views can contain zero or more local-zone
-# and local-data options. Options from matching views will override global
-# options. Global options will be used if no matching view is found.
+# Create named views. Name must be unique.
+# Map views to requests using the access-control-view/interface-view options.
+# Views can contain zero or more local-zone and local-data options.
+# Options from matching views will override global options.
+# Global options will be used if no matching view is found.
# With view-first yes, it will try to answer using the global local-zone and
# local-data elements if there is no view specific match.
# view:
@@ -1272,6 +1301,8 @@ remote-control:
# local-zone: "example.com" redirect
# local-data: "example.com A 192.0.2.3"
# local-data-ptr: "192.0.2.3 www.example.com"
+# response-ip: 192.0.2.0/24 redirect
+# response-ip-data: 192.0.2.0/24 "example. A 192.0.2.1"
# view-first: no
# view:
# name: "anotherview"
diff --git a/doc/libunbound.3.in b/doc/libunbound.3.in
index 04d8a15b2a3b..d3c227ed7982 100644
--- a/doc/libunbound.3.in
+++ b/doc/libunbound.3.in
@@ -27,9 +27,9 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "LIBUNBOUND" "3" "Nov 26, 2025" "1.24.2" "Unbound"
+.TH "LIBUNBOUND" "3" "Apr 29, 2026" "1.25.0" "Unbound"
.SH NAME
-libunbound \- Unbound DNS validating resolver 1.24.2 functions.
+libunbound \- Unbound DNS validating resolver 1.25.0 functions.
.SH SYNOPSIS
.sp
\fB#include <unbound.h>\fP
@@ -416,6 +416,6 @@ on a function return with file read failure.
.SH AUTHOR
Unbound developers are mentioned in the CREDITS file in the distribution.
.SH COPYRIGHT
-1999-2025, NLnet Labs
+1999-2026, NLnet Labs
.\" Generated by docutils manpage writer.
.
diff --git a/doc/unbound-anchor.8.in b/doc/unbound-anchor.8.in
index 8a3c49238713..9ac488c9cd6d 100644
--- a/doc/unbound-anchor.8.in
+++ b/doc/unbound-anchor.8.in
@@ -27,9 +27,9 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "UNBOUND-ANCHOR" "8" "Nov 26, 2025" "1.24.2" "Unbound"
+.TH "UNBOUND-ANCHOR" "8" "Apr 29, 2026" "1.25.0" "Unbound"
.SH NAME
-unbound-anchor \- Unbound 1.24.2 anchor utility.
+unbound-anchor \- Unbound 1.25.0 anchor utility.
.SH SYNOPSIS
.sp
\fBunbound\-anchor\fP [\fBopts\fP]
@@ -39,9 +39,17 @@ unbound-anchor \- Unbound 1.24.2 anchor utility.
validation.
The program fetches the trust anchor with the method from \fI\%RFC 7958\fP when
regular \fI\%RFC 5011\fP update fails to bring it up to date.
-It can be run (as root) from the commandline, or run as part of startup
-scripts.
-Before you start the \fI\%unbound(8)\fP DNS server.
+It can be run from the commandline, or run as part of startup scripts before
+you start the \fI\%unbound(8)\fP DNS server.
+.sp
+Note that if you want to use \fI\%RFC 5011\fP with Unbound (i.e., the
+\fI\%auto\-trust\-anchor\-file\fP option) so
+that trust anchor information is automatically tracked by Unbound during
+operation, the user that Unbound runs under (by default \(aqunbound\(aq) must have
+write permissions to the file and the directory the file lives in (for creating
+temporary files).
+In this case you would probably want to run this program as the designated
+Unbound user.
.sp
Suggested usage:
.INDENT 0.0
@@ -52,6 +60,7 @@ Suggested usage:
# in the init scripts.
# provide or update the root anchor (if necessary)
unbound\-anchor \-a \(dq@UNBOUND_ROOTKEY_FILE@\(dq
+
# Please note usage of this root anchor is at your own risk
# and under the terms of our LICENSE (see source).
#
@@ -295,6 +304,6 @@ Signature on the root key information.
.SH AUTHOR
Unbound developers are mentioned in the CREDITS file in the distribution.
.SH COPYRIGHT
-1999-2025, NLnet Labs
+1999-2026, NLnet Labs
.\" Generated by docutils manpage writer.
.
diff --git a/doc/unbound-anchor.rst b/doc/unbound-anchor.rst
index 480db8eeb8c9..fec351a973fe 100644
--- a/doc/unbound-anchor.rst
+++ b/doc/unbound-anchor.rst
@@ -51,9 +51,17 @@ Description
validation.
The program fetches the trust anchor with the method from :rfc:`7958` when
regular :rfc:`5011` update fails to bring it up to date.
-It can be run (as root) from the commandline, or run as part of startup
-scripts.
-Before you start the :doc:`unbound(8)</manpages/unbound>` DNS server.
+It can be run from the commandline, or run as part of startup scripts before
+you start the :doc:`unbound(8)</manpages/unbound>` DNS server.
+
+Note that if you want to use :rfc:`5011` with Unbound (i.e., the
+:ref:`auto-trust-anchor-file<unbound.conf.auto-trust-anchor-file>` option) so
+that trust anchor information is automatically tracked by Unbound during
+operation, the user that Unbound runs under (by default 'unbound') must have
+write permissions to the file and the directory the file lives in (for creating
+temporary files).
+In this case you would probably want to run this program as the designated
+Unbound user.
Suggested usage:
@@ -62,6 +70,7 @@ Suggested usage:
# in the init scripts.
# provide or update the root anchor (if necessary)
unbound-anchor -a "@UNBOUND_ROOTKEY_FILE@"
+
# Please note usage of this root anchor is at your own risk
# and under the terms of our LICENSE (see source).
#
diff --git a/doc/unbound-checkconf.8.in b/doc/unbound-checkconf.8.in
index a9857dc0cca8..77989c2bf88f 100644
--- a/doc/unbound-checkconf.8.in
+++ b/doc/unbound-checkconf.8.in
@@ -27,9 +27,9 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "UNBOUND-CHECKCONF" "8" "Nov 26, 2025" "1.24.2" "Unbound"
+.TH "UNBOUND-CHECKCONF" "8" "Apr 29, 2026" "1.25.0" "Unbound"
.SH NAME
-unbound-checkconf \- Check Unbound 1.24.2 configuration file for errors.
+unbound-checkconf \- Check Unbound 1.25.0 configuration file for errors.
.SH SYNOPSIS
.sp
\fBunbound\-checkconf\fP [\fB\-hf\fP] [\fB\-o option\fP] [cfgfile]
@@ -88,6 +88,6 @@ Unbound configuration file.
.SH AUTHOR
Unbound developers are mentioned in the CREDITS file in the distribution.
.SH COPYRIGHT
-1999-2025, NLnet Labs
+1999-2026, NLnet Labs
.\" Generated by docutils manpage writer.
.
diff --git a/doc/unbound-control.8.in b/doc/unbound-control.8.in
index 1d7f95953777..c099120fcc2c 100644
--- a/doc/unbound-control.8.in
+++ b/doc/unbound-control.8.in
@@ -27,9 +27,9 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "UNBOUND-CONTROL" "8" "Nov 26, 2025" "1.24.2" "Unbound"
+.TH "UNBOUND-CONTROL" "8" "Apr 29, 2026" "1.25.0" "Unbound"
.SH NAME
-unbound-control \- Unbound 1.24.2 remote server control utility.
+unbound-control \- Unbound 1.25.0 remote server control utility.
.SH SYNOPSIS
.sp
\fBunbound\-control\fP [\fB\-hq\fP] [\fB\-c cfgfile\fP] [\fB\-s server\fP] command
@@ -168,6 +168,8 @@ ipset,
\fI\%tcp\-auth\-query\-timeout\fP,
\fI\%delay\-close\fP\&.
\fI\%iter\-scrub\-promiscuous\fP\&.
+\fI\%tls\-service\-key\fP\&.
+\fI\%tls\-service\-pem\fP\&.
.sp
It does not work with
\fI\%interface\fP and
@@ -880,6 +882,11 @@ number of queries removed due to discard\-timeout by thread
.UNINDENT
.INDENT 0.0
.TP
+.B threadX.num.queries_replyaddr_limit
+number of queries removed due to replyaddr limits by thread
+.UNINDENT
+.INDENT 0.0
+.TP
.B threadX.num.queries_wait_limit
number of queries removed due to wait\-limit by thread
.UNINDENT
@@ -973,6 +980,10 @@ Number of requests in the request list that were overwritten by newer
entries.
This happens if there is a flood of queries that recursive processing and
the server has a hard time.
+The counter is increased when during the flood the
+\fI\%jostle\-timeout\fP
+allows a query to be removed in favor of a new incoming query.
+The older query is then dropped to make space.
.UNINDENT
.INDENT 0.0
.TP
@@ -980,6 +991,12 @@ the server has a hard time.
Queries that were dropped because the request list was full.
This happens if a flood of queries need recursive processing, and the
server can not keep up.
+The counter is increased when during the flood there is no space
+to be made with the jostle out of an older query, and the new query
+is dropped.
+Since no older queries are removed, see
+\fI\%jostle\-timeout\fP setting, there
+is no space for the new query.
.UNINDENT
.INDENT 0.0
.TP
@@ -994,6 +1011,13 @@ Current size of the request list, only the requests from client queries.
.UNINDENT
.INDENT 0.0
.TP
+.B threadX.requestlist.current.replies
+Current count of the number of reply entries waiting on request list
+entries. Because a request list entry can send results to multiple reply
+addresses, this number may be larger than the size of the request list.
+.UNINDENT
+.INDENT 0.0
+.TP
.B threadX.recursion.time.avg
Average time it took to answer queries that needed recursive processing.
Note that queries that were answered from the cache are not in this average.
@@ -1048,6 +1072,11 @@ summed over threads.
.UNINDENT
.INDENT 0.0
.TP
+.B total.num.queries_replyaddr_limit
+summed over threads.
+.UNINDENT
+.INDENT 0.0
+.TP
.B total.num.queries_wait_limit
summed over threads.
.UNINDENT
@@ -1138,6 +1167,16 @@ summed over threads.
.UNINDENT
.INDENT 0.0
.TP
+.B total.requestlist.current.user
+summed over threads.
+.UNINDENT
+.INDENT 0.0
+.TP
+.B total.requestlist.current.replies
+summed over threads.
+.UNINDENT
+.INDENT 0.0
+.TP
.B total.recursion.time.median
averaged over threads.
.UNINDENT
@@ -1543,6 +1582,6 @@ directory with private keys (\fBunbound_server.key\fP and
.SH AUTHOR
Unbound developers are mentioned in the CREDITS file in the distribution.
.SH COPYRIGHT
-1999-2025, NLnet Labs
+1999-2026, NLnet Labs
.\" Generated by docutils manpage writer.
.
diff --git a/doc/unbound-control.rst b/doc/unbound-control.rst
index 71ff6ee37b6c..d95d6dd0b975 100644
--- a/doc/unbound-control.rst
+++ b/doc/unbound-control.rst
@@ -170,6 +170,8 @@ There are several commands that the server understands.
:ref:`tcp-auth-query-timeout<unbound.conf.tcp-auth-query-timeout>`,
:ref:`delay-close<unbound.conf.delay-close>`.
:ref:`iter-scrub-promiscuous<unbound.conf.iter-scrub-promiscuous>`.
+ :ref:`tls-service-key<unbound.conf.tls-service-key>`.
+ :ref:`tls-service-pem<unbound.conf.tls-service-pem>`.
It does not work with
:ref:`interface<unbound.conf.interface>` and
@@ -815,6 +817,10 @@ number of statistic counters:
number of queries removed due to discard-timeout by thread
+@@UAHL@unbound-control.stats@threadX.num.queries_replyaddr_limit@@
+ number of queries removed due to replyaddr limits by thread
+
+
@@UAHL@unbound-control.stats@threadX.num.queries_wait_limit@@
number of queries removed due to wait-limit by thread
@@ -893,12 +899,22 @@ number of statistic counters:
entries.
This happens if there is a flood of queries that recursive processing and
the server has a hard time.
+ The counter is increased when during the flood the
+ :ref:`jostle-timeout<unbound.conf.jostle-timeout>`
+ allows a query to be removed in favor of a new incoming query.
+ The older query is then dropped to make space.
@@UAHL@unbound-control.stats@threadX.requestlist.exceeded@@
Queries that were dropped because the request list was full.
This happens if a flood of queries need recursive processing, and the
server can not keep up.
+ The counter is increased when during the flood there is no space
+ to be made with the jostle out of an older query, and the new query
+ is dropped.
+ Since no older queries are removed, see
+ :ref:`jostle-timeout<unbound.conf.jostle-timeout>` setting, there
+ is no space for the new query.
@@UAHL@unbound-control.stats@threadX.requestlist.current.all@@
@@ -910,6 +926,12 @@ number of statistic counters:
Current size of the request list, only the requests from client queries.
+@@UAHL@unbound-control.stats@threadX.requestlist.current.replies@@
+ Current count of the number of reply entries waiting on request list
+ entries. Because a request list entry can send results to multiple reply
+ addresses, this number may be larger than the size of the request list.
+
+
@@UAHL@unbound-control.stats@threadX.recursion.time.avg@@
Average time it took to answer queries that needed recursive processing.
Note that queries that were answered from the cache are not in this average.
@@ -955,6 +977,10 @@ number of statistic counters:
summed over threads.
+@@UAHL@unbound-control.stats@total.num.queries_replyaddr_limit@@
+ summed over threads.
+
+
@@UAHL@unbound-control.stats@total.num.queries_wait_limit@@
summed over threads.
@@ -1027,6 +1053,14 @@ number of statistic counters:
summed over threads.
+@@UAHL@unbound-control.stats@total.requestlist.current.user@@
+ summed over threads.
+
+
+@@UAHL@unbound-control.stats@total.requestlist.current.replies@@
+ summed over threads.
+
+
@@UAHL@unbound-control.stats@total.recursion.time.median@@
averaged over threads.
diff --git a/doc/unbound-host.1.in b/doc/unbound-host.1.in
index 5da7285a26a0..11d78a594d41 100644
--- a/doc/unbound-host.1.in
+++ b/doc/unbound-host.1.in
@@ -27,9 +27,9 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "UNBOUND-HOST" "1" "Nov 26, 2025" "1.24.2" "Unbound"
+.TH "UNBOUND-HOST" "1" "Apr 29, 2026" "1.25.0" "Unbound"
.SH NAME
-unbound-host \- Unbound 1.24.2 DNS lookup utility.
+unbound-host \- Unbound 1.25.0 DNS lookup utility.
.SH SYNOPSIS
.sp
\fBunbound\-host\fP [\fB\-C configfile\fP] [\fB\-vdhr46D\fP] [\fB\-c class\fP]
@@ -185,6 +185,6 @@ encountered a fatal error.
.SH AUTHOR
Unbound developers are mentioned in the CREDITS file in the distribution.
.SH COPYRIGHT
-1999-2025, NLnet Labs
+1999-2026, NLnet Labs
.\" Generated by docutils manpage writer.
.
diff --git a/doc/unbound.8.in b/doc/unbound.8.in
index 5d6151d0047b..d6907c384c12 100644
--- a/doc/unbound.8.in
+++ b/doc/unbound.8.in
@@ -27,12 +27,12 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "UNBOUND" "8" "Nov 26, 2025" "1.24.2" "Unbound"
+.TH "UNBOUND" "8" "Apr 29, 2026" "1.25.0" "Unbound"
.SH NAME
-unbound \- Unbound DNS validating resolver 1.24.2.
+unbound \- Unbound DNS validating resolver 1.25.0.
.SH SYNOPSIS
.sp
-\fBunbound\fP [\fB\-hdpv\fP] [\fB\-c <cfgfile>\fP]
+\fBunbound\fP [\fB\-hdpVv\fP] [\fB\-c <cfgfile>\fP]
.SH DESCRIPTION
.sp
\fBunbound\fP is a caching DNS resolver.
@@ -118,6 +118,6 @@ Show the version number and build options, and exit.
.SH AUTHOR
Unbound developers are mentioned in the CREDITS file in the distribution.
.SH COPYRIGHT
-1999-2025, NLnet Labs
+1999-2026, NLnet Labs
.\" Generated by docutils manpage writer.
.
diff --git a/doc/unbound.conf.5.in b/doc/unbound.conf.5.in
index a5857acf8bc5..c5e19d9ae49d 100644
--- a/doc/unbound.conf.5.in
+++ b/doc/unbound.conf.5.in
@@ -27,53 +27,58 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "UNBOUND.CONF" "5" "Nov 26, 2025" "1.24.2" "Unbound"
+.TH "UNBOUND.CONF" "5" "Apr 29, 2026" "1.25.0" "Unbound"
.SH NAME
-unbound.conf \- Unbound 1.24.2 configuration file.
+unbound.conf \- Unbound 1.25.0 configuration file.
.SH SYNOPSIS
.sp
\fBunbound.conf\fP
.SH DESCRIPTION
.sp
\fBunbound.conf\fP is used to configure \fI\%unbound(8)\fP\&.
-The file format has attributes and values.
-Some attributes have attributes inside them.
-The notation is: \fBattribute: value\fP\&.
-.sp
-Comments start with \fB#\fP and last to the end of line.
-Empty lines are ignored as is whitespace at the beginning of a line.
.sp
The utility \fI\%unbound\-checkconf(8)\fP can be
used to check \fBunbound.conf\fP prior to usage.
+.SH FILE FORMAT
+.sp
+Whitespace is used to separate keywords.
+Whitespace indentation is insignificant, but is still recommended for visual
+clarity.
+Comments start with \fB#\fP and last to the end of line.
+Empty lines are ignored, as is whitespace at the beginning of a line.
+.sp
+Attribute keywords end with a colon (\fB:\fP) and they are either options or
+section clauses (group options together).
+.sp
+The configuration file is logically divided into \fBsections\fP where each section
+is introduced by a \fI\%section clause\fP\&.
.SH EXAMPLE
.sp
-An example config file is shown below.
-Copy this to \fB/etc/unbound/unbound.conf\fP and start the server with:
+An example minimal config file is shown below; most settings are the defaults.
+Copy this to \fB@ub_conf_file@\fP and start the server with:
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
-$ unbound \-c /etc/unbound/unbound.conf
+$ unbound \-c @ub_conf_file@
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
-Most settings are the defaults.
Stop the server with:
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
-$ kill \(gacat /etc/unbound/unbound.pid\(ga
+$ kill \(gacat @UNBOUND_PIDFILE@\(ga
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
-Below is a minimal config file.
The source distribution contains an extensive \fBexample.conf\fP file with
all the options.
.INDENT 0.0
@@ -83,33 +88,87 @@ all the options.
.ft C
# unbound.conf(5) config file for unbound(8).
server:
- directory: \(dq/etc/unbound\(dq
+ directory: \(dq@UNBOUND_RUN_DIR@\(dq
username: unbound
# make sure unbound can access entropy from inside the chroot.
# e.g. on linux the use these commands (on BSD, devfs(8) is used):
- # mount \-\-bind \-n /dev/urandom /etc/unbound/dev/urandom
- # and mount \-\-bind \-n /dev/log /etc/unbound/dev/log
- chroot: \(dq/etc/unbound\(dq
- # logfile: \(dq/etc/unbound/unbound.log\(dq #uncomment to use logfile.
- pidfile: \(dq/etc/unbound/unbound.pid\(dq
+ # mount \-\-bind \-n /dev/urandom @UNBOUND_RUN_DIR@/dev/urandom
+ # and mount \-\-bind \-n /dev/log @UNBOUND_RUN_DIR@/dev/log
+ chroot: \(dq@UNBOUND_CHROOT_DIR@\(dq
+ # logfile: \(dq@UNBOUND_RUN_DIR@/unbound.log\(dq #uncomment to use logfile.
+ pidfile: \(dq@UNBOUND_PIDFILE@\(dq
# verbosity: 1 # uncomment and increase to get more logging.
# listen on all interfaces, answer queries from the local subnet.
interface: 0.0.0.0
interface: ::0
access\-control: 10.0.0.0/8 allow
- access\-control: 2001:DB8::/64 allow
+ access\-control: 2001:db8::/64 allow
.ft P
.fi
.UNINDENT
.UNINDENT
-.SH FILE FORMAT
+.SH SECTION CLAUSES
.sp
-There must be whitespace between keywords.
-Attribute keywords end with a colon \fB\(aq:\(aq\fP\&.
-An attribute is followed by a value, or its containing attributes in which case
-it is referred to as a clause.
-Clauses can be repeated throughout the file (or included files) to group
-attributes under the same clause.
+The recognized section clauses are:
+.INDENT 0.0
+.INDENT 3.5
+.INDENT 0.0
+.TP
+.B \fI\%server:\fP
+Most of the configuration is found in this section.
+.TP
+.B \fI\%remote\-control:\fP
+Configuration for the facility used by
+\fI\%unbound\-control(8)\fP\&.
+.TP
+.B \fI\%stub\-zone:\fP
+Configuration for a zone that redirects to specific authoritative name
+servers, e.g. for zones not generally available on the greater
+Internet.
+.TP
+.B \fI\%forward\-zone:\fP
+Configuration for a zone that forwards to specific DNS resolvers.
+.TP
+.B \fI\%auth\-zone:\fP
+Configuration for local authoritative zones.
+.TP
+.B \fI\%view:\fP
+Overriding a small subset of configuration for incoming requests.
+Requests are mapped to views with
+\fI\%access\-control\-view\fP and
+\fI\%interface\-view\fP\&.
+.TP
+.B \fI\%python:\fP
+Configuration for the optional \fBpython\fP script module.
+.TP
+.B \fI\%dynlib:\fP
+Configuration for the optional \fBdynlib\fP module that loads dynamic
+libraries into Unbound.
+.TP
+.B \fI\%dnscrypt:\fP
+Configuration for the optional DNSCrypt feature.
+.TP
+.B \fI\%cachedb:\fP
+Configuration for the optional \fBcachedb\fP module that can interface
+with second level caches, currently Redis or Redis\-complatible
+databases.
+.TP
+.B \fI\%dnstap:\fP
+Configuration of the optional dnstap logging feature; a flexible,
+structured binary log format for DNS software.
+.TP
+.B \fI\%rpz:\fP
+Configuration for Response Policy Zones that allows for DNS filtering.
+Requires the \fBrespip\fP module.
+.UNINDENT
+.UNINDENT
+.UNINDENT
+.sp
+Section clauses can be repeated throughout the file (or included files) to
+logically group options in one visually cohesive group.
+This may be particularly useful for the \fBserver:\fP clause with its myriad of
+options.
+.SH INCLUDING FILES
.sp
Files can be included using the \fBinclude:\fP directive.
It can appear anywhere, it accepts a single file name as argument.
@@ -124,11 +183,11 @@ Wildcards can be used to include multiple files, see \fIglob(7)\fP\&.
.sp
For a more structural include option, the \fBinclude\-toplevel:\fP directive can
be used.
-This closes whatever clause is currently active (if any) and forces the use of
-clauses in the included files and right after this directive.
-.SS Server Options
+This closes whatever section clause is currently active (if any) and forces the
+use of section clauses in the included files and right after this directive.
+.SH SERVER OPTIONS
.sp
-These options are part of the \fBserver:\fP clause.
+These options are part of the \fBserver:\fP section.
.INDENT 0.0
.TP
.B verbosity: \fI<number>\fP
@@ -323,6 +382,10 @@ Default depends on compile options.
Larger numbers need extra resources from the operating system.
For performance a very large value is best, use libevent to make this
possible.
+Should be higher (preferably double) than the value of
+\fI\%num\-queries\-per\-thread\fP to
+account for cases where the request list is full and avoid file descriptor
+starvation.
.sp
Default: 4096 (libevent) / 960 (minievent) / 48 (windows)
.UNINDENT
@@ -539,6 +602,9 @@ Default: 376
The wait time in msec where recursion requests are dropped.
This is to stop a large number of replies from accumulating.
They receive no reply, the work item continues to recurse.
+For UDP the replies are dropped, for stream connections the reply
+is not dropped if the stream connection is still open ready to receive
+answers.
It is nice to be a bit larger than
\fI\%serve\-expired\-client\-timeout\fP
if that is enabled.
@@ -554,7 +620,7 @@ The number of replies that can wait for recursion, for an IP address.
This makes a ratelimit per IP address of waiting replies for recursion.
It stops very large amounts of queries waiting to be returned to one
destination.
-The value \fB0\fP disables wait limits.
+The value \fB0\fP disables all wait limits.
.sp
Default: 1000
.UNINDENT
@@ -563,7 +629,11 @@ Default: 1000
.B wait\-limit\-cookie: \fI<number>\fP
The number of replies that can wait for recursion, for an IP address
that sent the query with a valid DNS Cookie.
-Since the cookie validates the client address, this limit can be higher.
+Since the cookie already validates the client address, this option allows
+to override a configured
+\fI\%wait\-limit\fP value usually with a higher one
+for cookie validated queries.
+The value \fB0\fP disables wait limits for cookie validated queries.
.sp
Default: 10000
.UNINDENT
@@ -1069,9 +1139,13 @@ The file must contain the private key for the TLS session, the public
certificate is in the \fI\%tls\-service\-pem\fP
file and it must also be specified if
\fI\%tls\-service\-key\fP is specified.
-Enabling or disabling this service requires a restart (a reload is not
-enough), because the key is read while root permissions are held and before
-chroot (if any).
+If the key is stored with root permissions or outside of chroot, then
+a change or enabling or disabling requires a restart (a reload is not
+enough).
+But if the key file (and tls\-service\-pem file) are accessible, then they
+are read in on reload, and fast_reload.
+The server checks the modification time of the file (and the filename)
+to see if the file has changed for reload.
The ports enabled implicitly or explicitly via
\fI\%tls\-port\fP and
\fI\%https\-port\fP do not provide normal DNS TCP
@@ -1153,8 +1227,8 @@ Default: no
.INDENT 0.0
.TP
.B tls\-system\-cert: \fI<yes or no>\fP
-This the same attribute as the
-\fI\%tls\-win\-cert\fP attribute, under a
+This the same as the
+\fI\%tls\-win\-cert\fP option, under a
different name.
Because it is not windows specific.
.UNINDENT
@@ -1218,6 +1292,36 @@ Default: \(dq\(dq
.UNINDENT
.INDENT 0.0
.TP
+.B tls\-use\-sni: \fI<yes or no>\fP
+Enable or disable sending the SNI extension on TLS connections.
+.sp
+\fBNOTE:\fP
+.INDENT 7.0
+.INDENT 3.5
+Changing the value requires a restart.
+.UNINDENT
+.UNINDENT
+.sp
+Default: yes
+.UNINDENT
+.INDENT 0.0
+.TP
+.B tls\-protocols: \fI\(dq<list of protocols>\(dq\fP
+Specify the allowed TLS protocol versions to use, in no particular order.
+Possible values are \fBTLSv1.2\fP and \fBTLSv1.3\fP\&.
+Enclose list of protocols in quotes (\fB\(dq\(dq\fP) and put spaces between them.
+.sp
+\fBNOTE:\fP
+.INDENT 7.0
+.INDENT 3.5
+Changing the value requires a restart.
+.UNINDENT
+.UNINDENT
+.sp
+Default: \(dqTLSv1.2 TLSv1.3\(dq
+.UNINDENT
+.INDENT 0.0
+.TP
.B pad\-responses: \fI<yes or no>\fP
If enabled, TLS serviced queries that contained an EDNS Padding option will
cause responses padded to the closest multiple of the size specified in
@@ -1251,20 +1355,6 @@ Default: 128
.UNINDENT
.INDENT 0.0
.TP
-.B tls\-use\-sni: \fI<yes or no>\fP
-Enable or disable sending the SNI extension on TLS connections.
-.sp
-\fBNOTE:\fP
-.INDENT 7.0
-.INDENT 3.5
-Changing the value requires a reload.
-.UNINDENT
-.UNINDENT
-.sp
-Default: yes
-.UNINDENT
-.INDENT 0.0
-.TP
.B https\-port: \fI<number>\fP
The port number on which to provide DNS\-over\-HTTPS service.
Only interfaces configured with that port number as @number get the HTTPS
@@ -1357,6 +1447,9 @@ The port number on which to provide DNS\-over\-QUIC service.
Only interfaces configured with that port number as @number get the QUIC
service.
The interface uses QUIC for the UDP traffic on that port number.
+If it is set to 0, the server does not init QUIC code, and QUIC is
+disabled.
+This is similar to if QUIC is not in use, but then explicitly.
.sp
Default: 853
.UNINDENT
@@ -1580,8 +1673,8 @@ implicit default \(dqaccess\-control: 127.0.0.0/8 allow\(dq option.
.INDENT 3.5
The interface needs to be already specified with
\fI\%interface\fP and that any
-\fBaccess\-control*:\fP attribute overrides all \fBinterface\-*:\fP
-attributes for targeted clients.
+\fBaccess\-control*:\fP option overrides all \fBinterface\-*:\fP
+options for targeted clients.
.UNINDENT
.UNINDENT
.UNINDENT
@@ -1596,8 +1689,8 @@ for interfaces.
.INDENT 3.5
The interface needs to be already specified with
\fI\%interface\fP and that any
-\fBaccess\-control*:\fP attribute overrides all \fBinterface\-*:\fP
-attributes for targeted clients.
+\fBaccess\-control*:\fP option overrides all \fBinterface\-*:\fP
+options for targeted clients.
.UNINDENT
.UNINDENT
.UNINDENT
@@ -1613,8 +1706,8 @@ but for interfaces.
.INDENT 3.5
The interface needs to be already specified with
\fI\%interface\fP and that any
-\fBaccess\-control*:\fP attribute overrides all \fBinterface\-*:\fP
-attributes for targeted clients.
+\fBaccess\-control*:\fP option overrides all \fBinterface\-*:\fP
+options for targeted clients.
.UNINDENT
.UNINDENT
.UNINDENT
@@ -1630,8 +1723,8 @@ for interfaces.
.INDENT 3.5
The interface needs to be already specified with
\fI\%interface\fP and that any
-\fBaccess\-control*:\fP attribute overrides all \fBinterface\-*:\fP
-attributes for targeted clients.
+\fBaccess\-control*:\fP option overrides all \fBinterface\-*:\fP
+options for targeted clients.
.UNINDENT
.UNINDENT
.UNINDENT
@@ -1646,8 +1739,8 @@ but for interfaces.
.INDENT 3.5
The interface needs to be already specified with
\fI\%interface\fP and that any
-\fBaccess\-control*:\fP attribute overrides all \fBinterface\-*:\fP
-attributes for targeted clients.
+\fBaccess\-control*:\fP option overrides all \fBinterface\-*:\fP
+options for targeted clients.
.UNINDENT
.UNINDENT
.UNINDENT
@@ -1724,7 +1817,7 @@ The logfile is appended to, in the following format:
.UNINDENT
.sp
If this option is given, the \fI\%use\-syslog\fP
-attribute is internally set to \fBno\fP\&.
+option is internally set to \fBno\fP\&.
.sp
The logfile is reopened (for append) when the config file is reread, on
SIGHUP.
@@ -1834,6 +1927,16 @@ Default: no
.UNINDENT
.INDENT 0.0
.TP
+.B log\-thread\-id: \fI<yes or no>\fP
+(Only on Linux and only when threads are available)
+Logs the system\-wide Linux thread ID instead of Unbound\(aqs internal thread
+counter.
+Can be useful when debugging with system tools.
+.sp
+Default: no
+.UNINDENT
+.INDENT 0.0
+.TP
.B pidfile: \fI<filename>\fP
The process id is written to the file.
Default is \fB\(dq@UNBOUND_PIDFILE@\(dq\fP\&.
@@ -1872,8 +1975,8 @@ Read the root hints from this file.
Default is nothing, using builtin hints for the IN class.
The file has the format of zone files, with root nameserver names and
addresses only.
-The default may become outdated, when servers change, therefore it is good
-practice to use a root hints file.
+The default may become outdated, when servers change, and then it is
+possible to use a root hints file with specific servers.
.sp
Default: \(dq\(dq
.UNINDENT
@@ -1969,7 +2072,7 @@ Default: \(dq3 2 1 0 0\(dq
.B harden\-short\-bufsize: \fI<yes or no>\fP
Very small EDNS buffer sizes from queries are ignored.
.sp
-Default: yes (as described in the standard)
+Default: yes (per \fI\%RFC 6891\fP)
.UNINDENT
.INDENT 0.0
.TP
@@ -2166,6 +2269,11 @@ This protects against so\-called DNS Rebinding, where a user browser is
turned into a network proxy, allowing remote access through the browser to
other parts of your private network.
.sp
+The option removes resource records of types A, AAAA, SVCB and HTTPS
+that match the filter.
+Inside the SVCB and HTTPS records, the svcparams of type ipv4hint
+and ipv6hint are checked for matches.
+.sp
Some names can be allowed to contain your private addresses, by default all
the \fI\%local\-data\fP that you configured is
allowed to, and you can specify additional names using
@@ -2600,6 +2708,12 @@ If
\fI\%serve\-expired\-client\-timeout\fP
is also used then it is RECOMMENDED to use 30 as the value (\fI\%RFC 8767\fP).
.sp
+This value is capped by the original TTL of the record.
+This means that records with higher original TTL than this value will use
+this value for expired replies.
+Records with lower original TTL than this value will use their original TTL
+for expired replies.
+.sp
Default: 30
.UNINDENT
.INDENT 0.0
@@ -2898,6 +3012,39 @@ local\-data: \(dqexample.com. A 127.0.0.1\(dq
queries for \fBwww.example.com\fP and \fBwww.foo.example.com\fP are
redirected, so that users with web browsers cannot access sites with
suffix example.com.
+.sp
+A \fBCNAME\fP record can also be provided via local\-data:
+.INDENT 7.0
+.INDENT 3.5
+.sp
+.nf
+.ft C
+local\-zone: \(dqexample.com.\(dq redirect
+local\-data: \(dqexample.com. CNAME www.example.org.\(dq
+.ft P
+.fi
+.UNINDENT
+.UNINDENT
+.sp
+In that case, the \fBCNAME\fP is resolved and the answer
+includes resolved target records as well.
+The \fBCNAME\fP record has to be with the zone name of the local\-zone,
+and there can be one CNAME, not more.
+The \fBCNAME\fP record has to be at the zone apex of the
+\fBredirect\fP zone, then it is used for redirection.
+The resolution proceeds with upstream DNS resolution, and
+that does not include the lookup in local zones.
+So the record is not able to point in local zones, but it
+can point to upstream DNS answers.
+.sp
+\fBCNAME\fP resolution is supported only in type \fBredirect\fP
+local\-zone, and in type \fBinform_redirect\fP local\-zone.
+.sp
+As different from \fBCNAME\fP records that are used elsewhere, in
+the \fBredirect\fP type local\-zone, it is supported that in the target
+of the record a wildcard label gets expanded to the query name, with
+for example: \fBexample.com. CNAME *.foo.net.\fP gets expanded
+to \fBwww.example.com. CNAME www.example.com.foo.net.\fP\&.
.UNINDENT
.INDENT 7.0
.TP
@@ -2956,6 +3103,9 @@ use IPv6 protocol and avoid any queries to IPv4.
.B always_refuse
Like \fI\%refuse\fP, but ignores
local data and refuses the query.
+This type also blocks queries of type DS for the zone name.
+That can break the DNSSEC chain of trust, but it is refused anyway.
+The block for type DS assists in more completely blocking the zone.
.UNINDENT
.INDENT 7.0
.TP
@@ -3278,7 +3428,7 @@ zone section below.
Configure local data shorthand for a PTR record with the reversed IPv4 or
IPv6 address and the host name.
For example \fB\(dq192.0.2.4 www.example.com\(dq\fP\&.
-TTL can be inserted like this: \fB\(dq2001:DB8::4 7200 www.example.com\(dq\fP
+TTL can be inserted like this: \fB\(dq2001:db8::4 7200 www.example.com\(dq\fP
.UNINDENT
.INDENT 0.0
.TP
@@ -3335,7 +3485,7 @@ This specifies the action data for
\fI\%response\-ip\fP with action being to redirect
as specified by \fI<\(dqresource record string\(dq>\fP\&.
\fI<\(dqResource record string\(dq>\fP is similar to that of
-\fI\%access\-control\-tag\-action\fP,
+\fI\%access\-control\-tag\-data\fP,
but it must be of either AAAA, A or CNAME types.
If the \fI<IP\-netblock>\fP is an IPv6/IPv4 prefix, the record must be AAAA/A
respectively, unless it is a CNAME (which can be used for both versions of
@@ -3619,6 +3769,10 @@ Default: 32
Hard limit on the number of times Unbound is allowed to restart a query
upon encountering a CNAME record.
Results in SERVFAIL when reached.
+This applies to chained CNAME records but not sporadic CNAME records that
+could be encountered in the lifetime of the query\(aqs resolution effort.
+When a CNAME chain concludes, the counter keeping track of this limit is
+reset.
Changing this value needs caution as it can allow long CNAME chains to be
accepted, where Unbound needs to verify (resolve) each link individually.
.sp
@@ -3646,6 +3800,16 @@ Default: 11
.UNINDENT
.INDENT 0.0
.TP
+.B iter\-scrub\-rrsig: \fI<number>\fP
+Limit on the number of RRSIGs allowed for an RRset, from the iterator
+scrubber.
+This protects against an overly large number of RRSIGs.
+Clips off the remainder of the RRSIG list at that point.
+.sp
+Default: 8
+.UNINDENT
+.INDENT 0.0
+.TP
.B max\-global\-quota: \fI<number>\fP
Limit on the number of upstream queries sent out for an incoming query and
its subqueries from recursion.
@@ -3805,17 +3969,18 @@ enabled to increase privacy on the outgoing reports.
.sp
Default: no
.UNINDENT
-.SS Remote Control Options
+.SH REMOTE CONTROL OPTIONS
+.sp
+These options are part of the \fBremote\-control:\fP section and are the
+declarations for the remote control facility.
.sp
-In the \fBremote\-control:\fP clause are the declarations for the remote control
-facility.
If this is enabled, the \fI\%unbound\-control(8)\fP
utility can be used to send commands to the running Unbound server.
-The server uses these clauses to setup TLSv1 security for the connection.
-The \fI\%unbound\-control(8)\fP utility also reads the
-\fBremote\-control:\fP section for options.
+The server uses these options to setup TLS security for the connection.
+The \fI\%unbound\-control(8)\fP utility also reads
+this \fBremote\-control:\fP section for options.
To setup the correct self\-signed certificates use the
-\fIunbound\-control\-setup(8)\fP utility.
+\fBunbound\-control\-setup(8)\fP utility.
.INDENT 0.0
.TP
.B control\-enable: \fI<yes or no>\fP
@@ -3826,7 +3991,7 @@ Default: no
.UNINDENT
.INDENT 0.0
.TP
-.B control\-interface: \fI<IP address or interface name or path>\fP
+.B control\-interface: \fI<IP address or interface name[@port] or path>\fP
Give IPv4 or IPv6 addresses or local socket path to listen on for control
commands.
If an interface name is used instead of an IP address, the list of IP
@@ -3915,9 +4080,11 @@ This file is used by \fI\%unbound\-control(8)\fP\&.
.sp
Default: unbound_control.pem
.UNINDENT
-.SS Stub Zone Options
+.SH STUB ZONE OPTIONS
.sp
-There may be multiple \fBstub\-zone:\fP clauses.
+These options are part of the \fBstub\-zone:\fP section.
+.sp
+There may be multiple \fBstub\-zone:\fP sections.
Each with a \fI\%name\fP and zero or more hostnames or
IP addresses.
For the stub zone this list of nameservers is used.
@@ -3956,9 +4123,10 @@ Consider adding \fI\%server\fP statements for
\fI\%domain\-insecure\fP and for
\fI\%local\-zone: <name> nodefault\fP
for the zone if it is a locally served zone.
-The insecure clause stops DNSSEC from invalidating the zone.
+The \fI\%domain\-insecure\fP option stops DNSSEC
+from invalidating the zone.
The \fI\%local\-zone: nodefault\fP (or
-\fI\%transparent\fP) clause makes the
+\fI\%transparent\fP) option makes the
(reverse\-) zone bypass Unbound\(aqs filtering of \fI\%RFC 1918\fP zones.
.INDENT 0.0
.TP
@@ -3972,6 +4140,23 @@ This is the full domain name of the zone.
Name of stub zone nameserver.
Is itself resolved before it is used.
.sp
+\fBCAUTION:\fP
+.INDENT 7.0
+.INDENT 3.5
+If the domain (or a subdomain) from this zone is used as the host, it
+will unavoidably introduce a circular dependency on retrieving the IP
+addresses of the name server.
+In that case, it is suggested to use
+\fI\%stub\-addr\fP instead.
+Alternatively,
+\fI\%stub\-first: yes\fP can also work
+around the circular dependency by trying resolution outside of this
+zone.
+However this has the caveat that it would allow escaping this zone when
+any resolution attempt fails within this zone.
+.UNINDENT
+.UNINDENT
+.sp
To use a non\-default port for DNS communication append \fB\(aq@\(aq\fP with the
port number.
.sp
@@ -4012,9 +4197,12 @@ Default: no
.INDENT 0.0
.TP
.B stub\-first: \fI<yes or no>\fP
-If enabled, a query is attempted without the stub clause if it fails.
+If enabled, a query is attempted without this stub section if it fails.
The data could not be retrieved and would have caused SERVFAIL because the
-servers are unreachable, instead it is tried without this clause.
+servers are unreachable, instead it is tried without this stub section.
+This can lead to using less specific configured forward/stub/auth zones if
+any, or end up to otherwise normal recursive resolution for that particular
+query.
.sp
Default: no
.UNINDENT
@@ -4047,9 +4235,11 @@ This is useful when you want immediate changes to be visible.
.sp
Default: no
.UNINDENT
-.SS Forward Zone Options
+.SH FORWARD ZONE OPTIONS
.sp
-There may be multiple \fBforward\-zone:\fP clauses.
+These options are part of the \fBforward\-zone:\fP section.
+.sp
+There may be multiple \fBforward\-zone:\fP sections.
Each with a \fI\%name\fP and zero or more hostnames
or IP addresses.
For the forward zone this list of nameservers is used to forward the queries
@@ -4080,6 +4270,23 @@ This is the full domain name of the zone.
Name of server to forward to.
Is itself resolved before it is used.
.sp
+\fBCAUTION:\fP
+.INDENT 7.0
+.INDENT 3.5
+If the domain (or a subdomain) from this zone is used as the host, it
+will unavoidably introduce a circular dependency on retrieving the IP
+addresses of the name server.
+In that case, it is suggested to use
+\fI\%forward\-addr\fP instead.
+Alternatively,
+\fI\%forward\-first: yes\fP can also
+work around the circular dependency by trying resolution outside of
+this zone.
+However this has the caveat that it would allow escaping this zone when
+any resolution attempt fails within this zone.
+.UNINDENT
+.UNINDENT
+.sp
To use a non\-default port for DNS communication append \fB\(aq@\(aq\fP with the
port number.
.sp
@@ -4116,9 +4323,11 @@ The cert must also match a CA from the
.INDENT 0.0
.TP
.B forward\-first: \fI<yes or no>\fP
-If a forwarded query is met with a SERVFAIL error, and this option is
-enabled, Unbound will fall back to normal recursive resolution for this
-query as if no query forwarding had been specified.
+If a forwarded query is met with a SERVFAIL error and this option is
+enabled Unbound will fall back to less specific resolution.
+This can lead to using less specific configured forward/stub/auth zones if
+any, or end up to otherwise normal recursive resolution for that particular
+query.
.sp
Default: no
.UNINDENT
@@ -4156,12 +4365,14 @@ This is useful when you want immediate changes to be visible.
.sp
Default: no
.UNINDENT
-.SS Authority Zone Options
+.SH AUTHORITY ZONE OPTIONS
+.sp
+These options are part of the \fBauth\-zone:\fP section.
.sp
Authority zones are configured with \fBauth\-zone:\fP, and each one must have a
\fI\%name\fP\&.
-There can be multiple ones, by listing multiple auth\-zone clauses, each with a
-different name, pertaining to that part of the namespace.
+There can be multiple ones, by listing multiple \fBauth\-zone\fP section clauses,
+each with a different name, pertaining to that part of the namespace.
The authority zone with the name closest to the name looked up is used.
Authority zones can be processed on two distinct, non\-exclusive, configurable
stages.
@@ -4192,7 +4403,7 @@ consult the local zone data while resolving.
In this case, the aforementioned CNAME example will result in a thoroughly
resolved answer.
.sp
-Authority zones can be read from zonefile.
+Authority zones can be read from a zonefile.
And can be kept updated via AXFR and IXFR.
After update the zonefile is rewritten.
The update mechanism uses the SOA timer values and performs SOA UDP queries to
@@ -4229,9 +4440,15 @@ does not support AXFR/IXFR for the zone, but if you used
\fI\%url\fP to download the zonefile as a text file
from a webserver that would work.
.sp
-If you specify the hostname, you cannot use the domain from the zonefile,
-because it may not have that when retrieving that data, instead use a plain
-IP address to avoid a circular dependency on retrieving that IP address.
+\fBCAUTION:\fP
+.INDENT 7.0
+.INDENT 3.5
+If you specify the hostname, you cannot use the domain from the
+zonefile, because it may not have that when retrieving that data,
+instead use a plain IP address to avoid a circular dependency on
+retrieving that IP address.
+.UNINDENT
+.UNINDENT
.UNINDENT
.INDENT 0.0
.TP
@@ -4377,18 +4594,20 @@ If not given then no zonefile is used.
If the file does not exist or is empty, Unbound will attempt to fetch zone
data (eg. from the primary servers).
.UNINDENT
-.SS View Options
+.SH VIEW OPTIONS
+.sp
+These options are part of the \fBview:\fP section.
.sp
-There may be multiple \fBview:\fP clauses.
+There may be multiple \fBview:\fP sections.
Each with a \fI\%name\fP and zero or more
\fI\%local\-zone\fP and
-\fI\%local\-data\fP attributes.
+\fI\%local\-data\fP options.
Views can also contain \fI\%view\-first\fP,
\fI\%response\-ip\fP,
\fI\%response\-ip\-data\fP and
-\fI\%local\-data\-ptr\fP attributes.
+\fI\%local\-data\-ptr\fP options.
View can be mapped to requests by specifying the view name in an
-\fI\%access\-control\-view\fP attribute.
+\fI\%access\-control\-view\fP option.
Options from matching views will override global options.
Global options will be used if no matching view is found, or when the matching
view does not have the option specified.
@@ -4398,7 +4617,7 @@ view does not have the option specified.
Name of the view.
Must be unique.
This name is used in the
-\fI\%access\-control\-view\fP attribute.
+\fI\%access\-control\-view\fP option.
.UNINDENT
.INDENT 0.0
.TP
@@ -4431,6 +4650,22 @@ Has the same behaviour as the global
.UNINDENT
.INDENT 0.0
.TP
+.B response\-ip: \fI<IP\-netblock> <action>\fP
+This requires use of the \fBrespip\fP module.
+.sp
+Similar to \fI\%response\-ip\fP but
+only applies to this view.
+.UNINDENT
+.INDENT 0.0
+.TP
+.B response\-ip\-data: \fI<IP\-netblock> <\(dqresource record string\(dq>\fP
+This requires use of the \fBrespip\fP module.
+.sp
+Similar to \fI\%response\-ip\-data\fP but
+only applies to this view.
+.UNINDENT
+.INDENT 0.0
+.TP
.B view\-first: \fI<yes or no>\fP
If enabled, it attempts to use the global
\fI\%local\-zone\fP and
@@ -4439,9 +4674,11 @@ view specific options.
.sp
Default: no
.UNINDENT
-.SS Python Module Options
+.SH PYTHON MODULE OPTIONS
+.sp
+These options are part of the \fBpython:\fP section.
.sp
-The \fBpython:\fP clause gives the settings for the \fIpython(1)\fP script module.
+The \fBpython:\fP section gives the settings for the \fIpython(1)\fP script module.
This module acts like the iterator and validator modules do, on queries and
answers.
To enable the script module it has to be compiled into the daemon, and the word
@@ -4464,14 +4701,16 @@ The script file to load.
Repeat this option for every python module instance added to the
\fI\%module\-config\fP option.
.UNINDENT
-.SS Dynamic Library Module Options
+.SH DYNAMIC LIBRARY MODULE OPTIONS
.sp
-The \fBdynlib:\fP clause gives the settings for the \fBdynlib\fP module.
+These options are part of the \fBdynlib:\fP section.
+.sp
+The \fBdynlib:\fP section gives the settings for the \fBdynlib\fP module.
This module is only a very small wrapper that allows dynamic modules to be
loaded on runtime instead of being compiled into the application.
To enable the dynlib module it has to be compiled into the daemon, and the word
\fBdynlib\fP has to be put in the
-\fI\%module\-config\fP attribute.
+\fI\%module\-config\fP option.
Multiple instances of dynamic libraries are supported by adding the word
\fBdynlib\fP more than once.
.sp
@@ -4486,7 +4725,9 @@ The dynamic library file to load.
Repeat this option for every dynlib module instance added to the
\fI\%module\-config\fP option.
.UNINDENT
-.SS DNS64 Module Options
+.SH DNS64 MODULE OPTIONS
+.sp
+These options are part of the \fBserver:\fP section.
.sp
The \fBdns64\fP module must be configured in the
\fI\%module\-config\fP directive, e.g.:
@@ -4506,7 +4747,11 @@ and be compiled into the daemon to be enabled.
\fBNOTE:\fP
.INDENT 0.0
.INDENT 3.5
-These settings go in the \fI\%server:\fP section.
+If combining the \fBrespip\fP and \fBdns64\fP modules, the \fBrespip\fP module
+needs to appear before the \fBdns64\fP module in the
+\fI\%module\-config\fP
+configuration option so that response IP and/or RPZ feeds can properly
+filter responses regardless of DNS64 synthesis.
.UNINDENT
.UNINDENT
.INDENT 0.0
@@ -4542,12 +4787,12 @@ Can be entered multiple times, list a new domain for which it applies, one
per line.
Applies also to names underneath the name given.
.UNINDENT
-.SS NAT64 Operation
+.SH NAT64 OPTIONS
+.sp
+These options are part of the \fBserver:\fP section.
.sp
NAT64 operation allows using a NAT64 prefix for outbound requests to IPv4\-only
servers.
-It is controlled by two options in the
-\fI\%server:\fP section:
.INDENT 0.0
.TP
.B do\-nat64: \fI<yes or no>\fP
@@ -4563,11 +4808,24 @@ Default: no
Use a specific NAT64 prefix to reach IPv4\-only servers.
The prefix length must be one of /32, /40, /48, /56, /64 or /96.
.sp
+The NAT64 prefix is allowed by the
+\fI\%do\-not\-query\-address\fP option,
+so that there is a clear outcome of addresses in both; the NAT64 prefix
+is allowed.
+The IPv4 address could be filtered by the
+\fI\%do\-not\-query\-address\fP option,
+if needed.
+Allowing the NAT64 prefix is useful when using do\-not\-query\-address
+for a cluster of machines that is IPv6\-only and uses NAT64, but does
+not have internet access.
+.sp
Default: 64:ff9b::/96 (same as \fI\%dns64\-prefix\fP)
.UNINDENT
-.SS DNSCrypt Options
+.SH DNSCRYPT OPTIONS
.sp
-The \fBdnscrypt:\fP clause gives the settings of the dnscrypt channel.
+These options are part of the \fBdnscrypt:\fP section.
+.sp
+The \fBdnscrypt:\fP section gives the settings of the dnscrypt channel.
While those options are available, they are only meaningful if Unbound was
compiled with \fB\-\-enable\-dnscrypt\fP\&.
Currently certificate and secret/public keys cannot be generated by Unbound.
@@ -4697,7 +4955,9 @@ If left unconfigured, it will be configured automatically to be a power of
.sp
Default: (unconfigured)
.UNINDENT
-.SS EDNS Client Subnet Module Options
+.SH EDNS CLIENT SUBNET MODULE OPTIONS
+.sp
+These options are part of the \fBserver:\fP section.
.sp
The ECS module must be configured in the
\fI\%module\-config\fP directive, e.g.:
@@ -4714,13 +4974,6 @@ module\-config: \(dqsubnetcache validator iterator\(dq
.sp
and be compiled into the daemon to be enabled.
.sp
-\fBNOTE:\fP
-.INDENT 0.0
-.INDENT 3.5
-These settings go in the \fI\%server:\fP section.
-.UNINDENT
-.UNINDENT
-.sp
If the destination address is allowed in the configuration Unbound will add the
EDNS0 option to the query containing the relevant part of the client\(aqs address.
When an answer contains the ECS option the response and the option are placed
@@ -4842,7 +5095,9 @@ This number applies for each qname/qclass/qtype tuple.
.sp
Default: 100
.UNINDENT
-.SS Opportunistic IPsec Support Module Options
+.SH OPPORTUNISTIC IPSEC SUPPORT MODULE OPTIONS
+.sp
+These options are part of the \fBserver:\fP section.
.sp
The IPsec module must be configured in the
\fI\%module\-config\fP directive, e.g.:
@@ -4859,13 +5114,6 @@ module\-config: \(dqipsecmod validator iterator\(dq
.sp
and be compiled into Unbound by using \fB\-\-enable\-ipsecmod\fP to be enabled.
.sp
-\fBNOTE:\fP
-.INDENT 0.0
-.INDENT 3.5
-These settings go in the \fI\%server:\fP section.
-.UNINDENT
-.UNINDENT
-.sp
When Unbound receives an A/AAAA query that is not in the cache and finds a
valid answer, it will withhold returning the answer and instead will generate
an IPSECKEY subquery for the same domain name.
@@ -4963,7 +5211,9 @@ If the option is not specified, all domains are treated as being allowed
.B ipsecmod\-whitelist: \fI<domain>\fP
Alternate syntax for \fI\%ipsecmod\-allow\fP\&.
.UNINDENT
-.SS Cache DB Module Options
+.SH CACHE DB MODULE OPTIONS
+.sp
+These options are part of the \fBcachedb:\fP section.
.sp
The Cache DB module must be configured in the
\fI\%module\-config\fP directive, e.g.:
@@ -5025,7 +5275,7 @@ If connection close or timeout happens too often, Unbound will be effectively
unusable with this backend.
It\(aqs the administrator\(aqs responsibility to make the assumption hold.
.sp
-The \fBcachedb:\fP clause gives custom settings of the cache DB module.
+The \fBcachedb:\fP section gives custom settings of the cache DB module.
.INDENT 0.0
.TP
.B backend: \fI<backend name>\fP
@@ -5253,10 +5503,13 @@ for the Redis replica server.
.sp
Default: 0
.UNINDENT
-.SS DNSTAP Logging Options
+.SH DNSTAP OPTIONS
+.sp
+These options are part of the \fBdnstap:\fP section.
.sp
-DNSTAP support, when compiled in by using \fB\-\-enable\-dnstap\fP, is enabled in
-the \fBdnstap:\fP section.
+DNSTAP is a flexible, structured binary log format for DNS software.
+When compiled in by using \fB\-\-enable\-dnstap\fP, it can be enabled in the
+\fBdnstap:\fP section.
This starts an extra thread (when compiled with threading) that writes the log
information to the destination.
If Unbound is compiled without threading it does not spawn a thread, but
@@ -5422,15 +5675,18 @@ Enable to log forwarder response messages.
.sp
Default: no
.UNINDENT
-.SS Response Policy Zone Options
+.SH RESPONSE POLICY ZONE OPTIONS
.sp
-Response Policy Zones are configured with \fBrpz:\fP, and each one must have a
-\fI\%name\fP attribute.
-There can be multiple ones, by listing multiple RPZ clauses, each with a
-different name.
-RPZ clauses are applied in order of configuration and any match from an earlier
-RPZ zone will terminate the RPZ lookup.
+These options are part of the \fBrpz:\fP section.
+.sp
+Response Policy Zones are configured with \fBrpz:\fP section clauses, and each
+one must have a \fI\%name\fP option.
+There can be multiple ones, by listing multiple \fBrpz:\fP section clauses, each
+with a different name.
+RPZ sections are applied in order of configuration and any match from an
+earlier RPZ zone will terminate the RPZ lookup.
Note that a PASSTHRU action is still considered a match.
+.sp
The respip module needs to be added to the
\fI\%module\-config\fP, e.g.:
.INDENT 0.0
@@ -5444,6 +5700,17 @@ module\-config: \(dqrespip validator iterator\(dq
.UNINDENT
.UNINDENT
.sp
+\fBNOTE:\fP
+.INDENT 0.0
+.INDENT 3.5
+If combining the \fBrespip\fP and \fBdns64\fP modules, the \fBrespip\fP module
+needs to appear before the \fBdns64\fP module in the
+\fI\%module\-config\fP
+configuration option so that response IP and/or RPZ feeds can properly
+filter responses regardless of DNS64 synthesis.
+.UNINDENT
+.UNINDENT
+.sp
QNAME, Response IP Address, nsdname, nsip and clientip triggers are supported.
Supported actions are: NXDOMAIN, NODATA, PASSTHRU, DROP, Local Data, tcp\-only
and drop.
@@ -5512,9 +5779,6 @@ A 192.0.2.1 answer with this IP address
.sp
Other records like AAAA, TXT and other CNAMEs (not rpz\-..) can also be used to
answer queries with that content.
-.sp
-The RPZ zones can be configured in the config file with these settings in the
-\fBrpz:\fP block.
.INDENT 0.0
.TP
.B name: \fI<zone name>\fP
@@ -5653,7 +5917,7 @@ Default: no
.INDENT 0.0
.TP
.B tags: \fI\(dq<list of tags>\(dq\fP
-Limit the policies from this RPZ clause to clients with a matching tag.
+Limit the policies from this RPZ section to clients with a matching tag.
.sp
Tags need to be defined in \fI\%define\-tag\fP and
can be assigned to client addresses using
@@ -5661,7 +5925,7 @@ can be assigned to client addresses using
\fI\%interface\-tag\fP\&.
Enclose list of tags in quotes (\fB\(dq\(dq\fP) and put spaces between tags.
.sp
-If no tags are specified the policies from this clause will be applied for
+If no tags are specified the policies from this section will be applied for
all clients.
.UNINDENT
.SH MEMORY CONTROL EXAMPLE
@@ -5730,6 +5994,6 @@ Default is to log to \fIsyslog(3)\fP\&.
.SH AUTHOR
Unbound developers are mentioned in the CREDITS file in the distribution.
.SH COPYRIGHT
-1999-2025, NLnet Labs
+1999-2026, NLnet Labs
.\" Generated by docutils manpage writer.
.
diff --git a/doc/unbound.conf.rst b/doc/unbound.conf.rst
index d83816c6f468..cc01451cd432 100644
--- a/doc/unbound.conf.rst
+++ b/doc/unbound.conf.rst
@@ -46,34 +46,41 @@ Description
-----------
**unbound.conf** is used to configure :doc:`unbound(8)</manpages/unbound>`.
-The file format has attributes and values.
-Some attributes have attributes inside them.
-The notation is: ``attribute: value``.
-
-Comments start with ``#`` and last to the end of line.
-Empty lines are ignored as is whitespace at the beginning of a line.
The utility :doc:`unbound-checkconf(8)</manpages/unbound-checkconf>` can be
used to check ``unbound.conf`` prior to usage.
+File Format
+-----------
+
+Whitespace is used to separate keywords.
+Whitespace indentation is insignificant, but is still recommended for visual
+clarity.
+Comments start with ``#`` and last to the end of line.
+Empty lines are ignored, as is whitespace at the beginning of a line.
+
+Attribute keywords end with a colon (``:``) and they are either options or
+section clauses (group options together).
+
+The configuration file is logically divided into **sections** where each section
+is introduced by a :ref:`section clause<unbound.conf.clauses>`.
+
Example
-------
-An example config file is shown below.
-Copy this to :file:`/etc/unbound/unbound.conf` and start the server with:
+An example minimal config file is shown below; most settings are the defaults.
+Copy this to ``@ub_conf_file@`` and start the server with:
.. code-block:: text
- $ unbound -c /etc/unbound/unbound.conf
+ $ unbound -c @ub_conf_file@
-Most settings are the defaults.
Stop the server with:
.. code-block:: text
- $ kill `cat /etc/unbound/unbound.pid`
+ $ kill `cat @UNBOUND_PIDFILE@`
-Below is a minimal config file.
The source distribution contains an extensive :file:`example.conf` file with
all the options.
@@ -81,35 +88,87 @@ all the options.
# unbound.conf(5) config file for unbound(8).
server:
- directory: "/etc/unbound"
+ directory: "@UNBOUND_RUN_DIR@"
username: unbound
# make sure unbound can access entropy from inside the chroot.
# e.g. on linux the use these commands (on BSD, devfs(8) is used):
- # mount --bind -n /dev/urandom /etc/unbound/dev/urandom
- # and mount --bind -n /dev/log /etc/unbound/dev/log
- chroot: "/etc/unbound"
- # logfile: "/etc/unbound/unbound.log" #uncomment to use logfile.
- pidfile: "/etc/unbound/unbound.pid"
+ # mount --bind -n /dev/urandom @UNBOUND_RUN_DIR@/dev/urandom
+ # and mount --bind -n /dev/log @UNBOUND_RUN_DIR@/dev/log
+ chroot: "@UNBOUND_CHROOT_DIR@"
+ # logfile: "@UNBOUND_RUN_DIR@/unbound.log" #uncomment to use logfile.
+ pidfile: "@UNBOUND_PIDFILE@"
# verbosity: 1 # uncomment and increase to get more logging.
# listen on all interfaces, answer queries from the local subnet.
interface: 0.0.0.0
interface: ::0
access-control: 10.0.0.0/8 allow
- access-control: 2001:DB8::/64 allow
+ access-control: 2001:db8::/64 allow
-File Format
------------
+.. _unbound.conf.clauses:
+
+Section Clauses
+---------------
+
+The recognized section clauses are:
+
+ :ref:`server:<unbound.conf.server>`
+ Most of the configuration is found in this section.
-There must be whitespace between keywords.
-Attribute keywords end with a colon ``':'``.
-An attribute is followed by a value, or its containing attributes in which case
-it is referred to as a clause.
-Clauses can be repeated throughout the file (or included files) to group
-attributes under the same clause.
+ :ref:`remote-control:<unbound.conf.remote>`
+ Configuration for the facility used by
+ :doc:`unbound-control(8)</manpages/unbound-control>`.
+
+ :ref:`stub-zone:<unbound.conf.stub>`
+ Configuration for a zone that redirects to specific authoritative name
+ servers, e.g. for zones not generally available on the greater
+ Internet.
+
+ :ref:`forward-zone:<unbound.conf.forward>`
+ Configuration for a zone that forwards to specific DNS resolvers.
+
+ :ref:`auth-zone:<unbound.conf.auth>`
+ Configuration for local authoritative zones.
+
+ :ref:`view:<unbound.conf.view>`
+ Overriding a small subset of configuration for incoming requests.
+ Requests are mapped to views with
+ :ref:`access-control-view<unbound.conf.access-control-view>` and
+ :ref:`interface-view<unbound.conf.interface-view>`.
+
+ :ref:`python:<unbound.conf.python>`
+ Configuration for the optional ``python`` script module.
+
+ :ref:`dynlib:<unbound.conf.dynlib>`
+ Configuration for the optional ``dynlib`` module that loads dynamic
+ libraries into Unbound.
+
+ :ref:`dnscrypt:<unbound.conf.dnscrypt>`
+ Configuration for the optional DNSCrypt feature.
+
+ :ref:`cachedb:<unbound.conf.cachedb>`
+ Configuration for the optional ``cachedb`` module that can interface
+ with second level caches, currently Redis or Redis-complatible
+ databases.
+
+ :ref:`dnstap:<unbound.conf.dnstap>`
+ Configuration of the optional dnstap logging feature; a flexible,
+ structured binary log format for DNS software.
+
+ :ref:`rpz:<unbound.conf.rpz>`
+ Configuration for Response Policy Zones that allows for DNS filtering.
+ Requires the ``respip`` module.
+
+Section clauses can be repeated throughout the file (or included files) to
+logically group options in one visually cohesive group.
+This may be particularly useful for the ``server:`` clause with its myriad of
+options.
.. _unbound.conf.include:
-Files can be included using the **include:** directive.
+Including Files
+---------------
+
+Files can be included using the ``include:`` directive.
It can appear anywhere, it accepts a single file name as argument.
Processing continues as if the text from the included file was copied into the
config file at that point.
@@ -122,17 +181,17 @@ Wildcards can be used to include multiple files, see *glob(7)*.
.. _unbound.conf.include-toplevel:
-For a more structural include option, the **include-toplevel:** directive can
+For a more structural include option, the ``include-toplevel:`` directive can
be used.
-This closes whatever clause is currently active (if any) and forces the use of
-clauses in the included files and right after this directive.
+This closes whatever section clause is currently active (if any) and forces the
+use of section clauses in the included files and right after this directive.
.. _unbound.conf.server:
Server Options
-^^^^^^^^^^^^^^
+--------------
-These options are part of the **server:** clause.
+These options are part of the ``server:`` section.
@@UAHL@unbound.conf@verbosity@@: *<number>*
@@ -307,6 +366,10 @@ These options are part of the **server:** clause.
Larger numbers need extra resources from the operating system.
For performance a very large value is best, use libevent to make this
possible.
+ Should be higher (preferably double) than the value of
+ :ref:`num-queries-per-thread<unbound.conf.num-queries-per-thread>` to
+ account for cases where the request list is full and avoid file descriptor
+ starvation.
Default: 4096 (libevent) / 960 (minievent) / 48 (windows)
@@ -496,6 +559,9 @@ These options are part of the **server:** clause.
The wait time in msec where recursion requests are dropped.
This is to stop a large number of replies from accumulating.
They receive no reply, the work item continues to recurse.
+ For UDP the replies are dropped, for stream connections the reply
+ is not dropped if the stream connection is still open ready to receive
+ answers.
It is nice to be a bit larger than
:ref:`serve-expired-client-timeout<unbound.conf.serve-expired-client-timeout>`
if that is enabled.
@@ -510,7 +576,7 @@ These options are part of the **server:** clause.
This makes a ratelimit per IP address of waiting replies for recursion.
It stops very large amounts of queries waiting to be returned to one
destination.
- The value ``0`` disables wait limits.
+ The value ``0`` disables all wait limits.
Default: 1000
@@ -518,7 +584,11 @@ These options are part of the **server:** clause.
@@UAHL@unbound.conf@wait-limit-cookie@@: *<number>*
The number of replies that can wait for recursion, for an IP address
that sent the query with a valid DNS Cookie.
- Since the cookie validates the client address, this limit can be higher.
+ Since the cookie already validates the client address, this option allows
+ to override a configured
+ :ref:`wait-limit<unbound.conf.wait-limit>` value usually with a higher one
+ for cookie validated queries.
+ The value ``0`` disables wait limits for cookie validated queries.
Default: 10000
@@ -978,9 +1048,13 @@ These options are part of the **server:** clause.
certificate is in the :ref:`tls-service-pem<unbound.conf.tls-service-pem>`
file and it must also be specified if
:ref:`tls-service-key<unbound.conf.tls-service-key>` is specified.
- Enabling or disabling this service requires a restart (a reload is not
- enough), because the key is read while root permissions are held and before
- chroot (if any).
+ If the key is stored with root permissions or outside of chroot, then
+ a change or enabling or disabling requires a restart (a reload is not
+ enough).
+ But if the key file (and tls-service-pem file) are accessible, then they
+ are read in on reload, and fast_reload.
+ The server checks the modification time of the file (and the filename)
+ to see if the file has changed for reload.
The ports enabled implicitly or explicitly via
:ref:`tls-port<unbound.conf.tls-port>` and
:ref:`https-port<unbound.conf.https-port>` do not provide normal DNS TCP
@@ -1049,8 +1123,8 @@ These options are part of the **server:** clause.
@@UAHL@unbound.conf@tls-system-cert@@: *<yes or no>*
- This the same attribute as the
- :ref:`tls-win-cert<unbound.conf.tls-win-cert>` attribute, under a
+ This the same as the
+ :ref:`tls-win-cert<unbound.conf.tls-win-cert>` option, under a
different name.
Because it is not windows specific.
@@ -1103,6 +1177,24 @@ These options are part of the **server:** clause.
Default: ""
+@@UAHL@unbound.conf@tls-use-sni@@: *<yes or no>*
+ Enable or disable sending the SNI extension on TLS connections.
+
+ .. note:: Changing the value requires a restart.
+
+ Default: yes
+
+
+@@UAHL@unbound.conf@tls-protocols@@: *"<list of protocols>"*
+ Specify the allowed TLS protocol versions to use, in no particular order.
+ Possible values are ``TLSv1.2`` and ``TLSv1.3``.
+ Enclose list of protocols in quotes (``""``) and put spaces between them.
+
+ .. note:: Changing the value requires a restart.
+
+ Default: "TLSv1.2 TLSv1.3"
+
+
@@UAHL@unbound.conf@pad-responses@@: *<yes or no>*
If enabled, TLS serviced queries that contained an EDNS Padding option will
cause responses padded to the closest multiple of the size specified in
@@ -1132,14 +1224,6 @@ These options are part of the **server:** clause.
Default: 128
-@@UAHL@unbound.conf@tls-use-sni@@: *<yes or no>*
- Enable or disable sending the SNI extension on TLS connections.
-
- .. note:: Changing the value requires a reload.
-
- Default: yes
-
-
@@UAHL@unbound.conf@https-port@@: *<number>*
The port number on which to provide DNS-over-HTTPS service.
Only interfaces configured with that port number as @number get the HTTPS
@@ -1224,6 +1308,9 @@ These options are part of the **server:** clause.
Only interfaces configured with that port number as @number get the QUIC
service.
The interface uses QUIC for the UDP traffic on that port number.
+ If it is set to 0, the server does not init QUIC code, and QUIC is
+ disabled.
+ This is similar to if QUIC is not in use, but then explicitly.
Default: 853
@@ -1421,8 +1508,8 @@ These options are part of the **server:** clause.
.. note::
The interface needs to be already specified with
:ref:`interface<unbound.conf.interface>` and that any
- **access-control\*:** attribute overrides all **interface-\*:**
- attributes for targeted clients.
+ **access-control\*:** option overrides all **interface-\*:**
+ options for targeted clients.
@@UAHL@unbound.conf@interface-tag@@: *<ip address or interface name [@port]> <"list of tags">*
@@ -1432,8 +1519,8 @@ These options are part of the **server:** clause.
.. note::
The interface needs to be already specified with
:ref:`interface<unbound.conf.interface>` and that any
- **access-control\*:** attribute overrides all **interface-\*:**
- attributes for targeted clients.
+ **access-control\*:** option overrides all **interface-\*:**
+ options for targeted clients.
@@UAHL@unbound.conf@interface-tag-action@@: *<ip address or interface name [@port]> <tag> <action>*
@@ -1444,8 +1531,8 @@ These options are part of the **server:** clause.
.. note::
The interface needs to be already specified with
:ref:`interface<unbound.conf.interface>` and that any
- **access-control\*:** attribute overrides all **interface-\*:**
- attributes for targeted clients.
+ **access-control\*:** option overrides all **interface-\*:**
+ options for targeted clients.
@@UAHL@unbound.conf@interface-tag-data@@: *<ip address or interface name [@port]> <tag> <"resource record string">*
@@ -1456,8 +1543,8 @@ These options are part of the **server:** clause.
.. note::
The interface needs to be already specified with
:ref:`interface<unbound.conf.interface>` and that any
- **access-control\*:** attribute overrides all **interface-\*:**
- attributes for targeted clients.
+ **access-control\*:** option overrides all **interface-\*:**
+ options for targeted clients.
@@UAHL@unbound.conf@interface-view@@: *<ip address or interface name [@port]> <view name>*
@@ -1467,8 +1554,8 @@ These options are part of the **server:** clause.
.. note::
The interface needs to be already specified with
:ref:`interface<unbound.conf.interface>` and that any
- **access-control\*:** attribute overrides all **interface-\*:**
- attributes for targeted clients.
+ **access-control\*:** option overrides all **interface-\*:**
+ options for targeted clients.
@@UAHL@unbound.conf@chroot@@: *<directory>*
@@ -1533,7 +1620,7 @@ These options are part of the **server:** clause.
[seconds since 1970] unbound[pid:tid]: type: message.
If this option is given, the :ref:`use-syslog<unbound.conf.use-syslog>`
- attribute is internally set to ``no``.
+ option is internally set to ``no``.
The logfile is reopened (for append) when the config file is reread, on
SIGHUP.
@@ -1632,6 +1719,15 @@ These options are part of the **server:** clause.
Default: no
+@@UAHL@unbound.conf@log-thread-id@@: *<yes or no>*
+ (Only on Linux and only when threads are available)
+ Logs the system-wide Linux thread ID instead of Unbound's internal thread
+ counter.
+ Can be useful when debugging with system tools.
+
+ Default: no
+
+
@@UAHL@unbound.conf@pidfile@@: *<filename>*
The process id is written to the file.
Default is :file:`"@UNBOUND_PIDFILE@"`.
@@ -1657,8 +1753,8 @@ These options are part of the **server:** clause.
Default is nothing, using builtin hints for the IN class.
The file has the format of zone files, with root nameserver names and
addresses only.
- The default may become outdated, when servers change, therefore it is good
- practice to use a root hints file.
+ The default may become outdated, when servers change, and then it is
+ possible to use a root hints file with specific servers.
Default: ""
@@ -1744,7 +1840,7 @@ These options are part of the **server:** clause.
@@UAHL@unbound.conf@harden-short-bufsize@@: *<yes or no>*
Very small EDNS buffer sizes from queries are ignored.
- Default: yes (as described in the standard)
+ Default: yes (per :rfc:`6891`)
@@UAHL@unbound.conf@harden-large-queries@@: *<yes or no>*
@@ -1918,6 +2014,11 @@ These options are part of the **server:** clause.
turned into a network proxy, allowing remote access through the browser to
other parts of your private network.
+ The option removes resource records of types A, AAAA, SVCB and HTTPS
+ that match the filter.
+ Inside the SVCB and HTTPS records, the svcparams of type ipv4hint
+ and ipv6hint are checked for matches.
+
Some names can be allowed to contain your private addresses, by default all
the :ref:`local-data<unbound.conf.local-data>` that you configured is
allowed to, and you can specify additional names using
@@ -2306,6 +2407,12 @@ These options are part of the **server:** clause.
:ref:`serve-expired-client-timeout<unbound.conf.serve-expired-client-timeout>`
is also used then it is RECOMMENDED to use 30 as the value (:rfc:`8767`).
+ This value is capped by the original TTL of the record.
+ This means that records with higher original TTL than this value will use
+ this value for expired replies.
+ Records with lower original TTL than this value will use their original TTL
+ for expired replies.
+
Default: 30
@@ -2562,6 +2669,33 @@ These options are part of the **server:** clause.
redirected, so that users with web browsers cannot access sites with
suffix example.com.
+ A ``CNAME`` record can also be provided via local-data:
+
+ .. code-block:: text
+
+ local-zone: "example.com." redirect
+ local-data: "example.com. CNAME www.example.org."
+
+ In that case, the ``CNAME`` is resolved and the answer
+ includes resolved target records as well.
+ The ``CNAME`` record has to be with the zone name of the local-zone,
+ and there can be one CNAME, not more.
+ The ``CNAME`` record has to be at the zone apex of the
+ ``redirect`` zone, then it is used for redirection.
+ The resolution proceeds with upstream DNS resolution, and
+ that does not include the lookup in local zones.
+ So the record is not able to point in local zones, but it
+ can point to upstream DNS answers.
+
+ ``CNAME`` resolution is supported only in type ``redirect``
+ local-zone, and in type ``inform_redirect`` local-zone.
+
+ As different from ``CNAME`` records that are used elsewhere, in
+ the ``redirect`` type local-zone, it is supported that in the target
+ of the record a wildcard label gets expanded to the query name, with
+ for example: ``example.com. CNAME *.foo.net.`` gets expanded
+ to ``www.example.com. CNAME www.example.com.foo.net.``.
+
@@UAHL@unbound.conf.local-zone.type@inform@@
The query is answered normally, same as
:ref:`transparent<unbound.conf.local-zone.type.transparent>`.
@@ -2601,6 +2735,9 @@ These options are part of the **server:** clause.
@@UAHL@unbound.conf.local-zone.type@always_refuse@@
Like :ref:`refuse<unbound.conf.local-zone.type.refuse>`, but ignores
local data and refuses the query.
+ This type also blocks queries of type DS for the zone name.
+ That can break the DNSSEC chain of trust, but it is refused anyway.
+ The block for type DS assists in more completely blocking the zone.
@@UAHL@unbound.conf.local-zone.type@always_nxdomain@@
Like :ref:`static<unbound.conf.local-zone.type.static>`, but ignores
@@ -2808,7 +2945,7 @@ These options are part of the **server:** clause.
Configure local data shorthand for a PTR record with the reversed IPv4 or
IPv6 address and the host name.
For example ``"192.0.2.4 www.example.com"``.
- TTL can be inserted like this: ``"2001:DB8::4 7200 www.example.com"``
+ TTL can be inserted like this: ``"2001:db8::4 7200 www.example.com"``
@@UAHL@unbound.conf@local-zone-tag@@: *<zone> <"list of tags">*
@@ -2861,7 +2998,7 @@ These options are part of the **server:** clause.
:ref:`response-ip<unbound.conf.response-ip>` with action being to redirect
as specified by *<"resource record string">*.
*<"Resource record string">* is similar to that of
- :ref:`access-control-tag-action<unbound.conf.access-control-tag-action>`,
+ :ref:`access-control-tag-data<unbound.conf.access-control-tag-data>`,
but it must be of either AAAA, A or CNAME types.
If the *<IP-netblock>* is an IPv6/IPv4 prefix, the record must be AAAA/A
respectively, unless it is a CNAME (which can be used for both versions of
@@ -3123,6 +3260,10 @@ These options are part of the **server:** clause.
Hard limit on the number of times Unbound is allowed to restart a query
upon encountering a CNAME record.
Results in SERVFAIL when reached.
+ This applies to chained CNAME records but not sporadic CNAME records that
+ could be encountered in the lifetime of the query's resolution effort.
+ When a CNAME chain concludes, the counter keeping track of this limit is
+ reset.
Changing this value needs caution as it can allow long CNAME chains to be
accepted, where Unbound needs to verify (resolve) each link individually.
@@ -3147,6 +3288,15 @@ These options are part of the **server:** clause.
Default: 11
+@@UAHL@unbound.conf@iter-scrub-rrsig@@: *<number>*
+ Limit on the number of RRSIGs allowed for an RRset, from the iterator
+ scrubber.
+ This protects against an overly large number of RRSIGs.
+ Clips off the remainder of the RRSIG list at that point.
+
+ Default: 8
+
+
@@UAHL@unbound.conf@max-global-quota@@: *<number>*
Limit on the number of upstream queries sent out for an incoming query and
its subqueries from recursion.
@@ -3290,17 +3440,18 @@ These options are part of the **server:** clause.
.. _unbound.conf.remote:
Remote Control Options
-^^^^^^^^^^^^^^^^^^^^^^
+----------------------
+
+These options are part of the ``remote-control:`` section and are the
+declarations for the remote control facility.
-In the **remote-control:** clause are the declarations for the remote control
-facility.
If this is enabled, the :doc:`unbound-control(8)</manpages/unbound-control>`
utility can be used to send commands to the running Unbound server.
-The server uses these clauses to setup TLSv1 security for the connection.
-The :doc:`unbound-control(8)</manpages/unbound-control>` utility also reads the
-**remote-control:** section for options.
+The server uses these options to setup TLS security for the connection.
+The :doc:`unbound-control(8)</manpages/unbound-control>` utility also reads
+this ``remote-control:`` section for options.
To setup the correct self-signed certificates use the
-*unbound-control-setup(8)* utility.
+``unbound-control-setup(8)`` utility.
@@UAHL@unbound.conf.remote@control-enable@@: *<yes or no>*
@@ -3310,7 +3461,7 @@ To setup the correct self-signed certificates use the
Default: no
-@@UAHL@unbound.conf.remote@control-interface@@: *<IP address or interface name or path>*
+@@UAHL@unbound.conf.remote@control-interface@@: *<IP address or interface name[@port] or path>*
Give IPv4 or IPv6 addresses or local socket path to listen on for control
commands.
If an interface name is used instead of an IP address, the list of IP
@@ -3392,9 +3543,11 @@ To setup the correct self-signed certificates use the
.. _unbound.conf.stub:
Stub Zone Options
-^^^^^^^^^^^^^^^^^
+-----------------
+
+These options are part of the ``stub-zone:`` section.
-There may be multiple **stub-zone:** clauses.
+There may be multiple ``stub-zone:`` sections.
Each with a :ref:`name<unbound.conf.stub.name>` and zero or more hostnames or
IP addresses.
For the stub zone this list of nameservers is used.
@@ -3427,9 +3580,10 @@ Consider adding :ref:`server<unbound.conf.server>` statements for
:ref:`domain-insecure<unbound.conf.domain-insecure>` and for
:ref:`local-zone: \<name\> nodefault<unbound.conf.local-zone.type.nodefault>`
for the zone if it is a locally served zone.
-The insecure clause stops DNSSEC from invalidating the zone.
+The :ref:`domain-insecure<unbound.conf.domain-insecure>` option stops DNSSEC
+from invalidating the zone.
The :ref:`local-zone: nodefault<unbound.conf.local-zone.type.nodefault>` (or
-:ref:`transparent<unbound.conf.local-zone.type.transparent>`) clause makes the
+:ref:`transparent<unbound.conf.local-zone.type.transparent>`) option makes the
(reverse-) zone bypass Unbound's filtering of :rfc:`1918` zones.
@@ -3442,6 +3596,19 @@ The :ref:`local-zone: nodefault<unbound.conf.local-zone.type.nodefault>` (or
Name of stub zone nameserver.
Is itself resolved before it is used.
+ .. caution::
+ If the domain (or a subdomain) from this zone is used as the host, it
+ will unavoidably introduce a circular dependency on retrieving the IP
+ addresses of the name server.
+ In that case, it is suggested to use
+ :ref:`stub-addr<unbound.conf.stub.stub-addr>` instead.
+ Alternatively,
+ :ref:`stub-first: yes<unbound.conf.stub.stub-first>` can also work
+ around the circular dependency by trying resolution outside of this
+ zone.
+ However this has the caveat that it would allow escaping this zone when
+ any resolution attempt fails within this zone.
+
To use a non-default port for DNS communication append ``'@'`` with the
port number.
@@ -3479,9 +3646,12 @@ The :ref:`local-zone: nodefault<unbound.conf.local-zone.type.nodefault>` (or
@@UAHL@unbound.conf.stub@stub-first@@: *<yes or no>*
- If enabled, a query is attempted without the stub clause if it fails.
+ If enabled, a query is attempted without this stub section if it fails.
The data could not be retrieved and would have caused SERVFAIL because the
- servers are unreachable, instead it is tried without this clause.
+ servers are unreachable, instead it is tried without this stub section.
+ This can lead to using less specific configured forward/stub/auth zones if
+ any, or end up to otherwise normal recursive resolution for that particular
+ query.
Default: no
@@ -3513,9 +3683,11 @@ The :ref:`local-zone: nodefault<unbound.conf.local-zone.type.nodefault>` (or
.. _unbound.conf.forward:
Forward Zone Options
-^^^^^^^^^^^^^^^^^^^^
+--------------------
-There may be multiple **forward-zone:** clauses.
+These options are part of the ``forward-zone:`` section.
+
+There may be multiple ``forward-zone:`` sections.
Each with a :ref:`name<unbound.conf.forward.name>` and zero or more hostnames
or IP addresses.
For the forward zone this list of nameservers is used to forward the queries
@@ -3545,6 +3717,19 @@ cache).
Name of server to forward to.
Is itself resolved before it is used.
+ .. caution::
+ If the domain (or a subdomain) from this zone is used as the host, it
+ will unavoidably introduce a circular dependency on retrieving the IP
+ addresses of the name server.
+ In that case, it is suggested to use
+ :ref:`forward-addr<unbound.conf.forward.forward-addr>` instead.
+ Alternatively,
+ :ref:`forward-first: yes<unbound.conf.forward.forward-first>` can also
+ work around the circular dependency by trying resolution outside of
+ this zone.
+ However this has the caveat that it would allow escaping this zone when
+ any resolution attempt fails within this zone.
+
To use a non-default port for DNS communication append ``'@'`` with the
port number.
@@ -3579,9 +3764,11 @@ cache).
@@UAHL@unbound.conf.forward@forward-first@@: *<yes or no>*
- If a forwarded query is met with a SERVFAIL error, and this option is
- enabled, Unbound will fall back to normal recursive resolution for this
- query as if no query forwarding had been specified.
+ If a forwarded query is met with a SERVFAIL error and this option is
+ enabled Unbound will fall back to less specific resolution.
+ This can lead to using less specific configured forward/stub/auth zones if
+ any, or end up to otherwise normal recursive resolution for that particular
+ query.
Default: no
@@ -3618,12 +3805,14 @@ cache).
.. _unbound.conf.auth:
Authority Zone Options
-^^^^^^^^^^^^^^^^^^^^^^
+----------------------
+
+These options are part of the ``auth-zone:`` section.
-Authority zones are configured with **auth-zone:**, and each one must have a
+Authority zones are configured with ``auth-zone:``, and each one must have a
:ref:`name<unbound.conf.auth.name>`.
-There can be multiple ones, by listing multiple auth-zone clauses, each with a
-different name, pertaining to that part of the namespace.
+There can be multiple ones, by listing multiple ``auth-zone`` section clauses,
+each with a different name, pertaining to that part of the namespace.
The authority zone with the name closest to the name looked up is used.
Authority zones can be processed on two distinct, non-exclusive, configurable
stages.
@@ -3654,7 +3843,7 @@ consult the local zone data while resolving.
In this case, the aforementioned CNAME example will result in a thoroughly
resolved answer.
-Authority zones can be read from zonefile.
+Authority zones can be read from a zonefile.
And can be kept updated via AXFR and IXFR.
After update the zonefile is rewritten.
The update mechanism uses the SOA timer values and performs SOA UDP queries to
@@ -3690,9 +3879,11 @@ fallback activates to fetch from the upstream instead of the SERVFAIL.
:ref:`url<unbound.conf.auth.url>` to download the zonefile as a text file
from a webserver that would work.
- If you specify the hostname, you cannot use the domain from the zonefile,
- because it may not have that when retrieving that data, instead use a plain
- IP address to avoid a circular dependency on retrieving that IP address.
+ .. caution::
+ If you specify the hostname, you cannot use the domain from the
+ zonefile, because it may not have that when retrieving that data,
+ instead use a plain IP address to avoid a circular dependency on
+ retrieving that IP address.
@@UAHL@unbound.conf.auth@master@@: *<IP address or host name>*
@@ -3823,18 +4014,20 @@ fallback activates to fetch from the upstream instead of the SERVFAIL.
.. _unbound.conf.view:
View Options
-^^^^^^^^^^^^
+------------
-There may be multiple **view:** clauses.
+These options are part of the ``view:`` section.
+
+There may be multiple ``view:`` sections.
Each with a :ref:`name<unbound.conf.view.name>` and zero or more
:ref:`local-zone<unbound.conf.view.local-zone>` and
-:ref:`local-data<unbound.conf.view.local-data>` attributes.
+:ref:`local-data<unbound.conf.view.local-data>` options.
Views can also contain :ref:`view-first<unbound.conf.view.view-first>`,
:ref:`response-ip<unbound.conf.response-ip>`,
:ref:`response-ip-data<unbound.conf.response-ip-data>` and
-:ref:`local-data-ptr<unbound.conf.view.local-data-ptr>` attributes.
+:ref:`local-data-ptr<unbound.conf.view.local-data-ptr>` options.
View can be mapped to requests by specifying the view name in an
-:ref:`access-control-view<unbound.conf.access-control-view>` attribute.
+:ref:`access-control-view<unbound.conf.access-control-view>` option.
Options from matching views will override global options.
Global options will be used if no matching view is found, or when the matching
view does not have the option specified.
@@ -3844,7 +4037,7 @@ view does not have the option specified.
Name of the view.
Must be unique.
This name is used in the
- :ref:`access-control-view<unbound.conf.access-control-view>` attribute.
+ :ref:`access-control-view<unbound.conf.access-control-view>` option.
@@UAHL@unbound.conf.view@local-zone@@: *<zone> <type>*
@@ -3873,6 +4066,20 @@ view does not have the option specified.
:ref:`local-data-ptr<unbound.conf.local-data-ptr>` elements.
+@@UAHL@unbound.conf.view@response-ip@@: *<IP-netblock> <action>*
+ This requires use of the ``respip`` module.
+
+ Similar to :ref:`response-ip<unbound.conf.response-ip>` but
+ only applies to this view.
+
+
+@@UAHL@unbound.conf.view@response-ip-data@@: *<IP-netblock> <"resource record string">*
+ This requires use of the ``respip`` module.
+
+ Similar to :ref:`response-ip-data<unbound.conf.response-ip-data>` but
+ only applies to this view.
+
+
@@UAHL@unbound.conf.view@view-first@@: *<yes or no>*
If enabled, it attempts to use the global
:ref:`local-zone<unbound.conf.local-zone>` and
@@ -3881,10 +4088,14 @@ view does not have the option specified.
Default: no
+.. _unbound.conf.python:
+
Python Module Options
-^^^^^^^^^^^^^^^^^^^^^
+---------------------
-The **python:** clause gives the settings for the *python(1)* script module.
+These options are part of the ``python:`` section.
+
+The ``python:`` section gives the settings for the *python(1)* script module.
This module acts like the iterator and validator modules do, on queries and
answers.
To enable the script module it has to be compiled into the daemon, and the word
@@ -3907,15 +4118,19 @@ path to the working directory.
Repeat this option for every python module instance added to the
:ref:`module-config<unbound.conf.module-config>` option.
+.. _unbound.conf.dynlib:
+
Dynamic Library Module Options
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+------------------------------
+
+These options are part of the ``dynlib:`` section.
-The **dynlib:** clause gives the settings for the ``dynlib`` module.
+The ``dynlib:`` section gives the settings for the ``dynlib`` module.
This module is only a very small wrapper that allows dynamic modules to be
loaded on runtime instead of being compiled into the application.
To enable the dynlib module it has to be compiled into the daemon, and the word
``dynlib`` has to be put in the
-:ref:`module-config<unbound.conf.module-config>` attribute.
+:ref:`module-config<unbound.conf.module-config>` option.
Multiple instances of dynamic libraries are supported by adding the word
``dynlib`` more than once.
@@ -3931,7 +4146,9 @@ directory.
:ref:`module-config<unbound.conf.module-config>` option.
DNS64 Module Options
-^^^^^^^^^^^^^^^^^^^^
+--------------------
+
+These options are part of the ``server:`` section.
The ``dns64`` module must be configured in the
:ref:`module-config<unbound.conf.module-config>` directive, e.g.:
@@ -3943,7 +4160,11 @@ The ``dns64`` module must be configured in the
and be compiled into the daemon to be enabled.
.. note::
- These settings go in the :ref:`server:<unbound.conf.server>` section.
+ If combining the ``respip`` and ``dns64`` modules, the ``respip`` module
+ needs to appear before the ``dns64`` module in the
+ :ref:`module-config<unbound.conf.module-config>`
+ configuration option so that response IP and/or RPZ feeds can properly
+ filter responses regardless of DNS64 synthesis.
@@UAHL@unbound.conf.dns64@dns64-prefix@@: *<IPv6 prefix>*
@@ -3969,13 +4190,13 @@ and be compiled into the daemon to be enabled.
per line.
Applies also to names underneath the name given.
-NAT64 Operation
-^^^^^^^^^^^^^^^
+NAT64 Options
+-------------
+
+These options are part of the ``server:`` section.
NAT64 operation allows using a NAT64 prefix for outbound requests to IPv4-only
servers.
-It is controlled by two options in the
-:ref:`server:<unbound.conf.server>` section:
@@UAHL@unbound.conf.nat64@do-nat64@@: *<yes or no>*
@@ -3990,12 +4211,27 @@ It is controlled by two options in the
Use a specific NAT64 prefix to reach IPv4-only servers.
The prefix length must be one of /32, /40, /48, /56, /64 or /96.
+ The NAT64 prefix is allowed by the
+ :ref:`do-not-query-address<unbound.conf.do-not-query-address>` option,
+ so that there is a clear outcome of addresses in both; the NAT64 prefix
+ is allowed.
+ The IPv4 address could be filtered by the
+ :ref:`do-not-query-address<unbound.conf.do-not-query-address>` option,
+ if needed.
+ Allowing the NAT64 prefix is useful when using do-not-query-address
+ for a cluster of machines that is IPv6-only and uses NAT64, but does
+ not have internet access.
+
Default: 64:ff9b::/96 (same as :ref:`dns64-prefix<unbound.conf.dns64.dns64-prefix>`)
+.. _unbound.conf.dnscrypt:
+
DNSCrypt Options
-^^^^^^^^^^^^^^^^
+----------------
+
+These options are part of the ``dnscrypt:`` section.
-The **dnscrypt:** clause gives the settings of the dnscrypt channel.
+The ``dnscrypt:`` section gives the settings of the dnscrypt channel.
While those options are available, they are only meaningful if Unbound was
compiled with ``--enable-dnscrypt``.
Currently certificate and secret/public keys cannot be generated by Unbound.
@@ -4102,7 +4338,9 @@ https://github.com/cofyc/dnscrypt-wrapper/blob/master/README.md#usage
Default: (unconfigured)
EDNS Client Subnet Module Options
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+---------------------------------
+
+These options are part of the ``server:`` section.
The ECS module must be configured in the
:ref:`module-config<unbound.conf.module-config>` directive, e.g.:
@@ -4113,9 +4351,6 @@ The ECS module must be configured in the
and be compiled into the daemon to be enabled.
-.. note::
- These settings go in the :ref:`server:<unbound.conf.server>` section.
-
If the destination address is allowed in the configuration Unbound will add the
EDNS0 option to the query containing the relevant part of the client's address.
When an answer contains the ECS option the response and the option are placed
@@ -4230,7 +4465,9 @@ This module does not interact with the
Default: 100
Opportunistic IPsec Support Module Options
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+------------------------------------------
+
+These options are part of the ``server:`` section.
The IPsec module must be configured in the
:ref:`module-config<unbound.conf.module-config>` directive, e.g.:
@@ -4241,9 +4478,6 @@ The IPsec module must be configured in the
and be compiled into Unbound by using ``--enable-ipsecmod`` to be enabled.
-.. note::
- These settings go in the :ref:`server:<unbound.conf.server>` section.
-
When Unbound receives an A/AAAA query that is not in the cache and finds a
valid answer, it will withhold returning the answer and instead will generate
an IPSECKEY subquery for the same domain name.
@@ -4333,8 +4567,12 @@ answer given from cache is still relevant for opportunistic IPsec.
@@UAHL@unbound.conf@ipsecmod-whitelist@@: *<domain>*
Alternate syntax for :ref:`ipsecmod-allow<unbound.conf.ipsecmod-allow>`.
+.. _unbound.conf.cachedb:
+
Cache DB Module Options
-^^^^^^^^^^^^^^^^^^^^^^^
+-----------------------
+
+These options are part of the ``cachedb:`` section.
The Cache DB module must be configured in the
:ref:`module-config<unbound.conf.module-config>` directive, e.g.:
@@ -4386,7 +4624,7 @@ If connection close or timeout happens too often, Unbound will be effectively
unusable with this backend.
It's the administrator's responsibility to make the assumption hold.
-The **cachedb:** clause gives custom settings of the cache DB module.
+The ``cachedb:`` section gives custom settings of the cache DB module.
@@UAHL@unbound.conf.cachedb@backend@@: *<backend name>*
@@ -4434,7 +4672,7 @@ The **cachedb:** clause gives custom settings of the cache DB module.
Default: yes
-The following **cachedb:** options are specific to the ``redis`` backend.
+The following ``cachedb:`` options are specific to the ``redis`` backend.
@@UAHL@unbound.conf.cachedb@redis-server-host@@: *<server address or name>*
@@ -4593,11 +4831,14 @@ The following **cachedb:** options are specific to the ``redis`` backend.
.. _unbound.conf.dnstap:
-DNSTAP Logging Options
-^^^^^^^^^^^^^^^^^^^^^^
+DNSTAP Options
+--------------
-DNSTAP support, when compiled in by using ``--enable-dnstap``, is enabled in
-the **dnstap:** section.
+These options are part of the ``dnstap:`` section.
+
+DNSTAP is a flexible, structured binary log format for DNS software.
+When compiled in by using ``--enable-dnstap``, it can be enabled in the
+``dnstap:`` section.
This starts an extra thread (when compiled with threading) that writes the log
information to the destination.
If Unbound is compiled without threading it does not spawn a thread, but
@@ -4747,15 +4988,18 @@ connects per-process to the destination.
.. _unbound.conf.rpz:
Response Policy Zone Options
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+----------------------------
+
+These options are part of the ``rpz:`` section.
-Response Policy Zones are configured with **rpz:**, and each one must have a
-:ref:`name<unbound.conf.rpz.name>` attribute.
-There can be multiple ones, by listing multiple RPZ clauses, each with a
-different name.
-RPZ clauses are applied in order of configuration and any match from an earlier
-RPZ zone will terminate the RPZ lookup.
+Response Policy Zones are configured with ``rpz:`` section clauses, and each
+one must have a :ref:`name<unbound.conf.rpz.name>` option.
+There can be multiple ones, by listing multiple ``rpz:`` section clauses, each
+with a different name.
+RPZ sections are applied in order of configuration and any match from an
+earlier RPZ zone will terminate the RPZ lookup.
Note that a PASSTHRU action is still considered a match.
+
The respip module needs to be added to the
:ref:`module-config<unbound.conf.module-config>`, e.g.:
@@ -4763,6 +5007,13 @@ The respip module needs to be added to the
module-config: "respip validator iterator"
+.. note::
+ If combining the ``respip`` and ``dns64`` modules, the ``respip`` module
+ needs to appear before the ``dns64`` module in the
+ :ref:`module-config<unbound.conf.module-config>`
+ configuration option so that response IP and/or RPZ feeds can properly
+ filter responses regardless of DNS64 synthesis.
+
QNAME, Response IP Address, nsdname, nsip and clientip triggers are supported.
Supported actions are: NXDOMAIN, NODATA, PASSTHRU, DROP, Local Data, tcp-only
and drop.
@@ -4814,9 +5065,6 @@ The actions are specified with the record on the right
Other records like AAAA, TXT and other CNAMEs (not rpz-..) can also be used to
answer queries with that content.
-The RPZ zones can be configured in the config file with these settings in the
-**rpz:** block.
-
@@UAHL@unbound.conf.rpz@name@@: *<zone name>*
Name of the authority zone.
@@ -4932,7 +5180,7 @@ The RPZ zones can be configured in the config file with these settings in the
@@UAHL@unbound.conf.rpz@tags@@: *"<list of tags>"*
- Limit the policies from this RPZ clause to clients with a matching tag.
+ Limit the policies from this RPZ section to clients with a matching tag.
Tags need to be defined in :ref:`define-tag<unbound.conf.define-tag>` and
can be assigned to client addresses using
@@ -4940,7 +5188,7 @@ The RPZ zones can be configured in the config file with these settings in the
:ref:`interface-tag<unbound.conf.interface-tag>`.
Enclose list of tags in quotes (``""``) and put spaces between tags.
- If no tags are specified the policies from this clause will be applied for
+ If no tags are specified the policies from this section will be applied for
all clients.
Memory Control Example
diff --git a/doc/unbound.rst b/doc/unbound.rst
index eb36aa0cad3b..fc3dc87ee079 100644
--- a/doc/unbound.rst
+++ b/doc/unbound.rst
@@ -42,7 +42,7 @@ unbound(8)
Synopsis
--------
-**unbound** [``-hdpv``] [``-c <cfgfile>``]
+**unbound** [``-hdpVv``] [``-c <cfgfile>``]
Description
-----------
diff --git a/edns-subnet/subnetmod.c b/edns-subnet/subnetmod.c
index 88310a785d7a..587839faa6df 100644
--- a/edns-subnet/subnetmod.c
+++ b/edns-subnet/subnetmod.c
@@ -70,6 +70,7 @@ subnet_data_delete(void *d, void *ATTR_UNUSED(arg))
r = (struct subnet_msg_cache_data*)d;
addrtree_delete(r->tree4);
addrtree_delete(r->tree6);
+ free(r->reason_fail);
free(r);
}
@@ -84,6 +85,8 @@ msg_cache_sizefunc(void *k, void *d)
+ q->key.qname_len + lock_get_mem(&q->entry.lock);
s += addrtree_size(r->tree4);
s += addrtree_size(r->tree6);
+ if(r->reason_fail)
+ s += strlen(r->reason_fail)+1;
return s;
}
@@ -162,8 +165,15 @@ int ecs_whitelist_check(struct query_info* qinfo,
if(!ecs_is_whitelisted(sn_env->whitelist,
addr, addrlen, qinfo->qname, qinfo->qname_len,
qinfo->qclass)) {
- verbose(VERB_ALGO, "subnet store subquery global, name and addr have no subnet treatment.");
- qstate->no_cache_store = 0;
+ /* The stub or forward can have no_cache set.*/
+ if(iter_stub_fwd_no_cache(qstate, &qstate->qinfo, NULL, NULL, NULL, 0)) {
+ verbose(VERB_ALGO, "subnet subquery is not stored globally, stuborfwd is no_cache");
+ } else {
+ verbose(VERB_ALGO, "subnet store subquery global, name and addr have no subnet treatment.%s",
+ (sq->started_no_cache_store?
+ " But the subnet module was started with no_cache_store for the super query, and that is still applied to this query":""));
+ qstate->no_cache_store = sq->started_no_cache_store;
+ }
}
}
return 1;
@@ -193,12 +203,18 @@ int ecs_whitelist_check(struct query_info* qinfo,
if(sq->ecs_server_out.subnet_source_mask == 0) {
sq->subnet_sent_no_subnet = 1;
sq->subnet_sent = 0;
+ /* The result should end up in subnet cache,
+ * not in global cache. */
+ qstate->no_cache_store = 1;
return 1;
}
subnet_ecs_opt_list_append(&sq->ecs_server_out,
&qstate->edns_opts_back_out, qstate, region);
}
sq->subnet_sent = 1;
+ /* Do not store servfails in global cache, since the subnet
+ * option is sent out. */
+ qstate->no_cache_store = 1;
}
else {
/* Outgoing ECS option is set, but we don't want to sent it to
@@ -420,6 +436,35 @@ update_cache(struct module_qstate *qstate, int id)
}
/* lru_entry->lock is locked regardless of how we got here,
* either from the slabhash_lookup, or above in the new allocated */
+ if(!qstate->return_msg && qstate->error_response_cache) {
+ struct subnet_msg_cache_data *data =
+ (struct subnet_msg_cache_data*)lru_entry->data;
+ data->ttl_servfail = *qstate->env->now + NORR_TTL;
+ data->ede_fail = errinf_to_reason_bogus(qstate);
+ diff_size = (data->reason_fail?strlen(data->reason_fail)+1:0);
+ if(qstate->errinf) {
+ char* str = errinf_to_str_misc(qstate);
+ free(data->reason_fail);
+ data->reason_fail = NULL;
+ if(str)
+ data->reason_fail = strdup(str);
+ }
+ diff_size = (data->reason_fail?strlen(data->reason_fail)+1:0)
+ - diff_size;
+ lock_rw_unlock(&lru_entry->lock);
+ if (need_to_insert) {
+ slabhash_insert(subnet_msg_cache, h, lru_entry,
+ lru_entry->data, NULL);
+ } else {
+ slabhash_update_space_used(subnet_msg_cache, h, NULL,
+ diff_size);
+ }
+ return;
+ }
+ if(!qstate->return_msg) {
+ lock_rw_unlock(&lru_entry->lock);
+ return;
+ }
/* Step 2, find the correct tree */
if (!(tree = get_tree(lru_entry->data, edns, sne, qstate->env->cfg))) {
lock_rw_unlock(&lru_entry->lock);
@@ -463,6 +508,21 @@ update_cache(struct module_qstate *qstate, int id)
}
}
+/** See if there is a stored servfail, returns true if so, and sets reply. */
+static int
+lookup_check_servfail(struct module_qstate *qstate,
+ struct subnet_msg_cache_data *data)
+{
+ struct module_env *env = qstate->env;
+ if(!data)
+ return 0;
+ if(!data->ttl_servfail || TTL_IS_EXPIRED(data->ttl_servfail, *env->now))
+ return 0;
+ qstate->return_rcode = LDNS_RCODE_SERVFAIL;
+ errinf_ede(qstate, data->reason_fail, data->ede_fail);
+ return 1;
+}
+
/** Lookup in cache and reply true iff reply is sent. */
static int
lookup_and_reply(struct module_qstate *qstate, int id, struct subnet_qstate *sq, int prefetch)
@@ -476,6 +536,8 @@ lookup_and_reply(struct module_qstate *qstate, int id, struct subnet_qstate *sq,
struct addrtree *tree;
struct addrnode *node;
uint8_t scope;
+ int must_validate = (!(qstate->query_flags&BIT_CD)
+ || qstate->env->cfg->ignore_cd) && qstate->env->need_to_validate;
memset(&sq->ecs_client_out, 0, sizeof(sq->ecs_client_out));
@@ -489,12 +551,20 @@ lookup_and_reply(struct module_qstate *qstate, int id, struct subnet_qstate *sq,
tree = (ecs->subnet_addr_fam == EDNSSUBNET_ADDRFAM_IP4)?
data->tree4 : data->tree6;
if (!tree) { /* qinfo in cache but not for this family */
+ if(lookup_check_servfail(qstate, data)) {
+ lock_rw_unlock(&e->lock);
+ return 1;
+ }
lock_rw_unlock(&e->lock);
return 0;
}
node = addrtree_find(tree, (addrkey_t*)ecs->subnet_addr,
ecs->subnet_source_mask, *env->now);
if (!node) { /* plain old cache miss */
+ if(lookup_check_servfail(qstate, data)) {
+ lock_rw_unlock(&e->lock);
+ return 1;
+ }
lock_rw_unlock(&e->lock);
return 0;
}
@@ -503,12 +573,24 @@ lookup_and_reply(struct module_qstate *qstate, int id, struct subnet_qstate *sq,
(struct reply_info *)node->elem, qstate->region, *env->now, 0,
env->scratch);
scope = (uint8_t)node->scope;
- lock_rw_unlock(&e->lock);
if (!qstate->return_msg) { /* Failed allocation or expired TTL */
+ if(lookup_check_servfail(qstate, data)) {
+ lock_rw_unlock(&e->lock);
+ return 1;
+ }
+ lock_rw_unlock(&e->lock);
return 0;
}
-
+ lock_rw_unlock(&e->lock);
+ if(qstate->return_msg->rep->security == sec_status_unchecked
+ && must_validate) {
+ /* The message has to be validated first. */
+ verbose(VERB_ALGO, "subnet: unchecked cache entry needs "
+ "validation");
+ return 0;
+ }
+
if (sq->subnet_downstream) { /* relay to interested client */
sq->ecs_client_out.subnet_scope_mask = scope;
sq->ecs_client_out.subnet_addr_fam = ecs->subnet_addr_fam;
@@ -563,12 +645,15 @@ generate_sub_request(struct module_qstate *qstate, int id, struct subnet_qstate*
qflags |= BIT_RD;
if((qstate->query_flags & BIT_CD)!=0) {
qflags |= BIT_CD;
- valrec = 1;
+ /* The valrec is left off. Leave out: valrec = 1;
+ * So that the cache is protected with DNSSEC validation.
+ * Just like the global cache. DNSSEC validation is performed
+ * regardless of the setting of the querier's CD flag. */
}
fptr_ok(fptr_whitelist_modenv_attach_sub(qstate->env->attach_sub));
- if(!(*qstate->env->attach_sub)(qstate, &qinf, qflags, prime, valrec,
- &subq)) {
+ if(!(*qstate->env->attach_sub)(qstate, &qinf, qstate->client_info,
+ qflags, prime, valrec, &subq)) {
return 0;
}
if(subq) {
@@ -580,6 +665,7 @@ generate_sub_request(struct module_qstate *qstate, int id, struct subnet_qstate*
}
subsq = (struct subnet_qstate*)subq->minfo[id];
subsq->is_subquery_nonsubnet = 1;
+ subsq->started_no_cache_store = sq->started_no_cache_store;
/* When the client asks 0.0.0.0/0 and the name is not treated
* as subnet, it is to be stored in the global cache.
@@ -632,6 +718,12 @@ eval_response(struct module_qstate *qstate, int id, struct subnet_qstate *sq)
/* already an answer and its not a message, but retain
* the actual rcode, instead of module_error, so send
* module_finished */
+ if(qstate->error_response_cache) {
+ verbose(VERB_ALGO, "subnet: store error response");
+ lock_rw_wrlock(&sne->biglock);
+ update_cache(qstate, id);
+ lock_rw_unlock(&sne->biglock);
+ }
return module_finished;
}
@@ -881,9 +973,11 @@ ecs_edns_back_parsed(struct module_qstate* qstate, int id,
sq->max_scope = sq->ecs_server_in.subnet_scope_mask;
} else if(sq->subnet_sent_no_subnet) {
/* The answer can be stored as scope 0, not in global cache. */
+ /* This was already set in ecs_whitelist_check */
qstate->no_cache_store = 1;
} else if(sq->subnet_sent) {
/* Need another query to be able to store in global cache. */
+ /* This was already set in ecs_whitelist_check */
qstate->no_cache_store = 1;
}
diff --git a/edns-subnet/subnetmod.h b/edns-subnet/subnetmod.h
index d2d9e957f0f2..5130f781b71c 100644
--- a/edns-subnet/subnetmod.h
+++ b/edns-subnet/subnetmod.h
@@ -69,8 +69,18 @@ struct subnet_env {
};
struct subnet_msg_cache_data {
+ /** Tree for nodes with IPv4 subnets. */
struct addrtree* tree4;
+ /** Tree for nodes with IPv6 subnets. */
struct addrtree* tree6;
+ /** If servfail is stored, for how long. Abs time in seconds.
+ * This protects against too much recusion on the item when
+ * resolution fails, for a couple of seconds. */
+ time_t ttl_servfail;
+ /** servfail ede */
+ sldns_ede_code ede_fail;
+ /** servfail reason */
+ char* reason_fail;
};
struct subnet_qstate {
diff --git a/install-sh b/install-sh
index f3a50b3064ed..ea4c8234c41a 100755
--- a/install-sh
+++ b/install-sh
@@ -1,7 +1,7 @@
#!/usr/bin/sh
# install - install a program, script, or datafile
-scriptversion=2024-06-19.01; # UTC
+scriptversion=2013-12-25.23; # UTC
# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
@@ -69,11 +69,6 @@ posix_mkdir=
# Desired mode of installed file.
mode=0755
-# Create dirs (including intermediate dirs) using mode 755.
-# This is like GNU 'install' as of coreutils 8.32 (2020).
-mkdir_umask=22
-
-backupsuffix=
chgrpcmd=
chmodcmd=$chmodprog
chowncmd=
@@ -104,29 +99,19 @@ Options:
--version display version info and exit.
-c (ignored)
- -C install only if different (preserve data modification time)
+ -C install only if different (preserve the last data modification time)
-d create directories instead of installing files.
-g GROUP $chgrpprog installed files to GROUP.
-m MODE $chmodprog installed files to MODE.
-o USER $chownprog installed files to USER.
- -p pass -p to $cpprog.
-s $stripprog installed files.
- -S SUFFIX attempt to back up existing files, with suffix SUFFIX.
-t DIRECTORY install into DIRECTORY.
-T report an error if DSTFILE is a directory.
Environment variables override the default commands:
CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
RMPROG STRIPPROG
-
-By default, rm is invoked with -f; when overridden with RMPROG,
-it's up to you to specify -f if you want it.
-
-If -S is not specified, no backups are attempted.
-
-Report bugs to <bug-automake@gnu.org>.
-GNU Automake home page: <https://www.gnu.org/software/automake/>.
-General help using GNU software: <https://www.gnu.org/gethelp/>."
+"
while test $# -ne 0; do
case $1 in
@@ -152,13 +137,8 @@ while test $# -ne 0; do
-o) chowncmd="$chownprog $2"
shift;;
- -p) cpprog="$cpprog -p";;
-
-s) stripcmd=$stripprog;;
- -S) backupsuffix="$2"
- shift;;
-
-t)
is_target_a_directory=always
dst_arg=$2
@@ -170,7 +150,7 @@ while test $# -ne 0; do
-T) is_target_a_directory=never;;
- --version) echo "$0 (GNU Automake) $scriptversion"; exit $?;;
+ --version) echo "$0 $scriptversion"; exit $?;;
--) shift
break;;
@@ -275,10 +255,6 @@ do
dstdir=$dst
test -d "$dstdir"
dstdir_status=$?
- # Don't chown directories that already exist.
- if test $dstdir_status = 0; then
- chowncmd=""
- fi
else
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command
@@ -295,18 +271,15 @@ do
fi
dst=$dst_arg
- # If destination is a directory, append the input filename.
+ # If destination is a directory, append the input filename; won't work
+ # if double slashes aren't ignored.
if test -d "$dst"; then
if test "$is_target_a_directory" = never; then
echo "$0: $dst_arg: Is a directory" >&2
exit 1
fi
dstdir=$dst
- dstbase=`basename "$src"`
- case $dst in
- */) dst=$dst$dstbase;;
- *) dst=$dst/$dstbase;;
- esac
+ dst=$dstdir/`basename "$src"`
dstdir_status=0
else
dstdir=`dirname "$dst"`
@@ -315,16 +288,27 @@ do
fi
fi
- case $dstdir in
- */) dstdirslash=$dstdir;;
- *) dstdirslash=$dstdir/;;
- esac
-
obsolete_mkdir_used=false
if test $dstdir_status != 0; then
case $posix_mkdir in
'')
+ # Create intermediate dirs using mode 755 as modified by the umask.
+ # This is like FreeBSD 'install' as of 1997-10-28.
+ umask=`umask`
+ case $stripcmd.$umask in
+ # Optimize common cases.
+ *[2367][2367]) mkdir_umask=$umask;;
+ .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
+
+ *[0-7])
+ mkdir_umask=`expr $umask + 22 \
+ - $umask % 100 % 40 + $umask % 20 \
+ - $umask % 10 % 4 + $umask % 2
+ `;;
+ *) mkdir_umask=$umask,go-w;;
+ esac
+
# With -d, create the new directory with the user-specified mode.
# Otherwise, rely on $mkdir_umask.
if test -n "$dir_arg"; then
@@ -334,49 +318,43 @@ do
fi
posix_mkdir=false
- # The $RANDOM variable is not portable (e.g., dash). Use it
- # here however when possible just to lower collision chance.
- tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
-
- trap '
- ret=$?
- rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null
- exit $ret
- ' 0
+ case $umask in
+ *[123567][0-7][0-7])
+ # POSIX mkdir -p sets u+wx bits regardless of umask, which
+ # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
+ ;;
+ *)
+ tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
- # Because "mkdir -p" follows existing symlinks and we likely work
- # directly in world-writable /tmp, make sure that the '$tmpdir'
- # directory is successfully created first before we actually test
- # 'mkdir -p'.
- if (umask $mkdir_umask &&
- $mkdirprog $mkdir_mode "$tmpdir" &&
- exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
- then
- if test -z "$dir_arg" || {
- # Check for POSIX incompatibility with -m.
- # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
- # other-writable bit of parent directory when it shouldn't.
- # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
- test_tmpdir="$tmpdir/a"
- ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
- case $ls_ld_tmpdir in
- d????-?r-*) different_mode=700;;
- d????-?--*) different_mode=755;;
- *) false;;
- esac &&
- $mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
- ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
- test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
- }
- }
- then posix_mkdir=:
- fi
- rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
- else
- # Remove any dirs left behind by ancient mkdir implementations.
- rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
- fi
- trap '' 0;;
+ if (umask $mkdir_umask &&
+ exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
+ then
+ if test -z "$dir_arg" || {
+ # Check for POSIX incompatibilities with -m.
+ # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
+ # other-writable bit of parent directory when it shouldn't.
+ # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
+ ls_ld_tmpdir=`ls -ld "$tmpdir"`
+ case $ls_ld_tmpdir in
+ d????-?r-*) different_mode=700;;
+ d????-?--*) different_mode=755;;
+ *) false;;
+ esac &&
+ $mkdirprog -m$different_mode -p -- "$tmpdir" && {
+ ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
+ test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+ }
+ }
+ then posix_mkdir=:
+ fi
+ rmdir "$tmpdir/d" "$tmpdir"
+ else
+ # Remove any dirs left behind by ancient mkdir implementations.
+ rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
+ fi
+ trap '' 0;;
+ esac;;
esac
if
@@ -387,7 +365,7 @@ do
then :
else
- # mkdir does not conform to POSIX,
+ # The umask is ridiculous, or mkdir does not conform to POSIX,
# or it failed possibly due to a race condition. Create the
# directory the slow way, step by step, checking for races as we go.
@@ -416,7 +394,7 @@ do
prefixes=
else
if $posix_mkdir; then
- (umask $mkdir_umask &&
+ (umask=$mkdir_umask &&
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
# Don't fail if two instances are running concurrently.
test -d "$prefix" || exit 1
@@ -449,25 +427,14 @@ do
else
# Make a couple of temp file names in the proper directory.
- dsttmp=${dstdirslash}_inst.$$_
- rmtmp=${dstdirslash}_rm.$$_
+ dsttmp=$dstdir/_inst.$$_
+ rmtmp=$dstdir/_rm.$$_
# Trap to clean up those temp files at exit.
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
# Copy the file name to the temp name.
- (umask $cp_umask &&
- { test -z "$stripcmd" || {
- # Create $dsttmp read-write so that cp doesn't create it read-only,
- # which would cause strip to fail.
- if test -z "$doit"; then
- : >"$dsttmp" # No need to fork-exec 'touch'.
- else
- $doit touch "$dsttmp"
- fi
- }
- } &&
- $doit_exec $cpprog "$src" "$dsttmp") &&
+ (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
# and set any options; do chmod last to preserve setuid bits.
#
@@ -493,13 +460,6 @@ do
then
rm -f "$dsttmp"
else
- # If $backupsuffix is set, and the file being installed
- # already exists, attempt a backup. Don't worry if it fails,
- # e.g., if mv doesn't support -f.
- if test -n "$backupsuffix" && test -f "$dst"; then
- $doit $mvcmd -f "$dst" "$dst$backupsuffix" 2>/dev/null
- fi
-
# Rename the file to the real destination.
$doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
@@ -514,9 +474,9 @@ do
# file should still install successfully.
{
test ! -f "$dst" ||
- $doit $rmcmd "$dst" 2>/dev/null ||
+ $doit $rmcmd -f "$dst" 2>/dev/null ||
{ $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
- { $doit $rmcmd "$rmtmp" 2>/dev/null; :; }
+ { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
} ||
{ echo "$0: cannot unlink or rename $dst" >&2
(exit 1); exit 1
@@ -533,9 +493,9 @@ do
done
# Local variables:
-# eval: (add-hook 'before-save-hook 'time-stamp)
+# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC0"
+# time-stamp-time-zone: "UTC"
# time-stamp-end: "; # UTC"
# End:
diff --git a/ipsecmod/ipsecmod.c b/ipsecmod/ipsecmod.c
index 1c9e6e6a5a49..ce38b55cfb32 100644
--- a/ipsecmod/ipsecmod.c
+++ b/ipsecmod/ipsecmod.c
@@ -163,7 +163,7 @@ generate_request(struct module_qstate* qstate, int id, uint8_t* name,
}
fptr_ok(fptr_whitelist_modenv_attach_sub(qstate->env->attach_sub));
- if(!(*qstate->env->attach_sub)(qstate, &ask,
+ if(!(*qstate->env->attach_sub)(qstate, &ask, NULL,
(uint16_t)(BIT_RD|flags), 0, 0, &newq)){
log_err("Could not generate request: out of memory");
return 0;
diff --git a/iterator/iter_fwd.c b/iterator/iter_fwd.c
index 5d70c6664862..4c1049bb6f5a 100644
--- a/iterator/iter_fwd.c
+++ b/iterator/iter_fwd.c
@@ -228,6 +228,11 @@ read_fwds_host(struct config_stub* s, struct delegpt* dp)
s->name, p->str);
return 0;
}
+ if(dname_subdomain_c(dname, dp->name)) {
+ log_warn("forward-host '%s' may have a circular "
+ "dependency on forward-zone '%s'",
+ p->str, s->name);
+ }
#if ! defined(HAVE_SSL_SET1_HOST) && ! defined(HAVE_X509_VERIFY_PARAM_SET1_HOST)
if(tls_auth_name)
log_err("no name verification functionality in "
diff --git a/iterator/iter_hints.c b/iterator/iter_hints.c
index 9faf155ababe..a1fc86f58cbc 100644
--- a/iterator/iter_hints.c
+++ b/iterator/iter_hints.c
@@ -231,6 +231,11 @@ read_stubs_host(struct config_stub* s, struct delegpt* dp)
s->name, p->str);
return 0;
}
+ if(dname_subdomain_c(dname, dp->name)) {
+ log_warn("stub-host '%s' may have a circular "
+ "dependency on stub-zone '%s'",
+ p->str, s->name);
+ }
#if ! defined(HAVE_SSL_SET1_HOST) && ! defined(HAVE_X509_VERIFY_PARAM_SET1_HOST)
if(tls_auth_name)
log_err("no name verification functionality in "
diff --git a/iterator/iter_priv.c b/iterator/iter_priv.c
index be4219216a4c..6f885cec7f85 100644
--- a/iterator/iter_priv.c
+++ b/iterator/iter_priv.c
@@ -207,6 +207,168 @@ size_t priv_get_mem(struct iter_priv* priv)
return sizeof(*priv) + regional_get_mem(priv->region);
}
+/**
+ * Check if svcparam ipv4hint contains a private address.
+ * @param priv: private address lookup struct.
+ * @param d: the data bytes.
+ * @param data_len: number of data bytes in the svcparam.
+ * @param addr: address to return the private address to log in to.
+ * It has space for IPv4 and IPv6 addresses.
+ * @param addrlen: length of the addr. Returns the correct size for the addr.
+ * @return true if the rdata contains a private address.
+ */
+static int svcb_ipv4hint_contains_priv_addr(struct iter_priv* priv,
+ uint8_t* d, uint16_t data_len, struct sockaddr_storage* addr,
+ socklen_t* addrlen)
+{
+ struct sockaddr_in sa;
+ *addrlen = (socklen_t)sizeof(struct sockaddr_in);
+ memset(&sa, 0, sizeof(struct sockaddr_in));
+ sa.sin_family = AF_INET;
+ sa.sin_port = (in_port_t)htons(UNBOUND_DNS_PORT);
+
+ while(data_len >= LDNS_IP4ADDRLEN) {
+ memmove(&sa.sin_addr, d, LDNS_IP4ADDRLEN);
+ memmove(addr, &sa, *addrlen);
+ if(priv_lookup_addr(priv, addr, *addrlen))
+ return 1;
+
+ d += LDNS_IP4ADDRLEN;
+ data_len -= LDNS_IP4ADDRLEN;
+ }
+ /* if data_len != 0 here, then the svcparam is malformed. */
+ return 0;
+}
+
+/**
+ * Check if svcparam ipv6hint contains a private address.
+ * @param priv: private address lookup struct.
+ * @param d: the data bytes.
+ * @param data_len: number of data bytes in the svcparam.
+ * @param addr: address to return the private address to log in to.
+ * It has space for IPv4 and IPv6 addresses.
+ * @param addrlen: length of the addr. Returns the correct size for the addr.
+ * @return true if the rdata contains a private address.
+ */
+static int svcb_ipv6hint_contains_priv_addr(struct iter_priv* priv,
+ uint8_t* d, uint16_t data_len, struct sockaddr_storage* addr,
+ socklen_t* addrlen)
+{
+ struct sockaddr_in6 sa;
+ *addrlen = (socklen_t)sizeof(struct sockaddr_in6);
+ memset(&sa, 0, sizeof(struct sockaddr_in6));
+ sa.sin6_family = AF_INET6;
+ sa.sin6_port = (in_port_t)htons(UNBOUND_DNS_PORT);
+
+ while(data_len >= LDNS_IP6ADDRLEN) {
+ memmove(&sa.sin6_addr, d, LDNS_IP6ADDRLEN);
+ memmove(addr, &sa, *addrlen);
+ if(priv_lookup_addr(priv, addr, *addrlen))
+ return 1;
+
+ d += LDNS_IP6ADDRLEN;
+ data_len -= LDNS_IP6ADDRLEN;
+ }
+ /* if data_len != 0 here, then the svcparam is malformed. */
+ return 0;
+}
+
+/**
+ * Check if type SVCB and HTTPS rdata contains a private address.
+ * @param priv: private address lookup struct.
+ * @param pkt: the packet.
+ * @param rr: the rr with rdata to check.
+ * @param addr: address to return the private address to log in to.
+ * @param addrlen: length of the addr. Initially the total size, on
+ * return the correct size for the addr.
+ * @return true if the rdata contains a private address.
+ */
+static int svcb_rr_contains_priv_addr(struct iter_priv* priv,
+ sldns_buffer* pkt, struct rr_parse* rr, struct sockaddr_storage* addr,
+ socklen_t* addrlen)
+{
+ uint8_t* d = rr->ttl_data;
+ uint16_t svcparamkey, data_len, rdatalen;
+ size_t oldpos, dname_len, dname_start, dname_compr_len;
+ d += 4; /* skip TTL */
+ rdatalen = sldns_read_uint16(d); /* read rdata length */
+ d += 2;
+
+ if(rdatalen < 2 /* priority */ + 1 /* 1 length target */)
+ return 0; /* malformed, too short */
+ d += 2; /* skip priority */
+ rdatalen -= 2;
+ oldpos = sldns_buffer_position(pkt);
+ sldns_buffer_set_position(pkt, (size_t)(d - sldns_buffer_begin(pkt)));
+ dname_start = sldns_buffer_position(pkt);
+ dname_len = pkt_dname_len(pkt);
+ dname_compr_len = sldns_buffer_position(pkt) - dname_start;
+ sldns_buffer_set_position(pkt, oldpos);
+ if(dname_len == 0)
+ return 0; /* dname malformed */
+ if(dname_compr_len > rdatalen)
+ return 0; /* malformed */
+ d += dname_compr_len; /* skip target */
+ rdatalen -= dname_compr_len;
+
+ while(rdatalen >= 4) {
+ svcparamkey = sldns_read_uint16(d);
+ data_len = sldns_read_uint16(d+2);
+ d += 4;
+ rdatalen -= 4;
+
+ /* verify that we have data_len data */
+ if(data_len > rdatalen) {
+ /* It is malformed, but if there are addresses
+ * in there it can be rejected. */
+ data_len = rdatalen;
+ }
+
+ if(!data_len)
+ continue; /* no data for the svcparamkey */
+
+ if(svcparamkey == SVCB_KEY_IPV4HINT) {
+ if(svcb_ipv4hint_contains_priv_addr(priv, d, data_len,
+ addr, addrlen))
+ return 1;
+ } else if(svcparamkey == SVCB_KEY_IPV6HINT) {
+ if(svcb_ipv6hint_contains_priv_addr(priv, d, data_len,
+ addr, addrlen))
+ return 1;
+ }
+ d += data_len;
+ rdatalen -= data_len;
+ }
+ /* If rdatalen != 0 here, then the svcb rdata is malformed. */
+ return 0;
+}
+
+/**
+ * Check if the SVCB and HTTPS rrset is bad.
+ * @param priv: private address lookup struct.
+ * @param pkt: the packet.
+ * @param rrset: the rrset to check.
+ * @return 1 if the entire rrset has to be removed. 0 if not.
+ * It removes RRs if they have private addresses, and log that.
+ */
+static int priv_svcb_rrset_bad(struct iter_priv* priv, sldns_buffer* pkt,
+ struct rrset_parse* rrset)
+{
+ struct rr_parse* rr, *prev = NULL;
+ struct sockaddr_storage addr;
+ socklen_t addrlen = (socklen_t)sizeof(addr);
+ for(rr = rrset->rr_first; rr; rr = rr->next) {
+ if(svcb_rr_contains_priv_addr(priv, pkt, rr, &addr,
+ &addrlen)) {
+ if(msgparse_rrset_remove_rr("sanitize: removing public name with private address", pkt, rrset, prev, rr, &addr, addrlen))
+ return 1;
+ continue;
+ }
+ prev = rr;
+ }
+ return 0;
+}
+
int priv_rrset_bad(struct iter_priv* priv, sldns_buffer* pkt,
struct rrset_parse* rrset)
{
@@ -268,7 +430,11 @@ int priv_rrset_bad(struct iter_priv* priv, sldns_buffer* pkt,
}
prev = rr;
}
- }
+ } else if(rrset->type == LDNS_RR_TYPE_SVCB ||
+ rrset->type == LDNS_RR_TYPE_HTTPS) {
+ if(priv_svcb_rrset_bad(priv, pkt, rrset))
+ return 1;
+ }
}
return 0;
}
diff --git a/iterator/iter_scrub.c b/iterator/iter_scrub.c
index 8507a3fb65ac..37c4150cd2dd 100644
--- a/iterator/iter_scrub.c
+++ b/iterator/iter_scrub.c
@@ -285,6 +285,17 @@ synth_cname_rrset(uint8_t** sname, size_t* snamelen, uint8_t* alias,
return NULL;
memmove(cn->rr_first->ttl_data, rrset->rr_first->ttl_data,
sizeof(uint32_t)); /* RFC6672: synth CNAME TTL == DNAME TTL */
+ /* Apply cache TTL policy so DNAME and synthesized CNAME stay equal
+ * and respect cache-min-ttl/cache-max-ttl (same as rdata_copy path). */
+ if(!SERVE_ORIGINAL_TTL) {
+ uint32_t ttl = sldns_read_uint32(cn->rr_first->ttl_data);
+ time_t ttl_t = (time_t)ttl;
+ if(ttl_t < MIN_TTL) ttl_t = MIN_TTL;
+ if(ttl_t > MAX_TTL) ttl_t = MAX_TTL;
+ ttl = (uint32_t)ttl_t;
+ sldns_write_uint32(cn->rr_first->ttl_data, ttl);
+ sldns_write_uint32(rrset->rr_first->ttl_data, ttl);
+ }
sldns_write_uint16(cn->rr_first->ttl_data+4, aliaslen);
memmove(cn->rr_first->ttl_data+6, alias, aliaslen);
cn->rr_first->size = sizeof(uint16_t)+aliaslen;
@@ -408,6 +419,43 @@ shorten_rrset(sldns_buffer* pkt, struct rrset_parse* rrset, int count)
else rrset->rr_first = NULL;
}
+/** Shorten RRSIGs list */
+static void
+shorten_rrsig(sldns_buffer* pkt, struct rrset_parse* rrset, int count)
+{
+ /* The too large list of RRSIGs on the RRset is shortened.
+ * This is so that too large content does not overwhelm the cache.
+ * The validator does not validate more than a max number of
+ * RRSIGs as well. */
+ int i;
+ struct rr_parse* rr = rrset->rrsig_first, *prev = NULL;
+ if(!rr)
+ return;
+ for(i=0; i<count; i++) {
+ prev = rr;
+ rr = rr->next;
+ if(!rr)
+ return; /* The RRSIG list is already short. */
+ }
+ if(verbosity >= VERB_QUERY
+ && rrset->dname_len <= LDNS_MAX_DOMAINLEN) {
+ uint8_t buf[LDNS_MAX_DOMAINLEN+1];
+ dname_pkt_copy(pkt, buf, rrset->dname);
+ log_nametypeclass(VERB_QUERY, "normalize: shorten RRSIGs:",
+ buf, rrset->type, ntohs(rrset->rrset_class));
+ }
+ /* remove further rrsigs */
+ rrset->rrsig_last = prev;
+ rrset->rrsig_count = count;
+ while(rr) {
+ rrset->size -= rr->size;
+ rr = rr->next;
+ }
+ if(rrset->rrsig_last)
+ rrset->rrsig_last->next = NULL;
+ else rrset->rrsig_first = NULL;
+}
+
/**
* This routine normalizes a response. This includes removing "irrelevant"
* records from the answer and additional sections and (re)synthesizing
@@ -445,6 +493,8 @@ scrub_normalize(sldns_buffer* pkt, struct msg_parse* msg,
prev = NULL;
rrset = msg->rrset_first;
while(rrset && rrset->section == LDNS_SECTION_ANSWER) {
+ if((int)rrset->rrsig_count > env->cfg->iter_scrub_rrsig)
+ shorten_rrsig(pkt, rrset, env->cfg->iter_scrub_rrsig);
if(cname_length > env->cfg->iter_scrub_cname) {
/* Too many CNAMEs, or DNAMEs, from the authority
* server, scrub down the length to something
@@ -455,8 +505,9 @@ scrub_normalize(sldns_buffer* pkt, struct msg_parse* msg,
pkt, msg, prev, &rrset);
continue;
}
- if(rrset->type == LDNS_RR_TYPE_DNAME &&
- pkt_strict_sub(pkt, sname, rrset->dname)) {
+ if(rrset->type == LDNS_RR_TYPE_DNAME &&
+ pkt_strict_sub(pkt, sname, rrset->dname) &&
+ pkt_sub(pkt, rrset->dname, zonename)) {
/* check if next rrset is correct CNAME. else,
* synthesize a CNAME */
struct rrset_parse* nx = rrset->rrset_all_next;
@@ -502,8 +553,6 @@ scrub_normalize(sldns_buffer* pkt, struct msg_parse* msg,
log_err("out of memory synthesizing CNAME");
return 0;
}
- /* FIXME: resolve the conflict between synthesized
- * CNAME ttls and the cache. */
rrset = nx;
continue;
@@ -525,7 +574,8 @@ scrub_normalize(sldns_buffer* pkt, struct msg_parse* msg,
if(nx && nx->section == LDNS_SECTION_ANSWER &&
nx->type == LDNS_RR_TYPE_DNAME &&
nx->rr_count == 1 &&
- pkt_strict_sub(pkt, sname, nx->dname)) {
+ pkt_strict_sub(pkt, sname, nx->dname) &&
+ pkt_sub(pkt, nx->dname, zonename)) {
/* there is a DNAME after this CNAME, it
* is in the ANSWER section, and the DNAME
* applies to the name we cover */
@@ -620,6 +670,8 @@ scrub_normalize(sldns_buffer* pkt, struct msg_parse* msg,
"RRset:", pkt, msg, prev, &rrset);
continue;
}
+ if((int)rrset->rrsig_count > env->cfg->iter_scrub_rrsig)
+ shorten_rrsig(pkt, rrset, env->cfg->iter_scrub_rrsig);
/* only one NS set allowed in authority section */
if(rrset->type==LDNS_RR_TYPE_NS) {
/* NS set must be pertinent to the query */
@@ -762,6 +814,8 @@ scrub_normalize(sldns_buffer* pkt, struct msg_parse* msg,
"RRset:", pkt, msg, prev, &rrset);
continue;
}
+ if((int)rrset->rrsig_count > env->cfg->iter_scrub_rrsig)
+ shorten_rrsig(pkt, rrset, env->cfg->iter_scrub_rrsig);
prev = rrset;
rrset = rrset->rrset_all_next;
}
@@ -972,8 +1026,10 @@ scrub_sanitize(sldns_buffer* pkt, struct msg_parse* msg,
}
/* remove private addresses */
- if( (rrset->type == LDNS_RR_TYPE_A ||
- rrset->type == LDNS_RR_TYPE_AAAA)) {
+ if(rrset->type == LDNS_RR_TYPE_A ||
+ rrset->type == LDNS_RR_TYPE_AAAA ||
+ rrset->type == LDNS_RR_TYPE_SVCB ||
+ rrset->type == LDNS_RR_TYPE_HTTPS) {
/* do not set servfail since this leads to too
* many drops of other people using rfc1918 space */
diff --git a/iterator/iter_utils.c b/iterator/iter_utils.c
index 1da21896cb20..cc09fa52461e 100644
--- a/iterator/iter_utils.c
+++ b/iterator/iter_utils.c
@@ -253,7 +253,9 @@ iter_apply_cfg(struct iter_env* iter_env, struct config_file* cfg)
return 1;
}
-/** filter out unsuitable targets
+/** filter out unsuitable targets.
+ * Applies NAT64 if needed as well by replacing the IPv4 with the synthesized
+ * IPv6 address.
* @param iter_env: iterator environment with ipv6-support flag.
* @param env: module environment with infra cache.
* @param name: zone name
@@ -306,9 +308,30 @@ iter_filter_unsuitable(struct iter_env* iter_env, struct module_env* env,
if(a->bogus)
return -1; /* address of server is bogus */
if(donotq_lookup(iter_env->donotq, &a->addr, a->addrlen)) {
- log_addr(VERB_ALGO, "skip addr on the donotquery list",
- &a->addr, a->addrlen);
- return -1; /* server is on the donotquery list */
+ if(iter_env->nat64.use_nat64 &&
+ addr_is_ip6(&a->addr, a->addrlen) &&
+ a->addrlen == iter_env->nat64.nat64_prefix_addrlen &&
+ addr_in_common(&a->addr, 128,
+ &iter_env->nat64.nat64_prefix_addr,
+ iter_env->nat64.nat64_prefix_net,
+ iter_env->nat64.nat64_prefix_addrlen) ==
+ iter_env->nat64.nat64_prefix_net) {
+ /* The NAT64 is enabled, and address is IPv6, it is
+ * in the NAT64 prefix. It is allowed.
+ * So that in an IPv6-only cluster without internet
+ * access, that makes the NAT64 translation continue
+ * to work. The NAT64 prefix is allowed. */
+ /* Otherwise, after a timeout, the already NAT64
+ * translated address would be treated differently,
+ * and that causes confusion. */
+ log_addr(VERB_ALGO, "the addr is on the donotquery "
+ "list, but allowed because it is NAT64",
+ &a->addr, a->addrlen);
+ } else {
+ log_addr(VERB_ALGO, "skip addr on the donotquery list",
+ &a->addr, a->addrlen);
+ return -1; /* server is on the donotquery list */
+ }
}
if(!iter_env->supports_ipv6 && addr_is_ip6(&a->addr, a->addrlen)) {
return -1; /* there is no ip6 available */
@@ -317,6 +340,20 @@ iter_filter_unsuitable(struct iter_env* iter_env, struct module_env* env,
!addr_is_ip6(&a->addr, a->addrlen)) {
return -1; /* there is no ip4 available */
}
+ if(iter_env->nat64.use_nat64 && !addr_is_ip6(&a->addr, a->addrlen)) {
+ struct sockaddr_storage real_addr;
+ socklen_t real_addrlen;
+ addr_to_nat64(&a->addr, &iter_env->nat64.nat64_prefix_addr,
+ iter_env->nat64.nat64_prefix_addrlen,
+ iter_env->nat64.nat64_prefix_net,
+ &real_addr, &real_addrlen);
+ log_name_addr(VERB_QUERY, "NAT64 apply: from: ",
+ name, &a->addr, a->addrlen);
+ log_name_addr(VERB_QUERY, "NAT64 apply: to: ",
+ name, &real_addr, real_addrlen);
+ a->addr = real_addr;
+ a->addrlen = real_addrlen;
+ }
/* check lameness - need zone , class info */
if(infra_get_lame_rtt(env->infra_cache, &a->addr, a->addrlen,
name, namelen, qtype, &lame, &dnsseclame, &reclame,
@@ -1511,6 +1548,11 @@ iter_stub_fwd_no_cache(struct module_qstate *qstate, struct query_info *qinf,
struct delegpt *dp;
int nolock = 1;
+ log_assert((retdpname && retdpnamelen
+ && dpname_storage && dpname_storage_len > 0) ||
+ (retdpname == NULL && retdpnamelen == NULL
+ && dpname_storage == NULL && dpname_storage_len == 0));
+
/* Check for stub. */
/* Lock both forwards and hints for atomic read. */
lock_rw_rdlock(&qstate->env->fwds->lock);
diff --git a/iterator/iter_utils.h b/iterator/iter_utils.h
index b17b091e6639..f7f374742803 100644
--- a/iterator/iter_utils.h
+++ b/iterator/iter_utils.h
@@ -84,6 +84,7 @@ int iter_apply_cfg(struct iter_env* iter_env, struct config_file* cfg);
/**
* Select a valid, nice target to send query to.
* Sorting and removing unsuitable targets is combined.
+ * Adds records to the infra cache if not already there.
*
* @param iter_env: iterator module global state, with ip6 enabled and
* do-not-query-addresses.
diff --git a/iterator/iterator.c b/iterator/iterator.c
index 71e64655f6d0..cc38348b39da 100644
--- a/iterator/iterator.c
+++ b/iterator/iterator.c
@@ -297,6 +297,7 @@ error_response_cache(struct module_qstate* qstate, int id, int rcode)
struct reply_info err;
struct msgreply_entry* msg;
if(qstate->no_cache_store) {
+ qstate->error_response_cache = 1;
return error_response(qstate, id, rcode);
}
if(qstate->prefetch_leeway > NORR_TTL) {
@@ -829,7 +830,7 @@ generate_sub_request(uint8_t* qname, size_t qnamelen, uint16_t qtype,
struct mesh_state* sub = NULL;
fptr_ok(fptr_whitelist_modenv_add_sub(
qstate->env->add_sub));
- if(!(*qstate->env->add_sub)(qstate, &qinf,
+ if(!(*qstate->env->add_sub)(qstate, &qinf, NULL,
qflags, prime, valrec, &subq, &sub)){
return 0;
}
@@ -838,8 +839,8 @@ generate_sub_request(uint8_t* qname, size_t qnamelen, uint16_t qtype,
/* attach subquery, lookup existing or make a new one */
fptr_ok(fptr_whitelist_modenv_attach_sub(
qstate->env->attach_sub));
- if(!(*qstate->env->attach_sub)(qstate, &qinf, qflags, prime,
- valrec, &subq)) {
+ if(!(*qstate->env->attach_sub)(qstate, &qinf, NULL, qflags,
+ prime, valrec, &subq)) {
return 0;
}
}
@@ -2436,8 +2437,6 @@ processQueryTargets(struct module_qstate* qstate, struct iter_qstate* iq,
int tf_policy;
struct delegpt_addr* target;
struct outbound_entry* outq;
- struct sockaddr_storage real_addr;
- socklen_t real_addrlen;
int auth_fallback = 0;
uint8_t* qout_orig = NULL;
size_t qout_orig_len = 0;
@@ -3060,17 +3059,6 @@ processQueryTargets(struct module_qstate* qstate, struct iter_qstate* iq,
iq->dnssec_lame_query?" but lame_query anyway": "");
}
- real_addr = target->addr;
- real_addrlen = target->addrlen;
-
- if(ie->nat64.use_nat64 && target->addr.ss_family == AF_INET) {
- addr_to_nat64(&target->addr, &ie->nat64.nat64_prefix_addr,
- ie->nat64.nat64_prefix_addrlen, ie->nat64.nat64_prefix_net,
- &real_addr, &real_addrlen);
- log_name_addr(VERB_QUERY, "applied NAT64:",
- iq->dp->name, &real_addr, real_addrlen);
- }
-
fptr_ok(fptr_whitelist_modenv_send_query(qstate->env->send_query));
outq = (*qstate->env->send_query)(&iq->qinfo_out,
iq->chase_flags | (iq->chase_to_rd?BIT_RD:0),
@@ -3082,7 +3070,7 @@ processQueryTargets(struct module_qstate* qstate, struct iter_qstate* iq,
!qstate->blacklist&&(!iter_qname_indicates_dnssec(qstate->env,
&iq->qinfo_out)||target->attempts==1)?0:BIT_CD),
iq->dnssec_expected, iq->caps_fallback || is_caps_whitelisted(
- ie, iq), sq_check_ratelimit, &real_addr, real_addrlen,
+ ie, iq), sq_check_ratelimit, &target->addr, target->addrlen,
iq->dp->name, iq->dp->namelen,
(iq->dp->tcp_upstream || qstate->env->cfg->tcp_upstream),
(iq->dp->ssl_upstream || qstate->env->cfg->ssl_upstream),
@@ -3099,7 +3087,7 @@ processQueryTargets(struct module_qstate* qstate, struct iter_qstate* iq,
return error_response_cache(qstate, id, LDNS_RCODE_SERVFAIL);
}
log_addr(VERB_QUERY, "error sending query to auth server",
- &real_addr, real_addrlen);
+ &target->addr, target->addrlen);
if(qstate->env->cfg->qname_minimisation)
iq->minimisation_state = SKIP_MINIMISE_STATE;
return next_state(iq, QUERYTARGETS_STATE);
@@ -3236,8 +3224,19 @@ processQueryResponse(struct module_qstate* qstate, struct iter_qstate* iq,
} else iter_scrub_ds(iq->response, NULL, NULL);
if(type == RESPONSE_TYPE_THROWAWAY &&
FLAGS_GET_RCODE(iq->response->rep->flags) == LDNS_RCODE_YXDOMAIN) {
- /* YXDOMAIN is a permanent error, no need to retry */
- type = RESPONSE_TYPE_ANSWER;
+ /* YXDOMAIN is a permanent error for DNAME expansion overflow
+ * (RFC 6672 Section 2.2). Only accept if the response
+ * contains a DNAME record in the answer section; otherwise
+ * treat as invalid, to make sure the authoritative answer
+ * make sense. */
+ size_t i;
+ for(i=0; i<iq->response->rep->an_numrrsets; i++) {
+ if(ntohs(iq->response->rep->rrsets[i]->rk.type)
+ == LDNS_RR_TYPE_DNAME) {
+ type = RESPONSE_TYPE_ANSWER;
+ break;
+ }
+ }
}
if(type == RESPONSE_TYPE_CNAME)
origtypecname = 1;
@@ -3616,7 +3615,7 @@ processQueryResponse(struct module_qstate* qstate, struct iter_qstate* iq,
return next_state(iq, INIT_REQUEST_STATE);
} else if(type == RESPONSE_TYPE_LAME) {
/* Cache the LAMEness. */
- verbose(VERB_DETAIL, "query response was %sLAME",
+ verbose(VERB_DETAIL, "query response was categorized as %sLAME",
dnsseclame?"DNSSEC ":"");
if(!dname_subdomain_c(iq->qchase.qname, iq->dp->name)) {
log_err("mark lame: mismatch in qname and dpname");
@@ -3655,7 +3654,7 @@ processQueryResponse(struct module_qstate* qstate, struct iter_qstate* iq,
* In this case, the event is just sent directly back to
* the QUERYTARGETS_STATE without resetting anything,
* because, clearly, the next target must be tried. */
- verbose(VERB_DETAIL, "query response was THROWAWAY");
+ verbose(VERB_DETAIL, "query response was categorized as THROWAWAY");
} else {
log_warn("A query response came back with an unknown type: %d",
(int)type);
diff --git a/libunbound/python/libunbound.i b/libunbound/python/libunbound.i
index dc125146c0f0..9ed1be90bc34 100644
--- a/libunbound/python/libunbound.i
+++ b/libunbound/python/libunbound.i
@@ -853,7 +853,7 @@ Result: ['74.125.43.147', '74.125.43.99', '74.125.43.103', '74.125.43.104']
%{
//printf("resolve_start(%lX)\n",(long unsigned int)arg1);
Py_BEGIN_ALLOW_THREADS
- $function
+ $action
Py_END_ALLOW_THREADS
//printf("resolve_stop()\n");
%}
diff --git a/libunbound/unbound.h b/libunbound/unbound.h
index c274f80ab897..5a31f98e5bc6 100644
--- a/libunbound/unbound.h
+++ b/libunbound/unbound.h
@@ -853,6 +853,8 @@ struct ub_server_stats {
long long qquic;
/** number of queries removed due to discard-timeout */
long long num_queries_discard_timeout;
+ /** number of queries removed due to replyaddr limit */
+ long long num_queries_replyaddr_limit;
/** number of queries removed due to wait-limit */
long long num_queries_wait_limit;
/** number of dns error reports generated */
@@ -872,6 +874,8 @@ struct ub_stats_info {
long long mesh_num_states;
/** mesh stats: current number of reply (user) states */
long long mesh_num_reply_states;
+ /** mesh stats: current number of reply entries */
+ long long mesh_num_reply_addrs;
/** mesh stats: number of reply states overwritten with a new one */
long long mesh_jostled;
/** mesh stats: number of incoming queries dropped */
diff --git a/ltmain.sh b/ltmain.sh
index ff2d73a65880..7f3523d335c5 100644
--- a/ltmain.sh
+++ b/ltmain.sh
@@ -1,12 +1,12 @@
-#! /usr/bin/env sh
+#! /bin/sh
## DO NOT EDIT - This file generated from ./build-aux/ltmain.in
-## by inline-source v2019-02-19.15
+## by inline-source v2014-01-03.01
-# libtool (GNU libtool) 2.5.4
+# libtool (GNU libtool) 2.4.6
# Provide generalized library-building support services.
# Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
-# Copyright (C) 1996-2019, 2021-2024 Free Software Foundation, Inc.
+# Copyright (C) 1996-2015 Free Software Foundation, Inc.
# This is free software; see the source for copying conditions. There is NO
# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
@@ -31,8 +31,8 @@
PROGRAM=libtool
PACKAGE=libtool
-VERSION=2.5.4
-package_revision=2.5.4
+VERSION=2.4.6
+package_revision=2.4.6
## ------ ##
@@ -64,25 +64,34 @@ package_revision=2.5.4
# libraries, which are installed to $pkgauxdir.
# Set a version string for this script.
-scriptversion=2019-02-19.15; # UTC
+scriptversion=2015-01-20.17; # UTC
# General shell script boiler plate, and helper functions.
# Written by Gary V. Vaughan, 2004
-# This is free software. There is NO warranty; not even for
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-#
-# Copyright (C) 2004-2019, 2021, 2023-2024 Bootstrap Authors
-#
-# This file is dual licensed under the terms of the MIT license
-# <https://opensource.org/licenses/MIT>, and GPL version 2 or later
-# <https://www.gnu.org/licenses/gpl-2.0.html>. You must apply one of
-# these licenses when using or redistributing this software or any of
-# the files within it. See the URLs above, or the file `LICENSE`
-# included in the Bootstrap distribution for the full license texts.
+# Copyright (C) 2004-2015 Free Software Foundation, Inc.
+# This is free software; see the source for copying conditions. There is NO
+# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+
+# As a special exception to the GNU General Public License, if you distribute
+# this file as part of a program or library that is built using GNU Libtool,
+# you may include this file under the same distribution terms that you use
+# for the rest of that program.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNES FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
-# Please report bugs or propose patches to:
-# <https://github.com/gnulib-modules/bootstrap/issues>
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# Please report bugs or propose patches to gary@gnu.org.
## ------ ##
@@ -130,12 +139,9 @@ do
_G_safe_locale=\"$_G_var=C; \$_G_safe_locale\"
fi"
done
-# These NLS vars are set unconditionally (bootstrap issue #24). Unset those
-# in case the environment reset is needed later and the $save_* variant is not
-# defined (see the code above).
-LC_ALL=C
-LANGUAGE=C
-export LANGUAGE LC_ALL
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
# Make sure IFS has a sensible default
sp=' '
@@ -143,7 +149,7 @@ nl='
'
IFS="$sp $nl"
-# There are apparently some systems that use ';' as a PATH separator!
+# There are apparently some retarded systems that use ';' as a PATH separator!
if test "${PATH_SEPARATOR+set}" != set; then
PATH_SEPARATOR=:
(PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
@@ -153,26 +159,6 @@ if test "${PATH_SEPARATOR+set}" != set; then
fi
-# func_unset VAR
-# --------------
-# Portably unset VAR.
-# In some shells, an 'unset VAR' statement leaves a non-zero return
-# status if VAR is already unset, which might be problematic if the
-# statement is used at the end of a function (thus poisoning its return
-# value) or when 'set -e' is active (causing even a spurious abort of
-# the script in this case).
-func_unset ()
-{
- { eval $1=; (eval unset $1) >/dev/null 2>&1 && eval unset $1 || : ; }
-}
-
-
-# Make sure CDPATH doesn't cause `cd` commands to output the target dir.
-func_unset CDPATH
-
-# Make sure ${,E,F}GREP behave sanely.
-func_unset GREP_OPTIONS
-
## ------------------------- ##
## Locate command utilities. ##
@@ -273,7 +259,7 @@ test -z "$SED" && {
rm -f conftest.in conftest.tmp conftest.nl conftest.out
}
- func_path_progs "sed gsed" func_check_prog_sed "$PATH:/usr/xpg4/bin"
+ func_path_progs "sed gsed" func_check_prog_sed $PATH:/usr/xpg4/bin
rm -f conftest.sed
SED=$func_path_progs_result
}
@@ -309,7 +295,7 @@ test -z "$GREP" && {
rm -f conftest.in conftest.tmp conftest.nl conftest.out
}
- func_path_progs "grep ggrep" func_check_prog_grep "$PATH:/usr/xpg4/bin"
+ func_path_progs "grep ggrep" func_check_prog_grep $PATH:/usr/xpg4/bin
GREP=$func_path_progs_result
}
@@ -374,35 +360,6 @@ sed_double_backslash="\
s/\\([^$_G_bs]\\)$_G_bs2$_G_dollar/\\1$_G_bs2$_G_bs$_G_dollar/g
s/\n//g"
-# require_check_ifs_backslash
-# ---------------------------
-# Check if we can use backslash as IFS='\' separator, and set
-# $check_ifs_backshlash_broken to ':' or 'false'.
-require_check_ifs_backslash=func_require_check_ifs_backslash
-func_require_check_ifs_backslash ()
-{
- _G_save_IFS=$IFS
- IFS='\'
- _G_check_ifs_backshlash='a\\b'
- for _G_i in $_G_check_ifs_backshlash
- do
- case $_G_i in
- a)
- check_ifs_backshlash_broken=false
- ;;
- '')
- break
- ;;
- *)
- check_ifs_backshlash_broken=:
- break
- ;;
- esac
- done
- IFS=$_G_save_IFS
- require_check_ifs_backslash=:
-}
-
## ----------------- ##
## Global variables. ##
@@ -589,7 +546,7 @@ func_require_term_colors ()
# _G_HAVE_PLUSEQ_OP
# Can be empty, in which case the shell is probed, "yes" if += is
- # usable or anything else if it does not work.
+ # useable or anything else if it does not work.
test -z "$_G_HAVE_PLUSEQ_OP" \
&& (eval 'x=a; x+=" b"; test "a b" = "$x"') 2>/dev/null \
&& _G_HAVE_PLUSEQ_OP=yes
@@ -623,16 +580,16 @@ if test yes = "$_G_HAVE_PLUSEQ_OP"; then
{
$debug_cmd
- func_quote_arg pretty "$2"
- eval "$1+=\\ \$func_quote_arg_result"
+ func_quote_for_eval "$2"
+ eval "$1+=\\ \$func_quote_for_eval_result"
}'
else
func_append_quoted ()
{
$debug_cmd
- func_quote_arg pretty "$2"
- eval "$1=\$$1\\ \$func_quote_arg_result"
+ func_quote_for_eval "$2"
+ eval "$1=\$$1\\ \$func_quote_for_eval_result"
}
fi
@@ -739,7 +696,7 @@ eval 'func_dirname ()
# to NONDIR_REPLACEMENT.
# value returned in "$func_dirname_result"
# basename: Compute filename of FILE.
-# value returned in "$func_basename_result"
+# value retuned in "$func_basename_result"
# For efficiency, we do not delegate to the functions above but instead
# duplicate the functionality here.
eval 'func_dirname_and_basename ()
@@ -897,7 +854,7 @@ func_mkdir_p ()
# While some portion of DIR does not yet exist...
while test ! -d "$_G_directory_path"; do
# ...make a list in topmost first order. Use a colon delimited
- # list in case some portion of path contains whitespace.
+ # list incase some portion of path contains whitespace.
_G_dir_list=$_G_directory_path:$_G_dir_list
# If the last portion added has no slash in it, the list is done
@@ -1134,203 +1091,85 @@ func_relative_path ()
}
-# func_quote_portable EVAL ARG
-# ----------------------------
-# Internal function to portably implement func_quote_arg. Note that we still
-# keep attention to performance here so we as much as possible try to avoid
-# calling sed binary (so far O(N) complexity as long as func_append is O(1)).
-func_quote_portable ()
+# func_quote_for_eval ARG...
+# --------------------------
+# Aesthetically quote ARGs to be evaled later.
+# This function returns two values:
+# i) func_quote_for_eval_result
+# double-quoted, suitable for a subsequent eval
+# ii) func_quote_for_eval_unquoted_result
+# has all characters that are still active within double
+# quotes backslashified.
+func_quote_for_eval ()
{
$debug_cmd
- $require_check_ifs_backslash
-
- func_quote_portable_result=$2
-
- # one-time-loop (easy break)
- while true
- do
- if $1; then
- func_quote_portable_result=`$ECHO "$2" | $SED \
- -e "$sed_double_quote_subst" -e "$sed_double_backslash"`
- break
- fi
-
- # Quote for eval.
- case $func_quote_portable_result in
+ func_quote_for_eval_unquoted_result=
+ func_quote_for_eval_result=
+ while test 0 -lt $#; do
+ case $1 in
*[\\\`\"\$]*)
- # Fallback to sed for $func_check_bs_ifs_broken=:, or when the string
- # contains the shell wildcard characters.
- case $check_ifs_backshlash_broken$func_quote_portable_result in
- :*|*[\[\*\?]*)
- func_quote_portable_result=`$ECHO "$func_quote_portable_result" \
- | $SED "$sed_quote_subst"`
- break
- ;;
- esac
-
- func_quote_portable_old_IFS=$IFS
- for _G_char in '\' '`' '"' '$'
- do
- # STATE($1) PREV($2) SEPARATOR($3)
- set start "" ""
- func_quote_portable_result=dummy"$_G_char$func_quote_portable_result$_G_char"dummy
- IFS=$_G_char
- for _G_part in $func_quote_portable_result
- do
- case $1 in
- quote)
- func_append func_quote_portable_result "$3$2"
- set quote "$_G_part" "\\$_G_char"
- ;;
- start)
- set first "" ""
- func_quote_portable_result=
- ;;
- first)
- set quote "$_G_part" ""
- ;;
- esac
- done
- done
- IFS=$func_quote_portable_old_IFS
- ;;
- *) ;;
+ _G_unquoted_arg=`printf '%s\n' "$1" |$SED "$sed_quote_subst"` ;;
+ *)
+ _G_unquoted_arg=$1 ;;
esac
- break
- done
-
- func_quote_portable_unquoted_result=$func_quote_portable_result
- case $func_quote_portable_result in
- # double-quote args containing shell metacharacters to delay
- # word splitting, command substitution and variable expansion
- # for a subsequent eval.
- # many bourne shells cannot handle close brackets correctly
- # in scan sets, so we specify it separately.
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
- func_quote_portable_result=\"$func_quote_portable_result\"
- ;;
- esac
-}
-
+ if test -n "$func_quote_for_eval_unquoted_result"; then
+ func_append func_quote_for_eval_unquoted_result " $_G_unquoted_arg"
+ else
+ func_append func_quote_for_eval_unquoted_result "$_G_unquoted_arg"
+ fi
-# func_quotefast_eval ARG
-# -----------------------
-# Quote one ARG (internal). This is equivalent to 'func_quote_arg eval ARG',
-# but optimized for speed. Result is stored in $func_quotefast_eval.
-if test xyes = `(x=; printf -v x %q yes; echo x"$x") 2>/dev/null`; then
- printf -v _GL_test_printf_tilde %q '~'
- if test '\~' = "$_GL_test_printf_tilde"; then
- func_quotefast_eval ()
- {
- printf -v func_quotefast_eval_result %q "$1"
- }
- else
- # Broken older Bash implementations. Make those faster too if possible.
- func_quotefast_eval ()
- {
- case $1 in
- '~'*)
- func_quote_portable false "$1"
- func_quotefast_eval_result=$func_quote_portable_result
+ case $_G_unquoted_arg in
+ # Double-quote args containing shell metacharacters to delay
+ # word splitting, command substitution and variable expansion
+ # for a subsequent eval.
+ # Many Bourne shells cannot handle close brackets correctly
+ # in scan sets, so we specify it separately.
+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
+ _G_quoted_arg=\"$_G_unquoted_arg\"
;;
*)
- printf -v func_quotefast_eval_result %q "$1"
- ;;
+ _G_quoted_arg=$_G_unquoted_arg
+ ;;
esac
- }
- fi
-else
- func_quotefast_eval ()
- {
- func_quote_portable false "$1"
- func_quotefast_eval_result=$func_quote_portable_result
- }
-fi
+ if test -n "$func_quote_for_eval_result"; then
+ func_append func_quote_for_eval_result " $_G_quoted_arg"
+ else
+ func_append func_quote_for_eval_result "$_G_quoted_arg"
+ fi
+ shift
+ done
+}
-# func_quote_arg MODEs ARG
-# ------------------------
-# Quote one ARG to be evaled later. MODEs argument may contain zero or more
-# specifiers listed below separated by ',' character. This function returns two
-# values:
-# i) func_quote_arg_result
-# double-quoted (when needed), suitable for a subsequent eval
-# ii) func_quote_arg_unquoted_result
-# has all characters that are still active within double
-# quotes backslashified. Available only if 'unquoted' is specified.
-#
-# Available modes:
-# ----------------
-# 'eval' (default)
-# - escape shell special characters
-# 'expand'
-# - the same as 'eval'; but do not quote variable references
-# 'pretty'
-# - request aesthetic output, i.e. '"a b"' instead of 'a\ b'. This might
-# be used later in func_quote to get output like: 'echo "a b"' instead
-# of 'echo a\ b'. This is slower than default on some shells.
-# 'unquoted'
-# - produce also $func_quote_arg_unquoted_result which does not contain
-# wrapping double-quotes.
-#
-# Examples for 'func_quote_arg pretty,unquoted string':
-#
-# string | *_result | *_unquoted_result
-# ------------+-----------------------+-------------------
-# " | \" | \"
-# a b | "a b" | a b
-# "a b" | "\"a b\"" | \"a b\"
-# * | "*" | *
-# z="${x-$y}" | "z=\"\${x-\$y}\"" | z=\"\${x-\$y}\"
-#
-# Examples for 'func_quote_arg pretty,unquoted,expand string':
-#
-# string | *_result | *_unquoted_result
-# --------------+---------------------+--------------------
-# z="${x-$y}" | "z=\"${x-$y}\"" | z=\"${x-$y}\"
-func_quote_arg ()
+
+# func_quote_for_expand ARG
+# -------------------------
+# Aesthetically quote ARG to be evaled later; same as above,
+# but do not quote variable references.
+func_quote_for_expand ()
{
- _G_quote_expand=false
- case ,$1, in
- *,expand,*)
- _G_quote_expand=:
- ;;
- esac
+ $debug_cmd
- case ,$1, in
- *,pretty,*|*,expand,*|*,unquoted,*)
- func_quote_portable $_G_quote_expand "$2"
- func_quote_arg_result=$func_quote_portable_result
- func_quote_arg_unquoted_result=$func_quote_portable_unquoted_result
- ;;
+ case $1 in
+ *[\\\`\"]*)
+ _G_arg=`$ECHO "$1" | $SED \
+ -e "$sed_double_quote_subst" -e "$sed_double_backslash"` ;;
*)
- # Faster quote-for-eval for some shells.
- func_quotefast_eval "$2"
- func_quote_arg_result=$func_quotefast_eval_result
- ;;
+ _G_arg=$1 ;;
esac
-}
+ case $_G_arg in
+ # Double-quote args containing shell metacharacters to delay
+ # word splitting and command substitution for a subsequent eval.
+ # Many Bourne shells cannot handle close brackets correctly
+ # in scan sets, so we specify it separately.
+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
+ _G_arg=\"$_G_arg\"
+ ;;
+ esac
-# func_quote MODEs ARGs...
-# ------------------------
-# Quote all ARGs to be evaled later and join them into single command. See
-# func_quote_arg's description for more info.
-func_quote ()
-{
- $debug_cmd
- _G_func_quote_mode=$1 ; shift
- func_quote_result=
- while test 0 -lt $#; do
- func_quote_arg "$_G_func_quote_mode" "$1"
- if test -n "$func_quote_result"; then
- func_append func_quote_result " $func_quote_arg_result"
- else
- func_append func_quote_result "$func_quote_arg_result"
- fi
- shift
- done
+ func_quote_for_expand_result=$_G_arg
}
@@ -1376,8 +1215,8 @@ func_show_eval ()
_G_cmd=$1
_G_fail_exp=${2-':'}
- func_quote_arg pretty,expand "$_G_cmd"
- eval "func_notquiet $func_quote_arg_result"
+ func_quote_for_expand "$_G_cmd"
+ eval "func_notquiet $func_quote_for_expand_result"
$opt_dry_run || {
eval "$_G_cmd"
@@ -1402,8 +1241,8 @@ func_show_eval_locale ()
_G_fail_exp=${2-':'}
$opt_quiet || {
- func_quote_arg expand,pretty "$_G_cmd"
- eval "func_echo $func_quote_arg_result"
+ func_quote_for_expand "$_G_cmd"
+ eval "func_echo $func_quote_for_expand_result"
}
$opt_dry_run || {
@@ -1530,26 +1369,30 @@ func_lt_ver ()
# End:
#! /bin/sh
+# Set a version string for this script.
+scriptversion=2014-01-07.03; # UTC
+
# A portable, pluggable option parser for Bourne shell.
# Written by Gary V. Vaughan, 2010
-# This is free software. There is NO warranty; not even for
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-#
-# Copyright (C) 2010-2019, 2021, 2023-2024 Bootstrap Authors
-#
-# This file is dual licensed under the terms of the MIT license
-# <https://opensource.org/licenses/MIT>, and GPL version 2 or later
-# <https://www.gnu.org/licenses/gpl-2.0.html>. You must apply one of
-# these licenses when using or redistributing this software or any of
-# the files within it. See the URLs above, or the file `LICENSE`
-# included in the Bootstrap distribution for the full license texts.
+# Copyright (C) 2010-2015 Free Software Foundation, Inc.
+# This is free software; see the source for copying conditions. There is NO
+# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-# Please report bugs or propose patches to:
-# <https://github.com/gnulib-modules/bootstrap/issues>
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
-# Set a version string for this script.
-scriptversion=2019-02-19.15; # UTC
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# Please report bugs or propose patches to gary@gnu.org.
## ------ ##
@@ -1572,7 +1415,7 @@ scriptversion=2019-02-19.15; # UTC
#
# In order for the '--version' option to work, you will need to have a
# suitably formatted comment like the one at the top of this file
-# starting with '# Written by ' and ending with '# Copyright'.
+# starting with '# Written by ' and ending with '# warranty; '.
#
# For '-h' and '--help' to work, you will also need a one line
# description of your script's purpose in a comment directly above the
@@ -1584,7 +1427,7 @@ scriptversion=2019-02-19.15; # UTC
# to display verbose messages only when your user has specified
# '--verbose'.
#
-# After sourcing this file, you can plug in processing for additional
+# After sourcing this file, you can plug processing for additional
# options by amending the variables from the 'Configuration' section
# below, and following the instructions in the 'Option parsing'
# section further down.
@@ -1633,8 +1476,8 @@ fatal_help="Try '\$progname --help' for more information."
## ------------------------- ##
# This section contains functions for adding, removing, and running hooks
-# in the main code. A hook is just a list of function names that can be
-# run in order later on.
+# to the main code. A hook is just a named list of of function, that can
+# be run in order later on.
# func_hookable FUNC_NAME
# -----------------------
@@ -1667,8 +1510,7 @@ func_add_hook ()
# func_remove_hook FUNC_NAME HOOK_FUNC
# ------------------------------------
-# Remove HOOK_FUNC from the list of hook functions to be called by
-# FUNC_NAME.
+# Remove HOOK_FUNC from the list of functions called by FUNC_NAME.
func_remove_hook ()
{
$debug_cmd
@@ -1677,28 +1519,10 @@ func_remove_hook ()
}
-# func_propagate_result FUNC_NAME_A FUNC_NAME_B
-# ---------------------------------------------
-# If the *_result variable of FUNC_NAME_A _is set_, assign its value to
-# *_result variable of FUNC_NAME_B.
-func_propagate_result ()
-{
- $debug_cmd
-
- func_propagate_result_result=:
- if eval "test \"\${${1}_result+set}\" = set"
- then
- eval "${2}_result=\$${1}_result"
- else
- func_propagate_result_result=false
- fi
-}
-
-
# func_run_hooks FUNC_NAME [ARG]...
# ---------------------------------
# Run all hook functions registered to FUNC_NAME.
-# It's assumed that the list of hook functions contains nothing more
+# It is assumed that the list of hook functions contains nothing more
# than a whitespace-delimited list of legal shell function names, and
# no effort is wasted trying to catch shell meta-characters or preserve
# whitespace.
@@ -1708,19 +1532,22 @@ func_run_hooks ()
case " $hookable_fns " in
*" $1 "*) ;;
- *) func_fatal_error "'$1' does not support hook functions." ;;
+ *) func_fatal_error "'$1' does not support hook funcions.n" ;;
esac
eval _G_hook_fns=\$$1_hooks; shift
for _G_hook in $_G_hook_fns; do
- func_unset "${_G_hook}_result"
- eval $_G_hook '${1+"$@"}'
- func_propagate_result $_G_hook func_run_hooks
- if $func_propagate_result_result; then
- eval set dummy "$func_run_hooks_result"; shift
- fi
+ eval $_G_hook '"$@"'
+
+ # store returned options list back into positional
+ # parameters for next 'cmd' execution.
+ eval _G_hook_result=\$${_G_hook}_result
+ eval set dummy "$_G_hook_result"; shift
done
+
+ func_quote_for_eval ${1+"$@"}
+ func_run_hooks_result=$func_quote_for_eval_result
}
@@ -1730,18 +1557,10 @@ func_run_hooks ()
## --------------- ##
# In order to add your own option parsing hooks, you must accept the
-# full positional parameter list from your hook function. You may remove
-# or edit any options that you action, and then pass back the remaining
-# unprocessed options in '<hooked_function_name>_result', escaped
-# suitably for 'eval'.
-#
-# The '<hooked_function_name>_result' variable is automatically unset
-# before your hook gets called; for best performance, only set the
-# *_result variable when necessary (i.e. don't call the 'func_quote'
-# function unnecessarily because it can be an expensive operation on some
-# machines).
-#
-# Like this:
+# full positional parameter list in your hook function, remove any
+# options that you action, and then pass back the remaining unprocessed
+# options in '<hooked_function_name>_result', escaped suitably for
+# 'eval'. Like this:
#
# my_options_prep ()
# {
@@ -1751,8 +1570,9 @@ func_run_hooks ()
# usage_message=$usage_message'
# -s, --silent don'\''t print informational messages
# '
-# # No change in '$@' (ignored completely by this hook). Leave
-# # my_options_prep_result variable intact.
+#
+# func_quote_for_eval ${1+"$@"}
+# my_options_prep_result=$func_quote_for_eval_result
# }
# func_add_hook func_options_prep my_options_prep
#
@@ -1761,36 +1581,25 @@ func_run_hooks ()
# {
# $debug_cmd
#
-# args_changed=false
-#
-# # Note that, for efficiency, we parse as many options as we can
+# # Note that for efficiency, we parse as many options as we can
# # recognise in a loop before passing the remainder back to the
# # caller on the first unrecognised argument we encounter.
# while test $# -gt 0; do
# opt=$1; shift
# case $opt in
-# --silent|-s) opt_silent=:
-# args_changed=:
-# ;;
+# --silent|-s) opt_silent=: ;;
# # Separate non-argument short options:
# -s*) func_split_short_opt "$_G_opt"
# set dummy "$func_split_short_opt_name" \
# "-$func_split_short_opt_arg" ${1+"$@"}
# shift
-# args_changed=:
# ;;
-# *) # Make sure the first unrecognised option "$_G_opt"
-# # is added back to "$@" in case we need it later,
-# # if $args_changed was set to 'true'.
-# set dummy "$_G_opt" ${1+"$@"}; shift; break ;;
+# *) set dummy "$_G_opt" "$*"; shift; break ;;
# esac
# done
#
-# # Only call 'func_quote' here if we processed at least one argument.
-# if $args_changed; then
-# func_quote eval ${1+"$@"}
-# my_silent_option_result=$func_quote_result
-# fi
+# func_quote_for_eval ${1+"$@"}
+# my_silent_option_result=$func_quote_for_eval_result
# }
# func_add_hook func_parse_options my_silent_option
#
@@ -1801,26 +1610,17 @@ func_run_hooks ()
#
# $opt_silent && $opt_verbose && func_fatal_help "\
# '--silent' and '--verbose' options are mutually exclusive."
+#
+# func_quote_for_eval ${1+"$@"}
+# my_option_validation_result=$func_quote_for_eval_result
# }
# func_add_hook func_validate_options my_option_validation
#
-# You'll also need to manually amend $usage_message to reflect the extra
+# You'll alse need to manually amend $usage_message to reflect the extra
# options you parse. It's preferable to append if you can, so that
# multiple option parsing hooks can be added safely.
-# func_options_finish [ARG]...
-# ----------------------------
-# Finishing the option parse loop (call 'func_options' hooks ATM).
-func_options_finish ()
-{
- $debug_cmd
-
- func_run_hooks func_options ${1+"$@"}
- func_propagate_result func_run_hooks func_options_finish
-}
-
-
# func_options [ARG]...
# ---------------------
# All the functions called inside func_options are hookable. See the
@@ -1830,27 +1630,17 @@ func_options ()
{
$debug_cmd
- _G_options_quoted=false
+ func_options_prep ${1+"$@"}
+ eval func_parse_options \
+ ${func_options_prep_result+"$func_options_prep_result"}
+ eval func_validate_options \
+ ${func_parse_options_result+"$func_parse_options_result"}
- for my_func in options_prep parse_options validate_options options_finish
- do
- func_unset func_${my_func}_result
- func_unset func_run_hooks_result
- eval func_$my_func '${1+"$@"}'
- func_propagate_result func_$my_func func_options
- if $func_propagate_result_result; then
- eval set dummy "$func_options_result"; shift
- _G_options_quoted=:
- fi
- done
+ eval func_run_hooks func_options \
+ ${func_validate_options_result+"$func_validate_options_result"}
- $_G_options_quoted || {
- # As we (func_options) are top-level options-parser function and
- # nobody quoted "$@" for us yet, we need to do it explicitly for
- # caller.
- func_quote eval ${1+"$@"}
- func_options_result=$func_quote_result
- }
+ # save modified positional parameters for caller
+ func_options_result=$func_run_hooks_result
}
@@ -1859,8 +1649,9 @@ func_options ()
# All initialisations required before starting the option parse loop.
# Note that when calling hook functions, we pass through the list of
# positional parameters. If a hook function modifies that list, and
-# needs to propagate that back to rest of this script, then the complete
-# modified list must be put in 'func_run_hooks_result' before returning.
+# needs to propogate that back to rest of this script, then the complete
+# modified list must be put in 'func_run_hooks_result' before
+# returning.
func_hookable func_options_prep
func_options_prep ()
{
@@ -1871,7 +1662,9 @@ func_options_prep ()
opt_warning_types=
func_run_hooks func_options_prep ${1+"$@"}
- func_propagate_result func_run_hooks func_options_prep
+
+ # save modified positional parameters for caller
+ func_options_prep_result=$func_run_hooks_result
}
@@ -1883,32 +1676,25 @@ func_parse_options ()
{
$debug_cmd
- _G_parse_options_requote=false
+ func_parse_options_result=
+
# this just eases exit handling
while test $# -gt 0; do
# Defer to hook functions for initial option parsing, so they
# get priority in the event of reusing an option name.
func_run_hooks func_parse_options ${1+"$@"}
- func_propagate_result func_run_hooks func_parse_options
- if $func_propagate_result_result; then
- eval set dummy "$func_parse_options_result"; shift
- # Even though we may have changed "$@", we passed the "$@" array
- # down into the hook and it quoted it for us (because we are in
- # this if-branch). No need to quote it again.
- _G_parse_options_requote=false
- fi
+
+ # Adjust func_parse_options positional parameters to match
+ eval set dummy "$func_run_hooks_result"; shift
# Break out of the loop if we already parsed every option.
test $# -gt 0 || break
- # We expect that one of the options parsed in this function matches
- # and thus we remove _G_opt from "$@" and need to re-quote.
- _G_match_parse_options=:
_G_opt=$1
shift
case $_G_opt in
--debug|-x) debug_cmd='set -x'
- func_echo "enabling shell trace mode" >&2
+ func_echo "enabling shell trace mode"
$debug_cmd
;;
@@ -1918,10 +1704,7 @@ func_parse_options ()
;;
--warnings|--warning|-W)
- if test $# = 0 && func_missing_arg $_G_opt; then
- _G_parse_options_requote=:
- break
- fi
+ test $# = 0 && func_missing_arg $_G_opt && break
case " $warning_categories $1" in
*" $1 "*)
# trailing space prevents matching last $1 above
@@ -1974,24 +1757,15 @@ func_parse_options ()
shift
;;
- --) _G_parse_options_requote=: ; break ;;
+ --) break ;;
-*) func_fatal_help "unrecognised option: '$_G_opt'" ;;
- *) set dummy "$_G_opt" ${1+"$@"}; shift
- _G_match_parse_options=false
- break
- ;;
+ *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;;
esac
-
- if $_G_match_parse_options; then
- _G_parse_options_requote=:
- fi
done
- if $_G_parse_options_requote; then
- # save modified positional parameters for caller
- func_quote eval ${1+"$@"}
- func_parse_options_result=$func_quote_result
- fi
+ # save modified positional parameters for caller
+ func_quote_for_eval ${1+"$@"}
+ func_parse_options_result=$func_quote_for_eval_result
}
@@ -2008,10 +1782,12 @@ func_validate_options ()
test -n "$opt_warning_types" || opt_warning_types=" $warning_categories"
func_run_hooks func_validate_options ${1+"$@"}
- func_propagate_result func_run_hooks func_validate_options
# Bail if the options were screwed!
$exit_cmd $EXIT_FAILURE
+
+ # save modified positional parameters for caller
+ func_validate_options_result=$func_run_hooks_result
}
@@ -2067,8 +1843,8 @@ func_missing_arg ()
# func_split_equals STRING
# ------------------------
-# Set func_split_equals_lhs and func_split_equals_rhs shell variables
-# after splitting STRING at the '=' sign.
+# Set func_split_equals_lhs and func_split_equals_rhs shell variables after
+# splitting STRING at the '=' sign.
test -z "$_G_HAVE_XSI_OPS" \
&& (eval 'x=a/b/c;
test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \
@@ -2083,9 +1859,8 @@ then
func_split_equals_lhs=${1%%=*}
func_split_equals_rhs=${1#*=}
- if test "x$func_split_equals_lhs" = "x$1"; then
- func_split_equals_rhs=
- fi
+ test "x$func_split_equals_lhs" = "x$1" \
+ && func_split_equals_rhs=
}'
else
# ...otherwise fall back to using expr, which is often a shell builtin.
@@ -2095,7 +1870,7 @@ else
func_split_equals_lhs=`expr "x$1" : 'x\([^=]*\)'`
func_split_equals_rhs=
- test "x$func_split_equals_lhs=" = "x$1" \
+ test "x$func_split_equals_lhs" = "x$1" \
|| func_split_equals_rhs=`expr "x$1" : 'x[^=]*=\(.*\)$'`
}
fi #func_split_equals
@@ -2121,7 +1896,7 @@ else
{
$debug_cmd
- func_split_short_opt_name=`expr "x$1" : 'x\(-.\)'`
+ func_split_short_opt_name=`expr "x$1" : 'x-\(.\)'`
func_split_short_opt_arg=`expr "x$1" : 'x-.\(.*\)$'`
}
fi #func_split_short_opt
@@ -2163,44 +1938,31 @@ func_usage_message ()
# func_version
# ------------
# Echo version message to standard output and exit.
-# The version message is extracted from the calling file's header
-# comments, with leading '# ' stripped:
-# 1. First display the progname and version
-# 2. Followed by the header comment line matching /^# Written by /
-# 3. Then a blank line followed by the first following line matching
-# /^# Copyright /
-# 4. Immediately followed by any lines between the previous matches,
-# except lines preceding the intervening completely blank line.
-# For example, see the header comments of this file.
func_version ()
{
$debug_cmd
printf '%s\n' "$progname $scriptversion"
$SED -n '
- /^# Written by /!b
- s|^# ||; p; n
-
- :fwd2blnk
- /./ {
- n
- b fwd2blnk
+ /(C)/!b go
+ :more
+ /\./!{
+ N
+ s|\n# | |
+ b more
}
- p; n
-
- :holdwrnt
- s|^# ||
- s|^# *$||
- /^Copyright /!{
- /./H
- n
- b holdwrnt
+ :go
+ /^# Written by /,/# warranty; / {
+ s|^# ||
+ s|^# *$||
+ s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2|
+ p
}
-
- s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2|
- G
- s|\(\n\)\n*|\1|g
- p; q' < "$progpath"
+ /^# Written by / {
+ s|^# ||
+ p
+ }
+ /^warranty; /q' < "$progpath"
exit $?
}
@@ -2210,35 +1972,12 @@ func_version ()
# mode: shell-script
# sh-indentation: 2
# eval: (add-hook 'before-save-hook 'time-stamp)
-# time-stamp-pattern: "30/scriptversion=%:y-%02m-%02d.%02H; # UTC"
+# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC"
# time-stamp-time-zone: "UTC"
# End:
# Set a version string.
-scriptversion='(GNU libtool) 2.5.4'
-
-# func_version
-# ------------
-# Echo version message to standard output and exit.
-func_version ()
-{
- $debug_cmd
-
- year=`date +%Y`
-
- cat <<EOF
-$progname $scriptversion
-Copyright (C) $year Free Software Foundation, Inc.
-License GPLv2+: GNU GPL version 2 or later <https://gnu.org/licenses/gpl.html>
-This is free software: you are free to change and redistribute it.
-There is NO WARRANTY, to the extent permitted by law.
-
-Originally written by Gordon Matzigkeit, 1996
-(See AUTHORS for complete contributor listing)
-EOF
-
- exit $?
-}
+scriptversion='(GNU libtool) 2.4.6'
# func_echo ARG...
@@ -2261,6 +2000,18 @@ func_echo ()
}
+# func_warning ARG...
+# -------------------
+# Libtool warnings are not categorized, so override funclib.sh
+# func_warning with this simpler definition.
+func_warning ()
+{
+ $debug_cmd
+
+ $warning_func ${1+"$@"}
+}
+
+
## ---------------- ##
## Options parsing. ##
## ---------------- ##
@@ -2272,23 +2023,19 @@ usage='$progpath [OPTION]... [MODE-ARG]...'
# Short help message in response to '-h'.
usage_message="Options:
- --config show all configuration variables
- --debug enable verbose shell tracing
- -n, --dry-run display commands without modifying any files
- --features display basic configuration information
- --finish use operation '--mode=finish'
- --mode=MODE use operation mode MODE
- --no-finish don't update shared library cache
- --no-quiet, --no-silent print default informational messages
- --no-warnings equivalent to '-Wnone'
- --preserve-dup-deps don't remove duplicate dependency libraries
- --quiet, --silent don't print informational messages
- --reorder-cache=DIRS reorder shared library cache for preferred DIRS
- --tag=TAG use configuration variables from tag TAG
- -v, --verbose print more informational messages than default
- --version print version information
- -W, --warnings=CATEGORY report the warnings falling in CATEGORY [all]
- -h, --help, --help-all print short, long, or detailed help message
+ --config show all configuration variables
+ --debug enable verbose shell tracing
+ -n, --dry-run display commands without modifying any files
+ --features display basic configuration information and exit
+ --mode=MODE use operation mode MODE
+ --no-warnings equivalent to '-Wnone'
+ --preserve-dup-deps don't remove duplicate dependency libraries
+ --quiet, --silent don't print informational messages
+ --tag=TAG use configuration variables from tag TAG
+ -v, --verbose print more informational messages than default
+ --version print version information
+ -W, --warnings=CATEGORY report the warnings falling in CATEGORY [all]
+ -h, --help, --help-all print short, long, or detailed help message
"
# Additional text appended to 'usage_message' in response to '--help'.
@@ -2321,13 +2068,13 @@ include the following information:
compiler: $LTCC
compiler flags: $LTCFLAGS
linker: $LD (gnu? $with_gnu_ld)
- version: $progname $scriptversion
+ version: $progname (GNU libtool) 2.4.6
automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q`
autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q`
Report bugs to <bug-libtool@gnu.org>.
-GNU libtool home page: <https://www.gnu.org/software/libtool/>.
-General help using GNU software: <https://www.gnu.org/gethelp/>."
+GNU libtool home page: <http://www.gnu.org/software/libtool/>.
+General help using GNU software: <http://www.gnu.org/gethelp/>."
exit 0
}
@@ -2517,17 +2264,12 @@ libtool_options_prep ()
opt_dry_run=false
opt_help=false
opt_mode=
- opt_reorder_cache=false
opt_preserve_dup_deps=false
opt_quiet=false
- opt_finishing=true
- opt_warning=
nonopt=
preserve_args=
- _G_rc_lt_options_prep=:
-
# Shorthand for --mode=foo, only valid as the first argument
case $1 in
clean|clea|cle|cl)
@@ -2551,16 +2293,11 @@ libtool_options_prep ()
uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
shift; set dummy --mode uninstall ${1+"$@"}; shift
;;
- *)
- _G_rc_lt_options_prep=false
- ;;
esac
- if $_G_rc_lt_options_prep; then
- # Pass back the list of options.
- func_quote eval ${1+"$@"}
- libtool_options_prep_result=$func_quote_result
- fi
+ # Pass back the list of options.
+ func_quote_for_eval ${1+"$@"}
+ libtool_options_prep_result=$func_quote_for_eval_result
}
func_add_hook func_options_prep libtool_options_prep
@@ -2572,12 +2309,9 @@ libtool_parse_options ()
{
$debug_cmd
- _G_rc_lt_parse_options=false
-
# Perform our own loop to consume as many options as possible in
# each iteration.
while test $# -gt 0; do
- _G_match_lt_parse_options=:
_G_opt=$1
shift
case $_G_opt in
@@ -2611,18 +2345,14 @@ libtool_parse_options ()
clean|compile|execute|finish|install|link|relink|uninstall) ;;
# Catch anything else as an error
- *) func_error "invalid argument '$1' for $_G_opt"
+ *) func_error "invalid argument for $_G_opt"
exit_cmd=exit
+ break
;;
esac
shift
;;
- --no-finish)
- opt_finishing=false
- func_append preserve_args " $_G_opt"
- ;;
-
--no-silent|--no-quiet)
opt_quiet=false
func_append preserve_args " $_G_opt"
@@ -2638,24 +2368,6 @@ libtool_parse_options ()
func_append preserve_args " $_G_opt"
;;
- --reorder-cache)
- opt_reorder_cache=true
- shared_lib_dirs=$1
- if test -n "$shared_lib_dirs"; then
- case $1 in
- # Must begin with /:
- /*) ;;
-
- # Catch anything else as an error (relative paths)
- *) func_error "invalid argument '$1' for $_G_opt"
- func_error "absolute paths are required for $_G_opt"
- exit_cmd=exit
- ;;
- esac
- fi
- shift
- ;;
-
--silent|--quiet)
opt_quiet=:
opt_verbose=false
@@ -2674,36 +2386,19 @@ libtool_parse_options ()
func_append preserve_args " $_G_opt"
;;
- # An option not handled by this hook function:
- *) set dummy "$_G_opt" ${1+"$@"} ; shift
- _G_match_lt_parse_options=false
- break
- ;;
+ # An option not handled by this hook function:
+ *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;;
esac
- $_G_match_lt_parse_options && _G_rc_lt_parse_options=:
done
- if $_G_rc_lt_parse_options; then
- # save modified positional parameters for caller
- func_quote eval ${1+"$@"}
- libtool_parse_options_result=$func_quote_result
- fi
+
+ # save modified positional parameters for caller
+ func_quote_for_eval ${1+"$@"}
+ libtool_parse_options_result=$func_quote_for_eval_result
}
func_add_hook func_parse_options libtool_parse_options
-# func_warning ARG...
-# -------------------
-# Libtool warnings are not categorized, so override funclib.sh
-# func_warning with this simpler definition.
-func_warning ()
-{
- if $opt_warning; then
- $debug_cmd
- $warning_func ${1+"$@"}
- fi
-}
-
# libtool_validate_options [ARG]...
# ---------------------------------
@@ -2720,10 +2415,17 @@ libtool_validate_options ()
# preserve --debug
test : = "$debug_cmd" || func_append preserve_args " --debug"
- # Keeping compiler generated duplicates in $postdeps and $predeps is not
- # harmful, and is necessary in a majority of systems that use it to satisfy
- # symbol dependencies.
- opt_duplicate_compiler_generated_deps=:
+ case $host in
+ # Solaris2 added to fix http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16452
+ # see also: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59788
+ *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* | *os2*)
+ # don't eliminate duplications in $postdeps and $predeps
+ opt_duplicate_compiler_generated_deps=:
+ ;;
+ *)
+ opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps
+ ;;
+ esac
$opt_help || {
# Sanity checks first:
@@ -2749,8 +2451,8 @@ libtool_validate_options ()
}
# Pass back the unparsed argument list
- func_quote eval ${1+"$@"}
- libtool_validate_options_result=$func_quote_result
+ func_quote_for_eval ${1+"$@"}
+ libtool_validate_options_result=$func_quote_for_eval_result
}
func_add_hook func_validate_options libtool_validate_options
@@ -3048,7 +2750,7 @@ EOF
# func_convert_core_file_wine_to_w32 ARG
# Helper function used by file name conversion functions when $build is *nix,
-# and $host is mingw, windows, cygwin, or some other w32 environment. Relies on a
+# and $host is mingw, cygwin, or some other w32 environment. Relies on a
# correctly configured wine environment available, with the winepath program
# in $build's $PATH.
#
@@ -3080,10 +2782,9 @@ func_convert_core_file_wine_to_w32 ()
# func_convert_core_path_wine_to_w32 ARG
# Helper function used by path conversion functions when $build is *nix, and
-# $host is mingw, windows, cygwin, or some other w32 environment. Relies on a
-# correctly configured wine environment available, with the winepath program
-# in $build's $PATH. Assumes ARG has no leading or trailing path separator
-# characters.
+# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly
+# configured wine environment available, with the winepath program in $build's
+# $PATH. Assumes ARG has no leading or trailing path separator characters.
#
# ARG is path to be converted from $build format to win32.
# Result is available in $func_convert_core_path_wine_to_w32_result.
@@ -3226,15 +2927,6 @@ func_convert_path_front_back_pathsep ()
# end func_convert_path_front_back_pathsep
-# func_convert_delimited_path PATH ORIG_DELIMITER NEW_DELIMITER
-# Replaces a delimiter for a given path.
-func_convert_delimited_path ()
-{
- converted_path=`$ECHO "$1" | $SED "s#$2#$3#g"`
-}
-# end func_convert_delimited_path
-
-
##################################################
# $build to $host FILE NAME CONVERSION FUNCTIONS #
##################################################
@@ -3569,65 +3261,6 @@ func_dll_def_p ()
}
-# func_reorder_shared_lib_cache DIRS
-# Reorder the shared library cache by unconfiguring previous shared library cache
-# and configuring preferred search directories before previous search directories.
-# Previous shared library cache: /usr/lib /usr/local/lib
-# Preferred search directories: /tmp/testing
-# Reordered shared library cache: /tmp/testing /usr/lib /usr/local/lib
-func_reorder_shared_lib_cache ()
-{
- $debug_cmd
-
- case $host_os in
- openbsd*)
- get_search_directories=`PATH="$PATH:/sbin" ldconfig -r | $GREP "search directories" | $SED "s#.*search directories:\ ##g"`
- func_convert_delimited_path "$get_search_directories" ':' '\ '
- save_search_directories=$converted_path
- func_convert_delimited_path "$1" ':' '\ '
-
- # Ensure directories exist
- for dir in $converted_path; do
- # Ensure each directory is an absolute path
- case $dir in
- /*) ;;
- *) func_error "Directory '$dir' is not an absolute path"
- exit $EXIT_FAILURE ;;
- esac
- # Ensure no trailing slashes
- func_stripname '' '/' "$dir"
- dir=$func_stripname_result
- if test -d "$dir"; then
- if test -n "$preferred_search_directories"; then
- preferred_search_directories="$preferred_search_directories $dir"
- else
- preferred_search_directories=$dir
- fi
- else
- func_error "Directory '$dir' does not exist"
- exit $EXIT_FAILURE
- fi
- done
-
- PATH="$PATH:/sbin" ldconfig -U $save_search_directories
- PATH="$PATH:/sbin" ldconfig -m $preferred_search_directories $save_search_directories
- get_search_directories=`PATH="$PATH:/sbin" ldconfig -r | $GREP "search directories" | $SED "s#.*search directories:\ ##g"`
- func_convert_delimited_path "$get_search_directories" ':' '\ '
- reordered_search_directories=$converted_path
-
- $ECHO "Original: $save_search_directories"
- $ECHO "Reordered: $reordered_search_directories"
- exit $EXIT_SUCCESS
- ;;
- *)
- func_error "--reorder-cache is not supported for host_os=$host_os."
- exit $EXIT_FAILURE
- ;;
- esac
-}
-# end func_reorder_shared_lib_cache
-
-
# func_mode_compile arg...
func_mode_compile ()
{
@@ -3785,8 +3418,8 @@ func_mode_compile ()
esac
done
- func_quote_arg pretty "$libobj"
- test "X$libobj" != "X$func_quote_arg_result" \
+ func_quote_for_eval "$libobj"
+ test "X$libobj" != "X$func_quote_for_eval_result" \
&& $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \
&& func_warning "libobj name '$libobj' may not contain shell special characters."
func_dirname_and_basename "$obj" "/" ""
@@ -3806,7 +3439,7 @@ func_mode_compile ()
# On Cygwin there's no "real" PIC flag so we must build both object types
case $host_os in
- cygwin* | mingw* | windows* | pw32* | os2* | cegcc*)
+ cygwin* | mingw* | pw32* | os2* | cegcc*)
pic_mode=default
;;
esac
@@ -3859,8 +3492,8 @@ compiler."
func_to_tool_file "$srcfile" func_convert_file_msys_to_w32
srcfile=$func_to_tool_file_result
- func_quote_arg pretty "$srcfile"
- qsrcfile=$func_quote_arg_result
+ func_quote_for_eval "$srcfile"
+ qsrcfile=$func_quote_for_eval_result
# Only build a PIC object if we are building libtool libraries.
if test yes = "$build_libtool_libs"; then
@@ -4015,8 +3648,7 @@ This mode accepts the following additional options:
-prefer-non-pic try to build non-PIC objects only
-shared do not build a '.o' file suitable for static linking
-static only build a '.o' file suitable for static linking
- -Wc,FLAG
- -Xcompiler FLAG pass FLAG directly to the compiler
+ -Wc,FLAG pass FLAG directly to the compiler
COMPILE-COMMAND is a command to be used in creating a 'standard' object file
from the given SOURCEFILE.
@@ -4122,8 +3754,6 @@ The following components of LINK-COMMAND are treated specially:
-weak LIBNAME declare that the target provides the LIBNAME interface
-Wc,FLAG
-Xcompiler FLAG pass linker-specific FLAG directly to the compiler
- -Wa,FLAG
- -Xassembler FLAG pass linker-specific FLAG directly to the assembler
-Wl,FLAG
-Xlinker FLAG pass linker-specific FLAG directly to the linker
-XCClinker FLAG pass link-specific FLAG to the compiler driver (CC)
@@ -4200,12 +3830,6 @@ if $opt_help; then
fi
-# If option '--reorder-cache', reorder the shared library cache and exit.
-if $opt_reorder_cache; then
- func_reorder_shared_lib_cache $shared_lib_dirs
-fi
-
-
# func_mode_execute arg...
func_mode_execute ()
{
@@ -4390,7 +4014,7 @@ func_mode_finish ()
fi
fi
- if test -n "$finish_cmds$finish_eval" && test -n "$libdirs" && $opt_finishing; then
+ if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
for libdir in $libdirs; do
if test -n "$finish_cmds"; then
# Do each command in the finish commands.
@@ -4415,12 +4039,6 @@ func_mode_finish ()
for libdir in $libdirs; do
$ECHO " $libdir"
done
- if test "false" = "$opt_finishing"; then
- echo
- echo "NOTE: finish_cmds were not executed during testing, so you must"
- echo "manually run ldconfig to add a given test directory, LIBDIR, to"
- echo "the search path for generated executables."
- fi
echo
echo "If you ever happen to want to link against installed libraries"
echo "in a given directory, LIBDIR, you must either use libtool, and"
@@ -4478,8 +4096,8 @@ func_mode_install ()
case $nonopt in *shtool*) :;; *) false;; esac
then
# Aesthetically quote it.
- func_quote_arg pretty "$nonopt"
- install_prog="$func_quote_arg_result "
+ func_quote_for_eval "$nonopt"
+ install_prog="$func_quote_for_eval_result "
arg=$1
shift
else
@@ -4489,8 +4107,8 @@ func_mode_install ()
# The real first argument should be the name of the installation program.
# Aesthetically quote it.
- func_quote_arg pretty "$arg"
- func_append install_prog "$func_quote_arg_result"
+ func_quote_for_eval "$arg"
+ func_append install_prog "$func_quote_for_eval_result"
install_shared_prog=$install_prog
case " $install_prog " in
*[\\\ /]cp\ *) install_cp=: ;;
@@ -4547,12 +4165,12 @@ func_mode_install ()
esac
# Aesthetically quote the argument.
- func_quote_arg pretty "$arg"
- func_append install_prog " $func_quote_arg_result"
+ func_quote_for_eval "$arg"
+ func_append install_prog " $func_quote_for_eval_result"
if test -n "$arg2"; then
- func_quote_arg pretty "$arg2"
+ func_quote_for_eval "$arg2"
fi
- func_append install_shared_prog " $func_quote_arg_result"
+ func_append install_shared_prog " $func_quote_for_eval_result"
done
test -z "$install_prog" && \
@@ -4563,8 +4181,8 @@ func_mode_install ()
if test -n "$install_override_mode" && $no_mode; then
if $install_cp; then :; else
- func_quote_arg pretty "$install_override_mode"
- func_append install_shared_prog " -m $func_quote_arg_result"
+ func_quote_for_eval "$install_override_mode"
+ func_append install_shared_prog " -m $func_quote_for_eval_result"
fi
fi
@@ -4657,15 +4275,8 @@ func_mode_install ()
func_append dir "$objdir"
if test -n "$relink_command"; then
- # Strip any trailing slash from the destination.
- func_stripname '' '/' "$libdir"
- destlibdir=$func_stripname_result
-
- func_stripname '' '/' "$destdir"
- s_destdir=$func_stripname_result
-
# Determine the prefix the user has applied to our future dir.
- inst_prefix_dir=`$ECHO "X$s_destdir" | $Xsed -e "s%$destlibdir\$%%"`
+ inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"`
# Don't allow the user to place us outside of our expected
# location b/c this prevents finding dependent libraries that
@@ -4702,7 +4313,7 @@ func_mode_install ()
'exit $?'
tstripme=$stripme
case $host_os in
- cygwin* | mingw* | windows* | pw32* | cegcc*)
+ cygwin* | mingw* | pw32* | cegcc*)
case $realname in
*.dll.a)
tstripme=
@@ -4815,7 +4426,7 @@ func_mode_install ()
# Do a test to see if this is really a libtool program.
case $host in
- *cygwin* | *mingw* | *windows*)
+ *cygwin* | *mingw*)
if func_ltwrapper_executable_p "$file"; then
func_ltwrapper_scriptname "$file"
wrapper=$func_ltwrapper_scriptname_result
@@ -4867,8 +4478,8 @@ func_mode_install ()
relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'`
$opt_quiet || {
- func_quote_arg expand,pretty "$relink_command"
- eval "func_echo $func_quote_arg_result"
+ func_quote_for_expand "$relink_command"
+ eval "func_echo $func_quote_for_expand_result"
}
if eval "$relink_command"; then :
else
@@ -5043,7 +4654,7 @@ extern \"C\" {
$RM $export_symbols
eval "$SED -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
case $host in
- *cygwin* | *mingw* | *windows* | *cegcc* )
+ *cygwin* | *mingw* | *cegcc* )
eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
;;
@@ -5055,7 +4666,7 @@ extern \"C\" {
eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
eval '$MV "$nlist"T "$nlist"'
case $host in
- *cygwin* | *mingw* | *windows* | *cegcc* )
+ *cygwin* | *mingw* | *cegcc* )
eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
;;
@@ -5069,7 +4680,7 @@ extern \"C\" {
func_basename "$dlprefile"
name=$func_basename_result
case $host in
- *cygwin* | *mingw* | *windows* | *cegcc* )
+ *cygwin* | *mingw* | *cegcc* )
# if an import library, we need to obtain dlname
if func_win32_import_lib_p "$dlprefile"; then
func_tr_sh "$dlprefile"
@@ -5095,16 +4706,8 @@ extern \"C\" {
eval '$ECHO ": $name " >> "$nlist"'
fi
func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
- case $host in
- i[3456]86-*-mingw32*)
- eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe |
- $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'"
- ;;
- *)
- eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe |
- $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/__nm_//' >> '$nlist'"
- ;;
- esac
+ eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe |
+ $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'"
}
else # not an import lib
$opt_dry_run || {
@@ -5252,7 +4855,7 @@ static const void *lt_preloaded_setup() {
# Transform the symbol file into the correct name.
symfileobj=$output_objdir/${my_outputname}S.$objext
case $host in
- *cygwin* | *mingw* | *windows* | *cegcc* )
+ *cygwin* | *mingw* | *cegcc* )
if test -f "$output_objdir/$my_outputname.def"; then
compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
@@ -5328,7 +4931,7 @@ func_win32_libid ()
*ar\ archive*) # could be an import, or static
# Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD.
if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
- $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64|pe-aarch64)' >/dev/null; then
+ $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then
case $nm_interface in
"MS dumpbin")
if func_cygming_ms_implib_p "$1" ||
@@ -5595,7 +5198,7 @@ func_extract_archives ()
#
# Emit a libtool wrapper script on stdout.
# Don't directly open a file because we may want to
-# incorporate the script contents within a cygwin/mingw/windows
+# incorporate the script contents within a cygwin/mingw
# wrapper executable. Must ONLY be called from within
# func_mode_link because it depends on a number of variables
# set therein.
@@ -5603,7 +5206,7 @@ func_extract_archives ()
# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
# variable will take. If 'yes', then the emitted script
# will assume that the directory where it is stored is
-# the $objdir directory. This is a cygwin/mingw/windows-specific
+# the $objdir directory. This is a cygwin/mingw-specific
# behavior.
func_emit_wrapper ()
{
@@ -5655,8 +5258,7 @@ else
if test \"\$libtool_execute_magic\" != \"$magic\"; then
file=\"\$0\""
- func_quote_arg pretty "$ECHO"
- qECHO=$func_quote_arg_result
+ qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"`
$ECHO "\
# A function that is used when there is no print builtin or printf.
@@ -5666,7 +5268,7 @@ func_fallback_echo ()
\$1
_LTECHO_EOF'
}
- ECHO=$qECHO
+ ECHO=\"$qECHO\"
fi
# Very basic option parsing. These options are (a) specific to
@@ -5728,7 +5330,7 @@ func_exec_program_core ()
"
case $host in
# Backslashes separate directories on plain windows
- *-*-mingw* | *-*-windows* | *-*-os2* | *-cegcc*)
+ *-*-mingw | *-*-os2* | *-cegcc*)
$ECHO "\
if test -n \"\$lt_option_debug\"; then
\$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir\\\\\$program\" 1>&2
@@ -5796,7 +5398,7 @@ func_exec_program ()
file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\`
done
- # Usually 'no', except on cygwin/mingw/windows when embedded into
+ # Usually 'no', except on cygwin/mingw when embedded into
# the cwrapper.
WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1
if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
@@ -5928,7 +5530,7 @@ EOF
#endif
#include <stdio.h>
#include <stdlib.h>
-#if defined _WIN32 && !defined __GNUC__
+#ifdef _MSC_VER
# include <direct.h>
# include <process.h>
# include <io.h>
@@ -5953,7 +5555,7 @@ EOF
/* declarations of non-ANSI functions */
#if defined __MINGW32__
# ifdef __STRICT_ANSI__
-_CRTIMP int __cdecl _putenv (const char *);
+int _putenv (const char *);
# endif
#elif defined __CYGWIN__
# ifdef __STRICT_ANSI__
@@ -6151,7 +5753,7 @@ main (int argc, char *argv[])
{
EOF
case $host in
- *mingw* | *windows* | *cygwin* )
+ *mingw* | *cygwin* )
# make stdout use "unix" line endings
echo " setmode(1,_O_BINARY);"
;;
@@ -6170,7 +5772,7 @@ EOF
{
/* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
namespace, but it is not one of the ones we know about and
- have already dealt with, above (including dump-script), then
+ have already dealt with, above (inluding dump-script), then
report an error. Otherwise, targets might begin to believe
they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
namespace. The first time any user complains about this, we'll
@@ -6254,7 +5856,7 @@ EOF
EOF
case $host_os in
- mingw* | windows*)
+ mingw*)
cat <<"EOF"
{
char* p;
@@ -6296,7 +5898,7 @@ EOF
EOF
case $host_os in
- mingw* | windows*)
+ mingw*)
cat <<"EOF"
/* execv doesn't actually work on mingw as expected on unix */
newargz = prepare_spawn (newargz);
@@ -6715,7 +6317,7 @@ lt_update_lib_path (const char *name, const char *value)
EOF
case $host_os in
- mingw* | windows*)
+ mingw*)
cat <<"EOF"
/* Prepares an argument vector before calling spawn().
@@ -6890,7 +6492,7 @@ func_mode_link ()
$debug_cmd
case $host in
- *-*-cygwin* | *-*-mingw* | *-*-windows* | *-*-pw32* | *-*-os2* | *-cegcc*)
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
# It is impossible to link a dll without this setting, and
# we shouldn't force the makefile maintainer to figure out
# what system we are compiling for in order to pass an extra
@@ -6914,7 +6516,6 @@ func_mode_link ()
finalize_command=$nonopt
compile_rpath=
- compile_rpath_tail=
finalize_rpath=
compile_shlibpath=
finalize_shlibpath=
@@ -6955,12 +6556,10 @@ func_mode_link ()
xrpath=
perm_rpath=
temp_rpath=
- temp_rpath_tail=
thread_safe=no
vinfo=
vinfo_number=no
weak_libs=
- rpath_arg=
single_module=$wl-single_module
func_infer_tag $base_compile
@@ -7012,9 +6611,9 @@ func_mode_link ()
while test "$#" -gt 0; do
arg=$1
shift
- func_quote_arg pretty,unquoted "$arg"
- qarg=$func_quote_arg_unquoted_result
- func_append libtool_args " $func_quote_arg_result"
+ func_quote_for_eval "$arg"
+ qarg=$func_quote_for_eval_unquoted_result
+ func_append libtool_args " $func_quote_for_eval_result"
# If the previous option needs an argument, assign it.
if test -n "$prev"; then
@@ -7223,7 +6822,7 @@ func_mode_link ()
case $arg in
[\\/]* | [A-Za-z]:[\\/]*) ;;
*)
- func_fatal_error "argument to -rpath is not absolute: $arg"
+ func_fatal_error "only absolute run-paths are allowed"
;;
esac
if test rpath = "$prev"; then
@@ -7250,13 +6849,6 @@ func_mode_link ()
prev=
continue
;;
- xassembler)
- func_append compiler_flags " -Xassembler $qarg"
- prev=
- func_append compile_command " -Xassembler $qarg"
- func_append finalize_command " -Xassembler $qarg"
- continue
- ;;
xcclinker)
func_append linker_flags " $qarg"
func_append compiler_flags " $qarg"
@@ -7399,7 +6991,7 @@ func_mode_link ()
;;
esac
case $host in
- *-*-cygwin* | *-*-mingw* | *-*-windows* | *-*-pw32* | *-*-os2* | *-cegcc*)
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'`
case :$dllsearchpath: in
*":$dir:"*) ;;
@@ -7419,7 +7011,7 @@ func_mode_link ()
-l*)
if test X-lc = "X$arg" || test X-lm = "X$arg"; then
case $host in
- *-*-cygwin* | *-*-mingw* | *-*-windows* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*)
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*)
# These systems don't actually have a C or math library (as such)
continue
;;
@@ -7427,7 +7019,7 @@ func_mode_link ()
# These systems don't actually have a C library (as such)
test X-lc = "X$arg" && continue
;;
- *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-midnightbsd*)
+ *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*)
# Do not include libc due to us having libc/libc_r.
test X-lc = "X$arg" && continue
;;
@@ -7447,7 +7039,7 @@ func_mode_link ()
esac
elif test X-lc_r = "X$arg"; then
case $host in
- *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-midnightbsd*)
+ *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*)
# Do not include libc_r directly, use -pthread flag.
continue
;;
@@ -7470,29 +7062,16 @@ func_mode_link ()
# Tru64 UNIX uses -model [arg] to determine the layout of C++
# classes, name mangling, and exception handling.
# Darwin uses the -arch flag to determine output architecture.
- # -q <option> for IBM XL C/C++ compiler.
- -model|-arch|-isysroot|--sysroot|-q)
+ -model|-arch|-isysroot|--sysroot)
func_append compiler_flags " $arg"
func_append compile_command " $arg"
func_append finalize_command " $arg"
prev=xcompiler
continue
;;
- # Solaris ld rejects as of 11.4. Refer to Oracle bug 22985199.
- -pthread)
- case $host in
- *solaris2*) ;;
- *)
- case "$new_inherited_linker_flags " in
- *" $arg "*) ;;
- * ) func_append new_inherited_linker_flags " $arg" ;;
- esac
- ;;
- esac
- continue
- ;;
- -mt|-mthreads|-kthread|-Kthread|-pthreads|--thread-safe \
- |-threads|-fopenmp|-fopenmp=*|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
+
+ -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
+ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
func_append compiler_flags " $arg"
func_append compile_command " $arg"
func_append finalize_command " $arg"
@@ -7515,7 +7094,7 @@ func_mode_link ()
-no-install)
case $host in
- *-*-cygwin* | *-*-mingw* | *-*-windows* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*)
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*)
# The PATH hackery in wrapper scripts is required on Windows
# and Darwin in order for the loader to find any dlls it needs.
func_warning "'-no-install' is ignored for $host"
@@ -7575,7 +7154,7 @@ func_mode_link ()
dir=$lt_sysroot$func_stripname_result
;;
*)
- func_fatal_error "argument ($arg) to '-R' is not an absolute path: $dir"
+ func_fatal_error "only absolute run-paths are allowed"
;;
esac
case "$xrpath " in
@@ -7632,9 +7211,9 @@ func_mode_link ()
save_ifs=$IFS; IFS=,
for flag in $args; do
IFS=$save_ifs
- func_quote_arg pretty "$flag"
- func_append arg " $func_quote_arg_result"
- func_append compiler_flags " $func_quote_arg_result"
+ func_quote_for_eval "$flag"
+ func_append arg " $func_quote_for_eval_result"
+ func_append compiler_flags " $func_quote_for_eval_result"
done
IFS=$save_ifs
func_stripname ' ' '' "$arg"
@@ -7648,21 +7227,16 @@ func_mode_link ()
save_ifs=$IFS; IFS=,
for flag in $args; do
IFS=$save_ifs
- func_quote_arg pretty "$flag"
- func_append arg " $wl$func_quote_arg_result"
- func_append compiler_flags " $wl$func_quote_arg_result"
- func_append linker_flags " $func_quote_arg_result"
+ func_quote_for_eval "$flag"
+ func_append arg " $wl$func_quote_for_eval_result"
+ func_append compiler_flags " $wl$func_quote_for_eval_result"
+ func_append linker_flags " $func_quote_for_eval_result"
done
IFS=$save_ifs
func_stripname ' ' '' "$arg"
arg=$func_stripname_result
;;
- -Xassembler)
- prev=xassembler
- continue
- ;;
-
-Xcompiler)
prev=xcompiler
continue
@@ -7680,8 +7254,8 @@ func_mode_link ()
# -msg_* for osf cc
-msg_*)
- func_quote_arg pretty "$arg"
- arg=$func_quote_arg_result
+ func_quote_for_eval "$arg"
+ arg=$func_quote_for_eval_result
;;
# Flags to be passed through unchanged, with rationale:
@@ -7700,31 +7274,12 @@ func_mode_link ()
# -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
# -specs=* GCC specs files
# -stdlib=* select c++ std lib with clang
- # -fdiagnostics-color* simply affects output
- # -frecord-gcc-switches used to verify flags were respected
- # -fsanitize=* Clang/GCC memory and address sanitizer
- # -fno-sanitize* Clang/GCC memory and address sanitizer
- # -shared-libsan Link with shared sanitizer runtimes (Clang)
- # -static-libsan Link with static sanitizer runtimes (Clang)
- # -no-canonical-prefixes Do not expand any symbolic links
- # -fuse-ld=* Linker select flags for GCC
- # -static-* direct GCC to link specific libraries statically
- # -fcilkplus Cilk Plus language extension features for C/C++
- # -rtlib=* select c runtime lib with clang
- # --unwindlib=* select unwinder library with clang
- # -f{file|debug|macro|profile}-prefix-map=* needed for lto linking
- # -Wa,* Pass flags directly to the assembler
- # -Werror, -Werror=* Report (specified) warnings as errors
-64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
-t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
- -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-no-canonical-prefixes| \
- -stdlib=*|-rtlib=*|--unwindlib=*| \
- -specs=*|-fsanitize=*|-fno-sanitize*|-shared-libsan|-static-libsan| \
- -ffile-prefix-map=*|-fdebug-prefix-map=*|-fmacro-prefix-map=*|-fprofile-prefix-map=*| \
- -fdiagnostics-color*|-frecord-gcc-switches| \
- -fuse-ld=*|-static-*|-fcilkplus|-Wa,*|-Werror|-Werror=*)
- func_quote_arg pretty "$arg"
- arg=$func_quote_arg_result
+ -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \
+ -specs=*)
+ func_quote_for_eval "$arg"
+ arg=$func_quote_for_eval_result
func_append compile_command " $arg"
func_append finalize_command " $arg"
func_append compiler_flags " $arg"
@@ -7745,15 +7300,15 @@ func_mode_link ()
continue
else
# Otherwise treat like 'Some other compiler flag' below
- func_quote_arg pretty "$arg"
- arg=$func_quote_arg_result
+ func_quote_for_eval "$arg"
+ arg=$func_quote_for_eval_result
fi
;;
# Some other compiler flag.
-* | +*)
- func_quote_arg pretty "$arg"
- arg=$func_quote_arg_result
+ func_quote_for_eval "$arg"
+ arg=$func_quote_for_eval_result
;;
*.$objext)
@@ -7873,27 +7428,15 @@ func_mode_link ()
*)
# Unknown arguments in both finalize_command and compile_command need
# to be aesthetically quoted because they are evaled later.
- func_quote_arg pretty "$arg"
- arg=$func_quote_arg_result
+ func_quote_for_eval "$arg"
+ arg=$func_quote_for_eval_result
;;
esac # arg
# Now actually substitute the argument into the commands.
if test -n "$arg"; then
- if test -n "$rpath_arg"; then
- func_append finalize_rpath " ${arg##*,}"
- unset rpath_arg
- else
- case $arg in
- -Wl,-rpath,*)
- func_append finalize_rpath " ${arg##*,}";;
- -Wl,-rpath)
- rpath_arg=1;;
- *)
- func_append compile_command " $arg"
- func_append finalize_command " $arg"
- esac
- fi
+ func_append compile_command " $arg"
+ func_append finalize_command " $arg"
fi
done # argument parsing loop
@@ -8064,7 +7607,7 @@ func_mode_link ()
found=false
case $deplib in
-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
- |-threads|-fopenmp|-fopenmp=*|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
+ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
if test prog,link = "$linkmode,$pass"; then
compile_deplibs="$deplib $compile_deplibs"
finalize_deplibs="$deplib $finalize_deplibs"
@@ -8241,15 +7784,18 @@ func_mode_link ()
;;
esac
if $valid_a_lib; then
- func_warning "Linking the shared library $output against the static library $deplib is not portable!"
+ echo
+ $ECHO "*** Warning: Linking the shared library $output against the"
+ $ECHO "*** static library $deplib is not portable!"
deplibs="$deplib $deplibs"
else
- func_warning "Trying to link with static lib archive $deplib."
- func_warning "I have the capability to make that library automatically link in when"
- func_warning "you link to this library. But I can only do this if you have a"
- func_warning "shared version of the library, which you do not appear to have"
- func_warning "because the file extensions .$libext of this argument makes me believe"
- func_warning "that it is just a static archive that I should not use here."
+ echo
+ $ECHO "*** Warning: Trying to link with static lib archive $deplib."
+ echo "*** I have the capability to make that library automatically link in when"
+ echo "*** you link to this library. But I can only do this if you have a"
+ echo "*** shared version of the library, which you do not appear to have"
+ echo "*** because the file extensions .$libext of this argument makes me believe"
+ echo "*** that it is just a static archive that I should not use here."
fi
;;
esac
@@ -8444,7 +7990,7 @@ func_mode_link ()
fi
case $host in
# special handling for platforms with PE-DLLs.
- *cygwin* | *mingw* | *windows* | *cegcc* )
+ *cygwin* | *mingw* | *cegcc* )
# Linker will automatically link against shared library if both
# static and shared are present. Therefore, ensure we extract
# symbols from the import library if a shared library is present
@@ -8544,10 +8090,7 @@ func_mode_link ()
# Make sure the rpath contains only unique directories.
case $temp_rpath: in
*"$absdir:"*) ;;
- *) case $absdir in
- "$progdir/"*) func_append temp_rpath "$absdir:" ;;
- *) func_append temp_rpath_tail "$absdir:" ;;
- esac
+ *) func_append temp_rpath "$absdir:" ;;
esac
fi
@@ -8557,12 +8100,9 @@ func_mode_link ()
case " $sys_lib_dlsearch_path " in
*" $absdir "*) ;;
*)
- case "$compile_rpath$compile_rpath_tail " in
+ case "$compile_rpath " in
*" $absdir "*) ;;
- *) case $absdir in
- "$progdir/"*) func_append compile_rpath " $absdir" ;;
- *) func_append compile_rpath_tail " $absdir" ;;
- esac
+ *) func_append compile_rpath " $absdir" ;;
esac
;;
esac
@@ -8593,8 +8133,8 @@ func_mode_link ()
fi
if test -n "$library_names" &&
{ test no = "$use_static_libs" || test -z "$old_library"; }; then
- case $host_os in
- cygwin* | mingw* | windows* | cegcc* | os2*)
+ case $host in
+ *cygwin* | *mingw* | *cegcc* | *os2*)
# No point in relinking DLLs because paths are not encoded
func_append notinst_deplibs " $lib"
need_relink=no
@@ -8620,11 +8160,11 @@ func_mode_link ()
if test -z "$dlopenmodule" && test yes = "$shouldnotlink" && test link = "$pass"; then
echo
if test prog = "$linkmode"; then
- func_warning "Linking the executable $output against the loadable module"
+ $ECHO "*** Warning: Linking the executable $output against the loadable module"
else
- func_warning "Linking the shared library $output against the loadable module"
+ $ECHO "*** Warning: Linking the shared library $output against the loadable module"
fi
- func_warning "$linklib is not portable!"
+ $ECHO "*** $linklib is not portable!"
fi
if test lib = "$linkmode" &&
test yes = "$hardcode_into_libs"; then
@@ -8634,12 +8174,9 @@ func_mode_link ()
case " $sys_lib_dlsearch_path " in
*" $absdir "*) ;;
*)
- case "$compile_rpath$compile_rpath_tail " in
+ case "$compile_rpath " in
*" $absdir "*) ;;
- *) case $absdir in
- "$progdir/"*) func_append compile_rpath " $absdir" ;;
- *) func_append compile_rpath_tail " $absdir" ;;
- esac
+ *) func_append compile_rpath " $absdir" ;;
esac
;;
esac
@@ -8666,8 +8203,8 @@ func_mode_link ()
soname=$dlname
elif test -n "$soname_spec"; then
# bleh windows
- case $host_os in
- cygwin* | mingw* | windows* | cegcc* | os2*)
+ case $host in
+ *cygwin* | mingw* | *cegcc* | *os2*)
func_arith $current - $age
major=$func_arith_result
versuffix=-$major
@@ -8714,7 +8251,6 @@ func_mode_link ()
case $host in
*-*-sco3.2v5.0.[024]*) add_dir=-L$dir ;;
*-*-sysv4*uw2*) add_dir=-L$dir ;;
- *-*-emscripten*) add_dir=-L$dir ;;
*-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
*-*-unixware7*) add_dir=-L$dir ;;
*-*-darwin* )
@@ -8723,10 +8259,11 @@ func_mode_link ()
if /usr/bin/file -L $add 2> /dev/null |
$GREP ": [^:]* bundle" >/dev/null; then
if test "X$dlopenmodule" != "X$lib"; then
- func_warning "lib $linklib is a module, not a shared library"
+ $ECHO "*** Warning: lib $linklib is a module, not a shared library"
if test -z "$old_library"; then
- func_warning "And there doesn't seem to be a static archive available"
- func_warning "The link will probably fail, sorry"
+ echo
+ echo "*** And there doesn't seem to be a static archive available"
+ echo "*** The link will probably fail, sorry"
else
add=$dir/$old_library
fi
@@ -8809,7 +8346,7 @@ func_mode_link ()
test no = "$hardcode_direct_absolute"; then
add=$libdir/$linklib
elif test yes = "$hardcode_minus_L"; then
- add_dir=-L$lt_sysroot$libdir
+ add_dir=-L$libdir
add=-l$name
elif test yes = "$hardcode_shlibpath_var"; then
case :$finalize_shlibpath: in
@@ -8826,7 +8363,7 @@ func_mode_link ()
fi
else
# We cannot seem to hardcode it, guess we'll fake it.
- add_dir=-L$lt_sysroot$libdir
+ add_dir=-L$libdir
# Try looking first in the location we're being installed to.
if test -n "$inst_prefix_dir"; then
case $libdir in
@@ -8866,19 +8403,21 @@ func_mode_link ()
# Just print a warning and add the library to dependency_libs so
# that the program can be linked against the static library.
- func_warning "This system cannot link to static lib archive $lib."
- func_warning "I have the capability to make that library automatically link in when"
- func_warning "you link to this library. But I can only do this if you have a"
- func_warning "shared version of the library, which you do not appear to have."
+ echo
+ $ECHO "*** Warning: This system cannot link to static lib archive $lib."
+ echo "*** I have the capability to make that library automatically link in when"
+ echo "*** you link to this library. But I can only do this if you have a"
+ echo "*** shared version of the library, which you do not appear to have."
if test yes = "$module"; then
- func_warning "But as you try to build a module library, libtool will still create "
- func_warning "a static module, that should work as long as the dlopening application"
- func_warning "is linked with the -dlopen flag to resolve symbols at runtime."
+ echo "*** But as you try to build a module library, libtool will still create "
+ echo "*** a static module, that should work as long as the dlopening application"
+ echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
if test -z "$global_symbol_pipe"; then
- func_warning "However, this would only work if libtool was able to extract symbol"
- func_warning "lists from a program, using 'nm' or equivalent, but libtool could"
- func_warning "not find such a program. So, this module is probably useless."
- func_warning "'nm' from GNU binutils and a full rebuild may help."
+ echo
+ echo "*** However, this would only work if libtool was able to extract symbol"
+ echo "*** lists from a program, using 'nm' or equivalent, but libtool could"
+ echo "*** not find such a program. So, this module is probably useless."
+ echo "*** 'nm' from GNU binutils and a full rebuild may help."
fi
if test no = "$build_old_libs"; then
build_libtool_libs=module
@@ -9001,10 +8540,6 @@ func_mode_link ()
fi # link_all_deplibs != no
fi # linkmode = lib
done # for deplib in $libs
-
- func_append temp_rpath "$temp_rpath_tail"
- func_append compile_rpath "$compile_rpath_tail"
-
if test link = "$pass"; then
if test prog = "$linkmode"; then
compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
@@ -9042,46 +8577,42 @@ func_mode_link ()
# Add libraries to $var in reverse order
eval tmp_libs=\"\$$var\"
new_libs=
- # FIXME: Pedantically, this is the right thing to do, so
- # that some nasty dependency loop isn't accidentally
- # broken: new_libs="$deplib $new_libs"
for deplib in $tmp_libs; do
- if $opt_preserve_dup_deps; then
- new_libs="$deplib $new_libs"
- else
- # Pragmatically, this seems to cause very few problems in
- # practice:
- case $deplib in
- -L*) new_libs="$deplib $new_libs" ;;
- -R*) ;;
+ # FIXME: Pedantically, this is the right thing to do, so
+ # that some nasty dependency loop isn't accidentally
+ # broken:
+ #new_libs="$deplib $new_libs"
+ # Pragmatically, this seems to cause very few problems in
+ # practice:
+ case $deplib in
+ -L*) new_libs="$deplib $new_libs" ;;
+ -R*) ;;
+ *)
+ # And here is the reason: when a library appears more
+ # than once as an explicit dependence of a library, or
+ # is implicitly linked in more than once by the
+ # compiler, it is considered special, and multiple
+ # occurrences thereof are not removed. Compare this
+ # with having the same library being listed as a
+ # dependency of multiple other libraries: in this case,
+ # we know (pedantically, we assume) the library does not
+ # need to be listed more than once, so we keep only the
+ # last copy. This is not always right, but it is rare
+ # enough that we require users that really mean to play
+ # such unportable linking tricks to link the library
+ # using -Wl,-lname, so that libtool does not consider it
+ # for duplicate removal.
+ case " $specialdeplibs " in
+ *" $deplib "*) new_libs="$deplib $new_libs" ;;
*)
- # And here is the reason: when a library appears more
- # than once as an explicit dependence of a library, or
- # is implicitly linked in more than once by the
- # compiler, it is considered special, and multiple
- # occurrences thereof are not removed. Compare this
- # with having the same library being listed as a
- # dependency of multiple other libraries: in this case,
- # we know (pedantically, we assume) the library does not
- # need to be listed more than once, so we keep only the
- # last copy. This is not always right, but it is rare
- # enough that we require users that really mean to play
- # such unportable linking tricks to link the library
- # using -Wl,-lname, so that libtool does not consider it
- # for duplicate removal. And if not possible for portability
- # reasons, then --preserve-dup-deps should be used.
- case " $specialdeplibs " in
- *" $deplib "*) new_libs="$deplib $new_libs" ;;
- *)
- case " $new_libs " in
- *" $deplib "*) ;;
- *) new_libs="$deplib $new_libs" ;;
- esac
- ;;
- esac
- ;;
+ case " $new_libs " in
+ *" $deplib "*) ;;
+ *) new_libs="$deplib $new_libs" ;;
+ esac
+ ;;
esac
- fi
+ ;;
+ esac
done
tmp_libs=
for deplib in $new_libs; do
@@ -9103,7 +8634,7 @@ func_mode_link ()
test CXX = "$tagname" && {
case $host_os in
linux*)
- case `$CC -V 2>&1 | $SED 5q` in
+ case `$CC -V 2>&1 | sed 5q` in
*Sun\ C*) # Sun C++ 5.9
func_suncc_cstd_abi
@@ -9213,7 +8744,9 @@ func_mode_link ()
if test pass_all != "$deplibs_check_method"; then
func_fatal_error "cannot build libtool library '$output' from non-libtool objects on this host:$objs"
else
- func_warning "Linking the shared library $output against the non-libtool objects $objs is not portable!"
+ echo
+ $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
+ $ECHO "*** objects $objs is not portable!"
func_append libobjs " $objs"
fi
fi
@@ -9274,13 +8807,13 @@ func_mode_link ()
#
case $version_type in
# correct linux to gnu/linux during the next big refactor
- darwin|freebsd-elf|linux|midnightbsd-elf|osf|qnx|windows|none)
+ darwin|freebsd-elf|linux|osf|windows|none)
func_arith $number_major + $number_minor
current=$func_arith_result
age=$number_minor
revision=$number_revision
;;
- freebsd-aout|sco|sunos)
+ freebsd-aout|qnx|sunos)
current=$number_major
revision=$number_minor
age=0
@@ -9292,9 +8825,6 @@ func_mode_link ()
revision=$number_minor
lt_irix_increment=no
;;
- *)
- func_fatal_configuration "$modename: unknown library version type '$version_type'"
- ;;
esac
;;
no)
@@ -9368,7 +8898,7 @@ func_mode_link ()
versuffix=.$current.$revision
;;
- freebsd-elf | midnightbsd-elf)
+ freebsd-elf)
func_arith $current - $age
major=.$func_arith_result
versuffix=$major.$age.$revision
@@ -9430,9 +8960,8 @@ func_mode_link ()
;;
qnx)
- func_arith $current - $age
- major=.$func_arith_result
- versuffix=$major.$age.$revision
+ major=.$current
+ versuffix=.$current
;;
sco)
@@ -9585,7 +9114,7 @@ func_mode_link ()
if test yes = "$build_libtool_libs"; then
if test -n "$rpath"; then
case $host in
- *-*-cygwin* | *-*-mingw* | *-*-windows* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*)
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*)
# these systems don't actually have a c library (as such)!
;;
*-*-rhapsody* | *-*-darwin1.[012])
@@ -9595,7 +9124,7 @@ func_mode_link ()
*-*-netbsd*)
# Don't link with libc until the a.out ld.so is fixed.
;;
- *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-midnightbsd*)
+ *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
# Do not include libc due to us having libc/libc_r.
;;
*-*-sco3.2v5* | *-*-sco5v6*)
@@ -9636,6 +9165,108 @@ func_mode_link ()
# implementing what was already the behavior.
newdeplibs=$deplibs
;;
+ test_compile)
+ # This code stresses the "libraries are programs" paradigm to its
+ # limits. Maybe even breaks it. We compile a program, linking it
+ # against the deplibs as a proxy for the library. Then we can check
+ # whether they linked in statically or dynamically with ldd.
+ $opt_dry_run || $RM conftest.c
+ cat > conftest.c <<EOF
+ int main() { return 0; }
+EOF
+ $opt_dry_run || $RM conftest
+ if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
+ ldd_output=`ldd conftest`
+ for i in $deplibs; do
+ case $i in
+ -l*)
+ func_stripname -l '' "$i"
+ name=$func_stripname_result
+ if test yes = "$allow_libtool_libs_with_static_runtimes"; then
+ case " $predeps $postdeps " in
+ *" $i "*)
+ func_append newdeplibs " $i"
+ i=
+ ;;
+ esac
+ fi
+ if test -n "$i"; then
+ libname=`eval "\\$ECHO \"$libname_spec\""`
+ deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
+ set dummy $deplib_matches; shift
+ deplib_match=$1
+ if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0; then
+ func_append newdeplibs " $i"
+ else
+ droppeddeps=yes
+ echo
+ $ECHO "*** Warning: dynamic linker does not accept needed library $i."
+ echo "*** I have the capability to make that library automatically link in when"
+ echo "*** you link to this library. But I can only do this if you have a"
+ echo "*** shared version of the library, which I believe you do not have"
+ echo "*** because a test_compile did reveal that the linker did not use it for"
+ echo "*** its dynamic dependency list that programs get resolved with at runtime."
+ fi
+ fi
+ ;;
+ *)
+ func_append newdeplibs " $i"
+ ;;
+ esac
+ done
+ else
+ # Error occurred in the first compile. Let's try to salvage
+ # the situation: Compile a separate program for each library.
+ for i in $deplibs; do
+ case $i in
+ -l*)
+ func_stripname -l '' "$i"
+ name=$func_stripname_result
+ $opt_dry_run || $RM conftest
+ if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
+ ldd_output=`ldd conftest`
+ if test yes = "$allow_libtool_libs_with_static_runtimes"; then
+ case " $predeps $postdeps " in
+ *" $i "*)
+ func_append newdeplibs " $i"
+ i=
+ ;;
+ esac
+ fi
+ if test -n "$i"; then
+ libname=`eval "\\$ECHO \"$libname_spec\""`
+ deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
+ set dummy $deplib_matches; shift
+ deplib_match=$1
+ if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0; then
+ func_append newdeplibs " $i"
+ else
+ droppeddeps=yes
+ echo
+ $ECHO "*** Warning: dynamic linker does not accept needed library $i."
+ echo "*** I have the capability to make that library automatically link in when"
+ echo "*** you link to this library. But I can only do this if you have a"
+ echo "*** shared version of the library, which you do not appear to have"
+ echo "*** because a test_compile did reveal that the linker did not use this one"
+ echo "*** as a dynamic dependency that programs can get resolved with at runtime."
+ fi
+ fi
+ else
+ droppeddeps=yes
+ echo
+ $ECHO "*** Warning! Library $i is needed by this library but I was not able to"
+ echo "*** make it link in! You will probably need to install it or some"
+ echo "*** library that it depends on before this library will be fully"
+ echo "*** functional. Installing it before continuing would be even better."
+ fi
+ ;;
+ *)
+ func_append newdeplibs " $i"
+ ;;
+ esac
+ done
+ fi
+ ;;
file_magic*)
set dummy $deplibs_check_method; shift
file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
@@ -9699,16 +9330,17 @@ func_mode_link ()
fi
if test -n "$a_deplib"; then
droppeddeps=yes
- func_warning "Linker path does not have real file for library $a_deplib."
- func_warning "I have the capability to make that library automatically link in when"
- func_warning "you link to this library. But I can only do this if you have a"
- func_warning "shared version of the library, which you do not appear to have"
- func_warning "because I did check the linker path looking for a file starting"
+ echo
+ $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
+ echo "*** I have the capability to make that library automatically link in when"
+ echo "*** you link to this library. But I can only do this if you have a"
+ echo "*** shared version of the library, which you do not appear to have"
+ echo "*** because I did check the linker path looking for a file starting"
if test -z "$potlib"; then
- func_warning "with $libname but no candidates were found. (...for file magic test)"
+ $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
else
- func_warning "with $libname and none of the candidates passed a file format test"
- func_warning "using a file magic. Last file checked: $potlib"
+ $ECHO "*** with $libname and none of the candidates passed a file format test"
+ $ECHO "*** using a file magic. Last file checked: $potlib"
fi
fi
;;
@@ -9752,16 +9384,17 @@ func_mode_link ()
fi
if test -n "$a_deplib"; then
droppeddeps=yes
- func_warning "Linker path does not have real file for library $a_deplib."
- func_warning "I have the capability to make that library automatically link in when"
- func_warning "you link to this library. But I can only do this if you have a"
- func_warning "shared version of the library, which you do not appear to have"
- func_warning "because I did check the linker path looking for a file starting"
+ echo
+ $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
+ echo "*** I have the capability to make that library automatically link in when"
+ echo "*** you link to this library. But I can only do this if you have a"
+ echo "*** shared version of the library, which you do not appear to have"
+ echo "*** because I did check the linker path looking for a file starting"
if test -z "$potlib"; then
- func_warning "with $libname but no candidates were found. (...for regex pattern test)"
+ $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
else
- func_warning "with $libname and none of the candidates passed a file format test"
- func_warning "using a regex pattern. Last file checked: $potlib"
+ $ECHO "*** with $libname and none of the candidates passed a file format test"
+ $ECHO "*** using a regex pattern. Last file checked: $potlib"
fi
fi
;;
@@ -9785,11 +9418,11 @@ func_mode_link ()
*[!\ \ ]*)
echo
if test none = "$deplibs_check_method"; then
- func_warning "Inter-library dependencies are not supported in this platform."
+ echo "*** Warning: inter-library dependencies are not supported in this platform."
else
- func_warning "Inter-library dependencies are not known to be supported."
+ echo "*** Warning: inter-library dependencies are not known to be supported."
fi
- func_warning "All declared inter-library dependencies are being dropped."
+ echo "*** All declared inter-library dependencies are being dropped."
droppeddeps=yes
;;
esac
@@ -9810,15 +9443,17 @@ func_mode_link ()
if test yes = "$droppeddeps"; then
if test yes = "$module"; then
- func_warning "libtool could not satisfy all declared inter-library"
- func_warning "dependencies of module $libname. Therefore, libtool will create"
- func_warning "a static module, that should work as long as the dlopening"
- func_warning "application is linked with the -dlopen flag."
+ echo
+ echo "*** Warning: libtool could not satisfy all declared inter-library"
+ $ECHO "*** dependencies of module $libname. Therefore, libtool will create"
+ echo "*** a static module, that should work as long as the dlopening"
+ echo "*** application is linked with the -dlopen flag."
if test -z "$global_symbol_pipe"; then
- func_warning "However, this would only work if libtool was able to extract symbol"
- func_warning "lists from a program, using 'nm' or equivalent, but libtool could"
- func_warning "not find such a program. So, this module is probably useless."
- func_warning "'nm' from GNU binutils and a full rebuild may help."
+ echo
+ echo "*** However, this would only work if libtool was able to extract symbol"
+ echo "*** lists from a program, using 'nm' or equivalent, but libtool could"
+ echo "*** not find such a program. So, this module is probably useless."
+ echo "*** 'nm' from GNU binutils and a full rebuild may help."
fi
if test no = "$build_old_libs"; then
oldlibs=$output_objdir/$libname.$libext
@@ -9993,7 +9628,7 @@ func_mode_link ()
orig_export_symbols=
case $host_os in
- cygwin* | mingw* | windows* | cegcc*)
+ cygwin* | mingw* | cegcc*)
if test -n "$export_symbols" && test -z "$export_symbols_regex"; then
# exporting using user supplied symfile
func_dll_def_p "$export_symbols" || {
@@ -10191,7 +9826,20 @@ func_mode_link ()
last_robj=
k=1
- if test -n "$save_libobjs" && test : != "$skipped_export" && test -n "$file_list_spec"; then
+ if test -n "$save_libobjs" && test : != "$skipped_export" && test yes = "$with_gnu_ld"; then
+ output=$output_objdir/$output_la.lnkscript
+ func_verbose "creating GNU ld script: $output"
+ echo 'INPUT (' > $output
+ for obj in $save_libobjs
+ do
+ func_to_tool_file "$obj"
+ $ECHO "$func_to_tool_file_result" >> $output
+ done
+ echo ')' >> $output
+ func_append delfiles " $output"
+ func_to_tool_file "$output"
+ output=$func_to_tool_file_result
+ elif test -n "$save_libobjs" && test : != "$skipped_export" && test -n "$file_list_spec"; then
output=$output_objdir/$output_la.lnk
func_verbose "creating linker input file list: $output"
: > $output
@@ -10210,19 +9858,6 @@ func_mode_link ()
func_append delfiles " $output"
func_to_tool_file "$output"
output=$firstobj\"$file_list_spec$func_to_tool_file_result\"
- elif test -n "$save_libobjs" && test : != "$skipped_export" && test yes = "$with_gnu_ld"; then
- output=$output_objdir/$output_la.lnkscript
- func_verbose "creating GNU ld script: $output"
- echo 'INPUT (' > $output
- for obj in $save_libobjs
- do
- func_to_tool_file "$obj"
- $ECHO "$func_to_tool_file_result" >> $output
- done
- echo ')' >> $output
- func_append delfiles " $output"
- func_to_tool_file "$output"
- output=$func_to_tool_file_result
else
if test -n "$save_libobjs"; then
func_verbose "creating reloadable object files..."
@@ -10300,8 +9935,8 @@ func_mode_link ()
for cmd in $concat_cmds; do
IFS=$save_ifs
$opt_quiet || {
- func_quote_arg expand,pretty "$cmd"
- eval "func_echo $func_quote_arg_result"
+ func_quote_for_expand "$cmd"
+ eval "func_echo $func_quote_for_expand_result"
}
$opt_dry_run || eval "$cmd" || {
lt_exit=$?
@@ -10394,8 +10029,8 @@ func_mode_link ()
eval cmd=\"$cmd\"
IFS=$save_ifs
$opt_quiet || {
- func_quote_arg expand,pretty "$cmd"
- eval "func_echo $func_quote_arg_result"
+ func_quote_for_expand "$cmd"
+ eval "func_echo $func_quote_for_expand_result"
}
$opt_dry_run || eval "$cmd" || {
lt_exit=$?
@@ -10663,7 +10298,7 @@ func_mode_link ()
esac
fi
case $host in
- *-*-cygwin* | *-*-mingw* | *-*-windows* | *-*-pw32* | *-*-os2* | *-cegcc*)
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
testbindir=`$ECHO "$libdir" | $SED -e 's*/lib$*/bin*'`
case :$dllsearchpath: in
*":$libdir:"*) ;;
@@ -10741,7 +10376,7 @@ func_mode_link ()
# Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway.
wrappers_required=false
;;
- *cygwin* | *mingw* | *windows* )
+ *cygwin* | *mingw* )
test yes = "$build_libtool_libs" || wrappers_required=false
;;
*)
@@ -10869,13 +10504,12 @@ func_mode_link ()
elif eval var_value=\$$var; test -z "$var_value"; then
relink_command="$var=; export $var; $relink_command"
else
- func_quote_arg pretty "$var_value"
- relink_command="$var=$func_quote_arg_result; export $var; $relink_command"
+ func_quote_for_eval "$var_value"
+ relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
fi
done
- func_quote eval cd "`pwd`"
- func_quote_arg pretty,unquoted "($func_quote_result; $relink_command)"
- relink_command=$func_quote_arg_unquoted_result
+ relink_command="(cd `pwd`; $relink_command)"
+ relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
fi
# Only actually do things if not in dry run mode.
@@ -10895,7 +10529,7 @@ func_mode_link ()
*) exeext= ;;
esac
case $host in
- *cygwin* | *mingw* | windows* )
+ *cygwin* | *mingw* )
func_dirname_and_basename "$output" "" "."
output_name=$func_basename_result
output_path=$func_dirname_result
@@ -11115,15 +10749,13 @@ func_mode_link ()
elif eval var_value=\$$var; test -z "$var_value"; then
relink_command="$var=; export $var; $relink_command"
else
- func_quote_arg pretty,unquoted "$var_value"
- relink_command="$var=$func_quote_arg_unquoted_result; export $var; $relink_command"
+ func_quote_for_eval "$var_value"
+ relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
fi
done
# Quote the link command for shipping.
- func_quote eval cd "`pwd`"
- relink_command="($func_quote_result; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
- func_quote_arg pretty,unquoted "$relink_command"
- relink_command=$func_quote_arg_unquoted_result
+ relink_command="(cd `pwd`; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
+ relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
if test yes = "$hardcode_automatic"; then
relink_command=
fi
@@ -11229,7 +10861,7 @@ func_mode_link ()
# tests/bindir.at for full details.
tdlname=$dlname
case $host,$output,$installed,$module,$dlname in
- *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *windows*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll)
+ *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll)
# If a -bindir argument was supplied, place the dll there.
if test -n "$bindir"; then
func_relative_path "$install_libdir" "$bindir"
diff --git a/pythonmod/interface.i b/pythonmod/interface.i
index 2040fb9e8adf..7ac868df5002 100644
--- a/pythonmod/interface.i
+++ b/pythonmod/interface.i
@@ -732,8 +732,8 @@ struct module_env {
char* tls_auth_name, struct module_qstate* q, int* was_ratelimited);
void (*detach_subs)(struct module_qstate* qstate);
int (*attach_sub)(struct module_qstate* qstate,
- struct query_info* qinfo, uint16_t qflags, int prime,
- int valrec, struct module_qstate** newq);
+ struct query_info* qinfo, struct respip_client_info* cinfo,
+ uint16_t qflags, int prime, int valrec, struct module_qstate** newq);
void (*kill_sub)(struct module_qstate* newq);
int (*detect_cycle)(struct module_qstate* qstate,
struct query_info* qinfo, uint16_t flags, int prime,
diff --git a/pythonmod/pythonmod.c b/pythonmod/pythonmod.c
index e231ad079172..7cd9a7543fdd 100644
--- a/pythonmod/pythonmod.c
+++ b/pythonmod/pythonmod.c
@@ -454,7 +454,7 @@ int pythonmod_init(struct module_env* env, int id)
if(PyDict_SetItemString(pe->data, "script", fname) < 0) {
log_err("pythonmod: could not add item to dictionary");
Py_XDECREF(fname);
- goto python_init_fail;
+ goto fail_close_file;
}
Py_XDECREF(fname);
Py_XINCREF(pe->data); /* reference will be stolen below */
@@ -462,7 +462,7 @@ int pythonmod_init(struct module_env* env, int id)
log_err("pythonmod: could not add mod_env object");
Py_XDECREF(pe->data); /* 2 times, here and on python_init_fail; */
/* on failure the reference is not stolen */
- goto python_init_fail;
+ goto fail_close_file;
}
if (PyRun_SimpleFile(script_py, pe->fname) < 0) {
@@ -493,31 +493,15 @@ int pythonmod_init(struct module_env* env, int id)
flen = (size_t)ftell(script_py);
fstr = malloc(flen+1);
if(!fstr) {
- log_err("malloc failure to print parse error");
-
-/* close the file */
-#if PY_MAJOR_VERSION < 3
- Py_XDECREF(PyFileObject);
-#else
- fclose(script_py);
-#endif
-
- goto python_init_fail;
+ log_err("malloc failure to print parse error");
+ goto fail_close_file;
}
fseek(script_py, 0, SEEK_SET);
if(fread(fstr, flen, 1, script_py) < 1) {
- log_err("file read failed to print parse error: %s: %s",
+ log_err("file read failed to print parse error: %s: %s",
pe->fname, strerror(errno));
- free(fstr);
-
-/* close the file */
-#if PY_MAJOR_VERSION < 3
- Py_XDECREF(PyFileObject);
-#else
- fclose(script_py);
-#endif
-
- goto python_init_fail;
+ free(fstr);
+ goto fail_close_file;
}
fstr[flen] = 0;
/* we compile the string, but do not run it, to stop side-effects */
@@ -527,21 +511,13 @@ int pythonmod_init(struct module_env* env, int id)
#endif
log_py_err();
-
-/* close the file */
-#if PY_MAJOR_VERSION < 3
- Py_XDECREF(PyFileObject);
-#else
- fclose(script_py);
-#endif
-
#if PY_MAJOR_VERSION <= 2 || (PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION < 9)
/* no cleanup needed for python before 3.9 */
#else
/* cleanup for python 3.9 and newer */
free(fstr);
#endif
- goto python_init_fail;
+ goto fail_close_file;
}
/* close the file */
@@ -602,6 +578,13 @@ int pythonmod_init(struct module_env* env, int id)
PyGILState_Release(gil);
return 1;
+fail_close_file:
+#if PY_MAJOR_VERSION < 3
+ Py_XDECREF(PyFileObject);
+#else
+ fclose(script_py);
+#endif
+
python_init_fail:
Py_XDECREF(pe->module);
Py_XDECREF(pe->dict);
diff --git a/respip/respip.c b/respip/respip.c
index 353a0fd783e5..ff12114dec97 100644
--- a/respip/respip.c
+++ b/respip/respip.c
@@ -973,6 +973,9 @@ respip_rewrite_reply(const struct query_info* qinfo,
lock_rw_unlock(&raddr->lock);
lock_rw_unlock(&a->lock);
lock_rw_unlock(&az->rpz_lock);
+ if(view) {
+ lock_rw_unlock(&view->lock);
+ }
return 0;
}
if(rpz_used) {
@@ -1074,7 +1077,8 @@ generate_cname_request(struct module_qstate* qstate,
subqi.qtype = qstate->qinfo.qtype;
subqi.qclass = qstate->qinfo.qclass;
fptr_ok(fptr_whitelist_modenv_attach_sub(qstate->env->attach_sub));
- return (*qstate->env->attach_sub)(qstate, &subqi, BIT_RD, 0, 0, &subq);
+ return (*qstate->env->attach_sub)(qstate, &subqi,
+ qstate->client_info, BIT_RD, 0, 0, &subq);
}
void
@@ -1233,7 +1237,8 @@ respip_inform_super(struct module_qstate* qstate, int id,
struct respip_qstate* rq = (struct respip_qstate*)super->minfo[id];
struct reply_info* new_rep = NULL;
- rq->state = RESPIP_SUBQUERY_FINISHED;
+ if(rq)
+ rq->state = RESPIP_SUBQUERY_FINISHED;
/* respip subquery should have always been created with a valid reply
* in super. */
diff --git a/services/authzone.c b/services/authzone.c
index 60ccc8698748..ebcdc7e43643 100644
--- a/services/authzone.c
+++ b/services/authzone.c
@@ -171,7 +171,7 @@ get_rrset_ttl(struct ub_packed_rrset_key* k)
/** Copy rrset into region from domain-datanode and packet rrset */
static struct ub_packed_rrset_key*
auth_packed_rrset_copy_region(struct auth_zone* z, struct auth_data* node,
- struct auth_rrset* rrset, struct regional* region, time_t adjust)
+ struct auth_rrset* rrset, struct regional* region)
{
struct ub_packed_rrset_key key;
memset(&key, 0, sizeof(key));
@@ -182,7 +182,7 @@ auth_packed_rrset_copy_region(struct auth_zone* z, struct auth_data* node,
key.rk.type = htons(rrset->type);
key.rk.rrset_class = htons(z->dclass);
key.entry.hash = rrset_key_hash(&key.rk);
- return packed_rrset_copy_region(&key, region, adjust);
+ return packed_rrset_copy_region(&key, region, 0);
}
/** fix up msg->rep TTL and prefetch ttl */
@@ -236,7 +236,7 @@ msg_add_rrset_an(struct auth_zone* z, struct regional* region,
return 0;
/* copy it */
if(!(msg->rep->rrsets[msg->rep->rrset_count] =
- auth_packed_rrset_copy_region(z, node, rrset, region, 0)))
+ auth_packed_rrset_copy_region(z, node, rrset, region)))
return 0;
msg->rep->rrset_count++;
msg->rep->an_numrrsets++;
@@ -260,7 +260,7 @@ msg_add_rrset_ns(struct auth_zone* z, struct regional* region,
return 0;
/* copy it */
if(!(msg->rep->rrsets[msg->rep->rrset_count] =
- auth_packed_rrset_copy_region(z, node, rrset, region, 0)))
+ auth_packed_rrset_copy_region(z, node, rrset, region)))
return 0;
msg->rep->rrset_count++;
msg->rep->ns_numrrsets++;
@@ -283,7 +283,7 @@ msg_add_rrset_ar(struct auth_zone* z, struct regional* region,
return 0;
/* copy it */
if(!(msg->rep->rrsets[msg->rep->rrset_count] =
- auth_packed_rrset_copy_region(z, node, rrset, region, 0)))
+ auth_packed_rrset_copy_region(z, node, rrset, region)))
return 0;
msg->rep->rrset_count++;
msg->rep->ar_numrrsets++;
@@ -1369,6 +1369,10 @@ decompress_rr_into_buffer(struct sldns_buffer* buf, uint8_t* pkt,
uncompressed_len = pkt_dname_len(&pktbuf);
if(!uncompressed_len)
return 0; /* parse error in dname */
+ compressed_len = sldns_buffer_position(
+ &pktbuf) - oldpos;
+ if(compressed_len > rdlen)
+ return 0; /* dname exceeds rdata */
if(!sldns_buffer_available(buf,
uncompressed_len))
/* dname too long for buffer */
@@ -1376,14 +1380,15 @@ decompress_rr_into_buffer(struct sldns_buffer* buf, uint8_t* pkt,
dname_pkt_copy(&pktbuf,
sldns_buffer_current(buf), rd);
sldns_buffer_skip(buf, (ssize_t)uncompressed_len);
- compressed_len = sldns_buffer_position(
- &pktbuf) - oldpos;
rd += compressed_len;
rdlen -= compressed_len;
count--;
len = 0;
break;
case LDNS_RDF_TYPE_STR:
+ /* Check rdlen for resilience, because it is
+ * checked above, that rdlen > 0 */
+ if(rdlen < 1) return 0; /* malformed */
len = rd[0] + 1;
break;
default:
@@ -1391,6 +1396,8 @@ decompress_rr_into_buffer(struct sldns_buffer* buf, uint8_t* pkt,
break;
}
if(len) {
+ if(len > rdlen)
+ return 0; /* malformed */
if(!sldns_buffer_available(buf, len))
return 0; /* too long for buffer */
sldns_buffer_write(buf, rd, len);
@@ -1998,12 +2005,21 @@ auth_zone_get_serial(struct auth_zone* z, uint32_t* serial)
struct auth_data* apex;
struct auth_rrset* soa;
struct packed_rrset_data* d;
+ size_t primlen, mboxlen;
apex = az_find_name(z, z->name, z->namelen);
if(!apex) return 0;
soa = az_domain_rrset(apex, LDNS_RR_TYPE_SOA);
if(!soa || soa->data->count==0)
return 0; /* no RRset or no RRs in rrset */
if(soa->data->rr_len[0] < 2+4*5) return 0; /* SOA too short */
+ if((primlen = dname_valid(soa->data->rr_data[0]+2,
+ soa->data->rr_len[0]-2)) == 0)
+ return 0; /* primary dname malformed */
+ if((mboxlen = dname_valid(soa->data->rr_data[0]+2+primlen,
+ soa->data->rr_len[0]-2-primlen)) == 0)
+ return 0; /* mailbox dname malformed */
+ if(2+primlen+mboxlen+4*5 != soa->data->rr_len[0])
+ return 0; /* rdata malformed */
d = soa->data;
*serial = sldns_read_uint32(d->rr_data[0]+(d->rr_len[0]-20));
return 1;
@@ -2016,12 +2032,21 @@ xfr_find_soa(struct auth_zone* z, struct auth_xfer* xfr)
struct auth_data* apex;
struct auth_rrset* soa;
struct packed_rrset_data* d;
+ size_t primlen, mboxlen;
apex = az_find_name(z, z->name, z->namelen);
if(!apex) return 0;
soa = az_domain_rrset(apex, LDNS_RR_TYPE_SOA);
if(!soa || soa->data->count==0)
return 0; /* no RRset or no RRs in rrset */
if(soa->data->rr_len[0] < 2+4*5) return 0; /* SOA too short */
+ if((primlen = dname_valid(soa->data->rr_data[0]+2,
+ soa->data->rr_len[0]-2)) == 0)
+ return 0; /* primary dname malformed */
+ if((mboxlen = dname_valid(soa->data->rr_data[0]+2+primlen,
+ soa->data->rr_len[0]-2-primlen)) == 0)
+ return 0; /* mailbox dname malformed */
+ if(2+primlen+mboxlen+4*5 != soa->data->rr_len[0])
+ return 0; /* rdata malformed */
/* SOA record ends with serial, refresh, retry, expiry, minimum,
* as 4 byte fields */
d = soa->data;
@@ -3990,6 +4015,22 @@ auth_master_copy(struct auth_master* o)
return m;
}
+/** append the master to the copied list. */
+static int
+auth_master_copy_and_append(struct auth_master* p, struct auth_master** list,
+ struct auth_master** last)
+{
+ struct auth_master* m = auth_master_copy(p);
+ if(!m) {
+ return 0;
+ }
+ m->next = NULL;
+ if(*last) (*last)->next = m;
+ if(!*list) *list = m;
+ *last = m;
+ return 1;
+}
+
/** copy the master addresses from the task_probe lookups to the allow_notify
* list of masters */
static void
@@ -3998,17 +4039,27 @@ probe_copy_masters_for_allow_notify(struct auth_xfer* xfr)
struct auth_master* list = NULL, *last = NULL;
struct auth_master* p;
/* build up new list with copies */
+ /* The list in task probe has been looked up before the list in
+ * task transfer. */
+ for(p = xfr->task_probe->masters; p; p=p->next) {
+ if(!auth_master_copy_and_append(p, &list, &last)) {
+ auth_free_masters(list);
+ /* failed because of malloc failure, use old list */
+ return;
+ }
+ }
+ /* The list in task transfer also contains the http entries. */
for(p = xfr->task_transfer->masters; p; p=p->next) {
- struct auth_master* m = auth_master_copy(p);
- if(!m) {
+ /* Copy the http entries from this lookup. The allow_notify
+ * entries are not looked up from this list. The other
+ * ones are already in from the probe lookups. */
+ if(!p->http)
+ continue;
+ if(!auth_master_copy_and_append(p, &list, &last)) {
auth_free_masters(list);
/* failed because of malloc failure, use old list */
return;
}
- m->next = NULL;
- if(last) last->next = m;
- if(!list) list = m;
- last = m;
}
/* success, replace list */
auth_free_masters(xfr->allow_notify_list);
@@ -4556,6 +4607,23 @@ http_parse_ttl(sldns_buffer* buf, struct sldns_file_parse_state* pstate)
return 0;
}
+/** remove newlines from collated line */
+static void
+chunkline_newline_removal(sldns_buffer* buf)
+{
+ size_t i, end=sldns_buffer_limit(buf);
+ for(i=0; i<end; i++) {
+ char c = (char)sldns_buffer_read_u8_at(buf, i);
+ if(c == '\n' && i==end-1) {
+ sldns_buffer_write_u8_at(buf, i, 0);
+ sldns_buffer_set_limit(buf, end-1);
+ return;
+ }
+ if(c == '\n')
+ sldns_buffer_write_u8_at(buf, i, (uint8_t)' ');
+ }
+}
+
/** find noncomment RR line in chunks, collates lines if ( ) format */
static int
chunkline_non_comment_RR(struct auth_chunk** chunk, size_t* chunk_pos,
@@ -4563,6 +4631,7 @@ chunkline_non_comment_RR(struct auth_chunk** chunk, size_t* chunk_pos,
{
int ret;
while(chunkline_get_line_collated(chunk, chunk_pos, buf)) {
+ chunkline_newline_removal(buf);
if(chunkline_is_comment_line_or_empty(buf)) {
/* a comment, go to next line */
continue;
@@ -4638,23 +4707,6 @@ chunklist_sum(struct auth_chunk* list)
return s;
}
-/** remove newlines from collated line */
-static void
-chunkline_newline_removal(sldns_buffer* buf)
-{
- size_t i, end=sldns_buffer_limit(buf);
- for(i=0; i<end; i++) {
- char c = (char)sldns_buffer_read_u8_at(buf, i);
- if(c == '\n' && i==end-1) {
- sldns_buffer_write_u8_at(buf, i, 0);
- sldns_buffer_set_limit(buf, end-1);
- return;
- }
- if(c == '\n')
- sldns_buffer_write_u8_at(buf, i, (uint8_t)' ');
- }
-}
-
/** for http download, parse and add RR to zone */
static int
http_parse_add_rr(struct auth_xfer* xfr, struct auth_zone* z,
@@ -6668,6 +6720,18 @@ xfr_probe_lookup_host(struct auth_xfer* xfr, struct module_env* env)
return 1;
}
+/** return true if there are probe (SOA UDP query) targets in the master list*/
+static int
+have_probe_targets(struct auth_master* list)
+{
+ struct auth_master* p;
+ for(p=list; p; p = p->next) {
+ if(!p->allow_notify && p->host)
+ return 1;
+ }
+ return 0;
+}
+
/** move to sending the probe packets, next if fails. task_probe */
static void
xfr_probe_send_or_end(struct auth_xfer* xfr, struct module_env* env)
@@ -6707,6 +6771,16 @@ xfr_probe_send_or_end(struct auth_xfer* xfr, struct module_env* env)
verbose(VERB_ALGO, "auth zone %s probe: finished only_lookup", zname);
}
xfr_probe_disown(xfr);
+ if(!have_probe_targets(xfr->task_probe->masters)) {
+ /* If there are no masters to probe, go to transfer. */
+ if(xfr->task_transfer->worker == NULL) {
+ xfr_start_transfer(xfr, env, NULL);
+ return;
+ }
+ /* The transfer is already in progress. */
+ lock_basic_unlock(&xfr->lock);
+ return;
+ }
if(xfr->task_nextprobe->worker == NULL)
xfr_set_timeout(xfr, env, 0, 0);
lock_basic_unlock(&xfr->lock);
@@ -6863,18 +6937,6 @@ auth_xfer_timer(void* arg)
}
}
-/** return true if there are probe (SOA UDP query) targets in the master list*/
-static int
-have_probe_targets(struct auth_master* list)
-{
- struct auth_master* p;
- for(p=list; p; p = p->next) {
- if(!p->allow_notify && p->host)
- return 1;
- }
- return 0;
-}
-
/** start task_probe if possible, if no masters for probe start task_transfer
* returns true if task has been started, and false if the task is already
* in progress. */
@@ -6886,7 +6948,9 @@ xfr_start_probe(struct auth_xfer* xfr, struct module_env* env,
* progress (due to notify)) */
if(xfr->task_probe->worker == NULL) {
if(!have_probe_targets(xfr->task_probe->masters) &&
- !(xfr->task_probe->only_lookup &&
+ xfr->task_probe->masters != NULL)
+ xfr->task_probe->only_lookup = 1;
+ if(!(xfr->task_probe->only_lookup &&
xfr->task_probe->masters != NULL)) {
/* useless to pick up task_probe, no masters to
* probe. Instead attempt to pick up task transfer */
diff --git a/services/cache/dns.c b/services/cache/dns.c
index 351b3568c80b..c593dcd72ceb 100644
--- a/services/cache/dns.c
+++ b/services/cache/dns.c
@@ -60,10 +60,10 @@
* @param rep: contains list of rrsets to store.
* @param now: current time.
* @param leeway: during prefetch how much leeway to update TTLs.
- * This makes rrsets (other than type NS) timeout sooner so they get
- * updated with a new full TTL.
- * Type NS does not get this, because it must not be refreshed from the
- * child domain, but keep counting down properly.
+ * This makes rrsets expire sooner so they get updated with a new full
+ * TTL.
+ * Child side type NS does get this but TTL checks are done using the time
+ * the query was created rather than the time the answer was received.
* @param pside: if from parentside discovered NS, so that its NS is okay
* in a prefetch situation to be updated (without becoming sticky).
* @param qrep: update rrsets here if cache is better
@@ -100,11 +100,20 @@ store_rrsets(struct module_env* env, struct reply_info* rep, time_t now,
rep->ref[i].id != rep->ref[i].key->id)
ck = NULL;
else ck = packed_rrset_copy_region(
- rep->ref[i].key, region, now);
+ rep->ref[i].key, region,
+ ((ntohs(rep->ref[i].key->rk.type)==
+ LDNS_RR_TYPE_NS && !pside)?qstarttime:now));
lock_rw_unlock(&rep->ref[i].key->entry.lock);
if(ck) {
/* use cached copy if memory allows */
qrep->rrsets[i] = ck;
+ ttl = ((struct packed_rrset_data*)
+ ck->entry.data)->ttl;
+ if(ttl < qrep->ttl) {
+ qrep->ttl = ttl;
+ qrep->prefetch_ttl = PREFETCH_TTL_CALC(qrep->ttl);
+ qrep->serve_expired_ttl = qrep->ttl + SERVE_EXPIRED_TTL;
+ }
}
}
/* no break: also copy key item */
@@ -169,10 +178,12 @@ dns_cache_store_msg(struct module_env* env, struct query_info* qinfo,
/* there was a reply_info_sortref(rep) here but it seems to be
* unnecessary, because the cache gets locked per rrset. */
- reply_info_set_ttls(rep, *env->now);
+ if((flags & DNSCACHE_STORE_EXPIRED_MSG_CACHEDB)) {
+ reply_info_absolute_ttls(rep, *env->now, *env->now - ttl);
+ } else reply_info_set_ttls(rep, *env->now);
store_rrsets(env, rep, *env->now, leeway, pside, qrep, region,
qstarttime);
- if(ttl == 0 && !(flags & DNSCACHE_STORE_ZEROTTL)) {
+ if(ttl == 0) {
/* we do not store the message, but we did store the RRs,
* which could be useful for delegation information */
verbose(VERB_ALGO, "TTL 0: dropped msg from cache");
@@ -221,8 +232,15 @@ find_closest_of_type(struct module_env* env, uint8_t* qname, size_t qnamelen,
/* snip off front part of qname until the type is found */
while(qnamelen > 0) {
- if((rrset = rrset_cache_lookup(env->rrset_cache, qname,
- qnamelen, searchtype, qclass, 0, now, 0))) {
+ rrset = rrset_cache_lookup(env->rrset_cache, qname,
+ qnamelen, searchtype, qclass, 0, now, 0);
+ if(!rrset && searchtype == LDNS_RR_TYPE_DNAME)
+ /* If not found, for type DNAME, try 0TTL stored,
+ * for its grace period. */
+ rrset = rrset_cache_lookup(env->rrset_cache, qname,
+ qnamelen, searchtype, qclass,
+ PACKED_RRSET_UPSTREAM_0TTL, now, 0);
+ if(rrset) {
uint8_t* origqname = qname;
size_t origqnamelen = qnamelen;
if(!noexpiredabove)
@@ -272,8 +290,10 @@ addr_to_additional(struct ub_packed_rrset_key* rrset, struct regional* region,
{
if((msg->rep->rrsets[msg->rep->rrset_count] =
packed_rrset_copy_region(rrset, region, now))) {
+ struct packed_rrset_data* d = rrset->entry.data;
msg->rep->ar_numrrsets++;
msg->rep->rrset_count++;
+ UPDATE_TTL_FROM_RRSET(msg->rep->ttl, d->ttl);
}
}
@@ -456,8 +476,10 @@ find_add_ds(struct module_env* env, struct regional* region,
/* add it to auth section. This is the second rrset. */
if((msg->rep->rrsets[msg->rep->rrset_count] =
packed_rrset_copy_region(rrset, region, now))) {
+ struct packed_rrset_data* d = rrset->entry.data;
msg->rep->ns_numrrsets++;
msg->rep->rrset_count++;
+ UPDATE_TTL_FROM_RRSET(msg->rep->ttl, d->ttl);
}
lock_rw_unlock(&rrset->entry.lock);
}
@@ -487,6 +509,8 @@ dns_msg_create(uint8_t* qname, size_t qnamelen, uint16_t qtype,
return NULL; /* integer overflow protection */
msg->rep->flags = BIT_QR; /* with QR, no AA */
msg->rep->qdcount = 1;
+ msg->rep->ttl = MAX_TTL; /* will be updated (brought down) while we add
+ * rrsets to the message */
msg->rep->reason_bogus = LDNS_EDE_NONE;
msg->rep->rrsets = (struct ub_packed_rrset_key**)
regional_alloc(region,
@@ -497,24 +521,28 @@ dns_msg_create(uint8_t* qname, size_t qnamelen, uint16_t qtype,
}
int
-dns_msg_authadd(struct dns_msg* msg, struct regional* region,
+dns_msg_authadd(struct dns_msg* msg, struct regional* region,
struct ub_packed_rrset_key* rrset, time_t now)
{
- if(!(msg->rep->rrsets[msg->rep->rrset_count++] =
+ struct packed_rrset_data* d = rrset->entry.data;
+ if(!(msg->rep->rrsets[msg->rep->rrset_count++] =
packed_rrset_copy_region(rrset, region, now)))
return 0;
msg->rep->ns_numrrsets++;
+ UPDATE_TTL_FROM_RRSET(msg->rep->ttl, d->ttl);
return 1;
}
int
-dns_msg_ansadd(struct dns_msg* msg, struct regional* region,
+dns_msg_ansadd(struct dns_msg* msg, struct regional* region,
struct ub_packed_rrset_key* rrset, time_t now)
{
- if(!(msg->rep->rrsets[msg->rep->rrset_count++] =
+ struct packed_rrset_data* d = rrset->entry.data;
+ if(!(msg->rep->rrsets[msg->rep->rrset_count++] =
packed_rrset_copy_region(rrset, region, now)))
return 0;
msg->rep->an_numrrsets++;
+ UPDATE_TTL_FROM_RRSET(msg->rep->ttl, d->ttl);
return 1;
}
@@ -585,6 +613,7 @@ gen_dns_msg(struct regional* region, struct query_info* q, size_t num)
sizeof(struct reply_info) - sizeof(struct rrset_ref));
if(!msg->rep)
return NULL;
+ msg->rep->ttl = MAX_TTL;
msg->rep->reason_bogus = LDNS_EDE_NONE;
msg->rep->reason_bogus_str = NULL;
if(num > RR_COUNT_MAX)
@@ -606,13 +635,13 @@ tomsg(struct module_env* env, struct query_info* q, struct reply_info* r,
size_t i;
int is_expired = 0;
time_t now_control = now;
- if(now > r->ttl) {
+ if(TTL_IS_EXPIRED(r->ttl, now)) {
/* Check if we are allowed to serve expired */
if(!allow_expired || !reply_info_can_answer_expired(r, now))
return NULL;
- /* Change the current time so we can pass the below TTL checks when
- * serving expired data. */
- now_control = r->ttl - env->cfg->serve_expired_reply_ttl;
+ /* Change the current time so we can pass the below TTL checks
+ * when serving expired data. */
+ now_control = 0;
is_expired = 1;
}
@@ -620,15 +649,6 @@ tomsg(struct module_env* env, struct query_info* q, struct reply_info* r,
if(!msg) return NULL;
msg->rep->flags = r->flags;
msg->rep->qdcount = r->qdcount;
- msg->rep->ttl = is_expired
- ?SERVE_EXPIRED_REPLY_TTL
- :r->ttl - now;
- if(r->prefetch_ttl > now)
- msg->rep->prefetch_ttl = r->prefetch_ttl - now;
- else
- msg->rep->prefetch_ttl = PREFETCH_TTL_CALC(msg->rep->ttl);
- msg->rep->serve_expired_ttl = msg->rep->ttl + SERVE_EXPIRED_TTL;
- msg->rep->serve_expired_norec_ttl = 0;
msg->rep->security = r->security;
msg->rep->an_numrrsets = r->an_numrrsets;
msg->rep->ns_numrrsets = r->ns_numrrsets;
@@ -656,13 +676,30 @@ tomsg(struct module_env* env, struct query_info* q, struct reply_info* r,
return NULL;
}
for(i=0; i<msg->rep->rrset_count; i++) {
+ struct packed_rrset_data* d;
msg->rep->rrsets[i] = packed_rrset_copy_region(r->rrsets[i],
region, now);
if(!msg->rep->rrsets[i]) {
rrset_array_unlock(r->ref, r->rrset_count);
return NULL;
}
+ d = msg->rep->rrsets[i]->entry.data;
+ UPDATE_TTL_FROM_RRSET(msg->rep->ttl, d->ttl);
+ }
+ if(msg->rep->rrset_count < 1) {
+ msg->rep->ttl = is_expired
+ ?SERVE_EXPIRED_REPLY_TTL
+ :r->ttl - now;
+ if(r->prefetch_ttl > now)
+ msg->rep->prefetch_ttl = r->prefetch_ttl - now;
+ else
+ msg->rep->prefetch_ttl = PREFETCH_TTL_CALC(msg->rep->ttl);
+ } else {
+ /* msg->rep->ttl has been updated through the RRSets above */
+ msg->rep->prefetch_ttl = PREFETCH_TTL_CALC(msg->rep->ttl);
}
+ msg->rep->serve_expired_ttl = msg->rep->ttl + SERVE_EXPIRED_TTL;
+ msg->rep->serve_expired_norec_ttl = 0;
if(env)
rrset_array_unlock_touch(env->rrset_cache, scratch, r->ref,
r->rrset_count);
@@ -701,7 +738,7 @@ rrset_msg(struct ub_packed_rrset_key* rrset, struct regional* region,
struct dns_msg* msg;
struct packed_rrset_data* d = (struct packed_rrset_data*)
rrset->entry.data;
- if(now > d->ttl)
+ if(TTL_IS_EXPIRED(d->ttl, now))
return NULL;
msg = gen_dns_msg(region, q, 1); /* only the CNAME (or other) RRset */
if(!msg)
@@ -736,8 +773,15 @@ synth_dname_msg(struct ub_packed_rrset_key* rrset, struct regional* region,
rrset->entry.data;
uint8_t* newname, *dtarg = NULL;
size_t newlen, dtarglen;
- if(now > d->ttl)
- return NULL;
+ time_t rr_ttl;
+ if(TTL_IS_EXPIRED(d->ttl, now)) {
+ /* Allow TTL=0 DNAME from upstream within grace period */
+ if(!(rrset->rk.flags & PACKED_RRSET_UPSTREAM_0TTL))
+ return NULL;
+ rr_ttl = 0;
+ } else {
+ rr_ttl = d->ttl - now;
+ }
/* only allow validated (with DNSSEC) DNAMEs used from cache
* for insecure DNAMEs, query again. */
*sec_status = d->security;
@@ -749,7 +793,7 @@ synth_dname_msg(struct ub_packed_rrset_key* rrset, struct regional* region,
msg->rep->flags = BIT_QR; /* reply, no AA, no error */
msg->rep->authoritative = 0; /* reply stored in cache can't be authoritative */
msg->rep->qdcount = 1;
- msg->rep->ttl = d->ttl - now;
+ msg->rep->ttl = rr_ttl;
msg->rep->prefetch_ttl = PREFETCH_TTL_CALC(msg->rep->ttl);
msg->rep->serve_expired_ttl = msg->rep->ttl + SERVE_EXPIRED_TTL;
msg->rep->serve_expired_norec_ttl = 0;
@@ -801,7 +845,7 @@ synth_dname_msg(struct ub_packed_rrset_key* rrset, struct regional* region,
if(!newd)
return NULL;
ck->entry.data = newd;
- newd->ttl = d->ttl - now; /* RFC6672: synth CNAME TTL == DNAME TTL */
+ newd->ttl = rr_ttl; /* RFC6672: synth CNAME TTL == DNAME TTL */
newd->count = 1;
newd->rrsig_count = 0;
newd->trust = rrset_trust_ans_noAA;
@@ -844,6 +888,8 @@ fill_any(struct module_env* env,
/* set NOTIMPL for RFC 8482 */
msg->rep->flags |= LDNS_RCODE_NOTIMPL;
msg->rep->security = sec_status_indeterminate;
+ msg->rep->ttl = 1; /* empty NOTIMPL response will never be
+ * updated with rrsets, set TTL to 1 */
return msg;
}
@@ -1069,7 +1115,7 @@ dns_cache_store(struct module_env* env, struct query_info* msgqinf,
msgqinf->qclass, flags, 0, 1);
if(e) {
struct reply_info* cached = e->entry.data;
- if(cached->ttl < *env->now
+ if(TTL_IS_EXPIRED(cached->ttl, *env->now)
&& reply_info_could_use_expired(cached, *env->now)
/* If we are validating make sure only
* validating modules can update such messages.
diff --git a/services/cache/dns.h b/services/cache/dns.h
index 8aa6b44bc341..41d42e60d070 100644
--- a/services/cache/dns.h
+++ b/services/cache/dns.h
@@ -53,7 +53,7 @@ struct delegpt;
* Must be an unsigned 32-bit value larger than 0xffff */
/** Allow caching a DNS message with a zero TTL. */
-#define DNSCACHE_STORE_ZEROTTL 0x100000
+#define DNSCACHE_STORE_EXPIRED_MSG_CACHEDB 0x100000
/**
* Region allocated message reply
diff --git a/services/cache/infra.c b/services/cache/infra.c
index cf999422d002..4d2cd8d491f0 100644
--- a/services/cache/infra.c
+++ b/services/cache/infra.c
@@ -1269,7 +1269,8 @@ int infra_wait_limit_allowed(struct infra_cache* infra, struct comm_reply* rep,
int cookie_valid, struct config_file* cfg)
{
struct lruhash_entry* entry;
- if(cfg->wait_limit == 0)
+ if(cfg->wait_limit == 0 ||
+ (cookie_valid && cfg->wait_limit_cookie == 0))
return 1;
entry = infra_find_ip_ratedata(infra, &rep->client_addr,
diff --git a/services/cache/rrset.c b/services/cache/rrset.c
index 6d5c24f8053e..c1716a565783 100644
--- a/services/cache/rrset.c
+++ b/services/cache/rrset.c
@@ -131,7 +131,7 @@ need_to_update_rrset(void* nd, void* cd, time_t timenow, int equal, int ns)
struct packed_rrset_data* newd = (struct packed_rrset_data*)nd;
struct packed_rrset_data* cached = (struct packed_rrset_data*)cd;
/* o if new data is expired, cached data is better */
- if( newd->ttl < timenow && timenow <= cached->ttl)
+ if( TTL_IS_EXPIRED(newd->ttl, timenow) && !TTL_IS_EXPIRED(cached->ttl, timenow))
return 0;
/* o store if rrset has been validated
* everything better than bogus data
@@ -146,13 +146,13 @@ need_to_update_rrset(void* nd, void* cd, time_t timenow, int equal, int ns)
if( newd->trust > cached->trust ) {
/* if the cached rrset is bogus, and new is equal,
* do not update the TTL - let it expire. */
- if(equal && cached->ttl >= timenow &&
+ if(equal && !TTL_IS_EXPIRED(cached->ttl, timenow) &&
cached->security == sec_status_bogus)
return 0;
return 1;
}
/* o item in cache has expired */
- if( cached->ttl < timenow )
+ if( TTL_IS_EXPIRED(cached->ttl, timenow) )
return 1;
/* o same trust, but different in data - insert it */
if( newd->trust == cached->trust && !equal ) {
@@ -278,6 +278,10 @@ void rrset_cache_update_wildcard(struct rrset_cache* rrset_cache,
(void)rrset_cache_update(rrset_cache, &ref, alloc, timenow);
}
+/** Grace period in seconds for TTL=0 DNAME rrsets (RFC 2308: do not cache).
+ * Allows synthesis from cache within this window to reduce recursion load. */
+#define DNAME_TTL0_GRACE_SECONDS 1
+
struct ub_packed_rrset_key*
rrset_cache_lookup(struct rrset_cache* r, uint8_t* qname, size_t qnamelen,
uint16_t qtype, uint16_t qclass, uint32_t flags, time_t timenow,
@@ -300,27 +304,36 @@ rrset_cache_lookup(struct rrset_cache* r, uint8_t* qname, size_t qnamelen,
/* check TTL */
struct packed_rrset_data* data =
(struct packed_rrset_data*)e->data;
- if(timenow > data->ttl) {
- lock_rw_unlock(&e->lock);
- return NULL;
+ struct ub_packed_rrset_key* k = (struct ub_packed_rrset_key*)e->key;
+ if(TTL_IS_EXPIRED(data->ttl, timenow)) {
+ /* Allow TTL=0 DNAME within grace period for synthesis */
+ if(qtype == LDNS_RR_TYPE_DNAME &&
+ (k->rk.flags & PACKED_RRSET_UPSTREAM_0TTL) &&
+ (timenow - data->ttl_add) <= DNAME_TTL0_GRACE_SECONDS) {
+ /* within grace: allow for synthesis */
+ } else {
+ lock_rw_unlock(&e->lock);
+ return NULL;
+ }
}
/* we're done */
- return (struct ub_packed_rrset_key*)e->key;
+ return k;
}
return NULL;
}
-int
+int
rrset_array_lock(struct rrset_ref* ref, size_t count, time_t timenow)
{
size_t i;
+ struct packed_rrset_data* d;
for(i=0; i<count; i++) {
if(i>0 && ref[i].key == ref[i-1].key)
continue; /* only lock items once */
lock_rw_rdlock(&ref[i].key->entry.lock);
- if(ref[i].id != ref[i].key->id || timenow >
- ((struct packed_rrset_data*)(ref[i].key->entry.data))
- ->ttl) {
+ d = ref[i].key->entry.data;
+ if(ref[i].id != ref[i].key->id ||
+ TTL_IS_EXPIRED(d->ttl, timenow)) {
/* failure! rollback our readlocks */
rrset_array_unlock(ref, i+1);
return 0;
@@ -511,7 +524,7 @@ rrset_cache_expired_above(struct rrset_cache* r, uint8_t** qname, size_t*
*qnamelen, searchtype, qclass, 0, 0, 0))) {
struct packed_rrset_data* data =
(struct packed_rrset_data*)rrset->entry.data;
- if(now > data->ttl) {
+ if(TTL_IS_EXPIRED(data->ttl, now)) {
/* it is expired, this is not wanted */
lock_rw_unlock(&rrset->entry.lock);
log_nametypeclass(VERB_ALGO, "this rrset is expired", *qname, searchtype, qclass);
diff --git a/services/listen_dnsport.c b/services/listen_dnsport.c
index f7fcca194b40..5db2b940bc04 100644
--- a/services/listen_dnsport.c
+++ b/services/listen_dnsport.c
@@ -1564,7 +1564,7 @@ listen_create(struct comm_base* base, struct listen_port* ports,
cp = comm_point_create_udp(base, ports->fd,
front->udp_buff, ports->pp2_enabled, cb,
cb_arg, ports->socket);
- } else if(ports->ftype == listen_type_doq) {
+ } else if(ports->ftype == listen_type_doq && doq_table) {
#ifndef HAVE_NGTCP2
log_warn("Unbound is not compiled with "
"ngtcp2. This is required to use DNS "
@@ -2300,21 +2300,8 @@ int
tcp_req_info_handle_read_close(struct tcp_req_info* req)
{
verbose(VERB_ALGO, "tcp channel read side closed %d", req->cp->fd);
- /* reset byte count for (potential) partial read */
- req->cp->tcp_byte_count = 0;
- /* if we still have results to write, pick up next and write it */
- if(req->num_done_req != 0) {
- tcp_req_pickup_next_result(req);
- tcp_req_info_setup_listen(req);
- return 1;
- }
- /* if nothing to do, this closes the connection */
- if(req->num_open_req == 0 && req->num_done_req == 0)
- return 0;
- /* otherwise, we must be waiting for dns resolve, wait with timeout */
- req->read_is_closed = 1;
- tcp_req_info_setup_listen(req);
- return 1;
+ /* RFC 7766 6.2.4 says to drop pending replies when client closes. */
+ return 0; /* drop connection */
}
void
@@ -2884,6 +2871,7 @@ submit_http_error:
sldns_buffer_flip(h2_stream->qbuffer);
h2_session->postpone_drop = 1;
query_read_done = http2_query_read_done(h2_session, h2_stream);
+ h2_session->postpone_drop = 0;
if(query_read_done < 0)
return NGHTTP2_ERR_CALLBACK_FAILURE;
else if(!query_read_done) {
@@ -2893,11 +2881,9 @@ submit_http_error:
* failure will result in reclaiming (and closing)
* of comm point. */
verbose(VERB_QUERY, "http2 query dropped in worker cb");
- h2_session->postpone_drop = 0;
return NGHTTP2_ERR_CALLBACK_FAILURE;
}
/* nothing to submit right now, query added to mesh. */
- h2_session->postpone_drop = 0;
return 0;
}
if(!http2_submit_dns_response(h2_session)) {
@@ -3275,14 +3261,18 @@ nghttp2_session_callbacks* http2_req_callbacks_create(void)
struct doq_table*
doq_table_create(struct config_file* cfg, struct ub_randstate* rnd)
{
- struct doq_table* table = calloc(1, sizeof(*table));
+ struct doq_table* table;
+
+ if (!cfg->quic_port)
+ return NULL;
+ table = calloc(1, sizeof(*table));
if(!table)
return NULL;
#ifdef USE_NGTCP2_CRYPTO_OSSL
/* Initialize the ossl crypto, it is harmless to call twice,
* and this is before use of doq connections. */
if(ngtcp2_crypto_ossl_init() != 0) {
- log_err("ngtcp2_crypto_oss_init failed");
+ log_err("ngtcp2_crypto_ossl_init failed");
free(table);
return NULL;
}
@@ -3354,7 +3344,7 @@ conn_tree_del(rbnode_type* node, void* arg)
{
struct doq_table* table = (struct doq_table*)arg;
struct doq_conn* conn;
- if(!node)
+ if(!node || !table)
return;
conn = (struct doq_conn*)node->key;
if(conn->timer.timer_in_list) {
@@ -3413,6 +3403,7 @@ doq_timer_find_time(struct doq_table* table, struct timeval* tv)
{
struct doq_timer key;
struct rbnode_type* node;
+ log_assert(table != NULL);
memset(&key, 0, sizeof(key));
key.time.tv_sec = tv->tv_sec;
key.time.tv_usec = tv->tv_usec;
@@ -3776,7 +3767,7 @@ doq_repinfo_retrieve_localaddr(struct comm_reply* repinfo,
memset(sa6, 0, *localaddrlen);
sa6->sin6_family = AF_INET6;
memmove(&sa6->sin6_addr, &repinfo->pktinfo.v6info.ipi6_addr,
- *localaddrlen);
+ sizeof(struct in6_addr));
sa6->sin6_port = repinfo->doq_srcport;
#endif
} else {
@@ -3786,7 +3777,7 @@ doq_repinfo_retrieve_localaddr(struct comm_reply* repinfo,
memset(sa, 0, *localaddrlen);
sa->sin_family = AF_INET;
memmove(&sa->sin_addr, &repinfo->pktinfo.v4info.ipi_addr,
- *localaddrlen);
+ sizeof(struct in_addr));
sa->sin_port = repinfo->doq_srcport;
#elif defined(IP_RECVDSTADDR)
struct sockaddr_in* sa = (struct sockaddr_in*)localaddr;
@@ -4922,6 +4913,7 @@ doq_conid_find(struct doq_table* table, const uint8_t* data, size_t datalen)
key.node.key = &key;
key.cid = (void*)data;
key.cidlen = datalen;
+ log_assert(table != NULL);
node = rbtree_search(table->conid_tree, &key);
if(node)
return (struct doq_conid*)node->key;
@@ -5662,6 +5654,8 @@ doq_table_quic_size_available(struct doq_table* table,
struct config_file* cfg, size_t mem)
{
size_t cur;
+ if (!table)
+ return 0;
lock_basic_lock(&table->size_lock);
cur = table->current_size;
lock_basic_unlock(&table->size_lock);
diff --git a/services/localzone.c b/services/localzone.c
index 9ea98c250907..52166ae2d2bd 100644
--- a/services/localzone.c
+++ b/services/localzone.c
@@ -56,6 +56,24 @@
* with 16 bytes for an A record, a 64K packet has about 4000 max */
#define LOCALZONE_RRSET_COUNT_MAX 4096
+static const char* default_zones_reverse_array[] = {
+ "127.in-addr.arpa.", /* reverse ip4 zone */
+ "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa.", /* reverse ip6 zone */
+ 0
+};
+const char** local_zones_default_reverse = default_zones_reverse_array;
+
+static const char* default_zones_special_array[] = {
+ "test.", /* RFC 6761 */
+ "invalid.", /* RFC 6761 */
+ "onion.", /* RFC 7686 */
+ "home.arpa.", /* RFC 8375 */
+ "resolver.arpa.", /* RFC 9462 */
+ "service.arpa.", /* RFC 9665 */
+ 0
+};
+const char** local_zones_default_special = default_zones_special_array;
+
/** print all RRsets in local zone */
static void
local_zone_out(struct local_zone* z)
@@ -650,7 +668,7 @@ lz_enter_rr_str(struct local_zones* zones, const char* rr)
}
labs = dname_count_size_labels(rr_name, &len);
lock_rw_rdlock(&zones->lock);
- z = local_zones_lookup(zones, rr_name, len, labs, rr_class, rr_type);
+ z = local_zones_lookup(zones, rr_name, len, labs, rr_class, rr_type, 1);
if(!z) {
lock_rw_unlock(&zones->lock);
fatal_exit("internal error: no zone for rr %s", rr);
@@ -834,7 +852,7 @@ lz_nodefault(struct config_file* cfg, const char* name)
for(p = cfg->local_zones_nodefault; p; p = p->next) {
/* compare zone name, lowercase, compare without ending . */
- if(strncasecmp(p->str, name, len) == 0 &&
+ if(strncasecmp(p->str, name, len) == 0 &&
(strlen(p->str) == len || (strlen(p->str)==len+1 &&
p->str[len] == '.')))
return 1;
@@ -842,6 +860,45 @@ lz_nodefault(struct config_file* cfg, const char* name)
return 0;
}
+/** enter reverse default zone */
+static int
+add_reverse_default(struct local_zones* zones, struct config_file* cfg,
+ const char* name)
+{
+ struct local_zone* z;
+ char str[1024]; /* known long enough */
+ if(lz_exists(zones, name) || lz_nodefault(cfg, name))
+ return 1; /* do not enter default content */
+ if(!(z=lz_enter_zone(zones, name, "static", LDNS_RR_CLASS_IN)))
+ return 0;
+ snprintf(str, sizeof(str), "%s 10800 IN SOA localhost. "
+ "nobody.invalid. 1 3600 1200 604800 10800", name);
+ if(!lz_enter_rr_into_zone(z, str)) {
+ lock_rw_unlock(&z->lock);
+ return 0;
+ }
+ snprintf(str, sizeof(str), "%s 10800 IN NS localhost. ", name);
+ if(!lz_enter_rr_into_zone(z, str)) {
+ lock_rw_unlock(&z->lock);
+ return 0;
+ }
+ if(strncasecmp("127.in-addr.arpa.", name, 17) == 0) {
+ if(!lz_enter_rr_into_zone(z,
+ "1.0.0.127.in-addr.arpa. 10800 IN PTR localhost.")) {
+ lock_rw_unlock(&z->lock);
+ return 0;
+ }
+ } else if(strncasecmp("1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa.", name, 73) == 0) {
+ snprintf(str, sizeof(str), "%s 10800 IN PTR localhost.", name);
+ if(!lz_enter_rr_into_zone(z, str)) {
+ lock_rw_unlock(&z->lock);
+ return 0;
+ }
+ }
+ lock_rw_unlock(&z->lock);
+ return 1;
+}
+
/** enter (AS112) empty default zone */
static int
add_empty_default(struct local_zones* zones, struct config_file* cfg,
@@ -902,72 +959,23 @@ int local_zone_enter_defaults(struct local_zones* zones, struct config_file* cfg
}
lock_rw_unlock(&z->lock);
}
- /* reverse ip4 zone */
- if(!lz_exists(zones, "127.in-addr.arpa.") &&
- !lz_nodefault(cfg, "127.in-addr.arpa.")) {
- if(!(z=lz_enter_zone(zones, "127.in-addr.arpa.", "static",
- LDNS_RR_CLASS_IN)) ||
- !lz_enter_rr_into_zone(z,
- "127.in-addr.arpa. 10800 IN NS localhost.") ||
- !lz_enter_rr_into_zone(z,
- "127.in-addr.arpa. 10800 IN SOA localhost. "
- "nobody.invalid. 1 3600 1200 604800 10800") ||
- !lz_enter_rr_into_zone(z,
- "1.0.0.127.in-addr.arpa. 10800 IN PTR localhost.")) {
+
+ /* ip4 and ip6 reverse */
+ for(zstr = local_zones_default_reverse; *zstr; zstr++) {
+ if(!add_reverse_default(zones, cfg, *zstr)) {
log_err("out of memory adding default zone");
- if(z) { lock_rw_unlock(&z->lock); }
return 0;
}
- lock_rw_unlock(&z->lock);
}
- /* reverse ip6 zone */
- if(!lz_exists(zones, "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa.") &&
- !lz_nodefault(cfg, "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa.")) {
- if(!(z=lz_enter_zone(zones, "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa.", "static",
- LDNS_RR_CLASS_IN)) ||
- !lz_enter_rr_into_zone(z,
- "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa. 10800 IN NS localhost.") ||
- !lz_enter_rr_into_zone(z,
- "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa. 10800 IN SOA localhost. "
- "nobody.invalid. 1 3600 1200 604800 10800") ||
- !lz_enter_rr_into_zone(z,
- "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa. 10800 IN PTR localhost.")) {
+
+ /* special-use zones */
+ for(zstr = local_zones_default_special; *zstr; zstr++) {
+ if(!add_empty_default(zones, cfg, *zstr)) {
log_err("out of memory adding default zone");
- if(z) { lock_rw_unlock(&z->lock); }
return 0;
}
- lock_rw_unlock(&z->lock);
- }
- /* home.arpa. zone (RFC 8375) */
- if(!add_empty_default(zones, cfg, "home.arpa.")) {
- log_err("out of memory adding default zone");
- return 0;
- }
- /* resolver.arpa. zone (RFC 9462) */
- if(!add_empty_default(zones, cfg, "resolver.arpa.")) {
- log_err("out of memory adding default zone");
- return 0;
- }
- /* service.arpa. zone (draft-ietf-dnssd-srp-25) */
- if(!add_empty_default(zones, cfg, "service.arpa.")) {
- log_err("out of memory adding default zone");
- return 0;
- }
- /* onion. zone (RFC 7686) */
- if(!add_empty_default(zones, cfg, "onion.")) {
- log_err("out of memory adding default zone");
- return 0;
- }
- /* test. zone (RFC 6761) */
- if(!add_empty_default(zones, cfg, "test.")) {
- log_err("out of memory adding default zone");
- return 0;
- }
- /* invalid. zone (RFC 6761) */
- if(!add_empty_default(zones, cfg, "invalid.")) {
- log_err("out of memory adding default zone");
- return 0;
}
+
/* block AS112 zones, unless asked not to */
if(!cfg->unblock_lan_zones) {
for(zstr = as112_zones; *zstr; zstr++) {
@@ -1062,14 +1070,15 @@ lz_setup_implicit(struct local_zones* zones, struct config_file* cfg)
labs = dname_count_size_labels(rr_name, &len);
lock_rw_rdlock(&zones->lock);
if(!local_zones_lookup(zones, rr_name, len, labs, rr_class,
- rr_type)) {
+ rr_type, 1)) {
/* Check if there is a zone that this could go
* under but for different class; created zones are
* always for LDNS_RR_CLASS_IN. Create the zone with
* a different class but the same configured
* local_zone_type. */
struct local_zone* z = local_zones_lookup(zones,
- rr_name, len, labs, LDNS_RR_CLASS_IN, rr_type);
+ rr_name, len, labs, LDNS_RR_CLASS_IN, rr_type,
+ 1);
if(z) {
uint8_t* name = memdup(z->name, z->namelen);
size_t znamelen = z->namelen;
@@ -1231,28 +1240,48 @@ local_zones_apply_cfg(struct local_zones* zones, struct config_file* cfg)
struct local_zone*
local_zones_lookup(struct local_zones* zones,
- uint8_t* name, size_t len, int labs, uint16_t dclass, uint16_t dtype)
+ uint8_t* name, size_t len, int labs, uint16_t dclass, uint16_t dtype,
+ int foradd)
{
return local_zones_tags_lookup(zones, name, len, labs,
- dclass, dtype, NULL, 0, 1);
+ dclass, dtype, NULL, 0, 1, foradd);
}
struct local_zone*
local_zones_tags_lookup(struct local_zones* zones,
uint8_t* name, size_t len, int labs, uint16_t dclass, uint16_t dtype,
- uint8_t* taglist, size_t taglen, int ignoretags)
+ uint8_t* taglist, size_t taglen, int ignoretags, int foradd)
{
rbnode_type* res = NULL;
struct local_zone *result;
struct local_zone key;
int m;
+ key.node.key = &key;
+ key.dclass = dclass;
/* for type DS use a zone higher when on a zonecut */
if(dtype == LDNS_RR_TYPE_DS && !dname_is_root(name)) {
- dname_remove_label(&name, &len);
- labs--;
+ /* If this is at a zone cut, of a local-zone, and it is
+ * of type always_refuse. Then also refuse the type DS
+ * for it. That could make it DNSSEC bogus, but it is
+ * REFUSED anyway. It stops CNAME type answers in the
+ * type DS lookup. */
+ key.name = name;
+ key.namelen = len;
+ key.namelabs = labs;
+ /* For additions and removals, use the ordinary rule,
+ * to remove a label for type DS to locate the parent zone.
+ * That is where the DS RR needs to be put. */
+ if(!foradd &&
+ (result=(struct local_zone*)rbtree_search(
+ &zones->ztree, &key)) != NULL &&
+ result->type == local_zone_always_refuse) {
+ /* The type DS does not go up one label. */
+ return result;
+ } else {
+ dname_remove_label(&name, &len);
+ labs--;
+ }
}
- key.node.key = &key;
- key.dclass = dclass;
key.name = name;
key.namelen = len;
key.namelabs = labs;
@@ -1863,7 +1892,7 @@ local_zones_answer(struct local_zones* zones, struct module_env* env,
if(view->local_zones &&
(z = local_zones_lookup(view->local_zones,
qinfo->qname, qinfo->qname_len, labs,
- qinfo->qclass, qinfo->qtype))) {
+ qinfo->qclass, qinfo->qtype, 0))) {
lock_rw_rdlock(&z->lock);
lzt = z->type;
}
@@ -1897,7 +1926,7 @@ local_zones_answer(struct local_zones* zones, struct module_env* env,
lock_rw_rdlock(&zones->lock);
if(!(z = local_zones_tags_lookup(zones, qinfo->qname,
qinfo->qname_len, labs, qinfo->qclass, qinfo->qtype,
- taglist, taglen, 0))) {
+ taglist, taglen, 0, 0))) {
lock_rw_unlock(&zones->lock);
return 0;
}
@@ -2102,7 +2131,8 @@ local_zones_add_RR(struct local_zones* zones, const char* rr)
/* could first try readlock then get writelock if zone does not exist,
* but we do not add enough RRs (from multiple threads) to optimize */
lock_rw_wrlock(&zones->lock);
- z = local_zones_lookup(zones, rr_name, len, labs, rr_class, rr_type);
+ z = local_zones_lookup(zones, rr_name, len, labs, rr_class, rr_type,
+ 1);
if(!z) {
z = local_zones_add_zone(zones, rr_name, len, labs, rr_class,
local_zone_transparent);
@@ -2180,7 +2210,8 @@ void local_zones_del_data(struct local_zones* zones,
/* remove DS */
lock_rw_rdlock(&zones->lock);
- z = local_zones_lookup(zones, name, len, labs, dclass, LDNS_RR_TYPE_DS);
+ z = local_zones_lookup(zones, name, len, labs, dclass, LDNS_RR_TYPE_DS,
+ 1);
if(z) {
lock_rw_wrlock(&z->lock);
d = local_zone_find_data(z, name, len, labs);
@@ -2194,7 +2225,7 @@ void local_zones_del_data(struct local_zones* zones,
/* remove other types */
lock_rw_rdlock(&zones->lock);
- z = local_zones_lookup(zones, name, len, labs, dclass, 0);
+ z = local_zones_lookup(zones, name, len, labs, dclass, 0, 1);
if(!z) {
/* no such zone, we're done */
lock_rw_unlock(&zones->lock);
diff --git a/services/localzone.h b/services/localzone.h
index 66102fd98f7e..76c011836030 100644
--- a/services/localzone.h
+++ b/services/localzone.h
@@ -57,6 +57,9 @@ struct sldns_buffer;
struct comm_reply;
struct config_strlist;
+extern const char** local_zones_default_special;
+extern const char** local_zones_default_reverse;
+
/**
* Local zone type
* This type determines processing for queries that did not match
@@ -262,11 +265,13 @@ void local_zone_delete(struct local_zone* z);
* @param taglen: length of taglist.
* @param ignoretags: lookup zone by name and class, regardless the
* local-zone's tags.
+ * @param foradd: if the lookup is for addition or removal of the type.
+ * Used for type DS. The lookup for answers turns this off.
* @return closest local_zone or NULL if no covering zone is found.
*/
struct local_zone* local_zones_tags_lookup(struct local_zones* zones,
uint8_t* name, size_t len, int labs, uint16_t dclass, uint16_t dtype,
- uint8_t* taglist, size_t taglen, int ignoretags);
+ uint8_t* taglist, size_t taglen, int ignoretags, int foradd);
/**
* Lookup zone that contains the given name, class.
@@ -278,10 +283,13 @@ struct local_zone* local_zones_tags_lookup(struct local_zones* zones,
* @param dclass: class to lookup.
* @param dtype: type of the record, if type DS then a zone higher up is found
* pass 0 to just plain find a zone for a name.
+ * @param foradd: if the lookup is for addition or removal of the type.
+ * Used for type DS. The lookup for answers turns this off.
* @return closest local_zone or NULL if no covering zone is found.
*/
struct local_zone* local_zones_lookup(struct local_zones* zones,
- uint8_t* name, size_t len, int labs, uint16_t dclass, uint16_t dtype);
+ uint8_t* name, size_t len, int labs, uint16_t dclass, uint16_t dtype,
+ int foradd);
/**
* Debug helper. Print all zones
diff --git a/services/mesh.c b/services/mesh.c
index 3212a6abf4c6..433aabc9cb19 100644
--- a/services/mesh.c
+++ b/services/mesh.c
@@ -231,6 +231,7 @@ mesh_create(struct module_stack* stack, struct module_env* env)
mesh->ans_expired = 0;
mesh->ans_cachedb = 0;
mesh->num_queries_discard_timeout = 0;
+ mesh->num_queries_replyaddr_limit = 0;
mesh->num_queries_wait_limit = 0;
mesh->num_dns_error_reports = 0;
mesh->max_reply_states = env->cfg->num_queries_per_thread;
@@ -348,7 +349,7 @@ mesh_serve_expired_lookup(struct module_qstate* qstate,
key = (struct msgreply_entry*)e->key;
data = (struct reply_info*)e->data;
- if(data->ttl < timenow) *is_expired = 1;
+ if(TTL_IS_EXPIRED(data->ttl, timenow)) *is_expired = 1;
msg = tomsg(qstate->env, &key->key, data, qstate->region, timenow,
qstate->env->cfg->serve_expired, qstate->env->scratch);
if(!msg)
@@ -441,9 +442,18 @@ void mesh_new_client(struct mesh_area* mesh, struct query_info* qinfo,
if(!infra_wait_limit_allowed(mesh->env->infra_cache, rep,
edns->cookie_valid, mesh->env->cfg)) {
verbose(VERB_ALGO, "Too many queries waiting from the IP. "
- "dropping incoming query.");
- comm_point_drop_reply(rep);
+ "servfail incoming query.");
mesh->num_queries_wait_limit++;
+ edns_opt_list_append_ede(&edns->opt_list_out,
+ mesh->env->scratch, LDNS_EDE_OTHER,
+ "Too many queries queued up and waiting from the IP");
+ if(!inplace_cb_reply_servfail_call(mesh->env, qinfo, NULL, NULL,
+ LDNS_RCODE_SERVFAIL, edns, rep, mesh->env->scratch, mesh->env->now_tv))
+ edns->opt_list_inplace_cb_out = NULL;
+ error_encode(r_buffer, LDNS_RCODE_SERVFAIL,
+ qinfo, qid, qflags, edns);
+ regional_free_all(mesh->env->scratch);
+ comm_point_send_reply(rep);
return;
}
if(!unique)
@@ -453,6 +463,8 @@ void mesh_new_client(struct mesh_area* mesh, struct query_info* qinfo,
if(!mesh_make_new_space(mesh, rep->c->buffer)) {
verbose(VERB_ALGO, "Too many queries. dropping "
"incoming query.");
+ if(rep->c->use_h2)
+ http2_stream_remove_mesh_state(rep->c->h2_stream);
comm_point_drop_reply(rep);
mesh->stats_dropped++;
return;
@@ -464,8 +476,10 @@ void mesh_new_client(struct mesh_area* mesh, struct query_info* qinfo,
if(mesh->num_reply_addrs > mesh->max_reply_states*16) {
verbose(VERB_ALGO, "Too many requests queued. "
"dropping incoming query.");
+ if(rep->c->use_h2)
+ http2_stream_remove_mesh_state(rep->c->h2_stream);
comm_point_drop_reply(rep);
- mesh->stats_dropped++;
+ mesh->num_queries_replyaddr_limit++;
return;
}
}
@@ -1022,6 +1036,7 @@ mesh_state_create(struct module_env* env, struct query_info* qinfo,
mstate->s.no_cache_store = 0;
mstate->s.need_refetch = 0;
mstate->s.was_ratelimited = 0;
+ mstate->s.error_response_cache = 0;
mstate->s.qstarttime = *env->now;
/* init modules */
@@ -1061,6 +1076,14 @@ mesh_state_cleanup(struct mesh_state* mstate)
if(!mstate->replies_sent) {
struct mesh_reply* rep = mstate->reply_list;
struct mesh_cb* cb;
+ /* One http2 stream could bring down its comm_point along with
+ * the other streams which could share the same query. Do all
+ * the http2 stream bookkeeping upfront. */
+ for(; rep; rep=rep->next) {
+ if(rep->query_reply.c->use_h2)
+ http2_stream_remove_mesh_state(rep->h2_stream);
+ }
+ rep = mstate->reply_list;
/* in tcp_req_info, the mstates linked are removed, but
* the reply_list is now NULL, so the remove-from-empty-list
* takes no time and also it does not do the mesh accounting */
@@ -1068,8 +1091,6 @@ mesh_state_cleanup(struct mesh_state* mstate)
for(; rep; rep=rep->next) {
infra_wait_limit_dec(mesh->env->infra_cache,
&rep->query_reply, mesh->env->cfg);
- if(rep->query_reply.c->use_h2)
- http2_stream_remove_mesh_state(rep->h2_stream);
comm_point_drop_reply(&rep->query_reply);
log_assert(mesh->num_reply_addrs > 0);
mesh->num_reply_addrs--;
@@ -1152,8 +1173,7 @@ mesh_detect_cycle_found(struct module_qstate* qstate, struct mesh_state* dep_m)
{
struct mesh_state* cyc_m = qstate->mesh_info;
size_t counter = 0;
- if(!dep_m)
- return 0;
+ log_assert(dep_m);
if(dep_m == cyc_m || find_in_subsub(dep_m, cyc_m, &counter)) {
if(counter > MESH_MAX_SUBSUB)
return 2;
@@ -1190,24 +1210,19 @@ void mesh_detach_subs(struct module_qstate* qstate)
}
int mesh_add_sub(struct module_qstate* qstate, struct query_info* qinfo,
- uint16_t qflags, int prime, int valrec, struct module_qstate** newq,
- struct mesh_state** sub)
+ struct respip_client_info* cinfo, uint16_t qflags, int prime,
+ int valrec, struct module_qstate** newq, struct mesh_state** sub)
{
/* find it, if not, create it */
struct mesh_area* mesh = qstate->env->mesh;
- *sub = mesh_area_find(mesh, NULL, qinfo, qflags,
- prime, valrec);
- if(mesh_detect_cycle_found(qstate, *sub)) {
- verbose(VERB_ALGO, "attach failed, cycle detected");
- return 0;
- }
+ *sub = mesh_area_find(mesh, cinfo, qinfo, qflags, prime, valrec);
if(!*sub) {
#ifdef UNBOUND_DEBUG
struct rbnode_type* n;
#endif
/* create a new one */
- *sub = mesh_state_create(qstate->env, qinfo, NULL, qflags, prime,
- valrec);
+ *sub = mesh_state_create(qstate->env, qinfo, cinfo, qflags,
+ prime, valrec);
if(!*sub) {
log_err("mesh_attach_sub: out of memory");
return 0;
@@ -1230,18 +1245,25 @@ int mesh_add_sub(struct module_qstate* qstate, struct query_info* qinfo,
rbtree_insert(&mesh->run, &(*sub)->run_node);
log_assert(n != NULL);
*newq = &(*sub)->s;
- } else
+ } else {
*newq = NULL;
+ if(mesh_detect_cycle_found(qstate, *sub)) {
+ verbose(VERB_ALGO, "attach failed, cycle detected");
+ return 0;
+ }
+ }
return 1;
}
int mesh_attach_sub(struct module_qstate* qstate, struct query_info* qinfo,
- uint16_t qflags, int prime, int valrec, struct module_qstate** newq)
+ struct respip_client_info* cinfo, uint16_t qflags, int prime,
+ int valrec, struct module_qstate** newq)
{
struct mesh_area* mesh = qstate->env->mesh;
struct mesh_state* sub = NULL;
int was_detached;
- if(!mesh_add_sub(qstate, qinfo, qflags, prime, valrec, newq, &sub))
+ if(!mesh_add_sub(qstate, qinfo, cinfo, qflags, prime, valrec, newq,
+ &sub))
return 0;
was_detached = (sub->super_set.count == 0);
if(!mesh_state_attachment(qstate->mesh_info, sub))
@@ -1684,7 +1706,7 @@ static void dns_error_reporting(struct module_qstate* qstate,
log_query_info(VERB_ALGO, "DNS Error Reporting: generating report "
"query for", &qinfo);
- if(mesh_add_sub(qstate, &qinfo, BIT_RD, 0, 0, &newq, &sub)) {
+ if(mesh_add_sub(qstate, &qinfo, NULL, BIT_RD, 0, 0, &newq, &sub)) {
qstate->env->mesh->num_dns_error_reports++;
}
return;
@@ -1727,28 +1749,39 @@ void mesh_query_done(struct mesh_state* mstate)
dns_error_reporting(&mstate->s, rep);
for(r = mstate->reply_list; r; r = r->next) {
- struct timeval old;
- timeval_subtract(&old, mstate->s.env->now_tv, &r->start_time);
- if(mstate->s.env->cfg->discard_timeout != 0 &&
- ((int)old.tv_sec)*1000+((int)old.tv_usec)/1000 >
- mstate->s.env->cfg->discard_timeout) {
- /* Drop the reply, it is too old */
- /* briefly set the reply_list to NULL, so that the
- * tcp req info cleanup routine that calls the mesh
- * to deregister the meshstate for it is not done
- * because the list is NULL and also accounting is not
- * done there, but instead we do that here. */
- struct mesh_reply* reply_list = mstate->reply_list;
- verbose(VERB_ALGO, "drop reply, it is older than discard-timeout");
- infra_wait_limit_dec(mstate->s.env->infra_cache,
- &r->query_reply, mstate->s.env->cfg);
- mstate->reply_list = NULL;
- if(r->query_reply.c->use_h2)
- http2_stream_remove_mesh_state(r->h2_stream);
- comm_point_drop_reply(&r->query_reply);
- mstate->reply_list = reply_list;
- mstate->s.env->mesh->num_queries_discard_timeout++;
- continue;
+ if(mesh_is_udp(r)) {
+ /* For UDP queries, the old replies are discarded.
+ * This stops a large volume of old replies from
+ * building up.
+ * The stream replies, are not discarded. The
+ * stream is open, the other side is waiting.
+ * Some answer is needed, even if servfail, but the
+ * real reply is ready to go, so that is given. */
+ struct timeval old;
+ timeval_subtract(&old, mstate->s.env->now_tv, &r->start_time);
+ if(mstate->s.env->cfg->discard_timeout != 0 &&
+ ((int)old.tv_sec)*1000+((int)old.tv_usec)/1000 >
+ mstate->s.env->cfg->discard_timeout) {
+ /* Drop the reply, it is too old */
+ /* briefly set the reply_list to NULL, so that the
+ * tcp req info cleanup routine that calls the mesh
+ * to deregister the meshstate for it is not done
+ * because the list is NULL and also accounting is not
+ * done there, but instead we do that here. */
+ struct mesh_reply* reply_list = mstate->reply_list;
+ verbose(VERB_ALGO, "drop reply, it is older than discard-timeout");
+ infra_wait_limit_dec(mstate->s.env->infra_cache,
+ &r->query_reply, mstate->s.env->cfg);
+ mstate->reply_list = NULL;
+ if(r->query_reply.c->use_h2)
+ http2_stream_remove_mesh_state(r->h2_stream);
+ comm_point_drop_reply(&r->query_reply);
+ mstate->reply_list = reply_list;
+ log_assert(mstate->s.env->mesh->num_reply_addrs > 0);
+ mstate->s.env->mesh->num_reply_addrs--;
+ mstate->s.env->mesh->num_queries_discard_timeout++;
+ continue;
+ }
}
i++;
@@ -1782,6 +1815,8 @@ void mesh_query_done(struct mesh_state* mstate)
}
comm_point_drop_reply(&r->query_reply);
mstate->reply_list = reply_list;
+ log_assert(mstate->s.env->mesh->num_reply_addrs > 0);
+ mstate->s.env->mesh->num_reply_addrs--;
} else {
struct sldns_buffer* r_buffer = r->query_reply.c->buffer;
if(r->query_reply.c->tcp_req_info) {
@@ -2272,6 +2307,7 @@ mesh_stats_clear(struct mesh_area* mesh)
memset(&mesh->rpz_action[0], 0, sizeof(size_t)*UB_STATS_RPZ_ACTION_NUM);
mesh->ans_nodata = 0;
mesh->num_queries_discard_timeout = 0;
+ mesh->num_queries_replyaddr_limit = 0;
mesh->num_queries_wait_limit = 0;
mesh->num_dns_error_reports = 0;
}
@@ -2297,7 +2333,7 @@ mesh_detect_cycle(struct module_qstate* qstate, struct query_info* qinfo,
struct mesh_area* mesh = qstate->env->mesh;
struct mesh_state* dep_m = NULL;
dep_m = mesh_area_find(mesh, NULL, qinfo, flags, prime, valrec);
- return mesh_detect_cycle_found(qstate, dep_m);
+ return dep_m?mesh_detect_cycle_found(qstate, dep_m):0;
}
void mesh_list_insert(struct mesh_state* m, struct mesh_state** fp,
@@ -2341,6 +2377,10 @@ void mesh_state_remove_reply(struct mesh_area* mesh, struct mesh_state* m,
mesh->num_reply_addrs--;
infra_wait_limit_dec(mesh->env->infra_cache,
&n->query_reply, mesh->env->cfg);
+ /* We may be removing more than one http2 stream (they
+ * share the same comm_point); make sure the streams
+ * don't point back. */
+ if(n->h2_stream) n->h2_stream->mesh_state = NULL;
/* prev = prev; */
n = n->next;
diff --git a/services/mesh.h b/services/mesh.h
index f19f423a8cd3..d2fac9d3c918 100644
--- a/services/mesh.h
+++ b/services/mesh.h
@@ -141,6 +141,8 @@ struct mesh_area {
size_t rpz_action[UB_STATS_RPZ_ACTION_NUM];
/** stats, number of queries removed due to discard-timeout */
size_t num_queries_discard_timeout;
+ /** stats, number of queries removed due to replyaddr limit */
+ size_t num_queries_replyaddr_limit;
/** stats, number of queries removed due to wait-limit */
size_t num_queries_wait_limit;
/** stats, number of dns error reports generated */
@@ -399,6 +401,8 @@ void mesh_detach_subs(struct module_qstate* qstate);
* @param qstate: the state to find mesh state, and that wants to receive
* the results from the new subquery.
* @param qinfo: what to query for (copied).
+ * @param cinfo: if non-NULL client specific info that may affect IP-based
+ * actions that apply to the query result. It is copied.
* @param qflags: what flags to use (RD / CD flag or not).
* @param prime: if it is a (stub) priming query.
* @param valrec: if it is a validation recursion query (lookup of key, DS).
@@ -407,7 +411,8 @@ void mesh_detach_subs(struct module_qstate* qstate);
* @return: false on error, true if success (and init may be needed).
*/
int mesh_attach_sub(struct module_qstate* qstate, struct query_info* qinfo,
- uint16_t qflags, int prime, int valrec, struct module_qstate** newq);
+ struct respip_client_info* cinfo, uint16_t qflags, int prime,
+ int valrec, struct module_qstate** newq);
/**
* Add detached query.
@@ -426,6 +431,8 @@ int mesh_attach_sub(struct module_qstate* qstate, struct query_info* qinfo,
* @param qstate: the state to find mesh state, and that wants to receive
* the results from the new subquery.
* @param qinfo: what to query for (copied).
+ * @param cinfo: if non-NULL client specific info that may affect IP-based
+ * actions that apply to the query result. It is copied.
* @param qflags: what flags to use (RD / CD flag or not).
* @param prime: if it is a (stub) priming query.
* @param valrec: if it is a validation recursion query (lookup of key, DS).
@@ -435,8 +442,8 @@ int mesh_attach_sub(struct module_qstate* qstate, struct query_info* qinfo,
* @return: false on error, true if success (and init may be needed).
*/
int mesh_add_sub(struct module_qstate* qstate, struct query_info* qinfo,
- uint16_t qflags, int prime, int valrec, struct module_qstate** newq,
- struct mesh_state** sub);
+ struct respip_client_info* cinfo, uint16_t qflags, int prime,
+ int valrec, struct module_qstate** newq, struct mesh_state** sub);
/**
* Query state is done, send messages to reply entries.
diff --git a/services/modstack.c b/services/modstack.c
index 2bc79c4adfd7..f5913dc387c9 100644
--- a/services/modstack.c
+++ b/services/modstack.c
@@ -262,6 +262,7 @@ int
modstack_call_init(struct module_stack* stack, const char* module_conf,
struct module_env* env)
{
+ const char* orig_module_conf = module_conf;
int i, changed = 0;
env->need_to_validate = 0; /* set by module init below */
for(i=0; i<stack->num; i++) {
@@ -276,11 +277,13 @@ modstack_call_init(struct module_stack* stack, const char* module_conf,
changed = 1;
}
}
- module_conf += strlen(stack->mod[i]->name);
+ /* Skip this module name in module_conf. */
+ while(*module_conf && !isspace((unsigned char)*module_conf))
+ module_conf++;
}
if(changed) {
modstack_free(stack);
- if(!modstack_config(stack, module_conf)) {
+ if(!modstack_config(stack, orig_module_conf)) {
return 0;
}
}
diff --git a/services/outside_network.c b/services/outside_network.c
index 2b7f7d0a2f21..8034ff60ba10 100644
--- a/services/outside_network.c
+++ b/services/outside_network.c
@@ -160,6 +160,19 @@ reuse_cmp_addrportssl(const void* key1, const void* key2)
return 1;
if(!r1->is_ssl && r2->is_ssl)
return -1;
+
+ /* compare tls_auth_name if SSL-enabled */
+ if(r1->is_ssl) {
+ if(r1->tls_auth_name && !r2->tls_auth_name)
+ return 1;
+ if(!r1->tls_auth_name && r2->tls_auth_name)
+ return -1;
+ if(r1->tls_auth_name && r2->tls_auth_name) {
+ r = strcmp(r1->tls_auth_name, r2->tls_auth_name);
+ if(r != 0)
+ return r;
+ }
+ }
return 0;
}
@@ -531,7 +544,7 @@ reuse_tcp_insert(struct outside_network* outnet, struct pending_tcp* pend_tcp)
/** find reuse tcp stream to destination for query, or NULL if none */
static struct reuse_tcp*
reuse_tcp_find(struct outside_network* outnet, struct sockaddr_storage* addr,
- socklen_t addrlen, int use_ssl)
+ socklen_t addrlen, int use_ssl, char* tls_auth_name)
{
struct waiting_tcp key_w;
struct pending_tcp key_p;
@@ -545,8 +558,10 @@ reuse_tcp_find(struct outside_network* outnet, struct sockaddr_storage* addr,
key_p.c = &c;
key_p.reuse.pending = &key_p;
key_p.reuse.node.key = &key_p.reuse;
- if(use_ssl)
+ if(use_ssl) {
key_p.reuse.is_ssl = 1;
+ key_p.reuse.tls_auth_name = tls_auth_name;
+ }
if(addrlen > (socklen_t)sizeof(key_p.reuse.addr))
return NULL;
memmove(&key_p.reuse.addr, addr, addrlen);
@@ -646,6 +661,7 @@ static int
outnet_tcp_take_into_use(struct waiting_tcp* w)
{
struct pending_tcp* pend = w->outnet->tcp_free;
+ char* tls_auth_name = NULL;
int s;
log_assert(pend);
log_assert(w->pkt);
@@ -746,7 +762,22 @@ outnet_tcp_take_into_use(struct waiting_tcp* w)
comm_point_tcp_win_bio_cb(pend->c, pend->c->ssl);
#endif
pend->c->ssl_shake_state = comm_ssl_shake_write;
- if(!set_auth_name_on_ssl(pend->c->ssl, w->tls_auth_name,
+ if(w->tls_auth_name) {
+ /* strdup the auth name, while not linked the list yet,
+ * in case of failure, easy cleanup. */
+ tls_auth_name = strdup(w->tls_auth_name);
+ if(!tls_auth_name) {
+ log_err("out of memory: alloc tls auth name");
+ pend->c->fd = s;
+#ifdef HAVE_SSL
+ SSL_free(pend->c->ssl);
+#endif
+ pend->c->ssl = NULL;
+ comm_point_close(pend->c);
+ return 0;
+ }
+ }
+ if(!set_auth_name_on_ssl(pend->c->ssl, tls_auth_name,
w->outnet->tls_use_sni)) {
pend->c->fd = s;
#ifdef HAVE_SSL
@@ -754,6 +785,7 @@ outnet_tcp_take_into_use(struct waiting_tcp* w)
#endif
pend->c->ssl = NULL;
comm_point_close(pend->c);
+ free(tls_auth_name);
return 0;
}
}
@@ -778,9 +810,20 @@ outnet_tcp_take_into_use(struct waiting_tcp* w)
if(pend->reuse.node.key)
reuse_tcp_remove_tree_list(w->outnet, &pend->reuse);
- if(pend->c->ssl)
+ if(pend->c->ssl) {
pend->reuse.is_ssl = 1;
- else pend->reuse.is_ssl = 0;
+ if(pend->reuse.tls_auth_name)
+ free(pend->reuse.tls_auth_name);
+ pend->reuse.tls_auth_name = tls_auth_name;
+ tls_auth_name = NULL;
+ } else {
+ pend->reuse.is_ssl = 0;
+ if(pend->reuse.tls_auth_name)
+ free(pend->reuse.tls_auth_name);
+ pend->reuse.tls_auth_name = NULL;
+ }
+ /* free tls auth name if nonNULL */
+ free(tls_auth_name);
/* insert in reuse by address tree if not already inserted there */
(void)reuse_tcp_insert(w->outnet, pend);
reuse_tree_by_id_insert(&pend->reuse, w);
@@ -969,7 +1012,7 @@ use_free_buffer(struct outside_network* outnet)
(!outnet->tcp_reuse_first && !outnet->tcp_reuse_last) ||
(outnet->tcp_reuse_first && outnet->tcp_reuse_last));
reuse = reuse_tcp_find(outnet, &w->addr, w->addrlen,
- w->ssl_upstream);
+ w->ssl_upstream, w->tls_auth_name);
/* re-select an ID when moving to a new TCP buffer */
w->id = tcp_select_id(outnet, reuse);
LDNS_ID_SET(w->pkt, w->id);
@@ -1198,6 +1241,10 @@ decommission_pending_tcp(struct outside_network* outnet,
/* needs unlink from the reuse tree to get deleted */
reuse_tcp_remove_tree_list(outnet, &pend->reuse);
}
+ if(pend->reuse.tls_auth_name) {
+ free(pend->reuse.tls_auth_name);
+ pend->reuse.tls_auth_name = NULL;
+ }
/* free SSL structure after remove from outnet tcp reuse tree,
* because the c->ssl null or not is used for sorting in the tree */
if(pend->c->ssl) {
@@ -1922,6 +1969,10 @@ outside_network_delete(struct outside_network* outnet)
* the tcp conn is working on */
decommission_pending_tcp(outnet, pend);
}
+ if(pend->reuse.tls_auth_name) {
+ free(pend->reuse.tls_auth_name);
+ pend->reuse.tls_auth_name = NULL;
+ }
comm_point_delete(outnet->tcp_conns[i]->c);
free(outnet->tcp_conns[i]);
outnet->tcp_conns[i] = NULL;
@@ -2447,7 +2498,7 @@ pending_tcp_query(struct serviced_query* sq, sldns_buffer* packet,
/* find out if a reused stream to the target exists */
/* if so, take it into use */
reuse = reuse_tcp_find(sq->outnet, &sq->addr, sq->addrlen,
- sq->ssl_upstream);
+ sq->ssl_upstream, sq->tls_auth_name);
if(reuse) {
log_reuse_tcp(VERB_CLIENT, "pending_tcp_query: found reuse", reuse);
log_assert(reuse->pending);
diff --git a/services/outside_network.h b/services/outside_network.h
index 0a77e3388ddc..e30ce92eb3fc 100644
--- a/services/outside_network.h
+++ b/services/outside_network.h
@@ -48,6 +48,10 @@
#include "util/regional.h"
#include "util/netevent.h"
#include "dnstap/dnstap_config.h"
+#ifdef __QNX__
+/* For struct timeval */
+#include <sys/time.h>
+#endif /* __QNX__ */
struct pending;
struct pending_timeout;
struct ub_randstate;
@@ -260,6 +264,9 @@ struct reuse_tcp {
socklen_t addrlen;
/** also key for tcp_reuse tree, if ssl is used */
int is_ssl;
+ /** If is_ssl is enabled, tls_auth_name is part of the key for
+ * tcp_reuse tree. If the string is NULL, it without a tls_auth_name */
+ char* tls_auth_name;
/** lru chain, so that the oldest can be removed to get a new
* connection when all are in (re)use. oldest is last in list.
* The lru only contains empty connections waiting for reuse,
diff --git a/services/rpz.c b/services/rpz.c
index f45cf65420d7..d83acbfb08e0 100644
--- a/services/rpz.c
+++ b/services/rpz.c
@@ -153,6 +153,7 @@ rpz_type_ignored(uint16_t rr_type)
case LDNS_RR_TYPE_SOA:
case LDNS_RR_TYPE_NS:
case LDNS_RR_TYPE_DNAME:
+ case LDNS_RR_TYPE_ZONEMD:
/* all DNSSEC-related RRs must be ignored */
case LDNS_RR_TYPE_DNSKEY:
case LDNS_RR_TYPE_DS:
diff --git a/sldns/rrdef.h b/sldns/rrdef.h
index 540468889880..bbc3d5b866a2 100644
--- a/sldns/rrdef.h
+++ b/sldns/rrdef.h
@@ -480,11 +480,13 @@ enum sldns_enum_ede_code
LDNS_EDE_TOO_EARLY = 26,
LDNS_EDE_UNSUPPORTED_NSEC3_ITERATIONS = 27,
LDNS_EDE_BADPROXYPOLICY = 28,
- LDNS_EDE_SYNTHESIZED = 29
+ LDNS_EDE_SYNTHESIZED = 29,
+ LDNS_EDE_INVALID_QUERY_TYPE = 30
};
typedef enum sldns_enum_ede_code sldns_ede_code;
#define LDNS_EDNS_MASK_DO_BIT 0x8000
+#define LDNS_EDNS_MASK_CO_BIT 0x4000
/** TSIG and TKEY extended rcodes (16bit), 0-15 are the normal rcodes. */
#define LDNS_TSIG_ERROR_NOERROR 0
diff --git a/sldns/wire2str.c b/sldns/wire2str.c
index 1bc5b9cf6e93..75b8f37b026f 100644
--- a/sldns/wire2str.c
+++ b/sldns/wire2str.c
@@ -233,6 +233,7 @@ static sldns_lookup_table sldns_edns_ede_codes_data[] = {
{ LDNS_EDE_UNSUPPORTED_NSEC3_ITERATIONS, "Unsupported NSEC3 Iterations Value" },
{ LDNS_EDE_BADPROXYPOLICY, "Unable to Conform to Policy" },
{ LDNS_EDE_SYNTHESIZED, "Synthesized Answer" },
+ { LDNS_EDE_INVALID_QUERY_TYPE, "Invalid Query Type" },
{ 0, NULL}
};
sldns_lookup_table* sldns_edns_ede_codes = sldns_edns_ede_codes_data;
@@ -2485,6 +2486,8 @@ int sldns_wire2str_edns_scan(uint8_t** data, size_t* data_len, char** str,
w += sldns_str_print(str, str_len, " flags:");
if((edns_bits & LDNS_EDNS_MASK_DO_BIT))
w += sldns_str_print(str, str_len, " do");
+ if((edns_bits & LDNS_EDNS_MASK_CO_BIT))
+ w += sldns_str_print(str, str_len, " co");
/* the extended rcode is the value set, shifted four bits,
* and or'd with the original rcode */
if(ext_rcode) {
diff --git a/smallapp/unbound-anchor.c b/smallapp/unbound-anchor.c
index 16f26206719a..fac8676d1769 100644
--- a/smallapp/unbound-anchor.c
+++ b/smallapp/unbound-anchor.c
@@ -2430,12 +2430,20 @@ int main(int argc, char* argv[])
#else
OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS
| OPENSSL_INIT_ADD_ALL_DIGESTS
- | OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL);
+ | OPENSSL_INIT_LOAD_CRYPTO_STRINGS
+# if defined(OPENSSL_INIT_NO_LOAD_CONFIG) && defined(UB_ON_WINDOWS)
+ | OPENSSL_INIT_NO_LOAD_CONFIG
+# endif
+ , NULL);
#endif
#if OPENSSL_VERSION_NUMBER < 0x10100000 || !defined(HAVE_OPENSSL_INIT_SSL)
(void)SSL_library_init();
#else
- (void)OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS, NULL);
+ (void)OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS
+# if defined(OPENSSL_INIT_NO_LOAD_CONFIG) && defined(UB_ON_WINDOWS)
+ | OPENSSL_INIT_NO_LOAD_CONFIG
+# endif
+ , NULL);
#endif
if(dolist) do_list_builtin();
diff --git a/smallapp/unbound-checkconf.c b/smallapp/unbound-checkconf.c
index 2ca69e9e69c7..a8e19241f782 100644
--- a/smallapp/unbound-checkconf.c
+++ b/smallapp/unbound-checkconf.c
@@ -44,6 +44,7 @@
#include "config.h"
#include <ctype.h>
+#include "util/as112.h"
#include "util/log.h"
#include "util/config_file.h"
#include "util/module.h"
@@ -188,11 +189,56 @@ donotquerylocalhostcheck(struct config_file* cfg)
}
}
+static void
+nodefaultzonescheck(struct config_file* cfg)
+{
+ struct config_strlist* d;
+ const char** zstr;
+ size_t len;
+
+#define COMPARE_ZONE_NAME(confname, builtname, len) \
+ (strncasecmp(confname, builtname, (len)) == 0 && \
+ (strlen(confname) == (len) || \
+ (strlen(confname) == (len) + 1 \
+ && confname[(len)] == '.')))
+
+ for(d = cfg->local_zones_nodefault; d; d = d->next) {
+ if(!cfg->unblock_lan_zones) {
+ for(zstr = as112_zones; *zstr; zstr++) {
+ len = strlen(*zstr) - 1; /* trailing '.' */
+ if(COMPARE_ZONE_NAME(d->str, *zstr, len))
+ goto default_continue;
+ }
+ }
+ for(zstr = local_zones_default_special; *zstr; zstr++) {
+ len = strlen(*zstr) - 1; /* trailing '.' */
+ if(COMPARE_ZONE_NAME(d->str, *zstr, len))
+ goto default_continue;
+ }
+ for(zstr = local_zones_default_reverse; *zstr; zstr++) {
+ len = strlen(*zstr) - 1; /* trailing '.' */
+ if(COMPARE_ZONE_NAME(d->str, *zstr, len))
+ goto default_continue;
+ }
+ if(COMPARE_ZONE_NAME(d->str, "localhost.", 10 - 1))
+ goto default_continue;
+ fprintf(stderr, "unbound-checkconf: warning: local-zone: '%s' "
+ "is configured as 'nodefault' but there is no such "
+ "default local-zone. Check the unbound.conf "
+ "documentation for default configured local-zones.\n",
+ d->str);
+default_continue:
+ ; /* statement to jump to, for older gcc. */
+ }
+#undef COMPARE_ZONE_NAME
+}
+
/** check localzones */
static void
localzonechecks(struct config_file* cfg)
{
struct local_zones* zs;
+ nodefaultzonescheck(cfg);
if(!(zs = local_zones_create()))
fatal_exit("out of memory");
if(!local_zones_apply_cfg(zs, cfg))
@@ -783,7 +829,6 @@ morechecks(struct config_file* cfg)
/* check that the modules listed in module_conf exist */
check_modules_exist(cfg->module_conf);
- /* Respip is known to *not* work with dns64. */
if(strcmp(cfg->module_conf, "iterator") != 0
&& strcmp(cfg->module_conf, "validator iterator") != 0
&& strcmp(cfg->module_conf, "dns64 validator iterator") != 0
@@ -869,6 +914,7 @@ morechecks(struct config_file* cfg)
&& strcmp(cfg->module_conf, "respip cachedb iterator") != 0
&& strcmp(cfg->module_conf, "dns64 validator cachedb iterator") != 0
&& strcmp(cfg->module_conf, "dns64 cachedb iterator") != 0
+ && strcmp(cfg->module_conf, "respip dns64 validator cachedb iterator") != 0
#endif
#if defined(WITH_PYTHONMODULE) && defined(USE_CACHEDB)
&& strcmp(cfg->module_conf, "python dns64 cachedb iterator") != 0
diff --git a/smallapp/unbound-control.c b/smallapp/unbound-control.c
index 696750c19fa1..71e955bec367 100644
--- a/smallapp/unbound-control.c
+++ b/smallapp/unbound-control.c
@@ -236,6 +236,8 @@ static void pr_stats(const char* nm, struct ub_stats_info* s)
s->svr.num_queries_cookie_invalid);
PR_UL_NM("num.queries_discard_timeout",
s->svr.num_queries_discard_timeout);
+ PR_UL_NM("num.queries_replyaddr_limit",
+ s->svr.num_queries_replyaddr_limit);
PR_UL_NM("num.queries_wait_limit", s->svr.num_queries_wait_limit);
PR_UL_NM("num.cachehits",
s->svr.num_queries - s->svr.num_queries_missed_cache);
@@ -263,6 +265,7 @@ static void pr_stats(const char* nm, struct ub_stats_info* s)
PR_UL_NM("requestlist.exceeded", s->mesh_dropped);
PR_UL_NM("requestlist.current.all", s->mesh_num_states);
PR_UL_NM("requestlist.current.user", s->mesh_num_reply_states);
+ PR_UL_NM("requestlist.current.replies", s->mesh_num_reply_addrs);
#ifndef S_SPLINT_S
sumwait.tv_sec = s->mesh_replies_sum_wait_sec;
sumwait.tv_usec = s->mesh_replies_sum_wait_usec;
@@ -1049,12 +1052,20 @@ int main(int argc, char* argv[])
#else
OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS
| OPENSSL_INIT_ADD_ALL_DIGESTS
- | OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL);
+ | OPENSSL_INIT_LOAD_CRYPTO_STRINGS
+# if defined(OPENSSL_INIT_NO_LOAD_CONFIG) && defined(UB_ON_WINDOWS)
+ | OPENSSL_INIT_NO_LOAD_CONFIG
+# endif
+ , NULL);
#endif
#if OPENSSL_VERSION_NUMBER < 0x10100000 || !defined(HAVE_OPENSSL_INIT_SSL)
(void)SSL_library_init();
#else
- (void)OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS, NULL);
+ (void)OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS
+# if defined(OPENSSL_INIT_NO_LOAD_CONFIG) && defined(UB_ON_WINDOWS)
+ | OPENSSL_INIT_NO_LOAD_CONFIG
+# endif
+ , NULL);
#endif
if(!RAND_status()) {
diff --git a/smallapp/unbound-host.c b/smallapp/unbound-host.c
index edca6b9a3732..dbccf96742b6 100644
--- a/smallapp/unbound-host.c
+++ b/smallapp/unbound-host.c
@@ -521,12 +521,20 @@ int main(int argc, char* argv[])
#else
OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS
| OPENSSL_INIT_ADD_ALL_DIGESTS
- | OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL);
+ | OPENSSL_INIT_LOAD_CRYPTO_STRINGS
+# if defined(OPENSSL_INIT_NO_LOAD_CONFIG) && defined(UB_ON_WINDOWS)
+ | OPENSSL_INIT_NO_LOAD_CONFIG
+# endif
+ , NULL);
#endif
#if OPENSSL_VERSION_NUMBER < 0x10100000 || !defined(HAVE_OPENSSL_INIT_SSL)
(void)SSL_library_init();
#else
- (void)OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS, NULL);
+ (void)OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS
+# if defined(OPENSSL_INIT_NO_LOAD_CONFIG) && defined(UB_ON_WINDOWS)
+ | OPENSSL_INIT_NO_LOAD_CONFIG
+# endif
+ , NULL);
#endif
#endif /* HAVE_SSL */
#ifdef HAVE_NSS
diff --git a/testcode/asynclook.c b/testcode/asynclook.c
index fffd14ed598a..74fb9d13e694 100644
--- a/testcode/asynclook.c
+++ b/testcode/asynclook.c
@@ -488,12 +488,20 @@ int main(int argc, char** argv)
#else
OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS
| OPENSSL_INIT_ADD_ALL_DIGESTS
- | OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL);
+ | OPENSSL_INIT_LOAD_CRYPTO_STRINGS
+# if defined(OPENSSL_INIT_NO_LOAD_CONFIG) && defined(UB_ON_WINDOWS)
+ | OPENSSL_INIT_NO_LOAD_CONFIG
+# endif
+ , NULL);
#endif
#if OPENSSL_VERSION_NUMBER < 0x10100000 || !defined(HAVE_OPENSSL_INIT_SSL)
(void)SSL_library_init();
#else
- (void)OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS, NULL);
+ (void)OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS
+# if defined(OPENSSL_INIT_NO_LOAD_CONFIG) && defined(UB_ON_WINDOWS)
+ | OPENSSL_INIT_NO_LOAD_CONFIG
+# endif
+ , NULL);
#endif
#endif /* HAVE_SSL */
diff --git a/testcode/checklocks.h b/testcode/checklocks.h
index 7ebc2f98407e..d2c0a533604b 100644
--- a/testcode/checklocks.h
+++ b/testcode/checklocks.h
@@ -360,6 +360,7 @@ typedef pthread_key_t ub_thread_key_type;
#define ub_thread_key_create(key, f) LOCKRET(pthread_key_create(key, f))
#define ub_thread_key_set(key, v) LOCKRET(pthread_setspecific(key, v))
#define ub_thread_key_get(key) pthread_getspecific(key)
+#define ub_thread_setname(thread, name) /* nop */
#endif /* USE_THREAD_DEBUG */
#endif /* TESTCODE_CHECK_LOCKS_H */
diff --git a/testcode/dohclient.c b/testcode/dohclient.c
index 5eb523b2e0ac..8d8adaf5df34 100644
--- a/testcode/dohclient.c
+++ b/testcode/dohclient.c
@@ -642,12 +642,20 @@ int main(int argc, char** argv)
#else
OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS
| OPENSSL_INIT_ADD_ALL_DIGESTS
- | OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL);
+ | OPENSSL_INIT_LOAD_CRYPTO_STRINGS
+# if defined(OPENSSL_INIT_NO_LOAD_CONFIG) && defined(UB_ON_WINDOWS)
+ | OPENSSL_INIT_NO_LOAD_CONFIG
+# endif
+ , NULL);
#endif
#if OPENSSL_VERSION_NUMBER < 0x10100000 || !defined(HAVE_OPENSSL_INIT_SSL)
(void)SSL_library_init();
#else
- (void)OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS, NULL);
+ (void)OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS
+# if defined(OPENSSL_INIT_NO_LOAD_CONFIG) && defined(UB_ON_WINDOWS)
+ | OPENSSL_INIT_NO_LOAD_CONFIG
+# endif
+ , NULL);
#endif
}
run(h2_session, port, no_tls, argc, argv);
diff --git a/testcode/doqclient.c b/testcode/doqclient.c
index 238a9380306d..8a34ca31b122 100644
--- a/testcode/doqclient.c
+++ b/testcode/doqclient.c
@@ -2255,7 +2255,7 @@ create_doq_client_data(const char* svr, int port, struct ub_event_base* base,
/* Initialize the ossl crypto, it is harmless to call twice,
* and this is before use of doq connections. */
if(ngtcp2_crypto_ossl_init() != 0)
- fatal_exit("ngtcp2_crypto_oss_init failed");
+ fatal_exit("ngtcp2_crypto_ossl_init failed");
#elif defined(HAVE_NGTCP2_CRYPTO_QUICTLS_INIT)
if(ngtcp2_crypto_quictls_init() != 0)
fatal_exit("ngtcp2_crypto_quictls_init failed");
diff --git a/testcode/mini_tdir.sh b/testcode/mini_tdir.sh
index d1f7bfce94a8..caef1e3a372e 100755
--- a/testcode/mini_tdir.sh
+++ b/testcode/mini_tdir.sh
@@ -141,6 +141,13 @@ if test -f $done; then
exit 0
fi
+# always clear the skip mark file in case something changed in the environment
+# in between runs
+if test -f $skip; then
+ echo "minitdir $skip exists; removing."
+ rm $skip
+fi
+
# Copy
if test $quiet = 0; then
echo "minitdir copy $1 to $dir"
diff --git a/testcode/petal.c b/testcode/petal.c
index 627c77d57529..ec99a092d9bd 100644
--- a/testcode/petal.c
+++ b/testcode/petal.c
@@ -160,11 +160,26 @@ read_ssl_line(SSL* ssl, char* buf, size_t len)
return 0;
}
if((r = SSL_read(ssl, buf+n, 1)) <= 0) {
- if(SSL_get_error(ssl, r) == SSL_ERROR_ZERO_RETURN) {
+ int e = SSL_get_error(ssl, r);
+ if(e == SSL_ERROR_ZERO_RETURN) {
/* EOF */
break;
+ } else if(e == SSL_ERROR_WANT_READ) {
+ continue;
+ } else if(e == SSL_ERROR_WANT_WRITE) {
+ continue;
+ } else if(e == SSL_ERROR_SYSCALL) {
+ if(verb) printf("could not SSL_read %s\n",
+ strerror(errno));
+ } else if(e == SSL_ERROR_SSL) {
+ int er = ERR_peek_error();
+ if(er)
+ printf("could not SSL_read: %s\n",
+ ERR_reason_error_string(er));
+ } else {
+ if(verb) printf("could not SSL_read "
+ "(SSL_get_error %d)\n", e);
}
- if(verb) printf("could not SSL_read\n");
return 0;
}
if(endnl && buf[n] == '\n') {
@@ -222,7 +237,8 @@ read_http_headers(SSL* ssl, char* file, size_t flen, char* host, size_t hlen,
if(verb>=2) printf("read: %s\n", buf);
if(buf[0] == 0) {
int e = ERR_peek_error();
- printf("error string: %s\n", ERR_reason_error_string(e));
+ if(e)
+ printf("error string: %s\n", ERR_reason_error_string(e));
return 1;
}
if(!process_one_header(buf, file, flen, host, hlen, vs))
@@ -246,7 +262,8 @@ setup_ctx(char* key, char* cert)
#endif
if(!SSL_CTX_use_certificate_chain_file(ctx, cert)) {
int e = ERR_peek_error();
- printf("error string: %s\n", ERR_reason_error_string(e));
+ if(e)
+ printf("error string: %s\n", ERR_reason_error_string(e));
print_exit("cannot read cert");
}
if(!SSL_CTX_use_PrivateKey_file(ctx, key, SSL_FILETYPE_PEM))
@@ -673,12 +690,20 @@ int main(int argc, char* argv[])
#else
OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS
| OPENSSL_INIT_ADD_ALL_DIGESTS
- | OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL);
+ | OPENSSL_INIT_LOAD_CRYPTO_STRINGS
+# if defined(OPENSSL_INIT_NO_LOAD_CONFIG) && defined(UB_ON_WINDOWS)
+ | OPENSSL_INIT_NO_LOAD_CONFIG
+# endif
+ , NULL);
#endif
#if OPENSSL_VERSION_NUMBER < 0x10100000 || !defined(HAVE_OPENSSL_INIT_SSL)
(void)SSL_library_init();
#else
- (void)OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS, NULL);
+ (void)OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS
+# if defined(OPENSSL_INIT_NO_LOAD_CONFIG) && defined(UB_ON_WINDOWS)
+ | OPENSSL_INIT_NO_LOAD_CONFIG
+# endif
+ , NULL);
#endif
do_service(addr, port, key, cert);
diff --git a/testcode/pktview.c b/testcode/pktview.c
index 12e0d8edbb68..4cada926b5e6 100644
--- a/testcode/pktview.c
+++ b/testcode/pktview.c
@@ -59,12 +59,16 @@ static void usage(char* argv[])
/** read hex input */
static void read_input(sldns_buffer* pkt, FILE* in)
{
- char buf[102400];
+ /* Buffer for 64Kib packet, in hex, with spaces and comments. */
+ char buf[1024000];
char* np = buf;
while(fgets(np, (int)sizeof(buf) - (np-buf), in)) {
if(buf[0] == ';') /* comment */
continue;
np = &np[strlen(np)];
+ if((size_t)(np-buf) >= sizeof(buf)-1)
+ fatal_exit("input too large (%lu bytes)",
+ (unsigned long)sizeof(buf));
}
hex_to_buf(pkt, buf);
}
@@ -188,10 +192,16 @@ static void analyze(sldns_buffer* pkt)
/** main program for pktview */
int main(int argc, char* argv[])
{
- sldns_buffer* pkt = sldns_buffer_new(65553);
+ sldns_buffer* pkt;
+
+ log_init(NULL, 0, NULL);
+ log_ident_set("pktview");
+
if(argc != 1) {
usage(argv);
}
+
+ pkt = sldns_buffer_new(65553);
if(!pkt) fatal_exit("out of memory");
read_input(pkt, stdin);
diff --git a/testcode/replay.h b/testcode/replay.h
index 809e8ee39778..42a56a1c466e 100644
--- a/testcode/replay.h
+++ b/testcode/replay.h
@@ -142,6 +142,10 @@
#include "util/netevent.h"
#include "testcode/testpkts.h"
#include "util/rbtree.h"
+#ifdef __QNX__
+/* For struct timeval */
+#include <sys/time.h>
+#endif /* __QNX__ */
struct replay_answer;
struct replay_moment;
struct replay_range;
diff --git a/testcode/streamtcp.c b/testcode/streamtcp.c
index 60122c4ddfd1..ce9e4cbe3f00 100644
--- a/testcode/streamtcp.c
+++ b/testcode/streamtcp.c
@@ -652,12 +652,20 @@ int main(int argc, char** argv)
#else
OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS
| OPENSSL_INIT_ADD_ALL_DIGESTS
- | OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL);
+ | OPENSSL_INIT_LOAD_CRYPTO_STRINGS
+# if defined(OPENSSL_INIT_NO_LOAD_CONFIG) && defined(UB_ON_WINDOWS)
+ | OPENSSL_INIT_NO_LOAD_CONFIG
+# endif
+ , NULL);
#endif
#if OPENSSL_VERSION_NUMBER < 0x10100000 || !defined(HAVE_OPENSSL_INIT_SSL)
(void)SSL_library_init();
#else
- (void)OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS, NULL);
+ (void)OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS
+# if defined(OPENSSL_INIT_NO_LOAD_CONFIG) && defined(UB_ON_WINDOWS)
+ | OPENSSL_INIT_NO_LOAD_CONFIG
+# endif
+ , NULL);
#endif
}
send_em(svr, pp2_client, udp, usessl, noanswer, onarrival, delay, argc, argv);
diff --git a/testcode/testpkts.c b/testcode/testpkts.c
index 612461063481..93f2add94fa4 100644
--- a/testcode/testpkts.c
+++ b/testcode/testpkts.c
@@ -135,6 +135,8 @@ static void matchline(char* line, struct entry* e)
e->match_ttl = 1;
} else if(str_keyword(&parse, "DO")) {
e->match_do = 1;
+ } else if(str_keyword(&parse, "CO")) {
+ e->match_co = 1;
} else if(str_keyword(&parse, "noedns")) {
e->match_noedns = 1;
} else if(str_keyword(&parse, "ednsdata")) {
@@ -178,7 +180,7 @@ static void matchline(char* line, struct entry* e)
/** parse REPLY line */
static void replyline(char* line, uint8_t* reply, size_t reply_len,
- int* do_flag)
+ int* do_flag, int* co_flag)
{
char* parse = line;
if(reply_len < LDNS_HEADER_SIZE) error("packet too short for header");
@@ -236,6 +238,8 @@ static void replyline(char* line, uint8_t* reply, size_t reply_len,
LDNS_AD_SET(reply);
} else if(str_keyword(&parse, "DO")) {
*do_flag = 1;
+ } else if(str_keyword(&parse, "CO")) {
+ *co_flag = 1;
} else {
error("could not parse REPLY: '%s'", parse);
}
@@ -289,6 +293,7 @@ static struct entry* new_entry(void)
e->match_all_noedns = 0;
e->match_ttl = 0;
e->match_do = 0;
+ e->match_co = 0;
e->match_noedns = 0;
e->match_serial = 0;
e->ixfr_soa_serial = 0;
@@ -521,15 +526,17 @@ static void add_rr(char* rrstr, uint8_t* pktbuf, size_t pktsize,
/* add EDNS 4096 opt record */
static void
-add_edns(uint8_t* pktbuf, size_t pktsize, int do_flag, uint8_t *ednsdata,
- uint16_t ednslen, size_t* pktlen)
+add_edns(uint8_t* pktbuf, size_t pktsize, int do_flag, int co_flag,
+ uint8_t *ednsdata, uint16_t ednslen, size_t* pktlen)
{
uint8_t edns[] = {0x00, /* root label */
0x00, LDNS_RR_TYPE_OPT, /* type */
0x04, 0xD0, /* class is UDPSIZE 1232 */
0x00, /* TTL[0] is ext rcode */
0x00, /* TTL[1] is edns version */
- (uint8_t)(do_flag?0x80:0x00), 0x00, /* TTL[2-3] is edns flags, DO */
+ (uint8_t)(do_flag?0x80:0x00)
+ | (uint8_t)(co_flag?0x40:0x00)
+ , 0x00, /* TTL[2-3] is edns flags, DO */
(uint8_t)((ednslen >> 8) & 0xff),
(uint8_t)(ednslen & 0xff), /* rdatalength */
};
@@ -561,6 +568,7 @@ read_entry(FILE* in, const char* name, struct sldns_file_parse_state* pstate,
uint8_t pktbuf[MAX_PACKETLEN];
size_t pktlen = LDNS_HEADER_SIZE;
int do_flag = 0; /* DO flag in EDNS */
+ int co_flag = 0; /* CO flag in EDNS */
memset(pktbuf, 0, pktlen); /* ID = 0, FLAGS="", and rr counts 0 */
while(fgets(line, (int)sizeof(line), in) != NULL) {
@@ -598,7 +606,7 @@ read_entry(FILE* in, const char* name, struct sldns_file_parse_state* pstate,
if(str_keyword(&parse, "MATCH")) {
matchline(parse, current);
} else if(str_keyword(&parse, "REPLY")) {
- replyline(parse, pktbuf, pktlen, &do_flag);
+ replyline(parse, pktbuf, pktlen, &do_flag, &co_flag);
} else if(str_keyword(&parse, "ADJUST")) {
adjustline(parse, current, cur_reply);
} else if(str_keyword(&parse, "EXTRA_PACKET")) {
@@ -654,15 +662,16 @@ read_entry(FILE* in, const char* name, struct sldns_file_parse_state* pstate,
if(hex_ednsdata_buffer)
sldns_buffer_free(hex_ednsdata_buffer);
if(pktlen != 0) {
- if(do_flag || cur_reply->raw_ednsdata) {
+ if(do_flag || co_flag
+ || cur_reply->raw_ednsdata) {
if(cur_reply->raw_ednsdata &&
sldns_buffer_limit(cur_reply->raw_ednsdata))
- add_edns(pktbuf, sizeof(pktbuf), do_flag,
+ add_edns(pktbuf, sizeof(pktbuf), do_flag, co_flag,
sldns_buffer_begin(cur_reply->raw_ednsdata),
(uint16_t)sldns_buffer_limit(cur_reply->raw_ednsdata),
&pktlen);
else
- add_edns(pktbuf, sizeof(pktbuf), do_flag,
+ add_edns(pktbuf, sizeof(pktbuf), do_flag, co_flag,
NULL, 0, &pktlen);
}
cur_reply->reply_pkt = memdup(pktbuf, pktlen);
@@ -909,6 +918,22 @@ get_do_flag(uint8_t* pkt, size_t len)
return (int)(edns_bits&LDNS_EDNS_MASK_DO_BIT);
}
+/** return true if the CO flag is set */
+static int
+get_co_flag(uint8_t* pkt, size_t len)
+{
+ uint16_t edns_bits;
+ uint8_t* walk = pkt;
+ size_t walk_len = len;
+ if(!pkt_find_edns_opt(&walk, &walk_len)) {
+ return 0;
+ }
+ if(walk_len < 6)
+ return 0; /* malformed */
+ edns_bits = sldns_read_uint16(walk+4);
+ return (int)(edns_bits&LDNS_EDNS_MASK_CO_BIT);
+}
+
/** Snips the specified EDNS option out of the OPT record and puts it in the
* provided buffer. The buffer should be able to hold any opt data ie 65535.
* Returns the length of the option written,
@@ -1654,6 +1679,10 @@ find_match(struct entry* entries, uint8_t* query_pkt, size_t len,
verbose(3, "no DO bit set\n");
continue;
}
+ if(p->match_co && !get_co_flag(query_pkt, len)) {
+ verbose(3, "no CO bit set\n");
+ continue;
+ }
if(p->match_noedns && get_has_edns(query_pkt, len)) {
verbose(3, "bad; EDNS OPT present\n");
continue;
@@ -1745,11 +1774,14 @@ adjust_packet(struct entry* match, uint8_t** answer_pkt, size_t *answer_len,
memmove(res+LDNS_HEADER_SIZE+dlen+4,
orig+LDNS_HEADER_SIZE+olen+4,
reslen-(LDNS_HEADER_SIZE+dlen+4));
+ } else if(origlen == 0) {
+ res = NULL;
+ reslen = 0;
} else {
res = memdup(orig, origlen);
reslen = origlen;
}
- if(!res) {
+ if(!res && reslen > 0) {
verbose(1, "out of memory; send without adjust\n");
return;
}
diff --git a/testcode/testpkts.h b/testcode/testpkts.h
index c6a3725f368e..e36802dbc8ac 100644
--- a/testcode/testpkts.h
+++ b/testcode/testpkts.h
@@ -218,6 +218,8 @@ struct entry {
uint8_t match_ttl;
/** match DO bit */
uint8_t match_do;
+ /** match CO bit */
+ uint8_t match_co;
/** match absence of EDNS OPT record in query */
uint8_t match_noedns;
/** match edns data field given in hex */
diff --git a/testcode/unitldns.c b/testcode/unitldns.c
index f8409fec71b1..07d001a792e1 100644
--- a/testcode/unitldns.c
+++ b/testcode/unitldns.c
@@ -207,7 +207,11 @@ rr_test_file(const char* input, const char* check)
#define xstr(s) str(s)
#define str(s) #s
+#ifndef __QNX__
#define SRCDIRSTR xstr(SRCDIR)
+#else /* !__QNX__ */
+#define SRCDIRSTR "."
+#endif /* __QNX__ */
/** read rrs to and from string, to and from wireformat */
static void
diff --git a/testcode/unitmain.c b/testcode/unitmain.c
index 07c016d7ba74..79ce45f39559 100644
--- a/testcode/unitmain.c
+++ b/testcode/unitmain.c
@@ -283,7 +283,7 @@ net_test(void)
unit_assert(strcmp(astr, "1.2.3.0") == 0);
unit_assert(ntohs(((struct sockaddr_in*)&a)->sin_port)==53);
- res = netblockstrtoaddr("2001:DB8:33:44::/64", 53,
+ res = netblockstrtoaddr("2001:db8:33:44::/64", 53,
&a, &alen, &net);
unit_assert(res!=0 && net == 64);
addr_to_str(&a, alen, astr, sizeof(astr));
diff --git a/testcode/unitmsgparse.c b/testcode/unitmsgparse.c
index a87314019d1f..d65b7dd02de3 100644
--- a/testcode/unitmsgparse.c
+++ b/testcode/unitmsgparse.c
@@ -498,7 +498,11 @@ testfromdrillfile(sldns_buffer* pkt, struct alloc_cache* alloc,
#define xstr(s) str(s)
#define str(s) #s
+#ifndef __QNX__
#define SRCDIRSTR xstr(SRCDIR)
+#else /* !__QNX__ */
+#define SRCDIRSTR "."
+#endif /* __QNX__ */
void msgparse_test(void)
{
diff --git a/testcode/unitverify.c b/testcode/unitverify.c
index 12d5205b07da..fcf2e2ffe3d1 100644
--- a/testcode/unitverify.c
+++ b/testcode/unitverify.c
@@ -513,8 +513,11 @@ nsec3_hash_test(const char* fname)
#define xstr(s) str(s)
#define str(s) #s
+#ifndef __QNX__
#define SRCDIRSTR xstr(SRCDIR)
-
+#else /* !__QNX__ */
+#define SRCDIRSTR "."
+#endif /* __QNX__ */
#if defined(HAVE_SSL) && defined(USE_SHA1)
/* Detect if openssl is configured to disable RSASHA1 signatures,
* with the rh-allow-sha1-signatures disabled. */
@@ -631,6 +634,7 @@ rh_allow_sha1_signatures_disabled(void)
void
verify_test(void)
{
+ int do_sha1 = 1;
unit_show_feature("signature verify");
#if defined(HAVE_SSL) && defined(USE_SHA1)
@@ -643,27 +647,40 @@ verify_test(void)
#else
_putenv("OPENSSL_ENABLE_SHA1_SIGNATURES=1");
#endif
+ do_sha1 = 1;
}
+#ifdef HAVE_EVP_DEFAULT_PROPERTIES_IS_FIPS_ENABLED
+ if (EVP_default_properties_is_fips_enabled(NULL))
+ do_sha1 = 0;
#endif
+#endif /* HAVE_SSL and USE_SHA1 */
#ifdef USE_SHA1
- verifytest_file(SRCDIRSTR "/testdata/test_signatures.1", "20070818005004");
+ if(do_sha1) {
+ verifytest_file(SRCDIRSTR "/testdata/test_signatures.1", "20070818005004");
+ }
#endif
#if defined(USE_DSA) && defined(USE_SHA1)
- verifytest_file(SRCDIRSTR "/testdata/test_signatures.2", "20080414005004");
- verifytest_file(SRCDIRSTR "/testdata/test_signatures.3", "20080416005004");
- verifytest_file(SRCDIRSTR "/testdata/test_signatures.4", "20080416005004");
- verifytest_file(SRCDIRSTR "/testdata/test_signatures.5", "20080416005004");
- verifytest_file(SRCDIRSTR "/testdata/test_signatures.6", "20080416005004");
- verifytest_file(SRCDIRSTR "/testdata/test_signatures.7", "20070829144150");
+ if(do_sha1) {
+ verifytest_file(SRCDIRSTR "/testdata/test_signatures.2", "20080414005004");
+ verifytest_file(SRCDIRSTR "/testdata/test_signatures.3", "20080416005004");
+ verifytest_file(SRCDIRSTR "/testdata/test_signatures.4", "20080416005004");
+ verifytest_file(SRCDIRSTR "/testdata/test_signatures.5", "20080416005004");
+ verifytest_file(SRCDIRSTR "/testdata/test_signatures.6", "20080416005004");
+ verifytest_file(SRCDIRSTR "/testdata/test_signatures.7", "20070829144150");
+ }
#endif /* USE_DSA */
#ifdef USE_SHA1
- verifytest_file(SRCDIRSTR "/testdata/test_signatures.8", "20070829144150");
+ if(do_sha1) {
+ verifytest_file(SRCDIRSTR "/testdata/test_signatures.8", "20070829144150");
+ }
#endif
#if (defined(HAVE_EVP_SHA256) || defined(HAVE_NSS) || defined(HAVE_NETTLE)) && defined(USE_SHA2)
verifytest_file(SRCDIRSTR "/testdata/test_sigs.rsasha256", "20070829144150");
# ifdef USE_SHA1
- verifytest_file(SRCDIRSTR "/testdata/test_sigs.sha1_and_256", "20070829144150");
+ if(do_sha1) {
+ verifytest_file(SRCDIRSTR "/testdata/test_sigs.sha1_and_256", "20070829144150");
+ }
# endif
verifytest_file(SRCDIRSTR "/testdata/test_sigs.rsasha256_draft", "20090101000000");
#endif
@@ -672,8 +689,10 @@ verify_test(void)
verifytest_file(SRCDIRSTR "/testdata/test_signatures.9", "20171215000000");
#endif
#ifdef USE_SHA1
- verifytest_file(SRCDIRSTR "/testdata/test_sigs.hinfo", "20090107100022");
- verifytest_file(SRCDIRSTR "/testdata/test_sigs.revoked", "20080414005004");
+ if(do_sha1) {
+ verifytest_file(SRCDIRSTR "/testdata/test_sigs.hinfo", "20090107100022");
+ verifytest_file(SRCDIRSTR "/testdata/test_sigs.revoked", "20080414005004");
+ }
#endif
#ifdef USE_GOST
if(sldns_key_EVP_load_gost_id())
@@ -699,7 +718,9 @@ verify_test(void)
}
#endif
#ifdef USE_SHA1
- dstest_file(SRCDIRSTR "/testdata/test_ds.sha1");
+ if(do_sha1) {
+ dstest_file(SRCDIRSTR "/testdata/test_ds.sha1");
+ }
#endif
nsectest();
nsec3_hash_test(SRCDIRSTR "/testdata/test_nsec3_hash.1");
diff --git a/testcode/unitzonemd.c b/testcode/unitzonemd.c
index 0420b0361590..c98dcf3959c9 100644
--- a/testcode/unitzonemd.c
+++ b/testcode/unitzonemd.c
@@ -50,7 +50,11 @@
#define xstr(s) str(s)
#define str(s) #s
+#ifndef __QNX__
#define SRCDIRSTR xstr(SRCDIR)
+#else /* !__QNX__ */
+#define SRCDIRSTR "."
+#endif /* __QNX__ */
/** Add zone from file for testing */
struct auth_zone* authtest_addzone(struct auth_zones* az, const char* name,
diff --git a/testdata/04-checkconf.tdir/good.all b/testdata/04-checkconf.tdir/good.all
index d564f983c5a0..2f80db8a8b01 100644
--- a/testdata/04-checkconf.tdir/good.all
+++ b/testdata/04-checkconf.tdir/good.all
@@ -24,7 +24,7 @@ server:
# specify every interface on a new 'interface:' labelled line.
interface: 192.0.2.153
interface: 192.0.2.154
- interface: 2001:DB8::5
+ interface: 2001:db8::5
# port to answer queries from
port: 53
diff --git a/testdata/04-checkconf.tdir/good.ifport b/testdata/04-checkconf.tdir/good.ifport
index 1aa59d1b701f..aba268574e92 100644
--- a/testdata/04-checkconf.tdir/good.ifport
+++ b/testdata/04-checkconf.tdir/good.ifport
@@ -11,7 +11,7 @@ server:
# specify every interface on a new 'interface:' labelled line.
interface: 192.0.2.153
interface: 192.0.2.154
- interface: 2001:DB8::5
+ interface: 2001:db8::5
interface: 0.0.0.0@5353
# config
diff --git a/testdata/auth_https_origin.tdir/127.0.0.1/example.com.zone b/testdata/auth_https_origin.tdir/127.0.0.1/example.com.zone
new file mode 100644
index 000000000000..e5ef82f14aed
--- /dev/null
+++ b/testdata/auth_https_origin.tdir/127.0.0.1/example.com.zone
@@ -0,0 +1,5 @@
+$ORIGIN .
+$TTL 7200
+example.com. IN SOA ns.example.com. hostmaster.example.com. 1 3600 900 86400 3600
+example.com. IN NS ns.example.net.
+www.example.com. IN A 1.2.3.4
diff --git a/testdata/auth_https_origin.tdir/auth_https_origin.conf b/testdata/auth_https_origin.tdir/auth_https_origin.conf
new file mode 100644
index 000000000000..bfe013e44bc9
--- /dev/null
+++ b/testdata/auth_https_origin.tdir/auth_https_origin.conf
@@ -0,0 +1,17 @@
+server:
+ verbosity: 7
+ # num-threads: 1
+ interface: 127.0.0.1
+ port: @PORT@
+ use-syslog: no
+ directory: ""
+ pidfile: "unbound.pid"
+ chroot: ""
+ username: ""
+ do-not-query-localhost: no
+auth-zone:
+ name: "example.com"
+ for-upstream: yes
+ for-downstream: yes
+ url: "https://127.0.0.1:@TOPORT@/example.com.zone"
+
diff --git a/testdata/auth_https_origin.tdir/auth_https_origin.dsc b/testdata/auth_https_origin.tdir/auth_https_origin.dsc
new file mode 100644
index 000000000000..9727fc6d13c0
--- /dev/null
+++ b/testdata/auth_https_origin.tdir/auth_https_origin.dsc
@@ -0,0 +1,16 @@
+BaseName: auth_https_origin
+Version: 1.0
+Description: Perform https for authority zone with $ORIGIN
+CreationDate: Mon 29 September 14:35:40 CEST 2025
+Maintainer: dr. W.C.A. Wijngaards
+Category:
+Component:
+CmdDepends:
+Depends:
+Help:
+Pre: auth_https_origin.pre
+Post: auth_https_origin.post
+Test: auth_https_origin.test
+AuxFiles:
+Passed:
+Failure:
diff --git a/testdata/auth_https_origin.tdir/auth_https_origin.post b/testdata/auth_https_origin.tdir/auth_https_origin.post
new file mode 100644
index 000000000000..f642d5401092
--- /dev/null
+++ b/testdata/auth_https_origin.tdir/auth_https_origin.post
@@ -0,0 +1,11 @@
+# #-- auth_https_origin.post --#
+# source the master var file when it's there
+[ -f ../.tpkg.var.master ] && source ../.tpkg.var.master
+# source the test var file when it's there
+[ -f .tpkg.var.test ] && source .tpkg.var.test
+#
+# do your teardown here
+PRE="../.."
+. ../common.sh
+kill_pid $UNBOUND_PID
+kill_pid $PETAL_PID
diff --git a/testdata/auth_https_origin.tdir/auth_https_origin.pre b/testdata/auth_https_origin.tdir/auth_https_origin.pre
new file mode 100644
index 000000000000..ec838c571347
--- /dev/null
+++ b/testdata/auth_https_origin.tdir/auth_https_origin.pre
@@ -0,0 +1,34 @@
+# #-- auth_https_origin.pre--#
+# source the master var file when it's there
+[ -f ../.tpkg.var.master ] && source ../.tpkg.var.master
+# use .tpkg.var.test for in test variable passing
+[ -f .tpkg.var.test ] && source .tpkg.var.test
+
+PRE="../.."
+. ../common.sh
+get_random_port 2
+UNBOUND_PORT=$RND_PORT
+PETAL_PORT=$(($RND_PORT + 1))
+echo "UNBOUND_PORT=$UNBOUND_PORT" >> .tpkg.var.test
+echo "PETAL_PORT=$PETAL_PORT" >> .tpkg.var.test
+
+get_make
+(cd $PRE; $MAKE petal)
+
+# start https daemon
+$PRE/petal -v -a "127.0.0.1" -p $PETAL_PORT >petal.log 2>&1 &
+PETAL_PID=$!
+echo "PETAL_PID=$PETAL_PID" >> .tpkg.var.test
+cat .tpkg.var.test
+wait_petal_up petal.log
+
+# make config file
+sed -e 's/@PORT\@/'$UNBOUND_PORT'/' -e 's/@TOPORT\@/'$PETAL_PORT'/' < auth_https_origin.conf > ub.conf
+# start unbound in the background
+$PRE/unbound -d -c ub.conf >unbound.log 2>&1 &
+UNBOUND_PID=$!
+echo "UNBOUND_PID=$UNBOUND_PID" >> .tpkg.var.test
+
+cat .tpkg.var.test
+wait_unbound_up unbound.log
+
diff --git a/testdata/auth_https_origin.tdir/auth_https_origin.test b/testdata/auth_https_origin.tdir/auth_https_origin.test
new file mode 100644
index 000000000000..ac6eda9bbcff
--- /dev/null
+++ b/testdata/auth_https_origin.tdir/auth_https_origin.test
@@ -0,0 +1,63 @@
+# #-- auth_https_origin.test --#
+# source the master var file when it's there
+[ -f ../.tpkg.var.master ] && source ../.tpkg.var.master
+# use .tpkg.var.test for in test variable passing
+[ -f .tpkg.var.test ] && source .tpkg.var.test
+
+PRE="../.."
+. ../common.sh
+# do the test
+echo "> dig www.example.com."
+dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
+if grep SERVFAIL outfile; then
+ echo "> try again"
+ dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
+fi
+if grep SERVFAIL outfile; then
+ echo "> try again"
+ sleep 1
+ dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
+fi
+if grep SERVFAIL outfile; then
+ echo "> try again"
+ sleep 1
+ dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
+fi
+if grep SERVFAIL outfile; then
+ echo "> try again"
+ sleep 1
+ dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
+fi
+if grep SERVFAIL outfile; then
+ echo "> try again"
+ sleep 10
+ dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
+fi
+if grep SERVFAIL outfile; then
+ echo "> try again"
+ sleep 10
+ dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
+fi
+echo "> cat logfiles"
+cat petal.log
+cat unbound.log
+echo "> check answer"
+if grep "1.2.3.4" outfile; then
+ echo "OK"
+else
+ echo "Not OK"
+ exit 1
+fi
+
+# Test that notify is allowed from the webserver address
+get_ldns_notify
+echo "> ldns-notify -z example.com"
+$LDNS_NOTIFY -p $UNBOUND_PORT -z example.com 127.0.0.1 | tee outfile
+if grep "rcode: REFUSED" outfile; then
+ echo "Not OK"
+ exit 1
+else
+ echo "OK"
+fi
+
+exit 0
diff --git a/testdata/auth_https_origin.tdir/petal.key b/testdata/auth_https_origin.tdir/petal.key
new file mode 100644
index 000000000000..6614e498fcd2
--- /dev/null
+++ b/testdata/auth_https_origin.tdir/petal.key
@@ -0,0 +1,21 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIDfQIBAAKBwQC1xQ/Kca6zszZbcCtdOTIH2Uy2gOy/DfabMUU7TmNPm0dVE0NJ
+RuN+Rm304SonpwghfP2/ULZNnuDgpG03/32yI7k/VzG6iA4hiF7tT/KAAWC/+2l1
+QCsawCV2bSrFK0VhcZr7ALqXd8vkDaQ867K029ypjOQtAJ85qdO3mERy7TGtdUcu
+O6hLeVet419YeQ2F8cfNxn63d7bOzNGLPW5xwaCd3UcgD+Ib0k4xfFvbinvPQUeU
+J/i4YDWexFYSL+ECAwEAAQKBwCLXXQl+9O+5AEhSnd1Go1Jh0pSA7eBJOuXQcebG
+Rb7ykp+6C4G2NtDziwwPRNdI6wQQQ0sym18RfyVQHydGr78/nbiIbB3HCn5e92Mh
+mefzW6ow9Kvm2txLzGKA1lvoyRbNm81jnG/eygi3u7Nqd5PNv+4dHj2RkTlmxOeh
+qnDMVP5md8uZPv6lYNnrnIzvLCR5vnPNdVwn89AqzI85IcDZdy0R9ZX4NBbsDgAU
+6ig6uXuRXvSGiyJ/OUXSrnogaQJhAOjvkHUhVZQkPOxO90TNH4j0GdKKtbSWxIdz
+lKfuJeBAEqs0TL+C6vbS81Xw3W1alyDdUBk3rJMOBqW6Ryq5HNL+j5H+Jfsh7fvc
+Yle+5wHGci0P9zCFZCrY8It7n9XFIwJhAMfEi6oJa2G8waPJ1bQhxka82Tf9pnKM
+XCn/1BBOFjVIx5F842cpA+zp5a62GENTGYPQTTRBB/2/ZwnW5aIkrlg54AtmbqBZ
+Oh+2kJdJQD/tfoVmc5soUE2ScTHadK5RKwJhAN4w9kjkXS+MSZjX0kIMsBIBVkhh
+C+aREjJqa9ir7/Ey7RvmLXdYuCxtGLRXp7/R8+rjcK49Tx6O+IRJZe042mfhbq3C
+EhS1Tr86f4xXix9EXlDhs9bSxrOgcAN9Dv/opQJhAK7eBcPaav0rVfYh/8emqQHS
+3fJ9Pu6WnzbEksWTFS2ff9KDGCx9YspIFJ5TF/oXDAaumGZdZrlgirm6O1kr8tGY
+F97i04PZl1+bWAaWQH+1TUNI43m2WFUPE7coG2tb8QJgcddDg9VlXliZqgcETZfJ
+kJmYETxrcSn3ao6v116N8yxhEgUgjkmsCTiFgx36iDVnXwK6PIt+sIu8MC7eYNa3
+berrv/M21K0LRn20IWRxvUobG070weHCAgkko7fTWgr2
+-----END RSA PRIVATE KEY-----
diff --git a/testdata/auth_https_origin.tdir/petal.pem b/testdata/auth_https_origin.tdir/petal.pem
new file mode 100644
index 000000000000..19c8b895ba86
--- /dev/null
+++ b/testdata/auth_https_origin.tdir/petal.pem
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICFzCCAUACCQDO660L5y5LGDANBgkqhkiG9w0BAQUFADAQMQ4wDAYDVQQDEwVw
+ZXRhbDAeFw0xMDA5MzAxMzQzMDFaFw0zMDA2MTcxMzQzMDFaMBAxDjAMBgNVBAMT
+BXBldGFsMIHfMA0GCSqGSIb3DQEBAQUAA4HNADCByQKBwQC1xQ/Kca6zszZbcCtd
+OTIH2Uy2gOy/DfabMUU7TmNPm0dVE0NJRuN+Rm304SonpwghfP2/ULZNnuDgpG03
+/32yI7k/VzG6iA4hiF7tT/KAAWC/+2l1QCsawCV2bSrFK0VhcZr7ALqXd8vkDaQ8
+67K029ypjOQtAJ85qdO3mERy7TGtdUcuO6hLeVet419YeQ2F8cfNxn63d7bOzNGL
+PW5xwaCd3UcgD+Ib0k4xfFvbinvPQUeUJ/i4YDWexFYSL+ECAwEAATANBgkqhkiG
+9w0BAQUFAAOBwQBBkX9KDP2RXbg+xPmdJ4P6CwvA5x1LZwC++ydVx4NlvT0pWicD
+ZUnXjcWAJlkeOuUBAqFG7WHTrXpUUAjmdqFVq2yFjteUYBdrFz0RDB2jM9feeKYO
+mTgxdZyT9a6humxCxt5VfgT02axLjm/2AqCyFPMbf4PASoJDln01AEuZLZ8Xl2gV
+bYHMnHTGoD1Hu6FNEzRgkMC6XT8X3YjHvzQhpc/qL5wEfEsinQGdX4twsuWbf8xd
+q7miNnkO8vd0maw=
+-----END CERTIFICATE-----
diff --git a/testdata/auth_notify_lookup.rpl b/testdata/auth_notify_lookup.rpl
new file mode 100644
index 000000000000..72faa1305609
--- /dev/null
+++ b/testdata/auth_notify_lookup.rpl
@@ -0,0 +1,341 @@
+; config options
+server:
+ target-fetch-policy: "0 0 0 0 0"
+ access-control: 1.2.3.0/24 allow
+
+auth-zone:
+ name: "example.com."
+ ## zonefile (or none).
+ ## zonefile: "example.com.zone"
+ ## master by IP address or hostname
+ ## can list multiple masters, each on one line.
+ ## master:
+ master: 1.2.3.44
+ ## this is as a hostname, to test the hostname lookup.
+ allow-notify: svr.example.org
+ ## url for http fetch
+ ## url:
+ ## queries from downstream clients get authoritative answers.
+ ## for-downstream: yes
+ for-downstream: yes
+ ## queries are used to fetch authoritative answers from this zone,
+ ## instead of unbound itself sending queries there.
+ ## for-upstream: yes
+ for-upstream: yes
+ ## on failures with for-upstream, fallback to sending queries to
+ ## the authority servers
+ ## fallback-enabled: no
+
+ ## this line generates zonefile: \n"/tmp/xxx.example.com"\n
+ zonefile:
+TEMPFILE_NAME example.com
+ ## this is the inline file /tmp/xxx.example.com
+ ## the tempfiles are deleted when the testrun is over.
+TEMPFILE_CONTENTS example.com
+example.com. 3600 IN SOA ns.example.com. hostmaster.example.com. 1 3600 900 86400 3600
+TEMPFILE_END
+
+stub-zone:
+ name: "."
+ stub-addr: 193.0.14.129 # K.ROOT-SERVERS.NET.
+CONFIG_END
+
+SCENARIO_BEGIN Test authority zone with lookup for a NOTIFY
+; The allow-notify is specified as a hostname.
+
+; K.ROOT-SERVERS.NET.
+RANGE_BEGIN 0 100
+ ADDRESS 193.0.14.129
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+. IN NS
+SECTION ANSWER
+. IN NS K.ROOT-SERVERS.NET.
+SECTION ADDITIONAL
+K.ROOT-SERVERS.NET. IN A 193.0.14.129
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode subdomain
+ADJUST copy_id copy_query
+REPLY QR NOERROR
+SECTION QUESTION
+com. IN NS
+SECTION AUTHORITY
+com. IN NS a.gtld-servers.net.
+SECTION ADDITIONAL
+a.gtld-servers.net. IN A 192.5.6.30
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode subdomain
+ADJUST copy_id copy_query
+REPLY QR NOERROR
+SECTION QUESTION
+org. IN NS
+SECTION AUTHORITY
+org. IN NS ns.org.
+SECTION ADDITIONAL
+ns.org. IN A 1.2.3.45
+ENTRY_END
+RANGE_END
+
+; a.gtld-servers.net.
+RANGE_BEGIN 0 100
+ ADDRESS 192.5.6.30
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+com. IN NS
+SECTION ANSWER
+com. IN NS a.gtld-servers.net.
+SECTION ADDITIONAL
+a.gtld-servers.net. IN A 192.5.6.30
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode subdomain
+ADJUST copy_id copy_query
+REPLY QR NOERROR
+SECTION QUESTION
+example.com. IN NS
+SECTION AUTHORITY
+example.com. IN NS ns.example.com.
+SECTION ADDITIONAL
+ns.example.com. IN A 1.2.3.44
+ENTRY_END
+RANGE_END
+
+; ns.org
+RANGE_BEGIN 0 100
+ ADDRESS 1.2.3.45
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+org. IN NS
+SECTION ANSWER
+org. IN NS ns.org.
+SECTION ADDITIONAL
+ns.org. IN A 1.2.3.45
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode subdomain
+ADJUST copy_id copy_query
+REPLY QR NOERROR
+SECTION QUESTION
+example.org. IN NS
+SECTION AUTHORITY
+example.org. IN NS ns.example.org.
+SECTION ADDITIONAL
+ns.example.org. IN A 1.2.3.46
+ENTRY_END
+RANGE_END
+
+; ns.example.net.
+RANGE_BEGIN 0 100
+ ADDRESS 1.2.3.44
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+example.net. IN NS
+SECTION ANSWER
+example.net. IN NS ns.example.net.
+SECTION ADDITIONAL
+ns.example.net. IN A 1.2.3.44
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+ns.example.net. IN A
+SECTION ANSWER
+ns.example.net. IN A 1.2.3.44
+SECTION AUTHORITY
+example.net. IN NS ns.example.net.
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+ns.example.net. IN AAAA
+SECTION AUTHORITY
+example.net. IN NS ns.example.net.
+SECTION ADDITIONAL
+www.example.net. IN A 1.2.3.44
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+example.com. IN NS
+SECTION ANSWER
+example.com. IN NS ns.example.net.
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+www.example.com. IN A
+SECTION ANSWER
+www.example.com. IN A 10.20.30.40
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+example.com. IN SOA
+SECTION ANSWER
+; serial, refresh, retry, expire, minimum
+example.com. IN SOA ns.example.com. hostmaster.example.com. 2 3600 900 86400 3600
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOTIMPL
+SECTION QUESTION
+example.com. IN IXFR
+SECTION ANSWER
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+example.com. IN AXFR
+SECTION ANSWER
+example.com. IN SOA ns.example.com. hostmaster.example.com. 2 3600 900 86400 3600
+example.com. IN NS ns.example.net.
+EXTRA_PACKET
+REPLY QR AA NOERROR
+SECTION QUESTION
+example.com. IN AXFR
+SECTION ANSWER
+www.example.com. IN A 1.2.3.4
+example.com. IN SOA ns.example.com. hostmaster.example.com. 2 3600 900 86400 3600
+ENTRY_END
+RANGE_END
+
+; ns.example.org.
+RANGE_BEGIN 0 100
+ ADDRESS 1.2.3.46
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+example.org. IN NS
+SECTION ANSWER
+example.org. IN NS ns.example.org.
+SECTION ADDITIONAL
+ns.example.org. IN A 1.2.3.46
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+svr.example.org. IN A
+SECTION ANSWER
+svr.example.org. IN A 1.2.3.47
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+svr.example.org. IN AAAA
+SECTION AUTHORITY
+example.org. IN SOA ns.example.com. hostmaster.example.com. 2 3600 900 86400 3600
+ENTRY_END
+RANGE_END
+
+; lookups for notify hostnames.
+STEP 1 TIME_PASSES ELAPSE 0
+
+; now the query
+STEP 2 QUERY
+ENTRY_BEGIN
+REPLY RD
+SECTION QUESTION
+www.example.com. IN A
+ENTRY_END
+
+; recursion happens here.
+STEP 20 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all
+REPLY QR AA RD RA NXDOMAIN
+SECTION QUESTION
+www.example.com. IN A
+SECTION AUTHORITY
+example.com. 3600 IN SOA ns.example.com. hostmaster.example.com. 1 3600 900 86400 3600
+ENTRY_END
+
+; NOTIFY example.com
+STEP 30 QUERY ADDRESS 1.2.3.47
+ENTRY_BEGIN
+REPLY NOTIFY
+SECTION QUESTION
+example.com. IN SOA
+ENTRY_END
+; notify reply
+STEP 40 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all
+REPLY QR RA NOTIFY NOERROR
+SECTION QUESTION
+example.com. IN SOA
+SECTION ANSWER
+ENTRY_END
+
+STEP 50 QUERY
+ENTRY_BEGIN
+REPLY RD
+SECTION QUESTION
+www.example.com. IN A
+ENTRY_END
+
+; recursion happens here.
+STEP 60 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all
+REPLY QR AA RD RA NOERROR
+SECTION QUESTION
+www.example.com. IN A
+SECTION ANSWER
+www.example.com. IN A 1.2.3.4
+ENTRY_END
+
+; the zonefile was updated with new contents
+STEP 70 CHECK_TEMPFILE example.com
+FILE_BEGIN
+example.com. 3600 IN SOA ns.example.com. hostmaster.example.com. 2 3600 900 86400 3600
+example.com. 3600 IN NS ns.example.net.
+www.example.com. 3600 IN A 1.2.3.4
+FILE_END
+
+SCENARIO_END
diff --git a/testdata/cachedb_expired.crpl b/testdata/cachedb_expired.crpl
index d3bf06fe1a1b..697e88e264ac 100644
--- a/testdata/cachedb_expired.crpl
+++ b/testdata/cachedb_expired.crpl
@@ -5,7 +5,10 @@ server:
minimal-responses: no
serve-expired: yes
serve-expired-client-timeout: 0
+ serve-expired-reply-ttl: 123
module-config: "cachedb iterator"
+ ede: yes
+ ede-serve-expired: yes
cachedb:
backend: "testframe"
@@ -82,7 +85,7 @@ REPLY QR AA NOERROR
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
-www.example.com. 10 IN A 1.2.3.4
+www.example.com. 200 IN A 1.2.3.4
ENTRY_END
ENTRY_BEGIN
@@ -91,7 +94,8 @@ REPLY QR AA NOERROR
SECTION QUESTION
www2.example.com. IN A
SECTION ANSWER
-www2.example.com. 10 IN A 1.2.3.5
+; TTL lower than serve-expired-reply-ttl on purpose
+www2.example.com. 100 IN A 1.2.3.5
ENTRY_END
RANGE_END
@@ -111,7 +115,7 @@ REPLY QR RD RA NOERROR
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
-www.example.com. 10 IN A 1.2.3.4
+www.example.com. 200 IN A 1.2.3.4
ENTRY_END
; Get another query in cache to make it expired.
@@ -130,46 +134,46 @@ REPLY QR RD RA NOERROR
SECTION QUESTION
www2.example.com. IN A
SECTION ANSWER
-www2.example.com. 10 IN A 1.2.3.5
+www2.example.com. 100 IN A 1.2.3.5
ENTRY_END
; it is now expired
-STEP 40 TIME_PASSES ELAPSE 20
+STEP 40 TIME_PASSES ELAPSE 200
; cache is expired, and cachedb is expired.
STEP 50 QUERY
ENTRY_BEGIN
-REPLY RD
+REPLY RD DO
SECTION QUESTION
www2.example.com. IN A
ENTRY_END
STEP 60 CHECK_ANSWER
ENTRY_BEGIN
-MATCH all ttl
-REPLY QR RD RA NOERROR
+MATCH all ttl ede=3
+REPLY QR RD RA DO NOERROR
SECTION QUESTION
www2.example.com. IN A
SECTION ANSWER
-www2.example.com. 30 IN A 1.2.3.5
+www2.example.com. 100 IN A 1.2.3.5
ENTRY_END
; cache is expired, cachedb has no answer
STEP 70 QUERY
ENTRY_BEGIN
-REPLY RD
+REPLY RD DO
SECTION QUESTION
www.example.com. IN A
ENTRY_END
STEP 80 CHECK_ANSWER
ENTRY_BEGIN
-MATCH all ttl
-REPLY QR RD RA NOERROR
+MATCH all ttl ede=3
+REPLY QR RD RA DO NOERROR
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
-www.example.com. 30 IN A 1.2.3.4
+www.example.com. 123 IN A 1.2.3.4
ENTRY_END
STEP 90 TRAFFIC
@@ -189,7 +193,7 @@ REPLY QR RD RA NOERROR
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
-www.example.com. 10 IN A 1.2.3.4
+www.example.com. 200 IN A 1.2.3.4
ENTRY_END
; flush the entry from cache
@@ -210,30 +214,30 @@ REPLY QR RD RA NOERROR
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
-www.example.com. 10 IN A 1.2.3.4
+www.example.com. 200 IN A 1.2.3.4
ENTRY_END
; it is now expired
-STEP 150 TIME_PASSES ELAPSE 20
+STEP 150 TIME_PASSES ELAPSE 200
; flush the entry from cache
STEP 160 FLUSH_MESSAGE www.example.com. IN A
; cache has no answer, cachedb is expired
STEP 170 QUERY
ENTRY_BEGIN
-REPLY RD
+REPLY RD DO
SECTION QUESTION
www.example.com. IN A
ENTRY_END
STEP 180 CHECK_ANSWER
ENTRY_BEGIN
-MATCH all ttl
-REPLY QR RD RA NOERROR
+MATCH all ttl ede=3
+REPLY QR RD RA DO NOERROR
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
-www.example.com. 30 IN A 1.2.3.4
+www.example.com. 123 IN A 1.2.3.4
ENTRY_END
STEP 190 TRAFFIC
@@ -254,7 +258,7 @@ REPLY QR RD RA NOERROR
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
-www.example.com. 10 IN A 1.2.3.4
+www.example.com. 200 IN A 1.2.3.4
ENTRY_END
; expire the entry in cache
@@ -275,30 +279,30 @@ REPLY QR RD RA NOERROR
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
-www.example.com. 10 IN A 1.2.3.4
+www.example.com. 200 IN A 1.2.3.4
ENTRY_END
; it is now expired
-STEP 250 TIME_PASSES ELAPSE 20
+STEP 250 TIME_PASSES ELAPSE 200
; expire the entry in cache
STEP 260 EXPIRE_MESSAGE www.example.com. IN A
; cache is expired, cachedb is expired
STEP 270 QUERY
ENTRY_BEGIN
-REPLY RD
+REPLY RD DO
SECTION QUESTION
www.example.com. IN A
ENTRY_END
STEP 280 CHECK_ANSWER
ENTRY_BEGIN
-MATCH all ttl
-REPLY QR RD RA NOERROR
+MATCH all ttl ede=3
+REPLY QR RD RA DO NOERROR
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
-www.example.com. 30 IN A 1.2.3.4
+www.example.com. 123 IN A 1.2.3.4
ENTRY_END
STEP 290 TRAFFIC
@@ -319,7 +323,7 @@ REPLY QR RD RA NOERROR
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
-www.example.com. 10 IN A 1.2.3.4
+www.example.com. 200 IN A 1.2.3.4
ENTRY_END
SCENARIO_END
diff --git a/testdata/cachedb_expired_client_timeout.crpl b/testdata/cachedb_expired_client_timeout.crpl
index 78ddf4d8f698..16d8cc30d67c 100644
--- a/testdata/cachedb_expired_client_timeout.crpl
+++ b/testdata/cachedb_expired_client_timeout.crpl
@@ -4,12 +4,14 @@ server:
qname-minimisation: no
minimal-responses: no
serve-expired: yes
- serve-expired-reply-ttl: 30
+ serve-expired-reply-ttl: 123
; at least one second, so we can time skip past the timer in the
; testbound script steps, but also reply within the time.
serve-expired-client-timeout: 1200
module-config: "cachedb iterator"
discard-timeout: 3000
+ ede: yes
+ ede-serve-expired: yes
cachedb:
backend: "testframe"
@@ -86,7 +88,7 @@ REPLY QR AA NOERROR
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
-www.example.com. 10 IN A 1.2.3.4
+www.example.com. 200 IN A 1.2.3.4
ENTRY_END
ENTRY_BEGIN
@@ -95,7 +97,8 @@ REPLY QR AA NOERROR
SECTION QUESTION
www2.example.com. IN A
SECTION ANSWER
-www2.example.com. 10 IN A 1.2.3.5
+; TTL lower than serve-expired-reply-ttl on purpose
+www2.example.com. 100 IN A 1.2.3.5
ENTRY_END
RANGE_END
@@ -108,7 +111,7 @@ REPLY QR AA NOERROR
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
-www.example.com. 10 IN A 1.2.3.6
+www.example.com. 200 IN A 1.2.3.6
ENTRY_END
ENTRY_BEGIN
@@ -117,7 +120,8 @@ REPLY QR AA NOERROR
SECTION QUESTION
www2.example.com. IN A
SECTION ANSWER
-www2.example.com. 10 IN A 1.2.3.7
+; TTL lower than serve-expired-reply-ttl on purpose
+www2.example.com. 100 IN A 1.2.3.7
ENTRY_END
RANGE_END
@@ -132,7 +136,7 @@ REPLY QR AA NOERROR
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
-www.example.com. 10 IN A 1.2.3.8
+www.example.com. 200 IN A 1.2.3.8
ENTRY_END
ENTRY_BEGIN
@@ -141,7 +145,8 @@ REPLY QR AA NOERROR
SECTION QUESTION
www2.example.com. IN A
SECTION ANSWER
-www2.example.com. 10 IN A 1.2.3.9
+; TTL lower than serve-expired-reply-ttl on purpose
+www2.example.com. 100 IN A 1.2.3.9
ENTRY_END
RANGE_END
@@ -156,7 +161,7 @@ REPLY QR AA NOERROR
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
-www.example.com. 10 IN A 1.2.3.10
+www.example.com. 200 IN A 1.2.3.10
ENTRY_END
ENTRY_BEGIN
@@ -165,7 +170,7 @@ REPLY QR AA NOERROR
SECTION QUESTION
www2.example.com. IN A
SECTION ANSWER
-www2.example.com. 10 IN A 1.2.3.11
+www2.example.com. 100 IN A 1.2.3.11
ENTRY_END
RANGE_END
@@ -188,7 +193,7 @@ REPLY QR RD RA NOERROR
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
-www.example.com. 10 IN A 1.2.3.4
+www.example.com. 200 IN A 1.2.3.4
ENTRY_END
; Get another query in cache.
@@ -207,7 +212,7 @@ REPLY QR RD RA NOERROR
SECTION QUESTION
www2.example.com. IN A
SECTION ANSWER
-www2.example.com. 10 IN A 1.2.3.5
+www2.example.com. 100 IN A 1.2.3.5
ENTRY_END
; www.example.com and www2.example.com are in cache, www2 in cachedb.
@@ -217,7 +222,7 @@ STEP 40 FLUSH_MESSAGE www2.example.com. IN A
; response from cachedb for www2.
; make 2 seconds pass to decrement the TTL on the response,
-; the upstream TTL would be 10, cachedb 8.
+; the upstream TTL would be 200, cachedb 198.
STEP 48 TIME_PASSES ELAPSE 2
STEP 50 QUERY
@@ -234,11 +239,11 @@ REPLY QR RD RA NOERROR
SECTION QUESTION
www2.example.com. IN A
SECTION ANSWER
-www2.example.com. 8 IN A 1.2.3.5
+www2.example.com. 98 IN A 1.2.3.5
ENTRY_END
; make both cache and cachedb expired
-STEP 70 TIME_PASSES ELAPSE 20
+STEP 70 TIME_PASSES ELAPSE 200
; www and www2 expired in cache, www2 expired in cachedb.
; the query should now try to resolve and complete within the
@@ -258,11 +263,11 @@ REPLY QR RD RA NOERROR
SECTION QUESTION
www2.example.com. IN A
SECTION ANSWER
-www2.example.com. 10 IN A 1.2.3.7
+www2.example.com. 100 IN A 1.2.3.7
ENTRY_END
; expire the data again
-STEP 100 TIME_PASSES ELAPSE 20
+STEP 100 TIME_PASSES ELAPSE 200
; the query should now try to resolve, but the upstream is not
; responsive for several testbound steps. When the timer expires,
@@ -271,7 +276,7 @@ STEP 100 TIME_PASSES ELAPSE 20
; www2 expired in cache and www2 expired in cachedb.
STEP 110 QUERY
ENTRY_BEGIN
-REPLY RD
+REPLY RD DO
SECTION QUESTION
www2.example.com. IN A
ENTRY_END
@@ -281,26 +286,26 @@ STEP 112 TIME_PASSES ELAPSE 2
STEP 120 CHECK_ANSWER
ENTRY_BEGIN
-MATCH all ttl
-REPLY QR RD RA NOERROR
+MATCH all ttl ede=3
+REPLY QR RD RA DO NOERROR
SECTION QUESTION
www2.example.com. IN A
SECTION ANSWER
-www2.example.com. 30 IN A 1.2.3.7
+www2.example.com. 100 IN A 1.2.3.7
ENTRY_END
; make traffic flow to resolve the query, server responds.
STEP 130 TRAFFIC
; expire the data again
-STEP 140 TIME_PASSES ELAPSE 20
+STEP 140 TIME_PASSES ELAPSE 200
; The client query tries to resolve, but gets no immediate answer,
; so the expired data is used. But the expired data is in cache and
; the query is not in cachedb.
STEP 150 QUERY
ENTRY_BEGIN
-REPLY RD
+REPLY RD DO
SECTION QUESTION
www.example.com. IN A
ENTRY_END
@@ -310,12 +315,12 @@ STEP 152 TIME_PASSES ELAPSE 2
STEP 160 CHECK_ANSWER
ENTRY_BEGIN
-MATCH all ttl
-REPLY QR RD RA NOERROR
+MATCH all ttl ede=3
+REPLY QR RD RA DO NOERROR
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
-www.example.com. 30 IN A 1.2.3.4
+www.example.com. 123 IN A 1.2.3.4
ENTRY_END
; make traffic flow to resolve the query, server responds.
@@ -337,7 +342,7 @@ REPLY QR RD RA NOERROR
SECTION QUESTION
www2.example.com. IN A
SECTION ANSWER
-www2.example.com. 10 IN A 1.2.3.11
+www2.example.com. 100 IN A 1.2.3.11
ENTRY_END
SCENARIO_END
diff --git a/testdata/cachedb_expired_reply_ttl.crpl b/testdata/cachedb_expired_reply_ttl.crpl
index 03fd01add476..b8adbe738a7f 100644
--- a/testdata/cachedb_expired_reply_ttl.crpl
+++ b/testdata/cachedb_expired_reply_ttl.crpl
@@ -5,8 +5,10 @@ server:
minimal-responses: no
serve-expired: yes
serve-expired-client-timeout: 0
- serve-expired-reply-ttl: 30
+ serve-expired-reply-ttl: 123
module-config: "cachedb iterator"
+ ede: yes
+ ede-serve-expired: yes
cachedb:
backend: "testframe"
@@ -83,7 +85,7 @@ REPLY QR AA NOERROR
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
-www.example.com. 10 IN A 1.2.3.4
+www.example.com. 200 IN A 1.2.3.4
ENTRY_END
ENTRY_BEGIN
@@ -92,7 +94,8 @@ REPLY QR AA NOERROR
SECTION QUESTION
www2.example.com. IN A
SECTION ANSWER
-www2.example.com. 10 IN A 1.2.3.5
+; TTL lower than serve-expired-reply-ttl on purpose
+www2.example.com. 100 IN A 1.2.3.5
ENTRY_END
RANGE_END
@@ -115,7 +118,7 @@ REPLY QR RD RA NOERROR
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
-www.example.com. 10 IN A 1.2.3.4
+www.example.com. 200 IN A 1.2.3.4
ENTRY_END
; Get another query in cache to make it expired.
@@ -134,28 +137,28 @@ REPLY QR RD RA NOERROR
SECTION QUESTION
www2.example.com. IN A
SECTION ANSWER
-www2.example.com. 10 IN A 1.2.3.5
+www2.example.com. 100 IN A 1.2.3.5
ENTRY_END
; it is now expired
-STEP 40 TIME_PASSES ELAPSE 20
+STEP 40 TIME_PASSES ELAPSE 200
; cache is expired, and cachedb is expired.
STEP 50 QUERY
ENTRY_BEGIN
-REPLY RD
+REPLY RD DO
SECTION QUESTION
www2.example.com. IN A
ENTRY_END
STEP 60 CHECK_ANSWER
ENTRY_BEGIN
-MATCH all ttl
-REPLY QR RD RA NOERROR
+MATCH all ttl ede=3
+REPLY QR RD RA DO NOERROR
SECTION QUESTION
www2.example.com. IN A
SECTION ANSWER
-www2.example.com. 30 IN A 1.2.3.5
+www2.example.com. 100 IN A 1.2.3.5
ENTRY_END
; got an answer from upstream
@@ -173,25 +176,25 @@ REPLY QR RD RA NOERROR
SECTION QUESTION
www2.example.com. IN A
SECTION ANSWER
-www2.example.com. 10 IN A 1.2.3.5
+www2.example.com. 100 IN A 1.2.3.5
ENTRY_END
; cache is expired, cachedb has no answer
STEP 70 QUERY
ENTRY_BEGIN
-REPLY RD
+REPLY RD DO
SECTION QUESTION
www.example.com. IN A
ENTRY_END
STEP 80 CHECK_ANSWER
ENTRY_BEGIN
-MATCH all ttl
-REPLY QR RD RA NOERROR
+MATCH all ttl ede=3
+REPLY QR RD RA DO NOERROR
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
-www.example.com. 30 IN A 1.2.3.4
+www.example.com. 123 IN A 1.2.3.4
ENTRY_END
STEP 90 TRAFFIC
@@ -211,29 +214,29 @@ REPLY QR RD RA NOERROR
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
-www.example.com. 10 IN A 1.2.3.4
+www.example.com. 200 IN A 1.2.3.4
ENTRY_END
; make both cache and cachedb expired.
-STEP 120 TIME_PASSES ELAPSE 20
+STEP 120 TIME_PASSES ELAPSE 200
STEP 130 FLUSH_MESSAGE www.example.com. IN A
; cache has no entry and cachedb is expired.
STEP 140 QUERY
ENTRY_BEGIN
-REPLY RD
+REPLY RD DO
SECTION QUESTION
www.example.com. IN A
ENTRY_END
STEP 150 CHECK_ANSWER
ENTRY_BEGIN
-MATCH all ttl
-REPLY QR RD RA NOERROR
+MATCH all ttl ede=3
+REPLY QR RD RA DO NOERROR
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
-www.example.com. 30 IN A 1.2.3.4
+www.example.com. 123 IN A 1.2.3.4
ENTRY_END
; the name is resolved
@@ -254,7 +257,7 @@ REPLY QR RD RA NOERROR
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
-www.example.com. 10 IN A 1.2.3.4
+www.example.com. 200 IN A 1.2.3.4
ENTRY_END
SCENARIO_END
diff --git a/testdata/cachedb_subnet_change.crpl b/testdata/cachedb_subnet_change.crpl
index 73584305ce60..87903132c373 100644
--- a/testdata/cachedb_subnet_change.crpl
+++ b/testdata/cachedb_subnet_change.crpl
@@ -4,7 +4,7 @@ server:
qname-minimisation: no
minimal-responses: no
serve-expired: yes
- serve-expired-reply-ttl: 30
+ serve-expired-reply-ttl: 123
; disable the serve expired client timeout.
serve-expired-client-timeout: 0
@@ -14,6 +14,8 @@ server:
; store for edns subnet content for modules to the right of it.
; this keeps subnet content out of cachedb as global content.
module-config: "subnetcache cachedb iterator"
+ ede: yes
+ ede-serve-expired: yes
cachedb:
backend: "testframe"
@@ -105,7 +107,7 @@ REPLY QR AA NOERROR
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
-www.example.com. 10 IN CNAME www.initial.com.
+www.example.com. 200 IN CNAME www.initial.com.
ENTRY_END
RANGE_END
@@ -118,7 +120,7 @@ REPLY QR AA NOERROR
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
-www.example.com. 10 IN CNAME example.foo.com.
+www.example.com. 200 IN CNAME example.foo.com.
ENTRY_END
RANGE_END
@@ -131,7 +133,7 @@ REPLY QR AA NOERROR
SECTION QUESTION
www.initial.com. IN A
SECTION ANSWER
-www.initial.com. 10 IN A 1.2.3.4
+www.initial.com. 200 IN A 1.2.3.4
ENTRY_END
RANGE_END
@@ -144,7 +146,7 @@ REPLY QR AA NOERROR
SECTION QUESTION
example.foo.com. IN A
SECTION ANSWER
-example.foo.com. 10 IN A 1.2.3.5
+example.foo.com. 200 IN A 1.2.3.5
SECTION ADDITIONAL
HEX_EDNSDATA_BEGIN
; client is 127.0.0.1
@@ -166,7 +168,7 @@ REPLY QR AA NOERROR
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
-www.example.com. 10 IN CNAME example.foo.com.
+www.example.com. 200 IN CNAME example.foo.com.
ENTRY_END
RANGE_END
@@ -179,7 +181,7 @@ REPLY QR AA NOERROR
SECTION QUESTION
example.foo.com. IN A
SECTION ANSWER
-example.foo.com. 10 IN A 1.2.3.6
+example.foo.com. 200 IN A 1.2.3.6
SECTION ADDITIONAL
HEX_EDNSDATA_BEGIN
; client is 127.0.0.1
@@ -211,19 +213,19 @@ REPLY QR RD RA NOERROR
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
-www.example.com. 10 IN CNAME www.initial.com.
-www.initial.com. 10 IN A 1.2.3.4
+www.example.com. 200 IN CNAME www.initial.com.
+www.initial.com. 200 IN A 1.2.3.4
ENTRY_END
; now valid in cache and valid in cachedb, without subnet.
-STEP 30 TIME_PASSES ELAPSE 20
+STEP 30 TIME_PASSES ELAPSE 200
; now the cache and cachedb have an expired entry.
; the upstream is updated to CNAME to a subnet zone A record.
STEP 40 QUERY ADDRESS 127.0.0.1
ENTRY_BEGIN
-REPLY RD
+REPLY RD DO
SECTION QUESTION
www.example.com. IN A
ENTRY_END
@@ -231,13 +233,13 @@ ENTRY_END
; the expired answer, while the ECS answer is looked up.
STEP 50 CHECK_ANSWER
ENTRY_BEGIN
-MATCH all ttl
-REPLY QR RD RA NOERROR
+MATCH all ttl ede=3
+REPLY QR RD RA DO NOERROR
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
-www.example.com. 30 IN CNAME www.initial.com.
-www.initial.com. 30 IN A 1.2.3.4
+www.example.com. 123 IN CNAME www.initial.com.
+www.initial.com. 123 IN A 1.2.3.4
ENTRY_END
; check that subnet has the query in cache.
@@ -256,12 +258,12 @@ REPLY QR RD RA NOERROR
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
-www.example.com. 8 IN CNAME example.foo.com.
-example.foo.com. 8 IN A 1.2.3.5
+www.example.com. 198 IN CNAME example.foo.com.
+example.foo.com. 198 IN A 1.2.3.5
ENTRY_END
; everything is expired, cache, subnetcache and cachedb.
-STEP 80 TIME_PASSES ELAPSE 20
+STEP 80 TIME_PASSES ELAPSE 200
STEP 90 QUERY ADDRESS 127.0.0.1
ENTRY_BEGIN
@@ -277,8 +279,8 @@ REPLY QR RD RA NOERROR
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
-www.example.com. 10 IN CNAME example.foo.com.
-example.foo.com. 10 IN A 1.2.3.6
+www.example.com. 200 IN CNAME example.foo.com.
+example.foo.com. 200 IN A 1.2.3.6
ENTRY_END
; see the entry now in cache, from the subnetcache.
@@ -297,8 +299,8 @@ REPLY QR RD RA NOERROR
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
-www.example.com. 8 IN CNAME example.foo.com.
-example.foo.com. 8 IN A 1.2.3.6
+www.example.com. 198 IN CNAME example.foo.com.
+example.foo.com. 198 IN A 1.2.3.6
ENTRY_END
SCENARIO_END
diff --git a/testdata/cachedb_val_expired.crpl b/testdata/cachedb_val_expired.crpl
index 741445ce8515..dd5c09f24072 100644
--- a/testdata/cachedb_val_expired.crpl
+++ b/testdata/cachedb_val_expired.crpl
@@ -5,8 +5,11 @@ server:
minimal-responses: yes
serve-expired: yes
serve-expired-client-timeout: 0
+ serve-expired-reply-ttl: 123
;module-config: "subnetcache validator cachedb iterator"
module-config: "validator cachedb iterator"
+ ede: yes
+ ede-serve-expired: yes
cachedb:
backend: "testframe"
@@ -83,7 +86,7 @@ REPLY QR AA NOERROR
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
-www.example.com. 10 IN A 1.2.3.4
+www.example.com. 200 IN A 1.2.3.4
ENTRY_END
ENTRY_BEGIN
@@ -92,7 +95,8 @@ REPLY QR AA NOERROR
SECTION QUESTION
www2.example.com. IN A
SECTION ANSWER
-www2.example.com. 10 IN A 1.2.3.5
+; TTL lower than serve-expired-reply-ttl on purpose
+www2.example.com. 100 IN A 1.2.3.5
ENTRY_END
RANGE_END
@@ -112,7 +116,7 @@ REPLY QR RD RA NOERROR
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
-www.example.com. 10 IN A 1.2.3.4
+www.example.com. 200 IN A 1.2.3.4
ENTRY_END
; Get another query in cache to make it expired.
@@ -131,48 +135,48 @@ REPLY QR RD RA NOERROR
SECTION QUESTION
www2.example.com. IN A
SECTION ANSWER
-www2.example.com. 10 IN A 1.2.3.5
+www2.example.com. 100 IN A 1.2.3.5
ENTRY_END
; it is now expired
-STEP 40 TIME_PASSES ELAPSE 20
+STEP 40 TIME_PASSES ELAPSE 200
; cache is expired, and cachedb is expired.
; The expired reply, from cachedb, needs a validation status,
; because the validator module set that validation is needed.
STEP 50 QUERY
ENTRY_BEGIN
-REPLY RD
+REPLY RD DO
SECTION QUESTION
www2.example.com. IN A
ENTRY_END
STEP 60 CHECK_ANSWER
ENTRY_BEGIN
-MATCH all ttl
-REPLY QR RD RA NOERROR
+MATCH all ttl ede=3
+REPLY QR RD RA DO NOERROR
SECTION QUESTION
www2.example.com. IN A
SECTION ANSWER
-www2.example.com. 30 IN A 1.2.3.5
+www2.example.com. 100 IN A 1.2.3.5
ENTRY_END
; cache is expired, cachedb has no answer
STEP 70 QUERY
ENTRY_BEGIN
-REPLY RD
+REPLY RD DO
SECTION QUESTION
www.example.com. IN A
ENTRY_END
STEP 80 CHECK_ANSWER
ENTRY_BEGIN
-MATCH all ttl
-REPLY QR RD RA NOERROR
+MATCH all ttl ede=3
+REPLY QR RD RA DO NOERROR
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
-www.example.com. 30 IN A 1.2.3.4
+www.example.com. 123 IN A 1.2.3.4
ENTRY_END
STEP 90 TRAFFIC
@@ -192,7 +196,7 @@ REPLY QR RD RA NOERROR
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
-www.example.com. 10 IN A 1.2.3.4
+www.example.com. 200 IN A 1.2.3.4
ENTRY_END
; flush the entry from cache
@@ -213,18 +217,19 @@ REPLY QR RD RA NOERROR
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
-www.example.com. 10 IN A 1.2.3.4
+www.example.com. 200 IN A 1.2.3.4
ENTRY_END
; it is now expired
-STEP 150 TIME_PASSES ELAPSE 20
+STEP 150 TIME_PASSES ELAPSE 200
; flush the entry from cache
STEP 160 FLUSH_MESSAGE www.example.com. IN A
; cache has no answer, cachedb is expired
+; but it needs to be validated.
STEP 170 QUERY
ENTRY_BEGIN
-REPLY RD
+REPLY RD DO
SECTION QUESTION
www.example.com. IN A
ENTRY_END
@@ -232,11 +237,13 @@ ENTRY_END
STEP 180 CHECK_ANSWER
ENTRY_BEGIN
MATCH all ttl
-REPLY QR RD RA NOERROR
+;ede=3
+REPLY QR RD RA DO NOERROR
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
-www.example.com. 30 IN A 1.2.3.4
+;www.example.com. 123 IN A 1.2.3.4
+www.example.com. 200 IN A 1.2.3.4
ENTRY_END
STEP 190 TRAFFIC
@@ -257,7 +264,7 @@ REPLY QR RD RA NOERROR
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
-www.example.com. 10 IN A 1.2.3.4
+www.example.com. 200 IN A 1.2.3.4
ENTRY_END
; expire the entry in cache
@@ -278,30 +285,33 @@ REPLY QR RD RA NOERROR
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
-www.example.com. 10 IN A 1.2.3.4
+www.example.com. 200 IN A 1.2.3.4
ENTRY_END
; it is now expired
-STEP 250 TIME_PASSES ELAPSE 20
+STEP 250 TIME_PASSES ELAPSE 200
; expire the entry in cache
STEP 260 EXPIRE_MESSAGE www.example.com. IN A
; cache is expired, cachedb is expired
STEP 270 QUERY
ENTRY_BEGIN
-REPLY RD
+REPLY RD DO
SECTION QUESTION
www.example.com. IN A
ENTRY_END
+; but it needs to be validated
STEP 280 CHECK_ANSWER
ENTRY_BEGIN
MATCH all ttl
-REPLY QR RD RA NOERROR
+;ede=3
+REPLY QR RD RA DO NOERROR
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
-www.example.com. 30 IN A 1.2.3.4
+;www.example.com. 123 IN A 1.2.3.4
+www.example.com. 200 IN A 1.2.3.4
ENTRY_END
STEP 290 TRAFFIC
@@ -322,7 +332,7 @@ REPLY QR RD RA NOERROR
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
-www.example.com. 10 IN A 1.2.3.4
+www.example.com. 200 IN A 1.2.3.4
ENTRY_END
SCENARIO_END
diff --git a/testdata/dname_unsigned_cname.rpl b/testdata/dname_unsigned_cname.rpl
new file mode 100644
index 000000000000..60866378fa45
--- /dev/null
+++ b/testdata/dname_unsigned_cname.rpl
@@ -0,0 +1,297 @@
+; config options
+; The island of trust is at test.
+server:
+ trust-anchor: "test. DS 1444 8 2 8a87d067fd09a5965244fe2e317dd26d182c468e0a7f26ecc4c7b479bf89db9b"
+ val-override-date: "20201020135527"
+ target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
+ fake-sha1: yes
+ trust-anchor-signaling: no
+ minimal-responses: no
+ iter-scrub-promiscuous: no
+ aggressive-nsec: yes
+ local-zone: test. nodefault
+ log-servfail: yes
+
+stub-zone:
+ name: "."
+ stub-addr: 193.0.14.129 # K.ROOT-SERVERS.NET.
+CONFIG_END
+
+SCENARIO_BEGIN Test DNAME with an unsigned CNAME that mismatches the DNAME.
+; The CNAME occurs later in a list of redirections.
+
+; K.ROOT-SERVERS.NET.
+RANGE_BEGIN 0 100
+ ADDRESS 193.0.14.129
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+. IN NS
+SECTION ANSWER
+. IN NS K.ROOT-SERVERS.NET.
+SECTION ADDITIONAL
+K.ROOT-SERVERS.NET. IN A 193.0.14.129
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode subdomain
+ADJUST copy_id copy_query
+REPLY QR NOERROR
+SECTION QUESTION
+test. IN NS
+SECTION AUTHORITY
+test. IN NS ns.test.
+SECTION ADDITIONAL
+ns.test. IN A 1.2.3.5
+ENTRY_END
+RANGE_END
+
+; ns.test
+RANGE_BEGIN 0 100
+ ADDRESS 1.2.3.5
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+test. IN NS
+SECTION ANSWER
+test. IN NS ns.test
+test. 3600 IN RRSIG NS 8 1 3600 20201116135527 20201019135527 1444 test. RGCxIO32TbbLTk6xZmTr+fjYPH50hntBxeOQ2DIj2pDsmjALcHYtVkOfpfk2EhOhHZd+9PLuoJPbJh6a9NqLSFeBvr0XZoCZoQ2g0tCHUNHcH5EVjA2TuYBQem6DVYnPLJ3914aRx0uA1j42b8dC2xsam/XkOo7U+dLbUW2Os1s=
+SECTION ADDITIONAL
+ns.test. IN A 1.2.3.5
+ns.test. 3600 IN RRSIG A 8 2 3600 20201116135527 20201019135527 1444 test. GskCc4/k6GjH9V9Jz2V5L2XLiizbOeWkB0feSbf+aN859S3vxVvtuqkvIgwY4LafUO1QAn/pUcv9zA7rcFO++rlg+8t6gvZTo9p3v0bfeIv2uJDsfSBD5jDh0WXlxjekfnrKrQp7zE+GiA93tWwKUWKPvxXDgP+n886e6WcbHJw=
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+ns.test. IN A
+SECTION ANSWER
+ns.test. IN A 1.2.3.5
+ns.test. 3600 IN RRSIG A 8 2 3600 20201116135527 20201019135527 1444 test. GskCc4/k6GjH9V9Jz2V5L2XLiizbOeWkB0feSbf+aN859S3vxVvtuqkvIgwY4LafUO1QAn/pUcv9zA7rcFO++rlg+8t6gvZTo9p3v0bfeIv2uJDsfSBD5jDh0WXlxjekfnrKrQp7zE+GiA93tWwKUWKPvxXDgP+n886e6WcbHJw=
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+ns.test. IN AAAA
+SECTION AUTHORITY
+test. 3600 IN SOA ns.test. host.test. 20201 3600 1800 604800 3600
+test. 3600 IN RRSIG SOA 8 1 3600 20201116135527 20201019135527 1444 test. IZJIDmEgf0W7A5G7hvvZ2hUqJ9Trbv1/i7ySapDmPbYV9lVCmHHobySxO01yDhI2/Pvpsvxqrm1Tiv3BxH8uzZ4keKgiQjBsSy4htAsFct9I4E7ly2glPj/Fm3oun3PsjJDv5QYhx0KS7w4IQKU7Nc9pfJc92uoUI5bdoC1pRGw=
+ns.test. 3600 IN NSEC nz.test. A RRSIG
+ns.test. 3600 IN RRSIG NSEC 8 2 3600 20201116135527 20201019135527 1444 test. PElArVB3KPg8KHAP7lzcNbhFuXNxTsHNTn1dZVncB5qmWRdIaeKpaXDjpH0JSXMaelGFS+/QhuQ6Hmw9+4VyZFRqMzGhw4agUR/2bxABHcDIG4ZpUwyeSP61ATTfHUkQVxaH2wjCWI/tfmesdP2xVE4GXyUvCIBxU914MkZbULU=
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+test. IN DNSKEY
+SECTION ANSWER
+test. 3600 IN DNSKEY 257 3 8 AwEAAbd9WqjzE2Pynz21OG5doSf9hFzMr5dhzz2waZ3vTa+0o5r7AjTAqmA1yH/B3+aAMihUm5ucZSfVqo7+kOaRE8yFj9aivOmA1n1+JLevJq/oyvQyjxQN2Qb89LyaNUT5oKZIiL+uyyhNW3KDR3SSbQ/GBwQNDHVcZi+JDR3RC0r7 ;{id = 1444 (ksk), size = 1024b}
+test. 3600 IN RRSIG DNSKEY 8 1 3600 20201116135527 20201019135527 1444 test. UmRMS4iG9NBBHZYOtpwFFcJgbEb5SfHSgHd9XRe/8pTWM31WSDayn5ViPOBMqI1T5TXg2amc13dDI574xIM2oKMus3b5cBW72jJLW13jprBtslO6P8BMWb4HNnvLrJtQjwf3ErRirtTxinLmywQtmyr1cdthyG3Gp4N7i90fHSc=
+SECTION ADDITIONAL
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qname qtype
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+example.test. IN DS
+SECTION ANSWER
+example.test. 3600 IN DS 55567 8 2 a2d578906330a10a57d40462257b6ce038bad3f7bf4a45c46c46086e20a94b39
+example.test. 3600 IN RRSIG DS 8 2 3600 20201116135527 20201019135527 1444 test. P7+FTYW2qHuJ4I1YbuvseEz5X1lOYAraGEHB3C5y0OOCQFmhmSiFRdquNi2NlpcS6FXLdsE0EU+Bo1+0atTG4EkMWXbpF21lrtbB51BdsnlX4Mzc/o375fvjiOMwmF6wPCUaOUN62jrVrhsE/hedaVyDphDToqL17ETohwgUO2I=
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode subdomain
+ADJUST copy_id copy_query
+REPLY QR NOERROR
+SECTION QUESTION
+example.test. IN NS
+SECTION AUTHORITY
+example.test. IN NS ns.example.test.
+example.test. 3600 IN DS 55567 8 2 a2d578906330a10a57d40462257b6ce038bad3f7bf4a45c46c46086e20a94b39
+example.test. 3600 IN RRSIG DS 8 2 3600 20201116135527 20201019135527 1444 test. P7+FTYW2qHuJ4I1YbuvseEz5X1lOYAraGEHB3C5y0OOCQFmhmSiFRdquNi2NlpcS6FXLdsE0EU+Bo1+0atTG4EkMWXbpF21lrtbB51BdsnlX4Mzc/o375fvjiOMwmF6wPCUaOUN62jrVrhsE/hedaVyDphDToqL17ETohwgUO2I=
+SECTION ADDITIONAL
+ns.example.test. IN A 1.2.3.4
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode subdomain
+ADJUST copy_id copy_query
+REPLY QR NOERROR
+SECTION QUESTION
+fox.test. IN NS
+SECTION AUTHORITY
+fox.test. IN NS ns.fox.test.
+fox.test. 3600 IN DS 29332 8 2 5b06f16c7b8cc07ba7b8e1ab0a40a40ecf89e1e94da2f0b1d2159b64dba80d96
+fox.test. 3600 IN RRSIG DS 8 2 3600 20201116135527 20201019135527 1444 test. B9bKqUJgJcGlKSWyGkdGGS6unKUwNJteTq08caL40QEZcAy836vwypGzOIQJNUw+mYIEecvtrF9H4mG+EjzDKv+n+36DCNvJMn6b8+FC9COw4mqITAjYPZjDwtOXAKVbuBuZJsbP2ztacJ98tXcORozaaKDGH/3fmsUlaKcuPmo=
+SECTION ADDITIONAL
+ns.fox.test. IN A 1.2.3.6
+ENTRY_END
+RANGE_END
+
+; ns.example.test.
+RANGE_BEGIN 0 15
+ ADDRESS 1.2.3.4
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+example.test. IN NS
+SECTION ANSWER
+example.test. IN NS ns.example.test.
+example.test. 3600 IN RRSIG NS 8 2 3600 20201116135527 20201019135527 55567 example.test. l1JT0wMlK0YI7/CWHzexf/k0iafUhCgN+BdgjBXIRXmSQNf4HDTiAkbcWL2/15qtnp12nQy9JeiTdSQ3vtPoHAJX4C5uTWaze4ms+Wrrf+n92sLCjacP9x50uuicH3URT6cKb1QCAPwlvlWxIlZjAMYFScSns7+C441NMJT8aE4=
+SECTION ADDITIONAL
+ns.example.test. IN A 1.2.3.4
+ns.example.test. 3600 IN RRSIG A 8 3 3600 20201116135527 20201019135527 55567 example.test. 2PWaVaccZFQgfPKXNsdEGYUVaashCAj1ZhBo9XRt5eQKUFvZcauBjMnXIuxZFyWeootn1fZGw6GuPI5W48Y0FDx38H6adprkFgQikso2Y64jDdDMWznSo38Z/XqP+U0+kq4vmwonvmEMpm7hKnNEXvhqGKyGzyBwb+CZVJ2L8Eo=
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+ns.example.test. IN A
+SECTION ANSWER
+ns.example.test. IN A 1.2.3.4
+ns.example.test. 3600 IN RRSIG A 8 3 3600 20201116135527 20201019135527 55567 example.test. 2PWaVaccZFQgfPKXNsdEGYUVaashCAj1ZhBo9XRt5eQKUFvZcauBjMnXIuxZFyWeootn1fZGw6GuPI5W48Y0FDx38H6adprkFgQikso2Y64jDdDMWznSo38Z/XqP+U0+kq4vmwonvmEMpm7hKnNEXvhqGKyGzyBwb+CZVJ2L8Eo=
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+ns.example.test. IN AAAA
+SECTION AUTHORITY
+example.test. 3600 IN SOA ns.example.test. host.example.test. 20301 3600 1800 604800 3600
+example.test. 3600 IN RRSIG SOA 8 2 3600 20201116135527 20201019135527 55567 example.test. 2UUkScBAN37fJpSrelhE8DotKvmOzj3q9wicaanCIaCv95DE4nQnePih5B+ek3FIRjB/Uv2+z4Ro5Uxy94XAnlK0rCkDLSa0U9U7KP0ytc88sevO0x1SCPAMoZoJO6JqHkv42pdh54WSz+Zb/D8npY0j/tksHe/uX+VQnMymgb8=
+ns.example.test. 3600 IN NSEC nz.example.test. A RRSIG
+ns.example.test. 3600 IN RRSIG NSEC 8 3 3600 20201116135527 20201019135527 55567 example.test. v/5aO/n8Ow21y7LE7JKZsFkUJU5MjIfadVRm2Tdb8f3RLwYDdBTs3aWeeEQdCRSUF61TmfJM1jIxlWQPuHbqzGnjSk7adw9gFpP7wFwoqG3/xdCFHoxo/3/1F/4Ankey3sDgKgOFsgnu40TlL36mGPYszeK+/2o3SAx2GM+3BdU=
+ENTRY_END
+
+; response to DNSKEY priming query
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+example.test. IN DNSKEY
+SECTION ANSWER
+example.test. 3600 IN DNSKEY 257 3 8 AwEAAdug/L739i0mgN2nuK/bhxu3wFn5Ud9nK2+XUmZQlPUEZUC5YZvm1rfMmEWTGBn87fFxEu/kjFZHJ55JLzqsbbpVHLbmKCTT2gYR2FV2WDKROGKuYbVkJIXdKAjJ0ONuK507NinYvlWXIoxHn22KAWOd9wKgSTNHBlmGkX+ts3hh ;{id = 55567 (ksk), size = 1024b}
+example.test. 3600 IN RRSIG DNSKEY 8 2 3600 20201116135527 20201019135527 55567 example.test. IbWMC6quOuZFNPAVxQLqCJ9nLhindBo826rnLcg5yMgs9dGUSPOCXAfHTmbgJAUNs9HTFfrJWNvasnETs0UOpmEuifGwWdH1OlME7Gny4RL2QmITUFeMW81Jz1tiVQxFXl6yxT0jxOxvz+bqMHlrz+8IeWQXcO+GZTPu8ueq30g=
+ENTRY_END
+
+; response to query of interest
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+a.d.example.test. IN A
+SECTION ANSWER
+d.example.test. 3600 IN DNAME tgt.example.test.
+d.example.test. 3600 IN RRSIG DNAME 8 3 3600 20201116135527 20201019135527 55567 example.test. EGpXUnJuzkETAO2OWyZDrTeInnyxF7CXPXGDfFt2x3CBUeckUUZcgQQ3yMh+BATKph2nOhBfk8klvZ35C9sQO7Z32REAnqGjpHiR86xRPYxG62Nk9kXv1Odeh/adz2QhB93N8U7W57FM0P/VQDkP0GQXTSRGTuj+7ihfYVd4HWI=
+; with CNAME signature
+a.d.example.test. 3600 IN CNAME a.tgt.example.test.
+a.d.example.test. 3600 IN RRSIG CNAME 8 4 3600 20201116135527 20201019135527 55567 example.test. efnytLE7P95kLr/tA9H0Z77VTOUQk24ci2bDgdVe8EuodTXtgg5PVHVLljD3QQ1Cpyme50odH/fhn2j1ORQpJTMk24Un/VRhVNquf+kj1nawJ59J0hjag4i0FIwZEG3/P7ogTB3Yd2y0Osb42Aawp48KvtVkUeBukk/GSutaTVQ=
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+a.tgt.example.test. IN A
+SECTION ANSWER
+a.tgt.example.test. 3600 IN CNAME b.d.example.test.
+a.tgt.example.test. 3600 IN RRSIG CNAME 8 4 3600 20201116135527 20201019135527 55567 example.test. XHYWSHIm9J8j8T1qMh1tHZS71UguXYUVescKPFtoGHRuyRhHNob+NAqdn3I4/+8HSSGrJDqhTX/Vo3rcc3/g5HOHScwzZByB/diyJWpG9IA7pm7c7FnHnHpGBVdHq9wXlkgCPiaJShpE1zg1nNy3p99ca9/wh4y9XWSfcl0L8aw=
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+b.d.example.test. IN A
+SECTION ANSWER
+; This answer is injected
+; Without an RRSIG.
+b.d.example.test. 3600 IN CNAME www.fox.test.
+ENTRY_END
+RANGE_END
+
+; ns.fox.test.
+RANGE_BEGIN 0 100
+ ADDRESS 1.2.3.6
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+ns.fox.test. IN AAAA
+SECTION AUTHORITY
+fox.test. 3600 IN SOA ns.fox.test. host.fox.test. 20601 3600 1800 604800 3600
+fox.test. 3600 IN RRSIG SOA 8 2 3600 20201116135527 20201019135527 29332 fox.test. QScf+vyis5/Km03ALuLQDfUDagA9/UG/oIQw6LnvmsVoqJSNXa3LIObWT9zfWgdJT0qFayWR4K9hnd9rT1enuVmXX8k47s7AjPZmE0qQxms5xz7jOhj/XLFplXOE9/GkgvAZKPb42qkU3Xf6Bevxzfy4/qW7+yXflWsjLV1vAhz38M4ESeWp0MDme8+DND0f7aoprGcC5saAPfa35nQhHS40q4IwiUDBBk1uwhCBF9ZGsjRfXmECOxIc1/0hBOv+Hhwog4K5b8rdl7LA2VggNiVOUuLFpXEH0XxknEspbQwWppP4TWC1H2QYGaKCc2Hu7NBhM/Ly7caGK+2u1MZvsg==
+ns.fox.test. 3600 IN NSEC nz.fox.test. A RRSIG
+ns.fox.test. 3600 IN RRSIG NSEC 8 3 3600 20201116135527 20201019135527 29332 fox.test. RQjV2PHbBVdGhvSRl0lutzoIZ9KezBAAwvI5sQoIGLdlMeQxj/BOy16auYRLTxvB9xehkrTTeL5xYUwcbi4uFS/kr3IUmlVXeldHOk4T42huV9MGfWzguUsB2jjsrcdt11qEnLo27SVVcvQReswwfpOPRPHg52fS6vt50AIWwttLOLvZEGiGIjRGb4lBaCnoO6YYzOnwcRCV0UScTjlPxS1SBEKsdbPvzfUUyp+wOVnIVAXrd0xEChB7QrTIrcBt4mutXVUNBDcfkZCXgEwu3scWQQS8rNO6O3PvpLgs6PIHX191WjovkJ9/PL+8MO/7UUatSWhZUwuQBUq6VofCYw==
+ENTRY_END
+
+; response to DNSKEY priming query
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+fox.test. IN DNSKEY
+SECTION ANSWER
+fox.test. IN DNSKEY 257 3 8 AwEAAb4WMOTBLTFvmBra5m6SK4VfViOzmvyUAU0qv861ZQXeEFvwlndqNU9rwRsMxrSWAYs5nHErKDn49usC/HyxxW1477iGFHhfgL4mjNreJm9zft2QFB1VLbRbEPYdDMLCn4co0qnG7/KG8W2i8Pym1L7f+aREwbLo+/716AS2PbaKMhfWLKLiq5wnBcUClQMNzCiwhqxDJp1oePqfkVdeUgXOtgi0dYRIKyQFhJ5VWJ22npoi/Gif0XLCADAlAwRLKc8o/yJkCxskzgpHpw5Cki1lclg0aq4ssOuPRQ+ne6IHYCz9D2mwzulblhLFamKdq7aHzNt4NlyxhpANVFiKLD8= ;{id = 29332 (ksk), size = 2048b}
+fox.test. 3600 IN RRSIG DNSKEY 8 2 3600 20201116135527 20201019135527 29332 fox.test. bTslCQKai9U9EWkBPnMiO+Rb34qMAZSzfgEb68x+ZKi2DDyzK7v8TCX8unTlqeQCnTqqgJ7cCUcqrbSV3ip9WGNe5fUy5j9hxH04ddLcDhygnjLi4C7iQX67ratRGu1JM3Evk/gVF76a5J2RSQk340jOFHC0nnjWOMHlDDxBeK4Zr6lYvAMJB2uy08xbi1FuGUSPcrbRFnVb74QMAPLS9Uj5JM8lMsOMtrhHX9zBN8Euo4M1X0sinBdJse3P/fIZ+ZvSnOEpVvur3bcUl+bqFJ18nM/Mj/e3XW3WBWE1dI6p6HdAXLrJyjJINzm+YnNzj11tzu/e4BQCjOutY9XkKA==
+ENTRY_END
+
+; response to query of interest
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+www.fox.test. IN A
+SECTION ANSWER
+www.fox.test. 3600 IN A 10.20.30.43
+www.fox.test. 3600 IN RRSIG A 8 3 3600 20201116135527 20201019135527 29332 fox.test. ehPLws7Jnlx5Trm7Z8Hxr0WkLdkxyif+E1aGzFMib4eP0nvLV89WOQ2Fpm1xT/VaNJBXjXhWPB0Oo/gAKVs1znqmyjutFdXi2+9rXnK73jD2+rWBGW/sgBl/9cr458j7441nEK18Mq4SserQcLBqM38IivTlK1J5uXUpEPKMCSA82waf0Z+LUk8czFqeYy+KlJSsiu33mrVWrjyNLIXCbZ2dxfdaVSKyAoQafiokp1NGnw3onQkXXOPqJ7GRsN8Ml4c2nOrEYIG6otoZXXjtkoNCOHzBBkPVEP82JjzQchq0fDWQ2UHOXXZYBG/B6m5PuOXmgKJVDKZ/iVNQofPp8w==
+ENTRY_END
+RANGE_END
+
+STEP 1 QUERY
+ENTRY_BEGIN
+REPLY RD DO
+SECTION QUESTION
+a.d.example.test. IN A
+ENTRY_END
+
+STEP 10 TRAFFIC
+; The unsigned CNAME should make SERVFAIL.
+
+STEP 20 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all
+REPLY QR RD RA DO SERVFAIL
+SECTION QUESTION
+a.d.example.test. IN A
+SECTION ANSWER
+ENTRY_END
+
+SCENARIO_END
diff --git a/testdata/ds_wildcard_cname.rpl b/testdata/ds_wildcard_cname.rpl
new file mode 100644
index 000000000000..37b0bae75237
--- /dev/null
+++ b/testdata/ds_wildcard_cname.rpl
@@ -0,0 +1,374 @@
+; config options
+; The island of trust is at test.
+server:
+ trust-anchor: "test. DS 1444 8 2 8a87d067fd09a5965244fe2e317dd26d182c468e0a7f26ecc4c7b479bf89db9b"
+ val-override-date: "20201020135527"
+ target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
+ fake-sha1: yes
+ trust-anchor-signaling: no
+ minimal-responses: no
+ iter-scrub-promiscuous: no
+ aggressive-nsec: yes
+ local-zone: test. nodefault
+ log-servfail: yes
+
+stub-zone:
+ name: "."
+ stub-addr: 193.0.14.129 # K.ROOT-SERVERS.NET.
+CONFIG_END
+
+SCENARIO_BEGIN Test DS response with wildcard CNAME
+
+; K.ROOT-SERVERS.NET.
+RANGE_BEGIN 0 100
+ ADDRESS 193.0.14.129
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+. IN NS
+SECTION ANSWER
+. IN NS K.ROOT-SERVERS.NET.
+SECTION ADDITIONAL
+K.ROOT-SERVERS.NET. IN A 193.0.14.129
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode subdomain
+ADJUST copy_id copy_query
+REPLY QR NOERROR
+SECTION QUESTION
+test. IN NS
+SECTION AUTHORITY
+test. IN NS ns.test.
+SECTION ADDITIONAL
+ns.test. IN A 1.2.3.5
+ENTRY_END
+RANGE_END
+
+; ns.test
+RANGE_BEGIN 0 100
+ ADDRESS 1.2.3.5
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+test. IN NS
+SECTION ANSWER
+test. IN NS ns.test
+test. 3600 IN RRSIG NS 8 1 3600 20201116135527 20201019135527 1444 test. RGCxIO32TbbLTk6xZmTr+fjYPH50hntBxeOQ2DIj2pDsmjALcHYtVkOfpfk2EhOhHZd+9PLuoJPbJh6a9NqLSFeBvr0XZoCZoQ2g0tCHUNHcH5EVjA2TuYBQem6DVYnPLJ3914aRx0uA1j42b8dC2xsam/XkOo7U+dLbUW2Os1s=
+SECTION ADDITIONAL
+ns.test. IN A 1.2.3.5
+ns.test. 3600 IN RRSIG A 8 2 3600 20201116135527 20201019135527 1444 test. GskCc4/k6GjH9V9Jz2V5L2XLiizbOeWkB0feSbf+aN859S3vxVvtuqkvIgwY4LafUO1QAn/pUcv9zA7rcFO++rlg+8t6gvZTo9p3v0bfeIv2uJDsfSBD5jDh0WXlxjekfnrKrQp7zE+GiA93tWwKUWKPvxXDgP+n886e6WcbHJw=
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+ns.test. IN A
+SECTION ANSWER
+ns.test. IN A 1.2.3.5
+ns.test. 3600 IN RRSIG A 8 2 3600 20201116135527 20201019135527 1444 test. GskCc4/k6GjH9V9Jz2V5L2XLiizbOeWkB0feSbf+aN859S3vxVvtuqkvIgwY4LafUO1QAn/pUcv9zA7rcFO++rlg+8t6gvZTo9p3v0bfeIv2uJDsfSBD5jDh0WXlxjekfnrKrQp7zE+GiA93tWwKUWKPvxXDgP+n886e6WcbHJw=
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+ns.test. IN AAAA
+SECTION AUTHORITY
+test. 3600 IN SOA ns.test. host.test. 20201 3600 1800 604800 3600
+test. 3600 IN RRSIG SOA 8 1 3600 20201116135527 20201019135527 1444 test. IZJIDmEgf0W7A5G7hvvZ2hUqJ9Trbv1/i7ySapDmPbYV9lVCmHHobySxO01yDhI2/Pvpsvxqrm1Tiv3BxH8uzZ4keKgiQjBsSy4htAsFct9I4E7ly2glPj/Fm3oun3PsjJDv5QYhx0KS7w4IQKU7Nc9pfJc92uoUI5bdoC1pRGw=
+ns.test. 3600 IN NSEC nz.test. A RRSIG
+ns.test. 3600 IN RRSIG NSEC 8 2 3600 20201116135527 20201019135527 1444 test. PElArVB3KPg8KHAP7lzcNbhFuXNxTsHNTn1dZVncB5qmWRdIaeKpaXDjpH0JSXMaelGFS+/QhuQ6Hmw9+4VyZFRqMzGhw4agUR/2bxABHcDIG4ZpUwyeSP61ATTfHUkQVxaH2wjCWI/tfmesdP2xVE4GXyUvCIBxU914MkZbULU=
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+test. IN DNSKEY
+SECTION ANSWER
+test. 3600 IN DNSKEY 257 3 8 AwEAAbd9WqjzE2Pynz21OG5doSf9hFzMr5dhzz2waZ3vTa+0o5r7AjTAqmA1yH/B3+aAMihUm5ucZSfVqo7+kOaRE8yFj9aivOmA1n1+JLevJq/oyvQyjxQN2Qb89LyaNUT5oKZIiL+uyyhNW3KDR3SSbQ/GBwQNDHVcZi+JDR3RC0r7 ;{id = 1444 (ksk), size = 1024b}
+test. 3600 IN RRSIG DNSKEY 8 1 3600 20201116135527 20201019135527 1444 test. UmRMS4iG9NBBHZYOtpwFFcJgbEb5SfHSgHd9XRe/8pTWM31WSDayn5ViPOBMqI1T5TXg2amc13dDI574xIM2oKMus3b5cBW72jJLW13jprBtslO6P8BMWb4HNnvLrJtQjwf3ErRirtTxinLmywQtmyr1cdthyG3Gp4N7i90fHSc=
+SECTION ADDITIONAL
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qname qtype
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+example.test. IN DS
+SECTION ANSWER
+example.test. 3600 IN DS 55567 8 2 a2d578906330a10a57d40462257b6ce038bad3f7bf4a45c46c46086e20a94b39
+example.test. 3600 IN RRSIG DS 8 2 3600 20201116135527 20201019135527 1444 test. P7+FTYW2qHuJ4I1YbuvseEz5X1lOYAraGEHB3C5y0OOCQFmhmSiFRdquNi2NlpcS6FXLdsE0EU+Bo1+0atTG4EkMWXbpF21lrtbB51BdsnlX4Mzc/o375fvjiOMwmF6wPCUaOUN62jrVrhsE/hedaVyDphDToqL17ETohwgUO2I=
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode subdomain
+ADJUST copy_id copy_query
+REPLY QR NOERROR
+SECTION QUESTION
+example.test. IN NS
+SECTION AUTHORITY
+example.test. IN NS ns.example.test.
+example.test. 3600 IN DS 55567 8 2 a2d578906330a10a57d40462257b6ce038bad3f7bf4a45c46c46086e20a94b39
+example.test. 3600 IN RRSIG DS 8 2 3600 20201116135527 20201019135527 1444 test. P7+FTYW2qHuJ4I1YbuvseEz5X1lOYAraGEHB3C5y0OOCQFmhmSiFRdquNi2NlpcS6FXLdsE0EU+Bo1+0atTG4EkMWXbpF21lrtbB51BdsnlX4Mzc/o375fvjiOMwmF6wPCUaOUN62jrVrhsE/hedaVyDphDToqL17ETohwgUO2I=
+SECTION ADDITIONAL
+ns.example.test. IN A 1.2.3.4
+ENTRY_END
+RANGE_END
+
+; ns.example.test.
+RANGE_BEGIN 0 100
+ ADDRESS 1.2.3.4
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+example.test. IN NS
+SECTION ANSWER
+example.test. IN NS ns.example.test.
+example.test. 3600 IN RRSIG NS 8 2 3600 20201116135527 20201019135527 55567 example.test. l1JT0wMlK0YI7/CWHzexf/k0iafUhCgN+BdgjBXIRXmSQNf4HDTiAkbcWL2/15qtnp12nQy9JeiTdSQ3vtPoHAJX4C5uTWaze4ms+Wrrf+n92sLCjacP9x50uuicH3URT6cKb1QCAPwlvlWxIlZjAMYFScSns7+C441NMJT8aE4=
+SECTION ADDITIONAL
+ns.example.test. IN A 1.2.3.4
+ns.example.test. 3600 IN RRSIG A 8 3 3600 20201116135527 20201019135527 55567 example.test. 2PWaVaccZFQgfPKXNsdEGYUVaashCAj1ZhBo9XRt5eQKUFvZcauBjMnXIuxZFyWeootn1fZGw6GuPI5W48Y0FDx38H6adprkFgQikso2Y64jDdDMWznSo38Z/XqP+U0+kq4vmwonvmEMpm7hKnNEXvhqGKyGzyBwb+CZVJ2L8Eo=
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+ns.example.test. IN A
+SECTION ANSWER
+ns.example.test. IN A 1.2.3.4
+ns.example.test. 3600 IN RRSIG A 8 3 3600 20201116135527 20201019135527 55567 example.test. 2PWaVaccZFQgfPKXNsdEGYUVaashCAj1ZhBo9XRt5eQKUFvZcauBjMnXIuxZFyWeootn1fZGw6GuPI5W48Y0FDx38H6adprkFgQikso2Y64jDdDMWznSo38Z/XqP+U0+kq4vmwonvmEMpm7hKnNEXvhqGKyGzyBwb+CZVJ2L8Eo=
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+ns.example.test. IN AAAA
+SECTION ANSWER
+ns.example.test. 3600 IN AAAA 2001::1:2:3:4
+ns.example.test. 3600 IN RRSIG AAAA 8 3 3600 20201116135527 20201019135527 55567 example.test. IuFmNUqxRjWSw/Ua2A0XmeKbsVkw6Yzd/D4TGBZ5pyKtbYIFvmF/QfcqzONiwqG3KEW2tAeyEjZOYjrM37NqgIwwk56LJ16fFA7e2tShjSjPhgNzjHZW9zvFTjPyTTVpMVb3SGV59RQTm3jJwlQCq7qVHyKQ+HT3pa+XZQJEzdw=
+SECTION AUTHORITY
+;example.test. 3600 IN SOA ns.example.test. host.example.test. 20301 3600 1800 604800 3600
+;example.test. 3600 IN RRSIG SOA 8 2 3600 20201116135527 20201019135527 55567 example.test. 2UUkScBAN37fJpSrelhE8DotKvmOzj3q9wicaanCIaCv95DE4nQnePih5B+ek3FIRjB/Uv2+z4Ro5Uxy94XAnlK0rCkDLSa0U9U7KP0ytc88sevO0x1SCPAMoZoJO6JqHkv42pdh54WSz+Zb/D8npY0j/tksHe/uX+VQnMymgb8=
+;ns.example.test. 3600 IN NSEC nz.example.test. A RRSIG
+;ns.example.test. 3600 IN RRSIG NSEC 8 3 3600 20201116135527 20201019135527 55567 example.test. v/5aO/n8Ow21y7LE7JKZsFkUJU5MjIfadVRm2Tdb8f3RLwYDdBTs3aWeeEQdCRSUF61TmfJM1jIxlWQPuHbqzGnjSk7adw9gFpP7wFwoqG3/xdCFHoxo/3/1F/4Ankey3sDgKgOFsgnu40TlL36mGPYszeK+/2o3SAx2GM+3BdU=
+ENTRY_END
+
+; response to DNSKEY priming query
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+example.test. IN DNSKEY
+SECTION ANSWER
+example.test. 3600 IN DNSKEY 257 3 8 AwEAAdug/L739i0mgN2nuK/bhxu3wFn5Ud9nK2+XUmZQlPUEZUC5YZvm1rfMmEWTGBn87fFxEu/kjFZHJ55JLzqsbbpVHLbmKCTT2gYR2FV2WDKROGKuYbVkJIXdKAjJ0ONuK507NinYvlWXIoxHn22KAWOd9wKgSTNHBlmGkX+ts3hh ;{id = 55567 (ksk), size = 1024b}
+example.test. 3600 IN RRSIG DNSKEY 8 2 3600 20201116135527 20201019135527 55567 example.test. IbWMC6quOuZFNPAVxQLqCJ9nLhindBo826rnLcg5yMgs9dGUSPOCXAfHTmbgJAUNs9HTFfrJWNvasnETs0UOpmEuifGwWdH1OlME7Gny4RL2QmITUFeMW81Jz1tiVQxFXl6yxT0jxOxvz+bqMHlrz+8IeWQXcO+GZTPu8ueq30g=
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+tgt.example.test. DS
+SECTION ANSWER
+SECTION AUTHORITY
+; denial of the DS record for tgt.example.test.
+example.test. 3600 IN SOA ns.example.test. host.example.test. 20301 3600 1800 604800 3600
+example.test. 3600 IN RRSIG SOA 8 2 3600 20201116135527 20201019135527 55567 example.test. 2UUkScBAN37fJpSrelhE8DotKvmOzj3q9wicaanCIaCv95DE4nQnePih5B+ek3FIRjB/Uv2+z4Ro5Uxy94XAnlK0rCkDLSa0U9U7KP0ytc88sevO0x1SCPAMoZoJO6JqHkv42pdh54WSz+Zb/D8npY0j/tksHe/uX+VQnMymgb8=
+tgt.example.test. 3600 IN NSEC tgz.example.test. A RRSIG
+tgt.example.test. 3600 IN RRSIG NSEC 8 3 3600 20201116135527 20201019135527 55567 example.test. R9v8k/M56dLOUbrTP/m2XnKsOjIj1kAfwCQvHW4KPdDn3XJIvCLs4mTjxvyQ70uP+zA8WxrPgbqPZv//Ms3Sher2j41VKIBRFkJpyJn6/D9/QmOOhWzoPYXuujHJAkB9IDit3YOgJutirFnB7reTTav42P5x7PzQDSt+crUnXkw=
+ENTRY_END
+
+; when there is a re-query for the DS record, this answer is used.
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+sub.example.test. IN DS
+SECTION ANSWER
+; This reply is an injected reply.
+sub.example.test. 300 IN CNAME tgt.example.test.
+; signature for wildcard, *.example.test. 300 IN CNAME tgt.example.test.
+sub.example.test. 300 IN RRSIG CNAME 8 2 300 20201116135527 20201019135527 55567 example.test. fz+xLPcRAbGUcnF7hITQHRT6AeA/I/dSjyLWb3it+cHSMY7dN4Jpw7Dk0GJh0y71HXFwaWgk1If0O4IOVo4mfkm1RrRhBnxJT8R88AQlN69SXLZrlHIhoupBpZADz/J15hOcHG+/1svsEpAA5qkOrgZwf581X9ygwPGFkIHgS+o=
+ENTRY_END
+
+; The referral to sub.example.test, for other queries than type DS.
+ENTRY_BEGIN
+MATCH opcode subdomain
+ADJUST copy_id copy_query
+REPLY QR AA NOERROR
+SECTION QUESTION
+sub.example.test. IN NS
+SECTION ANSWER
+SECTION AUTHORITY
+sub.example.test. 3600 NS ns.sub.example.test.
+; Smaller TTL 300 for the DS.
+sub.example.test. 300 IN DS 29332 8 2 69c8a09889e377fb1d1af78cc55984152adf25f4643b26d42654657a171e92aa
+sub.example.test. 300 IN RRSIG DS 8 3 300 20201116135527 20201019135527 55567 example.test. vyjkyx1UMCI5KftU7BQWxDkxNj25A60haEIR/Sy7JUkG2UnE0tNIVNE4mEmUGX6ICsddKGwba2xFQFYBMyfpnzsNxEMKv8VpOGObpiTlK4ICRaq6m+pVND1Benk6grzkb+6T2xogHEEMYqnMUF4bDGRe5tcftS9XdAl77pG6W7Q=
+SECTION ADDITIONAL
+ns.sub.example.test. IN A 1.2.3.7
+ENTRY_END
+RANGE_END
+
+; ns.sub.example.test.
+RANGE_BEGIN 0 100
+ ADDRESS 1.2.3.7
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+ns.sub.example.test. IN AAAA
+SECTION ANSWER
+SECTION AUTHORITY
+sub.example.test. 3600 IN SOA ns.sub.example.test. host.sub.example.test. 20701 3600 1800 604800 3600
+sub.example.test. 3600 IN RRSIG SOA 8 3 3600 20201116135527 20201019135527 29332 sub.example.test. EEeC/XlG/XuItqRphAOREwHPzqSsJSs9TEhPnqOzXU4/+j0Eq05WN8ZE+GxHnmrxzaLiqAT6pLYLaQxCFcpkMVKUFYfMFyK6jOkTHZ1ODXNIdAA/ZGMCOQQUco3rcrY6F2U8ETHSxiFQkEl8iQntWM6wUoUF37Yd4hab+o1eD/HZXKLwgNXbXC1iY40ZzqwAlxLcCt0SexiTI9BNfyDy3iROeT3XuloC2x9o2zclAqz3m42n8UKAs8Gh7sAkoTua2fqtNfWZtQctlp1tZgdJFXbI4vuxMEldD+Rh5kUJ72aXvD2W7vd042G7z3n+d+I4vtnH2qKNbVA4YHMXzA/3ug==
+ns.sub.example.test. 3600 IN NSEC nz.sub.example.test. A RRSIG
+ns.sub.example.test. 3600 IN RRSIG NSEC 8 4 3600 20201116135527 20201019135527 29332 sub.example.test. CqaJIHttjfPIdBM1Ty8RDGRnrkaoC7Y7pzS/Kbzjn3lsEJg2XPWZGRln75imsoVOdi46YG95HZdgvnndTAAH3dE0eZHycvo2O7zR0f+Ty3v/HWpvOsRp/XE/8/7g45DHLuyTXxiO6cDSu0bW/qTC4xyix7vMFNEyOmGMGIZEnvkoRWJvUToj8VW6r+a8dU1KIGQXKSXg3lRcXc0Zfk2lk5P0XGrGzdLcITbZbVP3aFgusoi6uCTqhPmwZRVJjuh1E0qXTTE2A67vloVBvwVxfhNajHNkVhEYtxqZyiRLPs1tRyWit4J2Kkk5qoWuPwNRoTHsgzmPJoDGxheUxGEvbA==
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+sub.example.test. IN DNSKEY
+SECTION ANSWER
+sub.example.test. 300 IN DNSKEY 257 3 8 AwEAAb4WMOTBLTFvmBra5m6SK4VfViOzmvyUAU0qv861ZQXeEFvwlndqNU9rwRsMxrSWAYs5nHErKDn49usC/HyxxW1477iGFHhfgL4mjNreJm9zft2QFB1VLbRbEPYdDMLCn4co0qnG7/KG8W2i8Pym1L7f+aREwbLo+/716AS2PbaKMhfWLKLiq5wnBcUClQMNzCiwhqxDJp1oePqfkVdeUgXOtgi0dYRIKyQFhJ5VWJ22npoi/Gif0XLCADAlAwRLKc8o/yJkCxskzgpHpw5Cki1lclg0aq4ssOuPRQ+ne6IHYCz9D2mwzulblhLFamKdq7aHzNt4NlyxhpANVFiKLD8= ;{id = 29332 (ksk), size = 2048b}
+sub.example.test. 300 IN RRSIG DNSKEY 8 3 300 20201116135527 20201019135527 29332 sub.example.test. j8lyYKogmlBon1WsYJp2H4DSdXZIGkzKHplH2hs9b5D2I+4kZ7jiwHz5/OZca5aOOE1QbhcPNRyhenSmtwePjhvBLSDDYC4OhowVpWW5o5aRQMnsTYZgmgqX0zPtUWBoK8P+GZRd1VO/Jam0qWoHjHY9lQlDnblN6f2yDRHQI2CVrSal8x12zl1s/QHVNpodb4MwowvL4WeGxDVxBOiS3v+9SobnfPa9oecu9onrcPryr4KDQHi6i5BNvHVPqE9eBkHnRe3DcvfEbOke6vZY7CCNgfGttaJL64ubCVUv2xu3okTQS5gSX9pRbjaxKlw1ZWmJR0HSq/dn2HDuWjzxkQ==
+SECTION ADDITIONAL
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+a.sub.example.test. IN A
+SECTION ANSWER
+a.sub.example.test. 300 IN A 10.20.30.40
+a.sub.example.test. 300 IN RRSIG A 8 4 300 20201116135527 20201019135527 29332 sub.example.test. lElblJBqr+LbNDO8mlyh9PbBzfC6LU5K8nh/fOHu9dFur5xuqtItw+D0/oo2ve6WIUnqblXKhfbZcKMa40DONog/uThmwyp6cBow7oZdfZSt5YTn74QwJb1M/yaJgU+OWNkM7RfG+VcvpB04+KH+g2qwEpHC5Jm5+e66beoiGHZuKle0qAxNAgM1kkJ5EdTngKk80YOciBv705xSSvySmCDktcIceV8zMgD9YFW1Q2I2SXtPCsVaJTA1jaf3Cm8rZfY1GrBW18JyLPOqf6eIBqdyXg/w/mi/pxgakIM3r9iKaDsEz01ZiN0jaEloteT+NhpjEJA/sFzu1nhV0Y3fJw==
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+b.sub.example.test. IN A
+SECTION ANSWER
+b.sub.example.test. 300 IN A 10.20.30.41
+b.sub.example.test. 300 IN RRSIG A 8 4 300 20201116135527 20201019135527 29332 sub.example.test. KimigOgfAWic9JVbuqMc0cE2aUlfzBaG+LjZl5IqZr7RLeImG74cpBMbTyzWJ1h3IhCKnLde3KMYz+viVEwsirxlY70i3cDObl5t9XlBKombQzCJBMv5MNCGH1iYfsBL6JVhVX849J1fRTK7E6mW2v9eN0GUFplTsThodnRnh/R3KYsn7wdYFAQ3VAkGzdrxcsS9Lmua1hYhJtjMFBuJn/pmoWpOWQePN9u9P1jh3IkvKN7XuwSYvoGjhE1ZM0OtpsWbHdYmFbUePu4Ruqk0Yg+eW1tkWBsj1AHq1x75BDxOShypi+8zb9zGeatF+A65PSOH1WjmpWNdbAYz97gssw==
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+www.sub.example.test. IN A
+SECTION ANSWER
+www.sub.example.test. 300 IN A 10.20.30.42
+www.sub.example.test. 300 IN RRSIG A 8 4 300 20201116135527 20201019135527 29332 sub.example.test. YuV5CADfhJ6yjxLrIZ243RvJmDJv0NgZKVZ9k5TorSY/O8fvPDzIMJFDjVs2gk6dZV81I6MmMbbcK5I3DEeBIHMswOZEhJYgfX7TiKi4sNfJQmyJJSx1SS1YQ38Asxst4cWgg5L6aoehsIlHvAqEz+JlObNus30nO7S6zMd+rFoThdbCpADK3AhbSI8xhO1u7Q8qgBchX7JZNIt5eiKnSrLSi5UAtuNMkczWv74ckFtd5PERpBGqpJRj50z0+7qiAbdahT3YQ7y2PkiBpZTtxG8Cmza4CkGPd1qzD/DRUsWOzZyiWwX5niD51sgqMj6ApGs8wbVSsk/vBudYw1/CIA==
+ENTRY_END
+RANGE_END
+
+; ns.example.test.
+RANGE_BEGIN 0 100
+ ADDRESS 2001::1:2:3:4
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+sub.example.test. IN DS
+SECTION ANSWER
+; This is the correct reply.
+sub.example.test. 300 IN DS 29332 8 2 69c8a09889e377fb1d1af78cc55984152adf25f4643b26d42654657a171e92aa
+sub.example.test. 300 IN RRSIG DS 8 3 300 20201116135527 20201019135527 55567 example.test. vyjkyx1UMCI5KftU7BQWxDkxNj25A60haEIR/Sy7JUkG2UnE0tNIVNE4mEmUGX6ICsddKGwba2xFQFYBMyfpnzsNxEMKv8VpOGObpiTlK4ICRaq6m+pVND1Benk6grzkb+6T2xogHEEMYqnMUF4bDGRe5tcftS9XdAl77pG6W7Q=
+ENTRY_END
+RANGE_END
+
+STEP 1 QUERY
+ENTRY_BEGIN
+REPLY RD DO
+SECTION QUESTION
+a.sub.example.test. IN A
+ENTRY_END
+
+STEP 10 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all
+REPLY QR RD RA AD DO NOERROR
+SECTION QUESTION
+a.sub.example.test. IN A
+SECTION ANSWER
+a.sub.example.test. 300 IN A 10.20.30.40
+a.sub.example.test. 300 IN RRSIG A 8 4 300 20201116135527 20201019135527 29332 sub.example.test. lElblJBqr+LbNDO8mlyh9PbBzfC6LU5K8nh/fOHu9dFur5xuqtItw+D0/oo2ve6WIUnqblXKhfbZcKMa40DONog/uThmwyp6cBow7oZdfZSt5YTn74QwJb1M/yaJgU+OWNkM7RfG+VcvpB04+KH+g2qwEpHC5Jm5+e66beoiGHZuKle0qAxNAgM1kkJ5EdTngKk80YOciBv705xSSvySmCDktcIceV8zMgD9YFW1Q2I2SXtPCsVaJTA1jaf3Cm8rZfY1GrBW18JyLPOqf6eIBqdyXg/w/mi/pxgakIM3r9iKaDsEz01ZiN0jaEloteT+NhpjEJA/sFzu1nhV0Y3fJw==
+ENTRY_END
+
+STEP 20 TIME_PASSES ELAPSE 320
+; The DS record has expired, but the NS record for sub.example.test. is in
+; cache.
+
+; The DS lookup fails with wildcard CNAME.
+; Then it should blacklist the parent (1.2.3.4) not the sub zone (1.2.3.7)
+; the AAAA for the parent can then be retrieved, and it is used.
+
+STEP 30 QUERY
+ENTRY_BEGIN
+REPLY RD DO
+SECTION QUESTION
+www.sub.example.test. IN A
+ENTRY_END
+
+STEP 40 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all
+REPLY QR RD RA AD DO NOERROR
+SECTION QUESTION
+www.sub.example.test. IN A
+SECTION ANSWER
+www.sub.example.test. 300 IN A 10.20.30.42
+www.sub.example.test. 300 IN RRSIG A 8 4 300 20201116135527 20201019135527 29332 sub.example.test. YuV5CADfhJ6yjxLrIZ243RvJmDJv0NgZKVZ9k5TorSY/O8fvPDzIMJFDjVs2gk6dZV81I6MmMbbcK5I3DEeBIHMswOZEhJYgfX7TiKi4sNfJQmyJJSx1SS1YQ38Asxst4cWgg5L6aoehsIlHvAqEz+JlObNus30nO7S6zMd+rFoThdbCpADK3AhbSI8xhO1u7Q8qgBchX7JZNIt5eiKnSrLSi5UAtuNMkczWv74ckFtd5PERpBGqpJRj50z0+7qiAbdahT3YQ7y2PkiBpZTtxG8Cmza4CkGPd1qzD/DRUsWOzZyiWwX5niD51sgqMj6ApGs8wbVSsk/vBudYw1/CIA==
+ENTRY_END
+
+STEP 50 QUERY
+ENTRY_BEGIN
+REPLY RD DO
+SECTION QUESTION
+b.sub.example.test. IN A
+ENTRY_END
+
+STEP 60 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all
+REPLY QR RD RA AD DO NOERROR
+SECTION QUESTION
+b.sub.example.test. IN A
+SECTION ANSWER
+b.sub.example.test. 300 IN A 10.20.30.41
+b.sub.example.test. 300 IN RRSIG A 8 4 300 20201116135527 20201019135527 29332 sub.example.test. KimigOgfAWic9JVbuqMc0cE2aUlfzBaG+LjZl5IqZr7RLeImG74cpBMbTyzWJ1h3IhCKnLde3KMYz+viVEwsirxlY70i3cDObl5t9XlBKombQzCJBMv5MNCGH1iYfsBL6JVhVX849J1fRTK7E6mW2v9eN0GUFplTsThodnRnh/R3KYsn7wdYFAQ3VAkGzdrxcsS9Lmua1hYhJtjMFBuJn/pmoWpOWQePN9u9P1jh3IkvKN7XuwSYvoGjhE1ZM0OtpsWbHdYmFbUePu4Ruqk0Yg+eW1tkWBsj1AHq1x75BDxOShypi+8zb9zGeatF+A65PSOH1WjmpWNdbAYz97gssw==
+ENTRY_END
+
+SCENARIO_END
diff --git a/testdata/fwd_0ttlservfail.rpl b/testdata/fwd_0ttlservfail.rpl
index d50d386d4137..635ee6db696f 100644
--- a/testdata/fwd_0ttlservfail.rpl
+++ b/testdata/fwd_0ttlservfail.rpl
@@ -46,25 +46,10 @@ www.example.com. IN A
SECTION ANSWER
ENTRY_END
-; enough to pass by the TTL of the servfail answer in cache
+; enough to expire the servfail answer in cache
STEP 50 TIME_PASSES ELAPSE 5
-; this query triggers a prefetch
-STEP 210 QUERY
-ENTRY_BEGIN
-REPLY RD
-SECTION QUESTION
-www.example.com. IN A
-ENTRY_END
-
-STEP 220 CHECK_ANSWER
-ENTRY_BEGIN
-MATCH all
-REPLY QR RD RA SERVFAIL
-SECTION QUESTION
-www.example.com. IN A
-SECTION ANSWER
-ENTRY_END
+; Expired SERVFAILS are no longer served from Unbound
; this query gets the 0ttl answer
STEP 230 QUERY
@@ -76,7 +61,7 @@ ENTRY_END
STEP 240 CHECK_ANSWER
ENTRY_BEGIN
-MATCH all
+MATCH all ttl
REPLY QR RD RA NOERROR
SECTION QUESTION
www.example.com. IN A
diff --git a/testdata/fwd_compress_c00c.tdir/fwd_compress_c00c.test b/testdata/fwd_compress_c00c.tdir/fwd_compress_c00c.test
index de4250c3e9eb..4c25b80f8708 100644
--- a/testdata/fwd_compress_c00c.tdir/fwd_compress_c00c.test
+++ b/testdata/fwd_compress_c00c.tdir/fwd_compress_c00c.test
@@ -8,7 +8,7 @@
if nc -h 2>&1 | grep "q secs"; then
ncopt="-q 3 -i 2"
else
- ncopt="-i 2"
+ ncopt="-i 2 --no-shutdown"
fi
PRE="../.."
diff --git a/testdata/fwd_scrub_rrsig.rpl b/testdata/fwd_scrub_rrsig.rpl
new file mode 100644
index 000000000000..cc9e426d63f6
--- /dev/null
+++ b/testdata/fwd_scrub_rrsig.rpl
@@ -0,0 +1,93 @@
+; This is a comment
+server:
+
+forward-zone: name: "." forward-addr: 216.0.0.1
+CONFIG_END
+
+SCENARIO_BEGIN Test scrub of RRSIG amount
+
+RANGE_BEGIN 0 100
+ ADDRESS 216.0.0.1
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR RD RA NOERROR
+SECTION QUESTION
+www.example.com. IN A
+SECTION ANSWER
+www.example.com. IN A 10.20.30.40
+www.example.com. 300 IN RRSIG A 8 3 300 20330518033320 20010909014640 12345 . MQ== ;{id = 12345}
+www.example.com. 300 IN RRSIG A 8 3 300 20330518033320 20010909014640 12345 . Mg== ;{id = 12345}
+www.example.com. 300 IN RRSIG A 8 3 300 20330518033320 20010909014640 12345 . Mw== ;{id = 12345}
+www.example.com. 300 IN RRSIG A 8 3 300 20330518033320 20010909014640 12345 . NA== ;{id = 12345}
+www.example.com. 300 IN RRSIG A 8 3 300 20330518033320 20010909014640 12345 . NQ== ;{id = 12345}
+www.example.com. 300 IN RRSIG A 8 3 300 20330518033320 20010909014640 12345 . Ng== ;{id = 12345}
+www.example.com. 300 IN RRSIG A 8 3 300 20330518033320 20010909014640 12345 . Nw== ;{id = 12345}
+www.example.com. 300 IN RRSIG A 8 3 300 20330518033320 20010909014640 12345 . OA== ;{id = 12345}
+www.example.com. 300 IN RRSIG A 8 3 300 20330518033320 20010909014640 12345 . OQ== ;{id = 12345}
+www.example.com. 300 IN RRSIG A 8 3 300 20330518033320 20010909014640 12345 . MTA= ;{id = 12345}
+www.example.com. 300 IN RRSIG A 8 3 300 20330518033320 20010909014640 12345 . MTE= ;{id = 12345}
+www.example.com. 300 IN RRSIG A 8 3 300 20330518033320 20010909014640 12345 . MTI= ;{id = 12345}
+www.example.com. 300 IN RRSIG A 8 3 300 20330518033320 20010909014640 12345 . MTM= ;{id = 12345}
+www.example.com. 300 IN RRSIG A 8 3 300 20330518033320 20010909014640 12345 . MTQ= ;{id = 12345}
+www.example.com. 300 IN RRSIG A 8 3 300 20330518033320 20010909014640 12345 . MTU= ;{id = 12345}
+www.example.com. 300 IN RRSIG A 8 3 300 20330518033320 20010909014640 12345 . MTY= ;{id = 12345}
+www.example.com. 300 IN RRSIG A 8 3 300 20330518033320 20010909014640 12345 . MTc= ;{id = 12345}
+www.example.com. 300 IN RRSIG A 8 3 300 20330518033320 20010909014640 12345 . MTg= ;{id = 12345}
+www.example.com. 300 IN RRSIG A 8 3 300 20330518033320 20010909014640 12345 . MTk= ;{id = 12345}
+www.example.com. 300 IN RRSIG A 8 3 300 20330518033320 20010909014640 12345 . MjA= ;{id = 12345}
+www.example.com. 300 IN RRSIG A 8 3 300 20330518033320 20010909014640 12345 . MjE= ;{id = 12345}
+www.example.com. 300 IN RRSIG A 8 3 300 20330518033320 20010909014640 12345 . MjI= ;{id = 12345}
+www.example.com. 300 IN RRSIG A 8 3 300 20330518033320 20010909014640 12345 . MjM= ;{id = 12345}
+www.example.com. 300 IN RRSIG A 8 3 300 20330518033320 20010909014640 12345 . MjQ= ;{id = 12345}
+www.example.com. 300 IN RRSIG A 8 3 300 20330518033320 20010909014640 12345 . MjU= ;{id = 12345}
+www.example.com. 300 IN RRSIG A 8 3 300 20330518033320 20010909014640 12345 . MjY= ;{id = 12345}
+www.example.com. 300 IN RRSIG A 8 3 300 20330518033320 20010909014640 12345 . Mjc= ;{id = 12345}
+www.example.com. 300 IN RRSIG A 8 3 300 20330518033320 20010909014640 12345 . Mjg= ;{id = 12345}
+www.example.com. 300 IN RRSIG A 8 3 300 20330518033320 20010909014640 12345 . Mjk= ;{id = 12345}
+www.example.com. 300 IN RRSIG A 8 3 300 20330518033320 20010909014640 12345 . MzA= ;{id = 12345}
+www.example.com. 300 IN RRSIG A 8 3 300 20330518033320 20010909014640 12345 . MzE= ;{id = 12345}
+www.example.com. 300 IN RRSIG A 8 3 300 20330518033320 20010909014640 12345 . MzI= ;{id = 12345}
+www.example.com. 300 IN RRSIG A 8 3 300 20330518033320 20010909014640 12345 . MzM= ;{id = 12345}
+www.example.com. 300 IN RRSIG A 8 3 300 20330518033320 20010909014640 12345 . MzQ= ;{id = 12345}
+www.example.com. 300 IN RRSIG A 8 3 300 20330518033320 20010909014640 12345 . MzU= ;{id = 12345}
+www.example.com. 300 IN RRSIG A 8 3 300 20330518033320 20010909014640 12345 . MzY= ;{id = 12345}
+www.example.com. 300 IN RRSIG A 8 3 300 20330518033320 20010909014640 12345 . Mzc= ;{id = 12345}
+www.example.com. 300 IN RRSIG A 8 3 300 20330518033320 20010909014640 12345 . Mzg= ;{id = 12345}
+www.example.com. 300 IN RRSIG A 8 3 300 20330518033320 20010909014640 12345 . Mzk= ;{id = 12345}
+www.example.com. 300 IN RRSIG A 8 3 300 20330518033320 20010909014640 12345 . NDA= ;{id = 12345}
+www.example.com. 300 IN RRSIG A 8 3 300 20330518033320 20010909014640 12345 . NDE= ;{id = 12345}
+www.example.com. 300 IN RRSIG A 8 3 300 20330518033320 20010909014640 12345 . NDI= ;{id = 12345}
+www.example.com. 300 IN RRSIG A 8 3 300 20330518033320 20010909014640 12345 . NDM= ;{id = 12345}
+www.example.com. 300 IN RRSIG A 8 3 300 20330518033320 20010909014640 12345 . NDQ= ;{id = 12345}
+www.example.com. 300 IN RRSIG A 8 3 300 20330518033320 20010909014640 12345 . NDU= ;{id = 12345}
+ENTRY_END
+RANGE_END
+
+STEP 1 QUERY
+ENTRY_BEGIN
+MATCH TCP
+REPLY RD DO
+SECTION QUESTION
+www.example.com. IN A
+ENTRY_END
+
+STEP 4 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH opcode qname qtype all
+REPLY QR RD DO RA
+SECTION QUESTION
+www.example.com. IN A
+SECTION ANSWER
+www.example.com. IN A 10.20.30.40
+www.example.com. 300 IN RRSIG A 8 3 300 20330518033320 20010909014640 12345 . MQ== ;{id = 12345}
+www.example.com. 300 IN RRSIG A 8 3 300 20330518033320 20010909014640 12345 . Mg== ;{id = 12345}
+www.example.com. 300 IN RRSIG A 8 3 300 20330518033320 20010909014640 12345 . Mw== ;{id = 12345}
+www.example.com. 300 IN RRSIG A 8 3 300 20330518033320 20010909014640 12345 . NA== ;{id = 12345}
+www.example.com. 300 IN RRSIG A 8 3 300 20330518033320 20010909014640 12345 . NQ== ;{id = 12345}
+www.example.com. 300 IN RRSIG A 8 3 300 20330518033320 20010909014640 12345 . Ng== ;{id = 12345}
+www.example.com. 300 IN RRSIG A 8 3 300 20330518033320 20010909014640 12345 . Nw== ;{id = 12345}
+www.example.com. 300 IN RRSIG A 8 3 300 20330518033320 20010909014640 12345 . OA== ;{id = 12345}
+ENTRY_END
+SCENARIO_END
diff --git a/testdata/iter_dname_ttl0.rpl b/testdata/iter_dname_ttl0.rpl
new file mode 100644
index 000000000000..c9e0e70e7393
--- /dev/null
+++ b/testdata/iter_dname_ttl0.rpl
@@ -0,0 +1,272 @@
+; config options
+; Test DNAME TTL=0 grace period: synthesis from cache within 1 second
+; Island of trust at example.com, DNSSEC signed DNAME with TTL=0 (RFC 2308)
+server:
+ trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
+ trust-anchor: "example.net. 3600 IN DNSKEY 256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}"
+ val-override-date: "20070916134226"
+ target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
+ fake-sha1: yes
+ trust-anchor-signaling: no
+
+stub-zone:
+ name: "."
+ stub-addr: 193.0.14.129 # K.ROOT-SERVERS.NET.
+CONFIG_END
+
+SCENARIO_BEGIN Test DNAME TTL=0: signed DNAME with TTL=0 and RRSIG Original TTL=0.
+
+; K.ROOT-SERVERS.NET.
+RANGE_BEGIN 0 100
+ ADDRESS 193.0.14.129
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+. IN NS
+SECTION ANSWER
+. IN NS K.ROOT-SERVERS.NET.
+SECTION ADDITIONAL
+K.ROOT-SERVERS.NET. IN A 193.0.14.129
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode subdomain
+ADJUST copy_id copy_query
+REPLY QR NOERROR
+SECTION QUESTION
+com. IN NS
+SECTION AUTHORITY
+com. IN NS a.gtld-servers.net.
+SECTION ADDITIONAL
+a.gtld-servers.net. IN A 192.5.6.30
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode subdomain
+ADJUST copy_id copy_query
+REPLY QR NOERROR
+SECTION QUESTION
+net. IN A
+SECTION AUTHORITY
+net. IN NS a.gtld-servers.net.
+SECTION ADDITIONAL
+a.gtld-servers.net. IN A 192.5.6.30
+ENTRY_END
+RANGE_END
+
+; a.gtld-servers.net.
+RANGE_BEGIN 0 100
+ ADDRESS 192.5.6.30
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+com. IN NS
+SECTION ANSWER
+com. IN NS a.gtld-servers.net.
+SECTION ADDITIONAL
+a.gtld-servers.net. IN A 192.5.6.30
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+net. IN NS
+SECTION ANSWER
+net. IN NS a.gtld-servers.net.
+SECTION ADDITIONAL
+a.gtld-servers.net. IN A 192.5.6.30
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode subdomain
+ADJUST copy_id copy_query
+REPLY QR NOERROR
+SECTION QUESTION
+example.com. IN NS
+SECTION AUTHORITY
+example.com. IN NS ns.example.com.
+SECTION ADDITIONAL
+ns.example.com. IN A 1.2.3.4
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode subdomain
+ADJUST copy_id copy_query
+REPLY QR NOERROR
+SECTION QUESTION
+example.net. IN A
+SECTION AUTHORITY
+example.net. IN NS ns.example.net.
+SECTION ADDITIONAL
+ns.example.net. IN A 1.2.3.5
+ENTRY_END
+RANGE_END
+
+; ns.example.com. - DNAME with TTL=0 (RRSIG Original TTL=0)
+RANGE_BEGIN 0 100
+ ADDRESS 1.2.3.4
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+example.com. IN NS
+SECTION ANSWER
+example.com. IN NS ns.example.com.
+example.com. 3600 IN RRSIG NS 3 2 3600 20070926134150 20070829134150 2854 example.com. MC0CFQCN+qHdJxoI/2tNKwsb08pra/G7aAIUAWA5sDdJTbrXA1/3OaesGBAO3sI= ;{id = 2854}
+SECTION ADDITIONAL
+ns.example.com. IN A 1.2.3.4
+ns.example.com. 3600 IN RRSIG A 3 3 3600 20070926135752 20070829135752 2854 example.com. MC0CFQCMSWxVehgOQLoYclB9PIAbNP229AIUeH0vNNGJhjnZiqgIOKvs1EhzqAo= ;{id = 2854}
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+example.com. IN DNSKEY
+SECTION ANSWER
+example.com. 3600 IN DNSKEY 256 3 3 ALXLUsWqUrY3JYER3T4TBJII s70j+sDS/UT2QRp61SE7S3E EXopNXoFE73JLRmvpi/UrOO/Vz4Se 6wXv/CYCKjGw06U4WRgR YXcpEhJROyNapmdIKSx hOzfLVE1gqA0PweZR8d tY3aNQSRn3sPpwJr6Mi /PqQKAMMrZ9ckJpf1+b QMOOvxgzz2U1GS18b3y ZKcgTMEaJzd/GZYzi/B N2DzQ0MsrSwYXfsNLFO Bbs8PJMW4LYIxeeOe6rUgkWOF 7CC9Dh/dduQ1QrsJhmZAEFfd6ByYV+ ;{id = 2854 (zsk), size = 1688b}
+example.com. 3600 IN RRSIG DNSKEY DSA 2 3600 20070926134150 20070829134150 2854 example.com. MCwCFBQRtlR4BEv9ohi+PGFjp+AHsJuHAhRCvz0shggvnvI88DFnBDCczHUcVA== ;{id = 2854}
+SECTION AUTHORITY
+example.com. IN NS ns.example.com.
+example.com. 3600 IN RRSIG NS 3 2 3600 20070926134150 20070829134150 2854 example.com. MC0CFQCN+qHdJxoI/2tNKwsb08pra/G7aAIUAWA5sDdJTbrXA1/3OaesGBAO3sI= ;{id = 2854}
+SECTION ADDITIONAL
+ns.example.com. IN A 1.2.3.4
+ns.example.com. 3600 IN RRSIG A 3 3 3600 20070926135752 20070829135752 2854 example.com. MC0CFQCMSWxVehgOQLoYclB9PIAbNP229AIUeH0vNNGJhjnZiqgIOKvs1EhzqAo= ;{id = 2854}
+ENTRY_END
+
+; DNAME with TTL=0, RRSIG Original TTL=0 (signed with ldns-signzone)
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+foo.test-dname.example.com. IN A
+SECTION ANSWER
+test-dname.example.com. 0 IN DNAME example.net.
+test-dname.example.com. 0 IN RRSIG DNAME 3 3 0 20070926135752 20070829135752 2854 example.com. ADRb2Jl5SCTF2a9/5QFOCfwFzh4Cpt90pJptwrKc+vBHnlivGyPShrU=
+foo.test-dname.example.com. 0 IN CNAME foo.example.net.
+ENTRY_END
+
+RANGE_END
+
+; ns.example.net.
+RANGE_BEGIN 0 100
+ ADDRESS 1.2.3.5
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+example.net. IN NS
+SECTION ANSWER
+example.net. IN NS ns.example.net.
+example.net. 3600 IN RRSIG NS RSASHA1 2 3600 20070926134150 20070829134150 30899 example.net. E8JX0l4B+cSR5bkHQwOJy1pBmlLMTYCJ8EwfNMU/eCv0YhKwo26rHhn52FGisgv+Nwp7/NbhHqQ+kJgoZC94XA== ;{id = 30899}
+SECTION ADDITIONAL
+ns.example.net. IN A 1.2.3.5
+ns.example.net. 3600 IN RRSIG A RSASHA1 3 3600 20070926134150 20070829134150 30899 example.net. x+tQMC9FhzT7Fcy1pM5NrOC7E8nLd7THPI3C6ie4EwL8PrxllqlR3q/DKB0d/m0qCOPcgN6HFOYURV1s4uAcsw== ;{id = 30899}
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+example.net. IN DNSKEY
+SECTION ANSWER
+example.net. 3600 IN DNSKEY 256 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 30899 (zsk), size = 512b}
+example.net. 3600 IN RRSIG DNSKEY RSASHA1 2 3600 20070926134150 20070829134150 30899 example.net. hiFzlQ8VoYgCuvIsfVuxC3mfJDqsTh0yc6abs5xMx5uEcIjb0dndFQx7INOM+imlzveEN73Hqp4OLFpFhsWLlw== ;{id = 30899}
+SECTION AUTHORITY
+example.net. IN NS ns.example.net.
+example.net. 3600 IN RRSIG NS RSASHA1 2 3600 20070926134150 20070829134150 30899 example.net. E8JX0l4B+cSR5bkHQwOJy1pBmlLMTYCJ8EwfNMU/eCv0YhKwo26rHhn52FGisgv+Nwp7/NbhHqQ+kJgoZC94XA== ;{id = 30899}
+SECTION ADDITIONAL
+ns.example.net. IN A 1.2.3.5
+ns.example.net. 3600 IN RRSIG A RSASHA1 3 3600 20070926134150 20070829134150 30899 example.net. x+tQMC9FhzT7Fcy1pM5NrOC7E8nLd7THPI3C6ie4EwL8PrxllqlR3q/DKB0d/m0qCOPcgN6HFOYURV1s4uAcsw== ;{id = 30899}
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+foo.example.net. IN A
+SECTION ANSWER
+foo.example.net. IN A 11.12.13.15
+foo.example.net. 3600 IN RRSIG A 5 3 3600 20070926134150 20070829134150 30899 example.net. X6T6SE9UzxAD/4zKpwGOxEDyE4g7lfYYw3lvw533uwRN8mWTcBvSva0/jjyhrogJcuLO32jPHK6zGb93w2xnuA==
+SECTION AUTHORITY
+SECTION ADDITIONAL
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+foo2.example.net. IN A
+SECTION ANSWER
+foo2.example.net. IN A 11.12.13.16
+foo2.example.net. 3600 IN RRSIG A 5 3 3600 20070926134150 20070829134150 30899 example.net. BZm+GljD8m9N+pNJN8D+LlSyHqM+InNUe0+heKILR9be+Goqv6SEb7LKtX6+kj3239Y5by7u+/Cuk8kkWistEQ==
+SECTION AUTHORITY
+SECTION ADDITIONAL
+ENTRY_END
+RANGE_END
+
+STEP 1 TIME_PASSES ELAPSE 10
+; First query: get DNAME TTL=0 into cache
+STEP 10 QUERY
+ENTRY_BEGIN
+REPLY RD DO
+SECTION QUESTION
+foo.test-dname.example.com. IN A
+ENTRY_END
+
+STEP 20 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all ttl
+REPLY QR RD RA AD DO NOERROR
+SECTION QUESTION
+foo.test-dname.example.com. IN A
+SECTION ANSWER
+test-dname.example.com. 0 IN DNAME example.net.
+test-dname.example.com. 0 IN RRSIG DNAME 3 3 0 20070926135752 20070829135752 2854 example.com. ADRb2Jl5SCTF2a9/5QFOCfwFzh4Cpt90pJptwrKc+vBHnlivGyPShrU=
+foo.test-dname.example.com. 0 IN CNAME foo.example.net.
+foo.example.net. IN A 11.12.13.15
+foo.example.net. 3600 IN RRSIG A 5 3 3600 20070926134150 20070829134150 30899 example.net. X6T6SE9UzxAD/4zKpwGOxEDyE4g7lfYYw3lvw533uwRN8mWTcBvSva0/jjyhrogJcuLO32jPHK6zGb93w2xnuA==
+ENTRY_END
+
+STEP 29 TIME_PASSES ELAPSE 1
+
+; Second query: within grace period (TIME_PASSES 1 above)
+; With cache grace: synthesis from cached TTL=0 DNAME
+STEP 30 QUERY
+ENTRY_BEGIN
+REPLY RD DO
+SECTION QUESTION
+foo2.test-dname.example.com. IN A
+ENTRY_END
+
+; foo2.test-dname.example.com is not answered upstream
+; so this reply is synthesized by the cached (1 second grace period) DNAME
+STEP 40 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all ttl
+REPLY QR RD RA AD DO NOERROR
+SECTION QUESTION
+foo2.test-dname.example.com. IN A
+SECTION ANSWER
+test-dname.example.com. 0 IN DNAME example.net.
+test-dname.example.com. 0 IN RRSIG DNAME 3 3 0 20070926135752 20070829135752 2854 example.com. ADRb2Jl5SCTF2a9/5QFOCfwFzh4Cpt90pJptwrKc+vBHnlivGyPShrU=
+foo2.test-dname.example.com. 0 IN CNAME foo2.example.net.
+foo2.example.net. 3600 IN A 11.12.13.16
+foo2.example.net. 3600 IN RRSIG A 5 3 3600 20070926134150 20070829134150 30899 example.net. BZm+GljD8m9N+pNJN8D+LlSyHqM+InNUe0+heKILR9be+Goqv6SEb7LKtX6+kj3239Y5by7u+/Cuk8kkWistEQ==
+ENTRY_END
+
+SCENARIO_END
diff --git a/testdata/iter_nat64_donotq.rpl b/testdata/iter_nat64_donotq.rpl
new file mode 100644
index 000000000000..079d52e68f1e
--- /dev/null
+++ b/testdata/iter_nat64_donotq.rpl
@@ -0,0 +1,192 @@
+; config options
+server:
+ do-nat64: yes
+ nat64-prefix: 2001:db8:1234::/96
+ target-fetch-policy: "0 0 0 0 0"
+
+ ; This is like a machine that is part of a cluster of hosts that
+ ; is IPv6-only, and uses NAT64. The cluster has no internet access.
+ do-not-query-address: ::0/0
+
+ qname-minimisation: no
+
+stub-zone:
+ name: "."
+ ; Pick an address in the NAT64 prefix, so it is allowed.
+ ; other addresses would not be allowed. Or without the bugfix,
+ ; allowed depending on state machine activation sequence.
+ stub-addr: 2001:db8:1234::1
+CONFIG_END
+
+SCENARIO_BEGIN Test NAT64 transport for v4-only with do-not-query-addresses.
+
+RANGE_BEGIN 0 100
+ ADDRESS 2001:db8:1234::1
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+. IN NS
+SECTION ANSWER
+. IN NS FAKE.ROOT.
+SECTION ADDITIONAL
+FAKE.ROOT. IN AAAA 2001:db8:1234::1
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode subdomain
+ADJUST copy_id copy_query
+REPLY QR NOERROR
+SECTION QUESTION
+v4only. IN NS
+SECTION AUTHORITY
+v4only. IN NS ns.v4only.
+SECTION ADDITIONAL
+ns.v4only. IN A 192.0.2.1
+ENTRY_END
+
+RANGE_END
+
+; replies from NS over "NAT64"
+
+RANGE_BEGIN 0 20
+ ADDRESS 2001:db8:1234::c000:0201
+
+; A over NAT64
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY AA QR NOERROR
+SECTION QUESTION
+ns.v4only. IN A
+SECTION ANSWER
+ns.v4only. IN A 192.0.2.1
+SECTION AUTHORITY
+v4only. IN NS ns.v4only.
+ENTRY_END
+
+; no AAAA
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY AA QR NOERROR
+SECTION QUESTION
+ns.v4only. IN AAAA
+SECTION AUTHORITY
+v4only. IN SOA ns.v4only. host. 1 3600 300 48000 3600
+v4only. IN NS ns.v4only.
+SECTION ADDITIONAL
+ns.v4only. IN A 192.0.2.1
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY AA QR NOERROR
+SECTION QUESTION
+v4only. IN NS
+SECTION ANSWER
+v4only. IN NS ns.v4only.
+SECTION ADDITIONAL
+ns.v4only. IN A 192.0.2.1
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY AA QR NOERROR
+SECTION QUESTION
+test.v4only. IN A
+SECTION ANSWER
+test.v4only. IN A 192.0.2.2
+SECTION AUTHORITY
+v4only. IN NS ns.v4only.
+SECTION ADDITIONAL
+ns.v4only. IN A 192.0.2.1
+ENTRY_END
+RANGE_END
+
+RANGE_BEGIN 50 100
+ ADDRESS 2001:db8:1234::c000:0201
+; no AAAA
+; The last resort lookup of the AAAA is blocked here,
+; the last resort processing is not desired, it should resolve test2
+; straight away.
+;ENTRY_BEGIN
+;MATCH opcode qtype qname
+;ADJUST copy_id
+;REPLY AA QR NOERROR
+;SECTION QUESTION
+;ns.v4only. IN AAAA
+;SECTION AUTHORITY
+;v4only. IN SOA ns.v4only. host. 1 3600 300 48000 3600
+;v4only. IN NS ns.v4only.
+;SECTION ADDITIONAL
+;ns.v4only. IN A 192.0.2.1
+;ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY AA QR NOERROR
+SECTION QUESTION
+ns.v4only. IN A
+SECTION ANSWER
+ns.v4only. IN A 192.0.2.1
+SECTION AUTHORITY
+v4only. IN NS ns.v4only.
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY AA QR NOERROR
+SECTION QUESTION
+test2.v4only. IN A
+SECTION ANSWER
+test2.v4only. IN A 192.0.2.3
+ENTRY_END
+RANGE_END
+
+STEP 1 QUERY
+ENTRY_BEGIN
+REPLY RD
+SECTION QUESTION
+test.v4only. IN A
+ENTRY_END
+
+STEP 20 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all
+REPLY QR RD RA NOERROR
+SECTION QUESTION
+test.v4only. IN A
+SECTION ANSWER
+test.v4only. IN A 192.0.2.2
+ENTRY_END
+
+; for a query where the upstream nameserver has a timeout.
+STEP 30 QUERY
+ENTRY_BEGIN
+REPLY RD
+SECTION QUESTION
+test2.v4only. IN A
+ENTRY_END
+
+; Only the test2 query is there, and it has a timeout.
+; The address is already NAT64 translated, so now that it is
+; attempted again, it is looked up in dotnotq as the ipv6 address.
+STEP 40 TIMEOUT
+
+STEP 50 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all
+REPLY QR RD RA NOERROR
+SECTION QUESTION
+test2.v4only. IN A
+SECTION ANSWER
+test2.v4only. IN A 192.0.2.3
+ENTRY_END
+
+SCENARIO_END
diff --git a/testdata/iter_priv_svcb.rpl b/testdata/iter_priv_svcb.rpl
new file mode 100644
index 000000000000..5deae4250854
--- /dev/null
+++ b/testdata/iter_priv_svcb.rpl
@@ -0,0 +1,283 @@
+; config options
+server:
+ target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: no
+ minimal-responses: yes
+ iter-scrub-promiscuous: yes
+
+ private-address: 10.0.0.0/8
+ private-address: 172.16.0.0/12
+ private-address: 192.168.0.0/16
+ private-address: 169.254.0.0/16
+ private-address: fd00::/8
+ private-address: fe80::/10
+
+ private-domain: "example.net"
+
+stub-zone:
+ name: "."
+ stub-addr: 193.0.14.129 # K.ROOT-SERVERS.NET.
+
+CONFIG_END
+
+SCENARIO_BEGIN Test iterator scrubber with private addresses in SVCB.
+
+; K.ROOT-SERVERS.NET.
+RANGE_BEGIN 0 100
+ ADDRESS 193.0.14.129
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+. IN NS
+SECTION ANSWER
+. IN NS K.ROOT-SERVERS.NET.
+SECTION ADDITIONAL
+K.ROOT-SERVERS.NET. IN A 193.0.14.129
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode subdomain
+ADJUST copy_id copy_query
+REPLY QR NOERROR
+SECTION QUESTION
+com. IN A
+SECTION AUTHORITY
+com. IN NS a.gtld-servers.net.
+SECTION ADDITIONAL
+a.gtld-servers.net. IN A 192.5.6.30
+ENTRY_END
+
+; root server authoritative for example.net too.
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+mail.example.net. IN SVCB
+SECTION ANSWER
+mail.example.net. IN SVCB 1 foo.example.net. ipv4hint=10.20.30.40
+ENTRY_END
+RANGE_END
+
+; a.gtld-servers.net.
+RANGE_BEGIN 0 100
+ ADDRESS 192.5.6.30
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+com. IN NS
+SECTION ANSWER
+com. IN NS a.gtld-servers.net.
+SECTION ADDITIONAL
+a.gtld-servers.net. IN A 192.5.6.30
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode subdomain
+ADJUST copy_id copy_query
+REPLY QR NOERROR
+SECTION QUESTION
+example.com. IN A
+SECTION AUTHORITY
+example.com. IN NS ns.example.com.
+SECTION ADDITIONAL
+ns.example.com. IN A 1.2.3.4
+ENTRY_END
+RANGE_END
+
+; ns.example.com.
+RANGE_BEGIN 0 100
+ ADDRESS 1.2.3.4
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+example.com. IN NS
+SECTION ANSWER
+example.com. IN NS ns.example.com.
+SECTION ADDITIONAL
+ns.example.com. IN A 1.2.3.4
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+ns.example.com. IN A
+SECTION ANSWER
+ns.example.com. IN A 1.2.3.4
+SECTION AUTHORITY
+example.com. IN NS ns.example.com.
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+ns.example.com. IN AAAA
+SECTION ANSWER
+SECTION AUTHORITY
+example.com. IN SOA ns.example.com. root.example.com. 4 14400 3600 604800 3600
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+www.example.com. IN SVCB
+SECTION ANSWER
+www.example.com. IN SVCB 1 foo.example.com. ipv4hint=192.20.30.40
+SECTION AUTHORITY
+example.com. IN NS ns.example.com.
+SECTION ADDITIONAL
+ns.example.com. IN A 1.2.3.4
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+mail.example.com. IN SVCB
+SECTION ANSWER
+mail.example.com. IN SVCB 1 foo.example.com. ipv6hint=fe80::15
+SECTION AUTHORITY
+example.com. IN NS ns.example.com.
+SECTION ADDITIONAL
+ns.example.com. IN A 1.2.3.4
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+foo.example.com. IN SVCB
+SECTION ANSWER
+foo.example.com. IN SVCB 1 foo.example.com. ipv4hint=10.20.30.40
+SECTION AUTHORITY
+example.com. IN NS ns.example.com.
+SECTION ADDITIONAL
+ns.example.com. IN A 1.2.3.4
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+toss.example.com. IN SVCB
+SECTION ANSWER
+toss.example.com. IN SVCB 1 foo.example.com. ipv4hint=10.20.30.40
+toss.example.com. IN SVCB 1 foo.example.com. ipv4hint=10.20.30.40
+toss.example.com. IN SVCB 1 foo.example.com. ipv4hint=1.2.3.4
+toss.example.com. IN SVCB 1 foo.example.com. ipv6hint=fe80::15
+toss.example.com. IN SVCB 1 foo.example.com. ipv4hint=10.20.30.41
+toss.example.com. IN SVCB 1 foo.example.com. ipv4hint=192.0.2.1,10.20.30.42,192.0.2.2
+SECTION AUTHORITY
+example.com. IN NS ns.example.com.
+SECTION ADDITIONAL
+ns.example.com. IN A 1.2.3.4
+ENTRY_END
+RANGE_END
+
+; public address is not scrubbed
+STEP 1 QUERY
+ENTRY_BEGIN
+REPLY RD
+SECTION QUESTION
+www.example.com. IN SVCB
+ENTRY_END
+
+; recursion happens here.
+STEP 2 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all
+REPLY QR RD RA NOERROR
+SECTION QUESTION
+www.example.com. IN SVCB
+SECTION ANSWER
+www.example.com. IN SVCB 1 foo.example.com. ipv4hint=192.20.30.40
+ENTRY_END
+
+; IPv4 address is scrubbed
+STEP 3 QUERY
+ENTRY_BEGIN
+REPLY RD
+SECTION QUESTION
+foo.example.com. IN SVCB
+ENTRY_END
+
+; recursion happens here.
+STEP 10 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all
+REPLY QR RD RA NOERROR
+SECTION QUESTION
+foo.example.com. IN SVCB
+SECTION ANSWER
+; scrubbed away
+ENTRY_END
+
+; IPv6 address is scrubbed
+STEP 20 QUERY
+ENTRY_BEGIN
+REPLY RD
+SECTION QUESTION
+mail.example.com. IN SVCB
+ENTRY_END
+
+STEP 30 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all
+REPLY QR RD RA NOERROR
+SECTION QUESTION
+mail.example.com. IN SVCB
+SECTION ANSWER
+ENTRY_END
+
+; allowed domain is not scrubbed.
+STEP 40 QUERY
+ENTRY_BEGIN
+REPLY RD
+SECTION QUESTION
+mail.example.net. IN SVCB
+ENTRY_END
+
+STEP 50 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all
+REPLY QR RD RA NOERROR
+SECTION QUESTION
+mail.example.net. IN SVCB
+SECTION ANSWER
+mail.example.net. IN SVCB 1 foo.example.net. ipv4hint=10.20.30.40
+ENTRY_END
+
+; rest of RRset intact, only 10/8 tossed away.
+STEP 60 QUERY
+ENTRY_BEGIN
+REPLY RD
+SECTION QUESTION
+toss.example.com. IN SVCB
+ENTRY_END
+
+STEP 70 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all
+REPLY QR RD RA NOERROR
+SECTION QUESTION
+toss.example.com. IN SVCB
+SECTION ANSWER
+toss.example.com. IN SVCB 1 foo.example.com. ipv4hint=1.2.3.4
+ENTRY_END
+
+SCENARIO_END
diff --git a/testdata/iter_scrub_dname_out_of_zone.rpl b/testdata/iter_scrub_dname_out_of_zone.rpl
new file mode 100644
index 000000000000..8dbafdf72259
--- /dev/null
+++ b/testdata/iter_scrub_dname_out_of_zone.rpl
@@ -0,0 +1,122 @@
+; config options
+server:
+ harden-referral-path: no
+ target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
+ minimal-responses: no
+ iter-scrub-promiscuous: no
+
+stub-zone:
+ name: "."
+ stub-addr: 193.0.14.129 # K.ROOT-SERVERS.NET.
+CONFIG_END
+
+SCENARIO_BEGIN Test scrub of out-of-zone DNAME in answer section
+
+STEP 10 QUERY
+ENTRY_BEGIN
+REPLY RD
+SECTION QUESTION
+x.y.example.com. IN A
+ENTRY_END
+
+; root prime is sent
+STEP 20 CHECK_OUT_QUERY
+ENTRY_BEGIN
+MATCH qname qtype opcode
+SECTION QUESTION
+. IN NS
+ENTRY_END
+STEP 30 REPLY
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+. IN NS
+SECTION ANSWER
+. IN NS K.ROOT-SERVERS.NET.
+SECTION ADDITIONAL
+K.ROOT-SERVERS.NET. IN A 193.0.14.129
+ENTRY_END
+
+; query sent to root server
+STEP 40 CHECK_OUT_QUERY
+ENTRY_BEGIN
+MATCH qname qtype opcode
+SECTION QUESTION
+x.y.example.com. IN A
+ENTRY_END
+STEP 50 REPLY
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+x.y.example.com. IN A
+SECTION AUTHORITY
+com. IN NS a.gtld-servers.net.
+SECTION ADDITIONAL
+a.gtld-servers.net. IN A 192.5.6.30
+ENTRY_END
+
+; query sent to .com server
+STEP 60 CHECK_OUT_QUERY
+ENTRY_BEGIN
+MATCH qname qtype opcode
+SECTION QUESTION
+x.y.example.com. IN A
+ENTRY_END
+
+STEP 70 REPLY
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+x.y.example.com. IN A
+SECTION AUTHORITY
+example.com. IN NS ns1.example.com.
+SECTION ADDITIONAL
+ns1.example.com. IN A 168.192.2.2
+ENTRY_END
+
+STEP 80 CHECK_OUT_QUERY
+ENTRY_BEGIN
+MATCH qname qtype opcode
+SECTION QUESTION
+x.y.example.com. IN A
+ENTRY_END
+
+STEP 90 REPLY
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+x.y.example.com. IN A
+SECTION ANSWER
+com. DNAME z.example.com.
+SECTION AUTHORITY
+example.com. IN NS ns1.example.com.
+SECTION ADDITIONAL
+ns1.example.com. IN A 168.192.2.2
+ENTRY_END
+
+; answer to first query
+; nodata answer since the DNAME is ignored for synthesis and scrubbed
+; all together.
+STEP 120 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all ttl
+REPLY QR RD RA
+SECTION QUESTION
+x.y.example.com. IN A
+SECTION ANSWER
+SECTION AUTHORITY
+example.com. IN NS ns1.example.com.
+SECTION ADDITIONAL
+ns1.example.com. IN A 168.192.2.2
+ENTRY_END
+
+SCENARIO_END
diff --git a/testdata/iter_scrub_promiscuous.rpl b/testdata/iter_scrub_promiscuous.rpl
index febbee81ce4e..e380277fd4f5 100644
--- a/testdata/iter_scrub_promiscuous.rpl
+++ b/testdata/iter_scrub_promiscuous.rpl
@@ -204,6 +204,25 @@ RANGE_END
; ns.pollute4.mesa
RANGE_BEGIN 0 400
ADDRESS 1.2.4.4
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+ns.pollute4.mesa. IN A
+SECTION ANSWER
+ns.pollute4.mesa. IN A 1.2.4.4
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+ns.pollute4.mesa. IN AAAA
+SECTION AUTHORITY
+pollute4.mesa. IN SOA ns.pollute4.mesa. host.pollute4.mesa 20701 3600 3600 604800 3600
+ENTRY_END
; This is the spoofed answer that is returned.
ENTRY_BEGIN
@@ -423,14 +442,18 @@ ENTRY_END
STEP 130 CHECK_ANSWER
ENTRY_BEGIN
MATCH all
-REPLY QR RD RA YXDOMAIN
+REPLY QR RD RA SERVFAIL
SECTION QUESTION
test4.atkr.pollute4.mesa. IN A
-SECTION ANSWER
-test4.atkr.pollute4.mesa. 86400 IN A 1.2.3.4
-SECTION AUTHORITY
-; removed record
-;pollute4.mesa. 0 IN NS ns.attacker.mesa.
+; Since the reply does not contain a DNAME, it is rejected as YXDOMAIN answer.
+;REPLY QR RD RA YXDOMAIN
+;SECTION QUESTION
+;test4.atkr.pollute4.mesa. IN A
+;SECTION ANSWER
+;test4.atkr.pollute4.mesa. 86400 IN A 1.2.3.4
+;SECTION AUTHORITY
+;; removed record
+;;pollute4.mesa. 0 IN NS ns.attacker.mesa.
ENTRY_END
; Check the cache contents, for query 4.
diff --git a/testdata/iter_svcb_malformed.rpl b/testdata/iter_svcb_malformed.rpl
new file mode 100644
index 000000000000..8ac31fd2d403
--- /dev/null
+++ b/testdata/iter_svcb_malformed.rpl
@@ -0,0 +1,200 @@
+; config options
+server:
+ target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
+ minimal-responses: no
+ iter-scrub-promiscuous: no
+
+stub-zone:
+ name: "."
+ stub-addr: 193.0.14.129 # K.ROOT-SERVERS.NET.
+CONFIG_END
+
+SCENARIO_BEGIN Test lookup of malformed SVCB
+
+; K.ROOT-SERVERS.NET.
+RANGE_BEGIN 0 100
+ ADDRESS 193.0.14.129
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+. IN NS
+SECTION ANSWER
+. IN NS K.ROOT-SERVERS.NET.
+SECTION ADDITIONAL
+K.ROOT-SERVERS.NET. IN A 193.0.14.129
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode subdomain
+ADJUST copy_id copy_query
+REPLY QR NOERROR
+SECTION QUESTION
+com. IN NS
+SECTION AUTHORITY
+com. IN NS a.gtld-servers.net.
+SECTION ADDITIONAL
+a.gtld-servers.net. IN A 192.5.6.30
+ENTRY_END
+RANGE_END
+
+; a.gtld-servers.net.
+RANGE_BEGIN 0 100
+ ADDRESS 192.5.6.30
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+com. IN NS
+SECTION ANSWER
+com. IN NS a.gtld-servers.net.
+SECTION ADDITIONAL
+a.gtld-servers.net. IN A 192.5.6.30
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode subdomain
+ADJUST copy_id copy_query
+REPLY QR NOERROR
+SECTION QUESTION
+example.com. IN NS
+SECTION AUTHORITY
+example.com. IN NS ns.example.com.
+SECTION ADDITIONAL
+ns.example.com. IN A 1.2.3.4
+ENTRY_END
+RANGE_END
+
+; ns.example.com.
+RANGE_BEGIN 0 100
+ ADDRESS 1.2.3.4
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+example.com. IN NS
+SECTION ANSWER
+example.com. IN NS ns.example.com.
+SECTION ADDITIONAL
+ns.example.com. IN A 1.2.3.4
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+www.example.com. IN HTTPS
+SECTION ANSWER
+www.example.com. IN HTTPS \# 17 00 01 00 00 01 00 03 02 68 32 00 01 00 03 02 68 33
+; Duplicate `alpn` key (17 bytes)
+; Decoded:
+; SvcPriority = 1 (service mode)
+; TargetName = . (root label, 0x00)
+; SvcParam[0]: key=1 (alpn), value_len=3, value=\x02h2 ← "h2"
+; SvcParam[1]: key=1 (alpn), value_len=3, value=\x02h3 ← DUPLICATE KEY
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+testb.example.com. IN HTTPS
+SECTION ANSWER
+; The parser for testbound does allow this.
+;testb.example.com. IN HTTPS \# 9 00 01 00 00 01 00 04 02 68
+; Truncated `alpn` value (9 bytes)
+; Decoded:
+; SvcPriority = 1
+; TargetName = .
+; SvcParam[0]: key=1 (alpn), value_len=4 (claims 4 bytes), value=\x02h (only 2 bytes present)
+; placeholder for hex: testb.example.com. IN HTTPS \# 9 00 01 00 00 01 00 02 01 68
+HEX_ANSWER_BEGIN
+000084000001000100000000057465737462076578616D706C6503636F6D0000410001057465737462076578616D706C6503636F6D000041000100000E10
+0009
+0001
+00
+000100040268
+HEX_ANSWER_END
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+testc.example.com. IN HTTPS
+SECTION ANSWER
+testc.example.com. IN HTTPS \# 21 00 01 00 00 01 00 06 02 68 32 02 68 33 00 04 00 04 01 02 03 04
+; valid HTTPS RDATA
+; SvcPriority=1, TargetName=., alpn=h2+h3, ipv4hint=1.2.3.4
+ENTRY_END
+RANGE_END
+
+STEP 1 QUERY
+ENTRY_BEGIN
+REPLY RD
+SECTION QUESTION
+www.example.com. IN HTTPS
+ENTRY_END
+
+; recursion happens here.
+STEP 10 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all
+REPLY QR RD RA NOERROR
+SECTION QUESTION
+www.example.com. IN HTTPS
+SECTION ANSWER
+www.example.com. 0 IN HTTPS 1 . alpn="h2" alpn="h3"
+ENTRY_END
+
+STEP 20 QUERY
+ENTRY_BEGIN
+REPLY RD
+SECTION QUESTION
+testb.example.com. IN HTTPS
+ENTRY_END
+
+; recursion happens here.
+STEP 30 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH rcode
+REPLY QR RD RA NOERROR
+SECTION QUESTION
+testb.example.com. IN HTTPS
+SECTION ANSWER
+; testb.example.com. 0 IN HTTPS \# 9 000100000100040268
+HEX_ANSWER_BEGIN
+000084000001000100000000057465737462076578616D706C6503636F6D0000410001057465737462076578616D706C6503636F6D000041000100000E10
+0009
+0001
+00
+000100040268
+HEX_ANSWER_END
+ENTRY_END
+
+STEP 40 QUERY
+ENTRY_BEGIN
+REPLY RD
+SECTION QUESTION
+testc.example.com. IN HTTPS
+ENTRY_END
+
+; recursion happens here.
+STEP 50 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all
+REPLY QR RD RA NOERROR
+SECTION QUESTION
+testc.example.com. IN HTTPS
+SECTION ANSWER
+testc.example.com. 0 IN HTTPS 1 . alpn="h2,h3" ipv4hint=1.2.3.4
+ENTRY_END
+
+SCENARIO_END
diff --git a/testdata/long_qname.rpl b/testdata/long_qname.rpl
new file mode 100644
index 000000000000..af4b52165096
--- /dev/null
+++ b/testdata/long_qname.rpl
@@ -0,0 +1,73 @@
+; config options
+server:
+ target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: "no"
+ minimal-responses: no
+ iter-scrub-promiscuous: no
+
+stub-zone:
+ name: "."
+ stub-addr: 1.2.3.4
+CONFIG_END
+
+SCENARIO_BEGIN Test long query name.
+
+RANGE_BEGIN 0 100
+ ADDRESS 1.2.3.4
+ENTRY_BEGIN
+MATCH opcode qname qtype
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+. IN NS
+SECTION ANSWER
+. IN NS ns.root.
+SECTION ADDITIONAL
+ns.root. IN A 1.2.3.4
+ENTRY_END
+
+ENTRY_BEGIN
+; matched anything
+MATCH opcode
+ADJUST copy_id copy_query
+REPLY QR AA NXDOMAIN
+SECTION QUESTION
+www.example.com. IN A
+SECTION AUTHORITY
+. SOA ns.root. host.invalid. 1 2 3 4 5
+ENTRY_END
+RANGE_END
+
+STEP 10 QUERY
+ENTRY_BEGIN
+REPLY RD
+SECTION QUESTION
+www.example.com. IN A
+HEX_ANSWER_BEGIN
+00 00 01 00 ; RD
+00 01 00 00 00 00 00 00 ; QDCOUNT=1, ANCOUNT=0, NSCOUNT=0, ARCOUNT=0.
+; www.example.com.
+;03 77 77 77
+;07 65 78 61 6d 70 6c 65
+;03 63 6f 6d
+;00
+;
+; a.ab.a.ab.a.ab.a.ab.a.ab.a.ab.a.ab.a.ab.a.ab.a.ab.a.ab.a.ab.a.ab.a.ab.a.ab.a.ab.a.ab.a.ab.a.ab.a.ab.a.ab.a.ab.a.ab.a.ab.a.ab.a.ab.a.ab.a.ab.a.ab.a.ab.a.ab.a.ab.a.ab.a.ab.a.ab.a.ab.a.ab.a.ab.a.ab.a.ab.a.ab.a.ab.a.ab.a.ab.a.ab.a.ab.a.ab.a.ab.a.ab.a.ab.example.com.
+01 61 02 61 62 01 61 02 61 62 01 61 02 61 62 01 61 02 61 62 01 61 02 61 62 01 61 02 61 62 01 61 02 61 62 01 61 02 61 62 01 61 02 61 62 01 61 02 61 62 01 61 02 61 62 01 61 02 61 62 01 61 02 61 62 01 61 02 61 62 01 61 02 61 62 01 61 02 61 62 01 61 02 61 62 01 61 02 61 62 01 61 02 61 62 01 61 02 61 62 01 61 02 61 62 01 61 02 61 62 01 61 02 61 62 01 61 02 61 62 01 61 02 61 62 01 61 02 61 62 01 61 02 61 62 01 61 02 61 62 01 61 02 61 62 01 61 02 61 62 01 61 02 61 62 01 61 02 61 62 01 61 02 61 62 01 61 02 61 62 01 61 02 61 62 01 61 02 61 62 01 61 02 61 62 01 61 02 61 62 01 61 02 61 62 01 61 02 61 62 01 61 02 61 62 01 61 02 61 62 01 61 02 61 62 01 61 02 61 62 01 61 02 61 62 01 61 02 61 62 01 61 02 61 62 01 61 02 61 62 01 61 02 61 62 01 61 02 61 62
+07 65 78 61 6d 70 6c 65
+03 63 6f 6d
+00
+00 01 00 01
+HEX_ANSWER_END
+ENTRY_END
+
+; recursion happens here.
+STEP 20 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all
+REPLY QR RD FORMERR
+SECTION QUESTION
+SECTION ANSWER
+ENTRY_END
+
+SCENARIO_END
diff --git a/testdata/refuse_xfr.rpl b/testdata/refuse_xfr.rpl
index 0285d2a4b91b..00a5f7403f38 100644
--- a/testdata/refuse_xfr.rpl
+++ b/testdata/refuse_xfr.rpl
@@ -28,10 +28,11 @@ STEP 4 CHECK_ANSWER
ENTRY_BEGIN
MATCH all
REPLY QR FORMERR
-SECTION QUESTION
-nlnetlabs.nl. IN IXFR
-SECTION AUTHORITY
-nlnetlabs.nl. IN SOA mr. op. 12 0 0 0 0
+; The SOA RR should not be echoed back.
+; The question section is absent, because it gives a formerr because of the
+; authority section contents.
+;SECTION QUESTION
+;nlnetlabs.nl. IN IXFR
ENTRY_END
SCENARIO_END
diff --git a/testdata/respip_dns64_lookup.rpl b/testdata/respip_dns64_lookup.rpl
new file mode 100644
index 000000000000..df6e56121c58
--- /dev/null
+++ b/testdata/respip_dns64_lookup.rpl
@@ -0,0 +1,522 @@
+; config options
+server:
+ target-fetch-policy: "0 0 0 0 0"
+ qname-minimisation: no
+ minimal-responses: yes
+ ; respip is before dns64 in the module list.
+ module-config: "respip dns64 validator iterator"
+ dns64-prefix: 64:ff9b::0/96
+ response-ip: 10.20.30.42/32 always_refuse
+ response-ip: 10.20.30.43/32 redirect
+ response-ip-data: 10.20.30.43/32 "A 4.5.6.3"
+ response-ip: 5.6.7.9/32 redirect
+ response-ip-data: 5.6.7.9/32 "A 4.5.6.7"
+ response-ip: 5.6.7.10/32 always_nxdomain
+ response-ip: 64:ff9b::506:70B/128 redirect
+ response-ip-data: 64:ff9b::506:70B/128 "AAAA 2001:db8::4"
+
+rpz:
+ name: "rpz.example.com."
+ rpz-log: yes
+ zonefile:
+TEMPFILE_NAME rpz.example.com
+TEMPFILE_CONTENTS rpz.example.com
+$ORIGIN example.com.
+rpz 3600 IN SOA ns1.rpz.example.com. hostmaster.rpz.example.com. (
+ 1379078166 28800 7200 604800 7200 )
+ 3600 IN NS ns1.rpz.example.com.
+ 3600 IN NS ns2.rpz.example.com.
+$ORIGIN rpz.example.com.
+32.44.30.20.10.rpz-ip CNAME .
+32.12.7.6.5.rpz-ip CNAME .
+32.13.7.6.5.rpz-ip A 4.5.6.13
+32.14.7.6.5.rpz-ip CNAME alias.example.com.
+TEMPFILE_END
+
+stub-zone:
+ name: "."
+ stub-addr: 193.0.14.129 # K.ROOT-SERVERS.NET.
+CONFIG_END
+
+SCENARIO_BEGIN Test respip and dns64 lookup.
+
+; K.ROOT-SERVERS.NET.
+RANGE_BEGIN 0 1000
+ ADDRESS 193.0.14.129
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+. IN NS
+SECTION ANSWER
+. IN NS K.ROOT-SERVERS.NET.
+SECTION ADDITIONAL
+K.ROOT-SERVERS.NET. IN A 193.0.14.129
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode subdomain
+ADJUST copy_id copy_query
+REPLY QR NOERROR
+SECTION QUESTION
+com. IN NS
+SECTION AUTHORITY
+com. IN NS a.gtld-servers.net.
+SECTION ADDITIONAL
+a.gtld-servers.net. IN A 192.5.6.30
+ENTRY_END
+RANGE_END
+
+; a.gtld-servers.net.
+RANGE_BEGIN 0 1000
+ ADDRESS 192.5.6.30
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+com. IN NS
+SECTION ANSWER
+com. IN NS a.gtld-servers.net.
+SECTION ADDITIONAL
+a.gtld-servers.net. IN A 192.5.6.30
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode subdomain
+ADJUST copy_id copy_query
+REPLY QR NOERROR
+SECTION QUESTION
+example.com. IN NS
+SECTION AUTHORITY
+example.com. IN NS ns.example.com.
+SECTION ADDITIONAL
+ns.example.com. IN A 1.2.3.4
+ENTRY_END
+RANGE_END
+
+; ns.example.com.
+RANGE_BEGIN 0 1000
+ ADDRESS 1.2.3.4
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+example.com. IN NS
+SECTION ANSWER
+example.com. IN NS ns.example.com.
+SECTION ADDITIONAL
+ns.example.com. IN A 1.2.3.4
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+www.example.com. IN A
+SECTION ANSWER
+www.example.com. IN A 10.20.30.40
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+www2.example.com. IN A
+SECTION ANSWER
+www2.example.com. IN A 10.20.30.42
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+www3.example.com. IN A
+SECTION ANSWER
+www3.example.com. IN A 10.20.30.43
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+www4.example.com. IN A
+SECTION ANSWER
+www4.example.com. IN A 10.20.30.44
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+ip4.example.com. IN AAAA
+SECTION ANSWER
+; NO AAAA present
+SECTION AUTHORITY
+example.com. IN SOA a. b. 1 2 3 4 5
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+ip4.example.com. IN A
+SECTION ANSWER
+ip4.example.com. IN A 5.6.7.8
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+ip4-2.example.com. IN AAAA
+SECTION ANSWER
+; NO AAAA present
+SECTION AUTHORITY
+example.com. IN SOA a. b. 1 2 3 4 5
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+ip4-2.example.com. IN A
+SECTION ANSWER
+ip4-2.example.com. IN A 5.6.7.9
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+ip4-3.example.com. IN AAAA
+SECTION ANSWER
+; NO AAAA present
+SECTION AUTHORITY
+example.com. IN SOA a. b. 1 2 3 4 5
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+ip4-3.example.com. IN A
+SECTION ANSWER
+ip4-3.example.com. IN A 5.6.7.10
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+ip4-4.example.com. IN AAAA
+SECTION ANSWER
+; NO AAAA present
+SECTION AUTHORITY
+example.com. IN SOA a. b. 1 2 3 4 5
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+ip4-4.example.com. IN A
+SECTION ANSWER
+ip4-4.example.com. IN A 5.6.7.11
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+ip4-5.example.com. IN AAAA
+SECTION ANSWER
+; NO AAAA present
+SECTION AUTHORITY
+example.com. IN SOA a. b. 1 2 3 4 5
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+ip4-5.example.com. IN A
+SECTION ANSWER
+ip4-5.example.com. IN A 5.6.7.12
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+ip4-6.example.com. IN AAAA
+SECTION ANSWER
+; NO AAAA present
+SECTION AUTHORITY
+example.com. IN SOA a. b. 1 2 3 4 5
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+ip4-6.example.com. IN A
+SECTION ANSWER
+ip4-6.example.com. IN A 5.6.7.13
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+ip4-7.example.com. IN AAAA
+SECTION ANSWER
+; NO AAAA present
+SECTION AUTHORITY
+example.com. IN SOA a. b. 1 2 3 4 5
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+ip4-7.example.com. IN A
+SECTION ANSWER
+ip4-7.example.com. IN A 5.6.7.14
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+alias.example.com. IN A
+SECTION ANSWER
+alias.example.com. IN A 4.5.6.14
+ENTRY_END
+RANGE_END
+
+STEP 1 QUERY
+ENTRY_BEGIN
+REPLY RD
+SECTION QUESTION
+www.example.com. IN A
+ENTRY_END
+
+; The query is unaltered.
+STEP 10 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all
+REPLY QR RD RA NOERROR
+SECTION QUESTION
+www.example.com. IN A
+SECTION ANSWER
+www.example.com. IN A 10.20.30.40
+ENTRY_END
+
+STEP 20 QUERY
+ENTRY_BEGIN
+REPLY RD
+SECTION QUESTION
+www2.example.com. IN A
+ENTRY_END
+
+; The query is altered by respip, A query refused.
+STEP 30 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all
+REPLY QR RD RA REFUSED
+SECTION QUESTION
+www2.example.com. IN A
+SECTION ANSWER
+ENTRY_END
+
+STEP 40 QUERY
+ENTRY_BEGIN
+REPLY RD
+SECTION QUESTION
+www3.example.com. IN A
+ENTRY_END
+
+; The query is altered by respip, with redirect.
+STEP 50 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all
+REPLY QR RD RA NOERROR
+SECTION QUESTION
+www3.example.com. IN A
+SECTION ANSWER
+www3.example.com. IN A 4.5.6.3
+ENTRY_END
+
+STEP 60 QUERY
+ENTRY_BEGIN
+REPLY RD
+SECTION QUESTION
+ip4.example.com. IN AAAA
+ENTRY_END
+
+; synthesize from A record 5.6.7.8 with DNS64.
+STEP 70 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all
+REPLY QR RD RA NOERROR
+SECTION QUESTION
+ip4.example.com. IN AAAA
+SECTION ANSWER
+ip4.example.com. IN AAAA 64:ff9b::506:708
+ENTRY_END
+
+STEP 80 QUERY
+ENTRY_BEGIN
+REPLY RD
+SECTION QUESTION
+ip4-2.example.com. IN AAAA
+ENTRY_END
+
+; The dns64 subquery is altered by respip, with redirect.
+; and the respip result is dns64 synthesized.
+STEP 90 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all
+REPLY QR RD RA NOERROR
+SECTION QUESTION
+ip4-2.example.com. IN AAAA
+SECTION ANSWER
+ip4-2.example.com. IN AAAA 64:ff9b::405:607
+ENTRY_END
+
+STEP 100 QUERY
+ENTRY_BEGIN
+REPLY RD
+SECTION QUESTION
+ip4-3.example.com. IN AAAA
+ENTRY_END
+
+; The dns64 subquery is altered by respip, with nxdomain.
+; and the respip result is dns64 synthesized.
+STEP 110 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all
+REPLY QR RD RA NOERROR
+SECTION QUESTION
+ip4-3.example.com. IN AAAA
+SECTION ANSWER
+SECTION AUTHORITY
+example.com. IN SOA a. b. 1 2 3 4 5
+ENTRY_END
+
+STEP 120 QUERY
+ENTRY_BEGIN
+REPLY RD
+SECTION QUESTION
+ip4-4.example.com. IN AAAA
+ENTRY_END
+
+; The dns64 subquery is synthesized, respip operates on the
+; synthesized AAAA result, and makes a redirect.
+STEP 130 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all
+REPLY QR RD RA NOERROR
+SECTION QUESTION
+ip4-4.example.com. IN AAAA
+SECTION ANSWER
+ip4-4.example.com. IN AAAA 2001:db8::4
+ENTRY_END
+
+STEP 140 QUERY
+ENTRY_BEGIN
+REPLY RD
+SECTION QUESTION
+www4.example.com. IN A
+ENTRY_END
+
+; The query is blocked by rpz.
+STEP 150 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all
+REPLY QR RD RA NXDOMAIN
+SECTION QUESTION
+www4.example.com. IN A
+SECTION ANSWER
+ENTRY_END
+
+STEP 160 QUERY
+ENTRY_BEGIN
+REPLY RD
+SECTION QUESTION
+ip4-5.example.com. IN AAAA
+ENTRY_END
+
+; The dns64 subquery is blocked by RPZ.
+STEP 170 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all
+REPLY QR RD RA NOERROR
+SECTION QUESTION
+ip4-5.example.com. IN AAAA
+SECTION ANSWER
+SECTION AUTHORITY
+example.com. IN SOA a. b. 1 2 3 4 5
+ENTRY_END
+
+STEP 180 QUERY
+ENTRY_BEGIN
+REPLY RD
+SECTION QUESTION
+ip4-6.example.com. IN AAAA
+ENTRY_END
+
+; The dns64 subquery is redirected by RPZ.
+STEP 190 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all
+REPLY QR RD RA NOERROR
+SECTION QUESTION
+ip4-6.example.com. IN AAAA
+SECTION ANSWER
+ip4-6.example.com. AAAA 64:ff9b::405:60d
+ENTRY_END
+
+STEP 200 QUERY
+ENTRY_BEGIN
+REPLY RD
+SECTION QUESTION
+ip4-7.example.com. IN AAAA
+ENTRY_END
+
+; The dns64 subquery is a CNAME by RPZ.
+; that CNAME resolves to an A record, dns64 synthesizes that A record.
+STEP 210 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all
+REPLY QR RD RA NOERROR
+SECTION QUESTION
+ip4-7.example.com. IN AAAA
+SECTION ANSWER
+ip4-7.example.com. CNAME alias.example.com.
+alias.example.com. AAAA 64:ff9b::405:60e
+ENTRY_END
+
+SCENARIO_END
diff --git a/testdata/rrset_use_cached.rpl b/testdata/rrset_use_cached.rpl
index 17696f600fda..3fa1a955415e 100644
--- a/testdata/rrset_use_cached.rpl
+++ b/testdata/rrset_use_cached.rpl
@@ -6,8 +6,11 @@ server:
# We do not want only serve-expired because fetches from that
# apply a generous PREFETCH_LEEWAY.
serve-expired-client-timeout: 1000
+ serve-expired-reply-ttl: 123
# So that we can only have to give one SERVFAIL answer.
outbound-msg-retry: 0
+ ede: yes
+ ede-serve-expired: yes
forward-zone: name: "." forward-addr: 216.0.0.1
CONFIG_END
@@ -36,11 +39,11 @@ ENTRY_BEGIN
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
- www.example.com. 5 IN A 10.20.30.40
+ www.example.com. 205 IN A 10.20.30.40
SECTION AUTHORITY
- example.com. 10 IN NS ns.example.com.
+ example.com. 210 IN NS ns.example.com.
SECTION ADDITIONAL
- ns.example.com. 10 IN A 10.20.30.50
+ ns.example.com. 210 IN A 10.20.30.50
ENTRY_END
STEP 4 CHECK_ANSWER
ENTRY_BEGIN
@@ -49,15 +52,15 @@ ENTRY_BEGIN
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
- www.example.com. 5 IN A 10.20.30.40
+ www.example.com. 205 IN A 10.20.30.40
SECTION AUTHORITY
- example.com. 10 IN NS ns.example.com.
+ example.com. 210 IN NS ns.example.com.
SECTION ADDITIONAL
- ns.example.com. 10 IN A 10.20.30.50
+ ns.example.com. 210 IN A 10.20.30.50
ENTRY_END
; Wait for the A RRSET to expire.
-STEP 5 TIME_PASSES ELAPSE 6
+STEP 5 TIME_PASSES ELAPSE 205
STEP 6 QUERY
ENTRY_BEGIN
@@ -81,14 +84,14 @@ ENTRY_BEGIN
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
- www.example.com. 5 IN A 10.20.30.40
+ www.example.com. 205 IN A 10.20.30.40
SECTION AUTHORITY
- example.com. 10 IN NS ns.example.com.
+ example.com. 210 IN NS ns.example.com.
SECTION ADDITIONAL
- ns.example.com. 10 IN A 10.20.30.50
+ ns.example.com. 210 IN A 10.20.30.50
ENTRY_END
; The cached NS related RRSETs will not be overwritten by the fresh answer.
-; The message should have a TTL of 4 instead of 5 from above.
+; The message should have a TTL of 5 instead of 205 from above.
STEP 9 CHECK_ANSWER
ENTRY_BEGIN
MATCH all ttl
@@ -96,11 +99,11 @@ ENTRY_BEGIN
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
- www.example.com. 5 IN A 10.20.30.40
+ www.example.com. 205 IN A 10.20.30.40
SECTION AUTHORITY
- example.com. 4 IN NS ns.example.com.
+ example.com. 5 IN NS ns.example.com.
SECTION ADDITIONAL
- ns.example.com. 4 IN A 10.20.30.50
+ ns.example.com. 5 IN A 10.20.30.50
ENTRY_END
; Wait for the NS RRSETs to expire.
@@ -108,7 +111,7 @@ STEP 10 TIME_PASSES ELAPSE 5
STEP 11 QUERY
ENTRY_BEGIN
- REPLY RD
+ REPLY RD DO
SECTION QUESTION
www.example.com. IN A
ENTRY_END
@@ -130,23 +133,23 @@ ENTRY_BEGIN
ENTRY_END
; The SERVFAIL will trigger the serve-expired-client-timeout logic to try and
; replace the SERVFAIL with a possible cached (expired) answer.
-; The A RRSET would be at 0TTL left (not expired) but the message should have
-; been updated to use a TTL of 4 so expired by now.
+; The A RRSET would be at 200 left but the message should have
+; been updated to use a TTL of 5 so expired by now.
; If the message TTL was not updated (bug), this message would be treated as
; non-expired and the now expired NS related RRSETs would fail sanity checks
; for non-expired messages. The result would be SERVFAIL here.
STEP 14 CHECK_ANSWER
ENTRY_BEGIN
- MATCH all ttl
- REPLY QR RD RA
+ MATCH all ttl ede=3
+ REPLY QR RD RA DO
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
- www.example.com. 0 IN A 10.20.30.40
+ www.example.com. 200 IN A 10.20.30.40
SECTION AUTHORITY
- example.com. 30 IN NS ns.example.com.
+ example.com. 123 IN NS ns.example.com.
SECTION ADDITIONAL
- ns.example.com. 30 IN A 10.20.30.50
+ ns.example.com. 123 IN A 10.20.30.50
ENTRY_END
SCENARIO_END
diff --git a/testdata/serve_expired.rpl b/testdata/serve_expired.rpl
index 573e18bcf320..2fd7459c1d49 100644
--- a/testdata/serve_expired.rpl
+++ b/testdata/serve_expired.rpl
@@ -6,6 +6,7 @@ server:
iter-scrub-promiscuous: no
serve-expired: yes
serve-expired-client-timeout: 0
+ serve-expired-reply-ttl: 123
access-control: 127.0.0.1/32 allow_snoop
ede: yes
ede-serve-expired: yes
@@ -45,7 +46,7 @@ RANGE_BEGIN 0 100
SECTION QUESTION
example.com. IN A
SECTION ANSWER
- example.com. 10 IN A 5.6.7.8
+ example.com. 200 IN A 5.6.7.8
SECTION AUTHORITY
example.com. IN NS ns.example.com.
SECTION ADDITIONAL
@@ -69,15 +70,15 @@ ENTRY_BEGIN
SECTION QUESTION
example.com. IN A
SECTION ANSWER
- example.com. 10 IN A 5.6.7.8
+ example.com. 200 IN A 5.6.7.8
SECTION AUTHORITY
example.com. IN NS ns.example.com.
SECTION ADDITIONAL
ns.example.com. IN A 1.2.3.4
ENTRY_END
-; Wait for the TTL to expire
-STEP 11 TIME_PASSES ELAPSE 3601
+; Wait for the TTL to expire (for all RRSets; default 3600)
+STEP 11 TIME_PASSES ELAPSE 3600
; Query again without RD bit
STEP 30 QUERY
@@ -95,11 +96,11 @@ ENTRY_BEGIN
SECTION QUESTION
example.com. IN A
SECTION ANSWER
- example.com. 30 IN A 5.6.7.8
+ example.com. 123 IN A 5.6.7.8
SECTION AUTHORITY
- example.com. 30 IN NS ns.example.com.
+ example.com. 123 IN NS ns.example.com.
SECTION ADDITIONAL
- ns.example.com. 30 IN A 1.2.3.4
+ ns.example.com. 123 IN A 1.2.3.4
ENTRY_END
; Query with RD bit (the record should have been prefetched)
@@ -117,7 +118,7 @@ ENTRY_BEGIN
SECTION QUESTION
example.com. IN A
SECTION ANSWER
- example.com. 10 IN A 5.6.7.8
+ example.com. 200 IN A 5.6.7.8
SECTION AUTHORITY
example.com. IN NS ns.example.com.
SECTION ADDITIONAL
diff --git a/testdata/serve_expired_0ttl_nodata.rpl b/testdata/serve_expired_0ttl_nodata.rpl
index 4d483534d6b3..6c2f6c92f0f5 100644
--- a/testdata/serve_expired_0ttl_nodata.rpl
+++ b/testdata/serve_expired_0ttl_nodata.rpl
@@ -6,6 +6,7 @@ server:
iter-scrub-promiscuous: no
serve-expired: yes
serve-expired-client-timeout: 0
+ serve-expired-reply-ttl: 123
ede: yes
ede-serve-expired: yes
@@ -49,9 +50,9 @@ RANGE_BEGIN 30 100
SECTION QUESTION
example.com. IN NS
SECTION ANSWER
- example.com. 10 IN NS ns.example.com.
+ example.com. 200 IN NS ns.example.com.
SECTION ADDITIONAL
- ns.example.com. 10 IN A 1.2.3.4
+ ns.example.com. 200 IN A 1.2.3.4
ENTRY_END
ENTRY_BEGIN
@@ -63,9 +64,9 @@ RANGE_BEGIN 30 100
SECTION ANSWER
0ttl.example.com. 0 IN A 5.6.7.8
SECTION AUTHORITY
- example.com. 10 IN NS ns.example.com.
+ example.com. 200 IN NS ns.example.com.
SECTION ADDITIONAL
- ns.example.com. 10 IN A 1.2.3.4
+ ns.example.com. 200 IN A 1.2.3.4
ENTRY_END
RANGE_END
@@ -107,13 +108,13 @@ ENTRY_BEGIN
example.com IN SOA ns.example.com dns.example.com 1 7200 3600 2419200 10
ENTRY_END
-; Wait for the NXDOMAIN to expire
-STEP 31 TIME_PASSES ELAPSE 32
+; Wait for the NODATA to expire
+STEP 31 TIME_PASSES ELAPSE 10
; Query again
STEP 40 QUERY
ENTRY_BEGIN
- REPLY RD
+ REPLY RD DO
SECTION QUESTION
0ttl.example.com. IN A
ENTRY_END
@@ -121,8 +122,8 @@ ENTRY_END
; Check that we get the cached NODATA
STEP 50 CHECK_ANSWER
ENTRY_BEGIN
- MATCH all
- REPLY QR RD RA NOERROR
+ MATCH all ede=3
+ REPLY QR RD RA DO NOERROR
SECTION QUESTION
0ttl.example.com. IN A
SECTION AUTHORITY
@@ -147,9 +148,9 @@ ENTRY_BEGIN
SECTION ANSWER
0ttl.example.com. 0 IN A 5.6.7.8
SECTION AUTHORITY
- example.com. 10 IN NS ns.example.com.
+ example.com. 200 IN NS ns.example.com.
SECTION ADDITIONAL
- ns.example.com. 10 IN A 1.2.3.4
+ ns.example.com. 200 IN A 1.2.3.4
ENTRY_END
SCENARIO_END
diff --git a/testdata/serve_expired_0ttl_nxdomain.rpl b/testdata/serve_expired_0ttl_nxdomain.rpl
index e7774a4f4bfd..8029a06dcf04 100644
--- a/testdata/serve_expired_0ttl_nxdomain.rpl
+++ b/testdata/serve_expired_0ttl_nxdomain.rpl
@@ -108,7 +108,7 @@ ENTRY_BEGIN
ENTRY_END
; Wait for the NXDOMAIN to expire
-STEP 31 TIME_PASSES ELAPSE 32
+STEP 31 TIME_PASSES ELAPSE 10
; Query again
STEP 40 QUERY
@@ -118,7 +118,7 @@ ENTRY_BEGIN
0ttl.example.com. IN A
ENTRY_END
-; Check that we get the cached NXDOMAIN
+; Check that we get the newly cached NXDOMAIN
STEP 50 CHECK_ANSWER
ENTRY_BEGIN
MATCH all
diff --git a/testdata/serve_expired_0ttl_servfail.rpl b/testdata/serve_expired_0ttl_servfail.rpl
index 87c509bbb7b0..181f0b4a3287 100644
--- a/testdata/serve_expired_0ttl_servfail.rpl
+++ b/testdata/serve_expired_0ttl_servfail.rpl
@@ -102,7 +102,7 @@ ENTRY_BEGIN
ENTRY_END
; Wait for the SERVFAIL to expire
-STEP 31 TIME_PASSES ELAPSE 32
+STEP 31 TIME_PASSES ELAPSE 10
; Query again
STEP 40 QUERY
diff --git a/testdata/serve_expired_client_timeout.rpl b/testdata/serve_expired_client_timeout.rpl
index e40e1b4c3219..5d194ccdd73a 100644
--- a/testdata/serve_expired_client_timeout.rpl
+++ b/testdata/serve_expired_client_timeout.rpl
@@ -49,7 +49,7 @@ RANGE_BEGIN 0 20
SECTION QUESTION
example.com. IN A
SECTION ANSWER
- example.com. 10 IN A 5.6.7.8
+ example.com. 200 IN A 5.6.7.8
SECTION AUTHORITY
example.com. IN NS ns.example.com.
SECTION ADDITIONAL
@@ -73,7 +73,7 @@ ENTRY_BEGIN
SECTION QUESTION
example.com. IN A
SECTION ANSWER
- example.com. 10 IN A 5.6.7.8
+ example.com. 200 IN A 5.6.7.8
SECTION AUTHORITY
example.com. IN NS ns.example.com.
SECTION ADDITIONAL
diff --git a/testdata/serve_expired_client_timeout_no_prefetch.rpl b/testdata/serve_expired_client_timeout_no_prefetch.rpl
deleted file mode 100644
index 3a35c4629733..000000000000
--- a/testdata/serve_expired_client_timeout_no_prefetch.rpl
+++ /dev/null
@@ -1,111 +0,0 @@
-; config options
-server:
- module-config: "validator iterator"
- qname-minimisation: "no"
- minimal-responses: no
- iter-scrub-promiscuous: no
- serve-expired: yes
- serve-expired-client-timeout: 1
- serve-expired-reply-ttl: 123
- ede: yes
- ede-serve-expired: yes
-
-stub-zone:
- name: "example.com"
- stub-addr: 1.2.3.4
-CONFIG_END
-
-SCENARIO_BEGIN Test that no prefetch is triggered for 0TTL records with serve-expired and client-timeout enabled
-; Scenario overview:
-; - query for example.com. IN A
-; - check that we get an answer for example.com. IN A with the correct TTL
-; - query again right at the 0TTL cached entry
-; - check that we get the cached answer with no prefetching triggered
-
-; ns.example.com.
-RANGE_BEGIN 0 100
- ADDRESS 1.2.3.4
- ENTRY_BEGIN
- MATCH opcode qtype qname
- ADJUST copy_id
- REPLY QR NOERROR
- SECTION QUESTION
- example.com. IN NS
- SECTION ANSWER
- example.com. IN NS ns.example.com.
- SECTION ADDITIONAL
- ns.example.com. IN A 1.2.3.4
- ENTRY_END
-RANGE_END
-
-; ns.example.com.
-RANGE_BEGIN 0 10
- ADDRESS 1.2.3.4
- ; response to A query
- ENTRY_BEGIN
- MATCH opcode qtype qname
- ADJUST copy_id
- REPLY QR NOERROR
- SECTION QUESTION
- example.com. IN A
- SECTION ANSWER
- example.com. 10 IN A 5.6.7.8
- SECTION AUTHORITY
- example.com. IN NS ns.example.com.
- SECTION ADDITIONAL
- ns.example.com. IN A 1.2.3.4
- ENTRY_END
-RANGE_END
-
-; Query with RD flag
-STEP 0 QUERY
-ENTRY_BEGIN
- REPLY RD
- SECTION QUESTION
- example.com. IN A
-ENTRY_END
-
-; Check that we got the correct answer (should be cached)
-STEP 1 CHECK_ANSWER
-ENTRY_BEGIN
- MATCH all ttl
- REPLY QR RD RA NOERROR
- SECTION QUESTION
- example.com. IN A
- SECTION ANSWER
- example.com. 10 IN A 5.6.7.8
- SECTION AUTHORITY
- example.com. IN NS ns.example.com.
- SECTION ADDITIONAL
- ns.example.com. IN A 1.2.3.4
-ENTRY_END
-
-; Wait for the TTL to expire and produce a 0 TTL cached record.
-STEP 10 TIME_PASSES ELAPSE 10
-
-; Query again
-STEP 20 QUERY
-ENTRY_BEGIN
- REPLY RD DO
- SECTION QUESTION
- example.com. IN A
-ENTRY_END
-
-; This should come from the cache with no prefetch triggered (earlier bug).
-STEP 21 CHECK_ANSWER
-ENTRY_BEGIN
- MATCH all ttl
- REPLY QR RD RA DO NOERROR
- SECTION QUESTION
- example.com. IN A
- SECTION ANSWER
- example.com. 0 IN A 5.6.7.8
- SECTION AUTHORITY
- example.com. 3590 IN NS ns.example.com.
- SECTION ADDITIONAL
- ns.example.com. 3590 IN A 1.2.3.4
-ENTRY_END
-
-; If a prefetch triggers the test will fail with 'messages pending'.
-
-SCENARIO_END
diff --git a/testdata/serve_expired_client_timeout_servfail.rpl b/testdata/serve_expired_client_timeout_servfail.rpl
index c8a91fed141e..8b77448aae56 100644
--- a/testdata/serve_expired_client_timeout_servfail.rpl
+++ b/testdata/serve_expired_client_timeout_servfail.rpl
@@ -41,9 +41,9 @@ RANGE_BEGIN 0 20
SECTION QUESTION
example.com. IN NS
SECTION ANSWER
- example.com. 10 IN NS ns.example.com.
+ example.com. 200 IN NS ns.example.com.
SECTION ADDITIONAL
- ns.example.com. 10 IN A 1.2.3.4
+ ns.example.com. 200 IN A 1.2.3.4
ENTRY_END
ENTRY_BEGIN
@@ -53,11 +53,11 @@ RANGE_BEGIN 0 20
SECTION QUESTION
example.com. IN A
SECTION ANSWER
- example.com. 10 IN A 5.6.7.8
+ example.com. 200 IN A 5.6.7.8
SECTION AUTHORITY
- example.com. 10 IN NS ns.example.com.
+ example.com. 200 IN NS ns.example.com.
SECTION ADDITIONAL
- ns.example.com. 10 IN A 1.2.3.4
+ ns.example.com. 200 IN A 1.2.3.4
ENTRY_END
RANGE_END
@@ -85,11 +85,11 @@ RANGE_BEGIN 50 100
SECTION QUESTION
example.com. IN A
SECTION ANSWER
- example.com. 10 IN A 5.6.7.8
+ example.com. 200 IN A 5.6.7.8
SECTION AUTHORITY
- example.com. 10 IN NS ns.example.com.
+ example.com. 200 IN NS ns.example.com.
SECTION ADDITIONAL
- ns.example.com. 10 IN A 1.2.3.4
+ ns.example.com. 200 IN A 1.2.3.4
ENTRY_END
RANGE_END
@@ -109,15 +109,15 @@ ENTRY_BEGIN
SECTION QUESTION
example.com. IN A
SECTION ANSWER
- example.com. 10 IN A 5.6.7.8
+ example.com. 200 IN A 5.6.7.8
SECTION AUTHORITY
- example.com. 10 IN NS ns.example.com.
+ example.com. 200 IN NS ns.example.com.
SECTION ADDITIONAL
- ns.example.com. 10 IN A 1.2.3.4
+ ns.example.com. 200 IN A 1.2.3.4
ENTRY_END
; Wait for the TTL to expire
-STEP 11 TIME_PASSES ELAPSE 11
+STEP 11 TIME_PASSES ELAPSE 200
; Query again
STEP 30 QUERY
@@ -210,11 +210,11 @@ ENTRY_BEGIN
SECTION QUESTION
example.com. IN A
SECTION ANSWER
- example.com. 10 IN A 5.6.7.8
+ example.com. 200 IN A 5.6.7.8
SECTION AUTHORITY
- example.com. 10 IN NS ns.example.com.
+ example.com. 200 IN NS ns.example.com.
SECTION ADDITIONAL
- ns.example.com. 10 IN A 1.2.3.4
+ ns.example.com. 200 IN A 1.2.3.4
ENTRY_END
SCENARIO_END
diff --git a/testdata/serve_expired_reply_ttl.rpl b/testdata/serve_expired_reply_ttl.rpl
index 06128a7369e7..0fe0eb3d3b47 100644
--- a/testdata/serve_expired_reply_ttl.rpl
+++ b/testdata/serve_expired_reply_ttl.rpl
@@ -19,8 +19,11 @@ SCENARIO_BEGIN Test serve-expired with reply-ttl
; Scenario overview:
; - query for example.com. IN A
; - check that we get an answer for example.com. IN A with the correct TTL
+; - query for shorterttl.example.com. IN A
+; - check that we get an answer for shorterttl.example.com. IN A with the correct TTL
; - query again right after the TTL expired
-; - check that we get the expired cached answer with the configured TTL
+; - check that we get the expired cached answer for example.com. with the configured TTL
+; - check that we get the expired cached answer for shorterttl.example.com. with its own original TTL since it is shorter than the configured one
; ns.example.com.
RANGE_BEGIN 0 100
@@ -44,7 +47,21 @@ RANGE_BEGIN 0 100
SECTION QUESTION
example.com. IN A
SECTION ANSWER
- example.com. 10 IN A 5.6.7.8
+ example.com. 200 IN A 5.6.7.8
+ SECTION AUTHORITY
+ example.com. IN NS ns.example.com.
+ SECTION ADDITIONAL
+ ns.example.com. IN A 1.2.3.4
+ ENTRY_END
+
+ ENTRY_BEGIN
+ MATCH opcode qtype qname
+ ADJUST copy_id
+ REPLY QR NOERROR
+ SECTION QUESTION
+ shorterttl.example.com. IN A
+ SECTION ANSWER
+ shorterttl.example.com. 121 IN A 5.6.7.8
SECTION AUTHORITY
example.com. IN NS ns.example.com.
SECTION ADDITIONAL
@@ -68,15 +85,37 @@ ENTRY_BEGIN
SECTION QUESTION
example.com. IN A
SECTION ANSWER
- example.com. 10 IN A 5.6.7.8
+ example.com. 200 IN A 5.6.7.8
+ SECTION AUTHORITY
+ example.com. IN NS ns.example.com.
+ SECTION ADDITIONAL
+ ns.example.com. IN A 1.2.3.4
+ENTRY_END
+
+STEP 11 QUERY
+ENTRY_BEGIN
+ REPLY RD
+ SECTION QUESTION
+ shorterttl.example.com. IN A
+ENTRY_END
+
+
+STEP 12 CHECK_ANSWER
+ENTRY_BEGIN
+ MATCH all ttl
+ REPLY QR RD RA NOERROR
+ SECTION QUESTION
+ shorterttl.example.com. IN A
+ SECTION ANSWER
+ shorterttl.example.com. 121 IN A 5.6.7.8
SECTION AUTHORITY
example.com. IN NS ns.example.com.
SECTION ADDITIONAL
ns.example.com. IN A 1.2.3.4
ENTRY_END
-; Wait for the TTL to expire
-STEP 11 TIME_PASSES ELAPSE 3601
+; Wait for the TTL to expire (for all rrsets; default 3600)
+STEP 20 TIME_PASSES ELAPSE 3600
; Query again
STEP 30 QUERY
@@ -101,7 +140,31 @@ ENTRY_BEGIN
ns.example.com. 123 A 1.2.3.4
ENTRY_END
+; Query again for shorter ttl
+STEP 50 QUERY
+ENTRY_BEGIN
+ REPLY RD DO
+ SECTION QUESTION
+ shorterttl.example.com. IN A
+ENTRY_END
+
+; Check that we got a stale answer
+; Note: auth, additional rrsets are already updated from previous recursion.
+STEP 60 CHECK_ANSWER
+ENTRY_BEGIN
+ MATCH all ttl ede=3
+ REPLY QR RD RA DO NOERROR
+ SECTION QUESTION
+ shorterttl.example.com. IN A
+ SECTION ANSWER
+ shorterttl.example.com. 121 A 5.6.7.8
+ SECTION AUTHORITY
+ example.com. 3600 NS ns.example.com.
+ SECTION ADDITIONAL
+ ns.example.com. 3600 A 1.2.3.4
+ENTRY_END
+
; Give time for the pending query to get answered
-STEP 41 TRAFFIC
+STEP 61 TRAFFIC
SCENARIO_END
diff --git a/testdata/serve_expired_ttl_client_timeout.rpl b/testdata/serve_expired_ttl_client_timeout.rpl
index f285790146ac..e893080cf376 100644
--- a/testdata/serve_expired_ttl_client_timeout.rpl
+++ b/testdata/serve_expired_ttl_client_timeout.rpl
@@ -79,7 +79,7 @@ ENTRY_BEGIN
ENTRY_END
; Wait for the TTL to expire + serve-expired-ttl
-STEP 11 TIME_PASSES ELAPSE 3611
+STEP 11 TIME_PASSES ELAPSE 3610
; Query again
STEP 30 QUERY
diff --git a/testdata/serve_expired_ttl_reset.rpl b/testdata/serve_expired_ttl_reset.rpl
index 9f215c96bcd1..f732fddcf2e6 100644
--- a/testdata/serve_expired_ttl_reset.rpl
+++ b/testdata/serve_expired_ttl_reset.rpl
@@ -36,7 +36,7 @@ REPLY QR AA NOERROR
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
-www.example.com. 10 IN A 0.0.0.0
+www.example.com. 200 IN A 0.0.0.0
ENTRY_END
STEP 3 CHECK_ANSWER
@@ -46,11 +46,11 @@ REPLY QR RA RD NOERROR
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
-www.example.com. 10 IN A 0.0.0.0
+www.example.com. 200 IN A 0.0.0.0
ENTRY_END
; Expire the record (+ serve-expired-ttl)
-STEP 4 TIME_PASSES ELAPSE 12
+STEP 4 TIME_PASSES ELAPSE 201
STEP 5 QUERY
ENTRY_BEGIN
diff --git a/testdata/serve_expired_zerottl.rpl b/testdata/serve_expired_zerottl.rpl
index 1dd7547a96d4..f514ffc67304 100644
--- a/testdata/serve_expired_zerottl.rpl
+++ b/testdata/serve_expired_zerottl.rpl
@@ -66,11 +66,11 @@ RANGE_BEGIN 11 100
SECTION QUESTION
example.com. IN A
SECTION ANSWER
- example.com. 10 IN A 5.6.7.8
+ example.com. 200 IN A 5.6.7.8
SECTION AUTHORITY
- example.com. 10 IN NS ns.example.com.
+ example.com. 200 IN NS ns.example.com.
SECTION ADDITIONAL
- ns.example.com. 10 IN A 1.2.3.4
+ ns.example.com. 200 IN A 1.2.3.4
ENTRY_END
RANGE_END
@@ -119,15 +119,15 @@ ENTRY_BEGIN
SECTION QUESTION
example.com. IN A
SECTION ANSWER
- example.com. 10 IN A 5.6.7.8
+ example.com. 200 IN A 5.6.7.8
SECTION AUTHORITY
- example.com. 10 IN NS ns.example.com.
+ example.com. 200 IN NS ns.example.com.
SECTION ADDITIONAL
- ns.example.com. 10 IN A 1.2.3.4
+ ns.example.com. 200 IN A 1.2.3.4
ENTRY_END
; Wait for the TTL to expire
-STEP 30 TIME_PASSES ELAPSE 11
+STEP 30 TIME_PASSES ELAPSE 200
; Query with RD flag
STEP 40 QUERY
diff --git a/testdata/stat_values.tdir/stat_values.test b/testdata/stat_values.tdir/stat_values.test
index 7dd71edd6b3b..9156f95a9716 100644
--- a/testdata/stat_values.tdir/stat_values.test
+++ b/testdata/stat_values.tdir/stat_values.test
@@ -468,8 +468,10 @@ bring_up_alternate_configuration ub_discard_wait_limit.conf
teststep "Check discard-timeout and wait-limit"
echo "> dig www.unresponsive"
dig @127.0.0.1 -p $UNBOUND_PORT +retry=2 +timeout=1 www.unresponsive. | tee outfile
-echo "> check answer"
-if grep "no servers could be reached" outfile; then
+# Wait for nonresponse servfail, that causes discards.
+sleep 2
+if grep "no servers could be reached" outfile ||
+ grep "Too many queries queued up and waiting" outfile; then
echo "OK"
else
end 1
diff --git a/testdata/subnet_cached_servfail_timeout.crpl b/testdata/subnet_cached_servfail_timeout.crpl
new file mode 100644
index 000000000000..baf523227ee8
--- /dev/null
+++ b/testdata/subnet_cached_servfail_timeout.crpl
@@ -0,0 +1,239 @@
+; Check if an SERVFAIL answer is not stored in the global cache, and
+; does not block ECS queries to reach the ECS cache.
+
+server:
+ trust-anchor-signaling: no
+ target-fetch-policy: "0 0 0 0 0"
+ ;send-client-subnet: 1.2.3.4
+ client-subnet-zone: "example.com"
+ max-client-subnet-ipv4: 21
+ module-config: "subnetcache iterator"
+ verbosity: 3
+ access-control: 127.0.0.1 allow_snoop
+ qname-minimisation: no
+ minimal-responses: yes
+ prefetch: yes
+ outbound-msg-retry: 3
+ ede: yes
+ log-servfail: yes
+
+stub-zone:
+ name: "example.com."
+ stub-addr: 1.2.3.4
+CONFIG_END
+
+SCENARIO_BEGIN Test that SERVFAIL after timeout does not block clients to reach the ECS cache
+; And that withing the servfail time a couple of seconds have cached servfail
+; for the subnet queries for that name.
+
+; ns.example.com.
+RANGE_BEGIN 1 20
+ADDRESS 1.2.3.4
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+example.com. IN NS
+SECTION ANSWER
+example.com. IN NS ns.example.com.
+SECTION ADDITIONAL
+ns.example.com. IN A 1.2.3.4
+ENTRY_END
+
+; response to query of interest
+ENTRY_BEGIN
+MATCH opcode qtype qname ednsdata
+ADJUST copy_id copy_ednsdata_assume_clientsubnet
+REPLY QR NOERROR
+SECTION QUESTION
+www.example.com. IN A
+SECTION ANSWER
+www.example.com. 10 IN A 10.20.30.40
+SECTION AUTHORITY
+SECTION ADDITIONAL
+HEX_EDNSDATA_BEGIN
+ ; client is 127.0.0.1
+ 00 08 ; OPC
+ 00 05 ; option length
+ 00 01 ; Family
+ 08 00 ; source mask, scopemask
+ 7f ; address
+HEX_EDNSDATA_END
+ENTRY_END
+RANGE_END
+
+; ns.example.com.
+RANGE_BEGIN 100 120
+ADDRESS 1.2.3.4
+
+; response to query of interest
+ENTRY_BEGIN
+MATCH opcode qtype qname ednsdata
+ADJUST copy_id copy_ednsdata_assume_clientsubnet
+REPLY QR NOERROR
+SECTION QUESTION
+www.example.com. IN A
+SECTION ANSWER
+www.example.com. 10 IN A 10.20.30.41
+SECTION AUTHORITY
+SECTION ADDITIONAL
+HEX_EDNSDATA_BEGIN
+ ; client is 1.0.0.0
+ 00 08 ; OPC
+ 00 05 ; option length
+ 00 01 ; Family
+ 08 00 ; source mask, scopemask
+ 01 ; address
+HEX_EDNSDATA_END
+ENTRY_END
+RANGE_END
+
+; Put an item in subnet cache
+STEP 10 QUERY
+ENTRY_BEGIN
+REPLY RD DO
+SECTION QUESTION
+www.example.com. IN A
+SECTION ADDITIONAL
+HEX_EDNSDATA_BEGIN
+ 00 08 00 05 ; OPC, optlen
+ 00 01 08 08 ; ip4, source 8, scope 8
+ 7f ; 127.0.0.0/8
+HEX_EDNSDATA_END
+ENTRY_END
+
+STEP 20 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all ttl
+REPLY QR RD RA DO NOERROR
+SECTION QUESTION
+www.example.com. IN A
+SECTION ANSWER
+www.example.com. 10 IN A 10.20.30.40
+SECTION AUTHORITY
+SECTION ADDITIONAL
+HEX_EDNSDATA_BEGIN
+ 00 08 00 05 ; OPC, optlen
+ 00 01 08 08 ; ip4, source 8, scope 8
+ 7f ; 127.0.0.0/8
+HEX_EDNSDATA_END
+ENTRY_END
+
+; There is a valid subnet query in cache.
+; this query timeouts.
+STEP 30 QUERY
+ENTRY_BEGIN
+REPLY RD DO
+SECTION QUESTION
+www.example.com. IN A
+SECTION ADDITIONAL
+HEX_EDNSDATA_BEGIN
+ 00 08 00 05 ; OPC, optlen
+ 00 01 08 00 ; ip4, source 8, scope 0
+ 01 ; 1.0.0.0/8
+HEX_EDNSDATA_END
+ENTRY_END
+
+; This query faces timeouts during the resolution.
+; The timeouted query is the 1.0.0.0/8 subnet lookup of www.example.com. A.
+STEP 31 TIMEOUT
+STEP 32 TIMEOUT
+STEP 33 TIMEOUT
+
+STEP 40 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all
+REPLY QR RD DO RA SERVFAIL
+SECTION QUESTION
+www.example.com. IN A
+ENTRY_END
+
+; Check if subnet cache item can be accessed.
+STEP 50 QUERY
+ENTRY_BEGIN
+REPLY RD DO
+SECTION QUESTION
+www.example.com. IN A
+SECTION ADDITIONAL
+HEX_EDNSDATA_BEGIN
+ 00 08 00 05 ; OPC, optlen
+ 00 01 08 00 ; ip4, source 8, scope 0
+ 7f ; 127.0.0.0/8
+HEX_EDNSDATA_END
+ENTRY_END
+
+STEP 60 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all ttl
+REPLY QR RD RA DO NOERROR
+SECTION QUESTION
+www.example.com. IN A
+SECTION ANSWER
+www.example.com. 10 IN A 10.20.30.40
+SECTION AUTHORITY
+SECTION ADDITIONAL
+HEX_EDNSDATA_BEGIN
+ 00 08 00 05 ; OPC, optlen
+ 00 01 08 08 ; ip4, source 8, scope 8
+ 7f ; 127.0.0.0/8
+HEX_EDNSDATA_END
+ENTRY_END
+
+; the existing subnet cache item can be accessed.
+; but another resolution, is now not cached at all?
+STEP 70 QUERY
+ENTRY_BEGIN
+REPLY RD DO
+SECTION QUESTION
+www.example.com. IN A
+SECTION ADDITIONAL
+HEX_EDNSDATA_BEGIN
+ 00 08 00 05 ; OPC, optlen
+ 00 01 08 00 ; ip4, source 8, scope 0
+ 01 ; 1.0.0.0/8
+HEX_EDNSDATA_END
+ENTRY_END
+
+STEP 80 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all
+REPLY QR RD DO RA SERVFAIL
+SECTION QUESTION
+www.example.com. IN A
+ENTRY_END
+
+; after a couple of seconds, the servfail entry should have cleared.
+STEP 90 TIME_PASSES ELAPSE 10
+
+STEP 100 QUERY
+ENTRY_BEGIN
+REPLY RD DO
+SECTION QUESTION
+www.example.com. IN A
+SECTION ADDITIONAL
+HEX_EDNSDATA_BEGIN
+ 00 08 00 05 ; OPC, optlen
+ 00 01 08 00 ; ip4, source 8, scope 0
+ 01 ; 1.0.0.0/8
+HEX_EDNSDATA_END
+ENTRY_END
+
+STEP 110 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all ttl
+REPLY QR RD RA DO NOERROR
+SECTION QUESTION
+www.example.com. IN A
+SECTION ANSWER
+www.example.com. 10 IN A 10.20.30.41
+SECTION AUTHORITY
+SECTION ADDITIONAL
+HEX_EDNSDATA_BEGIN
+ 00 08 00 05 ; OPC, optlen
+ 00 01 08 08 ; ip4, source 8, scope 8
+ 01 ; 1.0.0.0/8
+HEX_EDNSDATA_END
+ENTRY_END
+
+SCENARIO_END
diff --git a/testdata/subnet_global_prefetch_always_forward.crpl b/testdata/subnet_global_prefetch_always_forward.crpl
index d32ae6da0d0e..a34a314afb3e 100644
--- a/testdata/subnet_global_prefetch_always_forward.crpl
+++ b/testdata/subnet_global_prefetch_always_forward.crpl
@@ -7,12 +7,15 @@ server:
target-fetch-policy: "0 0 0 0 0"
serve-expired: yes
serve-expired-client-timeout: 0
+ serve-expired-reply-ttl: 123
client-subnet-always-forward: yes
module-config: "subnetcache iterator"
verbosity: 3
access-control: 127.0.0.1 allow_snoop
qname-minimisation: no
minimal-responses: no
+ ede: yes
+ ede-serve-expired: yes
iter-scrub-promiscuous: no
stub-zone:
@@ -101,7 +104,7 @@ RANGE_BEGIN 0 100
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
- www.example.com. 10 IN A 10.20.30.40
+ www.example.com. 200 IN A 10.20.30.40
SECTION AUTHORITY
example.com. IN NS ns.example.com.
SECTION ADDITIONAL
@@ -132,11 +135,11 @@ ns.example.com. IN A 1.2.3.4
ENTRY_END
; Wait for the TTL to expire
-STEP 3 TIME_PASSES ELAPSE 20
+STEP 3 TIME_PASSES ELAPSE 200
STEP 11 QUERY
ENTRY_BEGIN
-REPLY RD
+REPLY RD DO
SECTION QUESTION
www.example.com. IN A
ENTRY_END
@@ -144,16 +147,16 @@ ENTRY_END
; This record came from the global cache and a prefetch was triggered
STEP 12 CHECK_ANSWER
ENTRY_BEGIN
-MATCH all ttl
-REPLY QR RD RA NOERROR
+MATCH all ttl ede=3
+REPLY QR RD RA DO NOERROR
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
-www.example.com. 30 IN A 10.20.30.40
+www.example.com. 123 IN A 10.20.30.40
SECTION AUTHORITY
-example.com. 3580 IN NS ns.example.com.
+example.com. 3400 IN NS ns.example.com.
SECTION ADDITIONAL
-ns.example.com. 3580 IN A 1.2.3.4
+ns.example.com. 3400 IN A 1.2.3.4
ENTRY_END
STEP 13 CHECK_OUT_QUERY
diff --git a/testdata/subnet_global_prefetch_expired.crpl b/testdata/subnet_global_prefetch_expired.crpl
index 6a491af4263b..500930f72ee0 100644
--- a/testdata/subnet_global_prefetch_expired.crpl
+++ b/testdata/subnet_global_prefetch_expired.crpl
@@ -17,7 +17,11 @@ server:
serve-expired: yes
serve-expired-client-timeout: 0
serve-expired-ttl: 1
- prefetch: yes
+ serve-expired-client-timeout: 0
+ serve-expired-reply-ttl: 123
+ #prefetch: yes #not needed, expired answers also trigger refetch
+ ede: yes
+ ede-serve-expired: yes
stub-zone:
name: "."
@@ -114,7 +118,7 @@ RANGE_BEGIN 0 10
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
- www.example.com. 10 IN A 10.20.30.40
+ www.example.com. 200 IN A 10.20.30.40
SECTION AUTHORITY
example.com. IN NS ns.example.com.
SECTION ADDITIONAL
@@ -148,7 +152,7 @@ RANGE_BEGIN 11 100
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
- www.example.com. 10 IN A 10.20.30.40
+ www.example.com. 200 IN A 10.20.30.40
SECTION AUTHORITY
example.com. IN NS ns.example.com.
SECTION ADDITIONAL
@@ -179,7 +183,7 @@ REPLY QR RD RA NOERROR
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
-www.example.com. IN A 10.20.30.40
+www.example.com. 200 IN A 10.20.30.40
SECTION AUTHORITY
example.com. IN NS ns.example.com.
SECTION ADDITIONAL
@@ -187,11 +191,11 @@ ns.example.com. IN A 1.2.3.4
ENTRY_END
; Try to trigger a prefetch with expired data
-STEP 3 TIME_PASSES ELAPSE 11
+STEP 3 TIME_PASSES ELAPSE 200
STEP 11 QUERY
ENTRY_BEGIN
-REPLY RD
+REPLY RD DO
SECTION QUESTION
www.example.com. IN A
ENTRY_END
@@ -199,19 +203,18 @@ ENTRY_END
; This expired record came from the global cache and a prefetch is triggered.
STEP 12 CHECK_ANSWER
ENTRY_BEGIN
-MATCH all ttl
-REPLY QR RD RA NOERROR
+MATCH all ttl ede=3
+REPLY QR RD RA DO NOERROR
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
-www.example.com. 30 IN A 10.20.30.40
+www.example.com. 123 IN A 10.20.30.40
SECTION AUTHORITY
-example.com. 3589 IN NS ns.example.com.
+example.com. 3400 IN NS ns.example.com.
SECTION ADDITIONAL
-ns.example.com. 3589 IN A 1.2.3.4
+ns.example.com. 3400 IN A 1.2.3.4
ENTRY_END
-;STEP 13 TRAFFIC
; Allow enough time to pass so that the expired record from the global cache
; cannot be used anymore.
STEP 14 TIME_PASSES ELAPSE 1
@@ -233,7 +236,7 @@ REPLY QR RD RA NOERROR
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
-www.example.com. 9 IN A 10.20.30.40
+www.example.com. 199 IN A 10.20.30.40
SECTION AUTHORITY
example.com. 3599 IN NS ns.example.com.
SECTION ADDITIONAL
diff --git a/testdata/subnet_scopezero_bogus.crpl b/testdata/subnet_scopezero_bogus.crpl
new file mode 100644
index 000000000000..704b697325af
--- /dev/null
+++ b/testdata/subnet_scopezero_bogus.crpl
@@ -0,0 +1,274 @@
+; Test subnet option
+
+server:
+ trust-anchor: "example.com. 3600 IN DS 2854 3 1 46e4ffc6e9a4793b488954bd3f0cc6af0dfb201b"
+ val-override-date: "20070916134226"
+ trust-anchor-signaling: no
+ target-fetch-policy: "0 0 0 0 0"
+ send-client-subnet: 1.2.3.4
+ max-client-subnet-ipv4: 17
+ module-config: "subnetcache validator iterator"
+ verbosity: 3
+ fake-sha1: yes
+ fake-dsa: yes
+ qname-minimisation: no
+ minimal-responses: yes
+ iter-scrub-promiscuous: yes
+
+stub-zone:
+ name: "."
+ stub-addr: 193.0.14.129 # K.ROOT-SERVERS.NET.
+CONFIG_END
+
+SCENARIO_BEGIN Test subnet with scopezero bogus response
+
+; K.ROOT-SERVERS.NET.
+RANGE_BEGIN 0 100
+ ADDRESS 193.0.14.129
+ ENTRY_BEGIN
+ MATCH opcode qtype qname ednsdata
+ ADJUST copy_id
+ REPLY QR NOERROR
+ SECTION QUESTION
+ . IN NS
+ SECTION ANSWER
+ . IN NS K.ROOT-SERVERS.NET.
+ SECTION ADDITIONAL
+ HEX_EDNSDATA_BEGIN
+ ;; we expect to receive empty
+ HEX_EDNSDATA_END
+ K.ROOT-SERVERS.NET. IN A 193.0.14.129
+ ENTRY_END
+
+ ENTRY_BEGIN
+ MATCH opcode qtype qname ednsdata
+ ADJUST copy_id
+ REPLY QR NOERROR
+ SECTION QUESTION
+ www.example.com. IN A
+ SECTION AUTHORITY
+ com. IN NS a.gtld-servers.net.
+ SECTION ADDITIONAL
+ HEX_EDNSDATA_BEGIN
+ ;; we expect to receive empty
+ HEX_EDNSDATA_END
+ a.gtld-servers.net. IN A 192.5.6.30
+ ENTRY_END
+RANGE_END
+
+; a.gtld-servers.net.
+RANGE_BEGIN 0 100
+ ADDRESS 192.5.6.30
+ ENTRY_BEGIN
+ MATCH opcode qtype qname ednsdata
+ ADJUST copy_id
+ REPLY QR NOERROR
+ SECTION QUESTION
+ com. IN NS
+ SECTION ANSWER
+ com. IN NS a.gtld-servers.net.
+ SECTION ADDITIONAL
+ HEX_EDNSDATA_BEGIN
+ ;; we expect to receive empty
+ HEX_EDNSDATA_END
+ a.gtld-servers.net. IN A 192.5.6.30
+ ENTRY_END
+
+ ENTRY_BEGIN
+ MATCH opcode qtype qname ednsdata
+ ADJUST copy_id
+ REPLY QR NOERROR
+ SECTION QUESTION
+ www.example.com. IN A
+ SECTION AUTHORITY
+ example.com. IN NS ns.example.com.
+ SECTION ADDITIONAL
+ HEX_EDNSDATA_BEGIN
+ ;; we expect to receive empty
+ HEX_EDNSDATA_END
+ ns.example.com. IN A 1.2.3.4
+ ENTRY_END
+RANGE_END
+
+; ns.example.com.
+RANGE_BEGIN 0 100
+ ADDRESS 1.2.3.4
+ ENTRY_BEGIN
+ MATCH opcode qtype qname ednsdata
+ ADJUST copy_id
+ REPLY QR NOERROR
+ SECTION QUESTION
+ example.com. IN NS
+ SECTION ANSWER
+ example.com. IN NS ns.example.com.
+ example.com. 3600 IN RRSIG NS 3 2 3600 20070926134150 20070829134150 2854 example.com. MC0CFQCN+qHdJxoI/2tNKwsb08pra/G7aAIUAWA5sDdJTbrXA1/3OaesGBAO3sI= ;{id = 2854}
+ SECTION ADDITIONAL
+ HEX_EDNSDATA_BEGIN
+ ;; we expect to receive empty
+ HEX_EDNSDATA_END
+ ns.example.com. IN A 1.2.3.4
+ ns.example.com. 3600 IN RRSIG A 3 3 3600 20070926135752 20070829135752 2854 example.com. MC0CFQCMSWxVehgOQLoYclB9PIAbNP229AIUeH0vNNGJhjnZiqgIOKvs1EhzqAo= ;{id = 2854}
+ ENTRY_END
+
+; no data for ns.example.com. AAAA
+ ENTRY_BEGIN
+ MATCH opcode qtype qname
+ ADJUST copy_id
+ REPLY QR AA NOERROR
+ SECTION QUESTION
+ ns.example.com. IN AAAA
+ SECTION AUTHORITY
+ example.com. IN SOA a. b. 3 28800 7200 604800 3600
+ example.com. 3600 IN RRSIG SOA 3 2 3600 20070926134150 20070829134150 2854 example.com. ACYHmWSLfBwPXwjI23+PW0db/DuqFwgpJYCbHOPeftbLR9nGy3nyEAE=
+ ns.example.com. 3600 IN NSEC op.example.com. A RRSIG NSEC
+ ns.example.com. 3600 IN RRSIG NSEC 3 3 3600 20070926134150 20070829134150 2854 example.com. AHMBw+lDAm9o2xG7v/8oWkYUc3WefUOuHFMHN9qZEp5/kooJqmlj974=
+ ENTRY_END
+
+ ; response to DNSKEY priming query
+ ENTRY_BEGIN
+ MATCH opcode qtype qname ednsdata
+ ADJUST copy_id
+ REPLY QR NOERROR
+ SECTION QUESTION
+ example.com. IN DNSKEY
+ SECTION ANSWER
+ example.com. 3600 IN DNSKEY 256 3 3 ALXLUsWqUrY3JYER3T4TBJII s70j+sDS/UT2QRp61SE7S3E EXopNXoFE73JLRmvpi/UrOO/Vz4Se 6wXv/CYCKjGw06U4WRgR YXcpEhJROyNapmdIKSx hOzfLVE1gqA0PweZR8d tY3aNQSRn3sPpwJr6Mi /PqQKAMMrZ9ckJpf1+b QMOOvxgzz2U1GS18b3y ZKcgTMEaJzd/GZYzi/B N2DzQ0MsrSwYXfsNLFO Bbs8PJMW4LYIxeeOe6rUgkWOF 7CC9Dh/dduQ1QrsJhmZAEFfd6ByYV+ ;{id = 2854 (zsk), size = 1688b}
+ example.com. 3600 IN RRSIG DNSKEY 3 2 3600 20070926134802 20070829134802 2854 example.com. MCwCFG1yhRNtTEa3Eno2zhVVuy2EJX3wAhQeLyUp6+UXcpC5qGNu9tkrTEgPUg== ;{id = 2854}
+ SECTION AUTHORITY
+ example.com. IN NS ns.example.com.
+ example.com. 3600 IN RRSIG NS 3 2 3600 20070926134150 20070829134150 2854 example.com. MC0CFQCN+qHdJxoI/2tNKwsb08pra/G7aAIUAWA5sDdJTbrXA1/3OaesGBAO3sI= ;{id = 2854}
+ SECTION ADDITIONAL
+ HEX_EDNSDATA_BEGIN
+ ;; we expect to receive empty
+ HEX_EDNSDATA_END
+ ns.example.com. IN A 1.2.3.4
+ ns.example.com. 3600 IN RRSIG A 3 3 3600 20070926135752 20070829135752 2854 example.com. MC0CFQCMSWxVehgOQLoYclB9PIAbNP229AIUeH0vNNGJhjnZiqgIOKvs1EhzqAo= ;{id = 2854}
+ ENTRY_END
+
+ ; response to query of interest
+ ENTRY_BEGIN
+ MATCH opcode qtype qname ednsdata
+ ADJUST copy_id
+ REPLY QR NOERROR
+ SECTION QUESTION
+ www.example.com. IN A
+ SECTION ANSWER
+ ; to make it bogus, the address is changed.
+ ; and also the RRSIG is expired (dated in 2005).
+ ;www.example.com. IN A 10.20.30.40
+ ;www.example.com. 3600 IN RRSIG A 3 3 3600 20070926134150 20070829134150 2854 example.com. MC0CFC99iE9K5y2WNgI0gFvBWaTi9wm6AhUAoUqOpDtG5Zct+Qr9F3mSdnbc6V4= ;{id = 2854}
+ www.example.com. IN A 10.20.30.41
+ www.example.com. 3600 IN RRSIG A 3 3 3600 20050926134150 20050829134150 2854 example.com. MC0CFC99iE9K5y2WNgI0gFvBWaTi9wm6AhUAoUqOpDtG5Zct+Qr9F3mSdnbc6V4= ;{id = 2854}
+ SECTION AUTHORITY
+ example.com. IN NS ns.example.com.
+ example.com. 3600 IN RRSIG NS 3 2 3600 20070926134150 20070829134150 2854 example.com. MC0CFQCN+qHdJxoI/2tNKwsb08pra/G7aAIUAWA5sDdJTbrXA1/3OaesGBAO3sI= ;{id = 2854}
+ SECTION ADDITIONAL
+ HEX_EDNSDATA_BEGIN
+ ; client is 127.0.0.1
+ 00 08 ; OPC
+ 00 07 ; option length
+ 00 01 ; Family
+ 11 00 ; source mask, scopemask
+ 7f 00 00 ; address
+ HEX_EDNSDATA_END
+ ns.example.com. IN A 1.2.3.4
+ ns.example.com. 3600 IN RRSIG A 3 3 3600 20070926134150 20070829134150 2854 example.com. MC0CFQCQMyTjn7WWwpwAR1LlVeLpRgZGuQIUCcJDEkwAuzytTDRlYK7nIMwH1CM= ;{id = 2854}
+ ENTRY_END
+
+ ; response to query of interest without subnet
+ ENTRY_BEGIN
+ MATCH opcode qtype qname ednsdata
+ ADJUST copy_id
+ REPLY QR NOERROR
+ SECTION QUESTION
+ www.example.com. IN A
+ SECTION ANSWER
+ ; to make it bogus, the address is changed.
+ ; and also the RRSIG is expired (dated in 2005).
+ ;www.example.com. IN A 10.20.30.40
+ ;www.example.com. 3600 IN RRSIG A 3 3 3600 20070926134150 20070829134150 2854 example.com. MC0CFC99iE9K5y2WNgI0gFvBWaTi9wm6AhUAoUqOpDtG5Zct+Qr9F3mSdnbc6V4= ;{id = 2854}
+ www.example.com. IN A 10.20.30.41
+ www.example.com. 3600 IN RRSIG A 3 3 3600 20050926134150 20050829134150 2854 example.com. MC0CFC99iE9K5y2WNgI0gFvBWaTi9wm6AhUAoUqOpDtG5Zct+Qr9F3mSdnbc6V4= ;{id = 2854}
+ SECTION AUTHORITY
+ example.com. IN NS ns.example.com.
+ example.com. 3600 IN RRSIG NS 3 2 3600 20070926134150 20070829134150 2854 example.com. MC0CFQCN+qHdJxoI/2tNKwsb08pra/G7aAIUAWA5sDdJTbrXA1/3OaesGBAO3sI= ;{id = 2854}
+ SECTION ADDITIONAL
+ HEX_EDNSDATA_BEGIN
+ ;; we expect to receive empty
+ HEX_EDNSDATA_END
+ ns.example.com. IN A 1.2.3.4
+ ns.example.com. 3600 IN RRSIG A 3 3 3600 20070926134150 20070829134150 2854 example.com. MC0CFQCQMyTjn7WWwpwAR1LlVeLpRgZGuQIUCcJDEkwAuzytTDRlYK7nIMwH1CM= ;{id = 2854}
+ ENTRY_END
+RANGE_END
+
+; query for www.example.com 0.0.0.0/0 with CD flag
+STEP 10 QUERY
+ENTRY_BEGIN
+REPLY RD CD DO NOERROR
+SECTION QUESTION
+www.example.com. IN A
+HEX_EDNSDATA_BEGIN
+ ; 0.0.0.0/0 scope /0
+ 00 08 ; OPC
+ 00 04 ; option length
+ 00 01 ; Family
+ 00 00 ; source mask, scopemask
+ ; address
+HEX_EDNSDATA_END
+ENTRY_END
+
+; recursion happens here.
+STEP 20 CHECK_ANSWER
+ENTRY_BEGIN
+ MATCH all ednsdata
+ REPLY QR RD CD RA DO NOERROR
+ SECTION QUESTION
+ www.example.com. IN A
+ SECTION ANSWER
+ www.example.com. IN A 10.20.30.41
+ www.example.com. 3600 IN RRSIG A 3 3 3600 20050926134150 20050829134150 2854 example.com. MC0CFC99iE9K5y2WNgI0gFvBWaTi9wm6AhUAoUqOpDtG5Zct+Qr9F3mSdnbc6V4= ;{id = 2854}
+ SECTION ADDITIONAL
+ HEX_EDNSDATA_BEGIN
+ ; 0.0.0.0/0 scope /0
+ 00 08 ; OPC
+ 00 04 ; option length
+ 00 01 ; Family
+ 00 00 ; source mask, scopemask
+ ; address
+ HEX_EDNSDATA_END
+ENTRY_END
+
+; query for www.example.com 0.0.0.0/0 without CD flag
+STEP 30 QUERY
+ENTRY_BEGIN
+REPLY RD DO NOERROR
+SECTION QUESTION
+www.example.com. IN A
+HEX_EDNSDATA_BEGIN
+ ; 0.0.0.0/0 scope /0
+ 00 08 ; OPC
+ 00 04 ; option length
+ 00 01 ; Family
+ 00 00 ; source mask, scopemask
+ ; address
+HEX_EDNSDATA_END
+ENTRY_END
+
+STEP 40 CHECK_ANSWER
+ENTRY_BEGIN
+ MATCH all ednsdata
+ REPLY QR RD RA DO SERVFAIL
+ SECTION QUESTION
+ www.example.com. IN A
+ SECTION ADDITIONAL
+ HEX_EDNSDATA_BEGIN
+; ; 0.0.0.0/0 scope /0
+; 00 08 ; OPC
+; 00 04 ; option length
+; 00 01 ; Family
+; 00 00 ; source mask, scopemask
+; ; address
+ HEX_EDNSDATA_END
+ENTRY_END
+
+SCENARIO_END
diff --git a/testdata/subnet_scopezero_global_nocache.crpl b/testdata/subnet_scopezero_global_nocache.crpl
new file mode 100644
index 000000000000..3e8fbb25f125
--- /dev/null
+++ b/testdata/subnet_scopezero_global_nocache.crpl
@@ -0,0 +1,126 @@
+; config options
+server:
+ target-fetch-policy: "0 0 0 0 0"
+ module-config: "subnetcache validator iterator"
+ verbosity: 4
+ qname-minimisation: no
+ ; the domain is not configured for edns-subnet
+ ;send-client-subnet: 1.2.3.4
+
+stub-zone:
+ name: "."
+ stub-addr: 193.0.14.129
+
+stub-zone:
+ name: "example.com"
+ stub-addr: 1.2.3.4
+ stub-no-cache: yes
+CONFIG_END
+
+SCENARIO_BEGIN Test subnet cache with scope zero for global cache store.
+
+; the upstream server.
+RANGE_BEGIN 0 100
+ ADDRESS 193.0.14.129
+
+ENTRY_BEGIN
+MATCH opcode qtype qname ednsdata
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+. IN NS
+SECTION ANSWER
+. IN NS K.ROOT-SERVERS.NET.
+SECTION ADDITIONAL
+HEX_EDNSDATA_BEGIN
+ ;; we expect to receive empty
+HEX_EDNSDATA_END
+K.ROOT-SERVERS.NET. IN A 193.0.14.129
+ENTRY_END
+RANGE_END
+
+RANGE_BEGIN 0 21
+ ADDRESS 1.2.3.4
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+www.example.com. IN A
+SECTION ANSWER
+www.example.com. IN A 10.20.30.40
+SECTION AUTHORITY
+SECTION ADDITIONAL
+ENTRY_END
+RANGE_END
+
+RANGE_BEGIN 30 50
+ ADDRESS 1.2.3.4
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+www.example.com. IN A
+SECTION ANSWER
+www.example.com. IN A 10.20.30.1
+SECTION AUTHORITY
+SECTION ADDITIONAL
+ENTRY_END
+RANGE_END
+
+; query for 0.0.0.0/0
+STEP 10 QUERY
+ENTRY_BEGIN
+HEX_ANSWER_BEGIN
+ 00 00 01 00 00 01 00 00 ;ID 0
+ 00 00 00 01 03 77 77 77 ; www.example.com A? (DO)
+ 07 65 78 61 6d 70 6c 65
+ 03 63 6f 6d 00 00 01 00
+ 01 00 00 29 10 00 00 00
+ 80 00 00 08
+
+ 00 08 00 04 ; OPC, optlen
+ 00 01 00 00 ; ip4, scope 0, source 0
+ ;0.0.0.0/0
+HEX_ANSWER_END
+ENTRY_END
+
+STEP 20 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all ednsdata
+REPLY QR RD RA NOERROR
+SECTION QUESTION
+www.example.com. IN A
+SECTION ANSWER
+www.example.com. IN A 10.20.30.40
+SECTION AUTHORITY
+SECTION ADDITIONAL
+HEX_EDNSDATA_BEGIN
+ 00 08 ; OPC
+ 00 04 ; option length
+ 00 01 ; Family
+ 00 00 ; source mask, scopemask
+ ; address
+HEX_EDNSDATA_END
+ENTRY_END
+
+; It should not be in global cache.
+STEP 30 QUERY
+ENTRY_BEGIN
+REPLY RD NOERROR
+SECTION QUESTION
+www.example.com. IN A
+ENTRY_END
+
+STEP 40 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all ednsdata
+REPLY QR RD RA NOERROR
+SECTION QUESTION
+www.example.com. IN A
+SECTION ANSWER
+www.example.com. IN A 10.20.30.1
+ENTRY_END
+
+SCENARIO_END
diff --git a/testdata/test_ldnsrr.5 b/testdata/test_ldnsrr.5
index 1f2837a67098..c970d9177158 100644
--- a/testdata/test_ldnsrr.5
+++ b/testdata/test_ldnsrr.5
@@ -83,7 +83,7 @@ prev-nxt IN A 127.0.0.1
host1.blaat.nl. IN NID 10 0014:4fff:ff20:ee64
host1.blaat.nl. IN L32 10 10.1.2.0
-host1.blaat.nl. IN L64 10 2001:0DB8:1140:1000
+host1.blaat.nl. IN L64 10 2001:db8:1140:1000
host1.blaat.nl. IN LP 10 l64-subnet1.blaat.nl.
;error1 IN NID 1 00fg:4fff:ff20:ee64
diff --git a/testdata/test_sigs.revoked b/testdata/test_sigs.revoked
index bcf6e159ca8e..66382ea03d7c 100644
--- a/testdata/test_sigs.revoked
+++ b/testdata/test_sigs.revoked
@@ -15,10 +15,29 @@ ENTRY_END
; entry to test
ENTRY_BEGIN
SECTION QUESTION
-secure.example.com. IN SOA
+bogus.example.com. IN SOA
SECTION ANSWER
+; The REVOKE key is not allowed to sign other data
example.com. 43200 IN SOA home.kuroiwa.eng.br. hostmaster.cesar.sec3.br. 2008040903 86400 86400 8640000 600
example.com. 43200 IN RRSIG SOA 5 2 43200 20081010000000 20080410122550 31027 example.com. af7nqRak6cEeQLytqLHMIUKPsOECA4Cu/Zpm7vdnKSh2q2+/8ZwIxwHLyCEGdiu/mTYffZEHTZytJyzxnB0oxA== ;{id = 31027}
ENTRY_END
+; entry to test
+ENTRY_BEGIN
+SECTION QUESTION
+bogus.a.example.com. IN DNSKEY
+SECTION ANSWER
+a.example.com. 3600 IN DNSKEY 384 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3
+a.example.com. 3600 IN RRSIG DNSKEY 5 3 3600 20081010000000 20080410122550 31027 example.com. MdkvlzXlNEUrnk7jTXZ0whEjYLp1bGjOevL4yyzWAl+/LgaQqbFVApXbAQhHvouFQeoMp2+NvEGTLW8unBzJEw==
+ENTRY_END
+
+; entry to test
+ENTRY_BEGIN
+SECTION QUESTION
+secure.example.com. IN DNSKEY
+SECTION ANSWER
+; the REVOKE key can sign itself
+example.com. 3600 IN DNSKEY 384 3 5 AQPQ41chR9DEHt/aIzIFAqanbDlRflJoRs5yz1jFsoRIT7dWf0r+PeDuewdxkszNH6wnU4QL8pfKFRh5PIYVBLK3 ;{id = 31027 (zsk), size = 512b}
+example.com. 3600 IN RRSIG DNSKEY 5 2 3600 20081010000000 20080410122550 31027 example.com. NEEY7W2F0XGUo9pVhiLALoz1ToM1gIS4TwUvVBPlIQMF+ZRGtB7PMthV0BN+aR+AEurxYsMfVmXEH2vKUVepgw==
+ENTRY_END
diff --git a/testdata/tls_reuse_auth.tdir/tls_reuse_auth.conf b/testdata/tls_reuse_auth.tdir/tls_reuse_auth.conf
new file mode 100644
index 000000000000..bea487d28a8c
--- /dev/null
+++ b/testdata/tls_reuse_auth.tdir/tls_reuse_auth.conf
@@ -0,0 +1,22 @@
+server:
+ verbosity: 5
+ # num-threads: 1
+ interface: 127.0.0.1
+ port: @PORT@
+ use-syslog: no
+ directory: .
+ pidfile: "unbound.pid"
+ chroot: ""
+ username: ""
+ do-not-query-localhost: no
+
+ tls-cert-bundle: "unbound_server.pem"
+ tls-upstream: yes
+
+forward-zone:
+ name: "."
+ forward-addr: "127.0.0.1@@TOPORT@#unbound"
+
+forward-zone:
+ name: "example.org."
+ forward-addr: "127.0.0.1@@TOPORT@#badname"
diff --git a/testdata/tls_reuse_auth.tdir/tls_reuse_auth.conf2 b/testdata/tls_reuse_auth.tdir/tls_reuse_auth.conf2
new file mode 100644
index 000000000000..a134e9f95859
--- /dev/null
+++ b/testdata/tls_reuse_auth.tdir/tls_reuse_auth.conf2
@@ -0,0 +1,40 @@
+# this is the upstream server that has pipelining and responds to queries.
+server:
+ verbosity: 1
+ # num-threads: 1
+ interface: 127.0.0.1@@PORT@
+ port: @PORT@
+ use-syslog: no
+ directory: .
+ pidfile: "unbound2.pid"
+ chroot: ""
+ username: ""
+ do-not-query-localhost: no
+ tls-port: @PORT@
+ tls-service-key: "unbound_server.key"
+ tls-service-pem: "unbound_server.pem"
+ tcp-idle-timeout: 10000
+
+ log-queries: yes
+ log-replies: yes
+ log-identity: "upstream"
+
+ local-zone: "." refuse
+ local-zone: "example.com" static
+ local-data: "www.example.com A 10.20.30.40"
+ local-data: "www1.example.com A 10.20.30.41"
+ local-data: "www2.example.com A 10.20.30.42"
+ local-data: "www3.example.com A 10.20.30.43"
+ local-data: "www4.example.com A 10.20.30.44"
+ local-data: "www5.example.com A 10.20.30.45"
+ local-data: "www6.example.com A 10.20.30.46"
+ local-data: "www7.example.com A 10.20.30.47"
+
+ local-data: "www.example.org A 10.20.31.40"
+ local-data: "badname.example.org A 10.20.31.41"
+
+# if queries escape, send them to localhost
+forward-zone:
+ name: "."
+ forward-tls-upstream: yes
+ forward-addr: "127.0.0.1@@TOPORT@"
diff --git a/testdata/tls_reuse_auth.tdir/tls_reuse_auth.dsc b/testdata/tls_reuse_auth.tdir/tls_reuse_auth.dsc
new file mode 100644
index 000000000000..afcc94e84b00
--- /dev/null
+++ b/testdata/tls_reuse_auth.tdir/tls_reuse_auth.dsc
@@ -0,0 +1,16 @@
+BaseName: tls_reuse_auth
+Version: 1.0
+Description: Test tls stream reuse with tls auth name.
+CreationDate: Thu Apr 02 11:11:00 CEST 2026
+Maintainer: Wouter Wijngaards
+Category:
+Component:
+CmdDepends:
+Depends:
+Help:
+Pre: tls_reuse_auth.pre
+Post: tls_reuse_auth.post
+Test: tls_reuse_auth.test
+AuxFiles:
+Passed:
+Failure:
diff --git a/testdata/tls_reuse_auth.tdir/tls_reuse_auth.post b/testdata/tls_reuse_auth.tdir/tls_reuse_auth.post
new file mode 100644
index 000000000000..ab87571de123
--- /dev/null
+++ b/testdata/tls_reuse_auth.tdir/tls_reuse_auth.post
@@ -0,0 +1,19 @@
+# #-- tls_reuse_auth.post --#
+# source the master var file when it's there
+[ -f ../.tpkg.var.master ] && source ../.tpkg.var.master
+# source the test var file when it's there
+[ -f .tpkg.var.test ] && source .tpkg.var.test
+#
+# do your teardown here
+. ../common.sh
+kill_from_pidfile "unbound2.pid"
+if test -f unbound2.log; then
+ echo ">>> upstream log"
+ cat unbound2.log
+fi
+#kill_pid $UNBOUND_PID
+kill_from_pidfile "unbound.pid"
+if test -f unbound.log; then
+ echo ">>> unbound log"
+ cat unbound.log
+fi
diff --git a/testdata/tls_reuse_auth.tdir/tls_reuse_auth.pre b/testdata/tls_reuse_auth.tdir/tls_reuse_auth.pre
new file mode 100644
index 000000000000..9bb2d08d76ba
--- /dev/null
+++ b/testdata/tls_reuse_auth.tdir/tls_reuse_auth.pre
@@ -0,0 +1,34 @@
+# #-- tls_reuse_auth.pre--#
+# source the master var file when it's there
+[ -f ../.tpkg.var.master ] && source ../.tpkg.var.master
+# use .tpkg.var.test for in test variable passing
+[ -f .tpkg.var.test ] && source .tpkg.var.test
+
+PRE="../.."
+. ../common.sh
+get_random_port 2
+UNBOUND_PORT=$RND_PORT
+UPSTREAM_PORT=$(($RND_PORT + 1))
+echo "UNBOUND_PORT=$UNBOUND_PORT" >> .tpkg.var.test
+echo "UPSTREAM_PORT=$UPSTREAM_PORT" >> .tpkg.var.test
+
+# make config file
+sed -e 's/@PORT\@/'$UNBOUND_PORT'/' -e 's/@TOPORT\@/'$UPSTREAM_PORT'/' < tls_reuse_auth.conf > ub.conf
+# start unbound in the background
+#$PRE/unbound -d -c ub.conf >unbound.log 2>&1 &
+$PRE/unbound -d -c ub.conf 2>&1 | tee unbound.log &
+UNBOUND_PID=$!
+echo "UNBOUND_PID=$UNBOUND_PID" >> .tpkg.var.test
+wait_unbound_up unbound.log
+
+# make upstream config file
+sed -e 's/@PORT\@/'$UPSTREAM_PORT'/' -e 's/@TOPORT\@/'$UPSTREAM_PORT'/' < tls_reuse_auth.conf2 > ub2.conf
+# start upstream unbound in the background
+#$PRE/unbound -d -c ub2.conf >unbound2.log 2>&1 &
+$PRE/unbound -d -c ub2.conf 2>&1 | tee unbound2.log &
+UPSTREAM_PID=$!
+echo "UPSTREAM_PID=$UPSTREAM_PID" >> .tpkg.var.test
+wait_unbound_up unbound2.log
+
+cat .tpkg.var.test
+
diff --git a/testdata/tls_reuse_auth.tdir/tls_reuse_auth.test b/testdata/tls_reuse_auth.tdir/tls_reuse_auth.test
new file mode 100644
index 000000000000..f6f98d5de109
--- /dev/null
+++ b/testdata/tls_reuse_auth.tdir/tls_reuse_auth.test
@@ -0,0 +1,90 @@
+# #-- tls_reuse_auth.test --#
+# source the master var file when it's there
+[ -f ../.tpkg.var.master ] && source ../.tpkg.var.master
+# use .tpkg.var.test for in test variable passing
+[ -f .tpkg.var.test ] && source .tpkg.var.test
+
+PRE="../.."
+. ../common.sh
+
+get_make
+(cd $PRE; $MAKE streamtcp)
+
+echo "> query www1.example.com."
+$PRE/streamtcp -f 127.0.0.1@$UNBOUND_PORT www1.example.com. A IN >outfile 2>&1
+cat outfile
+if test "$?" -ne 0; then
+ echo "exit status not OK"
+ echo "> cat logfiles"
+ cat outfile
+ cat unbound2.log
+ cat unbound.log
+ echo "Not OK"
+ exit 1
+fi
+if grep "www1.example.com" outfile | grep "10.20.30.41"; then
+ echo "content OK"
+else
+ echo "result contents not OK, for www1.example.com"
+ echo "> cat logfiles"
+ cat outfile
+ cat unbound2.log
+ cat unbound.log
+ echo "result contents not OK, for www1.example.com"
+ exit 1
+fi
+echo "OK"
+echo ""
+
+# this should be reused on the same tcp stream:
+echo "> query www2.example.com."
+$PRE/streamtcp -f 127.0.0.1@$UNBOUND_PORT www2.example.com. A IN >outfile 2>&1
+cat outfile
+if test "$?" -ne 0; then
+ echo "exit status not OK"
+ echo "> cat logfiles"
+ cat outfile
+ cat unbound2.log
+ cat unbound.log
+ echo "Not OK"
+ exit 1
+fi
+if grep "www2.example.com" outfile | grep "10.20.30.42"; then
+ echo "content OK"
+else
+ echo "result contents not OK, for www2.example.com"
+ echo "> cat logfiles"
+ cat outfile
+ cat unbound2.log
+ cat unbound.log
+ echo "result contents not OK, for www2.example.com"
+ exit 1
+fi
+
+# bad query with different auth name.
+echo "> query badname.example.org."
+$PRE/streamtcp -f 127.0.0.1@$UNBOUND_PORT badname.example.org. A IN >outfile 2>&1
+cat outfile
+if test "$?" -ne 0; then
+ echo "exit status not OK"
+ echo "> cat logfiles"
+ cat outfile
+ cat unbound2.log
+ cat unbound.log
+ echo "Not OK"
+ exit 1
+fi
+if grep "badname.example.org" outfile | grep "10.20.31.41"; then
+ echo "result contents not OK, for badname.example.org"
+ echo "> cat logfiles"
+ cat outfile
+ cat unbound2.log
+ cat unbound.log
+ echo "result contents not OK, for badname.example.org"
+ exit 1
+else
+ echo "content OK"
+fi
+
+echo "OK"
+exit 0
diff --git a/testdata/tls_reuse_auth.tdir/unbound_control.key b/testdata/tls_reuse_auth.tdir/unbound_control.key
new file mode 100644
index 000000000000..753a4ef6162e
--- /dev/null
+++ b/testdata/tls_reuse_auth.tdir/unbound_control.key
@@ -0,0 +1,39 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIG4gIBAAKCAYEAstEp+Pyh8XGrtZ77A4FhYjvbeB3dMa7Q2rGWxobzlA9przhA
+1aChAvUtCOAuM+rB6NTNB8YWfZJbQHawyMNpmC77cg6vXLYCGUQHZyAqidN049RJ
+F5T7j4N8Vniv17LiRdr0S6swy4PRvEnIPPV43EQHZqC5jVvHsKkhIfmBF/Dj5TXR
+ypeawWV/m5jeU6/4HRYMfytBZdO1mPXuWLh0lgbQ4SCbgrOUVD3rniMk1yZIbQOm
+vlDHYqekjDb/vOW2KxUQLG04aZMJ1mWfdbwG0CKQkSjISEDZ1l76vhM6mTM0fwXb
+IvyFZ9yPPCle1mF5aSlxS2cmGuGVSRQaw8XF9fe3a9ACJJTr33HdSpyaZkKRAUzL
+cKqLCl323daKv3NwwAT03Tj4iQM416ASMoiyfFa/2GWTKQVjddu8Crar7tGaf5xr
+lig4DBmrBvdYA3njy72/RD71hLwmlRoCGU7dRuDr9O6KASUm1Ri91ONZ/qdjMvov
+15l2vj4GV+KXR00dAgMBAAECggGAHepIL1N0dEQkCdpy+/8lH54L9WhpnOo2HqAf
+LU9eaKK7d4jdr9+TkD8cLaPzltPrZNxVALvu/0sA4SP6J1wpyj/x6P7z73qzly5+
+Xo5PD4fEwmi9YaiW/UduAblnEZrnp/AddptJKoL/D5T4XtpiQddPtael4zQ7kB57
+YIexRSQTvEDovA/o3/nvA0TrzOxfgd4ycQP3iOWGN/TMzyLsvjydrUwbOB567iz9
+whL3Etdgvnwh5Sz2blbFfH+nAR8ctvFFz+osPvuIVR21VMEI6wm7kTpSNnQ6sh/c
+lrLb/bTADn4g7z/LpIZJ+MrLvyEcoqValrLYeFBhM9CV8woPxvkO2P3pU47HVGax
+tC7GV6a/kt5RoKFd/TNdiA3OC7NGZtaeXv9VkPf4fVwBtSO9d5ZZXTGEynDD/rUQ
+U4KFJe6OD23APjse08HiiKqTPhsOneOONU67iqoaTdIkT2R4EdlkVEDpXVtWb+G9
+Q+IqYzVljlzuyHrhWXLJw/FMa2aBAoHBAOnZbi4gGpH+P6886WDWVgIlTccuXoyc
+Mg9QQYk9UDeXxL0AizR5bZy49Sduegz9vkHpAiZARQsUnizHjZ8YlRcrmn4t6tx3
+ahTIKAjdprnxJfYINM580j8CGbXvX5LhIlm3O267D0Op+co3+7Ujy+cjsIuFQrP+
+1MqMgXSeBjzC1APivmps7HeFE+4w0k2PfN5wSMDNCzLo99PZuUG5XZ93OVOS5dpN
+b+WskdcD8NOoJy/X/5A08veEI/jYO/DyqQKBwQDDwUQCOWf41ecvJLtBHKmEnHDz
+ftzHino9DRKG8a9XaN4rmetnoWEaM2vHGX3pf3mwH+dAe8vJdAQueDhBKYeEpm6C
+TYNOpou1+Zs5s99BilCTNYo8fkMOAyqwRwmz9zgHS6QxXuPwsghKefLJGt6o6RFF
+tfWVTfLlYJ+I3GQe3ySsk3wjVz4oUTKiyiq5+KzD+HhEkS7u+RQ7Z0ZI2xd2cF8Y
+aN2hjKDpcOiFf3CDoqka5D1qMNLgIHO52AHww1UCgcA1h7o7AMpURRka6hyaODY0
+A4oMYEbwdQjYjIyT998W+rzkbu1us6UtzQEBZ760npkgyU/epbOoV63lnkCC/MOU
+LD0PST+L/CHiY/cWIHb79YG1EifUZKpUFg0Aoq0EGFkepF0MefGCkbRGYA5UZr9U
+R80wAu9D+L+JJiS0J0BSRF74DL196zUuHt5zFeXuLzxsRtPAnq9DliS08BACRYZy
+7H3I7cWD9Vn5/0jbKWHFcaaWwyETR6uekTcSzZzbCRECgcBeoE3/xUA9SSk34Mmj
+7/cB4522Ft0imA3+9RK/qJTZ7Bd5fC4PKjOGNtUiqW/0L2rjeIiQ40bfWvWqgPKw
+jSK1PL6uvkl6+4cNsFsYyZpiVDoe7wKju2UuoNlB3RUTqa2r2STFuNj2wRjA57I1
+BIgdnox65jqQsd14g/yaa+75/WP9CE45xzKEyrtvdcqxm0Pod3OrsYK+gikFjiar
+kT0GQ8u0QPzh2tjt/2ZnIfOBrl+QYERP0MofDZDjhUdq2wECgcB0Lu841+yP5cdR
+qbJhXO4zJNh7oWNcJlOuQp3ZMNFrA1oHpe9pmLukiROOy01k9WxIMQDzU5GSqRv3
+VLkYOIcbhJ3kClKAcM3j95SkKbU2H5/RENb3Ck52xtl4pNU1x/3PnVFZfDVuuHO9
+MZ9YBcIeK98MyP2jr5JtFKnOyPE7xKq0IHIhXadpbc2wjje5FtZ1cUtMyEECCXNa
+C1TpXebHGyXGpY9WdWXhjdE/1jPvfS+uO5WyuDpYPr339gsdq1g=
+-----END RSA PRIVATE KEY-----
diff --git a/testdata/tls_reuse_auth.tdir/unbound_control.pem b/testdata/tls_reuse_auth.tdir/unbound_control.pem
new file mode 100644
index 000000000000..a1edf7017f1d
--- /dev/null
+++ b/testdata/tls_reuse_auth.tdir/unbound_control.pem
@@ -0,0 +1,22 @@
+-----BEGIN CERTIFICATE-----
+MIIDszCCAhsCFGD5193whHQ2bVdzbaQfdf1gc4SkMA0GCSqGSIb3DQEBCwUAMBIx
+EDAOBgNVBAMMB3VuYm91bmQwHhcNMjAwNzA4MTMzMjMwWhcNNDAwMzI1MTMzMjMw
+WjAaMRgwFgYDVQQDDA91bmJvdW5kLWNvbnRyb2wwggGiMA0GCSqGSIb3DQEBAQUA
+A4IBjwAwggGKAoIBgQCy0Sn4/KHxcau1nvsDgWFiO9t4Hd0xrtDasZbGhvOUD2mv
+OEDVoKEC9S0I4C4z6sHo1M0HxhZ9kltAdrDIw2mYLvtyDq9ctgIZRAdnICqJ03Tj
+1EkXlPuPg3xWeK/XsuJF2vRLqzDLg9G8Scg89XjcRAdmoLmNW8ewqSEh+YEX8OPl
+NdHKl5rBZX+bmN5Tr/gdFgx/K0Fl07WY9e5YuHSWBtDhIJuCs5RUPeueIyTXJkht
+A6a+UMdip6SMNv+85bYrFRAsbThpkwnWZZ91vAbQIpCRKMhIQNnWXvq+EzqZMzR/
+Bdsi/IVn3I88KV7WYXlpKXFLZyYa4ZVJFBrDxcX197dr0AIklOvfcd1KnJpmQpEB
+TMtwqosKXfbd1oq/c3DABPTdOPiJAzjXoBIyiLJ8Vr/YZZMpBWN127wKtqvu0Zp/
+nGuWKDgMGasG91gDeePLvb9EPvWEvCaVGgIZTt1G4Ov07ooBJSbVGL3U41n+p2My
++i/XmXa+PgZX4pdHTR0CAwEAATANBgkqhkiG9w0BAQsFAAOCAYEAd++Wen6l8Ifj
+4h3p/y16PhSsWJWuJ4wdNYy3/GM84S26wGjzlEEwiW76HpH6VJzPOiBAeWnFKE83
+hFyetEIxgJeIPbcs9ZP/Uoh8GZH9tRISBSN9Hgk2Slr9llo4t1H0g/XTgA5HqMQU
+9YydlBh43G7Vw3FVwh09OM6poNOGQKNc/tq2/QdKeUMtyBbLWpRmjH5XcCT35fbn
+ZiVOUldqSHD4kKrFO4nJYXZyipRbcXybsLiX9GP0GLemc3IgIvOXyJ2RPp06o/SJ
+pzlMlkcAfLJaSuEW57xRakhuNK7m051TKKzJzIEX+NFYOVdafFHS8VwGrYsdrFvD
+72tMfu+Fu55y3awdWWGc6YlaGogZiuMnJkvQphwgn+5qE/7CGEckoKEsH601rqIZ
+muaIc85+nEcHJeijd/ZlBN9zeltjFoMuqTUENgmv8+tUAdVm/UMY9Vjme6b43ydP
+uv6DS02+k9z8toxXworLiPr94BGaiGV1NxgwZKLZigYJt/Fi2Qte
+-----END CERTIFICATE-----
diff --git a/testdata/tls_reuse_auth.tdir/unbound_server.key b/testdata/tls_reuse_auth.tdir/unbound_server.key
new file mode 100644
index 000000000000..370a7bbb2f22
--- /dev/null
+++ b/testdata/tls_reuse_auth.tdir/unbound_server.key
@@ -0,0 +1,39 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIG5AIBAAKCAYEAvjSVSN2QMXudpzukdLCqgg/IOhCX8KYkD0FFFfWcQjgKq5wI
+0x41iG32a6wbGanre4IX7VxaSPu9kkHfnGgynCk5nwDRedE/FLFhAU78PoT0+Nqq
+GRS7XVQ24vLmIz9Hqc2Ozx1um1BXBTmIT0UfN2e22I0LWQ6a3seZlEDRj45gnk7Z
+uh9MDgotaBdm+v1JAbupSf6Zis4VEH3JNdvVGE3O1DHEIeuuz/3BDhpf6WBDH+8K
+WaBe1ca4TZHr9ThL2gEMEfAQl0wXDwRWRoi3NjNMH+mw0L1rjwThI5GXqNIee7o5
+FzUReSXZuTdFMyGe3Owcx+XoYnwi6cplSNoGsDBu4B9bKKglR9YleJVw4L4Xi8xP
+q6O9UPj4+nypHk/DOoC7DIM3ufN0yxPBsFo5TVowxfhdjZXJbbftd2TZv7AH8+XL
+A5UoZgRzXgzECelXSCTBFlMTnT48LfA9pMLydyjAz2UdPHs5Iv+TK5nnI+aJoeaP
+7kFZSngxdy1+A/bNAgMBAAECggGBALpTOIqQwVg4CFBylL/a8K1IWJTI/I65sklf
+XxYL7G7SB2HlEJ//z+E+F0+S4Vlao1vyLQ5QkgE82pAUB8FoMWvY1qF0Y8A5wtm6
+iZSGk4OLK488ZbT8Ii9i+AGKgPe2XbVxsJwj8N4k7Zooqec9hz73Up8ATEWJkRz7
+2u7oMGG4z91E0PULA64dOi3l/vOQe5w/Aa+CwVbAWtI05o7kMvQEBMDJn6C7CByo
+MB5op9wueJMnz7PM7hns+U7Dy6oE4ljuolJUy51bDzFWwoM54cRoQqLFNHd8JVQj
+WxldCkbfF43iyprlsEcUrTyUjtdA+ZeiG39vg/mtdmgNpGmdupHJZQvSuG8IcVlz
+O+eMSeQS1QXPD6Ik8UK4SU0h+zOl8xIWtRrsxQuh4fnTN40udm/YUWl/6gOebsBI
+IrVLlKGqJSfB3tMjpCRqdTzJ0dA9keVpkqm2ugZkxEf1+/efq/rFIQ2pUBLCqNTN
+qpNqruK8y8FphP30I2uI4Ej2UIB8AQKBwQDd2Yptj2FyDyaXCycsyde0wYkNyzGU
+dRnzdibfHnMZwjgTjwAwgIUBVIS8H0/z7ZJQKN7osJfddMrtjJtYYUk9g/dCpHXs
+bNh2QSoWah3FdzNGuWd0iRf9+LFxhjAAMo/FS8zFJAJKrFsBdCGTfFUMdsLC0bjr
+YjiWBuvV72uKf8XIZX5KIZruKdWBBcWukcb21R1UDyFYyXRBsly5XHaIYKZql3km
+7pV7MKWO0IYgHbHIqGUqPQlzZ/lkunS1jKECgcEA23wHffD6Ou9/x3okPx2AWpTr
+gh8rgqbyo6hQkBW5Y90Wz824cqaYebZDaBR/xlVx/YwjKkohv8Bde2lpH/ZxRZ1Z
+5Sk2s6GJ/vU0L9RsJZgCgj4L6Coal1NMxuZtCXAlnOpiCdxSZgfqbshbTVz30KsG
+ZJG361Cua1ScdAHxlZBxT52/1Sm0zRC2hnxL7h4qo7Idmtzs40LAJvYOKekR0pPN
+oWeJfra7vgx/jVNvMFWoOoSLpidVO4g+ot4ery6tAoHAdW3rCic1C2zdnmH28Iw+
+s50l8Lk3mz+I5wgJd1zkzCO0DxZIoWPGA3g7cmCYr6N3KRsZMs4W9NAXgjpFGDkW
+zYsG3K21BdpvkdjYcFjnPVjlOXB2RIc0vehf9Jl02wXoeCSxVUDEPcaRvWk9RJYx
+ZpGOchUU7vNkxHURbIJ4yCzuAi9G8/Jp0dsu+kaV5tufF5SjG5WOrzKjaQsCbdN1
+oqaWMCHRrTvov/Z2C+xwsptFOdN5CSyZzg6hQiI4GMlBAoHAXyb6KINcOEi0YMp3
+BFXJ23tMTnEs78tozcKeipigcsbaqORK3omS+NEnj+uzKUzJyl4CsMbKstK2tFYS
+mSTCHqgE3PBtIpsZtEqhgUraR8IK9GPpzZDTTl9ynZgwFTNlWw3RyuyVXF56J+T8
+kCGJ3hEHCHqT/ZRQyX85BKIDFhA0z4tYKxWVqIFiYBNq56R0X9tMMmMs36mEnF93
+7Ht6mowxTZQRa7nU0qOgeKh/P7ki4Zus3y+WJ+T9IqahLtlRAoHBAIhqMrcxSAB8
+RpB9jukJlAnidw2jCMPgrFE8tP0khhVvGrXMldxAUsMKntDIo8dGCnG1KTcWDI0O
+jepvSPHSsxVLFugL79h0eVIS5z4huW48i9xgU8VlHdgAcgEPIAOFcOw2BCu/s0Vp
+O+MM/EyUOdo3NsibB3qc/GJI6iNBYS7AljYEVo6rXo5V/MZvZUF4vClen6Obzsre
+MTTb+4sJjfqleWuvr1XNMeu2mBfXBQkWGZP1byBK0MvD/aQ2PWq92A==
+-----END RSA PRIVATE KEY-----
diff --git a/testdata/tls_reuse_auth.tdir/unbound_server.pem b/testdata/tls_reuse_auth.tdir/unbound_server.pem
new file mode 100644
index 000000000000..986807310f2b
--- /dev/null
+++ b/testdata/tls_reuse_auth.tdir/unbound_server.pem
@@ -0,0 +1,22 @@
+-----BEGIN CERTIFICATE-----
+MIIDqzCCAhMCFBHWXeQ6ZIa9QcQbXLFfC6tj+KA+MA0GCSqGSIb3DQEBCwUAMBIx
+EDAOBgNVBAMMB3VuYm91bmQwHhcNMjAwNzA4MTMzMjI5WhcNNDAwMzI1MTMzMjI5
+WjASMRAwDgYDVQQDDAd1bmJvdW5kMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIB
+igKCAYEAvjSVSN2QMXudpzukdLCqgg/IOhCX8KYkD0FFFfWcQjgKq5wI0x41iG32
+a6wbGanre4IX7VxaSPu9kkHfnGgynCk5nwDRedE/FLFhAU78PoT0+NqqGRS7XVQ2
+4vLmIz9Hqc2Ozx1um1BXBTmIT0UfN2e22I0LWQ6a3seZlEDRj45gnk7Zuh9MDgot
+aBdm+v1JAbupSf6Zis4VEH3JNdvVGE3O1DHEIeuuz/3BDhpf6WBDH+8KWaBe1ca4
+TZHr9ThL2gEMEfAQl0wXDwRWRoi3NjNMH+mw0L1rjwThI5GXqNIee7o5FzUReSXZ
+uTdFMyGe3Owcx+XoYnwi6cplSNoGsDBu4B9bKKglR9YleJVw4L4Xi8xPq6O9UPj4
++nypHk/DOoC7DIM3ufN0yxPBsFo5TVowxfhdjZXJbbftd2TZv7AH8+XLA5UoZgRz
+XgzECelXSCTBFlMTnT48LfA9pMLydyjAz2UdPHs5Iv+TK5nnI+aJoeaP7kFZSngx
+dy1+A/bNAgMBAAEwDQYJKoZIhvcNAQELBQADggGBABunf93MKaCUHiZgnoOTinsW
+84/EgInrgtKzAyH+BhnKkJOhhR0kkIAx5d9BpDlaSiRTACFon9moWCgDIIsK/Ar7
+JE0Kln9cV//wiiNoFU0O4mnzyGUIMvlaEX6QHMJJQYvL05+w/3AAcf5XmMJtR5ca
+fJ8FqvGC34b2WxX9lTQoyT52sRt+1KnQikiMEnEyAdKktMG+MwKsFDdOwDXyZhZg
+XZhRrfX3/NVJolqB6EahjWIGXDeKuSSKZVtCyib6LskyeMzN5lcRfvubKDdlqFVF
+qlD7rHBsKhQUWK/IO64mGf7y/de+CgHtED5vDvr/p2uj/9sABATfbrOQR3W/Of25
+sLBj4OEfrJ7lX8hQgFaxkMI3x6VFT3W8dTCp7xnQgb6bgROWB5fNEZ9jk/gjSRmD
+yIU+r0UbKe5kBk/CmZVFXL2TyJ92V5NYEQh8V4DGy19qZ6u/XKYyNJL4ocs35GGe
+CA8SBuyrmdhx38h1RHErR2Skzadi1S7MwGf1y431fQ==
+-----END CERTIFICATE-----
diff --git a/testdata/ttl_zero_cacherep.rpl b/testdata/ttl_zero_cacherep.rpl
new file mode 100644
index 000000000000..fe6f9dcc7e1b
--- /dev/null
+++ b/testdata/ttl_zero_cacherep.rpl
@@ -0,0 +1,269 @@
+; config options
+server:
+ target-fetch-policy: "0 0 0 0 0"
+ prefetch: no
+ serve-expired: no
+
+stub-zone:
+ name: "."
+ stub-addr: 193.0.14.129 # K.ROOT-SERVERS.NET.
+CONFIG_END
+
+SCENARIO_BEGIN Test TTL for the last zero second of cached messages.
+
+; K.ROOT-SERVERS.NET.
+RANGE_BEGIN 0 100
+ ADDRESS 193.0.14.129
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+. IN NS
+SECTION ANSWER
+. IN NS K.ROOT-SERVERS.NET.
+SECTION ADDITIONAL
+K.ROOT-SERVERS.NET. IN A 193.0.14.129
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode subdomain
+ADJUST copy_id copy_query
+REPLY QR NOERROR
+SECTION QUESTION
+com. IN A
+SECTION AUTHORITY
+com. IN NS a.gtld-servers.net.
+SECTION ADDITIONAL
+a.gtld-servers.net. IN A 192.5.6.30
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+a.gtld-servers.net. IN A
+SECTION ANSWER
+a.gtld-servers.net. IN A 192.5.6.30
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+K.ROOT-SERVERS.NET. IN A
+SECTION ANSWER
+K.ROOT-SERVERS.NET. IN A 193.0.14.129
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+a.gtld-servers.net. IN AAAA
+SECTION AUTHORITY
+. 86400 IN SOA . . 20070304 28800 7200 604800 86400
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+K.ROOT-SERVERS.NET. IN AAAA
+SECTION AUTHORITY
+. 86400 IN SOA . . 20070304 28800 7200 604800 86400
+ENTRY_END
+
+RANGE_END
+
+; a.gtld-servers.net.
+RANGE_BEGIN 0 300
+ ADDRESS 192.5.6.30
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR NOERROR
+SECTION QUESTION
+com. IN NS
+SECTION ANSWER
+com. IN NS a.gtld-servers.net.
+SECTION ADDITIONAL
+a.gtld-servers.net. IN A 192.5.6.30
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode subdomain
+ADJUST copy_id copy_query
+REPLY QR NOERROR
+SECTION QUESTION
+example.com. IN A
+SECTION AUTHORITY
+example.com. IN NS ns.example.com.
+SECTION ADDITIONAL
+ns.example.com. IN A 1.2.3.4
+ENTRY_END
+RANGE_END
+
+; ns.example.com
+RANGE_BEGIN 0 100
+ ADDRESS 1.2.3.4
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+example.com. IN NS
+SECTION ANSWER
+example.com. IN NS ns.example.com.
+SECTION ADDITIONAL
+ns.example.com. IN A 1.2.3.4
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA NOERROR
+SECTION QUESTION
+www.example.com. IN A
+SECTION ANSWER
+www.example.com. 10 IN A 1.2.3.4
+ENTRY_END
+RANGE_END
+
+; ns.example.com
+RANGE_BEGIN 100 300
+ ADDRESS 1.2.3.4
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA REFUSED
+SECTION QUESTION
+example.com. IN NS
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA REFUSED
+SECTION QUESTION
+ns.example.com. IN A
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR AA REFUSED
+SECTION QUESTION
+ns.example.com. IN AAAA
+ENTRY_END
+
+ENTRY_BEGIN
+MATCH opcode qtype qname
+ADJUST copy_id
+REPLY QR REFUSED
+SECTION QUESTION
+www.example.com. IN A
+ENTRY_END
+RANGE_END
+
+STEP 1 TIME_PASSES ELAPSE 10
+
+STEP 10 QUERY
+ENTRY_BEGIN
+REPLY RD
+SECTION QUESTION
+www.example.com. IN A
+ENTRY_END
+
+STEP 20 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all ttl
+REPLY QR RD RA NOERROR
+SECTION QUESTION
+www.example.com. IN A
+SECTION ANSWER
+www.example.com. 10 IN A 1.2.3.4
+ENTRY_END
+
+STEP 30 TIME_PASSES ELAPSE 5
+
+STEP 40 QUERY
+ENTRY_BEGIN
+REPLY RD
+SECTION QUESTION
+www.example.com. IN A
+ENTRY_END
+
+STEP 50 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all ttl
+REPLY QR RD RA NOERROR
+SECTION QUESTION
+www.example.com. IN A
+SECTION ANSWER
+www.example.com. 5 IN A 1.2.3.4
+ENTRY_END
+
+STEP 60 TIME_PASSES ELAPSE 3
+
+STEP 70 QUERY
+ENTRY_BEGIN
+REPLY RD
+SECTION QUESTION
+www.example.com. IN A
+ENTRY_END
+
+STEP 80 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all ttl
+REPLY QR RD RA NOERROR
+SECTION QUESTION
+www.example.com. IN A
+SECTION ANSWER
+www.example.com. 2 IN A 1.2.3.4
+ENTRY_END
+
+STEP 90 TIME_PASSES ELAPSE 1
+
+STEP 100 QUERY
+ENTRY_BEGIN
+REPLY RD
+SECTION QUESTION
+www.example.com. IN A
+ENTRY_END
+
+STEP 110 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all ttl
+REPLY QR RD RA NOERROR
+SECTION QUESTION
+www.example.com. IN A
+SECTION ANSWER
+www.example.com. 1 IN A 1.2.3.4
+ENTRY_END
+
+STEP 120 TIME_PASSES ELAPSE 1
+
+STEP 130 QUERY
+ENTRY_BEGIN
+REPLY RD
+SECTION QUESTION
+www.example.com. IN A
+ENTRY_END
+
+STEP 140 CHECK_ANSWER
+ENTRY_BEGIN
+MATCH all ttl
+REPLY QR RD RA SERVFAIL
+SECTION QUESTION
+www.example.com. IN A
+SECTION ANSWER
+ENTRY_END
+
+SCENARIO_END
diff --git a/testdata/val_ds_cname.rpl b/testdata/val_ds_cname.rpl
index a49c53538ebe..9a8919fb0005 100644
--- a/testdata/val_ds_cname.rpl
+++ b/testdata/val_ds_cname.rpl
@@ -199,7 +199,7 @@ ENTRY_END
; recursion happens here.
STEP 10 CHECK_ANSWER
ENTRY_BEGIN
-MATCH all ede=10
+MATCH all ede=6
REPLY QR RD RA DO SERVFAIL
SECTION QUESTION
www.example.com. IN A
@@ -215,7 +215,7 @@ ENTRY_END
STEP 12 CHECK_ANSWER
ENTRY_BEGIN
-MATCH all ede=10
+MATCH all ede=6
REPLY QR RA DO SERVFAIL
SECTION QUESTION
www.example.com. IN A
diff --git a/util/alloc.c b/util/alloc.c
index 9a99246f589c..e4e1aeb4dcba 100644
--- a/util/alloc.c
+++ b/util/alloc.c
@@ -328,7 +328,7 @@ size_t alloc_get_mem(struct alloc_cache* alloc)
struct regional*
alloc_reg_obtain(struct alloc_cache* alloc)
{
- if(alloc->num_reg_blocks > 0) {
+ if(alloc->num_reg_blocks > 0 && alloc->reg_list) {
struct regional* r = alloc->reg_list;
alloc->reg_list = (struct regional*)r->next;
r->next = NULL;
diff --git a/util/config_file.c b/util/config_file.c
index 25c2b3e30202..adee403b811f 100644
--- a/util/config_file.c
+++ b/util/config_file.c
@@ -62,6 +62,9 @@
#include "sldns/wire2str.h"
#include "sldns/parseutil.h"
#include "iterator/iterator.h"
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
#ifdef HAVE_GLOB_H
# include <glob.h>
#endif
@@ -129,6 +132,7 @@ config_create(void)
cfg->tls_cert_bundle = NULL;
cfg->tls_win_cert = 0;
cfg->tls_use_sni = 1;
+ if(!(cfg->tls_protocols = strdup("TLSv1.2 TLSv1.3"))) goto error_exit;
cfg->https_port = UNBOUND_DNS_OVER_HTTPS_PORT;
if(!(cfg->http_endpoint = strdup("/dns-query"))) goto error_exit;
cfg->http_max_streams = 100;
@@ -147,6 +151,7 @@ config_create(void)
cfg->log_local_actions = 0;
cfg->log_servfail = 0;
cfg->log_destaddr = 0;
+ cfg->log_thread_id = 0;
#ifndef USE_WINSOCK
# ifdef USE_MINI_EVENT
/* select max 1024 sockets */
@@ -421,6 +426,7 @@ config_create(void)
cfg->dns_error_reporting = 0;
cfg->iter_scrub_ns = 20;
cfg->iter_scrub_cname = 11;
+ cfg->iter_scrub_rrsig = 8;
cfg->iter_scrub_promiscuous = 1;
cfg->max_global_quota = 200;
return cfg;
@@ -629,6 +635,11 @@ int config_set_option(struct config_file* cfg, const char* opt,
else S_STR("tls-ciphers:", tls_ciphers)
else S_STR("tls-ciphersuites:", tls_ciphersuites)
else S_YNO("tls-use-sni:", tls_use_sni)
+ else if(strcmp(opt, "tls-protocols:") == 0) {
+ if(!cfg_tls_protocols_is_valid(val)) return 0;
+ free(cfg->tls_protocols);
+ return (cfg->tls_protocols = strdup(val)) != NULL;
+ }
else S_NUMBER_NONZERO("https-port:", https_port)
else S_STR("http-endpoint:", http_endpoint)
else S_NUMBER_NONZERO("http-max-streams:", http_max_streams)
@@ -746,6 +757,7 @@ int config_set_option(struct config_file* cfg, const char* opt,
else S_YNO("log-local-actions:", log_local_actions)
else S_YNO("log-servfail:", log_servfail)
else S_YNO("log-destaddr:", log_destaddr)
+ else S_YNO("log-thread-id:", log_thread_id)
else S_YNO("val-permissive-mode:", val_permissive_mode)
else S_YNO("aggressive-nsec:", aggressive_nsec)
else S_YNO("ignore-cd-flag:", ignore_cd)
@@ -766,6 +778,7 @@ int config_set_option(struct config_file* cfg, const char* opt,
else S_YNO("dns-error-reporting:", dns_error_reporting)
else S_NUMBER_OR_ZERO("iter-scrub-ns:", iter_scrub_ns)
else S_NUMBER_OR_ZERO("iter-scrub-cname:", iter_scrub_cname)
+ else S_NUMBER_OR_ZERO("iter-scrub-rrsig:", iter_scrub_rrsig)
else S_YNO("iter-scrub-promiscuous:", iter_scrub_promiscuous)
else S_NUMBER_OR_ZERO("max-global-quota:", max_global_quota)
else S_YNO("serve-original-ttl:", serve_original_ttl)
@@ -1181,6 +1194,7 @@ config_get_option(struct config_file* cfg, const char* opt,
else O_STR(opt, "tls-ciphers", tls_ciphers)
else O_STR(opt, "tls-ciphersuites", tls_ciphersuites)
else O_YNO(opt, "tls-use-sni", tls_use_sni)
+ else O_STR(opt, "tls-protocols", tls_protocols)
else O_DEC(opt, "https-port", https_port)
else O_STR(opt, "http-endpoint", http_endpoint)
else O_UNS(opt, "http-max-streams", http_max_streams)
@@ -1202,6 +1216,7 @@ config_get_option(struct config_file* cfg, const char* opt,
else O_YNO(opt, "log-local-actions", log_local_actions)
else O_YNO(opt, "log-servfail", log_servfail)
else O_YNO(opt, "log-destaddr", log_destaddr)
+ else O_YNO(opt, "log-thread-id", log_thread_id)
else O_STR(opt, "pidfile", pidfile)
else O_YNO(opt, "hide-identity", hide_identity)
else O_YNO(opt, "hide-version", hide_version)
@@ -1243,6 +1258,7 @@ config_get_option(struct config_file* cfg, const char* opt,
else O_YNO(opt, "dns-error-reporting", dns_error_reporting)
else O_DEC(opt, "iter-scrub-ns", iter_scrub_ns)
else O_DEC(opt, "iter-scrub-cname", iter_scrub_cname)
+ else O_DEC(opt, "iter-scrub-rrsig", iter_scrub_rrsig)
else O_YNO(opt, "iter-scrub-promiscuous", iter_scrub_promiscuous)
else O_DEC(opt, "max-global-quota", max_global_quota)
else O_YNO(opt, "serve-original-ttl", serve_original_ttl)
@@ -1750,6 +1766,7 @@ config_delete(struct config_file* cfg)
config_delstrlist(cfg->tls_session_ticket_keys.first);
free(cfg->tls_ciphers);
free(cfg->tls_ciphersuites);
+ free(cfg->tls_protocols);
free(cfg->http_endpoint);
if(cfg->log_identity) {
log_ident_revert_to_default();
@@ -2923,6 +2940,29 @@ if_is_quic(const char* ifname, int default_port, int quic_port)
}
int
+cfg_ports_list_contains(char* ports, int p)
+{
+ char* now = ports, *after;
+ int extraport;
+ while(now && *now) {
+ while(isspace((unsigned char)*now))
+ now++;
+ if(!now)
+ break;
+ after = now;
+ extraport = (int)strtol(now, &after, 10);
+ if(extraport < 0 || extraport > 65535)
+ continue; /* Out of range. */
+ if(extraport == 0 && now == after)
+ return 0; /* Number could not be parsed. */
+ now = after;
+ if(extraport == p)
+ return 1;
+ }
+ return 0;
+}
+
+int
cfg_has_https(struct config_file* cfg)
{
int i;
@@ -2930,6 +2970,8 @@ cfg_has_https(struct config_file* cfg)
if(if_is_https(cfg->ifs[i], cfg->port, cfg->https_port))
return 1;
}
+ if(cfg_ports_list_contains(cfg->if_automatic_ports, cfg->https_port))
+ return 1;
return 0;
}
@@ -2942,9 +2984,83 @@ cfg_has_quic(struct config_file* cfg)
if(if_is_quic(cfg->ifs[i], cfg->port, cfg->quic_port))
return 1;
}
+ if(cfg_ports_list_contains(cfg->if_automatic_ports, cfg->quic_port))
+ return 1;
return 0;
#else
(void)cfg;
return 0;
#endif
}
+
+int
+cfg_tls_protocols_is_valid(const char* tls_protocols)
+{
+ const char* s = tls_protocols;
+ while(*s && isspace((unsigned char)*s)) s++;
+ while(*s && !isspace((unsigned char)*s)) {
+ if(strncmp(s, "TLSv1.2", 7) == 0 ||
+ strncmp(s, "TLSv1.3", 7) == 0) {
+ s += 7;
+ if(*s && !isspace((unsigned char)*s)) {
+ /* something is attached; fail */
+ return 0;
+ }
+ while(*s && isspace((unsigned char)*s))
+ s++;
+ continue;
+ }
+ return 0;
+ }
+ return 1;
+}
+
+void
+cfg_tls_protocols_allowed(const char* tls_protocols, int* allow12, int* allow13)
+{
+ const char* s = tls_protocols;
+ *allow12 = 0;
+ *allow13 = 0;
+ if(tls_protocols == NULL) return;
+ while(*s && isspace((unsigned char)*s)) s++;
+ while(*s && !isspace((unsigned char)*s)) {
+ if(strncmp(s, "TLSv1.2", 7) == 0) {
+ *allow12 = 1;
+ s += 7;
+ } else if(strncmp(s, "TLSv1.3", 7) == 0) {
+ *allow13 = 1;
+ s += 7;
+ } else {
+ /* Unknown word, this should never happen but skip to
+ * be safe */
+ while(*s && !isspace((unsigned char)*s))
+ s++;
+ }
+ while(*s && isspace((unsigned char)*s))
+ s++;
+ }
+}
+
+int
+file_get_mtime(const char* file, time_t* mtime, long* ns, int* nonexist)
+{
+ struct stat s;
+ if(stat(file, &s) != 0) {
+ *mtime = 0;
+ *ns = 0;
+ if(nonexist)
+ *nonexist = (errno == ENOENT);
+ return 0;
+ }
+ if(nonexist)
+ *nonexist = 0;
+ *mtime = s.st_mtime;
+#ifdef HAVE_STRUCT_STAT_ST_MTIMENSEC
+ *ns = s.st_mtimensec;
+#elif defined(HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC)
+ *ns = s.st_mtim.tv_nsec;
+#else
+ *ns = 0;
+#endif
+ return 1;
+}
diff --git a/util/config_file.h b/util/config_file.h
index f77538b0d6a5..6dadf0b72072 100644
--- a/util/config_file.h
+++ b/util/config_file.h
@@ -148,6 +148,8 @@ struct config_file {
char* tls_ciphersuites;
/** if SNI is to be used */
int tls_use_sni;
+ /** TLS protocols */
+ char* tls_protocols;
/** port on which to provide DNS over HTTPS service */
int https_port;
@@ -365,6 +367,8 @@ struct config_file {
char* log_identity;
/** log dest addr for log_replies */
int log_destaddr;
+ /** log linux thread ID */
+ int log_thread_id;
/** do not report identity (id.server, hostname.bind) */
int hide_identity;
@@ -790,6 +794,8 @@ struct config_file {
size_t iter_scrub_ns;
/** limit on CNAME, DNAME RRs in answer for the iterator scrubber. */
int iter_scrub_cname;
+ /** limit on RRSIGs for an RRset for the iterator scrubber. */
+ int iter_scrub_rrsig;
/** limit on upstream queries for an incoming query and subqueries. */
int max_global_quota;
/** Should the iterator scrub promiscuous NS rrsets, from positive
@@ -1481,4 +1487,30 @@ int cfg_has_quic(struct config_file* cfg);
/** get memory for string */
size_t getmem_str(char* str);
+/**
+ * See if the if_automatic_ports list contains the value.
+ * @param ports: String with port numbers.
+ * @param p: number looked for.
+ * @return true if found, false if not found or parse failure.
+ */
+int cfg_ports_list_contains(char* ports, int p);
+
+/**
+ * Check if the configured string contains supported TLS protocols.
+ * @param tls_protocols: String with TLS protocols.
+ * @return true if all options are valid, else false.
+ */
+int cfg_tls_protocols_is_valid(const char* tls_protocols);
+
+/**
+ * Based on the configured TLS protocols fill which ones are allowed.
+ * @param tls_protocols: String with TLS protocols.
+ * @param allow12: will be true if TLSv1.2 is configured.
+ * @param allow13: will be true if TLSv1.3 is configured.
+ */
+void cfg_tls_protocols_allowed(const char* tls_protocols, int* allow12, int* allow13);
+
+/** get the file mtime stat (or error, with errno and nonexist) */
+int file_get_mtime(const char* file, time_t* mtime, long* ns, int* nonexist);
+
#endif /* UTIL_CONFIG_FILE_H */
diff --git a/util/configlexer.c b/util/configlexer.c
index 6822fb43853c..276f8c6fea3c 100644
--- a/util/configlexer.c
+++ b/util/configlexer.c
@@ -354,8 +354,8 @@ static void yynoreturn yy_fatal_error ( const char* msg );
(yy_hold_char) = *yy_cp; \
*yy_cp = '\0'; \
(yy_c_buf_p) = yy_cp;
-#define YY_NUM_RULES 413
-#define YY_END_OF_BUFFER 414
+#define YY_NUM_RULES 416
+#define YY_END_OF_BUFFER 417
/* This struct is not used in this scanner,
but its presence is necessary. */
struct yy_trans_info
@@ -363,462 +363,465 @@ struct yy_trans_info
flex_int32_t yy_verify;
flex_int32_t yy_nxt;
};
-static const flex_int16_t yy_accept[4130] =
+static const flex_int16_t yy_accept[4154] =
{ 0,
- 1, 1, 387, 387, 391, 391, 395, 395, 399, 399,
- 1, 1, 403, 403, 407, 407, 414, 411, 1, 385,
- 385, 412, 2, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 412, 387, 388, 388,
- 389, 412, 391, 392, 392, 393, 412, 398, 395, 396,
- 396, 397, 412, 399, 400, 400, 401, 412, 410, 386,
- 2, 390, 410, 412, 406, 403, 404, 404, 405, 412,
- 407, 408, 408, 409, 412, 411, 0, 1, 2, 2,
- 2, 2, 411, 411, 411, 411, 411, 411, 411, 411,
+ 1, 1, 390, 390, 394, 394, 398, 398, 402, 402,
+ 1, 1, 406, 406, 410, 410, 417, 414, 1, 388,
+ 388, 415, 2, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 415, 390, 391, 391,
+ 392, 415, 394, 395, 395, 396, 415, 401, 398, 399,
+ 399, 400, 415, 402, 403, 403, 404, 415, 413, 389,
+ 2, 393, 413, 415, 409, 406, 407, 407, 408, 415,
+ 410, 411, 411, 412, 415, 414, 0, 1, 2, 2,
+ 2, 2, 414, 414, 414, 414, 414, 414, 414, 414,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 387, 0, 391, 0, 398, 0,
- 395, 399, 0, 410, 0, 2, 2, 410, 406, 0,
- 403, 407, 0, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 390, 0, 394, 0, 401, 0,
+ 398, 402, 0, 413, 0, 2, 2, 413, 409, 0,
+ 406, 410, 0, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 410, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 413, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 378, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 140, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 380, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 141, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
- 411, 411, 411, 411, 411, 150, 411, 411, 411, 411,
- 411, 411, 411, 411, 410, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
+ 414, 414, 414, 414, 414, 151, 414, 414, 414, 414,
+ 414, 414, 414, 414, 413, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
- 411, 411, 411, 411, 411, 122, 411, 411, 377, 411,
- 411, 411, 411, 411, 411, 411, 411, 8, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 141, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 155, 411, 411, 411, 410,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
+ 414, 414, 414, 414, 414, 123, 414, 414, 379, 414,
+ 414, 414, 414, 414, 414, 414, 414, 8, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 142, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 156, 414, 414, 414, 413,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 367, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 369, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 410,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 413, 414, 414, 414, 414, 414, 414, 414, 414,
- 411, 411, 411, 73, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 277, 411, 14, 15, 411, 411, 20, 19, 411,
- 411, 251, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 148, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
+ 414, 414, 414, 414, 414, 74, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 279, 414, 14, 15, 414, 414, 20,
+ 19, 414, 414, 253, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 149, 414, 414, 414, 414, 414, 414, 414, 414,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 249,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 3, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 251, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 3, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
- 411, 411, 411, 411, 411, 411, 411, 411, 410, 411,
- 411, 411, 411, 411, 411, 411, 411, 346, 411, 411,
- 411, 345, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 394, 411, 411,
- 411, 411, 411, 411, 411, 411, 72, 411, 411, 411,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 413, 414, 414, 414, 414, 414, 414, 414,
+ 414, 348, 414, 414, 414, 347, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 397, 414, 414, 414, 414, 414, 414, 414, 414,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 76, 411, 315, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 368, 369, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 77, 411, 411, 149, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 144, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 238, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
+ 73, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 77, 414, 317, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 370, 371, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 78, 414, 414, 150,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 145, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 240, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
- 22, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 176, 411, 411, 411, 411, 411, 411,
- 410, 394, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 120, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 323, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 16, 411, 411, 411, 411, 411, 411, 411, 411, 204,
+ 414, 414, 414, 414, 414, 22, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 177,
+ 414, 414, 414, 414, 414, 414, 413, 397, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 121, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 325, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 16, 414, 414, 414,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 175, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 119, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
+ 414, 414, 414, 414, 414, 205, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 176, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 120, 414, 414, 414, 414, 414, 414, 414,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 37, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 38, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 74, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 147, 411, 411, 411, 410,
- 411, 411, 411, 411, 411, 411, 139, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 37, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 38, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 75, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 148, 414, 414, 414, 413, 414, 414,
+ 414, 414, 414, 414, 140, 414, 414, 414, 414, 414,
- 411, 411, 411, 411, 411, 75, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 281, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 205, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 62, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 76, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 283,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 206, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 63, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 58, 59, 411, 301, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 67, 411, 68, 411, 411, 411, 411, 411, 411, 123,
- 411, 124, 411, 411, 411, 411, 411, 121, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 59, 60, 414, 303, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 68,
+ 414, 69, 414, 414, 414, 414, 414, 414, 124, 414,
+ 125, 414, 414, 414, 414, 414, 122, 414, 414, 414,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 7, 411, 411, 411, 411, 411, 410, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 266, 411, 411, 411, 411, 411, 411, 179, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 282, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 7, 414, 414, 414, 414, 414, 413, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 268, 414, 414, 414, 414, 414, 414, 180, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 284, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 51, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 63, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 229, 411,
- 228, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 17, 18, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 52, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 64, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 231, 414,
+ 230, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 17, 18,
- 411, 411, 411, 411, 411, 411, 411, 78, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 237, 411, 411, 411, 411, 411, 411, 411, 126,
- 411, 125, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 218, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 156, 411,
- 257, 411, 411, 411, 410, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 114,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 79, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 239, 414, 414, 414, 414, 414, 414, 414,
+ 127, 414, 126, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 219, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 157, 414, 259, 414, 414, 414, 413, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
- 100, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 250, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 105, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 71, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
+ 414, 115, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 101, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 252, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 106, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 72, 414, 414, 414, 414, 414, 414, 414,
- 411, 411, 411, 222, 223, 411, 411, 411, 411, 317,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 6, 411, 411,
- 411, 411, 411, 411, 411, 336, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 321,
- 411, 411, 411, 411, 411, 411, 411, 347, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 48, 411, 411, 411, 411, 411, 50,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 223, 224, 414, 414,
+ 414, 414, 414, 319, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 6, 414, 414, 414, 414, 414, 414, 414, 338,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 323, 414, 414, 414, 414, 414, 414,
+ 414, 349, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
- 411, 411, 411, 101, 411, 411, 411, 411, 411, 60,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 410, 411, 214, 411, 411, 411, 151,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 242, 411, 411, 215, 411, 411,
- 411, 411, 411, 411, 262, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 61, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 153, 132,
- 411, 133, 411, 411, 411, 411, 131, 411, 411, 411,
+ 414, 414, 414, 414, 414, 414, 414, 48, 414, 414,
+ 414, 414, 414, 414, 50, 414, 414, 414, 102, 414,
+ 414, 414, 414, 414, 61, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 413, 414,
+ 215, 414, 414, 414, 152, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 244,
+ 414, 414, 216, 414, 414, 414, 414, 414, 414, 264,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 62, 414, 414, 414, 414, 414, 414, 414, 414,
- 411, 411, 411, 411, 411, 411, 411, 411, 172, 411,
- 411, 56, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 299, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 216, 411, 411, 411, 411,
- 411, 227, 219, 411, 226, 411, 411, 221, 411, 411,
- 411, 411, 411, 411, 411, 261, 411, 411, 411, 411,
- 411, 411, 265, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 118, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
+ 414, 414, 414, 154, 133, 414, 134, 414, 414, 414,
+ 414, 132, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 173, 414, 414, 57, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 301, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 217, 414, 414, 414, 414, 414, 228, 220, 414,
+ 227, 414, 414, 414, 222, 414, 414, 414, 414, 414,
+ 414, 414, 263, 414, 414, 414, 414, 414, 414, 267,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 145,
- 411, 411, 411, 411, 411, 411, 411, 411, 69, 411,
- 411, 411, 411, 31, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 21, 411, 411, 411,
- 411, 411, 411, 411, 32, 41, 411, 184, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 212, 411, 411, 410, 411, 411,
- 411, 411, 372, 411, 411, 86, 411, 89, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 373, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 325, 411,
+ 414, 119, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 146, 414, 414, 414,
+ 414, 414, 414, 414, 414, 70, 414, 414, 414, 414,
+ 31, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 21, 414, 414, 414, 414, 414, 414,
+ 414, 414, 32, 41, 414, 185, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 213, 414, 414, 413, 414, 414, 414, 414,
+ 374, 414, 414, 87, 414, 90, 414, 414, 414, 414,
- 411, 411, 411, 278, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 134, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 171, 411, 52, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 272, 411, 411, 411, 411,
- 411, 411, 411, 411, 340, 411, 411, 411, 411, 411,
- 381, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
+ 414, 414, 414, 414, 414, 414, 375, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 327, 414, 414, 414,
+ 414, 280, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 135, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 172, 414, 53, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 274, 414, 414, 414, 414, 414, 414,
+ 414, 414, 342, 414, 414, 414, 414, 414, 383, 414,
- 178, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 334, 411, 411, 411, 411, 248,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 358, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 197, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 127,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 191, 411, 206, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 410, 411, 159, 411, 411,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 229,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 179, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 336, 414, 414, 414, 414, 250,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 360, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 198, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 128,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 51, 414, 414, 414, 414, 414, 414, 414, 414,
- 411, 411, 411, 411, 411, 411, 113, 411, 411, 411,
- 411, 240, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 263, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 290, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 152, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 195, 411, 411, 411, 411, 411, 411, 411,
- 90, 411, 91, 411, 411, 411, 411, 411, 275, 411,
- 411, 411, 411, 411, 70, 343, 411, 411, 411, 411,
+ 414, 414, 414, 414, 192, 414, 207, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 413, 414, 160, 414,
+ 414, 414, 414, 414, 414, 414, 414, 114, 414, 414,
+ 414, 414, 242, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 265, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 292, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 153, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 196, 414, 414, 414, 414, 414, 414,
- 411, 411, 411, 99, 207, 411, 230, 411, 267, 411,
- 411, 220, 318, 411, 411, 411, 411, 411, 313, 411,
- 411, 411, 82, 411, 209, 411, 411, 411, 411, 411,
- 411, 9, 411, 411, 411, 411, 411, 117, 411, 411,
- 411, 411, 411, 411, 305, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 239, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
+ 414, 91, 414, 92, 414, 414, 414, 414, 414, 277,
+ 414, 414, 414, 414, 414, 71, 345, 414, 414, 414,
+ 414, 414, 414, 414, 414, 100, 208, 414, 232, 414,
+ 269, 414, 414, 221, 320, 414, 414, 414, 414, 414,
+ 315, 414, 414, 414, 83, 414, 210, 414, 414, 414,
+ 414, 414, 414, 9, 414, 414, 414, 414, 414, 118,
+ 414, 414, 414, 414, 414, 414, 307, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 241,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 410, 411, 411, 411,
- 411, 194, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 196, 256, 180, 411,
- 411, 324, 411, 411, 411, 411, 411, 289, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 252, 411, 411, 411, 411, 411, 411, 316, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 177, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 413, 414,
+ 414, 414, 414, 195, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 197, 258,
+ 181, 414, 414, 326, 414, 414, 414, 414, 414, 291,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 254, 414, 414, 414, 414, 414, 414, 318,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 344,
- 411, 411, 411, 208, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 81, 83, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 116, 411, 411, 411,
- 411, 411, 411, 303, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 320, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 244, 411, 39, 33, 35, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 40,
- 411, 34, 36, 411, 42, 411, 411, 411, 411, 411,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 178,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 346, 414, 414, 414, 414, 209, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 82, 84, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 117,
+ 414, 414, 414, 414, 414, 414, 305, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 322, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 246, 414, 39, 33, 35, 414,
- 411, 411, 112, 411, 190, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 410, 411, 411, 411, 411, 411,
- 411, 411, 411, 348, 411, 411, 411, 411, 411, 246,
- 243, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 80, 411, 411, 411, 154, 411, 135,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 173, 53, 411, 411, 411, 402, 13, 411,
- 411, 411, 411, 411, 411, 411, 160, 411, 411, 411,
- 411, 411, 411, 411, 411, 338, 411, 341, 411, 382,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 40, 414, 34, 36, 414, 42, 414, 414,
+ 414, 414, 414, 414, 414, 113, 414, 191, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 413, 414, 414,
+ 414, 414, 414, 414, 414, 414, 350, 414, 414, 414,
+ 414, 414, 248, 245, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 81, 414, 414, 414,
+ 155, 414, 136, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 174, 54, 414, 414, 414,
- 411, 411, 411, 411, 411, 411, 383, 411, 411, 411,
- 411, 411, 411, 411, 12, 411, 411, 23, 411, 411,
- 411, 411, 411, 411, 411, 309, 411, 411, 411, 411,
- 365, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 322, 411, 411, 411, 411, 84, 411, 254, 411, 411,
- 411, 411, 411, 245, 411, 411, 411, 411, 79, 411,
- 411, 411, 411, 411, 411, 24, 411, 411, 49, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 189, 188, 411, 411, 411, 411, 402, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 247,
+ 405, 13, 414, 414, 414, 414, 414, 414, 414, 161,
+ 414, 414, 414, 414, 414, 414, 414, 414, 340, 414,
+ 343, 414, 384, 414, 385, 414, 414, 414, 414, 414,
+ 386, 414, 414, 414, 414, 414, 414, 414, 12, 414,
+ 414, 23, 414, 414, 414, 414, 414, 414, 414, 311,
+ 414, 414, 414, 414, 367, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 324, 414, 414, 414, 414, 85,
+ 414, 256, 414, 414, 414, 414, 414, 247, 414, 414,
+ 414, 414, 80, 414, 414, 414, 414, 414, 414, 24,
+ 414, 414, 49, 414, 414, 414, 414, 414, 414, 414,
- 241, 411, 411, 411, 264, 411, 411, 326, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 202, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 92, 411, 411,
- 411, 411, 411, 411, 411, 411, 304, 411, 411, 411,
- 411, 411, 225, 411, 411, 411, 411, 411, 411, 253,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 311, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 350, 411, 354, 352, 186, 411, 411, 411, 85,
+ 414, 414, 414, 414, 414, 190, 189, 414, 414, 414,
+ 414, 405, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 249, 243, 414, 414, 414, 266, 414,
+ 414, 328, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 203, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 93, 414, 414, 414, 414, 414, 414, 414, 414,
+ 306, 414, 414, 414, 414, 414, 226, 414, 414, 414,
+ 414, 414, 414, 255, 414, 414, 414, 414, 414, 414,
- 411, 411, 411, 411, 198, 411, 411, 411, 411, 411,
- 128, 130, 129, 411, 411, 411, 26, 411, 411, 181,
- 411, 183, 411, 231, 411, 411, 411, 411, 187, 411,
- 411, 258, 411, 411, 411, 411, 268, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 162, 374, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 297,
- 411, 411, 280, 411, 411, 411, 411, 411, 411, 411,
- 375, 411, 28, 411, 319, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 97, 232, 411, 411, 274, 411,
+ 414, 414, 414, 414, 313, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 352, 414, 356, 354, 187,
+ 414, 414, 414, 86, 414, 414, 414, 414, 199, 414,
+ 414, 414, 414, 414, 129, 131, 130, 414, 414, 414,
+ 26, 414, 414, 182, 414, 184, 414, 233, 414, 414,
+ 414, 414, 188, 414, 414, 260, 414, 414, 414, 414,
+ 270, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 163, 376, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 299, 414, 414, 282, 414, 414, 414,
+ 414, 414, 414, 414, 377, 414, 28, 414, 321, 414,
- 411, 411, 302, 411, 342, 411, 411, 224, 411, 411,
- 314, 411, 411, 411, 312, 64, 411, 411, 411, 411,
- 411, 411, 411, 4, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 143, 411, 161, 411,
- 411, 411, 203, 30, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 271, 43, 44, 411, 411,
- 411, 411, 411, 411, 411, 379, 411, 411, 327, 411,
- 411, 411, 411, 411, 411, 411, 288, 411, 411, 411,
- 411, 411, 411, 411, 411, 235, 411, 411, 411, 411,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 98, 234,
+ 414, 414, 276, 414, 414, 414, 304, 414, 344, 414,
+ 414, 225, 414, 414, 316, 414, 414, 414, 314, 65,
+ 414, 414, 414, 414, 414, 414, 414, 4, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 144, 414, 162, 414, 414, 414, 204, 30, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 273,
+ 43, 44, 414, 414, 414, 414, 414, 414, 414, 381,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 96, 95, 411, 411, 65, 411, 411, 300,
- 308, 411, 411, 276, 411, 411, 411, 411, 411, 11,
- 411, 411, 411, 411, 380, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 142, 411, 411,
- 411, 411, 411, 411, 233, 102, 411, 411, 46, 411,
- 411, 411, 411, 411, 411, 411, 411, 193, 411, 259,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 164,
- 411, 411, 411, 411, 279, 411, 411, 411, 411, 411,
- 287, 411, 411, 411, 411, 157, 411, 411, 411, 136,
+ 414, 414, 329, 414, 414, 414, 414, 414, 414, 414,
+ 290, 414, 414, 414, 414, 414, 414, 414, 414, 237,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 97, 96, 414, 414,
+ 66, 414, 414, 302, 310, 414, 414, 278, 414, 414,
+ 414, 414, 414, 11, 414, 414, 414, 414, 382, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 143, 414, 414, 414, 414, 414, 414, 235, 103,
+ 414, 414, 46, 414, 414, 414, 414, 414, 414, 414,
+ 414, 194, 414, 261, 414, 414, 414, 414, 414, 414,
- 138, 137, 411, 411, 411, 104, 109, 103, 411, 411,
- 174, 411, 411, 411, 411, 93, 411, 273, 310, 411,
- 411, 411, 411, 411, 411, 411, 10, 411, 411, 411,
- 411, 411, 306, 411, 411, 364, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 371,
- 45, 411, 411, 411, 411, 411, 192, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 110, 108, 411, 411, 411,
- 57, 411, 411, 94, 411, 339, 411, 411, 411, 411,
+ 414, 414, 414, 165, 414, 414, 414, 414, 281, 414,
+ 414, 414, 414, 414, 289, 414, 414, 414, 414, 158,
+ 414, 414, 414, 137, 139, 138, 414, 414, 414, 105,
+ 110, 104, 414, 414, 175, 414, 414, 414, 414, 94,
+ 414, 275, 312, 414, 414, 414, 414, 414, 414, 414,
+ 10, 414, 414, 414, 414, 414, 308, 414, 414, 366,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 373, 45, 414, 414, 414, 414, 414,
+ 193, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
- 411, 25, 411, 411, 411, 411, 411, 217, 411, 411,
- 360, 362, 411, 411, 411, 411, 411, 359, 356, 411,
- 411, 411, 411, 234, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 213, 411, 411, 182, 87, 88,
- 411, 411, 411, 411, 411, 411, 328, 411, 411, 411,
- 411, 411, 411, 411, 284, 411, 411, 283, 158, 411,
- 411, 107, 411, 106, 54, 411, 411, 384, 165, 166,
- 169, 170, 167, 168, 98, 337, 411, 411, 307, 411,
- 411, 411, 411, 411, 411, 146, 411, 411, 411, 411,
- 27, 411, 185, 411, 411, 411, 411, 411, 211, 411,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 111,
+ 109, 414, 414, 414, 58, 414, 414, 95, 414, 341,
+ 414, 414, 414, 414, 414, 25, 414, 414, 414, 414,
+ 414, 218, 414, 414, 362, 364, 414, 414, 414, 414,
+ 414, 361, 358, 414, 414, 414, 414, 236, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 214, 414,
+ 414, 183, 88, 89, 414, 414, 414, 414, 414, 414,
+ 330, 414, 414, 414, 414, 414, 414, 414, 286, 414,
+ 414, 285, 159, 414, 414, 108, 414, 107, 55, 414,
+ 414, 387, 166, 167, 170, 171, 168, 169, 99, 339,
- 270, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 200, 199, 236, 47, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 335, 411, 411, 411, 366, 411, 411, 411, 411,
- 411, 411, 411, 115, 411, 411, 269, 411, 411, 298,
- 332, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 376, 411, 111, 55, 66, 5, 411, 411,
+ 414, 414, 309, 414, 414, 414, 414, 414, 414, 147,
+ 414, 414, 414, 414, 27, 414, 186, 414, 414, 414,
+ 414, 414, 212, 414, 272, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 201, 200, 238, 47, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 337, 414, 414, 414, 368,
+ 414, 414, 414, 414, 414, 414, 414, 116, 414, 414,
- 351, 411, 355, 353, 411, 411, 255, 411, 411, 411,
- 411, 333, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 285, 29, 411, 411, 411, 411, 411, 411, 260,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 286, 411, 411, 411, 411, 411, 411, 411, 163, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 201, 411, 210, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 361, 363, 357, 411, 411, 329, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 370, 349, 411, 411,
+ 271, 414, 414, 300, 334, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 378, 414, 112, 56,
+ 67, 5, 414, 414, 353, 414, 357, 355, 414, 414,
+ 257, 414, 414, 414, 414, 335, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 287, 29, 414, 414, 414,
+ 414, 414, 414, 262, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 288, 414, 414, 414, 414, 414,
+ 414, 414, 164, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 202, 414, 211, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 363, 365, 359, 414,
- 293, 411, 411, 411, 411, 411, 330, 411, 411, 411,
- 411, 411, 411, 331, 411, 411, 411, 291, 411, 294,
- 295, 411, 411, 411, 411, 411, 292, 296, 0
+ 414, 331, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 372, 351, 414, 414, 295, 414, 414, 414, 414, 414,
+ 332, 414, 414, 414, 414, 414, 414, 333, 414, 414,
+ 414, 293, 414, 296, 297, 414, 414, 414, 414, 414,
+ 294, 298, 0
} ;
static const YY_CHAR yy_ec[256] =
@@ -864,17 +867,17 @@ static const YY_CHAR yy_meta[67] =
1, 1, 1, 1, 1, 1
} ;
-static const flex_int16_t yy_base[4148] =
+static const flex_int16_t yy_base[4172] =
{ 0,
0, 0, 64, 67, 70, 72, 78, 84, 89, 92,
- 131, 137, 112, 118, 123, 142, 573, 532, 96,11768,
- 11768,11768, 160, 185, 116, 183, 229, 132, 175, 173,
+ 131, 137, 112, 118, 123, 142, 573, 532, 96,11846,
+ 11846,11846, 160, 185, 116, 183, 229, 132, 175, 173,
278, 50, 66, 120, 230, 268, 159, 325, 226, 377,
- 418, 290, 318, 279, 177, 126, 380, 531,11768,11768,
- 11768, 95, 469,11768,11768,11768, 181, 464, 493,11768,
- 11768,11768, 238, 424,11768,11768,11768, 104, 422,11768,
- 394,11768, 167, 350, 380, 402,11768,11768,11768, 405,
- 329,11768,11768,11768, 146, 306, 424, 168, 0, 436,
+ 418, 290, 318, 279, 177, 126, 380, 531,11846,11846,
+ 11846, 95, 469,11846,11846,11846, 181, 464, 493,11846,
+ 11846,11846, 238, 424,11846,11846,11846, 104, 422,11846,
+ 394,11846, 167, 350, 380, 402,11846,11846,11846, 405,
+ 329,11846,11846,11846, 146, 306, 424, 168, 0, 436,
0, 0, 225, 219, 252, 209, 319, 215, 248, 357,
283, 339, 417, 428, 429, 354, 371, 444, 263, 463,
@@ -901,16 +904,16 @@ static const flex_int16_t yy_base[4148] =
1056, 1059, 1066, 1064, 1069, 1072, 1078, 1093, 1096, 1076,
150, 1077, 1105, 1108, 1098, 1111, 1107, 1113, 1118, 1119,
- 1123,11768, 1103, 1129, 1120, 1146, 1124, 1145, 1130, 1147,
+ 1123,11846, 1103, 1129, 1120, 1146, 1124, 1145, 1130, 1147,
1134, 1164, 1140, 1144, 1157, 1150, 1167, 1177, 1170, 1181,
1173, 1184, 1195, 1191, 1200, 1186, 1187, 1206, 1213, 1205,
1244, 1215, 1207, 1223, 1289, 1238, 1218, 1227, 1257, 1272,
488, 1243, 1249, 1278, 1270, 1286, 1297, 1273, 1284, 1277,
1312, 1302, 1325, 1311, 1316, 1313, 1211, 1320, 1327, 1328,
- 1334, 1242, 1359,11768, 1330, 1361, 1356, 1363, 1369, 1367,
+ 1334, 1242, 1359,11846, 1330, 1361, 1356, 1363, 1369, 1367,
1365, 1386, 1399, 1355, 1383, 1390, 1400, 1398, 1447, 1495,
- 1389, 1401, 1397, 1417, 1394,11768, 1434, 1440, 1544, 1428,
+ 1389, 1401, 1397, 1417, 1394,11846, 1434, 1440, 1544, 1428,
1442, 1419, 1439, 1466, 1436, 1463, 1458, 1467, 1478, 1493,
1444, 1475, 1488, 1490, 1517, 1545, 1506, 1507, 1522, 1534,
1535, 1554, 1515, 1551, 1555, 1553, 1570, 1562, 1573, 1524,
@@ -919,872 +922,878 @@ static const flex_int16_t yy_base[4148] =
1668, 1713, 1666, 1655, 1667, 1670, 1669, 1671, 1659, 1480,
1679, 1682, 1687, 1696, 1701, 1695, 1711, 1705, 1715, 1712,
1732, 1673, 1736, 1717, 1722, 1729, 1757, 1760, 1766, 1743,
- 1749, 1753, 1761, 1776, 1774, 1751, 1778, 1780, 1777, 1797,
+ 1749, 1753, 1761, 1776, 1778, 1751, 1780, 1781, 1787, 1783,
- 1789, 1806, 1770, 1794, 1792,11768, 1820, 1822,11768, 1804,
- 1818, 1807, 1821, 1808, 1827, 1817, 1831,11768, 1842, 1845,
- 1819, 1847, 1851, 1856, 1852, 1858, 1866, 1870, 1859, 1869,
- 1878, 1874, 1876, 1890, 1887, 1886, 1907, 1914, 1897, 1915,
- 1894, 1898, 1908, 1913, 1917, 1921, 1918, 1935, 1933, 1940,
- 1980,11768, 1938, 1934, 1941, 1960, 1947, 1965, 1968, 1971,
- 2005, 1962, 2004, 2001, 2003, 2030, 2007, 2024, 2015, 1904,
- 2023, 2037, 2021, 2051, 2039, 2041, 2044, 2057, 2036, 2047,
- 2056, 2063, 2068, 2062, 2070,11768, 2079, 2066, 2088, 2090,
- 1974, 2086, 2085, 2082, 2093, 1976, 2095, 2105, 2104, 2103,
+ 1796, 1799, 1788, 1810, 1794,11846, 1824, 1819,11846, 1806,
+ 1817, 1807, 1821, 1808, 1834, 1822, 1833,11846, 1844, 1814,
+ 1838, 1855, 1826, 1868, 1854, 1865, 1880, 1871, 1863, 1875,
+ 1881, 1879, 1872, 1869, 1885, 1889, 1891, 1920, 1903, 1914,
+ 1900, 1902, 1921, 1907, 1926, 1913, 1927, 1929, 1916, 1944,
+ 1984,11846, 1940, 1943, 1946, 1962, 1949, 1969, 1959, 1978,
+ 2009, 1979, 2008, 2007, 1972, 2027, 2001, 2022, 2012, 2021,
+ 2031, 2019, 2030, 2060, 2037, 2050, 2041, 2065, 2048, 2047,
+ 2058, 2064, 2053, 2071, 1936,11846, 2083, 2075, 2077, 2093,
+ 2106, 2091, 2090, 2088, 2098, 2111, 2094, 2096, 2115, 2113,
- 2109, 2102, 2125, 2124, 1978, 2127, 2145, 2146, 2130, 2141,
- 2134, 2132, 2150, 2152, 2159, 2131, 2169, 2154, 2192, 2167,
- 2163, 2164, 782, 2172, 2184, 2193, 2200, 2203, 2183, 2181,
- 2194, 2210, 2199, 2190, 2208, 2211, 2217, 2219, 2205, 2221,
- 2223, 2227, 2230, 2235, 2240, 2241, 2238, 2243, 2250, 2251,
- 2254, 2248, 2259, 2265, 2282, 2249, 2285, 2276, 2283, 2277,
- 2286, 2300, 2303, 2304, 2274,11768, 2314, 2312, 2310, 2322,
- 2324, 2307, 2331, 2330, 2335, 2327, 2320, 2341, 2329, 2354,
- 2344, 2361, 2357, 2353, 2358, 2369, 2355, 2365, 2362, 2381,
- 2371, 2392, 2388, 2399, 2413, 2391, 2401, 2409, 2398, 2406,
+ 2125, 1956, 2108, 2128, 2134, 2132, 2136, 2142, 2133, 2146,
+ 2137, 2135, 2143, 2152, 2154, 2140, 2171, 2166, 2191, 2161,
+ 2165, 2168, 782, 2194, 2196, 2197, 2199, 2204, 2184, 2179,
+ 2193, 2207, 2198, 2189, 2211, 2209, 2217, 2218, 2221, 2224,
+ 2220, 2223, 2229, 2234, 2237, 2239, 2256, 2244, 2251, 2249,
+ 2246, 2247, 2255, 2267, 2280, 2273, 2293, 2270, 2290, 2271,
+ 2279, 2298, 2306, 2294, 2309,11846, 2307, 2282, 2317, 2316,
+ 2323, 2320, 2335, 2338, 2337, 2329, 2330, 2351, 2334, 2346,
+ 2350, 2343, 2360, 2362, 2361, 2366, 2369, 2370, 2378, 2367,
+ 2375, 2387, 2400, 2397, 2401, 2414, 2390, 2412, 2411, 2402,
- 2408, 2418, 2405, 2400, 2425, 2442, 2435, 2419, 2434, 2432,
- 2458, 2441, 2440, 2447, 2450, 2488, 2465, 2451, 2467, 2482,
- 2452, 2483, 2489, 2494, 2495, 2478, 2490, 2521, 2524, 2503,
- 2512, 2530, 2519, 2539, 2522, 2527, 2529, 2534, 2523, 2535,
- 2485, 2540, 2549, 2560, 2562, 2563, 2559, 2580, 2569, 2585,
- 2568, 2579, 2582, 2572, 2576, 2595, 2596, 2598, 2601, 2608,
- 2611, 2612, 2613, 2628, 2620, 2635, 2638, 2623, 2627, 2640,
- 2652, 2643, 2655, 2649, 2659, 2667, 2675, 2670, 2657, 2678,
- 2682, 2673, 2685, 2679, 2676, 2702, 2704, 2708, 2618, 2716,
- 2719, 2723, 2710, 2717, 2715, 2725, 2718, 2712, 2689, 2755,
+ 2395, 2407, 2418, 2413, 2430, 2439, 2440, 2434, 2424, 2441,
+ 2436, 2458, 2442, 2445, 2447, 2457, 2495, 2459, 2462, 2466,
+ 2472, 2474, 2464, 2483, 2489, 2502, 2485, 2491, 2504, 2511,
+ 2523, 2501, 2531, 2516, 2537, 2527, 2534, 2538, 2541, 2530,
+ 2543, 2542, 2540, 2546, 2557, 2562, 2560, 2561, 2582, 2566,
+ 2579, 2571, 2583, 2584, 2573, 2574, 2598, 2599, 2602, 2600,
+ 2610, 2618, 2613, 2615, 2619, 2609, 2621, 2648, 2646, 2625,
+ 2637, 2640, 2643, 2658, 2652, 2653, 2661, 2662, 2666, 2675,
+ 2667, 2676, 2687, 2679, 2693, 2677, 2696, 2698, 2702, 2703,
+ 2717, 2716, 2719, 2701, 2712, 2724, 2720, 2728, 2727, 2729,
- 2741, 2753, 2752,11768, 2743, 2739, 2744, 2745, 2769, 2766,
- 2742, 2757, 2779, 2781, 2787, 2771, 2770, 2783, 2782, 2791,
- 2837,11768, 2788,11768,11768, 777, 2799,11768,11768, 2808,
- 2814,11768, 2802, 2821, 2831, 2809, 2841, 2852, 2854, 2850,
- 2805, 2848, 2843, 2792, 2890, 2851, 2869, 2866, 2877, 2896,
- 2879, 2906, 2880, 2886, 2915, 2901, 2914, 2922, 2945, 2924,
- 2933, 2929, 2941, 2947, 2949, 2952, 2957, 2696, 2961, 2938,
- 2940, 2960, 2951, 2965, 2974, 2972, 2982, 2979, 2975, 2984,
- 2996, 2986, 2988, 2981, 2804, 3009, 2833, 3033,11768, 3011,
- 3010, 3015, 3008, 3013, 3019, 3023, 3024, 3050, 3031, 3041,
+ 2736, 2756, 2745, 2747, 2755,11846, 2740, 2766, 2751, 2749,
+ 2767, 2761, 2760, 2762, 2786, 2795, 2791, 2787, 2794, 2788,
+ 2778, 2784, 2832,11846, 2793,11846,11846, 777, 2792,11846,
+ 11846, 2829, 2833,11846, 2818, 2836, 2846, 2800, 2819, 2847,
+ 2856, 2859, 2831, 2858, 2860, 2867, 2907, 2868, 2885, 2875,
+ 2871, 2873, 2879, 2917, 2886, 2874, 2900, 2916, 2897, 2930,
+ 2945, 2932, 2941, 2935, 2924, 2946, 2949, 2958, 2960, 2963,
+ 2968, 2955, 2952, 2974, 2957, 2966, 2964, 2972, 2988, 2981,
+ 2984, 2992, 2999, 2985, 2997, 2995, 3019, 3013, 3015, 3021,
+ 3034,11846, 3023, 3030, 3033, 3014, 3024, 3029, 3042, 3047,
- 3040, 3049, 3052, 3036, 3056, 3044, 3060, 3051, 3063, 3066,
- 3053, 3067, 3072, 3076, 3080, 3073, 3100, 3083, 3079,11768,
- 3093, 3087, 3082, 3095, 3103, 3092, 3106, 3112, 3119, 3114,
- 3131, 3132, 3122, 3113, 3133, 3139, 3162, 3140, 3146, 3141,
- 3151, 3144, 3148, 3158, 3179,11768, 3175, 3184, 3165, 3183,
- 3166, 3189, 3171, 3180, 3174, 3185, 3199, 3197, 3215, 3204,
- 3206, 3233, 3221, 3217, 3218, 3224, 3223, 3232, 3228, 3226,
- 3249, 3239, 3250, 3248, 3253, 3251, 3264, 3259, 3260, 3265,
- 3263, 3273, 3246, 3290, 3274, 3299, 3289, 3277, 3307, 3310,
- 3304, 3294, 3302, 3318, 3291, 3324, 3332, 3333, 3316, 3320,
+ 3044, 3050, 3048, 3055, 3038, 3058, 3046, 3059, 3060, 3061,
+ 3068, 3076, 3071, 3080, 3065, 3097, 3091, 3093, 3102, 3109,
+ 3088, 3094,11846, 3099, 3104, 3111, 3103, 3117, 3090, 3119,
+ 3120, 3138, 3133, 3145, 3146, 3136, 3128, 3147, 3141, 3162,
+ 3144, 3165, 3152, 3157, 3173, 3163, 3168, 3185,11846, 3189,
+ 3197, 3177, 3194, 3180, 3200, 3190, 3202, 3184, 3211, 3221,
+ 3212, 3215, 3216, 3217, 3213, 3232, 3233, 3237, 3228, 3238,
+ 3244, 3243, 3240, 3261, 3256, 3257, 3255, 3260, 3265, 3278,
+ 3270, 3271, 3267, 3280, 3281, 3284, 3300, 3305, 3292, 3314,
+ 3296, 3295, 3319, 3325, 3317, 3311, 3323, 3324, 3313, 3338,
- 3329, 3337, 3328, 3336, 3326, 3341, 3352, 3358, 3367, 3351,
- 3368, 3369, 3355, 3353, 3371, 3378, 3387,11768, 3365, 3388,
- 3404,11768, 3395, 3392, 3390, 3443, 3415, 3422, 3405, 3413,
- 3424, 3416, 3453, 3436, 3445, 3426, 3447, 3462, 3451, 3482,
- 3481, 3479, 3491, 3483, 3496, 3487, 3500, 3488, 3469, 3492,
- 3489, 3512, 3526, 3527, 3530, 3363, 3435, 3536, 414, 3517,
- 3515, 3522, 3525, 3570, 3534, 3540, 3542, 3538, 3554, 3561,
- 3567, 3560, 3564, 3565, 3581, 3585, 3583, 3591, 3608, 3597,
- 3601, 3598, 3602, 3603, 3595, 3611, 3612,11768, 3638, 3631,
- 3618, 3639, 3630, 3654, 3645, 3633,11768, 3642, 3646, 3640,
+ 3341, 3350, 3344, 3331, 3340, 3359, 3352, 3355, 3342, 3351,
+ 3358, 3378, 3388, 3374, 3371, 3383, 3370, 3373, 3380, 3398,
+ 3385,11846, 3382, 3399, 3414,11846, 3405, 3407, 3408, 3454,
+ 3419, 3441, 3433, 3434, 3439, 3425, 3467, 3453, 3447, 3440,
+ 3464, 3474, 3468, 3488, 3484, 3489, 3492, 3495, 3512, 3502,
+ 3499, 3507, 3518, 3511, 3519, 3515, 3520, 3522, 3531, 3548,
+ 3555, 3553, 414, 3561, 3535, 3545, 3547, 3592, 3556, 3562,
+ 3563, 3558, 3575, 3581, 3588, 3587, 3583, 3595, 3597, 3602,
+ 3614, 3578, 3626, 3605, 3619, 3624, 3629, 3632, 3607, 3638,
+ 3634,11846, 3657, 3646, 3636, 3661, 3658, 3665, 3663, 3643,
- 3658, 3641, 3665, 3657, 3670, 3660, 3672, 3687, 3671, 3678,
- 3684, 3685, 3689, 3679, 3705,11768, 3692,11768, 3710, 3706,
- 3703, 3700, 3723, 3714, 3715, 3722, 3711, 3730, 3735, 3738,
- 11768,11768, 3739, 3741, 3749, 3747, 3752, 3759, 3751, 3754,
- 3764,11768, 3766, 3788,11768, 3791, 3774, 3781, 3776, 3778,
- 3775, 3779, 3800, 3794, 3805, 3804, 3806, 3815, 3808, 3802,
- 3816, 3835, 3819, 3833, 3830,11768, 3847, 3842, 3831, 3849,
- 3851, 3837, 3850, 3861, 3862, 3858,11768, 3876, 3857, 3881,
- 3869, 3896, 3868, 3883, 3880, 3899, 3900, 3886, 3893, 3891,
- 3903, 3908, 3910, 3920, 3927, 3919, 3929, 3937, 3931, 3945,
+ 11846, 3669, 3670, 3656, 3680, 3673, 3677, 3682, 3697, 3683,
+ 3698, 3690, 3688, 3699, 3705, 3707, 3713, 3706, 3721, 3725,
+ 11846, 3715,11846, 3730, 3727, 3735, 3726, 3732, 3750, 3741,
+ 3742, 3743, 3740, 3767, 3768,11846,11846, 3770, 3771, 3757,
+ 3764, 3784, 3785, 3777, 3774, 3783,11846, 3790, 3814,11846,
+ 3804, 3792, 3812, 3810, 3798, 3816, 3800, 3836, 3813, 3819,
+ 3828, 3834, 3841, 3842, 3795, 3838, 3833, 3847, 3859, 3853,
+ 11846, 3865, 3869, 3861, 3868, 3870, 3871, 3874, 3885, 3898,
+ 3892,11846, 3899, 3891, 3900, 3894, 3843, 3908, 3902, 3895,
+ 3917, 3922, 3910, 3897, 3919, 3933, 3932, 3946, 3953, 3956,
- 11768, 3938, 3923, 3922, 3949, 3947, 3953, 3946, 3948, 3954,
- 3944, 3958, 3963, 3964, 3972, 3973, 3969, 3976, 3979, 3965,
- 4000, 3982, 3996, 4002, 3989, 3993, 3999, 3994, 158, 3995,
- 4009, 4014, 3992,11768, 4023, 4021, 4031, 4024, 4038, 4041,
- 4027, 115, 4035, 4037, 4044, 4048, 4054, 4040, 4061, 4057,
- 4071, 4083, 4064, 4070, 4073, 4081, 4090, 4082, 4079, 4080,
- 4091, 4088, 4105, 4098, 4095, 4111, 4108,11768, 4131, 4119,
- 4130, 4128, 4118, 4116, 4125, 4135, 4122, 4160,11768, 4144,
- 4155, 4145, 4139, 4163, 4146, 4164, 4177, 4162, 4166, 4185,
- 11768, 4183, 4190, 4186, 4200, 4191, 4202, 4203, 4201,11768,
+ 3947, 3949, 3958, 3957, 3961,11846, 3959, 3950, 3951, 3963,
+ 3960, 3967, 3955, 3966, 3987, 3994, 3982, 3984, 3998, 4002,
+ 3993, 4007, 3988, 4010, 3989, 4015, 4018, 4009, 4014, 4017,
+ 4021, 4029, 4026, 4032, 158, 4034, 4045, 4028, 4033,11846,
+ 4044, 4048, 4062, 4056, 4061, 4068, 4049, 115, 4072, 4065,
+ 4070, 4089, 4078, 4083, 4101, 4084, 4107, 4108, 4109, 4091,
+ 4096, 4110, 4118, 4114, 4113, 4116, 4121, 4123, 4105, 4146,
+ 4145, 4140, 4137,11846, 4158, 4147, 4159, 4151, 4144, 4164,
+ 4153, 4169, 4150, 4187,11846, 4177, 4183, 4188, 4194, 4191,
+ 4186, 4195, 4197, 4204, 4189, 4208,11846, 4224, 4213, 4225,
- 4199, 4217, 4219, 4211, 4227, 4229, 4225, 4230, 4235, 4221,
- 4252, 4238, 4256, 4254, 4249, 4248, 4260, 4265, 4258, 4275,
- 4247, 4274, 4279, 4280, 4288, 4285, 4296, 4290, 4293, 4295,
- 4316, 4305,11768, 4319, 4312, 4314, 4321, 4313, 4322, 4337,
- 4332, 4358, 4343, 4320, 4350, 4356, 4390, 4349, 4353, 4365,
- 4355, 4378, 4370, 4369, 4385, 4377, 4383, 4402, 4410, 4360,
- 4415, 4428, 4400, 4396, 4423, 4437, 4444, 4442, 4439, 4426,
- 4447, 4440, 4438, 4449, 4451, 4464, 4458, 4466, 4455, 4489,
- 4472, 4473, 4485, 4490, 4481,11768, 4497, 4479, 4491, 4502,
- 4506, 4496, 4510, 4527, 4513, 4517, 4530, 4532, 4523, 4521,
+ 4243, 4234, 4227, 4231, 4226,11846, 4246, 4244, 4250, 4240,
+ 4252, 4258, 4238, 4248, 4265, 4259, 4285, 4266, 4276, 4279,
+ 4275, 4274, 4282, 4290, 4284, 4303, 4309, 4293, 4308, 4307,
+ 4304, 4310, 4320, 4323, 4324, 4318, 4343, 4334,11846, 4344,
+ 4338, 4348, 4350, 4337, 4347, 4361, 4355, 4373, 4359, 4365,
+ 4370, 4371, 4410, 4385, 4382, 4394, 4401, 4407, 4399, 4409,
+ 4416, 4412, 4422, 4436, 4431, 4426, 4440, 4456, 4459, 4428,
+ 4443, 4439, 4474, 4477, 4470, 4467, 4460, 4485, 4468, 4475,
+ 4484, 4492, 4486, 4491, 4495, 4497, 4529, 4500, 4494, 4513,
+ 2826, 4504,11846, 4502, 4519, 4524, 4512, 4527, 4528, 4548,
- 4540, 4537, 4546, 4533, 4542, 4549, 4554, 4564, 4544, 4566,
- 4570, 4572, 4571, 4578, 4568, 4562, 4569, 4581, 4600, 4588,
- 4606, 4604, 4608,11768, 4613, 4612, 4599, 4611, 4619, 4602,
- 4623, 4624, 4627, 4607, 4621, 4635, 4641, 4633, 4640, 4655,
- 4643, 4666, 4659, 4662, 4670, 4647,11768, 4673, 4660, 4668,
- 4674, 4680, 4683, 4669, 4700, 4706, 4707, 4710, 4708, 4696,
- 4716, 4717, 4715,11768, 4721, 4723, 4720, 4726, 4734, 4736,
- 4727, 4748, 4730, 4740, 4742,11768, 4751, 4747, 4754, 4753,
- 4750, 4761, 4771, 4776, 4773, 4774,11768, 4781, 4782, 4790,
- 4788, 4787, 4798, 4795, 4799, 4801, 4815, 4812, 4808, 4803,
+ 4558, 4537, 4546, 4553, 4557, 4540, 4556, 4554, 4555, 4579,
+ 4571, 4572, 4580, 4573, 4596, 4583, 4584, 4587, 4598, 4599,
+ 4593, 4605, 4609, 4606, 4611, 4608, 4619, 4637, 4636, 4640,
+ 11846, 4644, 4643, 4626, 4646, 4649, 4630, 4651, 4658, 4657,
+ 4639, 4667, 4669, 4652, 4671, 4666, 4677, 4672, 4670, 4676,
+ 4686, 4698, 4684,11846, 4703, 4709, 4699, 4707, 4696, 4710,
+ 4711, 4713, 4726, 4729, 4730, 4741, 4739, 4727, 4740, 4743,
+ 4736,11846, 4757, 4760, 4756, 4759, 4765, 4766, 4755, 4767,
+ 4779, 4769, 4770,11846, 4776, 4777, 4788, 4784, 4780, 4786,
+ 4785, 4815, 4808, 4807,11846, 4824, 4817, 4819, 4816, 4825,
- 4822, 4820, 4824, 4829, 4831,11768, 4834, 4830, 4828, 4867,
- 4846, 4848, 4860, 4862, 4858, 4859, 4863, 4887, 4873, 4875,
- 4884,11768, 4888, 4890, 4899, 4896, 4918, 4893, 4901, 4911,
- 4905, 4916, 4919, 4913, 4915, 4936, 4930,11768, 4933, 4926,
- 4934, 4948, 4951, 4946, 4940, 4889, 4953, 4954, 4966, 4969,
- 4957, 4973, 4968, 4984, 4991, 4996, 4976, 4990, 4997, 4986,
- 4999, 5005, 5012, 5010, 5016, 5021, 5014, 5025, 5024, 5029,
- 5040, 5039, 5026, 5023, 5050, 5052, 5063, 5064, 5059, 5061,
- 11768, 5068, 5066, 5065, 5057, 5073, 5080, 5084, 5069, 5077,
- 5086, 5090, 5114, 5110, 5102, 5100, 5123, 5135, 5118, 5104,
+ 4803, 4820, 4826, 4811, 4827, 4841, 4838, 4844, 4852, 4851,
+ 4849, 4847, 4867,11846, 4854, 4866, 4864, 4887, 4865, 4868,
+ 4876, 4890, 4888, 4891, 4893, 4914, 4896, 4899, 4907,11846,
+ 4929, 4900, 4926, 4920, 4942, 4917, 4913, 4927, 4946, 4947,
+ 4950, 4941, 4940, 4956, 4944,11846, 4948, 4958, 4963, 4969,
+ 4980, 4974, 4975, 4985, 4983, 4977, 4979, 4986, 4990, 4999,
+ 4996, 5004, 5011, 5019, 5010, 5002, 5025, 5012, 5026, 5039,
+ 5029, 5038, 5034, 5048, 5053, 5055, 5045, 5057, 5063, 5062,
+ 5061, 5043, 5073, 5074, 5084, 5088, 5086, 5096,11846, 5092,
+ 5090, 5093, 5080, 5100, 5095, 5111, 5101, 5105, 5083, 5123,
- 5127, 5113, 5117, 5111, 5129, 5133, 5138, 5144, 5121, 5158,
- 5162, 5163, 5150, 5149, 5155, 5146, 5179, 5156, 5174, 5183,
- 5173, 5177, 5184, 5189, 5190, 5193, 5191, 5166, 5200, 5197,
- 5218, 5204, 5207, 5210, 5228, 5229, 5233, 5236, 5230, 5231,
- 5232, 5234,11768,11768, 5260,11768, 5250, 5249, 5253, 5261,
- 5263, 5270, 5267, 5265, 5268, 5269, 5278, 5291, 5286, 5287,
- 5308, 5299, 5303, 5311, 5296, 5302, 5310, 5297, 5313, 5321,
- 11768, 5314,11768, 5327, 5312, 5331, 5324, 5350, 5329,11768,
- 5353,11768, 5352, 5357, 5345, 5346, 5348,11768, 5363, 5344,
- 5347, 5359, 5358, 5369, 5372, 5377, 5381, 5396, 5388, 5386,
+ 5139, 5132, 5127, 5121, 5147, 5149, 5142, 5135, 5150, 5133,
+ 5138, 5154, 5156, 5175, 5153, 5166, 5167, 5168, 5176, 5184,
+ 5180, 5173, 5177, 5181, 5179, 5203, 5182, 5204, 5220, 5198,
+ 5212, 5200, 5207, 5214, 5216, 5215, 5224, 5223, 5239, 5246,
+ 5236, 5242, 5247, 5252, 5254, 5253, 5260, 5244, 5262, 5266,
+ 5265,11846,11846, 5288,11846, 5269, 5293, 5281, 5292, 5274,
+ 5301, 5285, 5289, 5287, 5311, 5308, 5241, 5314, 5305, 5328,
+ 5319, 5327, 5333, 5322, 5321, 5334, 5330, 5349, 5347,11846,
+ 5335,11846, 5357, 5338, 5358, 5366, 5373, 5351,11846, 5372,
+ 11846, 5376, 5375, 5365, 5380, 5385,11846, 5384, 5361, 5377,
- 5382, 5394, 5389, 5391, 5392, 5404, 5410, 5408, 5414, 5415,
- 5421, 5412, 5439, 5425, 5449, 5431, 5427, 5429, 5451, 5438,
- 5456,11768, 5460, 5469, 5459, 5458, 5463, 5465, 5473, 5479,
- 5482, 5480, 5472, 5495, 5509, 5498, 5485, 5506, 5496, 5512,
- 5500, 5513, 5508, 5521, 5514, 5543, 5542, 5554, 5530, 5556,
- 5553,11768, 5538, 5555, 5540, 5541, 5557, 5565,11768, 5561,
- 5568, 5551, 5563, 5593, 5582, 5579, 5584, 5598, 5602, 5586,
- 5595, 5585, 5630, 5615, 5581, 5611, 5632,11768, 5610, 5612,
- 5620, 5637, 5614, 5625, 5623, 5658, 5650, 5660, 5664, 5663,
- 5666, 5643, 5662, 5654, 5659, 5681, 5674, 5699, 5700, 5691,
+ 5386, 5390, 5388, 5403, 5398, 5402, 5405, 5422, 5412, 5378,
+ 5430, 5424, 5416, 5423, 5415, 5432, 5435, 5441, 5446, 5439,
+ 5454, 5456, 5466, 5457, 5471, 5453, 5459, 5463, 5481, 5468,
+ 5483,11846, 5476, 5494, 5489, 5493, 5495, 5491, 5499, 5497,
+ 5509, 5516, 5498, 5504, 5531, 5534, 5515, 5536, 5525, 5543,
+ 5548, 5537, 5538, 5544, 5533, 5552, 5564, 5556, 5557, 5583,
+ 5580,11846, 5568, 5586, 5570, 5571, 5587, 5593,11846, 5595,
+ 5596, 5578, 5605, 5607, 5597, 5603, 5610, 5612, 5617, 5613,
+ 5624, 5623, 5650, 5634, 5652, 5644, 5659,11846, 5645, 5655,
+ 5632, 5661, 5665, 5642, 5672, 5679, 5670, 5684, 5689, 5699,
- 5702, 5682, 5698, 5704, 5707, 5692, 5693, 5701, 5697, 5695,
- 5718, 5719, 5721, 5722, 5726, 5725, 5743, 5749, 5737, 5748,
- 11768, 5742, 5745, 5746, 5763, 5741, 5764, 5765, 5752, 5784,
- 5788, 5786,11768, 5767, 5776, 5792, 5790, 5798, 5791, 5794,
- 5777, 5782, 5811, 5827, 5819, 5824, 5828, 5823,11768, 5829,
- 11768, 5818, 5835, 5845, 5842, 5852, 5847, 5855, 5850, 5863,
- 5865, 5868, 5864, 5879, 5871, 5880, 5886, 5872, 5891, 5875,
- 5887, 5892, 5890, 5913, 5900, 5917, 5902, 5904, 5927, 5912,
- 5920, 5919, 5921, 5929, 5943, 5936, 5930,11768,11768, 5940,
- 5948, 5949, 5952, 5957, 5962, 5980, 5982, 5978, 5972, 5988,
+ 5691, 5687, 5680, 5682, 5683, 5705, 5709, 5718, 5720, 5714,
+ 5725, 5706, 5716, 5722, 5726, 5724, 5717, 5723, 5736, 5740,
+ 5735, 5743, 5746, 5747, 5748, 5751, 5764, 5769, 5753, 5770,
+ 11846, 5767, 5773, 5788, 5794, 5763, 5786, 5787, 5778, 5805,
+ 5810, 5800,11846, 5816, 5797, 5813, 5819, 5821, 5815, 5806,
+ 5827, 5823, 5843, 5853, 5845, 5832, 5864, 5847,11846, 5862,
+ 11846, 5857, 5861, 5878, 5865, 5885, 5883, 5879, 5884, 5896,
+ 5892, 5901, 5902, 5898, 5909, 5904, 5911, 5924, 5912, 5913,
+ 5928, 5919, 5923, 5930, 5944, 5934, 5943, 5828, 5937, 5959,
+ 5945, 5950, 5951, 5954, 5957, 5987, 5962, 5976,11846,11846,
- 5969, 5993, 5992, 5984, 6004, 6005, 6033,11768, 5989, 6011,
- 6012, 6022, 6021, 6009, 6019, 6040, 6046, 6038, 6028, 6049,
- 6039,11768, 6031, 6036, 6054, 6052, 6044, 6071, 6064,11768,
- 6067,11768, 6058, 6063, 6069, 6078, 6084, 6083, 6087, 6090,
- 6093, 6094, 6098, 6097, 6127, 6128, 6126, 6117, 6131, 6114,
- 6119, 6113, 6136, 6125, 6133, 6120, 6135, 6148,11768, 6143,
- 6147, 6145, 6163, 6153, 6172, 6174, 6162, 6158,11768, 6183,
- 11768, 6176, 6175, 6185, 6180, 6190, 6182, 6199, 6204, 6201,
- 6196, 6217, 6207, 6223, 6213, 6226, 6215, 6224, 6209,11768,
- 6219, 6239, 6242, 6243, 6240, 6257, 6241, 6261, 6251, 6272,
+ 5972, 5980, 5974, 6001, 5989, 5982, 6007, 6018, 6011, 5999,
+ 6014, 6016, 6009, 6024, 6031, 6032, 6034, 6062,11846, 6015,
+ 6040, 6041, 6059, 6051, 6071, 6054, 6069, 6075, 6068, 6060,
+ 6076, 6077,11846, 6085, 6086, 6070, 6080, 6081, 6111, 6082,
+ 11846, 6107,11846, 6097, 6098, 6099, 6119, 6123, 6113, 6124,
+ 6121, 6126, 6138, 6142, 6159, 6146, 6134, 6136, 6157, 6149,
+ 6167, 6148, 6154, 6151, 6171, 6161, 6182, 6169, 6176, 6175,
+ 11846, 6190, 6184, 6196, 6201, 6185, 6203, 6209, 6207, 6198,
+ 11846, 6210,11846, 6211, 6217, 6212, 6233, 6231, 6229, 6228,
+ 6238, 6235, 6252, 6256, 6243, 6259, 6251, 6260, 6264, 6258,
- 11768, 6268, 6266, 6260, 6265, 6267, 6281, 6277, 6284, 6278,
- 6276, 6289, 6290, 6295, 6297, 6314, 6316, 6311, 6306, 6310,
- 6322, 6323, 6335, 6331, 6348, 6329, 6349, 6332, 6302, 6342,
- 11768, 6350, 6346, 6355, 6352, 6361, 6370, 6369, 6388, 6367,
- 6386, 6378, 6400, 6401, 6382, 6390, 6393, 6404, 6415, 6412,
- 6418,11768, 6423, 6406, 6427, 6409, 6417, 6429, 6410, 6437,
- 6443, 6438, 6442, 6449, 6445, 6436, 6450, 6461, 6451, 6463,
- 6476, 6485, 6453, 6465, 6469, 6480, 6474, 6482, 6479, 6500,
- 11768, 6519, 6501, 6493, 6509, 6506, 6503, 6496, 6513, 6514,
- 6523, 6520, 6525, 6527, 6551, 6529, 6552, 6538, 6535, 6559,
+ 6248,11846, 6270, 6272, 6285, 6286, 6282, 6295, 6302, 6303,
+ 6284, 6305,11846, 6309, 6312, 6293, 6315, 6294, 6320, 6317,
+ 6311, 6316, 6331, 6326, 6327, 6330, 6337, 6335, 6347, 6350,
+ 6344, 6345, 6358, 6361, 6369, 6372, 6389, 6375, 6382, 6368,
+ 6386, 6377,11846, 6384, 6387, 6393, 6399, 6383, 6420, 6418,
+ 6416, 6408, 6423, 6409, 6431, 6436, 6419, 6427, 6430, 6438,
+ 6449, 6446, 6452,11846, 6457, 6442, 6467, 6443, 6459, 6469,
+ 6456, 6482, 6471, 6470, 6472, 6488, 6476, 6479, 6484, 6487,
+ 6501, 6505, 6512, 6511, 6493, 6504, 6506, 6539, 6515, 6516,
+ 6514, 6540,11846, 6559, 6533, 6529, 6553, 6550, 6531, 6569,
- 6563, 6567, 6549,11768,11768, 6568, 6546, 6565, 6572,11768,
- 6579, 6556, 6564, 6576, 6562, 6584, 6591, 6593, 6586, 6587,
- 6603, 6608, 6595, 6611, 6609, 6599, 6615,11768, 6624, 6618,
- 6633, 6620, 6634, 6638, 6644,11768, 6630, 6648, 6653, 6650,
- 6645, 6647, 6636, 6651, 6661, 6657, 6663, 6667, 6660, 6678,
- 6688, 6675, 6703, 6687, 6700, 6705, 6684, 6693, 6713,11768,
- 6689, 6696, 6702, 6710, 6697, 6719, 6724,11768, 6722, 6743,
- 6749, 6736, 6716, 6753, 6745, 6751, 6746, 6756, 6737, 6761,
- 6740, 6766, 6767, 6770, 6772, 6784, 6773, 6780, 6796, 6793,
- 6803, 6804, 6808,11768, 6800, 6799, 6814, 6811, 6813,11768,
+ 6556, 6548, 6562, 6551, 6563, 6566, 6558, 6587, 6572, 6590,
+ 6574, 6578, 6601, 6604, 6607, 6589,11846,11846, 6610, 6588,
+ 6608, 6611, 6619,11846, 6614, 6603, 6627, 6605, 6625, 6629,
+ 6628, 6633, 6622, 6646, 6641, 6649, 6636, 6656, 6659, 6638,
+ 6650,11846, 6672, 6669, 6683, 6660, 6675, 6684, 6679,11846,
+ 6671, 6697, 6694, 6695, 6696, 6688, 6692, 6699, 6701, 6702,
+ 6710, 6698, 6707, 6719, 6731, 6722, 6741, 6726, 6743, 6753,
+ 6730, 6736, 6752,11846, 6734, 6737, 6761, 6755, 6749, 6748,
+ 6769,11846, 6768, 6770, 6788, 6779, 6781, 6791, 6783, 6794,
+ 6793, 6802, 6786, 6808, 6805, 6818, 6806, 6810, 6819, 6832,
- 6821, 6829, 6830,11768, 6849, 6819, 6842, 6838, 6854,11768,
- 6839, 6848, 6841, 6857, 6835, 6859, 6861, 6864, 6840, 6865,
- 6863, 6874, 6869, 6868, 6882,11768, 6886, 6880, 6897,11768,
- 6903, 6901, 6905, 6908, 6910, 6912, 6919, 6900, 6914, 6922,
- 6917, 6913, 6930, 6938,11768, 6943, 6956,11768, 6949, 6950,
- 6932, 6946, 6940, 6959,11768, 6957, 6966, 6963, 6962, 6979,
- 6967, 6986, 6989, 6971, 6977, 6993, 6982, 6984, 7006, 7004,
- 7005, 7012, 6996, 7013, 6999, 7007,11768, 7024, 7020, 7019,
- 7033, 7023, 7044, 7047, 7041, 7037, 7049, 7046,11768,11768,
- 7057,11768, 7063, 7051, 7061, 7071,11768, 7064, 7048, 7097,
+ 6820, 6813, 6836, 6829, 6843, 6847, 6840,11846, 6845, 6833,
+ 6862, 6856, 6853, 6861,11846, 6864, 6882, 6867,11846, 6889,
+ 6860, 6885, 6880, 6898,11846, 6883, 6893, 6884, 6900, 6877,
+ 6903, 6899, 6904, 6891, 6909, 6908, 6913, 6917, 6929, 6926,
+ 11846, 6927, 6923, 6940,11846, 6943, 6944, 6948, 6946, 6950,
+ 6952, 6960, 6953, 6961, 6962, 6957, 6977, 6979, 6974,11846,
+ 6986, 6997,11846, 6990, 6992, 6973, 6987, 6988, 7001,11846,
+ 6995, 7004, 7000, 6998, 7024, 7030, 7031, 7034, 7011, 7019,
+ 7032, 7022, 7023, 7049, 7043, 7048, 7050, 7038, 7045, 7055,
+ 7057,11846, 7077, 7061, 7076, 7081, 7066, 7091, 7087, 7082,
- 7078, 7081, 7094, 7085, 7101, 7084, 7100, 7105,11768, 7103,
- 7109,11768, 7092, 7111, 7106, 7104, 7128, 7098, 7119, 7140,
- 7142, 7127, 7137, 7138, 7144, 7145, 7126, 7147, 7146, 7163,
- 7158, 7190,11768, 7160, 7168, 7177, 7194, 7179, 7178, 7199,
- 7195, 7210, 7201, 7188, 7212,11768, 7208, 7229, 7215, 7236,
- 7227,11768,11768, 7235,11768, 7225, 7237,11768, 7238, 7245,
- 7230, 7240, 7258, 7187, 7259,11768, 7264, 7261, 7253, 7257,
- 7276, 7267,11768, 7282, 7284, 7272, 7274, 7277, 7300, 7293,
- 7294, 7301, 7323, 7304,11768, 7303, 7315, 7314, 7332, 7334,
- 7325, 7318, 7317, 7320, 7338, 7344, 7353, 7356, 7339, 7359,
+ 7074, 7097, 7098,11846,11846, 7099,11846, 7104, 7112, 7114,
+ 7116,11846, 7100, 7106, 7060, 7118, 7109, 7138, 7134, 7143,
+ 7126, 7146, 7142,11846, 7151, 7153,11846, 7129, 7157, 7165,
+ 7158, 7159, 7160, 7168, 7173, 7193, 7162, 7179, 7184, 7189,
+ 7185, 7181, 7205, 7198, 7203, 7199, 7233,11846, 7217, 7215,
+ 7216, 7219, 7227, 7230, 7244, 7243, 7255, 7251, 7246, 7240,
+ 7249,11846, 7253, 7266, 7263, 7279, 7280,11846,11846, 7282,
+ 11846, 7271, 7292, 7285,11846, 7288, 7295, 7283, 7286, 7303,
+ 7304, 7305,11846, 7315, 7306, 7326, 7308, 7331, 7335,11846,
+ 7333, 7340, 7321, 7328, 7329, 7348, 7352, 7341, 7347, 7382,
- 7360, 7361, 7358, 7355, 7371, 7373, 7366, 7363, 7379,11768,
- 7385, 7396, 7390, 7382, 7415, 7395, 7402, 7401,11768, 7412,
- 7406, 7409, 7416,11768, 7424, 7436, 7422, 7420, 7428, 7432,
- 7435, 7438, 7441, 7443, 7445, 7462,11768, 7449, 7463, 7458,
- 7464, 7474, 7473, 7468,11768,11768, 7491,11768, 7492, 7476,
- 7489, 7490, 7487, 7502, 7507, 7506, 7520, 7503, 7509, 7518,
- 7527, 7530, 7525, 7524,11768, 7531, 7546, 7534, 7565, 7551,
- 7558, 7559,11768, 7555, 7548,11768, 7549,11768, 7557, 7554,
- 7564, 7578, 7585, 7574, 7586, 7576, 7582, 7591,11768, 7571,
- 7595, 7596, 7603, 7584, 7618, 7617, 7620, 7631,11768, 7624,
+ 7343,11846, 7361, 7369, 7373, 7371, 7386, 7378, 7375, 7372,
+ 7374, 7388, 7395, 7396, 7399, 7400, 7408, 7409, 7413, 7406,
+ 7416, 7410, 7424, 7422, 7427, 7412,11846, 7437, 7435, 7440,
+ 7439, 7470, 7434, 7454, 7464,11846, 7459, 7465, 7448, 7473,
+ 11846, 7466, 7474, 7475, 7483, 7471, 7490, 7495, 7469, 7493,
+ 7500, 7492, 7510,11846, 7511, 7512, 7505, 7526, 7528, 7531,
+ 7520, 7530,11846,11846, 7540,11846, 7537, 7538, 7539, 7544,
+ 7547, 7560, 7549, 7568, 7578, 7564, 7565, 7575, 7580, 7570,
+ 7586, 7573,11846, 7571, 7599, 7581, 7619, 7620, 7621, 7615,
+ 11846, 7614, 7604,11846, 7605,11846, 7600, 7611, 7633, 7638,
- 7612, 7629, 7614,11768, 7611, 7635, 7626, 7627, 7630, 7645,
- 7646, 7652, 7651, 7660, 7658, 7666, 7670, 7667, 7676, 7672,
- 7657, 7678, 7677, 7687, 7695, 7675, 7693, 7686,11768, 7704,
- 7699, 7702, 7705, 7707, 7701, 7716, 7715, 7728, 7720, 7742,
- 7737, 7749,11768, 7738,11768, 7743, 7744, 7748, 7757, 7752,
- 7750, 7755, 7763, 7761, 7765, 7764, 7781, 7795, 7797, 7798,
- 7802, 7788, 7791, 7799, 7809,11768, 7804, 7816, 7792, 7819,
- 7823, 7811, 7814, 7837,11768, 7840, 7828, 7829, 7839, 7841,
- 11768, 7844, 7852, 7853, 7846, 7858, 7843, 7860, 7859, 7872,
- 7863, 7882, 7869, 7880, 7871, 7892, 7878, 7894, 7886, 7884,
+ 7627, 7634, 7642, 7628, 7617, 7651,11846, 7663, 7644, 7648,
+ 7667, 7655, 7675, 7674, 7678, 7682,11846, 7677, 7665, 7684,
+ 7669,11846, 7692, 7693, 7691, 7706, 7679, 7702, 7695, 7710,
+ 7703, 7722, 7709, 7728, 7734, 7720, 7737, 7725, 7719, 7733,
+ 7744, 7740, 7752, 7750, 7748, 7768,11846, 7765, 7755, 7761,
+ 7762, 7764, 7770, 7777, 7778, 7786, 7782, 7790, 7793, 7811,
+ 11846, 7795,11846, 7805, 7801, 7806, 7814, 7804, 7819, 7822,
+ 7831, 7823, 7820, 7821, 7839, 7854, 7840, 7851, 7856, 7842,
+ 7845, 7846, 7864,11846, 7870, 7873, 7861, 7884, 7881, 7875,
+ 7877, 7889,11846, 7891, 7878, 7879, 7895, 7897,11846, 7900,
- 11768, 7897, 7906, 7896, 7908, 7899, 7907, 7919, 7911, 7927,
- 7931, 7913, 7921, 7935,11768, 7930, 7934, 7947, 7954,11768,
- 7940, 7941, 7942, 7951, 7946, 7971, 7957, 7955, 7959, 7980,
- 7984, 7997, 7981, 7998,11768, 7991, 7974, 8003, 8005, 7977,
- 8002, 8018, 8008, 8027, 8022, 8012, 8039,11768, 8043, 8036,
- 8045, 8046, 8047, 8037, 8040, 8044, 8067, 8063, 8055,11768,
- 8078, 8080, 8082, 8073, 8096, 8098, 8090, 8086, 8102, 8094,
- 8113, 8079, 8103, 8117, 8107, 8110, 8115, 8123, 8126, 8122,
- 8138, 8144, 8137,11768, 8128,11768, 8140, 8143, 8155, 8162,
- 8157, 8150, 8167, 8163, 8173, 8171, 8175,11768, 8164, 8165,
+ 7905, 7909, 7915, 7911, 7919, 7917, 7928, 7916, 7924,11846,
+ 7933, 7939, 7934, 7936, 7927, 7949, 7942, 7952, 7951, 7954,
+ 11846, 7962, 7953, 7963, 7964, 7966, 7978, 7979, 7968, 7986,
+ 7970, 7969, 7989, 7997,11846, 7992, 7998, 8001, 8008,11846,
+ 8000, 8003, 8009, 8006, 8019, 8022, 8024, 8033, 8034, 8035,
+ 8037, 8063, 8042, 8064,11846, 8058, 8051, 8067, 8059, 8069,
+ 8070, 8062, 8081, 8094, 8090, 8101, 8109,11846, 8110, 8104,
+ 8106, 8108, 8114, 8093, 8131, 8121, 8123, 8120, 8134,11846,
+ 8146, 8148, 8150, 8147, 8154, 8168, 8143, 8152, 8170, 8161,
+ 8171,11846, 8158, 8159, 8181, 8180, 8187, 8192, 8193, 8195,
- 8178, 8189, 8200, 8201, 8198, 8207,11768, 8199, 8202, 8205,
- 8203,11768, 8214, 8208, 8223, 8237, 8236, 8249, 8251, 8252,
- 8233, 8254,11768, 8256, 8258, 8257, 8259, 8263, 8260, 8265,
- 8277, 8266, 8283, 8270, 8285, 8281, 8301, 8279, 8289, 8304,
- 11768, 8307, 8310, 8305, 8312, 8314, 8306, 8316, 8327, 8331,
- 8321, 8332,11768, 8344, 8330, 8333, 8336, 8337, 8357, 8346,
- 8360, 8328, 8362, 8369, 8374, 8380, 8364, 8348, 8371, 8394,
- 8383, 8385,11768, 8388, 8386, 8398, 8391, 8410, 8406, 8409,
- 11768, 8407,11768, 8405, 8408, 8423, 8417, 8427,11768, 8436,
- 8425, 8442, 8430, 8447,11768,11768, 8449, 8463, 8450, 8459,
+ 8191, 8197, 8211, 8186,11846, 8189,11846, 8206, 8203, 8214,
+ 8230, 8234, 8210, 8238, 8236, 8246, 8239, 8229,11846, 8242,
+ 8248, 8250, 8253, 8270, 8272, 8274, 8278,11846, 8275, 8273,
+ 8269, 8276,11846, 8290, 8299, 8292, 8298, 8301, 8259, 8294,
+ 8318, 8302, 8323,11846, 8327, 8329, 8325, 8265, 8328, 8326,
+ 8333, 8334, 8336, 8331, 8340, 8351, 8347, 8345, 8349, 8355,
+ 8372,11846, 8367, 8376, 8380, 8378, 8381, 8375, 8382, 8368,
+ 8385, 8387, 8404,11846, 8392, 8400, 8401, 8402, 8409, 8426,
+ 8405, 8428, 8431, 8429, 8436, 8434, 8440, 8424, 8419, 8451,
+ 8449, 8450, 8445,11846, 8447, 8457, 8474, 8448, 8485, 8475,
- 8451, 8465, 8452,11768,11768, 8464,11768, 8455,11768, 8454,
- 8469,11768,11768, 8466, 8475, 8483, 8476, 8478,11768, 8502,
- 8503, 8504,11768, 8506,11768, 8514, 8493, 8515, 8509, 8495,
- 8518,11768, 8500, 8521, 8520, 8526, 8537,11768, 8533, 8530,
- 8548, 8560, 8540, 8541,11768, 8561, 8553, 8563, 8566, 8568,
- 8559, 8564, 8573, 8575, 8585, 8588, 8576,11768, 8591, 8571,
- 8605, 8595, 8600, 8601, 8611, 8615, 8606, 8612, 8618, 8619,
- 8628, 8629, 8645, 8625, 8639, 8658, 8659, 8660, 8651, 8662,
- 8643, 8666, 8667, 8672, 8678, 8653, 8676, 8670, 8681, 8683,
- 8686, 8684, 8688, 8712, 8714, 8705, 8717, 8706, 8713, 8709,
+ 8480,11846, 8478,11846, 8476, 8477, 8488, 8492, 8493,11846,
+ 8496, 8498, 8505, 8501, 8510,11846,11846, 8520, 8534, 8518,
+ 8531, 8532, 8528, 8535, 8529,11846,11846, 8539,11846, 8525,
+ 11846, 8550, 8526,11846,11846, 8560, 8522, 8545, 8549, 8553,
+ 11846, 8573, 8576, 8579,11846, 8582,11846, 8588, 8566, 8583,
+ 8569, 8568, 8592,11846, 8580, 8595, 8577, 8602, 8618,11846,
+ 8604, 8612, 8617, 8607, 8609, 8613,11846, 8630, 8624, 8626,
+ 8629, 8636, 8622, 8631, 8647, 8634, 8648, 8649, 8653,11846,
+ 8665, 8672, 8673, 8659, 8674, 8675, 8676, 8680, 8670, 8692,
+ 8700, 8686, 8694, 8696, 8715, 8690, 8707, 8724, 8725, 8726,
- 8699, 8722, 8710, 8715, 8724, 8729, 8725, 8732, 8733, 8737,
- 8739, 8741, 8752, 8757, 8745, 8768, 8759, 8772, 8765, 8760,
- 8766,11768, 8785, 8756, 8782, 8784, 8791, 8783, 8810, 8793,
- 8809, 8812, 8815, 8819, 8811, 8820,11768,11768,11768, 8816,
- 8826,11768, 8828, 8831, 8824, 8838, 8844,11768, 8840, 8843,
- 8841, 8846, 8852, 8855, 8854, 8867, 8858, 8862, 8865, 8876,
- 11768, 8871, 8895, 8886, 8884, 8888, 8908,11768, 8903, 8909,
- 8896, 8898, 8899, 8911, 8904, 8902, 8910, 8905, 8915, 8936,
- 8945, 8943, 8951, 8952, 8933, 8938, 8948,11768, 8957, 8958,
- 8964, 8944, 8955, 8959, 8968, 8976, 8961, 8969, 8972, 8977,
+ 8717, 8728, 8713, 8727, 8734, 8736, 8744, 8738, 8740, 8754,
+ 8748, 8749, 8753, 8746, 8755, 8778, 8779, 8772, 8784, 8773,
+ 8781, 8777, 8771, 8787, 8782, 8793, 8790, 8794, 8807, 8796,
+ 8804, 8812, 8808, 8814, 8817, 8815, 8811, 8834, 8831, 8844,
+ 8837, 8835, 8841,11846, 8830, 8847, 8854, 8860, 8866, 8855,
+ 8864, 8870, 8874, 8875, 8885, 8886, 8877, 8887,11846,11846,
+ 11846, 8881, 8894,11846, 8897, 8882, 8899, 8901, 8903,11846,
+ 8909, 8905, 8911, 8914, 8915, 8922, 8919, 8938, 8924, 8925,
+ 8930, 8952,11846, 8950, 8955, 8945, 8941, 8960, 8964,11846,
+ 8965, 8973, 8958, 8966, 8970, 8971, 8968, 8981, 8986, 8990,
- 8978, 8983, 8991, 8986, 9003, 9005, 9009, 9010, 9011,11768,
- 8996, 9016, 9001,11768, 9013, 9025, 9014, 9028, 9040, 9027,
- 9030, 9041, 9031, 9037,11768,11768, 9039, 9042, 9058, 9062,
- 9055, 9047, 9063, 9068, 9066, 9072,11768, 9069, 9083, 9074,
- 9087, 9094, 9089,11768, 9092, 9096, 9085, 9104, 9120, 9108,
- 9095, 9111, 9110, 9122, 9118, 9119, 9117,11768, 9116, 9143,
- 9144, 9149, 9154, 9137, 9158, 9157, 9160, 9147, 9153, 9166,
- 9167,11768, 9151,11768,11768,11768, 9181, 9164, 9175, 9188,
- 9185, 9190, 9191, 9192, 9196, 9202, 9195, 9187, 9206,11768,
- 9210,11768,11768, 9215,11768, 9222, 9212, 9230, 9228, 9224,
+ 8975, 8985, 9003, 9002, 9014, 9018, 9000, 9001, 9016,11846,
+ 9023, 9024, 9030, 9017, 9021, 9025, 9034, 9028, 9027, 9037,
+ 9036, 9038, 9048, 9049, 9059, 9051, 9067, 9075, 9073, 9079,
+ 9074,11846, 9063, 9084, 9069, 9089,11846, 9083, 9086, 9091,
+ 9087, 9112, 9093, 9101, 9118, 9102, 9106,11846,11846, 9104,
+ 9108, 9133, 9127, 9128, 9119, 9138, 9129, 9132, 9153,11846,
+ 9146, 9151, 9135, 9154, 9142, 9159,11846, 9162, 9163, 9156,
+ 9177, 9178, 9180, 9179, 9169, 9174, 9181, 9202, 9193, 9195,
+ 11846, 9199, 9203, 9219, 9214, 9216, 9198, 9228, 9226, 9224,
+ 9218, 9220, 9229, 9235,11846, 9227,11846,11846,11846, 9251,
- 9231, 9233,11768, 9229,11768, 9245, 9247, 9246, 9259, 9264,
- 9260, 9251, 9270, 9257, 9269, 9273, 9277, 9263, 9267, 9288,
- 9284, 9290, 9287,11768, 9297, 9291, 9294, 9305, 9310,11768,
- 11768, 9308, 9307, 9309, 9319, 9324, 9343, 9325, 9326, 9315,
- 9344, 9337, 9340, 9350, 9339, 9334, 9351, 9342, 9365, 9367,
- 9368, 9362, 9379,11768, 9376, 9375, 9378,11768, 9372,11768,
- 9382, 9386, 9388, 9394, 9403, 9395, 9408, 9396, 9410, 9421,
- 9401, 9422,11768,11768, 9411, 9431, 9426,11768,11768, 9414,
- 9420, 9430, 9415, 9436, 9438, 9443,11768, 9442, 9446, 9463,
- 9453, 9457, 9456, 9474, 9460,11768, 9461,11768, 9465,11768,
+ 9254, 9242, 9257, 9253, 9255, 9258, 9256, 9261, 9277, 9267,
+ 9269, 9272,11846, 9273,11846,11846, 9296,11846, 9297, 9291,
+ 9298, 9299, 9290, 9306, 9300,11846, 9295,11846, 9314, 9316,
+ 9323, 9312, 9320, 9326, 9325, 9339, 9330, 9345, 9347, 9346,
+ 9337, 9341, 9279, 9356, 9357, 9363,11846, 9368, 9360, 9365,
+ 9379, 9380,11846,11846, 9386, 9372, 9384, 9393, 9397, 9408,
+ 9389, 9396, 9395, 9410, 9411, 9412, 9414, 9420, 9416, 9418,
+ 9413, 9435, 9437, 9428, 9436, 9449,11846, 9443, 9446, 9454,
+ 11846, 9440,11846, 9460, 9461, 9463, 9453, 9456, 9473, 9476,
+ 9488, 9477, 9470, 9464, 9467,11846,11846, 9484, 9510, 9500,
- 9472, 9477, 9486, 9469, 9502, 9505,11768, 9488, 9491, 9510,
- 9511, 9506, 9492, 9515,11768, 9513, 9503,11768, 9528, 9521,
- 9523, 9508, 9525, 9531, 9530,11768, 9555, 9541, 9554, 9542,
- 11768, 9548, 9549, 9553, 9543, 9566, 9564, 9551, 9567, 9577,
- 11768, 9579, 9580, 9590, 9576,11768, 9596,11768, 9582, 9592,
- 9587, 9605, 9598,11768, 9588, 9593, 9601, 9615,11768, 9618,
- 9627, 9630, 9628, 9620, 9623,11768, 9634, 9626,11768, 9619,
- 9638, 9640, 9649, 9637, 9651, 9643, 9654, 9648, 9664, 9669,
- 9670,11768,11768, 9682, 9677, 9678, 9679, 73, 9690, 9665,
- 9666, 9667, 9689, 9703, 9705, 9707, 9683, 9714, 9712,11768,
+ 11846,11846, 9495, 9497, 9498, 9501, 9507, 9512, 9504,11846,
+ 9499, 9521, 9531, 9525, 9527, 9528, 9538, 9534,11846, 9541,
+ 11846, 9522,11846, 9548,11846, 9558, 9560, 9539, 9576, 9577,
+ 11846, 9554, 9561, 9581, 9574, 9578, 9557, 9585,11846, 9583,
+ 9580,11846, 9599, 9594, 9591, 9584, 9600, 9596, 9601,11846,
+ 9624, 9610, 9626, 9612,11846, 9619, 9620, 9627, 9611, 9635,
+ 9644, 9622, 9648, 9650,11846, 9655, 9652, 9659, 9657,11846,
+ 9665,11846, 9649, 9663, 9658, 9678, 9662,11846, 9660, 9661,
+ 9679, 9693,11846, 9698, 9700, 9702, 9701, 9690, 9696,11846,
+ 9710, 9695,11846, 9691, 9712, 9714, 9716, 9717, 9719, 9720,
- 11768, 9719, 9715, 9716,11768, 9713, 9722,11768, 9699, 9726,
- 9727, 9740, 9732, 9742, 9736, 9741, 9748, 9738, 9752, 9767,
- 9759, 9753, 9763,11768, 9781, 9782, 9764, 9774, 9791, 9794,
- 9801, 9803, 9805, 9780, 9807, 9793, 9788, 9808, 9809, 9797,
- 9820, 9818, 9821, 9833, 9829, 9830, 9831,11768, 9827, 9846,
- 9852, 9844, 9861, 9856, 9858, 9847,11768, 9866, 9860, 9868,
- 9854, 9879,11768, 9870, 9871, 9882, 9872, 9887, 9892,11768,
- 9885, 9900, 9904, 9906, 9899, 9886, 9909, 9902, 9895, 9921,
- 11768, 9911, 9916, 9919, 9926, 9935, 9944, 9949, 9937, 9950,
- 9942,11768, 9943,11768,11768,11768, 9951, 9959, 9946,11768,
+ 9727, 9721, 9729, 9734, 9746,11846,11846, 9757, 9748, 9754,
+ 9753, 73, 9768, 9742, 9744, 9747, 9749, 9771, 9775, 9784,
+ 9761, 9779, 9787,11846,11846, 9789, 9785, 9792,11846, 9788,
+ 9794,11846, 9776, 9802, 9803, 9791, 9795, 9807, 9793, 9813,
+ 9823, 9838, 9827, 9836, 9828, 9824, 9840,11846, 9849, 9858,
+ 9852, 9845, 9855, 9860, 9872, 9876, 9879, 9862, 9854, 9864,
+ 9866, 9881, 9887, 9882, 9897, 9891, 9907, 9886, 9900, 9905,
+ 9906,11846, 9901, 9915, 9913, 9921, 9930, 9929, 9933, 9923,
+ 11846, 9931, 9937, 9945, 9928, 9946,11846, 9954, 9950, 9952,
+ 9966, 9958, 9960,11846, 9956, 9970, 9975, 9976, 9973, 9965,
- 9963, 9961, 9964, 9947,11768, 9979, 9980, 9984, 9999, 9983,
- 11768,11768,11768, 9971, 9992, 9991,11768, 9981,10004,11768,
- 10002,11768, 9982,11768,10007,10008,10016,10006,11768,10020,
- 10018,11768,10010,10023,10024,10045,11768,10053,10054,10055,
- 10047,10037,10040,10039,10042,10063,11768,11768,10067,10070,
- 10066,10072,10075,10073,10074,10082,10084,10078,10083,11768,
- 10081,10092,11768,10108,10102,10109,10116,10101,10100,10110,
- 11768,10104,11768,10121,11768,10113,10119,10136,10134,10141,
- 10129,10135,10147,10152,10140,10146,10144,10165,10161,10151,
- 10163,10175,10180,10167,11768,11768,10200,10184,11768,10177,
+ 9978, 9983, 9979, 9995,11846, 9991,10003, 9993,10000,10009,
+ 10016,10014,10018,10023,10022,11846,10032,11846,11846,11846,
+ 10024,10033,10038,11846,10034,10039,10042,10036,11846,10057,
+ 10058,10059, 9996,10050,11846,11846,11846,10045,10066,10064,
+ 11846,10055,10081,11846,10076,11846,10069,11846,10078,10082,
+ 10091,10095,11846,10094,10093,11846,10100,10103,10098,10128,
+ 11846,10101,10106,10113,10114,10115,10117,10126,10127,10131,
+ 11846,11846,10152,10124,10143,10144,10157,10142,10153,10140,
+ 10163,10156,10171,11846,10164,10177,11846,10178,10176,10180,
+ 10192,10167,10184,10187,11846,10190,11846,10196,11846,10205,
- 10199,10201,11768,10182,11768,10190,10206,11768,10192,10196,
- 11768,10209,10202,10210,11768,11768,10220,10204,10213,10226,
- 10211,10243,10225,11768,10245,10236,10227,10235,10238,10241,
- 10261,10258,10242,10253,10249,10266,11768,10263,11768,10269,
- 10283,10276,11768,11768,10270,10272,10279,10295,10285,10282,
- 10304,10294,10306,10287,10316,10299,10301,10297,10320,10325,
- 10335,10321,10334,10338,10345,11768,11768,11768,10327,10329,
- 10331,10348,10343,10355,10356,11768,10365,10361,11768,10362,
- 10369,10366,10358,10386,10373,10374,11768,10372,10385,10370,
- 10389,10387,10388,10392,10396,11768,10409,10410,10420,10416,
+ 10208,10209,10211,10197,10212,10224,10217,10226,10207,10229,
+ 10220,10245,10248,10232,10234,10262,10263,10247,11846,11846,
+ 10269,10251,11846,10270,10271,10279,11846,10259,11846,10267,
+ 10281,11846,10272,10275,11846,10278,10284,10290,11846,11846,
+ 10285,10293,10292,10309,10298,10314,10297,11846,10322,10312,
+ 10308,10310,10311,10318,10339,10333,10328,10341,10336,10344,
+ 11846,10338,11846,10347,10352,10359,11846,11846,10348,10325,
+ 10372,10376,10365,10357,10382,10379,10378,10368,10398,10381,
+ 10371,10391,10385,10397,10396,10404,10410,10417,10415,11846,
+ 11846,11846,10409,10406,10412,10425,10427,10434,10438,11846,
- 10411,10419,10426,10427,10428,10422,10412,10440,10429,10418,
- 10446,10445,11768,11768,10457,10443,11768,10461,10462,11768,
- 11768,10447,10454,11768,10441,10456,10460,10458,10464,11768,
- 10476,10468,10477,10483,11768,10481,10473,10498,10491,10492,
- 10499,10509,10495,10502,10521,10500,10526,11768,10516,10522,
- 10517,10527,10528,10540,11768,11768,10529,10531,11768,10532,
- 10547,10548,10556,10551,10557,10566,10564,11768,10560,11768,
- 10567,10576,10568,10577,10594,10573,10574,10584,10600,11768,
- 10601,10591,10596,10605,11768,10604,10603,10617,10593,10633,
- 11768,10637,10620,10644,10643,11768,10630,10651,10632,11768,
+ 10440,10431,11846,10445,10451,10455,10437,10467,10452,10463,
+ 11846,10454,10453,10448,10461,10484,10472,10476,10477,11846,
+ 10485,10489,10495,10497,10493,10500,10506,10508,10509,10501,
+ 10494,10514,10504,10499,10528,10533,11846,11846,10530,10523,
+ 11846,10540,10543,11846,11846,10526,10527,11846,10524,10534,
+ 10544,10537,10557,11846,10547,10542,10560,10535,11846,10561,
+ 10569,10577,10562,10571,10580,10588,10573,10585,10599,10583,
+ 10598,11846,10595,10604,10594,10608,10596,10606,11846,11846,
+ 10615,10616,11846,10617,10629,10618,10642,10635,10631,10646,
+ 10643,11846,10630,11846,10645,10655,10644,10658,10662,10641,
- 11768,11768,10653,10655,10652,11768,11768,11768,10658,10661,
- 11768,10663,10669,10649,10684,11768,10671,11768,11768,10687,
- 10670,10693,10704,10694,10706,10695,11768,10702,10700,10708,
- 10692,10698,11768,10715,10717,11768,10711,10723,10728,10716,
- 10730,10740,10744,10721,10726,10742,10749,10734,10736,11768,
- 11768,10733,10755,10750,10757,10760,11768,10768,10763,10773,
- 10764,10761,10779,10794,10796,10798,10777,10788,10804,10802,
- 10817,10806,10783,10801,10797,10815,10822,10813,10819,10839,
- 10831,10848,10850,10836,10847,11768,11768,10853,10841,10856,
- 11768,10857,10858,11768,10842,11768,10861,10862,10865,10870,
+ 10669,10661,10659,11846,10675,10671,10673,10677,11846,10685,
+ 10668,10696,10680,10694,11846,10704,10695,10721,10720,11846,
+ 10707,10716,10705,11846,11846,11846,10729,10733,10731,11846,
+ 11846,11846,10722,10734,11846,10738,10745,10732,10744,11846,
+ 10740,11846,11846,10753,10749,10771,10775,10757,10787,10777,
+ 11846,10774,10780,10763,10765,10782,11846,10788,10791,11846,
+ 10792,10798,10799,10795,10797,10800,10804,10793,10801,10807,
+ 10817,10815,10809,11846,11846,10810,10834,10839,10836,10831,
+ 11846,10832,10847,10848,10851,10855,10856,10852,10854,10865,
+ 10863,10871,10862,10884,10900,10860,10872,10887,10880,10883,
- 10871,11768,10872,10873,10876,10881,10864,11768,10877,10893,
- 11768,11768,10875,10885,10892,10891,10900,11768,11768,10907,
- 10902,10897,10894,11768,10910,10916,10912,10926,10920,10917,
- 10928,10944,10934,10948,11768,10936,10949,11768,11768,11768,
- 10954,10938,10947,10942,10963,10952,11768,10957,10971,10966,
- 10977,10969,10967,10973,11768,10986,10990,11768,11768,10997,
- 10987,11768,11004,11768,11768,10984,10998,11768,11768,11768,
- 11768,11768,11768,11768,11768,11768,11003,11017,11768,11012,
- 11013,11025,11014,11023,11028,11768,11038,11034,11036,11053,
- 11768,11056,11768,11035,11048,11055,11044,11052,11768,11054,
+ 10898,10889,10904,10910,10911,10906,10909,10907,10913,11846,
+ 11846,10919,10912,10921,11846,10932,10933,11846,10923,11846,
+ 10943,10947,10951,10952,10954,11846,10955,10956,10957,10958,
+ 10935,11846,10962,10963,11846,11846,10945,10946,10960,10979,
+ 10985,11846,11846,10975,10968,10984,10981,11846,10982,10976,
+ 10980,11005,10995,11002,11004,11013,11006,11017,11846,11019,
+ 11020,11846,11846,11846,11025,11021,11032,11023,11037,11033,
+ 11846,11050,11041,11040,11058,11052,11055,11056,11846,11064,
+ 11060,11846,11846,11080,11059,11846,11087,11846,11846,11066,
+ 11075,11846,11846,11846,11846,11846,11846,11846,11846,11846,
- 11768,11011,11049,11063,11061,11075,11081,11086,11076,11073,
- 11079,11082,11080,11095,11102,11100,11113,11094,11108,11121,
- 11109,11117,11114,11130,11133,11131,11129,11132,11142,11144,
- 11147,11768,11768,11768,11768,11140,11145,11162,11157,11160,
- 11168,11170,11179,11182,11183,11167,11176,11185,11193,11194,
- 11189,11190,11206,11197,11192,11195,11208,11209,11218,11228,
- 11230,11768,11234,11232,11235,11768,11239,11219,11243,11244,
- 11233,11231,11247,11768,11236,11238,11768,11255,11254,11768,
- 11768,11253,11267,11265,11264,11257,11259,11271,11274,11269,
- 11284,11290,11768,11293,11768,11768,11768,11768,11282,11292,
+ 11089,11100,11846,11096,11097,11102,11090,11093,11107,11846,
+ 11115,11108,11110,11118,11846,11126,11846,11120,11129,11137,
+ 11124,11131,11846,11134,11846,11154,11127,11149,11152,11161,
+ 11147,11158,11153,11164,11151,11176,11170,11167,11189,11187,
+ 11196,11179,11190,11203,11185,11205,11191,11194,11220,11213,
+ 11216,11218,11231,11221,11219,11846,11846,11846,11846,11228,
+ 11229,11244,11243,11247,11253,11254,11256,11261,11262,11246,
+ 11255,11264,11273,11280,11268,11272,11277,11276,11284,11292,
+ 11298,11281,11306,11309,11310,11846,11313,11311,11317,11846,
+ 11315,11303,11318,11321,11312,11328,11329,11846,11319,11324,
- 11768,11298,11768,11768,11281,11301,11768,11291,11303,11306,
- 11300,11768,11315,11318,11317,11324,11325,11320,11341,11348,
- 11343,11768,11768,11333,11334,11340,11349,11356,11352,11768,
- 11350,11357,11367,11361,11377,11382,11384,11385,11373,11396,
- 11768,11375,11383,11393,11406,11402,11408,11400,11768,11409,
- 11412,11414,11419,11423,11398,11424,11434,11426,11428,11432,
- 11768,11436,11768,11439,11449,11445,11451,11433,11448,11455,
- 11461,11472,11768,11768,11768,11460,11476,11768,11459,11489,
- 11474,11491,11495,11497,11498,11487,11508,11509,11510,11511,
- 11521,11519,11520,11512,11523,11522,11768,11768,11530,11524,
+ 11846,11333,11314,11846,11846,11331,11349,11344,11345,11368,
+ 11370,11353,11356,11354,11361,11375,11846,11378,11846,11846,
+ 11846,11846,11371,11372,11846,11374,11846,11846,11382,11365,
+ 11846,11390,11406,11391,11411,11846,11399,11405,11401,11395,
+ 11412,11402,11418,11422,11424,11846,11846,11432,11434,11438,
+ 11416,11439,11441,11846,11431,11444,11459,11446,11461,11465,
+ 11467,11469,11458,11480,11846,11473,11475,11486,11476,11500,
+ 11479,11491,11846,11494,11489,11503,11492,11496,11517,11507,
+ 11501,11524,11529,11531,11846,11532,11846,11534,11540,11536,
+ 11538,11527,11528,11537,11551,11544,11846,11846,11846,11555,
- 11768,11529,11539,11533,11540,11561,11768,11545,11546,11550,
- 11563,11574,11568,11768,11576,11578,11573,11768,11577,11768,
- 11768,11579,11566,11589,11583,11587,11768,11768,11768,11648,
- 11655,11662,11669,11676,11683,11690, 100,11697,11704,11711,
- 11718,11725,11732,11739,11746,11753,11760
+ 11553,11846,11559,11561,11564,11580,11586,11588,11589,11571,
+ 11592,11594,11595,11597,11601,11598,11602,11584,11613,11612,
+ 11846,11846,11606,11615,11846,11630,11632,11619,11622,11642,
+ 11846,11644,11628,11629,11649,11651,11645,11846,11653,11654,
+ 11656,11846,11655,11846,11846,11661,11665,11667,11673,11685,
+ 11846,11846,11846,11726,11733,11740,11747,11754,11761,11768,
+ 100,11775,11782,11789,11796,11803,11810,11817,11824,11831,
+ 11838
} ;
-static const flex_int16_t yy_def[4148] =
+static const flex_int16_t yy_def[4172] =
{ 0,
- 4129, 1, 4130, 4130, 4131, 4131, 4132, 4132, 4133, 4133,
- 4134, 4134, 4135, 4135, 4136, 4136, 4129, 4137, 4129, 4129,
- 4129, 4129, 4138, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4139, 4129, 4129,
- 4129, 4139, 4140, 4129, 4129, 4129, 4140, 4141, 4129, 4129,
- 4129, 4129, 4141, 4142, 4129, 4129, 4129, 4142, 4143, 4129,
- 4144, 4129, 4143, 4143, 4145, 4129, 4129, 4129, 4129, 4145,
- 4146, 4129, 4129, 4129, 4146, 4137, 4137, 4129, 4147, 4138,
- 4147, 4138, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
+ 4153, 1, 4154, 4154, 4155, 4155, 4156, 4156, 4157, 4157,
+ 4158, 4158, 4159, 4159, 4160, 4160, 4153, 4161, 4153, 4153,
+ 4153, 4153, 4162, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4163, 4153, 4153,
+ 4153, 4163, 4164, 4153, 4153, 4153, 4164, 4165, 4153, 4153,
+ 4153, 4153, 4165, 4166, 4153, 4153, 4153, 4166, 4167, 4153,
+ 4168, 4153, 4167, 4167, 4169, 4153, 4153, 4153, 4153, 4169,
+ 4170, 4153, 4153, 4153, 4170, 4161, 4161, 4153, 4171, 4162,
+ 4171, 4162, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4139, 4139, 4140, 4140, 4141, 4141,
- 4129, 4142, 4142, 4143, 4143, 4144, 4144, 4143, 4145, 4145,
- 4129, 4146, 4146, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4163, 4163, 4164, 4164, 4165, 4165,
+ 4153, 4166, 4166, 4167, 4167, 4168, 4168, 4167, 4169, 4169,
+ 4153, 4170, 4170, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4143, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4167, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4129, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4129, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
- 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4143, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
+ 4161, 4161, 4161, 4161, 4161, 4153, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4167, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
- 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4137, 4129, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4129, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4137, 4137, 4143,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
+ 4161, 4161, 4161, 4161, 4161, 4153, 4161, 4161, 4153, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4153, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4153, 4161, 4161, 4161, 4167,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4153, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4143,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4167, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
- 4137, 4137, 4137, 4129, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4129, 4137, 4129, 4129, 4137, 4137, 4129, 4129, 4137,
- 4137, 4129, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4129, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
+ 4161, 4161, 4161, 4161, 4161, 4153, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4153, 4161, 4153, 4153, 4161, 4161, 4153,
+ 4153, 4161, 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4129,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4153, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4143, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4137,
- 4137, 4129, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4137, 4137,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4167, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4153, 4161, 4161, 4161, 4153, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4129, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4129, 4129, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4129, 4137, 4137, 4129, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
+ 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4153, 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4153, 4153, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4153, 4161, 4161, 4153,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
- 4129, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4129, 4137, 4137, 4137, 4137, 4137, 4137,
- 4143, 4143, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4129, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4129, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4129,
+ 4161, 4161, 4161, 4161, 4161, 4153, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4153,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4167, 4167, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4153, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4153, 4161, 4161, 4161,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4129, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
+ 4161, 4161, 4161, 4161, 4161, 4153, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4153, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4129, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4129, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4137, 4137, 4143,
- 4137, 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4153, 4161, 4161, 4161, 4167, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4153, 4161, 4161, 4161, 4161, 4161,
- 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4129, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4129, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4153,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4153, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4153, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4129, 4129, 4137, 4129, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4129, 4137, 4129, 4137, 4137, 4137, 4137, 4137, 4137, 4129,
- 4137, 4129, 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4153, 4153, 4161, 4153, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4153,
+ 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4153, 4161,
+ 4153, 4161, 4161, 4161, 4161, 4161, 4153, 4161, 4161, 4161,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4129, 4137, 4137, 4137, 4137, 4137, 4143, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4129, 4137, 4137, 4137, 4137, 4137, 4137, 4129, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4167, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4153, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4153, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4129, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4129, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4129, 4137,
- 4129, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4129, 4129, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4153, 4161,
+ 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4153, 4153,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4129, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4129,
- 4137, 4129, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4129, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4129, 4137,
- 4129, 4137, 4137, 4137, 4143, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4129,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4153, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4153, 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4153, 4161, 4153, 4161, 4161, 4161, 4167, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
- 4129, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4129, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4129, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4129, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
+ 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
- 4137, 4137, 4137, 4129, 4129, 4137, 4137, 4137, 4137, 4129,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4129,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4129, 4137, 4137, 4137, 4137, 4137, 4129,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4153, 4153, 4161, 4161,
+ 4161, 4161, 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4153,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
- 4137, 4137, 4137, 4129, 4137, 4137, 4137, 4137, 4137, 4129,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4143, 4137, 4129, 4137, 4137, 4137, 4129,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4129, 4137, 4137, 4129, 4137, 4137,
- 4137, 4137, 4137, 4137, 4129, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4129, 4129,
- 4137, 4129, 4137, 4137, 4137, 4137, 4129, 4137, 4137, 4137,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4153, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4153, 4161, 4161, 4161, 4153, 4161,
+ 4161, 4161, 4161, 4161, 4153, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4167, 4161,
+ 4153, 4161, 4161, 4161, 4153, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4153,
+ 4161, 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4153,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4129, 4137,
- 4137, 4129, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4129, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4137, 4137, 4137,
- 4137, 4129, 4129, 4137, 4129, 4137, 4137, 4129, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4137, 4137, 4137,
- 4137, 4137, 4129, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4129, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
+ 4161, 4161, 4161, 4153, 4153, 4161, 4153, 4161, 4161, 4161,
+ 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4153, 4161, 4161, 4153, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4153, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4153, 4153, 4161,
+ 4153, 4161, 4161, 4161, 4153, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4153,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4129,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4129, 4137,
- 4137, 4137, 4137, 4129, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4129, 4129, 4137, 4129, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4129, 4137, 4137, 4143, 4137, 4137,
- 4137, 4137, 4129, 4137, 4137, 4129, 4137, 4129, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4129, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4129, 4137,
+ 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4153, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4153, 4161, 4161, 4161, 4161,
+ 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4153, 4153, 4161, 4153, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4153, 4161, 4161, 4167, 4161, 4161, 4161, 4161,
+ 4153, 4161, 4161, 4153, 4161, 4153, 4161, 4161, 4161, 4161,
- 4137, 4137, 4137, 4129, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4129, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4129, 4137, 4129, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4129, 4137, 4137, 4137, 4137, 4137,
- 4129, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4153, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4153, 4161, 4161, 4161,
+ 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4153, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4153, 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4153, 4161,
- 4129, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4129, 4137, 4137, 4137, 4137, 4129,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4129, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4129,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4129, 4137, 4129, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4143, 4137, 4129, 4137, 4137,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4153,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4153, 4161, 4161, 4161, 4161, 4153,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4153, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4153, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4153,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
- 4137, 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4137, 4137,
- 4137, 4129, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4129, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4129, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4129, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4129, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4129, 4137, 4129, 4137, 4137, 4137, 4137, 4137, 4129, 4137,
- 4137, 4137, 4137, 4137, 4129, 4129, 4137, 4137, 4137, 4137,
+ 4161, 4161, 4161, 4161, 4153, 4161, 4153, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4167, 4161, 4153, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4153, 4161, 4161,
+ 4161, 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161,
- 4137, 4137, 4137, 4129, 4129, 4137, 4129, 4137, 4129, 4137,
- 4137, 4129, 4129, 4137, 4137, 4137, 4137, 4137, 4129, 4137,
- 4137, 4137, 4129, 4137, 4129, 4137, 4137, 4137, 4137, 4137,
- 4137, 4129, 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4137,
- 4137, 4137, 4137, 4137, 4129, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
+ 4161, 4153, 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4153,
+ 4161, 4161, 4161, 4161, 4161, 4153, 4153, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4153, 4153, 4161, 4153, 4161,
+ 4153, 4161, 4161, 4153, 4153, 4161, 4161, 4161, 4161, 4161,
+ 4153, 4161, 4161, 4161, 4153, 4161, 4153, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4153,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4153, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4153,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4143, 4137, 4137, 4137,
- 4137, 4129, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4129, 4129, 4129, 4137,
- 4137, 4129, 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4129, 4137, 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4167, 4161,
+ 4161, 4161, 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4153, 4153,
+ 4153, 4161, 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4153,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4153,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4129,
- 4137, 4137, 4137, 4129, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4129, 4129, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4137, 4137,
- 4137, 4137, 4137, 4129, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4129, 4137, 4129, 4129, 4129, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4129,
- 4137, 4129, 4129, 4137, 4129, 4137, 4137, 4137, 4137, 4137,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4153,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4153, 4161, 4161, 4161, 4161, 4153, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4153, 4153, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4153,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4153, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4153, 4161, 4153, 4153, 4153, 4161,
- 4137, 4137, 4129, 4137, 4129, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4143, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4129, 4137, 4137, 4137, 4137, 4137, 4129,
- 4129, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4129, 4137, 4137, 4137, 4129, 4137, 4129,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4129, 4129, 4137, 4137, 4137, 4129, 4129, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4129, 4137, 4129,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4153, 4161, 4153, 4153, 4161, 4153, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4153, 4161, 4153, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4167, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4153, 4161, 4161, 4161,
+ 4161, 4161, 4153, 4153, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4153, 4161, 4161, 4161,
+ 4153, 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4153, 4153, 4161, 4161, 4161,
- 4137, 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4129, 4137, 4137, 4129, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4137, 4137, 4137,
- 4129, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4129, 4137, 4137, 4137, 4137, 4129, 4137, 4129, 4137, 4137,
- 4137, 4137, 4137, 4129, 4137, 4137, 4137, 4137, 4129, 4137,
- 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4137, 4129, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4129, 4129, 4137, 4137, 4137, 4137, 4143, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4129,
+ 4153, 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4153,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4153, 4161,
+ 4153, 4161, 4153, 4161, 4153, 4161, 4161, 4161, 4161, 4161,
+ 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4153, 4161,
+ 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4153,
+ 4161, 4161, 4161, 4161, 4153, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4153, 4161, 4161, 4161, 4161, 4153,
+ 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4153, 4161, 4161,
+ 4161, 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4153,
+ 4161, 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
- 4129, 4137, 4137, 4137, 4129, 4137, 4137, 4129, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4129, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4137, 4137,
- 4137, 4137, 4129, 4137, 4137, 4137, 4137, 4137, 4137, 4129,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4129, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4129, 4137, 4129, 4129, 4129, 4137, 4137, 4137, 4129,
+ 4161, 4161, 4161, 4161, 4161, 4153, 4153, 4161, 4161, 4161,
+ 4161, 4167, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4153, 4153, 4161, 4161, 4161, 4153, 4161,
+ 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4153, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4153, 4161, 4161, 4161, 4161, 4161, 4153, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161,
- 4137, 4137, 4137, 4137, 4129, 4137, 4137, 4137, 4137, 4137,
- 4129, 4129, 4129, 4137, 4137, 4137, 4129, 4137, 4137, 4129,
- 4137, 4129, 4137, 4129, 4137, 4137, 4137, 4137, 4129, 4137,
- 4137, 4129, 4137, 4137, 4137, 4137, 4129, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4129, 4129, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4129,
- 4137, 4137, 4129, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4129, 4137, 4129, 4137, 4129, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4129, 4129, 4137, 4137, 4129, 4137,
+ 4161, 4161, 4161, 4161, 4153, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4153, 4161, 4153, 4153, 4153,
+ 4161, 4161, 4161, 4153, 4161, 4161, 4161, 4161, 4153, 4161,
+ 4161, 4161, 4161, 4161, 4153, 4153, 4153, 4161, 4161, 4161,
+ 4153, 4161, 4161, 4153, 4161, 4153, 4161, 4153, 4161, 4161,
+ 4161, 4161, 4153, 4161, 4161, 4153, 4161, 4161, 4161, 4161,
+ 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4153, 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4153, 4161, 4161, 4153, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4153, 4161, 4153, 4161, 4153, 4161,
- 4137, 4137, 4129, 4137, 4129, 4137, 4137, 4129, 4137, 4137,
- 4129, 4137, 4137, 4137, 4129, 4129, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4129, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4129, 4137,
- 4137, 4137, 4129, 4129, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4129, 4129, 4129, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4137, 4129, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4137, 4137, 4137,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4153, 4153,
+ 4161, 4161, 4153, 4161, 4161, 4161, 4153, 4161, 4153, 4161,
+ 4161, 4153, 4161, 4161, 4153, 4161, 4161, 4161, 4153, 4153,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4153, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4153, 4161, 4153, 4161, 4161, 4161, 4153, 4153, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4153,
+ 4153, 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4153,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4129, 4129, 4137, 4137, 4129, 4137, 4137, 4129,
- 4129, 4137, 4137, 4129, 4137, 4137, 4137, 4137, 4137, 4129,
- 4137, 4137, 4137, 4137, 4129, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4137,
- 4137, 4137, 4137, 4137, 4129, 4129, 4137, 4137, 4129, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4129,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4129,
- 4137, 4137, 4137, 4137, 4129, 4137, 4137, 4137, 4137, 4137,
- 4129, 4137, 4137, 4137, 4137, 4129, 4137, 4137, 4137, 4129,
+ 4161, 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4153,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4153, 4153, 4161, 4161,
+ 4153, 4161, 4161, 4153, 4153, 4161, 4161, 4153, 4161, 4161,
+ 4161, 4161, 4161, 4153, 4161, 4161, 4161, 4161, 4153, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4153, 4153,
+ 4161, 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4153, 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161,
- 4129, 4129, 4137, 4137, 4137, 4129, 4129, 4129, 4137, 4137,
- 4129, 4137, 4137, 4137, 4137, 4129, 4137, 4129, 4129, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4137, 4137,
- 4137, 4137, 4129, 4137, 4137, 4129, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4129,
- 4129, 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4129, 4129, 4137, 4137, 4137,
- 4129, 4137, 4137, 4129, 4137, 4129, 4137, 4137, 4137, 4137,
+ 4161, 4161, 4161, 4153, 4161, 4161, 4161, 4161, 4153, 4161,
+ 4161, 4161, 4161, 4161, 4153, 4161, 4161, 4161, 4161, 4153,
+ 4161, 4161, 4161, 4153, 4153, 4153, 4161, 4161, 4161, 4153,
+ 4153, 4153, 4161, 4161, 4153, 4161, 4161, 4161, 4161, 4153,
+ 4161, 4153, 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4153, 4161, 4161, 4161, 4161, 4161, 4153, 4161, 4161, 4153,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4153, 4153, 4161, 4161, 4161, 4161, 4161,
+ 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
- 4137, 4129, 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4137,
- 4129, 4129, 4137, 4137, 4137, 4137, 4137, 4129, 4129, 4137,
- 4137, 4137, 4137, 4129, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4129, 4137, 4137, 4129, 4129, 4129,
- 4137, 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4129, 4137, 4137, 4129, 4129, 4137,
- 4137, 4129, 4137, 4129, 4129, 4137, 4137, 4129, 4129, 4129,
- 4129, 4129, 4129, 4129, 4129, 4129, 4137, 4137, 4129, 4137,
- 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4137, 4137, 4137,
- 4129, 4137, 4129, 4137, 4137, 4137, 4137, 4137, 4129, 4137,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4153,
+ 4153, 4161, 4161, 4161, 4153, 4161, 4161, 4153, 4161, 4153,
+ 4161, 4161, 4161, 4161, 4161, 4153, 4161, 4161, 4161, 4161,
+ 4161, 4153, 4161, 4161, 4153, 4153, 4161, 4161, 4161, 4161,
+ 4161, 4153, 4153, 4161, 4161, 4161, 4161, 4153, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4153, 4161,
+ 4161, 4153, 4153, 4153, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4153, 4161,
+ 4161, 4153, 4153, 4161, 4161, 4153, 4161, 4153, 4153, 4161,
+ 4161, 4153, 4153, 4153, 4153, 4153, 4153, 4153, 4153, 4153,
- 4129, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4129, 4129, 4129, 4129, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4129, 4137, 4137, 4137, 4129, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4129, 4137, 4137, 4129, 4137, 4137, 4129,
- 4129, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4129, 4137, 4129, 4129, 4129, 4129, 4137, 4137,
+ 4161, 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4153,
+ 4161, 4161, 4161, 4161, 4153, 4161, 4153, 4161, 4161, 4161,
+ 4161, 4161, 4153, 4161, 4153, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4153, 4153, 4153, 4153, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4153, 4161, 4161, 4161, 4153,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4153, 4161, 4161,
- 4129, 4137, 4129, 4129, 4137, 4137, 4129, 4137, 4137, 4137,
- 4137, 4129, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4129, 4129, 4137, 4137, 4137, 4137, 4137, 4137, 4129,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4129, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4129, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4129, 4137, 4129, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4129, 4129, 4129, 4137, 4137, 4129, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
- 4137, 4137, 4137, 4137, 4137, 4137, 4129, 4129, 4137, 4137,
+ 4153, 4161, 4161, 4153, 4153, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4153, 4161, 4153, 4153,
+ 4153, 4153, 4161, 4161, 4153, 4161, 4153, 4153, 4161, 4161,
+ 4153, 4161, 4161, 4161, 4161, 4153, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4153, 4153, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4153, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4153, 4161, 4153, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4153, 4153, 4153, 4161,
- 4129, 4137, 4137, 4137, 4137, 4137, 4129, 4137, 4137, 4137,
- 4137, 4137, 4137, 4129, 4137, 4137, 4137, 4129, 4137, 4129,
- 4129, 4137, 4137, 4137, 4137, 4137, 4129, 4129, 0, 4129,
- 4129, 4129, 4129, 4129, 4129, 4129, 4129, 4129, 4129, 4129,
- 4129, 4129, 4129, 4129, 4129, 4129, 4129
+ 4161, 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161, 4161,
+ 4153, 4153, 4161, 4161, 4153, 4161, 4161, 4161, 4161, 4161,
+ 4153, 4161, 4161, 4161, 4161, 4161, 4161, 4153, 4161, 4161,
+ 4161, 4153, 4161, 4153, 4153, 4161, 4161, 4161, 4161, 4161,
+ 4153, 4153, 0, 4153, 4153, 4153, 4153, 4153, 4153, 4153,
+ 4153, 4153, 4153, 4153, 4153, 4153, 4153, 4153, 4153, 4153,
+ 4153
} ;
-static const flex_int16_t yy_nxt[11835] =
+static const flex_int16_t yy_nxt[11913] =
{ 0,
18, 19, 20, 21, 22, 23, 22, 18, 18, 18,
18, 18, 22, 24, 25, 26, 27, 28, 29, 18,
@@ -1803,7 +1812,7 @@ static const flex_int16_t yy_nxt[11835] =
87, 68, 19, 20, 21, 70, 71, 72, 19, 20,
21, 70, 71, 72, 82, 83, 84, 124, 110, 182,
182, 80, 73, 164, 175, 87, 99, 80, 73, 87,
- 440, 91, 85, 91, 91, 87, 91, 1469, 111, 88,
+ 440, 91, 85, 91, 91, 87, 91, 1477, 111, 88,
74, 87, 91, 89, 124, 110, 74, 165, 165, 73,
164, 85, 172, 172, 167, 73, 114, 167, 112, 87,
163, 183, 133, 178, 115, 111, 100, 87, 87, 92,
@@ -1832,7 +1841,7 @@ static const flex_int16_t yy_nxt[11835] =
91, 274, 203, 181, 144, 145, 179, 146, 179, 179,
87, 179, 192, 87, 213, 202, 87, 142, 217, 180,
- 292, 143, 1301, 87, 87, 86, 309, 86, 86, 203,
+ 292, 143, 1307, 87, 87, 86, 309, 86, 86, 203,
86, 144, 145, 177, 146, 147, 86, 91, 148, 91,
91, 213, 91, 195, 196, 149, 197, 292, 91, 150,
151, 204, 198, 87, 199, 214, 87, 87, 87, 200,
@@ -1848,1249 +1857,1258 @@ static const flex_int16_t yy_nxt[11835] =
230, 224, 87, 87, 221, 222, 237, 240, 87, 241,
239, 242, 243, 238, 245, 244, 231, 228, 87, 246,
87, 232, 234, 87, 87, 87, 233, 252, 87, 251,
- 166, 87, 4129, 237, 240, 87, 241, 87, 242, 243,
+ 166, 87, 4153, 237, 240, 87, 241, 87, 242, 243,
238, 245, 244, 247, 250, 87, 246, 248, 257, 254,
253, 87, 353, 249, 252, 87, 251, 87, 255, 259,
87, 258, 87, 266, 256, 87, 355, 87, 260, 359,
247, 250, 87, 263, 248, 257, 254, 253, 87, 261,
249, 264, 267, 262, 87, 255, 259, 87, 258, 265,
- 266, 256, 87, 272, 270, 260, 275, 4129, 87, 268,
+ 266, 256, 87, 272, 270, 260, 275, 4153, 87, 268,
263, 87, 269, 273, 87, 271, 261, 87, 87, 267,
262, 87, 279, 87, 87, 276, 265, 284, 281, 280,
- 272, 270, 282, 275, 277, 283, 268, 87, 4129, 269,
- 273, 87, 271, 87, 4129, 87, 278, 285, 4129, 279,
- 87, 87, 276, 4129, 284, 281, 280, 87, 286, 282,
- 87, 277, 283, 169, 4129, 169, 169, 174, 169, 174,
+ 272, 270, 282, 275, 277, 283, 268, 87, 4153, 269,
+ 273, 87, 271, 87, 4153, 87, 278, 285, 4153, 279,
+ 87, 87, 276, 4153, 284, 281, 280, 87, 286, 282,
+ 87, 277, 283, 169, 4153, 169, 169, 174, 169, 174,
174, 287, 174, 278, 285, 91, 288, 91, 91, 290,
91, 179, 175, 179, 179, 286, 179, 291, 87, 295,
- 289, 296, 297, 87, 300, 298, 293, 4129, 287, 87,
+ 289, 296, 297, 87, 300, 298, 293, 4153, 287, 87,
87, 87, 299, 294, 301, 87, 290, 87, 87, 302,
- 87, 4129, 306, 177, 291, 87, 295, 289, 296, 297,
+ 87, 4153, 306, 177, 291, 87, 295, 289, 296, 297,
87, 300, 298, 293, 87, 319, 303, 87, 320, 299,
294, 301, 304, 305, 87, 87, 302, 310, 307, 306,
308, 311, 321, 87, 324, 312, 323, 322, 325, 327,
- 328, 87, 319, 326, 87, 320, 87, 1049, 87, 304,
- 305, 330, 313, 826, 87, 307, 87, 308, 87, 87,
+ 328, 87, 319, 326, 87, 320, 87, 1053, 87, 304,
+ 305, 330, 313, 828, 87, 307, 87, 308, 87, 87,
- 87, 324, 312, 323, 87, 325, 327, 331, 329, 4129,
+ 87, 324, 312, 323, 87, 325, 327, 331, 329, 4153,
326, 332, 87, 333, 87, 334, 87, 362, 330, 313,
- 314, 87, 87, 337, 338, 315, 87, 87, 4129, 87,
+ 314, 87, 87, 337, 338, 315, 87, 87, 4153, 87,
316, 339, 87, 345, 331, 329, 317, 318, 332, 346,
- 333, 335, 334, 87, 336, 4129, 87, 314, 87, 87,
+ 333, 335, 334, 87, 336, 4153, 87, 314, 87, 87,
337, 338, 315, 87, 347, 87, 87, 316, 339, 348,
- 345, 87, 4129, 317, 318, 351, 346, 350, 335, 356,
- 87, 336, 340, 354, 364, 341, 352, 342, 358, 4129,
- 87, 347, 367, 357, 87, 360, 348, 4129, 363, 343,
- 4129, 344, 4129, 87, 350, 368, 369, 87, 87, 340,
+ 345, 87, 4153, 317, 318, 351, 346, 350, 335, 356,
+ 87, 336, 340, 354, 364, 341, 352, 342, 358, 4153,
+ 87, 347, 367, 357, 87, 360, 348, 4153, 363, 343,
+ 4153, 344, 4153, 87, 350, 368, 369, 87, 87, 340,
354, 87, 341, 352, 342, 358, 87, 87, 365, 87,
357, 87, 360, 366, 87, 363, 343, 87, 344, 370,
- 371, 374, 368, 369, 87, 372, 87, 377, 376, 4129,
- 375, 378, 379, 87, 373, 365, 382, 4129, 389, 87,
+ 371, 374, 368, 369, 87, 372, 87, 377, 376, 4153,
+ 375, 378, 379, 87, 373, 365, 382, 4153, 389, 87,
366, 87, 87, 87, 380, 385, 370, 371, 374, 87,
87, 87, 372, 87, 377, 376, 87, 375, 378, 379,
383, 373, 381, 382, 387, 384, 386, 87, 392, 388,
87, 380, 385, 87, 87, 87, 390, 391, 393, 394,
- 395, 398, 397, 4129, 87, 87, 87, 87, 396, 381,
+ 395, 398, 397, 4153, 87, 87, 87, 87, 396, 381,
87, 387, 87, 386, 399, 392, 388, 400, 402, 407,
406, 87, 87, 390, 391, 403, 394, 395, 398, 397,
- 87, 401, 404, 87, 405, 396, 409, 410, 4129, 87,
- 87, 4129, 408, 414, 412, 87, 87, 87, 87, 87,
+ 87, 401, 404, 87, 405, 396, 409, 410, 4153, 87,
+ 87, 4153, 408, 414, 412, 87, 87, 87, 87, 87,
87, 87, 403, 422, 411, 419, 413, 415, 401, 404,
87, 405, 87, 87, 410, 87, 416, 417, 87, 408,
414, 412, 175, 418, 87, 420, 421, 87, 423, 87,
87, 411, 419, 413, 415, 87, 87, 424, 426, 425,
- 429, 4129, 427, 416, 417, 428, 434, 430, 87, 87,
- 418, 4129, 420, 421, 87, 431, 432, 435, 87, 87,
+ 429, 4153, 427, 416, 417, 428, 434, 430, 87, 87,
+ 418, 4153, 420, 421, 87, 431, 432, 435, 87, 87,
87, 87, 436, 439, 424, 87, 425, 429, 87, 427,
87, 433, 428, 87, 430, 87, 437, 441, 87, 438,
452, 87, 431, 432, 435, 87, 87, 87, 442, 436,
- 439, 443, 447, 4129, 445, 4129, 444, 454, 433, 448,
- 4129, 456, 87, 437, 441, 87, 438, 87, 446, 449,
+ 439, 443, 447, 4153, 445, 4153, 444, 454, 433, 448,
+ 4153, 456, 87, 437, 441, 87, 438, 87, 446, 449,
450, 461, 87, 459, 87, 442, 87, 87, 443, 447,
87, 445, 87, 444, 451, 453, 448, 87, 87, 87,
455, 457, 87, 87, 460, 446, 449, 450, 87, 87,
- 459, 462, 464, 87, 465, 467, 4129, 4129, 458, 87,
+ 459, 462, 464, 87, 465, 467, 4153, 4153, 458, 87,
468, 451, 453, 87, 87, 87, 87, 455, 457, 87,
- 466, 460, 469, 478, 4129, 463, 87, 471, 4129, 464,
+ 466, 460, 469, 478, 4153, 463, 87, 471, 4153, 464,
470, 465, 467, 87, 472, 458, 87, 468, 474, 87,
- 4129, 479, 87, 480, 473, 476, 87, 466, 525, 469,
+ 4153, 479, 87, 480, 473, 476, 87, 466, 525, 469,
87, 475, 463, 87, 471, 87, 87, 470, 481, 482,
- 87, 472, 477, 4129, 87, 474, 490, 491, 479, 87,
- 492, 473, 476, 501, 87, 87, 87, 4129, 475, 530,
+ 87, 472, 477, 4153, 87, 474, 490, 491, 479, 87,
+ 492, 473, 476, 501, 87, 87, 87, 4153, 475, 530,
87, 502, 87, 500, 87, 481, 482, 87, 508, 477,
- 483, 509, 87, 490, 491, 484, 87, 492, 485, 4129,
+ 483, 509, 87, 490, 491, 484, 87, 492, 485, 4153,
501, 503, 504, 486, 487, 488, 489, 87, 502, 505,
- 500, 87, 87, 87, 506, 508, 4129, 483, 87, 518,
- 4129, 4129, 484, 4129, 516, 485, 87, 512, 503, 504,
+ 500, 87, 87, 87, 506, 508, 4153, 483, 87, 518,
+ 4153, 4153, 484, 4153, 516, 485, 87, 512, 503, 504,
486, 487, 488, 489, 493, 517, 494, 510, 495, 87,
- 511, 87, 87, 513, 4129, 520, 87, 87, 496, 497,
+ 511, 87, 87, 513, 4153, 520, 87, 87, 496, 497,
498, 516, 499, 87, 512, 87, 514, 515, 87, 519,
- 524, 493, 517, 494, 510, 495, 87, 511, 521, 4129,
+ 524, 493, 517, 494, 510, 495, 87, 511, 521, 4153,
513, 87, 520, 523, 526, 496, 497, 498, 522, 499,
87, 87, 87, 514, 515, 87, 519, 524, 527, 87,
- 528, 529, 535, 537, 87, 521, 87, 87, 4129, 87,
- 523, 526, 531, 87, 532, 522, 549, 4129, 536, 4129,
- 538, 4129, 541, 533, 542, 527, 539, 528, 529, 535,
+ 528, 529, 535, 537, 87, 521, 87, 87, 4153, 87,
+ 523, 526, 531, 87, 532, 522, 549, 4153, 536, 4153,
+ 538, 4153, 541, 533, 542, 527, 539, 528, 529, 535,
534, 543, 540, 544, 87, 87, 550, 551, 87, 531,
87, 532, 87, 549, 87, 536, 87, 538, 87, 541,
533, 542, 552, 539, 545, 553, 567, 534, 543, 540,
571, 566, 87, 550, 569, 87, 585, 546, 87, 87,
- 547, 586, 548, 87, 568, 4129, 87, 87, 87, 87,
- 87, 545, 553, 567, 570, 4129, 587, 571, 566, 572,
- 4129, 569, 4129, 4129, 546, 583, 87, 547, 87, 548,
- 554, 568, 555, 584, 4129, 573, 574, 87, 556, 590,
- 4129, 570, 557, 87, 596, 175, 572, 558, 87, 87,
+ 547, 586, 548, 87, 568, 4153, 87, 87, 87, 87,
+ 87, 545, 553, 567, 570, 4153, 587, 571, 566, 572,
+ 4153, 569, 4153, 4153, 546, 583, 87, 547, 87, 548,
+ 554, 568, 555, 584, 4153, 573, 574, 87, 556, 590,
+ 4153, 570, 557, 87, 596, 175, 572, 558, 87, 87,
559, 87, 583, 87, 588, 592, 87, 554, 593, 555,
584, 589, 573, 574, 591, 556, 590, 87, 659, 557,
- 595, 596, 87, 4129, 558, 87, 87, 559, 560, 594,
+ 595, 596, 87, 4153, 558, 87, 87, 559, 560, 594,
561, 588, 592, 597, 87, 593, 599, 87, 589, 87,
598, 591, 610, 562, 600, 659, 563, 87, 564, 87,
565, 617, 87, 601, 87, 560, 594, 561, 604, 605,
- 597, 4129, 4129, 599, 4129, 87, 87, 598, 4129, 606,
+ 597, 4153, 4153, 599, 4153, 87, 87, 598, 4153, 606,
562, 607, 608, 563, 87, 564, 87, 565, 575, 576,
- 601, 87, 602, 87, 611, 604, 605, 4129, 577, 578,
+ 601, 87, 602, 87, 611, 604, 605, 4153, 577, 578,
579, 580, 581, 87, 87, 582, 606, 613, 607, 608,
- 603, 609, 4129, 87, 87, 575, 576, 612, 615, 602,
+ 603, 609, 4153, 87, 87, 575, 576, 612, 615, 602,
87, 611, 87, 87, 87, 577, 578, 579, 580, 581,
614, 87, 582, 616, 613, 619, 620, 603, 609, 87,
- 625, 618, 87, 87, 612, 615, 87, 621, 622, 4129,
+ 625, 618, 87, 87, 612, 615, 87, 621, 622, 4153,
628, 87, 623, 626, 624, 633, 627, 614, 87, 87,
- 616, 87, 619, 620, 87, 629, 4129, 625, 618, 87,
- 630, 631, 4129, 4129, 636, 87, 87, 628, 87, 623,
- 626, 624, 633, 627, 634, 637, 4129, 87, 632, 4129,
- 638, 4129, 629, 87, 639, 87, 641, 630, 631, 635,
+ 616, 87, 619, 620, 87, 629, 4153, 625, 618, 87,
+ 630, 631, 4153, 4153, 636, 87, 87, 628, 87, 623,
+ 626, 624, 633, 627, 634, 637, 4153, 87, 632, 4153,
+ 638, 4153, 629, 87, 639, 87, 641, 630, 631, 635,
87, 636, 87, 652, 640, 87, 653, 87, 657, 87,
671, 634, 637, 87, 654, 632, 655, 638, 642, 643,
- 656, 639, 658, 641, 87, 660, 635, 661, 87, 4129,
+ 656, 639, 658, 641, 87, 660, 635, 661, 87, 4153,
644, 640, 645, 653, 662, 87, 87, 87, 87, 87,
87, 654, 87, 655, 664, 642, 643, 656, 87, 658,
- 665, 87, 660, 666, 661, 4129, 87, 644, 663, 645,
+ 665, 87, 660, 666, 661, 4153, 87, 644, 663, 645,
646, 662, 668, 673, 87, 87, 667, 669, 647, 648,
- 87, 664, 649, 650, 87, 670, 651, 665, 4129, 674,
- 87, 87, 87, 672, 87, 663, 87, 646, 4129, 668,
- 673, 87, 675, 667, 669, 647, 648, 680, 87, 649,
- 650, 87, 670, 651, 676, 87, 674, 677, 4129, 678,
- 672, 681, 87, 682, 686, 683, 4129, 679, 87, 675,
- 87, 684, 87, 689, 680, 687, 87, 688, 685, 87,
+ 87, 664, 649, 650, 87, 670, 651, 665, 4153, 674,
+ 87, 87, 87, 672, 87, 663, 87, 646, 4153, 668,
+ 673, 87, 675, 667, 669, 647, 648, 681, 87, 649,
+ 650, 87, 670, 651, 676, 87, 674, 677, 4153, 678,
+ 672, 682, 87, 683, 687, 684, 679, 680, 87, 675,
+ 87, 685, 87, 4153, 681, 4153, 87, 688, 689, 87,
- 87, 676, 691, 693, 677, 87, 678, 694, 681, 87,
- 682, 686, 683, 87, 679, 87, 87, 87, 684, 87,
- 689, 690, 687, 692, 688, 685, 695, 696, 87, 691,
- 693, 87, 4129, 87, 694, 697, 87, 698, 699, 4129,
- 700, 702, 701, 87, 703, 87, 87, 87, 690, 704,
- 692, 709, 4129, 695, 710, 705, 87, 87, 87, 87,
- 87, 87, 697, 712, 698, 699, 87, 700, 702, 701,
- 87, 703, 706, 716, 707, 708, 704, 711, 709, 715,
- 713, 87, 705, 714, 87, 718, 87, 717, 4129, 719,
- 87, 87, 720, 721, 725, 87, 4129, 87, 87, 706,
+ 87, 676, 686, 690, 677, 87, 678, 691, 682, 692,
+ 683, 687, 684, 679, 680, 87, 693, 87, 685, 87,
+ 87, 694, 87, 695, 688, 689, 87, 87, 696, 686,
+ 690, 697, 698, 87, 691, 87, 692, 700, 87, 699,
+ 701, 703, 702, 693, 709, 87, 87, 87, 694, 87,
+ 695, 704, 712, 87, 705, 696, 87, 706, 87, 698,
+ 87, 87, 711, 87, 700, 87, 699, 701, 703, 702,
+ 710, 709, 87, 87, 707, 713, 708, 87, 704, 712,
+ 4153, 705, 714, 87, 706, 715, 716, 717, 718, 719,
+ 725, 4153, 726, 87, 87, 720, 722, 710, 721, 724,
- 722, 707, 708, 723, 711, 87, 715, 713, 87, 87,
- 714, 724, 718, 87, 717, 87, 719, 87, 726, 720,
- 721, 728, 727, 730, 734, 87, 87, 722, 732, 87,
- 723, 733, 731, 87, 736, 738, 87, 87, 724, 771,
- 4129, 4129, 735, 87, 729, 726, 87, 87, 737, 727,
- 730, 734, 87, 87, 87, 732, 87, 87, 733, 731,
- 87, 736, 738, 739, 740, 741, 771, 751, 752, 735,
- 750, 729, 87, 87, 87, 737, 753, 87, 754, 87,
- 87, 791, 755, 796, 4129, 805, 87, 757, 4129, 760,
- 739, 740, 741, 742, 751, 752, 756, 750, 743, 87,
+ 4153, 707, 87, 708, 87, 723, 728, 87, 87, 714,
+ 87, 87, 715, 716, 87, 718, 719, 725, 87, 87,
+ 87, 727, 720, 722, 87, 721, 724, 729, 87, 731,
+ 87, 732, 723, 728, 733, 734, 736, 735, 4153, 87,
+ 738, 87, 87, 737, 739, 4153, 87, 741, 727, 4153,
+ 730, 4153, 87, 87, 788, 87, 731, 740, 732, 87,
+ 87, 733, 734, 736, 735, 87, 87, 738, 87, 742,
+ 737, 739, 751, 753, 741, 87, 752, 730, 754, 87,
+ 755, 788, 87, 87, 740, 87, 756, 757, 87, 4153,
+ 4153, 4153, 804, 767, 758, 87, 742, 743, 87, 751,
- 744, 87, 4129, 753, 87, 754, 745, 87, 746, 755,
- 87, 747, 748, 87, 757, 87, 760, 87, 749, 87,
- 742, 761, 758, 756, 765, 743, 759, 744, 4129, 763,
- 770, 4129, 764, 745, 768, 746, 4129, 766, 747, 748,
- 87, 762, 87, 87, 87, 749, 87, 767, 761, 758,
- 773, 765, 769, 759, 87, 772, 763, 770, 774, 764,
- 87, 768, 87, 87, 775, 777, 776, 780, 762, 87,
- 779, 778, 4129, 782, 767, 87, 87, 773, 87, 769,
- 87, 781, 772, 87, 783, 774, 87, 788, 786, 785,
- 87, 775, 777, 776, 780, 87, 87, 779, 778, 784,
+ 753, 87, 744, 752, 745, 754, 761, 755, 87, 762,
+ 746, 87, 747, 756, 757, 748, 749, 87, 87, 804,
+ 767, 758, 750, 87, 743, 763, 759, 772, 770, 744,
+ 760, 745, 775, 761, 768, 765, 762, 746, 766, 747,
+ 87, 4153, 748, 749, 769, 764, 87, 87, 87, 750,
+ 771, 87, 763, 759, 772, 770, 773, 760, 87, 775,
+ 87, 87, 765, 774, 778, 766, 87, 776, 780, 87,
+ 87, 769, 764, 777, 779, 784, 87, 771, 781, 782,
+ 87, 783, 4153, 773, 786, 785, 87, 87, 4153, 87,
+ 774, 778, 87, 791, 776, 780, 790, 87, 787, 87,
- 782, 87, 87, 787, 789, 87, 790, 87, 781, 87,
- 792, 783, 793, 794, 788, 786, 785, 4129, 87, 795,
- 799, 87, 797, 801, 87, 87, 784, 87, 800, 175,
- 787, 789, 87, 790, 87, 798, 804, 792, 802, 793,
- 794, 87, 87, 87, 87, 803, 795, 799, 87, 797,
- 801, 806, 807, 808, 809, 800, 810, 4129, 4129, 812,
- 811, 816, 798, 87, 87, 802, 87, 813, 814, 87,
- 87, 87, 803, 87, 815, 824, 825, 4129, 806, 827,
- 87, 809, 820, 810, 87, 87, 812, 811, 816, 87,
- 817, 87, 823, 87, 813, 814, 828, 818, 87, 821,
+ 777, 779, 784, 87, 87, 781, 782, 789, 783, 792,
+ 87, 786, 785, 793, 87, 794, 87, 795, 798, 796,
+ 791, 799, 87, 790, 797, 787, 800, 87, 805, 87,
+ 87, 801, 175, 87, 789, 87, 792, 87, 802, 803,
+ 806, 807, 794, 809, 795, 87, 796, 87, 799, 810,
+ 87, 797, 87, 800, 87, 805, 808, 811, 801, 4153,
+ 815, 812, 814, 813, 87, 802, 803, 87, 816, 817,
+ 818, 87, 87, 87, 87, 87, 87, 826, 4153, 87,
+ 827, 87, 87, 808, 811, 87, 825, 815, 812, 814,
+ 813, 87, 819, 87, 822, 816, 817, 818, 823, 820,
- 819, 815, 87, 87, 822, 829, 87, 830, 87, 820,
- 831, 87, 4129, 833, 834, 832, 837, 817, 835, 823,
- 87, 838, 87, 87, 818, 836, 840, 819, 839, 87,
- 845, 87, 87, 87, 841, 4129, 843, 844, 87, 87,
- 833, 834, 87, 837, 87, 835, 847, 87, 838, 87,
- 87, 851, 836, 840, 842, 839, 87, 849, 87, 846,
- 87, 841, 87, 843, 844, 848, 87, 850, 854, 87,
- 852, 4129, 858, 847, 87, 860, 856, 87, 851, 87,
- 87, 842, 87, 853, 849, 855, 846, 87, 87, 87,
- 87, 857, 848, 87, 850, 854, 866, 852, 87, 859,
+ 87, 829, 821, 824, 87, 87, 832, 87, 830, 831,
+ 87, 833, 836, 825, 835, 839, 834, 837, 87, 819,
+ 840, 822, 838, 87, 842, 4153, 820, 847, 87, 821,
+ 87, 841, 87, 87, 843, 87, 87, 87, 87, 836,
+ 846, 835, 839, 87, 837, 849, 87, 840, 87, 838,
+ 87, 842, 845, 844, 851, 848, 87, 87, 841, 87,
+ 87, 843, 87, 87, 850, 852, 856, 846, 87, 853,
+ 4153, 854, 849, 87, 860, 858, 87, 857, 87, 845,
+ 844, 851, 848, 87, 855, 87, 87, 859, 87, 876,
+ 87, 850, 852, 856, 87, 87, 853, 861, 854, 862,
- 861, 872, 860, 856, 87, 862, 865, 867, 863, 864,
- 853, 4129, 855, 87, 868, 87, 87, 869, 857, 874,
- 870, 87, 87, 866, 87, 87, 859, 861, 872, 873,
- 871, 875, 862, 865, 867, 863, 864, 876, 879, 87,
- 877, 868, 87, 87, 869, 881, 87, 870, 880, 87,
- 884, 87, 882, 87, 886, 883, 873, 871, 875, 87,
- 885, 87, 878, 87, 876, 879, 87, 877, 87, 87,
- 87, 887, 881, 889, 87, 880, 888, 884, 890, 882,
- 87, 886, 883, 87, 891, 892, 893, 885, 894, 878,
- 896, 895, 87, 87, 87, 898, 87, 87, 887, 899,
+ 867, 869, 858, 868, 857, 4153, 87, 870, 863, 87,
+ 87, 855, 87, 864, 859, 871, 865, 866, 87, 87,
+ 873, 87, 875, 872, 861, 4153, 862, 867, 869, 87,
+ 868, 878, 87, 87, 870, 863, 874, 87, 877, 879,
+ 864, 4153, 871, 865, 866, 87, 87, 873, 87, 875,
+ 872, 881, 882, 883, 884, 87, 87, 885, 878, 87,
+ 886, 880, 87, 874, 888, 877, 879, 890, 87, 87,
+ 887, 889, 892, 87, 87, 891, 87, 87, 881, 882,
+ 883, 884, 87, 893, 885, 87, 896, 886, 880, 87,
+ 87, 888, 894, 895, 890, 899, 900, 887, 889, 87,
- 87, 87, 897, 888, 87, 890, 900, 912, 87, 4129,
- 87, 891, 892, 893, 901, 894, 905, 896, 895, 904,
- 87, 4129, 898, 902, 903, 4129, 906, 87, 907, 897,
- 87, 87, 908, 900, 909, 910, 911, 87, 87, 87,
- 87, 901, 913, 905, 87, 87, 904, 87, 87, 914,
- 915, 917, 87, 906, 4129, 907, 916, 87, 87, 908,
- 918, 909, 910, 911, 87, 919, 921, 922, 923, 913,
- 920, 87, 931, 87, 87, 924, 4129, 915, 917, 87,
- 87, 87, 932, 916, 935, 941, 87, 918, 933, 87,
- 87, 87, 958, 921, 922, 923, 936, 87, 4129, 934,
+ 87, 87, 891, 897, 898, 87, 87, 902, 87, 87,
+ 893, 901, 4153, 896, 87, 903, 904, 87, 907, 894,
+ 895, 911, 899, 900, 905, 906, 87, 908, 909, 87,
+ 897, 898, 910, 912, 87, 913, 87, 915, 901, 87,
+ 87, 87, 903, 904, 914, 907, 87, 917, 911, 918,
+ 87, 87, 87, 87, 908, 909, 916, 87, 920, 910,
+ 912, 919, 913, 87, 921, 922, 934, 924, 926, 87,
+ 923, 914, 925, 87, 4153, 87, 918, 939, 87, 87,
+ 87, 87, 927, 916, 87, 920, 87, 936, 919, 937,
+ 4153, 921, 944, 935, 924, 926, 87, 87, 87, 925,
- 4129, 4129, 924, 925, 87, 926, 87, 4129, 937, 932,
- 939, 935, 927, 938, 942, 933, 947, 87, 928, 929,
- 930, 87, 87, 936, 87, 940, 934, 87, 87, 87,
- 925, 945, 926, 87, 87, 937, 946, 939, 943, 927,
- 938, 942, 87, 947, 949, 928, 929, 930, 944, 948,
- 950, 87, 940, 951, 956, 952, 959, 953, 87, 954,
- 87, 87, 87, 87, 955, 943, 87, 957, 87, 87,
- 960, 949, 4129, 87, 87, 944, 948, 950, 87, 87,
- 951, 956, 952, 959, 953, 4129, 954, 961, 87, 962,
- 964, 955, 968, 963, 957, 965, 967, 960, 87, 87,
+ 4153, 87, 940, 87, 939, 87, 938, 4153, 941, 927,
+ 928, 87, 929, 87, 936, 945, 937, 942, 948, 930,
+ 935, 946, 87, 949, 87, 931, 932, 933, 87, 940,
+ 87, 947, 943, 938, 87, 941, 950, 928, 951, 929,
+ 87, 87, 945, 87, 942, 952, 930, 953, 946, 961,
+ 87, 954, 931, 932, 933, 87, 962, 4153, 947, 943,
+ 955, 959, 87, 950, 956, 951, 87, 963, 957, 87,
+ 87, 958, 952, 87, 953, 960, 87, 87, 954, 87,
+ 87, 87, 87, 962, 964, 87, 971, 955, 959, 965,
+ 966, 956, 967, 970, 963, 957, 87, 968, 958, 87,
- 969, 87, 87, 972, 966, 970, 971, 87, 87, 973,
- 4129, 87, 975, 4129, 961, 87, 962, 964, 87, 87,
- 963, 87, 965, 967, 87, 1008, 974, 969, 976, 977,
- 972, 966, 970, 971, 87, 87, 973, 87, 978, 975,
- 87, 979, 980, 981, 982, 983, 984, 87, 985, 987,
- 87, 87, 87, 974, 986, 976, 977, 87, 988, 87,
- 991, 4129, 87, 989, 4129, 978, 87, 87, 979, 980,
- 981, 982, 983, 984, 87, 985, 987, 87, 990, 87,
- 993, 986, 87, 992, 994, 988, 995, 991, 87, 997,
- 989, 87, 996, 998, 87, 999, 87, 4129, 87, 1000,
+ 87, 87, 960, 972, 975, 87, 969, 976, 974, 973,
+ 87, 964, 87, 87, 4153, 978, 965, 966, 87, 967,
+ 970, 87, 87, 87, 968, 4153, 987, 4153, 980, 977,
+ 972, 975, 979, 969, 976, 974, 973, 87, 87, 87,
+ 981, 87, 978, 983, 984, 982, 985, 988, 87, 87,
+ 986, 991, 87, 987, 87, 980, 977, 87, 87, 979,
+ 87, 989, 990, 993, 87, 4153, 4153, 981, 992, 994,
+ 983, 984, 982, 985, 988, 995, 87, 986, 991, 87,
+ 996, 999, 87, 1000, 997, 87, 998, 87, 989, 990,
+ 993, 87, 87, 1003, 1001, 992, 994, 87, 1007, 4153,
- 1003, 1018, 1004, 1001, 1002, 990, 87, 993, 1097, 87,
- 992, 994, 87, 995, 87, 87, 997, 87, 87, 996,
- 998, 87, 999, 1005, 87, 1006, 1000, 1003, 87, 1004,
- 1001, 1002, 1007, 1009, 1010, 87, 1012, 4129, 1013, 1011,
- 1015, 87, 1014, 87, 1016, 1017, 1026, 87, 1021, 87,
- 1005, 87, 1006, 1022, 87, 175, 87, 87, 87, 1007,
- 1009, 1010, 87, 1012, 87, 1013, 1011, 1015, 1019, 1014,
- 1023, 1016, 1017, 1024, 1025, 1027, 1020, 1028, 87, 1031,
- 87, 87, 87, 87, 87, 1029, 1033, 1032, 1034, 1037,
- 1030, 87, 87, 4129, 87, 1019, 87, 1023, 1036, 1064,
+ 87, 87, 995, 1002, 1004, 87, 87, 996, 999, 1005,
+ 1000, 997, 1006, 998, 87, 87, 87, 1015, 87, 1009,
+ 1003, 1001, 1008, 1010, 1012, 1007, 87, 1011, 4153, 4153,
+ 1002, 1004, 87, 1013, 1014, 87, 1005, 87, 1016, 1006,
+ 87, 87, 87, 1019, 1015, 1017, 1009, 1018, 1022, 1008,
+ 1010, 87, 1025, 1020, 1011, 175, 87, 1026, 87, 87,
+ 1013, 1014, 1021, 87, 1027, 1016, 87, 87, 87, 1023,
+ 1019, 1029, 1017, 1030, 1018, 87, 1028, 1024, 4153, 87,
+ 1020, 1032, 1031, 1033, 87, 1034, 87, 4153, 87, 1021,
+ 87, 1027, 1036, 1037, 87, 87, 1023, 1035, 1029, 87,
- 1024, 1025, 1027, 1020, 1028, 87, 1031, 1035, 87, 87,
- 87, 1114, 1029, 1038, 1032, 1048, 1037, 1030, 87, 1039,
- 87, 87, 87, 1040, 4129, 1036, 87, 87, 1050, 1051,
- 87, 87, 1052, 4129, 1035, 1061, 1053, 1056, 87, 1054,
- 1038, 87, 1048, 87, 87, 1116, 1039, 87, 87, 4129,
- 1040, 1041, 1055, 87, 1042, 1050, 1051, 1057, 1043, 1052,
- 87, 1044, 1061, 1053, 1056, 1058, 1054, 1059, 1045, 1046,
- 87, 1047, 87, 1060, 1062, 1063, 87, 4129, 1041, 1055,
- 87, 1042, 87, 1073, 1057, 1043, 1074, 87, 1044, 87,
- 87, 87, 1058, 87, 1059, 1045, 1046, 1081, 1047, 1075,
+ 87, 87, 1038, 1028, 1024, 87, 87, 4153, 1032, 1031,
+ 1033, 1039, 1034, 1041, 1040, 1043, 1044, 87, 1042, 1036,
+ 1052, 1054, 4153, 87, 1035, 87, 87, 87, 1060, 4153,
+ 87, 87, 87, 87, 87, 1061, 1644, 1645, 1039, 87,
+ 1041, 1040, 1043, 1044, 4153, 1042, 1045, 1052, 1054, 1046,
+ 1055, 1056, 1057, 1047, 1058, 1060, 1048, 87, 87, 4153,
+ 1062, 1065, 1061, 1049, 1050, 87, 1051, 1059, 87, 1063,
+ 87, 87, 87, 1045, 1068, 87, 1046, 1055, 1056, 1057,
+ 1047, 1058, 1064, 1048, 1066, 87, 87, 1062, 1065, 1081,
+ 1049, 1050, 1067, 1051, 1059, 87, 1063, 87, 87, 87,
- 1060, 1062, 1063, 1065, 1066, 87, 1067, 1076, 87, 1068,
- 1073, 4129, 1077, 1074, 1069, 1078, 87, 1082, 87, 87,
- 1070, 1071, 1079, 1072, 1081, 87, 1075, 4129, 1084, 87,
- 1065, 1066, 1083, 1067, 1076, 87, 1068, 1086, 1080, 1077,
- 87, 1069, 1078, 1089, 1082, 87, 1090, 1070, 1071, 1079,
- 1072, 1085, 1087, 87, 87, 1084, 1091, 1088, 1092, 1083,
- 1093, 87, 1099, 87, 1086, 1080, 1094, 1095, 87, 4129,
- 1089, 1100, 87, 1090, 1096, 1098, 1101, 87, 1085, 87,
- 87, 1102, 4129, 1091, 87, 1092, 87, 1093, 87, 1099,
- 87, 87, 1105, 1094, 1095, 1106, 87, 1103, 1100, 87,
+ 1077, 1080, 1078, 1085, 4153, 1086, 87, 87, 1079, 1064,
+ 87, 1066, 87, 87, 87, 1082, 1081, 1087, 87, 1067,
+ 1069, 1070, 4153, 1071, 87, 87, 1072, 1077, 1080, 1078,
+ 1085, 1073, 1086, 1083, 1089, 1079, 87, 1074, 1075, 87,
+ 1076, 1096, 1082, 1088, 1087, 1090, 87, 1069, 1070, 1084,
+ 1071, 1093, 1091, 1072, 1094, 87, 87, 1092, 1073, 1097,
+ 1083, 1089, 1095, 87, 1074, 1075, 1098, 1076, 1096, 87,
+ 1088, 87, 1090, 1099, 87, 1101, 1084, 1100, 1093, 1103,
+ 87, 1094, 1102, 1104, 87, 87, 1097, 1106, 87, 1095,
+ 1105, 87, 1109, 1098, 87, 1108, 87, 87, 1107, 87,
- 87, 1096, 1098, 1101, 87, 1104, 1107, 1108, 1102, 1110,
- 1109, 87, 1112, 87, 87, 1113, 1111, 1120, 87, 1105,
- 87, 87, 1106, 87, 1103, 87, 1115, 87, 1119, 1121,
- 1125, 4129, 1104, 1107, 1108, 87, 1110, 1109, 1122, 1112,
- 1117, 1126, 1113, 1111, 1123, 1118, 1128, 87, 87, 87,
- 87, 1124, 87, 1115, 87, 1119, 1121, 1127, 87, 1129,
- 1130, 1131, 87, 87, 1132, 1122, 1133, 1137, 1126, 4129,
- 87, 1123, 87, 1128, 1135, 87, 1134, 1136, 1124, 87,
- 87, 1140, 1138, 87, 1142, 1145, 1129, 1130, 87, 87,
- 87, 87, 87, 1133, 1137, 87, 1139, 1143, 1141, 87,
+ 1099, 1110, 87, 87, 1100, 87, 1103, 87, 1111, 1102,
+ 1104, 87, 1114, 87, 1106, 1115, 1112, 1105, 1113, 1109,
+ 87, 1116, 1108, 87, 87, 1107, 1118, 87, 1110, 1117,
+ 1119, 87, 1120, 1121, 87, 1111, 87, 1125, 87, 1114,
+ 1124, 1122, 1115, 1112, 1127, 1113, 1123, 1126, 1116, 1130,
+ 1136, 1132, 87, 87, 87, 1128, 1117, 1119, 87, 1120,
+ 87, 1129, 87, 87, 1131, 1133, 1134, 1124, 87, 87,
+ 1137, 1127, 87, 87, 1126, 1135, 1138, 87, 1141, 1139,
+ 4153, 87, 1128, 87, 1142, 87, 87, 87, 1129, 87,
+ 1140, 1131, 1133, 1134, 87, 1143, 1146, 87, 87, 87,
- 1144, 1135, 87, 1134, 1136, 87, 87, 1146, 1140, 1138,
- 1148, 87, 87, 1147, 1149, 87, 1152, 1150, 87, 87,
- 1151, 87, 87, 1139, 1143, 1141, 87, 1144, 1154, 1156,
- 1153, 87, 87, 1155, 87, 1158, 1157, 1148, 4129, 87,
- 1147, 1149, 87, 1152, 1150, 87, 1159, 1151, 1161, 1160,
- 1162, 87, 87, 87, 1163, 1154, 1156, 1153, 87, 1168,
- 1155, 87, 1158, 1157, 1164, 1171, 1167, 4129, 1169, 1165,
- 87, 87, 87, 1159, 1166, 1161, 1160, 1162, 87, 87,
- 87, 1163, 1170, 87, 1172, 87, 1168, 87, 1173, 1176,
- 87, 1164, 1171, 1167, 1174, 1169, 1177, 87, 1178, 1180,
+ 87, 1144, 1135, 1138, 87, 1141, 1139, 87, 1145, 1147,
+ 87, 1142, 1148, 1149, 1150, 87, 1151, 1140, 1152, 87,
+ 1154, 4153, 1143, 1146, 1157, 1153, 1159, 87, 1144, 87,
+ 87, 4153, 87, 87, 1155, 1145, 87, 1161, 87, 1148,
+ 1149, 87, 87, 87, 1158, 1152, 1160, 1154, 87, 1156,
+ 87, 1157, 1153, 1159, 1163, 1162, 87, 4153, 87, 87,
+ 1164, 1155, 1166, 1165, 1161, 1167, 1169, 87, 1168, 1170,
+ 1172, 1158, 87, 1160, 1171, 87, 1156, 87, 1173, 1174,
+ 87, 1163, 1162, 87, 87, 87, 87, 1164, 1175, 1166,
+ 1165, 87, 1167, 1169, 1176, 1168, 87, 1172, 1178, 1177,
- 1179, 87, 1175, 1182, 87, 87, 1181, 4129, 1184, 1170,
- 87, 1172, 1183, 87, 87, 1173, 1176, 1185, 87, 87,
- 1186, 1174, 87, 87, 87, 1178, 1180, 1179, 87, 1175,
- 1182, 1188, 1187, 1181, 1189, 1184, 87, 1190, 87, 1183,
- 1191, 1193, 1192, 87, 1185, 87, 1194, 1186, 1198, 1196,
- 1197, 1201, 1199, 1212, 87, 1195, 87, 87, 1188, 1187,
- 87, 1189, 87, 87, 1190, 87, 1200, 87, 1193, 1192,
- 4129, 87, 87, 1194, 1204, 1198, 1196, 1197, 87, 1199,
- 1203, 1202, 1195, 1205, 1206, 87, 4129, 87, 87, 87,
- 87, 1207, 87, 1200, 1208, 1210, 1209, 1213, 87, 87,
+ 1179, 87, 87, 1181, 87, 1173, 1174, 87, 1180, 1182,
+ 1183, 1184, 87, 1185, 4153, 1175, 87, 1186, 1189, 87,
+ 1196, 1176, 1187, 87, 87, 1178, 1177, 1179, 87, 87,
+ 1181, 1193, 4153, 87, 1188, 1180, 87, 1183, 1184, 87,
+ 1185, 87, 1191, 1190, 1186, 1189, 1194, 1192, 1195, 1187,
+ 87, 87, 87, 1197, 87, 87, 87, 1198, 1193, 1200,
+ 87, 1188, 1202, 1203, 1201, 1199, 1204, 87, 1206, 1191,
+ 1190, 87, 87, 1194, 1192, 1195, 87, 87, 1205, 87,
+ 1197, 1209, 87, 87, 1198, 4153, 1200, 1208, 1207, 1202,
+ 1203, 1201, 1199, 1204, 87, 87, 87, 1210, 1211, 87,
- 1214, 1204, 87, 87, 87, 1211, 1215, 1203, 1202, 1217,
- 1205, 1206, 87, 87, 1218, 1216, 87, 1219, 1207, 4129,
- 1220, 1208, 1210, 1209, 1225, 1221, 1222, 1214, 87, 87,
- 87, 1229, 1211, 87, 1223, 1224, 1217, 1226, 87, 1227,
- 1228, 87, 1216, 87, 1232, 4129, 87, 1220, 1234, 87,
- 1230, 1225, 1221, 1222, 1231, 87, 1235, 87, 1229, 87,
- 1233, 1223, 1224, 87, 1226, 87, 1236, 87, 87, 1237,
- 1298, 87, 87, 1238, 1241, 87, 87, 1230, 1243, 1242,
- 87, 1231, 1245, 1235, 1244, 1247, 1239, 1233, 1240, 1246,
- 87, 87, 87, 1236, 87, 1249, 1237, 87, 1248, 4129,
+ 87, 1214, 1212, 1213, 87, 1205, 87, 1218, 1209, 87,
+ 87, 1215, 1219, 1216, 1208, 1207, 1217, 87, 1220, 87,
+ 87, 1221, 1222, 87, 1210, 1211, 1224, 1223, 1214, 1212,
+ 1213, 87, 1225, 1226, 87, 87, 4153, 4153, 1215, 87,
+ 1216, 1230, 1227, 1217, 87, 1220, 1231, 1228, 1233, 1222,
+ 87, 1232, 87, 87, 1223, 1229, 87, 1234, 87, 1235,
+ 1226, 1236, 87, 87, 87, 1237, 1238, 1240, 1230, 1227,
+ 87, 4153, 1241, 1231, 1228, 1243, 1242, 87, 1232, 87,
+ 87, 87, 1229, 87, 1239, 4153, 1235, 1250, 1236, 87,
+ 87, 87, 1237, 1244, 87, 1247, 1251, 87, 87, 1241,
- 1238, 1251, 87, 4129, 87, 1243, 175, 87, 87, 1245,
- 87, 1244, 1247, 1239, 1252, 1240, 1246, 87, 1250, 1253,
- 1255, 1266, 1249, 1257, 1256, 1248, 87, 87, 1251, 87,
- 1254, 87, 1264, 4129, 87, 1265, 1268, 4129, 4129, 4129,
- 1267, 1252, 1299, 87, 87, 1250, 1253, 1255, 1266, 4129,
- 1257, 1256, 87, 1269, 87, 87, 1274, 1254, 1258, 1264,
- 1259, 87, 1265, 87, 1260, 87, 1261, 1267, 1272, 1270,
- 1271, 1262, 1273, 1275, 87, 87, 1263, 1277, 4129, 1276,
- 1269, 1291, 87, 1274, 87, 1258, 87, 1259, 4129, 1278,
- 87, 1260, 87, 1261, 1279, 1272, 1270, 1271, 1262, 1273,
+ 1248, 1249, 1243, 1242, 1252, 1253, 1245, 1254, 1246, 87,
+ 87, 1239, 87, 87, 1250, 1255, 1256, 87, 1257, 87,
+ 1244, 87, 87, 1251, 87, 1258, 4153, 175, 1249, 1259,
+ 1261, 1252, 1253, 1245, 1254, 1246, 1270, 87, 87, 1262,
+ 1260, 1263, 1255, 1256, 87, 1257, 87, 87, 4153, 1272,
+ 4153, 1274, 1258, 87, 1271, 4153, 1259, 1261, 87, 4153,
+ 4153, 1273, 1275, 1270, 87, 4153, 1262, 1260, 1263, 1264,
+ 1280, 1265, 87, 87, 1279, 1266, 1272, 1267, 87, 87,
+ 87, 1271, 1268, 1276, 1277, 1278, 87, 1269, 1273, 1275,
+ 1281, 1282, 87, 87, 1283, 1284, 1264, 1280, 1265, 4153,
- 1275, 87, 1280, 1263, 1277, 1281, 1276, 1282, 87, 1285,
- 1284, 1288, 4129, 1286, 1290, 1293, 4129, 1289, 87, 1283,
- 87, 87, 87, 1287, 1302, 1292, 87, 87, 87, 1280,
- 87, 87, 1281, 1294, 1282, 87, 1285, 1284, 1288, 87,
- 1286, 1290, 1293, 1295, 1289, 1296, 1283, 1297, 1300, 1303,
- 1287, 87, 1292, 1304, 87, 1305, 87, 1314, 1313, 4129,
- 1294, 87, 1316, 4129, 87, 87, 87, 1317, 1315, 87,
- 1295, 4129, 1296, 87, 1297, 87, 1303, 87, 1318, 87,
- 1304, 87, 1305, 1306, 1314, 1313, 1320, 1319, 1307, 1316,
- 1308, 1322, 1321, 87, 1317, 1315, 1309, 4129, 1326, 87,
+ 1285, 1279, 1266, 87, 1267, 1286, 87, 87, 1288, 1268,
+ 1276, 1277, 1278, 87, 1269, 1287, 1295, 1281, 1282, 4153,
+ 1289, 1283, 1290, 87, 4153, 1291, 1294, 87, 87, 1292,
+ 1297, 87, 1286, 1296, 87, 1288, 1300, 1301, 87, 1293,
+ 1302, 87, 1287, 1295, 1298, 1299, 87, 1289, 1303, 1290,
+ 87, 87, 1291, 1294, 87, 1304, 1292, 87, 87, 87,
+ 1296, 87, 1305, 1300, 1301, 1306, 1293, 1302, 1308, 1309,
+ 87, 1298, 1299, 4153, 87, 1303, 1310, 1311, 4153, 1320,
+ 1319, 4153, 1322, 4153, 87, 1332, 87, 87, 1323, 1321,
+ 4153, 4153, 87, 4153, 87, 87, 1309, 87, 1324, 4153,
- 87, 1310, 1311, 87, 87, 1318, 87, 1333, 1312, 87,
- 1306, 1325, 1323, 1320, 1319, 1307, 1324, 1308, 1322, 1321,
- 87, 1328, 87, 1309, 87, 1327, 1330, 1334, 1310, 1311,
- 87, 1329, 1331, 1332, 87, 1312, 87, 87, 1325, 1323,
- 87, 87, 87, 1324, 1335, 1336, 1337, 87, 1328, 1338,
- 87, 87, 1327, 1330, 1334, 1340, 1339, 87, 1329, 1331,
- 1332, 1341, 1342, 1344, 1343, 1347, 4129, 1345, 1346, 87,
- 87, 1335, 87, 1337, 1348, 4129, 1338, 87, 87, 87,
- 87, 87, 1340, 1339, 87, 87, 1349, 1351, 1350, 1342,
- 1344, 1343, 1352, 87, 1345, 1346, 87, 87, 1353, 87,
+ 87, 87, 87, 1310, 1311, 1312, 1320, 1319, 1325, 1322,
+ 1313, 1327, 1314, 1326, 87, 1323, 1321, 87, 1315, 1339,
+ 87, 1328, 87, 1316, 1317, 1324, 87, 87, 1329, 1334,
+ 1318, 87, 1312, 1330, 87, 1325, 87, 1313, 1327, 1314,
+ 1326, 87, 1331, 1333, 87, 1315, 87, 4153, 1328, 1335,
+ 1316, 1317, 1336, 87, 1340, 1329, 1334, 1318, 87, 1337,
+ 1330, 1343, 1338, 87, 1342, 87, 1341, 1344, 87, 1331,
+ 1333, 87, 1347, 87, 1349, 87, 1335, 87, 1345, 1336,
+ 1348, 1340, 87, 1346, 1352, 87, 1337, 1353, 1343, 1338,
+ 1350, 1351, 4153, 1341, 1344, 87, 87, 87, 1355, 4153,
- 1354, 1348, 1356, 1355, 87, 1357, 1358, 1359, 1360, 87,
- 87, 87, 1361, 1349, 1351, 1350, 1365, 87, 87, 1352,
- 1362, 1368, 4129, 87, 87, 1353, 87, 1354, 87, 1356,
- 1355, 87, 1357, 1358, 1359, 1360, 1363, 1366, 1364, 87,
- 1367, 1371, 87, 1365, 87, 87, 1369, 1362, 1370, 87,
- 87, 4129, 1373, 87, 87, 1374, 1375, 1372, 1376, 1379,
- 1378, 87, 87, 1363, 1366, 1364, 1380, 1367, 1371, 87,
- 1377, 4129, 1381, 1369, 87, 1370, 4129, 87, 87, 1373,
- 87, 1382, 1374, 1375, 1372, 1376, 87, 1378, 87, 1383,
- 87, 87, 1393, 87, 1384, 1385, 1390, 1377, 87, 1381,
+ 87, 1349, 87, 1360, 87, 1345, 1354, 1348, 87, 87,
+ 1346, 1352, 87, 1356, 1357, 1358, 87, 1350, 1351, 87,
+ 1361, 87, 87, 1362, 1359, 1355, 1363, 87, 1364, 87,
+ 1360, 1365, 1368, 1354, 1367, 1366, 87, 87, 87, 4153,
+ 1356, 1357, 1358, 1369, 87, 87, 87, 1361, 1372, 1374,
+ 1362, 1359, 87, 1363, 87, 1364, 1370, 1375, 1365, 1371,
+ 87, 1367, 1366, 1373, 87, 87, 87, 1379, 1377, 87,
+ 1369, 87, 1376, 1378, 87, 1372, 1374, 1385, 1384, 87,
+ 87, 87, 87, 1370, 1380, 1381, 1371, 1382, 1383, 87,
+ 1373, 1386, 1387, 4153, 1379, 1377, 87, 4153, 1388, 1376,
- 1386, 1389, 1391, 87, 1387, 87, 4129, 1388, 1382, 1403,
- 1392, 1394, 4129, 87, 87, 87, 1383, 87, 87, 1393,
- 87, 1384, 1397, 1390, 1398, 1395, 1396, 87, 1389, 1391,
- 87, 1387, 1399, 87, 1388, 1402, 1400, 1392, 1394, 87,
- 1401, 87, 1405, 87, 87, 87, 1406, 87, 1404, 1397,
- 1407, 1398, 1395, 1396, 87, 87, 1408, 1410, 87, 1399,
- 1409, 4129, 1402, 1400, 1411, 1414, 1412, 1401, 1413, 87,
- 87, 1415, 87, 1406, 87, 1404, 87, 1407, 1416, 1417,
- 1424, 87, 1418, 1408, 1410, 1420, 87, 1409, 87, 87,
- 87, 1411, 1414, 1412, 1419, 1413, 87, 87, 1415, 1421,
+ 1378, 1389, 1410, 87, 1385, 1384, 87, 87, 1390, 87,
+ 87, 1380, 1381, 87, 1382, 1383, 87, 1394, 1391, 1396,
+ 1395, 1392, 87, 87, 87, 1388, 1393, 1397, 1389, 87,
+ 1399, 87, 1401, 1400, 87, 1390, 1398, 87, 1405, 87,
+ 1412, 1404, 4153, 87, 1394, 1391, 1396, 1395, 4153, 87,
+ 1430, 87, 87, 87, 1397, 87, 1406, 1399, 87, 1401,
+ 1400, 1402, 1403, 1398, 1407, 1405, 1408, 87, 1404, 1409,
+ 1411, 4153, 87, 87, 1413, 87, 1414, 87, 1416, 1415,
+ 87, 87, 87, 1406, 1417, 1419, 87, 1420, 1402, 1403,
+ 4153, 1407, 87, 1408, 1418, 1422, 1409, 1411, 87, 1421,
- 87, 87, 1422, 1423, 1425, 1416, 1417, 87, 87, 1418,
- 1426, 4129, 1420, 1428, 1427, 87, 1429, 1434, 1432, 87,
- 87, 1419, 87, 1431, 1430, 87, 1421, 1435, 4129, 1422,
- 87, 1425, 87, 1433, 1436, 87, 1437, 1426, 87, 87,
- 1428, 1427, 87, 1429, 1439, 1432, 1438, 87, 1440, 87,
- 1431, 1430, 1441, 1443, 1444, 1442, 1445, 4129, 87, 87,
- 1433, 87, 87, 1437, 1446, 1447, 87, 1448, 87, 1449,
- 87, 1450, 1460, 1438, 1451, 1440, 87, 87, 1453, 1454,
- 1443, 1444, 1442, 87, 87, 87, 87, 87, 87, 1452,
- 1456, 1446, 87, 87, 1448, 1455, 1449, 87, 1450, 1457,
+ 87, 1413, 1423, 1414, 87, 1416, 1415, 87, 87, 87,
+ 87, 1417, 1419, 87, 1420, 1424, 1425, 1426, 1428, 1427,
+ 1431, 1418, 1422, 1432, 87, 1433, 1421, 1429, 1437, 1423,
+ 87, 87, 1434, 87, 87, 1435, 87, 87, 87, 87,
+ 1436, 87, 1424, 1425, 1426, 1428, 1427, 87, 1439, 87,
+ 1432, 1438, 1433, 1441, 1429, 1437, 87, 1440, 87, 1434,
+ 1442, 87, 1435, 1443, 1444, 1446, 1445, 1436, 1448, 4153,
+ 1452, 87, 87, 4153, 1447, 1439, 1449, 1453, 1438, 1454,
+ 1450, 4153, 1455, 1451, 1440, 87, 87, 1456, 87, 87,
+ 87, 1444, 87, 1445, 87, 87, 87, 87, 87, 87,
- 1458, 1451, 87, 87, 87, 1453, 1454, 1461, 87, 1462,
- 1459, 87, 87, 1463, 1464, 87, 1452, 1456, 87, 1466,
- 1465, 87, 1455, 1467, 1468, 1470, 1457, 1458, 87, 1473,
- 1471, 87, 87, 87, 87, 87, 1462, 1459, 87, 87,
- 1463, 87, 1475, 1476, 1477, 1472, 1466, 1465, 87, 4129,
- 1467, 1468, 1470, 87, 1474, 1478, 1473, 1471, 1479, 1480,
- 87, 1481, 87, 87, 1482, 1484, 175, 1486, 1483, 1475,
- 87, 1477, 1472, 1487, 87, 1485, 87, 87, 1489, 87,
- 87, 1474, 1478, 87, 1491, 1479, 1480, 87, 1481, 1488,
- 1490, 1482, 1484, 87, 1486, 1483, 87, 1492, 1494, 1496,
+ 87, 1447, 87, 1449, 1453, 87, 87, 1450, 1457, 1455,
+ 1451, 1458, 1459, 1461, 1456, 1460, 1463, 1462, 1465, 4153,
+ 1467, 87, 1468, 87, 1464, 1469, 87, 87, 87, 1472,
+ 4153, 1471, 87, 87, 1466, 1457, 1470, 87, 1458, 1459,
+ 1461, 87, 1460, 1463, 1462, 1465, 87, 1467, 87, 87,
+ 1475, 1464, 1473, 87, 87, 1474, 87, 87, 1471, 1480,
+ 87, 1466, 1476, 1470, 1478, 87, 1479, 87, 87, 1483,
+ 1481, 87, 87, 87, 1484, 1482, 1485, 1475, 1486, 1473,
+ 4153, 1488, 1474, 87, 87, 1487, 1480, 87, 175, 1476,
+ 4153, 1478, 1490, 1479, 1491, 87, 1483, 1481, 1489, 1493,
- 87, 1493, 1485, 87, 1495, 1497, 1498, 4129, 1499, 87,
- 87, 1491, 87, 1502, 1503, 1500, 1488, 4129, 87, 87,
- 87, 87, 87, 1511, 1492, 1494, 1496, 87, 1493, 87,
- 87, 1495, 1497, 1498, 87, 1499, 1501, 87, 1504, 1505,
- 1502, 1503, 1500, 1506, 87, 1507, 1508, 87, 1510, 1509,
- 87, 1522, 1512, 1513, 1514, 87, 4129, 87, 87, 4129,
- 1519, 87, 1521, 1501, 87, 1504, 1505, 87, 1520, 87,
- 87, 1524, 1507, 1508, 87, 1510, 1509, 1515, 87, 1512,
- 1513, 1514, 1523, 87, 87, 87, 1516, 1519, 1517, 1521,
- 1525, 1518, 1526, 1527, 87, 1520, 1528, 4129, 1524, 87,
+ 87, 87, 1482, 1485, 87, 1486, 1492, 87, 1488, 87,
+ 1494, 87, 1487, 1495, 1497, 1498, 1496, 87, 1500, 1490,
+ 4153, 1491, 87, 87, 1501, 1489, 1493, 1502, 87, 1499,
+ 87, 1504, 1503, 1492, 4153, 87, 1509, 1494, 1507, 1505,
+ 87, 4153, 1506, 1496, 87, 1500, 87, 87, 87, 87,
+ 1508, 1501, 87, 87, 1502, 87, 1499, 87, 1504, 1503,
+ 87, 1510, 87, 1509, 1511, 1507, 1505, 1512, 1513, 1506,
+ 1514, 1519, 1517, 1515, 1518, 1516, 87, 1508, 4153, 87,
+ 1520, 4153, 1522, 87, 87, 87, 87, 1521, 1510, 87,
+ 87, 1511, 87, 1527, 1512, 1513, 1528, 87, 87, 1517,
- 1530, 87, 87, 87, 1515, 87, 1529, 1533, 1534, 1523,
- 1532, 1538, 4129, 1516, 4129, 1517, 87, 1525, 1518, 1526,
- 1527, 1531, 87, 1528, 87, 87, 1536, 1530, 1535, 87,
- 87, 4129, 1537, 1529, 1539, 1534, 1540, 1532, 87, 87,
- 87, 87, 87, 1541, 1542, 1543, 1544, 4129, 1531, 4129,
- 87, 4129, 1547, 1536, 1560, 1535, 87, 1545, 87, 1537,
- 87, 1539, 1546, 1540, 87, 1550, 87, 1548, 87, 87,
- 1541, 1542, 1543, 1544, 87, 1551, 1549, 87, 1552, 1547,
- 1553, 1554, 4129, 1556, 1545, 1557, 87, 87, 87, 1546,
- 1555, 87, 1550, 87, 1548, 87, 4129, 87, 1558, 87,
+ 1515, 1518, 1516, 87, 1523, 1529, 1530, 1520, 87, 1522,
+ 1531, 1532, 1534, 1524, 1521, 1525, 87, 4153, 1526, 1536,
+ 1527, 1533, 87, 1528, 4153, 87, 87, 87, 87, 1537,
+ 87, 1523, 1529, 87, 87, 1535, 87, 1531, 1532, 1534,
+ 1524, 1538, 1525, 87, 1539, 1526, 1536, 87, 1533, 1540,
+ 1541, 1542, 87, 1543, 1544, 4153, 1537, 1545, 1546, 1552,
+ 4153, 1547, 1535, 87, 87, 87, 87, 1548, 1538, 1550,
+ 87, 1539, 1549, 87, 1551, 1553, 1540, 87, 1542, 87,
+ 1543, 1544, 87, 87, 1545, 87, 1552, 87, 1547, 87,
+ 1555, 87, 1554, 1558, 1548, 1559, 1550, 87, 87, 1549,
- 4129, 1563, 1551, 1549, 87, 1552, 1561, 1553, 1554, 1559,
- 1556, 1562, 1557, 87, 87, 1564, 1565, 1555, 87, 87,
- 1566, 1567, 1569, 1570, 87, 1558, 1572, 87, 1563, 87,
- 1568, 4129, 87, 1561, 87, 87, 1559, 1571, 1562, 1573,
- 1574, 1575, 1564, 1565, 87, 1576, 1583, 1566, 1567, 1569,
- 1577, 87, 87, 87, 1578, 87, 1579, 1568, 87, 87,
- 87, 87, 1596, 1593, 1571, 1580, 1573, 1574, 1575, 1585,
- 1581, 87, 1576, 1583, 1582, 1584, 87, 1577, 1594, 4129,
- 4129, 1578, 87, 1579, 1601, 1599, 1595, 1598, 87, 87,
- 1593, 1597, 87, 1605, 87, 87, 1585, 87, 4129, 87,
+ 1556, 1551, 1553, 1560, 87, 87, 1561, 1562, 1564, 1557,
+ 4153, 1565, 1563, 87, 87, 87, 1568, 1555, 87, 1554,
+ 1558, 87, 1559, 87, 87, 1569, 1566, 1556, 1571, 87,
+ 1560, 1572, 87, 1561, 1562, 1564, 1557, 1567, 1565, 1563,
+ 1570, 1573, 87, 87, 1574, 1577, 87, 87, 87, 87,
+ 1578, 1580, 1569, 1566, 1575, 1571, 4153, 87, 1572, 87,
+ 4153, 1576, 87, 87, 1567, 1581, 1579, 1570, 1573, 1584,
+ 1583, 1574, 1577, 87, 1582, 1585, 87, 87, 1586, 1587,
+ 1588, 1575, 87, 87, 1593, 1589, 87, 87, 1576, 87,
+ 1590, 1591, 1581, 1579, 87, 1592, 1584, 1583, 87, 1601,
- 1602, 1582, 1584, 1586, 87, 1594, 1600, 1587, 87, 87,
- 1588, 1589, 1599, 1595, 1598, 1590, 87, 87, 1597, 1603,
- 1605, 1591, 87, 1604, 87, 1592, 1611, 1602, 1606, 87,
- 1586, 4129, 1610, 1600, 1587, 87, 1607, 1588, 1589, 87,
- 4129, 87, 1590, 1608, 1613, 1609, 1603, 1612, 1591, 87,
- 1604, 1614, 1592, 1611, 87, 1606, 1621, 1615, 1617, 1610,
- 1616, 4129, 87, 1607, 1618, 87, 1619, 87, 1620, 1622,
- 1608, 1623, 1609, 4129, 1612, 1624, 87, 87, 87, 87,
- 1626, 87, 1625, 87, 1615, 1617, 87, 1616, 87, 1632,
- 87, 1618, 4129, 1619, 87, 1620, 1622, 87, 1634, 1633,
+ 87, 1582, 1585, 4153, 87, 1586, 1587, 1602, 1604, 87,
+ 87, 1593, 87, 4153, 4153, 1603, 1606, 1590, 1591, 1609,
+ 1605, 87, 1592, 1594, 87, 1607, 1601, 1595, 4153, 4153,
+ 1596, 1597, 4153, 87, 1602, 1598, 4153, 1608, 87, 1610,
+ 87, 1599, 1603, 1606, 1612, 1600, 87, 1605, 87, 87,
+ 1594, 87, 1607, 1611, 1595, 87, 1614, 1596, 1597, 1613,
+ 1619, 87, 1598, 1621, 1608, 87, 1610, 87, 1599, 1615,
+ 87, 1612, 1600, 1620, 1617, 87, 1618, 1616, 87, 87,
+ 1611, 1622, 87, 1614, 1623, 1624, 1613, 1619, 1625, 4153,
+ 1621, 1630, 1626, 1632, 1628, 87, 1615, 4153, 87, 87,
- 1635, 1636, 1624, 87, 1637, 87, 1639, 1626, 1643, 1625,
- 1627, 87, 87, 1638, 4129, 1628, 1632, 1629, 87, 1630,
- 87, 1631, 1644, 1640, 87, 1634, 1633, 1642, 87, 87,
- 87, 1637, 1641, 1639, 1645, 87, 87, 1627, 1647, 1646,
- 1638, 87, 1628, 1648, 1629, 87, 1630, 1651, 1631, 87,
- 1640, 1649, 87, 1650, 1642, 1652, 87, 1653, 4129, 1641,
- 87, 1659, 87, 1654, 1656, 1647, 87, 1655, 1661, 87,
- 1648, 87, 87, 1657, 1651, 1658, 87, 1660, 1649, 87,
- 1650, 87, 1652, 87, 1653, 87, 1662, 1667, 87, 1664,
- 1654, 1656, 1668, 87, 1655, 1661, 1663, 1665, 1670, 1666,
+ 1620, 1617, 1627, 1618, 1616, 1629, 87, 87, 1633, 87,
+ 1631, 1634, 1624, 87, 87, 1625, 87, 1641, 1647, 1626,
+ 1642, 1628, 1635, 87, 87, 87, 1643, 1646, 4153, 1627,
+ 87, 87, 1629, 87, 87, 1633, 87, 1631, 1634, 87,
+ 1652, 87, 1650, 87, 1641, 1647, 1648, 1642, 1651, 1635,
+ 1636, 87, 87, 1643, 1646, 1637, 1649, 1638, 87, 1639,
+ 1653, 1640, 1656, 87, 1660, 1654, 87, 87, 87, 1650,
+ 1655, 1662, 1657, 1648, 1658, 1651, 87, 1636, 1659, 87,
+ 1668, 1663, 1637, 1649, 1638, 87, 1639, 87, 1640, 1656,
+ 1661, 1660, 87, 87, 87, 87, 87, 87, 1662, 1657,
- 1657, 87, 1658, 87, 1660, 87, 1669, 87, 87, 87,
- 87, 87, 1671, 1662, 1667, 1672, 1664, 87, 1673, 1668,
- 87, 1674, 1675, 1663, 1665, 1670, 1666, 87, 1676, 1677,
- 1678, 1680, 1679, 1669, 1681, 1682, 4129, 1683, 87, 87,
- 1685, 87, 1672, 87, 1684, 87, 87, 87, 1674, 1675,
- 87, 87, 87, 1688, 1686, 1676, 1677, 1678, 87, 1679,
- 87, 1681, 87, 87, 1683, 1689, 87, 1685, 1687, 1690,
- 1691, 1684, 87, 1693, 87, 1692, 1694, 1697, 4129, 87,
- 87, 1686, 87, 1695, 1696, 4129, 87, 1699, 1698, 1704,
- 4129, 1701, 1689, 1700, 87, 1687, 1690, 1691, 87, 87,
+ 1664, 1658, 1665, 1666, 1671, 1659, 1667, 1670, 1663, 1669,
+ 87, 87, 87, 1672, 1675, 1673, 4153, 1661, 87, 87,
+ 1680, 4153, 87, 87, 1676, 1674, 87, 1664, 1679, 1665,
+ 1666, 1671, 87, 1667, 1670, 87, 1669, 87, 87, 1677,
+ 1672, 1675, 1673, 1678, 87, 87, 1681, 87, 87, 1682,
+ 87, 1676, 1674, 1683, 1684, 1679, 4153, 1687, 87, 1685,
+ 1686, 1689, 1690, 1691, 1697, 87, 1677, 1688, 4153, 87,
+ 1678, 1692, 1694, 1681, 1693, 87, 87, 1702, 87, 87,
+ 1683, 1684, 87, 87, 1687, 87, 1685, 1686, 87, 1690,
+ 87, 87, 1700, 1703, 1688, 1699, 87, 87, 1692, 1694,
- 1703, 87, 1692, 1694, 1697, 87, 1702, 87, 87, 87,
- 1695, 1696, 87, 87, 1699, 1698, 1704, 1705, 1701, 87,
- 1700, 1706, 87, 1708, 1707, 1709, 1710, 1703, 1714, 4129,
- 1715, 4129, 4129, 1702, 1711, 87, 1712, 1716, 4129, 87,
- 1713, 1718, 1722, 1717, 1705, 87, 87, 87, 1706, 87,
- 1708, 1707, 1709, 1710, 87, 87, 87, 1719, 1720, 87,
- 87, 1711, 87, 1712, 1716, 87, 87, 1713, 1725, 87,
- 1717, 1721, 1723, 87, 1724, 87, 1727, 1726, 1731, 87,
- 1728, 87, 1729, 1732, 1719, 1720, 87, 87, 1735, 87,
- 87, 1733, 175, 87, 1741, 1725, 1730, 1734, 1721, 1723,
+ 1695, 1693, 1696, 1698, 1701, 87, 87, 1704, 87, 87,
+ 87, 87, 1705, 1711, 1706, 87, 87, 4153, 1707, 1700,
+ 1703, 4153, 1699, 87, 1708, 87, 1709, 1695, 1713, 1696,
+ 1698, 1701, 1710, 1714, 1704, 87, 1712, 87, 87, 1705,
+ 1711, 1706, 87, 1715, 1716, 1707, 87, 1717, 87, 87,
+ 87, 1708, 87, 1709, 1718, 1713, 1719, 1720, 1721, 1710,
+ 1714, 1723, 1722, 1712, 1724, 87, 87, 1725, 87, 87,
+ 1715, 1716, 1728, 1726, 1717, 87, 1727, 4153, 87, 87,
+ 87, 1718, 87, 1719, 1720, 1721, 1730, 1729, 1723, 1722,
+ 1731, 1732, 1741, 1735, 87, 87, 87, 4153, 87, 87,
- 87, 1724, 4129, 1727, 1726, 1740, 4129, 1728, 1736, 1729,
- 87, 4129, 87, 87, 1737, 87, 1738, 4129, 1733, 1743,
- 87, 87, 1739, 1730, 1734, 1744, 87, 87, 1746, 87,
- 1742, 1745, 1740, 1749, 87, 1736, 1752, 87, 87, 1750,
- 87, 1737, 87, 1738, 1747, 1748, 1743, 87, 1754, 1739,
- 1751, 87, 1744, 1757, 87, 1746, 1756, 1742, 1745, 87,
- 1749, 87, 4129, 87, 1753, 1755, 1750, 87, 87, 87,
- 87, 1747, 1748, 87, 1758, 1754, 1760, 1751, 1761, 1759,
- 1757, 1762, 1763, 1756, 1764, 87, 1765, 87, 4129, 1771,
- 1766, 1753, 1755, 1767, 1770, 1773, 1796, 87, 87, 87,
+ 1726, 1733, 1734, 1727, 87, 87, 87, 1736, 87, 87,
+ 1737, 1738, 1739, 1730, 1729, 87, 87, 1731, 87, 87,
+ 1735, 1740, 1742, 175, 87, 87, 1743, 87, 1733, 1734,
+ 1744, 1745, 1751, 1750, 1736, 1752, 4153, 1737, 1738, 1739,
+ 1756, 1755, 87, 1746, 1753, 1748, 87, 87, 1740, 1747,
+ 87, 1749, 1754, 1743, 87, 87, 87, 1744, 87, 87,
+ 1750, 1762, 1752, 87, 87, 87, 87, 1756, 1755, 1760,
+ 1746, 1753, 1748, 1757, 1759, 1758, 1747, 87, 1749, 1754,
+ 87, 1761, 1763, 87, 1764, 1765, 87, 4153, 87, 1767,
+ 87, 87, 1766, 87, 1768, 1770, 1760, 1772, 1771, 1769,
- 4129, 87, 87, 1760, 1768, 1761, 87, 1769, 1762, 1763,
- 1772, 1764, 87, 1765, 87, 1775, 1771, 1766, 1774, 1776,
- 1767, 1770, 1782, 87, 1779, 1777, 87, 87, 87, 87,
- 1778, 1768, 87, 1783, 1769, 87, 1784, 1772, 87, 1780,
- 87, 1781, 1775, 1785, 87, 1774, 1776, 1786, 4129, 1782,
- 87, 1779, 87, 1787, 87, 87, 1790, 87, 87, 1789,
- 1783, 1792, 1788, 1784, 1791, 87, 1780, 1793, 1781, 87,
- 1785, 1795, 87, 87, 1786, 87, 1794, 1797, 4129, 87,
- 1787, 4129, 1798, 1790, 1801, 87, 1789, 87, 1792, 1788,
- 87, 1791, 87, 87, 1793, 1800, 87, 1799, 1795, 1803,
+ 1757, 1759, 1758, 87, 87, 87, 87, 87, 1761, 1763,
+ 1773, 1764, 1765, 1781, 1774, 87, 1767, 1780, 1775, 1766,
+ 1776, 4153, 1770, 1777, 1772, 1771, 87, 87, 1784, 87,
+ 87, 1778, 87, 1782, 1779, 87, 1783, 1773, 87, 87,
+ 1781, 1774, 1785, 1786, 1780, 1775, 87, 1776, 1789, 1787,
+ 1777, 1790, 87, 87, 1788, 1784, 87, 1791, 1778, 87,
+ 1782, 1779, 4153, 1792, 1793, 87, 87, 1794, 87, 1785,
+ 1786, 1795, 1796, 1797, 1799, 1789, 1798, 4153, 1790, 87,
+ 87, 87, 1802, 87, 1791, 87, 87, 87, 1800, 87,
+ 1792, 1793, 1806, 1801, 1794, 87, 1803, 87, 1795, 1796,
- 1802, 1804, 4129, 1794, 1797, 87, 1807, 87, 87, 1798,
- 1805, 1801, 87, 1806, 1809, 87, 1808, 4129, 1812, 1810,
- 1811, 1817, 1800, 87, 1799, 87, 1803, 1802, 1804, 87,
- 87, 1814, 1818, 1807, 1816, 87, 87, 1805, 87, 1813,
- 1806, 1809, 1820, 1808, 87, 1812, 1810, 1811, 1815, 87,
- 1819, 87, 1821, 87, 1823, 87, 1824, 1822, 1814, 1826,
- 87, 1816, 87, 87, 87, 87, 1813, 1825, 87, 1820,
- 1827, 1828, 1829, 4129, 1830, 1815, 4129, 1819, 87, 87,
- 1833, 1823, 1834, 1824, 1822, 4129, 1835, 1836, 1840, 87,
- 1841, 87, 4129, 1831, 1825, 1832, 87, 1837, 87, 1829,
+ 1797, 1799, 87, 1798, 1804, 1808, 1805, 1807, 87, 1802,
+ 1809, 4153, 1810, 87, 87, 1800, 87, 1811, 87, 87,
+ 1801, 1814, 87, 1803, 87, 87, 1812, 1813, 1818, 87,
+ 1815, 1804, 1808, 1805, 1807, 87, 1816, 1809, 87, 1810,
+ 1817, 87, 1819, 87, 1811, 1820, 4153, 1821, 1814, 87,
+ 87, 87, 1822, 1812, 1813, 1818, 1823, 1815, 87, 1824,
+ 1827, 1826, 1828, 1816, 87, 87, 1825, 1817, 87, 1819,
+ 1830, 1829, 1820, 87, 1821, 1831, 1834, 87, 87, 1822,
+ 1832, 1836, 87, 1823, 87, 4153, 1824, 87, 1826, 1833,
+ 1835, 1837, 87, 1825, 87, 1838, 87, 1830, 1829, 1839,
- 87, 1830, 87, 87, 87, 87, 1838, 87, 87, 1834,
- 1843, 1839, 87, 1835, 1836, 1840, 87, 1841, 1842, 87,
- 1831, 1844, 1832, 87, 1837, 87, 4129, 1845, 1846, 87,
- 1848, 1847, 1857, 1838, 1852, 1849, 1853, 1843, 1839, 87,
- 1854, 87, 1850, 87, 1855, 1842, 1858, 1851, 1856, 87,
- 87, 1862, 87, 87, 1845, 1846, 87, 87, 1847, 1857,
- 87, 1852, 87, 1853, 1859, 1863, 87, 1854, 87, 1860,
- 1865, 1855, 87, 1858, 87, 1856, 1861, 87, 1862, 1864,
- 1866, 1867, 1868, 87, 1869, 87, 1870, 1871, 87, 87,
- 1873, 1859, 1872, 4129, 87, 87, 1860, 87, 1875, 1881,
+ 87, 87, 87, 1834, 1843, 4153, 1844, 1832, 4153, 1840,
+ 1846, 4153, 87, 87, 1845, 1852, 1833, 1835, 1851, 87,
+ 1850, 1848, 87, 87, 1847, 87, 1839, 87, 1841, 87,
+ 1842, 87, 87, 1844, 87, 87, 1840, 1846, 1849, 87,
+ 87, 1845, 1852, 1853, 87, 1851, 1854, 1850, 1848, 1855,
+ 87, 1847, 1857, 1856, 1858, 1841, 1860, 1842, 1862, 1859,
+ 87, 1861, 87, 1864, 1865, 1849, 87, 1863, 4153, 1866,
+ 1853, 87, 87, 1868, 87, 1867, 1855, 87, 87, 1857,
+ 1856, 87, 1869, 1874, 1870, 1862, 87, 1876, 87, 87,
+ 1864, 1865, 87, 87, 1863, 87, 1866, 1871, 1873, 1872,
- 4129, 87, 87, 1861, 1874, 87, 1864, 1866, 1867, 1868,
- 1883, 1869, 87, 87, 1871, 1876, 87, 1880, 87, 1872,
- 1877, 1878, 87, 87, 1879, 1875, 1881, 1882, 87, 87,
- 87, 1874, 87, 1884, 1887, 1885, 87, 1883, 1886, 87,
- 1888, 1889, 1876, 87, 1880, 4129, 87, 1877, 1878, 87,
- 1890, 1879, 1891, 1894, 1882, 1892, 4129, 87, 1893, 1895,
- 1884, 1887, 1885, 1899, 4129, 1886, 1900, 87, 87, 87,
- 87, 87, 87, 87, 1896, 87, 1902, 1890, 1897, 1891,
- 1894, 1908, 1892, 1901, 1903, 1893, 1895, 1904, 87, 87,
- 1899, 1898, 87, 1900, 1905, 1909, 1907, 1906, 1910, 87,
+ 1868, 1875, 1867, 1877, 4153, 87, 87, 87, 1879, 1878,
+ 1881, 1870, 87, 1882, 87, 87, 87, 1880, 87, 87,
+ 87, 87, 1883, 87, 1871, 1873, 1872, 1884, 1875, 1885,
+ 1877, 1887, 4153, 1886, 4153, 1879, 1878, 87, 1888, 87,
+ 1882, 1891, 87, 87, 1880, 1889, 87, 1890, 1921, 1883,
+ 1893, 87, 1894, 87, 87, 87, 1885, 1892, 1887, 87,
+ 1886, 1895, 87, 87, 1899, 1888, 1900, 1896, 1891, 1903,
+ 1901, 1898, 1889, 1897, 1890, 87, 1902, 1893, 87, 1894,
+ 87, 87, 1910, 87, 1892, 87, 87, 1905, 1895, 1904,
+ 1906, 87, 87, 87, 1896, 1914, 1903, 1901, 1898, 87,
- 87, 1896, 87, 1902, 87, 1897, 87, 87, 87, 87,
- 1901, 1903, 1912, 1911, 1904, 1913, 1914, 87, 1898, 1915,
- 1921, 1905, 1909, 1907, 1906, 87, 87, 1916, 1917, 1920,
- 87, 1919, 1918, 1922, 1924, 87, 87, 1927, 87, 1912,
- 1911, 87, 87, 1914, 1923, 1925, 1915, 87, 1926, 87,
- 87, 87, 87, 87, 1916, 1917, 1920, 1928, 1919, 1918,
- 87, 1929, 4129, 87, 1927, 1930, 87, 1931, 87, 1932,
- 87, 1923, 1925, 1933, 1934, 1926, 1935, 1937, 1936, 1938,
- 1939, 4129, 1941, 87, 87, 87, 87, 87, 1929, 87,
- 1940, 87, 87, 1947, 1931, 1948, 87, 87, 87, 1942,
+ 1897, 87, 1907, 1902, 87, 87, 1908, 1913, 87, 1910,
+ 1911, 1912, 1916, 87, 1905, 1918, 1904, 1906, 1915, 1909,
+ 87, 1917, 1914, 1919, 87, 1920, 87, 87, 87, 1907,
+ 1923, 87, 87, 1908, 1913, 1924, 1925, 1911, 1912, 1916,
+ 87, 1922, 1918, 1926, 87, 1915, 1909, 87, 1917, 1927,
+ 87, 1929, 1920, 87, 1928, 1930, 1932, 1923, 87, 1933,
+ 87, 87, 1931, 1925, 1935, 1934, 87, 87, 1922, 87,
+ 1926, 1936, 87, 87, 87, 1937, 1927, 87, 1929, 1938,
+ 1939, 1928, 1930, 1940, 1941, 1959, 87, 1943, 87, 1931,
+ 87, 1942, 1934, 1944, 1948, 4153, 87, 87, 1936, 1947,
- 1933, 1934, 87, 1935, 1937, 1936, 1938, 1939, 87, 1941,
- 1943, 87, 1944, 1945, 1946, 1949, 87, 1940, 1951, 1950,
- 87, 87, 1948, 1954, 1959, 87, 1942, 87, 87, 1952,
- 87, 87, 1957, 87, 1955, 87, 1953, 1943, 4129, 1944,
- 1945, 1946, 1949, 87, 1956, 1951, 1950, 87, 1958, 87,
- 1954, 87, 1965, 87, 87, 1960, 1952, 1961, 1964, 1957,
- 87, 1955, 1962, 1953, 87, 1963, 87, 1966, 87, 1967,
- 87, 1956, 1969, 1968, 1972, 1958, 1970, 87, 87, 1965,
- 1974, 1971, 1960, 1973, 1961, 1964, 4129, 4129, 87, 1962,
- 87, 4129, 1963, 1975, 1966, 87, 1967, 87, 87, 87,
+ 87, 1952, 1937, 4153, 87, 87, 1938, 1950, 1945, 1949,
+ 1940, 87, 87, 1946, 87, 87, 87, 87, 1942, 87,
+ 1944, 1948, 1951, 87, 87, 87, 1947, 87, 1952, 87,
+ 1953, 1954, 1956, 1955, 1950, 1945, 1949, 87, 1958, 1957,
+ 1946, 87, 87, 1960, 87, 1961, 1962, 4153, 1966, 1951,
+ 1963, 87, 1964, 4153, 87, 87, 1969, 1953, 1954, 1956,
+ 1955, 87, 87, 87, 1965, 1958, 1957, 1967, 1971, 87,
+ 1960, 87, 1961, 1962, 87, 1966, 1968, 1963, 87, 1964,
+ 87, 1970, 1972, 1969, 1974, 87, 1977, 1975, 1981, 1973,
+ 1976, 1965, 87, 87, 1967, 87, 87, 1978, 87, 1979,
- 1968, 1972, 87, 1976, 175, 1977, 1980, 1974, 87, 1981,
- 1973, 87, 87, 1978, 1979, 1984, 1982, 1985, 87, 87,
- 1975, 87, 1983, 1986, 87, 1990, 4129, 1988, 1987, 1991,
- 1976, 1989, 1977, 1980, 87, 87, 1981, 87, 1992, 87,
- 1978, 1979, 1984, 1982, 1985, 87, 1993, 87, 87, 1983,
- 1986, 87, 87, 87, 1988, 1987, 1991, 1994, 1989, 1995,
- 87, 1996, 1997, 1998, 2000, 1992, 4129, 2001, 4129, 87,
- 1999, 2002, 2003, 1993, 2004, 4129, 2009, 87, 2006, 87,
- 87, 87, 87, 2005, 1994, 2007, 1995, 2008, 2023, 1997,
- 87, 2000, 87, 87, 87, 87, 87, 1999, 2002, 2003,
+ 1980, 1982, 87, 1968, 1984, 87, 1983, 87, 1970, 1972,
+ 87, 1974, 1986, 1977, 1975, 87, 1973, 1976, 1985, 1987,
+ 87, 4153, 87, 1989, 1978, 1994, 1979, 1980, 87, 1988,
+ 175, 1984, 87, 87, 87, 1993, 87, 87, 87, 1986,
+ 1990, 1991, 1992, 87, 1995, 1985, 1987, 1997, 87, 2002,
+ 1989, 1996, 1994, 1998, 87, 87, 1988, 1999, 2000, 2003,
+ 4153, 2004, 1993, 2008, 87, 2005, 2006, 1990, 1991, 1992,
+ 87, 1995, 87, 87, 1997, 87, 87, 87, 1996, 2001,
+ 1998, 2007, 87, 87, 1999, 2000, 2003, 87, 2004, 2009,
+ 2010, 87, 2005, 2006, 2012, 87, 87, 2011, 2013, 4153,
- 87, 2004, 87, 2009, 87, 2006, 2010, 87, 2011, 2012,
- 2005, 2013, 2007, 2014, 2008, 2015, 2016, 2018, 87, 2017,
- 87, 87, 4129, 87, 87, 87, 2031, 4129, 2024, 2028,
- 2033, 2027, 87, 2010, 87, 2011, 2012, 87, 2013, 2022,
- 2014, 87, 2015, 2016, 2018, 2019, 2017, 2025, 2020, 87,
- 87, 87, 2030, 87, 87, 2024, 2028, 2029, 2027, 87,
- 2021, 2032, 87, 2026, 87, 2034, 2022, 2035, 2040, 87,
- 2038, 87, 2019, 2036, 2025, 2020, 87, 2037, 4129, 2030,
- 4129, 2045, 87, 2039, 2029, 2042, 4129, 2021, 2032, 87,
- 2026, 2043, 2041, 87, 2035, 2040, 2044, 87, 87, 87,
+ 4153, 2014, 2015, 87, 2016, 4153, 2001, 87, 2007, 87,
+ 87, 2017, 2018, 2019, 2020, 4153, 2009, 87, 2021, 87,
+ 2022, 2012, 87, 2023, 2011, 87, 87, 2026, 2014, 2015,
+ 2027, 2016, 87, 2024, 87, 87, 87, 2025, 2017, 2018,
+ 2019, 2020, 87, 2028, 87, 2021, 87, 2022, 2029, 87,
+ 2023, 87, 87, 4153, 2026, 2030, 87, 2027, 2034, 2035,
+ 2024, 2036, 87, 87, 2025, 2031, 2039, 4153, 2032, 2041,
+ 2028, 87, 2040, 87, 2037, 2029, 2042, 2043, 2044, 2045,
+ 2033, 87, 2030, 87, 87, 2034, 2046, 2047, 2036, 87,
+ 2038, 87, 2031, 2039, 87, 2032, 2041, 2048, 87, 2040,
- 2036, 87, 87, 87, 2037, 87, 2046, 2047, 2048, 2049,
- 2039, 4129, 2042, 87, 4129, 2051, 2052, 2050, 2043, 2041,
- 87, 87, 2054, 2044, 2053, 2055, 2058, 2057, 2056, 4129,
- 87, 87, 87, 4129, 87, 2048, 87, 87, 87, 87,
- 87, 87, 2051, 87, 2050, 2060, 87, 2061, 2062, 2054,
- 2059, 2053, 2055, 2058, 2057, 2056, 2063, 87, 87, 2065,
- 87, 87, 2064, 2066, 87, 87, 2069, 2068, 2067, 2070,
- 2072, 2071, 2060, 2073, 2061, 2062, 87, 2059, 2076, 2081,
- 87, 87, 87, 2063, 87, 87, 2065, 87, 87, 2064,
- 2066, 87, 2074, 2069, 2068, 2067, 2070, 2075, 2071, 2077,
+ 87, 2037, 2049, 2042, 87, 2044, 2050, 2033, 2051, 87,
+ 2053, 87, 2052, 2054, 2047, 2055, 2057, 2038, 87, 87,
+ 2056, 87, 87, 87, 2048, 2058, 87, 2059, 87, 2049,
+ 87, 2060, 2061, 2063, 2064, 2051, 4153, 2053, 87, 2052,
+ 2054, 2062, 2055, 2065, 87, 87, 4153, 2056, 87, 2067,
+ 2068, 4153, 4153, 87, 2066, 87, 87, 87, 2060, 87,
+ 2063, 87, 87, 87, 87, 87, 2069, 2071, 2062, 2072,
+ 2065, 2070, 2073, 2074, 87, 87, 2067, 2068, 2075, 87,
+ 2077, 2066, 87, 2078, 2079, 87, 87, 87, 2076, 2080,
+ 87, 2081, 87, 2069, 2071, 2085, 2072, 2082, 2070, 2073,
- 2073, 2079, 87, 87, 87, 2076, 87, 2080, 2082, 2083,
- 4129, 2085, 2089, 2088, 2084, 87, 87, 2078, 2086, 2074,
- 2087, 87, 4129, 87, 2075, 87, 2077, 87, 2079, 87,
- 87, 87, 2090, 87, 2080, 2082, 2083, 87, 2085, 2089,
- 2088, 2084, 2091, 2095, 2078, 2086, 2094, 2087, 2101, 2096,
- 87, 2098, 2097, 2092, 2104, 2093, 2099, 87, 87, 2090,
- 2103, 2100, 87, 87, 2105, 2108, 87, 87, 87, 2091,
- 2095, 2106, 2102, 2094, 87, 2101, 2096, 2110, 2098, 2097,
- 2092, 87, 2093, 2099, 87, 2107, 87, 2103, 2100, 87,
- 2109, 87, 2108, 2111, 87, 2112, 2113, 2115, 2106, 2102,
+ 2074, 2084, 87, 87, 2088, 2075, 87, 2077, 87, 87,
+ 2078, 2079, 87, 2083, 2086, 2076, 2080, 87, 2081, 2087,
+ 2089, 2092, 2085, 2091, 2082, 87, 87, 87, 2093, 2094,
+ 2095, 2088, 2099, 87, 2097, 2141, 87, 4153, 2090, 87,
+ 2083, 2086, 2098, 2096, 87, 87, 2087, 2089, 2092, 87,
+ 2091, 2108, 87, 2101, 87, 87, 2094, 2095, 87, 2099,
+ 87, 2097, 87, 2100, 2102, 2090, 87, 87, 2103, 2098,
+ 2096, 87, 2107, 4153, 4153, 2111, 4153, 2117, 2108, 2104,
+ 2101, 2105, 87, 2106, 87, 2109, 87, 2114, 2110, 2112,
+ 2100, 2102, 87, 2116, 2113, 2103, 87, 2118, 2115, 2107,
- 2114, 2116, 87, 87, 87, 2117, 2119, 87, 2118, 2127,
- 87, 87, 2107, 2121, 87, 2120, 2128, 2109, 87, 87,
- 2111, 2122, 2112, 2113, 2115, 87, 87, 2114, 2116, 87,
- 87, 87, 2117, 2119, 2123, 2118, 2125, 2124, 2126, 87,
- 2121, 87, 2120, 87, 2130, 2131, 2129, 2133, 2122, 2132,
- 2135, 87, 87, 2137, 2138, 2136, 87, 2134, 87, 87,
- 87, 2123, 2141, 2125, 2124, 2126, 87, 2142, 87, 87,
- 4129, 2130, 2131, 2129, 2133, 87, 2132, 2139, 2140, 87,
- 2137, 2138, 87, 2144, 2134, 2143, 2153, 87, 87, 2141,
- 4129, 87, 4129, 2145, 2142, 2147, 87, 2146, 2151, 2149,
+ 87, 87, 2111, 87, 87, 2121, 2104, 2119, 2105, 2120,
+ 2106, 2122, 2109, 2124, 2114, 2110, 2112, 87, 87, 2123,
+ 2116, 2113, 87, 87, 87, 2115, 2127, 2125, 2129, 2126,
+ 2132, 87, 2121, 2128, 2119, 87, 2120, 87, 2122, 2130,
+ 87, 87, 4153, 87, 2135, 2131, 2123, 2134, 87, 2142,
+ 87, 87, 87, 2127, 2125, 2129, 2126, 2132, 87, 2133,
+ 2128, 2136, 87, 87, 2140, 2137, 2130, 87, 2138, 87,
+ 2139, 2135, 2131, 87, 2134, 2145, 87, 2144, 2143, 2151,
+ 2147, 2146, 87, 87, 87, 2148, 2133, 2155, 2136, 87,
+ 87, 2140, 2137, 87, 2149, 2138, 87, 2139, 87, 2150,
- 4129, 87, 2150, 2152, 2139, 2140, 2154, 2155, 87, 2148,
- 2144, 87, 2143, 2153, 2156, 2161, 2166, 87, 4129, 87,
- 2145, 87, 2147, 87, 2146, 2151, 2149, 87, 87, 2150,
- 2152, 87, 87, 2154, 2155, 2158, 2148, 2157, 2162, 2164,
- 2159, 2156, 2161, 87, 87, 2160, 2163, 2165, 87, 2167,
- 87, 87, 2168, 2169, 2171, 2170, 2172, 2173, 87, 2177,
- 87, 87, 2158, 2174, 2157, 2162, 2164, 87, 2175, 2178,
- 87, 2181, 87, 2163, 2165, 87, 2167, 87, 87, 87,
- 2176, 2171, 2170, 87, 2173, 87, 2179, 2182, 87, 2183,
- 2174, 87, 2180, 87, 2184, 2175, 2178, 87, 2186, 4129,
+ 2152, 87, 2145, 2158, 2144, 2143, 2151, 2147, 2146, 2153,
+ 2154, 87, 2148, 87, 2155, 87, 2156, 2157, 4153, 87,
+ 2159, 87, 2168, 4153, 2160, 2165, 87, 2152, 87, 2166,
+ 2158, 2161, 2163, 2167, 4153, 2164, 2153, 2154, 87, 2169,
+ 87, 2175, 4153, 2156, 2157, 2162, 87, 2159, 87, 2168,
+ 87, 2160, 2165, 87, 87, 87, 2166, 87, 2161, 2163,
+ 2167, 2170, 2164, 87, 2172, 2171, 2169, 2176, 2175, 2173,
+ 87, 87, 2162, 87, 2174, 2177, 2178, 2179, 2180, 87,
+ 87, 2182, 2183, 2186, 2181, 2184, 2185, 2191, 2170, 2195,
+ 87, 2172, 2171, 87, 2176, 2187, 2190, 4153, 87, 87,
- 2185, 2187, 87, 87, 2188, 4129, 87, 2176, 87, 2194,
- 87, 2190, 2189, 2179, 2182, 4129, 2183, 87, 2191, 2180,
- 2192, 2184, 87, 87, 2193, 2186, 87, 2185, 2187, 87,
- 2195, 2188, 87, 87, 2196, 2197, 87, 87, 2190, 2189,
- 2206, 2198, 2199, 2200, 2203, 2191, 2201, 2192, 2204, 2202,
- 2205, 2193, 87, 87, 2207, 2210, 87, 2195, 87, 87,
- 4129, 2212, 4129, 2208, 87, 87, 87, 87, 2198, 2199,
- 87, 2203, 87, 2201, 87, 87, 2202, 2205, 2209, 2211,
- 2213, 2207, 87, 2217, 87, 2214, 87, 87, 2212, 2215,
- 2208, 2216, 87, 2218, 2226, 4129, 2222, 87, 2219, 2221,
+ 4153, 87, 2177, 2178, 2179, 4153, 2192, 87, 87, 87,
+ 87, 2181, 2184, 2185, 87, 87, 87, 2188, 2189, 87,
+ 87, 87, 2187, 2190, 87, 87, 2193, 2196, 2197, 2198,
+ 2199, 4153, 2194, 2192, 2202, 4153, 87, 87, 87, 2200,
+ 2201, 2211, 2204, 2212, 2188, 2189, 87, 4153, 4153, 2203,
+ 87, 2205, 87, 2193, 2196, 2197, 2198, 2199, 87, 2194,
+ 87, 2202, 87, 87, 2206, 87, 2200, 2201, 2207, 2204,
+ 2210, 2208, 2213, 87, 2214, 87, 2203, 87, 2205, 2215,
+ 2216, 87, 2218, 2219, 2217, 87, 2220, 87, 87, 2221,
+ 87, 2206, 2209, 87, 4153, 2207, 87, 2210, 87, 2213,
- 2223, 87, 87, 4129, 2224, 2209, 2211, 2213, 2230, 2220,
- 2217, 87, 2214, 87, 87, 87, 2215, 2225, 2216, 175,
- 2218, 87, 87, 2222, 87, 2219, 2221, 2223, 2228, 87,
- 2227, 2224, 2229, 2232, 2231, 87, 2220, 2234, 87, 2236,
- 87, 2238, 2233, 87, 2225, 2235, 87, 2237, 87, 2241,
- 2239, 4129, 87, 2245, 87, 2228, 87, 2227, 87, 2229,
- 2232, 2231, 87, 87, 2234, 87, 2236, 2242, 2238, 2233,
- 2243, 2240, 2235, 2250, 2237, 2244, 2246, 2239, 87, 87,
- 87, 87, 87, 2247, 2248, 2249, 2252, 2251, 2254, 2255,
- 87, 2258, 2257, 4129, 2242, 2253, 87, 2243, 2240, 87,
+ 87, 2214, 2225, 2222, 2223, 2224, 87, 2216, 87, 2218,
+ 87, 2217, 2227, 2220, 87, 87, 2226, 2229, 2228, 2209,
+ 2230, 87, 4153, 87, 87, 2234, 2231, 2238, 2232, 87,
+ 2222, 2223, 2224, 2233, 2236, 87, 2235, 87, 2237, 2227,
+ 87, 2241, 87, 2226, 2229, 2228, 87, 2230, 87, 87,
+ 87, 87, 2234, 2231, 2238, 2232, 87, 2239, 2240, 2242,
+ 2233, 2236, 2243, 2235, 2245, 2237, 2244, 87, 87, 2247,
+ 87, 4153, 175, 2246, 87, 2249, 4153, 87, 2248, 2250,
+ 2253, 2252, 87, 4153, 2239, 2240, 2242, 87, 2251, 2243,
+ 87, 87, 2256, 2244, 4153, 87, 2247, 87, 87, 87,
- 87, 4129, 2244, 2246, 87, 87, 87, 87, 2256, 2278,
- 2247, 87, 2249, 2252, 2251, 87, 87, 87, 2258, 2257,
- 87, 2259, 2253, 87, 2260, 2261, 4129, 2262, 87, 87,
- 2266, 2263, 2265, 2264, 87, 2256, 87, 2267, 4129, 2268,
- 2269, 87, 4129, 4129, 2277, 87, 2275, 4129, 2259, 87,
- 87, 2260, 2261, 87, 2262, 87, 2270, 2266, 2263, 2265,
- 2264, 87, 87, 2272, 2267, 2273, 2268, 2269, 87, 2271,
- 87, 87, 2274, 2275, 87, 2279, 2276, 2281, 2280, 2289,
- 2283, 87, 4129, 2270, 2285, 87, 2282, 87, 87, 87,
- 2272, 87, 2273, 2284, 87, 2286, 2271, 2287, 2290, 2274,
+ 2246, 2254, 2249, 87, 2255, 2248, 2250, 2253, 2252, 87,
+ 2257, 87, 2258, 2259, 2260, 2251, 2262, 2263, 2261, 2265,
+ 2266, 87, 2268, 87, 87, 87, 2264, 2269, 2254, 2270,
+ 2272, 2255, 87, 87, 87, 2271, 2267, 2257, 4153, 2258,
+ 2259, 87, 87, 2262, 87, 2261, 2273, 2266, 87, 2268,
+ 87, 87, 2278, 2264, 87, 87, 87, 2272, 2274, 87,
+ 2276, 2275, 2271, 2267, 2279, 87, 87, 2277, 2281, 87,
+ 87, 2280, 2282, 2273, 87, 2283, 87, 4153, 2284, 2278,
+ 2292, 4153, 4153, 87, 87, 2274, 87, 2276, 2275, 87,
+ 2285, 2279, 2290, 2293, 2277, 2281, 4153, 87, 2280, 2282,
- 87, 2288, 2279, 2276, 2281, 2280, 87, 2283, 87, 87,
- 2291, 2285, 2292, 2282, 2293, 2294, 2297, 87, 4129, 2299,
- 2284, 87, 2286, 2295, 2287, 87, 2296, 87, 2288, 87,
- 2301, 2298, 87, 2300, 2303, 4129, 2302, 2291, 2305, 87,
- 87, 2293, 2294, 87, 2304, 87, 2306, 2307, 87, 87,
- 2295, 87, 2308, 2296, 87, 2309, 87, 87, 2298, 2311,
- 2300, 2312, 87, 2302, 2317, 2305, 87, 2315, 87, 2314,
- 2310, 2304, 2313, 2306, 2307, 87, 87, 87, 2316, 2308,
- 2318, 87, 87, 2319, 87, 2324, 2311, 2327, 87, 87,
- 87, 2317, 87, 4129, 2315, 2325, 2314, 2310, 2330, 2313,
+ 87, 4153, 2283, 2286, 2287, 2284, 2288, 87, 87, 2291,
+ 2294, 87, 2295, 2289, 87, 2299, 87, 2285, 2296, 2290,
+ 2304, 87, 87, 87, 2297, 87, 87, 2298, 87, 2303,
+ 2286, 2287, 87, 2288, 2300, 2305, 2291, 2294, 87, 2295,
+ 2289, 2306, 2299, 2307, 2301, 2296, 2302, 87, 87, 2308,
+ 2312, 2297, 2309, 2314, 2298, 87, 2303, 87, 87, 87,
+ 2310, 2300, 87, 2311, 2316, 2313, 87, 2315, 2306, 87,
+ 87, 2301, 2317, 2302, 2318, 87, 2308, 87, 2319, 2309,
+ 2320, 87, 87, 2324, 4153, 87, 2321, 2310, 87, 2326,
+ 2311, 87, 2313, 2322, 2315, 87, 87, 2323, 87, 2317,
- 87, 2326, 87, 2339, 87, 2316, 2328, 2318, 87, 2320,
- 2321, 2322, 2324, 87, 2329, 87, 2323, 2331, 87, 87,
- 2335, 87, 2325, 2336, 87, 2330, 2332, 2334, 2326, 2337,
- 2338, 2333, 87, 2328, 2340, 87, 2320, 2321, 2322, 87,
- 87, 2329, 87, 2323, 2331, 87, 2341, 2335, 87, 2342,
- 2336, 2343, 87, 87, 2334, 2344, 2337, 2338, 87, 87,
- 2345, 2340, 87, 2346, 87, 2348, 87, 2347, 87, 2350,
- 2349, 2361, 2351, 2341, 87, 2352, 2342, 87, 2343, 2353,
- 2355, 2354, 2344, 2356, 2358, 87, 2357, 2345, 87, 2360,
- 87, 87, 2348, 2363, 2347, 87, 2350, 2349, 87, 2351,
+ 2327, 2330, 2325, 2328, 2331, 2319, 87, 2320, 87, 87,
+ 87, 87, 2329, 2321, 2332, 87, 2326, 4153, 87, 2334,
+ 2322, 87, 2333, 87, 2323, 2339, 87, 87, 2330, 2325,
+ 2328, 2331, 87, 2345, 2340, 2335, 2336, 2337, 2341, 2329,
+ 87, 2332, 2338, 87, 87, 87, 2342, 2343, 2344, 2333,
+ 87, 87, 2339, 87, 87, 87, 2350, 2346, 2353, 2349,
+ 2345, 2340, 2335, 2336, 2337, 2341, 2347, 2351, 87, 2338,
+ 87, 2348, 87, 2352, 2343, 2344, 2354, 2355, 87, 87,
+ 2356, 4153, 2358, 2350, 2346, 2353, 2349, 87, 2357, 87,
+ 87, 2361, 87, 2359, 2351, 87, 2360, 87, 87, 2362,
- 2359, 87, 87, 87, 87, 2366, 87, 87, 2354, 2362,
- 2356, 87, 2364, 2357, 2368, 87, 2360, 2365, 87, 2367,
- 2363, 2373, 2369, 87, 2372, 87, 87, 2359, 4129, 2370,
- 87, 2376, 87, 2371, 87, 2377, 2362, 2374, 87, 2364,
- 2378, 2368, 87, 2375, 2365, 2381, 2367, 87, 87, 2369,
- 87, 2372, 2379, 2380, 87, 2384, 2370, 87, 2382, 87,
- 2371, 2383, 2377, 87, 2374, 2385, 2387, 2386, 2389, 87,
- 2375, 4129, 87, 87, 2388, 87, 2391, 87, 2393, 2379,
- 2380, 2392, 2390, 87, 87, 2382, 87, 87, 2383, 87,
- 87, 2396, 87, 2387, 2386, 2389, 87, 2394, 2395, 87,
+ 2352, 87, 87, 2364, 2355, 87, 2365, 2356, 87, 2358,
+ 2363, 87, 2366, 87, 2367, 2357, 2368, 87, 2361, 2369,
+ 2359, 2370, 2371, 2360, 2373, 2372, 87, 87, 87, 87,
+ 2364, 2375, 2374, 2365, 2378, 2376, 2377, 2363, 2379, 2366,
+ 87, 2367, 87, 87, 87, 2383, 87, 87, 2370, 87,
+ 87, 2373, 2372, 87, 2382, 2384, 2380, 2381, 87, 2374,
+ 2386, 87, 2376, 2377, 87, 2379, 87, 87, 87, 2389,
+ 2387, 2390, 87, 2385, 2388, 87, 2391, 87, 2392, 2393,
+ 87, 2382, 2384, 2380, 2381, 87, 2394, 2386, 87, 87,
+ 2395, 2398, 2396, 2399, 2397, 87, 2389, 2387, 87, 87,
- 87, 2388, 87, 2391, 2397, 2393, 87, 2398, 2392, 2390,
- 2399, 2400, 2402, 2401, 87, 4129, 2403, 87, 2396, 2409,
- 2404, 2407, 2410, 87, 2394, 2395, 87, 87, 87, 2405,
- 2408, 2397, 87, 2411, 2398, 87, 87, 2418, 2400, 87,
- 2401, 87, 87, 2403, 87, 2406, 2409, 2404, 2407, 87,
- 2412, 2413, 87, 2414, 2417, 87, 2405, 2408, 87, 2415,
- 2411, 87, 2416, 87, 2418, 2419, 2420, 2421, 2424, 2422,
- 2425, 2427, 2406, 4129, 2423, 87, 87, 2412, 2413, 87,
- 2414, 2417, 87, 2428, 87, 87, 2415, 2426, 87, 2416,
- 87, 2432, 87, 2420, 2421, 87, 2422, 2425, 2427, 2429,
+ 2385, 2388, 2400, 2391, 2401, 2392, 2402, 4153, 87, 4153,
+ 87, 87, 2403, 2394, 87, 2405, 2408, 2404, 87, 2396,
+ 2399, 2397, 87, 87, 2406, 2410, 2409, 87, 2411, 2400,
+ 2407, 87, 2413, 87, 87, 87, 87, 87, 87, 2403,
+ 87, 87, 2405, 2408, 2404, 2412, 87, 2414, 2416, 87,
+ 2417, 2406, 2410, 2409, 2415, 2411, 2418, 2407, 87, 2413,
+ 2419, 87, 2420, 2421, 4153, 87, 2424, 2427, 2422, 87,
+ 87, 2425, 2412, 87, 2414, 87, 87, 2417, 2426, 2429,
+ 87, 2415, 87, 2418, 2423, 2428, 2432, 87, 87, 2420,
+ 2421, 87, 87, 2424, 87, 2422, 2430, 2434, 2425, 2431,
- 87, 2423, 2430, 2433, 2431, 87, 87, 2434, 4129, 87,
- 2428, 87, 87, 2435, 2426, 2437, 4129, 2438, 2436, 87,
- 4129, 2440, 2441, 87, 2439, 2445, 2429, 2442, 2444, 2430,
- 2433, 2431, 87, 2446, 2434, 87, 2447, 2449, 87, 87,
- 2435, 2448, 87, 87, 2438, 2436, 2443, 87, 2440, 2441,
- 87, 2439, 87, 87, 2442, 2444, 2450, 2451, 87, 2452,
- 87, 2454, 2453, 2455, 2456, 2457, 2460, 2463, 87, 87,
- 2458, 2462, 2459, 2443, 87, 2465, 4129, 87, 87, 87,
- 87, 87, 2464, 4129, 2451, 2468, 2452, 87, 87, 2453,
- 2455, 2456, 2457, 87, 2463, 2461, 87, 2458, 87, 2459,
+ 87, 2433, 2435, 2436, 2437, 2426, 2429, 87, 87, 87,
+ 2438, 2423, 2428, 2432, 2441, 4153, 2439, 4153, 87, 2442,
+ 87, 2440, 87, 2430, 2434, 87, 2431, 87, 2433, 2435,
+ 87, 2437, 87, 87, 2443, 2445, 2444, 2438, 2446, 2449,
+ 2451, 87, 2447, 2439, 87, 87, 2442, 87, 2440, 87,
+ 2450, 2448, 87, 2452, 2453, 2454, 2456, 87, 87, 87,
+ 2455, 2443, 2445, 2444, 2458, 2446, 2457, 2451, 87, 2447,
+ 2462, 87, 87, 2463, 2467, 87, 2464, 2450, 2448, 87,
+ 2452, 2453, 87, 2456, 87, 2459, 87, 2455, 2461, 2465,
+ 2460, 2458, 87, 2457, 2466, 87, 2468, 2462, 2469, 87,
- 87, 2467, 87, 87, 87, 2466, 2469, 175, 87, 2464,
- 2470, 2471, 2468, 87, 2472, 2473, 2474, 4129, 2475, 87,
- 2476, 87, 2461, 2477, 2478, 87, 2479, 2480, 2467, 2482,
- 2484, 4129, 2466, 2469, 4129, 2483, 87, 2470, 2471, 87,
- 87, 2472, 87, 2474, 87, 2475, 2481, 87, 2485, 87,
- 2477, 87, 87, 87, 2480, 4129, 87, 2484, 87, 2486,
- 2487, 87, 2483, 2488, 2490, 2492, 2491, 2494, 2489, 87,
- 2493, 87, 2495, 2481, 2499, 2485, 4129, 87, 4129, 87,
- 2498, 2496, 87, 2504, 2501, 87, 2486, 2487, 87, 87,
- 2497, 2490, 2492, 2491, 2494, 87, 87, 2493, 87, 2495,
+ 87, 87, 2470, 87, 2471, 2472, 87, 2473, 2475, 2474,
+ 2478, 2480, 2459, 2476, 2477, 2461, 87, 2460, 2481, 87,
+ 2483, 87, 87, 87, 87, 2469, 2482, 4153, 87, 2470,
+ 87, 2471, 87, 2479, 2473, 2475, 2474, 87, 87, 87,
+ 2476, 2477, 87, 87, 2484, 2481, 2486, 87, 87, 2485,
+ 2487, 2488, 87, 2482, 2489, 2491, 87, 2490, 2494, 2492,
+ 2479, 2493, 87, 2495, 2496, 87, 87, 2497, 175, 2500,
+ 4153, 2484, 4153, 2486, 4153, 2501, 2485, 2487, 2488, 87,
+ 2498, 2489, 87, 87, 2490, 87, 2492, 87, 2493, 87,
+ 2495, 87, 87, 2499, 2502, 2504, 87, 2503, 4153, 87,
- 2500, 87, 87, 2502, 2503, 87, 87, 2498, 2496, 2505,
- 87, 2501, 2507, 2509, 2506, 2508, 87, 2497, 87, 2512,
- 2510, 87, 2511, 87, 4129, 87, 2513, 2500, 87, 2515,
- 2502, 2503, 87, 2516, 2514, 87, 2505, 2517, 87, 2507,
- 2520, 2506, 2508, 87, 87, 87, 87, 2510, 2518, 2511,
- 2519, 87, 87, 2513, 2521, 2522, 2515, 2523, 87, 87,
- 2516, 2514, 87, 87, 2517, 2525, 2527, 2520, 2524, 2529,
- 2526, 2528, 87, 4129, 2535, 2518, 87, 2519, 2530, 2531,
- 87, 2521, 2522, 87, 2523, 87, 87, 87, 87, 2532,
- 87, 2534, 2525, 2527, 2538, 2524, 87, 2526, 2528, 2533,
+ 87, 87, 2501, 2505, 2506, 2508, 2510, 2498, 2509, 2507,
+ 2517, 2511, 87, 87, 2513, 2512, 87, 2516, 87, 2514,
+ 2499, 2502, 2504, 2522, 2503, 87, 87, 87, 2515, 87,
+ 2505, 87, 2508, 2510, 87, 2509, 87, 87, 2511, 87,
+ 87, 2513, 2512, 87, 2516, 2518, 2514, 2519, 2520, 2521,
+ 87, 2523, 2525, 2524, 2526, 2515, 2527, 2530, 87, 2528,
+ 4153, 87, 87, 87, 4153, 2529, 2532, 2554, 2531, 87,
+ 87, 87, 2518, 87, 2519, 2520, 2521, 87, 2523, 2525,
+ 2524, 2526, 87, 2534, 87, 2533, 2528, 87, 87, 87,
+ 2535, 2537, 2529, 2532, 87, 2531, 87, 2538, 2540, 87,
- 87, 2535, 87, 87, 2536, 2530, 2531, 2537, 2539, 4129,
- 87, 2540, 2543, 2549, 2542, 2545, 2532, 87, 2534, 2541,
- 87, 2538, 2546, 87, 87, 2544, 2533, 2547, 4129, 2548,
- 2550, 87, 2552, 87, 2537, 2539, 87, 87, 2540, 87,
- 87, 2542, 87, 87, 87, 87, 2541, 2551, 87, 2546,
- 87, 2553, 2544, 2554, 2547, 2555, 2548, 2550, 87, 2552,
- 2557, 2558, 2559, 2556, 2562, 87, 87, 87, 2563, 2561,
- 2565, 2560, 4129, 2564, 2551, 2566, 87, 87, 2553, 87,
- 2554, 87, 2555, 87, 87, 87, 87, 2557, 2558, 2559,
- 2556, 2562, 2572, 2567, 2597, 2563, 2561, 87, 2560, 87,
+ 87, 2536, 2539, 4153, 2541, 87, 2543, 2544, 2542, 4153,
+ 2534, 2547, 2533, 87, 2545, 87, 87, 2535, 2537, 2548,
+ 87, 87, 2556, 2546, 2538, 2540, 87, 2552, 2536, 2539,
+ 87, 2541, 2553, 2543, 2544, 2542, 87, 87, 87, 87,
+ 2549, 2545, 2550, 87, 2551, 87, 2548, 2555, 87, 2556,
+ 2546, 87, 2557, 87, 2552, 87, 2560, 87, 2561, 2553,
+ 2558, 2559, 2562, 2563, 2565, 87, 2564, 2549, 87, 2550,
+ 4153, 2551, 2567, 87, 2555, 2566, 4153, 87, 2569, 2557,
+ 4153, 87, 87, 2560, 2568, 87, 2572, 2558, 2559, 2562,
+ 87, 2565, 87, 2564, 2570, 2575, 87, 87, 87, 87,
- 2564, 2574, 87, 2573, 2568, 2569, 2575, 87, 2570, 2576,
- 2577, 4129, 2579, 2581, 2578, 2582, 87, 87, 87, 2572,
- 2567, 2571, 4129, 2580, 4129, 2584, 87, 87, 2574, 87,
- 2573, 2568, 2569, 87, 87, 2570, 2576, 2577, 87, 2579,
- 87, 2578, 2582, 2585, 2583, 2586, 2588, 87, 2571, 87,
- 2580, 87, 2584, 2587, 87, 2590, 2589, 4129, 2591, 2593,
- 4129, 2594, 2592, 4129, 87, 2601, 87, 2595, 87, 87,
- 2585, 2583, 2586, 2588, 87, 87, 87, 87, 2599, 87,
- 2587, 2604, 2590, 2589, 87, 2591, 2593, 2600, 2594, 2592,
- 2596, 2598, 87, 2603, 2595, 2602, 87, 87, 87, 2605,
+ 2571, 87, 2566, 2576, 87, 2569, 2573, 87, 2577, 2579,
+ 2583, 2568, 87, 2572, 2574, 2584, 2578, 4153, 87, 2580,
+ 87, 2570, 2575, 87, 87, 2582, 2581, 2571, 87, 4153,
+ 2576, 2593, 87, 2573, 2585, 2577, 2579, 87, 87, 4153,
+ 2592, 2574, 87, 2578, 87, 4153, 2580, 2586, 2587, 2590,
+ 2591, 2588, 2582, 2581, 87, 87, 87, 2594, 87, 2596,
+ 2597, 2585, 2595, 2599, 2589, 4153, 87, 2592, 2598, 87,
+ 2603, 2601, 87, 2600, 2586, 2587, 2590, 2591, 2588, 87,
+ 2604, 2602, 87, 87, 2594, 87, 2596, 2597, 87, 2595,
+ 87, 2589, 87, 2605, 87, 2598, 2606, 2603, 2601, 2607,
- 87, 2606, 2607, 87, 2608, 2599, 87, 2610, 2604, 2609,
- 2611, 87, 4129, 87, 2600, 87, 87, 2596, 2598, 2612,
- 2603, 87, 2602, 87, 2616, 2613, 2605, 2625, 2606, 2607,
- 2614, 2608, 87, 87, 2617, 2615, 2609, 2611, 2619, 87,
- 87, 2618, 87, 87, 2620, 2623, 2612, 2621, 2622, 2624,
- 4129, 2616, 2613, 87, 87, 2626, 87, 87, 2627, 87,
- 2628, 2617, 87, 2629, 87, 2619, 2631, 2632, 2618, 2630,
- 2635, 87, 2623, 87, 2621, 2622, 2624, 87, 87, 2636,
- 2640, 2633, 2626, 87, 2637, 2627, 2638, 2639, 4129, 2634,
- 4129, 4129, 87, 4129, 87, 87, 2630, 87, 87, 87,
+ 2600, 2609, 87, 2608, 2610, 87, 2611, 2604, 2602, 2613,
+ 87, 2617, 2612, 2615, 2614, 4153, 4153, 4153, 87, 87,
+ 2605, 87, 87, 2606, 87, 87, 2607, 87, 2609, 2619,
+ 2608, 87, 2620, 2611, 87, 2616, 2613, 2618, 2621, 2612,
+ 2615, 2614, 87, 87, 87, 87, 2622, 87, 2623, 2624,
+ 2625, 2627, 4153, 4153, 87, 2630, 2619, 2626, 2628, 2620,
+ 87, 2629, 2616, 2636, 2618, 87, 2632, 87, 87, 2631,
+ 87, 2633, 87, 2622, 87, 2623, 2624, 2625, 2627, 87,
+ 87, 2645, 87, 2640, 2626, 2628, 87, 87, 2629, 2634,
+ 2636, 87, 2637, 2632, 2635, 2638, 2631, 2639, 2633, 2641,
- 87, 2642, 87, 4129, 2645, 87, 2636, 2640, 2633, 2641,
- 87, 2637, 87, 2638, 2639, 2646, 2634, 2643, 87, 2649,
- 2644, 87, 2647, 2650, 87, 2651, 2654, 2648, 2642, 87,
- 2653, 2645, 2660, 2655, 87, 87, 2641, 2652, 4129, 4129,
- 87, 87, 2646, 2659, 2643, 87, 2649, 2644, 87, 2656,
- 2650, 87, 2651, 2654, 87, 87, 2657, 2653, 2661, 87,
- 2655, 87, 2662, 87, 2652, 2663, 2664, 87, 2658, 2666,
- 2659, 87, 2667, 2669, 87, 87, 2656, 87, 2665, 2668,
- 87, 2672, 87, 2657, 87, 2661, 4129, 2670, 87, 2662,
- 2671, 2673, 2663, 2664, 2674, 2658, 2666, 87, 2675, 2667,
+ 87, 2642, 2643, 2648, 2644, 2646, 2649, 4153, 87, 2647,
+ 87, 87, 87, 87, 87, 2651, 2652, 87, 2655, 2637,
+ 4153, 87, 2638, 2657, 2639, 87, 2641, 87, 2642, 2643,
+ 2650, 2644, 2646, 2653, 87, 87, 2647, 2658, 87, 87,
+ 2656, 2654, 2661, 2659, 2660, 87, 4153, 87, 87, 87,
+ 2657, 87, 87, 2662, 2665, 87, 2663, 2650, 2669, 2664,
+ 2653, 87, 4153, 87, 2658, 2674, 87, 2656, 2654, 2661,
+ 2659, 2660, 2666, 87, 87, 2670, 87, 2667, 87, 87,
+ 2662, 2665, 2668, 2663, 2672, 2669, 2664, 87, 2671, 2673,
+ 2675, 2676, 2674, 87, 2677, 2680, 2679, 2684, 87, 2666,
- 2669, 87, 87, 87, 4129, 2665, 2668, 87, 2672, 2676,
- 2678, 2679, 87, 87, 2670, 87, 2680, 2671, 2673, 2684,
- 2681, 2674, 2677, 2683, 2682, 2675, 87, 2685, 87, 87,
- 87, 87, 2686, 2687, 2689, 4129, 2676, 2678, 2679, 4129,
- 2688, 87, 87, 2680, 2690, 87, 87, 2681, 87, 2677,
- 2683, 2682, 2692, 2695, 2685, 2691, 2693, 87, 2699, 87,
- 2687, 2689, 2694, 87, 87, 2700, 87, 2688, 2696, 87,
- 87, 2690, 2697, 175, 2701, 2702, 2707, 2698, 2717, 2692,
- 2703, 2704, 2691, 2693, 2706, 87, 2712, 87, 87, 2694,
- 87, 2708, 2705, 87, 87, 2696, 87, 87, 87, 2713,
+ 4153, 2681, 2670, 87, 87, 87, 2678, 4153, 87, 87,
+ 87, 2672, 87, 87, 87, 2671, 2673, 2675, 2676, 2687,
+ 2682, 2677, 87, 2679, 2684, 2683, 2686, 2688, 2681, 87,
+ 2685, 87, 87, 2678, 87, 2689, 2690, 2691, 2692, 87,
+ 4153, 2695, 4153, 4153, 87, 2693, 2687, 2682, 2694, 87,
+ 87, 87, 2683, 2686, 2688, 2699, 4153, 2685, 2697, 87,
+ 2696, 2705, 2689, 2690, 2691, 87, 2701, 87, 2695, 87,
+ 87, 2698, 2693, 2700, 2702, 2694, 87, 87, 87, 87,
+ 4153, 2704, 2699, 87, 2703, 2697, 87, 2696, 87, 2706,
+ 2707, 2710, 4153, 2701, 2708, 2712, 2709, 2711, 2698, 87,
- 2714, 2701, 2702, 87, 87, 2709, 2711, 2703, 2704, 2716,
- 87, 2706, 2715, 87, 2721, 87, 2710, 87, 2708, 2705,
- 2720, 87, 2718, 87, 87, 87, 2713, 2714, 2719, 2723,
- 87, 2722, 2709, 2711, 87, 87, 2716, 2724, 2725, 2715,
- 2726, 2721, 87, 2710, 2727, 2728, 2729, 2720, 2730, 2718,
- 87, 87, 2731, 87, 2733, 2719, 87, 87, 2722, 87,
- 2734, 2732, 2735, 87, 2724, 87, 87, 2726, 87, 87,
- 87, 2727, 2728, 2729, 87, 2730, 2736, 2739, 2741, 2731,
- 2737, 2733, 4129, 2738, 87, 87, 2742, 2734, 2732, 2735,
- 87, 87, 2740, 2744, 2743, 2746, 87, 87, 2753, 87,
+ 2700, 2702, 2715, 87, 87, 2714, 2716, 87, 2704, 87,
+ 87, 2703, 87, 2713, 87, 2717, 2706, 87, 2710, 87,
+ 175, 2708, 2712, 2709, 2711, 87, 2718, 2720, 2721, 2715,
+ 2722, 2719, 2714, 4153, 2723, 2726, 2724, 2725, 87, 87,
+ 2713, 2727, 2717, 87, 87, 2728, 2733, 2736, 2732, 4153,
+ 87, 2729, 2735, 87, 87, 2734, 87, 2722, 87, 87,
+ 87, 2723, 2726, 2724, 2725, 2730, 87, 87, 2727, 2737,
+ 2738, 2739, 87, 87, 2736, 2732, 2731, 87, 2729, 2735,
+ 2740, 87, 2734, 87, 2741, 2742, 2744, 87, 2743, 2746,
+ 87, 4153, 2730, 2747, 87, 2745, 2737, 2748, 2739, 4153,
- 2751, 2748, 2745, 2736, 2739, 87, 87, 2737, 2747, 87,
- 2738, 87, 2750, 2742, 87, 87, 87, 87, 2749, 2740,
- 2744, 2743, 2746, 2752, 2754, 87, 87, 2751, 2748, 2745,
- 2755, 4129, 87, 2756, 87, 2747, 2757, 2759, 87, 2750,
- 87, 87, 2758, 87, 87, 2749, 87, 2760, 2761, 2764,
- 2752, 2754, 2762, 2763, 87, 87, 2766, 2755, 2765, 87,
- 2756, 4129, 2773, 2757, 2759, 2767, 2770, 87, 2768, 2758,
- 2769, 2771, 2774, 4129, 2760, 2761, 87, 87, 2775, 2762,
- 2763, 87, 87, 87, 2772, 2765, 2776, 87, 87, 87,
- 2778, 87, 2767, 2770, 87, 2768, 87, 2769, 2771, 2774,
+ 2749, 2750, 87, 2731, 87, 4153, 87, 2740, 87, 2755,
+ 2752, 2741, 2742, 87, 87, 2743, 87, 87, 87, 2756,
+ 2747, 87, 2745, 87, 2748, 2757, 2753, 2749, 2750, 2751,
+ 87, 87, 87, 2754, 87, 2759, 2755, 2752, 2758, 2760,
+ 2762, 87, 87, 2761, 4153, 87, 2756, 2764, 87, 87,
+ 2763, 4153, 2757, 2753, 2765, 2766, 2751, 2767, 87, 87,
+ 2754, 87, 2759, 2768, 87, 2758, 2760, 87, 2769, 2771,
+ 2761, 2770, 87, 87, 2764, 2772, 87, 2763, 2773, 87,
+ 2774, 2765, 2766, 87, 2767, 2775, 2776, 87, 4153, 87,
+ 2768, 87, 2777, 2778, 87, 2769, 2771, 2785, 2770, 2779,
- 87, 2777, 87, 87, 87, 2775, 2779, 4129, 2780, 2781,
- 4129, 2772, 2782, 2776, 2783, 2784, 2789, 2778, 2785, 2791,
- 87, 4129, 2787, 2795, 2786, 2788, 2796, 87, 2777, 2790,
- 87, 87, 2792, 2779, 87, 2780, 87, 87, 87, 2782,
- 4129, 87, 2784, 87, 2793, 2785, 2791, 2794, 87, 2787,
- 87, 2786, 2788, 87, 2797, 87, 2790, 2798, 87, 2792,
- 2799, 2800, 87, 2801, 2804, 2805, 2802, 87, 87, 2803,
- 2807, 2793, 2809, 2808, 2794, 2812, 87, 2806, 87, 87,
- 87, 2797, 87, 87, 2798, 87, 2810, 2799, 2800, 2811,
- 2801, 87, 87, 2802, 2813, 2814, 2803, 87, 87, 87,
+ 87, 87, 2772, 87, 87, 2773, 2780, 87, 2781, 87,
+ 2783, 2782, 2775, 2776, 2786, 2784, 87, 87, 2787, 2777,
+ 2778, 87, 2788, 4153, 2791, 87, 2779, 2790, 2792, 87,
+ 2789, 2794, 87, 2780, 87, 2781, 2793, 2783, 2782, 2795,
+ 87, 2786, 2784, 87, 87, 87, 2796, 2799, 2797, 2788,
+ 87, 2791, 2802, 87, 2790, 2792, 2798, 2789, 87, 87,
+ 87, 87, 87, 2793, 2800, 2803, 2795, 2801, 2804, 2805,
+ 87, 2807, 2806, 2796, 2799, 2797, 4153, 2808, 87, 87,
+ 2809, 87, 2810, 2798, 87, 87, 2811, 2816, 2812, 2817,
+ 87, 2800, 2803, 87, 2801, 87, 2805, 2813, 2807, 2806,
- 2808, 2815, 87, 2816, 2806, 2817, 2819, 2818, 87, 4129,
- 87, 87, 2820, 2810, 2822, 2821, 2811, 87, 2823, 87,
- 2825, 87, 2814, 87, 2827, 87, 2829, 2824, 2815, 2826,
- 2816, 87, 2817, 87, 2818, 87, 87, 2828, 87, 2820,
- 2830, 2822, 2821, 2832, 2833, 87, 87, 87, 2834, 2835,
- 87, 2827, 87, 2829, 2824, 2831, 2826, 2836, 87, 2838,
- 87, 2839, 2844, 4129, 2828, 2837, 87, 2830, 2841, 87,
- 87, 2833, 2840, 87, 87, 2834, 2835, 2842, 2843, 87,
- 87, 87, 2831, 2845, 2836, 87, 87, 2847, 2846, 2844,
- 87, 2848, 2837, 87, 87, 2841, 87, 2849, 87, 2840,
+ 87, 4153, 2814, 87, 2808, 2815, 2818, 2809, 2819, 87,
+ 2820, 2821, 87, 2811, 87, 2812, 87, 87, 87, 2822,
+ 87, 2826, 2823, 87, 2813, 2824, 2825, 2827, 87, 2814,
+ 87, 2829, 2815, 2818, 87, 2819, 87, 2820, 2821, 87,
+ 2831, 2833, 2828, 2832, 87, 2834, 2822, 2830, 87, 2823,
+ 87, 2835, 2824, 2825, 87, 87, 87, 2837, 87, 2838,
+ 2836, 4153, 2839, 87, 2841, 2845, 87, 87, 2833, 2828,
+ 2832, 2840, 87, 87, 2830, 87, 2847, 2842, 87, 2844,
+ 4153, 87, 2854, 2851, 2837, 2843, 2838, 2836, 87, 2839,
+ 87, 87, 87, 87, 2846, 2849, 2848, 2850, 2840, 2852,
- 2850, 4129, 4129, 2858, 2842, 2843, 2859, 2862, 2855, 4129,
- 87, 2856, 2851, 87, 2847, 2846, 87, 4129, 2848, 87,
- 87, 2852, 2860, 87, 2849, 2857, 2868, 2850, 2853, 2854,
- 87, 2861, 2863, 2859, 2862, 2855, 87, 87, 2856, 2851,
- 2866, 87, 87, 2867, 87, 2864, 2865, 87, 2852, 2860,
- 2872, 87, 2857, 2868, 2869, 2853, 2854, 87, 2861, 2863,
- 2873, 87, 2874, 2875, 2876, 2878, 87, 2866, 4129, 2870,
- 2867, 2871, 2864, 2865, 2877, 87, 87, 2879, 87, 87,
- 2881, 2869, 87, 87, 87, 87, 87, 2873, 2880, 2874,
- 2875, 2876, 2878, 2882, 87, 2883, 2870, 2884, 2871, 2885,
+ 2855, 87, 87, 87, 2842, 87, 2844, 87, 87, 87,
+ 2851, 2857, 2843, 2860, 2853, 2861, 2856, 87, 87, 2858,
+ 4153, 2846, 2849, 2848, 2850, 87, 2852, 2855, 87, 2859,
+ 2863, 87, 2862, 2865, 2867, 2866, 87, 87, 2857, 87,
+ 87, 2853, 87, 2856, 2864, 87, 2858, 87, 87, 4153,
+ 4153, 4153, 2871, 2872, 4153, 2868, 2859, 2863, 87, 2862,
+ 2865, 87, 2866, 87, 4153, 2869, 2870, 4153, 4153, 2877,
+ 2880, 2864, 87, 87, 87, 4153, 87, 2878, 2873, 2871,
+ 2872, 87, 2868, 2881, 4153, 2883, 2882, 2874, 4153, 2886,
+ 87, 2879, 2869, 2870, 2875, 2876, 2877, 87, 87, 2884,
- 2886, 2877, 87, 2887, 2879, 2888, 87, 2881, 4129, 2891,
- 4129, 2892, 87, 2890, 4129, 2880, 2894, 87, 87, 87,
- 2882, 87, 2883, 2889, 2884, 87, 2885, 2886, 2895, 87,
- 2893, 2898, 2896, 87, 4129, 87, 2899, 87, 2892, 2897,
- 2890, 87, 87, 2894, 2900, 2903, 87, 2901, 2902, 87,
- 2889, 2904, 87, 2905, 87, 2895, 87, 2893, 2898, 2896,
- 2906, 87, 87, 2899, 2908, 87, 2897, 87, 2909, 2910,
- 2911, 2900, 2907, 2913, 2901, 2902, 87, 87, 2912, 87,
- 2905, 2914, 87, 87, 2915, 4129, 2916, 2906, 2917, 87,
- 2922, 2908, 2920, 2921, 87, 2909, 87, 2911, 4129, 2907,
+ 2885, 87, 87, 87, 2878, 2873, 87, 2888, 87, 87,
+ 2881, 2889, 2883, 2882, 2874, 2890, 2886, 2894, 2879, 2887,
+ 87, 2875, 2876, 2896, 2891, 2897, 2884, 2885, 2895, 87,
+ 2899, 2898, 87, 87, 2888, 4153, 4153, 2903, 2889, 2892,
+ 87, 2893, 2890, 87, 2902, 87, 2887, 87, 87, 87,
+ 2896, 2891, 2897, 87, 2901, 2895, 2900, 2899, 2898, 87,
+ 87, 2909, 87, 2905, 2903, 2906, 2892, 2907, 2893, 4153,
+ 87, 2902, 2904, 87, 2908, 2910, 2911, 2913, 2914, 2912,
+ 4153, 2901, 87, 2900, 2917, 87, 87, 87, 2915, 87,
+ 2905, 87, 2906, 87, 2907, 2916, 2918, 87, 87, 2904,
- 2913, 87, 87, 87, 87, 2912, 87, 2918, 2914, 2919,
- 175, 2915, 87, 2916, 87, 2917, 2923, 87, 2926, 2920,
- 2921, 2924, 2925, 2928, 2927, 2933, 4129, 2931, 87, 2932,
- 2929, 4129, 2930, 4129, 2918, 4129, 2919, 87, 87, 87,
- 87, 87, 87, 2923, 87, 2926, 87, 87, 2924, 2925,
- 2928, 2927, 2933, 87, 2931, 2934, 2932, 2929, 2935, 2930,
- 2936, 2937, 87, 2938, 2939, 2940, 2945, 2941, 2942, 4129,
- 2946, 4129, 87, 2943, 2944, 87, 87, 2948, 4129, 2950,
- 4129, 2947, 2934, 2952, 4129, 2935, 2956, 2936, 87, 4129,
- 87, 87, 2940, 87, 2941, 87, 87, 87, 87, 87,
+ 87, 2908, 2927, 2911, 2925, 2914, 2912, 87, 2920, 87,
+ 87, 2917, 2919, 2921, 2922, 2915, 2923, 2924, 2926, 87,
+ 87, 2928, 2916, 2918, 2930, 87, 87, 2931, 87, 2927,
+ 87, 87, 87, 2935, 87, 2920, 87, 2932, 2929, 2919,
+ 2921, 2922, 87, 2923, 2924, 87, 4153, 2933, 2928, 87,
+ 87, 2930, 2936, 87, 2931, 2934, 2939, 2937, 4153, 2938,
+ 2935, 2940, 2944, 2941, 4153, 2929, 4153, 4153, 87, 87,
+ 2942, 2959, 2967, 87, 2933, 87, 2943, 87, 175, 2936,
+ 2945, 87, 2934, 2939, 2937, 87, 2938, 87, 2940, 87,
+ 2941, 2946, 87, 2947, 2948, 2949, 2952, 2942, 87, 2950,
- 2943, 2944, 87, 2949, 87, 87, 2950, 2951, 2947, 87,
- 2952, 2953, 2954, 4129, 2955, 2957, 87, 2961, 87, 4129,
- 87, 2958, 87, 2959, 87, 2960, 4129, 2964, 87, 2962,
- 2949, 2963, 4129, 2968, 2951, 2978, 4129, 2965, 2953, 2954,
- 87, 2955, 2957, 87, 87, 87, 87, 2967, 2958, 87,
- 2959, 87, 2960, 87, 2964, 87, 2962, 2969, 2963, 2966,
- 87, 2970, 2971, 2974, 2965, 2972, 87, 87, 2973, 87,
- 87, 87, 87, 2975, 2967, 87, 87, 2977, 2976, 2984,
- 2979, 4129, 2980, 87, 2969, 87, 2966, 87, 2970, 2971,
- 2974, 2981, 2972, 2982, 2983, 2973, 87, 2988, 2992, 87,
+ 2953, 2951, 4153, 2943, 87, 2954, 2960, 2945, 87, 87,
+ 4153, 87, 87, 87, 87, 87, 2955, 87, 2946, 2957,
+ 2947, 2948, 2949, 2952, 2956, 2958, 2950, 2953, 2951, 87,
+ 2961, 87, 2954, 87, 2962, 2968, 2963, 87, 87, 2964,
+ 87, 87, 2966, 2955, 2965, 2970, 2957, 2969, 4153, 2972,
+ 4153, 2956, 2958, 2974, 4153, 2973, 2978, 87, 2977, 4153,
+ 2971, 2962, 87, 2963, 87, 87, 87, 87, 87, 2966,
+ 87, 2965, 87, 87, 2969, 87, 2972, 2975, 2976, 87,
+ 2974, 2979, 2973, 2981, 87, 2977, 87, 2971, 87, 2980,
+ 87, 2982, 2983, 4153, 87, 2984, 2986, 4153, 2985, 2990,
- 2975, 87, 2985, 87, 2977, 2976, 2984, 2979, 87, 2980,
- 87, 2986, 2989, 87, 2990, 2991, 2987, 2993, 2981, 87,
- 2982, 2983, 87, 2995, 87, 87, 2994, 87, 2996, 2985,
- 87, 2997, 3000, 87, 2998, 4129, 2999, 87, 2986, 2989,
- 3001, 2990, 2991, 2987, 87, 87, 87, 87, 87, 87,
- 2995, 3002, 3003, 2994, 4129, 2996, 87, 3004, 2997, 3000,
- 3006, 2998, 87, 2999, 87, 3007, 87, 3001, 3005, 87,
- 3008, 3010, 3011, 3013, 3009, 87, 3014, 4129, 3002, 3003,
- 3016, 87, 3012, 3018, 3004, 3015, 87, 3006, 87, 87,
- 87, 87, 3007, 87, 87, 3005, 3020, 3017, 87, 3011,
+ 2988, 2989, 4153, 2987, 2975, 2976, 87, 87, 2979, 2992,
+ 2981, 87, 4153, 4153, 87, 87, 2980, 87, 2982, 87,
+ 87, 87, 2984, 2986, 87, 2985, 87, 2988, 2989, 2991,
+ 2987, 87, 2993, 2994, 2995, 2996, 2992, 2998, 3000, 87,
+ 87, 87, 2997, 87, 87, 2999, 4153, 3001, 87, 3002,
+ 3006, 3003, 4153, 3004, 3005, 3014, 2991, 3010, 87, 2993,
+ 2994, 2995, 2996, 87, 2998, 87, 3008, 87, 87, 2997,
+ 87, 3011, 2999, 87, 3001, 87, 3002, 3006, 3003, 87,
+ 3004, 3005, 3007, 3009, 87, 3012, 87, 87, 87, 87,
+ 87, 3013, 3015, 3008, 3017, 3016, 87, 4153, 3011, 3018,
- 3013, 3009, 87, 87, 87, 87, 3021, 3016, 87, 3012,
- 3018, 3022, 3015, 3019, 87, 87, 3025, 87, 3026, 3023,
- 3024, 3027, 87, 3020, 3017, 3028, 4129, 4129, 3029, 3031,
- 4129, 3033, 87, 3021, 87, 3032, 3034, 3030, 3022, 87,
- 3019, 87, 87, 87, 3035, 87, 3023, 3024, 87, 3037,
- 3036, 3039, 3028, 87, 87, 3029, 3031, 87, 3033, 87,
- 87, 3038, 3032, 3034, 3030, 87, 3040, 3041, 3043, 87,
- 3042, 3035, 87, 3044, 3045, 4129, 87, 3036, 3039, 87,
- 87, 3047, 3048, 3058, 3046, 4129, 3049, 87, 3038, 4129,
- 3051, 3050, 87, 3040, 4129, 3043, 3052, 3042, 87, 87,
+ 4153, 3021, 3019, 3020, 4153, 4153, 3023, 3022, 4153, 3007,
+ 3009, 3024, 3012, 87, 87, 87, 87, 87, 3013, 87,
+ 3026, 3017, 3016, 3028, 87, 3025, 3018, 87, 3021, 3019,
+ 3020, 87, 87, 3023, 3022, 87, 3029, 87, 3024, 3027,
+ 87, 3030, 3031, 3032, 87, 3034, 4153, 3026, 3036, 87,
+ 3028, 3037, 3025, 3033, 3040, 3038, 3035, 87, 3043, 87,
+ 3042, 87, 4153, 3029, 87, 87, 3027, 87, 87, 3031,
+ 87, 87, 3034, 87, 87, 3036, 3039, 3041, 87, 3044,
+ 3033, 3040, 3038, 3035, 87, 3043, 3045, 3042, 87, 87,
+ 3046, 3048, 87, 3047, 3049, 3050, 3052, 3053, 3051, 87,
- 87, 3045, 87, 87, 3057, 87, 3056, 87, 3047, 3048,
- 87, 3046, 87, 3049, 87, 87, 3053, 3051, 3050, 3054,
- 3055, 3061, 3059, 3052, 87, 3060, 3062, 87, 3063, 3064,
- 87, 3057, 3065, 3056, 87, 4129, 3068, 3072, 3066, 87,
- 87, 4129, 3067, 3053, 87, 87, 3054, 3055, 3061, 3059,
- 87, 87, 3060, 3062, 87, 3063, 3064, 87, 87, 3065,
- 3069, 3070, 3071, 3068, 87, 3066, 3073, 87, 87, 3067,
- 3074, 3075, 3076, 3079, 4129, 3077, 3078, 3084, 87, 4129,
- 3081, 4129, 87, 3080, 87, 3082, 4129, 3069, 3070, 3071,
- 87, 3083, 87, 3073, 3086, 4129, 3090, 87, 87, 87,
+ 4153, 3058, 3054, 3039, 3041, 87, 3044, 87, 87, 3055,
+ 3057, 3056, 87, 3045, 3064, 87, 87, 3046, 87, 87,
+ 3047, 87, 87, 3052, 3053, 3051, 3059, 87, 3058, 3054,
+ 3060, 87, 3061, 3062, 87, 3063, 3055, 3057, 3056, 3065,
+ 3066, 87, 3067, 87, 3070, 3068, 87, 3069, 87, 3072,
+ 3071, 87, 87, 3059, 4153, 3075, 87, 87, 3073, 3061,
+ 3062, 87, 3063, 87, 3074, 87, 3065, 3066, 87, 87,
+ 87, 3070, 3068, 87, 3069, 87, 3072, 3071, 3080, 3076,
+ 3077, 3078, 3075, 3079, 3081, 3073, 87, 87, 87, 3083,
+ 3082, 3074, 87, 3086, 3087, 3084, 3088, 4153, 87, 4153,
- 3079, 87, 3077, 3078, 3084, 87, 87, 3081, 3085, 87,
- 3080, 87, 3082, 3087, 3089, 87, 3088, 87, 3083, 3091,
- 87, 3086, 87, 87, 3092, 87, 3093, 87, 3094, 3095,
- 3096, 3099, 3097, 3098, 4129, 3085, 3103, 3105, 87, 3100,
- 3087, 3089, 3101, 3088, 87, 87, 3091, 3102, 87, 87,
- 3104, 87, 87, 87, 87, 3094, 87, 3096, 3099, 3097,
- 3098, 87, 3108, 87, 87, 3107, 3100, 3110, 87, 3101,
- 3106, 87, 87, 3111, 3102, 3109, 87, 3104, 87, 3113,
- 87, 3112, 3114, 3115, 87, 3116, 3117, 3118, 4129, 3108,
- 3121, 87, 3107, 3119, 3110, 87, 87, 3106, 175, 87,
+ 3085, 4153, 3095, 3091, 87, 3080, 3076, 3077, 3078, 87,
+ 3079, 87, 87, 87, 87, 87, 3083, 3082, 3089, 87,
+ 3086, 3087, 3084, 3088, 3090, 87, 3092, 3085, 3093, 87,
+ 3091, 87, 3094, 87, 3096, 87, 3097, 3098, 3099, 87,
+ 4153, 3100, 3101, 3102, 3103, 3089, 87, 3104, 4153, 3105,
+ 4153, 3090, 87, 3092, 87, 3093, 87, 3106, 3113, 3094,
+ 4153, 3096, 3107, 87, 87, 87, 87, 87, 3100, 3101,
+ 3102, 3103, 3108, 87, 3104, 87, 3105, 87, 3109, 87,
+ 3110, 3112, 3111, 87, 3106, 87, 3114, 87, 87, 3107,
+ 3115, 3116, 87, 87, 87, 3117, 3118, 3119, 4153, 3108,
- 3111, 3123, 3109, 3124, 87, 87, 3113, 87, 3112, 3114,
- 3115, 87, 3116, 3117, 3118, 3120, 3122, 3121, 3125, 3127,
- 3119, 87, 87, 87, 87, 3126, 3128, 3130, 3123, 3129,
- 87, 3131, 87, 3133, 4129, 3132, 4129, 3134, 4129, 3135,
- 4129, 3136, 3120, 3122, 4129, 3125, 3127, 3138, 87, 87,
- 87, 87, 3126, 3128, 87, 87, 3129, 4129, 87, 87,
- 3133, 3137, 3132, 87, 3134, 87, 3135, 87, 3136, 3139,
- 87, 3140, 3141, 3142, 3138, 3143, 3146, 87, 3144, 87,
- 87, 3148, 87, 87, 3145, 87, 3147, 3153, 3137, 3152,
- 3149, 87, 3150, 87, 87, 3151, 3139, 87, 3140, 3141,
+ 3120, 3121, 3126, 3122, 3123, 3109, 4153, 3110, 3112, 3111,
+ 87, 87, 87, 3114, 3124, 3127, 87, 87, 87, 3128,
+ 87, 87, 3117, 87, 3119, 3125, 87, 3120, 3121, 87,
+ 3122, 3123, 87, 87, 3129, 87, 3130, 3131, 3134, 3135,
+ 3133, 3124, 3127, 87, 3132, 3136, 87, 87, 3137, 4153,
+ 87, 87, 3125, 87, 87, 3138, 87, 3139, 3140, 4153,
+ 3143, 3129, 3141, 3130, 3131, 3134, 3135, 3133, 3142, 87,
+ 175, 3132, 3136, 87, 87, 3137, 87, 3146, 3147, 3149,
+ 87, 3144, 3138, 87, 3139, 3140, 87, 3143, 3145, 3141,
+ 3148, 3151, 3152, 87, 87, 3142, 3150, 3153, 3154, 87,
- 3142, 87, 3143, 3146, 87, 3144, 87, 3154, 3148, 3157,
- 87, 3145, 3155, 3147, 3153, 87, 3152, 3149, 3156, 3150,
- 3158, 3160, 3151, 87, 3159, 87, 3161, 87, 3162, 3163,
- 3164, 3165, 3166, 3168, 87, 87, 3157, 87, 87, 3155,
- 3167, 87, 87, 87, 87, 3156, 3169, 87, 87, 87,
- 87, 3159, 3170, 3161, 87, 3162, 3163, 3164, 3165, 3166,
- 3168, 3171, 3172, 3173, 3174, 3175, 3177, 3167, 3176, 3178,
- 3179, 3180, 87, 3169, 3181, 87, 4129, 87, 3186, 3170,
- 4129, 3187, 87, 87, 87, 3182, 3183, 87, 3171, 3172,
- 87, 87, 3175, 3177, 87, 3176, 87, 87, 87, 3184,
+ 3156, 3155, 3157, 87, 3146, 87, 3149, 3158, 3144, 87,
+ 3159, 4153, 3160, 87, 87, 3145, 87, 3148, 3151, 3152,
+ 87, 87, 3161, 3150, 87, 87, 87, 3156, 3155, 3157,
+ 3163, 4153, 3162, 87, 3158, 3165, 87, 3159, 87, 3160,
+ 87, 3164, 87, 3169, 87, 3166, 3167, 3168, 87, 3161,
+ 87, 3170, 3171, 87, 87, 3173, 3172, 3163, 87, 3162,
+ 3174, 87, 3165, 87, 87, 3175, 3176, 3177, 3164, 87,
+ 3169, 3178, 3166, 3167, 3168, 3179, 3181, 87, 3170, 3171,
+ 87, 3180, 3173, 3172, 87, 3183, 3182, 3174, 3184, 87,
+ 3187, 87, 3175, 3176, 87, 3188, 3185, 87, 3178, 87,
- 87, 3181, 3185, 87, 3188, 3186, 3191, 87, 87, 3189,
- 3190, 87, 3182, 3183, 3192, 87, 87, 87, 3193, 3195,
- 3194, 3196, 87, 3198, 3197, 87, 3184, 3199, 3200, 3185,
- 87, 3188, 3201, 3191, 3202, 87, 3189, 3190, 3204, 3207,
- 87, 3192, 87, 4129, 87, 3193, 3195, 3194, 87, 87,
- 87, 3197, 87, 87, 3199, 87, 3203, 3206, 3209, 3201,
- 3205, 3202, 3208, 3210, 87, 3204, 87, 87, 3211, 87,
- 87, 3212, 3213, 3214, 3215, 3218, 87, 3217, 87, 87,
- 87, 87, 3216, 3203, 3206, 3209, 87, 3205, 3221, 3208,
- 3210, 3219, 3224, 3220, 87, 3211, 3222, 87, 3212, 3213,
+ 3186, 3193, 3179, 87, 87, 87, 3192, 87, 3180, 87,
+ 87, 3189, 87, 3182, 87, 3184, 3190, 3187, 3191, 3194,
+ 87, 3195, 3188, 3185, 87, 87, 3196, 3186, 3193, 87,
+ 3197, 3199, 3198, 3192, 3200, 3201, 3202, 3203, 3189, 87,
+ 87, 87, 87, 3190, 3209, 3191, 3194, 3204, 3195, 3210,
+ 4153, 3205, 3206, 87, 3208, 87, 87, 87, 3199, 3198,
+ 87, 3200, 87, 87, 87, 3207, 87, 87, 3211, 87,
+ 3212, 3209, 3214, 87, 3204, 87, 87, 87, 3205, 3206,
+ 3213, 3208, 3215, 3216, 3217, 3219, 3221, 87, 87, 3218,
+ 87, 4153, 3207, 3220, 3222, 3211, 3223, 3212, 87, 3214,
- 3214, 87, 87, 3225, 3217, 87, 3226, 87, 87, 3216,
- 3223, 87, 3230, 87, 3227, 3221, 3231, 3228, 3219, 3224,
- 3220, 3229, 87, 3222, 87, 3235, 87, 3234, 87, 3241,
- 3225, 87, 4129, 87, 87, 87, 3236, 3223, 3239, 3230,
- 3242, 3227, 3237, 87, 3228, 3232, 3233, 87, 3229, 87,
- 87, 3240, 3235, 3238, 3234, 87, 87, 87, 87, 87,
- 3244, 87, 3245, 3236, 3243, 3239, 3246, 3242, 3247, 3237,
- 3248, 4129, 3232, 3233, 3249, 3251, 87, 3252, 3240, 3254,
- 3238, 3250, 87, 87, 3255, 3257, 87, 3244, 87, 3245,
- 87, 3243, 87, 87, 3256, 3247, 87, 87, 3253, 87,
+ 3224, 3225, 87, 4153, 3226, 3231, 87, 3213, 87, 3215,
+ 3216, 3217, 87, 87, 87, 3228, 3218, 3227, 87, 3229,
+ 3220, 3222, 87, 87, 4153, 87, 87, 3224, 87, 3230,
+ 87, 3226, 87, 3232, 3234, 3233, 3236, 3235, 3237, 3239,
+ 87, 87, 3228, 87, 3227, 87, 3229, 87, 3238, 3241,
+ 3242, 87, 3243, 3248, 3250, 3240, 3230, 87, 87, 3244,
+ 3232, 3234, 3233, 3236, 3235, 3237, 87, 87, 87, 3245,
+ 3249, 87, 87, 3246, 87, 3238, 3241, 87, 3247, 3243,
+ 3248, 87, 3240, 3254, 3251, 87, 3244, 3252, 3253, 3255,
+ 87, 4153, 87, 87, 3260, 87, 3245, 3249, 87, 3258,
- 3259, 3249, 3251, 87, 3252, 87, 87, 3266, 3250, 3258,
- 3260, 3255, 3257, 3263, 87, 3261, 3262, 3264, 4129, 3267,
- 87, 3256, 3269, 3265, 87, 3253, 87, 87, 4129, 87,
- 87, 87, 3270, 3268, 87, 87, 3258, 3260, 3272, 3271,
- 3263, 87, 3261, 3262, 3264, 87, 3267, 3273, 3274, 87,
- 3265, 87, 3276, 3277, 87, 3275, 3278, 4129, 4129, 3270,
- 3268, 87, 3279, 87, 3280, 3272, 3271, 87, 87, 87,
- 87, 3282, 87, 3281, 3273, 3274, 3283, 3284, 3285, 3276,
- 3277, 3288, 3275, 3278, 87, 87, 87, 3286, 3287, 3279,
- 87, 3280, 3289, 3291, 3290, 3293, 87, 3292, 87, 87,
+ 3246, 87, 87, 3256, 3257, 3247, 3261, 3265, 87, 3259,
+ 3254, 3251, 3262, 87, 3252, 3253, 87, 87, 87, 87,
+ 87, 3260, 3263, 3266, 3267, 3264, 3258, 3269, 3270, 3271,
+ 3256, 3257, 87, 3261, 87, 3268, 3259, 87, 87, 3262,
+ 3272, 87, 87, 3273, 3276, 3274, 3275, 3278, 4153, 3263,
+ 3266, 3267, 3264, 87, 3269, 87, 3271, 87, 87, 87,
+ 3279, 3277, 3268, 87, 3280, 87, 87, 87, 87, 3283,
+ 3273, 3276, 3274, 3275, 87, 3281, 3282, 3287, 3284, 3290,
+ 3285, 87, 3288, 3286, 4153, 3293, 3317, 3279, 3277, 4153,
+ 87, 3280, 87, 87, 87, 87, 87, 87, 3289, 3292,
- 3281, 3294, 87, 87, 3284, 3285, 87, 3295, 175, 87,
- 3297, 3299, 87, 3296, 3286, 3287, 87, 3300, 3298, 3289,
- 3291, 3290, 3301, 87, 3292, 3302, 87, 87, 3294, 87,
- 87, 3305, 3303, 87, 3295, 3304, 87, 3297, 3299, 3306,
- 3296, 3311, 3309, 3310, 87, 3298, 87, 87, 87, 87,
- 3307, 3312, 3302, 3313, 87, 3308, 4129, 3314, 87, 3303,
- 3316, 3317, 3304, 87, 87, 87, 3306, 3315, 3311, 3309,
- 3310, 3318, 3320, 87, 3321, 3319, 87, 4129, 87, 87,
- 3313, 87, 87, 87, 3314, 3322, 3323, 3316, 3317, 87,
- 87, 3324, 3326, 3327, 3315, 3325, 3328, 4129, 3318, 3329,
+ 87, 3291, 3281, 3282, 3287, 3284, 87, 3285, 87, 3288,
+ 3286, 87, 87, 3294, 3295, 3297, 87, 3296, 87, 3298,
+ 3301, 3299, 3302, 4153, 3306, 3289, 3292, 3300, 3291, 87,
+ 87, 3303, 3307, 3304, 87, 87, 87, 87, 87, 87,
+ 3294, 3295, 3297, 3308, 3296, 87, 3298, 3301, 3299, 3302,
+ 3305, 87, 3309, 87, 3300, 87, 3310, 3312, 3303, 87,
+ 3304, 3311, 87, 3314, 87, 87, 3313, 3315, 4153, 87,
+ 3308, 3316, 4153, 3318, 3319, 4153, 87, 3305, 87, 3309,
+ 87, 3321, 3323, 3310, 175, 87, 87, 3322, 3311, 3320,
+ 3314, 3324, 3325, 3313, 3315, 87, 87, 3327, 3316, 87,
- 4129, 87, 3319, 3330, 87, 3331, 87, 87, 3339, 3336,
- 4129, 87, 3322, 3323, 87, 87, 3334, 87, 87, 3326,
- 3327, 87, 3325, 3328, 3332, 87, 3329, 87, 3333, 3335,
- 3330, 3337, 3331, 87, 87, 87, 3336, 3338, 3342, 3340,
- 87, 3341, 87, 3334, 3343, 3344, 3347, 87, 3348, 87,
- 87, 3332, 3345, 87, 87, 3333, 3335, 3349, 3337, 87,
- 87, 87, 3346, 3351, 3338, 87, 3340, 3352, 3341, 87,
- 87, 3343, 3344, 3347, 3350, 87, 3353, 87, 3355, 3345,
- 3354, 87, 87, 3356, 3349, 87, 3357, 3361, 3359, 3346,
- 3351, 3358, 87, 3362, 3352, 87, 87, 3360, 3363, 87,
+ 3318, 3319, 87, 3326, 87, 3329, 3333, 87, 3321, 3323,
+ 3328, 87, 3330, 3334, 3322, 3331, 3320, 3336, 87, 87,
+ 3332, 3335, 4153, 87, 3327, 87, 4153, 3337, 87, 3338,
+ 3326, 3339, 87, 3333, 87, 87, 87, 3328, 3342, 3330,
+ 3334, 3340, 3344, 3341, 3345, 3346, 3343, 87, 3335, 87,
+ 87, 87, 87, 87, 3337, 87, 3338, 87, 3339, 87,
+ 3347, 3348, 3349, 3350, 3352, 3342, 4153, 87, 3340, 3351,
+ 3341, 3363, 3346, 3343, 87, 87, 87, 3353, 3354, 87,
+ 3355, 3357, 87, 3356, 3364, 87, 3362, 3347, 87, 3349,
+ 3350, 3352, 87, 87, 3358, 87, 3351, 3359, 3361, 87,
- 87, 3350, 87, 3353, 87, 3355, 3364, 3354, 87, 3365,
- 3356, 87, 3366, 87, 3361, 3359, 87, 3369, 3358, 3367,
- 3362, 3368, 4129, 3370, 3360, 87, 3371, 87, 3375, 3372,
- 87, 87, 3373, 3364, 3374, 3376, 3377, 4129, 3379, 3378,
- 4129, 87, 87, 3381, 87, 87, 3367, 87, 3368, 87,
- 87, 3380, 87, 3371, 87, 3375, 3372, 3382, 3384, 3373,
- 87, 3374, 87, 3377, 87, 3379, 3378, 87, 3383, 87,
- 87, 3385, 3386, 3387, 3389, 3388, 3392, 3390, 3380, 3394,
- 87, 87, 87, 3391, 3382, 3384, 3393, 87, 87, 3395,
- 87, 3396, 87, 87, 87, 3383, 3397, 3399, 3385, 3386,
+ 87, 3360, 87, 87, 3353, 3354, 87, 3355, 3357, 87,
+ 3356, 3364, 87, 3362, 3365, 87, 87, 3366, 3367, 3372,
+ 3375, 3358, 4153, 87, 3359, 3361, 3368, 87, 3360, 3369,
+ 3370, 3373, 3371, 4153, 87, 3374, 87, 87, 87, 87,
+ 87, 3365, 3376, 87, 3377, 3367, 87, 3375, 3379, 87,
+ 3381, 87, 3378, 3368, 3384, 3380, 3369, 3370, 3373, 3371,
+ 87, 87, 3374, 3385, 87, 3382, 87, 87, 3383, 3376,
+ 87, 3377, 3387, 87, 3386, 3379, 3388, 87, 87, 3378,
+ 87, 3384, 3380, 3389, 3390, 3391, 3394, 87, 3393, 4153,
+ 3385, 3392, 3382, 87, 3396, 3383, 87, 87, 3395, 87,
- 3387, 3389, 3388, 87, 3390, 87, 87, 3398, 3400, 3402,
- 3391, 3403, 3404, 3393, 3401, 87, 87, 3405, 87, 87,
- 3407, 87, 3406, 3397, 3399, 3408, 87, 87, 3410, 87,
- 3411, 87, 87, 3409, 3398, 87, 3402, 87, 3403, 3412,
- 87, 3401, 3413, 3414, 87, 3415, 3417, 3407, 3416, 3406,
- 3420, 3419, 3408, 3421, 87, 3410, 3418, 87, 87, 87,
- 3409, 3422, 87, 3424, 3423, 87, 87, 87, 3425, 87,
- 3414, 3428, 3415, 87, 3427, 3416, 87, 87, 3419, 87,
- 3421, 3429, 87, 3418, 3426, 3434, 3430, 87, 87, 3431,
- 87, 3423, 3433, 87, 3432, 3425, 3435, 3436, 3439, 3440,
+ 87, 3386, 3397, 3388, 3398, 3399, 3400, 3402, 3405, 3401,
+ 4153, 4153, 3391, 87, 3403, 87, 87, 87, 3392, 87,
+ 87, 3396, 87, 87, 87, 3395, 3404, 3408, 3406, 3397,
+ 87, 3398, 3399, 87, 3402, 87, 3401, 3407, 87, 87,
+ 87, 3403, 3410, 3409, 3411, 3414, 3412, 4153, 3413, 87,
+ 87, 87, 3415, 3404, 3408, 3406, 3416, 3417, 87, 87,
+ 3418, 87, 3419, 87, 3407, 87, 87, 3420, 3421, 3410,
+ 3409, 3411, 3414, 3412, 87, 3413, 3422, 3424, 3423, 3415,
+ 3426, 3425, 3427, 87, 3417, 3428, 3430, 87, 87, 87,
+ 3429, 87, 3431, 3432, 87, 3421, 87, 87, 87, 87,
- 3438, 3427, 3437, 87, 87, 87, 87, 3441, 87, 87,
- 3442, 3426, 3443, 3430, 3444, 4129, 87, 87, 87, 3433,
- 3445, 87, 87, 3435, 3447, 3439, 3440, 3438, 87, 87,
- 3446, 3448, 3449, 3451, 3441, 3450, 3453, 3452, 87, 4129,
- 3455, 3454, 87, 4129, 87, 4129, 87, 3445, 3460, 3458,
- 3463, 87, 87, 87, 87, 87, 4129, 3446, 87, 3449,
- 3451, 87, 3450, 3453, 3452, 87, 87, 3455, 3454, 3456,
- 3457, 87, 3459, 3461, 3462, 87, 3458, 87, 3464, 87,
- 87, 87, 3465, 3469, 3468, 3467, 3475, 87, 3470, 3472,
- 3466, 87, 87, 3471, 3473, 3474, 3456, 3457, 87, 3459,
+ 87, 87, 87, 3422, 87, 3423, 3434, 3426, 3425, 3427,
+ 3435, 3433, 3436, 3430, 3437, 3439, 3438, 87, 87, 3431,
+ 3432, 3440, 3441, 3443, 3444, 3442, 4153, 3445, 3446, 87,
+ 87, 3448, 87, 3434, 87, 87, 3452, 87, 3433, 87,
+ 87, 87, 3439, 3438, 3447, 3449, 3453, 3451, 3440, 87,
+ 3443, 87, 3442, 87, 3445, 87, 87, 3450, 87, 87,
+ 87, 3458, 3454, 3457, 3455, 4153, 87, 3465, 87, 3456,
+ 3459, 3447, 3449, 87, 3451, 3460, 3463, 3462, 3466, 3464,
+ 3461, 87, 3467, 87, 3450, 87, 87, 87, 87, 3454,
+ 3457, 3468, 87, 87, 3465, 3470, 87, 3459, 3469, 3471,
- 3461, 3462, 87, 87, 3476, 3464, 87, 3477, 3481, 3465,
- 3469, 3468, 3467, 87, 3478, 4129, 3479, 3466, 3480, 87,
- 87, 87, 3474, 3487, 3482, 3483, 3484, 87, 3486, 3485,
- 87, 3476, 87, 87, 3477, 3481, 87, 3488, 3490, 3495,
- 87, 3478, 87, 3479, 87, 3480, 87, 87, 87, 3489,
- 3487, 3482, 3483, 3484, 3491, 3486, 3485, 87, 3496, 87,
- 87, 3492, 3493, 3494, 3488, 3490, 87, 3497, 87, 87,
- 87, 3498, 87, 3499, 3500, 3501, 3489, 3502, 3503, 3504,
- 3505, 3491, 3508, 87, 3511, 87, 87, 3506, 3492, 3493,
- 3494, 87, 3509, 87, 3497, 87, 3507, 87, 3498, 87,
+ 87, 3472, 3473, 3463, 3462, 3484, 3464, 87, 3475, 3476,
+ 87, 3474, 3482, 3477, 87, 87, 3479, 3478, 87, 4153,
+ 3480, 3481, 3470, 87, 87, 3469, 87, 87, 87, 3473,
+ 87, 87, 87, 87, 87, 3475, 3476, 3483, 3474, 3482,
+ 3477, 87, 87, 3479, 3478, 3485, 87, 3480, 3481, 3486,
+ 3487, 3489, 87, 3488, 3491, 3492, 3494, 3499, 4153, 3490,
+ 3493, 3495, 87, 87, 3483, 3496, 87, 87, 3500, 4153,
+ 3497, 3506, 3485, 3501, 4153, 87, 3486, 87, 3489, 87,
+ 3488, 3491, 3492, 3498, 87, 3502, 3490, 3493, 87, 3503,
+ 3505, 87, 3504, 87, 87, 3500, 3507, 87, 3506, 87,
- 87, 3500, 3501, 3510, 3502, 87, 3504, 87, 3512, 87,
- 87, 87, 3515, 3513, 3506, 3514, 3516, 3519, 87, 3509,
- 3518, 87, 3517, 3507, 87, 87, 87, 3522, 3523, 3521,
- 3510, 87, 3520, 3524, 87, 3512, 3525, 3526, 87, 87,
- 3513, 87, 3514, 87, 3519, 87, 3527, 3518, 87, 3517,
- 87, 3529, 3532, 3528, 3522, 87, 3521, 3530, 87, 3520,
- 87, 4129, 4129, 3525, 3526, 87, 3531, 3533, 3536, 3534,
- 3535, 3537, 3538, 3527, 87, 3539, 87, 3542, 3529, 3532,
- 3528, 87, 87, 87, 3530, 87, 87, 3540, 87, 87,
- 87, 3543, 3544, 3531, 3533, 3536, 3534, 3535, 87, 3538,
+ 3501, 87, 3509, 87, 3508, 87, 3510, 3515, 3511, 4153,
+ 3498, 87, 3502, 3519, 3512, 87, 3503, 3505, 87, 3504,
+ 87, 87, 3513, 3507, 3514, 87, 87, 3520, 3521, 3509,
+ 87, 3508, 3516, 3510, 3515, 3511, 87, 3517, 3518, 87,
+ 87, 3512, 3523, 3527, 87, 87, 87, 3524, 3522, 3513,
+ 3525, 3514, 87, 3526, 87, 3521, 3528, 3529, 4153, 3516,
+ 87, 3530, 87, 3531, 3517, 3518, 3532, 87, 87, 87,
+ 87, 3533, 87, 3534, 3524, 3522, 87, 3525, 3535, 3536,
+ 3526, 3537, 3539, 3528, 87, 87, 3538, 3540, 3530, 87,
+ 3531, 87, 3541, 87, 3542, 87, 3543, 87, 3533, 87,
- 87, 3541, 87, 87, 3542, 3545, 3546, 3547, 3548, 3549,
- 87, 3552, 3550, 3551, 3540, 3554, 4129, 4129, 87, 87,
- 87, 87, 87, 87, 3555, 3556, 3553, 3558, 3541, 3557,
- 87, 87, 3545, 3561, 3547, 3548, 3549, 3559, 87, 3550,
- 3551, 87, 3554, 87, 3560, 87, 87, 87, 3562, 87,
- 3563, 3555, 3556, 3553, 3558, 87, 3557, 87, 3564, 87,
- 3561, 3565, 87, 87, 3559, 3566, 3567, 3568, 3569, 3570,
- 3572, 3560, 3571, 3573, 3575, 3562, 87, 3563, 87, 87,
- 3574, 87, 3576, 3577, 87, 3564, 87, 3579, 3565, 3578,
- 3585, 4129, 87, 87, 87, 3569, 3570, 3572, 3581, 3571,
+ 3534, 3544, 3547, 3570, 87, 87, 3536, 3548, 3537, 87,
+ 3545, 3546, 87, 3538, 87, 87, 3549, 87, 87, 3541,
+ 3551, 3542, 87, 3543, 3550, 3553, 4153, 3552, 3544, 3554,
+ 87, 3555, 87, 3556, 87, 87, 4153, 3545, 3546, 87,
+ 3557, 3560, 87, 3549, 4153, 3561, 3563, 3551, 87, 3558,
+ 4153, 3550, 3553, 87, 3552, 87, 3554, 87, 3555, 3559,
+ 3556, 87, 87, 87, 3562, 3564, 3566, 3557, 3560, 3567,
+ 3568, 87, 87, 87, 3571, 87, 3558, 87, 87, 3565,
+ 3569, 87, 3572, 3573, 87, 3574, 3559, 3575, 3576, 87,
+ 4153, 3562, 3564, 3566, 87, 3579, 87, 87, 87, 3580,
- 3573, 3583, 87, 3580, 3587, 87, 87, 3574, 3584, 87,
- 3577, 87, 87, 87, 87, 3582, 3578, 87, 3586, 3589,
- 87, 87, 87, 87, 3588, 3581, 3590, 3593, 3583, 3591,
- 3580, 87, 3592, 3596, 4129, 3584, 3595, 3594, 3597, 87,
- 87, 87, 3582, 87, 3598, 3586, 3589, 87, 87, 87,
- 3600, 3588, 87, 3590, 3593, 87, 3591, 3602, 87, 3592,
- 87, 3599, 3601, 3595, 3594, 3597, 3603, 3604, 87, 3605,
- 3607, 3598, 3606, 87, 87, 87, 3608, 3600, 3609, 87,
- 87, 3611, 3610, 87, 3602, 87, 87, 3613, 3599, 3601,
- 87, 87, 3614, 3603, 3604, 3619, 3605, 3607, 3615, 3606,
+ 3577, 3571, 3578, 87, 3581, 87, 3565, 3569, 87, 3572,
+ 3573, 3583, 3574, 3590, 3575, 87, 3582, 87, 3591, 3584,
+ 87, 87, 3579, 3585, 3587, 3592, 3580, 3577, 3586, 3578,
+ 87, 3581, 87, 87, 87, 3593, 3600, 87, 3583, 87,
+ 87, 3588, 87, 3582, 3589, 87, 3584, 3594, 3598, 3595,
+ 3585, 3587, 87, 87, 87, 3586, 87, 3596, 3597, 3599,
+ 3601, 3602, 3593, 87, 4153, 87, 87, 87, 3588, 3603,
+ 87, 3589, 3604, 3606, 3594, 3598, 3595, 3605, 3609, 87,
+ 3607, 87, 87, 87, 3596, 3597, 3608, 3601, 3602, 3611,
+ 4153, 87, 87, 3613, 3612, 87, 87, 3614, 3616, 3604,
- 87, 3612, 87, 3608, 87, 3609, 87, 3616, 3611, 3610,
- 3618, 3620, 3617, 3621, 87, 3622, 87, 3623, 3624, 87,
- 3625, 87, 3619, 87, 3626, 3615, 3627, 3629, 3612, 87,
- 3628, 87, 3630, 3633, 3632, 87, 3631, 3618, 87, 87,
- 87, 87, 3622, 87, 3623, 87, 3634, 3625, 87, 87,
- 87, 3626, 87, 3627, 3629, 3635, 3636, 3628, 3637, 87,
- 3639, 3632, 3638, 3631, 87, 87, 87, 3642, 3640, 3641,
- 3649, 3644, 3645, 3634, 87, 87, 3643, 87, 3648, 3647,
- 87, 87, 87, 3636, 87, 3637, 3646, 3639, 87, 3638,
- 3651, 3655, 87, 3652, 3642, 3640, 3641, 87, 3644, 3645,
+ 3606, 3610, 87, 87, 3605, 3615, 87, 3607, 3620, 4153,
+ 87, 3617, 4153, 3608, 3618, 87, 87, 87, 3625, 87,
+ 3613, 3612, 3619, 87, 3614, 3616, 87, 3624, 3610, 87,
+ 3621, 87, 3615, 3622, 3623, 87, 87, 3628, 3617, 3630,
+ 3626, 3618, 4153, 3629, 87, 3625, 87, 87, 87, 3619,
+ 87, 87, 3632, 3631, 3624, 3627, 87, 3621, 3633, 87,
+ 3622, 3623, 3635, 87, 3628, 87, 3630, 3626, 87, 3634,
+ 3629, 87, 3636, 87, 3637, 3638, 3640, 3642, 3639, 3632,
+ 3631, 3641, 3627, 3644, 87, 3633, 87, 87, 3643, 3635,
+ 87, 3645, 3646, 3648, 3647, 3651, 3634, 3654, 87, 3636,
- 87, 3650, 87, 3643, 3653, 87, 3647, 3656, 87, 87,
- 3654, 87, 3657, 3646, 3658, 87, 3659, 3661, 87, 3663,
- 3652, 87, 87, 3664, 87, 3666, 87, 3662, 3650, 3667,
- 3665, 3653, 3668, 87, 87, 3660, 87, 3654, 87, 3657,
- 87, 3658, 3669, 87, 3661, 87, 3663, 3670, 3671, 3672,
- 3679, 3675, 3666, 3673, 3662, 87, 3667, 3665, 3674, 87,
- 87, 3676, 3660, 3677, 87, 3678, 87, 3680, 87, 3669,
- 87, 3681, 3682, 87, 87, 3671, 3672, 87, 3675, 3684,
- 3673, 3685, 87, 3686, 87, 3674, 3691, 87, 3676, 3687,
- 3677, 3683, 3678, 3688, 87, 87, 3692, 87, 3681, 3696,
+ 3649, 87, 87, 3650, 3642, 3639, 87, 3653, 87, 87,
+ 87, 87, 3652, 3656, 87, 3643, 3657, 87, 87, 3646,
+ 87, 3647, 3651, 87, 87, 3655, 3659, 3649, 3660, 87,
+ 3650, 87, 87, 3658, 3653, 3661, 87, 87, 3662, 3652,
+ 3656, 3663, 3665, 3664, 3666, 3673, 3668, 87, 87, 87,
+ 87, 87, 3655, 87, 3667, 3660, 3672, 87, 3669, 3675,
+ 3658, 87, 3661, 3678, 87, 3662, 3671, 87, 3663, 3665,
+ 3664, 3666, 87, 3668, 3670, 87, 3676, 87, 87, 3674,
+ 87, 3667, 3677, 87, 3679, 3669, 87, 87, 3680, 3682,
+ 3678, 87, 3681, 3671, 3683, 3690, 87, 3692, 87, 3686,
- 87, 87, 3689, 3690, 87, 87, 3684, 3694, 87, 87,
- 3686, 87, 87, 87, 3695, 3693, 3687, 3699, 3683, 3697,
- 3698, 3700, 3701, 3692, 87, 87, 87, 87, 87, 3689,
- 3690, 87, 3702, 3703, 3694, 87, 3705, 3704, 3706, 3707,
- 3708, 3695, 3693, 3709, 3699, 3710, 3697, 3698, 87, 87,
- 87, 87, 3711, 3714, 3712, 87, 3713, 87, 87, 87,
- 3703, 87, 3715, 3705, 3704, 87, 87, 87, 87, 3716,
- 3709, 3717, 3710, 3718, 3719, 3722, 4129, 3726, 3720, 87,
- 87, 3712, 87, 3713, 87, 87, 87, 3721, 3727, 3715,
- 3723, 3724, 3725, 87, 3732, 87, 87, 87, 3717, 87,
+ 3687, 3670, 3685, 3676, 87, 3688, 3674, 87, 3694, 3677,
+ 87, 87, 3689, 3684, 3693, 87, 3682, 87, 87, 3681,
+ 87, 87, 3690, 3691, 87, 3696, 3686, 3687, 3698, 3685,
+ 87, 3695, 3697, 3699, 3703, 87, 87, 87, 3700, 3689,
+ 3684, 3693, 3702, 87, 3701, 87, 3704, 3706, 87, 87,
+ 3691, 87, 3696, 3705, 87, 3698, 87, 4153, 3695, 3697,
+ 3699, 3707, 3708, 3709, 87, 3700, 87, 4153, 3711, 3702,
+ 87, 3701, 3710, 87, 3712, 3715, 87, 87, 3716, 87,
+ 3705, 3713, 3714, 3717, 87, 3718, 3719, 87, 3707, 3708,
+ 87, 87, 87, 87, 87, 3711, 3720, 3724, 3723, 3710,
- 87, 87, 3722, 87, 3726, 3720, 3728, 87, 3729, 3730,
- 3733, 3736, 87, 3731, 3721, 87, 87, 3723, 3724, 3725,
- 87, 3732, 87, 3734, 3735, 3737, 3739, 3738, 3740, 3744,
- 87, 87, 3741, 3728, 87, 3729, 3730, 87, 87, 87,
- 3731, 87, 3742, 3750, 3751, 3747, 3743, 4129, 87, 3745,
- 3734, 3735, 3737, 3739, 3738, 87, 87, 3748, 3746, 3741,
- 87, 87, 3749, 3754, 3752, 87, 87, 87, 87, 3742,
- 87, 87, 3747, 3743, 3753, 3755, 3745, 3756, 3757, 87,
- 4129, 3758, 4129, 3760, 3748, 3746, 87, 87, 4129, 3749,
- 87, 3752, 3759, 3761, 4129, 87, 87, 3765, 3766, 87,
+ 87, 3725, 87, 3721, 3722, 3716, 87, 3726, 3713, 3714,
+ 3717, 87, 3718, 3719, 3727, 87, 87, 3729, 3730, 3728,
+ 3731, 3732, 3733, 87, 87, 3723, 3735, 3734, 87, 3736,
+ 3721, 3722, 87, 87, 87, 3738, 87, 3737, 87, 87,
+ 87, 3727, 3740, 87, 3729, 87, 3728, 87, 87, 3733,
+ 3739, 3741, 3742, 87, 3734, 3743, 3736, 3744, 3746, 3751,
+ 3745, 3754, 87, 87, 3737, 87, 87, 87, 3747, 87,
+ 3750, 3749, 87, 87, 87, 3748, 87, 3739, 3741, 87,
+ 3752, 87, 87, 87, 3744, 3746, 87, 3745, 3754, 3757,
+ 3756, 3753, 3760, 3755, 3758, 3747, 87, 3750, 3749, 87,
- 3762, 3753, 3755, 87, 3756, 87, 87, 87, 3758, 3763,
- 3760, 3764, 87, 87, 3767, 87, 87, 4129, 3768, 3759,
- 3761, 3769, 3770, 87, 3765, 3766, 3777, 3762, 3771, 4129,
- 87, 3774, 87, 87, 3773, 87, 3763, 3772, 3764, 87,
- 87, 3767, 87, 87, 87, 3768, 3775, 3776, 3769, 3770,
- 3778, 3781, 3780, 3777, 3779, 3771, 87, 3785, 3774, 87,
- 3782, 3773, 3783, 4129, 3772, 3786, 3784, 3787, 3788, 87,
- 4129, 87, 87, 3775, 3776, 3791, 87, 3778, 3790, 3780,
- 3793, 3779, 87, 87, 3785, 3789, 3792, 3782, 87, 3783,
- 87, 87, 87, 3784, 87, 3788, 3794, 87, 3795, 3796,
+ 87, 87, 3748, 3759, 3761, 3762, 3764, 3752, 87, 3763,
+ 87, 3768, 87, 3771, 3766, 3765, 87, 3756, 3753, 87,
+ 3755, 3758, 87, 3772, 87, 3767, 3769, 87, 3774, 3775,
+ 3759, 3761, 3762, 87, 87, 87, 3763, 87, 87, 3770,
+ 3771, 3766, 3765, 87, 3777, 87, 3776, 87, 3773, 3778,
+ 3772, 3780, 3767, 3769, 87, 87, 87, 87, 3781, 3779,
+ 3782, 3784, 3783, 4153, 4153, 3789, 3770, 4153, 87, 87,
+ 87, 3777, 3785, 3776, 87, 3773, 3786, 3792, 3780, 3788,
+ 87, 87, 87, 87, 87, 87, 3779, 3782, 3784, 3783,
+ 3787, 3791, 3789, 3790, 87, 3793, 3798, 87, 87, 3785,
- 87, 3797, 87, 3798, 3799, 3790, 3802, 3793, 87, 87,
- 87, 3805, 3789, 3792, 3800, 3801, 3803, 3804, 3813, 3806,
- 3808, 3807, 3809, 87, 3810, 3795, 87, 3811, 3797, 3812,
- 3814, 87, 87, 87, 87, 3815, 3816, 87, 3805, 87,
- 4129, 87, 3818, 87, 3817, 87, 3806, 87, 3807, 3809,
- 87, 3810, 3819, 3821, 87, 87, 87, 3820, 3822, 3823,
- 87, 3824, 87, 3816, 3825, 87, 3829, 87, 3826, 87,
- 3827, 3817, 87, 87, 3828, 87, 3835, 3833, 3830, 87,
- 3821, 87, 3836, 87, 3820, 3822, 3823, 3831, 87, 87,
- 3834, 3825, 3837, 3829, 87, 3826, 87, 3827, 3832, 87,
+ 87, 87, 3794, 3786, 3792, 3795, 3788, 87, 87, 3796,
+ 87, 3802, 87, 3801, 87, 3797, 87, 3787, 3791, 87,
+ 3790, 3803, 3793, 3798, 87, 3799, 3800, 3804, 3805, 3794,
+ 3809, 3808, 3795, 87, 87, 87, 3796, 3806, 3802, 3807,
+ 3801, 3810, 3797, 87, 87, 3811, 87, 3812, 3803, 3813,
+ 3815, 3814, 3799, 3800, 3804, 87, 3818, 3809, 3808, 87,
+ 87, 87, 3816, 3817, 3806, 3820, 3807, 3819, 87, 3826,
+ 87, 87, 87, 87, 3812, 3832, 3813, 87, 3814, 87,
+ 3821, 3822, 3823, 87, 87, 3824, 3825, 4153, 87, 3816,
+ 3817, 3830, 87, 3829, 3819, 3833, 87, 3827, 3828, 3837,
- 87, 3828, 87, 87, 3833, 3830, 3838, 87, 3839, 3836,
- 3840, 3841, 87, 3848, 3831, 3842, 87, 3834, 87, 3837,
- 3849, 3843, 87, 3844, 3846, 3832, 3845, 87, 3850, 3847,
- 3851, 3855, 3852, 87, 4129, 87, 87, 87, 3841, 3853,
- 87, 87, 3842, 87, 3854, 87, 3856, 3849, 3843, 3857,
- 3844, 4129, 87, 3845, 87, 3850, 87, 3851, 87, 3852,
- 3858, 87, 3859, 3860, 3861, 3862, 3853, 3863, 3864, 3865,
- 87, 3854, 3867, 3868, 3869, 87, 3857, 3870, 87, 3866,
- 87, 87, 3871, 3872, 3873, 3874, 87, 87, 3875, 87,
- 3860, 3861, 87, 3876, 3863, 87, 87, 87, 3878, 3867,
+ 3835, 3831, 87, 3836, 87, 3838, 3839, 3821, 3834, 3842,
+ 87, 4153, 3843, 87, 87, 3840, 87, 3844, 3830, 87,
+ 3829, 87, 3833, 3841, 3847, 3845, 87, 87, 3831, 3848,
+ 87, 87, 87, 3846, 87, 3834, 87, 87, 87, 87,
+ 87, 3850, 3840, 87, 3844, 3849, 87, 3851, 87, 87,
+ 3841, 3847, 3845, 3852, 87, 3853, 87, 3854, 3855, 4153,
+ 3846, 3857, 3856, 3859, 3862, 3858, 3863, 3872, 3850, 3861,
+ 87, 87, 3849, 87, 3851, 87, 3860, 3864, 87, 3867,
+ 3852, 4153, 3853, 4153, 3854, 3855, 87, 87, 3857, 3856,
+ 87, 87, 3858, 87, 87, 87, 3861, 3865, 3866, 87,
- 87, 87, 3877, 87, 87, 3879, 3866, 3880, 3882, 87,
- 87, 87, 87, 3884, 87, 87, 87, 3881, 3883, 3886,
- 87, 3888, 4129, 3887, 87, 3878, 3889, 3885, 3891, 3877,
- 87, 87, 87, 87, 3880, 3882, 87, 3890, 3893, 87,
- 3884, 87, 3895, 3892, 3881, 3883, 87, 3894, 3888, 87,
- 3887, 87, 3896, 3889, 3885, 87, 87, 3897, 3898, 87,
- 3899, 3901, 3904, 3900, 3890, 87, 4129, 87, 3903, 3895,
- 3892, 3902, 3908, 87, 3894, 87, 3906, 87, 3909, 3896,
- 3905, 87, 3907, 87, 3897, 3898, 87, 87, 87, 3904,
- 3900, 87, 3910, 87, 3911, 3903, 87, 3913, 3902, 3908,
+ 3876, 87, 87, 3860, 87, 3868, 3867, 3870, 3869, 3873,
+ 87, 87, 3871, 3875, 3874, 3877, 3879, 3880, 3882, 87,
+ 3878, 3883, 87, 87, 3865, 3866, 87, 3876, 87, 3881,
+ 3885, 3886, 3868, 3888, 3884, 3869, 3873, 87, 3887, 87,
+ 3875, 3874, 3877, 87, 3889, 87, 87, 3878, 87, 87,
+ 87, 87, 87, 3891, 3890, 3892, 3881, 3885, 87, 3893,
+ 87, 3884, 87, 3894, 3895, 3887, 3896, 3897, 3898, 3899,
+ 3900, 87, 87, 3901, 87, 3903, 3906, 3904, 3905, 4153,
+ 3891, 3890, 87, 3902, 87, 87, 87, 3910, 3915, 3911,
+ 87, 87, 4153, 87, 87, 87, 87, 87, 3908, 87,
- 3912, 3914, 87, 3906, 3915, 87, 87, 3905, 87, 3907,
- 87, 3916, 87, 3917, 3918, 4129, 87, 3919, 3942, 3910,
- 3922, 3911, 3920, 87, 3913, 87, 87, 3912, 3914, 87,
- 3921, 3915, 3923, 3924, 3925, 4129, 87, 87, 3916, 3926,
- 3917, 3918, 87, 87, 3919, 3927, 3932, 3922, 3933, 3920,
- 87, 87, 87, 87, 3928, 3929, 87, 3921, 3930, 3923,
- 3924, 3925, 87, 3931, 87, 3934, 3926, 87, 3935, 3937,
- 3936, 3938, 3927, 87, 87, 87, 3939, 87, 3945, 3940,
- 3941, 3928, 3929, 87, 3943, 3930, 3944, 87, 87, 3946,
- 3931, 87, 87, 87, 87, 87, 3937, 3936, 3938, 3948,
+ 3901, 87, 87, 3906, 3904, 3905, 3907, 87, 3912, 3914,
+ 3902, 3916, 3909, 3913, 87, 87, 3911, 3917, 87, 87,
+ 87, 87, 3918, 87, 87, 3908, 3921, 3919, 3920, 3923,
+ 3922, 4153, 3925, 3907, 87, 3912, 3914, 4153, 3916, 3909,
+ 3913, 87, 3926, 87, 87, 87, 3924, 3928, 3933, 3918,
+ 3930, 3927, 87, 3921, 3919, 3920, 87, 3922, 87, 87,
+ 87, 3929, 87, 3931, 87, 3932, 3934, 4153, 4153, 3926,
+ 4153, 87, 87, 3924, 3928, 3935, 87, 3930, 3927, 87,
+ 87, 3940, 3939, 3936, 3938, 3937, 3942, 4153, 3929, 87,
+ 3931, 87, 3932, 3934, 87, 87, 3941, 87, 87, 87,
- 87, 3949, 87, 3939, 3950, 3945, 3940, 3941, 3947, 3951,
- 3952, 3943, 87, 3944, 87, 87, 3946, 3953, 87, 87,
- 87, 87, 3954, 3955, 3956, 87, 3948, 3958, 3949, 3962,
- 3957, 3950, 3959, 87, 87, 3947, 3951, 3952, 3960, 87,
- 3961, 87, 4129, 3966, 3953, 4129, 3963, 87, 87, 3954,
- 3955, 3956, 87, 87, 3958, 3964, 87, 3957, 3965, 3959,
- 87, 3967, 3969, 3968, 3971, 3960, 3972, 3961, 87, 87,
- 87, 87, 87, 3963, 3974, 3976, 3970, 3973, 3975, 87,
- 3977, 87, 3964, 87, 87, 3965, 87, 3978, 3967, 3969,
- 3968, 3971, 3979, 3972, 3980, 3981, 87, 4129, 3982, 87,
+ 3943, 4153, 3935, 87, 3944, 87, 3946, 3945, 3940, 3939,
+ 3936, 3938, 3937, 3942, 87, 3947, 3950, 3948, 3949, 87,
+ 3956, 3951, 3957, 3941, 3952, 3953, 87, 3943, 87, 87,
+ 3958, 3944, 87, 3946, 3945, 87, 87, 3954, 3959, 87,
+ 3955, 87, 3947, 3950, 3948, 3949, 87, 87, 3951, 87,
+ 3961, 3952, 3953, 3962, 87, 3960, 3963, 87, 3964, 87,
+ 3965, 3966, 3967, 87, 3954, 87, 87, 3955, 87, 3969,
+ 87, 3972, 3968, 87, 3971, 3970, 87, 3961, 3973, 4153,
+ 3962, 3975, 3960, 3963, 4153, 3964, 87, 3965, 87, 3967,
+ 87, 87, 87, 87, 3978, 3974, 3969, 87, 3972, 3968,
- 3984, 87, 3976, 3970, 3973, 3975, 87, 87, 3983, 87,
- 3985, 3986, 3992, 3989, 3978, 87, 3991, 3988, 87, 3979,
- 3993, 87, 87, 3990, 87, 3982, 3987, 3984, 87, 87,
- 3995, 87, 87, 87, 87, 3983, 87, 3985, 3986, 3992,
- 3996, 3994, 3997, 3991, 3988, 87, 3998, 87, 87, 3999,
- 3990, 4001, 4000, 3987, 4002, 4003, 4004, 87, 87, 4007,
- 4005, 4009, 4006, 4008, 4016, 4012, 4017, 87, 3994, 87,
- 87, 87, 87, 87, 87, 87, 3999, 87, 87, 4000,
- 4013, 4002, 87, 87, 4011, 4014, 87, 4005, 4009, 4006,
- 4008, 4010, 87, 87, 87, 4015, 87, 4018, 87, 4019,
+ 87, 3971, 3970, 87, 3976, 3973, 87, 3977, 3975, 87,
+ 3979, 3980, 3982, 3981, 3983, 87, 3985, 3986, 87, 3988,
+ 3984, 3978, 3974, 3987, 87, 3990, 87, 4153, 87, 87,
+ 87, 3976, 4153, 87, 3977, 87, 3995, 3979, 3980, 3982,
+ 3981, 3983, 87, 3985, 87, 3989, 3988, 3984, 3991, 3992,
+ 3987, 3993, 87, 3994, 3996, 87, 3998, 87, 87, 87,
+ 87, 3997, 4000, 3995, 3999, 4001, 4153, 87, 87, 4003,
+ 87, 4002, 3989, 4004, 4005, 3991, 3992, 4006, 3993, 4008,
+ 3994, 3996, 87, 87, 4013, 87, 87, 4007, 3997, 4000,
+ 4009, 3999, 87, 87, 87, 87, 4003, 4010, 4002, 4012,
- 4020, 4021, 4022, 87, 87, 4023, 87, 4013, 87, 4024,
- 87, 4011, 4014, 87, 4027, 4030, 4032, 4029, 4010, 4025,
- 87, 87, 4015, 87, 4018, 4026, 4019, 4020, 4021, 87,
- 87, 87, 87, 4028, 4031, 4034, 4024, 87, 4129, 87,
- 87, 4027, 87, 4032, 4029, 87, 4025, 4033, 4035, 4036,
- 4037, 4038, 4026, 4129, 87, 4041, 87, 87, 4039, 87,
- 4028, 4031, 4034, 87, 87, 4040, 4042, 4043, 4051, 4049,
- 4044, 4048, 87, 87, 4033, 4035, 4036, 4037, 4038, 87,
- 87, 4045, 87, 4047, 4050, 4039, 4046, 87, 87, 87,
- 4052, 87, 4040, 4042, 4043, 87, 87, 4044, 4048, 4053,
+ 87, 87, 4014, 87, 4006, 4011, 4008, 87, 4015, 4016,
+ 4017, 87, 87, 4018, 4007, 87, 87, 4009, 4019, 87,
+ 87, 4020, 4021, 87, 4010, 4022, 4012, 4025, 4023, 4014,
+ 4027, 87, 4011, 4028, 4024, 4015, 4016, 87, 4026, 4029,
+ 4018, 4031, 87, 4036, 4035, 87, 4032, 4033, 87, 87,
+ 87, 87, 87, 87, 87, 4023, 87, 87, 87, 4030,
+ 87, 4024, 4037, 87, 4038, 4026, 4029, 87, 87, 4034,
+ 87, 4035, 87, 4032, 4033, 4040, 4039, 4041, 4045, 4042,
+ 4153, 4043, 4153, 87, 87, 4044, 4030, 4046, 87, 4037,
+ 4047, 4038, 87, 87, 4153, 87, 4034, 4052, 4048, 4049,
- 87, 4054, 4055, 4057, 4056, 4070, 87, 4058, 4045, 4060,
- 4047, 4050, 87, 4046, 87, 4059, 87, 4052, 4061, 4062,
- 4063, 87, 87, 87, 87, 4065, 4053, 4129, 4054, 4055,
- 4064, 4056, 87, 4067, 4058, 87, 4060, 87, 4073, 87,
- 4074, 87, 4059, 4066, 4075, 87, 4062, 87, 87, 4076,
- 4068, 87, 4065, 87, 4069, 4071, 4077, 4064, 87, 4072,
- 4067, 4078, 87, 87, 4082, 87, 4079, 87, 4081, 4080,
- 4066, 87, 87, 87, 4085, 87, 4076, 4068, 87, 4083,
- 4084, 4069, 4071, 4077, 87, 4087, 4072, 87, 87, 4086,
- 87, 4082, 4088, 4079, 87, 4081, 4080, 4089, 87, 87,
+ 87, 4050, 4153, 4039, 87, 4045, 4042, 87, 4043, 87,
+ 87, 87, 4044, 87, 87, 4051, 4053, 87, 4054, 4055,
+ 4060, 87, 4058, 4153, 4052, 4048, 4049, 4056, 4050, 87,
+ 87, 4057, 4059, 4062, 87, 4063, 4065, 4061, 87, 4064,
+ 87, 87, 4051, 4053, 87, 87, 4055, 4060, 4069, 4058,
+ 87, 87, 4072, 4075, 4056, 87, 4073, 87, 4057, 4059,
+ 4062, 87, 4063, 87, 4061, 4066, 4064, 4067, 4068, 4070,
+ 87, 87, 4071, 87, 4076, 4069, 4074, 87, 87, 4072,
+ 87, 4153, 4077, 87, 4078, 87, 4079, 4081, 4085, 4080,
+ 4153, 4087, 4066, 4153, 4067, 4068, 4070, 87, 87, 4071,
- 87, 4085, 4090, 4129, 4092, 4091, 4083, 4084, 4093, 4129,
- 4129, 87, 4087, 87, 4094, 87, 4086, 4095, 4096, 4088,
- 4097, 4098, 4129, 4129, 4089, 4100, 87, 4099, 87, 4090,
- 87, 4092, 4091, 4101, 87, 4093, 87, 87, 4102, 4103,
- 4105, 4094, 4107, 4104, 4095, 4096, 4109, 87, 87, 87,
- 87, 87, 4100, 4106, 4099, 4108, 4110, 4114, 87, 87,
- 87, 87, 87, 87, 4111, 4102, 4103, 4105, 87, 87,
- 4104, 4112, 87, 4109, 4113, 4129, 4117, 4115, 87, 87,
- 4106, 4116, 4108, 4110, 87, 87, 4118, 4119, 4120, 87,
- 4121, 4111, 4122, 4129, 4123, 4127, 4124, 4125, 4112, 4128,
+ 87, 4076, 4084, 4074, 87, 4082, 87, 4083, 87, 4077,
+ 4089, 4078, 87, 4079, 87, 87, 4080, 4086, 87, 87,
+ 4090, 4088, 4091, 4092, 4094, 87, 4096, 4093, 87, 4084,
+ 87, 87, 4082, 87, 4083, 87, 4097, 4089, 4095, 87,
+ 87, 4098, 87, 4099, 4086, 4100, 87, 4090, 4088, 4091,
+ 4092, 4101, 4102, 4096, 4093, 4105, 87, 4103, 4106, 4107,
+ 4104, 4110, 4108, 87, 4109, 4095, 87, 87, 87, 4112,
+ 87, 87, 4100, 87, 4114, 87, 87, 87, 4101, 87,
+ 4111, 4153, 4105, 87, 4103, 4106, 4107, 4104, 4110, 4108,
+ 87, 4109, 87, 4116, 87, 4115, 4112, 4113, 87, 4117,
- 87, 4113, 87, 4117, 4115, 87, 4129, 87, 4116, 4129,
- 4129, 4129, 87, 87, 4119, 87, 87, 87, 87, 4122,
- 4126, 4123, 87, 4124, 4125, 4129, 87, 4129, 87, 4129,
- 4129, 4129, 4129, 4129, 4129, 4129, 4129, 4129, 4129, 4129,
- 4129, 4129, 4129, 4129, 4129, 4129, 4129, 4126, 48, 48,
- 48, 48, 48, 48, 48, 53, 53, 53, 53, 53,
- 53, 53, 58, 58, 58, 58, 58, 58, 58, 64,
- 64, 64, 64, 64, 64, 64, 69, 69, 69, 69,
- 69, 69, 69, 75, 75, 75, 75, 75, 75, 75,
- 81, 81, 81, 81, 81, 81, 81, 90, 90, 4129,
+ 87, 4114, 4120, 87, 4121, 4118, 4122, 4111, 4119, 4153,
+ 87, 4124, 4123, 4125, 4153, 4128, 4153, 4126, 4131, 87,
+ 4116, 4127, 4115, 87, 4113, 87, 4117, 87, 87, 4120,
+ 4129, 87, 4118, 87, 87, 4119, 87, 87, 4124, 4123,
+ 87, 87, 4128, 4130, 4126, 87, 4132, 4133, 4127, 4134,
+ 4135, 87, 87, 4136, 87, 4137, 4138, 4129, 87, 4139,
+ 4140, 87, 4141, 4142, 4143, 4144, 4145, 87, 87, 87,
+ 4130, 87, 4147, 4132, 4133, 4146, 4134, 4135, 4148, 4153,
+ 4136, 87, 4137, 87, 87, 4151, 4139, 4140, 87, 4141,
+ 87, 4143, 87, 87, 87, 87, 4149, 4152, 4150, 4147,
- 90, 90, 90, 90, 165, 165, 4129, 4129, 4129, 165,
- 165, 167, 167, 4129, 4129, 167, 4129, 167, 169, 4129,
- 4129, 4129, 4129, 4129, 169, 172, 172, 4129, 4129, 4129,
- 172, 172, 174, 4129, 4129, 4129, 4129, 4129, 174, 176,
- 176, 4129, 176, 176, 176, 176, 179, 4129, 4129, 4129,
- 4129, 4129, 179, 182, 182, 4129, 4129, 4129, 182, 182,
- 91, 91, 4129, 91, 91, 91, 91, 17, 4129, 4129,
- 4129, 4129, 4129, 4129, 4129, 4129, 4129, 4129, 4129, 4129,
- 4129, 4129, 4129, 4129, 4129, 4129, 4129, 4129, 4129, 4129,
- 4129, 4129, 4129, 4129, 4129, 4129, 4129, 4129, 4129, 4129,
+ 87, 4153, 4146, 4153, 87, 4148, 87, 4153, 4153, 4153,
+ 4153, 4153, 87, 4153, 4153, 4153, 4153, 4153, 4153, 4153,
+ 4153, 4153, 4153, 4149, 87, 4150, 48, 48, 48, 48,
+ 48, 48, 48, 53, 53, 53, 53, 53, 53, 53,
+ 58, 58, 58, 58, 58, 58, 58, 64, 64, 64,
+ 64, 64, 64, 64, 69, 69, 69, 69, 69, 69,
+ 69, 75, 75, 75, 75, 75, 75, 75, 81, 81,
+ 81, 81, 81, 81, 81, 90, 90, 4153, 90, 90,
+ 90, 90, 165, 165, 4153, 4153, 4153, 165, 165, 167,
+ 167, 4153, 4153, 167, 4153, 167, 169, 4153, 4153, 4153,
- 4129, 4129, 4129, 4129, 4129, 4129, 4129, 4129, 4129, 4129,
- 4129, 4129, 4129, 4129, 4129, 4129, 4129, 4129, 4129, 4129,
- 4129, 4129, 4129, 4129, 4129, 4129, 4129, 4129, 4129, 4129,
- 4129, 4129, 4129, 4129
+ 4153, 4153, 169, 172, 172, 4153, 4153, 4153, 172, 172,
+ 174, 4153, 4153, 4153, 4153, 4153, 174, 176, 176, 4153,
+ 176, 176, 176, 176, 179, 4153, 4153, 4153, 4153, 4153,
+ 179, 182, 182, 4153, 4153, 4153, 182, 182, 91, 91,
+ 4153, 91, 91, 91, 91, 17, 4153, 4153, 4153, 4153,
+ 4153, 4153, 4153, 4153, 4153, 4153, 4153, 4153, 4153, 4153,
+ 4153, 4153, 4153, 4153, 4153, 4153, 4153, 4153, 4153, 4153,
+ 4153, 4153, 4153, 4153, 4153, 4153, 4153, 4153, 4153, 4153,
+ 4153, 4153, 4153, 4153, 4153, 4153, 4153, 4153, 4153, 4153,
+ 4153, 4153, 4153, 4153, 4153, 4153, 4153, 4153, 4153, 4153,
+
+ 4153, 4153, 4153, 4153, 4153, 4153, 4153, 4153, 4153, 4153,
+ 4153, 4153
} ;
-static const flex_int16_t yy_chk[11835] =
+static const flex_int16_t yy_chk[11913] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -3103,16 +3121,16 @@ static const flex_int16_t yy_chk[11835] =
7, 7, 7, 33, 7, 8, 8, 8, 8, 32,
8, 9, 9, 9, 10, 10, 10, 19, 52, 52,
- 4137, 19, 238, 3, 32, 33, 4, 68, 68, 5,
- 33, 6, 3288, 13, 13, 13, 13, 7, 13, 14,
+ 4161, 19, 238, 3, 32, 33, 4, 68, 68, 5,
+ 33, 6, 3312, 13, 13, 13, 13, 7, 13, 14,
14, 14, 14, 8, 14, 15, 15, 15, 9, 25,
238, 10, 11, 11, 11, 11, 11, 11, 12, 12,
12, 12, 12, 12, 16, 16, 16, 34, 28, 85,
- 85, 13, 11, 46, 1242, 25, 25, 14, 12, 34,
- 311, 23, 15, 23, 23, 46, 23, 1229, 28, 88,
+ 85, 13, 11, 46, 1248, 25, 25, 14, 12, 34,
+ 311, 23, 15, 23, 23, 46, 23, 1235, 28, 88,
11, 28, 23, 88, 34, 28, 12, 166, 166, 11,
46, 16, 173, 173, 57, 12, 30, 57, 29, 311,
- 45, 182, 37, 73, 30, 28, 26, 1229, 37, 23,
+ 45, 182, 37, 73, 30, 28, 26, 1235, 37, 23,
24, 24, 29, 26, 24, 30, 73, 26, 181, 24,
26, 24, 30, 30, 29, 29, 45, 45, 24, 37,
@@ -3138,10 +3156,10 @@ static const flex_int16_t yy_chk[11835] =
71, 155, 107, 76, 40, 40, 80, 40, 80, 80,
107, 80, 100, 117, 113, 106, 40, 40, 117, 75,
- 188, 40, 1059, 113, 188, 87, 202, 87, 87, 107,
+ 188, 40, 1063, 113, 188, 87, 202, 87, 87, 107,
87, 40, 40, 71, 40, 41, 87, 90, 41, 90,
90, 113, 90, 103, 103, 41, 104, 188, 90, 41,
- 41, 108, 104, 1059, 104, 114, 103, 41, 202, 105,
+ 41, 108, 104, 1063, 104, 114, 103, 41, 202, 105,
105, 69, 41, 64, 114, 41, 122, 104, 105, 108,
103, 103, 41, 104, 122, 90, 41, 41, 118, 104,
110, 104, 114, 108, 112, 112, 105, 105, 116, 110,
@@ -3177,11 +3195,11 @@ static const flex_int16_t yy_chk[11835] =
196, 195, 193, 189, 194, 205, 198, 197, 206, 194,
189, 196, 198, 199, 200, 199, 197, 203, 201, 200,
201, 203, 207, 206, 209, 203, 208, 207, 210, 212,
- 213, 205, 205, 211, 208, 206, 212, 826, 198, 198,
+ 213, 205, 205, 211, 208, 206, 212, 828, 198, 198,
199, 214, 203, 623, 201, 201, 209, 201, 211, 203,
210, 209, 203, 208, 207, 210, 212, 215, 213, 0,
- 211, 216, 213, 217, 214, 218, 826, 239, 214, 203,
+ 211, 216, 213, 217, 214, 218, 828, 239, 214, 203,
204, 623, 216, 220, 221, 204, 217, 218, 0, 215,
204, 222, 220, 224, 215, 213, 204, 204, 216, 225,
217, 219, 218, 204, 219, 0, 221, 204, 225, 239,
@@ -3287,1113 +3305,1122 @@ static const flex_int16_t yy_chk[11835] =
477, 480, 462, 483, 479, 474, 484, 462, 0, 479,
484, 485, 486, 478, 480, 462, 462, 490, 486, 462,
462, 481, 481, 462, 487, 483, 485, 488, 0, 489,
- 483, 491, 490, 492, 496, 493, 0, 489, 491, 486,
- 496, 494, 492, 499, 490, 497, 487, 498, 495, 488,
+ 483, 491, 490, 492, 496, 493, 489, 489, 491, 486,
+ 496, 494, 492, 0, 490, 0, 487, 497, 498, 488,
+
+ 493, 487, 495, 499, 488, 489, 489, 500, 491, 501,
+ 492, 496, 493, 489, 489, 494, 502, 495, 494, 497,
+ 498, 503, 500, 504, 497, 498, 499, 503, 505, 495,
+ 499, 507, 508, 505, 500, 501, 501, 511, 502, 510,
+ 512, 514, 513, 502, 520, 510, 512, 514, 503, 504,
+ 504, 515, 523, 520, 516, 505, 511, 517, 508, 508,
+ 513, 516, 522, 507, 511, 523, 510, 512, 514, 513,
+ 521, 520, 517, 515, 519, 524, 519, 521, 515, 523,
+ 0, 516, 525, 519, 517, 525, 526, 527, 528, 529,
+ 534, 0, 535, 525, 522, 530, 531, 521, 530, 533,
- 493, 487, 501, 503, 488, 489, 489, 504, 491, 503,
- 492, 496, 493, 495, 489, 494, 499, 497, 494, 498,
- 499, 500, 497, 502, 498, 495, 505, 507, 501, 501,
- 503, 505, 0, 504, 504, 508, 500, 510, 511, 0,
- 512, 514, 513, 510, 515, 502, 512, 514, 500, 516,
- 502, 521, 0, 505, 522, 517, 516, 511, 521, 507,
- 513, 508, 508, 524, 510, 511, 515, 512, 514, 513,
- 517, 515, 519, 527, 519, 520, 516, 523, 521, 526,
- 525, 519, 517, 525, 520, 529, 522, 528, 0, 530,
- 523, 525, 530, 531, 535, 524, 0, 526, 529, 519,
+ 0, 519, 529, 519, 526, 532, 537, 524, 534, 525,
+ 528, 533, 525, 526, 530, 528, 529, 534, 532, 527,
+ 531, 536, 530, 531, 535, 530, 533, 538, 536, 539,
+ 537, 540, 532, 537, 541, 542, 544, 543, 0, 541,
+ 546, 542, 539, 545, 547, 0, 544, 549, 536, 0,
+ 538, 0, 546, 540, 585, 549, 539, 548, 540, 538,
+ 543, 541, 542, 544, 543, 545, 547, 546, 548, 550,
+ 545, 547, 553, 555, 549, 585, 554, 538, 556, 553,
+ 557, 585, 554, 550, 548, 555, 558, 559, 557, 0,
+ 0, 0, 602, 565, 560, 602, 550, 551, 559, 553,
- 532, 519, 520, 533, 523, 527, 526, 525, 530, 528,
- 525, 534, 529, 532, 528, 533, 530, 531, 536, 530,
- 531, 538, 537, 539, 543, 536, 535, 532, 541, 534,
- 533, 542, 540, 541, 545, 547, 539, 542, 534, 570,
- 0, 0, 544, 570, 538, 536, 537, 543, 546, 537,
- 539, 543, 544, 538, 540, 541, 545, 547, 542, 540,
- 546, 545, 547, 548, 549, 550, 570, 554, 555, 544,
- 553, 538, 549, 554, 548, 546, 556, 553, 557, 550,
- 555, 591, 558, 596, 0, 605, 557, 560, 0, 562,
- 548, 549, 550, 551, 554, 555, 559, 553, 551, 556,
+ 555, 556, 551, 554, 551, 556, 562, 557, 558, 562,
+ 551, 565, 551, 558, 559, 551, 551, 560, 562, 602,
+ 565, 560, 551, 551, 551, 563, 561, 569, 567, 551,
+ 561, 551, 572, 562, 566, 564, 562, 551, 564, 551,
+ 567, 0, 551, 551, 566, 563, 564, 563, 561, 551,
+ 568, 569, 563, 561, 569, 567, 570, 561, 572, 572,
+ 570, 568, 564, 571, 575, 564, 566, 573, 577, 573,
+ 571, 566, 563, 574, 576, 581, 575, 568, 578, 579,
+ 577, 580, 0, 570, 583, 582, 580, 579, 0, 576,
+ 571, 575, 583, 589, 573, 577, 588, 581, 584, 574,
- 551, 562, 0, 556, 558, 557, 551, 559, 551, 558,
- 560, 551, 551, 591, 560, 596, 562, 605, 551, 551,
- 551, 563, 561, 559, 565, 551, 561, 551, 0, 564,
- 569, 0, 564, 551, 567, 551, 0, 566, 551, 551,
- 564, 563, 565, 563, 561, 551, 567, 566, 563, 561,
- 572, 565, 568, 561, 569, 571, 564, 569, 573, 564,
- 573, 567, 571, 568, 574, 576, 575, 579, 563, 566,
- 578, 577, 0, 581, 566, 579, 572, 572, 575, 568,
- 576, 580, 571, 577, 582, 573, 580, 588, 585, 584,
- 574, 574, 576, 575, 579, 581, 578, 578, 577, 583,
+ 574, 576, 581, 582, 578, 578, 579, 587, 580, 590,
+ 584, 583, 582, 591, 588, 592, 589, 593, 596, 594,
+ 589, 597, 587, 588, 595, 584, 598, 594, 603, 593,
+ 592, 599, 590, 597, 587, 598, 590, 595, 600, 601,
+ 604, 605, 592, 607, 593, 591, 594, 603, 597, 608,
+ 596, 595, 600, 598, 599, 603, 606, 609, 599, 0,
+ 613, 610, 612, 611, 601, 600, 601, 604, 614, 615,
+ 616, 606, 609, 605, 612, 607, 611, 621, 0, 616,
+ 622, 608, 613, 606, 609, 610, 620, 613, 610, 612,
+ 611, 614, 617, 615, 618, 614, 615, 616, 619, 617,
- 581, 584, 582, 587, 589, 588, 590, 583, 580, 585,
- 592, 582, 593, 594, 588, 585, 584, 0, 587, 595,
- 599, 594, 597, 601, 593, 592, 583, 589, 600, 590,
- 587, 589, 595, 590, 597, 598, 604, 592, 602, 593,
- 594, 602, 600, 599, 598, 603, 595, 599, 601, 597,
- 601, 606, 607, 608, 609, 600, 610, 0, 0, 612,
- 611, 616, 598, 604, 603, 602, 606, 613, 614, 609,
- 616, 612, 603, 611, 615, 621, 622, 0, 606, 624,
- 610, 609, 618, 610, 607, 608, 612, 611, 616, 613,
- 617, 614, 620, 618, 613, 614, 625, 617, 615, 619,
+ 620, 624, 617, 619, 621, 618, 627, 622, 625, 626,
+ 617, 628, 630, 620, 629, 633, 628, 631, 630, 617,
+ 634, 618, 632, 629, 636, 0, 617, 641, 634, 617,
+ 619, 635, 631, 624, 637, 625, 626, 633, 627, 630,
+ 640, 629, 633, 628, 631, 643, 632, 634, 636, 632,
+ 635, 636, 639, 638, 645, 642, 637, 638, 635, 641,
+ 639, 637, 642, 640, 644, 646, 650, 640, 643, 647,
+ 0, 648, 643, 644, 654, 652, 645, 651, 646, 639,
+ 638, 645, 642, 648, 649, 651, 652, 653, 650, 668,
+ 649, 644, 646, 650, 653, 647, 647, 655, 648, 656,
- 617, 615, 621, 622, 619, 626, 620, 627, 617, 618,
- 628, 624, 0, 629, 630, 628, 633, 617, 631, 620,
- 630, 634, 629, 625, 617, 632, 636, 617, 635, 634,
- 641, 619, 626, 631, 637, 0, 639, 640, 633, 627,
- 629, 630, 628, 633, 639, 631, 643, 635, 634, 632,
- 636, 647, 632, 636, 638, 635, 637, 645, 638, 642,
- 640, 637, 641, 639, 640, 644, 642, 646, 650, 643,
- 648, 0, 654, 643, 644, 656, 652, 647, 647, 645,
- 646, 638, 648, 649, 645, 651, 642, 652, 656, 649,
- 650, 653, 644, 651, 646, 650, 659, 648, 653, 655,
+ 658, 660, 652, 659, 651, 0, 654, 661, 657, 658,
+ 660, 649, 656, 657, 653, 662, 657, 657, 661, 655,
+ 664, 668, 667, 663, 655, 0, 656, 658, 660, 659,
+ 659, 670, 657, 664, 661, 657, 665, 662, 669, 671,
+ 657, 0, 662, 657, 657, 663, 667, 664, 665, 667,
+ 663, 672, 673, 674, 675, 670, 669, 676, 670, 672,
+ 677, 671, 671, 665, 679, 669, 671, 681, 676, 677,
+ 678, 680, 683, 679, 673, 682, 675, 674, 672, 673,
+ 674, 675, 682, 684, 676, 680, 687, 677, 671, 681,
+ 678, 679, 685, 686, 681, 690, 691, 678, 680, 683,
- 657, 665, 656, 652, 654, 657, 658, 660, 657, 657,
- 649, 0, 651, 665, 661, 658, 660, 662, 653, 668,
- 663, 655, 659, 659, 657, 661, 655, 657, 665, 667,
- 664, 669, 657, 658, 660, 657, 657, 670, 672, 662,
- 671, 661, 663, 664, 662, 674, 672, 663, 673, 669,
- 677, 668, 675, 667, 679, 676, 667, 664, 669, 677,
- 678, 670, 671, 671, 670, 672, 676, 671, 679, 674,
- 673, 680, 674, 682, 675, 673, 681, 677, 683, 675,
- 678, 679, 676, 681, 684, 685, 686, 678, 687, 671,
- 689, 688, 684, 680, 687, 691, 683, 685, 680, 692,
+ 685, 684, 682, 688, 689, 686, 690, 693, 687, 688,
+ 684, 692, 0, 687, 691, 694, 695, 689, 697, 685,
+ 686, 701, 690, 691, 696, 696, 692, 698, 699, 697,
+ 688, 689, 700, 702, 701, 703, 694, 705, 692, 693,
+ 695, 700, 694, 695, 704, 697, 702, 707, 701, 708,
+ 699, 698, 704, 696, 698, 699, 706, 703, 710, 700,
+ 702, 709, 703, 709, 711, 712, 718, 713, 715, 705,
+ 712, 704, 714, 708, 0, 711, 708, 723, 706, 707,
+ 710, 713, 716, 706, 714, 710, 715, 720, 709, 721,
+ 0, 711, 727, 719, 713, 715, 716, 712, 718, 714,
- 682, 689, 690, 681, 688, 683, 693, 704, 686, 0,
- 691, 684, 685, 686, 694, 687, 697, 689, 688, 696,
- 690, 0, 691, 695, 695, 0, 698, 693, 699, 690,
- 696, 692, 700, 693, 701, 702, 703, 699, 694, 704,
- 697, 694, 705, 697, 703, 700, 696, 701, 698, 706,
- 707, 709, 695, 698, 0, 699, 708, 702, 708, 700,
- 710, 701, 702, 703, 705, 711, 712, 713, 714, 705,
- 711, 710, 717, 709, 707, 715, 0, 707, 709, 713,
- 712, 706, 718, 708, 721, 726, 714, 710, 719, 715,
- 718, 721, 741, 712, 713, 714, 722, 711, 0, 720,
+ 0, 719, 724, 723, 723, 720, 722, 0, 725, 716,
+ 717, 721, 717, 722, 720, 728, 721, 726, 730, 717,
+ 719, 729, 724, 730, 727, 717, 717, 717, 725, 724,
+ 728, 729, 726, 722, 717, 725, 731, 717, 732, 717,
+ 732, 726, 728, 729, 726, 733, 717, 734, 729, 742,
+ 730, 735, 717, 717, 717, 734, 743, 0, 729, 726,
+ 736, 740, 731, 731, 737, 732, 736, 744, 738, 740,
+ 733, 739, 733, 737, 734, 741, 735, 738, 735, 743,
+ 739, 742, 741, 743, 745, 744, 751, 736, 740, 746,
+ 747, 737, 748, 750, 744, 738, 745, 749, 739, 747,
- 0, 0, 715, 716, 717, 716, 719, 0, 723, 718,
- 725, 721, 716, 724, 727, 719, 730, 726, 716, 716,
- 716, 720, 722, 722, 741, 725, 720, 716, 723, 727,
- 716, 729, 716, 724, 725, 723, 729, 725, 728, 716,
- 724, 727, 730, 730, 732, 716, 716, 716, 728, 731,
- 733, 731, 725, 734, 739, 735, 742, 736, 733, 737,
- 728, 735, 739, 729, 738, 728, 736, 740, 737, 732,
- 743, 732, 0, 738, 740, 728, 731, 733, 734, 742,
- 734, 739, 735, 742, 736, 0, 737, 744, 743, 745,
- 747, 738, 750, 746, 740, 748, 749, 743, 747, 744,
+ 748, 746, 741, 752, 755, 750, 749, 756, 754, 753,
+ 752, 745, 755, 756, 0, 758, 746, 747, 751, 748,
+ 750, 749, 753, 754, 749, 0, 766, 0, 760, 757,
+ 752, 755, 759, 749, 756, 754, 753, 757, 758, 760,
+ 761, 759, 758, 763, 763, 762, 764, 767, 766, 761,
+ 765, 770, 763, 766, 764, 760, 757, 762, 765, 759,
+ 767, 768, 769, 772, 770, 0, 0, 761, 771, 773,
+ 763, 763, 762, 764, 767, 774, 771, 765, 770, 772,
+ 775, 778, 773, 779, 776, 769, 777, 768, 768, 769,
+ 772, 775, 776, 782, 780, 771, 773, 774, 786, 0,
- 751, 745, 746, 754, 748, 752, 753, 751, 749, 755,
- 0, 754, 757, 0, 744, 755, 745, 747, 752, 748,
- 746, 753, 748, 749, 750, 789, 756, 751, 758, 759,
- 754, 748, 752, 753, 756, 757, 755, 758, 760, 757,
- 759, 761, 761, 762, 763, 764, 765, 760, 766, 768,
- 761, 762, 763, 756, 767, 758, 759, 789, 769, 765,
- 772, 0, 768, 770, 0, 760, 769, 764, 761, 761,
- 762, 763, 764, 765, 766, 766, 768, 767, 771, 770,
- 774, 767, 772, 773, 775, 769, 776, 772, 774, 778,
- 770, 771, 777, 779, 773, 780, 779, 0, 775, 781,
+ 777, 778, 774, 781, 783, 779, 781, 775, 778, 784,
+ 779, 776, 785, 777, 780, 782, 786, 794, 784, 788,
+ 782, 780, 787, 789, 791, 786, 783, 790, 0, 0,
+ 781, 783, 785, 792, 793, 787, 784, 788, 795, 785,
+ 794, 789, 790, 798, 794, 796, 788, 797, 801, 787,
+ 789, 795, 803, 799, 790, 792, 791, 803, 793, 797,
+ 792, 793, 800, 796, 804, 795, 799, 798, 800, 802,
+ 798, 807, 796, 808, 797, 801, 805, 802, 0, 807,
+ 799, 810, 809, 811, 803, 812, 804, 0, 810, 800,
+ 809, 804, 814, 815, 805, 802, 802, 813, 807, 813,
- 784, 799, 785, 782, 783, 771, 776, 774, 868, 778,
- 773, 775, 782, 776, 777, 785, 778, 780, 784, 777,
- 779, 781, 780, 786, 783, 787, 781, 784, 799, 785,
- 782, 783, 788, 790, 791, 868, 793, 0, 794, 792,
- 796, 786, 795, 787, 797, 798, 806, 788, 801, 793,
- 786, 798, 787, 801, 795, 790, 794, 797, 791, 788,
- 790, 791, 792, 793, 796, 794, 792, 796, 800, 795,
- 802, 797, 798, 803, 805, 807, 800, 808, 806, 811,
- 801, 811, 805, 807, 808, 809, 813, 812, 814, 817,
- 810, 803, 802, 0, 800, 800, 812, 802, 816, 844,
+ 812, 814, 816, 805, 802, 808, 811, 0, 810, 809,
+ 811, 817, 812, 819, 818, 821, 822, 821, 820, 814,
+ 825, 829, 0, 822, 813, 815, 818, 820, 838, 0,
+ 817, 829, 825, 819, 816, 839, 1391, 1391, 817, 838,
+ 819, 818, 821, 822, 0, 820, 823, 825, 829, 823,
+ 832, 833, 835, 823, 836, 838, 823, 835, 839, 0,
+ 840, 843, 839, 823, 823, 1391, 823, 837, 832, 841,
+ 843, 823, 833, 823, 846, 836, 823, 832, 833, 835,
+ 823, 836, 842, 823, 844, 837, 840, 840, 843, 852,
+ 823, 823, 845, 823, 837, 841, 841, 844, 842, 845,
- 803, 805, 807, 800, 808, 810, 811, 815, 809, 817,
- 816, 885, 809, 818, 812, 823, 817, 810, 813, 819,
- 814, 819, 818, 820, 0, 816, 815, 823, 827, 830,
- 820, 844, 831, 0, 815, 841, 833, 836, 827, 834,
- 818, 833, 823, 885, 841, 887, 819, 830, 836, 0,
- 820, 821, 835, 831, 821, 827, 830, 837, 821, 831,
- 834, 821, 841, 833, 836, 838, 834, 839, 821, 821,
- 835, 821, 887, 840, 842, 843, 821, 0, 821, 835,
- 837, 821, 843, 846, 837, 821, 847, 842, 821, 840,
- 846, 838, 838, 839, 839, 821, 821, 853, 821, 848,
+ 848, 851, 849, 855, 0, 856, 846, 848, 850, 842,
+ 851, 844, 852, 856, 850, 853, 852, 857, 853, 845,
+ 847, 847, 0, 847, 849, 855, 847, 848, 851, 849,
+ 855, 847, 856, 854, 859, 850, 859, 847, 847, 857,
+ 847, 865, 853, 858, 857, 860, 847, 847, 847, 854,
+ 847, 862, 861, 847, 863, 858, 854, 861, 847, 866,
+ 854, 859, 864, 865, 847, 847, 867, 847, 865, 860,
+ 858, 862, 860, 868, 864, 870, 854, 869, 862, 872,
+ 863, 863, 871, 873, 861, 866, 866, 875, 867, 864,
+ 874, 873, 878, 867, 872, 877, 875, 868, 876, 869,
- 840, 842, 843, 845, 845, 848, 845, 849, 847, 845,
- 846, 0, 850, 847, 845, 851, 849, 854, 851, 853,
- 845, 845, 852, 845, 853, 854, 848, 0, 856, 845,
- 845, 845, 855, 845, 849, 850, 845, 858, 852, 850,
- 856, 845, 851, 860, 854, 852, 861, 845, 845, 852,
- 845, 857, 859, 857, 855, 856, 862, 859, 863, 855,
- 864, 858, 870, 860, 858, 852, 865, 866, 862, 0,
- 860, 871, 861, 861, 867, 869, 872, 870, 857, 871,
- 863, 873, 0, 862, 859, 863, 864, 864, 865, 870,
- 873, 866, 876, 865, 866, 877, 867, 874, 871, 872,
+ 868, 879, 870, 877, 869, 876, 872, 871, 880, 871,
+ 873, 878, 883, 874, 875, 884, 881, 874, 882, 878,
+ 880, 885, 877, 881, 884, 876, 887, 879, 879, 886,
+ 888, 882, 889, 890, 886, 880, 885, 894, 883, 883,
+ 893, 891, 884, 881, 896, 882, 891, 895, 885, 899,
+ 905, 901, 888, 896, 889, 897, 886, 888, 887, 889,
+ 890, 898, 893, 897, 900, 902, 903, 893, 898, 894,
+ 906, 896, 895, 891, 895, 904, 907, 905, 910, 908,
+ 0, 899, 897, 901, 911, 907, 900, 903, 898, 902,
+ 909, 900, 902, 903, 904, 912, 915, 906, 908, 909,
- 869, 867, 869, 872, 874, 875, 878, 879, 873, 881,
- 880, 876, 883, 875, 879, 884, 882, 891, 878, 876,
- 884, 877, 877, 880, 874, 882, 886, 883, 890, 892,
- 896, 0, 875, 878, 879, 881, 881, 880, 893, 883,
- 888, 897, 884, 882, 894, 888, 899, 893, 886, 891,
- 890, 895, 894, 886, 892, 890, 892, 898, 895, 900,
- 901, 902, 896, 897, 903, 893, 904, 908, 897, 0,
- 899, 894, 888, 899, 906, 904, 905, 907, 895, 901,
- 900, 911, 909, 906, 913, 916, 900, 901, 902, 898,
- 908, 903, 911, 904, 908, 905, 910, 914, 912, 907,
+ 910, 913, 904, 907, 915, 910, 908, 911, 914, 916,
+ 913, 911, 917, 918, 919, 912, 920, 909, 921, 914,
+ 924, 0, 912, 915, 927, 922, 929, 921, 913, 929,
+ 917, 0, 918, 922, 925, 914, 916, 931, 924, 917,
+ 918, 919, 927, 925, 928, 921, 930, 924, 920, 926,
+ 926, 927, 922, 929, 933, 932, 928, 0, 930, 931,
+ 934, 925, 936, 935, 931, 937, 939, 937, 938, 940,
+ 941, 928, 933, 930, 940, 936, 926, 932, 942, 943,
+ 939, 933, 932, 941, 934, 935, 938, 934, 944, 936,
+ 935, 943, 937, 939, 945, 938, 944, 941, 947, 946,
- 915, 906, 909, 905, 907, 910, 912, 917, 911, 909,
- 919, 913, 916, 918, 921, 914, 924, 922, 919, 915,
- 923, 923, 918, 910, 914, 912, 922, 915, 926, 928,
- 925, 926, 921, 927, 924, 930, 929, 919, 0, 917,
- 918, 921, 925, 924, 922, 927, 931, 923, 933, 932,
- 934, 928, 934, 930, 935, 926, 928, 925, 929, 939,
- 927, 933, 930, 929, 936, 942, 938, 0, 940, 937,
- 931, 932, 935, 931, 937, 933, 932, 934, 936, 938,
- 940, 935, 941, 942, 943, 939, 939, 943, 944, 947,
- 941, 936, 942, 938, 945, 940, 948, 944, 949, 951,
+ 948, 940, 946, 950, 942, 942, 943, 947, 948, 951,
+ 952, 953, 945, 954, 0, 944, 952, 955, 958, 954,
+ 965, 945, 956, 958, 948, 947, 946, 948, 950, 956,
+ 950, 962, 0, 953, 957, 948, 951, 952, 953, 955,
+ 954, 957, 960, 959, 955, 958, 963, 961, 964, 956,
+ 959, 961, 965, 966, 962, 963, 964, 967, 962, 969,
+ 960, 957, 971, 972, 970, 968, 973, 969, 975, 960,
+ 959, 966, 967, 963, 961, 964, 968, 970, 974, 973,
+ 966, 978, 972, 971, 967, 0, 969, 977, 976, 971,
+ 972, 970, 968, 973, 977, 975, 976, 979, 980, 978,
- 950, 937, 945, 953, 949, 951, 952, 0, 955, 941,
- 953, 943, 954, 955, 947, 944, 947, 956, 945, 954,
- 957, 945, 950, 948, 956, 949, 951, 950, 952, 945,
- 953, 959, 958, 952, 960, 955, 958, 961, 957, 954,
- 962, 964, 963, 960, 956, 961, 965, 957, 969, 967,
- 968, 972, 970, 983, 959, 966, 964, 965, 959, 958,
- 963, 960, 967, 966, 961, 970, 971, 969, 964, 963,
- 0, 968, 962, 965, 975, 969, 967, 968, 972, 970,
- 974, 973, 966, 976, 977, 983, 0, 974, 971, 973,
- 976, 978, 975, 971, 979, 981, 980, 984, 978, 979,
+ 974, 983, 981, 982, 979, 974, 983, 987, 978, 981,
+ 982, 984, 988, 985, 977, 976, 986, 980, 989, 984,
+ 985, 990, 991, 986, 979, 980, 993, 992, 983, 981,
+ 982, 989, 994, 995, 992, 991, 0, 0, 984, 987,
+ 985, 998, 996, 986, 988, 989, 999, 997, 1001, 991,
+ 996, 1000, 999, 990, 992, 997, 995, 1002, 993, 1003,
+ 995, 1004, 997, 998, 994, 1005, 1006, 1008, 998, 996,
+ 1004, 0, 1009, 999, 997, 1011, 1010, 1000, 1000, 1005,
+ 1001, 1009, 997, 1003, 1007, 0, 1003, 1015, 1004, 1002,
+ 1010, 1007, 1005, 1012, 1008, 1013, 1016, 1011, 1006, 1009,
- 985, 975, 981, 977, 980, 982, 986, 974, 973, 988,
- 976, 977, 982, 985, 989, 987, 988, 990, 978, 0,
- 991, 979, 981, 980, 995, 992, 993, 985, 987, 984,
- 995, 999, 982, 992, 993, 994, 988, 996, 986, 997,
- 998, 993, 987, 991, 1002, 0, 989, 991, 1004, 990,
- 1000, 995, 992, 993, 1001, 999, 1005, 994, 999, 1000,
- 1003, 993, 994, 996, 996, 1005, 1006, 1003, 1001, 1007,
- 1056, 997, 998, 1008, 1009, 1004, 1002, 1000, 1010, 1009,
- 1006, 1001, 1012, 1005, 1011, 1014, 1008, 1003, 1008, 1013,
- 1010, 1007, 1014, 1006, 1013, 1016, 1007, 1008, 1015, 0,
+ 1013, 1014, 1011, 1010, 1017, 1018, 1012, 1019, 1012, 1017,
+ 1015, 1007, 1018, 1014, 1015, 1020, 1021, 1012, 1023, 1019,
+ 1012, 1023, 1016, 1016, 1021, 1024, 0, 1013, 1014, 1025,
+ 1027, 1017, 1018, 1012, 1019, 1012, 1031, 1020, 1024, 1028,
+ 1025, 1029, 1020, 1021, 1027, 1023, 1028, 1029, 0, 1033,
+ 0, 1035, 1024, 1025, 1032, 0, 1025, 1027, 1031, 0,
+ 0, 1034, 1036, 1031, 1036, 0, 1028, 1025, 1029, 1030,
+ 1040, 1030, 1033, 1034, 1039, 1030, 1033, 1030, 1035, 1040,
+ 1032, 1032, 1030, 1037, 1037, 1038, 1039, 1030, 1034, 1036,
+ 1041, 1042, 1038, 1030, 1043, 1044, 1030, 1040, 1030, 0,
- 1008, 1019, 1056, 0, 1019, 1010, 1009, 1011, 1012, 1012,
- 1015, 1011, 1014, 1008, 1020, 1008, 1013, 1016, 1017, 1021,
- 1023, 1029, 1016, 1025, 1024, 1015, 1017, 1020, 1019, 1025,
- 1021, 1024, 1027, 0, 1023, 1028, 1031, 0, 0, 0,
- 1030, 1020, 1057, 1021, 1029, 1017, 1021, 1023, 1029, 0,
- 1025, 1024, 1030, 1032, 1027, 1032, 1036, 1021, 1026, 1027,
- 1026, 1028, 1028, 1031, 1026, 1036, 1026, 1030, 1034, 1033,
- 1033, 1026, 1035, 1037, 1057, 1034, 1026, 1039, 0, 1038,
- 1032, 1049, 1026, 1036, 1035, 1026, 1037, 1026, 0, 1040,
- 1039, 1026, 1033, 1026, 1040, 1034, 1033, 1033, 1026, 1035,
+ 1044, 1039, 1030, 1041, 1030, 1045, 1037, 1043, 1047, 1030,
+ 1037, 1037, 1038, 1042, 1030, 1046, 1051, 1041, 1042, 0,
+ 1047, 1043, 1048, 1045, 0, 1049, 1050, 1044, 1046, 1049,
+ 1053, 1047, 1045, 1052, 1048, 1047, 1056, 1057, 1051, 1049,
+ 1058, 1050, 1046, 1051, 1054, 1055, 1052, 1047, 1059, 1048,
+ 1054, 1049, 1049, 1050, 1056, 1060, 1049, 1053, 1055, 1057,
+ 1052, 1058, 1061, 1056, 1057, 1062, 1049, 1058, 1064, 1065,
+ 1059, 1054, 1055, 0, 1065, 1059, 1066, 1067, 0, 1070,
+ 1069, 0, 1072, 0, 1066, 1082, 1067, 1060, 1073, 1071,
+ 0, 0, 1062, 0, 1061, 1069, 1065, 1072, 1074, 0,
- 1037, 1038, 1041, 1026, 1039, 1042, 1038, 1043, 1049, 1045,
- 1044, 1046, 0, 1045, 1048, 1051, 0, 1047, 1042, 1043,
- 1041, 1040, 1044, 1045, 1060, 1050, 1046, 1048, 1051, 1041,
- 1043, 1050, 1042, 1052, 1043, 1045, 1045, 1044, 1046, 1047,
- 1045, 1048, 1051, 1053, 1047, 1054, 1043, 1055, 1058, 1061,
- 1045, 1052, 1050, 1062, 1061, 1063, 1060, 1066, 1065, 0,
- 1052, 1062, 1068, 0, 1063, 1053, 1054, 1069, 1067, 1055,
- 1053, 0, 1054, 1065, 1055, 1058, 1061, 1068, 1070, 1066,
- 1062, 1067, 1063, 1064, 1066, 1065, 1072, 1071, 1064, 1068,
- 1064, 1074, 1073, 1069, 1069, 1067, 1064, 0, 1078, 1072,
+ 1064, 1070, 1071, 1066, 1067, 1068, 1070, 1069, 1075, 1072,
+ 1068, 1077, 1068, 1076, 1073, 1073, 1071, 1082, 1068, 1089,
+ 1074, 1078, 1077, 1068, 1068, 1074, 1076, 1075, 1079, 1084,
+ 1068, 1068, 1068, 1080, 1078, 1075, 1079, 1068, 1077, 1068,
+ 1076, 1080, 1081, 1083, 1084, 1068, 1089, 0, 1078, 1085,
+ 1068, 1068, 1086, 1081, 1090, 1079, 1084, 1068, 1085, 1087,
+ 1080, 1094, 1088, 1086, 1093, 1083, 1091, 1095, 1087, 1081,
+ 1083, 1088, 1098, 1091, 1100, 1095, 1085, 1090, 1096, 1086,
+ 1099, 1090, 1100, 1097, 1104, 1094, 1087, 1105, 1094, 1088,
+ 1102, 1103, 0, 1091, 1095, 1104, 1093, 1097, 1107, 0,
- 1070, 1064, 1064, 1073, 1074, 1070, 1071, 1085, 1064, 1064,
- 1064, 1077, 1075, 1072, 1071, 1064, 1076, 1064, 1074, 1073,
- 1075, 1080, 1077, 1064, 1076, 1079, 1082, 1086, 1064, 1064,
- 1078, 1081, 1083, 1084, 1085, 1064, 1080, 1082, 1077, 1075,
- 1081, 1083, 1084, 1076, 1087, 1089, 1090, 1079, 1080, 1091,
- 1086, 1087, 1079, 1082, 1086, 1093, 1092, 1091, 1081, 1083,
- 1084, 1094, 1095, 1098, 1096, 1101, 0, 1099, 1100, 1093,
- 1090, 1087, 1096, 1090, 1102, 0, 1091, 1089, 1092, 1100,
- 1102, 1098, 1093, 1092, 1095, 1099, 1103, 1105, 1104, 1095,
- 1098, 1096, 1106, 1094, 1099, 1100, 1104, 1101, 1107, 1106,
+ 1096, 1100, 1099, 1112, 1098, 1096, 1106, 1099, 1102, 1103,
+ 1097, 1104, 1106, 1108, 1109, 1110, 1107, 1102, 1103, 1105,
+ 1113, 1108, 1110, 1114, 1111, 1107, 1115, 1113, 1116, 1112,
+ 1112, 1117, 1120, 1106, 1119, 1118, 1109, 1111, 1114, 0,
+ 1108, 1109, 1110, 1122, 1115, 1118, 1116, 1113, 1126, 1128,
+ 1114, 1111, 1117, 1115, 1122, 1116, 1124, 1129, 1117, 1125,
+ 1119, 1119, 1118, 1127, 1120, 1127, 1125, 1133, 1131, 1124,
+ 1122, 1128, 1130, 1132, 1126, 1126, 1128, 1141, 1140, 1133,
+ 1130, 1131, 1132, 1124, 1134, 1135, 1125, 1138, 1139, 1129,
+ 1127, 1142, 1143, 0, 1133, 1131, 1140, 0, 1144, 1130,
- 1108, 1102, 1110, 1109, 1103, 1111, 1112, 1113, 1114, 1105,
- 1109, 1107, 1115, 1103, 1105, 1104, 1121, 1110, 1114, 1106,
- 1117, 1124, 0, 1111, 1112, 1107, 1108, 1108, 1113, 1110,
- 1109, 1117, 1111, 1112, 1113, 1114, 1119, 1122, 1120, 1122,
- 1123, 1127, 1121, 1121, 1115, 1120, 1125, 1117, 1126, 1119,
- 1127, 0, 1129, 1124, 1125, 1130, 1133, 1128, 1134, 1137,
- 1136, 1126, 1123, 1119, 1122, 1120, 1138, 1123, 1127, 1128,
- 1135, 0, 1139, 1125, 1129, 1126, 0, 1130, 1133, 1129,
- 1134, 1140, 1130, 1133, 1128, 1134, 1136, 1136, 1135, 1141,
- 1139, 1137, 1151, 1140, 1143, 1144, 1148, 1135, 1138, 1139,
+ 1132, 1145, 1165, 1141, 1141, 1140, 1134, 1135, 1146, 1138,
+ 1139, 1134, 1135, 1145, 1138, 1139, 1144, 1151, 1148, 1152,
+ 1151, 1149, 1146, 1142, 1143, 1144, 1149, 1153, 1145, 1148,
+ 1155, 1152, 1157, 1156, 1165, 1146, 1154, 1155, 1160, 1157,
+ 1167, 1159, 0, 1151, 1151, 1148, 1152, 1151, 0, 1154,
+ 1187, 1153, 1159, 1149, 1153, 1156, 1161, 1155, 1160, 1157,
+ 1156, 1158, 1158, 1154, 1162, 1160, 1163, 1161, 1159, 1164,
+ 1166, 0, 1167, 1162, 1168, 1158, 1169, 1166, 1172, 1170,
+ 1163, 1164, 1187, 1161, 1173, 1175, 1168, 1176, 1158, 1158,
+ 0, 1162, 1170, 1163, 1174, 1178, 1164, 1166, 1169, 1177,
- 1144, 1147, 1149, 1141, 1146, 1143, 0, 1146, 1140, 1160,
- 1150, 1152, 0, 1147, 1151, 1149, 1141, 1150, 1152, 1151,
- 1148, 1143, 1154, 1148, 1155, 1153, 1153, 1144, 1147, 1149,
- 1146, 1146, 1156, 1154, 1146, 1159, 1157, 1150, 1152, 1153,
- 1158, 1160, 1162, 1156, 1155, 1157, 1163, 1159, 1161, 1154,
- 1164, 1155, 1153, 1153, 1158, 1161, 1165, 1168, 1163, 1156,
- 1167, 0, 1159, 1157, 1169, 1172, 1170, 1158, 1171, 1165,
- 1169, 1173, 1164, 1163, 1162, 1161, 1172, 1164, 1174, 1175,
- 1183, 1168, 1176, 1165, 1168, 1179, 1167, 1167, 1170, 1173,
- 1171, 1169, 1172, 1170, 1178, 1171, 1179, 1176, 1173, 1180,
+ 1174, 1168, 1179, 1169, 1172, 1172, 1170, 1175, 1173, 1176,
+ 1177, 1173, 1175, 1178, 1176, 1180, 1181, 1183, 1185, 1184,
+ 1188, 1174, 1178, 1189, 1179, 1190, 1177, 1186, 1194, 1179,
+ 1184, 1181, 1191, 1186, 1190, 1192, 1194, 1180, 1183, 1185,
+ 1193, 1189, 1180, 1181, 1183, 1185, 1184, 1188, 1196, 1193,
+ 1189, 1195, 1190, 1198, 1186, 1194, 1191, 1197, 1195, 1191,
+ 1199, 1192, 1192, 1200, 1201, 1203, 1202, 1193, 1205, 0,
+ 1210, 1197, 1196, 0, 1204, 1196, 1207, 1211, 1195, 1212,
+ 1208, 0, 1213, 1209, 1197, 1198, 1201, 1214, 1202, 1208,
+ 1209, 1201, 1199, 1202, 1213, 1200, 1204, 1203, 1207, 1211,
- 1174, 1175, 1181, 1182, 1184, 1174, 1175, 1183, 1181, 1176,
- 1185, 0, 1179, 1187, 1186, 1178, 1188, 1193, 1191, 1185,
- 1180, 1178, 1184, 1190, 1189, 1188, 1180, 1194, 0, 1181,
- 1190, 1184, 1189, 1192, 1195, 1182, 1196, 1185, 1186, 1187,
- 1187, 1186, 1191, 1188, 1198, 1191, 1197, 1192, 1199, 1193,
- 1190, 1189, 1200, 1203, 1204, 1202, 1205, 0, 1196, 1194,
- 1192, 1204, 1203, 1196, 1206, 1207, 1195, 1208, 1197, 1209,
- 1199, 1210, 1220, 1197, 1211, 1199, 1198, 1202, 1213, 1214,
- 1203, 1204, 1202, 1211, 1200, 1208, 1206, 1209, 1205, 1212,
- 1216, 1206, 1207, 1210, 1208, 1215, 1209, 1212, 1210, 1217,
+ 1205, 1204, 1210, 1207, 1211, 1214, 1212, 1208, 1215, 1213,
+ 1209, 1216, 1217, 1219, 1214, 1218, 1221, 1220, 1223, 0,
+ 1225, 1217, 1226, 1218, 1222, 1227, 1215, 1223, 1225, 1230,
+ 0, 1229, 1221, 1216, 1224, 1215, 1228, 1219, 1216, 1217,
+ 1219, 1220, 1218, 1221, 1220, 1223, 1222, 1225, 1228, 1224,
+ 1233, 1222, 1231, 1229, 1226, 1232, 1230, 1227, 1229, 1238,
+ 1231, 1224, 1234, 1228, 1236, 1233, 1237, 1238, 1232, 1242,
+ 1239, 1234, 1239, 1236, 1243, 1241, 1244, 1233, 1245, 1231,
+ 0, 1247, 1232, 1241, 1237, 1246, 1238, 1242, 1247, 1234,
+ 0, 1236, 1250, 1237, 1251, 1244, 1242, 1239, 1249, 1253,
- 1218, 1211, 1213, 1214, 1220, 1213, 1214, 1221, 1217, 1222,
- 1219, 1215, 1216, 1223, 1224, 1218, 1212, 1216, 1219, 1226,
- 1225, 1222, 1215, 1227, 1228, 1230, 1217, 1218, 1225, 1233,
- 1231, 1233, 1226, 1228, 1230, 1223, 1222, 1219, 1227, 1221,
- 1223, 1224, 1236, 1237, 1238, 1232, 1226, 1225, 1231, 0,
- 1227, 1228, 1230, 1232, 1235, 1239, 1233, 1231, 1240, 1241,
- 1236, 1243, 1235, 1238, 1244, 1246, 1241, 1248, 1245, 1236,
- 1237, 1238, 1232, 1249, 1243, 1247, 1244, 1239, 1251, 1248,
- 1240, 1235, 1239, 1245, 1253, 1240, 1241, 1246, 1243, 1250,
- 1252, 1244, 1246, 1247, 1248, 1245, 1250, 1254, 1256, 1258,
+ 1245, 1243, 1241, 1244, 1250, 1245, 1252, 1246, 1247, 1251,
+ 1254, 1249, 1246, 1255, 1257, 1258, 1256, 1253, 1260, 1250,
+ 0, 1251, 1254, 1256, 1261, 1249, 1253, 1262, 1252, 1259,
+ 1260, 1264, 1263, 1252, 0, 1261, 1269, 1254, 1267, 1265,
+ 1255, 0, 1266, 1256, 1269, 1260, 1257, 1258, 1259, 1262,
+ 1268, 1261, 1265, 1264, 1262, 1266, 1259, 1263, 1264, 1263,
+ 1267, 1270, 1268, 1269, 1271, 1267, 1265, 1272, 1273, 1266,
+ 1275, 1280, 1278, 1276, 1279, 1277, 1273, 1268, 0, 1272,
+ 1281, 0, 1283, 1279, 1271, 1270, 1276, 1282, 1270, 1283,
+ 1278, 1271, 1281, 1286, 1272, 1273, 1287, 1275, 1277, 1278,
- 1249, 1255, 1247, 1253, 1257, 1259, 1260, 0, 1261, 1254,
- 1251, 1253, 1255, 1264, 1265, 1262, 1250, 0, 1259, 1260,
- 1256, 1258, 1252, 1274, 1254, 1256, 1258, 1262, 1255, 1257,
- 1261, 1257, 1259, 1260, 1265, 1261, 1263, 1264, 1266, 1267,
- 1264, 1265, 1262, 1269, 1263, 1270, 1271, 1267, 1273, 1272,
- 1266, 1283, 1275, 1276, 1277, 1274, 0, 1273, 1270, 0,
- 1280, 1277, 1282, 1263, 1275, 1266, 1267, 1272, 1281, 1271,
- 1269, 1285, 1270, 1271, 1276, 1273, 1272, 1278, 1283, 1275,
- 1276, 1277, 1284, 1280, 1282, 1285, 1278, 1280, 1278, 1282,
- 1286, 1278, 1287, 1288, 1281, 1281, 1289, 0, 1285, 1278,
+ 1276, 1279, 1277, 1280, 1284, 1288, 1289, 1281, 1282, 1283,
+ 1290, 1291, 1293, 1284, 1282, 1284, 1286, 0, 1284, 1295,
+ 1286, 1292, 1287, 1287, 0, 1291, 1284, 1288, 1295, 1296,
+ 1290, 1284, 1288, 1289, 1292, 1294, 1293, 1290, 1291, 1293,
+ 1284, 1298, 1284, 1294, 1299, 1284, 1295, 1296, 1292, 1300,
+ 1301, 1302, 1299, 1303, 1304, 0, 1296, 1305, 1307, 1313,
+ 0, 1308, 1294, 1298, 1300, 1305, 1303, 1309, 1298, 1311,
+ 1304, 1299, 1310, 1302, 1312, 1314, 1300, 1313, 1302, 1310,
+ 1303, 1304, 1301, 1308, 1305, 1307, 1313, 1314, 1308, 1309,
+ 1316, 1311, 1315, 1318, 1309, 1319, 1311, 1312, 1316, 1310,
- 1292, 1288, 1284, 1286, 1278, 1289, 1290, 1295, 1296, 1284,
- 1294, 1301, 0, 1278, 0, 1278, 1287, 1286, 1278, 1287,
- 1288, 1293, 1292, 1289, 1290, 1294, 1298, 1292, 1297, 1293,
- 1296, 0, 1299, 1290, 1302, 1296, 1303, 1294, 1301, 1295,
- 1299, 1297, 1298, 1304, 1305, 1306, 1307, 0, 1293, 0,
- 1304, 0, 1310, 1298, 1321, 1297, 1302, 1308, 1303, 1299,
- 1310, 1302, 1309, 1303, 1307, 1312, 1305, 1311, 1306, 1308,
- 1304, 1305, 1306, 1307, 1309, 1313, 1311, 1312, 1314, 1310,
- 1315, 1316, 0, 1318, 1308, 1319, 1321, 1316, 1315, 1309,
- 1317, 1311, 1312, 1314, 1311, 1313, 0, 1319, 1320, 1317,
+ 1317, 1312, 1314, 1320, 1315, 1318, 1321, 1322, 1324, 1317,
+ 0, 1325, 1323, 1322, 1321, 1319, 1327, 1316, 1320, 1315,
+ 1318, 1323, 1319, 1325, 1317, 1328, 1326, 1317, 1330, 1324,
+ 1320, 1331, 1328, 1321, 1322, 1324, 1317, 1326, 1325, 1323,
+ 1329, 1332, 1326, 1331, 1333, 1336, 1330, 1329, 1327, 1332,
+ 1337, 1340, 1328, 1326, 1334, 1330, 0, 1336, 1331, 1333,
+ 0, 1335, 1334, 1335, 1326, 1341, 1338, 1329, 1332, 1344,
+ 1343, 1333, 1336, 1338, 1342, 1345, 1344, 1341, 1346, 1347,
+ 1348, 1334, 1337, 1340, 1352, 1348, 1345, 1342, 1335, 1343,
+ 1349, 1350, 1341, 1338, 1347, 1351, 1344, 1343, 1349, 1354,
- 0, 1324, 1313, 1311, 1318, 1314, 1322, 1315, 1316, 1320,
- 1318, 1323, 1319, 1322, 1320, 1325, 1326, 1317, 1323, 1324,
- 1327, 1328, 1330, 1331, 1326, 1320, 1334, 1325, 1324, 1328,
- 1329, 0, 1329, 1322, 1330, 1327, 1320, 1332, 1323, 1335,
- 1336, 1337, 1325, 1326, 1332, 1338, 1344, 1327, 1328, 1330,
- 1339, 1335, 1338, 1336, 1340, 1331, 1341, 1329, 1334, 1344,
- 1337, 1339, 1351, 1348, 1332, 1342, 1335, 1336, 1337, 1346,
- 1342, 1341, 1338, 1344, 1343, 1345, 1340, 1339, 1349, 0,
- 0, 1340, 1343, 1341, 1356, 1354, 1350, 1353, 1348, 1345,
- 1348, 1352, 1349, 1360, 1351, 1346, 1346, 1342, 0, 1360,
+ 1346, 1342, 1345, 0, 1350, 1346, 1347, 1355, 1357, 1351,
+ 1352, 1352, 1348, 0, 0, 1356, 1359, 1349, 1350, 1362,
+ 1358, 1355, 1351, 1353, 1354, 1360, 1354, 1353, 0, 0,
+ 1353, 1353, 0, 1356, 1355, 1353, 0, 1361, 1359, 1363,
+ 1357, 1353, 1356, 1359, 1365, 1353, 1358, 1358, 1360, 1353,
+ 1353, 1362, 1360, 1364, 1353, 1361, 1367, 1353, 1353, 1366,
+ 1370, 1363, 1353, 1372, 1361, 1366, 1363, 1370, 1353, 1368,
+ 1365, 1365, 1353, 1371, 1369, 1364, 1369, 1368, 1372, 1367,
+ 1364, 1373, 1371, 1367, 1374, 1375, 1366, 1370, 1376, 0,
+ 1372, 1381, 1377, 1383, 1379, 1368, 1368, 0, 1369, 1377,
- 1357, 1343, 1345, 1347, 1350, 1349, 1355, 1347, 1354, 1353,
- 1347, 1347, 1354, 1350, 1353, 1347, 1356, 1352, 1352, 1358,
- 1360, 1347, 1357, 1359, 1355, 1347, 1364, 1357, 1361, 1347,
- 1347, 0, 1363, 1355, 1347, 1364, 1361, 1347, 1347, 1363,
- 0, 1358, 1347, 1362, 1366, 1362, 1358, 1365, 1347, 1359,
- 1359, 1367, 1347, 1364, 1361, 1361, 1374, 1368, 1370, 1363,
- 1369, 0, 1365, 1361, 1371, 1370, 1372, 1362, 1373, 1375,
- 1362, 1376, 1362, 0, 1365, 1377, 1366, 1373, 1369, 1372,
- 1379, 1368, 1378, 1367, 1368, 1370, 1371, 1369, 1374, 1381,
- 1375, 1371, 0, 1372, 1379, 1373, 1375, 1377, 1383, 1382,
+ 1371, 1369, 1378, 1369, 1368, 1380, 1376, 1379, 1384, 1375,
+ 1382, 1385, 1375, 1373, 1380, 1376, 1374, 1388, 1394, 1377,
+ 1389, 1379, 1386, 1381, 1378, 1383, 1390, 1392, 0, 1378,
+ 1384, 1382, 1380, 1389, 1385, 1384, 1386, 1382, 1385, 1388,
+ 1399, 1394, 1397, 1392, 1388, 1394, 1395, 1389, 1398, 1386,
+ 1387, 1397, 1390, 1390, 1392, 1387, 1396, 1387, 1395, 1387,
+ 1400, 1387, 1402, 1396, 1406, 1401, 1398, 1399, 1387, 1397,
+ 1401, 1408, 1403, 1395, 1404, 1398, 1402, 1387, 1405, 1406,
+ 1414, 1409, 1387, 1396, 1387, 1403, 1387, 1400, 1387, 1402,
+ 1407, 1406, 1404, 1408, 1409, 1407, 1405, 1401, 1408, 1403,
- 1384, 1384, 1377, 1376, 1385, 1378, 1388, 1379, 1392, 1378,
- 1380, 1381, 1382, 1387, 0, 1380, 1381, 1380, 1388, 1380,
- 1385, 1380, 1393, 1389, 1383, 1383, 1382, 1391, 1380, 1384,
- 1389, 1385, 1390, 1388, 1394, 1392, 1387, 1380, 1395, 1394,
- 1387, 1390, 1380, 1396, 1380, 1391, 1380, 1399, 1380, 1393,
- 1389, 1397, 1395, 1398, 1391, 1400, 1396, 1401, 0, 1390,
- 1400, 1407, 1399, 1402, 1404, 1395, 1394, 1403, 1409, 1397,
- 1396, 1398, 1404, 1405, 1399, 1406, 1402, 1408, 1397, 1401,
- 1398, 1405, 1400, 1409, 1401, 1403, 1410, 1415, 1406, 1412,
- 1402, 1404, 1416, 1407, 1403, 1409, 1411, 1413, 1418, 1414,
+ 1410, 1404, 1411, 1412, 1417, 1405, 1413, 1416, 1409, 1415,
+ 1411, 1412, 1414, 1418, 1421, 1419, 0, 1407, 1410, 1413,
+ 1426, 0, 1416, 1417, 1422, 1420, 1418, 1410, 1425, 1411,
+ 1412, 1417, 1421, 1413, 1416, 1415, 1415, 1419, 1420, 1423,
+ 1418, 1421, 1419, 1424, 1422, 1424, 1427, 1426, 1423, 1428,
+ 1425, 1422, 1420, 1429, 1430, 1425, 0, 1434, 1427, 1432,
+ 1433, 1436, 1437, 1438, 1444, 1434, 1423, 1435, 0, 1437,
+ 1424, 1439, 1441, 1427, 1440, 1429, 1428, 1449, 1441, 1430,
+ 1429, 1430, 1433, 1432, 1434, 1435, 1432, 1433, 1436, 1437,
+ 1438, 1444, 1447, 1450, 1435, 1446, 1440, 1439, 1439, 1441,
- 1405, 1416, 1406, 1408, 1408, 1410, 1417, 1415, 1417, 1411,
- 1413, 1412, 1419, 1410, 1415, 1420, 1412, 1414, 1421, 1416,
- 1418, 1422, 1423, 1411, 1413, 1418, 1414, 1420, 1425, 1426,
- 1427, 1429, 1428, 1417, 1430, 1431, 0, 1432, 1427, 1419,
- 1434, 1430, 1420, 1422, 1433, 1421, 1434, 1423, 1422, 1423,
- 1428, 1426, 1425, 1437, 1435, 1425, 1426, 1427, 1429, 1428,
- 1435, 1430, 1431, 1432, 1432, 1438, 1433, 1434, 1436, 1439,
- 1440, 1433, 1438, 1442, 1436, 1441, 1443, 1446, 0, 1439,
- 1437, 1435, 1441, 1444, 1445, 0, 1446, 1449, 1448, 1454,
- 0, 1451, 1438, 1450, 1440, 1436, 1439, 1440, 1443, 1449,
+ 1442, 1440, 1443, 1445, 1448, 1446, 1442, 1451, 1443, 1449,
+ 1445, 1448, 1452, 1459, 1453, 1450, 1447, 0, 1455, 1447,
+ 1450, 0, 1446, 1453, 1456, 1451, 1457, 1442, 1461, 1443,
+ 1445, 1448, 1458, 1462, 1451, 1459, 1460, 1452, 1457, 1452,
+ 1459, 1453, 1455, 1463, 1464, 1455, 1458, 1465, 1456, 1460,
+ 1461, 1456, 1462, 1457, 1466, 1461, 1467, 1468, 1469, 1458,
+ 1462, 1471, 1470, 1460, 1473, 1463, 1468, 1474, 1464, 1465,
+ 1463, 1464, 1477, 1475, 1465, 1471, 1476, 0, 1467, 1469,
+ 1466, 1466, 1470, 1467, 1468, 1469, 1479, 1478, 1471, 1470,
+ 1480, 1481, 1491, 1485, 1479, 1475, 1473, 0, 1476, 1474,
- 1453, 1444, 1441, 1443, 1446, 1442, 1452, 1450, 1454, 1445,
- 1444, 1445, 1448, 1451, 1449, 1448, 1454, 1455, 1451, 1452,
- 1450, 1456, 1453, 1458, 1457, 1459, 1460, 1453, 1465, 0,
- 1466, 0, 0, 1452, 1461, 1460, 1462, 1467, 0, 1455,
- 1463, 1469, 1473, 1468, 1455, 1456, 1457, 1459, 1456, 1458,
- 1458, 1457, 1459, 1460, 1463, 1461, 1462, 1470, 1471, 1467,
- 1465, 1461, 1466, 1462, 1467, 1468, 1471, 1463, 1477, 1473,
- 1468, 1472, 1474, 1469, 1475, 1470, 1479, 1478, 1483, 1474,
- 1480, 1475, 1481, 1484, 1470, 1471, 1478, 1472, 1488, 1481,
- 1477, 1485, 1480, 1479, 1492, 1477, 1482, 1486, 1472, 1474,
+ 1475, 1482, 1483, 1476, 1477, 1478, 1480, 1486, 1482, 1483,
+ 1487, 1488, 1489, 1479, 1478, 1485, 1486, 1480, 1481, 1489,
+ 1485, 1490, 1492, 1488, 1491, 1490, 1493, 1487, 1482, 1483,
+ 1494, 1496, 1500, 1499, 1486, 1501, 0, 1487, 1488, 1489,
+ 1505, 1504, 1501, 1497, 1502, 1498, 1494, 1493, 1490, 1497,
+ 1504, 1498, 1503, 1493, 1492, 1499, 1497, 1494, 1498, 1502,
+ 1499, 1511, 1501, 1496, 1500, 1503, 1505, 1505, 1504, 1509,
+ 1497, 1502, 1498, 1506, 1508, 1507, 1497, 1507, 1498, 1503,
+ 1506, 1510, 1512, 1508, 1513, 1515, 1512, 0, 1511, 1517,
+ 1510, 1509, 1516, 1515, 1518, 1519, 1509, 1521, 1520, 1518,
- 1482, 1475, 0, 1479, 1478, 1491, 0, 1480, 1489, 1481,
- 1483, 0, 1485, 1486, 1489, 1484, 1490, 0, 1485, 1494,
- 1488, 1489, 1490, 1482, 1486, 1495, 1492, 1491, 1497, 1490,
- 1493, 1496, 1491, 1500, 1494, 1489, 1503, 1493, 1495, 1501,
- 1496, 1489, 1500, 1490, 1498, 1499, 1494, 1499, 1505, 1490,
- 1502, 1498, 1495, 1509, 1497, 1497, 1508, 1493, 1496, 1502,
- 1500, 1501, 0, 1503, 1504, 1507, 1501, 1509, 1504, 1508,
- 1505, 1498, 1499, 1507, 1510, 1505, 1511, 1502, 1512, 1510,
- 1509, 1513, 1514, 1508, 1515, 1511, 1516, 1512, 0, 1520,
- 1517, 1504, 1507, 1517, 1519, 1523, 1546, 1515, 1516, 1513,
+ 1506, 1508, 1507, 1517, 1519, 1516, 1513, 1520, 1510, 1512,
+ 1522, 1513, 1515, 1528, 1523, 1521, 1517, 1527, 1524, 1516,
+ 1525, 0, 1519, 1525, 1521, 1520, 1518, 1523, 1532, 1522,
+ 1524, 1526, 1525, 1529, 1526, 1527, 1531, 1522, 1528, 1532,
+ 1528, 1523, 1533, 1534, 1527, 1524, 1529, 1525, 1536, 1535,
+ 1525, 1537, 1537, 1526, 1535, 1532, 1536, 1538, 1526, 1534,
+ 1529, 1526, 0, 1539, 1540, 1533, 1538, 1541, 1531, 1533,
+ 1534, 1542, 1543, 1544, 1547, 1536, 1545, 0, 1537, 1543,
+ 1542, 1535, 1550, 1545, 1538, 1539, 1540, 1547, 1548, 1541,
+ 1539, 1540, 1554, 1549, 1541, 1544, 1551, 1548, 1542, 1543,
- 0, 1514, 1517, 1511, 1518, 1512, 1510, 1518, 1513, 1514,
- 1521, 1515, 1519, 1516, 1520, 1525, 1520, 1517, 1524, 1526,
- 1517, 1519, 1531, 1521, 1528, 1527, 1518, 1523, 1546, 1524,
- 1527, 1518, 1528, 1532, 1518, 1526, 1533, 1521, 1525, 1529,
- 1529, 1530, 1525, 1534, 1531, 1524, 1526, 1535, 0, 1531,
- 1530, 1528, 1534, 1536, 1535, 1532, 1540, 1527, 1533, 1539,
- 1532, 1542, 1537, 1533, 1541, 1540, 1529, 1543, 1530, 1537,
- 1534, 1545, 1539, 1541, 1535, 1536, 1544, 1547, 0, 1545,
- 1536, 0, 1548, 1540, 1551, 1544, 1539, 1542, 1542, 1537,
- 1543, 1541, 1547, 1548, 1543, 1550, 1551, 1549, 1545, 1553,
+ 1544, 1547, 1549, 1545, 1552, 1556, 1553, 1555, 1550, 1550,
+ 1557, 0, 1558, 1552, 1553, 1548, 1556, 1559, 1557, 1551,
+ 1549, 1562, 1555, 1551, 1554, 1558, 1560, 1561, 1566, 1559,
+ 1563, 1552, 1556, 1553, 1555, 1561, 1564, 1557, 1560, 1558,
+ 1565, 1566, 1567, 1562, 1559, 1568, 0, 1569, 1562, 1565,
+ 1563, 1568, 1570, 1560, 1561, 1566, 1571, 1563, 1564, 1572,
+ 1575, 1574, 1576, 1564, 1567, 1569, 1573, 1565, 1571, 1567,
+ 1578, 1577, 1568, 1573, 1569, 1579, 1582, 1572, 1570, 1570,
+ 1580, 1584, 1582, 1571, 1577, 0, 1572, 1574, 1574, 1581,
+ 1583, 1585, 1575, 1573, 1576, 1586, 1578, 1578, 1577, 1587,
- 1552, 1554, 0, 1544, 1547, 1549, 1557, 1553, 1550, 1548,
- 1555, 1551, 1552, 1556, 1559, 1557, 1558, 0, 1562, 1560,
- 1561, 1567, 1550, 1554, 1549, 1560, 1553, 1552, 1554, 1558,
- 1555, 1564, 1568, 1557, 1566, 1556, 1559, 1555, 1561, 1563,
- 1556, 1559, 1570, 1558, 1562, 1562, 1560, 1561, 1565, 1564,
- 1569, 1563, 1571, 1567, 1573, 1565, 1574, 1572, 1564, 1576,
- 1566, 1566, 1574, 1569, 1568, 1573, 1563, 1575, 1570, 1570,
- 1577, 1578, 1579, 0, 1580, 1565, 0, 1569, 1572, 1571,
- 1582, 1573, 1583, 1574, 1572, 0, 1584, 1585, 1589, 1575,
- 1590, 1576, 0, 1580, 1575, 1580, 1585, 1586, 1579, 1579,
+ 1581, 1580, 1579, 1582, 1590, 0, 1591, 1580, 0, 1588,
+ 1593, 0, 1583, 1584, 1592, 1599, 1581, 1583, 1598, 1593,
+ 1597, 1595, 1599, 1585, 1594, 1587, 1587, 1586, 1588, 1591,
+ 1588, 1590, 1592, 1591, 1595, 1588, 1588, 1593, 1596, 1594,
+ 1597, 1592, 1599, 1600, 1598, 1598, 1601, 1597, 1595, 1602,
+ 1596, 1594, 1604, 1603, 1605, 1588, 1606, 1588, 1607, 1605,
+ 1604, 1606, 1600, 1609, 1610, 1596, 1603, 1608, 0, 1611,
+ 1600, 1602, 1610, 1613, 1608, 1612, 1602, 1611, 1601, 1604,
+ 1603, 1607, 1614, 1619, 1615, 1607, 1605, 1621, 1606, 1609,
+ 1609, 1610, 1615, 1612, 1608, 1613, 1611, 1616, 1618, 1617,
- 1580, 1580, 1577, 1578, 1584, 1583, 1587, 1582, 1589, 1583,
- 1592, 1588, 1586, 1584, 1585, 1589, 1590, 1590, 1591, 1587,
- 1580, 1593, 1580, 1588, 1586, 1591, 0, 1594, 1595, 1592,
- 1597, 1596, 1604, 1587, 1599, 1597, 1600, 1592, 1588, 1596,
- 1601, 1595, 1598, 1600, 1602, 1591, 1605, 1598, 1603, 1594,
- 1604, 1609, 1602, 1593, 1594, 1595, 1603, 1599, 1596, 1604,
- 1609, 1599, 1597, 1600, 1606, 1610, 1601, 1601, 1605, 1607,
- 1612, 1602, 1606, 1605, 1598, 1603, 1608, 1607, 1609, 1611,
- 1613, 1614, 1615, 1608, 1616, 1616, 1617, 1618, 1614, 1613,
- 1620, 1606, 1619, 0, 1615, 1618, 1607, 1610, 1622, 1628,
+ 1613, 1620, 1612, 1622, 0, 1616, 1617, 1618, 1624, 1623,
+ 1626, 1615, 1622, 1627, 1614, 1619, 1623, 1625, 1625, 1621,
+ 1624, 1627, 1628, 1620, 1616, 1618, 1617, 1629, 1620, 1630,
+ 1622, 1632, 0, 1631, 0, 1624, 1623, 1630, 1633, 1632,
+ 1627, 1636, 1626, 1628, 1625, 1634, 1633, 1635, 1667, 1628,
+ 1638, 1631, 1639, 1634, 1636, 1635, 1630, 1637, 1632, 1629,
+ 1631, 1640, 1638, 1637, 1644, 1633, 1645, 1641, 1636, 1648,
+ 1646, 1643, 1634, 1642, 1635, 1641, 1647, 1638, 1639, 1639,
+ 1667, 1642, 1656, 1648, 1637, 1640, 1643, 1650, 1640, 1649,
+ 1651, 1644, 1646, 1645, 1641, 1660, 1648, 1646, 1643, 1647,
- 0, 1611, 1612, 1608, 1621, 1628, 1611, 1613, 1614, 1615,
- 1630, 1616, 1621, 1619, 1618, 1623, 1622, 1627, 1617, 1619,
- 1624, 1625, 1620, 1623, 1626, 1622, 1628, 1629, 1624, 1625,
- 1627, 1621, 1626, 1631, 1634, 1632, 1630, 1630, 1633, 1629,
- 1635, 1636, 1623, 1632, 1627, 0, 1633, 1624, 1625, 1634,
- 1637, 1626, 1638, 1641, 1629, 1639, 0, 1631, 1640, 1642,
- 1631, 1634, 1632, 1647, 0, 1633, 1648, 1635, 1636, 1639,
- 1640, 1641, 1637, 1642, 1645, 1638, 1650, 1637, 1645, 1638,
- 1641, 1656, 1639, 1649, 1651, 1640, 1642, 1652, 1648, 1647,
- 1647, 1645, 1649, 1648, 1653, 1657, 1655, 1654, 1658, 1645,
+ 1642, 1649, 1654, 1647, 1651, 1650, 1654, 1659, 1656, 1656,
+ 1657, 1658, 1662, 1660, 1650, 1664, 1649, 1651, 1661, 1654,
+ 1658, 1663, 1660, 1665, 1662, 1666, 1664, 1654, 1663, 1654,
+ 1669, 1659, 1657, 1654, 1659, 1670, 1671, 1657, 1658, 1662,
+ 1661, 1668, 1664, 1672, 1669, 1661, 1654, 1666, 1663, 1673,
+ 1665, 1675, 1666, 1668, 1674, 1676, 1678, 1669, 1671, 1679,
+ 1675, 1674, 1677, 1671, 1683, 1681, 1672, 1670, 1668, 1677,
+ 1672, 1684, 1673, 1676, 1681, 1685, 1673, 1684, 1675, 1686,
+ 1687, 1674, 1676, 1688, 1690, 1710, 1679, 1693, 1678, 1677,
+ 1688, 1692, 1681, 1694, 1699, 0, 1683, 1685, 1684, 1698,
- 1650, 1645, 1651, 1650, 1654, 1645, 1653, 1655, 1656, 1652,
- 1649, 1651, 1660, 1659, 1652, 1661, 1662, 1657, 1645, 1663,
- 1669, 1653, 1657, 1655, 1654, 1659, 1660, 1664, 1665, 1668,
- 1658, 1667, 1666, 1670, 1674, 1665, 1668, 1677, 1662, 1660,
- 1659, 1666, 1663, 1662, 1672, 1675, 1663, 1661, 1676, 1667,
- 1664, 1675, 1669, 1672, 1664, 1665, 1668, 1678, 1667, 1666,
- 1670, 1679, 0, 1677, 1677, 1681, 1674, 1683, 1679, 1684,
- 1676, 1672, 1675, 1685, 1686, 1676, 1687, 1690, 1689, 1691,
- 1692, 0, 1694, 1690, 1685, 1686, 1691, 1687, 1679, 1678,
- 1693, 1683, 1681, 1700, 1683, 1701, 1684, 1693, 1692, 1695,
+ 1699, 1703, 1685, 0, 1694, 1686, 1686, 1701, 1695, 1700,
+ 1688, 1690, 1687, 1696, 1693, 1692, 1700, 1710, 1692, 1695,
+ 1694, 1699, 1702, 1698, 1696, 1701, 1698, 1703, 1703, 1702,
+ 1704, 1705, 1707, 1706, 1701, 1695, 1700, 1705, 1709, 1708,
+ 1696, 1706, 1704, 1711, 1707, 1712, 1713, 0, 1717, 1702,
+ 1714, 1709, 1715, 0, 1715, 1713, 1720, 1704, 1705, 1707,
+ 1706, 1708, 1714, 1712, 1716, 1709, 1708, 1718, 1722, 1711,
+ 1711, 1716, 1712, 1713, 1717, 1717, 1719, 1714, 1720, 1715,
+ 1718, 1721, 1723, 1720, 1725, 1719, 1728, 1726, 1733, 1724,
+ 1727, 1716, 1726, 1721, 1718, 1722, 1724, 1729, 1727, 1730,
- 1685, 1686, 1689, 1687, 1690, 1689, 1691, 1692, 1694, 1694,
- 1696, 1695, 1697, 1698, 1699, 1702, 1696, 1693, 1704, 1703,
- 1697, 1701, 1701, 1707, 1712, 1700, 1695, 1699, 1703, 1705,
- 1704, 1705, 1710, 1702, 1708, 1698, 1706, 1696, 0, 1697,
- 1698, 1699, 1702, 1706, 1709, 1704, 1703, 1708, 1711, 1707,
- 1707, 1712, 1718, 1709, 1710, 1713, 1705, 1714, 1717, 1710,
- 1711, 1708, 1715, 1706, 1714, 1716, 1717, 1719, 1718, 1720,
- 1716, 1709, 1723, 1721, 1725, 1711, 1724, 1720, 1713, 1718,
- 1727, 1724, 1713, 1726, 1714, 1717, 0, 0, 1715, 1715,
- 1719, 0, 1716, 1728, 1719, 1721, 1720, 1726, 1725, 1723,
+ 1731, 1734, 1728, 1719, 1735, 1723, 1734, 1730, 1721, 1723,
+ 1725, 1725, 1737, 1728, 1726, 1733, 1724, 1727, 1736, 1738,
+ 1729, 0, 1731, 1740, 1729, 1744, 1730, 1731, 1735, 1739,
+ 1738, 1735, 1736, 1734, 1737, 1743, 1740, 1743, 1739, 1737,
+ 1741, 1741, 1742, 1744, 1745, 1736, 1738, 1747, 1741, 1752,
+ 1740, 1746, 1744, 1748, 1747, 1742, 1739, 1749, 1750, 1753,
+ 0, 1754, 1743, 1758, 1749, 1755, 1756, 1741, 1741, 1742,
+ 1745, 1745, 1755, 1746, 1747, 1748, 1752, 1753, 1746, 1751,
+ 1748, 1757, 1750, 1754, 1749, 1750, 1753, 1751, 1754, 1759,
+ 1760, 1756, 1755, 1756, 1763, 1758, 1759, 1761, 1764, 0,
- 1721, 1725, 1727, 1729, 1728, 1730, 1732, 1727, 1724, 1733,
- 1726, 1733, 1729, 1731, 1731, 1736, 1734, 1737, 1730, 1732,
- 1728, 1731, 1735, 1738, 1737, 1742, 0, 1740, 1739, 1743,
- 1729, 1741, 1730, 1732, 1734, 1739, 1733, 1736, 1744, 1741,
- 1731, 1731, 1736, 1734, 1737, 1738, 1745, 1743, 1735, 1735,
- 1738, 1740, 1742, 1745, 1740, 1739, 1743, 1746, 1741, 1747,
- 1744, 1748, 1749, 1750, 1753, 1744, 0, 1754, 0, 1749,
- 1751, 1755, 1756, 1745, 1757, 0, 1763, 1753, 1760, 1755,
- 1756, 1747, 1746, 1758, 1746, 1761, 1747, 1762, 1775, 1749,
- 1762, 1753, 1751, 1748, 1754, 1750, 1757, 1751, 1755, 1756,
+ 0, 1765, 1766, 1757, 1767, 0, 1751, 1763, 1757, 1765,
+ 1766, 1768, 1770, 1771, 1772, 0, 1759, 1772, 1773, 1761,
+ 1774, 1763, 1760, 1775, 1761, 1764, 1767, 1778, 1765, 1766,
+ 1779, 1767, 1768, 1776, 1770, 1771, 1775, 1777, 1768, 1770,
+ 1771, 1772, 1776, 1780, 1773, 1773, 1774, 1774, 1781, 1777,
+ 1775, 1778, 1780, 0, 1778, 1782, 1779, 1779, 1784, 1785,
+ 1776, 1786, 1782, 1781, 1777, 1783, 1789, 0, 1783, 1791,
+ 1780, 1791, 1790, 1784, 1787, 1781, 1792, 1793, 1794, 1795,
+ 1783, 1794, 1782, 1786, 1789, 1784, 1796, 1797, 1786, 1783,
+ 1787, 1785, 1783, 1789, 1790, 1783, 1791, 1798, 1787, 1790,
- 1760, 1757, 1763, 1763, 1758, 1760, 1764, 1761, 1765, 1766,
- 1758, 1767, 1761, 1768, 1762, 1769, 1770, 1772, 1766, 1771,
- 1775, 1765, 0, 1767, 1772, 1770, 1783, 0, 1776, 1780,
- 1785, 1779, 1764, 1764, 1771, 1765, 1766, 1768, 1767, 1774,
- 1768, 1769, 1769, 1770, 1772, 1773, 1771, 1777, 1773, 1779,
- 1776, 1780, 1782, 1783, 1774, 1776, 1780, 1781, 1779, 1781,
- 1773, 1784, 1785, 1777, 1784, 1786, 1774, 1787, 1792, 1773,
- 1790, 1777, 1773, 1788, 1777, 1773, 1782, 1789, 0, 1782,
- 0, 1797, 1792, 1791, 1781, 1794, 0, 1773, 1784, 1787,
- 1777, 1795, 1793, 1794, 1787, 1792, 1796, 1786, 1795, 1788,
+ 1792, 1787, 1799, 1792, 1793, 1794, 1800, 1783, 1801, 1797,
+ 1803, 1795, 1802, 1804, 1797, 1805, 1807, 1787, 1796, 1803,
+ 1806, 1804, 1805, 1798, 1798, 1808, 1802, 1809, 1799, 1799,
+ 1801, 1810, 1811, 1813, 1814, 1801, 0, 1803, 1800, 1802,
+ 1804, 1812, 1805, 1815, 1806, 1812, 0, 1806, 1807, 1817,
+ 1818, 0, 0, 1810, 1816, 1813, 1817, 1808, 1810, 1809,
+ 1813, 1814, 1818, 1816, 1811, 1815, 1819, 1821, 1812, 1822,
+ 1815, 1820, 1823, 1824, 1821, 1819, 1817, 1818, 1825, 1820,
+ 1827, 1816, 1822, 1828, 1829, 1823, 1824, 1825, 1826, 1830,
+ 1826, 1832, 1829, 1819, 1821, 1836, 1822, 1833, 1820, 1823,
- 1788, 1793, 1790, 1789, 1789, 1791, 1798, 1799, 1800, 1801,
- 1791, 0, 1794, 1797, 0, 1803, 1804, 1802, 1795, 1793,
- 1796, 1802, 1806, 1796, 1805, 1807, 1810, 1809, 1808, 0,
- 1800, 1806, 1807, 0, 1810, 1800, 1809, 1803, 1798, 1799,
- 1808, 1801, 1803, 1804, 1802, 1812, 1805, 1813, 1814, 1806,
- 1811, 1805, 1807, 1810, 1809, 1808, 1815, 1811, 1812, 1817,
- 1813, 1814, 1816, 1818, 1816, 1815, 1822, 1820, 1819, 1823,
- 1825, 1824, 1812, 1826, 1813, 1814, 1819, 1811, 1829, 1834,
- 1826, 1822, 1817, 1815, 1823, 1824, 1817, 1820, 1818, 1816,
- 1818, 1829, 1827, 1822, 1820, 1819, 1823, 1828, 1824, 1830,
+ 1824, 1835, 1836, 1827, 1839, 1825, 1832, 1827, 1828, 1830,
+ 1828, 1829, 1833, 1834, 1837, 1826, 1830, 1839, 1832, 1838,
+ 1840, 1842, 1836, 1841, 1833, 1837, 1838, 1834, 1844, 1845,
+ 1846, 1839, 1850, 1835, 1848, 1888, 1845, 0, 1840, 1842,
+ 1834, 1837, 1849, 1847, 1840, 1850, 1838, 1840, 1842, 1841,
+ 1841, 1856, 1846, 1852, 1849, 1844, 1845, 1846, 1847, 1850,
+ 1848, 1848, 1852, 1851, 1853, 1840, 1851, 1888, 1854, 1849,
+ 1847, 1856, 1855, 0, 0, 1858, 0, 1865, 1856, 1854,
+ 1852, 1854, 1853, 1854, 1855, 1857, 1858, 1862, 1857, 1860,
+ 1851, 1853, 1854, 1864, 1860, 1854, 1862, 1866, 1863, 1855,
- 1826, 1831, 1825, 1827, 1828, 1829, 1834, 1832, 1835, 1836,
- 0, 1838, 1842, 1841, 1837, 1835, 1841, 1830, 1839, 1827,
- 1840, 1842, 0, 1830, 1828, 1832, 1830, 1831, 1831, 1837,
- 1839, 1836, 1843, 1840, 1832, 1835, 1836, 1838, 1838, 1842,
- 1841, 1837, 1844, 1846, 1830, 1839, 1845, 1840, 1852, 1847,
- 1843, 1848, 1847, 1844, 1855, 1844, 1850, 1852, 1845, 1843,
- 1854, 1850, 1848, 1846, 1856, 1859, 1844, 1847, 1850, 1844,
- 1846, 1857, 1853, 1845, 1853, 1852, 1847, 1861, 1848, 1847,
- 1844, 1855, 1844, 1850, 1854, 1858, 1857, 1854, 1850, 1859,
- 1860, 1856, 1859, 1862, 1858, 1863, 1864, 1866, 1857, 1853,
+ 1863, 1860, 1858, 1857, 1865, 1869, 1854, 1867, 1854, 1868,
+ 1854, 1870, 1857, 1872, 1862, 1857, 1860, 1864, 1868, 1871,
+ 1864, 1860, 1867, 1869, 1866, 1863, 1875, 1873, 1877, 1874,
+ 1880, 1871, 1869, 1876, 1867, 1870, 1868, 1874, 1870, 1878,
+ 1872, 1873, 0, 1876, 1883, 1879, 1871, 1882, 1875, 1889,
+ 1877, 1879, 1880, 1875, 1873, 1877, 1874, 1880, 1882, 1881,
+ 1876, 1884, 1883, 1878, 1887, 1885, 1878, 1881, 1885, 1884,
+ 1886, 1883, 1879, 1886, 1882, 1892, 1889, 1891, 1890, 1897,
+ 1894, 1893, 1887, 1885, 1891, 1895, 1881, 1903, 1884, 1892,
+ 1893, 1887, 1885, 1894, 1896, 1885, 1895, 1886, 1890, 1896,
- 1865, 1867, 1860, 1863, 1861, 1868, 1870, 1862, 1869, 1877,
- 1865, 1868, 1858, 1872, 1870, 1871, 1878, 1860, 1864, 1866,
- 1862, 1873, 1863, 1864, 1866, 1867, 1871, 1865, 1867, 1873,
- 1869, 1872, 1868, 1870, 1874, 1869, 1875, 1874, 1876, 1875,
- 1872, 1877, 1871, 1878, 1880, 1881, 1879, 1883, 1873, 1882,
- 1885, 1880, 1874, 1886, 1887, 1885, 1876, 1884, 1882, 1881,
- 1883, 1874, 1892, 1875, 1874, 1876, 1879, 1893, 1884, 1887,
- 0, 1880, 1881, 1879, 1883, 1886, 1882, 1890, 1891, 1890,
- 1886, 1887, 1885, 1895, 1884, 1894, 1901, 1891, 1892, 1892,
- 0, 1893, 0, 1896, 1893, 1897, 1894, 1896, 1899, 1898,
+ 1898, 1897, 1892, 1906, 1891, 1890, 1897, 1894, 1893, 1901,
+ 1902, 1901, 1895, 1903, 1903, 1898, 1904, 1905, 0, 1902,
+ 1907, 1906, 1913, 0, 1907, 1910, 1896, 1898, 1905, 1911,
+ 1906, 1908, 1909, 1912, 0, 1909, 1901, 1902, 1910, 1914,
+ 1904, 1920, 0, 1904, 1905, 1908, 1907, 1907, 1913, 1913,
+ 1909, 1907, 1910, 1911, 1920, 1912, 1911, 1908, 1908, 1909,
+ 1912, 1915, 1909, 1914, 1917, 1916, 1914, 1921, 1920, 1918,
+ 1915, 1916, 1908, 1917, 1918, 1922, 1923, 1924, 1925, 1921,
+ 1922, 1927, 1928, 1931, 1926, 1929, 1930, 1937, 1915, 1940,
+ 1924, 1917, 1916, 1926, 1921, 1932, 1936, 0, 1923, 1930,
- 0, 1895, 1898, 1900, 1890, 1891, 1902, 1903, 1901, 1897,
- 1895, 1899, 1894, 1901, 1904, 1909, 1914, 1898, 0, 1896,
- 1896, 1897, 1897, 1904, 1896, 1899, 1898, 1900, 1909, 1898,
- 1900, 1903, 1902, 1902, 1903, 1906, 1897, 1905, 1910, 1912,
- 1907, 1904, 1909, 1905, 1906, 1907, 1911, 1913, 1914, 1915,
- 1910, 1911, 1916, 1917, 1919, 1918, 1920, 1921, 1915, 1926,
- 1913, 1912, 1906, 1923, 1905, 1910, 1912, 1919, 1924, 1927,
- 1923, 1929, 1907, 1911, 1913, 1924, 1915, 1918, 1921, 1916,
- 1925, 1919, 1918, 1927, 1921, 1917, 1928, 1931, 1920, 1933,
- 1923, 1926, 1928, 1925, 1934, 1924, 1927, 1933, 1936, 0,
+ 0, 1918, 1922, 1923, 1924, 0, 1938, 1929, 1927, 1936,
+ 1925, 1926, 1929, 1930, 1928, 1931, 1932, 1934, 1935, 1937,
+ 1938, 1940, 1932, 1936, 1934, 1935, 1939, 1942, 1944, 1945,
+ 1946, 0, 1939, 1938, 1949, 0, 1944, 1945, 1946, 1947,
+ 1948, 1957, 1951, 1958, 1934, 1935, 1942, 0, 0, 1950,
+ 1939, 1952, 1949, 1939, 1942, 1944, 1945, 1946, 1947, 1939,
+ 1951, 1949, 1948, 1950, 1953, 1952, 1947, 1948, 1954, 1951,
+ 1956, 1955, 1959, 1957, 1960, 1958, 1950, 1953, 1952, 1961,
+ 1962, 1954, 1964, 1965, 1963, 1956, 1966, 1962, 1960, 1967,
+ 1964, 1953, 1955, 1963, 0, 1954, 1959, 1956, 1955, 1959,
- 1935, 1937, 1934, 1929, 1938, 0, 1931, 1925, 1935, 1944,
- 1928, 1940, 1939, 1928, 1931, 0, 1933, 1936, 1941, 1928,
- 1942, 1934, 1938, 1937, 1943, 1936, 1939, 1935, 1937, 1940,
- 1944, 1938, 1941, 1942, 1945, 1946, 1944, 1943, 1940, 1939,
- 1955, 1947, 1948, 1949, 1952, 1941, 1950, 1942, 1953, 1951,
- 1954, 1943, 1952, 1950, 1956, 1960, 1948, 1944, 1951, 1956,
- 0, 1962, 0, 1957, 1954, 1947, 1945, 1946, 1947, 1948,
- 1949, 1952, 1955, 1950, 1957, 1953, 1951, 1954, 1958, 1961,
- 1963, 1956, 1960, 1967, 1962, 1964, 1961, 1958, 1962, 1965,
- 1957, 1966, 1964, 1968, 1977, 0, 1973, 1968, 1970, 1972,
+ 1966, 1960, 1972, 1968, 1969, 1970, 1961, 1962, 1968, 1964,
+ 1965, 1963, 1974, 1966, 1970, 1969, 1973, 1976, 1975, 1955,
+ 1977, 1967, 0, 1973, 1976, 1982, 1978, 1986, 1979, 1972,
+ 1968, 1969, 1970, 1980, 1984, 1974, 1982, 1980, 1985, 1974,
+ 1975, 1989, 1977, 1973, 1976, 1975, 1979, 1977, 1978, 1982,
+ 1984, 1986, 1982, 1978, 1986, 1979, 1985, 1987, 1988, 1990,
+ 1980, 1984, 1991, 1982, 1993, 1985, 1992, 1990, 1989, 1995,
+ 1988, 0, 1987, 1994, 1992, 1997, 0, 1991, 1996, 1998,
+ 2001, 2000, 1995, 0, 1987, 1988, 1990, 2001, 1999, 1991,
+ 1997, 1993, 2005, 1992, 0, 1994, 1995, 2000, 1996, 1998,
- 1974, 1967, 1963, 0, 1975, 1958, 1961, 1963, 1981, 1970,
- 1967, 1965, 1964, 1966, 1973, 1972, 1965, 1976, 1966, 1975,
- 1968, 1977, 1970, 1973, 1974, 1970, 1972, 1974, 1979, 1976,
- 1978, 1975, 1980, 1983, 1982, 1981, 1970, 1985, 1978, 1987,
- 1980, 1989, 1984, 1979, 1976, 1986, 1983, 1988, 1989, 1993,
- 1991, 0, 1985, 1997, 1987, 1979, 1982, 1978, 1991, 1980,
- 1983, 1982, 1984, 1988, 1985, 1986, 1987, 1994, 1989, 1984,
- 1995, 1992, 1986, 2003, 1988, 1996, 1998, 1991, 1992, 1995,
- 1997, 1993, 1994, 1999, 2000, 2002, 2005, 2004, 2007, 2008,
- 1999, 2011, 2010, 0, 1994, 2006, 1996, 1995, 1992, 2004,
+ 1994, 2003, 1997, 1999, 2004, 1996, 1998, 2001, 2000, 2003,
+ 2006, 2004, 2007, 2008, 2009, 1999, 2011, 2012, 2010, 2015,
+ 2016, 2007, 2018, 2011, 2005, 2006, 2014, 2019, 2003, 2020,
+ 2022, 2004, 2016, 2018, 2008, 2021, 2017, 2006, 0, 2007,
+ 2008, 2009, 2010, 2011, 2012, 2010, 2023, 2016, 2014, 2018,
+ 2021, 2015, 2028, 2014, 2017, 2022, 2020, 2022, 2024, 2019,
+ 2026, 2025, 2021, 2017, 2029, 2024, 2025, 2027, 2031, 2026,
+ 2023, 2030, 2032, 2023, 2028, 2033, 2027, 0, 2034, 2028,
+ 2040, 0, 0, 2031, 2032, 2024, 2029, 2026, 2025, 2030,
+ 2035, 2029, 2038, 2041, 2027, 2031, 0, 2033, 2030, 2032,
- 1998, 0, 1996, 1998, 2005, 2003, 2006, 2002, 2009, 2029,
- 1999, 2000, 2002, 2005, 2004, 2011, 2008, 2010, 2011, 2010,
- 2007, 2012, 2006, 2009, 2013, 2014, 0, 2015, 2012, 2013,
- 2019, 2016, 2018, 2017, 2014, 2009, 2015, 2020, 0, 2021,
- 2022, 2029, 0, 0, 2028, 2019, 2026, 0, 2012, 2020,
- 2018, 2013, 2014, 2016, 2015, 2017, 2023, 2019, 2016, 2018,
- 2017, 2021, 2022, 2024, 2020, 2025, 2021, 2022, 2026, 2023,
- 2024, 2028, 2025, 2026, 2023, 2030, 2027, 2033, 2032, 2040,
- 2035, 2030, 0, 2023, 2037, 2033, 2034, 2025, 2027, 2032,
- 2024, 2035, 2025, 2036, 2034, 2038, 2023, 2038, 2041, 2025,
+ 2034, 0, 2033, 2035, 2036, 2034, 2037, 2040, 2035, 2039,
+ 2042, 2036, 2044, 2037, 2038, 2048, 2042, 2035, 2045, 2038,
+ 2052, 2039, 2048, 2044, 2046, 2041, 2045, 2047, 2037, 2051,
+ 2035, 2036, 2046, 2037, 2049, 2053, 2039, 2042, 2047, 2044,
+ 2037, 2054, 2048, 2055, 2050, 2045, 2050, 2052, 2054, 2056,
+ 2060, 2046, 2057, 2062, 2047, 2051, 2051, 2050, 2057, 2049,
+ 2058, 2049, 2053, 2059, 2065, 2061, 2058, 2063, 2054, 2059,
+ 2055, 2050, 2066, 2050, 2067, 2056, 2056, 2060, 2068, 2057,
+ 2069, 2066, 2068, 2073, 0, 2062, 2070, 2058, 2061, 2075,
+ 2059, 2063, 2061, 2071, 2063, 2071, 2065, 2072, 2069, 2066,
- 2036, 2039, 2030, 2027, 2033, 2032, 2040, 2035, 2038, 2037,
- 2042, 2037, 2043, 2034, 2044, 2045, 2048, 2042, 0, 2050,
- 2036, 2045, 2038, 2046, 2038, 2041, 2047, 2039, 2039, 2046,
- 2053, 2049, 2047, 2051, 2055, 0, 2054, 2042, 2057, 2043,
- 2044, 2044, 2045, 2048, 2056, 2054, 2058, 2059, 2056, 2059,
- 2046, 2050, 2060, 2047, 2049, 2061, 2057, 2051, 2049, 2063,
- 2051, 2064, 2053, 2054, 2069, 2057, 2055, 2067, 2058, 2066,
- 2062, 2056, 2065, 2058, 2059, 2066, 2060, 2062, 2068, 2060,
- 2070, 2063, 2061, 2071, 2065, 2073, 2063, 2076, 2064, 2067,
- 2069, 2069, 2073, 0, 2067, 2074, 2066, 2062, 2079, 2065,
+ 2076, 2079, 2074, 2077, 2080, 2068, 2067, 2069, 2070, 2074,
+ 2073, 2075, 2078, 2070, 2081, 2077, 2075, 0, 2078, 2083,
+ 2071, 2072, 2082, 2079, 2072, 2085, 2080, 2076, 2079, 2074,
+ 2077, 2080, 2085, 2091, 2086, 2084, 2084, 2084, 2087, 2078,
+ 2081, 2081, 2084, 2086, 2082, 2087, 2088, 2089, 2090, 2082,
+ 2084, 2083, 2085, 2091, 2089, 2090, 2096, 2092, 2099, 2095,
+ 2091, 2086, 2084, 2084, 2084, 2087, 2094, 2097, 2096, 2084,
+ 2099, 2094, 2095, 2098, 2089, 2090, 2100, 2101, 2088, 2092,
+ 2102, 0, 2104, 2096, 2092, 2099, 2095, 2102, 2103, 2098,
+ 2104, 2107, 2097, 2105, 2097, 2101, 2106, 2107, 2094, 2108,
- 2068, 2075, 2070, 2088, 2074, 2068, 2077, 2070, 2075, 2072,
- 2072, 2072, 2073, 2077, 2078, 2071, 2072, 2080, 2079, 2076,
- 2084, 2078, 2074, 2085, 2072, 2079, 2082, 2083, 2075, 2086,
- 2087, 2082, 2084, 2077, 2089, 2088, 2072, 2072, 2072, 2080,
- 2083, 2078, 2087, 2072, 2080, 2086, 2090, 2084, 2085, 2091,
- 2085, 2092, 2089, 2090, 2083, 2093, 2086, 2087, 2082, 2092,
- 2094, 2089, 2091, 2095, 2093, 2097, 2094, 2096, 2096, 2099,
- 2098, 2113, 2100, 2090, 2099, 2101, 2091, 2098, 2092, 2102,
- 2106, 2103, 2093, 2107, 2109, 2107, 2108, 2094, 2103, 2112,
- 2095, 2097, 2097, 2115, 2096, 2112, 2099, 2098, 2100, 2100,
+ 2098, 2103, 2105, 2110, 2101, 2106, 2111, 2102, 2100, 2104,
+ 2109, 2109, 2112, 2111, 2113, 2103, 2114, 2112, 2107, 2115,
+ 2105, 2116, 2119, 2106, 2121, 2120, 2108, 2120, 2116, 2110,
+ 2110, 2123, 2122, 2111, 2127, 2125, 2126, 2109, 2128, 2112,
+ 2113, 2113, 2126, 2114, 2128, 2132, 2115, 2121, 2116, 2119,
+ 2122, 2121, 2120, 2125, 2131, 2133, 2129, 2130, 2123, 2122,
+ 2135, 2133, 2125, 2126, 2129, 2128, 2127, 2131, 2130, 2138,
+ 2136, 2139, 2132, 2134, 2137, 2137, 2140, 2140, 2141, 2143,
+ 2135, 2131, 2133, 2129, 2130, 2134, 2144, 2135, 2136, 2141,
+ 2145, 2148, 2146, 2149, 2147, 2138, 2138, 2136, 2139, 2146,
- 2111, 2115, 2101, 2113, 2108, 2118, 2102, 2106, 2103, 2114,
- 2107, 2109, 2116, 2108, 2120, 2114, 2112, 2117, 2111, 2119,
- 2115, 2125, 2121, 2116, 2124, 2119, 2120, 2111, 0, 2122,
- 2117, 2129, 2118, 2123, 2123, 2130, 2114, 2126, 2126, 2116,
- 2131, 2120, 2121, 2127, 2117, 2134, 2119, 2122, 2125, 2121,
- 2124, 2124, 2132, 2133, 2127, 2138, 2122, 2130, 2135, 2132,
- 2123, 2137, 2130, 2129, 2126, 2139, 2141, 2140, 2143, 2137,
- 2127, 0, 2131, 2133, 2142, 2143, 2145, 2134, 2147, 2132,
- 2133, 2146, 2144, 2135, 2141, 2135, 2142, 2138, 2137, 2140,
- 2144, 2150, 2139, 2141, 2140, 2143, 2146, 2148, 2149, 2149,
+ 2134, 2137, 2151, 2140, 2152, 2141, 2153, 0, 2144, 0,
+ 2151, 2143, 2154, 2144, 2147, 2156, 2159, 2155, 2149, 2146,
+ 2149, 2147, 2145, 2148, 2157, 2161, 2160, 2156, 2162, 2151,
+ 2158, 2157, 2164, 2153, 2154, 2155, 2152, 2162, 2158, 2154,
+ 2159, 2160, 2156, 2159, 2155, 2163, 2163, 2165, 2167, 2161,
+ 2168, 2157, 2161, 2160, 2166, 2162, 2169, 2158, 2164, 2164,
+ 2170, 2166, 2171, 2172, 0, 2168, 2175, 2178, 2173, 2171,
+ 2165, 2176, 2163, 2175, 2165, 2172, 2176, 2168, 2177, 2180,
+ 2167, 2166, 2169, 2169, 2173, 2179, 2184, 2180, 2179, 2171,
+ 2172, 2173, 2170, 2175, 2178, 2173, 2181, 2186, 2176, 2183,
- 2145, 2142, 2147, 2145, 2151, 2147, 2148, 2152, 2146, 2144,
- 2153, 2154, 2156, 2155, 2152, 0, 2157, 2150, 2150, 2163,
- 2158, 2161, 2164, 2157, 2148, 2149, 2154, 2151, 2161, 2159,
- 2162, 2151, 2158, 2165, 2152, 2162, 2165, 2173, 2154, 2155,
- 2155, 2163, 2153, 2157, 2156, 2159, 2163, 2158, 2161, 2164,
- 2166, 2167, 2159, 2169, 2172, 2173, 2159, 2162, 2166, 2170,
- 2165, 2169, 2171, 2167, 2173, 2174, 2175, 2176, 2178, 2177,
- 2179, 2181, 2159, 0, 2177, 2172, 2179, 2166, 2167, 2181,
- 2169, 2172, 2170, 2182, 2175, 2177, 2170, 2180, 2171, 2171,
- 2176, 2186, 2174, 2175, 2176, 2178, 2177, 2179, 2181, 2183,
+ 2177, 2185, 2187, 2188, 2189, 2177, 2180, 2183, 2181, 2184,
+ 2190, 2173, 2179, 2184, 2192, 0, 2191, 0, 2186, 2193,
+ 2187, 2191, 2189, 2181, 2186, 2193, 2183, 2185, 2185, 2187,
+ 2188, 2189, 2191, 2190, 2194, 2196, 2195, 2190, 2197, 2200,
+ 2202, 2192, 2198, 2191, 2195, 2197, 2193, 2194, 2191, 2198,
+ 2201, 2199, 2202, 2203, 2204, 2205, 2207, 2196, 2199, 2201,
+ 2206, 2194, 2196, 2195, 2210, 2197, 2209, 2202, 2204, 2198,
+ 2213, 2200, 2210, 2214, 2218, 2203, 2216, 2201, 2199, 2207,
+ 2203, 2204, 2205, 2207, 2209, 2211, 2206, 2206, 2212, 2217,
+ 2211, 2210, 2213, 2209, 2217, 2212, 2220, 2213, 2221, 2221,
- 2180, 2177, 2184, 2187, 2185, 2182, 2183, 2188, 0, 2184,
- 2182, 2185, 2187, 2189, 2180, 2191, 0, 2192, 2190, 2188,
- 0, 2195, 2196, 2186, 2193, 2199, 2183, 2196, 2198, 2184,
- 2187, 2185, 2190, 2201, 2188, 2189, 2202, 2203, 2196, 2195,
- 2189, 2202, 2191, 2192, 2192, 2190, 2197, 2193, 2195, 2196,
- 2198, 2193, 2199, 2197, 2196, 2198, 2205, 2206, 2206, 2207,
- 2201, 2209, 2208, 2211, 2212, 2213, 2216, 2219, 2202, 2203,
- 2214, 2218, 2215, 2197, 2215, 2221, 0, 2208, 2211, 2219,
- 2213, 2207, 2220, 0, 2206, 2224, 2207, 2212, 2205, 2208,
- 2211, 2212, 2213, 2209, 2219, 2217, 2214, 2214, 2216, 2215,
+ 2214, 2211, 2222, 2216, 2223, 2224, 2218, 2226, 2228, 2227,
+ 2231, 2233, 2211, 2229, 2230, 2212, 2230, 2211, 2234, 2223,
+ 2236, 2217, 2226, 2228, 2222, 2221, 2235, 0, 2220, 2222,
+ 2234, 2223, 2227, 2232, 2226, 2228, 2227, 2224, 2232, 2229,
+ 2229, 2230, 2231, 2233, 2237, 2234, 2239, 2236, 2235, 2238,
+ 2240, 2242, 2237, 2235, 2243, 2246, 2238, 2244, 2249, 2247,
+ 2232, 2248, 2243, 2250, 2251, 2240, 2242, 2252, 2239, 2255,
+ 0, 2237, 0, 2239, 0, 2256, 2238, 2240, 2242, 2244,
+ 2253, 2243, 2246, 2247, 2244, 2249, 2247, 2248, 2248, 2250,
+ 2250, 2251, 2253, 2254, 2257, 2259, 2256, 2258, 0, 2252,
- 2217, 2223, 2221, 2218, 2220, 2222, 2225, 2224, 2223, 2220,
- 2227, 2228, 2224, 2222, 2229, 2231, 2232, 0, 2233, 2228,
- 2234, 2225, 2217, 2235, 2236, 2227, 2237, 2238, 2223, 2240,
- 2242, 0, 2222, 2225, 0, 2241, 2229, 2227, 2228, 2238,
- 2232, 2229, 2231, 2232, 2233, 2233, 2239, 2234, 2243, 2235,
- 2235, 2236, 2242, 2239, 2238, 0, 2241, 2242, 2237, 2244,
- 2246, 2240, 2241, 2247, 2249, 2251, 2250, 2253, 2247, 2243,
- 2252, 2251, 2254, 2239, 2259, 2243, 0, 2244, 0, 2253,
- 2258, 2256, 2246, 2264, 2261, 2252, 2244, 2246, 2249, 2250,
- 2257, 2249, 2251, 2250, 2253, 2247, 2256, 2252, 2254, 2254,
+ 2254, 2255, 2256, 2261, 2262, 2264, 2266, 2253, 2265, 2262,
+ 2274, 2267, 2266, 2259, 2269, 2268, 2257, 2273, 2258, 2271,
+ 2254, 2257, 2259, 2279, 2258, 2261, 2267, 2268, 2272, 2264,
+ 2261, 2265, 2264, 2266, 2271, 2265, 2262, 2274, 2267, 2273,
+ 2269, 2269, 2268, 2272, 2273, 2275, 2271, 2276, 2277, 2278,
+ 2279, 2280, 2282, 2281, 2283, 2272, 2284, 2287, 2280, 2285,
+ 0, 2282, 2283, 2275, 0, 2286, 2289, 2315, 2288, 2276,
+ 2277, 2281, 2275, 2278, 2276, 2277, 2278, 2288, 2280, 2282,
+ 2281, 2283, 2285, 2291, 2289, 2290, 2285, 2286, 2284, 2287,
+ 2293, 2294, 2286, 2289, 2290, 2288, 2291, 2295, 2297, 2315,
- 2260, 2259, 2258, 2262, 2263, 2257, 2261, 2258, 2256, 2265,
- 2264, 2261, 2267, 2269, 2266, 2268, 2265, 2257, 2260, 2272,
- 2270, 2267, 2271, 2268, 0, 2262, 2273, 2260, 2263, 2275,
- 2262, 2263, 2266, 2276, 2274, 2273, 2265, 2278, 2275, 2267,
- 2280, 2266, 2268, 2270, 2271, 2269, 2276, 2270, 2278, 2271,
- 2279, 2272, 2274, 2273, 2281, 2282, 2275, 2283, 2280, 2279,
- 2276, 2274, 2282, 2278, 2278, 2285, 2287, 2280, 2284, 2291,
- 2286, 2288, 2281, 0, 2299, 2278, 2286, 2279, 2293, 2294,
- 2285, 2281, 2282, 2283, 2283, 2288, 2284, 2299, 2287, 2295,
- 2294, 2298, 2285, 2287, 2302, 2284, 2291, 2286, 2288, 2296,
+ 2294, 2293, 2296, 0, 2298, 2297, 2300, 2301, 2299, 0,
+ 2291, 2306, 2290, 2301, 2302, 2295, 2293, 2293, 2294, 2308,
+ 2296, 2300, 2317, 2303, 2295, 2297, 2299, 2313, 2293, 2296,
+ 2298, 2298, 2314, 2300, 2301, 2299, 2302, 2303, 2306, 2313,
+ 2309, 2302, 2310, 2308, 2311, 2314, 2308, 2316, 2317, 2317,
+ 2303, 2309, 2318, 2310, 2313, 2311, 2321, 2316, 2322, 2314,
+ 2319, 2320, 2323, 2325, 2328, 2321, 2326, 2309, 2328, 2310,
+ 0, 2311, 2330, 2319, 2316, 2329, 0, 2318, 2332, 2318,
+ 0, 2323, 2320, 2321, 2331, 2322, 2335, 2319, 2320, 2323,
+ 2325, 2328, 2326, 2326, 2333, 2337, 2329, 2331, 2332, 2333,
- 2295, 2299, 2293, 2298, 2300, 2293, 2294, 2301, 2303, 0,
- 2296, 2304, 2307, 2315, 2306, 2310, 2295, 2301, 2298, 2305,
- 2302, 2302, 2311, 2306, 2304, 2308, 2296, 2313, 0, 2314,
- 2316, 2313, 2318, 2303, 2301, 2303, 2300, 2318, 2304, 2307,
- 2305, 2306, 2310, 2316, 2308, 2315, 2305, 2317, 2311, 2311,
- 2314, 2319, 2308, 2320, 2313, 2321, 2314, 2316, 2319, 2318,
- 2322, 2323, 2324, 2321, 2327, 2327, 2322, 2317, 2328, 2326,
- 2330, 2325, 0, 2329, 2317, 2330, 2323, 2324, 2319, 2320,
- 2320, 2321, 2321, 2325, 2326, 2329, 2328, 2322, 2323, 2324,
- 2321, 2327, 2334, 2331, 2364, 2328, 2326, 2331, 2325, 2334,
+ 2334, 2337, 2329, 2338, 2330, 2332, 2336, 2334, 2339, 2341,
+ 2345, 2331, 2335, 2335, 2336, 2345, 2340, 0, 2338, 2342,
+ 2342, 2333, 2337, 2339, 2341, 2344, 2343, 2334, 2340, 0,
+ 2338, 2352, 2336, 2336, 2346, 2339, 2341, 2344, 2346, 0,
+ 2351, 2336, 2345, 2340, 2343, 0, 2342, 2347, 2347, 2349,
+ 2350, 2347, 2344, 2343, 2350, 2351, 2349, 2353, 2352, 2355,
+ 2356, 2346, 2354, 2358, 2347, 0, 2353, 2351, 2357, 2354,
+ 2363, 2360, 2347, 2359, 2347, 2347, 2349, 2350, 2347, 2360,
+ 2364, 2361, 2356, 2355, 2353, 2359, 2355, 2356, 2361, 2354,
+ 2358, 2347, 2363, 2365, 2357, 2357, 2366, 2363, 2360, 2367,
- 2329, 2336, 2330, 2335, 2332, 2332, 2337, 2335, 2332, 2338,
- 2339, 0, 2341, 2343, 2340, 2344, 2336, 2339, 2338, 2334,
- 2331, 2332, 0, 2342, 0, 2347, 2364, 2344, 2336, 2332,
- 2335, 2332, 2332, 2337, 2341, 2332, 2338, 2339, 2340, 2341,
- 2343, 2340, 2344, 2348, 2345, 2349, 2351, 2347, 2332, 2342,
- 2342, 2345, 2347, 2350, 2349, 2356, 2354, 0, 2357, 2360,
- 0, 2361, 2359, 0, 2356, 2369, 2351, 2362, 2348, 2361,
- 2348, 2345, 2349, 2351, 2354, 2350, 2357, 2359, 2367, 2362,
- 2350, 2372, 2356, 2354, 2360, 2357, 2360, 2368, 2361, 2359,
- 2363, 2365, 2369, 2371, 2362, 2370, 2370, 2363, 2365, 2374,
+ 2359, 2372, 2365, 2370, 2373, 2364, 2374, 2364, 2361, 2377,
+ 2372, 2381, 2376, 2379, 2378, 0, 0, 0, 2366, 2367,
+ 2365, 2370, 2378, 2366, 2374, 2379, 2367, 2376, 2372, 2384,
+ 2370, 2373, 2385, 2374, 2377, 2380, 2377, 2382, 2386, 2376,
+ 2379, 2378, 2380, 2381, 2382, 2385, 2387, 2387, 2388, 2389,
+ 2391, 2393, 0, 0, 2384, 2396, 2384, 2392, 2394, 2385,
+ 2393, 2395, 2380, 2401, 2382, 2386, 2398, 2394, 2395, 2397,
+ 2388, 2399, 2391, 2387, 2389, 2388, 2389, 2391, 2393, 2392,
+ 2398, 2411, 2401, 2406, 2392, 2394, 2399, 2396, 2395, 2400,
+ 2401, 2397, 2403, 2398, 2400, 2404, 2397, 2405, 2399, 2407,
- 2368, 2375, 2376, 2367, 2377, 2367, 2372, 2379, 2372, 2378,
- 2380, 2376, 0, 2377, 2368, 2371, 2378, 2363, 2365, 2381,
- 2371, 2374, 2370, 2375, 2384, 2382, 2374, 2394, 2375, 2376,
- 2383, 2377, 2380, 2381, 2386, 2383, 2378, 2380, 2388, 2379,
- 2382, 2387, 2386, 2384, 2389, 2392, 2381, 2390, 2391, 2393,
- 0, 2384, 2382, 2388, 2387, 2395, 2393, 2392, 2396, 2394,
- 2397, 2386, 2383, 2398, 2391, 2388, 2400, 2401, 2387, 2399,
- 2403, 2389, 2392, 2390, 2390, 2391, 2393, 2395, 2399, 2404,
- 2408, 2402, 2395, 2396, 2405, 2396, 2406, 2407, 0, 2402,
- 0, 0, 2397, 0, 2404, 2398, 2399, 2403, 2400, 2401,
+ 2403, 2408, 2409, 2414, 2410, 2412, 2415, 0, 2404, 2413,
+ 2406, 2410, 2405, 2411, 2409, 2417, 2418, 2408, 2420, 2403,
+ 0, 2400, 2404, 2422, 2405, 2407, 2407, 2412, 2408, 2409,
+ 2416, 2410, 2412, 2419, 2413, 2414, 2413, 2423, 2415, 2416,
+ 2421, 2419, 2426, 2424, 2425, 2420, 0, 2417, 2418, 2422,
+ 2422, 2426, 2419, 2428, 2430, 2421, 2429, 2416, 2433, 2429,
+ 2419, 2424, 0, 2423, 2423, 2439, 2425, 2421, 2419, 2426,
+ 2424, 2425, 2431, 2433, 2429, 2434, 2428, 2432, 2431, 2430,
+ 2428, 2430, 2432, 2429, 2437, 2433, 2429, 2439, 2435, 2438,
+ 2440, 2442, 2439, 2434, 2443, 2445, 2444, 2449, 2437, 2431,
- 2402, 2411, 2408, 0, 2413, 2407, 2404, 2408, 2402, 2409,
- 2405, 2405, 2406, 2406, 2407, 2414, 2402, 2412, 2409, 2416,
- 2412, 2414, 2415, 2417, 2411, 2418, 2422, 2415, 2411, 2413,
- 2421, 2413, 2428, 2423, 2416, 2412, 2409, 2420, 0, 0,
- 2418, 2417, 2414, 2427, 2412, 2421, 2416, 2412, 2422, 2425,
- 2417, 2420, 2418, 2422, 2415, 2423, 2426, 2421, 2429, 2428,
- 2423, 2427, 2430, 2425, 2420, 2431, 2432, 2429, 2426, 2434,
- 2427, 2430, 2435, 2438, 2431, 2426, 2425, 2432, 2433, 2436,
- 2433, 2441, 2434, 2426, 2435, 2429, 0, 2439, 2438, 2430,
- 2440, 2442, 2431, 2432, 2443, 2426, 2434, 2440, 2444, 2435,
+ 0, 2446, 2434, 2435, 2438, 2442, 2443, 0, 2449, 2432,
+ 2446, 2437, 2440, 2443, 2444, 2435, 2438, 2440, 2442, 2452,
+ 2447, 2443, 2445, 2444, 2449, 2448, 2451, 2453, 2446, 2447,
+ 2450, 2452, 2450, 2443, 2448, 2455, 2456, 2457, 2458, 2451,
+ 0, 2461, 0, 0, 2457, 2459, 2452, 2447, 2460, 2453,
+ 2455, 2456, 2448, 2451, 2453, 2467, 0, 2450, 2465, 2461,
+ 2462, 2473, 2455, 2456, 2457, 2458, 2469, 2459, 2461, 2462,
+ 2460, 2465, 2459, 2468, 2470, 2460, 2467, 2468, 2469, 2465,
+ 0, 2472, 2467, 2470, 2471, 2465, 2471, 2462, 2473, 2474,
+ 2475, 2478, 0, 2469, 2476, 2480, 2477, 2479, 2465, 2472,
- 2438, 2436, 2439, 2441, 0, 2433, 2436, 2444, 2441, 2447,
- 2449, 2450, 2443, 2442, 2439, 2450, 2451, 2440, 2442, 2455,
- 2452, 2443, 2447, 2454, 2453, 2444, 2453, 2456, 2451, 2452,
- 2447, 2449, 2457, 2458, 2460, 0, 2447, 2449, 2450, 0,
- 2459, 2454, 2458, 2451, 2461, 2456, 2455, 2452, 2459, 2447,
- 2454, 2453, 2463, 2467, 2456, 2462, 2464, 2460, 2470, 2457,
- 2458, 2460, 2466, 2464, 2463, 2471, 2461, 2459, 2468, 2462,
- 2466, 2461, 2469, 2468, 2472, 2474, 2481, 2469, 2490, 2463,
- 2475, 2477, 2462, 2464, 2480, 2467, 2484, 2475, 2477, 2466,
- 2470, 2482, 2479, 2480, 2474, 2468, 2479, 2471, 2472, 2485,
+ 2468, 2470, 2484, 2476, 2477, 2482, 2485, 2474, 2472, 2480,
+ 2484, 2471, 2482, 2481, 2478, 2486, 2474, 2475, 2478, 2479,
+ 2486, 2476, 2480, 2477, 2479, 2481, 2487, 2488, 2489, 2484,
+ 2490, 2487, 2482, 0, 2492, 2497, 2493, 2495, 2485, 2497,
+ 2481, 2498, 2486, 2493, 2495, 2499, 2502, 2505, 2501, 0,
+ 2498, 2500, 2504, 2492, 2490, 2503, 2505, 2490, 2487, 2488,
+ 2489, 2492, 2497, 2493, 2495, 2500, 2501, 2504, 2498, 2506,
+ 2508, 2509, 2499, 2502, 2505, 2501, 2500, 2500, 2500, 2504,
+ 2510, 2503, 2503, 2509, 2511, 2512, 2514, 2510, 2513, 2516,
+ 2506, 0, 2500, 2518, 2512, 2515, 2506, 2519, 2509, 0,
- 2486, 2472, 2474, 2481, 2469, 2482, 2483, 2475, 2477, 2488,
- 2490, 2480, 2487, 2484, 2494, 2486, 2482, 2482, 2482, 2479,
- 2493, 2487, 2491, 2494, 2483, 2485, 2485, 2486, 2492, 2496,
- 2488, 2495, 2482, 2483, 2491, 2492, 2488, 2497, 2498, 2487,
- 2500, 2494, 2493, 2482, 2501, 2502, 2503, 2493, 2505, 2491,
- 2505, 2501, 2506, 2503, 2508, 2492, 2496, 2495, 2495, 2497,
- 2509, 2507, 2510, 2500, 2497, 2507, 2508, 2500, 2502, 2509,
- 2498, 2501, 2502, 2503, 2506, 2505, 2511, 2514, 2516, 2506,
- 2512, 2508, 0, 2513, 2510, 2511, 2517, 2509, 2507, 2510,
- 2513, 2512, 2515, 2519, 2518, 2521, 2521, 2515, 2528, 2514,
+ 2520, 2521, 2508, 2500, 2519, 0, 2511, 2510, 2521, 2527,
+ 2524, 2511, 2512, 2514, 2513, 2513, 2518, 2515, 2527, 2528,
+ 2518, 2516, 2515, 2520, 2519, 2529, 2525, 2520, 2521, 2523,
+ 2525, 2523, 2524, 2526, 2529, 2531, 2527, 2524, 2530, 2532,
+ 2534, 2528, 2531, 2533, 0, 2526, 2528, 2536, 2533, 2530,
+ 2535, 0, 2529, 2525, 2537, 2538, 2523, 2539, 2539, 2536,
+ 2526, 2532, 2531, 2540, 2538, 2530, 2532, 2534, 2541, 2543,
+ 2533, 2542, 2540, 2535, 2536, 2544, 2537, 2535, 2545, 2542,
+ 2546, 2537, 2538, 2541, 2539, 2548, 2549, 2545, 0, 2544,
+ 2540, 2543, 2550, 2551, 2549, 2541, 2543, 2558, 2542, 2552,
- 2526, 2523, 2520, 2511, 2514, 2516, 2518, 2512, 2522, 2517,
- 2513, 2520, 2525, 2517, 2526, 2519, 2523, 2522, 2524, 2515,
- 2519, 2518, 2521, 2527, 2530, 2528, 2524, 2526, 2523, 2520,
- 2531, 0, 2527, 2532, 2525, 2522, 2533, 2535, 2531, 2525,
- 2535, 2532, 2534, 2530, 2533, 2524, 2534, 2536, 2537, 2540,
- 2527, 2530, 2538, 2539, 2537, 2536, 2542, 2531, 2541, 2539,
- 2532, 0, 2551, 2533, 2535, 2544, 2548, 2538, 2546, 2534,
- 2547, 2549, 2552, 0, 2536, 2537, 2541, 2544, 2553, 2538,
- 2539, 2540, 2546, 2547, 2550, 2541, 2554, 2548, 2542, 2551,
- 2556, 2550, 2544, 2548, 2552, 2546, 2549, 2547, 2549, 2552,
+ 2550, 2551, 2544, 2552, 2548, 2545, 2553, 2546, 2554, 2553,
+ 2556, 2555, 2548, 2549, 2559, 2557, 2554, 2555, 2560, 2550,
+ 2551, 2557, 2562, 0, 2566, 2556, 2552, 2565, 2567, 2558,
+ 2564, 2569, 2559, 2553, 2562, 2554, 2568, 2556, 2555, 2570,
+ 2565, 2559, 2557, 2568, 2564, 2566, 2571, 2574, 2572, 2562,
+ 2560, 2566, 2577, 2567, 2565, 2567, 2573, 2564, 2569, 2573,
+ 2574, 2570, 2572, 2568, 2575, 2578, 2570, 2576, 2579, 2580,
+ 2571, 2582, 2581, 2571, 2574, 2572, 0, 2583, 2575, 2577,
+ 2583, 2580, 2585, 2573, 2581, 2582, 2586, 2590, 2587, 2591,
+ 2578, 2575, 2578, 2576, 2576, 2579, 2580, 2588, 2582, 2581,
- 2554, 2555, 2553, 2556, 2555, 2553, 2557, 0, 2558, 2559,
- 0, 2550, 2560, 2554, 2561, 2562, 2567, 2556, 2563, 2569,
- 2557, 0, 2565, 2572, 2564, 2565, 2573, 2562, 2555, 2568,
- 2563, 2569, 2570, 2557, 2558, 2558, 2559, 2560, 2564, 2560,
- 0, 2561, 2562, 2567, 2571, 2563, 2569, 2571, 2565, 2565,
- 2572, 2564, 2565, 2573, 2574, 2568, 2568, 2576, 2570, 2570,
- 2577, 2578, 2571, 2579, 2583, 2584, 2580, 2577, 2578, 2582,
- 2586, 2571, 2588, 2587, 2571, 2591, 2574, 2585, 2579, 2576,
- 2580, 2574, 2587, 2582, 2576, 2585, 2589, 2577, 2578, 2590,
- 2579, 2583, 2584, 2580, 2592, 2593, 2582, 2586, 2589, 2588,
+ 2587, 0, 2589, 2583, 2583, 2589, 2592, 2583, 2594, 2585,
+ 2595, 2596, 2586, 2586, 2590, 2587, 2591, 2595, 2596, 2597,
+ 2589, 2602, 2598, 2588, 2588, 2600, 2601, 2603, 2592, 2589,
+ 2594, 2605, 2589, 2592, 2597, 2594, 2598, 2595, 2596, 2600,
+ 2607, 2609, 2604, 2608, 2601, 2611, 2597, 2606, 2602, 2598,
+ 2604, 2612, 2600, 2601, 2603, 2608, 2606, 2614, 2605, 2615,
+ 2613, 0, 2616, 2609, 2618, 2623, 2615, 2607, 2609, 2604,
+ 2608, 2617, 2611, 2613, 2606, 2614, 2625, 2619, 2612, 2622,
+ 0, 2617, 2631, 2629, 2614, 2620, 2615, 2613, 2616, 2616,
+ 2619, 2618, 2623, 2620, 2624, 2627, 2626, 2628, 2617, 2630,
- 2587, 2594, 2591, 2595, 2585, 2596, 2598, 2597, 2593, 0,
- 2595, 2590, 2599, 2589, 2602, 2600, 2590, 2597, 2603, 2594,
- 2605, 2592, 2593, 2600, 2607, 2599, 2609, 2604, 2594, 2606,
- 2595, 2596, 2596, 2598, 2597, 2604, 2602, 2608, 2606, 2599,
- 2610, 2602, 2600, 2611, 2612, 2603, 2607, 2605, 2613, 2614,
- 2609, 2607, 2612, 2609, 2604, 2610, 2606, 2616, 2608, 2618,
- 2613, 2619, 2625, 0, 2608, 2617, 2610, 2610, 2622, 2616,
- 2611, 2612, 2621, 2617, 2614, 2613, 2614, 2623, 2624, 2621,
- 2622, 2623, 2610, 2626, 2616, 2625, 2618, 2628, 2627, 2625,
- 2624, 2629, 2617, 2619, 2628, 2622, 2627, 2630, 2629, 2621,
+ 2632, 2622, 2624, 2625, 2619, 2626, 2622, 2629, 2632, 2631,
+ 2629, 2634, 2620, 2638, 2630, 2639, 2633, 2627, 2628, 2636,
+ 0, 2624, 2627, 2626, 2628, 2630, 2630, 2632, 2633, 2637,
+ 2642, 2636, 2641, 2644, 2646, 2645, 2634, 2637, 2634, 2641,
+ 2638, 2630, 2642, 2633, 2643, 2644, 2636, 2639, 2643, 0,
+ 0, 0, 2650, 2651, 0, 2647, 2637, 2642, 2645, 2641,
+ 2644, 2646, 2645, 2647, 0, 2648, 2649, 0, 0, 2653,
+ 2656, 2643, 2648, 2649, 2650, 0, 2651, 2654, 2652, 2650,
+ 2651, 2653, 2647, 2657, 0, 2659, 2658, 2652, 0, 2662,
+ 2657, 2654, 2648, 2649, 2652, 2652, 2653, 2656, 2659, 2660,
- 2631, 0, 0, 2636, 2623, 2624, 2637, 2640, 2633, 0,
- 2626, 2634, 2632, 2637, 2628, 2627, 2640, 0, 2629, 2630,
- 2633, 2632, 2638, 2631, 2630, 2634, 2646, 2631, 2632, 2632,
- 2636, 2639, 2641, 2637, 2640, 2633, 2632, 2634, 2634, 2632,
- 2644, 2641, 2638, 2645, 2639, 2642, 2643, 2643, 2632, 2638,
- 2649, 2646, 2634, 2646, 2647, 2632, 2632, 2642, 2639, 2641,
- 2650, 2645, 2651, 2652, 2653, 2655, 2644, 2644, 0, 2647,
- 2645, 2647, 2642, 2643, 2654, 2650, 2654, 2656, 2647, 2655,
- 2658, 2647, 2649, 2656, 2651, 2652, 2653, 2650, 2657, 2651,
- 2652, 2653, 2655, 2659, 2659, 2661, 2647, 2662, 2647, 2663,
+ 2661, 2662, 2652, 2654, 2654, 2652, 2658, 2664, 2660, 2661,
+ 2657, 2665, 2659, 2658, 2652, 2666, 2662, 2669, 2654, 2663,
+ 2663, 2652, 2652, 2671, 2667, 2672, 2660, 2661, 2670, 2665,
+ 2674, 2673, 2674, 2664, 2664, 0, 0, 2678, 2665, 2667,
+ 2666, 2667, 2666, 2670, 2677, 2671, 2663, 2672, 2667, 2669,
+ 2671, 2667, 2672, 2673, 2676, 2670, 2675, 2674, 2673, 2678,
+ 2676, 2685, 2677, 2681, 2678, 2682, 2667, 2683, 2667, 0,
+ 2675, 2677, 2679, 2679, 2684, 2686, 2687, 2689, 2690, 2688,
+ 0, 2676, 2687, 2675, 2694, 2681, 2684, 2682, 2691, 2683,
+ 2681, 2688, 2682, 2685, 2683, 2693, 2695, 2693, 2694, 2679,
- 2664, 2654, 2658, 2665, 2656, 2666, 2657, 2658, 0, 2669,
- 0, 2670, 2664, 2668, 0, 2657, 2672, 2661, 2672, 2662,
- 2659, 2663, 2661, 2667, 2662, 2668, 2663, 2664, 2673, 2667,
- 2671, 2676, 2674, 2670, 0, 2665, 2677, 2666, 2670, 2675,
- 2668, 2669, 2673, 2672, 2678, 2681, 2675, 2679, 2680, 2676,
- 2667, 2682, 2671, 2683, 2677, 2673, 2674, 2671, 2676, 2674,
- 2685, 2680, 2678, 2677, 2688, 2679, 2675, 2685, 2689, 2690,
- 2691, 2678, 2687, 2692, 2679, 2680, 2683, 2681, 2691, 2687,
- 2683, 2693, 2688, 2682, 2694, 0, 2695, 2685, 2696, 2692,
- 2701, 2688, 2699, 2700, 2689, 2689, 2691, 2691, 0, 2687,
+ 2690, 2684, 2704, 2687, 2702, 2690, 2688, 2686, 2697, 2689,
+ 2691, 2694, 2696, 2698, 2699, 2691, 2700, 2701, 2703, 2696,
+ 2695, 2706, 2693, 2695, 2709, 2704, 2697, 2710, 2706, 2704,
+ 2701, 2698, 2699, 2713, 2700, 2697, 2702, 2711, 2708, 2696,
+ 2698, 2699, 2709, 2700, 2701, 2708, 0, 2712, 2706, 2713,
+ 2703, 2709, 2714, 2710, 2710, 2712, 2717, 2715, 0, 2716,
+ 2713, 2718, 2722, 2718, 0, 2708, 0, 0, 2718, 2711,
+ 2720, 2739, 2748, 2712, 2712, 2715, 2721, 2714, 2717, 2714,
+ 2723, 2720, 2712, 2717, 2715, 2716, 2716, 2721, 2718, 2722,
+ 2718, 2724, 2723, 2725, 2726, 2727, 2731, 2720, 2739, 2729,
- 2692, 2690, 2694, 2699, 2700, 2691, 2693, 2697, 2693, 2697,
- 2696, 2694, 2695, 2695, 2697, 2696, 2702, 2701, 2705, 2699,
- 2700, 2703, 2704, 2708, 2706, 2714, 0, 2711, 2702, 2713,
- 2709, 0, 2710, 0, 2697, 0, 2697, 2705, 2708, 2703,
- 2704, 2709, 2711, 2702, 2710, 2705, 2706, 2714, 2703, 2704,
- 2708, 2706, 2714, 2713, 2711, 2715, 2713, 2709, 2716, 2710,
- 2717, 2718, 2715, 2719, 2720, 2721, 2727, 2722, 2724, 0,
- 2728, 0, 2721, 2725, 2726, 2717, 2716, 2730, 0, 2732,
- 0, 2729, 2715, 2734, 0, 2716, 2738, 2717, 2718, 0,
- 2719, 2720, 2721, 2722, 2722, 2724, 2726, 2725, 2727, 2729,
+ 2732, 2730, 0, 2721, 2748, 2734, 2740, 2723, 2731, 2724,
+ 0, 2725, 2730, 2726, 2729, 2732, 2735, 2727, 2724, 2737,
+ 2725, 2726, 2727, 2731, 2736, 2738, 2729, 2732, 2730, 2734,
+ 2741, 2736, 2734, 2740, 2742, 2749, 2743, 2737, 2735, 2745,
+ 2738, 2742, 2747, 2735, 2746, 2751, 2737, 2750, 0, 2753,
+ 0, 2736, 2738, 2755, 0, 2754, 2759, 2741, 2758, 0,
+ 2752, 2742, 2743, 2743, 2747, 2750, 2745, 2749, 2746, 2747,
+ 2754, 2746, 2751, 2752, 2750, 2753, 2753, 2756, 2757, 2755,
+ 2755, 2760, 2754, 2763, 2758, 2758, 2757, 2752, 2759, 2761,
+ 2756, 2764, 2765, 0, 2760, 2766, 2768, 0, 2767, 2772,
- 2725, 2726, 2728, 2731, 2730, 2732, 2732, 2733, 2729, 2734,
- 2734, 2735, 2736, 0, 2737, 2739, 2731, 2744, 2738, 0,
- 2736, 2740, 2733, 2742, 2735, 2743, 0, 2747, 2739, 2745,
- 2731, 2746, 0, 2751, 2733, 2762, 0, 2748, 2735, 2736,
- 2737, 2737, 2739, 2740, 2744, 2747, 2742, 2750, 2740, 2743,
- 2742, 2745, 2743, 2746, 2747, 2748, 2745, 2752, 2746, 2749,
- 2751, 2754, 2755, 2758, 2748, 2756, 2749, 2762, 2757, 2755,
- 2750, 2752, 2756, 2759, 2750, 2757, 2758, 2761, 2760, 2768,
- 2763, 0, 2764, 2754, 2752, 2760, 2749, 2768, 2754, 2755,
- 2758, 2765, 2756, 2766, 2767, 2757, 2759, 2772, 2777, 2761,
+ 2770, 2771, 0, 2769, 2756, 2757, 2763, 2770, 2760, 2775,
+ 2763, 2761, 0, 0, 2768, 2764, 2761, 2766, 2764, 2765,
+ 2767, 2769, 2766, 2768, 2771, 2767, 2772, 2770, 2771, 2773,
+ 2769, 2775, 2776, 2777, 2778, 2779, 2775, 2781, 2783, 2776,
+ 2777, 2778, 2780, 2773, 2781, 2782, 0, 2784, 2779, 2785,
+ 2789, 2786, 0, 2787, 2788, 2798, 2773, 2793, 2789, 2776,
+ 2777, 2778, 2779, 2788, 2781, 2780, 2791, 2782, 2784, 2780,
+ 2783, 2795, 2782, 2786, 2784, 2785, 2785, 2789, 2786, 2787,
+ 2787, 2788, 2790, 2792, 2793, 2796, 2795, 2798, 2791, 2792,
+ 2790, 2797, 2799, 2791, 2801, 2800, 2796, 0, 2795, 2803,
- 2759, 2763, 2769, 2767, 2761, 2760, 2768, 2763, 2764, 2764,
- 2769, 2770, 2774, 2765, 2775, 2776, 2771, 2778, 2765, 2766,
- 2766, 2767, 2771, 2780, 2772, 2775, 2779, 2774, 2782, 2769,
- 2777, 2784, 2787, 2770, 2785, 0, 2786, 2776, 2770, 2774,
- 2788, 2775, 2776, 2771, 2784, 2779, 2782, 2785, 2780, 2778,
- 2780, 2790, 2791, 2779, 0, 2782, 2787, 2792, 2784, 2787,
- 2794, 2785, 2786, 2786, 2791, 2797, 2788, 2788, 2793, 2793,
- 2798, 2800, 2801, 2803, 2799, 2790, 2806, 0, 2790, 2791,
- 2810, 2792, 2802, 2814, 2792, 2808, 2794, 2794, 2797, 2799,
- 2801, 2803, 2797, 2810, 2808, 2793, 2816, 2811, 2800, 2801,
+ 0, 2807, 2805, 2806, 0, 0, 2809, 2808, 0, 2790,
+ 2792, 2811, 2796, 2797, 2800, 2805, 2806, 2803, 2797, 2801,
+ 2813, 2801, 2800, 2815, 2799, 2812, 2803, 2807, 2807, 2805,
+ 2806, 2808, 2809, 2809, 2808, 2811, 2818, 2812, 2811, 2814,
+ 2814, 2819, 2820, 2821, 2813, 2823, 0, 2813, 2825, 2815,
+ 2815, 2828, 2812, 2822, 2833, 2830, 2824, 2820, 2838, 2818,
+ 2837, 2837, 0, 2818, 2830, 2833, 2814, 2823, 2825, 2820,
+ 2821, 2822, 2823, 2819, 2824, 2825, 2832, 2836, 2828, 2839,
+ 2822, 2833, 2830, 2824, 2838, 2838, 2840, 2837, 2839, 2832,
+ 2842, 2844, 2840, 2843, 2846, 2848, 2850, 2851, 2849, 2836,
- 2803, 2799, 2798, 2806, 2802, 2814, 2817, 2810, 2811, 2802,
- 2814, 2818, 2808, 2815, 2815, 2817, 2822, 2818, 2824, 2820,
- 2821, 2826, 2816, 2816, 2811, 2827, 0, 0, 2828, 2830,
- 0, 2833, 2827, 2817, 2830, 2831, 2834, 2829, 2818, 2833,
- 2815, 2820, 2821, 2822, 2835, 2824, 2820, 2821, 2829, 2837,
- 2836, 2840, 2827, 2826, 2828, 2828, 2830, 2831, 2833, 2835,
- 2834, 2839, 2831, 2834, 2829, 2836, 2841, 2842, 2844, 2840,
- 2843, 2835, 2839, 2846, 2847, 0, 2837, 2836, 2840, 2843,
- 2844, 2849, 2850, 2860, 2848, 0, 2851, 2841, 2839, 0,
- 2853, 2852, 2847, 2841, 0, 2844, 2854, 2843, 2851, 2842,
+ 0, 2857, 2852, 2832, 2836, 2849, 2839, 2852, 2851, 2853,
+ 2856, 2855, 2842, 2840, 2864, 2843, 2857, 2842, 2844, 2855,
+ 2843, 2846, 2850, 2850, 2851, 2849, 2858, 2848, 2857, 2852,
+ 2859, 2853, 2861, 2862, 2856, 2863, 2853, 2856, 2855, 2865,
+ 2866, 2858, 2868, 2861, 2871, 2869, 2864, 2870, 2865, 2873,
+ 2872, 2862, 2866, 2858, 0, 2876, 2863, 2859, 2874, 2861,
+ 2862, 2873, 2863, 2869, 2875, 2870, 2865, 2866, 2871, 2868,
+ 2874, 2871, 2869, 2876, 2870, 2872, 2873, 2872, 2881, 2877,
+ 2878, 2878, 2876, 2879, 2882, 2874, 2875, 2877, 2878, 2884,
+ 2883, 2875, 2879, 2887, 2888, 2885, 2889, 0, 2884, 0,
- 2846, 2847, 2848, 2852, 2859, 2849, 2857, 2850, 2849, 2850,
- 2860, 2848, 2853, 2851, 2854, 2857, 2855, 2853, 2852, 2856,
- 2856, 2863, 2861, 2854, 2855, 2862, 2864, 2856, 2865, 2866,
- 2859, 2859, 2867, 2857, 2862, 0, 2870, 2874, 2868, 2863,
- 2864, 0, 2869, 2855, 2861, 2867, 2856, 2856, 2863, 2861,
- 2865, 2868, 2862, 2864, 2866, 2865, 2866, 2869, 2870, 2867,
- 2871, 2872, 2873, 2870, 2874, 2868, 2875, 2871, 2872, 2869,
- 2876, 2877, 2878, 2881, 0, 2879, 2880, 2886, 2875, 0,
- 2883, 0, 2881, 2882, 2873, 2884, 0, 2871, 2872, 2873,
- 2879, 2885, 2886, 2875, 2888, 0, 2892, 2876, 2877, 2878,
+ 2886, 0, 2896, 2892, 2881, 2881, 2877, 2878, 2878, 2889,
+ 2879, 2882, 2883, 2885, 2886, 2887, 2884, 2883, 2890, 2888,
+ 2887, 2888, 2885, 2889, 2891, 2892, 2893, 2886, 2894, 2896,
+ 2892, 2890, 2895, 2893, 2897, 2894, 2898, 2899, 2900, 2891,
+ 0, 2901, 2902, 2903, 2904, 2890, 2897, 2905, 0, 2906,
+ 0, 2891, 2903, 2893, 2895, 2894, 2901, 2907, 2914, 2895,
+ 0, 2897, 2908, 2898, 2899, 2900, 2904, 2902, 2901, 2902,
+ 2903, 2904, 2909, 2905, 2905, 2906, 2906, 2908, 2910, 2909,
+ 2911, 2913, 2912, 2907, 2907, 2914, 2915, 2911, 2912, 2908,
+ 2916, 2917, 2913, 2910, 2915, 2918, 2919, 2920, 0, 2909,
- 2881, 2880, 2879, 2880, 2886, 2882, 2883, 2883, 2887, 2888,
- 2882, 2884, 2884, 2889, 2891, 2887, 2890, 2885, 2885, 2893,
- 2889, 2888, 2890, 2892, 2894, 2891, 2895, 2893, 2896, 2897,
- 2898, 2901, 2899, 2900, 0, 2887, 2905, 2907, 2901, 2902,
- 2889, 2891, 2903, 2890, 2896, 2898, 2893, 2904, 2900, 2903,
- 2906, 2894, 2899, 2895, 2904, 2896, 2897, 2898, 2901, 2899,
- 2900, 2902, 2910, 2905, 2907, 2909, 2902, 2912, 2906, 2903,
- 2908, 2908, 2909, 2913, 2904, 2911, 2910, 2906, 2911, 2915,
- 2912, 2914, 2916, 2917, 2915, 2918, 2919, 2920, 0, 2910,
- 2924, 2913, 2909, 2921, 2912, 2924, 2914, 2908, 2917, 2920,
+ 2921, 2922, 2927, 2923, 2924, 2910, 0, 2911, 2913, 2912,
+ 2923, 2918, 2920, 2915, 2925, 2928, 2922, 2916, 2917, 2929,
+ 2921, 2925, 2918, 2919, 2920, 2926, 2924, 2921, 2922, 2927,
+ 2923, 2924, 2926, 2928, 2930, 2930, 2931, 2932, 2935, 2936,
+ 2934, 2925, 2928, 2931, 2933, 2937, 2929, 2933, 2938, 0,
+ 2937, 2932, 2926, 2934, 2936, 2939, 2935, 2940, 2941, 0,
+ 2945, 2930, 2942, 2931, 2932, 2935, 2936, 2934, 2943, 2945,
+ 2939, 2933, 2937, 2938, 2942, 2938, 2941, 2948, 2949, 2951,
+ 2943, 2946, 2939, 2940, 2940, 2941, 2946, 2945, 2947, 2942,
+ 2950, 2953, 2954, 2947, 2950, 2943, 2952, 2955, 2956, 2948,
- 2913, 2926, 2911, 2927, 2919, 2921, 2915, 2916, 2914, 2916,
- 2917, 2918, 2918, 2919, 2920, 2923, 2925, 2924, 2928, 2930,
- 2921, 2925, 2928, 2926, 2923, 2929, 2931, 2933, 2926, 2932,
- 2927, 2934, 2930, 2936, 0, 2935, 0, 2940, 0, 2941,
- 0, 2943, 2923, 2925, 0, 2928, 2930, 2945, 2931, 2929,
- 2935, 2932, 2929, 2931, 2933, 2940, 2932, 0, 2934, 2936,
- 2936, 2944, 2935, 2945, 2940, 2941, 2941, 2943, 2943, 2946,
- 2944, 2947, 2949, 2950, 2945, 2951, 2954, 2946, 2952, 2949,
- 2951, 2956, 2950, 2947, 2953, 2952, 2955, 2962, 2944, 2960,
- 2957, 2953, 2958, 2955, 2954, 2959, 2946, 2957, 2947, 2949,
+ 2958, 2957, 2962, 2951, 2948, 2949, 2951, 2963, 2946, 2952,
+ 2965, 0, 2966, 2953, 2954, 2947, 2957, 2950, 2953, 2954,
+ 2962, 2966, 2967, 2952, 2955, 2956, 2958, 2958, 2957, 2962,
+ 2969, 0, 2968, 2963, 2963, 2972, 2965, 2965, 2967, 2966,
+ 2968, 2971, 2969, 2976, 2972, 2973, 2974, 2975, 2971, 2967,
+ 2973, 2977, 2978, 2974, 2975, 2980, 2979, 2969, 2977, 2968,
+ 2981, 2976, 2972, 2979, 2980, 2982, 2984, 2985, 2971, 2981,
+ 2976, 2986, 2973, 2974, 2975, 2987, 2989, 2978, 2977, 2978,
+ 2987, 2988, 2980, 2979, 2986, 2992, 2991, 2981, 2993, 2984,
+ 2996, 2982, 2982, 2984, 2985, 2997, 2994, 2993, 2986, 2988,
- 2950, 2958, 2951, 2954, 2959, 2952, 2956, 2963, 2956, 2966,
- 2962, 2953, 2964, 2955, 2962, 2960, 2960, 2957, 2965, 2958,
- 2967, 2970, 2959, 2965, 2969, 2964, 2971, 2966, 2972, 2973,
- 2974, 2975, 2976, 2978, 2963, 2971, 2966, 2972, 2973, 2964,
- 2977, 2976, 2969, 2975, 2978, 2965, 2979, 2967, 2970, 2977,
- 2974, 2969, 2980, 2971, 2979, 2972, 2973, 2974, 2975, 2976,
- 2978, 2981, 2982, 2983, 2984, 2985, 2987, 2977, 2986, 2989,
- 2990, 2991, 2985, 2979, 2992, 2980, 0, 2986, 2997, 2980,
- 0, 2998, 2982, 2992, 2981, 2993, 2994, 2987, 2981, 2982,
- 2983, 2984, 2985, 2987, 2993, 2986, 2989, 2990, 2994, 2995,
+ 2995, 3002, 2987, 2989, 2991, 2994, 3001, 2997, 2988, 2995,
+ 2996, 2998, 2992, 2991, 3001, 2993, 2999, 2996, 3000, 3003,
+ 2998, 3004, 2997, 2994, 3002, 2999, 3005, 2995, 3002, 3000,
+ 3006, 3008, 3007, 3001, 3009, 3011, 3012, 3013, 2998, 3007,
+ 3008, 3004, 3003, 2999, 3019, 3000, 3003, 3014, 3004, 3020,
+ 0, 3015, 3016, 3005, 3018, 3009, 3014, 3006, 3008, 3007,
+ 3015, 3009, 3011, 3012, 3016, 3017, 3019, 3018, 3021, 3013,
+ 3022, 3019, 3024, 3017, 3014, 3021, 3020, 3022, 3015, 3016,
+ 3023, 3018, 3025, 3026, 3027, 3029, 3031, 3023, 3024, 3028,
+ 3026, 0, 3017, 3030, 3033, 3021, 3034, 3022, 3025, 3024,
- 2997, 2992, 2996, 2991, 2999, 2997, 3002, 2995, 2998, 3000,
- 3001, 2999, 2993, 2994, 3003, 2996, 3000, 3001, 3004, 3006,
- 3005, 3007, 3002, 3009, 3008, 3004, 2995, 3011, 3012, 2996,
- 3003, 2999, 3013, 3002, 3015, 3011, 3000, 3001, 3017, 3020,
- 3013, 3003, 3005, 0, 3006, 3004, 3006, 3005, 3007, 3008,
- 3009, 3008, 3015, 3017, 3011, 3012, 3016, 3019, 3022, 3013,
- 3018, 3015, 3021, 3023, 3016, 3017, 3020, 3018, 3024, 3021,
- 3023, 3027, 3028, 3029, 3030, 3033, 3024, 3032, 3027, 3019,
- 3022, 3028, 3031, 3016, 3019, 3022, 3032, 3018, 3036, 3021,
- 3023, 3034, 3040, 3035, 3031, 3024, 3038, 3029, 3027, 3028,
+ 3035, 3036, 3033, 0, 3038, 3043, 3027, 3023, 3035, 3025,
+ 3026, 3027, 3029, 3031, 3028, 3040, 3028, 3039, 3030, 3041,
+ 3030, 3033, 3038, 3034, 0, 3039, 3041, 3035, 3036, 3042,
+ 3040, 3038, 3043, 3044, 3046, 3045, 3050, 3047, 3051, 3053,
+ 3044, 3046, 3040, 3050, 3039, 3047, 3041, 3051, 3052, 3055,
+ 3056, 3042, 3057, 3063, 3065, 3054, 3042, 3045, 3055, 3058,
+ 3044, 3046, 3045, 3050, 3047, 3051, 3053, 3054, 3057, 3059,
+ 3064, 3058, 3052, 3061, 3063, 3052, 3055, 3056, 3062, 3057,
+ 3063, 3065, 3054, 3070, 3066, 3061, 3058, 3068, 3069, 3071,
+ 3062, 0, 3059, 3064, 3075, 3070, 3059, 3064, 3066, 3073,
- 3029, 3030, 3033, 3041, 3032, 3035, 3042, 3034, 3038, 3031,
- 3039, 3036, 3047, 3040, 3043, 3036, 3048, 3045, 3034, 3040,
- 3035, 3046, 3039, 3038, 3047, 3051, 3041, 3050, 3043, 3057,
- 3041, 3045, 0, 3042, 3051, 3046, 3052, 3039, 3055, 3047,
- 3059, 3043, 3053, 3048, 3045, 3049, 3049, 3050, 3046, 3053,
- 3052, 3056, 3051, 3054, 3050, 3059, 3057, 3055, 3056, 3049,
- 3061, 3054, 3062, 3052, 3060, 3055, 3063, 3059, 3064, 3053,
- 3065, 0, 3049, 3049, 3066, 3068, 3064, 3069, 3056, 3071,
- 3054, 3067, 3060, 3061, 3073, 3078, 3068, 3061, 3062, 3062,
- 3073, 3060, 3069, 3063, 3077, 3064, 3066, 3065, 3070, 3067,
+ 3061, 3068, 3069, 3072, 3072, 3062, 3076, 3080, 3075, 3074,
+ 3070, 3066, 3077, 3076, 3068, 3069, 3071, 3072, 3074, 3073,
+ 3077, 3075, 3078, 3082, 3083, 3079, 3073, 3085, 3086, 3087,
+ 3072, 3072, 3079, 3076, 3080, 3084, 3074, 3087, 3082, 3077,
+ 3088, 3078, 3083, 3089, 3092, 3090, 3091, 3094, 0, 3078,
+ 3082, 3083, 3079, 3085, 3085, 3086, 3087, 3091, 3084, 3092,
+ 3096, 3093, 3084, 3090, 3100, 3089, 3096, 3088, 3093, 3103,
+ 3089, 3092, 3090, 3091, 3094, 3101, 3102, 3107, 3104, 3110,
+ 3105, 3102, 3108, 3106, 0, 3114, 3143, 3096, 3093, 0,
+ 3100, 3100, 3104, 3101, 3105, 3107, 3103, 3106, 3109, 3112,
- 3080, 3066, 3068, 3078, 3069, 3070, 3071, 3087, 3067, 3079,
- 3081, 3073, 3078, 3084, 3079, 3082, 3083, 3085, 0, 3088,
- 3077, 3077, 3091, 3086, 3081, 3070, 3088, 3080, 0, 3082,
- 3083, 3084, 3094, 3089, 3087, 3085, 3079, 3081, 3097, 3096,
- 3084, 3086, 3082, 3083, 3085, 3089, 3088, 3098, 3099, 3091,
- 3086, 3097, 3101, 3102, 3094, 3100, 3104, 0, 0, 3094,
- 3089, 3096, 3106, 3100, 3107, 3097, 3096, 3099, 3104, 3098,
- 3101, 3109, 3102, 3108, 3098, 3099, 3110, 3111, 3112, 3101,
- 3102, 3115, 3100, 3104, 3106, 3108, 3107, 3113, 3114, 3106,
- 3112, 3107, 3116, 3118, 3117, 3120, 3114, 3119, 3109, 3111,
+ 3108, 3111, 3101, 3102, 3107, 3104, 3110, 3105, 3111, 3108,
+ 3106, 3112, 3114, 3117, 3119, 3121, 3109, 3120, 3143, 3122,
+ 3125, 3123, 3127, 0, 3132, 3109, 3112, 3124, 3111, 3123,
+ 3120, 3129, 3133, 3130, 3127, 3117, 3119, 3121, 3122, 3125,
+ 3117, 3119, 3121, 3134, 3120, 3124, 3122, 3125, 3123, 3127,
+ 3131, 3132, 3135, 3129, 3124, 3130, 3136, 3138, 3129, 3133,
+ 3130, 3137, 3131, 3140, 3135, 3134, 3139, 3141, 0, 3137,
+ 3134, 3142, 0, 3144, 3145, 0, 3141, 3131, 3136, 3135,
+ 3142, 3148, 3150, 3136, 3138, 3140, 3139, 3149, 3137, 3146,
+ 3140, 3151, 3152, 3139, 3141, 3144, 3145, 3156, 3142, 3149,
- 3108, 3121, 3118, 3110, 3111, 3112, 3119, 3122, 3115, 3113,
- 3125, 3127, 3116, 3123, 3113, 3114, 3117, 3128, 3126, 3116,
- 3118, 3117, 3129, 3121, 3119, 3132, 3123, 3120, 3121, 3122,
- 3126, 3135, 3133, 3127, 3122, 3134, 3125, 3125, 3127, 3136,
- 3123, 3140, 3138, 3139, 3128, 3126, 3133, 3132, 3134, 3129,
- 3137, 3141, 3132, 3142, 3140, 3137, 0, 3143, 3135, 3133,
- 3145, 3146, 3134, 3136, 3138, 3139, 3136, 3144, 3140, 3138,
- 3139, 3147, 3149, 3146, 3150, 3148, 3142, 0, 3145, 3143,
- 3142, 3148, 3137, 3141, 3143, 3151, 3152, 3145, 3146, 3144,
- 3147, 3153, 3156, 3157, 3144, 3155, 3159, 0, 3147, 3161,
+ 3144, 3145, 3146, 3155, 3150, 3158, 3161, 3148, 3148, 3150,
+ 3157, 3156, 3159, 3162, 3149, 3160, 3146, 3164, 3151, 3152,
+ 3160, 3163, 0, 3157, 3156, 3155, 0, 3165, 3161, 3166,
+ 3155, 3167, 3158, 3161, 3163, 3162, 3159, 3157, 3170, 3159,
+ 3162, 3168, 3172, 3169, 3173, 3174, 3171, 3160, 3163, 3164,
+ 3165, 3166, 3171, 3167, 3165, 3169, 3166, 3170, 3167, 3168,
+ 3175, 3176, 3178, 3179, 3182, 3170, 0, 3174, 3168, 3180,
+ 3169, 3194, 3174, 3171, 3172, 3175, 3173, 3184, 3185, 3182,
+ 3186, 3188, 3178, 3187, 3195, 3179, 3193, 3175, 3176, 3178,
+ 3179, 3182, 3187, 3180, 3189, 3188, 3180, 3190, 3192, 3184,
- 0, 3152, 3148, 3162, 3149, 3163, 3150, 3151, 3171, 3168,
- 0, 3159, 3151, 3152, 3156, 3155, 3166, 3157, 3153, 3156,
- 3157, 3161, 3155, 3159, 3164, 3162, 3161, 3163, 3165, 3167,
- 3162, 3169, 3163, 3164, 3166, 3168, 3168, 3170, 3176, 3172,
- 3171, 3175, 3165, 3166, 3177, 3180, 3183, 3167, 3184, 3169,
- 3175, 3164, 3181, 3180, 3183, 3165, 3167, 3185, 3169, 3181,
- 3170, 3172, 3182, 3188, 3170, 3177, 3172, 3189, 3175, 3182,
- 3176, 3177, 3180, 3183, 3186, 3184, 3190, 3185, 3192, 3181,
- 3191, 3188, 3186, 3193, 3185, 3189, 3194, 3201, 3197, 3182,
- 3188, 3195, 3191, 3202, 3189, 3193, 3192, 3199, 3203, 3195,
+ 3185, 3191, 3186, 3194, 3184, 3185, 3195, 3186, 3188, 3193,
+ 3187, 3195, 3189, 3193, 3198, 3190, 3192, 3199, 3200, 3207,
+ 3211, 3189, 0, 3198, 3190, 3192, 3203, 3191, 3191, 3204,
+ 3205, 3208, 3206, 0, 3203, 3209, 3204, 3205, 3211, 3200,
+ 3206, 3198, 3212, 3209, 3213, 3200, 3207, 3211, 3215, 3199,
+ 3217, 3208, 3214, 3203, 3222, 3216, 3204, 3205, 3208, 3206,
+ 3212, 3222, 3209, 3224, 3214, 3218, 3215, 3216, 3220, 3212,
+ 3213, 3213, 3227, 3218, 3226, 3215, 3228, 3217, 3228, 3214,
+ 3220, 3222, 3216, 3229, 3230, 3232, 3235, 3224, 3234, 0,
+ 3224, 3233, 3218, 3232, 3237, 3220, 3237, 3226, 3236, 3227,
- 3197, 3186, 3190, 3190, 3199, 3192, 3204, 3191, 3204, 3205,
- 3193, 3201, 3206, 3194, 3201, 3197, 3202, 3210, 3195, 3208,
- 3202, 3209, 0, 3211, 3199, 3203, 3212, 3208, 3217, 3213,
- 3209, 3213, 3214, 3204, 3216, 3219, 3220, 0, 3222, 3221,
- 0, 3205, 3217, 3224, 3206, 3212, 3208, 3222, 3209, 3210,
- 3211, 3223, 3216, 3212, 3214, 3217, 3213, 3225, 3228, 3214,
- 3220, 3216, 3221, 3220, 3223, 3222, 3221, 3219, 3227, 3225,
- 3224, 3229, 3230, 3232, 3234, 3233, 3237, 3235, 3223, 3239,
- 3228, 3230, 3235, 3236, 3225, 3228, 3238, 3232, 3233, 3240,
- 3238, 3242, 3234, 3229, 3227, 3227, 3243, 3245, 3229, 3230,
+ 3233, 3226, 3238, 3228, 3240, 3241, 3243, 3245, 3248, 3244,
+ 0, 0, 3232, 3235, 3246, 3229, 3230, 3236, 3233, 3241,
+ 3234, 3237, 3240, 3246, 3238, 3236, 3247, 3252, 3249, 3238,
+ 3245, 3240, 3241, 3244, 3245, 3248, 3244, 3251, 3243, 3247,
+ 3249, 3246, 3254, 3253, 3256, 3259, 3257, 0, 3258, 3252,
+ 3259, 3254, 3260, 3247, 3252, 3249, 3261, 3262, 3256, 3257,
+ 3263, 3262, 3264, 3251, 3251, 3253, 3258, 3266, 3267, 3254,
+ 3253, 3256, 3259, 3257, 3260, 3258, 3268, 3271, 3269, 3260,
+ 3274, 3273, 3275, 3261, 3262, 3276, 3277, 3263, 3273, 3264,
+ 3276, 3267, 3279, 3280, 3266, 3267, 3269, 3275, 3268, 3279,
- 3232, 3234, 3233, 3237, 3235, 3236, 3239, 3244, 3247, 3250,
- 3236, 3251, 3252, 3238, 3249, 3245, 3240, 3252, 3242, 3243,
- 3255, 3249, 3253, 3243, 3245, 3256, 3251, 3255, 3258, 3244,
- 3260, 3250, 3256, 3257, 3244, 3247, 3250, 3253, 3251, 3261,
- 3257, 3249, 3262, 3263, 3252, 3264, 3267, 3255, 3265, 3253,
- 3271, 3270, 3256, 3272, 3258, 3258, 3268, 3260, 3270, 3264,
- 3257, 3273, 3265, 3275, 3274, 3268, 3261, 3263, 3276, 3262,
- 3263, 3279, 3264, 3267, 3278, 3265, 3274, 3271, 3270, 3272,
- 3272, 3280, 3276, 3268, 3277, 3286, 3281, 3278, 3273, 3284,
- 3275, 3274, 3285, 3277, 3284, 3276, 3287, 3289, 3291, 3292,
+ 3280, 3277, 3274, 3268, 3271, 3269, 3282, 3274, 3273, 3275,
+ 3284, 3281, 3285, 3277, 3286, 3288, 3287, 3276, 3281, 3279,
+ 3280, 3289, 3291, 3294, 3295, 3292, 0, 3296, 3297, 3288,
+ 3294, 3299, 3282, 3282, 3292, 3289, 3303, 3284, 3281, 3285,
+ 3287, 3286, 3288, 3287, 3298, 3300, 3304, 3302, 3289, 3291,
+ 3294, 3295, 3292, 3296, 3296, 3297, 3298, 3301, 3299, 3300,
+ 3302, 3310, 3305, 3309, 3308, 0, 3301, 3317, 3303, 3308,
+ 3311, 3298, 3300, 3304, 3302, 3313, 3315, 3314, 3318, 3316,
+ 3313, 3314, 3319, 3315, 3301, 3305, 3316, 3309, 3317, 3305,
+ 3309, 3320, 3311, 3310, 3317, 3322, 3308, 3311, 3321, 3323,
- 3290, 3278, 3289, 3279, 3290, 3291, 3292, 3293, 3280, 3281,
- 3294, 3277, 3295, 3281, 3296, 0, 3285, 3286, 3287, 3285,
- 3297, 3284, 3297, 3287, 3299, 3291, 3292, 3290, 3293, 3289,
- 3298, 3302, 3303, 3306, 3293, 3304, 3309, 3307, 3309, 0,
- 3311, 3310, 3294, 0, 3295, 0, 3296, 3297, 3315, 3313,
- 3318, 3299, 3306, 3298, 3303, 3304, 0, 3298, 3302, 3303,
- 3306, 3307, 3304, 3309, 3307, 3310, 3311, 3311, 3310, 3312,
- 3312, 3313, 3314, 3316, 3317, 3315, 3313, 3318, 3319, 3312,
- 3316, 3314, 3320, 3323, 3322, 3321, 3328, 3317, 3325, 3326,
- 3320, 3319, 3322, 3325, 3326, 3327, 3312, 3312, 3321, 3314,
+ 3321, 3326, 3327, 3315, 3314, 3339, 3316, 3313, 3330, 3331,
+ 3318, 3328, 3337, 3333, 3319, 3333, 3335, 3334, 3322, 0,
+ 3336, 3336, 3322, 3320, 3327, 3321, 3323, 3330, 3326, 3327,
+ 3336, 3328, 3339, 3331, 3337, 3330, 3331, 3338, 3328, 3337,
+ 3333, 3334, 3335, 3335, 3334, 3340, 3338, 3336, 3336, 3341,
+ 3342, 3344, 3340, 3343, 3345, 3346, 3349, 3352, 0, 3344,
+ 3347, 3349, 3341, 3346, 3338, 3350, 3343, 3345, 3353, 0,
+ 3350, 3359, 3340, 3354, 0, 3344, 3341, 3342, 3344, 3347,
+ 3343, 3345, 3346, 3351, 3352, 3355, 3344, 3347, 3349, 3356,
+ 3358, 3351, 3357, 3359, 3353, 3353, 3360, 3350, 3359, 3354,
- 3316, 3317, 3323, 3327, 3329, 3319, 3320, 3330, 3334, 3320,
- 3323, 3322, 3321, 3328, 3331, 0, 3332, 3320, 3333, 3334,
- 3325, 3326, 3327, 3340, 3335, 3336, 3337, 3337, 3339, 3338,
- 3329, 3329, 3336, 3330, 3330, 3334, 3340, 3341, 3343, 3349,
- 3331, 3331, 3332, 3332, 3333, 3333, 3335, 3338, 3339, 3342,
- 3340, 3335, 3336, 3337, 3344, 3339, 3338, 3342, 3350, 3341,
- 3343, 3345, 3346, 3347, 3341, 3343, 3349, 3351, 3345, 3346,
- 3347, 3352, 3344, 3353, 3354, 3355, 3342, 3356, 3358, 3359,
- 3360, 3344, 3364, 3352, 3367, 3350, 3356, 3361, 3345, 3346,
- 3347, 3351, 3365, 3361, 3351, 3354, 3362, 3355, 3352, 3359,
+ 3354, 3358, 3362, 3360, 3361, 3361, 3363, 3368, 3364, 0,
+ 3351, 3355, 3355, 3373, 3365, 3356, 3356, 3358, 3357, 3357,
+ 3362, 3364, 3366, 3360, 3367, 3368, 3363, 3374, 3375, 3362,
+ 3366, 3361, 3369, 3363, 3368, 3364, 3365, 3370, 3371, 3369,
+ 3373, 3365, 3377, 3382, 3370, 3371, 3367, 3378, 3376, 3366,
+ 3379, 3367, 3375, 3380, 3374, 3375, 3383, 3384, 0, 3369,
+ 3376, 3385, 3380, 3386, 3370, 3371, 3388, 3385, 3378, 3377,
+ 3382, 3389, 3379, 3390, 3378, 3376, 3383, 3379, 3391, 3392,
+ 3380, 3393, 3396, 3383, 3384, 3386, 3395, 3397, 3385, 3389,
+ 3386, 3390, 3398, 3388, 3399, 3395, 3400, 3392, 3389, 3393,
- 3353, 3354, 3355, 3366, 3356, 3358, 3359, 3360, 3368, 3364,
- 3365, 3367, 3372, 3369, 3361, 3371, 3373, 3376, 3362, 3365,
- 3375, 3366, 3374, 3362, 3371, 3376, 3368, 3379, 3380, 3378,
- 3366, 3369, 3377, 3380, 3379, 3368, 3382, 3383, 3375, 3372,
- 3369, 3378, 3371, 3373, 3376, 3374, 3384, 3375, 3377, 3374,
- 3382, 3386, 3389, 3385, 3379, 3383, 3378, 3387, 3384, 3377,
- 3380, 0, 0, 3382, 3383, 3385, 3388, 3390, 3397, 3391,
- 3393, 3398, 3399, 3384, 3386, 3401, 3389, 3404, 3386, 3389,
- 3385, 3391, 3393, 3387, 3387, 3399, 3404, 3402, 3388, 3390,
- 3397, 3406, 3407, 3388, 3390, 3397, 3391, 3393, 3398, 3399,
+ 3390, 3401, 3404, 3433, 3400, 3391, 3392, 3404, 3393, 3396,
+ 3402, 3403, 3399, 3395, 3397, 3398, 3406, 3401, 3403, 3398,
+ 3408, 3399, 3402, 3400, 3407, 3410, 0, 3409, 3401, 3411,
+ 3406, 3412, 3408, 3413, 3404, 3433, 0, 3402, 3403, 3409,
+ 3414, 3421, 3407, 3406, 0, 3422, 3425, 3408, 3410, 3415,
+ 0, 3407, 3410, 3412, 3409, 3411, 3411, 3413, 3412, 3417,
+ 3413, 3415, 3414, 3421, 3423, 3426, 3428, 3414, 3421, 3430,
+ 3431, 3417, 3422, 3425, 3434, 3428, 3415, 3423, 3426, 3427,
+ 3432, 3427, 3438, 3439, 3438, 3440, 3417, 3442, 3443, 3434,
+ 0, 3423, 3426, 3428, 3442, 3449, 3430, 3431, 3432, 3450,
- 3402, 3403, 3401, 3403, 3404, 3408, 3409, 3410, 3414, 3415,
- 3414, 3419, 3416, 3418, 3402, 3423, 0, 0, 3406, 3407,
- 3418, 3423, 3410, 3408, 3425, 3426, 3421, 3428, 3403, 3427,
- 3416, 3415, 3408, 3433, 3410, 3414, 3415, 3430, 3409, 3416,
- 3418, 3421, 3423, 3419, 3431, 3428, 3425, 3426, 3434, 3433,
- 3435, 3425, 3426, 3421, 3428, 3427, 3427, 3431, 3436, 3430,
- 3433, 3436, 3434, 3435, 3430, 3438, 3439, 3440, 3441, 3442,
- 3444, 3431, 3443, 3445, 3449, 3434, 3442, 3435, 3444, 3443,
- 3446, 3445, 3450, 3451, 3436, 3436, 3441, 3453, 3436, 3452,
- 3459, 0, 3438, 3439, 3440, 3441, 3442, 3444, 3455, 3443,
+ 3445, 3434, 3447, 3440, 3451, 3439, 3427, 3432, 3447, 3438,
+ 3439, 3454, 3440, 3462, 3442, 3445, 3452, 3449, 3463, 3455,
+ 3443, 3450, 3449, 3457, 3459, 3464, 3450, 3445, 3458, 3447,
+ 3451, 3451, 3455, 3454, 3452, 3465, 3474, 3459, 3454, 3457,
+ 3462, 3460, 3458, 3452, 3460, 3463, 3455, 3466, 3470, 3467,
+ 3457, 3459, 3464, 3465, 3466, 3458, 3467, 3468, 3469, 3473,
+ 3475, 3476, 3465, 3474, 0, 3468, 3469, 3460, 3460, 3477,
+ 3470, 3460, 3478, 3480, 3466, 3470, 3467, 3479, 3483, 3480,
+ 3481, 3478, 3475, 3476, 3468, 3469, 3482, 3475, 3476, 3486,
+ 0, 3473, 3479, 3489, 3488, 3482, 3477, 3490, 3492, 3478,
- 3445, 3457, 3446, 3454, 3462, 3451, 3449, 3446, 3458, 3450,
- 3451, 3452, 3454, 3455, 3453, 3456, 3452, 3458, 3461, 3465,
- 3461, 3456, 3459, 3457, 3464, 3455, 3466, 3469, 3457, 3467,
- 3454, 3462, 3468, 3474, 0, 3458, 3472, 3470, 3476, 3469,
- 3468, 3465, 3456, 3472, 3477, 3461, 3465, 3464, 3466, 3470,
- 3479, 3464, 3476, 3466, 3469, 3467, 3467, 3481, 3477, 3468,
- 3474, 3478, 3480, 3472, 3470, 3476, 3482, 3483, 3481, 3484,
- 3486, 3477, 3485, 3479, 3482, 3478, 3487, 3479, 3488, 3485,
- 3480, 3490, 3489, 3487, 3481, 3486, 3483, 3492, 3478, 3480,
- 3490, 3484, 3493, 3482, 3483, 3500, 3484, 3486, 3494, 3485,
+ 3480, 3485, 3481, 3485, 3479, 3491, 3492, 3481, 3498, 0,
+ 3483, 3493, 0, 3482, 3494, 3489, 3486, 3488, 3504, 3490,
+ 3489, 3488, 3496, 3493, 3490, 3492, 3494, 3503, 3485, 3496,
+ 3500, 3491, 3491, 3501, 3502, 3498, 3504, 3507, 3493, 3509,
+ 3505, 3494, 0, 3508, 3500, 3504, 3509, 3501, 3502, 3496,
+ 3503, 3505, 3511, 3510, 3503, 3506, 3507, 3500, 3512, 3511,
+ 3501, 3502, 3514, 3506, 3507, 3508, 3509, 3505, 3510, 3513,
+ 3508, 3514, 3515, 3515, 3516, 3517, 3521, 3522, 3518, 3511,
+ 3510, 3521, 3506, 3525, 3512, 3512, 3518, 3513, 3524, 3514,
+ 3522, 3526, 3528, 3531, 3530, 3536, 3513, 3541, 3528, 3515,
- 3489, 3491, 3491, 3487, 3488, 3488, 3494, 3497, 3490, 3489,
- 3498, 3501, 3497, 3502, 3492, 3504, 3500, 3506, 3507, 3493,
- 3509, 3504, 3500, 3498, 3510, 3494, 3512, 3514, 3491, 3506,
- 3513, 3509, 3517, 3520, 3519, 3510, 3518, 3498, 3501, 3497,
- 3502, 3513, 3504, 3518, 3506, 3507, 3521, 3509, 3512, 3514,
- 3521, 3510, 3519, 3512, 3514, 3522, 3523, 3513, 3525, 3517,
- 3527, 3519, 3526, 3518, 3523, 3520, 3527, 3530, 3528, 3529,
- 3538, 3532, 3533, 3521, 3528, 3526, 3531, 3529, 3536, 3535,
- 3530, 3533, 3522, 3523, 3525, 3525, 3534, 3527, 3535, 3526,
- 3541, 3547, 3534, 3542, 3530, 3528, 3529, 3532, 3532, 3533,
+ 3533, 3516, 3517, 3534, 3522, 3518, 3530, 3538, 3521, 3524,
+ 3525, 3533, 3537, 3543, 3534, 3524, 3544, 3536, 3526, 3528,
+ 3531, 3530, 3536, 3537, 3541, 3542, 3546, 3533, 3547, 3538,
+ 3534, 3543, 3542, 3545, 3538, 3549, 3547, 3545, 3550, 3537,
+ 3543, 3551, 3553, 3552, 3554, 3562, 3556, 3551, 3544, 3552,
+ 3553, 3550, 3542, 3546, 3555, 3547, 3560, 3554, 3557, 3565,
+ 3545, 3549, 3549, 3570, 3570, 3550, 3559, 3557, 3551, 3553,
+ 3552, 3554, 3556, 3556, 3558, 3559, 3566, 3562, 3555, 3564,
+ 3558, 3555, 3569, 3560, 3571, 3557, 3564, 3569, 3572, 3574,
+ 3570, 3565, 3573, 3559, 3575, 3581, 3574, 3583, 3566, 3577,
- 3531, 3540, 3538, 3531, 3545, 3536, 3535, 3548, 3540, 3545,
- 3546, 3546, 3549, 3534, 3550, 3542, 3551, 3552, 3547, 3554,
- 3542, 3550, 3541, 3555, 3549, 3557, 3554, 3553, 3540, 3558,
- 3556, 3545, 3559, 3552, 3548, 3551, 3558, 3546, 3556, 3549,
- 3557, 3550, 3560, 3551, 3552, 3553, 3554, 3561, 3562, 3563,
- 3573, 3569, 3557, 3564, 3553, 3555, 3558, 3556, 3565, 3559,
- 3562, 3570, 3551, 3571, 3560, 3572, 3569, 3574, 3570, 3560,
- 3571, 3575, 3577, 3563, 3561, 3562, 3563, 3564, 3569, 3580,
- 3564, 3581, 3573, 3582, 3565, 3565, 3586, 3572, 3570, 3583,
- 3571, 3578, 3572, 3584, 3574, 3575, 3588, 3583, 3575, 3592,
+ 3578, 3558, 3576, 3566, 3573, 3579, 3564, 3578, 3585, 3569,
+ 3581, 3571, 3580, 3575, 3584, 3572, 3574, 3577, 3576, 3573,
+ 3580, 3575, 3581, 3582, 3583, 3587, 3577, 3578, 3589, 3576,
+ 3582, 3586, 3588, 3593, 3597, 3585, 3584, 3579, 3594, 3580,
+ 3575, 3584, 3596, 3586, 3595, 3594, 3598, 3601, 3593, 3587,
+ 3582, 3595, 3587, 3599, 3589, 3589, 3588, 0, 3586, 3588,
+ 3593, 3602, 3604, 3605, 3596, 3594, 3597, 0, 3607, 3596,
+ 3602, 3595, 3606, 3598, 3608, 3610, 3607, 3599, 3612, 3601,
+ 3599, 3609, 3609, 3613, 3604, 3614, 3615, 3614, 3602, 3604,
+ 3605, 3609, 3613, 3612, 3606, 3607, 3616, 3621, 3619, 3606,
- 3578, 3580, 3585, 3585, 3577, 3582, 3580, 3590, 3581, 3590,
- 3582, 3588, 3585, 3586, 3591, 3589, 3583, 3595, 3578, 3593,
- 3594, 3597, 3598, 3588, 3589, 3584, 3592, 3593, 3591, 3585,
- 3585, 3594, 3599, 3600, 3590, 3595, 3602, 3601, 3603, 3604,
- 3605, 3591, 3589, 3606, 3595, 3607, 3593, 3594, 3597, 3598,
- 3601, 3607, 3608, 3611, 3609, 3600, 3610, 3610, 3602, 3599,
- 3600, 3606, 3612, 3602, 3601, 3603, 3604, 3605, 3609, 3615,
- 3606, 3616, 3607, 3618, 3619, 3625, 0, 3629, 3622, 3608,
- 3625, 3609, 3616, 3610, 3612, 3611, 3622, 3623, 3631, 3612,
- 3626, 3627, 3628, 3623, 3637, 3626, 3615, 3628, 3616, 3627,
+ 3615, 3622, 3610, 3617, 3618, 3612, 3608, 3623, 3609, 3609,
+ 3613, 3617, 3614, 3615, 3624, 3618, 3619, 3626, 3627, 3625,
+ 3628, 3629, 3630, 3616, 3621, 3619, 3632, 3631, 3622, 3633,
+ 3617, 3618, 3625, 3631, 3623, 3635, 3624, 3634, 3634, 3626,
+ 3630, 3624, 3639, 3633, 3626, 3627, 3625, 3628, 3629, 3630,
+ 3636, 3640, 3642, 3632, 3631, 3643, 3633, 3646, 3649, 3655,
+ 3647, 3658, 3640, 3649, 3634, 3646, 3647, 3635, 3650, 3639,
+ 3653, 3652, 3636, 3650, 3658, 3651, 3652, 3636, 3640, 3642,
+ 3656, 3656, 3643, 3651, 3646, 3649, 3655, 3647, 3658, 3662,
+ 3661, 3657, 3665, 3660, 3663, 3650, 3653, 3653, 3652, 3657,
- 3618, 3619, 3625, 3629, 3629, 3622, 3632, 3632, 3633, 3634,
- 3638, 3641, 3637, 3636, 3623, 3631, 3633, 3626, 3627, 3628,
- 3636, 3637, 3634, 3639, 3640, 3642, 3644, 3643, 3645, 3650,
- 3639, 3640, 3646, 3632, 3643, 3633, 3634, 3638, 3641, 3646,
- 3636, 3644, 3647, 3658, 3660, 3653, 3649, 0, 3642, 3651,
- 3639, 3640, 3642, 3644, 3643, 3649, 3651, 3654, 3652, 3646,
- 3645, 3650, 3657, 3663, 3661, 3647, 3652, 3653, 3657, 3647,
- 3658, 3660, 3653, 3649, 3662, 3664, 3651, 3665, 3666, 3654,
- 0, 3667, 0, 3671, 3654, 3652, 3661, 3662, 0, 3657,
- 3664, 3661, 3669, 3672, 0, 3663, 3665, 3676, 3677, 3669,
+ 3660, 3663, 3651, 3664, 3666, 3667, 3669, 3656, 3661, 3668,
+ 3664, 3674, 3667, 3677, 3671, 3670, 3662, 3661, 3657, 3665,
+ 3660, 3663, 3670, 3678, 3668, 3673, 3675, 3666, 3682, 3684,
+ 3664, 3666, 3667, 3675, 3673, 3677, 3668, 3671, 3669, 3676,
+ 3677, 3671, 3670, 3674, 3686, 3678, 3685, 3676, 3681, 3687,
+ 3678, 3689, 3673, 3675, 3681, 3682, 3684, 3686, 3690, 3688,
+ 3691, 3695, 3693, 0, 0, 3700, 3676, 0, 3685, 3693,
+ 3689, 3686, 3696, 3685, 3688, 3681, 3697, 3703, 3689, 3699,
+ 3700, 3687, 3691, 3697, 3695, 3690, 3688, 3691, 3695, 3693,
+ 3698, 3702, 3700, 3701, 3696, 3705, 3711, 3698, 3703, 3696,
- 3673, 3662, 3664, 3667, 3665, 3666, 3671, 3673, 3667, 3674,
- 3671, 3675, 3676, 3677, 3678, 3672, 3674, 0, 3679, 3669,
- 3672, 3681, 3682, 3678, 3676, 3677, 3689, 3673, 3683, 0,
- 3682, 3687, 3689, 3675, 3686, 3683, 3674, 3684, 3675, 3679,
- 3681, 3678, 3687, 3686, 3684, 3679, 3688, 3688, 3681, 3682,
- 3690, 3694, 3693, 3689, 3692, 3683, 3688, 3699, 3687, 3693,
- 3695, 3686, 3697, 0, 3684, 3703, 3698, 3704, 3705, 3697,
- 0, 3699, 3690, 3688, 3688, 3712, 3692, 3690, 3710, 3693,
- 3714, 3692, 3695, 3694, 3699, 3709, 3713, 3695, 3714, 3697,
- 3698, 3705, 3703, 3698, 3704, 3705, 3715, 3709, 3717, 3720,
+ 3702, 3699, 3706, 3697, 3703, 3707, 3699, 3711, 3701, 3708,
+ 3706, 3714, 3707, 3713, 3705, 3710, 3708, 3698, 3702, 3713,
+ 3701, 3716, 3705, 3711, 3710, 3712, 3712, 3717, 3718, 3706,
+ 3723, 3722, 3707, 3714, 3717, 3712, 3708, 3719, 3714, 3721,
+ 3713, 3727, 3710, 3716, 3723, 3728, 3721, 3729, 3716, 3733,
+ 3736, 3734, 3712, 3712, 3717, 3722, 3739, 3723, 3722, 3719,
+ 3718, 3733, 3737, 3738, 3719, 3744, 3721, 3741, 3727, 3748,
+ 3729, 3738, 3728, 3734, 3729, 3754, 3733, 3736, 3734, 3741,
+ 3745, 3746, 3746, 3739, 3737, 3747, 3747, 0, 3745, 3737,
+ 3738, 3752, 3744, 3750, 3741, 3755, 3748, 3749, 3749, 3761,
- 3710, 3721, 3712, 3722, 3722, 3710, 3724, 3714, 3713, 3721,
- 3717, 3726, 3709, 3713, 3723, 3723, 3725, 3725, 3737, 3728,
- 3730, 3729, 3731, 3715, 3732, 3717, 3720, 3734, 3721, 3735,
- 3738, 3731, 3722, 3724, 3726, 3739, 3740, 3732, 3726, 3729,
- 0, 3728, 3741, 3723, 3740, 3725, 3728, 3730, 3729, 3731,
- 3737, 3732, 3742, 3744, 3734, 3740, 3735, 3743, 3745, 3746,
- 3744, 3747, 3738, 3740, 3748, 3745, 3754, 3739, 3749, 3741,
- 3752, 3740, 3752, 3748, 3753, 3749, 3761, 3759, 3755, 3742,
- 3744, 3746, 3762, 3743, 3743, 3745, 3746, 3756, 3747, 3754,
- 3760, 3748, 3763, 3754, 3753, 3749, 3755, 3752, 3758, 3756,
+ 3758, 3753, 3754, 3759, 3755, 3762, 3763, 3745, 3756, 3765,
+ 3746, 0, 3766, 3752, 3747, 3764, 3750, 3767, 3752, 3753,
+ 3750, 3756, 3755, 3764, 3770, 3768, 3749, 3758, 3753, 3771,
+ 3759, 3761, 3768, 3769, 3764, 3756, 3765, 3762, 3763, 3766,
+ 3769, 3773, 3764, 3767, 3767, 3772, 3770, 3776, 3773, 3776,
+ 3764, 3770, 3768, 3777, 3772, 3778, 3771, 3779, 3780, 0,
+ 3769, 3783, 3782, 3785, 3788, 3784, 3789, 3796, 3773, 3787,
+ 3780, 3782, 3772, 3777, 3776, 3779, 3786, 3790, 3778, 3793,
+ 3777, 0, 3778, 0, 3779, 3780, 3783, 3784, 3783, 3782,
+ 3785, 3788, 3784, 3789, 3786, 3787, 3787, 3791, 3792, 3796,
- 3762, 3753, 3759, 3761, 3759, 3755, 3764, 3758, 3765, 3762,
- 3766, 3767, 3760, 3772, 3756, 3768, 3767, 3760, 3763, 3763,
- 3773, 3769, 3773, 3770, 3771, 3758, 3770, 3768, 3774, 3771,
- 3775, 3779, 3776, 3764, 0, 3765, 3775, 3766, 3767, 3777,
- 3774, 3770, 3768, 3769, 3778, 3772, 3780, 3773, 3769, 3781,
- 3770, 0, 3778, 3770, 3776, 3774, 3771, 3775, 3779, 3776,
- 3782, 3777, 3783, 3784, 3785, 3788, 3777, 3789, 3790, 3792,
- 3781, 3778, 3795, 3797, 3798, 3784, 3781, 3799, 3780, 3793,
- 3789, 3795, 3800, 3801, 3803, 3804, 3785, 3782, 3805, 3783,
- 3784, 3785, 3788, 3806, 3789, 3790, 3792, 3793, 3809, 3795,
+ 3800, 3793, 3791, 3786, 3790, 3794, 3793, 3795, 3794, 3797,
+ 3792, 3797, 3795, 3799, 3798, 3801, 3803, 3804, 3806, 3799,
+ 3802, 3807, 3800, 3794, 3791, 3792, 3798, 3800, 3802, 3805,
+ 3809, 3812, 3794, 3814, 3808, 3794, 3797, 3801, 3813, 3795,
+ 3799, 3798, 3801, 3803, 3816, 3806, 3808, 3802, 3807, 3804,
+ 3805, 3813, 3809, 3819, 3817, 3821, 3805, 3809, 3812, 3822,
+ 3814, 3808, 3819, 3823, 3824, 3813, 3825, 3827, 3828, 3829,
+ 3830, 3816, 3817, 3831, 3831, 3834, 3839, 3837, 3838, 0,
+ 3819, 3817, 3821, 3833, 3837, 3838, 3822, 3844, 3850, 3845,
+ 3823, 3824, 0, 3825, 3827, 3828, 3829, 3830, 3841, 3839,
- 3797, 3798, 3807, 3807, 3799, 3810, 3793, 3813, 3815, 3800,
- 3801, 3803, 3804, 3817, 3813, 3805, 3809, 3814, 3816, 3820,
- 3806, 3822, 0, 3821, 3814, 3809, 3823, 3817, 3826, 3807,
- 3816, 3815, 3810, 3823, 3813, 3815, 3822, 3825, 3828, 3817,
- 3817, 3821, 3830, 3827, 3814, 3816, 3820, 3829, 3822, 3825,
- 3821, 3827, 3831, 3823, 3817, 3826, 3830, 3832, 3833, 3829,
- 3834, 3837, 3843, 3836, 3825, 3828, 0, 3831, 3842, 3830,
- 3827, 3841, 3848, 3833, 3829, 3836, 3845, 3842, 3849, 3831,
- 3844, 3844, 3846, 3832, 3832, 3833, 3843, 3834, 3837, 3843,
- 3836, 3846, 3850, 3841, 3851, 3842, 3848, 3853, 3841, 3848,
+ 3831, 3833, 3834, 3839, 3837, 3838, 3840, 3845, 3846, 3849,
+ 3833, 3851, 3841, 3847, 3844, 3850, 3845, 3852, 3840, 3851,
+ 3847, 3849, 3853, 3846, 3841, 3841, 3856, 3854, 3855, 3858,
+ 3857, 0, 3861, 3840, 3853, 3846, 3849, 0, 3851, 3841,
+ 3847, 3854, 3865, 3855, 3852, 3857, 3860, 3867, 3873, 3853,
+ 3869, 3866, 3856, 3856, 3854, 3855, 3858, 3857, 3860, 3861,
+ 3866, 3868, 3868, 3870, 3865, 3872, 3874, 0, 0, 3865,
+ 0, 3867, 3870, 3860, 3867, 3875, 3869, 3869, 3866, 3874,
+ 3873, 3881, 3880, 3876, 3878, 3877, 3885, 0, 3868, 3872,
+ 3870, 3876, 3872, 3874, 3877, 3878, 3884, 3875, 3885, 3881,
- 3852, 3854, 3845, 3845, 3856, 3850, 3853, 3844, 3852, 3846,
- 3849, 3857, 3854, 3860, 3861, 0, 3851, 3863, 3902, 3850,
- 3877, 3851, 3866, 3866, 3853, 3856, 3861, 3852, 3854, 3857,
- 3867, 3856, 3878, 3880, 3881, 0, 3860, 3867, 3857, 3882,
- 3860, 3861, 3877, 3863, 3863, 3883, 3888, 3877, 3889, 3866,
- 3902, 3880, 3881, 3883, 3884, 3884, 3878, 3867, 3885, 3878,
- 3880, 3881, 3884, 3887, 3882, 3890, 3882, 3885, 3892, 3895,
- 3894, 3896, 3883, 3888, 3894, 3889, 3897, 3887, 3905, 3898,
- 3900, 3884, 3884, 3897, 3903, 3885, 3904, 3895, 3903, 3906,
- 3887, 3898, 3890, 3900, 3896, 3892, 3895, 3894, 3896, 3908,
+ 3887, 0, 3875, 3880, 3890, 3890, 3901, 3891, 3881, 3880,
+ 3876, 3878, 3877, 3885, 3891, 3902, 3906, 3904, 3905, 3884,
+ 3912, 3907, 3913, 3884, 3908, 3908, 3887, 3887, 3901, 3907,
+ 3914, 3890, 3908, 3901, 3891, 3904, 3905, 3909, 3916, 3902,
+ 3911, 3906, 3902, 3906, 3904, 3905, 3909, 3912, 3907, 3913,
+ 3919, 3908, 3908, 3920, 3911, 3918, 3921, 3914, 3922, 3918,
+ 3924, 3926, 3927, 3921, 3909, 3916, 3927, 3911, 3919, 3929,
+ 3922, 3932, 3928, 3924, 3931, 3930, 3920, 3919, 3933, 0,
+ 3920, 3935, 3918, 3921, 0, 3922, 3931, 3924, 3928, 3927,
+ 3935, 3929, 3933, 3926, 3938, 3934, 3929, 3932, 3932, 3928,
- 3905, 3909, 3904, 3897, 3910, 3905, 3898, 3900, 3907, 3911,
- 3912, 3903, 3910, 3904, 3906, 3909, 3906, 3913, 3911, 3913,
- 3907, 3912, 3914, 3915, 3916, 3908, 3908, 3918, 3909, 3922,
- 3917, 3910, 3919, 3918, 3914, 3907, 3911, 3912, 3920, 3916,
- 3921, 3915, 0, 3926, 3913, 0, 3923, 3919, 3921, 3914,
- 3915, 3916, 3917, 3923, 3918, 3924, 3922, 3917, 3925, 3919,
- 3920, 3927, 3929, 3928, 3931, 3920, 3936, 3921, 3927, 3924,
- 3926, 3928, 3925, 3923, 3938, 3940, 3930, 3937, 3939, 3936,
- 3941, 3929, 3924, 3930, 3937, 3925, 3931, 3942, 3927, 3929,
- 3928, 3931, 3943, 3936, 3944, 3945, 3939, 0, 3946, 3940,
+ 3930, 3931, 3930, 3934, 3936, 3933, 3938, 3937, 3935, 3937,
+ 3939, 3940, 3942, 3941, 3943, 3936, 3945, 3946, 3942, 3948,
+ 3944, 3938, 3934, 3947, 3945, 3950, 3940, 0, 3939, 3943,
+ 3947, 3936, 0, 3948, 3937, 3941, 3955, 3939, 3940, 3942,
+ 3941, 3943, 3944, 3945, 3946, 3949, 3948, 3944, 3951, 3952,
+ 3947, 3953, 3950, 3954, 3960, 3951, 3962, 3952, 3955, 3949,
+ 3954, 3961, 3964, 3955, 3963, 3965, 0, 3960, 3961, 3967,
+ 3953, 3966, 3949, 3968, 3969, 3951, 3952, 3970, 3953, 3972,
+ 3954, 3960, 3963, 3962, 3977, 3970, 3964, 3971, 3961, 3964,
+ 3973, 3963, 3965, 3966, 3971, 3967, 3967, 3974, 3966, 3976,
- 3948, 3938, 3940, 3930, 3937, 3939, 3946, 3941, 3947, 3942,
- 3949, 3950, 3956, 3953, 3942, 3947, 3955, 3952, 3943, 3943,
- 3957, 3944, 3945, 3954, 3948, 3946, 3951, 3948, 3951, 3952,
- 3959, 3955, 3949, 3950, 3956, 3947, 3954, 3949, 3950, 3956,
- 3960, 3958, 3961, 3955, 3952, 3953, 3963, 3957, 3958, 3964,
- 3954, 3967, 3965, 3951, 3968, 3969, 3970, 3959, 3968, 3973,
- 3971, 3976, 3972, 3975, 3986, 3982, 3987, 3960, 3958, 3961,
- 3972, 3964, 3971, 3963, 3965, 3975, 3964, 3976, 3967, 3965,
- 3983, 3968, 3969, 3970, 3979, 3984, 3973, 3971, 3976, 3972,
- 3975, 3978, 3982, 3979, 3978, 3985, 3986, 3988, 3987, 3989,
+ 3968, 3969, 3978, 3972, 3970, 3975, 3972, 3975, 3979, 3980,
+ 3981, 3976, 3973, 3982, 3971, 3978, 3977, 3973, 3983, 3974,
+ 3982, 3984, 3985, 3979, 3974, 3987, 3976, 3991, 3988, 3978,
+ 3993, 3980, 3975, 3994, 3989, 3979, 3980, 3981, 3992, 3995,
+ 3982, 3997, 3992, 4006, 4003, 3983, 3999, 4000, 3984, 3985,
+ 3988, 3995, 3987, 4003, 3991, 3988, 3989, 3993, 3999, 3996,
+ 3994, 3989, 4007, 4000, 4008, 3992, 3995, 3996, 3997, 4002,
+ 4006, 4003, 4002, 3999, 4000, 4010, 4009, 4011, 4015, 4012,
+ 0, 4013, 0, 4008, 4009, 4014, 3996, 4016, 4007, 4007,
+ 4018, 4008, 4012, 4014, 0, 4013, 4002, 4030, 4023, 4024,
- 3990, 3991, 3992, 3985, 3984, 3994, 3983, 3983, 3990, 3999,
- 3988, 3979, 3984, 3989, 4005, 4009, 4011, 4008, 3978, 4000,
- 4005, 3999, 3985, 3991, 3988, 4002, 3989, 3990, 3991, 3992,
- 4008, 4000, 3994, 4006, 4010, 4014, 3999, 4002, 0, 4011,
- 4006, 4005, 4009, 4011, 4008, 4010, 4000, 4013, 4015, 4016,
- 4017, 4018, 4002, 0, 4013, 4021, 4015, 4014, 4019, 4018,
- 4006, 4010, 4014, 4016, 4017, 4020, 4024, 4025, 4034, 4032,
- 4026, 4031, 4024, 4025, 4013, 4015, 4016, 4017, 4018, 4026,
- 4019, 4027, 4021, 4029, 4033, 4019, 4028, 4020, 4027, 4031,
- 4035, 4029, 4020, 4024, 4025, 4028, 4032, 4026, 4031, 4036,
+ 4015, 4026, 0, 4009, 4030, 4015, 4012, 4010, 4013, 4011,
+ 4023, 4024, 4014, 4026, 4016, 4029, 4032, 4018, 4033, 4034,
+ 4040, 4029, 4038, 0, 4030, 4023, 4024, 4035, 4026, 4032,
+ 4034, 4037, 4039, 4042, 4040, 4043, 4045, 4041, 4037, 4044,
+ 4039, 4042, 4029, 4032, 4038, 4033, 4034, 4040, 4051, 4038,
+ 4035, 4041, 4055, 4058, 4035, 4051, 4056, 4043, 4037, 4039,
+ 4042, 4044, 4043, 4045, 4041, 4048, 4044, 4049, 4050, 4052,
+ 4055, 4048, 4053, 4049, 4059, 4051, 4057, 4050, 4052, 4055,
+ 4053, 0, 4060, 4056, 4061, 4058, 4062, 4064, 4069, 4063,
+ 0, 4071, 4048, 0, 4049, 4050, 4052, 4063, 4057, 4053,
- 4034, 4037, 4038, 4040, 4039, 4055, 4033, 4042, 4027, 4044,
- 4029, 4033, 4039, 4028, 4042, 4043, 4035, 4035, 4045, 4046,
- 4047, 4036, 4043, 4037, 4038, 4050, 4036, 0, 4037, 4038,
- 4048, 4039, 4044, 4052, 4042, 4040, 4044, 4055, 4058, 4048,
- 4059, 4046, 4043, 4051, 4060, 4045, 4046, 4047, 4050, 4062,
- 4053, 4051, 4050, 4052, 4054, 4056, 4064, 4048, 4053, 4057,
- 4052, 4065, 4054, 4056, 4068, 4058, 4066, 4059, 4067, 4066,
- 4051, 4060, 4068, 4057, 4071, 4062, 4062, 4053, 4064, 4069,
- 4070, 4054, 4056, 4064, 4066, 4076, 4057, 4069, 4065, 4072,
- 4067, 4068, 4077, 4066, 4070, 4067, 4066, 4079, 4079, 4076,
+ 4059, 4059, 4068, 4057, 4060, 4066, 4061, 4067, 4062, 4060,
+ 4074, 4061, 4066, 4062, 4067, 4069, 4063, 4070, 4071, 4064,
+ 4075, 4072, 4076, 4077, 4079, 4068, 4081, 4078, 4075, 4068,
+ 4072, 4077, 4066, 4074, 4067, 4078, 4082, 4074, 4080, 4070,
+ 4081, 4083, 4076, 4084, 4070, 4086, 4080, 4075, 4072, 4076,
+ 4077, 4088, 4089, 4081, 4078, 4091, 4079, 4090, 4092, 4093,
+ 4090, 4096, 4094, 4082, 4095, 4080, 4092, 4093, 4083, 4101,
+ 4084, 4086, 4086, 4088, 4104, 4090, 4094, 4091, 4088, 4089,
+ 4100, 0, 4091, 4096, 4090, 4092, 4093, 4090, 4096, 4094,
+ 4095, 4095, 4101, 4106, 4100, 4105, 4101, 4103, 4103, 4107,
- 4071, 4071, 4080, 0, 4082, 4081, 4069, 4070, 4083, 0,
- 0, 4072, 4076, 4081, 4084, 4077, 4072, 4085, 4086, 4077,
- 4087, 4088, 0, 0, 4079, 4090, 4086, 4089, 4080, 4080,
- 4082, 4082, 4081, 4091, 4083, 4083, 4084, 4085, 4092, 4093,
- 4095, 4084, 4099, 4094, 4085, 4086, 4102, 4087, 4088, 4089,
- 4090, 4094, 4090, 4096, 4089, 4100, 4103, 4108, 4092, 4093,
- 4091, 4096, 4095, 4100, 4104, 4092, 4093, 4095, 4102, 4099,
- 4094, 4105, 4104, 4102, 4106, 0, 4111, 4109, 4103, 4105,
- 4096, 4110, 4100, 4103, 4108, 4109, 4112, 4113, 4115, 4110,
- 4116, 4104, 4117, 0, 4119, 4125, 4122, 4123, 4105, 4126,
+ 4104, 4104, 4110, 4105, 4111, 4108, 4112, 4100, 4109, 0,
+ 4110, 4114, 4113, 4115, 0, 4118, 0, 4116, 4123, 4106,
+ 4106, 4117, 4105, 4118, 4103, 4107, 4107, 4108, 4109, 4110,
+ 4119, 4111, 4108, 4112, 4113, 4109, 4114, 4116, 4114, 4113,
+ 4115, 4117, 4118, 4120, 4116, 4123, 4124, 4126, 4117, 4127,
+ 4128, 4120, 4119, 4129, 4124, 4130, 4132, 4119, 4128, 4133,
+ 4134, 4129, 4135, 4136, 4137, 4139, 4140, 4133, 4134, 4126,
+ 4120, 4127, 4143, 4124, 4126, 4141, 4127, 4128, 4146, 0,
+ 4129, 4130, 4130, 4132, 4137, 4149, 4133, 4134, 4135, 4135,
+ 4136, 4137, 4139, 4140, 4143, 4141, 4147, 4150, 4148, 4143,
- 4106, 4106, 4111, 4111, 4109, 4123, 0, 4113, 4110, 0,
- 0, 0, 4117, 4112, 4113, 4115, 4119, 4116, 4122, 4117,
- 4124, 4119, 4125, 4122, 4123, 0, 4126, 0, 4124, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 4124, 4130, 4130,
- 4130, 4130, 4130, 4130, 4130, 4131, 4131, 4131, 4131, 4131,
- 4131, 4131, 4132, 4132, 4132, 4132, 4132, 4132, 4132, 4133,
- 4133, 4133, 4133, 4133, 4133, 4133, 4134, 4134, 4134, 4134,
- 4134, 4134, 4134, 4135, 4135, 4135, 4135, 4135, 4135, 4135,
- 4136, 4136, 4136, 4136, 4136, 4136, 4136, 4138, 4138, 0,
+ 4146, 0, 4141, 0, 4147, 4146, 4148, 0, 0, 0,
+ 0, 0, 4149, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 4147, 4150, 4148, 4154, 4154, 4154, 4154,
+ 4154, 4154, 4154, 4155, 4155, 4155, 4155, 4155, 4155, 4155,
+ 4156, 4156, 4156, 4156, 4156, 4156, 4156, 4157, 4157, 4157,
+ 4157, 4157, 4157, 4157, 4158, 4158, 4158, 4158, 4158, 4158,
+ 4158, 4159, 4159, 4159, 4159, 4159, 4159, 4159, 4160, 4160,
+ 4160, 4160, 4160, 4160, 4160, 4162, 4162, 0, 4162, 4162,
+ 4162, 4162, 4163, 4163, 0, 0, 0, 4163, 4163, 4164,
+ 4164, 0, 0, 4164, 0, 4164, 4165, 0, 0, 0,
- 4138, 4138, 4138, 4138, 4139, 4139, 0, 0, 0, 4139,
- 4139, 4140, 4140, 0, 0, 4140, 0, 4140, 4141, 0,
- 0, 0, 0, 0, 4141, 4142, 4142, 0, 0, 0,
- 4142, 4142, 4143, 0, 0, 0, 0, 0, 4143, 4144,
- 4144, 0, 4144, 4144, 4144, 4144, 4145, 0, 0, 0,
- 0, 0, 4145, 4146, 4146, 0, 0, 0, 4146, 4146,
- 4147, 4147, 0, 4147, 4147, 4147, 4147, 4129, 4129, 4129,
- 4129, 4129, 4129, 4129, 4129, 4129, 4129, 4129, 4129, 4129,
- 4129, 4129, 4129, 4129, 4129, 4129, 4129, 4129, 4129, 4129,
- 4129, 4129, 4129, 4129, 4129, 4129, 4129, 4129, 4129, 4129,
+ 0, 0, 4165, 4166, 4166, 0, 0, 0, 4166, 4166,
+ 4167, 0, 0, 0, 0, 0, 4167, 4168, 4168, 0,
+ 4168, 4168, 4168, 4168, 4169, 0, 0, 0, 0, 0,
+ 4169, 4170, 4170, 0, 0, 0, 4170, 4170, 4171, 4171,
+ 0, 4171, 4171, 4171, 4171, 4153, 4153, 4153, 4153, 4153,
+ 4153, 4153, 4153, 4153, 4153, 4153, 4153, 4153, 4153, 4153,
+ 4153, 4153, 4153, 4153, 4153, 4153, 4153, 4153, 4153, 4153,
+ 4153, 4153, 4153, 4153, 4153, 4153, 4153, 4153, 4153, 4153,
+ 4153, 4153, 4153, 4153, 4153, 4153, 4153, 4153, 4153, 4153,
+ 4153, 4153, 4153, 4153, 4153, 4153, 4153, 4153, 4153, 4153,
- 4129, 4129, 4129, 4129, 4129, 4129, 4129, 4129, 4129, 4129,
- 4129, 4129, 4129, 4129, 4129, 4129, 4129, 4129, 4129, 4129,
- 4129, 4129, 4129, 4129, 4129, 4129, 4129, 4129, 4129, 4129,
- 4129, 4129, 4129, 4129
+ 4153, 4153, 4153, 4153, 4153, 4153, 4153, 4153, 4153, 4153,
+ 4153, 4153
} ;
static yy_state_type yy_last_accepting_state;
@@ -4428,7 +4455,6 @@ char *yytext;
#pragma GCC diagnostic ignored "-Wsign-compare"
#endif
-#include <ctype.h>
#include <strings.h>
#ifdef HAVE_GLOB_H
# include <glob.h>
@@ -4599,18 +4625,18 @@ static void config_end_include(void)
}
#endif
-#line 4600 "<stdout>"
+#line 4626 "<stdout>"
#define YY_NO_INPUT 1
-#line 191 "util/configlexer.lex"
+#line 190 "util/configlexer.lex"
#ifndef YY_NO_UNPUT
#define YY_NO_UNPUT 1
#endif
#ifndef YY_NO_INPUT
#define YY_NO_INPUT 1
#endif
-#line 4609 "<stdout>"
+#line 4635 "<stdout>"
-#line 4611 "<stdout>"
+#line 4637 "<stdout>"
#define INITIAL 0
#define quotedstring 1
@@ -4832,9 +4858,9 @@ YY_DECL
}
{
-#line 211 "util/configlexer.lex"
+#line 210 "util/configlexer.lex"
-#line 4835 "<stdout>"
+#line 4861 "<stdout>"
while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
{
@@ -4867,13 +4893,13 @@ yy_match:
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 4130 )
+ if ( yy_current_state >= 4154 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
++yy_cp;
}
- while ( yy_base[yy_current_state] != 11768 );
+ while ( yy_base[yy_current_state] != 11846 );
yy_find_action:
yy_act = yy_accept[yy_current_state];
@@ -4899,1973 +4925,1988 @@ do_action: /* This label is used only to access EOF actions. */
case 1:
YY_RULE_SETUP
-#line 212 "util/configlexer.lex"
+#line 211 "util/configlexer.lex"
{
LEXOUT(("SP ")); /* ignore */ }
YY_BREAK
case 2:
YY_RULE_SETUP
-#line 214 "util/configlexer.lex"
+#line 213 "util/configlexer.lex"
{
/* note that flex makes the longest match and '.' is any but not nl */
LEXOUT(("comment(%s) ", yytext)); /* ignore */ }
YY_BREAK
case 3:
YY_RULE_SETUP
-#line 217 "util/configlexer.lex"
+#line 216 "util/configlexer.lex"
{ YDVAR(0, VAR_SERVER) }
YY_BREAK
case 4:
YY_RULE_SETUP
-#line 218 "util/configlexer.lex"
+#line 217 "util/configlexer.lex"
{ YDVAR(1, VAR_QNAME_MINIMISATION) }
YY_BREAK
case 5:
YY_RULE_SETUP
-#line 219 "util/configlexer.lex"
+#line 218 "util/configlexer.lex"
{ YDVAR(1, VAR_QNAME_MINIMISATION_STRICT) }
YY_BREAK
case 6:
YY_RULE_SETUP
-#line 220 "util/configlexer.lex"
+#line 219 "util/configlexer.lex"
{ YDVAR(1, VAR_NUM_THREADS) }
YY_BREAK
case 7:
YY_RULE_SETUP
-#line 221 "util/configlexer.lex"
+#line 220 "util/configlexer.lex"
{ YDVAR(1, VAR_VERBOSITY) }
YY_BREAK
case 8:
YY_RULE_SETUP
-#line 222 "util/configlexer.lex"
+#line 221 "util/configlexer.lex"
{ YDVAR(1, VAR_PORT) }
YY_BREAK
case 9:
YY_RULE_SETUP
-#line 223 "util/configlexer.lex"
+#line 222 "util/configlexer.lex"
{ YDVAR(1, VAR_OUTGOING_RANGE) }
YY_BREAK
case 10:
YY_RULE_SETUP
-#line 224 "util/configlexer.lex"
+#line 223 "util/configlexer.lex"
{ YDVAR(1, VAR_OUTGOING_PORT_PERMIT) }
YY_BREAK
case 11:
YY_RULE_SETUP
-#line 225 "util/configlexer.lex"
+#line 224 "util/configlexer.lex"
{ YDVAR(1, VAR_OUTGOING_PORT_AVOID) }
YY_BREAK
case 12:
YY_RULE_SETUP
-#line 226 "util/configlexer.lex"
+#line 225 "util/configlexer.lex"
{ YDVAR(1, VAR_OUTGOING_NUM_TCP) }
YY_BREAK
case 13:
YY_RULE_SETUP
-#line 227 "util/configlexer.lex"
+#line 226 "util/configlexer.lex"
{ YDVAR(1, VAR_INCOMING_NUM_TCP) }
YY_BREAK
case 14:
YY_RULE_SETUP
-#line 228 "util/configlexer.lex"
+#line 227 "util/configlexer.lex"
{ YDVAR(1, VAR_DO_IP4) }
YY_BREAK
case 15:
YY_RULE_SETUP
-#line 229 "util/configlexer.lex"
+#line 228 "util/configlexer.lex"
{ YDVAR(1, VAR_DO_IP6) }
YY_BREAK
case 16:
YY_RULE_SETUP
-#line 230 "util/configlexer.lex"
+#line 229 "util/configlexer.lex"
{ YDVAR(1, VAR_DO_NAT64) }
YY_BREAK
case 17:
YY_RULE_SETUP
-#line 231 "util/configlexer.lex"
+#line 230 "util/configlexer.lex"
{ YDVAR(1, VAR_PREFER_IP4) }
YY_BREAK
case 18:
YY_RULE_SETUP
-#line 232 "util/configlexer.lex"
+#line 231 "util/configlexer.lex"
{ YDVAR(1, VAR_PREFER_IP6) }
YY_BREAK
case 19:
YY_RULE_SETUP
-#line 233 "util/configlexer.lex"
+#line 232 "util/configlexer.lex"
{ YDVAR(1, VAR_DO_UDP) }
YY_BREAK
case 20:
YY_RULE_SETUP
-#line 234 "util/configlexer.lex"
+#line 233 "util/configlexer.lex"
{ YDVAR(1, VAR_DO_TCP) }
YY_BREAK
case 21:
YY_RULE_SETUP
-#line 235 "util/configlexer.lex"
+#line 234 "util/configlexer.lex"
{ YDVAR(1, VAR_TCP_UPSTREAM) }
YY_BREAK
case 22:
YY_RULE_SETUP
-#line 236 "util/configlexer.lex"
+#line 235 "util/configlexer.lex"
{ YDVAR(1, VAR_TCP_MSS) }
YY_BREAK
case 23:
YY_RULE_SETUP
-#line 237 "util/configlexer.lex"
+#line 236 "util/configlexer.lex"
{ YDVAR(1, VAR_OUTGOING_TCP_MSS) }
YY_BREAK
case 24:
YY_RULE_SETUP
-#line 238 "util/configlexer.lex"
+#line 237 "util/configlexer.lex"
{ YDVAR(1, VAR_TCP_IDLE_TIMEOUT) }
YY_BREAK
case 25:
YY_RULE_SETUP
-#line 239 "util/configlexer.lex"
+#line 238 "util/configlexer.lex"
{ YDVAR(1, VAR_MAX_REUSE_TCP_QUERIES) }
YY_BREAK
case 26:
YY_RULE_SETUP
-#line 240 "util/configlexer.lex"
+#line 239 "util/configlexer.lex"
{ YDVAR(1, VAR_TCP_REUSE_TIMEOUT) }
YY_BREAK
case 27:
YY_RULE_SETUP
-#line 241 "util/configlexer.lex"
+#line 240 "util/configlexer.lex"
{ YDVAR(1, VAR_TCP_AUTH_QUERY_TIMEOUT) }
YY_BREAK
case 28:
YY_RULE_SETUP
-#line 242 "util/configlexer.lex"
+#line 241 "util/configlexer.lex"
{ YDVAR(1, VAR_EDNS_TCP_KEEPALIVE) }
YY_BREAK
case 29:
YY_RULE_SETUP
-#line 243 "util/configlexer.lex"
+#line 242 "util/configlexer.lex"
{ YDVAR(1, VAR_EDNS_TCP_KEEPALIVE_TIMEOUT) }
YY_BREAK
case 30:
YY_RULE_SETUP
-#line 244 "util/configlexer.lex"
+#line 243 "util/configlexer.lex"
{ YDVAR(1, VAR_SOCK_QUEUE_TIMEOUT) }
YY_BREAK
case 31:
YY_RULE_SETUP
-#line 245 "util/configlexer.lex"
+#line 244 "util/configlexer.lex"
{ YDVAR(1, VAR_SSL_UPSTREAM) }
YY_BREAK
case 32:
YY_RULE_SETUP
-#line 246 "util/configlexer.lex"
+#line 245 "util/configlexer.lex"
{ YDVAR(1, VAR_SSL_UPSTREAM) }
YY_BREAK
case 33:
YY_RULE_SETUP
-#line 247 "util/configlexer.lex"
+#line 246 "util/configlexer.lex"
{ YDVAR(1, VAR_SSL_SERVICE_KEY) }
YY_BREAK
case 34:
YY_RULE_SETUP
-#line 248 "util/configlexer.lex"
+#line 247 "util/configlexer.lex"
{ YDVAR(1, VAR_SSL_SERVICE_KEY) }
YY_BREAK
case 35:
YY_RULE_SETUP
-#line 249 "util/configlexer.lex"
+#line 248 "util/configlexer.lex"
{ YDVAR(1, VAR_SSL_SERVICE_PEM) }
YY_BREAK
case 36:
YY_RULE_SETUP
-#line 250 "util/configlexer.lex"
+#line 249 "util/configlexer.lex"
{ YDVAR(1, VAR_SSL_SERVICE_PEM) }
YY_BREAK
case 37:
YY_RULE_SETUP
-#line 251 "util/configlexer.lex"
+#line 250 "util/configlexer.lex"
{ YDVAR(1, VAR_SSL_PORT) }
YY_BREAK
case 38:
YY_RULE_SETUP
-#line 252 "util/configlexer.lex"
+#line 251 "util/configlexer.lex"
{ YDVAR(1, VAR_SSL_PORT) }
YY_BREAK
case 39:
YY_RULE_SETUP
-#line 253 "util/configlexer.lex"
+#line 252 "util/configlexer.lex"
{ YDVAR(1, VAR_TLS_CERT_BUNDLE) }
YY_BREAK
case 40:
YY_RULE_SETUP
-#line 254 "util/configlexer.lex"
+#line 253 "util/configlexer.lex"
{ YDVAR(1, VAR_TLS_CERT_BUNDLE) }
YY_BREAK
case 41:
YY_RULE_SETUP
-#line 255 "util/configlexer.lex"
+#line 254 "util/configlexer.lex"
{ YDVAR(1, VAR_TLS_WIN_CERT) }
YY_BREAK
case 42:
YY_RULE_SETUP
-#line 256 "util/configlexer.lex"
+#line 255 "util/configlexer.lex"
{ YDVAR(1, VAR_TLS_WIN_CERT) }
YY_BREAK
case 43:
YY_RULE_SETUP
-#line 257 "util/configlexer.lex"
+#line 256 "util/configlexer.lex"
{ YDVAR(1, VAR_TLS_ADDITIONAL_PORT) }
YY_BREAK
case 44:
YY_RULE_SETUP
-#line 258 "util/configlexer.lex"
+#line 257 "util/configlexer.lex"
{ YDVAR(1, VAR_TLS_ADDITIONAL_PORT) }
YY_BREAK
case 45:
YY_RULE_SETUP
-#line 259 "util/configlexer.lex"
+#line 258 "util/configlexer.lex"
{ YDVAR(1, VAR_TLS_ADDITIONAL_PORT) }
YY_BREAK
case 46:
YY_RULE_SETUP
-#line 260 "util/configlexer.lex"
+#line 259 "util/configlexer.lex"
{ YDVAR(1, VAR_TLS_ADDITIONAL_PORT) }
YY_BREAK
case 47:
YY_RULE_SETUP
-#line 261 "util/configlexer.lex"
+#line 260 "util/configlexer.lex"
{ YDVAR(1, VAR_TLS_SESSION_TICKET_KEYS) }
YY_BREAK
case 48:
YY_RULE_SETUP
-#line 262 "util/configlexer.lex"
+#line 261 "util/configlexer.lex"
{ YDVAR(1, VAR_TLS_CIPHERS) }
YY_BREAK
case 49:
YY_RULE_SETUP
-#line 263 "util/configlexer.lex"
+#line 262 "util/configlexer.lex"
{ YDVAR(1, VAR_TLS_CIPHERSUITES) }
YY_BREAK
case 50:
YY_RULE_SETUP
-#line 264 "util/configlexer.lex"
+#line 263 "util/configlexer.lex"
{ YDVAR(1, VAR_TLS_USE_SNI) }
YY_BREAK
case 51:
YY_RULE_SETUP
+#line 264 "util/configlexer.lex"
+{ YDVAR(1, VAR_TLS_PROTOCOLS) }
+ YY_BREAK
+case 52:
+YY_RULE_SETUP
#line 265 "util/configlexer.lex"
{ YDVAR(1, VAR_HTTPS_PORT) }
YY_BREAK
-case 52:
+case 53:
YY_RULE_SETUP
#line 266 "util/configlexer.lex"
{ YDVAR(1, VAR_HTTP_ENDPOINT) }
YY_BREAK
-case 53:
+case 54:
YY_RULE_SETUP
#line 267 "util/configlexer.lex"
{ YDVAR(1, VAR_HTTP_MAX_STREAMS) }
YY_BREAK
-case 54:
+case 55:
YY_RULE_SETUP
#line 268 "util/configlexer.lex"
{ YDVAR(1, VAR_HTTP_QUERY_BUFFER_SIZE) }
YY_BREAK
-case 55:
+case 56:
YY_RULE_SETUP
#line 269 "util/configlexer.lex"
{ YDVAR(1, VAR_HTTP_RESPONSE_BUFFER_SIZE) }
YY_BREAK
-case 56:
+case 57:
YY_RULE_SETUP
#line 270 "util/configlexer.lex"
{ YDVAR(1, VAR_HTTP_NODELAY) }
YY_BREAK
-case 57:
+case 58:
YY_RULE_SETUP
#line 271 "util/configlexer.lex"
{ YDVAR(1, VAR_HTTP_NOTLS_DOWNSTREAM) }
YY_BREAK
-case 58:
+case 59:
YY_RULE_SETUP
#line 272 "util/configlexer.lex"
{ YDVAR(1, VAR_QUIC_PORT) }
YY_BREAK
-case 59:
+case 60:
YY_RULE_SETUP
#line 273 "util/configlexer.lex"
{ YDVAR(1, VAR_QUIC_SIZE) }
YY_BREAK
-case 60:
+case 61:
YY_RULE_SETUP
#line 274 "util/configlexer.lex"
{ YDVAR(1, VAR_USE_SYSTEMD) }
YY_BREAK
-case 61:
+case 62:
YY_RULE_SETUP
#line 275 "util/configlexer.lex"
{ YDVAR(1, VAR_DO_DAEMONIZE) }
YY_BREAK
-case 62:
+case 63:
YY_RULE_SETUP
#line 276 "util/configlexer.lex"
{ YDVAR(1, VAR_INTERFACE) }
YY_BREAK
-case 63:
+case 64:
YY_RULE_SETUP
#line 277 "util/configlexer.lex"
{ YDVAR(1, VAR_INTERFACE) }
YY_BREAK
-case 64:
+case 65:
YY_RULE_SETUP
#line 278 "util/configlexer.lex"
{ YDVAR(1, VAR_OUTGOING_INTERFACE) }
YY_BREAK
-case 65:
+case 66:
YY_RULE_SETUP
#line 279 "util/configlexer.lex"
{ YDVAR(1, VAR_INTERFACE_AUTOMATIC) }
YY_BREAK
-case 66:
+case 67:
YY_RULE_SETUP
#line 280 "util/configlexer.lex"
{ YDVAR(1, VAR_INTERFACE_AUTOMATIC_PORTS) }
YY_BREAK
-case 67:
+case 68:
YY_RULE_SETUP
#line 281 "util/configlexer.lex"
{ YDVAR(1, VAR_SO_RCVBUF) }
YY_BREAK
-case 68:
+case 69:
YY_RULE_SETUP
#line 282 "util/configlexer.lex"
{ YDVAR(1, VAR_SO_SNDBUF) }
YY_BREAK
-case 69:
+case 70:
YY_RULE_SETUP
#line 283 "util/configlexer.lex"
{ YDVAR(1, VAR_SO_REUSEPORT) }
YY_BREAK
-case 70:
+case 71:
YY_RULE_SETUP
#line 284 "util/configlexer.lex"
{ YDVAR(1, VAR_IP_TRANSPARENT) }
YY_BREAK
-case 71:
+case 72:
YY_RULE_SETUP
#line 285 "util/configlexer.lex"
{ YDVAR(1, VAR_IP_FREEBIND) }
YY_BREAK
-case 72:
+case 73:
YY_RULE_SETUP
#line 286 "util/configlexer.lex"
{ YDVAR(1, VAR_IP_DSCP) }
YY_BREAK
-case 73:
+case 74:
YY_RULE_SETUP
#line 287 "util/configlexer.lex"
{ YDVAR(1, VAR_CHROOT) }
YY_BREAK
-case 74:
+case 75:
YY_RULE_SETUP
#line 288 "util/configlexer.lex"
{ YDVAR(1, VAR_USERNAME) }
YY_BREAK
-case 75:
+case 76:
YY_RULE_SETUP
#line 289 "util/configlexer.lex"
{ YDVAR(1, VAR_DIRECTORY) }
YY_BREAK
-case 76:
+case 77:
YY_RULE_SETUP
#line 290 "util/configlexer.lex"
{ YDVAR(1, VAR_LOGFILE) }
YY_BREAK
-case 77:
+case 78:
YY_RULE_SETUP
#line 291 "util/configlexer.lex"
{ YDVAR(1, VAR_PIDFILE) }
YY_BREAK
-case 78:
+case 79:
YY_RULE_SETUP
#line 292 "util/configlexer.lex"
{ YDVAR(1, VAR_ROOT_HINTS) }
YY_BREAK
-case 79:
+case 80:
YY_RULE_SETUP
#line 293 "util/configlexer.lex"
{ YDVAR(1, VAR_STREAM_WAIT_SIZE) }
YY_BREAK
-case 80:
+case 81:
YY_RULE_SETUP
#line 294 "util/configlexer.lex"
{ YDVAR(1, VAR_EDNS_BUFFER_SIZE) }
YY_BREAK
-case 81:
+case 82:
YY_RULE_SETUP
#line 295 "util/configlexer.lex"
{ YDVAR(1, VAR_MSG_BUFFER_SIZE) }
YY_BREAK
-case 82:
+case 83:
YY_RULE_SETUP
#line 296 "util/configlexer.lex"
{ YDVAR(1, VAR_MSG_CACHE_SIZE) }
YY_BREAK
-case 83:
+case 84:
YY_RULE_SETUP
#line 297 "util/configlexer.lex"
{ YDVAR(1, VAR_MSG_CACHE_SLABS) }
YY_BREAK
-case 84:
+case 85:
YY_RULE_SETUP
#line 298 "util/configlexer.lex"
{ YDVAR(1, VAR_RRSET_CACHE_SIZE) }
YY_BREAK
-case 85:
+case 86:
YY_RULE_SETUP
#line 299 "util/configlexer.lex"
{ YDVAR(1, VAR_RRSET_CACHE_SLABS) }
YY_BREAK
-case 86:
+case 87:
YY_RULE_SETUP
#line 300 "util/configlexer.lex"
{ YDVAR(1, VAR_CACHE_MAX_TTL) }
YY_BREAK
-case 87:
+case 88:
YY_RULE_SETUP
#line 301 "util/configlexer.lex"
{ YDVAR(1, VAR_CACHE_MAX_NEGATIVE_TTL) }
YY_BREAK
-case 88:
+case 89:
YY_RULE_SETUP
#line 302 "util/configlexer.lex"
{ YDVAR(1, VAR_CACHE_MIN_NEGATIVE_TTL) }
YY_BREAK
-case 89:
+case 90:
YY_RULE_SETUP
#line 303 "util/configlexer.lex"
{ YDVAR(1, VAR_CACHE_MIN_TTL) }
YY_BREAK
-case 90:
+case 91:
YY_RULE_SETUP
#line 304 "util/configlexer.lex"
{ YDVAR(1, VAR_INFRA_HOST_TTL) }
YY_BREAK
-case 91:
+case 92:
YY_RULE_SETUP
#line 305 "util/configlexer.lex"
{ YDVAR(1, VAR_INFRA_LAME_TTL) }
YY_BREAK
-case 92:
+case 93:
YY_RULE_SETUP
#line 306 "util/configlexer.lex"
{ YDVAR(1, VAR_INFRA_CACHE_SLABS) }
YY_BREAK
-case 93:
+case 94:
YY_RULE_SETUP
#line 307 "util/configlexer.lex"
{ YDVAR(1, VAR_INFRA_CACHE_NUMHOSTS) }
YY_BREAK
-case 94:
+case 95:
YY_RULE_SETUP
#line 308 "util/configlexer.lex"
{ YDVAR(1, VAR_INFRA_CACHE_LAME_SIZE) }
YY_BREAK
-case 95:
+case 96:
YY_RULE_SETUP
#line 309 "util/configlexer.lex"
{ YDVAR(1, VAR_INFRA_CACHE_MIN_RTT) }
YY_BREAK
-case 96:
+case 97:
YY_RULE_SETUP
#line 310 "util/configlexer.lex"
{ YDVAR(1, VAR_INFRA_CACHE_MAX_RTT) }
YY_BREAK
-case 97:
+case 98:
YY_RULE_SETUP
#line 311 "util/configlexer.lex"
{ YDVAR(1, VAR_INFRA_KEEP_PROBING) }
YY_BREAK
-case 98:
+case 99:
YY_RULE_SETUP
#line 312 "util/configlexer.lex"
{ YDVAR(1, VAR_NUM_QUERIES_PER_THREAD) }
YY_BREAK
-case 99:
+case 100:
YY_RULE_SETUP
#line 313 "util/configlexer.lex"
{ YDVAR(1, VAR_JOSTLE_TIMEOUT) }
YY_BREAK
-case 100:
+case 101:
YY_RULE_SETUP
#line 314 "util/configlexer.lex"
{ YDVAR(1, VAR_DELAY_CLOSE) }
YY_BREAK
-case 101:
+case 102:
YY_RULE_SETUP
#line 315 "util/configlexer.lex"
{ YDVAR(1, VAR_UDP_CONNECT) }
YY_BREAK
-case 102:
+case 103:
YY_RULE_SETUP
#line 316 "util/configlexer.lex"
{ YDVAR(1, VAR_TARGET_FETCH_POLICY) }
YY_BREAK
-case 103:
+case 104:
YY_RULE_SETUP
#line 317 "util/configlexer.lex"
{ YDVAR(1, VAR_HARDEN_SHORT_BUFSIZE) }
YY_BREAK
-case 104:
+case 105:
YY_RULE_SETUP
#line 318 "util/configlexer.lex"
{ YDVAR(1, VAR_HARDEN_LARGE_QUERIES) }
YY_BREAK
-case 105:
+case 106:
YY_RULE_SETUP
#line 319 "util/configlexer.lex"
{ YDVAR(1, VAR_HARDEN_GLUE) }
YY_BREAK
-case 106:
+case 107:
YY_RULE_SETUP
#line 320 "util/configlexer.lex"
{ YDVAR(1, VAR_HARDEN_UNVERIFIED_GLUE) }
YY_BREAK
-case 107:
+case 108:
YY_RULE_SETUP
#line 321 "util/configlexer.lex"
{ YDVAR(1, VAR_HARDEN_DNSSEC_STRIPPED) }
YY_BREAK
-case 108:
+case 109:
YY_RULE_SETUP
#line 322 "util/configlexer.lex"
{ YDVAR(1, VAR_HARDEN_BELOW_NXDOMAIN) }
YY_BREAK
-case 109:
+case 110:
YY_RULE_SETUP
#line 323 "util/configlexer.lex"
{ YDVAR(1, VAR_HARDEN_REFERRAL_PATH) }
YY_BREAK
-case 110:
+case 111:
YY_RULE_SETUP
#line 324 "util/configlexer.lex"
{ YDVAR(1, VAR_HARDEN_ALGO_DOWNGRADE) }
YY_BREAK
-case 111:
+case 112:
YY_RULE_SETUP
#line 325 "util/configlexer.lex"
{ YDVAR(1, VAR_HARDEN_UNKNOWN_ADDITIONAL) }
YY_BREAK
-case 112:
+case 113:
YY_RULE_SETUP
#line 326 "util/configlexer.lex"
{ YDVAR(1, VAR_USE_CAPS_FOR_ID) }
YY_BREAK
-case 113:
+case 114:
YY_RULE_SETUP
#line 327 "util/configlexer.lex"
{ YDVAR(1, VAR_CAPS_WHITELIST) }
YY_BREAK
-case 114:
+case 115:
YY_RULE_SETUP
#line 328 "util/configlexer.lex"
{ YDVAR(1, VAR_CAPS_WHITELIST) }
YY_BREAK
-case 115:
+case 116:
YY_RULE_SETUP
#line 329 "util/configlexer.lex"
{ YDVAR(1, VAR_UNWANTED_REPLY_THRESHOLD) }
YY_BREAK
-case 116:
+case 117:
YY_RULE_SETUP
#line 330 "util/configlexer.lex"
{ YDVAR(1, VAR_PRIVATE_ADDRESS) }
YY_BREAK
-case 117:
+case 118:
YY_RULE_SETUP
#line 331 "util/configlexer.lex"
{ YDVAR(1, VAR_PRIVATE_DOMAIN) }
YY_BREAK
-case 118:
+case 119:
YY_RULE_SETUP
#line 332 "util/configlexer.lex"
{ YDVAR(1, VAR_PREFETCH_KEY) }
YY_BREAK
-case 119:
+case 120:
YY_RULE_SETUP
#line 333 "util/configlexer.lex"
{ YDVAR(1, VAR_PREFETCH) }
YY_BREAK
-case 120:
+case 121:
YY_RULE_SETUP
#line 334 "util/configlexer.lex"
{ YDVAR(1, VAR_DENY_ANY) }
YY_BREAK
-case 121:
+case 122:
YY_RULE_SETUP
#line 335 "util/configlexer.lex"
{ YDVAR(0, VAR_STUB_ZONE) }
YY_BREAK
-case 122:
+case 123:
YY_RULE_SETUP
#line 336 "util/configlexer.lex"
{ YDVAR(1, VAR_NAME) }
YY_BREAK
-case 123:
+case 124:
YY_RULE_SETUP
#line 337 "util/configlexer.lex"
{ YDVAR(1, VAR_STUB_ADDR) }
YY_BREAK
-case 124:
+case 125:
YY_RULE_SETUP
#line 338 "util/configlexer.lex"
{ YDVAR(1, VAR_STUB_HOST) }
YY_BREAK
-case 125:
+case 126:
YY_RULE_SETUP
#line 339 "util/configlexer.lex"
{ YDVAR(1, VAR_STUB_PRIME) }
YY_BREAK
-case 126:
+case 127:
YY_RULE_SETUP
#line 340 "util/configlexer.lex"
{ YDVAR(1, VAR_STUB_FIRST) }
YY_BREAK
-case 127:
+case 128:
YY_RULE_SETUP
#line 341 "util/configlexer.lex"
{ YDVAR(1, VAR_STUB_NO_CACHE) }
YY_BREAK
-case 128:
+case 129:
YY_RULE_SETUP
#line 342 "util/configlexer.lex"
{ YDVAR(1, VAR_STUB_SSL_UPSTREAM) }
YY_BREAK
-case 129:
+case 130:
YY_RULE_SETUP
#line 343 "util/configlexer.lex"
{ YDVAR(1, VAR_STUB_SSL_UPSTREAM) }
YY_BREAK
-case 130:
+case 131:
YY_RULE_SETUP
#line 344 "util/configlexer.lex"
{ YDVAR(1, VAR_STUB_TCP_UPSTREAM) }
YY_BREAK
-case 131:
+case 132:
YY_RULE_SETUP
#line 345 "util/configlexer.lex"
{ YDVAR(0, VAR_FORWARD_ZONE) }
YY_BREAK
-case 132:
+case 133:
YY_RULE_SETUP
#line 346 "util/configlexer.lex"
{ YDVAR(1, VAR_FORWARD_ADDR) }
YY_BREAK
-case 133:
+case 134:
YY_RULE_SETUP
#line 347 "util/configlexer.lex"
{ YDVAR(1, VAR_FORWARD_HOST) }
YY_BREAK
-case 134:
+case 135:
YY_RULE_SETUP
#line 348 "util/configlexer.lex"
{ YDVAR(1, VAR_FORWARD_FIRST) }
YY_BREAK
-case 135:
+case 136:
YY_RULE_SETUP
#line 349 "util/configlexer.lex"
{ YDVAR(1, VAR_FORWARD_NO_CACHE) }
YY_BREAK
-case 136:
+case 137:
YY_RULE_SETUP
#line 350 "util/configlexer.lex"
{ YDVAR(1, VAR_FORWARD_SSL_UPSTREAM) }
YY_BREAK
-case 137:
+case 138:
YY_RULE_SETUP
#line 351 "util/configlexer.lex"
{ YDVAR(1, VAR_FORWARD_SSL_UPSTREAM) }
YY_BREAK
-case 138:
+case 139:
YY_RULE_SETUP
#line 352 "util/configlexer.lex"
{ YDVAR(1, VAR_FORWARD_TCP_UPSTREAM) }
YY_BREAK
-case 139:
+case 140:
YY_RULE_SETUP
#line 353 "util/configlexer.lex"
{ YDVAR(0, VAR_AUTH_ZONE) }
YY_BREAK
-case 140:
+case 141:
YY_RULE_SETUP
#line 354 "util/configlexer.lex"
{ YDVAR(0, VAR_RPZ) }
YY_BREAK
-case 141:
+case 142:
YY_RULE_SETUP
#line 355 "util/configlexer.lex"
{ YDVAR(1, VAR_TAGS) }
YY_BREAK
-case 142:
+case 143:
YY_RULE_SETUP
#line 356 "util/configlexer.lex"
{ YDVAR(1, VAR_RPZ_ACTION_OVERRIDE) }
YY_BREAK
-case 143:
+case 144:
YY_RULE_SETUP
#line 357 "util/configlexer.lex"
{ YDVAR(1, VAR_RPZ_CNAME_OVERRIDE) }
YY_BREAK
-case 144:
+case 145:
YY_RULE_SETUP
#line 358 "util/configlexer.lex"
{ YDVAR(1, VAR_RPZ_LOG) }
YY_BREAK
-case 145:
+case 146:
YY_RULE_SETUP
#line 359 "util/configlexer.lex"
{ YDVAR(1, VAR_RPZ_LOG_NAME) }
YY_BREAK
-case 146:
+case 147:
YY_RULE_SETUP
#line 360 "util/configlexer.lex"
{ YDVAR(1, VAR_RPZ_SIGNAL_NXDOMAIN_RA) }
YY_BREAK
-case 147:
+case 148:
YY_RULE_SETUP
#line 361 "util/configlexer.lex"
{ YDVAR(1, VAR_ZONEFILE) }
YY_BREAK
-case 148:
+case 149:
YY_RULE_SETUP
#line 362 "util/configlexer.lex"
{ YDVAR(1, VAR_MASTER) }
YY_BREAK
-case 149:
+case 150:
YY_RULE_SETUP
#line 363 "util/configlexer.lex"
{ YDVAR(1, VAR_MASTER) }
YY_BREAK
-case 150:
+case 151:
YY_RULE_SETUP
#line 364 "util/configlexer.lex"
{ YDVAR(1, VAR_URL) }
YY_BREAK
-case 151:
+case 152:
YY_RULE_SETUP
#line 365 "util/configlexer.lex"
{ YDVAR(1, VAR_ALLOW_NOTIFY) }
YY_BREAK
-case 152:
+case 153:
YY_RULE_SETUP
#line 366 "util/configlexer.lex"
{ YDVAR(1, VAR_FOR_DOWNSTREAM) }
YY_BREAK
-case 153:
+case 154:
YY_RULE_SETUP
#line 367 "util/configlexer.lex"
{ YDVAR(1, VAR_FOR_UPSTREAM) }
YY_BREAK
-case 154:
+case 155:
YY_RULE_SETUP
#line 368 "util/configlexer.lex"
{ YDVAR(1, VAR_FALLBACK_ENABLED) }
YY_BREAK
-case 155:
+case 156:
YY_RULE_SETUP
#line 369 "util/configlexer.lex"
{ YDVAR(0, VAR_VIEW) }
YY_BREAK
-case 156:
+case 157:
YY_RULE_SETUP
#line 370 "util/configlexer.lex"
{ YDVAR(1, VAR_VIEW_FIRST) }
YY_BREAK
-case 157:
+case 158:
YY_RULE_SETUP
#line 371 "util/configlexer.lex"
{ YDVAR(1, VAR_DO_NOT_QUERY_ADDRESS) }
YY_BREAK
-case 158:
+case 159:
YY_RULE_SETUP
#line 372 "util/configlexer.lex"
{ YDVAR(1, VAR_DO_NOT_QUERY_LOCALHOST) }
YY_BREAK
-case 159:
+case 160:
YY_RULE_SETUP
#line 373 "util/configlexer.lex"
{ YDVAR(2, VAR_ACCESS_CONTROL) }
YY_BREAK
-case 160:
+case 161:
YY_RULE_SETUP
#line 374 "util/configlexer.lex"
{ YDVAR(2, VAR_INTERFACE_ACTION) }
YY_BREAK
-case 161:
+case 162:
YY_RULE_SETUP
#line 375 "util/configlexer.lex"
{ YDVAR(1, VAR_SEND_CLIENT_SUBNET) }
YY_BREAK
-case 162:
+case 163:
YY_RULE_SETUP
#line 376 "util/configlexer.lex"
{ YDVAR(1, VAR_CLIENT_SUBNET_ZONE) }
YY_BREAK
-case 163:
+case 164:
YY_RULE_SETUP
#line 377 "util/configlexer.lex"
{ YDVAR(1, VAR_CLIENT_SUBNET_ALWAYS_FORWARD) }
YY_BREAK
-case 164:
+case 165:
YY_RULE_SETUP
#line 378 "util/configlexer.lex"
{ YDVAR(1, VAR_CLIENT_SUBNET_OPCODE) }
YY_BREAK
-case 165:
+case 166:
YY_RULE_SETUP
#line 379 "util/configlexer.lex"
{ YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV4) }
YY_BREAK
-case 166:
+case 167:
YY_RULE_SETUP
#line 380 "util/configlexer.lex"
{ YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV6) }
YY_BREAK
-case 167:
+case 168:
YY_RULE_SETUP
#line 381 "util/configlexer.lex"
{ YDVAR(1, VAR_MIN_CLIENT_SUBNET_IPV4) }
YY_BREAK
-case 168:
+case 169:
YY_RULE_SETUP
#line 382 "util/configlexer.lex"
{ YDVAR(1, VAR_MIN_CLIENT_SUBNET_IPV6) }
YY_BREAK
-case 169:
+case 170:
YY_RULE_SETUP
#line 383 "util/configlexer.lex"
{ YDVAR(1, VAR_MAX_ECS_TREE_SIZE_IPV4) }
YY_BREAK
-case 170:
+case 171:
YY_RULE_SETUP
#line 384 "util/configlexer.lex"
{ YDVAR(1, VAR_MAX_ECS_TREE_SIZE_IPV6) }
YY_BREAK
-case 171:
+case 172:
YY_RULE_SETUP
#line 385 "util/configlexer.lex"
{ YDVAR(1, VAR_HIDE_IDENTITY) }
YY_BREAK
-case 172:
+case 173:
YY_RULE_SETUP
#line 386 "util/configlexer.lex"
{ YDVAR(1, VAR_HIDE_VERSION) }
YY_BREAK
-case 173:
+case 174:
YY_RULE_SETUP
#line 387 "util/configlexer.lex"
{ YDVAR(1, VAR_HIDE_TRUSTANCHOR) }
YY_BREAK
-case 174:
+case 175:
YY_RULE_SETUP
#line 388 "util/configlexer.lex"
{ YDVAR(1, VAR_HIDE_HTTP_USER_AGENT) }
YY_BREAK
-case 175:
+case 176:
YY_RULE_SETUP
#line 389 "util/configlexer.lex"
{ YDVAR(1, VAR_IDENTITY) }
YY_BREAK
-case 176:
+case 177:
YY_RULE_SETUP
#line 390 "util/configlexer.lex"
{ YDVAR(1, VAR_VERSION) }
YY_BREAK
-case 177:
+case 178:
YY_RULE_SETUP
#line 391 "util/configlexer.lex"
{ YDVAR(1, VAR_HTTP_USER_AGENT) }
YY_BREAK
-case 178:
+case 179:
YY_RULE_SETUP
#line 392 "util/configlexer.lex"
{ YDVAR(1, VAR_MODULE_CONF) }
YY_BREAK
-case 179:
+case 180:
YY_RULE_SETUP
#line 393 "util/configlexer.lex"
{ YDVAR(1, VAR_DLV_ANCHOR) }
YY_BREAK
-case 180:
+case 181:
YY_RULE_SETUP
#line 394 "util/configlexer.lex"
{ YDVAR(1, VAR_DLV_ANCHOR_FILE) }
YY_BREAK
-case 181:
+case 182:
YY_RULE_SETUP
#line 395 "util/configlexer.lex"
{ YDVAR(1, VAR_TRUST_ANCHOR_FILE) }
YY_BREAK
-case 182:
+case 183:
YY_RULE_SETUP
#line 396 "util/configlexer.lex"
{ YDVAR(1, VAR_AUTO_TRUST_ANCHOR_FILE) }
YY_BREAK
-case 183:
+case 184:
YY_RULE_SETUP
#line 397 "util/configlexer.lex"
{ YDVAR(1, VAR_TRUSTED_KEYS_FILE) }
YY_BREAK
-case 184:
+case 185:
YY_RULE_SETUP
#line 398 "util/configlexer.lex"
{ YDVAR(1, VAR_TRUST_ANCHOR) }
YY_BREAK
-case 185:
+case 186:
YY_RULE_SETUP
#line 399 "util/configlexer.lex"
{ YDVAR(1, VAR_TRUST_ANCHOR_SIGNALING) }
YY_BREAK
-case 186:
+case 187:
YY_RULE_SETUP
#line 400 "util/configlexer.lex"
{ YDVAR(1, VAR_ROOT_KEY_SENTINEL) }
YY_BREAK
-case 187:
+case 188:
YY_RULE_SETUP
#line 401 "util/configlexer.lex"
{ YDVAR(1, VAR_VAL_OVERRIDE_DATE) }
YY_BREAK
-case 188:
+case 189:
YY_RULE_SETUP
#line 402 "util/configlexer.lex"
{ YDVAR(1, VAR_VAL_SIG_SKEW_MIN) }
YY_BREAK
-case 189:
+case 190:
YY_RULE_SETUP
#line 403 "util/configlexer.lex"
{ YDVAR(1, VAR_VAL_SIG_SKEW_MAX) }
YY_BREAK
-case 190:
+case 191:
YY_RULE_SETUP
#line 404 "util/configlexer.lex"
{ YDVAR(1, VAR_VAL_MAX_RESTART) }
YY_BREAK
-case 191:
+case 192:
YY_RULE_SETUP
#line 405 "util/configlexer.lex"
{ YDVAR(1, VAR_BOGUS_TTL) }
YY_BREAK
-case 192:
+case 193:
YY_RULE_SETUP
#line 406 "util/configlexer.lex"
{ YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) }
YY_BREAK
-case 193:
+case 194:
YY_RULE_SETUP
#line 407 "util/configlexer.lex"
{ YDVAR(1, VAR_VAL_PERMISSIVE_MODE) }
YY_BREAK
-case 194:
+case 195:
YY_RULE_SETUP
#line 408 "util/configlexer.lex"
{ YDVAR(1, VAR_AGGRESSIVE_NSEC) }
YY_BREAK
-case 195:
+case 196:
YY_RULE_SETUP
#line 409 "util/configlexer.lex"
{ YDVAR(1, VAR_IGNORE_CD_FLAG) }
YY_BREAK
-case 196:
+case 197:
YY_RULE_SETUP
#line 410 "util/configlexer.lex"
{ YDVAR(1, VAR_DISABLE_EDNS_DO) }
YY_BREAK
-case 197:
+case 198:
YY_RULE_SETUP
#line 411 "util/configlexer.lex"
{ YDVAR(1, VAR_SERVE_EXPIRED) }
YY_BREAK
-case 198:
+case 199:
YY_RULE_SETUP
#line 412 "util/configlexer.lex"
{ YDVAR(1, VAR_SERVE_EXPIRED_TTL) }
YY_BREAK
-case 199:
+case 200:
YY_RULE_SETUP
#line 413 "util/configlexer.lex"
{ YDVAR(1, VAR_SERVE_EXPIRED_TTL_RESET) }
YY_BREAK
-case 200:
+case 201:
YY_RULE_SETUP
#line 414 "util/configlexer.lex"
{ YDVAR(1, VAR_SERVE_EXPIRED_REPLY_TTL) }
YY_BREAK
-case 201:
+case 202:
YY_RULE_SETUP
#line 415 "util/configlexer.lex"
{ YDVAR(1, VAR_SERVE_EXPIRED_CLIENT_TIMEOUT) }
YY_BREAK
-case 202:
+case 203:
YY_RULE_SETUP
#line 416 "util/configlexer.lex"
{ YDVAR(1, VAR_EDE_SERVE_EXPIRED) }
YY_BREAK
-case 203:
+case 204:
YY_RULE_SETUP
#line 417 "util/configlexer.lex"
{ YDVAR(1, VAR_SERVE_ORIGINAL_TTL) }
YY_BREAK
-case 204:
+case 205:
YY_RULE_SETUP
#line 418 "util/configlexer.lex"
{ YDVAR(1, VAR_FAKE_DSA) }
YY_BREAK
-case 205:
+case 206:
YY_RULE_SETUP
#line 419 "util/configlexer.lex"
{ YDVAR(1, VAR_FAKE_SHA1) }
YY_BREAK
-case 206:
+case 207:
YY_RULE_SETUP
#line 420 "util/configlexer.lex"
{ YDVAR(1, VAR_VAL_LOG_LEVEL) }
YY_BREAK
-case 207:
+case 208:
YY_RULE_SETUP
#line 421 "util/configlexer.lex"
{ YDVAR(1, VAR_KEY_CACHE_SIZE) }
YY_BREAK
-case 208:
+case 209:
YY_RULE_SETUP
#line 422 "util/configlexer.lex"
{ YDVAR(1, VAR_KEY_CACHE_SLABS) }
YY_BREAK
-case 209:
+case 210:
YY_RULE_SETUP
#line 423 "util/configlexer.lex"
{ YDVAR(1, VAR_NEG_CACHE_SIZE) }
YY_BREAK
-case 210:
+case 211:
YY_RULE_SETUP
#line 424 "util/configlexer.lex"
{
YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) }
YY_BREAK
-case 211:
+case 212:
YY_RULE_SETUP
#line 426 "util/configlexer.lex"
{ YDVAR(1, VAR_ZONEMD_PERMISSIVE_MODE) }
YY_BREAK
-case 212:
+case 213:
YY_RULE_SETUP
#line 427 "util/configlexer.lex"
{ YDVAR(1, VAR_ZONEMD_CHECK) }
YY_BREAK
-case 213:
+case 214:
YY_RULE_SETUP
#line 428 "util/configlexer.lex"
{ YDVAR(1, VAR_ZONEMD_REJECT_ABSENCE) }
YY_BREAK
-case 214:
+case 215:
YY_RULE_SETUP
#line 429 "util/configlexer.lex"
{ YDVAR(1, VAR_ADD_HOLDDOWN) }
YY_BREAK
-case 215:
+case 216:
YY_RULE_SETUP
#line 430 "util/configlexer.lex"
{ YDVAR(1, VAR_DEL_HOLDDOWN) }
YY_BREAK
-case 216:
+case 217:
YY_RULE_SETUP
#line 431 "util/configlexer.lex"
{ YDVAR(1, VAR_KEEP_MISSING) }
YY_BREAK
-case 217:
+case 218:
YY_RULE_SETUP
#line 432 "util/configlexer.lex"
{ YDVAR(1, VAR_PERMIT_SMALL_HOLDDOWN) }
YY_BREAK
-case 218:
+case 219:
YY_RULE_SETUP
#line 433 "util/configlexer.lex"
{ YDVAR(1, VAR_USE_SYSLOG) }
YY_BREAK
-case 219:
+case 220:
YY_RULE_SETUP
#line 434 "util/configlexer.lex"
{ YDVAR(1, VAR_LOG_IDENTITY) }
YY_BREAK
-case 220:
+case 221:
YY_RULE_SETUP
#line 435 "util/configlexer.lex"
{ YDVAR(1, VAR_LOG_TIME_ASCII) }
YY_BREAK
-case 221:
+case 222:
YY_RULE_SETUP
#line 436 "util/configlexer.lex"
{ YDVAR(1, VAR_LOG_TIME_ISO) }
YY_BREAK
-case 222:
+case 223:
YY_RULE_SETUP
#line 437 "util/configlexer.lex"
{ YDVAR(1, VAR_LOG_QUERIES) }
YY_BREAK
-case 223:
+case 224:
YY_RULE_SETUP
#line 438 "util/configlexer.lex"
{ YDVAR(1, VAR_LOG_REPLIES) }
YY_BREAK
-case 224:
+case 225:
YY_RULE_SETUP
#line 439 "util/configlexer.lex"
{ YDVAR(1, VAR_LOG_TAG_QUERYREPLY) }
YY_BREAK
-case 225:
+case 226:
YY_RULE_SETUP
#line 440 "util/configlexer.lex"
{ YDVAR(1, VAR_LOG_LOCAL_ACTIONS) }
YY_BREAK
-case 226:
+case 227:
YY_RULE_SETUP
#line 441 "util/configlexer.lex"
{ YDVAR(1, VAR_LOG_SERVFAIL) }
YY_BREAK
-case 227:
+case 228:
YY_RULE_SETUP
#line 442 "util/configlexer.lex"
{ YDVAR(1, VAR_LOG_DESTADDR) }
YY_BREAK
-case 228:
+case 229:
YY_RULE_SETUP
#line 443 "util/configlexer.lex"
-{ YDVAR(2, VAR_LOCAL_ZONE) }
+{ YDVAR(1, VAR_LOG_THREAD_ID) }
YY_BREAK
-case 229:
+case 230:
YY_RULE_SETUP
#line 444 "util/configlexer.lex"
-{ YDVAR(1, VAR_LOCAL_DATA) }
+{ YDVAR(2, VAR_LOCAL_ZONE) }
YY_BREAK
-case 230:
+case 231:
YY_RULE_SETUP
#line 445 "util/configlexer.lex"
-{ YDVAR(1, VAR_LOCAL_DATA_PTR) }
+{ YDVAR(1, VAR_LOCAL_DATA) }
YY_BREAK
-case 231:
+case 232:
YY_RULE_SETUP
#line 446 "util/configlexer.lex"
-{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) }
+{ YDVAR(1, VAR_LOCAL_DATA_PTR) }
YY_BREAK
-case 232:
+case 233:
YY_RULE_SETUP
#line 447 "util/configlexer.lex"
-{ YDVAR(1, VAR_INSECURE_LAN_ZONES) }
+{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) }
YY_BREAK
-case 233:
+case 234:
YY_RULE_SETUP
#line 448 "util/configlexer.lex"
-{ YDVAR(1, VAR_STATISTICS_INTERVAL) }
+{ YDVAR(1, VAR_INSECURE_LAN_ZONES) }
YY_BREAK
-case 234:
+case 235:
YY_RULE_SETUP
#line 449 "util/configlexer.lex"
-{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) }
+{ YDVAR(1, VAR_STATISTICS_INTERVAL) }
YY_BREAK
-case 235:
+case 236:
YY_RULE_SETUP
#line 450 "util/configlexer.lex"
-{ YDVAR(1, VAR_EXTENDED_STATISTICS) }
+{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) }
YY_BREAK
-case 236:
+case 237:
YY_RULE_SETUP
#line 451 "util/configlexer.lex"
-{ YDVAR(1, VAR_STATISTICS_INHIBIT_ZERO) }
+{ YDVAR(1, VAR_EXTENDED_STATISTICS) }
YY_BREAK
-case 237:
+case 238:
YY_RULE_SETUP
#line 452 "util/configlexer.lex"
-{ YDVAR(1, VAR_SHM_ENABLE) }
+{ YDVAR(1, VAR_STATISTICS_INHIBIT_ZERO) }
YY_BREAK
-case 238:
+case 239:
YY_RULE_SETUP
#line 453 "util/configlexer.lex"
-{ YDVAR(1, VAR_SHM_KEY) }
+{ YDVAR(1, VAR_SHM_ENABLE) }
YY_BREAK
-case 239:
+case 240:
YY_RULE_SETUP
#line 454 "util/configlexer.lex"
-{ YDVAR(0, VAR_REMOTE_CONTROL) }
+{ YDVAR(1, VAR_SHM_KEY) }
YY_BREAK
-case 240:
+case 241:
YY_RULE_SETUP
#line 455 "util/configlexer.lex"
-{ YDVAR(1, VAR_CONTROL_ENABLE) }
+{ YDVAR(0, VAR_REMOTE_CONTROL) }
YY_BREAK
-case 241:
+case 242:
YY_RULE_SETUP
#line 456 "util/configlexer.lex"
-{ YDVAR(1, VAR_CONTROL_INTERFACE) }
+{ YDVAR(1, VAR_CONTROL_ENABLE) }
YY_BREAK
-case 242:
+case 243:
YY_RULE_SETUP
#line 457 "util/configlexer.lex"
-{ YDVAR(1, VAR_CONTROL_PORT) }
+{ YDVAR(1, VAR_CONTROL_INTERFACE) }
YY_BREAK
-case 243:
+case 244:
YY_RULE_SETUP
#line 458 "util/configlexer.lex"
-{ YDVAR(1, VAR_CONTROL_USE_CERT) }
+{ YDVAR(1, VAR_CONTROL_PORT) }
YY_BREAK
-case 244:
+case 245:
YY_RULE_SETUP
#line 459 "util/configlexer.lex"
-{ YDVAR(1, VAR_SERVER_KEY_FILE) }
+{ YDVAR(1, VAR_CONTROL_USE_CERT) }
YY_BREAK
-case 245:
+case 246:
YY_RULE_SETUP
#line 460 "util/configlexer.lex"
-{ YDVAR(1, VAR_SERVER_CERT_FILE) }
+{ YDVAR(1, VAR_SERVER_KEY_FILE) }
YY_BREAK
-case 246:
+case 247:
YY_RULE_SETUP
#line 461 "util/configlexer.lex"
-{ YDVAR(1, VAR_CONTROL_KEY_FILE) }
+{ YDVAR(1, VAR_SERVER_CERT_FILE) }
YY_BREAK
-case 247:
+case 248:
YY_RULE_SETUP
#line 462 "util/configlexer.lex"
-{ YDVAR(1, VAR_CONTROL_CERT_FILE) }
+{ YDVAR(1, VAR_CONTROL_KEY_FILE) }
YY_BREAK
-case 248:
+case 249:
YY_RULE_SETUP
#line 463 "util/configlexer.lex"
-{ YDVAR(1, VAR_PYTHON_SCRIPT) }
+{ YDVAR(1, VAR_CONTROL_CERT_FILE) }
YY_BREAK
-case 249:
+case 250:
YY_RULE_SETUP
#line 464 "util/configlexer.lex"
-{ YDVAR(0, VAR_PYTHON) }
+{ YDVAR(1, VAR_PYTHON_SCRIPT) }
YY_BREAK
-case 250:
+case 251:
YY_RULE_SETUP
#line 465 "util/configlexer.lex"
-{ YDVAR(1, VAR_DYNLIB_FILE) }
+{ YDVAR(0, VAR_PYTHON) }
YY_BREAK
-case 251:
+case 252:
YY_RULE_SETUP
#line 466 "util/configlexer.lex"
-{ YDVAR(0, VAR_DYNLIB) }
+{ YDVAR(1, VAR_DYNLIB_FILE) }
YY_BREAK
-case 252:
+case 253:
YY_RULE_SETUP
#line 467 "util/configlexer.lex"
-{ YDVAR(1, VAR_DOMAIN_INSECURE) }
+{ YDVAR(0, VAR_DYNLIB) }
YY_BREAK
-case 253:
+case 254:
YY_RULE_SETUP
#line 468 "util/configlexer.lex"
-{ YDVAR(1, VAR_MINIMAL_RESPONSES) }
+{ YDVAR(1, VAR_DOMAIN_INSECURE) }
YY_BREAK
-case 254:
+case 255:
YY_RULE_SETUP
#line 469 "util/configlexer.lex"
-{ YDVAR(1, VAR_RRSET_ROUNDROBIN) }
+{ YDVAR(1, VAR_MINIMAL_RESPONSES) }
YY_BREAK
-case 255:
+case 256:
YY_RULE_SETUP
#line 470 "util/configlexer.lex"
-{ YDVAR(1, VAR_UNKNOWN_SERVER_TIME_LIMIT) }
+{ YDVAR(1, VAR_RRSET_ROUNDROBIN) }
YY_BREAK
-case 256:
+case 257:
YY_RULE_SETUP
#line 471 "util/configlexer.lex"
-{ YDVAR(1, VAR_DISCARD_TIMEOUT) }
+{ YDVAR(1, VAR_UNKNOWN_SERVER_TIME_LIMIT) }
YY_BREAK
-case 257:
+case 258:
YY_RULE_SETUP
#line 472 "util/configlexer.lex"
-{ YDVAR(1, VAR_WAIT_LIMIT) }
+{ YDVAR(1, VAR_DISCARD_TIMEOUT) }
YY_BREAK
-case 258:
+case 259:
YY_RULE_SETUP
#line 473 "util/configlexer.lex"
-{ YDVAR(1, VAR_WAIT_LIMIT_COOKIE) }
+{ YDVAR(1, VAR_WAIT_LIMIT) }
YY_BREAK
-case 259:
+case 260:
YY_RULE_SETUP
#line 474 "util/configlexer.lex"
-{ YDVAR(2, VAR_WAIT_LIMIT_NETBLOCK) }
+{ YDVAR(1, VAR_WAIT_LIMIT_COOKIE) }
YY_BREAK
-case 260:
+case 261:
YY_RULE_SETUP
#line 475 "util/configlexer.lex"
-{ YDVAR(2, VAR_WAIT_LIMIT_COOKIE_NETBLOCK) }
+{ YDVAR(2, VAR_WAIT_LIMIT_NETBLOCK) }
YY_BREAK
-case 261:
+case 262:
YY_RULE_SETUP
#line 476 "util/configlexer.lex"
-{ YDVAR(1, VAR_MAX_UDP_SIZE) }
+{ YDVAR(2, VAR_WAIT_LIMIT_COOKIE_NETBLOCK) }
YY_BREAK
-case 262:
+case 263:
YY_RULE_SETUP
#line 477 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNS64_PREFIX) }
+{ YDVAR(1, VAR_MAX_UDP_SIZE) }
YY_BREAK
-case 263:
+case 264:
YY_RULE_SETUP
#line 478 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNS64_SYNTHALL) }
+{ YDVAR(1, VAR_DNS64_PREFIX) }
YY_BREAK
-case 264:
+case 265:
YY_RULE_SETUP
#line 479 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNS64_IGNORE_AAAA) }
+{ YDVAR(1, VAR_DNS64_SYNTHALL) }
YY_BREAK
-case 265:
+case 266:
YY_RULE_SETUP
#line 480 "util/configlexer.lex"
-{ YDVAR(1, VAR_NAT64_PREFIX) }
+{ YDVAR(1, VAR_DNS64_IGNORE_AAAA) }
YY_BREAK
-case 266:
+case 267:
YY_RULE_SETUP
#line 481 "util/configlexer.lex"
-{ YDVAR(1, VAR_DEFINE_TAG) }
+{ YDVAR(1, VAR_NAT64_PREFIX) }
YY_BREAK
-case 267:
+case 268:
YY_RULE_SETUP
#line 482 "util/configlexer.lex"
-{ YDVAR(2, VAR_LOCAL_ZONE_TAG) }
+{ YDVAR(1, VAR_DEFINE_TAG) }
YY_BREAK
-case 268:
+case 269:
YY_RULE_SETUP
#line 483 "util/configlexer.lex"
-{ YDVAR(2, VAR_ACCESS_CONTROL_TAG) }
+{ YDVAR(2, VAR_LOCAL_ZONE_TAG) }
YY_BREAK
-case 269:
+case 270:
YY_RULE_SETUP
#line 484 "util/configlexer.lex"
-{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_ACTION) }
+{ YDVAR(2, VAR_ACCESS_CONTROL_TAG) }
YY_BREAK
-case 270:
+case 271:
YY_RULE_SETUP
#line 485 "util/configlexer.lex"
-{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_DATA) }
+{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_ACTION) }
YY_BREAK
-case 271:
+case 272:
YY_RULE_SETUP
#line 486 "util/configlexer.lex"
-{ YDVAR(2, VAR_ACCESS_CONTROL_VIEW) }
+{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_DATA) }
YY_BREAK
-case 272:
+case 273:
YY_RULE_SETUP
#line 487 "util/configlexer.lex"
-{ YDVAR(2, VAR_INTERFACE_TAG) }
+{ YDVAR(2, VAR_ACCESS_CONTROL_VIEW) }
YY_BREAK
-case 273:
+case 274:
YY_RULE_SETUP
#line 488 "util/configlexer.lex"
-{ YDVAR(3, VAR_INTERFACE_TAG_ACTION) }
+{ YDVAR(2, VAR_INTERFACE_TAG) }
YY_BREAK
-case 274:
+case 275:
YY_RULE_SETUP
#line 489 "util/configlexer.lex"
-{ YDVAR(3, VAR_INTERFACE_TAG_DATA) }
+{ YDVAR(3, VAR_INTERFACE_TAG_ACTION) }
YY_BREAK
-case 275:
+case 276:
YY_RULE_SETUP
#line 490 "util/configlexer.lex"
-{ YDVAR(2, VAR_INTERFACE_VIEW) }
+{ YDVAR(3, VAR_INTERFACE_TAG_DATA) }
YY_BREAK
-case 276:
+case 277:
YY_RULE_SETUP
#line 491 "util/configlexer.lex"
-{ YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) }
+{ YDVAR(2, VAR_INTERFACE_VIEW) }
YY_BREAK
-case 277:
+case 278:
YY_RULE_SETUP
#line 492 "util/configlexer.lex"
-{ YDVAR(0, VAR_DNSTAP) }
+{ YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) }
YY_BREAK
-case 278:
+case 279:
YY_RULE_SETUP
#line 493 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_ENABLE) }
+{ YDVAR(0, VAR_DNSTAP) }
YY_BREAK
-case 279:
+case 280:
YY_RULE_SETUP
#line 494 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_BIDIRECTIONAL) }
+{ YDVAR(1, VAR_DNSTAP_ENABLE) }
YY_BREAK
-case 280:
+case 281:
YY_RULE_SETUP
#line 495 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) }
+{ YDVAR(1, VAR_DNSTAP_BIDIRECTIONAL) }
YY_BREAK
-case 281:
+case 282:
YY_RULE_SETUP
#line 496 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_IP) }
+{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) }
YY_BREAK
-case 282:
+case 283:
YY_RULE_SETUP
#line 497 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_TLS) }
+{ YDVAR(1, VAR_DNSTAP_IP) }
YY_BREAK
-case 283:
+case 284:
YY_RULE_SETUP
#line 498 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_TLS_SERVER_NAME) }
+{ YDVAR(1, VAR_DNSTAP_TLS) }
YY_BREAK
-case 284:
+case 285:
YY_RULE_SETUP
#line 499 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_TLS_CERT_BUNDLE) }
+{ YDVAR(1, VAR_DNSTAP_TLS_SERVER_NAME) }
YY_BREAK
-case 285:
+case 286:
YY_RULE_SETUP
#line 500 "util/configlexer.lex"
+{ YDVAR(1, VAR_DNSTAP_TLS_CERT_BUNDLE) }
+ YY_BREAK
+case 287:
+YY_RULE_SETUP
+#line 501 "util/configlexer.lex"
{
YDVAR(1, VAR_DNSTAP_TLS_CLIENT_KEY_FILE) }
YY_BREAK
-case 286:
+case 288:
YY_RULE_SETUP
-#line 502 "util/configlexer.lex"
+#line 503 "util/configlexer.lex"
{
YDVAR(1, VAR_DNSTAP_TLS_CLIENT_CERT_FILE) }
YY_BREAK
-case 287:
+case 289:
YY_RULE_SETUP
-#line 504 "util/configlexer.lex"
+#line 505 "util/configlexer.lex"
{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) }
YY_BREAK
-case 288:
+case 290:
YY_RULE_SETUP
-#line 505 "util/configlexer.lex"
+#line 506 "util/configlexer.lex"
{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) }
YY_BREAK
-case 289:
+case 291:
YY_RULE_SETUP
-#line 506 "util/configlexer.lex"
+#line 507 "util/configlexer.lex"
{ YDVAR(1, VAR_DNSTAP_IDENTITY) }
YY_BREAK
-case 290:
+case 292:
YY_RULE_SETUP
-#line 507 "util/configlexer.lex"
+#line 508 "util/configlexer.lex"
{ YDVAR(1, VAR_DNSTAP_VERSION) }
YY_BREAK
-case 291:
+case 293:
YY_RULE_SETUP
-#line 508 "util/configlexer.lex"
+#line 509 "util/configlexer.lex"
{
YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) }
YY_BREAK
-case 292:
+case 294:
YY_RULE_SETUP
-#line 510 "util/configlexer.lex"
+#line 511 "util/configlexer.lex"
{
YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) }
YY_BREAK
-case 293:
+case 295:
YY_RULE_SETUP
-#line 512 "util/configlexer.lex"
+#line 513 "util/configlexer.lex"
{
YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) }
YY_BREAK
-case 294:
+case 296:
YY_RULE_SETUP
-#line 514 "util/configlexer.lex"
+#line 515 "util/configlexer.lex"
{
YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) }
YY_BREAK
-case 295:
+case 297:
YY_RULE_SETUP
-#line 516 "util/configlexer.lex"
+#line 517 "util/configlexer.lex"
{
YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) }
YY_BREAK
-case 296:
+case 298:
YY_RULE_SETUP
-#line 518 "util/configlexer.lex"
+#line 519 "util/configlexer.lex"
{
YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) }
YY_BREAK
-case 297:
-YY_RULE_SETUP
-#line 520 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_SAMPLE_RATE) }
- YY_BREAK
-case 298:
+case 299:
YY_RULE_SETUP
#line 521 "util/configlexer.lex"
-{ YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) }
+{ YDVAR(1, VAR_DNSTAP_SAMPLE_RATE) }
YY_BREAK
-case 299:
+case 300:
YY_RULE_SETUP
#line 522 "util/configlexer.lex"
-{ YDVAR(1, VAR_IP_RATELIMIT) }
+{ YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) }
YY_BREAK
-case 300:
+case 301:
YY_RULE_SETUP
#line 523 "util/configlexer.lex"
-{ YDVAR(1, VAR_IP_RATELIMIT_COOKIE) }
+{ YDVAR(1, VAR_IP_RATELIMIT) }
YY_BREAK
-case 301:
+case 302:
YY_RULE_SETUP
#line 524 "util/configlexer.lex"
-{ YDVAR(1, VAR_RATELIMIT) }
+{ YDVAR(1, VAR_IP_RATELIMIT_COOKIE) }
YY_BREAK
-case 302:
+case 303:
YY_RULE_SETUP
#line 525 "util/configlexer.lex"
-{ YDVAR(1, VAR_IP_RATELIMIT_SLABS) }
+{ YDVAR(1, VAR_RATELIMIT) }
YY_BREAK
-case 303:
+case 304:
YY_RULE_SETUP
#line 526 "util/configlexer.lex"
-{ YDVAR(1, VAR_RATELIMIT_SLABS) }
+{ YDVAR(1, VAR_IP_RATELIMIT_SLABS) }
YY_BREAK
-case 304:
+case 305:
YY_RULE_SETUP
#line 527 "util/configlexer.lex"
-{ YDVAR(1, VAR_IP_RATELIMIT_SIZE) }
+{ YDVAR(1, VAR_RATELIMIT_SLABS) }
YY_BREAK
-case 305:
+case 306:
YY_RULE_SETUP
#line 528 "util/configlexer.lex"
-{ YDVAR(1, VAR_RATELIMIT_SIZE) }
+{ YDVAR(1, VAR_IP_RATELIMIT_SIZE) }
YY_BREAK
-case 306:
+case 307:
YY_RULE_SETUP
#line 529 "util/configlexer.lex"
-{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) }
+{ YDVAR(1, VAR_RATELIMIT_SIZE) }
YY_BREAK
-case 307:
+case 308:
YY_RULE_SETUP
#line 530 "util/configlexer.lex"
-{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) }
+{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) }
YY_BREAK
-case 308:
+case 309:
YY_RULE_SETUP
#line 531 "util/configlexer.lex"
-{ YDVAR(1, VAR_IP_RATELIMIT_FACTOR) }
+{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) }
YY_BREAK
-case 309:
+case 310:
YY_RULE_SETUP
#line 532 "util/configlexer.lex"
-{ YDVAR(1, VAR_RATELIMIT_FACTOR) }
+{ YDVAR(1, VAR_IP_RATELIMIT_FACTOR) }
YY_BREAK
-case 310:
+case 311:
YY_RULE_SETUP
#line 533 "util/configlexer.lex"
-{ YDVAR(1, VAR_IP_RATELIMIT_BACKOFF) }
+{ YDVAR(1, VAR_RATELIMIT_FACTOR) }
YY_BREAK
-case 311:
+case 312:
YY_RULE_SETUP
#line 534 "util/configlexer.lex"
-{ YDVAR(1, VAR_RATELIMIT_BACKOFF) }
+{ YDVAR(1, VAR_IP_RATELIMIT_BACKOFF) }
YY_BREAK
-case 312:
+case 313:
YY_RULE_SETUP
#line 535 "util/configlexer.lex"
-{ YDVAR(1, VAR_OUTBOUND_MSG_RETRY) }
+{ YDVAR(1, VAR_RATELIMIT_BACKOFF) }
YY_BREAK
-case 313:
+case 314:
YY_RULE_SETUP
#line 536 "util/configlexer.lex"
-{ YDVAR(1, VAR_MAX_SENT_COUNT) }
+{ YDVAR(1, VAR_OUTBOUND_MSG_RETRY) }
YY_BREAK
-case 314:
+case 315:
YY_RULE_SETUP
#line 537 "util/configlexer.lex"
-{ YDVAR(1, VAR_MAX_QUERY_RESTARTS) }
+{ YDVAR(1, VAR_MAX_SENT_COUNT) }
YY_BREAK
-case 315:
+case 316:
YY_RULE_SETUP
#line 538 "util/configlexer.lex"
-{ YDVAR(1, VAR_LOW_RTT) }
+{ YDVAR(1, VAR_MAX_QUERY_RESTARTS) }
YY_BREAK
-case 316:
+case 317:
YY_RULE_SETUP
#line 539 "util/configlexer.lex"
-{ YDVAR(1, VAR_FAST_SERVER_NUM) }
+{ YDVAR(1, VAR_LOW_RTT) }
YY_BREAK
-case 317:
+case 318:
YY_RULE_SETUP
#line 540 "util/configlexer.lex"
-{ YDVAR(1, VAR_FAST_SERVER_PERMIL) }
+{ YDVAR(1, VAR_FAST_SERVER_NUM) }
YY_BREAK
-case 318:
+case 319:
YY_RULE_SETUP
#line 541 "util/configlexer.lex"
{ YDVAR(1, VAR_FAST_SERVER_PERMIL) }
YY_BREAK
-case 319:
+case 320:
YY_RULE_SETUP
#line 542 "util/configlexer.lex"
{ YDVAR(1, VAR_FAST_SERVER_PERMIL) }
YY_BREAK
-case 320:
+case 321:
YY_RULE_SETUP
#line 543 "util/configlexer.lex"
-{ YDVAR(2, VAR_RESPONSE_IP_TAG) }
+{ YDVAR(1, VAR_FAST_SERVER_PERMIL) }
YY_BREAK
-case 321:
+case 322:
YY_RULE_SETUP
#line 544 "util/configlexer.lex"
-{ YDVAR(2, VAR_RESPONSE_IP) }
+{ YDVAR(2, VAR_RESPONSE_IP_TAG) }
YY_BREAK
-case 322:
+case 323:
YY_RULE_SETUP
#line 545 "util/configlexer.lex"
-{ YDVAR(2, VAR_RESPONSE_IP_DATA) }
+{ YDVAR(2, VAR_RESPONSE_IP) }
YY_BREAK
-case 323:
+case 324:
YY_RULE_SETUP
#line 546 "util/configlexer.lex"
-{ YDVAR(0, VAR_DNSCRYPT) }
+{ YDVAR(2, VAR_RESPONSE_IP_DATA) }
YY_BREAK
-case 324:
+case 325:
YY_RULE_SETUP
#line 547 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSCRYPT_ENABLE) }
+{ YDVAR(0, VAR_DNSCRYPT) }
YY_BREAK
-case 325:
+case 326:
YY_RULE_SETUP
#line 548 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSCRYPT_PORT) }
+{ YDVAR(1, VAR_DNSCRYPT_ENABLE) }
YY_BREAK
-case 326:
+case 327:
YY_RULE_SETUP
#line 549 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSCRYPT_PROVIDER) }
+{ YDVAR(1, VAR_DNSCRYPT_PORT) }
YY_BREAK
-case 327:
+case 328:
YY_RULE_SETUP
#line 550 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSCRYPT_SECRET_KEY) }
+{ YDVAR(1, VAR_DNSCRYPT_PROVIDER) }
YY_BREAK
-case 328:
+case 329:
YY_RULE_SETUP
#line 551 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT) }
+{ YDVAR(1, VAR_DNSCRYPT_SECRET_KEY) }
YY_BREAK
-case 329:
+case 330:
YY_RULE_SETUP
#line 552 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT_ROTATED) }
+{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT) }
YY_BREAK
-case 330:
+case 331:
YY_RULE_SETUP
#line 553 "util/configlexer.lex"
+{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT_ROTATED) }
+ YY_BREAK
+case 332:
+YY_RULE_SETUP
+#line 554 "util/configlexer.lex"
{
YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE) }
YY_BREAK
-case 331:
+case 333:
YY_RULE_SETUP
-#line 555 "util/configlexer.lex"
+#line 556 "util/configlexer.lex"
{
YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS) }
YY_BREAK
-case 332:
+case 334:
YY_RULE_SETUP
-#line 557 "util/configlexer.lex"
+#line 558 "util/configlexer.lex"
{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SIZE) }
YY_BREAK
-case 333:
+case 335:
YY_RULE_SETUP
-#line 558 "util/configlexer.lex"
+#line 559 "util/configlexer.lex"
{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SLABS) }
YY_BREAK
-case 334:
+case 336:
YY_RULE_SETUP
-#line 559 "util/configlexer.lex"
+#line 560 "util/configlexer.lex"
{ YDVAR(1, VAR_PAD_RESPONSES) }
YY_BREAK
-case 335:
+case 337:
YY_RULE_SETUP
-#line 560 "util/configlexer.lex"
+#line 561 "util/configlexer.lex"
{ YDVAR(1, VAR_PAD_RESPONSES_BLOCK_SIZE) }
YY_BREAK
-case 336:
+case 338:
YY_RULE_SETUP
-#line 561 "util/configlexer.lex"
+#line 562 "util/configlexer.lex"
{ YDVAR(1, VAR_PAD_QUERIES) }
YY_BREAK
-case 337:
+case 339:
YY_RULE_SETUP
-#line 562 "util/configlexer.lex"
+#line 563 "util/configlexer.lex"
{ YDVAR(1, VAR_PAD_QUERIES_BLOCK_SIZE) }
YY_BREAK
-case 338:
+case 340:
YY_RULE_SETUP
-#line 563 "util/configlexer.lex"
+#line 564 "util/configlexer.lex"
{ YDVAR(1, VAR_IPSECMOD_ENABLED) }
YY_BREAK
-case 339:
+case 341:
YY_RULE_SETUP
-#line 564 "util/configlexer.lex"
+#line 565 "util/configlexer.lex"
{ YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) }
YY_BREAK
-case 340:
+case 342:
YY_RULE_SETUP
-#line 565 "util/configlexer.lex"
+#line 566 "util/configlexer.lex"
{ YDVAR(1, VAR_IPSECMOD_HOOK) }
YY_BREAK
-case 341:
+case 343:
YY_RULE_SETUP
-#line 566 "util/configlexer.lex"
+#line 567 "util/configlexer.lex"
{ YDVAR(1, VAR_IPSECMOD_MAX_TTL) }
YY_BREAK
-case 342:
+case 344:
YY_RULE_SETUP
-#line 567 "util/configlexer.lex"
+#line 568 "util/configlexer.lex"
{ YDVAR(1, VAR_IPSECMOD_WHITELIST) }
YY_BREAK
-case 343:
+case 345:
YY_RULE_SETUP
-#line 568 "util/configlexer.lex"
+#line 569 "util/configlexer.lex"
{ YDVAR(1, VAR_IPSECMOD_WHITELIST) }
YY_BREAK
-case 344:
+case 346:
YY_RULE_SETUP
-#line 569 "util/configlexer.lex"
+#line 570 "util/configlexer.lex"
{ YDVAR(1, VAR_IPSECMOD_STRICT) }
YY_BREAK
-case 345:
+case 347:
YY_RULE_SETUP
-#line 570 "util/configlexer.lex"
+#line 571 "util/configlexer.lex"
{ YDVAR(0, VAR_CACHEDB) }
YY_BREAK
-case 346:
+case 348:
YY_RULE_SETUP
-#line 571 "util/configlexer.lex"
+#line 572 "util/configlexer.lex"
{ YDVAR(1, VAR_CACHEDB_BACKEND) }
YY_BREAK
-case 347:
+case 349:
YY_RULE_SETUP
-#line 572 "util/configlexer.lex"
+#line 573 "util/configlexer.lex"
{ YDVAR(1, VAR_CACHEDB_SECRETSEED) }
YY_BREAK
-case 348:
+case 350:
YY_RULE_SETUP
-#line 573 "util/configlexer.lex"
+#line 574 "util/configlexer.lex"
{ YDVAR(1, VAR_CACHEDB_NO_STORE) }
YY_BREAK
-case 349:
+case 351:
YY_RULE_SETUP
-#line 574 "util/configlexer.lex"
+#line 575 "util/configlexer.lex"
{ YDVAR(1, VAR_CACHEDB_CHECK_WHEN_SERVE_EXPIRED) }
YY_BREAK
-case 350:
+case 352:
YY_RULE_SETUP
-#line 575 "util/configlexer.lex"
+#line 576 "util/configlexer.lex"
{ YDVAR(1, VAR_CACHEDB_REDISHOST) }
YY_BREAK
-case 351:
+case 353:
YY_RULE_SETUP
-#line 576 "util/configlexer.lex"
+#line 577 "util/configlexer.lex"
{ YDVAR(1, VAR_CACHEDB_REDISREPLICAHOST) }
YY_BREAK
-case 352:
+case 354:
YY_RULE_SETUP
-#line 577 "util/configlexer.lex"
+#line 578 "util/configlexer.lex"
{ YDVAR(1, VAR_CACHEDB_REDISPORT) }
YY_BREAK
-case 353:
+case 355:
YY_RULE_SETUP
-#line 578 "util/configlexer.lex"
+#line 579 "util/configlexer.lex"
{ YDVAR(1, VAR_CACHEDB_REDISREPLICAPORT) }
YY_BREAK
-case 354:
+case 356:
YY_RULE_SETUP
-#line 579 "util/configlexer.lex"
+#line 580 "util/configlexer.lex"
{ YDVAR(1, VAR_CACHEDB_REDISPATH) }
YY_BREAK
-case 355:
+case 357:
YY_RULE_SETUP
-#line 580 "util/configlexer.lex"
+#line 581 "util/configlexer.lex"
{ YDVAR(1, VAR_CACHEDB_REDISREPLICAPATH) }
YY_BREAK
-case 356:
+case 358:
YY_RULE_SETUP
-#line 581 "util/configlexer.lex"
+#line 582 "util/configlexer.lex"
{ YDVAR(1, VAR_CACHEDB_REDISPASSWORD) }
YY_BREAK
-case 357:
+case 359:
YY_RULE_SETUP
-#line 582 "util/configlexer.lex"
+#line 583 "util/configlexer.lex"
{ YDVAR(1, VAR_CACHEDB_REDISREPLICAPASSWORD) }
YY_BREAK
-case 358:
+case 360:
YY_RULE_SETUP
-#line 583 "util/configlexer.lex"
+#line 584 "util/configlexer.lex"
{ YDVAR(1, VAR_CACHEDB_REDISTIMEOUT) }
YY_BREAK
-case 359:
+case 361:
YY_RULE_SETUP
-#line 584 "util/configlexer.lex"
+#line 585 "util/configlexer.lex"
{ YDVAR(1, VAR_CACHEDB_REDISREPLICATIMEOUT) }
YY_BREAK
-case 360:
+case 362:
YY_RULE_SETUP
-#line 585 "util/configlexer.lex"
+#line 586 "util/configlexer.lex"
{ YDVAR(1, VAR_CACHEDB_REDISCOMMANDTIMEOUT) }
YY_BREAK
-case 361:
+case 363:
YY_RULE_SETUP
-#line 586 "util/configlexer.lex"
+#line 587 "util/configlexer.lex"
{ YDVAR(1, VAR_CACHEDB_REDISREPLICACOMMANDTIMEOUT) }
YY_BREAK
-case 362:
+case 364:
YY_RULE_SETUP
-#line 587 "util/configlexer.lex"
+#line 588 "util/configlexer.lex"
{ YDVAR(1, VAR_CACHEDB_REDISCONNECTTIMEOUT) }
YY_BREAK
-case 363:
+case 365:
YY_RULE_SETUP
-#line 588 "util/configlexer.lex"
+#line 589 "util/configlexer.lex"
{ YDVAR(1, VAR_CACHEDB_REDISREPLICACONNECTTIMEOUT) }
YY_BREAK
-case 364:
+case 366:
YY_RULE_SETUP
-#line 589 "util/configlexer.lex"
+#line 590 "util/configlexer.lex"
{ YDVAR(1, VAR_CACHEDB_REDISEXPIRERECORDS) }
YY_BREAK
-case 365:
+case 367:
YY_RULE_SETUP
-#line 590 "util/configlexer.lex"
+#line 591 "util/configlexer.lex"
{ YDVAR(1, VAR_CACHEDB_REDISLOGICALDB) }
YY_BREAK
-case 366:
+case 368:
YY_RULE_SETUP
-#line 591 "util/configlexer.lex"
+#line 592 "util/configlexer.lex"
{ YDVAR(1, VAR_CACHEDB_REDISREPLICALOGICALDB) }
YY_BREAK
-case 367:
+case 369:
YY_RULE_SETUP
-#line 592 "util/configlexer.lex"
+#line 593 "util/configlexer.lex"
{ YDVAR(0, VAR_IPSET) }
YY_BREAK
-case 368:
+case 370:
YY_RULE_SETUP
-#line 593 "util/configlexer.lex"
+#line 594 "util/configlexer.lex"
{ YDVAR(1, VAR_IPSET_NAME_V4) }
YY_BREAK
-case 369:
+case 371:
YY_RULE_SETUP
-#line 594 "util/configlexer.lex"
+#line 595 "util/configlexer.lex"
{ YDVAR(1, VAR_IPSET_NAME_V6) }
YY_BREAK
-case 370:
+case 372:
YY_RULE_SETUP
-#line 595 "util/configlexer.lex"
+#line 596 "util/configlexer.lex"
{ YDVAR(1, VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM) }
YY_BREAK
-case 371:
+case 373:
YY_RULE_SETUP
-#line 596 "util/configlexer.lex"
+#line 597 "util/configlexer.lex"
{ YDVAR(2, VAR_TCP_CONNECTION_LIMIT) }
YY_BREAK
-case 372:
+case 374:
YY_RULE_SETUP
-#line 597 "util/configlexer.lex"
+#line 598 "util/configlexer.lex"
{ YDVAR(1, VAR_ANSWER_COOKIE ) }
YY_BREAK
-case 373:
+case 375:
YY_RULE_SETUP
-#line 598 "util/configlexer.lex"
+#line 599 "util/configlexer.lex"
{ YDVAR(1, VAR_COOKIE_SECRET) }
YY_BREAK
-case 374:
+case 376:
YY_RULE_SETUP
-#line 599 "util/configlexer.lex"
+#line 600 "util/configlexer.lex"
{ YDVAR(1, VAR_COOKIE_SECRET_FILE) }
YY_BREAK
-case 375:
+case 377:
YY_RULE_SETUP
-#line 600 "util/configlexer.lex"
+#line 601 "util/configlexer.lex"
{ YDVAR(2, VAR_EDNS_CLIENT_STRING) }
YY_BREAK
-case 376:
+case 378:
YY_RULE_SETUP
-#line 601 "util/configlexer.lex"
+#line 602 "util/configlexer.lex"
{ YDVAR(1, VAR_EDNS_CLIENT_STRING_OPCODE) }
YY_BREAK
-case 377:
+case 379:
YY_RULE_SETUP
-#line 602 "util/configlexer.lex"
+#line 603 "util/configlexer.lex"
{ YDVAR(1, VAR_NSID ) }
YY_BREAK
-case 378:
+case 380:
YY_RULE_SETUP
-#line 603 "util/configlexer.lex"
+#line 604 "util/configlexer.lex"
{ YDVAR(1, VAR_EDE ) }
YY_BREAK
-case 379:
+case 381:
YY_RULE_SETUP
-#line 604 "util/configlexer.lex"
+#line 605 "util/configlexer.lex"
{ YDVAR(1, VAR_DNS_ERROR_REPORTING ) }
YY_BREAK
-case 380:
+case 382:
YY_RULE_SETUP
-#line 605 "util/configlexer.lex"
+#line 606 "util/configlexer.lex"
{ YDVAR(1, VAR_PROXY_PROTOCOL_PORT) }
YY_BREAK
-case 381:
+case 383:
YY_RULE_SETUP
-#line 606 "util/configlexer.lex"
+#line 607 "util/configlexer.lex"
{ YDVAR(1, VAR_ITER_SCRUB_NS) }
YY_BREAK
-case 382:
+case 384:
YY_RULE_SETUP
-#line 607 "util/configlexer.lex"
+#line 608 "util/configlexer.lex"
{ YDVAR(1, VAR_ITER_SCRUB_CNAME) }
YY_BREAK
-case 383:
+case 385:
YY_RULE_SETUP
-#line 608 "util/configlexer.lex"
+#line 609 "util/configlexer.lex"
+{ YDVAR(1, VAR_ITER_SCRUB_RRSIG) }
+ YY_BREAK
+case 386:
+YY_RULE_SETUP
+#line 610 "util/configlexer.lex"
{ YDVAR(1, VAR_MAX_GLOBAL_QUOTA) }
YY_BREAK
-case 384:
+case 387:
YY_RULE_SETUP
-#line 609 "util/configlexer.lex"
+#line 611 "util/configlexer.lex"
{ YDVAR(1, VAR_ITER_SCRUB_PROMISCUOUS) }
YY_BREAK
-case 385:
-/* rule 385 can match eol */
+case 388:
+/* rule 388 can match eol */
YY_RULE_SETUP
-#line 610 "util/configlexer.lex"
+#line 612 "util/configlexer.lex"
{ LEXOUT(("NL\n")); cfg_parser->line++; }
YY_BREAK
/* Quoted strings. Strip leading and ending quotes */
-case 386:
+case 389:
YY_RULE_SETUP
-#line 613 "util/configlexer.lex"
+#line 615 "util/configlexer.lex"
{ BEGIN(quotedstring); LEXOUT(("QS ")); }
YY_BREAK
case YY_STATE_EOF(quotedstring):
-#line 614 "util/configlexer.lex"
+#line 616 "util/configlexer.lex"
{
yyerror("EOF inside quoted string");
if(--num_args == 0) { BEGIN(INITIAL); }
else { BEGIN(val); }
}
YY_BREAK
-case 387:
+case 390:
YY_RULE_SETUP
-#line 619 "util/configlexer.lex"
+#line 621 "util/configlexer.lex"
{ LEXOUT(("STR(%s) ", yytext)); yymore(); }
YY_BREAK
-case 388:
-/* rule 388 can match eol */
+case 391:
+/* rule 391 can match eol */
YY_RULE_SETUP
-#line 620 "util/configlexer.lex"
+#line 622 "util/configlexer.lex"
{ yyerror("newline inside quoted string, no end \"");
cfg_parser->line++; BEGIN(INITIAL); }
YY_BREAK
-case 389:
+case 392:
YY_RULE_SETUP
-#line 622 "util/configlexer.lex"
+#line 624 "util/configlexer.lex"
{
LEXOUT(("QE "));
if(--num_args == 0) { BEGIN(INITIAL); }
@@ -6878,34 +6919,34 @@ YY_RULE_SETUP
}
YY_BREAK
/* Single Quoted strings. Strip leading and ending quotes */
-case 390:
+case 393:
YY_RULE_SETUP
-#line 634 "util/configlexer.lex"
+#line 636 "util/configlexer.lex"
{ BEGIN(singlequotedstr); LEXOUT(("SQS ")); }
YY_BREAK
case YY_STATE_EOF(singlequotedstr):
-#line 635 "util/configlexer.lex"
+#line 637 "util/configlexer.lex"
{
yyerror("EOF inside quoted string");
if(--num_args == 0) { BEGIN(INITIAL); }
else { BEGIN(val); }
}
YY_BREAK
-case 391:
+case 394:
YY_RULE_SETUP
-#line 640 "util/configlexer.lex"
+#line 642 "util/configlexer.lex"
{ LEXOUT(("STR(%s) ", yytext)); yymore(); }
YY_BREAK
-case 392:
-/* rule 392 can match eol */
+case 395:
+/* rule 395 can match eol */
YY_RULE_SETUP
-#line 641 "util/configlexer.lex"
+#line 643 "util/configlexer.lex"
{ yyerror("newline inside quoted string, no end '");
cfg_parser->line++; BEGIN(INITIAL); }
YY_BREAK
-case 393:
+case 396:
YY_RULE_SETUP
-#line 643 "util/configlexer.lex"
+#line 645 "util/configlexer.lex"
{
LEXOUT(("SQE "));
if(--num_args == 0) { BEGIN(INITIAL); }
@@ -6918,38 +6959,38 @@ YY_RULE_SETUP
}
YY_BREAK
/* include: directive */
-case 394:
+case 397:
YY_RULE_SETUP
-#line 655 "util/configlexer.lex"
+#line 657 "util/configlexer.lex"
{
LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); }
YY_BREAK
case YY_STATE_EOF(include):
-#line 657 "util/configlexer.lex"
+#line 659 "util/configlexer.lex"
{
yyerror("EOF inside include directive");
BEGIN(inc_prev);
}
YY_BREAK
-case 395:
+case 398:
YY_RULE_SETUP
-#line 661 "util/configlexer.lex"
+#line 663 "util/configlexer.lex"
{ LEXOUT(("ISP ")); /* ignore */ }
YY_BREAK
-case 396:
-/* rule 396 can match eol */
+case 399:
+/* rule 399 can match eol */
YY_RULE_SETUP
-#line 662 "util/configlexer.lex"
+#line 664 "util/configlexer.lex"
{ LEXOUT(("NL\n")); cfg_parser->line++;}
YY_BREAK
-case 397:
+case 400:
YY_RULE_SETUP
-#line 663 "util/configlexer.lex"
+#line 665 "util/configlexer.lex"
{ LEXOUT(("IQS ")); BEGIN(include_quoted); }
YY_BREAK
-case 398:
+case 401:
YY_RULE_SETUP
-#line 664 "util/configlexer.lex"
+#line 666 "util/configlexer.lex"
{
LEXOUT(("Iunquotedstr(%s) ", yytext));
config_start_include_glob(yytext, 0);
@@ -6957,27 +6998,27 @@ YY_RULE_SETUP
}
YY_BREAK
case YY_STATE_EOF(include_quoted):
-#line 669 "util/configlexer.lex"
+#line 671 "util/configlexer.lex"
{
yyerror("EOF inside quoted string");
BEGIN(inc_prev);
}
YY_BREAK
-case 399:
+case 402:
YY_RULE_SETUP
-#line 673 "util/configlexer.lex"
+#line 675 "util/configlexer.lex"
{ LEXOUT(("ISTR(%s) ", yytext)); yymore(); }
YY_BREAK
-case 400:
-/* rule 400 can match eol */
+case 403:
+/* rule 403 can match eol */
YY_RULE_SETUP
-#line 674 "util/configlexer.lex"
+#line 676 "util/configlexer.lex"
{ yyerror("newline before \" in include name");
cfg_parser->line++; BEGIN(inc_prev); }
YY_BREAK
-case 401:
+case 404:
YY_RULE_SETUP
-#line 676 "util/configlexer.lex"
+#line 678 "util/configlexer.lex"
{
LEXOUT(("IQE "));
yytext[yyleng - 1] = '\0';
@@ -6987,7 +7028,7 @@ YY_RULE_SETUP
YY_BREAK
case YY_STATE_EOF(INITIAL):
case YY_STATE_EOF(val):
-#line 682 "util/configlexer.lex"
+#line 684 "util/configlexer.lex"
{
LEXOUT(("LEXEOF "));
yy_set_bol(1); /* Set beginning of line, so "^" rules match. */
@@ -7002,39 +7043,39 @@ case YY_STATE_EOF(val):
}
YY_BREAK
/* include-toplevel: directive */
-case 402:
+case 405:
YY_RULE_SETUP
-#line 696 "util/configlexer.lex"
+#line 698 "util/configlexer.lex"
{
LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include_toplevel);
}
YY_BREAK
case YY_STATE_EOF(include_toplevel):
-#line 699 "util/configlexer.lex"
+#line 701 "util/configlexer.lex"
{
yyerror("EOF inside include_toplevel directive");
BEGIN(inc_prev);
}
YY_BREAK
-case 403:
+case 406:
YY_RULE_SETUP
-#line 703 "util/configlexer.lex"
+#line 705 "util/configlexer.lex"
{ LEXOUT(("ITSP ")); /* ignore */ }
YY_BREAK
-case 404:
-/* rule 404 can match eol */
+case 407:
+/* rule 407 can match eol */
YY_RULE_SETUP
-#line 704 "util/configlexer.lex"
+#line 706 "util/configlexer.lex"
{ LEXOUT(("NL\n")); cfg_parser->line++; }
YY_BREAK
-case 405:
+case 408:
YY_RULE_SETUP
-#line 705 "util/configlexer.lex"
+#line 707 "util/configlexer.lex"
{ LEXOUT(("ITQS ")); BEGIN(include_toplevel_quoted); }
YY_BREAK
-case 406:
+case 409:
YY_RULE_SETUP
-#line 706 "util/configlexer.lex"
+#line 708 "util/configlexer.lex"
{
LEXOUT(("ITunquotedstr(%s) ", yytext));
config_start_include_glob(yytext, 1);
@@ -7043,29 +7084,29 @@ YY_RULE_SETUP
}
YY_BREAK
case YY_STATE_EOF(include_toplevel_quoted):
-#line 712 "util/configlexer.lex"
+#line 714 "util/configlexer.lex"
{
yyerror("EOF inside quoted string");
BEGIN(inc_prev);
}
YY_BREAK
-case 407:
+case 410:
YY_RULE_SETUP
-#line 716 "util/configlexer.lex"
+#line 718 "util/configlexer.lex"
{ LEXOUT(("ITSTR(%s) ", yytext)); yymore(); }
YY_BREAK
-case 408:
-/* rule 408 can match eol */
+case 411:
+/* rule 411 can match eol */
YY_RULE_SETUP
-#line 717 "util/configlexer.lex"
+#line 719 "util/configlexer.lex"
{
yyerror("newline before \" in include name");
cfg_parser->line++; BEGIN(inc_prev);
}
YY_BREAK
-case 409:
+case 412:
YY_RULE_SETUP
-#line 721 "util/configlexer.lex"
+#line 723 "util/configlexer.lex"
{
LEXOUT(("ITQE "));
yytext[yyleng - 1] = '\0';
@@ -7074,33 +7115,33 @@ YY_RULE_SETUP
return (VAR_FORCE_TOPLEVEL);
}
YY_BREAK
-case 410:
+case 413:
YY_RULE_SETUP
-#line 729 "util/configlexer.lex"
+#line 731 "util/configlexer.lex"
{ LEXOUT(("unquotedstr(%s) ", yytext));
if(--num_args == 0) { BEGIN(INITIAL); }
yylval.str = strdup(yytext); return STRING_ARG; }
YY_BREAK
-case 411:
+case 414:
YY_RULE_SETUP
-#line 733 "util/configlexer.lex"
+#line 735 "util/configlexer.lex"
{
ub_c_error_msg("unknown keyword '%s'", yytext);
}
YY_BREAK
-case 412:
+case 415:
YY_RULE_SETUP
-#line 737 "util/configlexer.lex"
+#line 739 "util/configlexer.lex"
{
ub_c_error_msg("stray '%s'", yytext);
}
YY_BREAK
-case 413:
+case 416:
YY_RULE_SETUP
-#line 741 "util/configlexer.lex"
+#line 743 "util/configlexer.lex"
ECHO;
YY_BREAK
-#line 7101 "<stdout>"
+#line 7142 "<stdout>"
case YY_END_OF_BUFFER:
{
@@ -7395,7 +7436,7 @@ static int yy_get_next_buffer (void)
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 4130 )
+ if ( yy_current_state >= 4154 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
@@ -7423,11 +7464,11 @@ static int yy_get_next_buffer (void)
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 4130 )
+ if ( yy_current_state >= 4154 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
- yy_is_jam = (yy_current_state == 4129);
+ yy_is_jam = (yy_current_state == 4153);
return yy_is_jam ? 0 : yy_current_state;
}
@@ -8066,6 +8107,6 @@ void yyfree (void * ptr )
#define YYTABLES_NAME "yytables"
-#line 741 "util/configlexer.lex"
+#line 743 "util/configlexer.lex"
diff --git a/util/configlexer.lex b/util/configlexer.lex
index 0ba8d60c9870..d6222cdf9a75 100644
--- a/util/configlexer.lex
+++ b/util/configlexer.lex
@@ -13,7 +13,6 @@
#pragma GCC diagnostic ignored "-Wsign-compare"
#endif
-#include <ctype.h>
#include <strings.h>
#ifdef HAVE_GLOB_H
# include <glob.h>
@@ -262,6 +261,7 @@ tls-session-ticket-keys{COLON} { YDVAR(1, VAR_TLS_SESSION_TICKET_KEYS) }
tls-ciphers{COLON} { YDVAR(1, VAR_TLS_CIPHERS) }
tls-ciphersuites{COLON} { YDVAR(1, VAR_TLS_CIPHERSUITES) }
tls-use-sni{COLON} { YDVAR(1, VAR_TLS_USE_SNI) }
+tls-protocols{COLON} { YDVAR(1, VAR_TLS_PROTOCOLS) }
https-port{COLON} { YDVAR(1, VAR_HTTPS_PORT) }
http-endpoint{COLON} { YDVAR(1, VAR_HTTP_ENDPOINT) }
http-max-streams{COLON} { YDVAR(1, VAR_HTTP_MAX_STREAMS) }
@@ -440,6 +440,7 @@ log-tag-queryreply{COLON} { YDVAR(1, VAR_LOG_TAG_QUERYREPLY) }
log-local-actions{COLON} { YDVAR(1, VAR_LOG_LOCAL_ACTIONS) }
log-servfail{COLON} { YDVAR(1, VAR_LOG_SERVFAIL) }
log-destaddr{COLON} { YDVAR(1, VAR_LOG_DESTADDR) }
+log-thread-id{COLON} { YDVAR(1, VAR_LOG_THREAD_ID) }
local-zone{COLON} { YDVAR(2, VAR_LOCAL_ZONE) }
local-data{COLON} { YDVAR(1, VAR_LOCAL_DATA) }
local-data-ptr{COLON} { YDVAR(1, VAR_LOCAL_DATA_PTR) }
@@ -605,6 +606,7 @@ dns-error-reporting{COLON} { YDVAR(1, VAR_DNS_ERROR_REPORTING ) }
proxy-protocol-port{COLON} { YDVAR(1, VAR_PROXY_PROTOCOL_PORT) }
iter-scrub-ns{COLON} { YDVAR(1, VAR_ITER_SCRUB_NS) }
iter-scrub-cname{COLON} { YDVAR(1, VAR_ITER_SCRUB_CNAME) }
+iter-scrub-rrsig{COLON} { YDVAR(1, VAR_ITER_SCRUB_RRSIG) }
max-global-quota{COLON} { YDVAR(1, VAR_MAX_GLOBAL_QUOTA) }
iter-scrub-promiscuous{COLON} { YDVAR(1, VAR_ITER_SCRUB_PROMISCUOUS) }
<INITIAL,val>{NEWLINE} { LEXOUT(("NL\n")); cfg_parser->line++; }
diff --git a/util/configparser.c b/util/configparser.c
index 031240d2d7c9..5f7112dc5e6d 100644
--- a/util/configparser.c
+++ b/util/configparser.c
@@ -1,4 +1,4 @@
-/* A Bison parser, made by GNU Bison 3.8.2. */
+/* A Bison parser, made by GNU Bison 3.7.6. */
/* Bison implementation for Yacc-like parsers in C
@@ -46,10 +46,10 @@
USER NAME SPACE" below. */
/* Identify Bison output, and Bison version. */
-#define YYBISON 30802
+#define YYBISON 30706
/* Bison version string. */
-#define YYBISON_VERSION "3.8.2"
+#define YYBISON_VERSION "3.7.6"
/* Skeleton name. */
#define YYSKELETON_NAME "yacc.c"
@@ -461,455 +461,461 @@ enum yysymbol_kind_t
YYSYMBOL_VAR_TLS_CIPHERS = 332, /* VAR_TLS_CIPHERS */
YYSYMBOL_VAR_TLS_CIPHERSUITES = 333, /* VAR_TLS_CIPHERSUITES */
YYSYMBOL_VAR_TLS_USE_SNI = 334, /* VAR_TLS_USE_SNI */
- YYSYMBOL_VAR_IPSET = 335, /* VAR_IPSET */
- YYSYMBOL_VAR_IPSET_NAME_V4 = 336, /* VAR_IPSET_NAME_V4 */
- YYSYMBOL_VAR_IPSET_NAME_V6 = 337, /* VAR_IPSET_NAME_V6 */
- YYSYMBOL_VAR_TLS_SESSION_TICKET_KEYS = 338, /* VAR_TLS_SESSION_TICKET_KEYS */
- YYSYMBOL_VAR_RPZ = 339, /* VAR_RPZ */
- YYSYMBOL_VAR_TAGS = 340, /* VAR_TAGS */
- YYSYMBOL_VAR_RPZ_ACTION_OVERRIDE = 341, /* VAR_RPZ_ACTION_OVERRIDE */
- YYSYMBOL_VAR_RPZ_CNAME_OVERRIDE = 342, /* VAR_RPZ_CNAME_OVERRIDE */
- YYSYMBOL_VAR_RPZ_LOG = 343, /* VAR_RPZ_LOG */
- YYSYMBOL_VAR_RPZ_LOG_NAME = 344, /* VAR_RPZ_LOG_NAME */
- YYSYMBOL_VAR_DYNLIB = 345, /* VAR_DYNLIB */
- YYSYMBOL_VAR_DYNLIB_FILE = 346, /* VAR_DYNLIB_FILE */
- YYSYMBOL_VAR_EDNS_CLIENT_STRING = 347, /* VAR_EDNS_CLIENT_STRING */
- YYSYMBOL_VAR_EDNS_CLIENT_STRING_OPCODE = 348, /* VAR_EDNS_CLIENT_STRING_OPCODE */
- YYSYMBOL_VAR_NSID = 349, /* VAR_NSID */
- YYSYMBOL_VAR_ZONEMD_PERMISSIVE_MODE = 350, /* VAR_ZONEMD_PERMISSIVE_MODE */
- YYSYMBOL_VAR_ZONEMD_CHECK = 351, /* VAR_ZONEMD_CHECK */
- YYSYMBOL_VAR_ZONEMD_REJECT_ABSENCE = 352, /* VAR_ZONEMD_REJECT_ABSENCE */
- YYSYMBOL_VAR_RPZ_SIGNAL_NXDOMAIN_RA = 353, /* VAR_RPZ_SIGNAL_NXDOMAIN_RA */
- YYSYMBOL_VAR_INTERFACE_AUTOMATIC_PORTS = 354, /* VAR_INTERFACE_AUTOMATIC_PORTS */
- YYSYMBOL_VAR_EDE = 355, /* VAR_EDE */
- YYSYMBOL_VAR_DNS_ERROR_REPORTING = 356, /* VAR_DNS_ERROR_REPORTING */
- YYSYMBOL_VAR_INTERFACE_ACTION = 357, /* VAR_INTERFACE_ACTION */
- YYSYMBOL_VAR_INTERFACE_VIEW = 358, /* VAR_INTERFACE_VIEW */
- YYSYMBOL_VAR_INTERFACE_TAG = 359, /* VAR_INTERFACE_TAG */
- YYSYMBOL_VAR_INTERFACE_TAG_ACTION = 360, /* VAR_INTERFACE_TAG_ACTION */
- YYSYMBOL_VAR_INTERFACE_TAG_DATA = 361, /* VAR_INTERFACE_TAG_DATA */
- YYSYMBOL_VAR_QUIC_PORT = 362, /* VAR_QUIC_PORT */
- YYSYMBOL_VAR_QUIC_SIZE = 363, /* VAR_QUIC_SIZE */
- YYSYMBOL_VAR_PROXY_PROTOCOL_PORT = 364, /* VAR_PROXY_PROTOCOL_PORT */
- YYSYMBOL_VAR_STATISTICS_INHIBIT_ZERO = 365, /* VAR_STATISTICS_INHIBIT_ZERO */
- YYSYMBOL_VAR_HARDEN_UNKNOWN_ADDITIONAL = 366, /* VAR_HARDEN_UNKNOWN_ADDITIONAL */
- YYSYMBOL_VAR_DISABLE_EDNS_DO = 367, /* VAR_DISABLE_EDNS_DO */
- YYSYMBOL_VAR_CACHEDB_NO_STORE = 368, /* VAR_CACHEDB_NO_STORE */
- YYSYMBOL_VAR_LOG_DESTADDR = 369, /* VAR_LOG_DESTADDR */
- YYSYMBOL_VAR_CACHEDB_CHECK_WHEN_SERVE_EXPIRED = 370, /* VAR_CACHEDB_CHECK_WHEN_SERVE_EXPIRED */
- YYSYMBOL_VAR_COOKIE_SECRET_FILE = 371, /* VAR_COOKIE_SECRET_FILE */
- YYSYMBOL_VAR_ITER_SCRUB_NS = 372, /* VAR_ITER_SCRUB_NS */
- YYSYMBOL_VAR_ITER_SCRUB_CNAME = 373, /* VAR_ITER_SCRUB_CNAME */
- YYSYMBOL_VAR_MAX_GLOBAL_QUOTA = 374, /* VAR_MAX_GLOBAL_QUOTA */
- YYSYMBOL_VAR_HARDEN_UNVERIFIED_GLUE = 375, /* VAR_HARDEN_UNVERIFIED_GLUE */
- YYSYMBOL_VAR_LOG_TIME_ISO = 376, /* VAR_LOG_TIME_ISO */
- YYSYMBOL_VAR_ITER_SCRUB_PROMISCUOUS = 377, /* VAR_ITER_SCRUB_PROMISCUOUS */
- YYSYMBOL_YYACCEPT = 378, /* $accept */
- YYSYMBOL_toplevelvars = 379, /* toplevelvars */
- YYSYMBOL_toplevelvar = 380, /* toplevelvar */
- YYSYMBOL_force_toplevel = 381, /* force_toplevel */
- YYSYMBOL_serverstart = 382, /* serverstart */
- YYSYMBOL_contents_server = 383, /* contents_server */
- YYSYMBOL_content_server = 384, /* content_server */
- YYSYMBOL_stub_clause = 385, /* stub_clause */
- YYSYMBOL_stubstart = 386, /* stubstart */
- YYSYMBOL_contents_stub = 387, /* contents_stub */
- YYSYMBOL_content_stub = 388, /* content_stub */
- YYSYMBOL_forward_clause = 389, /* forward_clause */
- YYSYMBOL_forwardstart = 390, /* forwardstart */
- YYSYMBOL_contents_forward = 391, /* contents_forward */
- YYSYMBOL_content_forward = 392, /* content_forward */
- YYSYMBOL_view_clause = 393, /* view_clause */
- YYSYMBOL_viewstart = 394, /* viewstart */
- YYSYMBOL_contents_view = 395, /* contents_view */
- YYSYMBOL_content_view = 396, /* content_view */
- YYSYMBOL_authstart = 397, /* authstart */
- YYSYMBOL_contents_auth = 398, /* contents_auth */
- YYSYMBOL_content_auth = 399, /* content_auth */
- YYSYMBOL_rpz_tag = 400, /* rpz_tag */
- YYSYMBOL_rpz_action_override = 401, /* rpz_action_override */
- YYSYMBOL_rpz_cname_override = 402, /* rpz_cname_override */
- YYSYMBOL_rpz_log = 403, /* rpz_log */
- YYSYMBOL_rpz_log_name = 404, /* rpz_log_name */
- YYSYMBOL_rpz_signal_nxdomain_ra = 405, /* rpz_signal_nxdomain_ra */
- YYSYMBOL_rpzstart = 406, /* rpzstart */
- YYSYMBOL_contents_rpz = 407, /* contents_rpz */
- YYSYMBOL_content_rpz = 408, /* content_rpz */
- YYSYMBOL_server_num_threads = 409, /* server_num_threads */
- YYSYMBOL_server_verbosity = 410, /* server_verbosity */
- YYSYMBOL_server_statistics_interval = 411, /* server_statistics_interval */
- YYSYMBOL_server_statistics_cumulative = 412, /* server_statistics_cumulative */
- YYSYMBOL_server_extended_statistics = 413, /* server_extended_statistics */
- YYSYMBOL_server_statistics_inhibit_zero = 414, /* server_statistics_inhibit_zero */
- YYSYMBOL_server_shm_enable = 415, /* server_shm_enable */
- YYSYMBOL_server_shm_key = 416, /* server_shm_key */
- YYSYMBOL_server_port = 417, /* server_port */
- YYSYMBOL_server_send_client_subnet = 418, /* server_send_client_subnet */
- YYSYMBOL_server_client_subnet_zone = 419, /* server_client_subnet_zone */
- YYSYMBOL_server_client_subnet_always_forward = 420, /* server_client_subnet_always_forward */
- YYSYMBOL_server_client_subnet_opcode = 421, /* server_client_subnet_opcode */
- YYSYMBOL_server_max_client_subnet_ipv4 = 422, /* server_max_client_subnet_ipv4 */
- YYSYMBOL_server_max_client_subnet_ipv6 = 423, /* server_max_client_subnet_ipv6 */
- YYSYMBOL_server_min_client_subnet_ipv4 = 424, /* server_min_client_subnet_ipv4 */
- YYSYMBOL_server_min_client_subnet_ipv6 = 425, /* server_min_client_subnet_ipv6 */
- YYSYMBOL_server_max_ecs_tree_size_ipv4 = 426, /* server_max_ecs_tree_size_ipv4 */
- YYSYMBOL_server_max_ecs_tree_size_ipv6 = 427, /* server_max_ecs_tree_size_ipv6 */
- YYSYMBOL_server_interface = 428, /* server_interface */
- YYSYMBOL_server_outgoing_interface = 429, /* server_outgoing_interface */
- YYSYMBOL_server_outgoing_range = 430, /* server_outgoing_range */
- YYSYMBOL_server_outgoing_port_permit = 431, /* server_outgoing_port_permit */
- YYSYMBOL_server_outgoing_port_avoid = 432, /* server_outgoing_port_avoid */
- YYSYMBOL_server_outgoing_num_tcp = 433, /* server_outgoing_num_tcp */
- YYSYMBOL_server_incoming_num_tcp = 434, /* server_incoming_num_tcp */
- YYSYMBOL_server_interface_automatic = 435, /* server_interface_automatic */
- YYSYMBOL_server_interface_automatic_ports = 436, /* server_interface_automatic_ports */
- YYSYMBOL_server_do_ip4 = 437, /* server_do_ip4 */
- YYSYMBOL_server_do_ip6 = 438, /* server_do_ip6 */
- YYSYMBOL_server_do_nat64 = 439, /* server_do_nat64 */
- YYSYMBOL_server_do_udp = 440, /* server_do_udp */
- YYSYMBOL_server_do_tcp = 441, /* server_do_tcp */
- YYSYMBOL_server_prefer_ip4 = 442, /* server_prefer_ip4 */
- YYSYMBOL_server_prefer_ip6 = 443, /* server_prefer_ip6 */
- YYSYMBOL_server_tcp_mss = 444, /* server_tcp_mss */
- YYSYMBOL_server_outgoing_tcp_mss = 445, /* server_outgoing_tcp_mss */
- YYSYMBOL_server_tcp_idle_timeout = 446, /* server_tcp_idle_timeout */
- YYSYMBOL_server_max_reuse_tcp_queries = 447, /* server_max_reuse_tcp_queries */
- YYSYMBOL_server_tcp_reuse_timeout = 448, /* server_tcp_reuse_timeout */
- YYSYMBOL_server_tcp_auth_query_timeout = 449, /* server_tcp_auth_query_timeout */
- YYSYMBOL_server_tcp_keepalive = 450, /* server_tcp_keepalive */
- YYSYMBOL_server_tcp_keepalive_timeout = 451, /* server_tcp_keepalive_timeout */
- YYSYMBOL_server_sock_queue_timeout = 452, /* server_sock_queue_timeout */
- YYSYMBOL_server_tcp_upstream = 453, /* server_tcp_upstream */
- YYSYMBOL_server_udp_upstream_without_downstream = 454, /* server_udp_upstream_without_downstream */
- YYSYMBOL_server_ssl_upstream = 455, /* server_ssl_upstream */
- YYSYMBOL_server_ssl_service_key = 456, /* server_ssl_service_key */
- YYSYMBOL_server_ssl_service_pem = 457, /* server_ssl_service_pem */
- YYSYMBOL_server_ssl_port = 458, /* server_ssl_port */
- YYSYMBOL_server_tls_cert_bundle = 459, /* server_tls_cert_bundle */
- YYSYMBOL_server_tls_win_cert = 460, /* server_tls_win_cert */
- YYSYMBOL_server_tls_additional_port = 461, /* server_tls_additional_port */
- YYSYMBOL_server_tls_ciphers = 462, /* server_tls_ciphers */
- YYSYMBOL_server_tls_ciphersuites = 463, /* server_tls_ciphersuites */
- YYSYMBOL_server_tls_session_ticket_keys = 464, /* server_tls_session_ticket_keys */
- YYSYMBOL_server_tls_use_sni = 465, /* server_tls_use_sni */
- YYSYMBOL_server_https_port = 466, /* server_https_port */
- YYSYMBOL_server_http_endpoint = 467, /* server_http_endpoint */
- YYSYMBOL_server_http_max_streams = 468, /* server_http_max_streams */
- YYSYMBOL_server_http_query_buffer_size = 469, /* server_http_query_buffer_size */
- YYSYMBOL_server_http_response_buffer_size = 470, /* server_http_response_buffer_size */
- YYSYMBOL_server_http_nodelay = 471, /* server_http_nodelay */
- YYSYMBOL_server_http_notls_downstream = 472, /* server_http_notls_downstream */
- YYSYMBOL_server_quic_port = 473, /* server_quic_port */
- YYSYMBOL_server_quic_size = 474, /* server_quic_size */
- YYSYMBOL_server_use_systemd = 475, /* server_use_systemd */
- YYSYMBOL_server_do_daemonize = 476, /* server_do_daemonize */
- YYSYMBOL_server_use_syslog = 477, /* server_use_syslog */
- YYSYMBOL_server_log_time_ascii = 478, /* server_log_time_ascii */
- YYSYMBOL_server_log_time_iso = 479, /* server_log_time_iso */
- YYSYMBOL_server_log_queries = 480, /* server_log_queries */
- YYSYMBOL_server_log_replies = 481, /* server_log_replies */
- YYSYMBOL_server_log_tag_queryreply = 482, /* server_log_tag_queryreply */
- YYSYMBOL_server_log_servfail = 483, /* server_log_servfail */
- YYSYMBOL_server_log_destaddr = 484, /* server_log_destaddr */
- YYSYMBOL_server_log_local_actions = 485, /* server_log_local_actions */
- YYSYMBOL_server_chroot = 486, /* server_chroot */
- YYSYMBOL_server_username = 487, /* server_username */
- YYSYMBOL_server_directory = 488, /* server_directory */
- YYSYMBOL_server_logfile = 489, /* server_logfile */
- YYSYMBOL_server_pidfile = 490, /* server_pidfile */
- YYSYMBOL_server_root_hints = 491, /* server_root_hints */
- YYSYMBOL_server_dlv_anchor_file = 492, /* server_dlv_anchor_file */
- YYSYMBOL_server_dlv_anchor = 493, /* server_dlv_anchor */
- YYSYMBOL_server_auto_trust_anchor_file = 494, /* server_auto_trust_anchor_file */
- YYSYMBOL_server_trust_anchor_file = 495, /* server_trust_anchor_file */
- YYSYMBOL_server_trusted_keys_file = 496, /* server_trusted_keys_file */
- YYSYMBOL_server_trust_anchor = 497, /* server_trust_anchor */
- YYSYMBOL_server_trust_anchor_signaling = 498, /* server_trust_anchor_signaling */
- YYSYMBOL_server_root_key_sentinel = 499, /* server_root_key_sentinel */
- YYSYMBOL_server_domain_insecure = 500, /* server_domain_insecure */
- YYSYMBOL_server_hide_identity = 501, /* server_hide_identity */
- YYSYMBOL_server_hide_version = 502, /* server_hide_version */
- YYSYMBOL_server_hide_trustanchor = 503, /* server_hide_trustanchor */
- YYSYMBOL_server_hide_http_user_agent = 504, /* server_hide_http_user_agent */
- YYSYMBOL_server_identity = 505, /* server_identity */
- YYSYMBOL_server_version = 506, /* server_version */
- YYSYMBOL_server_http_user_agent = 507, /* server_http_user_agent */
- YYSYMBOL_server_nsid = 508, /* server_nsid */
- YYSYMBOL_server_so_rcvbuf = 509, /* server_so_rcvbuf */
- YYSYMBOL_server_so_sndbuf = 510, /* server_so_sndbuf */
- YYSYMBOL_server_so_reuseport = 511, /* server_so_reuseport */
- YYSYMBOL_server_ip_transparent = 512, /* server_ip_transparent */
- YYSYMBOL_server_ip_freebind = 513, /* server_ip_freebind */
- YYSYMBOL_server_ip_dscp = 514, /* server_ip_dscp */
- YYSYMBOL_server_stream_wait_size = 515, /* server_stream_wait_size */
- YYSYMBOL_server_edns_buffer_size = 516, /* server_edns_buffer_size */
- YYSYMBOL_server_msg_buffer_size = 517, /* server_msg_buffer_size */
- YYSYMBOL_server_msg_cache_size = 518, /* server_msg_cache_size */
- YYSYMBOL_server_msg_cache_slabs = 519, /* server_msg_cache_slabs */
- YYSYMBOL_server_num_queries_per_thread = 520, /* server_num_queries_per_thread */
- YYSYMBOL_server_jostle_timeout = 521, /* server_jostle_timeout */
- YYSYMBOL_server_delay_close = 522, /* server_delay_close */
- YYSYMBOL_server_udp_connect = 523, /* server_udp_connect */
- YYSYMBOL_server_unblock_lan_zones = 524, /* server_unblock_lan_zones */
- YYSYMBOL_server_insecure_lan_zones = 525, /* server_insecure_lan_zones */
- YYSYMBOL_server_rrset_cache_size = 526, /* server_rrset_cache_size */
- YYSYMBOL_server_rrset_cache_slabs = 527, /* server_rrset_cache_slabs */
- YYSYMBOL_server_infra_host_ttl = 528, /* server_infra_host_ttl */
- YYSYMBOL_server_infra_lame_ttl = 529, /* server_infra_lame_ttl */
- YYSYMBOL_server_infra_cache_numhosts = 530, /* server_infra_cache_numhosts */
- YYSYMBOL_server_infra_cache_lame_size = 531, /* server_infra_cache_lame_size */
- YYSYMBOL_server_infra_cache_slabs = 532, /* server_infra_cache_slabs */
- YYSYMBOL_server_infra_cache_min_rtt = 533, /* server_infra_cache_min_rtt */
- YYSYMBOL_server_infra_cache_max_rtt = 534, /* server_infra_cache_max_rtt */
- YYSYMBOL_server_infra_keep_probing = 535, /* server_infra_keep_probing */
- YYSYMBOL_server_target_fetch_policy = 536, /* server_target_fetch_policy */
- YYSYMBOL_server_harden_short_bufsize = 537, /* server_harden_short_bufsize */
- YYSYMBOL_server_harden_large_queries = 538, /* server_harden_large_queries */
- YYSYMBOL_server_harden_glue = 539, /* server_harden_glue */
- YYSYMBOL_server_harden_unverified_glue = 540, /* server_harden_unverified_glue */
- YYSYMBOL_server_harden_dnssec_stripped = 541, /* server_harden_dnssec_stripped */
- YYSYMBOL_server_harden_below_nxdomain = 542, /* server_harden_below_nxdomain */
- YYSYMBOL_server_harden_referral_path = 543, /* server_harden_referral_path */
- YYSYMBOL_server_harden_algo_downgrade = 544, /* server_harden_algo_downgrade */
- YYSYMBOL_server_harden_unknown_additional = 545, /* server_harden_unknown_additional */
- YYSYMBOL_server_use_caps_for_id = 546, /* server_use_caps_for_id */
- YYSYMBOL_server_caps_whitelist = 547, /* server_caps_whitelist */
- YYSYMBOL_server_private_address = 548, /* server_private_address */
- YYSYMBOL_server_private_domain = 549, /* server_private_domain */
- YYSYMBOL_server_prefetch = 550, /* server_prefetch */
- YYSYMBOL_server_prefetch_key = 551, /* server_prefetch_key */
- YYSYMBOL_server_deny_any = 552, /* server_deny_any */
- YYSYMBOL_server_unwanted_reply_threshold = 553, /* server_unwanted_reply_threshold */
- YYSYMBOL_server_do_not_query_address = 554, /* server_do_not_query_address */
- YYSYMBOL_server_do_not_query_localhost = 555, /* server_do_not_query_localhost */
- YYSYMBOL_server_access_control = 556, /* server_access_control */
- YYSYMBOL_server_interface_action = 557, /* server_interface_action */
- YYSYMBOL_server_module_conf = 558, /* server_module_conf */
- YYSYMBOL_server_val_override_date = 559, /* server_val_override_date */
- YYSYMBOL_server_val_sig_skew_min = 560, /* server_val_sig_skew_min */
- YYSYMBOL_server_val_sig_skew_max = 561, /* server_val_sig_skew_max */
- YYSYMBOL_server_val_max_restart = 562, /* server_val_max_restart */
- YYSYMBOL_server_cache_max_ttl = 563, /* server_cache_max_ttl */
- YYSYMBOL_server_cache_max_negative_ttl = 564, /* server_cache_max_negative_ttl */
- YYSYMBOL_server_cache_min_negative_ttl = 565, /* server_cache_min_negative_ttl */
- YYSYMBOL_server_cache_min_ttl = 566, /* server_cache_min_ttl */
- YYSYMBOL_server_bogus_ttl = 567, /* server_bogus_ttl */
- YYSYMBOL_server_val_clean_additional = 568, /* server_val_clean_additional */
- YYSYMBOL_server_val_permissive_mode = 569, /* server_val_permissive_mode */
- YYSYMBOL_server_aggressive_nsec = 570, /* server_aggressive_nsec */
- YYSYMBOL_server_ignore_cd_flag = 571, /* server_ignore_cd_flag */
- YYSYMBOL_server_disable_edns_do = 572, /* server_disable_edns_do */
- YYSYMBOL_server_serve_expired = 573, /* server_serve_expired */
- YYSYMBOL_server_serve_expired_ttl = 574, /* server_serve_expired_ttl */
- YYSYMBOL_server_serve_expired_ttl_reset = 575, /* server_serve_expired_ttl_reset */
- YYSYMBOL_server_serve_expired_reply_ttl = 576, /* server_serve_expired_reply_ttl */
- YYSYMBOL_server_serve_expired_client_timeout = 577, /* server_serve_expired_client_timeout */
- YYSYMBOL_server_ede_serve_expired = 578, /* server_ede_serve_expired */
- YYSYMBOL_server_serve_original_ttl = 579, /* server_serve_original_ttl */
- YYSYMBOL_server_fake_dsa = 580, /* server_fake_dsa */
- YYSYMBOL_server_fake_sha1 = 581, /* server_fake_sha1 */
- YYSYMBOL_server_val_log_level = 582, /* server_val_log_level */
- YYSYMBOL_server_val_nsec3_keysize_iterations = 583, /* server_val_nsec3_keysize_iterations */
- YYSYMBOL_server_zonemd_permissive_mode = 584, /* server_zonemd_permissive_mode */
- YYSYMBOL_server_add_holddown = 585, /* server_add_holddown */
- YYSYMBOL_server_del_holddown = 586, /* server_del_holddown */
- YYSYMBOL_server_keep_missing = 587, /* server_keep_missing */
- YYSYMBOL_server_permit_small_holddown = 588, /* server_permit_small_holddown */
- YYSYMBOL_server_key_cache_size = 589, /* server_key_cache_size */
- YYSYMBOL_server_key_cache_slabs = 590, /* server_key_cache_slabs */
- YYSYMBOL_server_neg_cache_size = 591, /* server_neg_cache_size */
- YYSYMBOL_server_local_zone = 592, /* server_local_zone */
- YYSYMBOL_server_local_data = 593, /* server_local_data */
- YYSYMBOL_server_local_data_ptr = 594, /* server_local_data_ptr */
- YYSYMBOL_server_minimal_responses = 595, /* server_minimal_responses */
- YYSYMBOL_server_rrset_roundrobin = 596, /* server_rrset_roundrobin */
- YYSYMBOL_server_unknown_server_time_limit = 597, /* server_unknown_server_time_limit */
- YYSYMBOL_server_discard_timeout = 598, /* server_discard_timeout */
- YYSYMBOL_server_wait_limit = 599, /* server_wait_limit */
- YYSYMBOL_server_wait_limit_cookie = 600, /* server_wait_limit_cookie */
- YYSYMBOL_server_wait_limit_netblock = 601, /* server_wait_limit_netblock */
- YYSYMBOL_server_wait_limit_cookie_netblock = 602, /* server_wait_limit_cookie_netblock */
- YYSYMBOL_server_max_udp_size = 603, /* server_max_udp_size */
- YYSYMBOL_server_dns64_prefix = 604, /* server_dns64_prefix */
- YYSYMBOL_server_dns64_synthall = 605, /* server_dns64_synthall */
- YYSYMBOL_server_dns64_ignore_aaaa = 606, /* server_dns64_ignore_aaaa */
- YYSYMBOL_server_nat64_prefix = 607, /* server_nat64_prefix */
- YYSYMBOL_server_define_tag = 608, /* server_define_tag */
- YYSYMBOL_server_local_zone_tag = 609, /* server_local_zone_tag */
- YYSYMBOL_server_access_control_tag = 610, /* server_access_control_tag */
- YYSYMBOL_server_access_control_tag_action = 611, /* server_access_control_tag_action */
- YYSYMBOL_server_access_control_tag_data = 612, /* server_access_control_tag_data */
- YYSYMBOL_server_local_zone_override = 613, /* server_local_zone_override */
- YYSYMBOL_server_access_control_view = 614, /* server_access_control_view */
- YYSYMBOL_server_interface_tag = 615, /* server_interface_tag */
- YYSYMBOL_server_interface_tag_action = 616, /* server_interface_tag_action */
- YYSYMBOL_server_interface_tag_data = 617, /* server_interface_tag_data */
- YYSYMBOL_server_interface_view = 618, /* server_interface_view */
- YYSYMBOL_server_response_ip_tag = 619, /* server_response_ip_tag */
- YYSYMBOL_server_ip_ratelimit = 620, /* server_ip_ratelimit */
- YYSYMBOL_server_ip_ratelimit_cookie = 621, /* server_ip_ratelimit_cookie */
- YYSYMBOL_server_ratelimit = 622, /* server_ratelimit */
- YYSYMBOL_server_ip_ratelimit_size = 623, /* server_ip_ratelimit_size */
- YYSYMBOL_server_ratelimit_size = 624, /* server_ratelimit_size */
- YYSYMBOL_server_ip_ratelimit_slabs = 625, /* server_ip_ratelimit_slabs */
- YYSYMBOL_server_ratelimit_slabs = 626, /* server_ratelimit_slabs */
- YYSYMBOL_server_ratelimit_for_domain = 627, /* server_ratelimit_for_domain */
- YYSYMBOL_server_ratelimit_below_domain = 628, /* server_ratelimit_below_domain */
- YYSYMBOL_server_ip_ratelimit_factor = 629, /* server_ip_ratelimit_factor */
- YYSYMBOL_server_ratelimit_factor = 630, /* server_ratelimit_factor */
- YYSYMBOL_server_ip_ratelimit_backoff = 631, /* server_ip_ratelimit_backoff */
- YYSYMBOL_server_ratelimit_backoff = 632, /* server_ratelimit_backoff */
- YYSYMBOL_server_outbound_msg_retry = 633, /* server_outbound_msg_retry */
- YYSYMBOL_server_max_sent_count = 634, /* server_max_sent_count */
- YYSYMBOL_server_max_query_restarts = 635, /* server_max_query_restarts */
- YYSYMBOL_server_low_rtt = 636, /* server_low_rtt */
- YYSYMBOL_server_fast_server_num = 637, /* server_fast_server_num */
- YYSYMBOL_server_fast_server_permil = 638, /* server_fast_server_permil */
- YYSYMBOL_server_qname_minimisation = 639, /* server_qname_minimisation */
- YYSYMBOL_server_qname_minimisation_strict = 640, /* server_qname_minimisation_strict */
- YYSYMBOL_server_pad_responses = 641, /* server_pad_responses */
- YYSYMBOL_server_pad_responses_block_size = 642, /* server_pad_responses_block_size */
- YYSYMBOL_server_pad_queries = 643, /* server_pad_queries */
- YYSYMBOL_server_pad_queries_block_size = 644, /* server_pad_queries_block_size */
- YYSYMBOL_server_ipsecmod_enabled = 645, /* server_ipsecmod_enabled */
- YYSYMBOL_server_ipsecmod_ignore_bogus = 646, /* server_ipsecmod_ignore_bogus */
- YYSYMBOL_server_ipsecmod_hook = 647, /* server_ipsecmod_hook */
- YYSYMBOL_server_ipsecmod_max_ttl = 648, /* server_ipsecmod_max_ttl */
- YYSYMBOL_server_ipsecmod_whitelist = 649, /* server_ipsecmod_whitelist */
- YYSYMBOL_server_ipsecmod_strict = 650, /* server_ipsecmod_strict */
- YYSYMBOL_server_edns_client_string = 651, /* server_edns_client_string */
- YYSYMBOL_server_edns_client_string_opcode = 652, /* server_edns_client_string_opcode */
- YYSYMBOL_server_ede = 653, /* server_ede */
- YYSYMBOL_server_dns_error_reporting = 654, /* server_dns_error_reporting */
- YYSYMBOL_server_proxy_protocol_port = 655, /* server_proxy_protocol_port */
- YYSYMBOL_stub_name = 656, /* stub_name */
- YYSYMBOL_stub_host = 657, /* stub_host */
- YYSYMBOL_stub_addr = 658, /* stub_addr */
- YYSYMBOL_stub_first = 659, /* stub_first */
- YYSYMBOL_stub_no_cache = 660, /* stub_no_cache */
- YYSYMBOL_stub_ssl_upstream = 661, /* stub_ssl_upstream */
- YYSYMBOL_stub_tcp_upstream = 662, /* stub_tcp_upstream */
- YYSYMBOL_stub_prime = 663, /* stub_prime */
- YYSYMBOL_forward_name = 664, /* forward_name */
- YYSYMBOL_forward_host = 665, /* forward_host */
- YYSYMBOL_forward_addr = 666, /* forward_addr */
- YYSYMBOL_forward_first = 667, /* forward_first */
- YYSYMBOL_forward_no_cache = 668, /* forward_no_cache */
- YYSYMBOL_forward_ssl_upstream = 669, /* forward_ssl_upstream */
- YYSYMBOL_forward_tcp_upstream = 670, /* forward_tcp_upstream */
- YYSYMBOL_auth_name = 671, /* auth_name */
- YYSYMBOL_auth_zonefile = 672, /* auth_zonefile */
- YYSYMBOL_auth_master = 673, /* auth_master */
- YYSYMBOL_auth_url = 674, /* auth_url */
- YYSYMBOL_auth_allow_notify = 675, /* auth_allow_notify */
- YYSYMBOL_auth_zonemd_check = 676, /* auth_zonemd_check */
- YYSYMBOL_auth_zonemd_reject_absence = 677, /* auth_zonemd_reject_absence */
- YYSYMBOL_auth_for_downstream = 678, /* auth_for_downstream */
- YYSYMBOL_auth_for_upstream = 679, /* auth_for_upstream */
- YYSYMBOL_auth_fallback_enabled = 680, /* auth_fallback_enabled */
- YYSYMBOL_view_name = 681, /* view_name */
- YYSYMBOL_view_local_zone = 682, /* view_local_zone */
- YYSYMBOL_view_response_ip = 683, /* view_response_ip */
- YYSYMBOL_view_response_ip_data = 684, /* view_response_ip_data */
- YYSYMBOL_view_local_data = 685, /* view_local_data */
- YYSYMBOL_view_local_data_ptr = 686, /* view_local_data_ptr */
- YYSYMBOL_view_first = 687, /* view_first */
- YYSYMBOL_rcstart = 688, /* rcstart */
- YYSYMBOL_contents_rc = 689, /* contents_rc */
- YYSYMBOL_content_rc = 690, /* content_rc */
- YYSYMBOL_rc_control_enable = 691, /* rc_control_enable */
- YYSYMBOL_rc_control_port = 692, /* rc_control_port */
- YYSYMBOL_rc_control_interface = 693, /* rc_control_interface */
- YYSYMBOL_rc_control_use_cert = 694, /* rc_control_use_cert */
- YYSYMBOL_rc_server_key_file = 695, /* rc_server_key_file */
- YYSYMBOL_rc_server_cert_file = 696, /* rc_server_cert_file */
- YYSYMBOL_rc_control_key_file = 697, /* rc_control_key_file */
- YYSYMBOL_rc_control_cert_file = 698, /* rc_control_cert_file */
- YYSYMBOL_dtstart = 699, /* dtstart */
- YYSYMBOL_contents_dt = 700, /* contents_dt */
- YYSYMBOL_content_dt = 701, /* content_dt */
- YYSYMBOL_dt_dnstap_enable = 702, /* dt_dnstap_enable */
- YYSYMBOL_dt_dnstap_bidirectional = 703, /* dt_dnstap_bidirectional */
- YYSYMBOL_dt_dnstap_socket_path = 704, /* dt_dnstap_socket_path */
- YYSYMBOL_dt_dnstap_ip = 705, /* dt_dnstap_ip */
- YYSYMBOL_dt_dnstap_tls = 706, /* dt_dnstap_tls */
- YYSYMBOL_dt_dnstap_tls_server_name = 707, /* dt_dnstap_tls_server_name */
- YYSYMBOL_dt_dnstap_tls_cert_bundle = 708, /* dt_dnstap_tls_cert_bundle */
- YYSYMBOL_dt_dnstap_tls_client_key_file = 709, /* dt_dnstap_tls_client_key_file */
- YYSYMBOL_dt_dnstap_tls_client_cert_file = 710, /* dt_dnstap_tls_client_cert_file */
- YYSYMBOL_dt_dnstap_send_identity = 711, /* dt_dnstap_send_identity */
- YYSYMBOL_dt_dnstap_send_version = 712, /* dt_dnstap_send_version */
- YYSYMBOL_dt_dnstap_identity = 713, /* dt_dnstap_identity */
- YYSYMBOL_dt_dnstap_version = 714, /* dt_dnstap_version */
- YYSYMBOL_dt_dnstap_log_resolver_query_messages = 715, /* dt_dnstap_log_resolver_query_messages */
- YYSYMBOL_dt_dnstap_log_resolver_response_messages = 716, /* dt_dnstap_log_resolver_response_messages */
- YYSYMBOL_dt_dnstap_log_client_query_messages = 717, /* dt_dnstap_log_client_query_messages */
- YYSYMBOL_dt_dnstap_log_client_response_messages = 718, /* dt_dnstap_log_client_response_messages */
- YYSYMBOL_dt_dnstap_log_forwarder_query_messages = 719, /* dt_dnstap_log_forwarder_query_messages */
- YYSYMBOL_dt_dnstap_log_forwarder_response_messages = 720, /* dt_dnstap_log_forwarder_response_messages */
- YYSYMBOL_dt_dnstap_sample_rate = 721, /* dt_dnstap_sample_rate */
- YYSYMBOL_pythonstart = 722, /* pythonstart */
- YYSYMBOL_contents_py = 723, /* contents_py */
- YYSYMBOL_content_py = 724, /* content_py */
- YYSYMBOL_py_script = 725, /* py_script */
- YYSYMBOL_dynlibstart = 726, /* dynlibstart */
- YYSYMBOL_contents_dl = 727, /* contents_dl */
- YYSYMBOL_content_dl = 728, /* content_dl */
- YYSYMBOL_dl_file = 729, /* dl_file */
- YYSYMBOL_server_disable_dnssec_lame_check = 730, /* server_disable_dnssec_lame_check */
- YYSYMBOL_server_log_identity = 731, /* server_log_identity */
- YYSYMBOL_server_response_ip = 732, /* server_response_ip */
- YYSYMBOL_server_response_ip_data = 733, /* server_response_ip_data */
- YYSYMBOL_dnscstart = 734, /* dnscstart */
- YYSYMBOL_contents_dnsc = 735, /* contents_dnsc */
- YYSYMBOL_content_dnsc = 736, /* content_dnsc */
- YYSYMBOL_dnsc_dnscrypt_enable = 737, /* dnsc_dnscrypt_enable */
- YYSYMBOL_dnsc_dnscrypt_port = 738, /* dnsc_dnscrypt_port */
- YYSYMBOL_dnsc_dnscrypt_provider = 739, /* dnsc_dnscrypt_provider */
- YYSYMBOL_dnsc_dnscrypt_provider_cert = 740, /* dnsc_dnscrypt_provider_cert */
- YYSYMBOL_dnsc_dnscrypt_provider_cert_rotated = 741, /* dnsc_dnscrypt_provider_cert_rotated */
- YYSYMBOL_dnsc_dnscrypt_secret_key = 742, /* dnsc_dnscrypt_secret_key */
- YYSYMBOL_dnsc_dnscrypt_shared_secret_cache_size = 743, /* dnsc_dnscrypt_shared_secret_cache_size */
- YYSYMBOL_dnsc_dnscrypt_shared_secret_cache_slabs = 744, /* dnsc_dnscrypt_shared_secret_cache_slabs */
- YYSYMBOL_dnsc_dnscrypt_nonce_cache_size = 745, /* dnsc_dnscrypt_nonce_cache_size */
- YYSYMBOL_dnsc_dnscrypt_nonce_cache_slabs = 746, /* dnsc_dnscrypt_nonce_cache_slabs */
- YYSYMBOL_cachedbstart = 747, /* cachedbstart */
- YYSYMBOL_contents_cachedb = 748, /* contents_cachedb */
- YYSYMBOL_content_cachedb = 749, /* content_cachedb */
- YYSYMBOL_cachedb_backend_name = 750, /* cachedb_backend_name */
- YYSYMBOL_cachedb_secret_seed = 751, /* cachedb_secret_seed */
- YYSYMBOL_cachedb_no_store = 752, /* cachedb_no_store */
- YYSYMBOL_cachedb_check_when_serve_expired = 753, /* cachedb_check_when_serve_expired */
- YYSYMBOL_redis_server_host = 754, /* redis_server_host */
- YYSYMBOL_redis_replica_server_host = 755, /* redis_replica_server_host */
- YYSYMBOL_redis_server_port = 756, /* redis_server_port */
- YYSYMBOL_redis_replica_server_port = 757, /* redis_replica_server_port */
- YYSYMBOL_redis_server_path = 758, /* redis_server_path */
- YYSYMBOL_redis_replica_server_path = 759, /* redis_replica_server_path */
- YYSYMBOL_redis_server_password = 760, /* redis_server_password */
- YYSYMBOL_redis_replica_server_password = 761, /* redis_replica_server_password */
- YYSYMBOL_redis_timeout = 762, /* redis_timeout */
- YYSYMBOL_redis_replica_timeout = 763, /* redis_replica_timeout */
- YYSYMBOL_redis_command_timeout = 764, /* redis_command_timeout */
- YYSYMBOL_redis_replica_command_timeout = 765, /* redis_replica_command_timeout */
- YYSYMBOL_redis_connect_timeout = 766, /* redis_connect_timeout */
- YYSYMBOL_redis_replica_connect_timeout = 767, /* redis_replica_connect_timeout */
- YYSYMBOL_redis_expire_records = 768, /* redis_expire_records */
- YYSYMBOL_redis_logical_db = 769, /* redis_logical_db */
- YYSYMBOL_redis_replica_logical_db = 770, /* redis_replica_logical_db */
- YYSYMBOL_server_tcp_connection_limit = 771, /* server_tcp_connection_limit */
- YYSYMBOL_server_answer_cookie = 772, /* server_answer_cookie */
- YYSYMBOL_server_cookie_secret = 773, /* server_cookie_secret */
- YYSYMBOL_server_cookie_secret_file = 774, /* server_cookie_secret_file */
- YYSYMBOL_server_iter_scrub_ns = 775, /* server_iter_scrub_ns */
- YYSYMBOL_server_iter_scrub_cname = 776, /* server_iter_scrub_cname */
- YYSYMBOL_server_max_global_quota = 777, /* server_max_global_quota */
- YYSYMBOL_server_iter_scrub_promiscuous = 778, /* server_iter_scrub_promiscuous */
- YYSYMBOL_ipsetstart = 779, /* ipsetstart */
- YYSYMBOL_contents_ipset = 780, /* contents_ipset */
- YYSYMBOL_content_ipset = 781, /* content_ipset */
- YYSYMBOL_ipset_name_v4 = 782, /* ipset_name_v4 */
- YYSYMBOL_ipset_name_v6 = 783 /* ipset_name_v6 */
+ YYSYMBOL_VAR_TLS_PROTOCOLS = 335, /* VAR_TLS_PROTOCOLS */
+ YYSYMBOL_VAR_IPSET = 336, /* VAR_IPSET */
+ YYSYMBOL_VAR_IPSET_NAME_V4 = 337, /* VAR_IPSET_NAME_V4 */
+ YYSYMBOL_VAR_IPSET_NAME_V6 = 338, /* VAR_IPSET_NAME_V6 */
+ YYSYMBOL_VAR_TLS_SESSION_TICKET_KEYS = 339, /* VAR_TLS_SESSION_TICKET_KEYS */
+ YYSYMBOL_VAR_RPZ = 340, /* VAR_RPZ */
+ YYSYMBOL_VAR_TAGS = 341, /* VAR_TAGS */
+ YYSYMBOL_VAR_RPZ_ACTION_OVERRIDE = 342, /* VAR_RPZ_ACTION_OVERRIDE */
+ YYSYMBOL_VAR_RPZ_CNAME_OVERRIDE = 343, /* VAR_RPZ_CNAME_OVERRIDE */
+ YYSYMBOL_VAR_RPZ_LOG = 344, /* VAR_RPZ_LOG */
+ YYSYMBOL_VAR_RPZ_LOG_NAME = 345, /* VAR_RPZ_LOG_NAME */
+ YYSYMBOL_VAR_DYNLIB = 346, /* VAR_DYNLIB */
+ YYSYMBOL_VAR_DYNLIB_FILE = 347, /* VAR_DYNLIB_FILE */
+ YYSYMBOL_VAR_EDNS_CLIENT_STRING = 348, /* VAR_EDNS_CLIENT_STRING */
+ YYSYMBOL_VAR_EDNS_CLIENT_STRING_OPCODE = 349, /* VAR_EDNS_CLIENT_STRING_OPCODE */
+ YYSYMBOL_VAR_NSID = 350, /* VAR_NSID */
+ YYSYMBOL_VAR_ZONEMD_PERMISSIVE_MODE = 351, /* VAR_ZONEMD_PERMISSIVE_MODE */
+ YYSYMBOL_VAR_ZONEMD_CHECK = 352, /* VAR_ZONEMD_CHECK */
+ YYSYMBOL_VAR_ZONEMD_REJECT_ABSENCE = 353, /* VAR_ZONEMD_REJECT_ABSENCE */
+ YYSYMBOL_VAR_RPZ_SIGNAL_NXDOMAIN_RA = 354, /* VAR_RPZ_SIGNAL_NXDOMAIN_RA */
+ YYSYMBOL_VAR_INTERFACE_AUTOMATIC_PORTS = 355, /* VAR_INTERFACE_AUTOMATIC_PORTS */
+ YYSYMBOL_VAR_EDE = 356, /* VAR_EDE */
+ YYSYMBOL_VAR_DNS_ERROR_REPORTING = 357, /* VAR_DNS_ERROR_REPORTING */
+ YYSYMBOL_VAR_INTERFACE_ACTION = 358, /* VAR_INTERFACE_ACTION */
+ YYSYMBOL_VAR_INTERFACE_VIEW = 359, /* VAR_INTERFACE_VIEW */
+ YYSYMBOL_VAR_INTERFACE_TAG = 360, /* VAR_INTERFACE_TAG */
+ YYSYMBOL_VAR_INTERFACE_TAG_ACTION = 361, /* VAR_INTERFACE_TAG_ACTION */
+ YYSYMBOL_VAR_INTERFACE_TAG_DATA = 362, /* VAR_INTERFACE_TAG_DATA */
+ YYSYMBOL_VAR_QUIC_PORT = 363, /* VAR_QUIC_PORT */
+ YYSYMBOL_VAR_QUIC_SIZE = 364, /* VAR_QUIC_SIZE */
+ YYSYMBOL_VAR_PROXY_PROTOCOL_PORT = 365, /* VAR_PROXY_PROTOCOL_PORT */
+ YYSYMBOL_VAR_STATISTICS_INHIBIT_ZERO = 366, /* VAR_STATISTICS_INHIBIT_ZERO */
+ YYSYMBOL_VAR_HARDEN_UNKNOWN_ADDITIONAL = 367, /* VAR_HARDEN_UNKNOWN_ADDITIONAL */
+ YYSYMBOL_VAR_DISABLE_EDNS_DO = 368, /* VAR_DISABLE_EDNS_DO */
+ YYSYMBOL_VAR_CACHEDB_NO_STORE = 369, /* VAR_CACHEDB_NO_STORE */
+ YYSYMBOL_VAR_LOG_DESTADDR = 370, /* VAR_LOG_DESTADDR */
+ YYSYMBOL_VAR_CACHEDB_CHECK_WHEN_SERVE_EXPIRED = 371, /* VAR_CACHEDB_CHECK_WHEN_SERVE_EXPIRED */
+ YYSYMBOL_VAR_COOKIE_SECRET_FILE = 372, /* VAR_COOKIE_SECRET_FILE */
+ YYSYMBOL_VAR_ITER_SCRUB_NS = 373, /* VAR_ITER_SCRUB_NS */
+ YYSYMBOL_VAR_ITER_SCRUB_CNAME = 374, /* VAR_ITER_SCRUB_CNAME */
+ YYSYMBOL_VAR_ITER_SCRUB_RRSIG = 375, /* VAR_ITER_SCRUB_RRSIG */
+ YYSYMBOL_VAR_MAX_GLOBAL_QUOTA = 376, /* VAR_MAX_GLOBAL_QUOTA */
+ YYSYMBOL_VAR_HARDEN_UNVERIFIED_GLUE = 377, /* VAR_HARDEN_UNVERIFIED_GLUE */
+ YYSYMBOL_VAR_LOG_TIME_ISO = 378, /* VAR_LOG_TIME_ISO */
+ YYSYMBOL_VAR_ITER_SCRUB_PROMISCUOUS = 379, /* VAR_ITER_SCRUB_PROMISCUOUS */
+ YYSYMBOL_VAR_LOG_THREAD_ID = 380, /* VAR_LOG_THREAD_ID */
+ YYSYMBOL_YYACCEPT = 381, /* $accept */
+ YYSYMBOL_toplevelvars = 382, /* toplevelvars */
+ YYSYMBOL_toplevelvar = 383, /* toplevelvar */
+ YYSYMBOL_force_toplevel = 384, /* force_toplevel */
+ YYSYMBOL_serverstart = 385, /* serverstart */
+ YYSYMBOL_contents_server = 386, /* contents_server */
+ YYSYMBOL_content_server = 387, /* content_server */
+ YYSYMBOL_stub_clause = 388, /* stub_clause */
+ YYSYMBOL_stubstart = 389, /* stubstart */
+ YYSYMBOL_contents_stub = 390, /* contents_stub */
+ YYSYMBOL_content_stub = 391, /* content_stub */
+ YYSYMBOL_forward_clause = 392, /* forward_clause */
+ YYSYMBOL_forwardstart = 393, /* forwardstart */
+ YYSYMBOL_contents_forward = 394, /* contents_forward */
+ YYSYMBOL_content_forward = 395, /* content_forward */
+ YYSYMBOL_view_clause = 396, /* view_clause */
+ YYSYMBOL_viewstart = 397, /* viewstart */
+ YYSYMBOL_contents_view = 398, /* contents_view */
+ YYSYMBOL_content_view = 399, /* content_view */
+ YYSYMBOL_authstart = 400, /* authstart */
+ YYSYMBOL_contents_auth = 401, /* contents_auth */
+ YYSYMBOL_content_auth = 402, /* content_auth */
+ YYSYMBOL_rpz_tag = 403, /* rpz_tag */
+ YYSYMBOL_rpz_action_override = 404, /* rpz_action_override */
+ YYSYMBOL_rpz_cname_override = 405, /* rpz_cname_override */
+ YYSYMBOL_rpz_log = 406, /* rpz_log */
+ YYSYMBOL_rpz_log_name = 407, /* rpz_log_name */
+ YYSYMBOL_rpz_signal_nxdomain_ra = 408, /* rpz_signal_nxdomain_ra */
+ YYSYMBOL_rpzstart = 409, /* rpzstart */
+ YYSYMBOL_contents_rpz = 410, /* contents_rpz */
+ YYSYMBOL_content_rpz = 411, /* content_rpz */
+ YYSYMBOL_server_num_threads = 412, /* server_num_threads */
+ YYSYMBOL_server_verbosity = 413, /* server_verbosity */
+ YYSYMBOL_server_statistics_interval = 414, /* server_statistics_interval */
+ YYSYMBOL_server_statistics_cumulative = 415, /* server_statistics_cumulative */
+ YYSYMBOL_server_extended_statistics = 416, /* server_extended_statistics */
+ YYSYMBOL_server_statistics_inhibit_zero = 417, /* server_statistics_inhibit_zero */
+ YYSYMBOL_server_shm_enable = 418, /* server_shm_enable */
+ YYSYMBOL_server_shm_key = 419, /* server_shm_key */
+ YYSYMBOL_server_port = 420, /* server_port */
+ YYSYMBOL_server_send_client_subnet = 421, /* server_send_client_subnet */
+ YYSYMBOL_server_client_subnet_zone = 422, /* server_client_subnet_zone */
+ YYSYMBOL_server_client_subnet_always_forward = 423, /* server_client_subnet_always_forward */
+ YYSYMBOL_server_client_subnet_opcode = 424, /* server_client_subnet_opcode */
+ YYSYMBOL_server_max_client_subnet_ipv4 = 425, /* server_max_client_subnet_ipv4 */
+ YYSYMBOL_server_max_client_subnet_ipv6 = 426, /* server_max_client_subnet_ipv6 */
+ YYSYMBOL_server_min_client_subnet_ipv4 = 427, /* server_min_client_subnet_ipv4 */
+ YYSYMBOL_server_min_client_subnet_ipv6 = 428, /* server_min_client_subnet_ipv6 */
+ YYSYMBOL_server_max_ecs_tree_size_ipv4 = 429, /* server_max_ecs_tree_size_ipv4 */
+ YYSYMBOL_server_max_ecs_tree_size_ipv6 = 430, /* server_max_ecs_tree_size_ipv6 */
+ YYSYMBOL_server_interface = 431, /* server_interface */
+ YYSYMBOL_server_outgoing_interface = 432, /* server_outgoing_interface */
+ YYSYMBOL_server_outgoing_range = 433, /* server_outgoing_range */
+ YYSYMBOL_server_outgoing_port_permit = 434, /* server_outgoing_port_permit */
+ YYSYMBOL_server_outgoing_port_avoid = 435, /* server_outgoing_port_avoid */
+ YYSYMBOL_server_outgoing_num_tcp = 436, /* server_outgoing_num_tcp */
+ YYSYMBOL_server_incoming_num_tcp = 437, /* server_incoming_num_tcp */
+ YYSYMBOL_server_interface_automatic = 438, /* server_interface_automatic */
+ YYSYMBOL_server_interface_automatic_ports = 439, /* server_interface_automatic_ports */
+ YYSYMBOL_server_do_ip4 = 440, /* server_do_ip4 */
+ YYSYMBOL_server_do_ip6 = 441, /* server_do_ip6 */
+ YYSYMBOL_server_do_nat64 = 442, /* server_do_nat64 */
+ YYSYMBOL_server_do_udp = 443, /* server_do_udp */
+ YYSYMBOL_server_do_tcp = 444, /* server_do_tcp */
+ YYSYMBOL_server_prefer_ip4 = 445, /* server_prefer_ip4 */
+ YYSYMBOL_server_prefer_ip6 = 446, /* server_prefer_ip6 */
+ YYSYMBOL_server_tcp_mss = 447, /* server_tcp_mss */
+ YYSYMBOL_server_outgoing_tcp_mss = 448, /* server_outgoing_tcp_mss */
+ YYSYMBOL_server_tcp_idle_timeout = 449, /* server_tcp_idle_timeout */
+ YYSYMBOL_server_max_reuse_tcp_queries = 450, /* server_max_reuse_tcp_queries */
+ YYSYMBOL_server_tcp_reuse_timeout = 451, /* server_tcp_reuse_timeout */
+ YYSYMBOL_server_tcp_auth_query_timeout = 452, /* server_tcp_auth_query_timeout */
+ YYSYMBOL_server_tcp_keepalive = 453, /* server_tcp_keepalive */
+ YYSYMBOL_server_tcp_keepalive_timeout = 454, /* server_tcp_keepalive_timeout */
+ YYSYMBOL_server_sock_queue_timeout = 455, /* server_sock_queue_timeout */
+ YYSYMBOL_server_tcp_upstream = 456, /* server_tcp_upstream */
+ YYSYMBOL_server_udp_upstream_without_downstream = 457, /* server_udp_upstream_without_downstream */
+ YYSYMBOL_server_ssl_upstream = 458, /* server_ssl_upstream */
+ YYSYMBOL_server_ssl_service_key = 459, /* server_ssl_service_key */
+ YYSYMBOL_server_ssl_service_pem = 460, /* server_ssl_service_pem */
+ YYSYMBOL_server_ssl_port = 461, /* server_ssl_port */
+ YYSYMBOL_server_tls_cert_bundle = 462, /* server_tls_cert_bundle */
+ YYSYMBOL_server_tls_win_cert = 463, /* server_tls_win_cert */
+ YYSYMBOL_server_tls_additional_port = 464, /* server_tls_additional_port */
+ YYSYMBOL_server_tls_ciphers = 465, /* server_tls_ciphers */
+ YYSYMBOL_server_tls_ciphersuites = 466, /* server_tls_ciphersuites */
+ YYSYMBOL_server_tls_session_ticket_keys = 467, /* server_tls_session_ticket_keys */
+ YYSYMBOL_server_tls_use_sni = 468, /* server_tls_use_sni */
+ YYSYMBOL_server_tls_protocols = 469, /* server_tls_protocols */
+ YYSYMBOL_server_https_port = 470, /* server_https_port */
+ YYSYMBOL_server_http_endpoint = 471, /* server_http_endpoint */
+ YYSYMBOL_server_http_max_streams = 472, /* server_http_max_streams */
+ YYSYMBOL_server_http_query_buffer_size = 473, /* server_http_query_buffer_size */
+ YYSYMBOL_server_http_response_buffer_size = 474, /* server_http_response_buffer_size */
+ YYSYMBOL_server_http_nodelay = 475, /* server_http_nodelay */
+ YYSYMBOL_server_http_notls_downstream = 476, /* server_http_notls_downstream */
+ YYSYMBOL_server_quic_port = 477, /* server_quic_port */
+ YYSYMBOL_server_quic_size = 478, /* server_quic_size */
+ YYSYMBOL_server_use_systemd = 479, /* server_use_systemd */
+ YYSYMBOL_server_do_daemonize = 480, /* server_do_daemonize */
+ YYSYMBOL_server_use_syslog = 481, /* server_use_syslog */
+ YYSYMBOL_server_log_time_ascii = 482, /* server_log_time_ascii */
+ YYSYMBOL_server_log_time_iso = 483, /* server_log_time_iso */
+ YYSYMBOL_server_log_queries = 484, /* server_log_queries */
+ YYSYMBOL_server_log_replies = 485, /* server_log_replies */
+ YYSYMBOL_server_log_tag_queryreply = 486, /* server_log_tag_queryreply */
+ YYSYMBOL_server_log_servfail = 487, /* server_log_servfail */
+ YYSYMBOL_server_log_destaddr = 488, /* server_log_destaddr */
+ YYSYMBOL_server_log_thread_id = 489, /* server_log_thread_id */
+ YYSYMBOL_server_log_local_actions = 490, /* server_log_local_actions */
+ YYSYMBOL_server_chroot = 491, /* server_chroot */
+ YYSYMBOL_server_username = 492, /* server_username */
+ YYSYMBOL_server_directory = 493, /* server_directory */
+ YYSYMBOL_server_logfile = 494, /* server_logfile */
+ YYSYMBOL_server_pidfile = 495, /* server_pidfile */
+ YYSYMBOL_server_root_hints = 496, /* server_root_hints */
+ YYSYMBOL_server_dlv_anchor_file = 497, /* server_dlv_anchor_file */
+ YYSYMBOL_server_dlv_anchor = 498, /* server_dlv_anchor */
+ YYSYMBOL_server_auto_trust_anchor_file = 499, /* server_auto_trust_anchor_file */
+ YYSYMBOL_server_trust_anchor_file = 500, /* server_trust_anchor_file */
+ YYSYMBOL_server_trusted_keys_file = 501, /* server_trusted_keys_file */
+ YYSYMBOL_server_trust_anchor = 502, /* server_trust_anchor */
+ YYSYMBOL_server_trust_anchor_signaling = 503, /* server_trust_anchor_signaling */
+ YYSYMBOL_server_root_key_sentinel = 504, /* server_root_key_sentinel */
+ YYSYMBOL_server_domain_insecure = 505, /* server_domain_insecure */
+ YYSYMBOL_server_hide_identity = 506, /* server_hide_identity */
+ YYSYMBOL_server_hide_version = 507, /* server_hide_version */
+ YYSYMBOL_server_hide_trustanchor = 508, /* server_hide_trustanchor */
+ YYSYMBOL_server_hide_http_user_agent = 509, /* server_hide_http_user_agent */
+ YYSYMBOL_server_identity = 510, /* server_identity */
+ YYSYMBOL_server_version = 511, /* server_version */
+ YYSYMBOL_server_http_user_agent = 512, /* server_http_user_agent */
+ YYSYMBOL_server_nsid = 513, /* server_nsid */
+ YYSYMBOL_server_so_rcvbuf = 514, /* server_so_rcvbuf */
+ YYSYMBOL_server_so_sndbuf = 515, /* server_so_sndbuf */
+ YYSYMBOL_server_so_reuseport = 516, /* server_so_reuseport */
+ YYSYMBOL_server_ip_transparent = 517, /* server_ip_transparent */
+ YYSYMBOL_server_ip_freebind = 518, /* server_ip_freebind */
+ YYSYMBOL_server_ip_dscp = 519, /* server_ip_dscp */
+ YYSYMBOL_server_stream_wait_size = 520, /* server_stream_wait_size */
+ YYSYMBOL_server_edns_buffer_size = 521, /* server_edns_buffer_size */
+ YYSYMBOL_server_msg_buffer_size = 522, /* server_msg_buffer_size */
+ YYSYMBOL_server_msg_cache_size = 523, /* server_msg_cache_size */
+ YYSYMBOL_server_msg_cache_slabs = 524, /* server_msg_cache_slabs */
+ YYSYMBOL_server_num_queries_per_thread = 525, /* server_num_queries_per_thread */
+ YYSYMBOL_server_jostle_timeout = 526, /* server_jostle_timeout */
+ YYSYMBOL_server_delay_close = 527, /* server_delay_close */
+ YYSYMBOL_server_udp_connect = 528, /* server_udp_connect */
+ YYSYMBOL_server_unblock_lan_zones = 529, /* server_unblock_lan_zones */
+ YYSYMBOL_server_insecure_lan_zones = 530, /* server_insecure_lan_zones */
+ YYSYMBOL_server_rrset_cache_size = 531, /* server_rrset_cache_size */
+ YYSYMBOL_server_rrset_cache_slabs = 532, /* server_rrset_cache_slabs */
+ YYSYMBOL_server_infra_host_ttl = 533, /* server_infra_host_ttl */
+ YYSYMBOL_server_infra_lame_ttl = 534, /* server_infra_lame_ttl */
+ YYSYMBOL_server_infra_cache_numhosts = 535, /* server_infra_cache_numhosts */
+ YYSYMBOL_server_infra_cache_lame_size = 536, /* server_infra_cache_lame_size */
+ YYSYMBOL_server_infra_cache_slabs = 537, /* server_infra_cache_slabs */
+ YYSYMBOL_server_infra_cache_min_rtt = 538, /* server_infra_cache_min_rtt */
+ YYSYMBOL_server_infra_cache_max_rtt = 539, /* server_infra_cache_max_rtt */
+ YYSYMBOL_server_infra_keep_probing = 540, /* server_infra_keep_probing */
+ YYSYMBOL_server_target_fetch_policy = 541, /* server_target_fetch_policy */
+ YYSYMBOL_server_harden_short_bufsize = 542, /* server_harden_short_bufsize */
+ YYSYMBOL_server_harden_large_queries = 543, /* server_harden_large_queries */
+ YYSYMBOL_server_harden_glue = 544, /* server_harden_glue */
+ YYSYMBOL_server_harden_unverified_glue = 545, /* server_harden_unverified_glue */
+ YYSYMBOL_server_harden_dnssec_stripped = 546, /* server_harden_dnssec_stripped */
+ YYSYMBOL_server_harden_below_nxdomain = 547, /* server_harden_below_nxdomain */
+ YYSYMBOL_server_harden_referral_path = 548, /* server_harden_referral_path */
+ YYSYMBOL_server_harden_algo_downgrade = 549, /* server_harden_algo_downgrade */
+ YYSYMBOL_server_harden_unknown_additional = 550, /* server_harden_unknown_additional */
+ YYSYMBOL_server_use_caps_for_id = 551, /* server_use_caps_for_id */
+ YYSYMBOL_server_caps_whitelist = 552, /* server_caps_whitelist */
+ YYSYMBOL_server_private_address = 553, /* server_private_address */
+ YYSYMBOL_server_private_domain = 554, /* server_private_domain */
+ YYSYMBOL_server_prefetch = 555, /* server_prefetch */
+ YYSYMBOL_server_prefetch_key = 556, /* server_prefetch_key */
+ YYSYMBOL_server_deny_any = 557, /* server_deny_any */
+ YYSYMBOL_server_unwanted_reply_threshold = 558, /* server_unwanted_reply_threshold */
+ YYSYMBOL_server_do_not_query_address = 559, /* server_do_not_query_address */
+ YYSYMBOL_server_do_not_query_localhost = 560, /* server_do_not_query_localhost */
+ YYSYMBOL_server_access_control = 561, /* server_access_control */
+ YYSYMBOL_server_interface_action = 562, /* server_interface_action */
+ YYSYMBOL_server_module_conf = 563, /* server_module_conf */
+ YYSYMBOL_server_val_override_date = 564, /* server_val_override_date */
+ YYSYMBOL_server_val_sig_skew_min = 565, /* server_val_sig_skew_min */
+ YYSYMBOL_server_val_sig_skew_max = 566, /* server_val_sig_skew_max */
+ YYSYMBOL_server_val_max_restart = 567, /* server_val_max_restart */
+ YYSYMBOL_server_cache_max_ttl = 568, /* server_cache_max_ttl */
+ YYSYMBOL_server_cache_max_negative_ttl = 569, /* server_cache_max_negative_ttl */
+ YYSYMBOL_server_cache_min_negative_ttl = 570, /* server_cache_min_negative_ttl */
+ YYSYMBOL_server_cache_min_ttl = 571, /* server_cache_min_ttl */
+ YYSYMBOL_server_bogus_ttl = 572, /* server_bogus_ttl */
+ YYSYMBOL_server_val_clean_additional = 573, /* server_val_clean_additional */
+ YYSYMBOL_server_val_permissive_mode = 574, /* server_val_permissive_mode */
+ YYSYMBOL_server_aggressive_nsec = 575, /* server_aggressive_nsec */
+ YYSYMBOL_server_ignore_cd_flag = 576, /* server_ignore_cd_flag */
+ YYSYMBOL_server_disable_edns_do = 577, /* server_disable_edns_do */
+ YYSYMBOL_server_serve_expired = 578, /* server_serve_expired */
+ YYSYMBOL_server_serve_expired_ttl = 579, /* server_serve_expired_ttl */
+ YYSYMBOL_server_serve_expired_ttl_reset = 580, /* server_serve_expired_ttl_reset */
+ YYSYMBOL_server_serve_expired_reply_ttl = 581, /* server_serve_expired_reply_ttl */
+ YYSYMBOL_server_serve_expired_client_timeout = 582, /* server_serve_expired_client_timeout */
+ YYSYMBOL_server_ede_serve_expired = 583, /* server_ede_serve_expired */
+ YYSYMBOL_server_serve_original_ttl = 584, /* server_serve_original_ttl */
+ YYSYMBOL_server_fake_dsa = 585, /* server_fake_dsa */
+ YYSYMBOL_server_fake_sha1 = 586, /* server_fake_sha1 */
+ YYSYMBOL_server_val_log_level = 587, /* server_val_log_level */
+ YYSYMBOL_server_val_nsec3_keysize_iterations = 588, /* server_val_nsec3_keysize_iterations */
+ YYSYMBOL_server_zonemd_permissive_mode = 589, /* server_zonemd_permissive_mode */
+ YYSYMBOL_server_add_holddown = 590, /* server_add_holddown */
+ YYSYMBOL_server_del_holddown = 591, /* server_del_holddown */
+ YYSYMBOL_server_keep_missing = 592, /* server_keep_missing */
+ YYSYMBOL_server_permit_small_holddown = 593, /* server_permit_small_holddown */
+ YYSYMBOL_server_key_cache_size = 594, /* server_key_cache_size */
+ YYSYMBOL_server_key_cache_slabs = 595, /* server_key_cache_slabs */
+ YYSYMBOL_server_neg_cache_size = 596, /* server_neg_cache_size */
+ YYSYMBOL_server_local_zone = 597, /* server_local_zone */
+ YYSYMBOL_server_local_data = 598, /* server_local_data */
+ YYSYMBOL_server_local_data_ptr = 599, /* server_local_data_ptr */
+ YYSYMBOL_server_minimal_responses = 600, /* server_minimal_responses */
+ YYSYMBOL_server_rrset_roundrobin = 601, /* server_rrset_roundrobin */
+ YYSYMBOL_server_unknown_server_time_limit = 602, /* server_unknown_server_time_limit */
+ YYSYMBOL_server_discard_timeout = 603, /* server_discard_timeout */
+ YYSYMBOL_server_wait_limit = 604, /* server_wait_limit */
+ YYSYMBOL_server_wait_limit_cookie = 605, /* server_wait_limit_cookie */
+ YYSYMBOL_server_wait_limit_netblock = 606, /* server_wait_limit_netblock */
+ YYSYMBOL_server_wait_limit_cookie_netblock = 607, /* server_wait_limit_cookie_netblock */
+ YYSYMBOL_server_max_udp_size = 608, /* server_max_udp_size */
+ YYSYMBOL_server_dns64_prefix = 609, /* server_dns64_prefix */
+ YYSYMBOL_server_dns64_synthall = 610, /* server_dns64_synthall */
+ YYSYMBOL_server_dns64_ignore_aaaa = 611, /* server_dns64_ignore_aaaa */
+ YYSYMBOL_server_nat64_prefix = 612, /* server_nat64_prefix */
+ YYSYMBOL_server_define_tag = 613, /* server_define_tag */
+ YYSYMBOL_server_local_zone_tag = 614, /* server_local_zone_tag */
+ YYSYMBOL_server_access_control_tag = 615, /* server_access_control_tag */
+ YYSYMBOL_server_access_control_tag_action = 616, /* server_access_control_tag_action */
+ YYSYMBOL_server_access_control_tag_data = 617, /* server_access_control_tag_data */
+ YYSYMBOL_server_local_zone_override = 618, /* server_local_zone_override */
+ YYSYMBOL_server_access_control_view = 619, /* server_access_control_view */
+ YYSYMBOL_server_interface_tag = 620, /* server_interface_tag */
+ YYSYMBOL_server_interface_tag_action = 621, /* server_interface_tag_action */
+ YYSYMBOL_server_interface_tag_data = 622, /* server_interface_tag_data */
+ YYSYMBOL_server_interface_view = 623, /* server_interface_view */
+ YYSYMBOL_server_response_ip_tag = 624, /* server_response_ip_tag */
+ YYSYMBOL_server_ip_ratelimit = 625, /* server_ip_ratelimit */
+ YYSYMBOL_server_ip_ratelimit_cookie = 626, /* server_ip_ratelimit_cookie */
+ YYSYMBOL_server_ratelimit = 627, /* server_ratelimit */
+ YYSYMBOL_server_ip_ratelimit_size = 628, /* server_ip_ratelimit_size */
+ YYSYMBOL_server_ratelimit_size = 629, /* server_ratelimit_size */
+ YYSYMBOL_server_ip_ratelimit_slabs = 630, /* server_ip_ratelimit_slabs */
+ YYSYMBOL_server_ratelimit_slabs = 631, /* server_ratelimit_slabs */
+ YYSYMBOL_server_ratelimit_for_domain = 632, /* server_ratelimit_for_domain */
+ YYSYMBOL_server_ratelimit_below_domain = 633, /* server_ratelimit_below_domain */
+ YYSYMBOL_server_ip_ratelimit_factor = 634, /* server_ip_ratelimit_factor */
+ YYSYMBOL_server_ratelimit_factor = 635, /* server_ratelimit_factor */
+ YYSYMBOL_server_ip_ratelimit_backoff = 636, /* server_ip_ratelimit_backoff */
+ YYSYMBOL_server_ratelimit_backoff = 637, /* server_ratelimit_backoff */
+ YYSYMBOL_server_outbound_msg_retry = 638, /* server_outbound_msg_retry */
+ YYSYMBOL_server_max_sent_count = 639, /* server_max_sent_count */
+ YYSYMBOL_server_max_query_restarts = 640, /* server_max_query_restarts */
+ YYSYMBOL_server_low_rtt = 641, /* server_low_rtt */
+ YYSYMBOL_server_fast_server_num = 642, /* server_fast_server_num */
+ YYSYMBOL_server_fast_server_permil = 643, /* server_fast_server_permil */
+ YYSYMBOL_server_qname_minimisation = 644, /* server_qname_minimisation */
+ YYSYMBOL_server_qname_minimisation_strict = 645, /* server_qname_minimisation_strict */
+ YYSYMBOL_server_pad_responses = 646, /* server_pad_responses */
+ YYSYMBOL_server_pad_responses_block_size = 647, /* server_pad_responses_block_size */
+ YYSYMBOL_server_pad_queries = 648, /* server_pad_queries */
+ YYSYMBOL_server_pad_queries_block_size = 649, /* server_pad_queries_block_size */
+ YYSYMBOL_server_ipsecmod_enabled = 650, /* server_ipsecmod_enabled */
+ YYSYMBOL_server_ipsecmod_ignore_bogus = 651, /* server_ipsecmod_ignore_bogus */
+ YYSYMBOL_server_ipsecmod_hook = 652, /* server_ipsecmod_hook */
+ YYSYMBOL_server_ipsecmod_max_ttl = 653, /* server_ipsecmod_max_ttl */
+ YYSYMBOL_server_ipsecmod_whitelist = 654, /* server_ipsecmod_whitelist */
+ YYSYMBOL_server_ipsecmod_strict = 655, /* server_ipsecmod_strict */
+ YYSYMBOL_server_edns_client_string = 656, /* server_edns_client_string */
+ YYSYMBOL_server_edns_client_string_opcode = 657, /* server_edns_client_string_opcode */
+ YYSYMBOL_server_ede = 658, /* server_ede */
+ YYSYMBOL_server_dns_error_reporting = 659, /* server_dns_error_reporting */
+ YYSYMBOL_server_proxy_protocol_port = 660, /* server_proxy_protocol_port */
+ YYSYMBOL_stub_name = 661, /* stub_name */
+ YYSYMBOL_stub_host = 662, /* stub_host */
+ YYSYMBOL_stub_addr = 663, /* stub_addr */
+ YYSYMBOL_stub_first = 664, /* stub_first */
+ YYSYMBOL_stub_no_cache = 665, /* stub_no_cache */
+ YYSYMBOL_stub_ssl_upstream = 666, /* stub_ssl_upstream */
+ YYSYMBOL_stub_tcp_upstream = 667, /* stub_tcp_upstream */
+ YYSYMBOL_stub_prime = 668, /* stub_prime */
+ YYSYMBOL_forward_name = 669, /* forward_name */
+ YYSYMBOL_forward_host = 670, /* forward_host */
+ YYSYMBOL_forward_addr = 671, /* forward_addr */
+ YYSYMBOL_forward_first = 672, /* forward_first */
+ YYSYMBOL_forward_no_cache = 673, /* forward_no_cache */
+ YYSYMBOL_forward_ssl_upstream = 674, /* forward_ssl_upstream */
+ YYSYMBOL_forward_tcp_upstream = 675, /* forward_tcp_upstream */
+ YYSYMBOL_auth_name = 676, /* auth_name */
+ YYSYMBOL_auth_zonefile = 677, /* auth_zonefile */
+ YYSYMBOL_auth_master = 678, /* auth_master */
+ YYSYMBOL_auth_url = 679, /* auth_url */
+ YYSYMBOL_auth_allow_notify = 680, /* auth_allow_notify */
+ YYSYMBOL_auth_zonemd_check = 681, /* auth_zonemd_check */
+ YYSYMBOL_auth_zonemd_reject_absence = 682, /* auth_zonemd_reject_absence */
+ YYSYMBOL_auth_for_downstream = 683, /* auth_for_downstream */
+ YYSYMBOL_auth_for_upstream = 684, /* auth_for_upstream */
+ YYSYMBOL_auth_fallback_enabled = 685, /* auth_fallback_enabled */
+ YYSYMBOL_view_name = 686, /* view_name */
+ YYSYMBOL_view_local_zone = 687, /* view_local_zone */
+ YYSYMBOL_view_response_ip = 688, /* view_response_ip */
+ YYSYMBOL_view_response_ip_data = 689, /* view_response_ip_data */
+ YYSYMBOL_view_local_data = 690, /* view_local_data */
+ YYSYMBOL_view_local_data_ptr = 691, /* view_local_data_ptr */
+ YYSYMBOL_view_first = 692, /* view_first */
+ YYSYMBOL_rcstart = 693, /* rcstart */
+ YYSYMBOL_contents_rc = 694, /* contents_rc */
+ YYSYMBOL_content_rc = 695, /* content_rc */
+ YYSYMBOL_rc_control_enable = 696, /* rc_control_enable */
+ YYSYMBOL_rc_control_port = 697, /* rc_control_port */
+ YYSYMBOL_rc_control_interface = 698, /* rc_control_interface */
+ YYSYMBOL_rc_control_use_cert = 699, /* rc_control_use_cert */
+ YYSYMBOL_rc_server_key_file = 700, /* rc_server_key_file */
+ YYSYMBOL_rc_server_cert_file = 701, /* rc_server_cert_file */
+ YYSYMBOL_rc_control_key_file = 702, /* rc_control_key_file */
+ YYSYMBOL_rc_control_cert_file = 703, /* rc_control_cert_file */
+ YYSYMBOL_dtstart = 704, /* dtstart */
+ YYSYMBOL_contents_dt = 705, /* contents_dt */
+ YYSYMBOL_content_dt = 706, /* content_dt */
+ YYSYMBOL_dt_dnstap_enable = 707, /* dt_dnstap_enable */
+ YYSYMBOL_dt_dnstap_bidirectional = 708, /* dt_dnstap_bidirectional */
+ YYSYMBOL_dt_dnstap_socket_path = 709, /* dt_dnstap_socket_path */
+ YYSYMBOL_dt_dnstap_ip = 710, /* dt_dnstap_ip */
+ YYSYMBOL_dt_dnstap_tls = 711, /* dt_dnstap_tls */
+ YYSYMBOL_dt_dnstap_tls_server_name = 712, /* dt_dnstap_tls_server_name */
+ YYSYMBOL_dt_dnstap_tls_cert_bundle = 713, /* dt_dnstap_tls_cert_bundle */
+ YYSYMBOL_dt_dnstap_tls_client_key_file = 714, /* dt_dnstap_tls_client_key_file */
+ YYSYMBOL_dt_dnstap_tls_client_cert_file = 715, /* dt_dnstap_tls_client_cert_file */
+ YYSYMBOL_dt_dnstap_send_identity = 716, /* dt_dnstap_send_identity */
+ YYSYMBOL_dt_dnstap_send_version = 717, /* dt_dnstap_send_version */
+ YYSYMBOL_dt_dnstap_identity = 718, /* dt_dnstap_identity */
+ YYSYMBOL_dt_dnstap_version = 719, /* dt_dnstap_version */
+ YYSYMBOL_dt_dnstap_log_resolver_query_messages = 720, /* dt_dnstap_log_resolver_query_messages */
+ YYSYMBOL_dt_dnstap_log_resolver_response_messages = 721, /* dt_dnstap_log_resolver_response_messages */
+ YYSYMBOL_dt_dnstap_log_client_query_messages = 722, /* dt_dnstap_log_client_query_messages */
+ YYSYMBOL_dt_dnstap_log_client_response_messages = 723, /* dt_dnstap_log_client_response_messages */
+ YYSYMBOL_dt_dnstap_log_forwarder_query_messages = 724, /* dt_dnstap_log_forwarder_query_messages */
+ YYSYMBOL_dt_dnstap_log_forwarder_response_messages = 725, /* dt_dnstap_log_forwarder_response_messages */
+ YYSYMBOL_dt_dnstap_sample_rate = 726, /* dt_dnstap_sample_rate */
+ YYSYMBOL_pythonstart = 727, /* pythonstart */
+ YYSYMBOL_contents_py = 728, /* contents_py */
+ YYSYMBOL_content_py = 729, /* content_py */
+ YYSYMBOL_py_script = 730, /* py_script */
+ YYSYMBOL_dynlibstart = 731, /* dynlibstart */
+ YYSYMBOL_contents_dl = 732, /* contents_dl */
+ YYSYMBOL_content_dl = 733, /* content_dl */
+ YYSYMBOL_dl_file = 734, /* dl_file */
+ YYSYMBOL_server_disable_dnssec_lame_check = 735, /* server_disable_dnssec_lame_check */
+ YYSYMBOL_server_log_identity = 736, /* server_log_identity */
+ YYSYMBOL_server_response_ip = 737, /* server_response_ip */
+ YYSYMBOL_server_response_ip_data = 738, /* server_response_ip_data */
+ YYSYMBOL_dnscstart = 739, /* dnscstart */
+ YYSYMBOL_contents_dnsc = 740, /* contents_dnsc */
+ YYSYMBOL_content_dnsc = 741, /* content_dnsc */
+ YYSYMBOL_dnsc_dnscrypt_enable = 742, /* dnsc_dnscrypt_enable */
+ YYSYMBOL_dnsc_dnscrypt_port = 743, /* dnsc_dnscrypt_port */
+ YYSYMBOL_dnsc_dnscrypt_provider = 744, /* dnsc_dnscrypt_provider */
+ YYSYMBOL_dnsc_dnscrypt_provider_cert = 745, /* dnsc_dnscrypt_provider_cert */
+ YYSYMBOL_dnsc_dnscrypt_provider_cert_rotated = 746, /* dnsc_dnscrypt_provider_cert_rotated */
+ YYSYMBOL_dnsc_dnscrypt_secret_key = 747, /* dnsc_dnscrypt_secret_key */
+ YYSYMBOL_dnsc_dnscrypt_shared_secret_cache_size = 748, /* dnsc_dnscrypt_shared_secret_cache_size */
+ YYSYMBOL_dnsc_dnscrypt_shared_secret_cache_slabs = 749, /* dnsc_dnscrypt_shared_secret_cache_slabs */
+ YYSYMBOL_dnsc_dnscrypt_nonce_cache_size = 750, /* dnsc_dnscrypt_nonce_cache_size */
+ YYSYMBOL_dnsc_dnscrypt_nonce_cache_slabs = 751, /* dnsc_dnscrypt_nonce_cache_slabs */
+ YYSYMBOL_cachedbstart = 752, /* cachedbstart */
+ YYSYMBOL_contents_cachedb = 753, /* contents_cachedb */
+ YYSYMBOL_content_cachedb = 754, /* content_cachedb */
+ YYSYMBOL_cachedb_backend_name = 755, /* cachedb_backend_name */
+ YYSYMBOL_cachedb_secret_seed = 756, /* cachedb_secret_seed */
+ YYSYMBOL_cachedb_no_store = 757, /* cachedb_no_store */
+ YYSYMBOL_cachedb_check_when_serve_expired = 758, /* cachedb_check_when_serve_expired */
+ YYSYMBOL_redis_server_host = 759, /* redis_server_host */
+ YYSYMBOL_redis_replica_server_host = 760, /* redis_replica_server_host */
+ YYSYMBOL_redis_server_port = 761, /* redis_server_port */
+ YYSYMBOL_redis_replica_server_port = 762, /* redis_replica_server_port */
+ YYSYMBOL_redis_server_path = 763, /* redis_server_path */
+ YYSYMBOL_redis_replica_server_path = 764, /* redis_replica_server_path */
+ YYSYMBOL_redis_server_password = 765, /* redis_server_password */
+ YYSYMBOL_redis_replica_server_password = 766, /* redis_replica_server_password */
+ YYSYMBOL_redis_timeout = 767, /* redis_timeout */
+ YYSYMBOL_redis_replica_timeout = 768, /* redis_replica_timeout */
+ YYSYMBOL_redis_command_timeout = 769, /* redis_command_timeout */
+ YYSYMBOL_redis_replica_command_timeout = 770, /* redis_replica_command_timeout */
+ YYSYMBOL_redis_connect_timeout = 771, /* redis_connect_timeout */
+ YYSYMBOL_redis_replica_connect_timeout = 772, /* redis_replica_connect_timeout */
+ YYSYMBOL_redis_expire_records = 773, /* redis_expire_records */
+ YYSYMBOL_redis_logical_db = 774, /* redis_logical_db */
+ YYSYMBOL_redis_replica_logical_db = 775, /* redis_replica_logical_db */
+ YYSYMBOL_server_tcp_connection_limit = 776, /* server_tcp_connection_limit */
+ YYSYMBOL_server_answer_cookie = 777, /* server_answer_cookie */
+ YYSYMBOL_server_cookie_secret = 778, /* server_cookie_secret */
+ YYSYMBOL_server_cookie_secret_file = 779, /* server_cookie_secret_file */
+ YYSYMBOL_server_iter_scrub_ns = 780, /* server_iter_scrub_ns */
+ YYSYMBOL_server_iter_scrub_cname = 781, /* server_iter_scrub_cname */
+ YYSYMBOL_server_iter_scrub_rrsig = 782, /* server_iter_scrub_rrsig */
+ YYSYMBOL_server_max_global_quota = 783, /* server_max_global_quota */
+ YYSYMBOL_server_iter_scrub_promiscuous = 784, /* server_iter_scrub_promiscuous */
+ YYSYMBOL_ipsetstart = 785, /* ipsetstart */
+ YYSYMBOL_contents_ipset = 786, /* contents_ipset */
+ YYSYMBOL_content_ipset = 787, /* content_ipset */
+ YYSYMBOL_ipset_name_v4 = 788, /* ipset_name_v4 */
+ YYSYMBOL_ipset_name_v6 = 789 /* ipset_name_v6 */
};
typedef enum yysymbol_kind_t yysymbol_kind_t;
@@ -1067,18 +1073,12 @@ typedef int yy_state_fast_t;
# define YY_USE(E) /* empty */
#endif
+#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
/* Suppress an incorrect diagnostic about yylval being uninitialized. */
-#if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__
-# if __GNUC__ * 100 + __GNUC_MINOR__ < 407
-# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
- _Pragma ("GCC diagnostic push") \
- _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")
-# else
-# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
+# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
_Pragma ("GCC diagnostic push") \
_Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
_Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
-# endif
# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
_Pragma ("GCC diagnostic pop")
#else
@@ -1237,19 +1237,19 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 2
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 807
+#define YYLAST 813
/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 378
+#define YYNTOKENS 381
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 406
+#define YYNNTS 409
/* YYNRULES -- Number of rules. */
-#define YYNRULES 786
+#define YYNRULES 792
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 1177
+#define YYNSTATES 1186
/* YYMAXUTOK -- Last valid token kind. */
-#define YYMAXUTOK 632
+#define YYMAXUTOK 635
/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
@@ -1326,92 +1326,93 @@ static const yytype_int16 yytranslate[] =
345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
- 375, 376, 377
+ 375, 376, 377, 378, 379, 380
};
#if YYDEBUG
-/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
+ /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
static const yytype_int16 yyrline[] =
{
- 0, 221, 221, 221, 222, 222, 223, 223, 224, 224,
- 224, 225, 225, 226, 226, 227, 227, 228, 230, 237,
- 243, 244, 245, 245, 245, 246, 246, 247, 247, 247,
- 248, 248, 248, 249, 249, 249, 250, 250, 251, 252,
- 252, 252, 253, 253, 253, 254, 254, 255, 255, 256,
- 256, 257, 257, 258, 258, 259, 259, 260, 260, 261,
- 261, 262, 262, 262, 263, 263, 264, 264, 264, 265,
- 265, 265, 266, 266, 267, 267, 268, 268, 269, 269,
- 270, 270, 270, 271, 271, 272, 272, 273, 273, 273,
- 274, 274, 275, 275, 276, 276, 277, 277, 277, 278,
- 278, 279, 279, 280, 280, 281, 281, 282, 282, 283,
- 283, 284, 284, 285, 285, 286, 286, 286, 287, 287,
- 287, 288, 288, 288, 289, 289, 289, 289, 290, 291,
- 291, 291, 292, 292, 292, 293, 293, 294, 294, 295,
- 295, 295, 296, 296, 296, 297, 297, 298, 298, 298,
- 299, 300, 300, 300, 301, 301, 301, 302, 302, 303,
- 303, 304, 304, 305, 306, 306, 307, 307, 308, 308,
- 309, 309, 310, 310, 311, 311, 312, 312, 313, 313,
- 314, 314, 315, 315, 316, 317, 317, 318, 318, 318,
- 319, 319, 320, 320, 321, 321, 322, 322, 322, 323,
- 323, 324, 325, 325, 326, 326, 327, 328, 328, 329,
- 329, 330, 330, 330, 331, 331, 332, 332, 332, 333,
- 333, 333, 334, 334, 335, 336, 336, 337, 337, 338,
- 338, 339, 339, 340, 340, 340, 341, 341, 341, 342,
- 342, 342, 343, 343, 344, 344, 344, 345, 345, 346,
- 346, 347, 347, 348, 348, 348, 349, 349, 350, 350,
- 351, 351, 352, 352, 353, 353, 354, 354, 355, 356,
- 356, 357, 357, 358, 358, 359, 359, 359, 360, 360,
- 360, 362, 370, 384, 385, 386, 386, 386, 386, 386,
- 387, 387, 387, 389, 397, 411, 412, 413, 413, 413,
- 413, 414, 414, 414, 416, 424, 438, 439, 440, 440,
- 440, 440, 441, 441, 441, 443, 464, 465, 466, 466,
- 466, 466, 467, 467, 467, 468, 468, 468, 471, 490,
- 507, 515, 525, 532, 542, 561, 562, 563, 563, 563,
- 563, 563, 564, 564, 564, 565, 565, 565, 565, 567,
- 576, 585, 596, 605, 614, 623, 632, 643, 652, 664,
- 678, 693, 704, 721, 738, 755, 772, 787, 802, 815,
- 830, 839, 848, 857, 866, 875, 884, 891, 900, 909,
- 918, 927, 936, 945, 954, 963, 972, 985, 996, 1007,
- 1018, 1027, 1040, 1053, 1062, 1071, 1080, 1087, 1094, 1103,
- 1110, 1119, 1127, 1134, 1141, 1149, 1158, 1166, 1184, 1192,
- 1200, 1208, 1216, 1224, 1237, 1244, 1253, 1262, 1276, 1285,
- 1294, 1303, 1312, 1321, 1330, 1339, 1348, 1355, 1362, 1388,
- 1396, 1403, 1410, 1417, 1424, 1432, 1440, 1448, 1455, 1466,
- 1477, 1484, 1493, 1502, 1511, 1520, 1527, 1534, 1541, 1557,
- 1565, 1573, 1583, 1593, 1603, 1617, 1625, 1638, 1649, 1657,
- 1670, 1679, 1688, 1697, 1706, 1716, 1726, 1734, 1747, 1756,
- 1764, 1773, 1781, 1794, 1803, 1812, 1822, 1829, 1839, 1849,
- 1859, 1869, 1879, 1889, 1899, 1909, 1919, 1929, 1936, 1943,
- 1950, 1959, 1968, 1977, 1986, 1993, 2003, 2011, 2020, 2027,
- 2045, 2058, 2071, 2084, 2093, 2102, 2111, 2120, 2129, 2139,
- 2149, 2160, 2169, 2178, 2187, 2196, 2205, 2214, 2223, 2232,
- 2241, 2254, 2267, 2276, 2283, 2292, 2301, 2310, 2319, 2329,
- 2337, 2350, 2358, 2414, 2421, 2436, 2446, 2456, 2463, 2470,
- 2477, 2484, 2499, 2514, 2521, 2528, 2537, 2545, 2552, 2566,
- 2587, 2608, 2620, 2632, 2644, 2653, 2674, 2686, 2698, 2707,
- 2728, 2737, 2746, 2755, 2763, 2771, 2784, 2797, 2812, 2827,
- 2836, 2845, 2855, 2865, 2874, 2883, 2892, 2898, 2907, 2916,
- 2926, 2936, 2946, 2955, 2965, 2974, 2987, 3000, 3012, 3026,
- 3038, 3052, 3061, 3072, 3081, 3090, 3097, 3107, 3114, 3121,
- 3130, 3139, 3149, 3159, 3169, 3179, 3186, 3193, 3202, 3211,
- 3221, 3231, 3241, 3248, 3255, 3262, 3270, 3280, 3290, 3300,
- 3310, 3320, 3330, 3386, 3396, 3404, 3412, 3427, 3436, 3442,
- 3443, 3444, 3444, 3444, 3445, 3445, 3445, 3446, 3446, 3448,
- 3458, 3467, 3474, 3481, 3488, 3495, 3502, 3509, 3515, 3516,
- 3517, 3517, 3517, 3518, 3518, 3518, 3519, 3520, 3520, 3521,
- 3521, 3522, 3522, 3523, 3524, 3525, 3526, 3527, 3528, 3529,
- 3531, 3540, 3550, 3557, 3564, 3573, 3580, 3587, 3594, 3601,
- 3610, 3619, 3626, 3633, 3643, 3653, 3663, 3673, 3683, 3693,
- 3704, 3710, 3711, 3712, 3714, 3721, 3727, 3728, 3729, 3731,
- 3738, 3748, 3755, 3764, 3772, 3778, 3779, 3781, 3781, 3781,
- 3782, 3782, 3783, 3784, 3785, 3786, 3787, 3789, 3798, 3807,
- 3814, 3823, 3830, 3839, 3847, 3860, 3868, 3881, 3887, 3888,
- 3889, 3889, 3890, 3890, 3891, 3891, 3892, 3892, 3893, 3893,
- 3894, 3894, 3895, 3895, 3896, 3896, 3897, 3897, 3898, 3898,
- 3899, 3901, 3913, 3925, 3938, 3951, 3963, 3975, 3990, 4005,
- 4017, 4029, 4041, 4053, 4066, 4079, 4092, 4105, 4118, 4131,
- 4144, 4159, 4174, 4185, 4194, 4210, 4217, 4226, 4235, 4244,
- 4254, 4260, 4261, 4262, 4262, 4264, 4279
+ 0, 223, 223, 223, 224, 224, 225, 225, 226, 226,
+ 226, 227, 227, 228, 228, 229, 229, 230, 232, 239,
+ 245, 246, 247, 247, 247, 248, 248, 249, 249, 249,
+ 250, 250, 250, 251, 251, 251, 252, 252, 253, 254,
+ 254, 254, 255, 255, 255, 256, 256, 257, 257, 258,
+ 258, 259, 259, 260, 260, 261, 261, 262, 262, 263,
+ 263, 264, 264, 264, 265, 265, 266, 266, 266, 267,
+ 267, 267, 268, 268, 269, 269, 270, 270, 271, 271,
+ 272, 272, 272, 273, 273, 274, 274, 275, 275, 275,
+ 276, 276, 277, 277, 278, 278, 279, 279, 279, 280,
+ 280, 281, 281, 282, 282, 283, 283, 284, 284, 285,
+ 285, 286, 286, 287, 287, 288, 288, 288, 289, 289,
+ 289, 290, 290, 290, 291, 291, 291, 291, 292, 292,
+ 293, 293, 293, 294, 294, 294, 295, 295, 296, 296,
+ 297, 297, 297, 298, 298, 298, 299, 299, 300, 300,
+ 300, 301, 302, 302, 302, 303, 303, 303, 304, 304,
+ 305, 305, 306, 306, 307, 308, 308, 309, 309, 310,
+ 310, 311, 311, 312, 312, 313, 313, 314, 314, 315,
+ 315, 316, 316, 317, 317, 318, 319, 319, 320, 320,
+ 320, 321, 321, 322, 322, 323, 323, 324, 324, 324,
+ 325, 325, 326, 327, 327, 328, 328, 329, 330, 330,
+ 331, 331, 332, 332, 332, 333, 333, 334, 334, 334,
+ 335, 335, 335, 336, 336, 337, 338, 338, 339, 339,
+ 340, 340, 341, 341, 342, 342, 342, 343, 343, 343,
+ 344, 344, 344, 345, 345, 346, 346, 346, 347, 347,
+ 348, 348, 349, 349, 350, 350, 350, 351, 351, 351,
+ 352, 352, 353, 353, 354, 354, 355, 355, 356, 356,
+ 357, 358, 358, 359, 359, 360, 360, 361, 361, 361,
+ 362, 363, 363, 363, 365, 373, 387, 388, 389, 389,
+ 389, 389, 389, 390, 390, 390, 392, 400, 414, 415,
+ 416, 416, 416, 416, 417, 417, 417, 419, 427, 441,
+ 442, 443, 443, 443, 443, 444, 444, 444, 446, 467,
+ 468, 469, 469, 469, 469, 470, 470, 470, 471, 471,
+ 471, 474, 493, 510, 518, 528, 535, 545, 564, 565,
+ 566, 566, 566, 566, 566, 567, 567, 567, 568, 568,
+ 568, 568, 570, 579, 588, 599, 608, 617, 626, 635,
+ 646, 655, 667, 681, 696, 707, 724, 741, 758, 775,
+ 790, 805, 818, 833, 842, 851, 860, 869, 878, 887,
+ 894, 903, 912, 921, 930, 939, 948, 957, 966, 975,
+ 988, 999, 1010, 1021, 1030, 1043, 1056, 1065, 1074, 1083,
+ 1090, 1097, 1106, 1113, 1122, 1130, 1137, 1144, 1152, 1161,
+ 1170, 1178, 1196, 1204, 1212, 1220, 1228, 1236, 1252, 1259,
+ 1268, 1277, 1291, 1300, 1309, 1318, 1327, 1336, 1345, 1354,
+ 1363, 1372, 1379, 1386, 1412, 1420, 1427, 1434, 1441, 1448,
+ 1456, 1464, 1472, 1479, 1490, 1501, 1508, 1517, 1526, 1535,
+ 1544, 1551, 1558, 1565, 1581, 1589, 1597, 1607, 1617, 1627,
+ 1641, 1649, 1662, 1673, 1681, 1694, 1703, 1712, 1721, 1730,
+ 1740, 1750, 1758, 1771, 1780, 1788, 1797, 1805, 1818, 1827,
+ 1836, 1846, 1853, 1863, 1873, 1883, 1893, 1903, 1913, 1923,
+ 1933, 1943, 1953, 1960, 1967, 1974, 1983, 1992, 2001, 2010,
+ 2017, 2027, 2035, 2044, 2051, 2069, 2082, 2095, 2108, 2117,
+ 2126, 2135, 2144, 2153, 2163, 2173, 2184, 2193, 2202, 2211,
+ 2220, 2229, 2238, 2247, 2256, 2265, 2278, 2291, 2300, 2307,
+ 2316, 2325, 2334, 2343, 2353, 2361, 2374, 2382, 2438, 2445,
+ 2460, 2470, 2480, 2487, 2494, 2501, 2508, 2523, 2538, 2545,
+ 2552, 2561, 2569, 2576, 2590, 2611, 2632, 2644, 2656, 2668,
+ 2677, 2698, 2710, 2722, 2731, 2752, 2761, 2770, 2779, 2787,
+ 2795, 2808, 2821, 2836, 2851, 2860, 2869, 2879, 2889, 2898,
+ 2907, 2916, 2922, 2931, 2940, 2950, 2960, 2970, 2979, 2989,
+ 2998, 3011, 3024, 3036, 3050, 3062, 3076, 3085, 3096, 3105,
+ 3114, 3121, 3131, 3138, 3145, 3154, 3163, 3173, 3183, 3193,
+ 3203, 3210, 3217, 3226, 3235, 3245, 3255, 3265, 3272, 3279,
+ 3286, 3294, 3304, 3314, 3324, 3334, 3344, 3354, 3410, 3420,
+ 3428, 3436, 3451, 3460, 3466, 3467, 3468, 3468, 3468, 3469,
+ 3469, 3469, 3470, 3470, 3472, 3482, 3491, 3498, 3505, 3512,
+ 3519, 3526, 3533, 3539, 3540, 3541, 3541, 3541, 3542, 3542,
+ 3542, 3543, 3544, 3544, 3545, 3545, 3546, 3546, 3547, 3548,
+ 3549, 3550, 3551, 3552, 3553, 3555, 3564, 3574, 3581, 3588,
+ 3597, 3604, 3611, 3618, 3625, 3634, 3643, 3650, 3657, 3667,
+ 3677, 3687, 3697, 3707, 3717, 3728, 3734, 3735, 3736, 3738,
+ 3745, 3751, 3752, 3753, 3755, 3762, 3772, 3779, 3788, 3796,
+ 3802, 3803, 3805, 3805, 3805, 3806, 3806, 3807, 3808, 3809,
+ 3810, 3811, 3813, 3822, 3831, 3838, 3847, 3854, 3863, 3871,
+ 3884, 3892, 3905, 3911, 3912, 3913, 3913, 3914, 3914, 3915,
+ 3915, 3916, 3916, 3917, 3917, 3918, 3918, 3919, 3919, 3920,
+ 3920, 3921, 3921, 3922, 3922, 3923, 3925, 3937, 3949, 3962,
+ 3975, 3987, 3999, 4014, 4029, 4041, 4053, 4065, 4077, 4090,
+ 4103, 4116, 4129, 4142, 4155, 4168, 4183, 4198, 4209, 4218,
+ 4234, 4241, 4250, 4259, 4268, 4277, 4287, 4293, 4294, 4295,
+ 4295, 4297, 4312
};
#endif
@@ -1560,10 +1561,10 @@ static const char *const yytname[] =
"VAR_WAIT_LIMIT_COOKIE", "VAR_WAIT_LIMIT_NETBLOCK",
"VAR_WAIT_LIMIT_COOKIE_NETBLOCK", "VAR_STREAM_WAIT_SIZE",
"VAR_TLS_CIPHERS", "VAR_TLS_CIPHERSUITES", "VAR_TLS_USE_SNI",
- "VAR_IPSET", "VAR_IPSET_NAME_V4", "VAR_IPSET_NAME_V6",
- "VAR_TLS_SESSION_TICKET_KEYS", "VAR_RPZ", "VAR_TAGS",
- "VAR_RPZ_ACTION_OVERRIDE", "VAR_RPZ_CNAME_OVERRIDE", "VAR_RPZ_LOG",
- "VAR_RPZ_LOG_NAME", "VAR_DYNLIB", "VAR_DYNLIB_FILE",
+ "VAR_TLS_PROTOCOLS", "VAR_IPSET", "VAR_IPSET_NAME_V4",
+ "VAR_IPSET_NAME_V6", "VAR_TLS_SESSION_TICKET_KEYS", "VAR_RPZ",
+ "VAR_TAGS", "VAR_RPZ_ACTION_OVERRIDE", "VAR_RPZ_CNAME_OVERRIDE",
+ "VAR_RPZ_LOG", "VAR_RPZ_LOG_NAME", "VAR_DYNLIB", "VAR_DYNLIB_FILE",
"VAR_EDNS_CLIENT_STRING", "VAR_EDNS_CLIENT_STRING_OPCODE", "VAR_NSID",
"VAR_ZONEMD_PERMISSIVE_MODE", "VAR_ZONEMD_CHECK",
"VAR_ZONEMD_REJECT_ABSENCE", "VAR_RPZ_SIGNAL_NXDOMAIN_RA",
@@ -1574,20 +1575,21 @@ static const char *const yytname[] =
"VAR_STATISTICS_INHIBIT_ZERO", "VAR_HARDEN_UNKNOWN_ADDITIONAL",
"VAR_DISABLE_EDNS_DO", "VAR_CACHEDB_NO_STORE", "VAR_LOG_DESTADDR",
"VAR_CACHEDB_CHECK_WHEN_SERVE_EXPIRED", "VAR_COOKIE_SECRET_FILE",
- "VAR_ITER_SCRUB_NS", "VAR_ITER_SCRUB_CNAME", "VAR_MAX_GLOBAL_QUOTA",
- "VAR_HARDEN_UNVERIFIED_GLUE", "VAR_LOG_TIME_ISO",
- "VAR_ITER_SCRUB_PROMISCUOUS", "$accept", "toplevelvars", "toplevelvar",
- "force_toplevel", "serverstart", "contents_server", "content_server",
- "stub_clause", "stubstart", "contents_stub", "content_stub",
- "forward_clause", "forwardstart", "contents_forward", "content_forward",
- "view_clause", "viewstart", "contents_view", "content_view", "authstart",
- "contents_auth", "content_auth", "rpz_tag", "rpz_action_override",
- "rpz_cname_override", "rpz_log", "rpz_log_name",
- "rpz_signal_nxdomain_ra", "rpzstart", "contents_rpz", "content_rpz",
- "server_num_threads", "server_verbosity", "server_statistics_interval",
- "server_statistics_cumulative", "server_extended_statistics",
- "server_statistics_inhibit_zero", "server_shm_enable", "server_shm_key",
- "server_port", "server_send_client_subnet", "server_client_subnet_zone",
+ "VAR_ITER_SCRUB_NS", "VAR_ITER_SCRUB_CNAME", "VAR_ITER_SCRUB_RRSIG",
+ "VAR_MAX_GLOBAL_QUOTA", "VAR_HARDEN_UNVERIFIED_GLUE", "VAR_LOG_TIME_ISO",
+ "VAR_ITER_SCRUB_PROMISCUOUS", "VAR_LOG_THREAD_ID", "$accept",
+ "toplevelvars", "toplevelvar", "force_toplevel", "serverstart",
+ "contents_server", "content_server", "stub_clause", "stubstart",
+ "contents_stub", "content_stub", "forward_clause", "forwardstart",
+ "contents_forward", "content_forward", "view_clause", "viewstart",
+ "contents_view", "content_view", "authstart", "contents_auth",
+ "content_auth", "rpz_tag", "rpz_action_override", "rpz_cname_override",
+ "rpz_log", "rpz_log_name", "rpz_signal_nxdomain_ra", "rpzstart",
+ "contents_rpz", "content_rpz", "server_num_threads", "server_verbosity",
+ "server_statistics_interval", "server_statistics_cumulative",
+ "server_extended_statistics", "server_statistics_inhibit_zero",
+ "server_shm_enable", "server_shm_key", "server_port",
+ "server_send_client_subnet", "server_client_subnet_zone",
"server_client_subnet_always_forward", "server_client_subnet_opcode",
"server_max_client_subnet_ipv4", "server_max_client_subnet_ipv6",
"server_min_client_subnet_ipv4", "server_min_client_subnet_ipv6",
@@ -1608,45 +1610,46 @@ static const char *const yytname[] =
"server_tls_win_cert", "server_tls_additional_port",
"server_tls_ciphers", "server_tls_ciphersuites",
"server_tls_session_ticket_keys", "server_tls_use_sni",
- "server_https_port", "server_http_endpoint", "server_http_max_streams",
- "server_http_query_buffer_size", "server_http_response_buffer_size",
- "server_http_nodelay", "server_http_notls_downstream",
- "server_quic_port", "server_quic_size", "server_use_systemd",
- "server_do_daemonize", "server_use_syslog", "server_log_time_ascii",
- "server_log_time_iso", "server_log_queries", "server_log_replies",
- "server_log_tag_queryreply", "server_log_servfail",
- "server_log_destaddr", "server_log_local_actions", "server_chroot",
- "server_username", "server_directory", "server_logfile",
- "server_pidfile", "server_root_hints", "server_dlv_anchor_file",
- "server_dlv_anchor", "server_auto_trust_anchor_file",
- "server_trust_anchor_file", "server_trusted_keys_file",
- "server_trust_anchor", "server_trust_anchor_signaling",
- "server_root_key_sentinel", "server_domain_insecure",
- "server_hide_identity", "server_hide_version", "server_hide_trustanchor",
- "server_hide_http_user_agent", "server_identity", "server_version",
- "server_http_user_agent", "server_nsid", "server_so_rcvbuf",
- "server_so_sndbuf", "server_so_reuseport", "server_ip_transparent",
- "server_ip_freebind", "server_ip_dscp", "server_stream_wait_size",
- "server_edns_buffer_size", "server_msg_buffer_size",
- "server_msg_cache_size", "server_msg_cache_slabs",
- "server_num_queries_per_thread", "server_jostle_timeout",
- "server_delay_close", "server_udp_connect", "server_unblock_lan_zones",
- "server_insecure_lan_zones", "server_rrset_cache_size",
- "server_rrset_cache_slabs", "server_infra_host_ttl",
- "server_infra_lame_ttl", "server_infra_cache_numhosts",
- "server_infra_cache_lame_size", "server_infra_cache_slabs",
- "server_infra_cache_min_rtt", "server_infra_cache_max_rtt",
- "server_infra_keep_probing", "server_target_fetch_policy",
- "server_harden_short_bufsize", "server_harden_large_queries",
- "server_harden_glue", "server_harden_unverified_glue",
- "server_harden_dnssec_stripped", "server_harden_below_nxdomain",
- "server_harden_referral_path", "server_harden_algo_downgrade",
- "server_harden_unknown_additional", "server_use_caps_for_id",
- "server_caps_whitelist", "server_private_address",
- "server_private_domain", "server_prefetch", "server_prefetch_key",
- "server_deny_any", "server_unwanted_reply_threshold",
- "server_do_not_query_address", "server_do_not_query_localhost",
- "server_access_control", "server_interface_action", "server_module_conf",
+ "server_tls_protocols", "server_https_port", "server_http_endpoint",
+ "server_http_max_streams", "server_http_query_buffer_size",
+ "server_http_response_buffer_size", "server_http_nodelay",
+ "server_http_notls_downstream", "server_quic_port", "server_quic_size",
+ "server_use_systemd", "server_do_daemonize", "server_use_syslog",
+ "server_log_time_ascii", "server_log_time_iso", "server_log_queries",
+ "server_log_replies", "server_log_tag_queryreply", "server_log_servfail",
+ "server_log_destaddr", "server_log_thread_id",
+ "server_log_local_actions", "server_chroot", "server_username",
+ "server_directory", "server_logfile", "server_pidfile",
+ "server_root_hints", "server_dlv_anchor_file", "server_dlv_anchor",
+ "server_auto_trust_anchor_file", "server_trust_anchor_file",
+ "server_trusted_keys_file", "server_trust_anchor",
+ "server_trust_anchor_signaling", "server_root_key_sentinel",
+ "server_domain_insecure", "server_hide_identity", "server_hide_version",
+ "server_hide_trustanchor", "server_hide_http_user_agent",
+ "server_identity", "server_version", "server_http_user_agent",
+ "server_nsid", "server_so_rcvbuf", "server_so_sndbuf",
+ "server_so_reuseport", "server_ip_transparent", "server_ip_freebind",
+ "server_ip_dscp", "server_stream_wait_size", "server_edns_buffer_size",
+ "server_msg_buffer_size", "server_msg_cache_size",
+ "server_msg_cache_slabs", "server_num_queries_per_thread",
+ "server_jostle_timeout", "server_delay_close", "server_udp_connect",
+ "server_unblock_lan_zones", "server_insecure_lan_zones",
+ "server_rrset_cache_size", "server_rrset_cache_slabs",
+ "server_infra_host_ttl", "server_infra_lame_ttl",
+ "server_infra_cache_numhosts", "server_infra_cache_lame_size",
+ "server_infra_cache_slabs", "server_infra_cache_min_rtt",
+ "server_infra_cache_max_rtt", "server_infra_keep_probing",
+ "server_target_fetch_policy", "server_harden_short_bufsize",
+ "server_harden_large_queries", "server_harden_glue",
+ "server_harden_unverified_glue", "server_harden_dnssec_stripped",
+ "server_harden_below_nxdomain", "server_harden_referral_path",
+ "server_harden_algo_downgrade", "server_harden_unknown_additional",
+ "server_use_caps_for_id", "server_caps_whitelist",
+ "server_private_address", "server_private_domain", "server_prefetch",
+ "server_prefetch_key", "server_deny_any",
+ "server_unwanted_reply_threshold", "server_do_not_query_address",
+ "server_do_not_query_localhost", "server_access_control",
+ "server_interface_action", "server_module_conf",
"server_val_override_date", "server_val_sig_skew_min",
"server_val_sig_skew_max", "server_val_max_restart",
"server_cache_max_ttl", "server_cache_max_negative_ttl",
@@ -1741,8 +1744,9 @@ static const char *const yytname[] =
"server_tcp_connection_limit", "server_answer_cookie",
"server_cookie_secret", "server_cookie_secret_file",
"server_iter_scrub_ns", "server_iter_scrub_cname",
- "server_max_global_quota", "server_iter_scrub_promiscuous", "ipsetstart",
- "contents_ipset", "content_ipset", "ipset_name_v4", "ipset_name_v6", YY_NULLPTR
+ "server_iter_scrub_rrsig", "server_max_global_quota",
+ "server_iter_scrub_promiscuous", "ipsetstart", "contents_ipset",
+ "content_ipset", "ipset_name_v4", "ipset_name_v6", YY_NULLPTR
};
static const char *
@@ -1752,7 +1756,54 @@ yysymbol_name (yysymbol_kind_t yysymbol)
}
#endif
-#define YYPACT_NINF (-310)
+#ifdef YYPRINT
+/* YYTOKNUM[NUM] -- (External) token number corresponding to the
+ (internal) symbol number NUM (which must be that of a token). */
+static const yytype_int16 yytoknum[] =
+{
+ 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
+ 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
+ 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
+ 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
+ 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
+ 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
+ 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
+ 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
+ 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
+ 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
+ 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
+ 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
+ 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
+ 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
+ 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
+ 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
+ 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
+ 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
+ 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
+ 445, 446, 447, 448, 449, 450, 451, 452, 453, 454,
+ 455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
+ 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
+ 475, 476, 477, 478, 479, 480, 481, 482, 483, 484,
+ 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
+ 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
+ 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
+ 515, 516, 517, 518, 519, 520, 521, 522, 523, 524,
+ 525, 526, 527, 528, 529, 530, 531, 532, 533, 534,
+ 535, 536, 537, 538, 539, 540, 541, 542, 543, 544,
+ 545, 546, 547, 548, 549, 550, 551, 552, 553, 554,
+ 555, 556, 557, 558, 559, 560, 561, 562, 563, 564,
+ 565, 566, 567, 568, 569, 570, 571, 572, 573, 574,
+ 575, 576, 577, 578, 579, 580, 581, 582, 583, 584,
+ 585, 586, 587, 588, 589, 590, 591, 592, 593, 594,
+ 595, 596, 597, 598, 599, 600, 601, 602, 603, 604,
+ 605, 606, 607, 608, 609, 610, 611, 612, 613, 614,
+ 615, 616, 617, 618, 619, 620, 621, 622, 623, 624,
+ 625, 626, 627, 628, 629, 630, 631, 632, 633, 634,
+ 635
+};
+#endif
+
+#define YYPACT_NINF (-311)
#define yypact_value_is_default(Yyn) \
((Yyn) == YYPACT_NINF)
@@ -1762,139 +1813,140 @@ yysymbol_name (yysymbol_kind_t yysymbol)
#define yytable_value_is_error(Yyn) \
0
-/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
- STATE-NUM. */
+ /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+ STATE-NUM. */
static const yytype_int16 yypact[] =
{
- -310, 274, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -13, 221, 236, 291, 112,
- 88, -14, 292, -81, -309, 142, -121, -302, 31, 32,
+ -311, 275, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -13, 227, 225, 293, 112,
+ 88, -14, 294, -81, -310, 143, -122, -303, 31, 32,
33, 83, 89, 93, 94, 121, 122, 123, 126, 134,
- 150, 215, 217, 238, 240, 241, 242, 243, 244, 245,
- 246, 247, 259, 262, 263, 265, 266, 267, 268, 269,
- 270, 271, 272, 277, 279, 280, 283, 284, 285, 288,
- 297, 298, 313, 314, 316, 317, 319, 320, 321, 322,
- 329, 330, 345, 347, 355, 357, 358, 360, 361, 363,
- 366, 367, 369, 371, 373, 374, 376, 377, 378, 379,
- 381, 386, 387, 388, 389, 390, 403, 405, 411, 412,
- 413, 414, 415, 417, 423, 424, 425, 426, 427, 428,
- 429, 430, 432, 433, 434, 435, 437, 438, 439, 440,
- 441, 442, 443, 444, 445, 446, 447, 448, 449, 450,
- 451, 452, 477, 478, 479, 480, 481, 482, 483, 484,
- 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
- 495, 496, 497, 498, 499, 500, 501, 503, 504, 505,
- 506, 507, 508, 509, 510, 511, 512, 513, 514, 515,
- 516, 517, 518, 519, 520, 522, 523, 525, 526, 527,
- 528, 529, 530, 531, 533, 534, 535, 536, 537, 538,
- 539, 540, 541, 542, 543, 544, 547, 548, 549, 550,
- 551, 552, 553, 554, 555, 556, 557, 558, 559, 560,
- 561, 562, 563, 564, 565, 566, 568, 569, 570, 571,
- 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
- 582, 583, 584, 585, 586, 587, 588, 589, 590, 591,
- 592, 593, 594, 595, 596, 597, 598, 600, 601, 602,
- 604, 605, 606, 607, 608, 610, 611, 612, 613, 614,
- 615, 616, 617, 618, 619, 620, 621, 622, 623, 624,
- 625, 626, 627, 628, 629, 630, 631, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, 632, 633, 634,
- 635, 636, 637, 638, 639, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, 640, 641, 642, 643, 644, 645,
- 646, -310, -310, -310, -310, -310, -310, -310, -310, 647,
- 648, 649, 650, 651, 652, 653, -310, -310, -310, -310,
- -310, -310, -310, -310, 654, 655, 656, 657, 658, 659,
- 660, 661, 662, 663, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, 664, 665, 666, 667, 668,
- 669, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, 670, 671, 672, 673, 674, 675,
- 676, 677, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, 678, 679, 680, 681, 682, 683, 684, 685, 686,
- 687, 688, 689, 690, 691, 692, 693, 694, 695, 696,
- 697, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, 698, -310, -310, 699, -310, -310, 700, 701,
- 702, 703, 704, 705, 706, 707, 708, 709, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, 710,
- 711, 712, 713, 714, 715, 716, 717, 718, 719, 720,
- 721, 722, 723, 724, 725, 726, 727, 728, 729, 730,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, 731, 732, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, 733,
- 734, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, 735, 736, 737, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, 738, 739, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, 740, 741, 742, 743, 744, 745, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, 746, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, 747, 748, -310, -310, -310, -310, -310,
- 749, -310, -310, -310, -310, -310, -310, 750, 751, 752,
- 753, 754, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, 755, -310, -310, 756, 757, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, 758, 759, 760, -310,
- -310, -310, -310, -310, -310, -310, -310, 761, 762, -310,
- -310, -310, -310, -310, -310, -310, -310
+ 169, 215, 217, 238, 240, 241, 242, 243, 244, 245,
+ 246, 247, 258, 259, 260, 261, 263, 268, 269, 272,
+ 273, 274, 279, 280, 281, 282, 283, 284, 285, 288,
+ 291, 297, 298, 314, 315, 317, 318, 320, 321, 322,
+ 323, 324, 331, 346, 348, 358, 360, 368, 369, 370,
+ 371, 372, 373, 375, 376, 377, 378, 379, 380, 386,
+ 387, 388, 389, 390, 391, 405, 411, 412, 413, 414,
+ 415, 417, 418, 424, 425, 426, 427, 428, 429, 430,
+ 431, 433, 434, 435, 436, 438, 439, 440, 441, 442,
+ 443, 444, 445, 446, 447, 448, 449, 450, 451, 452,
+ 453, 456, 479, 480, 481, 482, 483, 484, 485, 486,
+ 487, 488, 489, 490, 491, 492, 493, 494, 495, 496,
+ 497, 498, 499, 500, 501, 502, 504, 505, 506, 507,
+ 508, 509, 510, 511, 512, 513, 514, 515, 516, 517,
+ 518, 519, 520, 521, 522, 524, 526, 527, 528, 529,
+ 530, 531, 532, 533, 534, 536, 537, 539, 540, 541,
+ 542, 543, 544, 545, 547, 548, 549, 550, 551, 552,
+ 553, 554, 555, 556, 557, 558, 559, 560, 561, 562,
+ 563, 564, 565, 566, 567, 569, 570, 571, 572, 573,
+ 574, 575, 576, 577, 578, 579, 580, 581, 582, 583,
+ 584, 585, 586, 587, 588, 589, 590, 591, 592, 593,
+ 594, 595, 596, 597, 598, 599, 600, 602, 603, 604,
+ 606, 607, 608, 609, 610, 612, 613, 614, 615, 616,
+ 617, 618, 619, 620, 621, 622, 623, 624, 625, 626,
+ 627, 628, 629, 630, 631, 632, 633, 634, 635, 636,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, 637, 638, 639, 640, 641, 642, 643,
+ 644, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ 645, 646, 647, 648, 649, 650, 651, -311, -311, -311,
+ -311, -311, -311, -311, -311, 652, 653, 654, 655, 656,
+ 657, 658, -311, -311, -311, -311, -311, -311, -311, -311,
+ 659, 660, 661, 662, 663, 664, 665, 666, 667, 668,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, 669, 670, 671, 672, 673, 674, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ 675, 676, 677, 678, 679, 680, 681, 682, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, 683, 684, 685,
+ 686, 687, 688, 689, 690, 691, 692, 693, 694, 695,
+ 696, 697, 698, 699, 700, 701, 702, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, 703, -311,
+ -311, 704, -311, -311, 705, 706, 707, 708, 709, 710,
+ 711, 712, 713, 714, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, 715, 716, 717, 718, 719,
+ 720, 721, 722, 723, 724, 725, 726, 727, 728, 729,
+ 730, 731, 732, 733, 734, 735, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, 736, 737,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, 738, 739, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, 740, 741, 742,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, 743, 744, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, 745, 746, 747,
+ 748, 749, 750, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, 751, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, 752,
+ 753, -311, -311, -311, -311, -311, -311, 754, -311, -311,
+ -311, -311, -311, -311, 755, 756, 757, 758, 759, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, 760, -311, -311, 761, 762, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, 763, 764, 765, -311, -311,
+ -311, -311, -311, -311, -311, -311, 766, 767, -311, -311,
+ -311, -311, -311, -311, -311, -311
};
-/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
- Performed when YYTABLE does not specify something else to do. Zero
- means the default is an error. */
+ /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
+ Performed when YYTABLE does not specify something else to do. Zero
+ means the default is an error. */
static const yytype_int16 yydefact[] =
{
- 2, 0, 1, 18, 19, 282, 294, 628, 690, 647,
- 305, 704, 727, 315, 780, 334, 695, 3, 17, 21,
- 5, 284, 6, 296, 10, 307, 317, 336, 630, 649,
- 692, 697, 706, 729, 782, 4, 281, 293, 304, 14,
+ 2, 0, 1, 18, 19, 285, 297, 633, 695, 652,
+ 308, 709, 732, 318, 786, 337, 700, 3, 17, 21,
+ 5, 287, 6, 299, 10, 310, 320, 339, 635, 654,
+ 697, 702, 711, 734, 788, 4, 284, 296, 307, 14,
15, 8, 9, 7, 16, 11, 12, 13, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -1921,274 +1973,276 @@ static const yytype_int16 yydefact[] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 20, 22, 23,
- 90, 93, 102, 270, 219, 220, 24, 172, 173, 174,
- 175, 176, 177, 178, 179, 180, 181, 39, 81, 25,
- 94, 95, 50, 74, 89, 266, 26, 27, 28, 31,
- 32, 29, 30, 33, 34, 35, 261, 262, 263, 36,
- 37, 38, 126, 231, 127, 129, 130, 131, 233, 238,
- 234, 250, 251, 252, 256, 132, 133, 134, 135, 136,
- 137, 138, 264, 265, 215, 91, 80, 106, 279, 124,
- 125, 243, 240, 273, 128, 40, 41, 42, 43, 44,
- 82, 96, 97, 113, 68, 78, 69, 223, 224, 107,
- 60, 61, 222, 64, 62, 63, 65, 259, 117, 121,
- 142, 154, 187, 157, 249, 118, 75, 45, 46, 47,
- 104, 143, 144, 145, 146, 48, 49, 51, 52, 54,
- 55, 53, 151, 152, 158, 56, 57, 58, 66, 278,
- 85, 122, 99, 153, 271, 92, 182, 100, 101, 119,
- 120, 241, 105, 59, 83, 86, 196, 67, 70, 108,
- 109, 110, 84, 183, 184, 111, 71, 72, 73, 232,
- 123, 272, 206, 207, 208, 209, 210, 211, 212, 213,
- 221, 112, 79, 260, 114, 115, 116, 185, 76, 77,
- 98, 87, 88, 103, 139, 140, 242, 244, 245, 246,
- 247, 248, 141, 147, 148, 149, 150, 188, 189, 191,
- 193, 194, 192, 195, 198, 199, 200, 197, 216, 155,
- 255, 156, 161, 162, 159, 160, 163, 164, 166, 165,
- 168, 167, 169, 170, 171, 235, 237, 236, 186, 201,
- 202, 203, 204, 205, 225, 227, 226, 228, 229, 230,
- 257, 258, 267, 268, 269, 190, 214, 217, 218, 239,
- 253, 254, 274, 275, 276, 277, 280, 0, 0, 0,
- 0, 0, 0, 0, 0, 283, 285, 286, 287, 289,
- 290, 291, 292, 288, 0, 0, 0, 0, 0, 0,
- 0, 295, 297, 298, 299, 300, 301, 302, 303, 0,
- 0, 0, 0, 0, 0, 0, 306, 308, 309, 312,
- 313, 310, 314, 311, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 316, 318, 319, 320, 321, 325,
- 326, 327, 322, 323, 324, 0, 0, 0, 0, 0,
- 0, 339, 343, 344, 345, 346, 347, 335, 337, 338,
- 340, 341, 342, 348, 0, 0, 0, 0, 0, 0,
- 0, 0, 629, 631, 633, 632, 638, 634, 635, 636,
- 637, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 648, 650, 652, 651, 653, 654, 655, 656, 657,
- 658, 659, 660, 661, 662, 663, 664, 665, 666, 667,
- 668, 669, 0, 691, 693, 0, 696, 698, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 705, 707,
- 708, 709, 711, 712, 710, 713, 714, 715, 716, 0,
+ 20, 22, 23, 90, 93, 102, 272, 220, 221, 24,
+ 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
+ 39, 81, 25, 94, 95, 50, 74, 89, 268, 26,
+ 27, 28, 31, 32, 29, 30, 33, 34, 35, 263,
+ 264, 265, 36, 37, 38, 126, 232, 127, 130, 131,
+ 132, 234, 239, 235, 251, 252, 253, 257, 259, 133,
+ 134, 135, 136, 137, 138, 139, 266, 267, 216, 91,
+ 80, 106, 282, 124, 125, 244, 241, 275, 129, 128,
+ 40, 41, 42, 43, 44, 82, 96, 97, 113, 68,
+ 78, 69, 224, 225, 107, 60, 61, 223, 64, 62,
+ 63, 65, 261, 117, 121, 143, 155, 188, 158, 250,
+ 118, 75, 45, 46, 47, 104, 144, 145, 146, 147,
+ 48, 49, 51, 52, 54, 55, 53, 152, 153, 159,
+ 56, 57, 58, 66, 281, 85, 122, 99, 154, 273,
+ 92, 183, 100, 101, 119, 120, 242, 105, 59, 83,
+ 86, 197, 67, 70, 108, 109, 110, 84, 184, 185,
+ 111, 71, 72, 73, 233, 123, 274, 207, 208, 209,
+ 210, 211, 212, 213, 214, 222, 112, 79, 262, 114,
+ 115, 116, 186, 76, 77, 98, 87, 88, 103, 140,
+ 141, 243, 245, 246, 247, 248, 249, 142, 148, 149,
+ 150, 151, 189, 190, 192, 194, 195, 193, 196, 199,
+ 200, 201, 198, 217, 156, 256, 157, 162, 163, 160,
+ 161, 164, 165, 167, 166, 169, 168, 170, 171, 172,
+ 236, 238, 237, 187, 202, 203, 204, 205, 206, 226,
+ 228, 227, 229, 230, 231, 258, 260, 269, 270, 271,
+ 191, 215, 218, 219, 240, 254, 255, 276, 277, 278,
+ 280, 279, 283, 0, 0, 0, 0, 0, 0, 0,
+ 0, 286, 288, 289, 290, 292, 293, 294, 295, 291,
+ 0, 0, 0, 0, 0, 0, 0, 298, 300, 301,
+ 302, 303, 304, 305, 306, 0, 0, 0, 0, 0,
+ 0, 0, 309, 311, 312, 315, 316, 313, 317, 314,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 319, 321, 322, 323, 324, 328, 329, 330, 325, 326,
+ 327, 0, 0, 0, 0, 0, 0, 342, 346, 347,
+ 348, 349, 350, 338, 340, 341, 343, 344, 345, 351,
+ 0, 0, 0, 0, 0, 0, 0, 0, 634, 636,
+ 638, 637, 643, 639, 640, 641, 642, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 653, 655, 657,
+ 656, 658, 659, 660, 661, 662, 663, 664, 665, 666,
+ 667, 668, 669, 670, 671, 672, 673, 674, 0, 696,
+ 698, 0, 701, 703, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 710, 712, 713, 714, 716, 717,
+ 715, 718, 719, 720, 721, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 728, 730, 731, 748, 750, 732, 733, 734, 735, 742,
- 743, 744, 745, 736, 737, 738, 739, 740, 741, 749,
- 746, 747, 0, 0, 781, 783, 784, 350, 349, 357,
- 370, 368, 382, 377, 378, 379, 383, 380, 381, 384,
- 385, 386, 390, 391, 392, 426, 427, 428, 429, 430,
- 458, 459, 460, 466, 467, 373, 468, 469, 472, 470,
- 471, 476, 477, 478, 494, 441, 442, 445, 446, 479,
- 498, 435, 437, 499, 507, 508, 509, 374, 457, 529,
- 530, 436, 523, 417, 369, 431, 495, 503, 481, 0,
- 0, 533, 375, 351, 416, 486, 352, 371, 372, 432,
- 433, 531, 483, 488, 489, 388, 387, 353, 534, 461,
- 493, 418, 440, 500, 501, 502, 506, 522, 434, 527,
- 525, 526, 449, 456, 490, 491, 450, 451, 482, 511,
- 420, 421, 425, 393, 395, 389, 396, 397, 398, 399,
- 406, 407, 408, 409, 410, 411, 412, 535, 536, 543,
- 462, 463, 464, 465, 473, 474, 475, 544, 545, 546,
- 547, 0, 0, 0, 484, 452, 454, 700, 560, 565,
- 563, 562, 566, 564, 573, 574, 575, 0, 0, 569,
- 570, 571, 572, 358, 359, 360, 361, 362, 363, 364,
- 365, 366, 367, 487, 504, 528, 505, 579, 580, 453,
- 548, 0, 0, 0, 0, 0, 0, 513, 514, 515,
- 516, 517, 518, 519, 520, 521, 701, 443, 444, 447,
- 438, 510, 415, 355, 356, 439, 581, 582, 583, 584,
- 585, 587, 586, 588, 589, 590, 394, 401, 576, 578,
- 577, 400, 0, 773, 774, 561, 423, 492, 537, 422,
- 538, 539, 540, 0, 0, 455, 402, 403, 405, 404,
- 0, 592, 448, 524, 376, 593, 594, 0, 0, 0,
- 0, 0, 413, 414, 595, 354, 485, 512, 424, 775,
- 776, 777, 778, 480, 419, 779, 596, 597, 598, 603,
- 601, 602, 599, 600, 604, 605, 606, 607, 609, 610,
- 608, 621, 0, 625, 626, 0, 0, 627, 611, 619,
- 612, 613, 614, 618, 620, 615, 616, 617, 328, 329,
- 330, 331, 332, 333, 639, 641, 640, 643, 644, 645,
- 646, 642, 670, 672, 673, 674, 675, 676, 677, 678,
- 679, 680, 671, 681, 682, 683, 684, 685, 686, 687,
- 688, 689, 694, 699, 717, 718, 719, 722, 720, 721,
- 723, 724, 725, 726, 751, 752, 755, 756, 757, 758,
- 763, 764, 769, 759, 760, 761, 762, 770, 771, 765,
- 766, 767, 768, 753, 754, 785, 786, 496, 532, 559,
- 702, 703, 567, 568, 549, 550, 0, 0, 0, 554,
- 772, 541, 542, 591, 497, 558, 555, 0, 0, 622,
- 623, 624, 553, 551, 552, 556, 557
+ 0, 0, 0, 0, 0, 0, 733, 735, 736, 753,
+ 755, 737, 738, 739, 740, 747, 748, 749, 750, 741,
+ 742, 743, 744, 745, 746, 754, 751, 752, 0, 0,
+ 787, 789, 790, 353, 352, 360, 373, 371, 385, 380,
+ 381, 382, 386, 383, 384, 387, 388, 389, 393, 394,
+ 395, 431, 432, 433, 434, 435, 463, 464, 465, 471,
+ 472, 376, 473, 474, 477, 475, 476, 481, 482, 483,
+ 499, 446, 447, 450, 451, 484, 503, 440, 442, 504,
+ 512, 513, 514, 377, 462, 534, 535, 441, 528, 421,
+ 372, 436, 500, 508, 486, 0, 0, 538, 378, 354,
+ 420, 491, 355, 374, 375, 437, 438, 536, 488, 493,
+ 494, 391, 390, 356, 539, 466, 498, 422, 445, 505,
+ 506, 507, 511, 527, 439, 532, 530, 531, 454, 461,
+ 495, 496, 455, 456, 487, 516, 424, 425, 430, 396,
+ 398, 392, 399, 400, 401, 402, 410, 411, 412, 413,
+ 414, 415, 416, 540, 541, 548, 467, 468, 469, 470,
+ 478, 479, 480, 549, 550, 551, 552, 0, 0, 0,
+ 489, 457, 459, 705, 565, 570, 568, 567, 571, 569,
+ 578, 579, 580, 0, 0, 574, 575, 576, 577, 361,
+ 362, 363, 364, 365, 366, 367, 368, 369, 370, 492,
+ 509, 533, 510, 584, 585, 458, 553, 0, 0, 0,
+ 0, 0, 0, 518, 519, 520, 521, 522, 523, 524,
+ 525, 526, 706, 448, 449, 452, 443, 515, 419, 358,
+ 359, 444, 586, 587, 588, 589, 590, 592, 591, 593,
+ 594, 595, 397, 404, 581, 583, 582, 403, 0, 778,
+ 779, 566, 427, 497, 542, 426, 543, 544, 545, 0,
+ 0, 460, 405, 406, 408, 409, 407, 0, 597, 453,
+ 529, 379, 598, 599, 0, 0, 0, 0, 0, 417,
+ 418, 600, 357, 490, 517, 428, 780, 781, 782, 783,
+ 784, 485, 423, 785, 429, 601, 602, 603, 608, 606,
+ 607, 604, 605, 609, 610, 611, 612, 614, 615, 613,
+ 626, 0, 630, 631, 0, 0, 632, 616, 624, 617,
+ 618, 619, 623, 625, 620, 621, 622, 331, 332, 333,
+ 334, 335, 336, 644, 646, 645, 648, 649, 650, 651,
+ 647, 675, 677, 678, 679, 680, 681, 682, 683, 684,
+ 685, 676, 686, 687, 688, 689, 690, 691, 692, 693,
+ 694, 699, 704, 722, 723, 724, 727, 725, 726, 728,
+ 729, 730, 731, 756, 757, 760, 761, 762, 763, 768,
+ 769, 774, 764, 765, 766, 767, 775, 776, 770, 771,
+ 772, 773, 758, 759, 791, 792, 501, 537, 564, 707,
+ 708, 572, 573, 554, 555, 0, 0, 0, 559, 777,
+ 546, 547, 596, 502, 563, 560, 0, 0, 627, 628,
+ 629, 558, 556, 557, 561, 562
};
-/* YYPGOTO[NTERM-NUM]. */
+ /* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, 261, 763, 764, 765, 766, -310, -310,
- 767, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
- -310, -310, -310, -310, -310, -310
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, 768, 769, 770, 771, 772,
+ -311, -311, 773, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+ -311, -311, -311, -311, -311, -311, -311, -311, -311
};
-/* YYDEFGOTO[NTERM-NUM]. */
+ /* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- 0, 1, 17, 18, 19, 35, 307, 20, 21, 36,
- 575, 22, 23, 37, 591, 24, 25, 38, 606, 26,
- 39, 624, 641, 642, 643, 644, 645, 646, 27, 40,
- 647, 308, 309, 310, 311, 312, 313, 314, 315, 316,
- 317, 318, 319, 320, 321, 322, 323, 324, 325, 326,
- 327, 328, 329, 330, 331, 332, 333, 334, 335, 336,
- 337, 338, 339, 340, 341, 342, 343, 344, 345, 346,
- 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
- 357, 358, 359, 360, 361, 362, 363, 364, 365, 366,
- 367, 368, 369, 370, 371, 372, 373, 374, 375, 376,
- 377, 378, 379, 380, 381, 382, 383, 384, 385, 386,
- 387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
- 397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
- 407, 408, 409, 410, 411, 412, 413, 414, 415, 416,
- 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
- 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
- 437, 438, 439, 440, 441, 442, 443, 444, 445, 446,
- 447, 448, 449, 450, 451, 452, 453, 454, 455, 456,
- 457, 458, 459, 460, 461, 462, 463, 464, 465, 466,
- 467, 468, 469, 470, 471, 472, 473, 474, 475, 476,
- 477, 478, 479, 480, 481, 482, 483, 484, 485, 486,
- 487, 488, 489, 490, 491, 492, 493, 494, 495, 496,
- 497, 498, 499, 500, 501, 502, 503, 504, 505, 506,
- 507, 508, 509, 510, 511, 512, 513, 514, 515, 516,
- 517, 518, 519, 520, 521, 522, 523, 524, 525, 526,
- 527, 528, 529, 530, 531, 532, 533, 534, 535, 536,
- 537, 538, 539, 540, 541, 542, 543, 544, 545, 546,
- 547, 548, 549, 550, 551, 552, 553, 554, 576, 577,
- 578, 579, 580, 581, 582, 583, 592, 593, 594, 595,
- 596, 597, 598, 625, 626, 627, 628, 629, 630, 631,
- 632, 633, 634, 607, 608, 609, 610, 611, 612, 613,
- 28, 41, 662, 663, 664, 665, 666, 667, 668, 669,
- 670, 29, 42, 691, 692, 693, 694, 695, 696, 697,
- 698, 699, 700, 701, 702, 703, 704, 705, 706, 707,
- 708, 709, 710, 711, 30, 43, 713, 714, 31, 44,
- 716, 717, 555, 556, 557, 558, 32, 45, 728, 729,
- 730, 731, 732, 733, 734, 735, 736, 737, 738, 33,
- 46, 760, 761, 762, 763, 764, 765, 766, 767, 768,
- 769, 770, 771, 772, 773, 774, 775, 776, 777, 778,
- 779, 780, 781, 559, 560, 561, 562, 563, 564, 565,
- 566, 34, 47, 784, 785, 786
+ 0, 1, 17, 18, 19, 35, 310, 20, 21, 36,
+ 581, 22, 23, 37, 597, 24, 25, 38, 612, 26,
+ 39, 630, 647, 648, 649, 650, 651, 652, 27, 40,
+ 653, 311, 312, 313, 314, 315, 316, 317, 318, 319,
+ 320, 321, 322, 323, 324, 325, 326, 327, 328, 329,
+ 330, 331, 332, 333, 334, 335, 336, 337, 338, 339,
+ 340, 341, 342, 343, 344, 345, 346, 347, 348, 349,
+ 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
+ 360, 361, 362, 363, 364, 365, 366, 367, 368, 369,
+ 370, 371, 372, 373, 374, 375, 376, 377, 378, 379,
+ 380, 381, 382, 383, 384, 385, 386, 387, 388, 389,
+ 390, 391, 392, 393, 394, 395, 396, 397, 398, 399,
+ 400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
+ 410, 411, 412, 413, 414, 415, 416, 417, 418, 419,
+ 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
+ 430, 431, 432, 433, 434, 435, 436, 437, 438, 439,
+ 440, 441, 442, 443, 444, 445, 446, 447, 448, 449,
+ 450, 451, 452, 453, 454, 455, 456, 457, 458, 459,
+ 460, 461, 462, 463, 464, 465, 466, 467, 468, 469,
+ 470, 471, 472, 473, 474, 475, 476, 477, 478, 479,
+ 480, 481, 482, 483, 484, 485, 486, 487, 488, 489,
+ 490, 491, 492, 493, 494, 495, 496, 497, 498, 499,
+ 500, 501, 502, 503, 504, 505, 506, 507, 508, 509,
+ 510, 511, 512, 513, 514, 515, 516, 517, 518, 519,
+ 520, 521, 522, 523, 524, 525, 526, 527, 528, 529,
+ 530, 531, 532, 533, 534, 535, 536, 537, 538, 539,
+ 540, 541, 542, 543, 544, 545, 546, 547, 548, 549,
+ 550, 551, 552, 553, 554, 555, 556, 557, 558, 559,
+ 582, 583, 584, 585, 586, 587, 588, 589, 598, 599,
+ 600, 601, 602, 603, 604, 631, 632, 633, 634, 635,
+ 636, 637, 638, 639, 640, 613, 614, 615, 616, 617,
+ 618, 619, 28, 41, 668, 669, 670, 671, 672, 673,
+ 674, 675, 676, 29, 42, 697, 698, 699, 700, 701,
+ 702, 703, 704, 705, 706, 707, 708, 709, 710, 711,
+ 712, 713, 714, 715, 716, 717, 30, 43, 719, 720,
+ 31, 44, 722, 723, 560, 561, 562, 563, 32, 45,
+ 734, 735, 736, 737, 738, 739, 740, 741, 742, 743,
+ 744, 33, 46, 766, 767, 768, 769, 770, 771, 772,
+ 773, 774, 775, 776, 777, 778, 779, 780, 781, 782,
+ 783, 784, 785, 786, 787, 564, 565, 566, 567, 568,
+ 569, 570, 571, 572, 34, 47, 790, 791, 792
};
-/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
- positive, shift that token. If negative, reduce the rule whose
- number is the opposite. If YYTABLE_NINF, syntax error. */
+ /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
+ positive, shift that token. If negative, reduce the rule whose
+ number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int16 yytable[] =
{
48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
- 78, 79, 80, 81, 782, 783, 712, 715, 82, 83,
- 84, 787, 788, 789, 85, 86, 87, 88, 89, 90,
+ 78, 79, 80, 81, 788, 789, 718, 721, 82, 83,
+ 84, 793, 794, 795, 85, 86, 87, 88, 89, 90,
91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
- 121, 122, 123, 124, 125, 654, 655, 656, 657, 658,
- 659, 660, 661, 790, 126, 127, 128, 129, 130, 791,
- 131, 132, 133, 792, 793, 134, 135, 136, 137, 138,
+ 121, 122, 123, 124, 125, 660, 661, 662, 663, 664,
+ 665, 666, 667, 796, 126, 127, 128, 129, 130, 797,
+ 131, 132, 133, 798, 799, 134, 135, 136, 137, 138,
139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
- 159, 794, 795, 796, 160, 614, 797, 161, 162, 163,
- 164, 165, 166, 167, 798, 168, 169, 170, 171, 172,
- 173, 174, 175, 176, 177, 178, 179, 180, 181, 614,
- 799, 739, 740, 741, 742, 743, 744, 745, 746, 747,
- 748, 749, 750, 751, 752, 753, 754, 755, 756, 757,
+ 159, 800, 801, 802, 160, 620, 803, 161, 162, 163,
+ 164, 165, 166, 167, 804, 168, 169, 170, 171, 172,
+ 173, 174, 175, 176, 177, 178, 179, 180, 181, 620,
+ 745, 746, 747, 748, 749, 750, 751, 752, 753, 754,
+ 755, 756, 757, 758, 759, 760, 761, 762, 763, 805,
182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
- 222, 223, 224, 225, 226, 800, 227, 801, 228, 229,
+ 222, 223, 224, 225, 226, 806, 227, 807, 228, 229,
230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
- 240, 241, 242, 243, 244, 245, 246, 758, 802, 759,
- 803, 804, 805, 806, 807, 808, 809, 810, 247, 248,
- 249, 250, 251, 252, 253, 254, 255, 256, 567, 811,
- 568, 569, 812, 813, 2, 814, 815, 816, 817, 818,
- 819, 820, 821, 584, 0, 3, 4, 822, 257, 823,
- 824, 585, 586, 825, 826, 827, 258, 259, 828, 260,
- 261, 648, 262, 263, 264, 265, 266, 829, 830, 267,
+ 240, 241, 242, 243, 244, 245, 246, 764, 808, 765,
+ 809, 810, 811, 812, 813, 814, 815, 816, 247, 248,
+ 249, 250, 251, 252, 253, 254, 255, 256, 817, 818,
+ 819, 820, 590, 821, 573, 2, 574, 575, 822, 823,
+ 591, 592, 824, 825, 826, 0, 3, 4, 257, 827,
+ 828, 829, 830, 831, 832, 833, 258, 259, 834, 260,
+ 261, 835, 262, 263, 264, 265, 266, 836, 837, 267,
268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
- 278, 279, 5, 831, 832, 280, 833, 834, 6, 835,
- 836, 837, 838, 570, 281, 282, 283, 284, 599, 839,
- 840, 285, 286, 287, 288, 289, 290, 291, 292, 293,
- 294, 295, 296, 297, 298, 841, 299, 842, 300, 301,
- 302, 303, 304, 305, 306, 843, 571, 844, 845, 572,
- 846, 847, 7, 848, 600, 601, 849, 850, 573, 851,
- 587, 852, 588, 853, 854, 589, 855, 856, 857, 858,
- 8, 859, 616, 617, 618, 619, 860, 861, 862, 863,
- 864, 602, 621, 718, 719, 720, 721, 722, 723, 724,
- 725, 726, 727, 865, 615, 866, 616, 617, 618, 619,
- 620, 867, 868, 869, 870, 871, 621, 872, 635, 636,
- 637, 638, 639, 873, 874, 875, 876, 877, 878, 879,
- 880, 640, 881, 882, 883, 884, 9, 885, 886, 887,
- 888, 889, 890, 891, 892, 893, 894, 895, 896, 897,
- 898, 899, 900, 622, 623, 671, 672, 673, 674, 675,
- 676, 677, 678, 679, 680, 681, 682, 683, 684, 685,
- 686, 687, 688, 689, 690, 603, 604, 901, 902, 903,
- 904, 905, 906, 907, 908, 909, 910, 911, 912, 913,
- 914, 915, 916, 917, 918, 919, 920, 921, 922, 923,
- 924, 925, 10, 926, 927, 928, 929, 930, 931, 932,
- 933, 934, 935, 936, 937, 938, 939, 940, 941, 942,
- 943, 605, 944, 945, 11, 946, 947, 948, 949, 950,
- 951, 952, 574, 953, 954, 955, 956, 957, 958, 959,
- 960, 961, 962, 963, 964, 12, 590, 965, 966, 967,
- 968, 969, 970, 971, 972, 973, 974, 975, 976, 977,
- 978, 979, 980, 981, 982, 983, 984, 13, 985, 986,
- 987, 988, 989, 990, 991, 992, 993, 994, 995, 996,
- 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006,
- 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 14,
- 1016, 1017, 1018, 15, 1019, 1020, 1021, 1022, 1023, 16,
- 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033,
- 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043,
- 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053,
- 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063,
- 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073,
- 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083,
- 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093,
- 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103,
- 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113,
- 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123,
- 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133,
- 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143,
- 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153,
- 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163,
- 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173,
- 1174, 1175, 1176, 0, 0, 0, 0, 0, 0, 0,
+ 278, 279, 280, 5, 838, 839, 281, 840, 841, 6,
+ 842, 843, 844, 845, 846, 282, 283, 284, 285, 576,
+ 605, 847, 286, 287, 288, 289, 290, 291, 292, 293,
+ 294, 295, 296, 297, 298, 299, 848, 300, 849, 301,
+ 302, 303, 304, 305, 306, 307, 308, 309, 850, 593,
+ 851, 594, 577, 7, 595, 578, 606, 607, 852, 853,
+ 854, 855, 856, 857, 579, 858, 859, 860, 861, 862,
+ 863, 8, 622, 623, 624, 625, 864, 865, 866, 867,
+ 868, 869, 627, 608, 724, 725, 726, 727, 728, 729,
+ 730, 731, 732, 733, 621, 870, 622, 623, 624, 625,
+ 626, 871, 872, 873, 874, 875, 627, 876, 877, 641,
+ 642, 643, 644, 645, 878, 879, 880, 881, 882, 883,
+ 884, 885, 646, 886, 887, 888, 889, 9, 890, 891,
+ 892, 893, 894, 895, 896, 897, 898, 899, 900, 901,
+ 902, 903, 904, 905, 628, 629, 906, 677, 678, 679,
+ 680, 681, 682, 683, 684, 685, 686, 687, 688, 689,
+ 690, 691, 692, 693, 694, 695, 696, 609, 610, 907,
+ 908, 909, 910, 911, 912, 913, 914, 915, 916, 917,
+ 918, 919, 920, 921, 922, 923, 924, 925, 926, 927,
+ 928, 929, 930, 10, 931, 932, 933, 934, 935, 936,
+ 937, 938, 939, 940, 941, 942, 943, 944, 945, 946,
+ 947, 948, 949, 611, 950, 11, 951, 952, 953, 954,
+ 955, 956, 957, 958, 959, 596, 960, 961, 580, 962,
+ 963, 964, 965, 966, 967, 968, 12, 969, 970, 971,
+ 972, 973, 974, 975, 976, 977, 978, 979, 980, 981,
+ 982, 983, 984, 985, 986, 987, 988, 989, 13, 990,
+ 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000,
+ 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010,
+ 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020,
+ 1021, 14, 1022, 1023, 1024, 15, 1025, 1026, 1027, 1028,
+ 1029, 16, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037,
+ 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047,
+ 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057,
+ 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067,
+ 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077,
+ 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087,
+ 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097,
+ 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107,
+ 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117,
+ 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127,
+ 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137,
+ 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147,
+ 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157,
+ 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167,
+ 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177,
+ 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 649, 650, 651, 652, 653
+ 0, 0, 0, 0, 0, 0, 0, 0, 654, 655,
+ 656, 657, 658, 659
};
static const yytype_int16 yycheck[] =
@@ -2196,7 +2250,7 @@ static const yytype_int16 yycheck[] =
13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, 46, 336, 337, 117, 346, 51, 52,
+ 43, 44, 45, 46, 337, 338, 117, 347, 51, 52,
53, 10, 10, 10, 57, 58, 59, 60, 61, 62,
63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
@@ -2209,53 +2263,53 @@ static const yytype_int16 yycheck[] =
143, 10, 10, 10, 147, 47, 10, 150, 151, 152,
153, 154, 155, 156, 10, 158, 159, 160, 161, 162,
163, 164, 165, 166, 167, 168, 169, 170, 171, 47,
- 10, 282, 283, 284, 285, 286, 287, 288, 289, 290,
- 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
+ 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
+ 292, 293, 294, 295, 296, 297, 298, 299, 300, 10,
193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
203, 204, 205, 206, 207, 208, 209, 210, 211, 212,
213, 214, 215, 216, 217, 218, 219, 220, 221, 222,
223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
233, 234, 235, 236, 237, 10, 239, 10, 241, 242,
243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
- 253, 254, 255, 256, 257, 258, 259, 368, 10, 370,
+ 253, 254, 255, 256, 257, 258, 259, 369, 10, 371,
10, 10, 10, 10, 10, 10, 10, 10, 271, 272,
- 273, 274, 275, 276, 277, 278, 279, 280, 47, 10,
- 49, 50, 10, 10, 0, 10, 10, 10, 10, 10,
- 10, 10, 10, 47, -1, 11, 12, 10, 301, 10,
- 10, 55, 56, 10, 10, 10, 309, 310, 10, 312,
- 313, 40, 315, 316, 317, 318, 319, 10, 10, 322,
+ 273, 274, 275, 276, 277, 278, 279, 280, 10, 10,
+ 10, 10, 47, 10, 47, 0, 49, 50, 10, 10,
+ 55, 56, 10, 10, 10, -1, 11, 12, 301, 10,
+ 10, 10, 10, 10, 10, 10, 309, 310, 10, 312,
+ 313, 10, 315, 316, 317, 318, 319, 10, 10, 322,
323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
- 333, 334, 48, 10, 10, 338, 10, 10, 54, 10,
- 10, 10, 10, 112, 347, 348, 349, 350, 47, 10,
- 10, 354, 355, 356, 357, 358, 359, 360, 361, 362,
- 363, 364, 365, 366, 367, 10, 369, 10, 371, 372,
- 373, 374, 375, 376, 377, 10, 145, 10, 10, 148,
- 10, 10, 98, 10, 83, 84, 10, 10, 157, 10,
- 144, 10, 146, 10, 10, 149, 10, 10, 10, 10,
- 116, 10, 304, 305, 306, 307, 10, 10, 10, 10,
- 10, 110, 314, 261, 262, 263, 264, 265, 266, 267,
- 268, 269, 270, 10, 302, 10, 304, 305, 306, 307,
- 308, 10, 10, 10, 10, 10, 314, 10, 340, 341,
- 342, 343, 344, 10, 10, 10, 10, 10, 10, 10,
- 10, 353, 10, 10, 10, 10, 172, 10, 10, 10,
+ 333, 334, 335, 48, 10, 10, 339, 10, 10, 54,
+ 10, 10, 10, 10, 10, 348, 349, 350, 351, 112,
+ 47, 10, 355, 356, 357, 358, 359, 360, 361, 362,
+ 363, 364, 365, 366, 367, 368, 10, 370, 10, 372,
+ 373, 374, 375, 376, 377, 378, 379, 380, 10, 144,
+ 10, 146, 145, 98, 149, 148, 83, 84, 10, 10,
+ 10, 10, 10, 10, 157, 10, 10, 10, 10, 10,
+ 10, 116, 304, 305, 306, 307, 10, 10, 10, 10,
+ 10, 10, 314, 110, 261, 262, 263, 264, 265, 266,
+ 267, 268, 269, 270, 302, 10, 304, 305, 306, 307,
+ 308, 10, 10, 10, 10, 10, 314, 10, 10, 341,
+ 342, 343, 344, 345, 10, 10, 10, 10, 10, 10,
+ 10, 10, 354, 10, 10, 10, 10, 172, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
- 10, 10, 10, 351, 352, 173, 174, 175, 176, 177,
- 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
- 188, 189, 190, 191, 192, 194, 195, 10, 10, 10,
+ 10, 10, 10, 10, 352, 353, 10, 173, 174, 175,
+ 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
+ 186, 187, 188, 189, 190, 191, 192, 194, 195, 10,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
- 10, 10, 238, 10, 10, 10, 10, 10, 10, 10,
+ 10, 10, 10, 238, 10, 10, 10, 10, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
- 10, 240, 10, 10, 260, 10, 10, 10, 10, 10,
- 10, 10, 321, 10, 10, 10, 10, 10, 10, 10,
- 10, 10, 10, 10, 10, 281, 320, 10, 10, 10,
+ 10, 10, 10, 240, 10, 260, 10, 10, 10, 10,
+ 10, 10, 10, 10, 10, 320, 10, 10, 321, 10,
+ 10, 10, 10, 10, 10, 10, 281, 10, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
- 10, 10, 10, 10, 10, 10, 10, 303, 10, 10,
+ 10, 10, 10, 10, 10, 10, 10, 10, 303, 10,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
- 10, 10, 10, 10, 10, 10, 10, 10, 10, 335,
- 10, 10, 10, 339, 10, 10, 10, 10, 10, 345,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ 10, 336, 10, 10, 10, 340, 10, 10, 10, 10,
+ 10, 346, 10, 10, 10, 10, 10, 10, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
@@ -2270,21 +2324,22 @@ static const yytype_int16 yycheck[] =
10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
- 10, 10, 10, -1, -1, -1, -1, -1, -1, -1,
+ 10, 10, 10, 10, 10, 10, 10, 10, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 40, 40, 40, 40, 40
+ -1, -1, -1, -1, -1, -1, -1, -1, 40, 40,
+ 40, 40, 40, 40
};
-/* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
- state STATE-NUM. */
+ /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
+ symbol of state STATE-NUM. */
static const yytype_int16 yystos[] =
{
- 0, 379, 0, 11, 12, 48, 54, 98, 116, 172,
- 238, 260, 281, 303, 335, 339, 345, 380, 381, 382,
- 385, 386, 389, 390, 393, 394, 397, 406, 688, 699,
- 722, 726, 734, 747, 779, 383, 387, 391, 395, 398,
- 407, 689, 700, 723, 727, 735, 748, 780, 13, 14,
+ 0, 382, 0, 11, 12, 48, 54, 98, 116, 172,
+ 238, 260, 281, 303, 336, 340, 346, 383, 384, 385,
+ 388, 389, 392, 393, 396, 397, 400, 409, 693, 704,
+ 727, 731, 739, 752, 785, 386, 390, 394, 398, 401,
+ 410, 694, 705, 728, 732, 740, 753, 786, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
@@ -2308,10 +2363,10 @@ static const yytype_int16 yystos[] =
274, 275, 276, 277, 278, 279, 280, 301, 309, 310,
312, 313, 315, 316, 317, 318, 319, 322, 323, 324,
325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
- 338, 347, 348, 349, 350, 354, 355, 356, 357, 358,
- 359, 360, 361, 362, 363, 364, 365, 366, 367, 369,
- 371, 372, 373, 374, 375, 376, 377, 384, 409, 410,
- 411, 412, 413, 414, 415, 416, 417, 418, 419, 420,
+ 335, 339, 348, 349, 350, 351, 355, 356, 357, 358,
+ 359, 360, 361, 362, 363, 364, 365, 366, 367, 368,
+ 370, 372, 373, 374, 375, 376, 377, 378, 379, 380,
+ 387, 412, 413, 414, 415, 416, 417, 418, 419, 420,
421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
431, 432, 433, 434, 435, 436, 437, 438, 439, 440,
441, 442, 443, 444, 445, 446, 447, 448, 449, 450,
@@ -2335,30 +2390,31 @@ static const yytype_int16 yystos[] =
621, 622, 623, 624, 625, 626, 627, 628, 629, 630,
631, 632, 633, 634, 635, 636, 637, 638, 639, 640,
641, 642, 643, 644, 645, 646, 647, 648, 649, 650,
- 651, 652, 653, 654, 655, 730, 731, 732, 733, 771,
- 772, 773, 774, 775, 776, 777, 778, 47, 49, 50,
- 112, 145, 148, 157, 321, 388, 656, 657, 658, 659,
- 660, 661, 662, 663, 47, 55, 56, 144, 146, 149,
- 320, 392, 664, 665, 666, 667, 668, 669, 670, 47,
- 83, 84, 110, 194, 195, 240, 396, 681, 682, 683,
- 684, 685, 686, 687, 47, 302, 304, 305, 306, 307,
- 308, 314, 351, 352, 399, 671, 672, 673, 674, 675,
- 676, 677, 678, 679, 680, 340, 341, 342, 343, 344,
- 353, 400, 401, 402, 403, 404, 405, 408, 671, 672,
- 673, 674, 675, 678, 99, 100, 101, 102, 103, 104,
- 105, 106, 690, 691, 692, 693, 694, 695, 696, 697,
- 698, 173, 174, 175, 176, 177, 178, 179, 180, 181,
- 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
- 192, 701, 702, 703, 704, 705, 706, 707, 708, 709,
- 710, 711, 712, 713, 714, 715, 716, 717, 718, 719,
- 720, 721, 117, 724, 725, 346, 728, 729, 261, 262,
- 263, 264, 265, 266, 267, 268, 269, 270, 736, 737,
- 738, 739, 740, 741, 742, 743, 744, 745, 746, 282,
- 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
- 293, 294, 295, 296, 297, 298, 299, 300, 368, 370,
- 749, 750, 751, 752, 753, 754, 755, 756, 757, 758,
- 759, 760, 761, 762, 763, 764, 765, 766, 767, 768,
- 769, 770, 336, 337, 781, 782, 783, 10, 10, 10,
+ 651, 652, 653, 654, 655, 656, 657, 658, 659, 660,
+ 735, 736, 737, 738, 776, 777, 778, 779, 780, 781,
+ 782, 783, 784, 47, 49, 50, 112, 145, 148, 157,
+ 321, 391, 661, 662, 663, 664, 665, 666, 667, 668,
+ 47, 55, 56, 144, 146, 149, 320, 395, 669, 670,
+ 671, 672, 673, 674, 675, 47, 83, 84, 110, 194,
+ 195, 240, 399, 686, 687, 688, 689, 690, 691, 692,
+ 47, 302, 304, 305, 306, 307, 308, 314, 352, 353,
+ 402, 676, 677, 678, 679, 680, 681, 682, 683, 684,
+ 685, 341, 342, 343, 344, 345, 354, 403, 404, 405,
+ 406, 407, 408, 411, 676, 677, 678, 679, 680, 683,
+ 99, 100, 101, 102, 103, 104, 105, 106, 695, 696,
+ 697, 698, 699, 700, 701, 702, 703, 173, 174, 175,
+ 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
+ 186, 187, 188, 189, 190, 191, 192, 706, 707, 708,
+ 709, 710, 711, 712, 713, 714, 715, 716, 717, 718,
+ 719, 720, 721, 722, 723, 724, 725, 726, 117, 729,
+ 730, 347, 733, 734, 261, 262, 263, 264, 265, 266,
+ 267, 268, 269, 270, 741, 742, 743, 744, 745, 746,
+ 747, 748, 749, 750, 751, 282, 283, 284, 285, 286,
+ 287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
+ 297, 298, 299, 300, 369, 371, 754, 755, 756, 757,
+ 758, 759, 760, 761, 762, 763, 764, 765, 766, 767,
+ 768, 769, 770, 771, 772, 773, 774, 775, 337, 338,
+ 787, 788, 789, 10, 10, 10, 10, 10, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
@@ -2397,48 +2453,48 @@ static const yytype_int16 yystos[] =
10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
- 10, 10, 10, 10, 10, 10, 10
+ 10, 10, 10, 10, 10, 10
};
-/* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */
+ /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const yytype_int16 yyr1[] =
{
- 0, 378, 379, 379, 380, 380, 380, 380, 380, 380,
- 380, 380, 380, 380, 380, 380, 380, 380, 381, 382,
- 383, 383, 384, 384, 384, 384, 384, 384, 384, 384,
- 384, 384, 384, 384, 384, 384, 384, 384, 384, 384,
- 384, 384, 384, 384, 384, 384, 384, 384, 384, 384,
- 384, 384, 384, 384, 384, 384, 384, 384, 384, 384,
- 384, 384, 384, 384, 384, 384, 384, 384, 384, 384,
- 384, 384, 384, 384, 384, 384, 384, 384, 384, 384,
- 384, 384, 384, 384, 384, 384, 384, 384, 384, 384,
- 384, 384, 384, 384, 384, 384, 384, 384, 384, 384,
- 384, 384, 384, 384, 384, 384, 384, 384, 384, 384,
- 384, 384, 384, 384, 384, 384, 384, 384, 384, 384,
- 384, 384, 384, 384, 384, 384, 384, 384, 384, 384,
- 384, 384, 384, 384, 384, 384, 384, 384, 384, 384,
- 384, 384, 384, 384, 384, 384, 384, 384, 384, 384,
- 384, 384, 384, 384, 384, 384, 384, 384, 384, 384,
- 384, 384, 384, 384, 384, 384, 384, 384, 384, 384,
- 384, 384, 384, 384, 384, 384, 384, 384, 384, 384,
- 384, 384, 384, 384, 384, 384, 384, 384, 384, 384,
- 384, 384, 384, 384, 384, 384, 384, 384, 384, 384,
- 384, 384, 384, 384, 384, 384, 384, 384, 384, 384,
- 384, 384, 384, 384, 384, 384, 384, 384, 384, 384,
- 384, 384, 384, 384, 384, 384, 384, 384, 384, 384,
- 384, 384, 384, 384, 384, 384, 384, 384, 384, 384,
- 384, 384, 384, 384, 384, 384, 384, 384, 384, 384,
- 384, 384, 384, 384, 384, 384, 384, 384, 384, 384,
- 384, 384, 384, 384, 384, 384, 384, 384, 384, 384,
- 384, 384, 384, 384, 384, 384, 384, 384, 384, 384,
- 384, 385, 386, 387, 387, 388, 388, 388, 388, 388,
- 388, 388, 388, 389, 390, 391, 391, 392, 392, 392,
- 392, 392, 392, 392, 393, 394, 395, 395, 396, 396,
- 396, 396, 396, 396, 396, 397, 398, 398, 399, 399,
- 399, 399, 399, 399, 399, 399, 399, 399, 400, 401,
- 402, 403, 404, 405, 406, 407, 407, 408, 408, 408,
- 408, 408, 408, 408, 408, 408, 408, 408, 408, 409,
- 410, 411, 412, 413, 414, 415, 416, 417, 418, 419,
+ 0, 381, 382, 382, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383, 384, 385,
+ 386, 386, 387, 387, 387, 387, 387, 387, 387, 387,
+ 387, 387, 387, 387, 387, 387, 387, 387, 387, 387,
+ 387, 387, 387, 387, 387, 387, 387, 387, 387, 387,
+ 387, 387, 387, 387, 387, 387, 387, 387, 387, 387,
+ 387, 387, 387, 387, 387, 387, 387, 387, 387, 387,
+ 387, 387, 387, 387, 387, 387, 387, 387, 387, 387,
+ 387, 387, 387, 387, 387, 387, 387, 387, 387, 387,
+ 387, 387, 387, 387, 387, 387, 387, 387, 387, 387,
+ 387, 387, 387, 387, 387, 387, 387, 387, 387, 387,
+ 387, 387, 387, 387, 387, 387, 387, 387, 387, 387,
+ 387, 387, 387, 387, 387, 387, 387, 387, 387, 387,
+ 387, 387, 387, 387, 387, 387, 387, 387, 387, 387,
+ 387, 387, 387, 387, 387, 387, 387, 387, 387, 387,
+ 387, 387, 387, 387, 387, 387, 387, 387, 387, 387,
+ 387, 387, 387, 387, 387, 387, 387, 387, 387, 387,
+ 387, 387, 387, 387, 387, 387, 387, 387, 387, 387,
+ 387, 387, 387, 387, 387, 387, 387, 387, 387, 387,
+ 387, 387, 387, 387, 387, 387, 387, 387, 387, 387,
+ 387, 387, 387, 387, 387, 387, 387, 387, 387, 387,
+ 387, 387, 387, 387, 387, 387, 387, 387, 387, 387,
+ 387, 387, 387, 387, 387, 387, 387, 387, 387, 387,
+ 387, 387, 387, 387, 387, 387, 387, 387, 387, 387,
+ 387, 387, 387, 387, 387, 387, 387, 387, 387, 387,
+ 387, 387, 387, 387, 387, 387, 387, 387, 387, 387,
+ 387, 387, 387, 387, 387, 387, 387, 387, 387, 387,
+ 387, 387, 387, 387, 387, 387, 387, 387, 387, 387,
+ 387, 387, 387, 387, 388, 389, 390, 390, 391, 391,
+ 391, 391, 391, 391, 391, 391, 392, 393, 394, 394,
+ 395, 395, 395, 395, 395, 395, 395, 396, 397, 398,
+ 398, 399, 399, 399, 399, 399, 399, 399, 400, 401,
+ 401, 402, 402, 402, 402, 402, 402, 402, 402, 402,
+ 402, 403, 404, 405, 406, 407, 408, 409, 410, 410,
+ 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
+ 411, 411, 412, 413, 414, 415, 416, 417, 418, 419,
420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
430, 431, 432, 433, 434, 435, 436, 437, 438, 439,
440, 441, 442, 443, 444, 445, 446, 447, 448, 449,
@@ -2466,25 +2522,26 @@ static const yytype_int16 yyr1[] =
660, 661, 662, 663, 664, 665, 666, 667, 668, 669,
670, 671, 672, 673, 674, 675, 676, 677, 678, 679,
680, 681, 682, 683, 684, 685, 686, 687, 688, 689,
- 689, 690, 690, 690, 690, 690, 690, 690, 690, 691,
- 692, 693, 694, 695, 696, 697, 698, 699, 700, 700,
- 701, 701, 701, 701, 701, 701, 701, 701, 701, 701,
- 701, 701, 701, 701, 701, 701, 701, 701, 701, 701,
- 702, 703, 704, 705, 706, 707, 708, 709, 710, 711,
+ 690, 691, 692, 693, 694, 694, 695, 695, 695, 695,
+ 695, 695, 695, 695, 696, 697, 698, 699, 700, 701,
+ 702, 703, 704, 705, 705, 706, 706, 706, 706, 706,
+ 706, 706, 706, 706, 706, 706, 706, 706, 706, 706,
+ 706, 706, 706, 706, 706, 707, 708, 709, 710, 711,
712, 713, 714, 715, 716, 717, 718, 719, 720, 721,
- 722, 723, 723, 724, 725, 726, 727, 727, 728, 729,
- 730, 731, 732, 733, 734, 735, 735, 736, 736, 736,
- 736, 736, 736, 736, 736, 736, 736, 737, 738, 739,
- 740, 741, 742, 743, 744, 745, 746, 747, 748, 748,
- 749, 749, 749, 749, 749, 749, 749, 749, 749, 749,
- 749, 749, 749, 749, 749, 749, 749, 749, 749, 749,
- 749, 750, 751, 752, 753, 754, 755, 756, 757, 758,
+ 722, 723, 724, 725, 726, 727, 728, 728, 729, 730,
+ 731, 732, 732, 733, 734, 735, 736, 737, 738, 739,
+ 740, 740, 741, 741, 741, 741, 741, 741, 741, 741,
+ 741, 741, 742, 743, 744, 745, 746, 747, 748, 749,
+ 750, 751, 752, 753, 753, 754, 754, 754, 754, 754,
+ 754, 754, 754, 754, 754, 754, 754, 754, 754, 754,
+ 754, 754, 754, 754, 754, 754, 755, 756, 757, 758,
759, 760, 761, 762, 763, 764, 765, 766, 767, 768,
769, 770, 771, 772, 773, 774, 775, 776, 777, 778,
- 779, 780, 780, 781, 781, 782, 783
+ 779, 780, 781, 782, 783, 784, 785, 786, 786, 787,
+ 787, 788, 789
};
-/* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. */
+ /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
static const yytype_int8 yyr2[] =
{
0, 2, 0, 2, 2, 1, 1, 2, 2, 2,
@@ -2515,14 +2572,14 @@ static const yytype_int8 yyr2[] =
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 2, 1, 2, 0, 1, 1, 1, 1, 1,
- 1, 1, 1, 2, 1, 2, 0, 1, 1, 1,
1, 1, 1, 1, 2, 1, 2, 0, 1, 1,
- 1, 1, 1, 1, 1, 1, 2, 0, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 2, 2,
- 2, 2, 2, 2, 1, 2, 0, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 1, 1, 1, 1, 1, 1, 2, 1, 2, 0,
+ 1, 1, 1, 1, 1, 1, 1, 2, 1, 2,
+ 0, 1, 1, 1, 1, 1, 1, 1, 1, 2,
+ 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 2, 2, 2, 2, 2, 2, 1, 2, 0,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -2536,36 +2593,37 @@ static const yytype_int8 yyr2[] =
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 3, 3, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 3, 3, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 3, 2, 2, 2, 2, 2, 2, 2,
- 2, 3, 3, 2, 2, 2, 2, 2, 2, 3,
- 3, 4, 4, 4, 3, 3, 4, 4, 3, 3,
- 2, 2, 2, 2, 2, 2, 2, 3, 3, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 3, 2, 2,
+ 2, 2, 2, 2, 2, 2, 3, 3, 2, 2,
+ 2, 2, 2, 2, 3, 3, 4, 4, 4, 3,
+ 3, 4, 4, 3, 3, 2, 2, 2, 2, 2,
+ 2, 2, 3, 3, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 3, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 3, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 3, 3, 3, 2, 2, 2, 1, 2,
- 0, 1, 1, 1, 1, 1, 1, 1, 1, 2,
- 2, 2, 2, 2, 2, 2, 2, 1, 2, 0,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 2, 2, 2, 2, 2, 2, 2, 3, 3, 3,
+ 2, 2, 2, 1, 2, 0, 1, 1, 1, 1,
+ 1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
+ 2, 2, 1, 2, 0, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 1, 2, 0, 1, 2, 1, 2, 0, 1, 2,
- 2, 2, 3, 3, 1, 2, 0, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 1, 2, 0,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 2, 2, 2, 2, 2, 1, 2, 0, 1, 2,
+ 1, 2, 0, 1, 2, 2, 2, 3, 3, 1,
+ 2, 0, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 1, 2, 0, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 1, 1, 1, 1, 1, 1, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 3, 2, 2, 2, 2, 2, 2, 2,
- 1, 2, 0, 1, 1, 2, 2
+ 2, 2, 2, 2, 2, 2, 2, 3, 2, 2,
+ 2, 2, 2, 2, 2, 2, 1, 2, 0, 1,
+ 1, 2, 2
};
@@ -2577,7 +2635,6 @@ enum { YYENOMEM = -2 };
#define YYACCEPT goto yyacceptlab
#define YYABORT goto yyabortlab
#define YYERROR goto yyerrorlab
-#define YYNOMEM goto yyexhaustedlab
#define YYRECOVERING() (!!yyerrstatus)
@@ -2618,7 +2675,10 @@ do { \
YYFPRINTF Args; \
} while (0)
-
+/* This macro is provided for backward compatibility. */
+# ifndef YY_LOCATION_PRINT
+# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
+# endif
# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \
@@ -2645,6 +2705,10 @@ yy_symbol_value_print (FILE *yyo,
YY_USE (yyoutput);
if (!yyvaluep)
return;
+# ifdef YYPRINT
+ if (yykind < YYNTOKENS)
+ YYPRINT (yyo, yytoknum[yykind], *yyvaluep);
+# endif
YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
YY_USE (yykind);
YY_IGNORE_MAYBE_UNINITIALIZED_END
@@ -2829,7 +2893,6 @@ yyparse (void)
YYDPRINTF ((stderr, "Starting parse\n"));
yychar = YYEMPTY; /* Cause a token to be read. */
-
goto yysetstate;
@@ -2855,7 +2918,7 @@ yysetstate:
if (yyss + yystacksize - 1 <= yyssp)
#if !defined yyoverflow && !defined YYSTACK_RELOCATE
- YYNOMEM;
+ goto yyexhaustedlab;
#else
{
/* Get the current used size of the three stacks, in elements. */
@@ -2883,7 +2946,7 @@ yysetstate:
# else /* defined YYSTACK_RELOCATE */
/* Extend the stack our own way. */
if (YYMAXDEPTH <= yystacksize)
- YYNOMEM;
+ goto yyexhaustedlab;
yystacksize *= 2;
if (YYMAXDEPTH < yystacksize)
yystacksize = YYMAXDEPTH;
@@ -2894,7 +2957,7 @@ yysetstate:
YY_CAST (union yyalloc *,
YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
if (! yyptr)
- YYNOMEM;
+ goto yyexhaustedlab;
YYSTACK_RELOCATE (yyss_alloc, yyss);
YYSTACK_RELOCATE (yyvs_alloc, yyvs);
# undef YYSTACK_RELOCATE
@@ -2916,7 +2979,6 @@ yysetstate:
}
#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
-
if (yystate == YYFINAL)
YYACCEPT;
@@ -3029,36 +3091,36 @@ yyreduce:
switch (yyn)
{
case 18: /* force_toplevel: VAR_FORCE_TOPLEVEL */
-#line 231 "util/configparser.y"
+#line 233 "util/configparser.y"
{
OUTYY(("\nP(force-toplevel)\n"));
cfg_parser->started_toplevel = 0;
}
-#line 3038 "util/configparser.c"
+#line 3100 "util/configparser.c"
break;
case 19: /* serverstart: VAR_SERVER */
-#line 238 "util/configparser.y"
+#line 240 "util/configparser.y"
{
OUTYY(("\nP(server:)\n"));
cfg_parser->started_toplevel = 1;
}
-#line 3047 "util/configparser.c"
+#line 3109 "util/configparser.c"
break;
- case 281: /* stub_clause: stubstart contents_stub */
-#line 363 "util/configparser.y"
+ case 284: /* stub_clause: stubstart contents_stub */
+#line 366 "util/configparser.y"
{
/* stub end */
if(cfg_parser->cfg->stubs &&
!cfg_parser->cfg->stubs->name)
yyerror("stub-zone without name");
}
-#line 3058 "util/configparser.c"
+#line 3120 "util/configparser.c"
break;
- case 282: /* stubstart: VAR_STUB_ZONE */
-#line 371 "util/configparser.y"
+ case 285: /* stubstart: VAR_STUB_ZONE */
+#line 374 "util/configparser.y"
{
struct config_stub* s;
OUTYY(("\nP(stub_zone:)\n"));
@@ -3071,22 +3133,22 @@ yyreduce:
yyerror("out of memory");
}
}
-#line 3075 "util/configparser.c"
+#line 3137 "util/configparser.c"
break;
- case 293: /* forward_clause: forwardstart contents_forward */
-#line 390 "util/configparser.y"
+ case 296: /* forward_clause: forwardstart contents_forward */
+#line 393 "util/configparser.y"
{
/* forward end */
if(cfg_parser->cfg->forwards &&
!cfg_parser->cfg->forwards->name)
yyerror("forward-zone without name");
}
-#line 3086 "util/configparser.c"
+#line 3148 "util/configparser.c"
break;
- case 294: /* forwardstart: VAR_FORWARD_ZONE */
-#line 398 "util/configparser.y"
+ case 297: /* forwardstart: VAR_FORWARD_ZONE */
+#line 401 "util/configparser.y"
{
struct config_stub* s;
OUTYY(("\nP(forward_zone:)\n"));
@@ -3099,22 +3161,22 @@ yyreduce:
yyerror("out of memory");
}
}
-#line 3103 "util/configparser.c"
+#line 3165 "util/configparser.c"
break;
- case 304: /* view_clause: viewstart contents_view */
-#line 417 "util/configparser.y"
+ case 307: /* view_clause: viewstart contents_view */
+#line 420 "util/configparser.y"
{
/* view end */
if(cfg_parser->cfg->views &&
!cfg_parser->cfg->views->name)
yyerror("view without name");
}
-#line 3114 "util/configparser.c"
+#line 3176 "util/configparser.c"
break;
- case 305: /* viewstart: VAR_VIEW */
-#line 425 "util/configparser.y"
+ case 308: /* viewstart: VAR_VIEW */
+#line 428 "util/configparser.y"
{
struct config_view* s;
OUTYY(("\nP(view:)\n"));
@@ -3127,11 +3189,11 @@ yyreduce:
yyerror("out of memory");
}
}
-#line 3131 "util/configparser.c"
+#line 3193 "util/configparser.c"
break;
- case 315: /* authstart: VAR_AUTH_ZONE */
-#line 444 "util/configparser.y"
+ case 318: /* authstart: VAR_AUTH_ZONE */
+#line 447 "util/configparser.y"
{
struct config_auth* s;
OUTYY(("\nP(auth_zone:)\n"));
@@ -3151,11 +3213,11 @@ yyreduce:
yyerror("out of memory");
}
}
-#line 3155 "util/configparser.c"
+#line 3217 "util/configparser.c"
break;
- case 328: /* rpz_tag: VAR_TAGS STRING_ARG */
-#line 472 "util/configparser.y"
+ case 331: /* rpz_tag: VAR_TAGS STRING_ARG */
+#line 475 "util/configparser.y"
{
uint8_t* bitlist;
size_t len = 0;
@@ -3172,11 +3234,11 @@ yyreduce:
}
}
-#line 3176 "util/configparser.c"
+#line 3238 "util/configparser.c"
break;
- case 329: /* rpz_action_override: VAR_RPZ_ACTION_OVERRIDE STRING_ARG */
-#line 491 "util/configparser.y"
+ case 332: /* rpz_action_override: VAR_RPZ_ACTION_OVERRIDE STRING_ARG */
+#line 494 "util/configparser.y"
{
OUTYY(("P(rpz_action_override:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "nxdomain")!=0 && strcmp((yyvsp[0].str), "nodata")!=0 &&
@@ -3191,21 +3253,21 @@ yyreduce:
cfg_parser->cfg->auths->rpz_action_override = (yyvsp[0].str);
}
}
-#line 3195 "util/configparser.c"
+#line 3257 "util/configparser.c"
break;
- case 330: /* rpz_cname_override: VAR_RPZ_CNAME_OVERRIDE STRING_ARG */
-#line 508 "util/configparser.y"
+ case 333: /* rpz_cname_override: VAR_RPZ_CNAME_OVERRIDE STRING_ARG */
+#line 511 "util/configparser.y"
{
OUTYY(("P(rpz_cname_override:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->auths->rpz_cname);
cfg_parser->cfg->auths->rpz_cname = (yyvsp[0].str);
}
-#line 3205 "util/configparser.c"
+#line 3267 "util/configparser.c"
break;
- case 331: /* rpz_log: VAR_RPZ_LOG STRING_ARG */
-#line 516 "util/configparser.y"
+ case 334: /* rpz_log: VAR_RPZ_LOG STRING_ARG */
+#line 519 "util/configparser.y"
{
OUTYY(("P(rpz_log:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3213,21 +3275,21 @@ yyreduce:
else cfg_parser->cfg->auths->rpz_log = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3217 "util/configparser.c"
+#line 3279 "util/configparser.c"
break;
- case 332: /* rpz_log_name: VAR_RPZ_LOG_NAME STRING_ARG */
-#line 526 "util/configparser.y"
+ case 335: /* rpz_log_name: VAR_RPZ_LOG_NAME STRING_ARG */
+#line 529 "util/configparser.y"
{
OUTYY(("P(rpz_log_name:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->auths->rpz_log_name);
cfg_parser->cfg->auths->rpz_log_name = (yyvsp[0].str);
}
-#line 3227 "util/configparser.c"
+#line 3289 "util/configparser.c"
break;
- case 333: /* rpz_signal_nxdomain_ra: VAR_RPZ_SIGNAL_NXDOMAIN_RA STRING_ARG */
-#line 533 "util/configparser.y"
+ case 336: /* rpz_signal_nxdomain_ra: VAR_RPZ_SIGNAL_NXDOMAIN_RA STRING_ARG */
+#line 536 "util/configparser.y"
{
OUTYY(("P(rpz_signal_nxdomain_ra:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3235,11 +3297,11 @@ yyreduce:
else cfg_parser->cfg->auths->rpz_signal_nxdomain_ra = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3239 "util/configparser.c"
+#line 3301 "util/configparser.c"
break;
- case 334: /* rpzstart: VAR_RPZ */
-#line 543 "util/configparser.y"
+ case 337: /* rpzstart: VAR_RPZ */
+#line 546 "util/configparser.y"
{
struct config_auth* s;
OUTYY(("\nP(rpz:)\n"));
@@ -3257,11 +3319,11 @@ yyreduce:
yyerror("out of memory");
}
}
-#line 3261 "util/configparser.c"
+#line 3323 "util/configparser.c"
break;
- case 349: /* server_num_threads: VAR_NUM_THREADS STRING_ARG */
-#line 568 "util/configparser.y"
+ case 352: /* server_num_threads: VAR_NUM_THREADS STRING_ARG */
+#line 571 "util/configparser.y"
{
OUTYY(("P(server_num_threads:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3269,11 +3331,11 @@ yyreduce:
else cfg_parser->cfg->num_threads = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3273 "util/configparser.c"
+#line 3335 "util/configparser.c"
break;
- case 350: /* server_verbosity: VAR_VERBOSITY STRING_ARG */
-#line 577 "util/configparser.y"
+ case 353: /* server_verbosity: VAR_VERBOSITY STRING_ARG */
+#line 580 "util/configparser.y"
{
OUTYY(("P(server_verbosity:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3281,11 +3343,11 @@ yyreduce:
else cfg_parser->cfg->verbosity = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3285 "util/configparser.c"
+#line 3347 "util/configparser.c"
break;
- case 351: /* server_statistics_interval: VAR_STATISTICS_INTERVAL STRING_ARG */
-#line 586 "util/configparser.y"
+ case 354: /* server_statistics_interval: VAR_STATISTICS_INTERVAL STRING_ARG */
+#line 589 "util/configparser.y"
{
OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0)
@@ -3295,11 +3357,11 @@ yyreduce:
else cfg_parser->cfg->stat_interval = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3299 "util/configparser.c"
+#line 3361 "util/configparser.c"
break;
- case 352: /* server_statistics_cumulative: VAR_STATISTICS_CUMULATIVE STRING_ARG */
-#line 597 "util/configparser.y"
+ case 355: /* server_statistics_cumulative: VAR_STATISTICS_CUMULATIVE STRING_ARG */
+#line 600 "util/configparser.y"
{
OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3307,11 +3369,11 @@ yyreduce:
else cfg_parser->cfg->stat_cumulative = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3311 "util/configparser.c"
+#line 3373 "util/configparser.c"
break;
- case 353: /* server_extended_statistics: VAR_EXTENDED_STATISTICS STRING_ARG */
-#line 606 "util/configparser.y"
+ case 356: /* server_extended_statistics: VAR_EXTENDED_STATISTICS STRING_ARG */
+#line 609 "util/configparser.y"
{
OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3319,11 +3381,11 @@ yyreduce:
else cfg_parser->cfg->stat_extended = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3323 "util/configparser.c"
+#line 3385 "util/configparser.c"
break;
- case 354: /* server_statistics_inhibit_zero: VAR_STATISTICS_INHIBIT_ZERO STRING_ARG */
-#line 615 "util/configparser.y"
+ case 357: /* server_statistics_inhibit_zero: VAR_STATISTICS_INHIBIT_ZERO STRING_ARG */
+#line 618 "util/configparser.y"
{
OUTYY(("P(server_statistics_inhibit_zero:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3331,11 +3393,11 @@ yyreduce:
else cfg_parser->cfg->stat_inhibit_zero = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3335 "util/configparser.c"
+#line 3397 "util/configparser.c"
break;
- case 355: /* server_shm_enable: VAR_SHM_ENABLE STRING_ARG */
-#line 624 "util/configparser.y"
+ case 358: /* server_shm_enable: VAR_SHM_ENABLE STRING_ARG */
+#line 627 "util/configparser.y"
{
OUTYY(("P(server_shm_enable:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3343,11 +3405,11 @@ yyreduce:
else cfg_parser->cfg->shm_enable = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3347 "util/configparser.c"
+#line 3409 "util/configparser.c"
break;
- case 356: /* server_shm_key: VAR_SHM_KEY STRING_ARG */
-#line 633 "util/configparser.y"
+ case 359: /* server_shm_key: VAR_SHM_KEY STRING_ARG */
+#line 636 "util/configparser.y"
{
OUTYY(("P(server_shm_key:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0)
@@ -3357,11 +3419,11 @@ yyreduce:
else cfg_parser->cfg->shm_key = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3361 "util/configparser.c"
+#line 3423 "util/configparser.c"
break;
- case 357: /* server_port: VAR_PORT STRING_ARG */
-#line 644 "util/configparser.y"
+ case 360: /* server_port: VAR_PORT STRING_ARG */
+#line 647 "util/configparser.y"
{
OUTYY(("P(server_port:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -3369,11 +3431,11 @@ yyreduce:
else cfg_parser->cfg->port = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3373 "util/configparser.c"
+#line 3435 "util/configparser.c"
break;
- case 358: /* server_send_client_subnet: VAR_SEND_CLIENT_SUBNET STRING_ARG */
-#line 653 "util/configparser.y"
+ case 361: /* server_send_client_subnet: VAR_SEND_CLIENT_SUBNET STRING_ARG */
+#line 656 "util/configparser.y"
{
#ifdef CLIENT_SUBNET
OUTYY(("P(server_send_client_subnet:%s)\n", (yyvsp[0].str)));
@@ -3384,11 +3446,11 @@ yyreduce:
free((yyvsp[0].str));
#endif
}
-#line 3388 "util/configparser.c"
+#line 3450 "util/configparser.c"
break;
- case 359: /* server_client_subnet_zone: VAR_CLIENT_SUBNET_ZONE STRING_ARG */
-#line 665 "util/configparser.y"
+ case 362: /* server_client_subnet_zone: VAR_CLIENT_SUBNET_ZONE STRING_ARG */
+#line 668 "util/configparser.y"
{
#ifdef CLIENT_SUBNET
OUTYY(("P(server_client_subnet_zone:%s)\n", (yyvsp[0].str)));
@@ -3400,11 +3462,11 @@ yyreduce:
free((yyvsp[0].str));
#endif
}
-#line 3404 "util/configparser.c"
+#line 3466 "util/configparser.c"
break;
- case 360: /* server_client_subnet_always_forward: VAR_CLIENT_SUBNET_ALWAYS_FORWARD STRING_ARG */
-#line 679 "util/configparser.y"
+ case 363: /* server_client_subnet_always_forward: VAR_CLIENT_SUBNET_ALWAYS_FORWARD STRING_ARG */
+#line 682 "util/configparser.y"
{
#ifdef CLIENT_SUBNET
OUTYY(("P(server_client_subnet_always_forward:%s)\n", (yyvsp[0].str)));
@@ -3418,11 +3480,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 3422 "util/configparser.c"
+#line 3484 "util/configparser.c"
break;
- case 361: /* server_client_subnet_opcode: VAR_CLIENT_SUBNET_OPCODE STRING_ARG */
-#line 694 "util/configparser.y"
+ case 364: /* server_client_subnet_opcode: VAR_CLIENT_SUBNET_OPCODE STRING_ARG */
+#line 697 "util/configparser.y"
{
#ifdef CLIENT_SUBNET
OUTYY(("P(client_subnet_opcode:%s)\n", (yyvsp[0].str)));
@@ -3432,11 +3494,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 3436 "util/configparser.c"
+#line 3498 "util/configparser.c"
break;
- case 362: /* server_max_client_subnet_ipv4: VAR_MAX_CLIENT_SUBNET_IPV4 STRING_ARG */
-#line 705 "util/configparser.y"
+ case 365: /* server_max_client_subnet_ipv4: VAR_MAX_CLIENT_SUBNET_IPV4 STRING_ARG */
+#line 708 "util/configparser.y"
{
#ifdef CLIENT_SUBNET
OUTYY(("P(max_client_subnet_ipv4:%s)\n", (yyvsp[0].str)));
@@ -3452,11 +3514,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 3456 "util/configparser.c"
+#line 3518 "util/configparser.c"
break;
- case 363: /* server_max_client_subnet_ipv6: VAR_MAX_CLIENT_SUBNET_IPV6 STRING_ARG */
-#line 722 "util/configparser.y"
+ case 366: /* server_max_client_subnet_ipv6: VAR_MAX_CLIENT_SUBNET_IPV6 STRING_ARG */
+#line 725 "util/configparser.y"
{
#ifdef CLIENT_SUBNET
OUTYY(("P(max_client_subnet_ipv6:%s)\n", (yyvsp[0].str)));
@@ -3472,11 +3534,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 3476 "util/configparser.c"
+#line 3538 "util/configparser.c"
break;
- case 364: /* server_min_client_subnet_ipv4: VAR_MIN_CLIENT_SUBNET_IPV4 STRING_ARG */
-#line 739 "util/configparser.y"
+ case 367: /* server_min_client_subnet_ipv4: VAR_MIN_CLIENT_SUBNET_IPV4 STRING_ARG */
+#line 742 "util/configparser.y"
{
#ifdef CLIENT_SUBNET
OUTYY(("P(min_client_subnet_ipv4:%s)\n", (yyvsp[0].str)));
@@ -3492,11 +3554,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 3496 "util/configparser.c"
+#line 3558 "util/configparser.c"
break;
- case 365: /* server_min_client_subnet_ipv6: VAR_MIN_CLIENT_SUBNET_IPV6 STRING_ARG */
-#line 756 "util/configparser.y"
+ case 368: /* server_min_client_subnet_ipv6: VAR_MIN_CLIENT_SUBNET_IPV6 STRING_ARG */
+#line 759 "util/configparser.y"
{
#ifdef CLIENT_SUBNET
OUTYY(("P(min_client_subnet_ipv6:%s)\n", (yyvsp[0].str)));
@@ -3512,11 +3574,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 3516 "util/configparser.c"
+#line 3578 "util/configparser.c"
break;
- case 366: /* server_max_ecs_tree_size_ipv4: VAR_MAX_ECS_TREE_SIZE_IPV4 STRING_ARG */
-#line 773 "util/configparser.y"
+ case 369: /* server_max_ecs_tree_size_ipv4: VAR_MAX_ECS_TREE_SIZE_IPV4 STRING_ARG */
+#line 776 "util/configparser.y"
{
#ifdef CLIENT_SUBNET
OUTYY(("P(max_ecs_tree_size_ipv4:%s)\n", (yyvsp[0].str)));
@@ -3530,11 +3592,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 3534 "util/configparser.c"
+#line 3596 "util/configparser.c"
break;
- case 367: /* server_max_ecs_tree_size_ipv6: VAR_MAX_ECS_TREE_SIZE_IPV6 STRING_ARG */
-#line 788 "util/configparser.y"
+ case 370: /* server_max_ecs_tree_size_ipv6: VAR_MAX_ECS_TREE_SIZE_IPV6 STRING_ARG */
+#line 791 "util/configparser.y"
{
#ifdef CLIENT_SUBNET
OUTYY(("P(max_ecs_tree_size_ipv6:%s)\n", (yyvsp[0].str)));
@@ -3548,11 +3610,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 3552 "util/configparser.c"
+#line 3614 "util/configparser.c"
break;
- case 368: /* server_interface: VAR_INTERFACE STRING_ARG */
-#line 803 "util/configparser.y"
+ case 371: /* server_interface: VAR_INTERFACE STRING_ARG */
+#line 806 "util/configparser.y"
{
OUTYY(("P(server_interface:%s)\n", (yyvsp[0].str)));
if(cfg_parser->cfg->num_ifs == 0)
@@ -3564,11 +3626,11 @@ yyreduce:
else
cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = (yyvsp[0].str);
}
-#line 3568 "util/configparser.c"
+#line 3630 "util/configparser.c"
break;
- case 369: /* server_outgoing_interface: VAR_OUTGOING_INTERFACE STRING_ARG */
-#line 816 "util/configparser.y"
+ case 372: /* server_outgoing_interface: VAR_OUTGOING_INTERFACE STRING_ARG */
+#line 819 "util/configparser.y"
{
OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[0].str)));
if(cfg_parser->cfg->num_out_ifs == 0)
@@ -3582,11 +3644,11 @@ yyreduce:
cfg_parser->cfg->out_ifs[
cfg_parser->cfg->num_out_ifs++] = (yyvsp[0].str);
}
-#line 3586 "util/configparser.c"
+#line 3648 "util/configparser.c"
break;
- case 370: /* server_outgoing_range: VAR_OUTGOING_RANGE STRING_ARG */
-#line 831 "util/configparser.y"
+ case 373: /* server_outgoing_range: VAR_OUTGOING_RANGE STRING_ARG */
+#line 834 "util/configparser.y"
{
OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -3594,11 +3656,11 @@ yyreduce:
else cfg_parser->cfg->outgoing_num_ports = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3598 "util/configparser.c"
+#line 3660 "util/configparser.c"
break;
- case 371: /* server_outgoing_port_permit: VAR_OUTGOING_PORT_PERMIT STRING_ARG */
-#line 840 "util/configparser.y"
+ case 374: /* server_outgoing_port_permit: VAR_OUTGOING_PORT_PERMIT STRING_ARG */
+#line 843 "util/configparser.y"
{
OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[0].str)));
if(!cfg_mark_ports((yyvsp[0].str), 1,
@@ -3606,11 +3668,11 @@ yyreduce:
yyerror("port number or range (\"low-high\") expected");
free((yyvsp[0].str));
}
-#line 3610 "util/configparser.c"
+#line 3672 "util/configparser.c"
break;
- case 372: /* server_outgoing_port_avoid: VAR_OUTGOING_PORT_AVOID STRING_ARG */
-#line 849 "util/configparser.y"
+ case 375: /* server_outgoing_port_avoid: VAR_OUTGOING_PORT_AVOID STRING_ARG */
+#line 852 "util/configparser.y"
{
OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[0].str)));
if(!cfg_mark_ports((yyvsp[0].str), 0,
@@ -3618,11 +3680,11 @@ yyreduce:
yyerror("port number or range (\"low-high\") expected");
free((yyvsp[0].str));
}
-#line 3622 "util/configparser.c"
+#line 3684 "util/configparser.c"
break;
- case 373: /* server_outgoing_num_tcp: VAR_OUTGOING_NUM_TCP STRING_ARG */
-#line 858 "util/configparser.y"
+ case 376: /* server_outgoing_num_tcp: VAR_OUTGOING_NUM_TCP STRING_ARG */
+#line 861 "util/configparser.y"
{
OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3630,11 +3692,11 @@ yyreduce:
else cfg_parser->cfg->outgoing_num_tcp = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3634 "util/configparser.c"
+#line 3696 "util/configparser.c"
break;
- case 374: /* server_incoming_num_tcp: VAR_INCOMING_NUM_TCP STRING_ARG */
-#line 867 "util/configparser.y"
+ case 377: /* server_incoming_num_tcp: VAR_INCOMING_NUM_TCP STRING_ARG */
+#line 870 "util/configparser.y"
{
OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3642,11 +3704,11 @@ yyreduce:
else cfg_parser->cfg->incoming_num_tcp = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3646 "util/configparser.c"
+#line 3708 "util/configparser.c"
break;
- case 375: /* server_interface_automatic: VAR_INTERFACE_AUTOMATIC STRING_ARG */
-#line 876 "util/configparser.y"
+ case 378: /* server_interface_automatic: VAR_INTERFACE_AUTOMATIC STRING_ARG */
+#line 879 "util/configparser.y"
{
OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3654,21 +3716,21 @@ yyreduce:
else cfg_parser->cfg->if_automatic = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3658 "util/configparser.c"
+#line 3720 "util/configparser.c"
break;
- case 376: /* server_interface_automatic_ports: VAR_INTERFACE_AUTOMATIC_PORTS STRING_ARG */
-#line 885 "util/configparser.y"
+ case 379: /* server_interface_automatic_ports: VAR_INTERFACE_AUTOMATIC_PORTS STRING_ARG */
+#line 888 "util/configparser.y"
{
OUTYY(("P(server_interface_automatic_ports:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->if_automatic_ports);
cfg_parser->cfg->if_automatic_ports = (yyvsp[0].str);
}
-#line 3668 "util/configparser.c"
+#line 3730 "util/configparser.c"
break;
- case 377: /* server_do_ip4: VAR_DO_IP4 STRING_ARG */
-#line 892 "util/configparser.y"
+ case 380: /* server_do_ip4: VAR_DO_IP4 STRING_ARG */
+#line 895 "util/configparser.y"
{
OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3676,11 +3738,11 @@ yyreduce:
else cfg_parser->cfg->do_ip4 = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3680 "util/configparser.c"
+#line 3742 "util/configparser.c"
break;
- case 378: /* server_do_ip6: VAR_DO_IP6 STRING_ARG */
-#line 901 "util/configparser.y"
+ case 381: /* server_do_ip6: VAR_DO_IP6 STRING_ARG */
+#line 904 "util/configparser.y"
{
OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3688,11 +3750,11 @@ yyreduce:
else cfg_parser->cfg->do_ip6 = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3692 "util/configparser.c"
+#line 3754 "util/configparser.c"
break;
- case 379: /* server_do_nat64: VAR_DO_NAT64 STRING_ARG */
-#line 910 "util/configparser.y"
+ case 382: /* server_do_nat64: VAR_DO_NAT64 STRING_ARG */
+#line 913 "util/configparser.y"
{
OUTYY(("P(server_do_nat64:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3700,11 +3762,11 @@ yyreduce:
else cfg_parser->cfg->do_nat64 = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3704 "util/configparser.c"
+#line 3766 "util/configparser.c"
break;
- case 380: /* server_do_udp: VAR_DO_UDP STRING_ARG */
-#line 919 "util/configparser.y"
+ case 383: /* server_do_udp: VAR_DO_UDP STRING_ARG */
+#line 922 "util/configparser.y"
{
OUTYY(("P(server_do_udp:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3712,11 +3774,11 @@ yyreduce:
else cfg_parser->cfg->do_udp = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3716 "util/configparser.c"
+#line 3778 "util/configparser.c"
break;
- case 381: /* server_do_tcp: VAR_DO_TCP STRING_ARG */
-#line 928 "util/configparser.y"
+ case 384: /* server_do_tcp: VAR_DO_TCP STRING_ARG */
+#line 931 "util/configparser.y"
{
OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3724,11 +3786,11 @@ yyreduce:
else cfg_parser->cfg->do_tcp = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3728 "util/configparser.c"
+#line 3790 "util/configparser.c"
break;
- case 382: /* server_prefer_ip4: VAR_PREFER_IP4 STRING_ARG */
-#line 937 "util/configparser.y"
+ case 385: /* server_prefer_ip4: VAR_PREFER_IP4 STRING_ARG */
+#line 940 "util/configparser.y"
{
OUTYY(("P(server_prefer_ip4:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3736,11 +3798,11 @@ yyreduce:
else cfg_parser->cfg->prefer_ip4 = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3740 "util/configparser.c"
+#line 3802 "util/configparser.c"
break;
- case 383: /* server_prefer_ip6: VAR_PREFER_IP6 STRING_ARG */
-#line 946 "util/configparser.y"
+ case 386: /* server_prefer_ip6: VAR_PREFER_IP6 STRING_ARG */
+#line 949 "util/configparser.y"
{
OUTYY(("P(server_prefer_ip6:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3748,11 +3810,11 @@ yyreduce:
else cfg_parser->cfg->prefer_ip6 = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3752 "util/configparser.c"
+#line 3814 "util/configparser.c"
break;
- case 384: /* server_tcp_mss: VAR_TCP_MSS STRING_ARG */
-#line 955 "util/configparser.y"
+ case 387: /* server_tcp_mss: VAR_TCP_MSS STRING_ARG */
+#line 958 "util/configparser.y"
{
OUTYY(("P(server_tcp_mss:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3760,11 +3822,11 @@ yyreduce:
else cfg_parser->cfg->tcp_mss = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3764 "util/configparser.c"
+#line 3826 "util/configparser.c"
break;
- case 385: /* server_outgoing_tcp_mss: VAR_OUTGOING_TCP_MSS STRING_ARG */
-#line 964 "util/configparser.y"
+ case 388: /* server_outgoing_tcp_mss: VAR_OUTGOING_TCP_MSS STRING_ARG */
+#line 967 "util/configparser.y"
{
OUTYY(("P(server_outgoing_tcp_mss:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3772,11 +3834,11 @@ yyreduce:
else cfg_parser->cfg->outgoing_tcp_mss = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3776 "util/configparser.c"
+#line 3838 "util/configparser.c"
break;
- case 386: /* server_tcp_idle_timeout: VAR_TCP_IDLE_TIMEOUT STRING_ARG */
-#line 973 "util/configparser.y"
+ case 389: /* server_tcp_idle_timeout: VAR_TCP_IDLE_TIMEOUT STRING_ARG */
+#line 976 "util/configparser.y"
{
OUTYY(("P(server_tcp_idle_timeout:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3788,11 +3850,11 @@ yyreduce:
else cfg_parser->cfg->tcp_idle_timeout = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3792 "util/configparser.c"
+#line 3854 "util/configparser.c"
break;
- case 387: /* server_max_reuse_tcp_queries: VAR_MAX_REUSE_TCP_QUERIES STRING_ARG */
-#line 986 "util/configparser.y"
+ case 390: /* server_max_reuse_tcp_queries: VAR_MAX_REUSE_TCP_QUERIES STRING_ARG */
+#line 989 "util/configparser.y"
{
OUTYY(("P(server_max_reuse_tcp_queries:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3802,11 +3864,11 @@ yyreduce:
else cfg_parser->cfg->max_reuse_tcp_queries = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3806 "util/configparser.c"
+#line 3868 "util/configparser.c"
break;
- case 388: /* server_tcp_reuse_timeout: VAR_TCP_REUSE_TIMEOUT STRING_ARG */
-#line 997 "util/configparser.y"
+ case 391: /* server_tcp_reuse_timeout: VAR_TCP_REUSE_TIMEOUT STRING_ARG */
+#line 1000 "util/configparser.y"
{
OUTYY(("P(server_tcp_reuse_timeout:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3816,11 +3878,11 @@ yyreduce:
else cfg_parser->cfg->tcp_reuse_timeout = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3820 "util/configparser.c"
+#line 3882 "util/configparser.c"
break;
- case 389: /* server_tcp_auth_query_timeout: VAR_TCP_AUTH_QUERY_TIMEOUT STRING_ARG */
-#line 1008 "util/configparser.y"
+ case 392: /* server_tcp_auth_query_timeout: VAR_TCP_AUTH_QUERY_TIMEOUT STRING_ARG */
+#line 1011 "util/configparser.y"
{
OUTYY(("P(server_tcp_auth_query_timeout:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3830,11 +3892,11 @@ yyreduce:
else cfg_parser->cfg->tcp_auth_query_timeout = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3834 "util/configparser.c"
+#line 3896 "util/configparser.c"
break;
- case 390: /* server_tcp_keepalive: VAR_EDNS_TCP_KEEPALIVE STRING_ARG */
-#line 1019 "util/configparser.y"
+ case 393: /* server_tcp_keepalive: VAR_EDNS_TCP_KEEPALIVE STRING_ARG */
+#line 1022 "util/configparser.y"
{
OUTYY(("P(server_tcp_keepalive:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3842,11 +3904,11 @@ yyreduce:
else cfg_parser->cfg->do_tcp_keepalive = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3846 "util/configparser.c"
+#line 3908 "util/configparser.c"
break;
- case 391: /* server_tcp_keepalive_timeout: VAR_EDNS_TCP_KEEPALIVE_TIMEOUT STRING_ARG */
-#line 1028 "util/configparser.y"
+ case 394: /* server_tcp_keepalive_timeout: VAR_EDNS_TCP_KEEPALIVE_TIMEOUT STRING_ARG */
+#line 1031 "util/configparser.y"
{
OUTYY(("P(server_tcp_keepalive_timeout:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3858,11 +3920,11 @@ yyreduce:
else cfg_parser->cfg->tcp_keepalive_timeout = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3862 "util/configparser.c"
+#line 3924 "util/configparser.c"
break;
- case 392: /* server_sock_queue_timeout: VAR_SOCK_QUEUE_TIMEOUT STRING_ARG */
-#line 1041 "util/configparser.y"
+ case 395: /* server_sock_queue_timeout: VAR_SOCK_QUEUE_TIMEOUT STRING_ARG */
+#line 1044 "util/configparser.y"
{
OUTYY(("P(server_sock_queue_timeout:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3874,11 +3936,11 @@ yyreduce:
else cfg_parser->cfg->sock_queue_timeout = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3878 "util/configparser.c"
+#line 3940 "util/configparser.c"
break;
- case 393: /* server_tcp_upstream: VAR_TCP_UPSTREAM STRING_ARG */
-#line 1054 "util/configparser.y"
+ case 396: /* server_tcp_upstream: VAR_TCP_UPSTREAM STRING_ARG */
+#line 1057 "util/configparser.y"
{
OUTYY(("P(server_tcp_upstream:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3886,11 +3948,11 @@ yyreduce:
else cfg_parser->cfg->tcp_upstream = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3890 "util/configparser.c"
+#line 3952 "util/configparser.c"
break;
- case 394: /* server_udp_upstream_without_downstream: VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM STRING_ARG */
-#line 1063 "util/configparser.y"
+ case 397: /* server_udp_upstream_without_downstream: VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM STRING_ARG */
+#line 1066 "util/configparser.y"
{
OUTYY(("P(server_udp_upstream_without_downstream:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3898,11 +3960,11 @@ yyreduce:
else cfg_parser->cfg->udp_upstream_without_downstream = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3902 "util/configparser.c"
+#line 3964 "util/configparser.c"
break;
- case 395: /* server_ssl_upstream: VAR_SSL_UPSTREAM STRING_ARG */
-#line 1072 "util/configparser.y"
+ case 398: /* server_ssl_upstream: VAR_SSL_UPSTREAM STRING_ARG */
+#line 1075 "util/configparser.y"
{
OUTYY(("P(server_ssl_upstream:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3910,31 +3972,31 @@ yyreduce:
else cfg_parser->cfg->ssl_upstream = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3914 "util/configparser.c"
+#line 3976 "util/configparser.c"
break;
- case 396: /* server_ssl_service_key: VAR_SSL_SERVICE_KEY STRING_ARG */
-#line 1081 "util/configparser.y"
+ case 399: /* server_ssl_service_key: VAR_SSL_SERVICE_KEY STRING_ARG */
+#line 1084 "util/configparser.y"
{
OUTYY(("P(server_ssl_service_key:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->ssl_service_key);
cfg_parser->cfg->ssl_service_key = (yyvsp[0].str);
}
-#line 3924 "util/configparser.c"
+#line 3986 "util/configparser.c"
break;
- case 397: /* server_ssl_service_pem: VAR_SSL_SERVICE_PEM STRING_ARG */
-#line 1088 "util/configparser.y"
+ case 400: /* server_ssl_service_pem: VAR_SSL_SERVICE_PEM STRING_ARG */
+#line 1091 "util/configparser.y"
{
OUTYY(("P(server_ssl_service_pem:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->ssl_service_pem);
cfg_parser->cfg->ssl_service_pem = (yyvsp[0].str);
}
-#line 3934 "util/configparser.c"
+#line 3996 "util/configparser.c"
break;
- case 398: /* server_ssl_port: VAR_SSL_PORT STRING_ARG */
-#line 1095 "util/configparser.y"
+ case 401: /* server_ssl_port: VAR_SSL_PORT STRING_ARG */
+#line 1098 "util/configparser.y"
{
OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -3942,21 +4004,21 @@ yyreduce:
else cfg_parser->cfg->ssl_port = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3946 "util/configparser.c"
+#line 4008 "util/configparser.c"
break;
- case 399: /* server_tls_cert_bundle: VAR_TLS_CERT_BUNDLE STRING_ARG */
-#line 1104 "util/configparser.y"
+ case 402: /* server_tls_cert_bundle: VAR_TLS_CERT_BUNDLE STRING_ARG */
+#line 1107 "util/configparser.y"
{
OUTYY(("P(server_tls_cert_bundle:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->tls_cert_bundle);
cfg_parser->cfg->tls_cert_bundle = (yyvsp[0].str);
}
-#line 3956 "util/configparser.c"
+#line 4018 "util/configparser.c"
break;
- case 400: /* server_tls_win_cert: VAR_TLS_WIN_CERT STRING_ARG */
-#line 1111 "util/configparser.y"
+ case 403: /* server_tls_win_cert: VAR_TLS_WIN_CERT STRING_ARG */
+#line 1114 "util/configparser.y"
{
OUTYY(("P(server_tls_win_cert:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3964,53 +4026,53 @@ yyreduce:
else cfg_parser->cfg->tls_win_cert = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3968 "util/configparser.c"
+#line 4030 "util/configparser.c"
break;
- case 401: /* server_tls_additional_port: VAR_TLS_ADDITIONAL_PORT STRING_ARG */
-#line 1120 "util/configparser.y"
+ case 404: /* server_tls_additional_port: VAR_TLS_ADDITIONAL_PORT STRING_ARG */
+#line 1123 "util/configparser.y"
{
OUTYY(("P(server_tls_additional_port:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->tls_additional_port,
(yyvsp[0].str)))
yyerror("out of memory");
}
-#line 3979 "util/configparser.c"
+#line 4041 "util/configparser.c"
break;
- case 402: /* server_tls_ciphers: VAR_TLS_CIPHERS STRING_ARG */
-#line 1128 "util/configparser.y"
+ case 405: /* server_tls_ciphers: VAR_TLS_CIPHERS STRING_ARG */
+#line 1131 "util/configparser.y"
{
OUTYY(("P(server_tls_ciphers:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->tls_ciphers);
cfg_parser->cfg->tls_ciphers = (yyvsp[0].str);
}
-#line 3989 "util/configparser.c"
+#line 4051 "util/configparser.c"
break;
- case 403: /* server_tls_ciphersuites: VAR_TLS_CIPHERSUITES STRING_ARG */
-#line 1135 "util/configparser.y"
+ case 406: /* server_tls_ciphersuites: VAR_TLS_CIPHERSUITES STRING_ARG */
+#line 1138 "util/configparser.y"
{
OUTYY(("P(server_tls_ciphersuites:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->tls_ciphersuites);
cfg_parser->cfg->tls_ciphersuites = (yyvsp[0].str);
}
-#line 3999 "util/configparser.c"
+#line 4061 "util/configparser.c"
break;
- case 404: /* server_tls_session_ticket_keys: VAR_TLS_SESSION_TICKET_KEYS STRING_ARG */
-#line 1142 "util/configparser.y"
+ case 407: /* server_tls_session_ticket_keys: VAR_TLS_SESSION_TICKET_KEYS STRING_ARG */
+#line 1145 "util/configparser.y"
{
OUTYY(("P(server_tls_session_ticket_keys:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_append(&cfg_parser->cfg->tls_session_ticket_keys,
(yyvsp[0].str)))
yyerror("out of memory");
}
-#line 4010 "util/configparser.c"
+#line 4072 "util/configparser.c"
break;
- case 405: /* server_tls_use_sni: VAR_TLS_USE_SNI STRING_ARG */
-#line 1150 "util/configparser.y"
+ case 408: /* server_tls_use_sni: VAR_TLS_USE_SNI STRING_ARG */
+#line 1153 "util/configparser.y"
{
OUTYY(("P(server_tls_use_sni:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4018,11 +4080,23 @@ yyreduce:
else cfg_parser->cfg->tls_use_sni = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4022 "util/configparser.c"
+#line 4084 "util/configparser.c"
break;
- case 406: /* server_https_port: VAR_HTTPS_PORT STRING_ARG */
-#line 1159 "util/configparser.y"
+ case 409: /* server_tls_protocols: VAR_TLS_PROTOCOLS STRING_ARG */
+#line 1162 "util/configparser.y"
+ {
+ OUTYY(("P(server_tls_protocols:%s)\n", (yyvsp[0].str)));
+ if(!cfg_tls_protocols_is_valid((yyvsp[0].str)))
+ yyerror("tls-protocols: valid values are 'TLSv1.2' and 'TLSv1.3'.");
+ free(cfg_parser->cfg->tls_protocols);
+ cfg_parser->cfg->tls_protocols = (yyvsp[0].str);
+ }
+#line 4096 "util/configparser.c"
+ break;
+
+ case 410: /* server_https_port: VAR_HTTPS_PORT STRING_ARG */
+#line 1171 "util/configparser.y"
{
OUTYY(("P(server_https_port:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -4030,11 +4104,11 @@ yyreduce:
else cfg_parser->cfg->https_port = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 4034 "util/configparser.c"
+#line 4108 "util/configparser.c"
break;
- case 407: /* server_http_endpoint: VAR_HTTP_ENDPOINT STRING_ARG */
-#line 1167 "util/configparser.y"
+ case 411: /* server_http_endpoint: VAR_HTTP_ENDPOINT STRING_ARG */
+#line 1179 "util/configparser.y"
{
OUTYY(("P(server_http_endpoint:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->http_endpoint);
@@ -4052,11 +4126,11 @@ yyreduce:
cfg_parser->cfg->http_endpoint = (yyvsp[0].str);
}
}
-#line 4056 "util/configparser.c"
+#line 4130 "util/configparser.c"
break;
- case 408: /* server_http_max_streams: VAR_HTTP_MAX_STREAMS STRING_ARG */
-#line 1185 "util/configparser.y"
+ case 412: /* server_http_max_streams: VAR_HTTP_MAX_STREAMS STRING_ARG */
+#line 1197 "util/configparser.y"
{
OUTYY(("P(server_http_max_streams:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -4064,11 +4138,11 @@ yyreduce:
else cfg_parser->cfg->http_max_streams = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 4068 "util/configparser.c"
+#line 4142 "util/configparser.c"
break;
- case 409: /* server_http_query_buffer_size: VAR_HTTP_QUERY_BUFFER_SIZE STRING_ARG */
-#line 1193 "util/configparser.y"
+ case 413: /* server_http_query_buffer_size: VAR_HTTP_QUERY_BUFFER_SIZE STRING_ARG */
+#line 1205 "util/configparser.y"
{
OUTYY(("P(server_http_query_buffer_size:%s)\n", (yyvsp[0].str)));
if(!cfg_parse_memsize((yyvsp[0].str),
@@ -4076,11 +4150,11 @@ yyreduce:
yyerror("memory size expected");
free((yyvsp[0].str));
}
-#line 4080 "util/configparser.c"
+#line 4154 "util/configparser.c"
break;
- case 410: /* server_http_response_buffer_size: VAR_HTTP_RESPONSE_BUFFER_SIZE STRING_ARG */
-#line 1201 "util/configparser.y"
+ case 414: /* server_http_response_buffer_size: VAR_HTTP_RESPONSE_BUFFER_SIZE STRING_ARG */
+#line 1213 "util/configparser.y"
{
OUTYY(("P(server_http_response_buffer_size:%s)\n", (yyvsp[0].str)));
if(!cfg_parse_memsize((yyvsp[0].str),
@@ -4088,11 +4162,11 @@ yyreduce:
yyerror("memory size expected");
free((yyvsp[0].str));
}
-#line 4092 "util/configparser.c"
+#line 4166 "util/configparser.c"
break;
- case 411: /* server_http_nodelay: VAR_HTTP_NODELAY STRING_ARG */
-#line 1209 "util/configparser.y"
+ case 415: /* server_http_nodelay: VAR_HTTP_NODELAY STRING_ARG */
+#line 1221 "util/configparser.y"
{
OUTYY(("P(server_http_nodelay:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4100,11 +4174,11 @@ yyreduce:
else cfg_parser->cfg->http_nodelay = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4104 "util/configparser.c"
+#line 4178 "util/configparser.c"
break;
- case 412: /* server_http_notls_downstream: VAR_HTTP_NOTLS_DOWNSTREAM STRING_ARG */
-#line 1217 "util/configparser.y"
+ case 416: /* server_http_notls_downstream: VAR_HTTP_NOTLS_DOWNSTREAM STRING_ARG */
+#line 1229 "util/configparser.y"
{
OUTYY(("P(server_http_notls_downstream:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4112,39 +4186,42 @@ yyreduce:
else cfg_parser->cfg->http_notls_downstream = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4116 "util/configparser.c"
+#line 4190 "util/configparser.c"
break;
- case 413: /* server_quic_port: VAR_QUIC_PORT STRING_ARG */
-#line 1225 "util/configparser.y"
+ case 417: /* server_quic_port: VAR_QUIC_PORT STRING_ARG */
+#line 1237 "util/configparser.y"
{
OUTYY(("P(server_quic_port:%s)\n", (yyvsp[0].str)));
+ if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str),"0")!=0)
+ yyerror("port number expected");
+ else {
+ cfg_parser->cfg->quic_port = atoi((yyvsp[0].str));
#ifndef HAVE_NGTCP2
- log_warn("%s:%d: Unbound is not compiled with "
- "ngtcp2. This is required to use DNS "
- "over QUIC.", cfg_parser->filename, cfg_parser->line);
+ if (cfg_parser->cfg->quic_port != 0)
+ log_warn("%s:%d: Unbound is not compiled with "
+ "ngtcp2. This is required to use DNS "
+ "over QUIC.", cfg_parser->filename, cfg_parser->line);
#endif
- if(atoi((yyvsp[0].str)) == 0)
- yyerror("port number expected");
- else cfg_parser->cfg->quic_port = atoi((yyvsp[0].str));
+ }
free((yyvsp[0].str));
}
-#line 4133 "util/configparser.c"
+#line 4210 "util/configparser.c"
break;
- case 414: /* server_quic_size: VAR_QUIC_SIZE STRING_ARG */
-#line 1238 "util/configparser.y"
+ case 418: /* server_quic_size: VAR_QUIC_SIZE STRING_ARG */
+#line 1253 "util/configparser.y"
{
OUTYY(("P(server_quic_size:%s)\n", (yyvsp[0].str)));
if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->quic_size))
yyerror("memory size expected");
free((yyvsp[0].str));
}
-#line 4144 "util/configparser.c"
+#line 4221 "util/configparser.c"
break;
- case 415: /* server_use_systemd: VAR_USE_SYSTEMD STRING_ARG */
-#line 1245 "util/configparser.y"
+ case 419: /* server_use_systemd: VAR_USE_SYSTEMD STRING_ARG */
+#line 1260 "util/configparser.y"
{
OUTYY(("P(server_use_systemd:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4152,11 +4229,11 @@ yyreduce:
else cfg_parser->cfg->use_systemd = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4156 "util/configparser.c"
+#line 4233 "util/configparser.c"
break;
- case 416: /* server_do_daemonize: VAR_DO_DAEMONIZE STRING_ARG */
-#line 1254 "util/configparser.y"
+ case 420: /* server_do_daemonize: VAR_DO_DAEMONIZE STRING_ARG */
+#line 1269 "util/configparser.y"
{
OUTYY(("P(server_do_daemonize:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4164,11 +4241,11 @@ yyreduce:
else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4168 "util/configparser.c"
+#line 4245 "util/configparser.c"
break;
- case 417: /* server_use_syslog: VAR_USE_SYSLOG STRING_ARG */
-#line 1263 "util/configparser.y"
+ case 421: /* server_use_syslog: VAR_USE_SYSLOG STRING_ARG */
+#line 1278 "util/configparser.y"
{
OUTYY(("P(server_use_syslog:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4181,11 +4258,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 4185 "util/configparser.c"
+#line 4262 "util/configparser.c"
break;
- case 418: /* server_log_time_ascii: VAR_LOG_TIME_ASCII STRING_ARG */
-#line 1277 "util/configparser.y"
+ case 422: /* server_log_time_ascii: VAR_LOG_TIME_ASCII STRING_ARG */
+#line 1292 "util/configparser.y"
{
OUTYY(("P(server_log_time_ascii:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4193,11 +4270,11 @@ yyreduce:
else cfg_parser->cfg->log_time_ascii = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4197 "util/configparser.c"
+#line 4274 "util/configparser.c"
break;
- case 419: /* server_log_time_iso: VAR_LOG_TIME_ISO STRING_ARG */
-#line 1286 "util/configparser.y"
+ case 423: /* server_log_time_iso: VAR_LOG_TIME_ISO STRING_ARG */
+#line 1301 "util/configparser.y"
{
OUTYY(("P(server_log_time_iso:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4205,11 +4282,11 @@ yyreduce:
else cfg_parser->cfg->log_time_iso = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4209 "util/configparser.c"
+#line 4286 "util/configparser.c"
break;
- case 420: /* server_log_queries: VAR_LOG_QUERIES STRING_ARG */
-#line 1295 "util/configparser.y"
+ case 424: /* server_log_queries: VAR_LOG_QUERIES STRING_ARG */
+#line 1310 "util/configparser.y"
{
OUTYY(("P(server_log_queries:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4217,11 +4294,11 @@ yyreduce:
else cfg_parser->cfg->log_queries = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4221 "util/configparser.c"
+#line 4298 "util/configparser.c"
break;
- case 421: /* server_log_replies: VAR_LOG_REPLIES STRING_ARG */
-#line 1304 "util/configparser.y"
+ case 425: /* server_log_replies: VAR_LOG_REPLIES STRING_ARG */
+#line 1319 "util/configparser.y"
{
OUTYY(("P(server_log_replies:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4229,11 +4306,11 @@ yyreduce:
else cfg_parser->cfg->log_replies = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4233 "util/configparser.c"
+#line 4310 "util/configparser.c"
break;
- case 422: /* server_log_tag_queryreply: VAR_LOG_TAG_QUERYREPLY STRING_ARG */
-#line 1313 "util/configparser.y"
+ case 426: /* server_log_tag_queryreply: VAR_LOG_TAG_QUERYREPLY STRING_ARG */
+#line 1328 "util/configparser.y"
{
OUTYY(("P(server_log_tag_queryreply:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4241,11 +4318,11 @@ yyreduce:
else cfg_parser->cfg->log_tag_queryreply = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4245 "util/configparser.c"
+#line 4322 "util/configparser.c"
break;
- case 423: /* server_log_servfail: VAR_LOG_SERVFAIL STRING_ARG */
-#line 1322 "util/configparser.y"
+ case 427: /* server_log_servfail: VAR_LOG_SERVFAIL STRING_ARG */
+#line 1337 "util/configparser.y"
{
OUTYY(("P(server_log_servfail:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4253,11 +4330,11 @@ yyreduce:
else cfg_parser->cfg->log_servfail = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4257 "util/configparser.c"
+#line 4334 "util/configparser.c"
break;
- case 424: /* server_log_destaddr: VAR_LOG_DESTADDR STRING_ARG */
-#line 1331 "util/configparser.y"
+ case 428: /* server_log_destaddr: VAR_LOG_DESTADDR STRING_ARG */
+#line 1346 "util/configparser.y"
{
OUTYY(("P(server_log_destaddr:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4265,11 +4342,23 @@ yyreduce:
else cfg_parser->cfg->log_destaddr = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4269 "util/configparser.c"
+#line 4346 "util/configparser.c"
break;
- case 425: /* server_log_local_actions: VAR_LOG_LOCAL_ACTIONS STRING_ARG */
-#line 1340 "util/configparser.y"
+ case 429: /* server_log_thread_id: VAR_LOG_THREAD_ID STRING_ARG */
+#line 1355 "util/configparser.y"
+ {
+ OUTYY(("P(server_log_thread_id:%s)\n", (yyvsp[0].str)));
+ if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+ yyerror("expected yes or no.");
+ else cfg_parser->cfg->log_thread_id = (strcmp((yyvsp[0].str), "yes")==0);
+ free((yyvsp[0].str));
+ }
+#line 4358 "util/configparser.c"
+ break;
+
+ case 430: /* server_log_local_actions: VAR_LOG_LOCAL_ACTIONS STRING_ARG */
+#line 1364 "util/configparser.y"
{
OUTYY(("P(server_log_local_actions:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4277,31 +4366,31 @@ yyreduce:
else cfg_parser->cfg->log_local_actions = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4281 "util/configparser.c"
+#line 4370 "util/configparser.c"
break;
- case 426: /* server_chroot: VAR_CHROOT STRING_ARG */
-#line 1349 "util/configparser.y"
+ case 431: /* server_chroot: VAR_CHROOT STRING_ARG */
+#line 1373 "util/configparser.y"
{
OUTYY(("P(server_chroot:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->chrootdir);
cfg_parser->cfg->chrootdir = (yyvsp[0].str);
}
-#line 4291 "util/configparser.c"
+#line 4380 "util/configparser.c"
break;
- case 427: /* server_username: VAR_USERNAME STRING_ARG */
-#line 1356 "util/configparser.y"
+ case 432: /* server_username: VAR_USERNAME STRING_ARG */
+#line 1380 "util/configparser.y"
{
OUTYY(("P(server_username:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->username);
cfg_parser->cfg->username = (yyvsp[0].str);
}
-#line 4301 "util/configparser.c"
+#line 4390 "util/configparser.c"
break;
- case 428: /* server_directory: VAR_DIRECTORY STRING_ARG */
-#line 1363 "util/configparser.y"
+ case 433: /* server_directory: VAR_DIRECTORY STRING_ARG */
+#line 1387 "util/configparser.y"
{
OUTYY(("P(server_directory:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->directory);
@@ -4326,105 +4415,105 @@ yyreduce:
}
}
}
-#line 4330 "util/configparser.c"
+#line 4419 "util/configparser.c"
break;
- case 429: /* server_logfile: VAR_LOGFILE STRING_ARG */
-#line 1389 "util/configparser.y"
+ case 434: /* server_logfile: VAR_LOGFILE STRING_ARG */
+#line 1413 "util/configparser.y"
{
OUTYY(("P(server_logfile:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->logfile);
cfg_parser->cfg->logfile = (yyvsp[0].str);
cfg_parser->cfg->use_syslog = 0;
}
-#line 4341 "util/configparser.c"
+#line 4430 "util/configparser.c"
break;
- case 430: /* server_pidfile: VAR_PIDFILE STRING_ARG */
-#line 1397 "util/configparser.y"
+ case 435: /* server_pidfile: VAR_PIDFILE STRING_ARG */
+#line 1421 "util/configparser.y"
{
OUTYY(("P(server_pidfile:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->pidfile);
cfg_parser->cfg->pidfile = (yyvsp[0].str);
}
-#line 4351 "util/configparser.c"
+#line 4440 "util/configparser.c"
break;
- case 431: /* server_root_hints: VAR_ROOT_HINTS STRING_ARG */
-#line 1404 "util/configparser.y"
+ case 436: /* server_root_hints: VAR_ROOT_HINTS STRING_ARG */
+#line 1428 "util/configparser.y"
{
OUTYY(("P(server_root_hints:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->root_hints, (yyvsp[0].str)))
yyerror("out of memory");
}
-#line 4361 "util/configparser.c"
+#line 4450 "util/configparser.c"
break;
- case 432: /* server_dlv_anchor_file: VAR_DLV_ANCHOR_FILE STRING_ARG */
-#line 1411 "util/configparser.y"
+ case 437: /* server_dlv_anchor_file: VAR_DLV_ANCHOR_FILE STRING_ARG */
+#line 1435 "util/configparser.y"
{
OUTYY(("P(server_dlv_anchor_file:%s)\n", (yyvsp[0].str)));
log_warn("option dlv-anchor-file ignored: DLV is decommissioned");
free((yyvsp[0].str));
}
-#line 4371 "util/configparser.c"
+#line 4460 "util/configparser.c"
break;
- case 433: /* server_dlv_anchor: VAR_DLV_ANCHOR STRING_ARG */
-#line 1418 "util/configparser.y"
+ case 438: /* server_dlv_anchor: VAR_DLV_ANCHOR STRING_ARG */
+#line 1442 "util/configparser.y"
{
OUTYY(("P(server_dlv_anchor:%s)\n", (yyvsp[0].str)));
log_warn("option dlv-anchor ignored: DLV is decommissioned");
free((yyvsp[0].str));
}
-#line 4381 "util/configparser.c"
+#line 4470 "util/configparser.c"
break;
- case 434: /* server_auto_trust_anchor_file: VAR_AUTO_TRUST_ANCHOR_FILE STRING_ARG */
-#line 1425 "util/configparser.y"
+ case 439: /* server_auto_trust_anchor_file: VAR_AUTO_TRUST_ANCHOR_FILE STRING_ARG */
+#line 1449 "util/configparser.y"
{
OUTYY(("P(server_auto_trust_anchor_file:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->
auto_trust_anchor_file_list, (yyvsp[0].str)))
yyerror("out of memory");
}
-#line 4392 "util/configparser.c"
+#line 4481 "util/configparser.c"
break;
- case 435: /* server_trust_anchor_file: VAR_TRUST_ANCHOR_FILE STRING_ARG */
-#line 1433 "util/configparser.y"
+ case 440: /* server_trust_anchor_file: VAR_TRUST_ANCHOR_FILE STRING_ARG */
+#line 1457 "util/configparser.y"
{
OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->
trust_anchor_file_list, (yyvsp[0].str)))
yyerror("out of memory");
}
-#line 4403 "util/configparser.c"
+#line 4492 "util/configparser.c"
break;
- case 436: /* server_trusted_keys_file: VAR_TRUSTED_KEYS_FILE STRING_ARG */
-#line 1441 "util/configparser.y"
+ case 441: /* server_trusted_keys_file: VAR_TRUSTED_KEYS_FILE STRING_ARG */
+#line 1465 "util/configparser.y"
{
OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->
trusted_keys_file_list, (yyvsp[0].str)))
yyerror("out of memory");
}
-#line 4414 "util/configparser.c"
+#line 4503 "util/configparser.c"
break;
- case 437: /* server_trust_anchor: VAR_TRUST_ANCHOR STRING_ARG */
-#line 1449 "util/configparser.y"
+ case 442: /* server_trust_anchor: VAR_TRUST_ANCHOR STRING_ARG */
+#line 1473 "util/configparser.y"
{
OUTYY(("P(server_trust_anchor:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->trust_anchor_list, (yyvsp[0].str)))
yyerror("out of memory");
}
-#line 4424 "util/configparser.c"
+#line 4513 "util/configparser.c"
break;
- case 438: /* server_trust_anchor_signaling: VAR_TRUST_ANCHOR_SIGNALING STRING_ARG */
-#line 1456 "util/configparser.y"
+ case 443: /* server_trust_anchor_signaling: VAR_TRUST_ANCHOR_SIGNALING STRING_ARG */
+#line 1480 "util/configparser.y"
{
OUTYY(("P(server_trust_anchor_signaling:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4434,11 +4523,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4438 "util/configparser.c"
+#line 4527 "util/configparser.c"
break;
- case 439: /* server_root_key_sentinel: VAR_ROOT_KEY_SENTINEL STRING_ARG */
-#line 1467 "util/configparser.y"
+ case 444: /* server_root_key_sentinel: VAR_ROOT_KEY_SENTINEL STRING_ARG */
+#line 1491 "util/configparser.y"
{
OUTYY(("P(server_root_key_sentinel:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4448,21 +4537,21 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4452 "util/configparser.c"
+#line 4541 "util/configparser.c"
break;
- case 440: /* server_domain_insecure: VAR_DOMAIN_INSECURE STRING_ARG */
-#line 1478 "util/configparser.y"
+ case 445: /* server_domain_insecure: VAR_DOMAIN_INSECURE STRING_ARG */
+#line 1502 "util/configparser.y"
{
OUTYY(("P(server_domain_insecure:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->domain_insecure, (yyvsp[0].str)))
yyerror("out of memory");
}
-#line 4462 "util/configparser.c"
+#line 4551 "util/configparser.c"
break;
- case 441: /* server_hide_identity: VAR_HIDE_IDENTITY STRING_ARG */
-#line 1485 "util/configparser.y"
+ case 446: /* server_hide_identity: VAR_HIDE_IDENTITY STRING_ARG */
+#line 1509 "util/configparser.y"
{
OUTYY(("P(server_hide_identity:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4470,11 +4559,11 @@ yyreduce:
else cfg_parser->cfg->hide_identity = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4474 "util/configparser.c"
+#line 4563 "util/configparser.c"
break;
- case 442: /* server_hide_version: VAR_HIDE_VERSION STRING_ARG */
-#line 1494 "util/configparser.y"
+ case 447: /* server_hide_version: VAR_HIDE_VERSION STRING_ARG */
+#line 1518 "util/configparser.y"
{
OUTYY(("P(server_hide_version:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4482,11 +4571,11 @@ yyreduce:
else cfg_parser->cfg->hide_version = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4486 "util/configparser.c"
+#line 4575 "util/configparser.c"
break;
- case 443: /* server_hide_trustanchor: VAR_HIDE_TRUSTANCHOR STRING_ARG */
-#line 1503 "util/configparser.y"
+ case 448: /* server_hide_trustanchor: VAR_HIDE_TRUSTANCHOR STRING_ARG */
+#line 1527 "util/configparser.y"
{
OUTYY(("P(server_hide_trustanchor:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4494,11 +4583,11 @@ yyreduce:
else cfg_parser->cfg->hide_trustanchor = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4498 "util/configparser.c"
+#line 4587 "util/configparser.c"
break;
- case 444: /* server_hide_http_user_agent: VAR_HIDE_HTTP_USER_AGENT STRING_ARG */
-#line 1512 "util/configparser.y"
+ case 449: /* server_hide_http_user_agent: VAR_HIDE_HTTP_USER_AGENT STRING_ARG */
+#line 1536 "util/configparser.y"
{
OUTYY(("P(server_hide_user_agent:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4506,41 +4595,41 @@ yyreduce:
else cfg_parser->cfg->hide_http_user_agent = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4510 "util/configparser.c"
+#line 4599 "util/configparser.c"
break;
- case 445: /* server_identity: VAR_IDENTITY STRING_ARG */
-#line 1521 "util/configparser.y"
+ case 450: /* server_identity: VAR_IDENTITY STRING_ARG */
+#line 1545 "util/configparser.y"
{
OUTYY(("P(server_identity:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->identity);
cfg_parser->cfg->identity = (yyvsp[0].str);
}
-#line 4520 "util/configparser.c"
+#line 4609 "util/configparser.c"
break;
- case 446: /* server_version: VAR_VERSION STRING_ARG */
-#line 1528 "util/configparser.y"
+ case 451: /* server_version: VAR_VERSION STRING_ARG */
+#line 1552 "util/configparser.y"
{
OUTYY(("P(server_version:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->version);
cfg_parser->cfg->version = (yyvsp[0].str);
}
-#line 4530 "util/configparser.c"
+#line 4619 "util/configparser.c"
break;
- case 447: /* server_http_user_agent: VAR_HTTP_USER_AGENT STRING_ARG */
-#line 1535 "util/configparser.y"
+ case 452: /* server_http_user_agent: VAR_HTTP_USER_AGENT STRING_ARG */
+#line 1559 "util/configparser.y"
{
OUTYY(("P(server_http_user_agent:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->http_user_agent);
cfg_parser->cfg->http_user_agent = (yyvsp[0].str);
}
-#line 4540 "util/configparser.c"
+#line 4629 "util/configparser.c"
break;
- case 448: /* server_nsid: VAR_NSID STRING_ARG */
-#line 1542 "util/configparser.y"
+ case 453: /* server_nsid: VAR_NSID STRING_ARG */
+#line 1566 "util/configparser.y"
{
OUTYY(("P(server_nsid:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->nsid_cfg_str);
@@ -4555,33 +4644,33 @@ yyreduce:
yyerror("the NSID must be either a hex string or an "
"ascii character string prepended with ascii_.");
}
-#line 4559 "util/configparser.c"
+#line 4648 "util/configparser.c"
break;
- case 449: /* server_so_rcvbuf: VAR_SO_RCVBUF STRING_ARG */
-#line 1558 "util/configparser.y"
+ case 454: /* server_so_rcvbuf: VAR_SO_RCVBUF STRING_ARG */
+#line 1582 "util/configparser.y"
{
OUTYY(("P(server_so_rcvbuf:%s)\n", (yyvsp[0].str)));
if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_rcvbuf))
yyerror("buffer size expected");
free((yyvsp[0].str));
}
-#line 4570 "util/configparser.c"
+#line 4659 "util/configparser.c"
break;
- case 450: /* server_so_sndbuf: VAR_SO_SNDBUF STRING_ARG */
-#line 1566 "util/configparser.y"
+ case 455: /* server_so_sndbuf: VAR_SO_SNDBUF STRING_ARG */
+#line 1590 "util/configparser.y"
{
OUTYY(("P(server_so_sndbuf:%s)\n", (yyvsp[0].str)));
if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_sndbuf))
yyerror("buffer size expected");
free((yyvsp[0].str));
}
-#line 4581 "util/configparser.c"
+#line 4670 "util/configparser.c"
break;
- case 451: /* server_so_reuseport: VAR_SO_REUSEPORT STRING_ARG */
-#line 1574 "util/configparser.y"
+ case 456: /* server_so_reuseport: VAR_SO_REUSEPORT STRING_ARG */
+#line 1598 "util/configparser.y"
{
OUTYY(("P(server_so_reuseport:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4590,11 +4679,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4594 "util/configparser.c"
+#line 4683 "util/configparser.c"
break;
- case 452: /* server_ip_transparent: VAR_IP_TRANSPARENT STRING_ARG */
-#line 1584 "util/configparser.y"
+ case 457: /* server_ip_transparent: VAR_IP_TRANSPARENT STRING_ARG */
+#line 1608 "util/configparser.y"
{
OUTYY(("P(server_ip_transparent:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4603,11 +4692,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4607 "util/configparser.c"
+#line 4696 "util/configparser.c"
break;
- case 453: /* server_ip_freebind: VAR_IP_FREEBIND STRING_ARG */
-#line 1594 "util/configparser.y"
+ case 458: /* server_ip_freebind: VAR_IP_FREEBIND STRING_ARG */
+#line 1618 "util/configparser.y"
{
OUTYY(("P(server_ip_freebind:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4616,11 +4705,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4620 "util/configparser.c"
+#line 4709 "util/configparser.c"
break;
- case 454: /* server_ip_dscp: VAR_IP_DSCP STRING_ARG */
-#line 1604 "util/configparser.y"
+ case 459: /* server_ip_dscp: VAR_IP_DSCP STRING_ARG */
+#line 1628 "util/configparser.y"
{
OUTYY(("P(server_ip_dscp:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -4633,22 +4722,22 @@ yyreduce:
cfg_parser->cfg->ip_dscp = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 4637 "util/configparser.c"
+#line 4726 "util/configparser.c"
break;
- case 455: /* server_stream_wait_size: VAR_STREAM_WAIT_SIZE STRING_ARG */
-#line 1618 "util/configparser.y"
+ case 460: /* server_stream_wait_size: VAR_STREAM_WAIT_SIZE STRING_ARG */
+#line 1642 "util/configparser.y"
{
OUTYY(("P(server_stream_wait_size:%s)\n", (yyvsp[0].str)));
if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->stream_wait_size))
yyerror("memory size expected");
free((yyvsp[0].str));
}
-#line 4648 "util/configparser.c"
+#line 4737 "util/configparser.c"
break;
- case 456: /* server_edns_buffer_size: VAR_EDNS_BUFFER_SIZE STRING_ARG */
-#line 1626 "util/configparser.y"
+ case 461: /* server_edns_buffer_size: VAR_EDNS_BUFFER_SIZE STRING_ARG */
+#line 1650 "util/configparser.y"
{
OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -4660,11 +4749,11 @@ yyreduce:
else cfg_parser->cfg->edns_buffer_size = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 4664 "util/configparser.c"
+#line 4753 "util/configparser.c"
break;
- case 457: /* server_msg_buffer_size: VAR_MSG_BUFFER_SIZE STRING_ARG */
-#line 1639 "util/configparser.y"
+ case 462: /* server_msg_buffer_size: VAR_MSG_BUFFER_SIZE STRING_ARG */
+#line 1663 "util/configparser.y"
{
OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -4674,22 +4763,22 @@ yyreduce:
else cfg_parser->cfg->msg_buffer_size = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 4678 "util/configparser.c"
+#line 4767 "util/configparser.c"
break;
- case 458: /* server_msg_cache_size: VAR_MSG_CACHE_SIZE STRING_ARG */
-#line 1650 "util/configparser.y"
+ case 463: /* server_msg_cache_size: VAR_MSG_CACHE_SIZE STRING_ARG */
+#line 1674 "util/configparser.y"
{
OUTYY(("P(server_msg_cache_size:%s)\n", (yyvsp[0].str)));
if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->msg_cache_size))
yyerror("memory size expected");
free((yyvsp[0].str));
}
-#line 4689 "util/configparser.c"
+#line 4778 "util/configparser.c"
break;
- case 459: /* server_msg_cache_slabs: VAR_MSG_CACHE_SLABS STRING_ARG */
-#line 1658 "util/configparser.y"
+ case 464: /* server_msg_cache_slabs: VAR_MSG_CACHE_SLABS STRING_ARG */
+#line 1682 "util/configparser.y"
{
OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0) {
@@ -4701,11 +4790,11 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 4705 "util/configparser.c"
+#line 4794 "util/configparser.c"
break;
- case 460: /* server_num_queries_per_thread: VAR_NUM_QUERIES_PER_THREAD STRING_ARG */
-#line 1671 "util/configparser.y"
+ case 465: /* server_num_queries_per_thread: VAR_NUM_QUERIES_PER_THREAD STRING_ARG */
+#line 1695 "util/configparser.y"
{
OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -4713,11 +4802,11 @@ yyreduce:
else cfg_parser->cfg->num_queries_per_thread = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 4717 "util/configparser.c"
+#line 4806 "util/configparser.c"
break;
- case 461: /* server_jostle_timeout: VAR_JOSTLE_TIMEOUT STRING_ARG */
-#line 1680 "util/configparser.y"
+ case 466: /* server_jostle_timeout: VAR_JOSTLE_TIMEOUT STRING_ARG */
+#line 1704 "util/configparser.y"
{
OUTYY(("P(server_jostle_timeout:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -4725,11 +4814,11 @@ yyreduce:
else cfg_parser->cfg->jostle_time = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 4729 "util/configparser.c"
+#line 4818 "util/configparser.c"
break;
- case 462: /* server_delay_close: VAR_DELAY_CLOSE STRING_ARG */
-#line 1689 "util/configparser.y"
+ case 467: /* server_delay_close: VAR_DELAY_CLOSE STRING_ARG */
+#line 1713 "util/configparser.y"
{
OUTYY(("P(server_delay_close:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -4737,11 +4826,11 @@ yyreduce:
else cfg_parser->cfg->delay_close = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 4741 "util/configparser.c"
+#line 4830 "util/configparser.c"
break;
- case 463: /* server_udp_connect: VAR_UDP_CONNECT STRING_ARG */
-#line 1698 "util/configparser.y"
+ case 468: /* server_udp_connect: VAR_UDP_CONNECT STRING_ARG */
+#line 1722 "util/configparser.y"
{
OUTYY(("P(server_udp_connect:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4749,11 +4838,11 @@ yyreduce:
else cfg_parser->cfg->udp_connect = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4753 "util/configparser.c"
+#line 4842 "util/configparser.c"
break;
- case 464: /* server_unblock_lan_zones: VAR_UNBLOCK_LAN_ZONES STRING_ARG */
-#line 1707 "util/configparser.y"
+ case 469: /* server_unblock_lan_zones: VAR_UNBLOCK_LAN_ZONES STRING_ARG */
+#line 1731 "util/configparser.y"
{
OUTYY(("P(server_unblock_lan_zones:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4762,11 +4851,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4766 "util/configparser.c"
+#line 4855 "util/configparser.c"
break;
- case 465: /* server_insecure_lan_zones: VAR_INSECURE_LAN_ZONES STRING_ARG */
-#line 1717 "util/configparser.y"
+ case 470: /* server_insecure_lan_zones: VAR_INSECURE_LAN_ZONES STRING_ARG */
+#line 1741 "util/configparser.y"
{
OUTYY(("P(server_insecure_lan_zones:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4775,22 +4864,22 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4779 "util/configparser.c"
+#line 4868 "util/configparser.c"
break;
- case 466: /* server_rrset_cache_size: VAR_RRSET_CACHE_SIZE STRING_ARG */
-#line 1727 "util/configparser.y"
+ case 471: /* server_rrset_cache_size: VAR_RRSET_CACHE_SIZE STRING_ARG */
+#line 1751 "util/configparser.y"
{
OUTYY(("P(server_rrset_cache_size:%s)\n", (yyvsp[0].str)));
if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->rrset_cache_size))
yyerror("memory size expected");
free((yyvsp[0].str));
}
-#line 4790 "util/configparser.c"
+#line 4879 "util/configparser.c"
break;
- case 467: /* server_rrset_cache_slabs: VAR_RRSET_CACHE_SLABS STRING_ARG */
-#line 1735 "util/configparser.y"
+ case 472: /* server_rrset_cache_slabs: VAR_RRSET_CACHE_SLABS STRING_ARG */
+#line 1759 "util/configparser.y"
{
OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0) {
@@ -4802,11 +4891,11 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 4806 "util/configparser.c"
+#line 4895 "util/configparser.c"
break;
- case 468: /* server_infra_host_ttl: VAR_INFRA_HOST_TTL STRING_ARG */
-#line 1748 "util/configparser.y"
+ case 473: /* server_infra_host_ttl: VAR_INFRA_HOST_TTL STRING_ARG */
+#line 1772 "util/configparser.y"
{
OUTYY(("P(server_infra_host_ttl:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -4814,22 +4903,22 @@ yyreduce:
else cfg_parser->cfg->host_ttl = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 4818 "util/configparser.c"
+#line 4907 "util/configparser.c"
break;
- case 469: /* server_infra_lame_ttl: VAR_INFRA_LAME_TTL STRING_ARG */
-#line 1757 "util/configparser.y"
+ case 474: /* server_infra_lame_ttl: VAR_INFRA_LAME_TTL STRING_ARG */
+#line 1781 "util/configparser.y"
{
OUTYY(("P(server_infra_lame_ttl:%s)\n", (yyvsp[0].str)));
verbose(VERB_DETAIL, "ignored infra-lame-ttl: %s (option "
"removed, use infra-host-ttl)", (yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 4829 "util/configparser.c"
+#line 4918 "util/configparser.c"
break;
- case 470: /* server_infra_cache_numhosts: VAR_INFRA_CACHE_NUMHOSTS STRING_ARG */
-#line 1765 "util/configparser.y"
+ case 475: /* server_infra_cache_numhosts: VAR_INFRA_CACHE_NUMHOSTS STRING_ARG */
+#line 1789 "util/configparser.y"
{
OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -4837,22 +4926,22 @@ yyreduce:
else cfg_parser->cfg->infra_cache_numhosts = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 4841 "util/configparser.c"
+#line 4930 "util/configparser.c"
break;
- case 471: /* server_infra_cache_lame_size: VAR_INFRA_CACHE_LAME_SIZE STRING_ARG */
-#line 1774 "util/configparser.y"
+ case 476: /* server_infra_cache_lame_size: VAR_INFRA_CACHE_LAME_SIZE STRING_ARG */
+#line 1798 "util/configparser.y"
{
OUTYY(("P(server_infra_cache_lame_size:%s)\n", (yyvsp[0].str)));
verbose(VERB_DETAIL, "ignored infra-cache-lame-size: %s "
"(option removed, use infra-cache-numhosts)", (yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 4852 "util/configparser.c"
+#line 4941 "util/configparser.c"
break;
- case 472: /* server_infra_cache_slabs: VAR_INFRA_CACHE_SLABS STRING_ARG */
-#line 1782 "util/configparser.y"
+ case 477: /* server_infra_cache_slabs: VAR_INFRA_CACHE_SLABS STRING_ARG */
+#line 1806 "util/configparser.y"
{
OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0) {
@@ -4864,11 +4953,11 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 4868 "util/configparser.c"
+#line 4957 "util/configparser.c"
break;
- case 473: /* server_infra_cache_min_rtt: VAR_INFRA_CACHE_MIN_RTT STRING_ARG */
-#line 1795 "util/configparser.y"
+ case 478: /* server_infra_cache_min_rtt: VAR_INFRA_CACHE_MIN_RTT STRING_ARG */
+#line 1819 "util/configparser.y"
{
OUTYY(("P(server_infra_cache_min_rtt:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -4876,11 +4965,11 @@ yyreduce:
else cfg_parser->cfg->infra_cache_min_rtt = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 4880 "util/configparser.c"
+#line 4969 "util/configparser.c"
break;
- case 474: /* server_infra_cache_max_rtt: VAR_INFRA_CACHE_MAX_RTT STRING_ARG */
-#line 1804 "util/configparser.y"
+ case 479: /* server_infra_cache_max_rtt: VAR_INFRA_CACHE_MAX_RTT STRING_ARG */
+#line 1828 "util/configparser.y"
{
OUTYY(("P(server_infra_cache_max_rtt:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -4888,11 +4977,11 @@ yyreduce:
else cfg_parser->cfg->infra_cache_max_rtt = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 4892 "util/configparser.c"
+#line 4981 "util/configparser.c"
break;
- case 475: /* server_infra_keep_probing: VAR_INFRA_KEEP_PROBING STRING_ARG */
-#line 1813 "util/configparser.y"
+ case 480: /* server_infra_keep_probing: VAR_INFRA_KEEP_PROBING STRING_ARG */
+#line 1837 "util/configparser.y"
{
OUTYY(("P(server_infra_keep_probing:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4901,21 +4990,21 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4905 "util/configparser.c"
+#line 4994 "util/configparser.c"
break;
- case 476: /* server_target_fetch_policy: VAR_TARGET_FETCH_POLICY STRING_ARG */
-#line 1823 "util/configparser.y"
+ case 481: /* server_target_fetch_policy: VAR_TARGET_FETCH_POLICY STRING_ARG */
+#line 1847 "util/configparser.y"
{
OUTYY(("P(server_target_fetch_policy:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->target_fetch_policy);
cfg_parser->cfg->target_fetch_policy = (yyvsp[0].str);
}
-#line 4915 "util/configparser.c"
+#line 5004 "util/configparser.c"
break;
- case 477: /* server_harden_short_bufsize: VAR_HARDEN_SHORT_BUFSIZE STRING_ARG */
-#line 1830 "util/configparser.y"
+ case 482: /* server_harden_short_bufsize: VAR_HARDEN_SHORT_BUFSIZE STRING_ARG */
+#line 1854 "util/configparser.y"
{
OUTYY(("P(server_harden_short_bufsize:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4924,11 +5013,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4928 "util/configparser.c"
+#line 5017 "util/configparser.c"
break;
- case 478: /* server_harden_large_queries: VAR_HARDEN_LARGE_QUERIES STRING_ARG */
-#line 1840 "util/configparser.y"
+ case 483: /* server_harden_large_queries: VAR_HARDEN_LARGE_QUERIES STRING_ARG */
+#line 1864 "util/configparser.y"
{
OUTYY(("P(server_harden_large_queries:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4937,11 +5026,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4941 "util/configparser.c"
+#line 5030 "util/configparser.c"
break;
- case 479: /* server_harden_glue: VAR_HARDEN_GLUE STRING_ARG */
-#line 1850 "util/configparser.y"
+ case 484: /* server_harden_glue: VAR_HARDEN_GLUE STRING_ARG */
+#line 1874 "util/configparser.y"
{
OUTYY(("P(server_harden_glue:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4950,11 +5039,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4954 "util/configparser.c"
+#line 5043 "util/configparser.c"
break;
- case 480: /* server_harden_unverified_glue: VAR_HARDEN_UNVERIFIED_GLUE STRING_ARG */
-#line 1860 "util/configparser.y"
+ case 485: /* server_harden_unverified_glue: VAR_HARDEN_UNVERIFIED_GLUE STRING_ARG */
+#line 1884 "util/configparser.y"
{
OUTYY(("P(server_harden_unverified_glue:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4963,11 +5052,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4967 "util/configparser.c"
+#line 5056 "util/configparser.c"
break;
- case 481: /* server_harden_dnssec_stripped: VAR_HARDEN_DNSSEC_STRIPPED STRING_ARG */
-#line 1870 "util/configparser.y"
+ case 486: /* server_harden_dnssec_stripped: VAR_HARDEN_DNSSEC_STRIPPED STRING_ARG */
+#line 1894 "util/configparser.y"
{
OUTYY(("P(server_harden_dnssec_stripped:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4976,11 +5065,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4980 "util/configparser.c"
+#line 5069 "util/configparser.c"
break;
- case 482: /* server_harden_below_nxdomain: VAR_HARDEN_BELOW_NXDOMAIN STRING_ARG */
-#line 1880 "util/configparser.y"
+ case 487: /* server_harden_below_nxdomain: VAR_HARDEN_BELOW_NXDOMAIN STRING_ARG */
+#line 1904 "util/configparser.y"
{
OUTYY(("P(server_harden_below_nxdomain:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4989,11 +5078,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4993 "util/configparser.c"
+#line 5082 "util/configparser.c"
break;
- case 483: /* server_harden_referral_path: VAR_HARDEN_REFERRAL_PATH STRING_ARG */
-#line 1890 "util/configparser.y"
+ case 488: /* server_harden_referral_path: VAR_HARDEN_REFERRAL_PATH STRING_ARG */
+#line 1914 "util/configparser.y"
{
OUTYY(("P(server_harden_referral_path:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5002,11 +5091,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 5006 "util/configparser.c"
+#line 5095 "util/configparser.c"
break;
- case 484: /* server_harden_algo_downgrade: VAR_HARDEN_ALGO_DOWNGRADE STRING_ARG */
-#line 1900 "util/configparser.y"
+ case 489: /* server_harden_algo_downgrade: VAR_HARDEN_ALGO_DOWNGRADE STRING_ARG */
+#line 1924 "util/configparser.y"
{
OUTYY(("P(server_harden_algo_downgrade:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5015,11 +5104,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 5019 "util/configparser.c"
+#line 5108 "util/configparser.c"
break;
- case 485: /* server_harden_unknown_additional: VAR_HARDEN_UNKNOWN_ADDITIONAL STRING_ARG */
-#line 1910 "util/configparser.y"
+ case 490: /* server_harden_unknown_additional: VAR_HARDEN_UNKNOWN_ADDITIONAL STRING_ARG */
+#line 1934 "util/configparser.y"
{
OUTYY(("P(server_harden_unknown_additional:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5028,11 +5117,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 5032 "util/configparser.c"
+#line 5121 "util/configparser.c"
break;
- case 486: /* server_use_caps_for_id: VAR_USE_CAPS_FOR_ID STRING_ARG */
-#line 1920 "util/configparser.y"
+ case 491: /* server_use_caps_for_id: VAR_USE_CAPS_FOR_ID STRING_ARG */
+#line 1944 "util/configparser.y"
{
OUTYY(("P(server_use_caps_for_id:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5041,41 +5130,41 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 5045 "util/configparser.c"
+#line 5134 "util/configparser.c"
break;
- case 487: /* server_caps_whitelist: VAR_CAPS_WHITELIST STRING_ARG */
-#line 1930 "util/configparser.y"
+ case 492: /* server_caps_whitelist: VAR_CAPS_WHITELIST STRING_ARG */
+#line 1954 "util/configparser.y"
{
OUTYY(("P(server_caps_whitelist:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->caps_whitelist, (yyvsp[0].str)))
yyerror("out of memory");
}
-#line 5055 "util/configparser.c"
+#line 5144 "util/configparser.c"
break;
- case 488: /* server_private_address: VAR_PRIVATE_ADDRESS STRING_ARG */
-#line 1937 "util/configparser.y"
+ case 493: /* server_private_address: VAR_PRIVATE_ADDRESS STRING_ARG */
+#line 1961 "util/configparser.y"
{
OUTYY(("P(server_private_address:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->private_address, (yyvsp[0].str)))
yyerror("out of memory");
}
-#line 5065 "util/configparser.c"
+#line 5154 "util/configparser.c"
break;
- case 489: /* server_private_domain: VAR_PRIVATE_DOMAIN STRING_ARG */
-#line 1944 "util/configparser.y"
+ case 494: /* server_private_domain: VAR_PRIVATE_DOMAIN STRING_ARG */
+#line 1968 "util/configparser.y"
{
OUTYY(("P(server_private_domain:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->private_domain, (yyvsp[0].str)))
yyerror("out of memory");
}
-#line 5075 "util/configparser.c"
+#line 5164 "util/configparser.c"
break;
- case 490: /* server_prefetch: VAR_PREFETCH STRING_ARG */
-#line 1951 "util/configparser.y"
+ case 495: /* server_prefetch: VAR_PREFETCH STRING_ARG */
+#line 1975 "util/configparser.y"
{
OUTYY(("P(server_prefetch:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5083,11 +5172,11 @@ yyreduce:
else cfg_parser->cfg->prefetch = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 5087 "util/configparser.c"
+#line 5176 "util/configparser.c"
break;
- case 491: /* server_prefetch_key: VAR_PREFETCH_KEY STRING_ARG */
-#line 1960 "util/configparser.y"
+ case 496: /* server_prefetch_key: VAR_PREFETCH_KEY STRING_ARG */
+#line 1984 "util/configparser.y"
{
OUTYY(("P(server_prefetch_key:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5095,11 +5184,11 @@ yyreduce:
else cfg_parser->cfg->prefetch_key = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 5099 "util/configparser.c"
+#line 5188 "util/configparser.c"
break;
- case 492: /* server_deny_any: VAR_DENY_ANY STRING_ARG */
-#line 1969 "util/configparser.y"
+ case 497: /* server_deny_any: VAR_DENY_ANY STRING_ARG */
+#line 1993 "util/configparser.y"
{
OUTYY(("P(server_deny_any:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5107,11 +5196,11 @@ yyreduce:
else cfg_parser->cfg->deny_any = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 5111 "util/configparser.c"
+#line 5200 "util/configparser.c"
break;
- case 493: /* server_unwanted_reply_threshold: VAR_UNWANTED_REPLY_THRESHOLD STRING_ARG */
-#line 1978 "util/configparser.y"
+ case 498: /* server_unwanted_reply_threshold: VAR_UNWANTED_REPLY_THRESHOLD STRING_ARG */
+#line 2002 "util/configparser.y"
{
OUTYY(("P(server_unwanted_reply_threshold:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -5119,21 +5208,21 @@ yyreduce:
else cfg_parser->cfg->unwanted_threshold = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 5123 "util/configparser.c"
+#line 5212 "util/configparser.c"
break;
- case 494: /* server_do_not_query_address: VAR_DO_NOT_QUERY_ADDRESS STRING_ARG */
-#line 1987 "util/configparser.y"
+ case 499: /* server_do_not_query_address: VAR_DO_NOT_QUERY_ADDRESS STRING_ARG */
+#line 2011 "util/configparser.y"
{
OUTYY(("P(server_do_not_query_address:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->donotqueryaddrs, (yyvsp[0].str)))
yyerror("out of memory");
}
-#line 5133 "util/configparser.c"
+#line 5222 "util/configparser.c"
break;
- case 495: /* server_do_not_query_localhost: VAR_DO_NOT_QUERY_LOCALHOST STRING_ARG */
-#line 1994 "util/configparser.y"
+ case 500: /* server_do_not_query_localhost: VAR_DO_NOT_QUERY_LOCALHOST STRING_ARG */
+#line 2018 "util/configparser.y"
{
OUTYY(("P(server_do_not_query_localhost:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5142,22 +5231,22 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 5146 "util/configparser.c"
+#line 5235 "util/configparser.c"
break;
- case 496: /* server_access_control: VAR_ACCESS_CONTROL STRING_ARG STRING_ARG */
-#line 2004 "util/configparser.y"
+ case 501: /* server_access_control: VAR_ACCESS_CONTROL STRING_ARG STRING_ARG */
+#line 2028 "util/configparser.y"
{
OUTYY(("P(server_access_control:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
validate_acl_action((yyvsp[0].str));
if(!cfg_str2list_insert(&cfg_parser->cfg->acls, (yyvsp[-1].str), (yyvsp[0].str)))
fatal_exit("out of memory adding acl");
}
-#line 5157 "util/configparser.c"
+#line 5246 "util/configparser.c"
break;
- case 497: /* server_interface_action: VAR_INTERFACE_ACTION STRING_ARG STRING_ARG */
-#line 2012 "util/configparser.y"
+ case 502: /* server_interface_action: VAR_INTERFACE_ACTION STRING_ARG STRING_ARG */
+#line 2036 "util/configparser.y"
{
OUTYY(("P(server_interface_action:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
validate_acl_action((yyvsp[0].str));
@@ -5165,21 +5254,21 @@ yyreduce:
&cfg_parser->cfg->interface_actions, (yyvsp[-1].str), (yyvsp[0].str)))
fatal_exit("out of memory adding acl");
}
-#line 5169 "util/configparser.c"
+#line 5258 "util/configparser.c"
break;
- case 498: /* server_module_conf: VAR_MODULE_CONF STRING_ARG */
-#line 2021 "util/configparser.y"
+ case 503: /* server_module_conf: VAR_MODULE_CONF STRING_ARG */
+#line 2045 "util/configparser.y"
{
OUTYY(("P(server_module_conf:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->module_conf);
cfg_parser->cfg->module_conf = (yyvsp[0].str);
}
-#line 5179 "util/configparser.c"
+#line 5268 "util/configparser.c"
break;
- case 499: /* server_val_override_date: VAR_VAL_OVERRIDE_DATE STRING_ARG */
-#line 2028 "util/configparser.y"
+ case 504: /* server_val_override_date: VAR_VAL_OVERRIDE_DATE STRING_ARG */
+#line 2052 "util/configparser.y"
{
OUTYY(("P(server_val_override_date:%s)\n", (yyvsp[0].str)));
if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) {
@@ -5196,11 +5285,11 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 5200 "util/configparser.c"
+#line 5289 "util/configparser.c"
break;
- case 500: /* server_val_sig_skew_min: VAR_VAL_SIG_SKEW_MIN STRING_ARG */
-#line 2046 "util/configparser.y"
+ case 505: /* server_val_sig_skew_min: VAR_VAL_SIG_SKEW_MIN STRING_ARG */
+#line 2070 "util/configparser.y"
{
OUTYY(("P(server_val_sig_skew_min:%s)\n", (yyvsp[0].str)));
if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) {
@@ -5212,11 +5301,11 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 5216 "util/configparser.c"
+#line 5305 "util/configparser.c"
break;
- case 501: /* server_val_sig_skew_max: VAR_VAL_SIG_SKEW_MAX STRING_ARG */
-#line 2059 "util/configparser.y"
+ case 506: /* server_val_sig_skew_max: VAR_VAL_SIG_SKEW_MAX STRING_ARG */
+#line 2083 "util/configparser.y"
{
OUTYY(("P(server_val_sig_skew_max:%s)\n", (yyvsp[0].str)));
if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) {
@@ -5228,11 +5317,11 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 5232 "util/configparser.c"
+#line 5321 "util/configparser.c"
break;
- case 502: /* server_val_max_restart: VAR_VAL_MAX_RESTART STRING_ARG */
-#line 2072 "util/configparser.y"
+ case 507: /* server_val_max_restart: VAR_VAL_MAX_RESTART STRING_ARG */
+#line 2096 "util/configparser.y"
{
OUTYY(("P(server_val_max_restart:%s)\n", (yyvsp[0].str)));
if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) {
@@ -5244,11 +5333,11 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 5248 "util/configparser.c"
+#line 5337 "util/configparser.c"
break;
- case 503: /* server_cache_max_ttl: VAR_CACHE_MAX_TTL STRING_ARG */
-#line 2085 "util/configparser.y"
+ case 508: /* server_cache_max_ttl: VAR_CACHE_MAX_TTL STRING_ARG */
+#line 2109 "util/configparser.y"
{
OUTYY(("P(server_cache_max_ttl:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -5256,11 +5345,11 @@ yyreduce:
else cfg_parser->cfg->max_ttl = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 5260 "util/configparser.c"
+#line 5349 "util/configparser.c"
break;
- case 504: /* server_cache_max_negative_ttl: VAR_CACHE_MAX_NEGATIVE_TTL STRING_ARG */
-#line 2094 "util/configparser.y"
+ case 509: /* server_cache_max_negative_ttl: VAR_CACHE_MAX_NEGATIVE_TTL STRING_ARG */
+#line 2118 "util/configparser.y"
{
OUTYY(("P(server_cache_max_negative_ttl:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -5268,11 +5357,11 @@ yyreduce:
else cfg_parser->cfg->max_negative_ttl = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 5272 "util/configparser.c"
+#line 5361 "util/configparser.c"
break;
- case 505: /* server_cache_min_negative_ttl: VAR_CACHE_MIN_NEGATIVE_TTL STRING_ARG */
-#line 2103 "util/configparser.y"
+ case 510: /* server_cache_min_negative_ttl: VAR_CACHE_MIN_NEGATIVE_TTL STRING_ARG */
+#line 2127 "util/configparser.y"
{
OUTYY(("P(server_cache_min_negative_ttl:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -5280,11 +5369,11 @@ yyreduce:
else cfg_parser->cfg->min_negative_ttl = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 5284 "util/configparser.c"
+#line 5373 "util/configparser.c"
break;
- case 506: /* server_cache_min_ttl: VAR_CACHE_MIN_TTL STRING_ARG */
-#line 2112 "util/configparser.y"
+ case 511: /* server_cache_min_ttl: VAR_CACHE_MIN_TTL STRING_ARG */
+#line 2136 "util/configparser.y"
{
OUTYY(("P(server_cache_min_ttl:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -5292,11 +5381,11 @@ yyreduce:
else cfg_parser->cfg->min_ttl = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 5296 "util/configparser.c"
+#line 5385 "util/configparser.c"
break;
- case 507: /* server_bogus_ttl: VAR_BOGUS_TTL STRING_ARG */
-#line 2121 "util/configparser.y"
+ case 512: /* server_bogus_ttl: VAR_BOGUS_TTL STRING_ARG */
+#line 2145 "util/configparser.y"
{
OUTYY(("P(server_bogus_ttl:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -5304,11 +5393,11 @@ yyreduce:
else cfg_parser->cfg->bogus_ttl = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 5308 "util/configparser.c"
+#line 5397 "util/configparser.c"
break;
- case 508: /* server_val_clean_additional: VAR_VAL_CLEAN_ADDITIONAL STRING_ARG */
-#line 2130 "util/configparser.y"
+ case 513: /* server_val_clean_additional: VAR_VAL_CLEAN_ADDITIONAL STRING_ARG */
+#line 2154 "util/configparser.y"
{
OUTYY(("P(server_val_clean_additional:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5317,11 +5406,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 5321 "util/configparser.c"
+#line 5410 "util/configparser.c"
break;
- case 509: /* server_val_permissive_mode: VAR_VAL_PERMISSIVE_MODE STRING_ARG */
-#line 2140 "util/configparser.y"
+ case 514: /* server_val_permissive_mode: VAR_VAL_PERMISSIVE_MODE STRING_ARG */
+#line 2164 "util/configparser.y"
{
OUTYY(("P(server_val_permissive_mode:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5330,11 +5419,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 5334 "util/configparser.c"
+#line 5423 "util/configparser.c"
break;
- case 510: /* server_aggressive_nsec: VAR_AGGRESSIVE_NSEC STRING_ARG */
-#line 2150 "util/configparser.y"
+ case 515: /* server_aggressive_nsec: VAR_AGGRESSIVE_NSEC STRING_ARG */
+#line 2174 "util/configparser.y"
{
OUTYY(("P(server_aggressive_nsec:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5344,11 +5433,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 5348 "util/configparser.c"
+#line 5437 "util/configparser.c"
break;
- case 511: /* server_ignore_cd_flag: VAR_IGNORE_CD_FLAG STRING_ARG */
-#line 2161 "util/configparser.y"
+ case 516: /* server_ignore_cd_flag: VAR_IGNORE_CD_FLAG STRING_ARG */
+#line 2185 "util/configparser.y"
{
OUTYY(("P(server_ignore_cd_flag:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5356,11 +5445,11 @@ yyreduce:
else cfg_parser->cfg->ignore_cd = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 5360 "util/configparser.c"
+#line 5449 "util/configparser.c"
break;
- case 512: /* server_disable_edns_do: VAR_DISABLE_EDNS_DO STRING_ARG */
-#line 2170 "util/configparser.y"
+ case 517: /* server_disable_edns_do: VAR_DISABLE_EDNS_DO STRING_ARG */
+#line 2194 "util/configparser.y"
{
OUTYY(("P(server_disable_edns_do:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5368,11 +5457,11 @@ yyreduce:
else cfg_parser->cfg->disable_edns_do = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 5372 "util/configparser.c"
+#line 5461 "util/configparser.c"
break;
- case 513: /* server_serve_expired: VAR_SERVE_EXPIRED STRING_ARG */
-#line 2179 "util/configparser.y"
+ case 518: /* server_serve_expired: VAR_SERVE_EXPIRED STRING_ARG */
+#line 2203 "util/configparser.y"
{
OUTYY(("P(server_serve_expired:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5380,11 +5469,11 @@ yyreduce:
else cfg_parser->cfg->serve_expired = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 5384 "util/configparser.c"
+#line 5473 "util/configparser.c"
break;
- case 514: /* server_serve_expired_ttl: VAR_SERVE_EXPIRED_TTL STRING_ARG */
-#line 2188 "util/configparser.y"
+ case 519: /* server_serve_expired_ttl: VAR_SERVE_EXPIRED_TTL STRING_ARG */
+#line 2212 "util/configparser.y"
{
OUTYY(("P(server_serve_expired_ttl:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -5392,11 +5481,11 @@ yyreduce:
else cfg_parser->cfg->serve_expired_ttl = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 5396 "util/configparser.c"
+#line 5485 "util/configparser.c"
break;
- case 515: /* server_serve_expired_ttl_reset: VAR_SERVE_EXPIRED_TTL_RESET STRING_ARG */
-#line 2197 "util/configparser.y"
+ case 520: /* server_serve_expired_ttl_reset: VAR_SERVE_EXPIRED_TTL_RESET STRING_ARG */
+#line 2221 "util/configparser.y"
{
OUTYY(("P(server_serve_expired_ttl_reset:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5404,11 +5493,11 @@ yyreduce:
else cfg_parser->cfg->serve_expired_ttl_reset = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 5408 "util/configparser.c"
+#line 5497 "util/configparser.c"
break;
- case 516: /* server_serve_expired_reply_ttl: VAR_SERVE_EXPIRED_REPLY_TTL STRING_ARG */
-#line 2206 "util/configparser.y"
+ case 521: /* server_serve_expired_reply_ttl: VAR_SERVE_EXPIRED_REPLY_TTL STRING_ARG */
+#line 2230 "util/configparser.y"
{
OUTYY(("P(server_serve_expired_reply_ttl:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -5416,11 +5505,11 @@ yyreduce:
else cfg_parser->cfg->serve_expired_reply_ttl = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 5420 "util/configparser.c"
+#line 5509 "util/configparser.c"
break;
- case 517: /* server_serve_expired_client_timeout: VAR_SERVE_EXPIRED_CLIENT_TIMEOUT STRING_ARG */
-#line 2215 "util/configparser.y"
+ case 522: /* server_serve_expired_client_timeout: VAR_SERVE_EXPIRED_CLIENT_TIMEOUT STRING_ARG */
+#line 2239 "util/configparser.y"
{
OUTYY(("P(server_serve_expired_client_timeout:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -5428,11 +5517,11 @@ yyreduce:
else cfg_parser->cfg->serve_expired_client_timeout = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 5432 "util/configparser.c"
+#line 5521 "util/configparser.c"
break;
- case 518: /* server_ede_serve_expired: VAR_EDE_SERVE_EXPIRED STRING_ARG */
-#line 2224 "util/configparser.y"
+ case 523: /* server_ede_serve_expired: VAR_EDE_SERVE_EXPIRED STRING_ARG */
+#line 2248 "util/configparser.y"
{
OUTYY(("P(server_ede_serve_expired:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5440,11 +5529,11 @@ yyreduce:
else cfg_parser->cfg->ede_serve_expired = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 5444 "util/configparser.c"
+#line 5533 "util/configparser.c"
break;
- case 519: /* server_serve_original_ttl: VAR_SERVE_ORIGINAL_TTL STRING_ARG */
-#line 2233 "util/configparser.y"
+ case 524: /* server_serve_original_ttl: VAR_SERVE_ORIGINAL_TTL STRING_ARG */
+#line 2257 "util/configparser.y"
{
OUTYY(("P(server_serve_original_ttl:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5452,11 +5541,11 @@ yyreduce:
else cfg_parser->cfg->serve_original_ttl = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 5456 "util/configparser.c"
+#line 5545 "util/configparser.c"
break;
- case 520: /* server_fake_dsa: VAR_FAKE_DSA STRING_ARG */
-#line 2242 "util/configparser.y"
+ case 525: /* server_fake_dsa: VAR_FAKE_DSA STRING_ARG */
+#line 2266 "util/configparser.y"
{
OUTYY(("P(server_fake_dsa:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5468,11 +5557,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 5472 "util/configparser.c"
+#line 5561 "util/configparser.c"
break;
- case 521: /* server_fake_sha1: VAR_FAKE_SHA1 STRING_ARG */
-#line 2255 "util/configparser.y"
+ case 526: /* server_fake_sha1: VAR_FAKE_SHA1 STRING_ARG */
+#line 2279 "util/configparser.y"
{
OUTYY(("P(server_fake_sha1:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5484,11 +5573,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 5488 "util/configparser.c"
+#line 5577 "util/configparser.c"
break;
- case 522: /* server_val_log_level: VAR_VAL_LOG_LEVEL STRING_ARG */
-#line 2268 "util/configparser.y"
+ case 527: /* server_val_log_level: VAR_VAL_LOG_LEVEL STRING_ARG */
+#line 2292 "util/configparser.y"
{
OUTYY(("P(server_val_log_level:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -5496,21 +5585,21 @@ yyreduce:
else cfg_parser->cfg->val_log_level = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 5500 "util/configparser.c"
+#line 5589 "util/configparser.c"
break;
- case 523: /* server_val_nsec3_keysize_iterations: VAR_VAL_NSEC3_KEYSIZE_ITERATIONS STRING_ARG */
-#line 2277 "util/configparser.y"
+ case 528: /* server_val_nsec3_keysize_iterations: VAR_VAL_NSEC3_KEYSIZE_ITERATIONS STRING_ARG */
+#line 2301 "util/configparser.y"
{
OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->val_nsec3_key_iterations);
cfg_parser->cfg->val_nsec3_key_iterations = (yyvsp[0].str);
}
-#line 5510 "util/configparser.c"
+#line 5599 "util/configparser.c"
break;
- case 524: /* server_zonemd_permissive_mode: VAR_ZONEMD_PERMISSIVE_MODE STRING_ARG */
-#line 2284 "util/configparser.y"
+ case 529: /* server_zonemd_permissive_mode: VAR_ZONEMD_PERMISSIVE_MODE STRING_ARG */
+#line 2308 "util/configparser.y"
{
OUTYY(("P(server_zonemd_permissive_mode:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5518,11 +5607,11 @@ yyreduce:
else cfg_parser->cfg->zonemd_permissive_mode = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 5522 "util/configparser.c"
+#line 5611 "util/configparser.c"
break;
- case 525: /* server_add_holddown: VAR_ADD_HOLDDOWN STRING_ARG */
-#line 2293 "util/configparser.y"
+ case 530: /* server_add_holddown: VAR_ADD_HOLDDOWN STRING_ARG */
+#line 2317 "util/configparser.y"
{
OUTYY(("P(server_add_holddown:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -5530,11 +5619,11 @@ yyreduce:
else cfg_parser->cfg->add_holddown = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 5534 "util/configparser.c"
+#line 5623 "util/configparser.c"
break;
- case 526: /* server_del_holddown: VAR_DEL_HOLDDOWN STRING_ARG */
-#line 2302 "util/configparser.y"
+ case 531: /* server_del_holddown: VAR_DEL_HOLDDOWN STRING_ARG */
+#line 2326 "util/configparser.y"
{
OUTYY(("P(server_del_holddown:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -5542,11 +5631,11 @@ yyreduce:
else cfg_parser->cfg->del_holddown = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 5546 "util/configparser.c"
+#line 5635 "util/configparser.c"
break;
- case 527: /* server_keep_missing: VAR_KEEP_MISSING STRING_ARG */
-#line 2311 "util/configparser.y"
+ case 532: /* server_keep_missing: VAR_KEEP_MISSING STRING_ARG */
+#line 2335 "util/configparser.y"
{
OUTYY(("P(server_keep_missing:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -5554,11 +5643,11 @@ yyreduce:
else cfg_parser->cfg->keep_missing = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 5558 "util/configparser.c"
+#line 5647 "util/configparser.c"
break;
- case 528: /* server_permit_small_holddown: VAR_PERMIT_SMALL_HOLDDOWN STRING_ARG */
-#line 2320 "util/configparser.y"
+ case 533: /* server_permit_small_holddown: VAR_PERMIT_SMALL_HOLDDOWN STRING_ARG */
+#line 2344 "util/configparser.y"
{
OUTYY(("P(server_permit_small_holddown:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5567,22 +5656,22 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 5571 "util/configparser.c"
+#line 5660 "util/configparser.c"
break;
- case 529: /* server_key_cache_size: VAR_KEY_CACHE_SIZE STRING_ARG */
-#line 2330 "util/configparser.y"
+ case 534: /* server_key_cache_size: VAR_KEY_CACHE_SIZE STRING_ARG */
+#line 2354 "util/configparser.y"
{
OUTYY(("P(server_key_cache_size:%s)\n", (yyvsp[0].str)));
if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->key_cache_size))
yyerror("memory size expected");
free((yyvsp[0].str));
}
-#line 5582 "util/configparser.c"
+#line 5671 "util/configparser.c"
break;
- case 530: /* server_key_cache_slabs: VAR_KEY_CACHE_SLABS STRING_ARG */
-#line 2338 "util/configparser.y"
+ case 535: /* server_key_cache_slabs: VAR_KEY_CACHE_SLABS STRING_ARG */
+#line 2362 "util/configparser.y"
{
OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0) {
@@ -5594,22 +5683,22 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 5598 "util/configparser.c"
+#line 5687 "util/configparser.c"
break;
- case 531: /* server_neg_cache_size: VAR_NEG_CACHE_SIZE STRING_ARG */
-#line 2351 "util/configparser.y"
+ case 536: /* server_neg_cache_size: VAR_NEG_CACHE_SIZE STRING_ARG */
+#line 2375 "util/configparser.y"
{
OUTYY(("P(server_neg_cache_size:%s)\n", (yyvsp[0].str)));
if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->neg_cache_size))
yyerror("memory size expected");
free((yyvsp[0].str));
}
-#line 5609 "util/configparser.c"
+#line 5698 "util/configparser.c"
break;
- case 532: /* server_local_zone: VAR_LOCAL_ZONE STRING_ARG STRING_ARG */
-#line 2359 "util/configparser.y"
+ case 537: /* server_local_zone: VAR_LOCAL_ZONE STRING_ARG STRING_ARG */
+#line 2383 "util/configparser.y"
{
OUTYY(("P(server_local_zone:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "static")!=0 && strcmp((yyvsp[0].str), "deny")!=0 &&
@@ -5630,7 +5719,7 @@ yyreduce:
yyerror("local-zone type: expected static, deny, "
"refuse, redirect, transparent, "
"typetransparent, inform, inform_deny, "
- "inform_redirect, always_transparent, block_a,"
+ "inform_redirect, always_transparent, block_a, "
"always_refuse, always_nxdomain, "
"always_nodata, always_deny, always_null, "
"noview, nodefault or ipset");
@@ -5664,21 +5753,21 @@ yyreduce:
fatal_exit("out of memory adding local-zone");
}
}
-#line 5668 "util/configparser.c"
+#line 5757 "util/configparser.c"
break;
- case 533: /* server_local_data: VAR_LOCAL_DATA STRING_ARG */
-#line 2415 "util/configparser.y"
+ case 538: /* server_local_data: VAR_LOCAL_DATA STRING_ARG */
+#line 2439 "util/configparser.y"
{
OUTYY(("P(server_local_data:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->local_data, (yyvsp[0].str)))
fatal_exit("out of memory adding local-data");
}
-#line 5678 "util/configparser.c"
+#line 5767 "util/configparser.c"
break;
- case 534: /* server_local_data_ptr: VAR_LOCAL_DATA_PTR STRING_ARG */
-#line 2422 "util/configparser.y"
+ case 539: /* server_local_data_ptr: VAR_LOCAL_DATA_PTR STRING_ARG */
+#line 2446 "util/configparser.y"
{
char* ptr;
OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[0].str)));
@@ -5692,11 +5781,11 @@ yyreduce:
yyerror("local-data-ptr could not be reversed");
}
}
-#line 5696 "util/configparser.c"
+#line 5785 "util/configparser.c"
break;
- case 535: /* server_minimal_responses: VAR_MINIMAL_RESPONSES STRING_ARG */
-#line 2437 "util/configparser.y"
+ case 540: /* server_minimal_responses: VAR_MINIMAL_RESPONSES STRING_ARG */
+#line 2461 "util/configparser.y"
{
OUTYY(("P(server_minimal_responses:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5705,11 +5794,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 5709 "util/configparser.c"
+#line 5798 "util/configparser.c"
break;
- case 536: /* server_rrset_roundrobin: VAR_RRSET_ROUNDROBIN STRING_ARG */
-#line 2447 "util/configparser.y"
+ case 541: /* server_rrset_roundrobin: VAR_RRSET_ROUNDROBIN STRING_ARG */
+#line 2471 "util/configparser.y"
{
OUTYY(("P(server_rrset_roundrobin:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5718,51 +5807,51 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 5722 "util/configparser.c"
+#line 5811 "util/configparser.c"
break;
- case 537: /* server_unknown_server_time_limit: VAR_UNKNOWN_SERVER_TIME_LIMIT STRING_ARG */
-#line 2457 "util/configparser.y"
+ case 542: /* server_unknown_server_time_limit: VAR_UNKNOWN_SERVER_TIME_LIMIT STRING_ARG */
+#line 2481 "util/configparser.y"
{
OUTYY(("P(server_unknown_server_time_limit:%s)\n", (yyvsp[0].str)));
cfg_parser->cfg->unknown_server_time_limit = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 5732 "util/configparser.c"
+#line 5821 "util/configparser.c"
break;
- case 538: /* server_discard_timeout: VAR_DISCARD_TIMEOUT STRING_ARG */
-#line 2464 "util/configparser.y"
+ case 543: /* server_discard_timeout: VAR_DISCARD_TIMEOUT STRING_ARG */
+#line 2488 "util/configparser.y"
{
OUTYY(("P(server_discard_timeout:%s)\n", (yyvsp[0].str)));
cfg_parser->cfg->discard_timeout = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 5742 "util/configparser.c"
+#line 5831 "util/configparser.c"
break;
- case 539: /* server_wait_limit: VAR_WAIT_LIMIT STRING_ARG */
-#line 2471 "util/configparser.y"
+ case 544: /* server_wait_limit: VAR_WAIT_LIMIT STRING_ARG */
+#line 2495 "util/configparser.y"
{
OUTYY(("P(server_wait_limit:%s)\n", (yyvsp[0].str)));
cfg_parser->cfg->wait_limit = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 5752 "util/configparser.c"
+#line 5841 "util/configparser.c"
break;
- case 540: /* server_wait_limit_cookie: VAR_WAIT_LIMIT_COOKIE STRING_ARG */
-#line 2478 "util/configparser.y"
+ case 545: /* server_wait_limit_cookie: VAR_WAIT_LIMIT_COOKIE STRING_ARG */
+#line 2502 "util/configparser.y"
{
OUTYY(("P(server_wait_limit_cookie:%s)\n", (yyvsp[0].str)));
cfg_parser->cfg->wait_limit_cookie = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 5762 "util/configparser.c"
+#line 5851 "util/configparser.c"
break;
- case 541: /* server_wait_limit_netblock: VAR_WAIT_LIMIT_NETBLOCK STRING_ARG STRING_ARG */
-#line 2485 "util/configparser.y"
+ case 546: /* server_wait_limit_netblock: VAR_WAIT_LIMIT_NETBLOCK STRING_ARG STRING_ARG */
+#line 2509 "util/configparser.y"
{
OUTYY(("P(server_wait_limit_netblock:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) {
@@ -5776,11 +5865,11 @@ yyreduce:
"wait-limit-netblock");
}
}
-#line 5780 "util/configparser.c"
+#line 5869 "util/configparser.c"
break;
- case 542: /* server_wait_limit_cookie_netblock: VAR_WAIT_LIMIT_COOKIE_NETBLOCK STRING_ARG STRING_ARG */
-#line 2500 "util/configparser.y"
+ case 547: /* server_wait_limit_cookie_netblock: VAR_WAIT_LIMIT_COOKIE_NETBLOCK STRING_ARG STRING_ARG */
+#line 2524 "util/configparser.y"
{
OUTYY(("P(server_wait_limit_cookie_netblock:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) {
@@ -5794,31 +5883,31 @@ yyreduce:
"wait-limit-cookie-netblock");
}
}
-#line 5798 "util/configparser.c"
+#line 5887 "util/configparser.c"
break;
- case 543: /* server_max_udp_size: VAR_MAX_UDP_SIZE STRING_ARG */
-#line 2515 "util/configparser.y"
+ case 548: /* server_max_udp_size: VAR_MAX_UDP_SIZE STRING_ARG */
+#line 2539 "util/configparser.y"
{
OUTYY(("P(server_max_udp_size:%s)\n", (yyvsp[0].str)));
cfg_parser->cfg->max_udp_size = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 5808 "util/configparser.c"
+#line 5897 "util/configparser.c"
break;
- case 544: /* server_dns64_prefix: VAR_DNS64_PREFIX STRING_ARG */
-#line 2522 "util/configparser.y"
+ case 549: /* server_dns64_prefix: VAR_DNS64_PREFIX STRING_ARG */
+#line 2546 "util/configparser.y"
{
OUTYY(("P(dns64_prefix:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->dns64_prefix);
cfg_parser->cfg->dns64_prefix = (yyvsp[0].str);
}
-#line 5818 "util/configparser.c"
+#line 5907 "util/configparser.c"
break;
- case 545: /* server_dns64_synthall: VAR_DNS64_SYNTHALL STRING_ARG */
-#line 2529 "util/configparser.y"
+ case 550: /* server_dns64_synthall: VAR_DNS64_SYNTHALL STRING_ARG */
+#line 2553 "util/configparser.y"
{
OUTYY(("P(server_dns64_synthall:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -5826,32 +5915,32 @@ yyreduce:
else cfg_parser->cfg->dns64_synthall = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 5830 "util/configparser.c"
+#line 5919 "util/configparser.c"
break;
- case 546: /* server_dns64_ignore_aaaa: VAR_DNS64_IGNORE_AAAA STRING_ARG */
-#line 2538 "util/configparser.y"
+ case 551: /* server_dns64_ignore_aaaa: VAR_DNS64_IGNORE_AAAA STRING_ARG */
+#line 2562 "util/configparser.y"
{
OUTYY(("P(dns64_ignore_aaaa:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->dns64_ignore_aaaa,
(yyvsp[0].str)))
fatal_exit("out of memory adding dns64-ignore-aaaa");
}
-#line 5841 "util/configparser.c"
+#line 5930 "util/configparser.c"
break;
- case 547: /* server_nat64_prefix: VAR_NAT64_PREFIX STRING_ARG */
-#line 2546 "util/configparser.y"
+ case 552: /* server_nat64_prefix: VAR_NAT64_PREFIX STRING_ARG */
+#line 2570 "util/configparser.y"
{
OUTYY(("P(nat64_prefix:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->nat64_prefix);
cfg_parser->cfg->nat64_prefix = (yyvsp[0].str);
}
-#line 5851 "util/configparser.c"
+#line 5940 "util/configparser.c"
break;
- case 548: /* server_define_tag: VAR_DEFINE_TAG STRING_ARG */
-#line 2553 "util/configparser.y"
+ case 553: /* server_define_tag: VAR_DEFINE_TAG STRING_ARG */
+#line 2577 "util/configparser.y"
{
char* p, *s = (yyvsp[0].str);
OUTYY(("P(server_define_tag:%s)\n", (yyvsp[0].str)));
@@ -5864,11 +5953,11 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 5868 "util/configparser.c"
+#line 5957 "util/configparser.c"
break;
- case 549: /* server_local_zone_tag: VAR_LOCAL_ZONE_TAG STRING_ARG STRING_ARG */
-#line 2567 "util/configparser.y"
+ case 554: /* server_local_zone_tag: VAR_LOCAL_ZONE_TAG STRING_ARG STRING_ARG */
+#line 2591 "util/configparser.y"
{
size_t len = 0;
uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str),
@@ -5888,11 +5977,11 @@ yyreduce:
}
}
}
-#line 5892 "util/configparser.c"
+#line 5981 "util/configparser.c"
break;
- case 550: /* server_access_control_tag: VAR_ACCESS_CONTROL_TAG STRING_ARG STRING_ARG */
-#line 2588 "util/configparser.y"
+ case 555: /* server_access_control_tag: VAR_ACCESS_CONTROL_TAG STRING_ARG STRING_ARG */
+#line 2612 "util/configparser.y"
{
size_t len = 0;
uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str),
@@ -5912,11 +6001,11 @@ yyreduce:
}
}
}
-#line 5916 "util/configparser.c"
+#line 6005 "util/configparser.c"
break;
- case 551: /* server_access_control_tag_action: VAR_ACCESS_CONTROL_TAG_ACTION STRING_ARG STRING_ARG STRING_ARG */
-#line 2609 "util/configparser.y"
+ case 556: /* server_access_control_tag_action: VAR_ACCESS_CONTROL_TAG_ACTION STRING_ARG STRING_ARG STRING_ARG */
+#line 2633 "util/configparser.y"
{
OUTYY(("P(server_access_control_tag_action:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str)));
if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_actions,
@@ -5927,11 +6016,11 @@ yyreduce:
free((yyvsp[0].str));
}
}
-#line 5931 "util/configparser.c"
+#line 6020 "util/configparser.c"
break;
- case 552: /* server_access_control_tag_data: VAR_ACCESS_CONTROL_TAG_DATA STRING_ARG STRING_ARG STRING_ARG */
-#line 2621 "util/configparser.y"
+ case 557: /* server_access_control_tag_data: VAR_ACCESS_CONTROL_TAG_DATA STRING_ARG STRING_ARG STRING_ARG */
+#line 2645 "util/configparser.y"
{
OUTYY(("P(server_access_control_tag_data:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str)));
if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_datas,
@@ -5942,11 +6031,11 @@ yyreduce:
free((yyvsp[0].str));
}
}
-#line 5946 "util/configparser.c"
+#line 6035 "util/configparser.c"
break;
- case 553: /* server_local_zone_override: VAR_LOCAL_ZONE_OVERRIDE STRING_ARG STRING_ARG STRING_ARG */
-#line 2633 "util/configparser.y"
+ case 558: /* server_local_zone_override: VAR_LOCAL_ZONE_OVERRIDE STRING_ARG STRING_ARG STRING_ARG */
+#line 2657 "util/configparser.y"
{
OUTYY(("P(server_local_zone_override:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str)));
if(!cfg_str3list_insert(&cfg_parser->cfg->local_zone_overrides,
@@ -5957,11 +6046,11 @@ yyreduce:
free((yyvsp[0].str));
}
}
-#line 5961 "util/configparser.c"
+#line 6050 "util/configparser.c"
break;
- case 554: /* server_access_control_view: VAR_ACCESS_CONTROL_VIEW STRING_ARG STRING_ARG */
-#line 2645 "util/configparser.y"
+ case 559: /* server_access_control_view: VAR_ACCESS_CONTROL_VIEW STRING_ARG STRING_ARG */
+#line 2669 "util/configparser.y"
{
OUTYY(("P(server_access_control_view:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
if(!cfg_str2list_insert(&cfg_parser->cfg->acl_view,
@@ -5969,11 +6058,11 @@ yyreduce:
yyerror("out of memory");
}
}
-#line 5973 "util/configparser.c"
+#line 6062 "util/configparser.c"
break;
- case 555: /* server_interface_tag: VAR_INTERFACE_TAG STRING_ARG STRING_ARG */
-#line 2654 "util/configparser.y"
+ case 560: /* server_interface_tag: VAR_INTERFACE_TAG STRING_ARG STRING_ARG */
+#line 2678 "util/configparser.y"
{
size_t len = 0;
uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str),
@@ -5993,11 +6082,11 @@ yyreduce:
}
}
}
-#line 5997 "util/configparser.c"
+#line 6086 "util/configparser.c"
break;
- case 556: /* server_interface_tag_action: VAR_INTERFACE_TAG_ACTION STRING_ARG STRING_ARG STRING_ARG */
-#line 2675 "util/configparser.y"
+ case 561: /* server_interface_tag_action: VAR_INTERFACE_TAG_ACTION STRING_ARG STRING_ARG STRING_ARG */
+#line 2699 "util/configparser.y"
{
OUTYY(("P(server_interface_tag_action:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str)));
if(!cfg_str3list_insert(&cfg_parser->cfg->interface_tag_actions,
@@ -6008,11 +6097,11 @@ yyreduce:
free((yyvsp[0].str));
}
}
-#line 6012 "util/configparser.c"
+#line 6101 "util/configparser.c"
break;
- case 557: /* server_interface_tag_data: VAR_INTERFACE_TAG_DATA STRING_ARG STRING_ARG STRING_ARG */
-#line 2687 "util/configparser.y"
+ case 562: /* server_interface_tag_data: VAR_INTERFACE_TAG_DATA STRING_ARG STRING_ARG STRING_ARG */
+#line 2711 "util/configparser.y"
{
OUTYY(("P(server_interface_tag_data:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str)));
if(!cfg_str3list_insert(&cfg_parser->cfg->interface_tag_datas,
@@ -6023,11 +6112,11 @@ yyreduce:
free((yyvsp[0].str));
}
}
-#line 6027 "util/configparser.c"
+#line 6116 "util/configparser.c"
break;
- case 558: /* server_interface_view: VAR_INTERFACE_VIEW STRING_ARG STRING_ARG */
-#line 2699 "util/configparser.y"
+ case 563: /* server_interface_view: VAR_INTERFACE_VIEW STRING_ARG STRING_ARG */
+#line 2723 "util/configparser.y"
{
OUTYY(("P(server_interface_view:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
if(!cfg_str2list_insert(&cfg_parser->cfg->interface_view,
@@ -6035,11 +6124,11 @@ yyreduce:
yyerror("out of memory");
}
}
-#line 6039 "util/configparser.c"
+#line 6128 "util/configparser.c"
break;
- case 559: /* server_response_ip_tag: VAR_RESPONSE_IP_TAG STRING_ARG STRING_ARG */
-#line 2708 "util/configparser.y"
+ case 564: /* server_response_ip_tag: VAR_RESPONSE_IP_TAG STRING_ARG STRING_ARG */
+#line 2732 "util/configparser.y"
{
size_t len = 0;
uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str),
@@ -6059,11 +6148,11 @@ yyreduce:
}
}
}
-#line 6063 "util/configparser.c"
+#line 6152 "util/configparser.c"
break;
- case 560: /* server_ip_ratelimit: VAR_IP_RATELIMIT STRING_ARG */
-#line 2729 "util/configparser.y"
+ case 565: /* server_ip_ratelimit: VAR_IP_RATELIMIT STRING_ARG */
+#line 2753 "util/configparser.y"
{
OUTYY(("P(server_ip_ratelimit:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -6071,11 +6160,11 @@ yyreduce:
else cfg_parser->cfg->ip_ratelimit = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 6075 "util/configparser.c"
+#line 6164 "util/configparser.c"
break;
- case 561: /* server_ip_ratelimit_cookie: VAR_IP_RATELIMIT_COOKIE STRING_ARG */
-#line 2738 "util/configparser.y"
+ case 566: /* server_ip_ratelimit_cookie: VAR_IP_RATELIMIT_COOKIE STRING_ARG */
+#line 2762 "util/configparser.y"
{
OUTYY(("P(server_ip_ratelimit_cookie:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -6083,11 +6172,11 @@ yyreduce:
else cfg_parser->cfg->ip_ratelimit_cookie = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 6087 "util/configparser.c"
+#line 6176 "util/configparser.c"
break;
- case 562: /* server_ratelimit: VAR_RATELIMIT STRING_ARG */
-#line 2747 "util/configparser.y"
+ case 567: /* server_ratelimit: VAR_RATELIMIT STRING_ARG */
+#line 2771 "util/configparser.y"
{
OUTYY(("P(server_ratelimit:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -6095,33 +6184,33 @@ yyreduce:
else cfg_parser->cfg->ratelimit = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 6099 "util/configparser.c"
+#line 6188 "util/configparser.c"
break;
- case 563: /* server_ip_ratelimit_size: VAR_IP_RATELIMIT_SIZE STRING_ARG */
-#line 2756 "util/configparser.y"
+ case 568: /* server_ip_ratelimit_size: VAR_IP_RATELIMIT_SIZE STRING_ARG */
+#line 2780 "util/configparser.y"
{
OUTYY(("P(server_ip_ratelimit_size:%s)\n", (yyvsp[0].str)));
if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ip_ratelimit_size))
yyerror("memory size expected");
free((yyvsp[0].str));
}
-#line 6110 "util/configparser.c"
+#line 6199 "util/configparser.c"
break;
- case 564: /* server_ratelimit_size: VAR_RATELIMIT_SIZE STRING_ARG */
-#line 2764 "util/configparser.y"
+ case 569: /* server_ratelimit_size: VAR_RATELIMIT_SIZE STRING_ARG */
+#line 2788 "util/configparser.y"
{
OUTYY(("P(server_ratelimit_size:%s)\n", (yyvsp[0].str)));
if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ratelimit_size))
yyerror("memory size expected");
free((yyvsp[0].str));
}
-#line 6121 "util/configparser.c"
+#line 6210 "util/configparser.c"
break;
- case 565: /* server_ip_ratelimit_slabs: VAR_IP_RATELIMIT_SLABS STRING_ARG */
-#line 2772 "util/configparser.y"
+ case 570: /* server_ip_ratelimit_slabs: VAR_IP_RATELIMIT_SLABS STRING_ARG */
+#line 2796 "util/configparser.y"
{
OUTYY(("P(server_ip_ratelimit_slabs:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0) {
@@ -6133,11 +6222,11 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 6137 "util/configparser.c"
+#line 6226 "util/configparser.c"
break;
- case 566: /* server_ratelimit_slabs: VAR_RATELIMIT_SLABS STRING_ARG */
-#line 2785 "util/configparser.y"
+ case 571: /* server_ratelimit_slabs: VAR_RATELIMIT_SLABS STRING_ARG */
+#line 2809 "util/configparser.y"
{
OUTYY(("P(server_ratelimit_slabs:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0) {
@@ -6149,11 +6238,11 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 6153 "util/configparser.c"
+#line 6242 "util/configparser.c"
break;
- case 567: /* server_ratelimit_for_domain: VAR_RATELIMIT_FOR_DOMAIN STRING_ARG STRING_ARG */
-#line 2798 "util/configparser.y"
+ case 572: /* server_ratelimit_for_domain: VAR_RATELIMIT_FOR_DOMAIN STRING_ARG STRING_ARG */
+#line 2822 "util/configparser.y"
{
OUTYY(("P(server_ratelimit_for_domain:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) {
@@ -6167,11 +6256,11 @@ yyreduce:
"ratelimit-for-domain");
}
}
-#line 6171 "util/configparser.c"
+#line 6260 "util/configparser.c"
break;
- case 568: /* server_ratelimit_below_domain: VAR_RATELIMIT_BELOW_DOMAIN STRING_ARG STRING_ARG */
-#line 2813 "util/configparser.y"
+ case 573: /* server_ratelimit_below_domain: VAR_RATELIMIT_BELOW_DOMAIN STRING_ARG STRING_ARG */
+#line 2837 "util/configparser.y"
{
OUTYY(("P(server_ratelimit_below_domain:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) {
@@ -6185,11 +6274,11 @@ yyreduce:
"ratelimit-below-domain");
}
}
-#line 6189 "util/configparser.c"
+#line 6278 "util/configparser.c"
break;
- case 569: /* server_ip_ratelimit_factor: VAR_IP_RATELIMIT_FACTOR STRING_ARG */
-#line 2828 "util/configparser.y"
+ case 574: /* server_ip_ratelimit_factor: VAR_IP_RATELIMIT_FACTOR STRING_ARG */
+#line 2852 "util/configparser.y"
{
OUTYY(("P(server_ip_ratelimit_factor:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -6197,11 +6286,11 @@ yyreduce:
else cfg_parser->cfg->ip_ratelimit_factor = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 6201 "util/configparser.c"
+#line 6290 "util/configparser.c"
break;
- case 570: /* server_ratelimit_factor: VAR_RATELIMIT_FACTOR STRING_ARG */
-#line 2837 "util/configparser.y"
+ case 575: /* server_ratelimit_factor: VAR_RATELIMIT_FACTOR STRING_ARG */
+#line 2861 "util/configparser.y"
{
OUTYY(("P(server_ratelimit_factor:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -6209,11 +6298,11 @@ yyreduce:
else cfg_parser->cfg->ratelimit_factor = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 6213 "util/configparser.c"
+#line 6302 "util/configparser.c"
break;
- case 571: /* server_ip_ratelimit_backoff: VAR_IP_RATELIMIT_BACKOFF STRING_ARG */
-#line 2846 "util/configparser.y"
+ case 576: /* server_ip_ratelimit_backoff: VAR_IP_RATELIMIT_BACKOFF STRING_ARG */
+#line 2870 "util/configparser.y"
{
OUTYY(("P(server_ip_ratelimit_backoff:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -6222,11 +6311,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 6226 "util/configparser.c"
+#line 6315 "util/configparser.c"
break;
- case 572: /* server_ratelimit_backoff: VAR_RATELIMIT_BACKOFF STRING_ARG */
-#line 2856 "util/configparser.y"
+ case 577: /* server_ratelimit_backoff: VAR_RATELIMIT_BACKOFF STRING_ARG */
+#line 2880 "util/configparser.y"
{
OUTYY(("P(server_ratelimit_backoff:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -6235,11 +6324,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 6239 "util/configparser.c"
+#line 6328 "util/configparser.c"
break;
- case 573: /* server_outbound_msg_retry: VAR_OUTBOUND_MSG_RETRY STRING_ARG */
-#line 2866 "util/configparser.y"
+ case 578: /* server_outbound_msg_retry: VAR_OUTBOUND_MSG_RETRY STRING_ARG */
+#line 2890 "util/configparser.y"
{
OUTYY(("P(server_outbound_msg_retry:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -6247,11 +6336,11 @@ yyreduce:
else cfg_parser->cfg->outbound_msg_retry = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 6251 "util/configparser.c"
+#line 6340 "util/configparser.c"
break;
- case 574: /* server_max_sent_count: VAR_MAX_SENT_COUNT STRING_ARG */
-#line 2875 "util/configparser.y"
+ case 579: /* server_max_sent_count: VAR_MAX_SENT_COUNT STRING_ARG */
+#line 2899 "util/configparser.y"
{
OUTYY(("P(server_max_sent_count:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -6259,11 +6348,11 @@ yyreduce:
else cfg_parser->cfg->max_sent_count = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 6263 "util/configparser.c"
+#line 6352 "util/configparser.c"
break;
- case 575: /* server_max_query_restarts: VAR_MAX_QUERY_RESTARTS STRING_ARG */
-#line 2884 "util/configparser.y"
+ case 580: /* server_max_query_restarts: VAR_MAX_QUERY_RESTARTS STRING_ARG */
+#line 2908 "util/configparser.y"
{
OUTYY(("P(server_max_query_restarts:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -6271,20 +6360,20 @@ yyreduce:
else cfg_parser->cfg->max_query_restarts = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 6275 "util/configparser.c"
+#line 6364 "util/configparser.c"
break;
- case 576: /* server_low_rtt: VAR_LOW_RTT STRING_ARG */
-#line 2893 "util/configparser.y"
+ case 581: /* server_low_rtt: VAR_LOW_RTT STRING_ARG */
+#line 2917 "util/configparser.y"
{
OUTYY(("P(low-rtt option is deprecated, use fast-server-num instead)\n"));
free((yyvsp[0].str));
}
-#line 6284 "util/configparser.c"
+#line 6373 "util/configparser.c"
break;
- case 577: /* server_fast_server_num: VAR_FAST_SERVER_NUM STRING_ARG */
-#line 2899 "util/configparser.y"
+ case 582: /* server_fast_server_num: VAR_FAST_SERVER_NUM STRING_ARG */
+#line 2923 "util/configparser.y"
{
OUTYY(("P(server_fast_server_num:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) <= 0)
@@ -6292,11 +6381,11 @@ yyreduce:
else cfg_parser->cfg->fast_server_num = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 6296 "util/configparser.c"
+#line 6385 "util/configparser.c"
break;
- case 578: /* server_fast_server_permil: VAR_FAST_SERVER_PERMIL STRING_ARG */
-#line 2908 "util/configparser.y"
+ case 583: /* server_fast_server_permil: VAR_FAST_SERVER_PERMIL STRING_ARG */
+#line 2932 "util/configparser.y"
{
OUTYY(("P(server_fast_server_permil:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -6304,11 +6393,11 @@ yyreduce:
else cfg_parser->cfg->fast_server_permil = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 6308 "util/configparser.c"
+#line 6397 "util/configparser.c"
break;
- case 579: /* server_qname_minimisation: VAR_QNAME_MINIMISATION STRING_ARG */
-#line 2917 "util/configparser.y"
+ case 584: /* server_qname_minimisation: VAR_QNAME_MINIMISATION STRING_ARG */
+#line 2941 "util/configparser.y"
{
OUTYY(("P(server_qname_minimisation:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -6317,11 +6406,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 6321 "util/configparser.c"
+#line 6410 "util/configparser.c"
break;
- case 580: /* server_qname_minimisation_strict: VAR_QNAME_MINIMISATION_STRICT STRING_ARG */
-#line 2927 "util/configparser.y"
+ case 585: /* server_qname_minimisation_strict: VAR_QNAME_MINIMISATION_STRICT STRING_ARG */
+#line 2951 "util/configparser.y"
{
OUTYY(("P(server_qname_minimisation_strict:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -6330,11 +6419,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 6334 "util/configparser.c"
+#line 6423 "util/configparser.c"
break;
- case 581: /* server_pad_responses: VAR_PAD_RESPONSES STRING_ARG */
-#line 2937 "util/configparser.y"
+ case 586: /* server_pad_responses: VAR_PAD_RESPONSES STRING_ARG */
+#line 2961 "util/configparser.y"
{
OUTYY(("P(server_pad_responses:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -6343,11 +6432,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 6347 "util/configparser.c"
+#line 6436 "util/configparser.c"
break;
- case 582: /* server_pad_responses_block_size: VAR_PAD_RESPONSES_BLOCK_SIZE STRING_ARG */
-#line 2947 "util/configparser.y"
+ case 587: /* server_pad_responses_block_size: VAR_PAD_RESPONSES_BLOCK_SIZE STRING_ARG */
+#line 2971 "util/configparser.y"
{
OUTYY(("P(server_pad_responses_block_size:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -6355,11 +6444,11 @@ yyreduce:
else cfg_parser->cfg->pad_responses_block_size = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 6359 "util/configparser.c"
+#line 6448 "util/configparser.c"
break;
- case 583: /* server_pad_queries: VAR_PAD_QUERIES STRING_ARG */
-#line 2956 "util/configparser.y"
+ case 588: /* server_pad_queries: VAR_PAD_QUERIES STRING_ARG */
+#line 2980 "util/configparser.y"
{
OUTYY(("P(server_pad_queries:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -6368,11 +6457,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 6372 "util/configparser.c"
+#line 6461 "util/configparser.c"
break;
- case 584: /* server_pad_queries_block_size: VAR_PAD_QUERIES_BLOCK_SIZE STRING_ARG */
-#line 2966 "util/configparser.y"
+ case 589: /* server_pad_queries_block_size: VAR_PAD_QUERIES_BLOCK_SIZE STRING_ARG */
+#line 2990 "util/configparser.y"
{
OUTYY(("P(server_pad_queries_block_size:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -6380,11 +6469,11 @@ yyreduce:
else cfg_parser->cfg->pad_queries_block_size = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 6384 "util/configparser.c"
+#line 6473 "util/configparser.c"
break;
- case 585: /* server_ipsecmod_enabled: VAR_IPSECMOD_ENABLED STRING_ARG */
-#line 2975 "util/configparser.y"
+ case 590: /* server_ipsecmod_enabled: VAR_IPSECMOD_ENABLED STRING_ARG */
+#line 2999 "util/configparser.y"
{
#ifdef USE_IPSECMOD
OUTYY(("P(server_ipsecmod_enabled:%s)\n", (yyvsp[0].str)));
@@ -6396,11 +6485,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 6400 "util/configparser.c"
+#line 6489 "util/configparser.c"
break;
- case 586: /* server_ipsecmod_ignore_bogus: VAR_IPSECMOD_IGNORE_BOGUS STRING_ARG */
-#line 2988 "util/configparser.y"
+ case 591: /* server_ipsecmod_ignore_bogus: VAR_IPSECMOD_IGNORE_BOGUS STRING_ARG */
+#line 3012 "util/configparser.y"
{
#ifdef USE_IPSECMOD
OUTYY(("P(server_ipsecmod_ignore_bogus:%s)\n", (yyvsp[0].str)));
@@ -6412,11 +6501,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 6416 "util/configparser.c"
+#line 6505 "util/configparser.c"
break;
- case 587: /* server_ipsecmod_hook: VAR_IPSECMOD_HOOK STRING_ARG */
-#line 3001 "util/configparser.y"
+ case 592: /* server_ipsecmod_hook: VAR_IPSECMOD_HOOK STRING_ARG */
+#line 3025 "util/configparser.y"
{
#ifdef USE_IPSECMOD
OUTYY(("P(server_ipsecmod_hook:%s)\n", (yyvsp[0].str)));
@@ -6427,11 +6516,11 @@ yyreduce:
free((yyvsp[0].str));
#endif
}
-#line 6431 "util/configparser.c"
+#line 6520 "util/configparser.c"
break;
- case 588: /* server_ipsecmod_max_ttl: VAR_IPSECMOD_MAX_TTL STRING_ARG */
-#line 3013 "util/configparser.y"
+ case 593: /* server_ipsecmod_max_ttl: VAR_IPSECMOD_MAX_TTL STRING_ARG */
+#line 3037 "util/configparser.y"
{
#ifdef USE_IPSECMOD
OUTYY(("P(server_ipsecmod_max_ttl:%s)\n", (yyvsp[0].str)));
@@ -6444,11 +6533,11 @@ yyreduce:
free((yyvsp[0].str));
#endif
}
-#line 6448 "util/configparser.c"
+#line 6537 "util/configparser.c"
break;
- case 589: /* server_ipsecmod_whitelist: VAR_IPSECMOD_WHITELIST STRING_ARG */
-#line 3027 "util/configparser.y"
+ case 594: /* server_ipsecmod_whitelist: VAR_IPSECMOD_WHITELIST STRING_ARG */
+#line 3051 "util/configparser.y"
{
#ifdef USE_IPSECMOD
OUTYY(("P(server_ipsecmod_whitelist:%s)\n", (yyvsp[0].str)));
@@ -6459,11 +6548,11 @@ yyreduce:
free((yyvsp[0].str));
#endif
}
-#line 6463 "util/configparser.c"
+#line 6552 "util/configparser.c"
break;
- case 590: /* server_ipsecmod_strict: VAR_IPSECMOD_STRICT STRING_ARG */
-#line 3039 "util/configparser.y"
+ case 595: /* server_ipsecmod_strict: VAR_IPSECMOD_STRICT STRING_ARG */
+#line 3063 "util/configparser.y"
{
#ifdef USE_IPSECMOD
OUTYY(("P(server_ipsecmod_strict:%s)\n", (yyvsp[0].str)));
@@ -6476,11 +6565,11 @@ yyreduce:
free((yyvsp[0].str));
#endif
}
-#line 6480 "util/configparser.c"
+#line 6569 "util/configparser.c"
break;
- case 591: /* server_edns_client_string: VAR_EDNS_CLIENT_STRING STRING_ARG STRING_ARG */
-#line 3053 "util/configparser.y"
+ case 596: /* server_edns_client_string: VAR_EDNS_CLIENT_STRING STRING_ARG STRING_ARG */
+#line 3077 "util/configparser.y"
{
OUTYY(("P(server_edns_client_string:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
if(!cfg_str2list_insert(
@@ -6488,11 +6577,11 @@ yyreduce:
fatal_exit("out of memory adding "
"edns-client-string");
}
-#line 6492 "util/configparser.c"
+#line 6581 "util/configparser.c"
break;
- case 592: /* server_edns_client_string_opcode: VAR_EDNS_CLIENT_STRING_OPCODE STRING_ARG */
-#line 3062 "util/configparser.y"
+ case 597: /* server_edns_client_string_opcode: VAR_EDNS_CLIENT_STRING_OPCODE STRING_ARG */
+#line 3086 "util/configparser.y"
{
OUTYY(("P(edns_client_string_opcode:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -6502,11 +6591,11 @@ yyreduce:
else cfg_parser->cfg->edns_client_string_opcode = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 6506 "util/configparser.c"
+#line 6595 "util/configparser.c"
break;
- case 593: /* server_ede: VAR_EDE STRING_ARG */
-#line 3073 "util/configparser.y"
+ case 598: /* server_ede: VAR_EDE STRING_ARG */
+#line 3097 "util/configparser.y"
{
OUTYY(("P(server_ede:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -6514,11 +6603,11 @@ yyreduce:
else cfg_parser->cfg->ede = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 6518 "util/configparser.c"
+#line 6607 "util/configparser.c"
break;
- case 594: /* server_dns_error_reporting: VAR_DNS_ERROR_REPORTING STRING_ARG */
-#line 3082 "util/configparser.y"
+ case 599: /* server_dns_error_reporting: VAR_DNS_ERROR_REPORTING STRING_ARG */
+#line 3106 "util/configparser.y"
{
OUTYY(("P(server_dns_error_reporting:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -6526,21 +6615,21 @@ yyreduce:
else cfg_parser->cfg->dns_error_reporting = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 6530 "util/configparser.c"
+#line 6619 "util/configparser.c"
break;
- case 595: /* server_proxy_protocol_port: VAR_PROXY_PROTOCOL_PORT STRING_ARG */
-#line 3091 "util/configparser.y"
+ case 600: /* server_proxy_protocol_port: VAR_PROXY_PROTOCOL_PORT STRING_ARG */
+#line 3115 "util/configparser.y"
{
OUTYY(("P(server_proxy_protocol_port:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->proxy_protocol_port, (yyvsp[0].str)))
yyerror("out of memory");
}
-#line 6540 "util/configparser.c"
+#line 6629 "util/configparser.c"
break;
- case 596: /* stub_name: VAR_NAME STRING_ARG */
-#line 3098 "util/configparser.y"
+ case 601: /* stub_name: VAR_NAME STRING_ARG */
+#line 3122 "util/configparser.y"
{
OUTYY(("P(name:%s)\n", (yyvsp[0].str)));
if(cfg_parser->cfg->stubs->name)
@@ -6549,31 +6638,31 @@ yyreduce:
free(cfg_parser->cfg->stubs->name);
cfg_parser->cfg->stubs->name = (yyvsp[0].str);
}
-#line 6553 "util/configparser.c"
+#line 6642 "util/configparser.c"
break;
- case 597: /* stub_host: VAR_STUB_HOST STRING_ARG */
-#line 3108 "util/configparser.y"
+ case 602: /* stub_host: VAR_STUB_HOST STRING_ARG */
+#line 3132 "util/configparser.y"
{
OUTYY(("P(stub-host:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->hosts, (yyvsp[0].str)))
yyerror("out of memory");
}
-#line 6563 "util/configparser.c"
+#line 6652 "util/configparser.c"
break;
- case 598: /* stub_addr: VAR_STUB_ADDR STRING_ARG */
-#line 3115 "util/configparser.y"
+ case 603: /* stub_addr: VAR_STUB_ADDR STRING_ARG */
+#line 3139 "util/configparser.y"
{
OUTYY(("P(stub-addr:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->addrs, (yyvsp[0].str)))
yyerror("out of memory");
}
-#line 6573 "util/configparser.c"
+#line 6662 "util/configparser.c"
break;
- case 599: /* stub_first: VAR_STUB_FIRST STRING_ARG */
-#line 3122 "util/configparser.y"
+ case 604: /* stub_first: VAR_STUB_FIRST STRING_ARG */
+#line 3146 "util/configparser.y"
{
OUTYY(("P(stub-first:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -6581,11 +6670,11 @@ yyreduce:
else cfg_parser->cfg->stubs->isfirst=(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 6585 "util/configparser.c"
+#line 6674 "util/configparser.c"
break;
- case 600: /* stub_no_cache: VAR_STUB_NO_CACHE STRING_ARG */
-#line 3131 "util/configparser.y"
+ case 605: /* stub_no_cache: VAR_STUB_NO_CACHE STRING_ARG */
+#line 3155 "util/configparser.y"
{
OUTYY(("P(stub-no-cache:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -6593,11 +6682,11 @@ yyreduce:
else cfg_parser->cfg->stubs->no_cache=(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 6597 "util/configparser.c"
+#line 6686 "util/configparser.c"
break;
- case 601: /* stub_ssl_upstream: VAR_STUB_SSL_UPSTREAM STRING_ARG */
-#line 3140 "util/configparser.y"
+ case 606: /* stub_ssl_upstream: VAR_STUB_SSL_UPSTREAM STRING_ARG */
+#line 3164 "util/configparser.y"
{
OUTYY(("P(stub-ssl-upstream:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -6606,11 +6695,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 6610 "util/configparser.c"
+#line 6699 "util/configparser.c"
break;
- case 602: /* stub_tcp_upstream: VAR_STUB_TCP_UPSTREAM STRING_ARG */
-#line 3150 "util/configparser.y"
+ case 607: /* stub_tcp_upstream: VAR_STUB_TCP_UPSTREAM STRING_ARG */
+#line 3174 "util/configparser.y"
{
OUTYY(("P(stub-tcp-upstream:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -6619,11 +6708,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 6623 "util/configparser.c"
+#line 6712 "util/configparser.c"
break;
- case 603: /* stub_prime: VAR_STUB_PRIME STRING_ARG */
-#line 3160 "util/configparser.y"
+ case 608: /* stub_prime: VAR_STUB_PRIME STRING_ARG */
+#line 3184 "util/configparser.y"
{
OUTYY(("P(stub-prime:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -6632,11 +6721,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 6636 "util/configparser.c"
+#line 6725 "util/configparser.c"
break;
- case 604: /* forward_name: VAR_NAME STRING_ARG */
-#line 3170 "util/configparser.y"
+ case 609: /* forward_name: VAR_NAME STRING_ARG */
+#line 3194 "util/configparser.y"
{
OUTYY(("P(name:%s)\n", (yyvsp[0].str)));
if(cfg_parser->cfg->forwards->name)
@@ -6645,31 +6734,31 @@ yyreduce:
free(cfg_parser->cfg->forwards->name);
cfg_parser->cfg->forwards->name = (yyvsp[0].str);
}
-#line 6649 "util/configparser.c"
+#line 6738 "util/configparser.c"
break;
- case 605: /* forward_host: VAR_FORWARD_HOST STRING_ARG */
-#line 3180 "util/configparser.y"
+ case 610: /* forward_host: VAR_FORWARD_HOST STRING_ARG */
+#line 3204 "util/configparser.y"
{
OUTYY(("P(forward-host:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->hosts, (yyvsp[0].str)))
yyerror("out of memory");
}
-#line 6659 "util/configparser.c"
+#line 6748 "util/configparser.c"
break;
- case 606: /* forward_addr: VAR_FORWARD_ADDR STRING_ARG */
-#line 3187 "util/configparser.y"
+ case 611: /* forward_addr: VAR_FORWARD_ADDR STRING_ARG */
+#line 3211 "util/configparser.y"
{
OUTYY(("P(forward-addr:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->addrs, (yyvsp[0].str)))
yyerror("out of memory");
}
-#line 6669 "util/configparser.c"
+#line 6758 "util/configparser.c"
break;
- case 607: /* forward_first: VAR_FORWARD_FIRST STRING_ARG */
-#line 3194 "util/configparser.y"
+ case 612: /* forward_first: VAR_FORWARD_FIRST STRING_ARG */
+#line 3218 "util/configparser.y"
{
OUTYY(("P(forward-first:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -6677,11 +6766,11 @@ yyreduce:
else cfg_parser->cfg->forwards->isfirst=(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 6681 "util/configparser.c"
+#line 6770 "util/configparser.c"
break;
- case 608: /* forward_no_cache: VAR_FORWARD_NO_CACHE STRING_ARG */
-#line 3203 "util/configparser.y"
+ case 613: /* forward_no_cache: VAR_FORWARD_NO_CACHE STRING_ARG */
+#line 3227 "util/configparser.y"
{
OUTYY(("P(forward-no-cache:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -6689,11 +6778,11 @@ yyreduce:
else cfg_parser->cfg->forwards->no_cache=(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 6693 "util/configparser.c"
+#line 6782 "util/configparser.c"
break;
- case 609: /* forward_ssl_upstream: VAR_FORWARD_SSL_UPSTREAM STRING_ARG */
-#line 3212 "util/configparser.y"
+ case 614: /* forward_ssl_upstream: VAR_FORWARD_SSL_UPSTREAM STRING_ARG */
+#line 3236 "util/configparser.y"
{
OUTYY(("P(forward-ssl-upstream:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -6702,11 +6791,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 6706 "util/configparser.c"
+#line 6795 "util/configparser.c"
break;
- case 610: /* forward_tcp_upstream: VAR_FORWARD_TCP_UPSTREAM STRING_ARG */
-#line 3222 "util/configparser.y"
+ case 615: /* forward_tcp_upstream: VAR_FORWARD_TCP_UPSTREAM STRING_ARG */
+#line 3246 "util/configparser.y"
{
OUTYY(("P(forward-tcp-upstream:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -6715,11 +6804,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 6719 "util/configparser.c"
+#line 6808 "util/configparser.c"
break;
- case 611: /* auth_name: VAR_NAME STRING_ARG */
-#line 3232 "util/configparser.y"
+ case 616: /* auth_name: VAR_NAME STRING_ARG */
+#line 3256 "util/configparser.y"
{
OUTYY(("P(name:%s)\n", (yyvsp[0].str)));
if(cfg_parser->cfg->auths->name)
@@ -6728,52 +6817,52 @@ yyreduce:
free(cfg_parser->cfg->auths->name);
cfg_parser->cfg->auths->name = (yyvsp[0].str);
}
-#line 6732 "util/configparser.c"
+#line 6821 "util/configparser.c"
break;
- case 612: /* auth_zonefile: VAR_ZONEFILE STRING_ARG */
-#line 3242 "util/configparser.y"
+ case 617: /* auth_zonefile: VAR_ZONEFILE STRING_ARG */
+#line 3266 "util/configparser.y"
{
OUTYY(("P(zonefile:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->auths->zonefile);
cfg_parser->cfg->auths->zonefile = (yyvsp[0].str);
}
-#line 6742 "util/configparser.c"
+#line 6831 "util/configparser.c"
break;
- case 613: /* auth_master: VAR_MASTER STRING_ARG */
-#line 3249 "util/configparser.y"
+ case 618: /* auth_master: VAR_MASTER STRING_ARG */
+#line 3273 "util/configparser.y"
{
OUTYY(("P(master:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->auths->masters, (yyvsp[0].str)))
yyerror("out of memory");
}
-#line 6752 "util/configparser.c"
+#line 6841 "util/configparser.c"
break;
- case 614: /* auth_url: VAR_URL STRING_ARG */
-#line 3256 "util/configparser.y"
+ case 619: /* auth_url: VAR_URL STRING_ARG */
+#line 3280 "util/configparser.y"
{
OUTYY(("P(url:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->auths->urls, (yyvsp[0].str)))
yyerror("out of memory");
}
-#line 6762 "util/configparser.c"
+#line 6851 "util/configparser.c"
break;
- case 615: /* auth_allow_notify: VAR_ALLOW_NOTIFY STRING_ARG */
-#line 3263 "util/configparser.y"
+ case 620: /* auth_allow_notify: VAR_ALLOW_NOTIFY STRING_ARG */
+#line 3287 "util/configparser.y"
{
OUTYY(("P(allow-notify:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->auths->allow_notify,
(yyvsp[0].str)))
yyerror("out of memory");
}
-#line 6773 "util/configparser.c"
+#line 6862 "util/configparser.c"
break;
- case 616: /* auth_zonemd_check: VAR_ZONEMD_CHECK STRING_ARG */
-#line 3271 "util/configparser.y"
+ case 621: /* auth_zonemd_check: VAR_ZONEMD_CHECK STRING_ARG */
+#line 3295 "util/configparser.y"
{
OUTYY(("P(zonemd-check:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -6782,11 +6871,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 6786 "util/configparser.c"
+#line 6875 "util/configparser.c"
break;
- case 617: /* auth_zonemd_reject_absence: VAR_ZONEMD_REJECT_ABSENCE STRING_ARG */
-#line 3281 "util/configparser.y"
+ case 622: /* auth_zonemd_reject_absence: VAR_ZONEMD_REJECT_ABSENCE STRING_ARG */
+#line 3305 "util/configparser.y"
{
OUTYY(("P(zonemd-reject-absence:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -6795,11 +6884,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 6799 "util/configparser.c"
+#line 6888 "util/configparser.c"
break;
- case 618: /* auth_for_downstream: VAR_FOR_DOWNSTREAM STRING_ARG */
-#line 3291 "util/configparser.y"
+ case 623: /* auth_for_downstream: VAR_FOR_DOWNSTREAM STRING_ARG */
+#line 3315 "util/configparser.y"
{
OUTYY(("P(for-downstream:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -6808,11 +6897,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 6812 "util/configparser.c"
+#line 6901 "util/configparser.c"
break;
- case 619: /* auth_for_upstream: VAR_FOR_UPSTREAM STRING_ARG */
-#line 3301 "util/configparser.y"
+ case 624: /* auth_for_upstream: VAR_FOR_UPSTREAM STRING_ARG */
+#line 3325 "util/configparser.y"
{
OUTYY(("P(for-upstream:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -6821,11 +6910,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 6825 "util/configparser.c"
+#line 6914 "util/configparser.c"
break;
- case 620: /* auth_fallback_enabled: VAR_FALLBACK_ENABLED STRING_ARG */
-#line 3311 "util/configparser.y"
+ case 625: /* auth_fallback_enabled: VAR_FALLBACK_ENABLED STRING_ARG */
+#line 3335 "util/configparser.y"
{
OUTYY(("P(fallback-enabled:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -6834,11 +6923,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 6838 "util/configparser.c"
+#line 6927 "util/configparser.c"
break;
- case 621: /* view_name: VAR_NAME STRING_ARG */
-#line 3321 "util/configparser.y"
+ case 626: /* view_name: VAR_NAME STRING_ARG */
+#line 3345 "util/configparser.y"
{
OUTYY(("P(name:%s)\n", (yyvsp[0].str)));
if(cfg_parser->cfg->views->name)
@@ -6847,11 +6936,11 @@ yyreduce:
free(cfg_parser->cfg->views->name);
cfg_parser->cfg->views->name = (yyvsp[0].str);
}
-#line 6851 "util/configparser.c"
+#line 6940 "util/configparser.c"
break;
- case 622: /* view_local_zone: VAR_LOCAL_ZONE STRING_ARG STRING_ARG */
-#line 3331 "util/configparser.y"
+ case 627: /* view_local_zone: VAR_LOCAL_ZONE STRING_ARG STRING_ARG */
+#line 3355 "util/configparser.y"
{
OUTYY(("P(view_local_zone:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "static")!=0 && strcmp((yyvsp[0].str), "deny")!=0 &&
@@ -6906,11 +6995,11 @@ yyreduce:
fatal_exit("out of memory adding local-zone");
}
}
-#line 6910 "util/configparser.c"
+#line 6999 "util/configparser.c"
break;
- case 623: /* view_response_ip: VAR_RESPONSE_IP STRING_ARG STRING_ARG */
-#line 3387 "util/configparser.y"
+ case 628: /* view_response_ip: VAR_RESPONSE_IP STRING_ARG STRING_ARG */
+#line 3411 "util/configparser.y"
{
OUTYY(("P(view_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
validate_respip_action((yyvsp[0].str));
@@ -6919,33 +7008,33 @@ yyreduce:
fatal_exit("out of memory adding per-view "
"response-ip action");
}
-#line 6923 "util/configparser.c"
+#line 7012 "util/configparser.c"
break;
- case 624: /* view_response_ip_data: VAR_RESPONSE_IP_DATA STRING_ARG STRING_ARG */
-#line 3397 "util/configparser.y"
+ case 629: /* view_response_ip_data: VAR_RESPONSE_IP_DATA STRING_ARG STRING_ARG */
+#line 3421 "util/configparser.y"
{
OUTYY(("P(view_response_ip_data:%s)\n", (yyvsp[-1].str)));
if(!cfg_str2list_insert(
&cfg_parser->cfg->views->respip_data, (yyvsp[-1].str), (yyvsp[0].str)))
fatal_exit("out of memory adding response-ip-data");
}
-#line 6934 "util/configparser.c"
+#line 7023 "util/configparser.c"
break;
- case 625: /* view_local_data: VAR_LOCAL_DATA STRING_ARG */
-#line 3405 "util/configparser.y"
+ case 630: /* view_local_data: VAR_LOCAL_DATA STRING_ARG */
+#line 3429 "util/configparser.y"
{
OUTYY(("P(view_local_data:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->views->local_data, (yyvsp[0].str))) {
fatal_exit("out of memory adding local-data");
}
}
-#line 6945 "util/configparser.c"
+#line 7034 "util/configparser.c"
break;
- case 626: /* view_local_data_ptr: VAR_LOCAL_DATA_PTR STRING_ARG */
-#line 3413 "util/configparser.y"
+ case 631: /* view_local_data_ptr: VAR_LOCAL_DATA_PTR STRING_ARG */
+#line 3437 "util/configparser.y"
{
char* ptr;
OUTYY(("P(view_local_data_ptr:%s)\n", (yyvsp[0].str)));
@@ -6959,11 +7048,11 @@ yyreduce:
yyerror("local-data-ptr could not be reversed");
}
}
-#line 6963 "util/configparser.c"
+#line 7052 "util/configparser.c"
break;
- case 627: /* view_first: VAR_VIEW_FIRST STRING_ARG */
-#line 3428 "util/configparser.y"
+ case 632: /* view_first: VAR_VIEW_FIRST STRING_ARG */
+#line 3452 "util/configparser.y"
{
OUTYY(("P(view-first:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -6971,20 +7060,20 @@ yyreduce:
else cfg_parser->cfg->views->isfirst=(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 6975 "util/configparser.c"
+#line 7064 "util/configparser.c"
break;
- case 628: /* rcstart: VAR_REMOTE_CONTROL */
-#line 3437 "util/configparser.y"
+ case 633: /* rcstart: VAR_REMOTE_CONTROL */
+#line 3461 "util/configparser.y"
{
OUTYY(("\nP(remote-control:)\n"));
cfg_parser->started_toplevel = 1;
}
-#line 6984 "util/configparser.c"
+#line 7073 "util/configparser.c"
break;
- case 639: /* rc_control_enable: VAR_CONTROL_ENABLE STRING_ARG */
-#line 3449 "util/configparser.y"
+ case 644: /* rc_control_enable: VAR_CONTROL_ENABLE STRING_ARG */
+#line 3473 "util/configparser.y"
{
OUTYY(("P(control_enable:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -6993,11 +7082,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 6997 "util/configparser.c"
+#line 7086 "util/configparser.c"
break;
- case 640: /* rc_control_port: VAR_CONTROL_PORT STRING_ARG */
-#line 3459 "util/configparser.y"
+ case 645: /* rc_control_port: VAR_CONTROL_PORT STRING_ARG */
+#line 3483 "util/configparser.y"
{
OUTYY(("P(control_port:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -7005,80 +7094,80 @@ yyreduce:
else cfg_parser->cfg->control_port = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 7009 "util/configparser.c"
+#line 7098 "util/configparser.c"
break;
- case 641: /* rc_control_interface: VAR_CONTROL_INTERFACE STRING_ARG */
-#line 3468 "util/configparser.y"
+ case 646: /* rc_control_interface: VAR_CONTROL_INTERFACE STRING_ARG */
+#line 3492 "util/configparser.y"
{
OUTYY(("P(control_interface:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_append(&cfg_parser->cfg->control_ifs, (yyvsp[0].str)))
yyerror("out of memory");
}
-#line 7019 "util/configparser.c"
+#line 7108 "util/configparser.c"
break;
- case 642: /* rc_control_use_cert: VAR_CONTROL_USE_CERT STRING_ARG */
-#line 3475 "util/configparser.y"
+ case 647: /* rc_control_use_cert: VAR_CONTROL_USE_CERT STRING_ARG */
+#line 3499 "util/configparser.y"
{
OUTYY(("P(control_use_cert:%s)\n", (yyvsp[0].str)));
cfg_parser->cfg->control_use_cert = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 7029 "util/configparser.c"
+#line 7118 "util/configparser.c"
break;
- case 643: /* rc_server_key_file: VAR_SERVER_KEY_FILE STRING_ARG */
-#line 3482 "util/configparser.y"
+ case 648: /* rc_server_key_file: VAR_SERVER_KEY_FILE STRING_ARG */
+#line 3506 "util/configparser.y"
{
OUTYY(("P(rc_server_key_file:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->server_key_file);
cfg_parser->cfg->server_key_file = (yyvsp[0].str);
}
-#line 7039 "util/configparser.c"
+#line 7128 "util/configparser.c"
break;
- case 644: /* rc_server_cert_file: VAR_SERVER_CERT_FILE STRING_ARG */
-#line 3489 "util/configparser.y"
+ case 649: /* rc_server_cert_file: VAR_SERVER_CERT_FILE STRING_ARG */
+#line 3513 "util/configparser.y"
{
OUTYY(("P(rc_server_cert_file:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->server_cert_file);
cfg_parser->cfg->server_cert_file = (yyvsp[0].str);
}
-#line 7049 "util/configparser.c"
+#line 7138 "util/configparser.c"
break;
- case 645: /* rc_control_key_file: VAR_CONTROL_KEY_FILE STRING_ARG */
-#line 3496 "util/configparser.y"
+ case 650: /* rc_control_key_file: VAR_CONTROL_KEY_FILE STRING_ARG */
+#line 3520 "util/configparser.y"
{
OUTYY(("P(rc_control_key_file:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->control_key_file);
cfg_parser->cfg->control_key_file = (yyvsp[0].str);
}
-#line 7059 "util/configparser.c"
+#line 7148 "util/configparser.c"
break;
- case 646: /* rc_control_cert_file: VAR_CONTROL_CERT_FILE STRING_ARG */
-#line 3503 "util/configparser.y"
+ case 651: /* rc_control_cert_file: VAR_CONTROL_CERT_FILE STRING_ARG */
+#line 3527 "util/configparser.y"
{
OUTYY(("P(rc_control_cert_file:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->control_cert_file);
cfg_parser->cfg->control_cert_file = (yyvsp[0].str);
}
-#line 7069 "util/configparser.c"
+#line 7158 "util/configparser.c"
break;
- case 647: /* dtstart: VAR_DNSTAP */
-#line 3510 "util/configparser.y"
+ case 652: /* dtstart: VAR_DNSTAP */
+#line 3534 "util/configparser.y"
{
OUTYY(("\nP(dnstap:)\n"));
cfg_parser->started_toplevel = 1;
}
-#line 7078 "util/configparser.c"
+#line 7167 "util/configparser.c"
break;
- case 670: /* dt_dnstap_enable: VAR_DNSTAP_ENABLE STRING_ARG */
-#line 3532 "util/configparser.y"
+ case 675: /* dt_dnstap_enable: VAR_DNSTAP_ENABLE STRING_ARG */
+#line 3556 "util/configparser.y"
{
OUTYY(("P(dt_dnstap_enable:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -7086,11 +7175,11 @@ yyreduce:
else cfg_parser->cfg->dnstap = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 7090 "util/configparser.c"
+#line 7179 "util/configparser.c"
break;
- case 671: /* dt_dnstap_bidirectional: VAR_DNSTAP_BIDIRECTIONAL STRING_ARG */
-#line 3541 "util/configparser.y"
+ case 676: /* dt_dnstap_bidirectional: VAR_DNSTAP_BIDIRECTIONAL STRING_ARG */
+#line 3565 "util/configparser.y"
{
OUTYY(("P(dt_dnstap_bidirectional:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -7099,31 +7188,31 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 7103 "util/configparser.c"
+#line 7192 "util/configparser.c"
break;
- case 672: /* dt_dnstap_socket_path: VAR_DNSTAP_SOCKET_PATH STRING_ARG */
-#line 3551 "util/configparser.y"
+ case 677: /* dt_dnstap_socket_path: VAR_DNSTAP_SOCKET_PATH STRING_ARG */
+#line 3575 "util/configparser.y"
{
OUTYY(("P(dt_dnstap_socket_path:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->dnstap_socket_path);
cfg_parser->cfg->dnstap_socket_path = (yyvsp[0].str);
}
-#line 7113 "util/configparser.c"
+#line 7202 "util/configparser.c"
break;
- case 673: /* dt_dnstap_ip: VAR_DNSTAP_IP STRING_ARG */
-#line 3558 "util/configparser.y"
+ case 678: /* dt_dnstap_ip: VAR_DNSTAP_IP STRING_ARG */
+#line 3582 "util/configparser.y"
{
OUTYY(("P(dt_dnstap_ip:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->dnstap_ip);
cfg_parser->cfg->dnstap_ip = (yyvsp[0].str);
}
-#line 7123 "util/configparser.c"
+#line 7212 "util/configparser.c"
break;
- case 674: /* dt_dnstap_tls: VAR_DNSTAP_TLS STRING_ARG */
-#line 3565 "util/configparser.y"
+ case 679: /* dt_dnstap_tls: VAR_DNSTAP_TLS STRING_ARG */
+#line 3589 "util/configparser.y"
{
OUTYY(("P(dt_dnstap_tls:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -7131,51 +7220,51 @@ yyreduce:
else cfg_parser->cfg->dnstap_tls = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 7135 "util/configparser.c"
+#line 7224 "util/configparser.c"
break;
- case 675: /* dt_dnstap_tls_server_name: VAR_DNSTAP_TLS_SERVER_NAME STRING_ARG */
-#line 3574 "util/configparser.y"
+ case 680: /* dt_dnstap_tls_server_name: VAR_DNSTAP_TLS_SERVER_NAME STRING_ARG */
+#line 3598 "util/configparser.y"
{
OUTYY(("P(dt_dnstap_tls_server_name:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->dnstap_tls_server_name);
cfg_parser->cfg->dnstap_tls_server_name = (yyvsp[0].str);
}
-#line 7145 "util/configparser.c"
+#line 7234 "util/configparser.c"
break;
- case 676: /* dt_dnstap_tls_cert_bundle: VAR_DNSTAP_TLS_CERT_BUNDLE STRING_ARG */
-#line 3581 "util/configparser.y"
+ case 681: /* dt_dnstap_tls_cert_bundle: VAR_DNSTAP_TLS_CERT_BUNDLE STRING_ARG */
+#line 3605 "util/configparser.y"
{
OUTYY(("P(dt_dnstap_tls_cert_bundle:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->dnstap_tls_cert_bundle);
cfg_parser->cfg->dnstap_tls_cert_bundle = (yyvsp[0].str);
}
-#line 7155 "util/configparser.c"
+#line 7244 "util/configparser.c"
break;
- case 677: /* dt_dnstap_tls_client_key_file: VAR_DNSTAP_TLS_CLIENT_KEY_FILE STRING_ARG */
-#line 3588 "util/configparser.y"
+ case 682: /* dt_dnstap_tls_client_key_file: VAR_DNSTAP_TLS_CLIENT_KEY_FILE STRING_ARG */
+#line 3612 "util/configparser.y"
{
OUTYY(("P(dt_dnstap_tls_client_key_file:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->dnstap_tls_client_key_file);
cfg_parser->cfg->dnstap_tls_client_key_file = (yyvsp[0].str);
}
-#line 7165 "util/configparser.c"
+#line 7254 "util/configparser.c"
break;
- case 678: /* dt_dnstap_tls_client_cert_file: VAR_DNSTAP_TLS_CLIENT_CERT_FILE STRING_ARG */
-#line 3595 "util/configparser.y"
+ case 683: /* dt_dnstap_tls_client_cert_file: VAR_DNSTAP_TLS_CLIENT_CERT_FILE STRING_ARG */
+#line 3619 "util/configparser.y"
{
OUTYY(("P(dt_dnstap_tls_client_cert_file:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->dnstap_tls_client_cert_file);
cfg_parser->cfg->dnstap_tls_client_cert_file = (yyvsp[0].str);
}
-#line 7175 "util/configparser.c"
+#line 7264 "util/configparser.c"
break;
- case 679: /* dt_dnstap_send_identity: VAR_DNSTAP_SEND_IDENTITY STRING_ARG */
-#line 3602 "util/configparser.y"
+ case 684: /* dt_dnstap_send_identity: VAR_DNSTAP_SEND_IDENTITY STRING_ARG */
+#line 3626 "util/configparser.y"
{
OUTYY(("P(dt_dnstap_send_identity:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -7183,11 +7272,11 @@ yyreduce:
else cfg_parser->cfg->dnstap_send_identity = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 7187 "util/configparser.c"
+#line 7276 "util/configparser.c"
break;
- case 680: /* dt_dnstap_send_version: VAR_DNSTAP_SEND_VERSION STRING_ARG */
-#line 3611 "util/configparser.y"
+ case 685: /* dt_dnstap_send_version: VAR_DNSTAP_SEND_VERSION STRING_ARG */
+#line 3635 "util/configparser.y"
{
OUTYY(("P(dt_dnstap_send_version:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -7195,31 +7284,31 @@ yyreduce:
else cfg_parser->cfg->dnstap_send_version = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 7199 "util/configparser.c"
+#line 7288 "util/configparser.c"
break;
- case 681: /* dt_dnstap_identity: VAR_DNSTAP_IDENTITY STRING_ARG */
-#line 3620 "util/configparser.y"
+ case 686: /* dt_dnstap_identity: VAR_DNSTAP_IDENTITY STRING_ARG */
+#line 3644 "util/configparser.y"
{
OUTYY(("P(dt_dnstap_identity:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->dnstap_identity);
cfg_parser->cfg->dnstap_identity = (yyvsp[0].str);
}
-#line 7209 "util/configparser.c"
+#line 7298 "util/configparser.c"
break;
- case 682: /* dt_dnstap_version: VAR_DNSTAP_VERSION STRING_ARG */
-#line 3627 "util/configparser.y"
+ case 687: /* dt_dnstap_version: VAR_DNSTAP_VERSION STRING_ARG */
+#line 3651 "util/configparser.y"
{
OUTYY(("P(dt_dnstap_version:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->dnstap_version);
cfg_parser->cfg->dnstap_version = (yyvsp[0].str);
}
-#line 7219 "util/configparser.c"
+#line 7308 "util/configparser.c"
break;
- case 683: /* dt_dnstap_log_resolver_query_messages: VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES STRING_ARG */
-#line 3634 "util/configparser.y"
+ case 688: /* dt_dnstap_log_resolver_query_messages: VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES STRING_ARG */
+#line 3658 "util/configparser.y"
{
OUTYY(("P(dt_dnstap_log_resolver_query_messages:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -7228,11 +7317,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 7232 "util/configparser.c"
+#line 7321 "util/configparser.c"
break;
- case 684: /* dt_dnstap_log_resolver_response_messages: VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES STRING_ARG */
-#line 3644 "util/configparser.y"
+ case 689: /* dt_dnstap_log_resolver_response_messages: VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES STRING_ARG */
+#line 3668 "util/configparser.y"
{
OUTYY(("P(dt_dnstap_log_resolver_response_messages:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -7241,11 +7330,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 7245 "util/configparser.c"
+#line 7334 "util/configparser.c"
break;
- case 685: /* dt_dnstap_log_client_query_messages: VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES STRING_ARG */
-#line 3654 "util/configparser.y"
+ case 690: /* dt_dnstap_log_client_query_messages: VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES STRING_ARG */
+#line 3678 "util/configparser.y"
{
OUTYY(("P(dt_dnstap_log_client_query_messages:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -7254,11 +7343,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 7258 "util/configparser.c"
+#line 7347 "util/configparser.c"
break;
- case 686: /* dt_dnstap_log_client_response_messages: VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES STRING_ARG */
-#line 3664 "util/configparser.y"
+ case 691: /* dt_dnstap_log_client_response_messages: VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES STRING_ARG */
+#line 3688 "util/configparser.y"
{
OUTYY(("P(dt_dnstap_log_client_response_messages:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -7267,11 +7356,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 7271 "util/configparser.c"
+#line 7360 "util/configparser.c"
break;
- case 687: /* dt_dnstap_log_forwarder_query_messages: VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES STRING_ARG */
-#line 3674 "util/configparser.y"
+ case 692: /* dt_dnstap_log_forwarder_query_messages: VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES STRING_ARG */
+#line 3698 "util/configparser.y"
{
OUTYY(("P(dt_dnstap_log_forwarder_query_messages:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -7280,11 +7369,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 7284 "util/configparser.c"
+#line 7373 "util/configparser.c"
break;
- case 688: /* dt_dnstap_log_forwarder_response_messages: VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES STRING_ARG */
-#line 3684 "util/configparser.y"
+ case 693: /* dt_dnstap_log_forwarder_response_messages: VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES STRING_ARG */
+#line 3708 "util/configparser.y"
{
OUTYY(("P(dt_dnstap_log_forwarder_response_messages:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -7293,11 +7382,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 7297 "util/configparser.c"
+#line 7386 "util/configparser.c"
break;
- case 689: /* dt_dnstap_sample_rate: VAR_DNSTAP_SAMPLE_RATE STRING_ARG */
-#line 3694 "util/configparser.y"
+ case 694: /* dt_dnstap_sample_rate: VAR_DNSTAP_SAMPLE_RATE STRING_ARG */
+#line 3718 "util/configparser.y"
{
OUTYY(("P(dt_dnstap_sample_rate:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -7307,49 +7396,49 @@ yyreduce:
else cfg_parser->cfg->dnstap_sample_rate = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 7311 "util/configparser.c"
+#line 7400 "util/configparser.c"
break;
- case 690: /* pythonstart: VAR_PYTHON */
-#line 3705 "util/configparser.y"
+ case 695: /* pythonstart: VAR_PYTHON */
+#line 3729 "util/configparser.y"
{
OUTYY(("\nP(python:)\n"));
cfg_parser->started_toplevel = 1;
}
-#line 7320 "util/configparser.c"
+#line 7409 "util/configparser.c"
break;
- case 694: /* py_script: VAR_PYTHON_SCRIPT STRING_ARG */
-#line 3715 "util/configparser.y"
+ case 699: /* py_script: VAR_PYTHON_SCRIPT STRING_ARG */
+#line 3739 "util/configparser.y"
{
OUTYY(("P(python-script:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_append_ex(&cfg_parser->cfg->python_script, (yyvsp[0].str)))
yyerror("out of memory");
}
-#line 7330 "util/configparser.c"
+#line 7419 "util/configparser.c"
break;
- case 695: /* dynlibstart: VAR_DYNLIB */
-#line 3722 "util/configparser.y"
+ case 700: /* dynlibstart: VAR_DYNLIB */
+#line 3746 "util/configparser.y"
{
OUTYY(("\nP(dynlib:)\n"));
cfg_parser->started_toplevel = 1;
}
-#line 7339 "util/configparser.c"
+#line 7428 "util/configparser.c"
break;
- case 699: /* dl_file: VAR_DYNLIB_FILE STRING_ARG */
-#line 3732 "util/configparser.y"
+ case 704: /* dl_file: VAR_DYNLIB_FILE STRING_ARG */
+#line 3756 "util/configparser.y"
{
OUTYY(("P(dynlib-file:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_append_ex(&cfg_parser->cfg->dynlib_file, (yyvsp[0].str)))
yyerror("out of memory");
}
-#line 7349 "util/configparser.c"
+#line 7438 "util/configparser.c"
break;
- case 700: /* server_disable_dnssec_lame_check: VAR_DISABLE_DNSSEC_LAME_CHECK STRING_ARG */
-#line 3739 "util/configparser.y"
+ case 705: /* server_disable_dnssec_lame_check: VAR_DISABLE_DNSSEC_LAME_CHECK STRING_ARG */
+#line 3763 "util/configparser.y"
{
OUTYY(("P(disable_dnssec_lame_check:%s)\n", (yyvsp[0].str)));
if (strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -7358,21 +7447,21 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 7362 "util/configparser.c"
+#line 7451 "util/configparser.c"
break;
- case 701: /* server_log_identity: VAR_LOG_IDENTITY STRING_ARG */
-#line 3749 "util/configparser.y"
+ case 706: /* server_log_identity: VAR_LOG_IDENTITY STRING_ARG */
+#line 3773 "util/configparser.y"
{
OUTYY(("P(server_log_identity:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->log_identity);
cfg_parser->cfg->log_identity = (yyvsp[0].str);
}
-#line 7372 "util/configparser.c"
+#line 7461 "util/configparser.c"
break;
- case 702: /* server_response_ip: VAR_RESPONSE_IP STRING_ARG STRING_ARG */
-#line 3756 "util/configparser.y"
+ case 707: /* server_response_ip: VAR_RESPONSE_IP STRING_ARG STRING_ARG */
+#line 3780 "util/configparser.y"
{
OUTYY(("P(server_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
validate_respip_action((yyvsp[0].str));
@@ -7380,31 +7469,31 @@ yyreduce:
(yyvsp[-1].str), (yyvsp[0].str)))
fatal_exit("out of memory adding response-ip");
}
-#line 7384 "util/configparser.c"
+#line 7473 "util/configparser.c"
break;
- case 703: /* server_response_ip_data: VAR_RESPONSE_IP_DATA STRING_ARG STRING_ARG */
-#line 3765 "util/configparser.y"
+ case 708: /* server_response_ip_data: VAR_RESPONSE_IP_DATA STRING_ARG STRING_ARG */
+#line 3789 "util/configparser.y"
{
OUTYY(("P(server_response_ip_data:%s)\n", (yyvsp[-1].str)));
if(!cfg_str2list_insert(&cfg_parser->cfg->respip_data,
(yyvsp[-1].str), (yyvsp[0].str)))
fatal_exit("out of memory adding response-ip-data");
}
-#line 7395 "util/configparser.c"
+#line 7484 "util/configparser.c"
break;
- case 704: /* dnscstart: VAR_DNSCRYPT */
-#line 3773 "util/configparser.y"
+ case 709: /* dnscstart: VAR_DNSCRYPT */
+#line 3797 "util/configparser.y"
{
OUTYY(("\nP(dnscrypt:)\n"));
cfg_parser->started_toplevel = 1;
}
-#line 7404 "util/configparser.c"
+#line 7493 "util/configparser.c"
break;
- case 717: /* dnsc_dnscrypt_enable: VAR_DNSCRYPT_ENABLE STRING_ARG */
-#line 3790 "util/configparser.y"
+ case 722: /* dnsc_dnscrypt_enable: VAR_DNSCRYPT_ENABLE STRING_ARG */
+#line 3814 "util/configparser.y"
{
OUTYY(("P(dnsc_dnscrypt_enable:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -7412,11 +7501,11 @@ yyreduce:
else cfg_parser->cfg->dnscrypt = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 7416 "util/configparser.c"
+#line 7505 "util/configparser.c"
break;
- case 718: /* dnsc_dnscrypt_port: VAR_DNSCRYPT_PORT STRING_ARG */
-#line 3799 "util/configparser.y"
+ case 723: /* dnsc_dnscrypt_port: VAR_DNSCRYPT_PORT STRING_ARG */
+#line 3823 "util/configparser.y"
{
OUTYY(("P(dnsc_dnscrypt_port:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -7424,21 +7513,21 @@ yyreduce:
else cfg_parser->cfg->dnscrypt_port = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 7428 "util/configparser.c"
+#line 7517 "util/configparser.c"
break;
- case 719: /* dnsc_dnscrypt_provider: VAR_DNSCRYPT_PROVIDER STRING_ARG */
-#line 3808 "util/configparser.y"
+ case 724: /* dnsc_dnscrypt_provider: VAR_DNSCRYPT_PROVIDER STRING_ARG */
+#line 3832 "util/configparser.y"
{
OUTYY(("P(dnsc_dnscrypt_provider:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->dnscrypt_provider);
cfg_parser->cfg->dnscrypt_provider = (yyvsp[0].str);
}
-#line 7438 "util/configparser.c"
+#line 7527 "util/configparser.c"
break;
- case 720: /* dnsc_dnscrypt_provider_cert: VAR_DNSCRYPT_PROVIDER_CERT STRING_ARG */
-#line 3815 "util/configparser.y"
+ case 725: /* dnsc_dnscrypt_provider_cert: VAR_DNSCRYPT_PROVIDER_CERT STRING_ARG */
+#line 3839 "util/configparser.y"
{
OUTYY(("P(dnsc_dnscrypt_provider_cert:%s)\n", (yyvsp[0].str)));
if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str)))
@@ -7446,21 +7535,21 @@ yyreduce:
if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str)))
fatal_exit("out of memory adding dnscrypt-provider-cert");
}
-#line 7450 "util/configparser.c"
+#line 7539 "util/configparser.c"
break;
- case 721: /* dnsc_dnscrypt_provider_cert_rotated: VAR_DNSCRYPT_PROVIDER_CERT_ROTATED STRING_ARG */
-#line 3824 "util/configparser.y"
+ case 726: /* dnsc_dnscrypt_provider_cert_rotated: VAR_DNSCRYPT_PROVIDER_CERT_ROTATED STRING_ARG */
+#line 3848 "util/configparser.y"
{
OUTYY(("P(dnsc_dnscrypt_provider_cert_rotated:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert_rotated, (yyvsp[0].str)))
fatal_exit("out of memory adding dnscrypt-provider-cert-rotated");
}
-#line 7460 "util/configparser.c"
+#line 7549 "util/configparser.c"
break;
- case 722: /* dnsc_dnscrypt_secret_key: VAR_DNSCRYPT_SECRET_KEY STRING_ARG */
-#line 3831 "util/configparser.y"
+ case 727: /* dnsc_dnscrypt_secret_key: VAR_DNSCRYPT_SECRET_KEY STRING_ARG */
+#line 3855 "util/configparser.y"
{
OUTYY(("P(dnsc_dnscrypt_secret_key:%s)\n", (yyvsp[0].str)));
if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str)))
@@ -7468,22 +7557,22 @@ yyreduce:
if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str)))
fatal_exit("out of memory adding dnscrypt-secret-key");
}
-#line 7472 "util/configparser.c"
+#line 7561 "util/configparser.c"
break;
- case 723: /* dnsc_dnscrypt_shared_secret_cache_size: VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE STRING_ARG */
-#line 3840 "util/configparser.y"
+ case 728: /* dnsc_dnscrypt_shared_secret_cache_size: VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE STRING_ARG */
+#line 3864 "util/configparser.y"
{
OUTYY(("P(dnscrypt_shared_secret_cache_size:%s)\n", (yyvsp[0].str)));
if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_shared_secret_cache_size))
yyerror("memory size expected");
free((yyvsp[0].str));
}
-#line 7483 "util/configparser.c"
+#line 7572 "util/configparser.c"
break;
- case 724: /* dnsc_dnscrypt_shared_secret_cache_slabs: VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS STRING_ARG */
-#line 3848 "util/configparser.y"
+ case 729: /* dnsc_dnscrypt_shared_secret_cache_slabs: VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS STRING_ARG */
+#line 3872 "util/configparser.y"
{
OUTYY(("P(dnscrypt_shared_secret_cache_slabs:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0) {
@@ -7495,22 +7584,22 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 7499 "util/configparser.c"
+#line 7588 "util/configparser.c"
break;
- case 725: /* dnsc_dnscrypt_nonce_cache_size: VAR_DNSCRYPT_NONCE_CACHE_SIZE STRING_ARG */
-#line 3861 "util/configparser.y"
+ case 730: /* dnsc_dnscrypt_nonce_cache_size: VAR_DNSCRYPT_NONCE_CACHE_SIZE STRING_ARG */
+#line 3885 "util/configparser.y"
{
OUTYY(("P(dnscrypt_nonce_cache_size:%s)\n", (yyvsp[0].str)));
if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_nonce_cache_size))
yyerror("memory size expected");
free((yyvsp[0].str));
}
-#line 7510 "util/configparser.c"
+#line 7599 "util/configparser.c"
break;
- case 726: /* dnsc_dnscrypt_nonce_cache_slabs: VAR_DNSCRYPT_NONCE_CACHE_SLABS STRING_ARG */
-#line 3869 "util/configparser.y"
+ case 731: /* dnsc_dnscrypt_nonce_cache_slabs: VAR_DNSCRYPT_NONCE_CACHE_SLABS STRING_ARG */
+#line 3893 "util/configparser.y"
{
OUTYY(("P(dnscrypt_nonce_cache_slabs:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0) {
@@ -7522,20 +7611,20 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 7526 "util/configparser.c"
+#line 7615 "util/configparser.c"
break;
- case 727: /* cachedbstart: VAR_CACHEDB */
-#line 3882 "util/configparser.y"
+ case 732: /* cachedbstart: VAR_CACHEDB */
+#line 3906 "util/configparser.y"
{
OUTYY(("\nP(cachedb:)\n"));
cfg_parser->started_toplevel = 1;
}
-#line 7535 "util/configparser.c"
+#line 7624 "util/configparser.c"
break;
- case 751: /* cachedb_backend_name: VAR_CACHEDB_BACKEND STRING_ARG */
-#line 3902 "util/configparser.y"
+ case 756: /* cachedb_backend_name: VAR_CACHEDB_BACKEND STRING_ARG */
+#line 3926 "util/configparser.y"
{
#ifdef USE_CACHEDB
OUTYY(("P(backend:%s)\n", (yyvsp[0].str)));
@@ -7546,11 +7635,11 @@ yyreduce:
free((yyvsp[0].str));
#endif
}
-#line 7550 "util/configparser.c"
+#line 7639 "util/configparser.c"
break;
- case 752: /* cachedb_secret_seed: VAR_CACHEDB_SECRETSEED STRING_ARG */
-#line 3914 "util/configparser.y"
+ case 757: /* cachedb_secret_seed: VAR_CACHEDB_SECRETSEED STRING_ARG */
+#line 3938 "util/configparser.y"
{
#ifdef USE_CACHEDB
OUTYY(("P(secret-seed:%s)\n", (yyvsp[0].str)));
@@ -7561,11 +7650,11 @@ yyreduce:
free((yyvsp[0].str));
#endif
}
-#line 7565 "util/configparser.c"
+#line 7654 "util/configparser.c"
break;
- case 753: /* cachedb_no_store: VAR_CACHEDB_NO_STORE STRING_ARG */
-#line 3926 "util/configparser.y"
+ case 758: /* cachedb_no_store: VAR_CACHEDB_NO_STORE STRING_ARG */
+#line 3950 "util/configparser.y"
{
#ifdef USE_CACHEDB
OUTYY(("P(cachedb_no_store:%s)\n", (yyvsp[0].str)));
@@ -7577,11 +7666,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 7581 "util/configparser.c"
+#line 7670 "util/configparser.c"
break;
- case 754: /* cachedb_check_when_serve_expired: VAR_CACHEDB_CHECK_WHEN_SERVE_EXPIRED STRING_ARG */
-#line 3939 "util/configparser.y"
+ case 759: /* cachedb_check_when_serve_expired: VAR_CACHEDB_CHECK_WHEN_SERVE_EXPIRED STRING_ARG */
+#line 3963 "util/configparser.y"
{
#ifdef USE_CACHEDB
OUTYY(("P(cachedb_check_when_serve_expired:%s)\n", (yyvsp[0].str)));
@@ -7593,11 +7682,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 7597 "util/configparser.c"
+#line 7686 "util/configparser.c"
break;
- case 755: /* redis_server_host: VAR_CACHEDB_REDISHOST STRING_ARG */
-#line 3952 "util/configparser.y"
+ case 760: /* redis_server_host: VAR_CACHEDB_REDISHOST STRING_ARG */
+#line 3976 "util/configparser.y"
{
#if defined(USE_CACHEDB) && defined(USE_REDIS)
OUTYY(("P(redis_server_host:%s)\n", (yyvsp[0].str)));
@@ -7608,11 +7697,11 @@ yyreduce:
free((yyvsp[0].str));
#endif
}
-#line 7612 "util/configparser.c"
+#line 7701 "util/configparser.c"
break;
- case 756: /* redis_replica_server_host: VAR_CACHEDB_REDISREPLICAHOST STRING_ARG */
-#line 3964 "util/configparser.y"
+ case 761: /* redis_replica_server_host: VAR_CACHEDB_REDISREPLICAHOST STRING_ARG */
+#line 3988 "util/configparser.y"
{
#if defined(USE_CACHEDB) && defined(USE_REDIS)
OUTYY(("P(redis_replica_server_host:%s)\n", (yyvsp[0].str)));
@@ -7623,11 +7712,11 @@ yyreduce:
free((yyvsp[0].str));
#endif
}
-#line 7627 "util/configparser.c"
+#line 7716 "util/configparser.c"
break;
- case 757: /* redis_server_port: VAR_CACHEDB_REDISPORT STRING_ARG */
-#line 3976 "util/configparser.y"
+ case 762: /* redis_server_port: VAR_CACHEDB_REDISPORT STRING_ARG */
+#line 4000 "util/configparser.y"
{
#if defined(USE_CACHEDB) && defined(USE_REDIS)
int port;
@@ -7641,11 +7730,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 7645 "util/configparser.c"
+#line 7734 "util/configparser.c"
break;
- case 758: /* redis_replica_server_port: VAR_CACHEDB_REDISREPLICAPORT STRING_ARG */
-#line 3991 "util/configparser.y"
+ case 763: /* redis_replica_server_port: VAR_CACHEDB_REDISREPLICAPORT STRING_ARG */
+#line 4015 "util/configparser.y"
{
#if defined(USE_CACHEDB) && defined(USE_REDIS)
int port;
@@ -7659,11 +7748,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 7663 "util/configparser.c"
+#line 7752 "util/configparser.c"
break;
- case 759: /* redis_server_path: VAR_CACHEDB_REDISPATH STRING_ARG */
-#line 4006 "util/configparser.y"
+ case 764: /* redis_server_path: VAR_CACHEDB_REDISPATH STRING_ARG */
+#line 4030 "util/configparser.y"
{
#if defined(USE_CACHEDB) && defined(USE_REDIS)
OUTYY(("P(redis_server_path:%s)\n", (yyvsp[0].str)));
@@ -7674,11 +7763,11 @@ yyreduce:
free((yyvsp[0].str));
#endif
}
-#line 7678 "util/configparser.c"
+#line 7767 "util/configparser.c"
break;
- case 760: /* redis_replica_server_path: VAR_CACHEDB_REDISREPLICAPATH STRING_ARG */
-#line 4018 "util/configparser.y"
+ case 765: /* redis_replica_server_path: VAR_CACHEDB_REDISREPLICAPATH STRING_ARG */
+#line 4042 "util/configparser.y"
{
#if defined(USE_CACHEDB) && defined(USE_REDIS)
OUTYY(("P(redis_replica_server_path:%s)\n", (yyvsp[0].str)));
@@ -7689,11 +7778,11 @@ yyreduce:
free((yyvsp[0].str));
#endif
}
-#line 7693 "util/configparser.c"
+#line 7782 "util/configparser.c"
break;
- case 761: /* redis_server_password: VAR_CACHEDB_REDISPASSWORD STRING_ARG */
-#line 4030 "util/configparser.y"
+ case 766: /* redis_server_password: VAR_CACHEDB_REDISPASSWORD STRING_ARG */
+#line 4054 "util/configparser.y"
{
#if defined(USE_CACHEDB) && defined(USE_REDIS)
OUTYY(("P(redis_server_password:%s)\n", (yyvsp[0].str)));
@@ -7704,11 +7793,11 @@ yyreduce:
free((yyvsp[0].str));
#endif
}
-#line 7708 "util/configparser.c"
+#line 7797 "util/configparser.c"
break;
- case 762: /* redis_replica_server_password: VAR_CACHEDB_REDISREPLICAPASSWORD STRING_ARG */
-#line 4042 "util/configparser.y"
+ case 767: /* redis_replica_server_password: VAR_CACHEDB_REDISREPLICAPASSWORD STRING_ARG */
+#line 4066 "util/configparser.y"
{
#if defined(USE_CACHEDB) && defined(USE_REDIS)
OUTYY(("P(redis_replica_server_password:%s)\n", (yyvsp[0].str)));
@@ -7719,11 +7808,11 @@ yyreduce:
free((yyvsp[0].str));
#endif
}
-#line 7723 "util/configparser.c"
+#line 7812 "util/configparser.c"
break;
- case 763: /* redis_timeout: VAR_CACHEDB_REDISTIMEOUT STRING_ARG */
-#line 4054 "util/configparser.y"
+ case 768: /* redis_timeout: VAR_CACHEDB_REDISTIMEOUT STRING_ARG */
+#line 4078 "util/configparser.y"
{
#if defined(USE_CACHEDB) && defined(USE_REDIS)
OUTYY(("P(redis_timeout:%s)\n", (yyvsp[0].str)));
@@ -7735,11 +7824,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 7739 "util/configparser.c"
+#line 7828 "util/configparser.c"
break;
- case 764: /* redis_replica_timeout: VAR_CACHEDB_REDISREPLICATIMEOUT STRING_ARG */
-#line 4067 "util/configparser.y"
+ case 769: /* redis_replica_timeout: VAR_CACHEDB_REDISREPLICATIMEOUT STRING_ARG */
+#line 4091 "util/configparser.y"
{
#if defined(USE_CACHEDB) && defined(USE_REDIS)
OUTYY(("P(redis_replica_timeout:%s)\n", (yyvsp[0].str)));
@@ -7751,11 +7840,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 7755 "util/configparser.c"
+#line 7844 "util/configparser.c"
break;
- case 765: /* redis_command_timeout: VAR_CACHEDB_REDISCOMMANDTIMEOUT STRING_ARG */
-#line 4080 "util/configparser.y"
+ case 770: /* redis_command_timeout: VAR_CACHEDB_REDISCOMMANDTIMEOUT STRING_ARG */
+#line 4104 "util/configparser.y"
{
#if defined(USE_CACHEDB) && defined(USE_REDIS)
OUTYY(("P(redis_command_timeout:%s)\n", (yyvsp[0].str)));
@@ -7767,11 +7856,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 7771 "util/configparser.c"
+#line 7860 "util/configparser.c"
break;
- case 766: /* redis_replica_command_timeout: VAR_CACHEDB_REDISREPLICACOMMANDTIMEOUT STRING_ARG */
-#line 4093 "util/configparser.y"
+ case 771: /* redis_replica_command_timeout: VAR_CACHEDB_REDISREPLICACOMMANDTIMEOUT STRING_ARG */
+#line 4117 "util/configparser.y"
{
#if defined(USE_CACHEDB) && defined(USE_REDIS)
OUTYY(("P(redis_replica_command_timeout:%s)\n", (yyvsp[0].str)));
@@ -7783,11 +7872,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 7787 "util/configparser.c"
+#line 7876 "util/configparser.c"
break;
- case 767: /* redis_connect_timeout: VAR_CACHEDB_REDISCONNECTTIMEOUT STRING_ARG */
-#line 4106 "util/configparser.y"
+ case 772: /* redis_connect_timeout: VAR_CACHEDB_REDISCONNECTTIMEOUT STRING_ARG */
+#line 4130 "util/configparser.y"
{
#if defined(USE_CACHEDB) && defined(USE_REDIS)
OUTYY(("P(redis_connect_timeout:%s)\n", (yyvsp[0].str)));
@@ -7799,11 +7888,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 7803 "util/configparser.c"
+#line 7892 "util/configparser.c"
break;
- case 768: /* redis_replica_connect_timeout: VAR_CACHEDB_REDISREPLICACONNECTTIMEOUT STRING_ARG */
-#line 4119 "util/configparser.y"
+ case 773: /* redis_replica_connect_timeout: VAR_CACHEDB_REDISREPLICACONNECTTIMEOUT STRING_ARG */
+#line 4143 "util/configparser.y"
{
#if defined(USE_CACHEDB) && defined(USE_REDIS)
OUTYY(("P(redis_replica_connect_timeout:%s)\n", (yyvsp[0].str)));
@@ -7815,11 +7904,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 7819 "util/configparser.c"
+#line 7908 "util/configparser.c"
break;
- case 769: /* redis_expire_records: VAR_CACHEDB_REDISEXPIRERECORDS STRING_ARG */
-#line 4132 "util/configparser.y"
+ case 774: /* redis_expire_records: VAR_CACHEDB_REDISEXPIRERECORDS STRING_ARG */
+#line 4156 "util/configparser.y"
{
#if defined(USE_CACHEDB) && defined(USE_REDIS)
OUTYY(("P(redis_expire_records:%s)\n", (yyvsp[0].str)));
@@ -7831,11 +7920,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 7835 "util/configparser.c"
+#line 7924 "util/configparser.c"
break;
- case 770: /* redis_logical_db: VAR_CACHEDB_REDISLOGICALDB STRING_ARG */
-#line 4145 "util/configparser.y"
+ case 775: /* redis_logical_db: VAR_CACHEDB_REDISLOGICALDB STRING_ARG */
+#line 4169 "util/configparser.y"
{
#if defined(USE_CACHEDB) && defined(USE_REDIS)
int db;
@@ -7849,11 +7938,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 7853 "util/configparser.c"
+#line 7942 "util/configparser.c"
break;
- case 771: /* redis_replica_logical_db: VAR_CACHEDB_REDISREPLICALOGICALDB STRING_ARG */
-#line 4160 "util/configparser.y"
+ case 776: /* redis_replica_logical_db: VAR_CACHEDB_REDISREPLICALOGICALDB STRING_ARG */
+#line 4184 "util/configparser.y"
{
#if defined(USE_CACHEDB) && defined(USE_REDIS)
int db;
@@ -7867,11 +7956,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 7871 "util/configparser.c"
+#line 7960 "util/configparser.c"
break;
- case 772: /* server_tcp_connection_limit: VAR_TCP_CONNECTION_LIMIT STRING_ARG STRING_ARG */
-#line 4175 "util/configparser.y"
+ case 777: /* server_tcp_connection_limit: VAR_TCP_CONNECTION_LIMIT STRING_ARG STRING_ARG */
+#line 4199 "util/configparser.y"
{
OUTYY(("P(server_tcp_connection_limit:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
if (atoi((yyvsp[0].str)) < 0)
@@ -7881,11 +7970,11 @@ yyreduce:
fatal_exit("out of memory adding tcp connection limit");
}
}
-#line 7885 "util/configparser.c"
+#line 7974 "util/configparser.c"
break;
- case 773: /* server_answer_cookie: VAR_ANSWER_COOKIE STRING_ARG */
-#line 4186 "util/configparser.y"
+ case 778: /* server_answer_cookie: VAR_ANSWER_COOKIE STRING_ARG */
+#line 4210 "util/configparser.y"
{
OUTYY(("P(server_answer_cookie:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -7893,11 +7982,11 @@ yyreduce:
else cfg_parser->cfg->do_answer_cookie = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 7897 "util/configparser.c"
+#line 7986 "util/configparser.c"
break;
- case 774: /* server_cookie_secret: VAR_COOKIE_SECRET STRING_ARG */
-#line 4195 "util/configparser.y"
+ case 779: /* server_cookie_secret: VAR_COOKIE_SECRET STRING_ARG */
+#line 4219 "util/configparser.y"
{
uint8_t secret[32];
size_t secret_len = sizeof(secret);
@@ -7912,21 +8001,21 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 7916 "util/configparser.c"
+#line 8005 "util/configparser.c"
break;
- case 775: /* server_cookie_secret_file: VAR_COOKIE_SECRET_FILE STRING_ARG */
-#line 4211 "util/configparser.y"
+ case 780: /* server_cookie_secret_file: VAR_COOKIE_SECRET_FILE STRING_ARG */
+#line 4235 "util/configparser.y"
{
OUTYY(("P(cookie_secret_file:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->cookie_secret_file);
cfg_parser->cfg->cookie_secret_file = (yyvsp[0].str);
}
-#line 7926 "util/configparser.c"
+#line 8015 "util/configparser.c"
break;
- case 776: /* server_iter_scrub_ns: VAR_ITER_SCRUB_NS STRING_ARG */
-#line 4218 "util/configparser.y"
+ case 781: /* server_iter_scrub_ns: VAR_ITER_SCRUB_NS STRING_ARG */
+#line 4242 "util/configparser.y"
{
OUTYY(("P(server_iter_scrub_ns:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -7934,11 +8023,11 @@ yyreduce:
else cfg_parser->cfg->iter_scrub_ns = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 7938 "util/configparser.c"
+#line 8027 "util/configparser.c"
break;
- case 777: /* server_iter_scrub_cname: VAR_ITER_SCRUB_CNAME STRING_ARG */
-#line 4227 "util/configparser.y"
+ case 782: /* server_iter_scrub_cname: VAR_ITER_SCRUB_CNAME STRING_ARG */
+#line 4251 "util/configparser.y"
{
OUTYY(("P(server_iter_scrub_cname:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -7946,11 +8035,23 @@ yyreduce:
else cfg_parser->cfg->iter_scrub_cname = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 7950 "util/configparser.c"
+#line 8039 "util/configparser.c"
break;
- case 778: /* server_max_global_quota: VAR_MAX_GLOBAL_QUOTA STRING_ARG */
-#line 4236 "util/configparser.y"
+ case 783: /* server_iter_scrub_rrsig: VAR_ITER_SCRUB_RRSIG STRING_ARG */
+#line 4260 "util/configparser.y"
+ {
+ OUTYY(("P(server_iter_scrub_rrsig:%s)\n", (yyvsp[0].str)));
+ if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
+ yyerror("number expected");
+ else cfg_parser->cfg->iter_scrub_rrsig = atoi((yyvsp[0].str));
+ free((yyvsp[0].str));
+ }
+#line 8051 "util/configparser.c"
+ break;
+
+ case 784: /* server_max_global_quota: VAR_MAX_GLOBAL_QUOTA STRING_ARG */
+#line 4269 "util/configparser.y"
{
OUTYY(("P(server_max_global_quota:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -7958,11 +8059,11 @@ yyreduce:
else cfg_parser->cfg->max_global_quota = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 7962 "util/configparser.c"
+#line 8063 "util/configparser.c"
break;
- case 779: /* server_iter_scrub_promiscuous: VAR_ITER_SCRUB_PROMISCUOUS STRING_ARG */
-#line 4245 "util/configparser.y"
+ case 785: /* server_iter_scrub_promiscuous: VAR_ITER_SCRUB_PROMISCUOUS STRING_ARG */
+#line 4278 "util/configparser.y"
{
OUTYY(("P(server_iter_scrub_promiscuous:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -7971,20 +8072,20 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 7975 "util/configparser.c"
+#line 8076 "util/configparser.c"
break;
- case 780: /* ipsetstart: VAR_IPSET */
-#line 4255 "util/configparser.y"
+ case 786: /* ipsetstart: VAR_IPSET */
+#line 4288 "util/configparser.y"
{
OUTYY(("\nP(ipset:)\n"));
cfg_parser->started_toplevel = 1;
}
-#line 7984 "util/configparser.c"
+#line 8085 "util/configparser.c"
break;
- case 785: /* ipset_name_v4: VAR_IPSET_NAME_V4 STRING_ARG */
-#line 4265 "util/configparser.y"
+ case 791: /* ipset_name_v4: VAR_IPSET_NAME_V4 STRING_ARG */
+#line 4298 "util/configparser.y"
{
#ifdef USE_IPSET
OUTYY(("P(name-v4:%s)\n", (yyvsp[0].str)));
@@ -7998,11 +8099,11 @@ yyreduce:
free((yyvsp[0].str));
#endif
}
-#line 8002 "util/configparser.c"
+#line 8103 "util/configparser.c"
break;
- case 786: /* ipset_name_v6: VAR_IPSET_NAME_V6 STRING_ARG */
-#line 4280 "util/configparser.y"
+ case 792: /* ipset_name_v6: VAR_IPSET_NAME_V6 STRING_ARG */
+#line 4313 "util/configparser.y"
{
#ifdef USE_IPSET
OUTYY(("P(name-v6:%s)\n", (yyvsp[0].str)));
@@ -8016,11 +8117,11 @@ yyreduce:
free((yyvsp[0].str));
#endif
}
-#line 8020 "util/configparser.c"
+#line 8121 "util/configparser.c"
break;
-#line 8024 "util/configparser.c"
+#line 8125 "util/configparser.c"
default: break;
}
@@ -8102,7 +8203,6 @@ yyerrorlab:
label yyerrorlab therefore never appears in user code. */
if (0)
YYERROR;
- ++yynerrs;
/* Do not reclaim the symbols of the rule whose action triggered
this YYERROR. */
@@ -8163,7 +8263,7 @@ yyerrlab1:
`-------------------------------------*/
yyacceptlab:
yyresult = 0;
- goto yyreturnlab;
+ goto yyreturn;
/*-----------------------------------.
@@ -8171,22 +8271,24 @@ yyacceptlab:
`-----------------------------------*/
yyabortlab:
yyresult = 1;
- goto yyreturnlab;
+ goto yyreturn;
-/*-----------------------------------------------------------.
-| yyexhaustedlab -- YYNOMEM (memory exhaustion) comes here. |
-`-----------------------------------------------------------*/
+#if !defined yyoverflow
+/*-------------------------------------------------.
+| yyexhaustedlab -- memory exhaustion comes here. |
+`-------------------------------------------------*/
yyexhaustedlab:
yyerror (YY_("memory exhausted"));
yyresult = 2;
- goto yyreturnlab;
+ goto yyreturn;
+#endif
-/*----------------------------------------------------------.
-| yyreturnlab -- parsing is finished, clean up and return. |
-`----------------------------------------------------------*/
-yyreturnlab:
+/*-------------------------------------------------------.
+| yyreturn -- parsing is finished, clean up and return. |
+`-------------------------------------------------------*/
+yyreturn:
if (yychar != YYEMPTY)
{
/* Make sure we have latest lookahead translation. See comments at
@@ -8213,7 +8315,7 @@ yyreturnlab:
return yyresult;
}
-#line 4294 "util/configparser.y"
+#line 4327 "util/configparser.y"
/* parse helper routines could be here */
diff --git a/util/configparser.h b/util/configparser.h
index 6fab5a35acdf..b5582671fc7f 100644
--- a/util/configparser.h
+++ b/util/configparser.h
@@ -1,4 +1,4 @@
-/* A Bison parser, made by GNU Bison 3.8.2. */
+/* A Bison parser, made by GNU Bison 3.7.6. */
/* Bison interface for Yacc-like parsers in C
@@ -386,49 +386,52 @@ extern int yydebug;
VAR_TLS_CIPHERS = 587, /* VAR_TLS_CIPHERS */
VAR_TLS_CIPHERSUITES = 588, /* VAR_TLS_CIPHERSUITES */
VAR_TLS_USE_SNI = 589, /* VAR_TLS_USE_SNI */
- VAR_IPSET = 590, /* VAR_IPSET */
- VAR_IPSET_NAME_V4 = 591, /* VAR_IPSET_NAME_V4 */
- VAR_IPSET_NAME_V6 = 592, /* VAR_IPSET_NAME_V6 */
- VAR_TLS_SESSION_TICKET_KEYS = 593, /* VAR_TLS_SESSION_TICKET_KEYS */
- VAR_RPZ = 594, /* VAR_RPZ */
- VAR_TAGS = 595, /* VAR_TAGS */
- VAR_RPZ_ACTION_OVERRIDE = 596, /* VAR_RPZ_ACTION_OVERRIDE */
- VAR_RPZ_CNAME_OVERRIDE = 597, /* VAR_RPZ_CNAME_OVERRIDE */
- VAR_RPZ_LOG = 598, /* VAR_RPZ_LOG */
- VAR_RPZ_LOG_NAME = 599, /* VAR_RPZ_LOG_NAME */
- VAR_DYNLIB = 600, /* VAR_DYNLIB */
- VAR_DYNLIB_FILE = 601, /* VAR_DYNLIB_FILE */
- VAR_EDNS_CLIENT_STRING = 602, /* VAR_EDNS_CLIENT_STRING */
- VAR_EDNS_CLIENT_STRING_OPCODE = 603, /* VAR_EDNS_CLIENT_STRING_OPCODE */
- VAR_NSID = 604, /* VAR_NSID */
- VAR_ZONEMD_PERMISSIVE_MODE = 605, /* VAR_ZONEMD_PERMISSIVE_MODE */
- VAR_ZONEMD_CHECK = 606, /* VAR_ZONEMD_CHECK */
- VAR_ZONEMD_REJECT_ABSENCE = 607, /* VAR_ZONEMD_REJECT_ABSENCE */
- VAR_RPZ_SIGNAL_NXDOMAIN_RA = 608, /* VAR_RPZ_SIGNAL_NXDOMAIN_RA */
- VAR_INTERFACE_AUTOMATIC_PORTS = 609, /* VAR_INTERFACE_AUTOMATIC_PORTS */
- VAR_EDE = 610, /* VAR_EDE */
- VAR_DNS_ERROR_REPORTING = 611, /* VAR_DNS_ERROR_REPORTING */
- VAR_INTERFACE_ACTION = 612, /* VAR_INTERFACE_ACTION */
- VAR_INTERFACE_VIEW = 613, /* VAR_INTERFACE_VIEW */
- VAR_INTERFACE_TAG = 614, /* VAR_INTERFACE_TAG */
- VAR_INTERFACE_TAG_ACTION = 615, /* VAR_INTERFACE_TAG_ACTION */
- VAR_INTERFACE_TAG_DATA = 616, /* VAR_INTERFACE_TAG_DATA */
- VAR_QUIC_PORT = 617, /* VAR_QUIC_PORT */
- VAR_QUIC_SIZE = 618, /* VAR_QUIC_SIZE */
- VAR_PROXY_PROTOCOL_PORT = 619, /* VAR_PROXY_PROTOCOL_PORT */
- VAR_STATISTICS_INHIBIT_ZERO = 620, /* VAR_STATISTICS_INHIBIT_ZERO */
- VAR_HARDEN_UNKNOWN_ADDITIONAL = 621, /* VAR_HARDEN_UNKNOWN_ADDITIONAL */
- VAR_DISABLE_EDNS_DO = 622, /* VAR_DISABLE_EDNS_DO */
- VAR_CACHEDB_NO_STORE = 623, /* VAR_CACHEDB_NO_STORE */
- VAR_LOG_DESTADDR = 624, /* VAR_LOG_DESTADDR */
- VAR_CACHEDB_CHECK_WHEN_SERVE_EXPIRED = 625, /* VAR_CACHEDB_CHECK_WHEN_SERVE_EXPIRED */
- VAR_COOKIE_SECRET_FILE = 626, /* VAR_COOKIE_SECRET_FILE */
- VAR_ITER_SCRUB_NS = 627, /* VAR_ITER_SCRUB_NS */
- VAR_ITER_SCRUB_CNAME = 628, /* VAR_ITER_SCRUB_CNAME */
- VAR_MAX_GLOBAL_QUOTA = 629, /* VAR_MAX_GLOBAL_QUOTA */
- VAR_HARDEN_UNVERIFIED_GLUE = 630, /* VAR_HARDEN_UNVERIFIED_GLUE */
- VAR_LOG_TIME_ISO = 631, /* VAR_LOG_TIME_ISO */
- VAR_ITER_SCRUB_PROMISCUOUS = 632 /* VAR_ITER_SCRUB_PROMISCUOUS */
+ VAR_TLS_PROTOCOLS = 590, /* VAR_TLS_PROTOCOLS */
+ VAR_IPSET = 591, /* VAR_IPSET */
+ VAR_IPSET_NAME_V4 = 592, /* VAR_IPSET_NAME_V4 */
+ VAR_IPSET_NAME_V6 = 593, /* VAR_IPSET_NAME_V6 */
+ VAR_TLS_SESSION_TICKET_KEYS = 594, /* VAR_TLS_SESSION_TICKET_KEYS */
+ VAR_RPZ = 595, /* VAR_RPZ */
+ VAR_TAGS = 596, /* VAR_TAGS */
+ VAR_RPZ_ACTION_OVERRIDE = 597, /* VAR_RPZ_ACTION_OVERRIDE */
+ VAR_RPZ_CNAME_OVERRIDE = 598, /* VAR_RPZ_CNAME_OVERRIDE */
+ VAR_RPZ_LOG = 599, /* VAR_RPZ_LOG */
+ VAR_RPZ_LOG_NAME = 600, /* VAR_RPZ_LOG_NAME */
+ VAR_DYNLIB = 601, /* VAR_DYNLIB */
+ VAR_DYNLIB_FILE = 602, /* VAR_DYNLIB_FILE */
+ VAR_EDNS_CLIENT_STRING = 603, /* VAR_EDNS_CLIENT_STRING */
+ VAR_EDNS_CLIENT_STRING_OPCODE = 604, /* VAR_EDNS_CLIENT_STRING_OPCODE */
+ VAR_NSID = 605, /* VAR_NSID */
+ VAR_ZONEMD_PERMISSIVE_MODE = 606, /* VAR_ZONEMD_PERMISSIVE_MODE */
+ VAR_ZONEMD_CHECK = 607, /* VAR_ZONEMD_CHECK */
+ VAR_ZONEMD_REJECT_ABSENCE = 608, /* VAR_ZONEMD_REJECT_ABSENCE */
+ VAR_RPZ_SIGNAL_NXDOMAIN_RA = 609, /* VAR_RPZ_SIGNAL_NXDOMAIN_RA */
+ VAR_INTERFACE_AUTOMATIC_PORTS = 610, /* VAR_INTERFACE_AUTOMATIC_PORTS */
+ VAR_EDE = 611, /* VAR_EDE */
+ VAR_DNS_ERROR_REPORTING = 612, /* VAR_DNS_ERROR_REPORTING */
+ VAR_INTERFACE_ACTION = 613, /* VAR_INTERFACE_ACTION */
+ VAR_INTERFACE_VIEW = 614, /* VAR_INTERFACE_VIEW */
+ VAR_INTERFACE_TAG = 615, /* VAR_INTERFACE_TAG */
+ VAR_INTERFACE_TAG_ACTION = 616, /* VAR_INTERFACE_TAG_ACTION */
+ VAR_INTERFACE_TAG_DATA = 617, /* VAR_INTERFACE_TAG_DATA */
+ VAR_QUIC_PORT = 618, /* VAR_QUIC_PORT */
+ VAR_QUIC_SIZE = 619, /* VAR_QUIC_SIZE */
+ VAR_PROXY_PROTOCOL_PORT = 620, /* VAR_PROXY_PROTOCOL_PORT */
+ VAR_STATISTICS_INHIBIT_ZERO = 621, /* VAR_STATISTICS_INHIBIT_ZERO */
+ VAR_HARDEN_UNKNOWN_ADDITIONAL = 622, /* VAR_HARDEN_UNKNOWN_ADDITIONAL */
+ VAR_DISABLE_EDNS_DO = 623, /* VAR_DISABLE_EDNS_DO */
+ VAR_CACHEDB_NO_STORE = 624, /* VAR_CACHEDB_NO_STORE */
+ VAR_LOG_DESTADDR = 625, /* VAR_LOG_DESTADDR */
+ VAR_CACHEDB_CHECK_WHEN_SERVE_EXPIRED = 626, /* VAR_CACHEDB_CHECK_WHEN_SERVE_EXPIRED */
+ VAR_COOKIE_SECRET_FILE = 627, /* VAR_COOKIE_SECRET_FILE */
+ VAR_ITER_SCRUB_NS = 628, /* VAR_ITER_SCRUB_NS */
+ VAR_ITER_SCRUB_CNAME = 629, /* VAR_ITER_SCRUB_CNAME */
+ VAR_ITER_SCRUB_RRSIG = 630, /* VAR_ITER_SCRUB_RRSIG */
+ VAR_MAX_GLOBAL_QUOTA = 631, /* VAR_MAX_GLOBAL_QUOTA */
+ VAR_HARDEN_UNVERIFIED_GLUE = 632, /* VAR_HARDEN_UNVERIFIED_GLUE */
+ VAR_LOG_TIME_ISO = 633, /* VAR_LOG_TIME_ISO */
+ VAR_ITER_SCRUB_PROMISCUOUS = 634, /* VAR_ITER_SCRUB_PROMISCUOUS */
+ VAR_LOG_THREAD_ID = 635 /* VAR_LOG_THREAD_ID */
};
typedef enum yytokentype yytoken_kind_t;
#endif
@@ -769,49 +772,52 @@ extern int yydebug;
#define VAR_TLS_CIPHERS 587
#define VAR_TLS_CIPHERSUITES 588
#define VAR_TLS_USE_SNI 589
-#define VAR_IPSET 590
-#define VAR_IPSET_NAME_V4 591
-#define VAR_IPSET_NAME_V6 592
-#define VAR_TLS_SESSION_TICKET_KEYS 593
-#define VAR_RPZ 594
-#define VAR_TAGS 595
-#define VAR_RPZ_ACTION_OVERRIDE 596
-#define VAR_RPZ_CNAME_OVERRIDE 597
-#define VAR_RPZ_LOG 598
-#define VAR_RPZ_LOG_NAME 599
-#define VAR_DYNLIB 600
-#define VAR_DYNLIB_FILE 601
-#define VAR_EDNS_CLIENT_STRING 602
-#define VAR_EDNS_CLIENT_STRING_OPCODE 603
-#define VAR_NSID 604
-#define VAR_ZONEMD_PERMISSIVE_MODE 605
-#define VAR_ZONEMD_CHECK 606
-#define VAR_ZONEMD_REJECT_ABSENCE 607
-#define VAR_RPZ_SIGNAL_NXDOMAIN_RA 608
-#define VAR_INTERFACE_AUTOMATIC_PORTS 609
-#define VAR_EDE 610
-#define VAR_DNS_ERROR_REPORTING 611
-#define VAR_INTERFACE_ACTION 612
-#define VAR_INTERFACE_VIEW 613
-#define VAR_INTERFACE_TAG 614
-#define VAR_INTERFACE_TAG_ACTION 615
-#define VAR_INTERFACE_TAG_DATA 616
-#define VAR_QUIC_PORT 617
-#define VAR_QUIC_SIZE 618
-#define VAR_PROXY_PROTOCOL_PORT 619
-#define VAR_STATISTICS_INHIBIT_ZERO 620
-#define VAR_HARDEN_UNKNOWN_ADDITIONAL 621
-#define VAR_DISABLE_EDNS_DO 622
-#define VAR_CACHEDB_NO_STORE 623
-#define VAR_LOG_DESTADDR 624
-#define VAR_CACHEDB_CHECK_WHEN_SERVE_EXPIRED 625
-#define VAR_COOKIE_SECRET_FILE 626
-#define VAR_ITER_SCRUB_NS 627
-#define VAR_ITER_SCRUB_CNAME 628
-#define VAR_MAX_GLOBAL_QUOTA 629
-#define VAR_HARDEN_UNVERIFIED_GLUE 630
-#define VAR_LOG_TIME_ISO 631
-#define VAR_ITER_SCRUB_PROMISCUOUS 632
+#define VAR_TLS_PROTOCOLS 590
+#define VAR_IPSET 591
+#define VAR_IPSET_NAME_V4 592
+#define VAR_IPSET_NAME_V6 593
+#define VAR_TLS_SESSION_TICKET_KEYS 594
+#define VAR_RPZ 595
+#define VAR_TAGS 596
+#define VAR_RPZ_ACTION_OVERRIDE 597
+#define VAR_RPZ_CNAME_OVERRIDE 598
+#define VAR_RPZ_LOG 599
+#define VAR_RPZ_LOG_NAME 600
+#define VAR_DYNLIB 601
+#define VAR_DYNLIB_FILE 602
+#define VAR_EDNS_CLIENT_STRING 603
+#define VAR_EDNS_CLIENT_STRING_OPCODE 604
+#define VAR_NSID 605
+#define VAR_ZONEMD_PERMISSIVE_MODE 606
+#define VAR_ZONEMD_CHECK 607
+#define VAR_ZONEMD_REJECT_ABSENCE 608
+#define VAR_RPZ_SIGNAL_NXDOMAIN_RA 609
+#define VAR_INTERFACE_AUTOMATIC_PORTS 610
+#define VAR_EDE 611
+#define VAR_DNS_ERROR_REPORTING 612
+#define VAR_INTERFACE_ACTION 613
+#define VAR_INTERFACE_VIEW 614
+#define VAR_INTERFACE_TAG 615
+#define VAR_INTERFACE_TAG_ACTION 616
+#define VAR_INTERFACE_TAG_DATA 617
+#define VAR_QUIC_PORT 618
+#define VAR_QUIC_SIZE 619
+#define VAR_PROXY_PROTOCOL_PORT 620
+#define VAR_STATISTICS_INHIBIT_ZERO 621
+#define VAR_HARDEN_UNKNOWN_ADDITIONAL 622
+#define VAR_DISABLE_EDNS_DO 623
+#define VAR_CACHEDB_NO_STORE 624
+#define VAR_LOG_DESTADDR 625
+#define VAR_CACHEDB_CHECK_WHEN_SERVE_EXPIRED 626
+#define VAR_COOKIE_SECRET_FILE 627
+#define VAR_ITER_SCRUB_NS 628
+#define VAR_ITER_SCRUB_CNAME 629
+#define VAR_ITER_SCRUB_RRSIG 630
+#define VAR_MAX_GLOBAL_QUOTA 631
+#define VAR_HARDEN_UNVERIFIED_GLUE 632
+#define VAR_LOG_TIME_ISO 633
+#define VAR_ITER_SCRUB_PROMISCUOUS 634
+#define VAR_LOG_THREAD_ID 635
/* Value type. */
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
@@ -821,7 +827,7 @@ union YYSTYPE
char* str;
-#line 825 "util/configparser.h"
+#line 831 "util/configparser.h"
};
typedef union YYSTYPE YYSTYPE;
@@ -832,8 +838,6 @@ typedef union YYSTYPE YYSTYPE;
extern YYSTYPE yylval;
-
int yyparse (void);
-
#endif /* !YY_YY_UTIL_CONFIGPARSER_H_INCLUDED */
diff --git a/util/configparser.y b/util/configparser.y
index bef1fd38d1dd..6ea214ea5587 100644
--- a/util/configparser.y
+++ b/util/configparser.y
@@ -199,6 +199,7 @@ extern struct config_parser_state* cfg_parser;
%token VAR_DISCARD_TIMEOUT VAR_WAIT_LIMIT VAR_WAIT_LIMIT_COOKIE
%token VAR_WAIT_LIMIT_NETBLOCK VAR_WAIT_LIMIT_COOKIE_NETBLOCK
%token VAR_STREAM_WAIT_SIZE VAR_TLS_CIPHERS VAR_TLS_CIPHERSUITES VAR_TLS_USE_SNI
+%token VAR_TLS_PROTOCOLS
%token VAR_IPSET VAR_IPSET_NAME_V4 VAR_IPSET_NAME_V6
%token VAR_TLS_SESSION_TICKET_KEYS VAR_RPZ VAR_TAGS VAR_RPZ_ACTION_OVERRIDE
%token VAR_RPZ_CNAME_OVERRIDE VAR_RPZ_LOG VAR_RPZ_LOG_NAME
@@ -214,8 +215,9 @@ extern struct config_parser_state* cfg_parser;
%token VAR_HARDEN_UNKNOWN_ADDITIONAL VAR_DISABLE_EDNS_DO VAR_CACHEDB_NO_STORE
%token VAR_LOG_DESTADDR VAR_CACHEDB_CHECK_WHEN_SERVE_EXPIRED
%token VAR_COOKIE_SECRET_FILE VAR_ITER_SCRUB_NS VAR_ITER_SCRUB_CNAME
+%token VAR_ITER_SCRUB_RRSIG
%token VAR_MAX_GLOBAL_QUOTA VAR_HARDEN_UNVERIFIED_GLUE VAR_LOG_TIME_ISO
-%token VAR_ITER_SCRUB_PROMISCUOUS
+%token VAR_ITER_SCRUB_PROMISCUOUS VAR_LOG_THREAD_ID
%%
toplevelvars: /* empty */ | toplevelvars toplevelvar ;
@@ -287,7 +289,7 @@ content_server: server_num_threads | server_verbosity | server_port |
server_edns_buffer_size | server_prefetch | server_prefetch_key |
server_so_sndbuf | server_harden_below_nxdomain | server_ignore_cd_flag |
server_log_queries | server_log_replies | server_tcp_upstream | server_ssl_upstream |
- server_log_local_actions |
+ server_log_local_actions | server_log_thread_id |
server_ssl_service_key | server_ssl_service_pem | server_ssl_port |
server_https_port | server_http_endpoint | server_http_max_streams |
server_http_query_buffer_size | server_http_response_buffer_size |
@@ -346,7 +348,7 @@ content_server: server_num_threads | server_verbosity | server_port |
server_stream_wait_size | server_tls_ciphers |
server_tls_ciphersuites | server_tls_session_ticket_keys |
server_answer_cookie | server_cookie_secret | server_ip_ratelimit_cookie |
- server_tls_use_sni | server_edns_client_string |
+ server_tls_use_sni | server_edns_client_string | server_tls_protocols |
server_edns_client_string_opcode | server_nsid |
server_zonemd_permissive_mode | server_max_reuse_tcp_queries |
server_tcp_reuse_timeout | server_tcp_auth_query_timeout |
@@ -357,6 +359,7 @@ content_server: server_num_threads | server_verbosity | server_port |
server_harden_unknown_additional | server_disable_edns_do |
server_log_destaddr | server_cookie_secret_file |
server_iter_scrub_ns | server_iter_scrub_cname | server_max_global_quota |
+ server_iter_scrub_rrsig |
server_harden_unverified_glue | server_log_time_iso | server_iter_scrub_promiscuous
;
stub_clause: stubstart contents_stub
@@ -1155,6 +1158,15 @@ server_tls_use_sni: VAR_TLS_USE_SNI STRING_ARG
free($2);
}
;
+server_tls_protocols: VAR_TLS_PROTOCOLS STRING_ARG
+ {
+ OUTYY(("P(server_tls_protocols:%s)\n", $2));
+ if(!cfg_tls_protocols_is_valid($2))
+ yyerror("tls-protocols: valid values are 'TLSv1.2' and 'TLSv1.3'.");
+ free(cfg_parser->cfg->tls_protocols);
+ cfg_parser->cfg->tls_protocols = $2;
+ }
+ ;
server_https_port: VAR_HTTPS_PORT STRING_ARG
{
OUTYY(("P(server_https_port:%s)\n", $2));
@@ -1224,14 +1236,17 @@ server_http_notls_downstream: VAR_HTTP_NOTLS_DOWNSTREAM STRING_ARG
server_quic_port: VAR_QUIC_PORT STRING_ARG
{
OUTYY(("P(server_quic_port:%s)\n", $2));
+ if(atoi($2) == 0 && strcmp($2,"0")!=0)
+ yyerror("port number expected");
+ else {
+ cfg_parser->cfg->quic_port = atoi($2);
#ifndef HAVE_NGTCP2
- log_warn("%s:%d: Unbound is not compiled with "
- "ngtcp2. This is required to use DNS "
- "over QUIC.", cfg_parser->filename, cfg_parser->line);
+ if (cfg_parser->cfg->quic_port != 0)
+ log_warn("%s:%d: Unbound is not compiled with "
+ "ngtcp2. This is required to use DNS "
+ "over QUIC.", cfg_parser->filename, cfg_parser->line);
#endif
- if(atoi($2) == 0)
- yyerror("port number expected");
- else cfg_parser->cfg->quic_port = atoi($2);
+ }
free($2);
};
server_quic_size: VAR_QUIC_SIZE STRING_ARG
@@ -1336,6 +1351,15 @@ server_log_destaddr: VAR_LOG_DESTADDR STRING_ARG
free($2);
}
;
+server_log_thread_id: VAR_LOG_THREAD_ID STRING_ARG
+ {
+ OUTYY(("P(server_log_thread_id:%s)\n", $2));
+ if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0)
+ yyerror("expected yes or no.");
+ else cfg_parser->cfg->log_thread_id = (strcmp($2, "yes")==0);
+ free($2);
+ }
+ ;
server_log_local_actions: VAR_LOG_LOCAL_ACTIONS STRING_ARG
{
OUTYY(("P(server_log_local_actions:%s)\n", $2));
@@ -2376,7 +2400,7 @@ server_local_zone: VAR_LOCAL_ZONE STRING_ARG STRING_ARG
yyerror("local-zone type: expected static, deny, "
"refuse, redirect, transparent, "
"typetransparent, inform, inform_deny, "
- "inform_redirect, always_transparent, block_a,"
+ "inform_redirect, always_transparent, block_a, "
"always_refuse, always_nxdomain, "
"always_nodata, always_deny, always_null, "
"noview, nodefault or ipset");
@@ -4232,6 +4256,15 @@ server_iter_scrub_cname: VAR_ITER_SCRUB_CNAME STRING_ARG
free($2);
}
;
+server_iter_scrub_rrsig: VAR_ITER_SCRUB_RRSIG STRING_ARG
+ {
+ OUTYY(("P(server_iter_scrub_rrsig:%s)\n", $2));
+ if(atoi($2) == 0 && strcmp($2, "0") != 0)
+ yyerror("number expected");
+ else cfg_parser->cfg->iter_scrub_rrsig = atoi($2);
+ free($2);
+ }
+ ;
server_max_global_quota: VAR_MAX_GLOBAL_QUOTA STRING_ARG
{
OUTYY(("P(server_max_global_quota:%s)\n", $2));
diff --git a/util/data/msgencode.c b/util/data/msgencode.c
index 84aa3b9e75ae..8f46395194a6 100644
--- a/util/data/msgencode.c
+++ b/util/data/msgencode.c
@@ -496,10 +496,18 @@ packed_rrset_encode(struct ub_packed_rrset_key* key, sldns_buffer* pkt,
return r;
sldns_buffer_write(pkt, &key->rk.type, 2);
sldns_buffer_write(pkt, &key->rk.rrset_class, 2);
- if(data->rr_ttl[j] < adjust)
+ if(key->rk.flags & PACKED_RRSET_UPSTREAM_0TTL) {
+ sldns_buffer_write_u32(pkt, 0);
+ } else if(adjust == 0) {
+ sldns_buffer_write_u32(pkt, data->rr_ttl[j]);
+ } else if(TTL_IS_EXPIRED(data->rr_ttl[j], adjust)) {
sldns_buffer_write_u32(pkt,
- SERVE_EXPIRED?SERVE_EXPIRED_REPLY_TTL:0);
- else sldns_buffer_write_u32(pkt, data->rr_ttl[j]-adjust);
+ EXPIRED_REPLY_TTL_CALC(
+ data->rr_ttl[j], data->ttl_add));
+ } else {
+ sldns_buffer_write_u32(pkt,
+ data->rr_ttl[j] - adjust);
+ }
if(c) {
if((r=compress_rdata(pkt, data->rr_data[j],
data->rr_len[j], region, tree, c,
@@ -533,10 +541,18 @@ packed_rrset_encode(struct ub_packed_rrset_key* key, sldns_buffer* pkt,
}
sldns_buffer_write_u16(pkt, LDNS_RR_TYPE_RRSIG);
sldns_buffer_write(pkt, &key->rk.rrset_class, 2);
- if(data->rr_ttl[i] < adjust)
+ if(key->rk.flags & PACKED_RRSET_UPSTREAM_0TTL) {
+ sldns_buffer_write_u32(pkt, 0);
+ } else if(adjust == 0) {
+ sldns_buffer_write_u32(pkt, data->rr_ttl[i]);
+ } else if(TTL_IS_EXPIRED(data->rr_ttl[i], adjust)) {
+ sldns_buffer_write_u32(pkt,
+ EXPIRED_REPLY_TTL_CALC(
+ data->rr_ttl[i], data->ttl_add));
+ } else {
sldns_buffer_write_u32(pkt,
- SERVE_EXPIRED?SERVE_EXPIRED_REPLY_TTL:0);
- else sldns_buffer_write_u32(pkt, data->rr_ttl[i]-adjust);
+ data->rr_ttl[i] - adjust);
+ }
/* rrsig rdata cannot be compressed, perform 100+ byte
* memcopy. */
sldns_buffer_write(pkt, data->rr_data[i],
@@ -993,10 +1009,10 @@ attach_edns_record(sldns_buffer* pkt, struct edns_data* edns)
attach_edns_record_max_msg_sz(pkt, edns, edns->udp_size);
}
-int
-reply_info_answer_encode(struct query_info* qinf, struct reply_info* rep,
+int
+reply_info_answer_encode(struct query_info* qinf, struct reply_info* rep,
uint16_t id, uint16_t qflags, sldns_buffer* pkt, time_t timenow,
- int cached, struct regional* region, uint16_t udpsize,
+ int cached, struct regional* region, uint16_t udpsize,
struct edns_data* edns, int dnssec, int secure)
{
uint16_t flags;
@@ -1115,22 +1131,30 @@ extended_error_encode(sldns_buffer* buf, uint16_t rcode,
sldns_buffer_write_u16(buf, qinfo->qclass);
}
sldns_buffer_flip(buf);
- if(edns) {
+ if(edns && edns->edns_present) {
+ uint16_t edns_field_size, ede_size, ede_txt_size;
struct edns_data es = *edns;
es.edns_version = EDNS_ADVERTISED_VERSION;
es.udp_size = EDNS_ADVERTISED_SIZE;
es.ext_rcode = (uint8_t)(rcode >> 4);
es.bits &= EDNS_DO;
- if(sldns_buffer_limit(buf) + calc_edns_field_size(&es) >
- edns->udp_size) {
+ /* EDEs are optional. If space is a concern try in order:
+ * - removing any EXTRA-TEXT fields from explicit EDEs, or
+ * - removing all EDEs,
+ * to see if EDNS can fit. */
+ edns_field_size = calc_edns_field_size(&es);
+ ede_size = calc_ede_option_size(&es, &ede_txt_size);
+ if(edns->udp_size >= sldns_buffer_limit(buf) + edns_field_size)
+ attach_edns_record_max_msg_sz(buf, &es, edns->udp_size);
+ else if(edns->udp_size >= sldns_buffer_limit(buf) + edns_field_size - ede_txt_size) {
+ ede_trim_text(&es.opt_list_inplace_cb_out);
+ ede_trim_text(&es.opt_list_out);
+ attach_edns_record_max_msg_sz(buf, &es, edns->udp_size);
+ } else if(edns->udp_size >= sldns_buffer_limit(buf) + edns_field_size - ede_size) {
edns_opt_list_remove(&es.opt_list_inplace_cb_out, LDNS_EDNS_EDE);
edns_opt_list_remove(&es.opt_list_out, LDNS_EDNS_EDE);
- if(sldns_buffer_limit(buf) + calc_edns_field_size(&es) >
- edns->udp_size) {
- return;
- }
+ attach_edns_record_max_msg_sz(buf, &es, edns->udp_size);
}
- attach_edns_record(buf, &es);
}
}
diff --git a/util/data/msgencode.h b/util/data/msgencode.h
index 08fcb59b8e36..0363a90bf06f 100644
--- a/util/data/msgencode.h
+++ b/util/data/msgencode.h
@@ -66,9 +66,9 @@ struct edns_data;
* @param secure: if 1, the AD bit is set in the reply.
* @return: 0 on error (server failure).
*/
-int reply_info_answer_encode(struct query_info* qinf, struct reply_info* rep,
+int reply_info_answer_encode(struct query_info* qinf, struct reply_info* rep,
uint16_t id, uint16_t qflags, struct sldns_buffer* dest, time_t timenow,
- int cached, struct regional* region, uint16_t udpsize,
+ int cached, struct regional* region, uint16_t udpsize,
struct edns_data* edns, int dnssec, int secure);
/**
diff --git a/util/data/msgparse.c b/util/data/msgparse.c
index 6963d850171e..afbcbca5bc9d 100644
--- a/util/data/msgparse.c
+++ b/util/data/msgparse.c
@@ -1361,3 +1361,15 @@ msgparse_rrset_remove_rr(const char* str, sldns_buffer* pkt, struct rrset_parse*
* the rr->next works fine to continue. */
return rrset->rr_count == 0;
}
+
+#ifdef UNBOUND_DEBUG
+time_t debug_expired_reply_ttl_calc(time_t ttl, time_t ttl_add) {
+ /* Check that we are serving expired when this is called */
+ /* ttl (absolute) should be later than ttl_add */
+ /* It is also called during the grace period for type DNAME,
+ * and then the 'SERVE_EXPIRED' boolean may not be on. */
+ log_assert(ttl_add <= ttl);
+ return (SERVE_EXPIRED_REPLY_TTL < (ttl) - (ttl_add) ?
+ SERVE_EXPIRED_REPLY_TTL : (ttl) - (ttl_add));
+}
+#endif
diff --git a/util/data/msgparse.h b/util/data/msgparse.h
index 7de4e394f2ae..373de677d27c 100644
--- a/util/data/msgparse.h
+++ b/util/data/msgparse.h
@@ -98,6 +98,31 @@ extern time_t SERVE_EXPIRED_REPLY_TTL;
/** If we serve the original TTL or decrementing TTLs */
extern int SERVE_ORIGINAL_TTL;
+/** calculate the prefetch TTL as 90% of original. Calculation
+ * without numerical overflow (uin32_t) */
+#define PREFETCH_TTL_CALC(ttl) ((ttl) - (ttl)/10)
+
+/* caclulate the TTL used for expired answers to somewhat make sense wrt the
+ * original TTL; don't reply with higher TTL than the original */
+#ifdef UNBOUND_DEBUG
+time_t debug_expired_reply_ttl_calc(time_t ttl, time_t ttl_add);
+#define EXPIRED_REPLY_TTL_CALC(ttl, ttl_add) \
+ debug_expired_reply_ttl_calc(ttl, ttl_add)
+#else
+#define EXPIRED_REPLY_TTL_CALC(ttl, ttl_add) \
+ (SERVE_EXPIRED_REPLY_TTL < (ttl) - (ttl_add) ? \
+ SERVE_EXPIRED_REPLY_TTL : (ttl) - (ttl_add))
+#endif
+
+/** Update the reply_info TTL from an RRSet's TTL, essentially keeping the TTL
+ * sane with all the (progressively added) rrsets to the message */
+#define UPDATE_TTL_FROM_RRSET(ttl, rrsetttl) \
+ ((ttl) = ((ttl) < (rrsetttl)) ? (ttl) : (rrsetttl))
+
+/** Check if TTL is expired. 0 TTL is considered expired.
+ * Used mainly to identify parts of the code that do this comparison. */
+#define TTL_IS_EXPIRED(ttl, now) ((ttl) <= (now))
+
/**
* Data stored in scratch pad memory during parsing.
* Stores the data that will enter into the msgreply and packet result.
diff --git a/util/data/msgreply.c b/util/data/msgreply.c
index 02e1230e96e7..e0c4768a6127 100644
--- a/util/data/msgreply.c
+++ b/util/data/msgreply.c
@@ -178,9 +178,9 @@ reply_info_alloc_rrset_keys(struct reply_info* rep, struct alloc_cache* alloc,
int
reply_info_can_answer_expired(struct reply_info* rep, time_t timenow)
{
- log_assert(rep->ttl < timenow);
+ log_assert(TTL_IS_EXPIRED(rep->ttl, timenow));
/* Really expired */
- if(SERVE_EXPIRED_TTL && rep->serve_expired_ttl < timenow) return 0;
+ if(SERVE_EXPIRED_TTL && TTL_IS_EXPIRED(rep->serve_expired_ttl, timenow)) return 0;
/* Ignore expired failure answers */
if(FLAGS_GET_RCODE(rep->flags) != LDNS_RCODE_NOERROR &&
FLAGS_GET_RCODE(rep->flags) != LDNS_RCODE_NXDOMAIN &&
@@ -188,12 +188,13 @@ reply_info_can_answer_expired(struct reply_info* rep, time_t timenow)
return 1;
}
-int reply_info_could_use_expired(struct reply_info* rep, time_t timenow)
+int
+reply_info_could_use_expired(struct reply_info* rep, time_t timenow)
{
- log_assert(rep->ttl < timenow);
+ log_assert(TTL_IS_EXPIRED(rep->ttl, timenow));
/* Really expired */
- if(SERVE_EXPIRED_TTL && rep->serve_expired_ttl < timenow &&
- !SERVE_EXPIRED_TTL_RESET) return 0;
+ if(SERVE_EXPIRED_TTL && TTL_IS_EXPIRED(rep->serve_expired_ttl, timenow)
+ && !SERVE_EXPIRED_TTL_RESET) return 0;
/* Ignore expired failure answers */
if(FLAGS_GET_RCODE(rep->flags) != LDNS_RCODE_NOERROR &&
FLAGS_GET_RCODE(rep->flags) != LDNS_RCODE_NXDOMAIN &&
@@ -229,7 +230,7 @@ make_new_reply_info(const struct reply_info* rep, struct regional* region,
}
/** find the minimumttl in the rdata of SOA record */
-static time_t
+static uint32_t
soa_find_minttl(struct rr_parse* rr)
{
uint16_t rlen = sldns_read_uint16(rr->ttl_data+4);
@@ -237,7 +238,7 @@ soa_find_minttl(struct rr_parse* rr)
return 0; /* rdata too small for SOA (dname, dname, 5*32bit) */
/* minimum TTL is the last 32bit value in the rdata of the record */
/* at position ttl_data + 4(ttl) + 2(rdatalen) + rdatalen - 4(timeval)*/
- return (time_t)sldns_read_uint32(rr->ttl_data+6+rlen-4);
+ return sldns_read_uint32(rr->ttl_data+6+rlen-4);
}
/** do the rdata copy */
@@ -247,37 +248,40 @@ rdata_copy(sldns_buffer* pkt, struct packed_rrset_data* data, uint8_t* to,
sldns_pkt_section section)
{
uint16_t pkt_len;
+ uint32_t ttl;
const sldns_rr_descriptor* desc;
- *rr_ttl = sldns_read_uint32(rr->ttl_data);
+ ttl = sldns_read_uint32(rr->ttl_data);
/* RFC 2181 Section 8. if msb of ttl is set treat as if zero. */
- if((*rr_ttl & 0x80000000U))
- *rr_ttl = 0;
+ /* RFC 8767 Section 4. values with high-order bit as positive, not 0.
++ * As such, it will be capped by MAX_TTL below. */
if(type == LDNS_RR_TYPE_SOA && section == LDNS_SECTION_AUTHORITY) {
/* negative response. see if TTL of SOA record larger than the
* minimum-ttl in the rdata of the SOA record */
- if(*rr_ttl > soa_find_minttl(rr)) *rr_ttl = soa_find_minttl(rr);
+ if(ttl > soa_find_minttl(rr)) ttl = soa_find_minttl(rr);
if(!SERVE_ORIGINAL_TTL) {
/* If MIN_NEG_TTL is configured skip setting MIN_TTL */
- if(MIN_NEG_TTL <= 0 && *rr_ttl < MIN_TTL) {
- *rr_ttl = MIN_TTL;
+ if(MIN_NEG_TTL <= 0 && ttl < (uint32_t)MIN_TTL) {
+ ttl = (uint32_t)MIN_TTL;
}
- if(*rr_ttl > MAX_TTL) *rr_ttl = MAX_TTL;
+ if(ttl > (uint32_t)MAX_TTL) ttl = (uint32_t)MAX_TTL;
}
/* MAX_NEG_TTL overrides the min and max ttl of everything
* else; it is for a more specific record */
- if(*rr_ttl > MAX_NEG_TTL) *rr_ttl = MAX_NEG_TTL;
+ if(ttl > (uint32_t)MAX_NEG_TTL) ttl = (uint32_t)MAX_NEG_TTL;
/* MIN_NEG_TTL overrides the min and max ttl of everything
* else if configured; it is for a more specific record */
- if(MIN_NEG_TTL > 0 && *rr_ttl < MIN_NEG_TTL) {
- *rr_ttl = MIN_NEG_TTL;
+ if(MIN_NEG_TTL > 0 && ttl < (uint32_t)MIN_NEG_TTL) {
+ ttl = (uint32_t)MIN_NEG_TTL;
}
} else if(!SERVE_ORIGINAL_TTL) {
- if(*rr_ttl < MIN_TTL) *rr_ttl = MIN_TTL;
- if(*rr_ttl > MAX_TTL) *rr_ttl = MAX_TTL;
+ if(ttl < (uint32_t)MIN_TTL) ttl = (uint32_t)MIN_TTL;
+ if(ttl > (uint32_t)MAX_TTL) ttl = (uint32_t)MAX_TTL;
}
- if(*rr_ttl < data->ttl)
- data->ttl = *rr_ttl;
+ if((time_t)ttl < data->ttl)
+ data->ttl = (time_t)ttl;
+ /* We have concluded the TTL checks */
+ *rr_ttl = (time_t)ttl;
if(rr->outside_packet) {
/* uncompressed already, only needs copy */
@@ -481,6 +485,7 @@ parse_copy_decompress_rrset(sldns_buffer* pkt, struct msg_parse* msg,
pk->entry.key = (void*)pk;
pk->entry.hash = pset->hash;
data->trust = get_rrset_trust(msg, pset);
+ pk->rk.flags |= (data->ttl == 0) ? PACKED_RRSET_UPSTREAM_0TTL : 0;
return 1;
}
@@ -617,6 +622,29 @@ reply_info_set_ttls(struct reply_info* rep, time_t timenow)
}
}
+void
+reply_info_absolute_ttls(struct reply_info* rep, time_t ttl, time_t ttl_add)
+{
+ size_t i, j;
+ rep->ttl = ttl;
+ rep->prefetch_ttl = PREFETCH_TTL_CALC(ttl);
+ rep->serve_expired_ttl = ttl + SERVE_EXPIRED_TTL;
+ /* Don't set rep->serve_expired_norec_ttl; this should only be set
+ * on cached records when encountering an error */
+ log_assert(rep->serve_expired_norec_ttl == 0);
+ for(i=0; i<rep->rrset_count; i++) {
+ struct packed_rrset_data* data = (struct packed_rrset_data*)
+ rep->ref[i].key->entry.data;
+ if(i>0 && rep->ref[i].key == rep->ref[i-1].key)
+ continue;
+ data->ttl = ttl;
+ for(j=0; j<data->count + data->rrsig_count; j++) {
+ data->rr_ttl[j] = ttl;
+ }
+ data->ttl_add = ttl_add;
+ }
+}
+
void
reply_info_parsedelete(struct reply_info* rep, struct alloc_cache* alloc)
{
diff --git a/util/data/msgreply.h b/util/data/msgreply.h
index 1ec4e850b8e1..e7c688e97a3a 100644
--- a/util/data/msgreply.h
+++ b/util/data/msgreply.h
@@ -44,6 +44,10 @@
#include "util/storage/lruhash.h"
#include "util/data/packed_rrset.h"
#include "sldns/rrdef.h"
+#ifdef __QNX__
+/* For struct timeval */
+#include <sys/time.h>
+#endif /* __QNX__ */
struct sldns_buffer;
struct comm_reply;
struct alloc_cache;
@@ -60,10 +64,6 @@ struct local_rrset;
struct dns_msg;
enum comm_point_type;
-/** calculate the prefetch TTL as 90% of original. Calculation
- * without numerical overflow (uin32_t) */
-#define PREFETCH_TTL_CALC(ttl) ((ttl) - (ttl)/10)
-
/**
* Structure to store query information that makes answers to queries
* different.
@@ -340,6 +340,15 @@ void reply_info_sortref(struct reply_info* rep);
*/
void reply_info_set_ttls(struct reply_info* rep, time_t timenow);
+/**
+ * Set TTLs inside the replyinfo to the given absolute values.
+ * @param rep: reply info. rrsets must be filled in.
+ * Also refs must be filled in.
+ * @param ttl: absolute ttl value to be set.
+ * @param ttl_add: the current time to be used verbatim for ttl_add in the rrsets.
+ */
+void reply_info_absolute_ttls(struct reply_info* rep, time_t ttl, time_t ttl_add);
+
/**
* Delete reply_info and packed_rrsets (while they are not yet added to the
* hashtables.). Returns rrsets to the alloc cache.
@@ -572,7 +581,7 @@ void log_query_info(enum verbosity_value v, const char* str,
struct query_info* qinf);
/**
- * Append edns option to edns option list
+ * Append edns option to edns option list.
* @param list: the edns option list to append the edns option to.
* @param code: the edns option's code.
* @param len: the edns option's length.
@@ -584,17 +593,20 @@ int edns_opt_list_append(struct edns_option** list, uint16_t code, size_t len,
uint8_t* data, struct regional* region);
/**
- * Append edns EDE option to edns options list
+ * Append edns EDE option to edns options list.
+ * We need ATTR_NONSTRING because we are trimming the trailing \0 of static
+ * string (TXT) when assigning to ede.text; it silences compiler nonstring
+ * warnings.
* @param LIST: the edns option list to append the edns option to.
* @param REGION: region to allocate the new edns option.
* @param CODE: the EDE code.
- * @param TXT: Additional text for the option
+ * @param TXT: Additional text for the option.
*/
#define EDNS_OPT_LIST_APPEND_EDE(LIST, REGION, CODE, TXT) \
do { \
struct { \
uint16_t code; \
- char text[sizeof(TXT) - 1]; \
+ char ATTR_NONSTRING(text[sizeof(TXT) - 1]) ; \
} ede = { htons(CODE), TXT }; \
verbose(VERB_ALGO, "attached EDE code: %d with" \
" message: '%s'", CODE, TXT); \
diff --git a/util/data/packed_rrset.c b/util/data/packed_rrset.c
index d18486cc5b36..89ece3c031f5 100644
--- a/util/data/packed_rrset.c
+++ b/util/data/packed_rrset.c
@@ -336,10 +336,9 @@ packed_rrset_copy_region(struct ub_packed_rrset_key* key,
struct ub_packed_rrset_key* ck = regional_alloc(region,
sizeof(struct ub_packed_rrset_key));
struct packed_rrset_data* d;
- struct packed_rrset_data* data = (struct packed_rrset_data*)
- key->entry.data;
+ struct packed_rrset_data* data = key->entry.data;
size_t dsize, i;
- time_t adjust = 0;
+ time_t now_control;
if(!ck)
return NULL;
ck->id = key->id;
@@ -352,22 +351,31 @@ packed_rrset_copy_region(struct ub_packed_rrset_key* key,
if(!ck->rk.dname)
return NULL;
dsize = packed_rrset_sizeof(data);
- d = (struct packed_rrset_data*)regional_alloc_init(region, data, dsize);
+ d = regional_alloc_init(region, data, dsize);
if(!d)
return NULL;
ck->entry.data = d;
packed_rrset_ptr_fixup(d);
- /* make TTLs relative - once per rrset */
- adjust = SERVE_ORIGINAL_TTL ? data->ttl_add : now;
- for(i=0; i<d->count + d->rrsig_count; i++) {
- if(d->rr_ttl[i] < adjust)
- d->rr_ttl[i] = SERVE_EXPIRED?SERVE_EXPIRED_REPLY_TTL:0;
- else d->rr_ttl[i] -= adjust;
+ /* make TTLs relative - once per rr */
+ if(now > 0) {
+ /* NS RRSets may be here with ttl_add higher than now because
+ * of the novel ghost attack mitigation i.e., using the
+ * qstarttime for NS RRSets. In that case make sure that the
+ * returned TTL is not higher than the original one. */
+ log_assert(d->ttl_add <= now ||
+ (ntohs(key->rk.type) == LDNS_RR_TYPE_NS));
+ now_control = SERVE_ORIGINAL_TTL ? data->ttl_add
+ : (d->ttl_add > now ? d->ttl_add : now );
+ for(i=0; i<d->count + d->rrsig_count; i++) {
+ if(TTL_IS_EXPIRED(d->rr_ttl[i], now_control)) {
+ d->rr_ttl[i] = EXPIRED_REPLY_TTL_CALC(d->rr_ttl[i], data->ttl_add);
+ } else d->rr_ttl[i] -= now_control;
+ }
+ if(TTL_IS_EXPIRED(d->ttl, now_control)) {
+ d->ttl = EXPIRED_REPLY_TTL_CALC(d->ttl, data->ttl_add);
+ } else d->ttl -= now_control;
+ d->ttl_add = 0; /* TTLs have been made relative */
}
- if(d->ttl < adjust)
- d->ttl = SERVE_EXPIRED?SERVE_EXPIRED_REPLY_TTL:0;
- else d->ttl -= adjust;
- d->ttl_add = 0; /* TTLs have been made relative */
return ck;
}
diff --git a/util/data/packed_rrset.h b/util/data/packed_rrset.h
index 776e8d0923cc..4e0911ccf0a2 100644
--- a/util/data/packed_rrset.h
+++ b/util/data/packed_rrset.h
@@ -70,6 +70,8 @@ typedef uint64_t rrset_id_type;
#define PACKED_RRSET_RPZ 0x8
/** this rrset is A/AAAA and is an unverified glue record */
#define PACKED_RRSET_UNVERIFIED_GLUE 0x10
+/** this rrset has a 0TTL from upstream */
+#define PACKED_RRSET_UPSTREAM_0TTL 0x20
/** number of rrs and rrsets for integer overflow protection. More than
* this is not really possible (64K packet has much less RRs and RRsets) in
@@ -99,6 +101,7 @@ struct packed_rrset_key {
* o PACKED_RRSET_FIXEDTTL (not supposed to be cached)
* o PACKED_RRSET_RPZ
* o PACKED_RRSET_UNVERIFIED_GLUE
+ * o PACKED_RRSET_UPSTREAM_0TTL (not supposed to be cached)
*/
uint32_t flags;
/** the rrset type in network format */
diff --git a/util/fptr_wlist.c b/util/fptr_wlist.c
index c6f3ca24aeed..a451340650ab 100644
--- a/util/fptr_wlist.c
+++ b/util/fptr_wlist.c
@@ -380,7 +380,8 @@ fptr_whitelist_modenv_detach_subs(void (*fptr)(
int
fptr_whitelist_modenv_attach_sub(int (*fptr)(
struct module_qstate* qstate, struct query_info* qinfo,
- uint16_t qflags, int prime, int valrec, struct module_qstate** newq))
+ struct respip_client_info* cinfo, uint16_t qflags, int prime,
+ int valrec, struct module_qstate** newq))
{
if(fptr == &mesh_attach_sub) return 1;
return 0;
@@ -389,8 +390,8 @@ fptr_whitelist_modenv_attach_sub(int (*fptr)(
int
fptr_whitelist_modenv_add_sub(int (*fptr)(
struct module_qstate* qstate, struct query_info* qinfo,
- uint16_t qflags, int prime, int valrec, struct module_qstate** newq,
- struct mesh_state** sub))
+ struct respip_client_info* cinfo, uint16_t qflags, int prime,
+ int valrec, struct module_qstate** newq, struct mesh_state** sub))
{
if(fptr == &mesh_add_sub) return 1;
return 0;
diff --git a/util/fptr_wlist.h b/util/fptr_wlist.h
index fb2475cce109..a1a75625d590 100644
--- a/util/fptr_wlist.h
+++ b/util/fptr_wlist.h
@@ -233,7 +233,8 @@ int fptr_whitelist_modenv_detach_subs(void (*fptr)(
*/
int fptr_whitelist_modenv_attach_sub(int (*fptr)(
struct module_qstate* qstate, struct query_info* qinfo,
- uint16_t qflags, int prime, int valrec, struct module_qstate** newq));
+ struct respip_client_info* cinfo, uint16_t qflags, int prime,
+ int valrec, struct module_qstate** newq));
/**
* Check function pointer whitelist for module_env add_sub callback values.
@@ -242,8 +243,9 @@ int fptr_whitelist_modenv_attach_sub(int (*fptr)(
* @return false if not in whitelist.
*/
int fptr_whitelist_modenv_add_sub(int (*fptr)(struct module_qstate* qstate,
- struct query_info* qinfo, uint16_t qflags, int prime, int valrec,
- struct module_qstate** newq, struct mesh_state** sub));
+ struct query_info* qinfo, struct respip_client_info* cinfo,
+ uint16_t qflags, int prime, int valrec, struct module_qstate** newq,
+ struct mesh_state** sub));
/**
* Check function pointer whitelist for module_env kill_sub callback values.
*
diff --git a/util/iana_ports.inc b/util/iana_ports.inc
index 6d8cfd27b88e..191d0f557b9e 100644
--- a/util/iana_ports.inc
+++ b/util/iana_ports.inc
@@ -649,9 +649,6 @@
828,
829,
830,
-831,
-832,
-833,
847,
848,
853,
@@ -3981,6 +3978,7 @@
4791,
4792,
4793,
+4794,
4800,
4801,
4802,
@@ -4173,6 +4171,7 @@
5313,
5314,
5315,
+5319,
5343,
5344,
5349,
@@ -4950,6 +4949,7 @@
9162,
9163,
9164,
+9183,
9191,
9200,
9201,
@@ -5343,6 +5343,7 @@
24465,
24554,
24577,
+24601,
24676,
24677,
24678,
@@ -5433,6 +5434,8 @@
34962,
34963,
34964,
+34965,
+34966,
34980,
35001,
35004,
diff --git a/util/locks.h b/util/locks.h
index eb698cb759aa..9b1b10b3756f 100644
--- a/util/locks.h
+++ b/util/locks.h
@@ -178,6 +178,30 @@ typedef pthread_key_t ub_thread_key_type;
#define ub_thread_key_set(key, v) LOCKRET(pthread_setspecific(key, v))
#define ub_thread_key_get(key) pthread_getspecific(key)
+#ifdef HAVE_PTHREAD_NP_H
+#include <pthread_np.h>
+#endif
+#if defined(HAVE_PTHREAD_SET_NAME_NP)
+ #define ub_thread_setname(thread, name) do { \
+ (void)pthread_set_name_np(thread, name);\
+ } while(0)
+#elif defined(HAVE_PTHREAD_SETNAME_NP1)
+ #define ub_thread_setname(thread, name) do { \
+ (void)pthread_setname_np(name); \
+ } while(0)
+#elif defined(HAVE_PTHREAD_SETNAME_NP3)
+ #define ub_thread_setname(thread, name) do { \
+ (void)pthread_setname_np(thread, name, NULL); \
+ } while(0)
+#elif defined(HAVE_PTHREAD_SETNAME_NP)
+ #define ub_thread_setname(thread, name) do { \
+ (void)pthread_setname_np(thread, name); \
+ } while(0)
+#else
+ #define ub_thread_setname(thread, name) /* nop */
+#endif /* HAVE_PTHREAD_SET_NAME_NP */
+
+
#else /* we do not HAVE_PTHREAD */
#ifdef HAVE_SOLARIS_THREADS
@@ -215,6 +239,7 @@ typedef thread_key_t ub_thread_key_type;
#define ub_thread_key_create(key, f) LOCKRET(thr_keycreate(key, f))
#define ub_thread_key_set(key, v) LOCKRET(thr_setspecific(key, v))
void* ub_thread_key_get(ub_thread_key_type key);
+#define ub_thread_setname(thread, name) /* nop */
#else /* we do not HAVE_SOLARIS_THREADS and no PTHREADS */
@@ -253,6 +278,7 @@ typedef DWORD ub_thread_key_type;
void ub_thread_key_create(ub_thread_key_type* key, void* f);
void ub_thread_key_set(ub_thread_key_type key, void* v);
void* ub_thread_key_get(ub_thread_key_type key);
+#define ub_thread_setname(thread, name) /* nop */
#else /* we do not HAVE_SOLARIS_THREADS, PTHREADS or WINDOWS_THREADS */
@@ -294,6 +320,7 @@ typedef void* ub_thread_key_type;
#define ub_thread_key_create(key, f) (*(key)) = NULL
#define ub_thread_key_set(key, v) (key) = (v)
#define ub_thread_key_get(key) (key)
+#define ub_thread_setname(thread, name) /* nop */
#endif /* HAVE_WINDOWS_THREADS */
#endif /* HAVE_SOLARIS_THREADS */
diff --git a/util/log.c b/util/log.c
index b75cf065feb8..f2beafc87339 100644
--- a/util/log.c
+++ b/util/log.c
@@ -174,10 +174,10 @@ void log_thread_set(int* num)
int log_thread_get(void)
{
- unsigned int* tid;
+ int* tid;
if(!key_created) return 0;
- tid = (unsigned int*)ub_thread_key_get(logkey);
- return (int)(tid?*tid:0);
+ tid = ub_thread_key_get(logkey);
+ return (tid?*tid:0);
}
void log_ident_set(const char* id)
@@ -229,7 +229,7 @@ log_vmsg(int pri, const char* type,
const char *format, va_list args)
{
char message[MAXSYSLOGMSGLEN];
- unsigned int* tid = (unsigned int*)ub_thread_key_get(logkey);
+ int tid = log_thread_get();
time_t now;
#if defined(HAVE_STRFTIME) && defined(HAVE_LOCALTIME_R)
char tmbuf[32];
@@ -241,8 +241,8 @@ log_vmsg(int pri, const char* type,
vsnprintf(message, sizeof(message), format, args);
#ifdef HAVE_SYSLOG_H
if(logging_to_syslog) {
- syslog(pri, "[%d:%x] %s: %s",
- (int)getpid(), tid?*tid:0, type, message);
+ syslog(pri, "[%d:%d] %s: %s",
+ (int)getpid(), tid, type, message);
return;
}
#elif defined(UB_ON_WINDOWS)
@@ -263,8 +263,8 @@ log_vmsg(int pri, const char* type,
tp=MSG_GENERIC_SUCCESS;
wt=EVENTLOG_SUCCESS;
}
- snprintf(m, sizeof(m), "[%s:%x] %s: %s",
- ident, tid?*tid:0, type, message);
+ snprintf(m, sizeof(m), "[%s:%d] %s: %s",
+ ident, tid, type, message);
s = RegisterEventSource(NULL, SERVICE_NAME);
if(!s) return;
ReportEvent(s, wt, 0, tp, NULL, 1, 0, &str, NULL);
@@ -294,9 +294,9 @@ log_vmsg(int pri, const char* type,
tzbuf[3] = ':';
tzbuf[6] = 0;
}
- fprintf(logfile, "%s.%3.3d%s %s[%d:%x] %s: %s\n",
+ fprintf(logfile, "%s.%3.3d%s %s[%d:%d] %s: %s\n",
tmbuf, (int)tv.tv_usec/1000, tzbuf,
- ident, (int)getpid(), tid?*tid:0, type, message);
+ ident, (int)getpid(), tid, type, message);
#ifdef UB_ON_WINDOWS
/* line buffering does not work on windows */
fflush(logfile);
@@ -310,19 +310,19 @@ log_vmsg(int pri, const char* type,
if(log_time_asc && strftime(tmbuf, sizeof(tmbuf), "%b %d %H:%M:%S",
localtime_r(&now, &tm))%(sizeof(tmbuf)) != 0) {
/* %sizeof buf!=0 because old strftime returned max on error */
- fprintf(logfile, "%s %s[%d:%x] %s: %s\n", tmbuf,
- ident, (int)getpid(), tid?*tid:0, type, message);
+ fprintf(logfile, "%s %s[%d:%d] %s: %s\n", tmbuf,
+ ident, (int)getpid(), tid, type, message);
} else
#elif defined(UB_ON_WINDOWS)
if(log_time_asc && GetTimeFormat(LOCALE_USER_DEFAULT, 0, NULL, NULL,
tmbuf, sizeof(tmbuf)) && GetDateFormat(LOCALE_USER_DEFAULT, 0,
NULL, NULL, dtbuf, sizeof(dtbuf))) {
- fprintf(logfile, "%s %s %s[%d:%x] %s: %s\n", dtbuf, tmbuf,
- ident, (int)getpid(), tid?*tid:0, type, message);
+ fprintf(logfile, "%s %s %s[%d:%d] %s: %s\n", dtbuf, tmbuf,
+ ident, (int)getpid(), tid, type, message);
} else
#endif
- fprintf(logfile, "[" ARG_LL "d] %s[%d:%x] %s: %s\n", (long long)now,
- ident, (int)getpid(), tid?*tid:0, type, message);
+ fprintf(logfile, "[" ARG_LL "d] %s[%d:%d] %s: %s\n", (long long)now,
+ ident, (int)getpid(), tid, type, message);
#ifdef UB_ON_WINDOWS
/* line buffering does not work on windows */
fflush(logfile);
diff --git a/util/module.h b/util/module.h
index edce4a523759..a6fa6be9062a 100644
--- a/util/module.h
+++ b/util/module.h
@@ -411,6 +411,8 @@ struct module_env {
* @param qstate: the state to find mesh state, and that wants to
* receive the results from the new subquery.
* @param qinfo: what to query for (copied).
+ * @param cinfo: if non-NULL client specific info that may affect
+ * IP-based actions that apply to the query result.
* @param qflags: what flags to use (RD, CD flag or not).
* @param prime: if it is a (stub) priming query.
* @param valrec: validation lookup recursion, does not need validation
@@ -419,8 +421,9 @@ struct module_env {
* @return: false on error, true if success (and init may be needed).
*/
int (*attach_sub)(struct module_qstate* qstate,
- struct query_info* qinfo, uint16_t qflags, int prime,
- int valrec, struct module_qstate** newq);
+ struct query_info* qinfo, struct respip_client_info* cinfo,
+ uint16_t qflags, int prime, int valrec,
+ struct module_qstate** newq);
/**
* Add detached query.
@@ -440,6 +443,8 @@ struct module_env {
* @param qstate: the state to find mesh state, and that wants to receive
* the results from the new subquery.
* @param qinfo: what to query for (copied).
+ * @param cinfo: if non-NULL client specific info that may affect
+ * IP-based actions that apply to the query result.
* @param qflags: what flags to use (RD / CD flag or not).
* @param prime: if it is a (stub) priming query.
* @param valrec: if it is a validation recursion query (lookup of key, DS).
@@ -449,9 +454,9 @@ struct module_env {
* @return: false on error, true if success (and init may be needed).
*/
int (*add_sub)(struct module_qstate* qstate,
- struct query_info* qinfo, uint16_t qflags, int prime,
- int valrec, struct module_qstate** newq,
- struct mesh_state** sub);
+ struct query_info* qinfo, struct respip_client_info* cinfo,
+ uint16_t qflags, int prime, int valrec,
+ struct module_qstate** newq, struct mesh_state** sub);
/**
* Kill newly attached sub. If attach_sub returns newq for
@@ -693,6 +698,10 @@ struct module_qstate {
time_t qstarttime;
/** whether a message from cachedb will be used for the reply */
int is_cachedb_answer;
+ /** if the response as error is from error_response_cache, and is
+ * suitable for caching (briefly) the error response. Set by the
+ * iterator when no_cache_store is enabled, and there is an error. */
+ int error_response_cache;
/**
* Attributes of clients that share the qstate that may affect IP-based
diff --git a/util/net_help.c b/util/net_help.c
index 6ce0d9131300..a0e23f5cd2de 100644
--- a/util/net_help.c
+++ b/util/net_help.c
@@ -783,7 +783,7 @@ sockaddr_cmp_scopeid(struct sockaddr_storage* addr1, socklen_t len1,
}
int
-addr_is_ip6(struct sockaddr_storage* addr, socklen_t len)
+addr_is_ip6(const struct sockaddr_storage* addr, socklen_t len)
{
if(len == (socklen_t)sizeof(struct sockaddr_in6) &&
((struct sockaddr_in6*)addr)->sin6_family == AF_INET6)
@@ -1226,10 +1226,13 @@ setup_ticket_keys_cb(void* sslctx)
#endif /* HAVE_SSL */
int
-listen_sslctx_setup(void* ctxt)
+listen_sslctx_setup(void* ctxt, const char* tls_protocols)
{
#ifdef HAVE_SSL
+ int allow12, allow13;
SSL_CTX* ctx = (SSL_CTX*)ctxt;
+ cfg_tls_protocols_allowed(tls_protocols, &allow12, &allow13);
+
/* no SSLv2, SSLv3 because has defects */
#if SSL_OP_NO_SSLv2 != 0
if((SSL_CTX_set_options(ctx, SSL_OP_NO_SSLv2) & SSL_OP_NO_SSLv2)
@@ -1259,12 +1262,24 @@ listen_sslctx_setup(void* ctxt)
return 0;
}
#endif
-#if defined(SSL_OP_NO_TLSv1_2) && defined(SSL_OP_NO_TLSv1_3)
- /* if we have tls 1.3 disable 1.2 */
- if((SSL_CTX_set_options(ctx, SSL_OP_NO_TLSv1_2) & SSL_OP_NO_TLSv1_2)
- != SSL_OP_NO_TLSv1_2){
- log_crypto_err("could not set SSL_OP_NO_TLSv1_2");
- return 0;
+#if defined(SSL_OP_NO_TLSv1_2)
+ if(!allow12) {
+ /* we are not allowed to use TLS1.2 */
+ if((SSL_CTX_set_options(ctx, SSL_OP_NO_TLSv1_2) & SSL_OP_NO_TLSv1_2)
+ != SSL_OP_NO_TLSv1_2){
+ log_crypto_err("could not set SSL_OP_NO_TLSv1_2");
+ return 0;
+ }
+ }
+#endif
+#if defined(SSL_OP_NO_TLSv1_3)
+ if(!allow13) {
+ /* we are not allowed to use TLS1.3 */
+ if((SSL_CTX_set_options(ctx, SSL_OP_NO_TLSv1_3) & SSL_OP_NO_TLSv1_3)
+ != SSL_OP_NO_TLSv1_3){
+ log_crypto_err("could not set SSL_OP_NO_TLSv1_3");
+ return 0;
+ }
}
#endif
#if defined(SSL_OP_NO_RENEGOTIATION)
@@ -1305,7 +1320,7 @@ listen_sslctx_setup(void* ctxt)
SSL_CTX_set_security_level(ctx, 0);
#endif
#else
- (void)ctxt;
+ (void)ctxt; (void)tls_protocols;
#endif /* HAVE_SSL */
return 1;
}
@@ -1341,7 +1356,7 @@ listen_sslctx_setup_2(void* ctxt)
void* listen_sslctx_create(const char* key, const char* pem,
const char* verifypem, const char* tls_ciphers,
const char* tls_ciphersuites, int set_ticket_keys_cb,
- int is_dot, int is_doh)
+ int is_dot, int is_doh, const char* tls_protocols)
{
#ifdef HAVE_SSL
SSL_CTX* ctx = SSL_CTX_new(SSLv23_server_method());
@@ -1359,7 +1374,7 @@ void* listen_sslctx_create(const char* key, const char* pem,
SSL_CTX_free(ctx);
return NULL;
}
- if(!listen_sslctx_setup(ctx)) {
+ if(!listen_sslctx_setup(ctx, tls_protocols)) {
SSL_CTX_free(ctx);
return NULL;
}
@@ -1436,6 +1451,7 @@ void* listen_sslctx_create(const char* key, const char* pem,
(void)key; (void)pem; (void)verifypem;
(void)tls_ciphers; (void)tls_ciphersuites;
(void)set_ticket_keys_cb; (void)is_dot; (void)is_doh;
+ (void)tls_protocols;
return NULL;
#endif /* HAVE_SSL */
}
@@ -1797,7 +1813,7 @@ void ub_openssl_lock_delete(void)
#endif /* OPENSSL_THREADS */
}
-int listen_sslctx_setup_ticket_keys(struct config_strlist* tls_session_ticket_keys) {
+int listen_sslctx_setup_ticket_keys(struct config_strlist* tls_session_ticket_keys, char* chroot) {
#ifdef HAVE_SSL
size_t s = 1;
struct config_strlist* p;
@@ -1815,14 +1831,18 @@ int listen_sslctx_setup_ticket_keys(struct config_strlist* tls_session_ticket_ke
size_t n;
unsigned char *data;
FILE *f;
+ char* fstr;
data = (unsigned char *)malloc(80);
if(!data)
return 0;
- f = fopen(p->str, "rb");
+ fstr = p->str;
+ if(chroot && strncmp(fstr, chroot, strlen(chroot)) == 0)
+ fstr += strlen(chroot);
+ f = fopen(fstr, "rb");
if(!f) {
- log_err("could not read tls-session-ticket-key %s: %s", p->str, strerror(errno));
+ log_err("could not read tls-session-ticket-key %s: %s", fstr, strerror(errno));
free(data);
return 0;
}
@@ -1830,11 +1850,11 @@ int listen_sslctx_setup_ticket_keys(struct config_strlist* tls_session_ticket_ke
fclose(f);
if(n != 80) {
- log_err("tls-session-ticket-key %s is %d bytes, must be 80 bytes", p->str, (int)n);
+ log_err("tls-session-ticket-key %s is %d bytes, must be 80 bytes", fstr, (int)n);
free(data);
return 0;
}
- verbose(VERB_OPS, "read tls-session-ticket-key: %s", p->str);
+ verbose(VERB_OPS, "read tls-session-ticket-key: %s", fstr);
keys->key_name = data;
keys->aes_key = data + 16;
@@ -1845,7 +1865,7 @@ int listen_sslctx_setup_ticket_keys(struct config_strlist* tls_session_ticket_ke
keys->key_name = NULL;
return 1;
#else
- (void)tls_session_ticket_keys;
+ (void)tls_session_ticket_keys; (void)chroot;
return 0;
#endif
}
diff --git a/util/net_help.h b/util/net_help.h
index 278e370a268d..e9f6f3516ae5 100644
--- a/util/net_help.h
+++ b/util/net_help.h
@@ -307,7 +307,7 @@ int sockaddr_cmp_scopeid(struct sockaddr_storage* addr1, socklen_t len1,
* @param len: the length of addr.
* @return: true if sockaddr is ip6.
*/
-int addr_is_ip6(struct sockaddr_storage* addr, socklen_t len);
+int addr_is_ip6(const struct sockaddr_storage* addr, socklen_t len);
/**
* Make sure the sockaddr ends in zeroes. For tree insertion and subsequent
@@ -478,9 +478,10 @@ void log_cert(unsigned level, const char* str, void* cert);
/**
* Set SSL_OP_NOxxx options on SSL context to disable bad crypto
* @param ctxt: SSL_CTX*
+ * @param tls_protocols: configure string with allowed TLS protocols to use.
* @return false on failure.
*/
-int listen_sslctx_setup(void* ctxt);
+int listen_sslctx_setup(void* ctxt, const char* tls_protocols);
/**
* Further setup of listening SSL context, after keys loaded.
@@ -499,12 +500,13 @@ void listen_sslctx_setup_2(void* ctxt);
* to be set.
* @param is_dot: if the TLS connection is for DoT to set the appropriate ALPN.
* @param is_doh: if the TLS connection is for DoH to set the appropriate ALPN.
+ * @param tls_protocols: configure string with allowed TLS protocols to use.
* return SSL_CTX* or NULL on failure (logged).
*/
void* listen_sslctx_create(const char* key, const char* pem,
const char* verifypem, const char* tls_ciphers,
const char* tls_ciphersuites, int set_ticket_keys_cb,
- int is_dot, int is_doh);
+ int is_dot, int is_doh, const char* tls_protocols);
/**
* create SSL connect context
@@ -563,9 +565,11 @@ void ub_openssl_lock_delete(void);
/**
* setup TLS session ticket
* @param tls_session_ticket_keys: TLS ticket secret filenames
+ * @param chroot: if not NULL, the chroot that is in use.
* @return false on failure (alloc failure).
*/
-int listen_sslctx_setup_ticket_keys(struct config_strlist* tls_session_ticket_keys);
+int listen_sslctx_setup_ticket_keys(
+ struct config_strlist* tls_session_ticket_keys, char* chroot);
/** Free memory used for TLS session ticket keys */
void listen_sslctx_delete_ticket_keys(void);
diff --git a/util/netevent.c b/util/netevent.c
index aedcb5e07a30..a86e22518fb8 100644
--- a/util/netevent.c
+++ b/util/netevent.c
@@ -2723,6 +2723,7 @@ doq_server_socket_create(struct doq_table* table, struct ub_randstate* rnd,
{
size_t doq_buffer_size = 4096; /* bytes buffer size, for one packet. */
struct doq_server_socket* doq_socket;
+ log_assert(table != NULL);
doq_socket = calloc(1, sizeof(*doq_socket));
if(!doq_socket) {
return NULL;
@@ -2804,6 +2805,7 @@ doq_lookup_repinfo(struct doq_table* table, struct comm_reply* repinfo)
{
struct doq_conn* conn;
struct doq_conn_key key;
+ log_assert(table != NULL);
doq_conn_key_from_repinfo(&key, repinfo);
lock_rw_rdlock(&table->lock);
conn = doq_conn_find(table, &key.paddr.addr,
@@ -4868,8 +4870,17 @@ http_process_initial_header(struct comm_point* c)
return 0;
}
} else if(strncasecmp(line, "Content-Length: ", 16) == 0) {
- if(!c->http_is_chunked)
- c->tcp_byte_count = (size_t)atoi(line+16);
+ if(!c->http_is_chunked) {
+ char* end = NULL;
+ long long cl;
+ errno = 0;
+ cl = strtoll(line+16, &end, 10);
+ if(end == line+16 || errno != 0 || cl < 0) {
+ verbose(VERB_ALGO, "http invalid Content-Length: " ARG_LL "d", cl);
+ return 0; /* reject */
+ }
+ c->tcp_byte_count = (size_t)cl;
+ }
} else if(strncasecmp(line, "Transfer-Encoding: chunked", 19+7) == 0) {
c->tcp_byte_count = 0;
c->http_is_chunked = 1;
@@ -4925,9 +4936,15 @@ http_process_chunk_header(struct comm_point* c)
if(c->http_in_chunk_headers == 1) {
/* read chunked start line */
char* end = NULL;
- c->tcp_byte_count = (size_t)strtol(line, &end, 16);
- if(end == line)
+ long chunk_sz;
+ errno = 0;
+ chunk_sz = strtol(line, &end, 16);
+ if(end == line || errno != 0 || chunk_sz < 0) {
+ verbose(VERB_ALGO, "http invalid chunk size: %ld",
+ chunk_sz);
return 0;
+ }
+ c->tcp_byte_count = (size_t)chunk_sz;
c->http_in_chunk_headers = 0;
/* remove header text from front of buffer */
http_moveover_buffer(c->buffer);
@@ -5883,6 +5900,7 @@ comm_point_create_doq(struct comm_base *base, int fd, sldns_buffer* buffer,
struct comm_point* c = (struct comm_point*)calloc(1,
sizeof(struct comm_point));
short evbits;
+ log_assert(table != NULL);
if(!c)
return NULL;
c->ev = (struct internal_event*)calloc(1,
@@ -6728,7 +6746,6 @@ comm_point_send_reply(struct comm_reply *repinfo)
tcp_req_info_send_reply(repinfo->c->tcp_req_info);
} else if(repinfo->c->use_h2) {
if(!http2_submit_dns_response(repinfo->c->h2_session)) {
- comm_point_drop_reply(repinfo);
return;
}
repinfo->c->h2_stream = NULL;
diff --git a/util/shm_side/shm_main.c b/util/shm_side/shm_main.c
index 751d6d649bc4..ec0231b121b7 100644
--- a/util/shm_side/shm_main.c
+++ b/util/shm_side/shm_main.c
@@ -185,6 +185,16 @@ int shm_main_init(struct daemon* daemon)
shm_stat = daemon->shm_info->ptr_ctl;
shm_stat->num_threads = daemon->num;
+ lock_basic_init(&daemon->shm_info->lock);
+ daemon->shm_info->volley_in_progress = 0;
+ daemon->shm_info->thread_volley = (int*)calloc(
+ daemon->num, sizeof(int));
+ if(!daemon->shm_info->thread_volley) {
+ log_err("shm fail: malloc failure");
+ free(daemon->shm_info);
+ daemon->shm_info = NULL;
+ return 0;
+ }
#else
(void)daemon;
#endif /* HAVE_SHMGET */
@@ -214,6 +224,9 @@ void shm_main_shutdown(struct daemon* daemon)
if (daemon->shm_info->ptr_arr)
shmdt(daemon->shm_info->ptr_arr);
+ lock_basic_destroy(&daemon->shm_info->lock);
+ free(daemon->shm_info->thread_volley);
+
free(daemon->shm_info);
daemon->shm_info = NULL;
#else
@@ -221,87 +234,167 @@ void shm_main_shutdown(struct daemon* daemon)
#endif /* HAVE_SHMGET */
}
-void shm_main_run(struct worker *worker)
-{
#ifdef HAVE_SHMGET
+/** Copy general info into the stat structure. */
+static void
+shm_general_info(struct worker* worker)
+{
struct ub_shm_stat_info *shm_stat;
- struct ub_stats_info *stat_total;
- struct ub_stats_info *stat_info;
- int offset;
-
+ /* Point to data into SHM */
#ifndef S_SPLINT_S
- verbose(VERB_DETAIL, "SHM run - worker [%d] - daemon [%p] - timenow(%u) - timeboot(%u)",
- worker->thread_num, worker->daemon, (unsigned)worker->env.now_tv->tv_sec, (unsigned)worker->daemon->time_boot.tv_sec);
+ shm_stat = worker->daemon->shm_info->ptr_ctl;
+ shm_stat->time.now_sec = (long long)worker->env.now_tv->tv_sec;
+ shm_stat->time.now_usec = (long long)worker->env.now_tv->tv_usec;
#endif
- offset = worker->thread_num + 1;
- stat_total = worker->daemon->shm_info->ptr_arr;
- stat_info = worker->daemon->shm_info->ptr_arr + offset;
-
- /* Copy data to the current position */
- server_stats_compile(worker, stat_info, 0);
+ stat_timeval_subtract(&shm_stat->time.up_sec, &shm_stat->time.up_usec, worker->env.now_tv, &worker->daemon->time_boot);
+ stat_timeval_subtract(&shm_stat->time.elapsed_sec, &shm_stat->time.elapsed_usec, worker->env.now_tv, &worker->daemon->time_last_stat);
- /* First thread, zero fill total, and copy general info */
- if (worker->thread_num == 0) {
-
- /* Copy data to the current position */
- memset(stat_total, 0, sizeof(struct ub_stats_info));
-
- /* Point to data into SHM */
-#ifndef S_SPLINT_S
- shm_stat = worker->daemon->shm_info->ptr_ctl;
- shm_stat->time.now_sec = (long long)worker->env.now_tv->tv_sec;
- shm_stat->time.now_usec = (long long)worker->env.now_tv->tv_usec;
-#endif
-
- stat_timeval_subtract(&shm_stat->time.up_sec, &shm_stat->time.up_usec, worker->env.now_tv, &worker->daemon->time_boot);
- stat_timeval_subtract(&shm_stat->time.elapsed_sec, &shm_stat->time.elapsed_usec, worker->env.now_tv, &worker->daemon->time_last_stat);
-
- shm_stat->mem.msg = (long long)slabhash_get_mem(worker->env.msg_cache);
- shm_stat->mem.rrset = (long long)slabhash_get_mem(&worker->env.rrset_cache->table);
- shm_stat->mem.dnscrypt_shared_secret = 0;
+ shm_stat->mem.msg = (long long)slabhash_get_mem(worker->env.msg_cache);
+ shm_stat->mem.rrset = (long long)slabhash_get_mem(&worker->env.rrset_cache->table);
+ shm_stat->mem.dnscrypt_shared_secret = 0;
#ifdef USE_DNSCRYPT
- if(worker->daemon->dnscenv) {
- shm_stat->mem.dnscrypt_shared_secret = (long long)slabhash_get_mem(
- worker->daemon->dnscenv->shared_secrets_cache);
- shm_stat->mem.dnscrypt_nonce = (long long)slabhash_get_mem(
- worker->daemon->dnscenv->nonces_cache);
- }
+ if(worker->daemon->dnscenv) {
+ shm_stat->mem.dnscrypt_shared_secret = (long long)slabhash_get_mem(
+ worker->daemon->dnscenv->shared_secrets_cache);
+ shm_stat->mem.dnscrypt_nonce = (long long)slabhash_get_mem(
+ worker->daemon->dnscenv->nonces_cache);
+ }
#endif
- shm_stat->mem.val = (long long)mod_get_mem(&worker->env,
- "validator");
- shm_stat->mem.iter = (long long)mod_get_mem(&worker->env,
- "iterator");
- shm_stat->mem.respip = (long long)mod_get_mem(&worker->env,
- "respip");
+ shm_stat->mem.val = (long long)mod_get_mem(&worker->env, "validator");
+ shm_stat->mem.iter = (long long)mod_get_mem(&worker->env, "iterator");
+ shm_stat->mem.respip = (long long)mod_get_mem(&worker->env, "respip");
- /* subnet mem value is available in shm, also when not enabled,
- * to make the struct easier to memmap by other applications,
- * independent of the configuration of unbound */
- shm_stat->mem.subnet = 0;
+ /* subnet mem value is available in shm, also when not enabled,
+ * to make the struct easier to memmap by other applications,
+ * independent of the configuration of unbound */
+ shm_stat->mem.subnet = 0;
#ifdef CLIENT_SUBNET
- shm_stat->mem.subnet = (long long)mod_get_mem(&worker->env,
- "subnetcache");
+ shm_stat->mem.subnet = (long long)mod_get_mem(&worker->env,
+ "subnetcache");
#endif
- /* ipsecmod mem value is available in shm, also when not enabled,
- * to make the struct easier to memmap by other applications,
- * independent of the configuration of unbound */
- shm_stat->mem.ipsecmod = 0;
+ /* ipsecmod mem value is available in shm, also when not enabled,
+ * to make the struct easier to memmap by other applications,
+ * independent of the configuration of unbound */
+ shm_stat->mem.ipsecmod = 0;
#ifdef USE_IPSECMOD
- shm_stat->mem.ipsecmod = (long long)mod_get_mem(&worker->env,
- "ipsecmod");
+ shm_stat->mem.ipsecmod = (long long)mod_get_mem(&worker->env,
+ "ipsecmod");
#endif
#ifdef WITH_DYNLIBMODULE
- shm_stat->mem.dynlib = (long long)mod_get_mem(&worker->env,
- "dynlib");
+ shm_stat->mem.dynlib = (long long)mod_get_mem(&worker->env, "dynlib");
#endif
+}
+#endif /* HAVE_SHMGET */
+
+#ifdef HAVE_SHMGET
+/** See if the thread is first. Caller has lock. */
+static int
+shm_thread_is_first(struct shm_main_info* shm_info, int thread_num,
+ struct daemon* daemon)
+{
+ /* The usual method, all threads executed last time, and there
+ * is no statistics callback in progress. */
+ if(!shm_info->volley_in_progress)
+ return 1;
+ /* See if we are already active, if so, the timer seems to have fired
+ * twice for this thread which means other thread(s) have not gone
+ * through their stats callbacks yet.
+ * (There should have been a last thread to reset
+ * shm_info->volley_in_progress and shm_info->thread_volley)
+ * The other thread(s) are not yet active during this statistics round,
+ * so this thread must be the first of this new round disregarding the
+ * other busy thread(s).
+ * When the other thread(s) have time again, they will process their
+ * stats callback and hopefully properly end a stats round where all
+ * threads got to calculate their statistics. */
+ if(shm_info->thread_volley[thread_num] != 0) {
+ /* The new round starts and zeroes the total. The previous
+ * partial total is discarded. That means while other thread(s)
+ * are performing a long task, eg. loading a large zone
+ * perhaps, the total is not updated and stays the same in the
+ * shared memory area. Once that other thread(s) perform the
+ * statistic callback again, the total is updated again.
+ *
+ * The threads busy with long tasks have 0 in the array.
+ * The array is inited for a new round. */
+ memset(shm_info->thread_volley, 0,
+ ((size_t)daemon->num) * sizeof(int));
+ return 1;
}
+ return 0;
+}
+#endif /* HAVE_SHMGET */
- server_stats_add(stat_total, stat_info);
+#ifdef HAVE_SHMGET
+/** See if the thread is last. Caller has lock. */
+static int
+shm_thread_is_last(struct daemon* daemon)
+{
+ /* Being last means that all threads have been active for this stats
+ * round and this thread is the last one; also active. All the
+ * thread_volley values should be true then. */
+ int i;
+ for(i=0; i<daemon->num; i++) {
+ if(!daemon->shm_info->thread_volley[i])
+ return 0;
+ }
+ return 1;
+}
+#endif /* HAVE_SHMGET */
- /* print the thread statistics */
- stat_total->mesh_time_median /= (double)worker->daemon->num;
+void shm_main_run(struct worker *worker)
+{
+#ifdef HAVE_SHMGET
+ struct ub_stats_info *stat_total;
+ struct ub_stats_info *stat_info;
+ int offset;
+ double total_mesh_time_median;
+ struct shm_main_info* shm_info = worker->daemon->shm_info;
+
+#ifndef S_SPLINT_S
+ verbose(VERB_DETAIL, "SHM run - worker [%d] - daemon [%p] - timenow(%u) - timeboot(%u)",
+ worker->thread_num, worker->daemon, (unsigned)worker->env.now_tv->tv_sec, (unsigned)worker->daemon->time_boot.tv_sec);
+#endif
+
+ offset = worker->thread_num + 1;
+ stat_total = shm_info->ptr_arr;
+ stat_info = shm_info->ptr_arr + offset;
+ /* Copy data to the current position */
+ server_stats_compile(worker, stat_info, 0);
+
+ /* Lock the lock and see if this thread is first or last of the
+ * stat threads. It can then zero value or sum up values. */
+ lock_basic_lock(&shm_info->lock);
+ if(shm_thread_is_first(shm_info, worker->thread_num, worker->daemon)) {
+ /* First thread, zero fill total. */
+ memset(&shm_info->total_in_progress, 0,
+ sizeof(struct ub_stats_info));
+ shm_info->volley_in_progress = 1;
+ }
+ shm_info->thread_volley[worker->thread_num] = 1;
+ if(worker->thread_num == 0) {
+ /* Thread 0, copy general info. */
+ shm_general_info(worker);
+ }
+ /* Add thread data to the total */
+ total_mesh_time_median = shm_info->total_in_progress.mesh_time_median;
+ server_stats_add(&shm_info->total_in_progress, stat_info);
+ /* By adding the value/num per stat thread, for the median,
+ * it is going to add up to the sum/num. */
+ shm_info->total_in_progress.mesh_time_median = total_mesh_time_median +
+ (stat_info->mesh_time_median/(double)worker->daemon->num);
+
+ if(shm_thread_is_last(worker->daemon)) {
+ /* Copy over the total */
+ memcpy(stat_total, &shm_info->total_in_progress,
+ sizeof(struct ub_stats_info));
+ shm_info->volley_in_progress = 0;
+ memset(shm_info->thread_volley, 0,
+ ((size_t)worker->daemon->num) * sizeof(int));
+ }
+ lock_basic_unlock(&shm_info->lock);
#else
(void)worker;
#endif /* HAVE_SHMGET */
diff --git a/util/shm_side/shm_main.h b/util/shm_side/shm_main.h
index 76c60e484860..71a27abbc488 100644
--- a/util/shm_side/shm_main.h
+++ b/util/shm_side/shm_main.h
@@ -47,6 +47,8 @@ struct worker;
/* get struct ub_shm_stat_info */
#include "libunbound/unbound.h"
+#include "util/locks.h"
+
/**
* The SHM info.
*/
@@ -59,6 +61,19 @@ struct shm_main_info {
int key;
int id_ctl;
int id_arr;
+
+ /** This mutex is on the volley information. */
+ lock_basic_type lock;
+ /** If there is a volley, a number of stat timer callbacks by the
+ * threads, in progress. If not, there is no volley in progress and the
+ * previous stat run has terminated succesfully for all threads.
+ * Usually activated by the first thread and deactivated by the last
+ * thread that starts its stat callback. */
+ int volley_in_progress;
+ /** Per thread, if they have put in stats. 0 if not. */
+ int* thread_volley;
+ /** The total stats of the thread stat timers, it is in progress */
+ struct ub_stats_info total_in_progress;
};
int shm_main_init(struct daemon* daemon);
diff --git a/util/timehist.h b/util/timehist.h
index 5f88a38a9fdf..12855f94bdaa 100644
--- a/util/timehist.h
+++ b/util/timehist.h
@@ -42,6 +42,10 @@
#ifndef UTIL_TIMEHIST_H
#define UTIL_TIMEHIST_H
+#ifdef __QNX__
+/* For struct timeval */
+#include <sys/time.h>
+#endif /* __QNX__ */
/** Number of buckets in a histogram */
#define NUM_BUCKETS_HIST 40
diff --git a/validator/val_neg.c b/validator/val_neg.c
index bc3a83aeb4c9..66fd818994ed 100644
--- a/validator/val_neg.c
+++ b/validator/val_neg.c
@@ -1066,11 +1066,7 @@ grab_nsec(struct rrset_cache* rrset_cache, uint8_t* qname, size_t qname_len,
qname, qname_len, qtype, qclass, flags, now, 0);
struct packed_rrset_data* d;
if(!k) return NULL;
- d = (struct packed_rrset_data*)k->entry.data;
- if(d->ttl < now) {
- lock_rw_unlock(&k->entry.lock);
- return NULL;
- }
+ d = k->entry.data;
/* only secure or unchecked records that have signatures. */
if( ! ( d->security == sec_status_secure ||
(d->security == sec_status_unchecked &&
@@ -1293,6 +1289,8 @@ neg_nsec3_proof_ds(struct val_neg_zone* zone, uint8_t* qname, size_t qname_len,
if(!(msg = dns_msg_create(qname, qname_len,
LDNS_RR_TYPE_DS, zone->dclass, region, 1)))
return NULL;
+ /* The cache response means recursion is available. */
+ msg->rep->flags |= BIT_RA;
/* TTL reduced in grab_nsec */
if(!dns_msg_authadd(msg, region, ce_rrset, 0))
return NULL;
@@ -1327,6 +1325,8 @@ neg_nsec3_proof_ds(struct val_neg_zone* zone, uint8_t* qname, size_t qname_len,
if(!(msg = dns_msg_create(qname, qname_len,
LDNS_RR_TYPE_DS, zone->dclass, region, 3)))
return NULL;
+ /* The cache response means recursion is available. */
+ msg->rep->flags |= BIT_RA;
/* now=0 because TTL was reduced in grab_nsec */
if(!dns_msg_authadd(msg, region, ce_rrset, 0))
return NULL;
@@ -1417,6 +1417,8 @@ val_neg_getmsg(struct val_neg_cache* neg, struct query_info* qinfo,
if(!(msg = dns_msg_create(qinfo->qname, qinfo->qname_len,
qinfo->qtype, qinfo->qclass, region, 2)))
return NULL;
+ /* The cache response means recursion is available. */
+ msg->rep->flags |= BIT_RA;
if(!dns_msg_authadd(msg, region, nsec, 0))
return NULL;
if(addsoa && !add_soa(rrset_cache, now, region, msg, NULL))
@@ -1430,6 +1432,8 @@ val_neg_getmsg(struct val_neg_cache* neg, struct query_info* qinfo,
if(!(msg = dns_msg_create(qinfo->qname, qinfo->qname_len,
qinfo->qtype, qinfo->qclass, region, 3)))
return NULL;
+ /* The cache response means recursion is available. */
+ msg->rep->flags |= BIT_RA;
if(!(ce = nsec_closest_encloser(qinfo->qname, nsec)))
return NULL;
dname_count_size_labels(ce, &ce_len);
diff --git a/validator/val_sigcrypt.c b/validator/val_sigcrypt.c
index 86de6fb8e80f..9f27f9cc9bb7 100644
--- a/validator/val_sigcrypt.c
+++ b/validator/val_sigcrypt.c
@@ -1570,6 +1570,18 @@ dnskey_verify_rrset_sig(struct regional* region, sldns_buffer* buf,
*reason_bogus = LDNS_EDE_NO_ZONE_KEY_BIT_SET;
return sec_status_bogus;
}
+ if((dnskey_get_flags(dnskey, dnskey_idx) & LDNS_KEY_REVOKE_KEY) &&
+ /* The REVOKE key is allowed to check sigs on itself. */
+ !(ntohs(rrset->rk.type) == LDNS_RR_TYPE_DNSKEY &&
+ query_dname_compare(rrset->rk.dname, dnskey->rk.dname)==0)
+ ) {
+ verbose(VERB_QUERY, "verify: dnskey has REVOKE bit set, "
+ "not usable for data validation per RFC 5011 s2.1");
+ *reason = "dnskey revoked";
+ if(reason_bogus)
+ *reason_bogus = LDNS_EDE_DNSKEY_MISSING;
+ return sec_status_bogus;
+ }
if(dnskey_get_protocol(dnskey, dnskey_idx) != LDNS_DNSSEC_KEYPROTO) {
/* RFC 4034 says DNSKEY PROTOCOL MUST be 3 */
diff --git a/validator/val_sigcrypt.h b/validator/val_sigcrypt.h
index 1fac8bde0e91..c1e2658e4fd1 100644
--- a/validator/val_sigcrypt.h
+++ b/validator/val_sigcrypt.h
@@ -311,7 +311,7 @@ enum sec_status dnskey_verify_rrset(struct module_env* env, struct val_env* ve,
* pass false at start. pass old value only for same rrset and same
* signature (but perhaps different key) for reuse.
* @param reason: if bogus, a string returned, fixed or alloced in scratch.
- * @param reason_bogus: EDE (8914) code paired with the reason of failure.
+ * @param reason_bogus: EDE (RFC8914) code paired with the reason of failure.
* @param section: section of packet where this rrset comes from.
* @param qstate: qstate with region.
* @return secure if this key signs this signature. unchecked on error or
diff --git a/validator/val_utils.c b/validator/val_utils.c
index 549264d76a1f..411a63b25c5b 100644
--- a/validator/val_utils.c
+++ b/validator/val_utils.c
@@ -1310,6 +1310,7 @@ val_find_DS(struct module_env* env, uint8_t* nm, size_t nmlen, uint16_t c,
/* DS rrset exists. Return it to the validator immediately*/
struct ub_packed_rrset_key* copy = packed_rrset_copy_region(
rrset, region, *env->now);
+ struct packed_rrset_data* d = copy->entry.data;
lock_rw_unlock(&rrset->entry.lock);
if(!copy)
return NULL;
@@ -1319,6 +1320,7 @@ val_find_DS(struct module_env* env, uint8_t* nm, size_t nmlen, uint16_t c,
msg->rep->rrsets[0] = copy;
msg->rep->rrset_count++;
msg->rep->an_numrrsets++;
+ UPDATE_TTL_FROM_RRSET(msg->rep->ttl, d->ttl);
return msg;
}
/* lookup in rrset and negative cache for NSEC/NSEC3 */
@@ -1332,3 +1334,26 @@ val_find_DS(struct module_env* env, uint8_t* nm, size_t nmlen, uint16_t c,
env->scratch_buffer, *env->now, 0, topname, env->cfg);
return msg;
}
+
+int derive_cname_from_dname(struct ub_packed_rrset_key* cname,
+ struct ub_packed_rrset_key* dname, uint8_t* out, size_t outlen)
+{
+ size_t prefix_len;
+ uint8_t* dname_target = NULL;
+ size_t dname_target_len = 0;
+ if(!dname_strict_subdomain_c(cname->rk.dname, dname->rk.dname))
+ return 0; /* Invalid: CNAME owner must be subdomain */
+ get_cname_target(dname, &dname_target, &dname_target_len);
+ if(!dname_target || !dname_target_len)
+ return 0; /* DNAME malformed */
+ if(cname->rk.dname_len < dname->rk.dname_len)
+ return 0; /* Not possible, due to subdomain, but check */
+ if(cname->rk.dname_len == 0)
+ return 0; /* Not possible, but check */
+ prefix_len = cname->rk.dname_len - dname->rk.dname_len;
+ if(prefix_len + dname_target_len > outlen)
+ return 0; /* Buffer too small */
+ memmove(out, cname->rk.dname, prefix_len);
+ memmove(out+prefix_len, dname_target, dname_target_len);
+ return 1;
+}
diff --git a/validator/val_utils.h b/validator/val_utils.h
index 4fe38c1bb995..e0c6499024e8 100644
--- a/validator/val_utils.h
+++ b/validator/val_utils.h
@@ -427,4 +427,15 @@ int val_favorite_ds_algo(struct ub_packed_rrset_key* ds_rrset);
struct dns_msg* val_find_DS(struct module_env* env, uint8_t* nm, size_t nmlen,
uint16_t c, struct regional* region, uint8_t* topname);
+/**
+ * Derive expected CNAME target from DNAME substitution per RFC 6672 s3.1
+ * @param cname: CNAME RRset, (e.g., b.d.a005.test CNAME 'some cname target')
+ * @param dname: DNAME RRset, (e.g., d.a005.test DNAME tgt.a005.test)
+ * @param out: Output buffer for expected CNAME target
+ * @param outlen: Output buffer size
+ * @return: 1 on success, 0 on error
+ */
+int derive_cname_from_dname(struct ub_packed_rrset_key* cname,
+ struct ub_packed_rrset_key* dname, uint8_t* out, size_t outlen);
+
#endif /* VALIDATOR_VAL_UTILS_H */
diff --git a/validator/validator.c b/validator/validator.c
index 5817fc8085a2..e7992b6e3711 100644
--- a/validator/validator.c
+++ b/validator/validator.c
@@ -496,7 +496,7 @@ generate_request(struct module_qstate* qstate, int id, uint8_t* name,
struct mesh_state* sub = NULL;
fptr_ok(fptr_whitelist_modenv_add_sub(
qstate->env->add_sub));
- if(!(*qstate->env->add_sub)(qstate, &ask,
+ if(!(*qstate->env->add_sub)(qstate, &ask, NULL,
(uint16_t)(BIT_RD|flags), 0, valrec, newq, &sub)){
log_err("Could not generate request: out of memory");
return 0;
@@ -505,7 +505,7 @@ generate_request(struct module_qstate* qstate, int id, uint8_t* name,
else {
fptr_ok(fptr_whitelist_modenv_attach_sub(
qstate->env->attach_sub));
- if(!(*qstate->env->attach_sub)(qstate, &ask,
+ if(!(*qstate->env->attach_sub)(qstate, &ask, NULL,
(uint16_t)(BIT_RD|flags), 0, valrec, newq)){
log_err("Could not generate request: out of memory");
return 0;
@@ -710,6 +710,37 @@ validate_msg_signatures(struct module_qstate* qstate, struct val_qstate* vq,
((struct packed_rrset_data*)chase_reply->rrsets[i-1]->entry.data)->security == sec_status_secure &&
dname_strict_subdomain_c(s->rk.dname, chase_reply->rrsets[i-1]->rk.dname)
) {
+ /* Check that the CNAME target matches the DNAME
+ * derivation. Zone changes during the redirection
+ * lookups or looped DNAMEs can have such a CNAME. */
+ uint8_t expected_target[LDNS_MAX_DOMAINLEN];
+ uint8_t* cname_target = NULL;
+ size_t cname_target_len = 0;
+ get_cname_target(s, &cname_target, &cname_target_len);
+ if(!cname_target ||
+ !derive_cname_from_dname(s, /* CNAME RRset */
+ chase_reply->rrsets[i-1], /* DNAME RRset */
+ expected_target, /* Output buffer */
+ sizeof(expected_target))) {
+ verbose(VERB_ALGO, "DNAME CNAME derivation failed");
+ errinf_ede(qstate, "DNAME CNAME derivation failed", reason_bogus);
+ errinf_origin(qstate, qstate->reply_origin);
+ chase_reply->security = sec_status_bogus;
+ update_reason_bogus(chase_reply, reason_bogus);
+ return 0;
+ }
+ if(query_dname_compare(cname_target, expected_target) != 0) {
+ verbose(VERB_ALGO, "CNAME target mismatch: not synthesized from DNAME");
+ errinf_ede(qstate, "CNAME target mismatch: not synthesized from DNAME", reason_bogus);
+ errinf_dname(qstate, ", for", s->rk.dname);
+ errinf_dname(qstate, "CNAME", cname_target);
+ errinf(qstate, ",");
+ errinf_origin(qstate, qstate->reply_origin);
+ chase_reply->security = sec_status_bogus;
+ update_reason_bogus(chase_reply, reason_bogus);
+ return 0;
+ }
+
/* CNAME was synthesized by our own iterator */
/* since the DNAME verified, mark the CNAME as secure */
((struct packed_rrset_data*)s->entry.data)->security =
@@ -2699,7 +2730,9 @@ val_operate(struct module_qstate* qstate, enum module_ev event, int id,
if(!needs_validation(qstate, qstate->return_rcode,
qstate->return_msg)) {
/* no need to validate this */
- if(qstate->return_msg)
+ /* For valrec responses, leave at sec_status_unchecked,
+ * no security status has been requested for it. */
+ if(qstate->return_msg && !qstate->is_valrec)
qstate->return_msg->rep->security =
sec_status_indeterminate;
qstate->ext_state[id] = module_finished;
@@ -3090,6 +3123,62 @@ ds_response_to_ke(struct module_qstate* qstate, struct val_qstate* vq,
LDNS_SECTION_ANSWER, qstate, &verified, reasonbuf,
sizeof(reasonbuf));
if(sec == sec_status_secure) {
+ /* Check for wildcard expansion */
+ uint8_t* wc = NULL;
+ size_t wl = 0;
+
+ if(!val_rrset_wildcard(cname, &wc, &wl)) {
+ verbose(VERB_ALGO, "CNAME has inconsistent wildcard signatures");
+ reason = "wildcard CNAME inconsistent signatures";
+ errinf_ede(qstate, reason, reason_bogus);
+ goto return_bogus;
+ }
+
+ if(wc != NULL) {
+ /* Wildcard expansion detected - require NSEC proof */
+ /* So this is a wildcard CNAME response to DS.
+ * If the wildcard is bogus then we have bogus.
+ * If the wildcard is true, then there is
+ * not a referral point here or lower,
+ * that can be insecure,
+ * and also no DS records, here or lower. */
+ /* For a valid chain, to DS, but this
+ * wildcard CNAME happens in a middle label,
+ * then that can not happen, because there is
+ * data under that label, and thus the wildcard
+ * should not expand.
+ * If we are going to the wildcard, that also
+ * does not expand the wildcard, when above it.
+ * So for valids lookup chains to DS, no
+ * wildcard CNAME is expected on middle labels.
+ * For lookups to an insecure point, the
+ * delegation is information under the label,
+ * and thus the wildcard does not expand.
+ * So, no insecure point is possible.
+ * Can not get a valid chain of trust, or
+ * to a delegation point for insecure.
+ * Or the wildcard, its nxdomain for the qname
+ * proof, is invalid, in which case this is
+ * a bogus reply.
+ * If this was a lookup where a wildcard
+ * expansion is genuinely expected, eg,
+ * a dnssec valid wildcard query, then the
+ * lookup should go to the right point, and
+ * not into the wildcard under the zone name.
+ * For insecure, or wildcard missing
+ * signatures, it would have to have found
+ * the DS or insecure point earlier, in the
+ * downwards search.
+ * So for missing signatures, it turns the
+ * missing signatures into a failure to the
+ * wildcard CNAME, as the reported log.
+ */
+ verbose(VERB_ALGO, "wildcard CNAME in chain of trust means no DS can be found and it is also not a delegation point that can be insecure");
+ reason = "wildcard CNAME in chain of trust means no DS found and it is also not a delegation point that can be insecure";
+ errinf_ede(qstate, reason, reason_bogus);
+ goto return_bogus;
+ }
+
verbose(VERB_ALGO, "CNAME validated, "
"proof that DS does not exist");
/* and that it is not a referral point */
diff --git a/winrc/win_svc.c b/winrc/win_svc.c
index 429b045dc289..c0792ce562ed 100644
--- a/winrc/win_svc.c
+++ b/winrc/win_svc.c
@@ -127,7 +127,7 @@ hdlr(DWORD ctrl)
static void
reportev(const char* str)
{
- char b[256];
+ char b[512];
char e[256];
HANDLE* s;
LPCTSTR msg = b;
@@ -369,7 +369,7 @@ service_init(int r, struct daemon** d, struct config_file** c)
cfg->tls_ciphers, cfg->tls_ciphersuites,
(cfg->tls_session_ticket_keys.first &&
cfg->tls_session_ticket_keys.first->str[0] != 0),
- 1, 0))) {
+ 1, 0, cfg->tls_protocols))) {
fatal_exit("could not set up listen SSL_CTX");
}
#ifdef HAVE_NGHTTP2_NGHTTP2_H
@@ -379,7 +379,7 @@ service_init(int r, struct daemon** d, struct config_file** c)
cfg->tls_ciphers, cfg->tls_ciphersuites,
(cfg->tls_session_ticket_keys.first &&
cfg->tls_session_ticket_keys.first->str[0] != 0),
- 0, 1))) {
+ 0, 1, cfg->tls_protocols))) {
fatal_exit("could not set up listen doh SSL_CTX");
}
}