Codebase list unbound / e0a5c31
Merge tag 'upstream/1.9.3' Upstream version 1.9.3 Robert Edmonds 4 years ago
21 changed file(s) with 329 addition(s) and 295 deletion(s). Raw diff Collapse all Expand all
00 #! /bin/sh
11 # Guess values for system-dependent variables and create Makefiles.
2 # Generated by GNU Autoconf 2.69 for unbound 1.9.3rc1.
2 # Generated by GNU Autoconf 2.69 for unbound 1.9.3.
33 #
44 # Report bugs to <unbound-bugs@nlnetlabs.nl or https://github.com/NLnetLabs/unbound/issues>.
55 #
590590 # Identity of this package.
591591 PACKAGE_NAME='unbound'
592592 PACKAGE_TARNAME='unbound'
593 PACKAGE_VERSION='1.9.3rc1'
594 PACKAGE_STRING='unbound 1.9.3rc1'
593 PACKAGE_VERSION='1.9.3'
594 PACKAGE_STRING='unbound 1.9.3'
595595 PACKAGE_BUGREPORT='unbound-bugs@nlnetlabs.nl or https://github.com/NLnetLabs/unbound/issues'
596596 PACKAGE_URL=''
597597
666666 WINAPPS
667667 WINDRES
668668 CHECKLOCK_OBJ
669 USE_SYSTEMD_FALSE
670 USE_SYSTEMD_TRUE
671 SYSTEMD_DAEMON_LIBS
672 SYSTEMD_DAEMON_CFLAGS
673 SYSTEMD_LIBS
674 SYSTEMD_CFLAGS
675669 staticexe
676670 PC_LIBEVENT_DEPENDENCY
677671 UNBOUND_EVENT_UNINSTALL
707701 PTHREAD_LIBS
708702 PTHREAD_CC
709703 ax_pthread_config
704 USE_SYSTEMD_FALSE
705 USE_SYSTEMD_TRUE
706 SYSTEMD_DAEMON_LIBS
707 SYSTEMD_DAEMON_CFLAGS
708 SYSTEMD_LIBS
709 SYSTEMD_CFLAGS
710710 RUNTIME_PATH
711711 LIBOBJS
712712 PKG_CONFIG_LIBDIR
843843 enable_libtool_lock
844844 enable_rpath
845845 enable_largefile
846 enable_systemd
846847 enable_alloc_checks
847848 enable_alloc_lite
848849 enable_alloc_nonregional
869870 with_libexpat
870871 with_libhiredis
871872 enable_static_exe
872 enable_systemd
873873 enable_lock_checks
874874 enable_allsymbols
875875 enable_dnstap
899899 PKG_CONFIG
900900 PKG_CONFIG_PATH
901901 PKG_CONFIG_LIBDIR
902 PYTHON_VERSION
903902 SYSTEMD_CFLAGS
904903 SYSTEMD_LIBS
905904 SYSTEMD_DAEMON_CFLAGS
906 SYSTEMD_DAEMON_LIBS'
905 SYSTEMD_DAEMON_LIBS
906 PYTHON_VERSION'
907907
908908
909909 # Initialize some variables set by options.
14441444 # Omit some internal or obsolete options to make the list less imposing.
14451445 # This message is too long to be a string in the A/UX 3.1 sh.
14461446 cat <<_ACEOF
1447 \`configure' configures unbound 1.9.3rc1 to adapt to many kinds of systems.
1447 \`configure' configures unbound 1.9.3 to adapt to many kinds of systems.
14481448
14491449 Usage: $0 [OPTION]... [VAR=VALUE]...
14501450
15091509
15101510 if test -n "$ac_init_help"; then
15111511 case $ac_init_help in
1512 short | recursive ) echo "Configuration of unbound 1.9.3rc1:";;
1512 short | recursive ) echo "Configuration of unbound 1.9.3:";;
15131513 esac
15141514 cat <<\_ACEOF
15151515
15311531 --disable-libtool-lock avoid locking (might break parallel builds)
15321532 --disable-rpath disable hardcoded rpath (default=enabled)
15331533 --disable-largefile omit support for large files
1534 --enable-systemd compile with systemd support
15341535 --enable-alloc-checks enable to memory allocation statistics, for debug
15351536 purposes
15361537 --enable-alloc-lite enable for lightweight alloc assertions, for debug
15571558 --enable-tfo-server Enable TCP Fast Open for server mode
15581559 --enable-static-exe enable to compile executables statically against
15591560 (event) libs, for debug purposes
1560 --enable-systemd compile with systemd support
15611561 --enable-lock-checks enable to check lock and unlock calls, for debug
15621562 purposes
15631563 --enable-allsymbols export all symbols from libunbound and link binaries
16491649 directories to add to pkg-config's search path
16501650 PKG_CONFIG_LIBDIR
16511651 path overriding pkg-config's built-in search path
1652 PYTHON_VERSION
1653 The installed Python version to use, for example '2.3'. This
1654 string will be appended to the Python interpreter canonical
1655 name.
16561652 SYSTEMD_CFLAGS
16571653 C compiler flags for SYSTEMD, overriding pkg-config
16581654 SYSTEMD_LIBS
16611657 C compiler flags for SYSTEMD_DAEMON, overriding pkg-config
16621658 SYSTEMD_DAEMON_LIBS
16631659 linker flags for SYSTEMD_DAEMON, overriding pkg-config
1660 PYTHON_VERSION
1661 The installed Python version to use, for example '2.3'. This
1662 string will be appended to the Python interpreter canonical
1663 name.
16641664
16651665 Use these variables to override the choices made by `configure' or to help
16661666 it to find libraries and programs with nonstandard names/locations.
17281728 test -n "$ac_init_help" && exit $ac_status
17291729 if $ac_init_version; then
17301730 cat <<\_ACEOF
1731 unbound configure 1.9.3rc1
1731 unbound configure 1.9.3
17321732 generated by GNU Autoconf 2.69
17331733
17341734 Copyright (C) 2012 Free Software Foundation, Inc.
24372437 This file contains any messages produced by compilers while
24382438 running configure, to aid debugging if configure makes a mistake.
24392439
2440 It was created by unbound $as_me 1.9.3rc1, which was
2440 It was created by unbound $as_me 1.9.3, which was
24412441 generated by GNU Autoconf 2.69. Invocation command line was
24422442
24432443 $ $0 $@
27892789
27902790 UNBOUND_VERSION_MINOR=9
27912791
2792 UNBOUND_VERSION_MICRO=3rc1
2792 UNBOUND_VERSION_MICRO=3
27932793
27942794
27952795 LIBUNBOUND_CURRENT=9
1611816118
1611916119 fi
1612016120
16121 # Include systemd.m4 - begin
16122 # macros for configuring systemd
16123 # Copyright 2015, Sami Kerola, CloudFlare.
16124 # BSD licensed.
16125 # Check whether --enable-systemd was given.
16126 if test "${enable_systemd+set}" = set; then :
16127 enableval=$enable_systemd;
16128 else
16129 enable_systemd=no
16130 fi
16131
16132 have_systemd=no
16133 if test "x$enable_systemd" != xno; then :
16134
16135
16136
16137 pkg_failed=no
16138 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SYSTEMD" >&5
16139 $as_echo_n "checking for SYSTEMD... " >&6; }
16140
16141 if test -n "$SYSTEMD_CFLAGS"; then
16142 pkg_cv_SYSTEMD_CFLAGS="$SYSTEMD_CFLAGS"
16143 elif test -n "$PKG_CONFIG"; then
16144 if test -n "$PKG_CONFIG" && \
16145 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsystemd\""; } >&5
16146 ($PKG_CONFIG --exists --print-errors "libsystemd") 2>&5
16147 ac_status=$?
16148 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
16149 test $ac_status = 0; }; then
16150 pkg_cv_SYSTEMD_CFLAGS=`$PKG_CONFIG --cflags "libsystemd" 2>/dev/null`
16151 test "x$?" != "x0" && pkg_failed=yes
16152 else
16153 pkg_failed=yes
16154 fi
16155 else
16156 pkg_failed=untried
16157 fi
16158 if test -n "$SYSTEMD_LIBS"; then
16159 pkg_cv_SYSTEMD_LIBS="$SYSTEMD_LIBS"
16160 elif test -n "$PKG_CONFIG"; then
16161 if test -n "$PKG_CONFIG" && \
16162 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsystemd\""; } >&5
16163 ($PKG_CONFIG --exists --print-errors "libsystemd") 2>&5
16164 ac_status=$?
16165 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
16166 test $ac_status = 0; }; then
16167 pkg_cv_SYSTEMD_LIBS=`$PKG_CONFIG --libs "libsystemd" 2>/dev/null`
16168 test "x$?" != "x0" && pkg_failed=yes
16169 else
16170 pkg_failed=yes
16171 fi
16172 else
16173 pkg_failed=untried
16174 fi
16175
16176
16177
16178 if test $pkg_failed = yes; then
16179 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
16180 $as_echo "no" >&6; }
16181
16182 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
16183 _pkg_short_errors_supported=yes
16184 else
16185 _pkg_short_errors_supported=no
16186 fi
16187 if test $_pkg_short_errors_supported = yes; then
16188 SYSTEMD_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libsystemd" 2>&1`
16189 else
16190 SYSTEMD_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libsystemd" 2>&1`
16191 fi
16192 # Put the nasty error message in config.log where it belongs
16193 echo "$SYSTEMD_PKG_ERRORS" >&5
16194
16195 have_systemd=no
16196 elif test $pkg_failed = untried; then
16197 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
16198 $as_echo "no" >&6; }
16199 have_systemd=no
16200 else
16201 SYSTEMD_CFLAGS=$pkg_cv_SYSTEMD_CFLAGS
16202 SYSTEMD_LIBS=$pkg_cv_SYSTEMD_LIBS
16203 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
16204 $as_echo "yes" >&6; }
16205 have_systemd=yes
16206 fi
16207 if test "x$have_systemd" != "xyes"; then :
16208
16209
16210 pkg_failed=no
16211 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SYSTEMD_DAEMON" >&5
16212 $as_echo_n "checking for SYSTEMD_DAEMON... " >&6; }
16213
16214 if test -n "$SYSTEMD_DAEMON_CFLAGS"; then
16215 pkg_cv_SYSTEMD_DAEMON_CFLAGS="$SYSTEMD_DAEMON_CFLAGS"
16216 elif test -n "$PKG_CONFIG"; then
16217 if test -n "$PKG_CONFIG" && \
16218 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsystemd-daemon\""; } >&5
16219 ($PKG_CONFIG --exists --print-errors "libsystemd-daemon") 2>&5
16220 ac_status=$?
16221 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
16222 test $ac_status = 0; }; then
16223 pkg_cv_SYSTEMD_DAEMON_CFLAGS=`$PKG_CONFIG --cflags "libsystemd-daemon" 2>/dev/null`
16224 test "x$?" != "x0" && pkg_failed=yes
16225 else
16226 pkg_failed=yes
16227 fi
16228 else
16229 pkg_failed=untried
16230 fi
16231 if test -n "$SYSTEMD_DAEMON_LIBS"; then
16232 pkg_cv_SYSTEMD_DAEMON_LIBS="$SYSTEMD_DAEMON_LIBS"
16233 elif test -n "$PKG_CONFIG"; then
16234 if test -n "$PKG_CONFIG" && \
16235 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsystemd-daemon\""; } >&5
16236 ($PKG_CONFIG --exists --print-errors "libsystemd-daemon") 2>&5
16237 ac_status=$?
16238 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
16239 test $ac_status = 0; }; then
16240 pkg_cv_SYSTEMD_DAEMON_LIBS=`$PKG_CONFIG --libs "libsystemd-daemon" 2>/dev/null`
16241 test "x$?" != "x0" && pkg_failed=yes
16242 else
16243 pkg_failed=yes
16244 fi
16245 else
16246 pkg_failed=untried
16247 fi
16248
16249
16250
16251 if test $pkg_failed = yes; then
16252 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
16253 $as_echo "no" >&6; }
16254
16255 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
16256 _pkg_short_errors_supported=yes
16257 else
16258 _pkg_short_errors_supported=no
16259 fi
16260 if test $_pkg_short_errors_supported = yes; then
16261 SYSTEMD_DAEMON_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libsystemd-daemon" 2>&1`
16262 else
16263 SYSTEMD_DAEMON_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libsystemd-daemon" 2>&1`
16264 fi
16265 # Put the nasty error message in config.log where it belongs
16266 echo "$SYSTEMD_DAEMON_PKG_ERRORS" >&5
16267
16268 have_systemd_daemon=no
16269 elif test $pkg_failed = untried; then
16270 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
16271 $as_echo "no" >&6; }
16272 have_systemd_daemon=no
16273 else
16274 SYSTEMD_DAEMON_CFLAGS=$pkg_cv_SYSTEMD_DAEMON_CFLAGS
16275 SYSTEMD_DAEMON_LIBS=$pkg_cv_SYSTEMD_DAEMON_LIBS
16276 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
16277 $as_echo "yes" >&6; }
16278 have_systemd_daemon=yes
16279 fi
16280 if test "x$have_systemd_daemon" = "xyes"; then :
16281 have_systemd=yes
16282 fi
16283
16284 fi
16285 case $enable_systemd:$have_systemd in #(
16286 yes:no) :
16287 as_fn_error $? "systemd enabled but libsystemd not found" "$LINENO" 5 ;; #(
16288 *:yes) :
16289
16290 $as_echo "#define HAVE_SYSTEMD 1" >>confdefs.h
16291
16292 LIBS="$LIBS $SYSTEMD_LIBS"
16293
16294 ;; #(
16295 *) :
16296 ;;
16297 esac
16298
16299
16300 fi
16301 if test "x$have_systemd" = xyes; then
16302 USE_SYSTEMD_TRUE=
16303 USE_SYSTEMD_FALSE='#'
16304 else
16305 USE_SYSTEMD_TRUE='#'
16306 USE_SYSTEMD_FALSE=
16307 fi
16308
16309
16310 # Include systemd.m4 - end
16311
1612116312 # set memory allocation checking if requested
1612216313 # Check whether --enable-alloc-checks was given.
1612316314 if test "${enable_alloc_checks+set}" = set; then :
1920919400 fi
1921019401 fi
1921119402
19212 # Include systemd.m4 - begin
19213 # macros for configuring systemd
19214 # Copyright 2015, Sami Kerola, CloudFlare.
19215 # BSD licensed.
19216 # Check whether --enable-systemd was given.
19217 if test "${enable_systemd+set}" = set; then :
19218 enableval=$enable_systemd;
19219 else
19220 enable_systemd=no
19221 fi
19222
19223 have_systemd=no
19224 if test "x$enable_systemd" != xno; then :
19225
19226
19227
19228 pkg_failed=no
19229 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SYSTEMD" >&5
19230 $as_echo_n "checking for SYSTEMD... " >&6; }
19231
19232 if test -n "$SYSTEMD_CFLAGS"; then
19233 pkg_cv_SYSTEMD_CFLAGS="$SYSTEMD_CFLAGS"
19234 elif test -n "$PKG_CONFIG"; then
19235 if test -n "$PKG_CONFIG" && \
19236 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsystemd\""; } >&5
19237 ($PKG_CONFIG --exists --print-errors "libsystemd") 2>&5
19238 ac_status=$?
19239 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
19240 test $ac_status = 0; }; then
19241 pkg_cv_SYSTEMD_CFLAGS=`$PKG_CONFIG --cflags "libsystemd" 2>/dev/null`
19242 test "x$?" != "x0" && pkg_failed=yes
19243 else
19244 pkg_failed=yes
19245 fi
19246 else
19247 pkg_failed=untried
19248 fi
19249 if test -n "$SYSTEMD_LIBS"; then
19250 pkg_cv_SYSTEMD_LIBS="$SYSTEMD_LIBS"
19251 elif test -n "$PKG_CONFIG"; then
19252 if test -n "$PKG_CONFIG" && \
19253 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsystemd\""; } >&5
19254 ($PKG_CONFIG --exists --print-errors "libsystemd") 2>&5
19255 ac_status=$?
19256 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
19257 test $ac_status = 0; }; then
19258 pkg_cv_SYSTEMD_LIBS=`$PKG_CONFIG --libs "libsystemd" 2>/dev/null`
19259 test "x$?" != "x0" && pkg_failed=yes
19260 else
19261 pkg_failed=yes
19262 fi
19263 else
19264 pkg_failed=untried
19265 fi
19266
19267
19268
19269 if test $pkg_failed = yes; then
19270 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
19271 $as_echo "no" >&6; }
19272
19273 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
19274 _pkg_short_errors_supported=yes
19275 else
19276 _pkg_short_errors_supported=no
19277 fi
19278 if test $_pkg_short_errors_supported = yes; then
19279 SYSTEMD_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libsystemd" 2>&1`
19280 else
19281 SYSTEMD_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libsystemd" 2>&1`
19282 fi
19283 # Put the nasty error message in config.log where it belongs
19284 echo "$SYSTEMD_PKG_ERRORS" >&5
19285
19286 have_systemd=no
19287 elif test $pkg_failed = untried; then
19288 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
19289 $as_echo "no" >&6; }
19290 have_systemd=no
19291 else
19292 SYSTEMD_CFLAGS=$pkg_cv_SYSTEMD_CFLAGS
19293 SYSTEMD_LIBS=$pkg_cv_SYSTEMD_LIBS
19294 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
19295 $as_echo "yes" >&6; }
19296 have_systemd=yes
19297 fi
19298 if test "x$have_systemd" != "xyes"; then :
19299
19300
19301 pkg_failed=no
19302 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SYSTEMD_DAEMON" >&5
19303 $as_echo_n "checking for SYSTEMD_DAEMON... " >&6; }
19304
19305 if test -n "$SYSTEMD_DAEMON_CFLAGS"; then
19306 pkg_cv_SYSTEMD_DAEMON_CFLAGS="$SYSTEMD_DAEMON_CFLAGS"
19307 elif test -n "$PKG_CONFIG"; then
19308 if test -n "$PKG_CONFIG" && \
19309 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsystemd-daemon\""; } >&5
19310 ($PKG_CONFIG --exists --print-errors "libsystemd-daemon") 2>&5
19311 ac_status=$?
19312 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
19313 test $ac_status = 0; }; then
19314 pkg_cv_SYSTEMD_DAEMON_CFLAGS=`$PKG_CONFIG --cflags "libsystemd-daemon" 2>/dev/null`
19315 test "x$?" != "x0" && pkg_failed=yes
19316 else
19317 pkg_failed=yes
19318 fi
19319 else
19320 pkg_failed=untried
19321 fi
19322 if test -n "$SYSTEMD_DAEMON_LIBS"; then
19323 pkg_cv_SYSTEMD_DAEMON_LIBS="$SYSTEMD_DAEMON_LIBS"
19324 elif test -n "$PKG_CONFIG"; then
19325 if test -n "$PKG_CONFIG" && \
19326 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsystemd-daemon\""; } >&5
19327 ($PKG_CONFIG --exists --print-errors "libsystemd-daemon") 2>&5
19328 ac_status=$?
19329 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
19330 test $ac_status = 0; }; then
19331 pkg_cv_SYSTEMD_DAEMON_LIBS=`$PKG_CONFIG --libs "libsystemd-daemon" 2>/dev/null`
19332 test "x$?" != "x0" && pkg_failed=yes
19333 else
19334 pkg_failed=yes
19335 fi
19336 else
19337 pkg_failed=untried
19338 fi
19339
19340
19341
19342 if test $pkg_failed = yes; then
19343 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
19344 $as_echo "no" >&6; }
19345
19346 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
19347 _pkg_short_errors_supported=yes
19348 else
19349 _pkg_short_errors_supported=no
19350 fi
19351 if test $_pkg_short_errors_supported = yes; then
19352 SYSTEMD_DAEMON_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libsystemd-daemon" 2>&1`
19353 else
19354 SYSTEMD_DAEMON_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libsystemd-daemon" 2>&1`
19355 fi
19356 # Put the nasty error message in config.log where it belongs
19357 echo "$SYSTEMD_DAEMON_PKG_ERRORS" >&5
19358
19359 have_systemd_daemon=no
19360 elif test $pkg_failed = untried; then
19361 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
19362 $as_echo "no" >&6; }
19363 have_systemd_daemon=no
19364 else
19365 SYSTEMD_DAEMON_CFLAGS=$pkg_cv_SYSTEMD_DAEMON_CFLAGS
19366 SYSTEMD_DAEMON_LIBS=$pkg_cv_SYSTEMD_DAEMON_LIBS
19367 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
19368 $as_echo "yes" >&6; }
19369 have_systemd_daemon=yes
19370 fi
19371 if test "x$have_systemd_daemon" = "xyes"; then :
19372 have_systemd=yes
19373 fi
19374
19375 fi
19376 case $enable_systemd:$have_systemd in #(
19377 yes:no) :
19378 as_fn_error $? "systemd enabled but libsystemd not found" "$LINENO" 5 ;; #(
19379 *:yes) :
19380
19381 $as_echo "#define HAVE_SYSTEMD 1" >>confdefs.h
19382
19383 LIBS="$LIBS $SYSTEMD_LIBS"
19384
19385 ;; #(
19386 *) :
19387 ;;
19388 esac
19389
19390
19391 fi
19392 if test "x$have_systemd" = xyes; then
19393 USE_SYSTEMD_TRUE=
19394 USE_SYSTEMD_FALSE='#'
19395 else
19396 USE_SYSTEMD_TRUE='#'
19397 USE_SYSTEMD_FALSE=
19398 fi
19399
19400
19401 # Include systemd.m4 - end
19402
1940319403 # set lock checking if requested
1940419404 # Check whether --enable-lock_checks was given.
1940519405 if test "${enable_lock_checks+set}" = set; then :
2127221272
2127321273
2127421274
21275 version=1.9.3rc1
21275 version=1.9.3
2127621276
2127721277 date=`date +'%b %e, %Y'`
2127821278
2179121791 # report actual input values of CONFIG_FILES etc. instead of their
2179221792 # values after options handling.
2179321793 ac_log="
21794 This file was extended by unbound $as_me 1.9.3rc1, which was
21794 This file was extended by unbound $as_me 1.9.3, which was
2179521795 generated by GNU Autoconf 2.69. Invocation command line was
2179621796
2179721797 CONFIG_FILES = $CONFIG_FILES
2185721857 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
2185821858 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
2185921859 ac_cs_version="\\
21860 unbound config.status 1.9.3rc1
21860 unbound config.status 1.9.3
2186121861 configured by $0, generated by GNU Autoconf 2.69,
2186221862 with options \\"\$ac_cs_config\\"
2186321863
1010 # must be numbers. ac_defun because of later processing
1111 m4_define([VERSION_MAJOR],[1])
1212 m4_define([VERSION_MINOR],[9])
13 m4_define([VERSION_MICRO],[3rc1])
13 m4_define([VERSION_MICRO],[3])
1414 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)
1515 AC_SUBST(UNBOUND_VERSION_MAJOR, [VERSION_MAJOR])
1616 AC_SUBST(UNBOUND_VERSION_MINOR, [VERSION_MINOR])
479479 AC_DEFINE(REUSEPORT_DEFAULT, 0, [if REUSEPORT is enabled by default])
480480 fi
481481
482 # Include systemd.m4 - begin
483 sinclude(systemd.m4)
484 # Include systemd.m4 - end
485
482486 # set memory allocation checking if requested
483487 AC_ARG_ENABLE(alloc-checks, AC_HELP_STRING([--enable-alloc-checks],
484488 [ enable to memory allocation statistics, for debug purposes ]),
13001304 fi
13011305 fi
13021306
1303 # Include systemd.m4 - begin
1304 sinclude(systemd.m4)
1305 # Include systemd.m4 - end
1306
13071307 # set lock checking if requested
13081308 AC_ARG_ENABLE(lock_checks, AC_HELP_STRING([--enable-lock-checks],
13091309 [ enable to check lock and unlock calls, for debug purposes ]),
11 Author: fastrpz@farsightsecurity.com
22 ---
33 diff --git a/Makefile.in b/Makefile.in
4 index 03a6347..6758bea 100644
4 index e9042712..870d503b 100644
55 --- a/Makefile.in
66 +++ b/Makefile.in
77 @@ -23,6 +23,8 @@ CHECKLOCK_SRC=testcode/checklocks.c
1717 edns-subnet/edns-subnet.c edns-subnet/subnetmod.c \
1818 edns-subnet/addrtree.c edns-subnet/subnet-whitelist.c \
1919 cachedb/cachedb.c cachedb/redis.c respip/respip.c $(CHECKLOCK_SRC) \
20 -$(DNSTAP_SRC) $(DNSCRYPT_SRC) $(IPSECMOD_SRC)
21 +$(DNSTAP_SRC) $(FASTRPZ_SRC) $(DNSCRYPT_SRC) $(IPSECMOD_SRC)
20 -$(DNSTAP_SRC) $(DNSCRYPT_SRC) $(IPSECMOD_SRC) $(IPSET_SRC)
21 +$(DNSTAP_SRC) $(FASTRPZ_SRC) $(DNSCRYPT_SRC) $(IPSECMOD_SRC) $(IPSET_SRC)
2222 COMMON_OBJ_WITHOUT_NETCALL=dns.lo infra.lo rrset.lo dname.lo msgencode.lo \
2323 as112.lo msgparse.lo msgreply.lo packed_rrset.lo iterator.lo iter_delegpt.lo \
2424 iter_donotq.lo iter_fwd.lo iter_hints.lo iter_priv.lo iter_resptype.lo \
2626 validator.lo val_kcache.lo val_kentry.lo val_neg.lo val_nsec3.lo val_nsec.lo \
2727 val_secalgo.lo val_sigcrypt.lo val_utils.lo dns64.lo cachedb.lo redis.lo authzone.lo \
2828 $(SUBNET_OBJ) $(PYTHONMOD_OBJ) $(CHECKLOCK_OBJ) $(DNSTAP_OBJ) $(DNSCRYPT_OBJ) \
29 -$(IPSECMOD_OBJ) respip.lo
30 +$(FASTRPZ_OBJ) $(IPSECMOD_OBJ) respip.lo
29 -$(IPSECMOD_OBJ) $(IPSET_OBJ) respip.lo
30 +$(FASTRPZ_OBJ) $(IPSECMOD_OBJ) $(IPSET_OBJ) respip.lo
3131 COMMON_OBJ_WITHOUT_UB_EVENT=$(COMMON_OBJ_WITHOUT_NETCALL) netevent.lo listen_dnsport.lo \
3232 outside_network.lo
3333 COMMON_OBJ=$(COMMON_OBJ_WITHOUT_UB_EVENT) ub_event.lo
34 @@ -405,6 +407,11 @@ dnscrypt.lo dnscrypt.o: $(srcdir)/dnscrypt/dnscrypt.c config.h \
34 @@ -408,6 +410,11 @@ dnscrypt.lo dnscrypt.o: $(srcdir)/dnscrypt/dnscrypt.c config.h \
3535 $(srcdir)/util/config_file.h $(srcdir)/util/log.h \
3636 $(srcdir)/util/netevent.h
3737
4444 pythonmod.lo pythonmod.o: $(srcdir)/pythonmod/pythonmod.c config.h \
4545 pythonmod/interface.h \
4646 diff --git a/config.h.in b/config.h.in
47 index 74c14d1..a18f4ff 100644
47 index 1bfe4426..0136421d 100644
4848 --- a/config.h.in
4949 +++ b/config.h.in
50 @@ -1305,4 +1305,11 @@ void *unbound_stat_realloc_log(void *ptr, size_t size, const char* file,
50 @@ -1315,4 +1315,11 @@ void *unbound_stat_realloc_log(void *ptr, size_t size, const char* file,
5151 /** the version of unbound-control that this software implements */
5252 #define UNBOUND_CONTROL_VERSION 1
5353
6161 +/** turn on fastrpz response policy zones */
6262 +#undef ENABLE_FASTRPZ
6363 diff --git a/configure.ac b/configure.ac
64 index abbecf0..6454274 100644
64 index 811ad007..a8346f11 100644
6565 --- a/configure.ac
6666 +++ b/configure.ac
6767 @@ -6,6 +6,7 @@ sinclude(ax_pthread.m4)
7272 sinclude(dnscrypt/dnscrypt.m4)
7373
7474 # must be numbers. ac_defun because of later processing
75 @@ -1586,6 +1587,9 @@ case "$enable_ipsecmod" in
75 @@ -1649,6 +1650,9 @@ case "$enable_ipset" in
7676 ;;
7777 esac
7878
8383 # on openBSD, the implicit rule make $< work.
8484 # on Solaris, it does not work ($? is changed sources, $^ lists dependencies).
8585 diff --git a/daemon/daemon.c b/daemon/daemon.c
86 index 7461a26..706f8f6 100644
86 index 96cc443e..d08b2e56 100644
8787 --- a/daemon/daemon.c
8888 +++ b/daemon/daemon.c
8989 @@ -91,6 +91,9 @@
111111 #endif
112112 }
113113 for(i=0; i<daemon->num; i++) {
114 @@ -718,6 +729,9 @@ daemon_cleanup(struct daemon* daemon)
114 @@ -726,6 +737,9 @@ daemon_cleanup(struct daemon* daemon)
115115 #ifdef USE_DNSCRYPT
116116 dnsc_delete(daemon->dnscenv);
117117 daemon->dnscenv = NULL;
122122 daemon->cfg = NULL;
123123 }
124124 diff --git a/daemon/daemon.h b/daemon/daemon.h
125 index 5749dbe..64ce230 100644
125 index 5749dbef..64ce230f 100644
126126 --- a/daemon/daemon.h
127127 +++ b/daemon/daemon.h
128128 @@ -136,6 +136,11 @@ struct daemon {
138138
139139 /**
140140 diff --git a/daemon/worker.c b/daemon/worker.c
141 index fc93817..e435226 100644
141 index 263fcddf..e6bc84bd 100644
142142 --- a/daemon/worker.c
143143 +++ b/daemon/worker.c
144144 @@ -75,6 +75,9 @@
203203
204204 edns_bak = *edns;
205205 edns->edns_version = EDNS_ADVERTISED_VERSION;
206 @@ -1409,6 +1448,15 @@ worker_handle_request(struct comm_point* c, void* arg, int error,
206 @@ -1410,6 +1449,15 @@ worker_handle_request(struct comm_point* c, void* arg, int error,
207207 log_addr(VERB_ALGO, "refused nonrec (cache snoop) query from",
208208 &repinfo->addr, repinfo->addrlen);
209209 goto send_reply;
219219 }
220220
221221 /* If we've found a local alias, replace the qname with the alias
222 @@ -1457,12 +1505,21 @@ lookup_cache:
222 @@ -1458,12 +1506,21 @@ lookup_cache:
223223 h = query_info_hash(lookup_qinfo, sldns_buffer_read_u16_at(c->buffer, 2));
224224 if((e=slabhash_lookup(worker->env.msg_cache, h, lookup_qinfo, 0))) {
225225 /* answer from cache - we have acquired a readlock on it */
243243 /* prefetch it if the prefetch TTL expired.
244244 * Note that if there is more than one pass
245245 * its qname must be that used for cache
246 @@ -1516,11 +1573,19 @@ lookup_cache:
246 @@ -1518,11 +1575,19 @@ lookup_cache:
247247 lock_rw_unlock(&e->lock);
248248 }
249249 if(!LDNS_RD_WIRE(sldns_buffer_begin(c->buffer))) {
266266 }
267267 verbose(VERB_ALGO, "answer norec from cache -- "
268268 diff --git a/doc/unbound.conf.5.in b/doc/unbound.conf.5.in
269 index c14ee27..0b71eaf 100644
269 index b1d8c790..10c0aa58 100644
270270 --- a/doc/unbound.conf.5.in
271271 +++ b/doc/unbound.conf.5.in
272 @@ -1795,6 +1795,81 @@ List domain for which the AAAA records are ignored and the A record is
272 @@ -1801,6 +1801,81 @@ List domain for which the AAAA records are ignored and the A record is
273273 used by dns64 processing instead. Can be entered multiple times, list a
274274 new domain for which it applies, one per line. Applies also to names
275275 underneath the name given.
353353 The
354354 diff --git a/fastrpz/librpz.h b/fastrpz/librpz.h
355355 new file mode 100644
356 index 0000000..645279d
356 index 00000000..645279d1
357357 --- /dev/null
358358 +++ b/fastrpz/librpz.h
359359 @@ -0,0 +1,957 @@
13161316 +#endif /* LIBRPZ_H */
13171317 diff --git a/fastrpz/rpz.c b/fastrpz/rpz.c
13181318 new file mode 100644
1319 index 0000000..c5ab780
1319 index 00000000..c5ab7801
13201320 --- /dev/null
13211321 +++ b/fastrpz/rpz.c
13221322 @@ -0,0 +1,1352 @@
26742674 +#endif /* ENABLE_FASTRPZ */
26752675 diff --git a/fastrpz/rpz.h b/fastrpz/rpz.h
26762676 new file mode 100644
2677 index 0000000..5d7e31c
2677 index 00000000..5d7e31c5
26782678 --- /dev/null
26792679 +++ b/fastrpz/rpz.h
26802680 @@ -0,0 +1,138 @@
28182818 +#endif /* UNBOUND_FASTRPZ_RPZ_H */
28192819 diff --git a/fastrpz/rpz.m4 b/fastrpz/rpz.m4
28202820 new file mode 100644
2821 index 0000000..2123535
2821 index 00000000..21235355
28222822 --- /dev/null
28232823 +++ b/fastrpz/rpz.m4
28242824 @@ -0,0 +1,64 @@
28872887 + fi
28882888 +])
28892889 diff --git a/iterator/iterator.c b/iterator/iterator.c
2890 index c906c27..55bf218 100644
2890 index c906c271..55bf2180 100644
28912891 --- a/iterator/iterator.c
28922892 +++ b/iterator/iterator.c
28932893 @@ -68,6 +68,9 @@
30843084 qstate->return_msg = iq->response;
30853085 return 0;
30863086 diff --git a/iterator/iterator.h b/iterator/iterator.h
3087 index a2f1b57..e1e4a73 100644
3087 index a2f1b570..e1e4a738 100644
30883088 --- a/iterator/iterator.h
30893089 +++ b/iterator/iterator.h
30903090 @@ -386,6 +386,16 @@ struct iter_qstate {
31053105 * Count number of time-outs. Used to prevent resolving failures when
31063106 * the QNAME minimisation QTYPE is blocked. */
31073107 diff --git a/services/cache/dns.c b/services/cache/dns.c
3108 index aa4efec..5dd3412 100644
3108 index aa4efec7..5dd3412e 100644
31093109 --- a/services/cache/dns.c
31103110 +++ b/services/cache/dns.c
31113111 @@ -945,6 +945,14 @@ dns_cache_store(struct module_env* env, struct query_info* msgqinf,
31243124 rep = reply_info_copy(msgrep, env->alloc, NULL);
31253125 if(!rep)
31263126 diff --git a/services/mesh.c b/services/mesh.c
3127 index d96289e..2e9f267 100644
3127 index 27f91940..f1bd4e90 100644
31283128 --- a/services/mesh.c
31293129 +++ b/services/mesh.c
31303130 @@ -60,6 +60,9 @@
31373137 #include "respip/respip.h"
31383138 #include "services/listen_dnsport.h"
31393139
3140 @@ -1072,6 +1075,13 @@ mesh_send_reply(struct mesh_state* m, int rcode, struct reply_info* rep,
3140 @@ -1076,6 +1079,13 @@ mesh_send_reply(struct mesh_state* m, int rcode, struct reply_info* rep,
31413141 else secure = 0;
31423142 if(!rep && rcode == LDNS_RCODE_NOERROR)
31433143 rcode = LDNS_RCODE_SERVFAIL;
31513151 /* send the reply */
31523152 /* We don't reuse the encoded answer if either the previous or current
31533153 * response has a local alias. We could compare the alias records
3154 @@ -1247,6 +1257,7 @@ struct mesh_state* mesh_area_find(struct mesh_area* mesh,
3154 @@ -1255,6 +1265,7 @@ struct mesh_state* mesh_area_find(struct mesh_area* mesh,
31553155 key.s.is_valrec = valrec;
31563156 key.s.qinfo = *qinfo;
31573157 key.s.query_flags = qflags;
31593159 /* We are searching for a similar mesh state when we DO want to
31603160 * aggregate the state. Thus unique is set to NULL. (default when we
31613161 * desire aggregation).*/
3162 @@ -1293,6 +1304,10 @@ int mesh_state_add_reply(struct mesh_state* s, struct edns_data* edns,
3162 @@ -1301,6 +1312,10 @@ int mesh_state_add_reply(struct mesh_state* s, struct edns_data* edns,
31633163 if(!r)
31643164 return 0;
31653165 r->query_reply = *rep;
31713171 if(edns->opt_list) {
31723172 r->edns.opt_list = edns_opt_copy_region(edns->opt_list,
31733173 diff --git a/util/config_file.c b/util/config_file.c
3174 index 9b60254..d791f8f 100644
3174 index 119b2223..ce43a234 100644
31753175 --- a/util/config_file.c
31763176 +++ b/util/config_file.c
3177 @@ -1418,6 +1418,8 @@ config_delete(struct config_file* cfg)
3177 @@ -1434,6 +1434,8 @@ config_delete(struct config_file* cfg)
31783178 free(cfg->dnstap_socket_path);
31793179 free(cfg->dnstap_identity);
31803180 free(cfg->dnstap_version);
31823182 + free(cfg->rpz_cstr);
31833183 config_deldblstrlist(cfg->ratelimit_for_domain);
31843184 config_deldblstrlist(cfg->ratelimit_below_domain);
3185 #ifdef USE_IPSECMOD
3185 config_delstrlist(cfg->python_script);
31863186 diff --git a/util/config_file.h b/util/config_file.h
3187 index 3cffdbf..e0fa1c8 100644
3187 index b3ef930a..56173b80 100644
31883188 --- a/util/config_file.h
31893189 +++ b/util/config_file.h
3190 @@ -490,6 +490,11 @@ struct config_file {
3190 @@ -494,6 +494,11 @@ struct config_file {
31913191 /** true to disable DNSSEC lameness check in iterator */
31923192 int disable_dnssec_lame_check;
31933193
32003200 int ip_ratelimit;
32013201 /** number of slabs for ip_ratelimit cache */
32023202 diff --git a/util/configlexer.lex b/util/configlexer.lex
3203 index 16b5bc5..038045d 100644
3203 index 7a972908..2d03ffc7 100644
32043204 --- a/util/configlexer.lex
32053205 +++ b/util/configlexer.lex
32063206 @@ -439,6 +439,10 @@ dnstap-log-forwarder-query-messages{COLON} {
32153215 ip-ratelimit{COLON} { YDVAR(1, VAR_IP_RATELIMIT) }
32163216 ratelimit{COLON} { YDVAR(1, VAR_RATELIMIT) }
32173217 diff --git a/util/configparser.y b/util/configparser.y
3218 index c7b9169..bef15b5 100644
3218 index 10227a2f..a519fcc7 100644
32193219 --- a/util/configparser.y
32203220 +++ b/util/configparser.y
32213221 @@ -125,6 +125,7 @@ extern struct config_parser_state* cfg_parser;
32263226 %token VAR_RESPONSE_IP_TAG VAR_RESPONSE_IP VAR_RESPONSE_IP_DATA
32273227 %token VAR_HARDEN_ALGO_DOWNGRADE VAR_IP_TRANSPARENT
32283228 %token VAR_DISABLE_DNSSEC_LAME_CHECK
3229 @@ -170,7 +171,7 @@ extern struct config_parser_state* cfg_parser;
3229 @@ -171,7 +172,7 @@ extern struct config_parser_state* cfg_parser;
32303230
32313231 %%
32323232 toplevelvars: /* empty */ | toplevelvars toplevelvar ;
32353235 forwardstart contents_forward | pythonstart contents_py |
32363236 rcstart contents_rc | dtstart contents_dt | viewstart contents_view |
32373237 dnscstart contents_dnsc | cachedbstart contents_cachedb |
3238 @@ -2710,6 +2711,50 @@ dt_dnstap_log_forwarder_response_messages: VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MES
3238 @@ -2726,6 +2727,50 @@ dt_dnstap_log_forwarder_response_messages: VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MES
32393239 free($2);
32403240 }
32413241 ;
32873287 {
32883288 OUTYY(("\nP(python:)\n"));
32893289 diff --git a/util/data/msgencode.c b/util/data/msgencode.c
3290 index 4c0a555..e51e9b8 100644
3290 index a51a4b9b..475dfce9 100644
32913291 --- a/util/data/msgencode.c
32923292 +++ b/util/data/msgencode.c
32933293 @@ -590,6 +590,35 @@ insert_section(struct reply_info* rep, size_t num_rrsets, uint16_t* num_rrs,
33263326 /** store query section in wireformat buffer, return RETVAL */
33273327 static int
33283328 insert_query(struct query_info* qinfo, struct compress_tree_node** tree,
3329 @@ -753,6 +782,19 @@ reply_info_encode(struct query_info* qinfo, struct reply_info* rep,
3330 return 0;
3329 @@ -777,6 +806,19 @@ reply_info_encode(struct query_info* qinfo, struct reply_info* rep,
3330 }
3331 sldns_buffer_write_u16_at(buffer, 10, arcount);
33313332 }
3332 sldns_buffer_write_u16_at(buffer, 10, arcount);
33333333 +#ifdef ENABLE_FASTRPZ
33343334 + } else if(rep->security == sec_status_rpz_rewritten) {
33353335 + /* Insert the RPZ SOA for rpz even with MINIMAL_RESPONSES */
33473347 sldns_buffer_flip(buffer);
33483348 return 1;
33493349 diff --git a/util/data/packed_rrset.c b/util/data/packed_rrset.c
3350 index 7b9d549..e44b2ce 100644
3350 index 7b9d5494..e44b2ce5 100644
33513351 --- a/util/data/packed_rrset.c
33523352 +++ b/util/data/packed_rrset.c
33533353 @@ -255,6 +255,10 @@ sec_status_to_string(enum sec_status s)
33623362 return "unknown_sec_status_value";
33633363 }
33643364 diff --git a/util/data/packed_rrset.h b/util/data/packed_rrset.h
3365 index 3a5335d..2011321 100644
3365 index 3a5335dd..20113217 100644
33663366 --- a/util/data/packed_rrset.h
33673367 +++ b/util/data/packed_rrset.h
33683368 @@ -193,7 +193,15 @@ enum sec_status {
33833383
33843384 /**
33853385 diff --git a/util/netevent.c b/util/netevent.c
3386 index b8b2a09..5ccc29a 100644
3386 index 9e2ba92b..06ede4e6 100644
33873387 --- a/util/netevent.c
33883388 +++ b/util/netevent.c
33893389 @@ -57,6 +57,9 @@
34263426 if(!rep.c || rep.c->fd != fd) /* commpoint closed to -1 or reused for
34273427 another UDP port. Note rep.c cannot be reused with TCP fd. */
34283428 break;
3429 @@ -3142,6 +3154,9 @@ comm_point_send_reply(struct comm_reply *repinfo)
3429 @@ -3152,6 +3164,9 @@ comm_point_send_reply(struct comm_reply *repinfo)
34303430 repinfo->c->tcp_timeout_msec);
34313431 }
34323432 }
34363436 }
34373437
34383438 void
3439 @@ -3151,6 +3166,9 @@ comm_point_drop_reply(struct comm_reply* repinfo)
3439 @@ -3161,6 +3176,9 @@ comm_point_drop_reply(struct comm_reply* repinfo)
34403440 return;
34413441 log_assert(repinfo && repinfo->c);
34423442 log_assert(repinfo->c->type != comm_tcp_accept);
34463446 if(repinfo->c->type == comm_udp)
34473447 return;
34483448 if(repinfo->c->tcp_req_info)
3449 @@ -3172,6 +3190,9 @@ comm_point_start_listening(struct comm_point* c, int newfd, int msec)
3449 @@ -3182,6 +3200,9 @@ comm_point_start_listening(struct comm_point* c, int newfd, int msec)
34503450 {
34513451 verbose(VERB_ALGO, "comm point start listening %d (%d msec)",
34523452 c->fd==-1?newfd:c->fd, msec);
34573457 /* no use to start listening no free slots. */
34583458 return;
34593459 diff --git a/util/netevent.h b/util/netevent.h
3460 index d80c72b..0233292 100644
3460 index d80c72b3..0233292f 100644
34613461 --- a/util/netevent.h
34623462 +++ b/util/netevent.h
34633463 @@ -120,6 +120,10 @@ struct comm_reply {
34723472 uint8_t client_nonce[crypto_box_HALF_NONCEBYTES];
34733473 uint8_t nmkey[crypto_box_BEFORENMBYTES];
34743474 diff --git a/validator/validator.c b/validator/validator.c
3475 index fa8d541..5628ef0 100644
3475 index fa8d5419..5628ef0b 100644
34763476 --- a/validator/validator.c
34773477 +++ b/validator/validator.c
34783478 @@ -2755,6 +2755,12 @@ ds_response_to_ke(struct module_qstate* qstate, struct val_qstate* vq,
121121 #ifdef USE_DNSCRYPT
122122 printf("DNSCrypt feature available\n");
123123 #endif
124 #ifdef USE_TCP_FASTOPEN
125 printf("TCP Fastopen feature available\n");
126 #endif
124127 ub_event_base_free(base);
125128 printf("\nBSD licensed, see LICENSE in source package for details.\n");
126129 printf("Report bugs to %s\n", PACKAGE_BUGREPORT);
0 22 August 2019: Wouter
1 - Fix that pkg-config is setup before --enable-systemd needs it.
2 - 1.9.3rc2 release candidate tag.
3
4 21 August 2019: Wouter
5 - Fix log_dns_msg to log irrespective of minimal responses config.
6
7 19 August 2019: Ralph
8 - Document limitation of pidfile removal outside of chroot directory.
9
10 16 August 2019: Wouter
11 - Fix unittest valgrind false positive uninitialised value report,
12 where if gcc 9.1.1 uses -O2 (but not -O1) then valgrind 3.15.0
13 issues an uninitialised value for the token buffer at the str2wire.c
14 rrinternal_get_owner() strcmp with the '@' value. Rewritten to use
15 straight character comparisons removes the false positive. Also
16 valgrinds --expensive-definedness-checks=yes can stop this false
17 positive.
18 - Please doxygen's parser for "@" occurrence in doxygen comment.
19 - Fixup contrib/fastrpz.patch
20 - Remove warning about unknown cast-function-type warning pragma.
21
022 15 August 2019: Wouter
123 - iana portlist updated.
224 - Fix autotrust temp file uniqueness windows compile.
426 - escape commandline contents for -V.
527 - Fix character buffer size in ub_ctx_hosts.
628 - 1.9.3rc1 release candidate tag.
29 - Option -V prints if TCP fastopen is available.
730
831 14 August 2019: George
932 - Fix #59, when compiled with systemd support check that we can properly
0 README for Unbound 1.9.3rc1
0 README for Unbound 1.9.3
11 Copyright 2007 NLnet Labs
22 http://unbound.net
33
00 #
11 # Example configuration file.
22 #
3 # See unbound.conf(5) man page, version 1.9.3rc1.
3 # See unbound.conf(5) man page, version 1.9.3.
44 #
55 # this is a comment.
66
0 .TH "libunbound" "3" "Aug 15, 2019" "NLnet Labs" "unbound 1.9.3rc1"
0 .TH "libunbound" "3" "Aug 27, 2019" "NLnet Labs" "unbound 1.9.3"
11 .\"
22 .\" libunbound.3 -- unbound library functions manual
33 .\"
4343 .B ub_ctx_zone_remove,
4444 .B ub_ctx_data_add,
4545 .B ub_ctx_data_remove
46 \- Unbound DNS validating resolver 1.9.3rc1 functions.
46 \- Unbound DNS validating resolver 1.9.3 functions.
4747 .SH "SYNOPSIS"
4848 .B #include <unbound.h>
4949 .LP
0 .TH "unbound-anchor" "8" "Aug 15, 2019" "NLnet Labs" "unbound 1.9.3rc1"
0 .TH "unbound-anchor" "8" "Aug 27, 2019" "NLnet Labs" "unbound 1.9.3"
11 .\"
22 .\" unbound-anchor.8 -- unbound anchor maintenance utility manual
33 .\"
0 .TH "unbound-checkconf" "8" "Aug 15, 2019" "NLnet Labs" "unbound 1.9.3rc1"
0 .TH "unbound-checkconf" "8" "Aug 27, 2019" "NLnet Labs" "unbound 1.9.3"
11 .\"
22 .\" unbound-checkconf.8 -- unbound configuration checker manual
33 .\"
0 .TH "unbound-control" "8" "Aug 15, 2019" "NLnet Labs" "unbound 1.9.3rc1"
0 .TH "unbound-control" "8" "Aug 27, 2019" "NLnet Labs" "unbound 1.9.3"
11 .\"
22 .\" unbound-control.8 -- unbound remote control manual
33 .\"
0 .TH "unbound\-host" "1" "Aug 15, 2019" "NLnet Labs" "unbound 1.9.3rc1"
0 .TH "unbound\-host" "1" "Aug 27, 2019" "NLnet Labs" "unbound 1.9.3"
11 .\"
22 .\" unbound-host.1 -- unbound DNS lookup utility
33 .\"
0 .TH "unbound" "8" "Aug 15, 2019" "NLnet Labs" "unbound 1.9.3rc1"
0 .TH "unbound" "8" "Aug 27, 2019" "NLnet Labs" "unbound 1.9.3"
11 .\"
22 .\" unbound.8 -- unbound manual
33 .\"
88 .\"
99 .SH "NAME"
1010 .B unbound
11 \- Unbound DNS validating resolver 1.9.3rc1.
11 \- Unbound DNS validating resolver 1.9.3.
1212 .SH "SYNOPSIS"
1313 .B unbound
1414 .RB [ \-h ]
0 .TH "unbound.conf" "5" "Aug 15, 2019" "NLnet Labs" "unbound 1.9.3rc1"
0 .TH "unbound.conf" "5" "Aug 27, 2019" "NLnet Labs" "unbound 1.9.3"
11 .\"
22 .\" unbound.conf.5 -- unbound.conf manual
33 .\"
628628 The pidfile can be either a relative path to the working directory, or
629629 an absolute path relative to the original root. It is written just prior
630630 to chroot and dropping permissions. This allows the pidfile to be
631 /var/run/unbound.pid and the chroot to be /var/unbound, for example.
631 /var/run/unbound.pid and the chroot to be /var/unbound, for example. Note that
632 Unbound is not able to remove the pidfile after termination when it is located
633 outside of the chroot directory.
632634 .IP
633635 Additionally, unbound may need to access /dev/random (for entropy)
634636 from inside the chroot.
33 %begin %{
44 /* store state of warning output, restored at later pop */
55 #pragma GCC diagnostic push
6 /* ignore warnings for pragma below, where for older GCC it can produce a
7 warning if the cast-function-type warning is absent. */
8 #pragma GCC diagnostic ignored "-Wpragmas"
69 /* ignore gcc8 METH_NOARGS function cast warnings for swig function pointers */
710 #pragma GCC diagnostic ignored "-Wcast-function-type"
811 %}
186186 sldns_buffer_position(strbuf));
187187 }
188188
189 if(strcmp(token, "@") == 0) {
189 if(token[0]=='@' && token[1]=='\0') {
190190 uint8_t* tocopy;
191191 if (origin) {
192192 *dname_len = origin_len;
145145 edns_known_options_delete(&env);
146146 }
147147
148 /** true if addr is a localhost address, 127.0.0.1 or ::1 (@port) */
148 /** true if addr is a localhost address, 127.0.0.1 or ::1 (with maybe "@port"
149 * after it) */
149150 static int
150151 str_addr_is_localhost(const char* a)
151152 {
178178 /* encode a couple times */
179179 for(i=0; i<max; i++) {
180180 ret = reply_info_encode(qi, rep, id, flags, out, timenow,
181 r2, 65535, (int)(edns->bits & EDNS_DO) );
181 r2, 65535, (int)(edns->bits & EDNS_DO), 0);
182182 unit_assert(ret != 0); /* udp packets should fit */
183183 attach_edns_record(out, edns);
184184 regional_free_all(r2);
341341 } else if(!check_formerr_gone) {
342342 const size_t lim = 512;
343343 ret = reply_info_encode(&qi, rep, id, flags, out, timenow,
344 region, 65535, (int)(edns.bits & EDNS_DO) );
344 region, 65535, (int)(edns.bits & EDNS_DO), 0);
345345 unit_assert(ret != 0); /* udp packets should fit */
346346 attach_edns_record(out, &edns);
347347 if(vbmp) printf("inlen %u outlen %u\n",
356356 ret = reply_info_encode(&qi, rep, id, flags, out,
357357 timenow, region,
358358 lim - calc_edns_field_size(&edns),
359 (int)(edns.bits & EDNS_DO));
359 (int)(edns.bits & EDNS_DO), 0);
360360 unit_assert(ret != 0); /* should fit, but with TC */
361361 attach_edns_record(out, &edns);
362362 if( LDNS_QDCOUNT(sldns_buffer_begin(out)) !=
663663 int
664664 reply_info_encode(struct query_info* qinfo, struct reply_info* rep,
665665 uint16_t id, uint16_t flags, sldns_buffer* buffer, time_t timenow,
666 struct regional* region, uint16_t udpsize, int dnssec)
666 struct regional* region, uint16_t udpsize, int dnssec, int minimise)
667667 {
668668 uint16_t ancount=0, nscount=0, arcount=0;
669669 struct compress_tree_node* tree = 0;
743743 sldns_buffer_write_u16_at(buffer, 6, ancount);
744744
745745 /* if response is positive answer, auth/add sections are not required */
746 if( ! (MINIMAL_RESPONSES && positive_answer(rep, qinfo->qtype)) ) {
746 if( ! (minimise && positive_answer(rep, qinfo->qtype)) ) {
747747 /* insert auth section */
748748 if((r=insert_section(rep, rep->ns_numrrsets, &nscount, buffer,
749749 rep->an_numrrsets, timenow, region, &tree,
760760 }
761761 sldns_buffer_write_u16_at(buffer, 8, nscount);
762762
763 if(! (MINIMAL_RESPONSES && negative_answer(rep))) {
763 if(! (minimise && negative_answer(rep))) {
764764 /* insert add section */
765765 if((r=insert_section(rep, rep->ar_numrrsets, &arcount, buffer,
766766 rep->an_numrrsets + rep->ns_numrrsets, timenow, region,
873873 }
874874
875875 if(!reply_info_encode(qinf, rep, id, flags, pkt, timenow, region,
876 udpsize, dnssec)) {
876 udpsize, dnssec, MINIMAL_RESPONSES)) {
877877 log_err("reply encode: out of memory");
878878 return 0;
879879 }
8484 * @param region: to store temporary data in.
8585 * @param udpsize: size of the answer, 512, from EDNS, or 64k for TCP.
8686 * @param dnssec: if 0 DNSSEC records are omitted from the answer.
87 * @param minimise: if true, the answer is a minimal response, with
88 * authority and additional removed if possible.
8789 * @return: nonzero is success, or
8890 * 0 on error: malloc failure (no log_err has been done).
8991 */
9092 int reply_info_encode(struct query_info* qinfo, struct reply_info* rep,
9193 uint16_t id, uint16_t flags, struct sldns_buffer* buffer, time_t timenow,
92 struct regional* region, uint16_t udpsize, int dnssec);
94 struct regional* region, uint16_t udpsize, int dnssec, int minimise);
9395
9496 /**
9597 * Encode query packet. Assumes the buffer is large enough.
818818 sldns_buffer* buf = sldns_buffer_new(65535);
819819 struct regional* region = regional_create();
820820 if(!reply_info_encode(qinfo, rep, 0, rep->flags, buf, 0,
821 region, 65535, 1)) {
821 region, 65535, 1, 0)) {
822822 log_info("%s: log_dns_msg: out of memory", str);
823823 } else {
824824 char* s = sldns_wire2str_pkt(sldns_buffer_begin(buf),