[-]
[+]
|
Changed |
pdns-3.3.tar.gz/Makefile.am
|
@@ -3,11 +3,20 @@
EXTRA_DIST=TODO README HACKING INSTALL debian-pdns/* pdns.spec \
codedocs/Makefile codedocs/doxygen.conf contrib/powerdns.solaris.init.d \
contrib/systemd-pdns.service contrib/systemd-pdns-recursor.service \
-bootstrap build-scripts/semistaticg++
+bootstrap build-scripts/semistaticg++ pdns/docs/dnstcpbench.1
ACLOCAL_AMFLAGS = -I m4
-man8_MANS=pdns/docs/dnsreplay.8 pdns/docs/dnsscope.8 pdns/docs/dnswasher.8 pdns/docs/pdns_control.8 pdns/docs/pdnssec.8 pdns/docs/pdns_server.8 pdns/docs/zone2ldap.8 pdns/docs/zone2sql.8
+man8_MANS=pdns/docs/pdns_control.8 pdns/docs/pdnssec.8 pdns/docs/pdns_server.8 \
+ pdns/docs/zone2ldap.8 pdns/docs/zone2sql.8
+
+if TOOLS
+ man8_MANS += pdns/docs/dnsreplay.8 pdns/docs/dnsscope.8 pdns/docs/dnswasher.8
+ man1_MANS = pdns/docs/dnstcpbench.1
+endif
+
+pdns/docs/dnstcpbench.1:
+ cd pdns/docs && $(MAKE) dnstcpbench.1
install-exec-local:
-@chmod +x pdns/pdns
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/Makefile.in
^
|
@@ -33,6 +33,7 @@
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
+@TOOLS_TRUE@am__append_1 = pdns/docs/dnsreplay.8 pdns/docs/dnsscope.8 pdns/docs/dnswasher.8
subdir = .
DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(srcdir)/config.h.in \
@@ -88,10 +89,11 @@
am__base_list = \
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+man1dir = $(mandir)/man1
+am__installdirs = "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man8dir)"
man8dir = $(mandir)/man8
-am__installdirs = "$(DESTDIR)$(man8dir)"
NROFF = nroff
-MANS = $(man8_MANS)
+MANS = $(man1_MANS) $(man8_MANS)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
@@ -235,6 +237,7 @@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
RANLIB = @RANLIB@
+REMOTEBACKEND_HTTP = @REMOTEBACKEND_HTTP@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
@@ -310,10 +313,13 @@
EXTRA_DIST = TODO README HACKING INSTALL debian-pdns/* pdns.spec \
codedocs/Makefile codedocs/doxygen.conf contrib/powerdns.solaris.init.d \
contrib/systemd-pdns.service contrib/systemd-pdns-recursor.service \
-bootstrap build-scripts/semistaticg++
+bootstrap build-scripts/semistaticg++ pdns/docs/dnstcpbench.1
ACLOCAL_AMFLAGS = -I m4
-man8_MANS = pdns/docs/dnsreplay.8 pdns/docs/dnsscope.8 pdns/docs/dnswasher.8 pdns/docs/pdns_control.8 pdns/docs/pdnssec.8 pdns/docs/pdns_server.8 pdns/docs/zone2ldap.8 pdns/docs/zone2sql.8
+man8_MANS = pdns/docs/pdns_control.8 pdns/docs/pdnssec.8 \
+ pdns/docs/pdns_server.8 pdns/docs/zone2ldap.8 \
+ pdns/docs/zone2sql.8 $(am__append_1)
+@TOOLS_TRUE@man1_MANS = pdns/docs/dnstcpbench.1
all: config.h
$(MAKE) $(AM_MAKEFLAGS) all-recursive
@@ -378,6 +384,40 @@
distclean-libtool:
-rm -f libtool config.lt
+install-man1: $(man1_MANS)
+ @$(NORMAL_INSTALL)
+ test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)"
+ @list='$(man1_MANS)'; test -n "$(man1dir)" || exit 0; \
+ { for i in $$list; do echo "$$i"; done; \
+ } | while read p; do \
+ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; echo "$$p"; \
+ done | \
+ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
+ sed 'N;N;s,\n, ,g' | { \
+ list=; while read file base inst; do \
+ if test "$$base" = "$$inst"; then list="$$list $$file"; else \
+ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
+ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
+ fi; \
+ done; \
+ for i in $$list; do echo "$$i"; done | $(am__base_list) | \
+ while read files; do \
+ test -z "$$files" || { \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
+ done; }
+
+uninstall-man1:
+ @$(NORMAL_UNINSTALL)
+ @list='$(man1_MANS)'; test -n "$(man1dir)" || exit 0; \
+ files=`{ for i in $$list; do echo "$$i"; done; \
+ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
+ test -z "$$files" || { \
+ echo " ( cd '$(DESTDIR)$(man1dir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(man1dir)" && rm -f $$files; }
install-man8: $(man8_MANS)
@$(NORMAL_INSTALL)
test -z "$(man8dir)" || $(MKDIR_P) "$(DESTDIR)$(man8dir)"
@@ -741,7 +781,7 @@
all-am: Makefile $(MANS) config.h
installdirs: installdirs-recursive
installdirs-am:
- for dir in "$(DESTDIR)$(man8dir)"; do \
+ for dir in "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man8dir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: install-recursive
@@ -807,7 +847,7 @@
install-info-am:
-install-man: install-man8
+install-man: install-man1 install-man8
install-pdf: install-pdf-recursive
@@ -839,7 +879,7 @@
uninstall-am: uninstall-man
-uninstall-man: uninstall-man8
+uninstall-man: uninstall-man1 uninstall-man8
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \
ctags-recursive install-am install-strip tags-recursive
@@ -854,13 +894,17 @@
install install-am install-data install-data-am install-dvi \
install-dvi-am install-exec install-exec-am install-exec-local \
install-html install-html-am install-info install-info-am \
- install-man install-man8 install-pdf install-pdf-am install-ps \
- install-ps-am install-strip installcheck installcheck-am \
- installdirs installdirs-am maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-generic \
- mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
- uninstall uninstall-am uninstall-man uninstall-man8
+ install-man install-man1 install-man8 install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs installdirs-am \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags tags-recursive uninstall uninstall-am uninstall-man \
+ uninstall-man1 uninstall-man8
+
+pdns/docs/dnstcpbench.1:
+ cd pdns/docs && $(MAKE) dnstcpbench.1
install-exec-local:
-@chmod +x pdns/pdns
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/codedocs/Makefile
^
|
@@ -144,10 +144,10 @@
PACKAGE = pdns
PACKAGE_BUGREPORT =
PACKAGE_NAME = pdns
-PACKAGE_STRING = pdns 3.3-rc1
+PACKAGE_STRING = pdns 3.3-rc2
PACKAGE_TARNAME = pdns
PACKAGE_URL =
-PACKAGE_VERSION = 3.3-rc1
+PACKAGE_VERSION = 3.3-rc2
PATH_SEPARATOR = :
PGSQL_incdir = /usr/include/postgresql
PGSQL_lib =
@@ -155,6 +155,7 @@
PKG_CONFIG_LIBDIR =
PKG_CONFIG_PATH =
RANLIB = ranlib
+REMOTEBACKEND_HTTP = yes
SED = /bin/sed
SET_MAKE =
SHELL = /bin/bash
@@ -164,7 +165,7 @@
THREADFLAGS = -pthread
UNIXODBC_incdir =
UNIXODBC_lib =
-VERSION = 3.3-rc1
+VERSION = 3.3-rc2
YACC = bison -y
YFLAGS =
abs_builddir = /var/lib/jenkins/jobs/auth-git/workspace/codedocs
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/codedocs/Makefile.in
^
|
@@ -155,6 +155,7 @@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
RANLIB = @RANLIB@
+REMOTEBACKEND_HTTP = @REMOTEBACKEND_HTTP@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
|
[-]
[+]
|
Added |
pdns-3.3.tar.gz/config.h
^
|
@@ -0,0 +1,223 @@
+/* config.h. Generated from config.h.in by configure. */
+/* config.h.in. Generated from configure.ac by autoheader. */
+
+/* Define if building universal (internal helper macro) */
+/* #undef AC_APPLE_UNIVERSAL_BUILD */
+
+/* Skip gcc locking */
+/* #undef GCC_SKIP_LOCKING */
+
+/* Defined if the requested minimum BOOST version is satisfied */
+#define HAVE_BOOST 1
+
+/* Define to 1 if you have <boost/archive/text_oarchive.hpp> */
+#define HAVE_BOOST_ARCHIVE_TEXT_OARCHIVE_HPP 1
+
+/* Define to 1 if you have <boost/foreach.hpp> */
+#define HAVE_BOOST_FOREACH_HPP 1
+
+/* Define to 1 if you have <boost/program_options.hpp> */
+#define HAVE_BOOST_PROGRAM_OPTIONS_HPP 1
+
+/* Define to 1 if you have <boost/test/unit_test.hpp> */
+#define HAVE_BOOST_TEST_UNIT_TEST_HPP 1
+
+/* If we have botan 1.10 */
+/* #undef HAVE_BOTAN110 */
+
+/* If we have botan 1.8 */
+/* #undef HAVE_BOTAN18 */
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#define HAVE_DLFCN_H 1
+
+/* Define to 1 if you have the <fcntl.h> header file. */
+#define HAVE_FCNTL_H 1
+
+/* Define to 1 if you have the `gethostname' function. */
+#define HAVE_GETHOSTNAME 1
+
+/* Define to 1 if you have the <getopt.h> header file. */
+#define HAVE_GETOPT_H 1
+
+/* Define to 1 if you have the `gettimeofday' function. */
+#define HAVE_GETTIMEOFDAY 1
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#define HAVE_INTTYPES_H 1
+
+/* If the host operating system understands IPv6 */
+#define HAVE_IPV6 1
+
+/* Define to 1 if you have the <lber.h> header file. */
+#define HAVE_LBER_H 1
+
+/* Define to 1 if you have the <ldap.h> header file. */
+#define HAVE_LDAP_H 1
+
+/* Define to 1 if you have ldap_initialize */
+#define HAVE_LDAP_INITIALIZE 1
+
+/* Define to 1 if you have ldap_sasl_bind */
+#define HAVE_LDAP_SASL_BIND 1
+
+/* Define to 1 if you have the `crypt' library (-lcrypt). */
+#define HAVE_LIBCRYPT 1
+
+/* If we have libcurl */
+#define HAVE_LIBCURL 1
+
+/* Define to 1 if you have the `dl' library (-ldl). */
+#define HAVE_LIBDL 1
+
+/* Have -lldap */
+/* #undef HAVE_LIBLDAP */
+
+/* Have -lldap_r */
+#define HAVE_LIBLDAP_R 1
+
+/* Have -lopendbx */
+#define HAVE_LIBOPENDBX 1
+
+/* Define to 1 if you have the `polarssl' library (-lpolarssl). */
+/* #undef HAVE_LIBPOLARSSL */
+
+/* Define to 1 if you have the <limits.h> header file. */
+#define HAVE_LIMITS_H 1
+
+/* liblua */
+#define HAVE_LUA 1
+
+/* lua.h */
+#define HAVE_LUA_H 1
+
+/* Define to 1 if you have the <memory.h> header file. */
+#define HAVE_MEMORY_H 1
+
+/* Define to 1 if you have the `mkdir' function. */
+#define HAVE_MKDIR 1
+
+/* Define to 1 if you have the `mktime' function. */
+#define HAVE_MKTIME 1
+
+/* Define to 1 if you have the <odbx.h> header file. */
+#define HAVE_ODBX_H 1
+
+/* Define to 1 if you have the `select' function. */
+#define HAVE_SELECT 1
+
+/* Define to 1 if you have the `socket' function. */
+#define HAVE_SOCKET 1
+
+/* If we have sqlite3 */
+#define HAVE_SQLITE3 1
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#define HAVE_STDINT_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the `strcasestr' function. */
+#define HAVE_STRCASESTR 1
+
+/* Define to 1 if you have the `strerror' function. */
+#define HAVE_STRERROR 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+#define HAVE_STRINGS_H 1
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the <syslog.h> header file. */
+#define HAVE_SYSLOG_H 1
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/time.h> header file. */
+#define HAVE_SYS_TIME_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#define HAVE_UNISTD_H 1
+
+/* Define to the sub-directory in which libtool stores uninstalled libraries.
+ */
+#define LT_OBJDIR ".libs/"
+
+/* If your OS is so broken that it needs an additional prototype */
+/* #undef NEED_INET_NTOP_PROTO */
+
+/* If POSIX typedefs need to be defined */
+/* #undef NEED_POSIX_TYPEDEF */
+
+/* If host OS misses RTLD_NOW */
+/* #undef NEED_RTLD_NOW */
+
+/* Define to 1 if your C compiler doesn't accept -c and -o together. */
+/* #undef NO_MINUS_C_MINUS_O */
+
+/* Name of package */
+#define PACKAGE "pdns"
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT ""
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "pdns"
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "pdns 3.3-rc2"
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME "pdns"
+
+/* Define to the home page for this package. */
+#define PACKAGE_URL ""
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "3.3-rc2"
+
+/* If we want HTTP connector */
+#define REMOTEBACKEND_HTTP 1
+
+/* Define as the return type of signal handlers (`int' or `void'). */
+#define RETSIGTYPE void
+
+/* Define to 1 if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
+#define TIME_WITH_SYS_TIME 1
+
+/* Define to 1 if your <sys/time.h> declares `struct tm'. */
+/* #undef TM_IN_SYS_TIME */
+
+/* If verbose logging should be enabled */
+/* #undef VERBOSELOG */
+
+/* Version number of package */
+#define VERSION "3.3-rc2"
+
+/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
+ significant byte first (like Motorola and SPARC, unlike Intel). */
+#if defined AC_APPLE_UNIVERSAL_BUILD
+# if defined __BIG_ENDIAN__
+# define WORDS_BIGENDIAN 1
+# endif
+#else
+# ifndef WORDS_BIGENDIAN
+/* # undef WORDS_BIGENDIAN */
+# endif
+#endif
+
+/* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a
+ `char[]'. */
+#define YYTEXT_POINTER 1
+
+/* Define to `unsigned int' if <sys/types.h> does not define. */
+/* #undef size_t */
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/configure
^
|
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.67 for pdns 3.3-rc1.
+# Generated by GNU Autoconf 2.67 for pdns 3.3-rc2.
#
#
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -698,8 +698,8 @@
# Identity of this package.
PACKAGE_NAME='pdns'
PACKAGE_TARNAME='pdns'
-PACKAGE_VERSION='3.3-rc1'
-PACKAGE_STRING='pdns 3.3-rc1'
+PACKAGE_VERSION='3.3-rc2'
+PACKAGE_STRING='pdns 3.3-rc2'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
@@ -763,8 +763,8 @@
ORACLE_TRUE
LIBOPENDBX
LIBLDAP
-RECURSOR_FALSE
-RECURSOR_TRUE
+TOOLS_FALSE
+TOOLS_TRUE
programdescend
modulelibs
moduleobjects
@@ -772,6 +772,7 @@
socketdir
ALLSTATIC_FALSE
ALLSTATIC_TRUE
+REMOTEBACKEND_HTTP
LIBCURL_LIBS
LIBCURL_CFLAGS
REMOTEBACKEND_HTTP_FALSE
@@ -962,7 +963,7 @@
with_socketdir
enable_pdns_server
enable_gcc_skip_locking
-enable_recursor
+enable_tools
with_oracle_includes
with_oracle_libs
with_mysql
@@ -1549,7 +1550,7 @@
# 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 pdns 3.3-rc1 to adapt to many kinds of systems.
+\`configure' configures pdns 3.3-rc2 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1619,7 +1620,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of pdns 3.3-rc1:";;
+ short | recursive ) echo "Configuration of pdns 3.3-rc2:";;
esac
cat <<\_ACEOF
@@ -1651,7 +1652,7 @@
--enable-pdns_server if we should build the server
--enable-gcc-skip-locking
if we should forcefully skip gcc locking
- --enable-recursor if we should build the recursor
+ --enable-tools if we should build+install the tools
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
@@ -1660,7 +1661,7 @@
both]
--with-gnu-ld assume the C compiler uses GNU ld [default=no]
--with-lua use Lua
- --with-boost=DIR prefix of Boost 1.34 [guess]
+ --with-boost=DIR prefix of Boost 1.35 [guess]
--with-sqlite3 include sqlite3 driver
--without-system-polarssl
do not use system PolarSSL
@@ -1797,7 +1798,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-pdns configure 3.3-rc1
+pdns configure 3.3-rc2
generated by GNU Autoconf 2.67
Copyright (C) 2010 Free Software Foundation, Inc.
@@ -2446,7 +2447,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by pdns $as_me 3.3-rc1, which was
+It was created by pdns $as_me 3.3-rc2, which was
generated by GNU Autoconf 2.67. Invocation command line was
$ $0 $@
@@ -3264,7 +3265,7 @@
# Define the identity of the package.
PACKAGE='pdns'
- VERSION='3.3-rc1'
+ VERSION='3.3-rc2'
cat >>confdefs.h <<_ACEOF
@@ -5056,13 +5057,13 @@
else
lt_cv_nm_interface="BSD nm"
echo "int some_variable = 0;" > conftest.$ac_ext
- (eval echo "\"\$as_me:5059: $ac_compile\"" >&5)
+ (eval echo "\"\$as_me:5060: $ac_compile\"" >&5)
(eval "$ac_compile" 2>conftest.err)
cat conftest.err >&5
- (eval echo "\"\$as_me:5062: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+ (eval echo "\"\$as_me:5063: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
(eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
cat conftest.err >&5
- (eval echo "\"\$as_me:5065: output\"" >&5)
+ (eval echo "\"\$as_me:5066: output\"" >&5)
cat conftest.out >&5
if $GREP 'External.*some_variable' conftest.out > /dev/null; then
lt_cv_nm_interface="MS dumpbin"
@@ -6268,7 +6269,7 @@
;;
*-*-irix6*)
# Find out which ABI we are using.
- echo '#line 6271 "configure"' > conftest.$ac_ext
+ echo '#line 6272 "configure"' > conftest.$ac_ext
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
(eval $ac_compile) 2>&5
ac_status=$?
@@ -7797,11 +7798,11 @@
-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:7800: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:7801: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:7804: \$? = $ac_status" >&5
+ echo "$as_me:7805: \$? = $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.
@@ -8136,11 +8137,11 @@
-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:8139: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:8140: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:8143: \$? = $ac_status" >&5
+ echo "$as_me:8144: \$? = $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.
@@ -8241,11 +8242,11 @@
-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:8244: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:8245: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:8248: \$? = $ac_status" >&5
+ echo "$as_me:8249: \$? = $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
@@ -8296,11 +8297,11 @@
-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:8299: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:8300: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:8303: \$? = $ac_status" >&5
+ echo "$as_me:8304: \$? = $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
@@ -10680,7 +10681,7 @@
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 10683 "configure"
+#line 10684 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -10776,7 +10777,7 @@
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 10779 "configure"
+#line 10780 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -14559,11 +14560,11 @@
-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:14562: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:14563: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:14566: \$? = $ac_status" >&5
+ echo "$as_me:14567: \$? = $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.
@@ -14658,11 +14659,11 @@
-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:14661: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:14662: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:14665: \$? = $ac_status" >&5
+ echo "$as_me:14666: \$? = $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
@@ -14710,11 +14711,11 @@
-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:14713: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:14714: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:14717: \$? = $ac_status" >&5
+ echo "$as_me:14718: \$? = $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
@@ -16801,7 +16802,7 @@
echo "$as_me: this is boost.m4 serial 18" >&5
boost_save_IFS=$IFS
-boost_version_req=1.34
+boost_version_req=1.35
IFS=.
set x $boost_version_req 0 0 0
IFS=$boost_save_IFS
@@ -19035,6 +19036,7 @@
$as_echo "yes" >&6; }
HAVE_LIBCURL=yes
fi
+ REMOTEBACKEND_HTTP=yes
@@ -19043,6 +19045,7 @@
$as_echo "#define REMOTEBACKEND_HTTP 1" >>confdefs.h
+
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we should build static binaries" >&5
@@ -19143,24 +19146,24 @@
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we will be building the recursor" >&5
-$as_echo_n "checking whether we will be building the recursor... " >&6; }
-# Check whether --enable-recursor was given.
-if test "${enable_recursor+set}" = set; then :
- enableval=$enable_recursor; enable_recursor=$enableval
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we will be building and installing the extra tools" >&5
+$as_echo_n "checking whether we will be building and installing the extra tools... " >&6; }
+# Check whether --enable-tools was given.
+if test "${enable_tools+set}" = set; then :
+ enableval=$enable_tools; enable_tools=$enableval
else
- enable_recursor=no
+ enable_tools=no
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_recursor" >&5
-$as_echo "$enable_recursor" >&6; }
- if test x"$enable_recursor" = "xyes"; then
- RECURSOR_TRUE=
- RECURSOR_FALSE='#'
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_tools" >&5
+$as_echo "$enable_tools" >&6; }
+ if test x"$enable_tools" = "xyes"; then
+ TOOLS_TRUE=
+ TOOLS_FALSE='#'
else
- RECURSOR_TRUE='#'
- RECURSOR_FALSE=
+ TOOLS_TRUE='#'
+ TOOLS_FALSE=
fi
@@ -20271,8 +20274,8 @@
as_fn_error $? "conditional \"ALLSTATIC\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
-if test -z "${RECURSOR_TRUE}" && test -z "${RECURSOR_FALSE}"; then
- as_fn_error $? "conditional \"RECURSOR\" was never defined.
+if test -z "${TOOLS_TRUE}" && test -z "${TOOLS_FALSE}"; then
+ as_fn_error $? "conditional \"TOOLS\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${ORACLE_TRUE}" && test -z "${ORACLE_FALSE}"; then
@@ -20691,7 +20694,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by pdns $as_me 3.3-rc1, which was
+This file was extended by pdns $as_me 3.3-rc2, which was
generated by GNU Autoconf 2.67. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -20757,7 +20760,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-pdns config.status 3.3-rc1
+pdns config.status 3.3-rc2
configured by $0, generated by GNU Autoconf 2.67,
with options \\"\$ac_cs_config\\"
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/configure.ac
^
|
@@ -1,11 +1,11 @@
dnl intro
dnl The following lines may be patched by set-version-auth.
-AC_INIT([pdns], [3.3-rc1])
+AC_INIT([pdns], [3.3-rc2])
AC_SUBST([DIST_HOST], [jenkins@autotest.powerdns.com])
dnl End patch area.
AC_CONFIG_SRCDIR([pdns/receiver.cc])
AM_INIT_AUTOMAKE([foreign tar-ustar -Wno-portability])
-AM_SILENT_RULES([yes])
+m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
AC_CANONICAL_HOST
LT_INIT
AC_CONFIG_MACRO_DIR([m4])
@@ -57,7 +57,7 @@
AM_CONDITIONAL([RELEASE_BUILD], [test "$PACKAGE_VERSION" != "git"])
-BOOST_REQUIRE([1.34])
+BOOST_REQUIRE([1.35])
BOOST_FOREACH
BOOST_PROGRAM_OPTIONS([mt])
BOOST_SERIALIZATION([mt])
@@ -255,10 +255,12 @@
if test "x$enable_remotebackend_http" = "xyes"
then
PKG_CHECK_MODULES(LIBCURL, libcurl, HAVE_LIBCURL=yes, AC_MSG_ERROR([Could not find libcurl]))
+ REMOTEBACKEND_HTTP=yes
AC_SUBST(LIBCURL_LIBS)
AC_SUBST(LIBCURL_CFLAGS)
AC_DEFINE(HAVE_LIBCURL,1,[If we have libcurl])
AC_DEFINE(REMOTEBACKEND_HTTP,1,[If we want HTTP connector])
+ AC_SUBST(REMOTEBACKEND_HTTP)
fi
AC_MSG_CHECKING(whether we should build static binaries)
@@ -325,14 +327,14 @@
AC_DEFINE(GCC_SKIP_LOCKING,,[Skip gcc locking]),
)
-AC_MSG_CHECKING(whether we will be building the recursor)
-AC_ARG_ENABLE(recursor,
- AC_HELP_STRING([--enable-recursor],[if we should build the recursor]),
- enable_recursor=$enableval,
- enable_recursor=no )
+AC_MSG_CHECKING(whether we will be building and installing the extra tools)
+AC_ARG_ENABLE(tools,
+ AC_HELP_STRING([--enable-tools],[if we should build+install the tools]),
+ enable_tools=$enableval,
+ enable_tools=no )
-AC_MSG_RESULT($enable_recursor)
-AM_CONDITIONAL(RECURSOR,test x"$enable_recursor" = "xyes")
+AC_MSG_RESULT($enable_tools)
+AM_CONDITIONAL(TOOLS,test x"$enable_tools" = "xyes")
for a in $modules $dynmodules
do
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/contrib/systemd-pdns.service
^
|
@@ -1,6 +1,6 @@
[Unit]
Description=PowerDNS Authoritative Server
-After=network.target
+After=network.target mysqld.service postgresql.service slapd.service
[Service]
Type=forking
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/debian-pdns/changelog
^
|
@@ -1,4 +1,4 @@
-pdns (3.3-rc1-1) unstable; urgency=medium
+pdns (3.3-rc2-1) unstable; urgency=medium
* fill in the blanks
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/debian-pdns/control
^
|
@@ -28,6 +28,18 @@
can be used on older Debian releases for which no dynamic version
is available.
+Package: pdns-tools
+Architecture: any
+Recommends: pdns-doc
+Conflicts: pdns-server
+Description: static version of pDNS tools
+ PowerDNS is a versatile nameserver which supports a large number
+ of different backends ranging from simple zonefiles to relational
+ databases and load balancing/failover algorithms.
+ .
+ This package contains a collection of tools based on the core
+ PowerDNS libraries.
+
Package: pdns-doc
Section: doc
Architecture: all
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/debian-pdns/rules
^
|
@@ -2,6 +2,7 @@
tmpdir := $(shell pwd)/debian-pdns/tmp
be_tmpdir := $(shell pwd)/debian-pdns/tmp-backend
+tools_tmpdir:= $(shell pwd)/debian-pdns/tmp-tools
backends := opendbx ldap pipe gmysql gpgsql gsqlite3
debs := opendbx ldap pipe pgsql sqlite sqlite3
@@ -53,8 +54,10 @@
--with-modules="gmysql gpgsql pipe gsqlite3 lua geo tinydns mydns opendbx remote" \
--with-dynmodules="" \
--enable-botan1.10 --enable-cryptopp \
- --enable-static-binaries
+ --enable-static-binaries \
+ --enable-tools
make -j4
+
touch stamp-build-static
@@ -75,13 +78,15 @@
binary-main-prepare:
rm -f debian-pdns/substvars
rm -rf "$(tmpdir)" "$(tmpdir)"-*
+ rm -rf "$(tools_tmpdir)" "$(tools_tmpdir)"-*
install -d -m 755 -o root -g root "$(tmpdir)"
+ install -d -m 755 -o root -g root "$(tools_tmpdir)"
make DESTDIR="$(tmpdir)" install
rm -f "$(tmpdir)"/usr/bin/binpatch
rm -f "$(tmpdir)"/usr/bin/zone2ldap
rm -rf "$(tmpdir)"/usr/lib
-
+ rm -f "$(tmpdir)"/usr/share/man/man8/zone2ldap.8
strip --remove-section=.comment --remove-section=.note \
--strip-unneeded \
"$(tmpdir)"/usr/bin/zone2sql \
@@ -112,6 +117,36 @@
"$(tmpdir)"/DEBIAN/conffiles
+ install -d -m 755 -o root -g root \
+ "$(tools_tmpdir)"/usr/bin
+ install -d -m 755 -o root -g root \
+ "$(tools_tmpdir)"/usr/share/man/man8
+ install -d -m 755 -o root -g root \
+ "$(tools_tmpdir)"/usr/share/man/man1
+ install -d -m 755 -o root -g root \
+ "$(tools_tmpdir)"/usr/share/doc/pdns-tools
+ install -p -m 644 -o root -g root debian-pdns/changelog \
+ "$(tools_tmpdir)"/usr/share/doc/pdns-tools/changelog.Debian
+ gzip -9 "$(tools_tmpdir)"/usr/share/doc/pdns-tools/c*
+ install -p -m 644 -o root -g root debian-pdns/copyright \
+ "$(tools_tmpdir)"/usr/share/doc/pdns-tools/
+
+ install -d -m 755 -o root -g root "$(tools_tmpdir)"/DEBIAN
+
+ #FIXME: shell loops hide errors
+ for prog in dnsbulktest dnsreplay dnsscan dnsscope dnstcpbench dnswasher nproxy nsec3dig ; do \
+ mv "$(tmpdir)"/usr/bin/$$prog "$(tools_tmpdir)"/usr/bin ; \
+ [ -e "$(tmpdir)"/usr/share/man/man8/"$$prog".8 ] && \
+ mv "$(tmpdir)"/usr/share/man/man8/"$$prog".8 "$(tools_tmpdir)"/usr/share/man/man8/ ; \
+ [ -e "$(tmpdir)"/usr/share/man/man1/"$$prog".1 ] && \
+ mv "$(tmpdir)"/usr/share/man/man1/"$$prog".1 "$(tools_tmpdir)"/usr/share/man/man1/ ; \
+ strip --remove-section=.comment --remove-section=.note \
+ --strip-unneeded \
+ "$(tools_tmpdir)"/usr/bin/"$$prog" ; \
+ done
+
+
+
binary-main: stamp-build binary-main-prepare
dpkg-shlibdeps -Tdebian-pdns/substvars "$(tmpdir)"/usr/bin/zone2sql \
"$(tmpdir)"/usr/sbin/pdns_server \
@@ -122,8 +157,9 @@
binary-static: stamp-build-static binary-main-prepare
dpkg-gencontrol -fdebian-pdns/files -cdebian-pdns/control -ldebian-pdns/changelog -isp -ppdns-static -P"$(tmpdir)"
+ dpkg-gencontrol -fdebian-pdns/files -cdebian-pdns/control -ldebian-pdns/changelog -isp -ppdns-tools -P"$(tools_tmpdir)"
dpkg --build "$(tmpdir)" ..
-
+ dpkg --build "$(tools_tmpdir)" ..
binary-backend: stamp-build
rm -rf "$(tmpdir)"
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/modules/Makefile.in
^
|
@@ -194,6 +194,7 @@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
RANLIB = @RANLIB@
+REMOTEBACKEND_HTTP = @REMOTEBACKEND_HTTP@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/modules/db2backend/Makefile.in
^
|
@@ -227,6 +227,7 @@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
RANLIB = @RANLIB@
+REMOTEBACKEND_HTTP = @REMOTEBACKEND_HTTP@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/modules/geobackend/Makefile.in
^
|
@@ -227,6 +227,7 @@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
RANLIB = @RANLIB@
+REMOTEBACKEND_HTTP = @REMOTEBACKEND_HTTP@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/modules/gmysqlbackend/Makefile.in
^
|
@@ -227,6 +227,7 @@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
RANLIB = @RANLIB@
+REMOTEBACKEND_HTTP = @REMOTEBACKEND_HTTP@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/modules/godbcbackend/Makefile.in
^
|
@@ -227,6 +227,7 @@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
RANLIB = @RANLIB@
+REMOTEBACKEND_HTTP = @REMOTEBACKEND_HTTP@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/modules/goraclebackend/Makefile.in
^
|
@@ -227,6 +227,7 @@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
RANLIB = @RANLIB@
+REMOTEBACKEND_HTTP = @REMOTEBACKEND_HTTP@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/modules/gpgsqlbackend/Makefile.in
^
|
@@ -227,6 +227,7 @@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
RANLIB = @RANLIB@
+REMOTEBACKEND_HTTP = @REMOTEBACKEND_HTTP@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/modules/gsqlite3backend/Makefile.in
^
|
@@ -227,6 +227,7 @@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
RANLIB = @RANLIB@
+REMOTEBACKEND_HTTP = @REMOTEBACKEND_HTTP@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/modules/ldapbackend/Makefile.in
^
|
@@ -227,6 +227,7 @@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
RANLIB = @RANLIB@
+REMOTEBACKEND_HTTP = @REMOTEBACKEND_HTTP@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/modules/ldapbackend/ldapbackend.cc
^
|
@@ -153,8 +153,8 @@
inline bool LdapBackend::list_strict( const string& target, int domain_id )
{
- if( target.size() > 13 && target.substr( target.size() - 13, 13 ) == ".in-addr.arpa" ||
- target.size() > 9 && target.substr( target.size() - 9, 9 ) == ".ip6.arpa" )
+ if( (target.size() > 13 && target.substr( target.size() - 13, 13 ) == ".in-addr.arpa") ||
+ (target.size() > 9 && target.substr( target.size() - 9, 9 ) == ".ip6.arpa") )
{
L << Logger::Warning << m_myname << " Request for reverse zone AXFR, but this is not supported in strict mode" << endl;
return false; // AXFR isn't supported in strict mode. Use simple mode and additional PTR records
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/modules/luabackend/Makefile.in
^
|
@@ -229,6 +229,7 @@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
RANLIB = @RANLIB@
+REMOTEBACKEND_HTTP = @REMOTEBACKEND_HTTP@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/modules/mydnsbackend/Makefile.in
^
|
@@ -227,6 +227,7 @@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
RANLIB = @RANLIB@
+REMOTEBACKEND_HTTP = @REMOTEBACKEND_HTTP@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/modules/mydnsbackend/mydnsbackend.cc
^
|
@@ -103,7 +103,7 @@
d_minimum = atol(rrow[1].c_str());
while (d_db->getRow(rrow)) {
- L<<Logger::Warning<<backendName<<" Found more than one matching origin for zone ID: "+zoneId<<endl;
+ L<<Logger::Warning<<backendName<<" Found more than one matching origin for zone ID: "<<zoneId<<endl;
};
query = "select type, data, aux, ttl, zone, name from "+d_rrtable+" where zone = ";
@@ -203,7 +203,6 @@
this->Query(query);
if(d_db->getRow(rrow)) {
- zoneId = atol(rrow[0].c_str());
zoneIdStr=rrow[0];
d_origin = rrow[1];
if (d_origin[d_origin.length()-1] == '.')
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/modules/opendbxbackend/Makefile.in
^
|
@@ -227,6 +227,7 @@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
RANLIB = @RANLIB@
+REMOTEBACKEND_HTTP = @REMOTEBACKEND_HTTP@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/modules/oraclebackend/Makefile.in
^
|
@@ -228,6 +228,7 @@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
RANLIB = @RANLIB@
+REMOTEBACKEND_HTTP = @REMOTEBACKEND_HTTP@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/modules/oraclebackend/oraclebackend.cc
^
|
@@ -1330,14 +1330,14 @@
{
if(!d_dnssecQueries)
return -1;
- DomainInfo di;
- if (getDomainInfo(name, di) == false) return false;
sword rc;
OCIStmt *stmt;
stmt = prepare_query(pooledSvcCtx, getTSIGKeyQuerySQL, getTSIGKeyQueryKey);
+ string_to_cbuf(mQueryName, name, sizeof(mQueryName));
bind_str(stmt, ":name", mQueryName, sizeof(mQueryName));
+
define_output_str(stmt, 1, &mResultTypeInd, mResultType, sizeof(mResultType));
define_output_str(stmt, 2, &mResultContentInd, mResultContent, sizeof(mResultContent));
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/modules/pipebackend/Makefile.in
^
|
@@ -227,6 +227,7 @@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
RANLIB = @RANLIB@
+REMOTEBACKEND_HTTP = @REMOTEBACKEND_HTTP@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/modules/randombackend/Makefile.am
^
|
@@ -1,4 +1,7 @@
AM_CPPFLAGS=@THREADFLAGS@
+
+EXTRA_DIST=OBJECTFILES OBJECTLIBS
+
lib_LTLIBRARIES = librandombackend.la
librandombackend_la_SOURCES=randombackend.cc
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/modules/randombackend/Makefile.in
^
|
@@ -211,6 +211,7 @@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
RANLIB = @RANLIB@
+REMOTEBACKEND_HTTP = @REMOTEBACKEND_HTTP@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
@@ -282,6 +283,7 @@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
AM_CPPFLAGS = @THREADFLAGS@
+EXTRA_DIST = OBJECTFILES OBJECTLIBS
lib_LTLIBRARIES = librandombackend.la
librandombackend_la_SOURCES = randombackend.cc
librandombackend_la_LDFLAGS = -module -avoid-version
|
[-]
[+]
|
Added |
pdns-3.3.tar.gz/modules/randombackend/OBJECTFILES
^
|
@@ -0,0 +1 @@
+randombackend.o
|
|
Changed |
pdns-3.3.tar.gz/modules/randombackend/OBJECTLIBS
^
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/modules/remotebackend/Makefile.am
^
|
@@ -5,9 +5,55 @@
#endif
EXTRA_DIST=OBJECTFILES OBJECTLIBS
-lib_LTLIBRARIES = libremotebackend.la
+EXTRA_PROGRAMS=test_remotebackend_pipe test_remotebackend_http test_remotebackend_post test_remotebackend_json
+EXTRA_LTLIBRARIES=libtestremotebackend.la
+
+lib_LTLIBRARIES = libremotebackend.la
libremotebackend_la_SOURCES=remotebackend.hh remotebackend.cc unixconnector.cc httpconnector.cc pipeconnector.cc
libremotebackend_la_LDFLAGS=-module -avoid-version
libremotebackend_la_LIBS=$(LIBCURL_LIBS)
+
+TESTS_ENVIRONMENT = env BOOST_TEST_LOG_LEVEL=message REMOTEBACKEND_HTTP=$(REMOTEBACKEND_HTTP) ./testrunner.sh
+TESTS=test_remotebackend_pipe test_remotebackend_http test_remotebackend_post test_remotebackend_json
+
+BUILT_SOURCES=../../pdns/dnslabeltext.cc
+
+../../pdns/dnslabeltext.cc: ../../pdns/dnslabeltext.rl
+ make -C ../../pdns dnslabeltext.cc
+
+libtestremotebackend_la_SOURCES=../../pdns/dnsbackend.hh ../../pdns/dnsbackend.cc ../../pdns/ueberbackend.hh ../../pdns/ueberbackend.cc \
+ ../../pdns/nameserver.cc ../../pdns/misc.cc ../../pdns/arguments.hh \
+ ../../pdns/unix_utility.cc ../../pdns/logger.cc ../../pdns/statbag.cc ../../pdns/arguments.hh ../../pdns/arguments.cc ../../pdns/qtype.cc ../../pdns/dnspacket.cc \
+ ../../pdns/dnswriter.cc ../../pdns/base64.cc ../../pdns/base32.cc ../../pdns/dnsrecords.cc ../../pdns/dnslabeltext.cc ../../pdns/dnsparser.cc \
+ ../../pdns/rcpgenerator.cc ../../pdns/ednssubnet.cc ../../pdns/nsecrecords.cc ../../pdns/sillyrecords.cc ../../pdns/dnssecinfra.cc \
+ ../../pdns/aes/dns_random.cc ../../pdns/packetcache.hh ../../pdns/packetcache.cc \
+ ../../pdns/aes/aescpp.h ../../pdns/dns.hh ../../pdns/dns.cc ../../pdns/json.hh ../../pdns/json.cc \
+ ../../pdns/aes/aescrypt.c ../../pdns/aes/aes.h ../../pdns/aes/aeskey.c ../../pdns/aes/aes_modes.c ../../pdns/aes/aesopt.h \
+ ../../pdns/aes/aestab.c ../../pdns/aes/aestab.h ../../pdns/aes/brg_endian.h ../../pdns/aes/brg_types.h ../pipebackend/coprocess.cc \
+ remotebackend.hh remotebackend.cc unixconnector.cc httpconnector.cc pipeconnector.cc
+
+libtestremotebackend_la_CFLAGS=$(BOOST_CPPFLAGS) @THREADFLAGS@ $(LIBCURL_CFLAGS) -g -O0 -I../../pdns
+libtestremotebackend_la_CXXFLAGS=$(BOOST_CPPFLAGS) @THREADFLAGS@ $(LIBCURL_CFLAGS) -g -O0 -I../../pdns
+
+test_remotebackend_pipe_SOURCES=test-remotebackend.cc test-remotebackend-pipe.cc
+test_remotebackend_http_SOURCES=test-remotebackend.cc test-remotebackend-http.cc ../../config.h
+test_remotebackend_post_SOURCES=test-remotebackend.cc test-remotebackend-post.cc ../../config.h
+test_remotebackend_json_SOURCES=test-remotebackend.cc test-remotebackend-json.cc ../../config.h
+
+test_remotebackend_pipe_CFLAGS=$(BOOST_CPPFLAGS) @THREADFLAGS@ $(LIBCURL_CFLAGS) -g -O0 -I../../pdns
+test_remotebackend_pipe_CXXFLAGS=$(BOOST_CPPFLAGS) @THREADFLAGS@ $(LIBCURL_CFLAGS) -g -O0 -I../../pdns
+test_remotebackend_pipe_LDADD=libtestremotebackend.la @DYNLINKFLAGS@ @THREADFLAGS@ $(BOOST_UNIT_TEST_FRAMEWORK_LDFLAGS) ../../pdns/ext/polarssl-1.1.2/library/libpolarssl.a $(BOOST_UNIT_TEST_FRAMEWORK_LIBS) $(BOOST_SERIALIZATION_LIBS) $(BOOST_PROGRAM_OPTIONS_LIBS) @LIBDL@ $(LIBCURL_LIBS)
+
+test_remotebackend_http_CFLAGS=$(BOOST_CPPFLAGS) @THREADFLAGS@ $(LIBCURL_CFLAGS) -g -O0 -I../../pdns
+test_remotebackend_http_CXXFLAGS=$(BOOST_CPPFLAGS) @THREADFLAGS@ $(LIBCURL_CFLAGS) -g -O0 -I../../pdns
+test_remotebackend_http_LDADD=libtestremotebackend.la @DYNLINKFLAGS@ @THREADFLAGS@ $(BOOST_UNIT_TEST_FRAMEWORK_LDFLAGS) ../../pdns/ext/polarssl-1.1.2/library/libpolarssl.a $(BOOST_UNIT_TEST_FRAMEWORK_LIBS) $(BOOST_SERIALIZATION_LIBS) $(BOOST_PROGRAM_OPTIONS_LIBS) @LIBDL@ $(LIBCURL_LIBS)
+
+test_remotebackend_post_CFLAGS=$(BOOST_CPPFLAGS) @THREADFLAGS@ $(LIBCURL_CFLAGS) -g -O0 -I../../pdns
+test_remotebackend_post_CXXFLAGS=$(BOOST_CPPFLAGS) @THREADFLAGS@ $(LIBCURL_CFLAGS) -g -O0 -I../../pdns
+test_remotebackend_post_LDADD=libtestremotebackend.la @DYNLINKFLAGS@ @THREADFLAGS@ $(BOOST_UNIT_TEST_FRAMEWORK_LDFLAGS) ../../pdns/ext/polarssl-1.1.2/library/libpolarssl.a $(BOOST_UNIT_TEST_FRAMEWORK_LIBS) $(BOOST_SERIALIZATION_LIBS) $(BOOST_PROGRAM_OPTIONS_LIBS) @LIBDL@ $(LIBCURL_LIBS)
+
+test_remotebackend_json_CFLAGS=$(BOOST_CPPFLAGS) @THREADFLAGS@ $(LIBCURL_CFLAGS) -g -O0 -I../../pdns
+test_remotebackend_json_CXXFLAGS=$(BOOST_CPPFLAGS) @THREADFLAGS@ $(LIBCURL_CFLAGS) -g -O0 -I../../pdns
+test_remotebackend_json_LDADD=libtestremotebackend.la @DYNLINKFLAGS@ @THREADFLAGS@ $(BOOST_UNIT_TEST_FRAMEWORK_LDFLAGS) ../../pdns/ext/polarssl-1.1.2/library/libpolarssl.a $(BOOST_UNIT_TEST_FRAMEWORK_LIBS) $(BOOST_SERIALIZATION_LIBS) $(BOOST_PROGRAM_OPTIONS_LIBS) @LIBDL@ $(LIBCURL_LIBS)
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/modules/remotebackend/Makefile.in
^
|
@@ -34,6 +34,14 @@
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
+EXTRA_PROGRAMS = test_remotebackend_pipe$(EXEEXT) \
+ test_remotebackend_http$(EXEEXT) \
+ test_remotebackend_post$(EXEEXT) \
+ test_remotebackend_json$(EXEEXT)
+TESTS = test_remotebackend_pipe$(EXEEXT) \
+ test_remotebackend_http$(EXEEXT) \
+ test_remotebackend_post$(EXEEXT) \
+ test_remotebackend_json$(EXEEXT)
subdir = modules/remotebackend
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in TODO
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -81,29 +89,108 @@
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \
$(AM_CXXFLAGS) $(CXXFLAGS) $(libremotebackend_la_LDFLAGS) \
$(LDFLAGS) -o $@
+libtestremotebackend_la_LIBADD =
+am_libtestremotebackend_la_OBJECTS = \
+ libtestremotebackend_la-dnsbackend.lo \
+ libtestremotebackend_la-ueberbackend.lo \
+ libtestremotebackend_la-nameserver.lo \
+ libtestremotebackend_la-misc.lo \
+ libtestremotebackend_la-unix_utility.lo \
+ libtestremotebackend_la-logger.lo \
+ libtestremotebackend_la-statbag.lo \
+ libtestremotebackend_la-arguments.lo \
+ libtestremotebackend_la-qtype.lo \
+ libtestremotebackend_la-dnspacket.lo \
+ libtestremotebackend_la-dnswriter.lo \
+ libtestremotebackend_la-base64.lo \
+ libtestremotebackend_la-base32.lo \
+ libtestremotebackend_la-dnsrecords.lo \
+ libtestremotebackend_la-dnslabeltext.lo \
+ libtestremotebackend_la-dnsparser.lo \
+ libtestremotebackend_la-rcpgenerator.lo \
+ libtestremotebackend_la-ednssubnet.lo \
+ libtestremotebackend_la-nsecrecords.lo \
+ libtestremotebackend_la-sillyrecords.lo \
+ libtestremotebackend_la-dnssecinfra.lo \
+ libtestremotebackend_la-dns_random.lo \
+ libtestremotebackend_la-packetcache.lo \
+ libtestremotebackend_la-dns.lo libtestremotebackend_la-json.lo \
+ libtestremotebackend_la-aescrypt.lo \
+ libtestremotebackend_la-aeskey.lo \
+ libtestremotebackend_la-aes_modes.lo \
+ libtestremotebackend_la-aestab.lo \
+ libtestremotebackend_la-coprocess.lo \
+ libtestremotebackend_la-remotebackend.lo \
+ libtestremotebackend_la-unixconnector.lo \
+ libtestremotebackend_la-httpconnector.lo \
+ libtestremotebackend_la-pipeconnector.lo
+libtestremotebackend_la_OBJECTS = \
+ $(am_libtestremotebackend_la_OBJECTS)
+libtestremotebackend_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \
+ $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+am_test_remotebackend_http_OBJECTS = \
+ test_remotebackend_http-test-remotebackend.$(OBJEXT) \
+ test_remotebackend_http-test-remotebackend-http.$(OBJEXT)
+test_remotebackend_http_OBJECTS = \
+ $(am_test_remotebackend_http_OBJECTS)
+am__DEPENDENCIES_1 =
+test_remotebackend_http_DEPENDENCIES = libtestremotebackend.la \
+ $(am__DEPENDENCIES_1) \
+ ../../pdns/ext/polarssl-1.1.2/library/libpolarssl.a \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+test_remotebackend_http_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \
+ $(test_remotebackend_http_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+am_test_remotebackend_json_OBJECTS = \
+ test_remotebackend_json-test-remotebackend.$(OBJEXT) \
+ test_remotebackend_json-test-remotebackend-json.$(OBJEXT)
+test_remotebackend_json_OBJECTS = \
+ $(am_test_remotebackend_json_OBJECTS)
+test_remotebackend_json_DEPENDENCIES = libtestremotebackend.la \
+ $(am__DEPENDENCIES_1) \
+ ../../pdns/ext/polarssl-1.1.2/library/libpolarssl.a \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+test_remotebackend_json_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \
+ $(test_remotebackend_json_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+am_test_remotebackend_pipe_OBJECTS = \
+ test_remotebackend_pipe-test-remotebackend.$(OBJEXT) \
+ test_remotebackend_pipe-test-remotebackend-pipe.$(OBJEXT)
+test_remotebackend_pipe_OBJECTS = \
+ $(am_test_remotebackend_pipe_OBJECTS)
+test_remotebackend_pipe_DEPENDENCIES = libtestremotebackend.la \
+ $(am__DEPENDENCIES_1) \
+ ../../pdns/ext/polarssl-1.1.2/library/libpolarssl.a \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+test_remotebackend_pipe_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \
+ $(test_remotebackend_pipe_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+am_test_remotebackend_post_OBJECTS = \
+ test_remotebackend_post-test-remotebackend.$(OBJEXT) \
+ test_remotebackend_post-test-remotebackend-post.$(OBJEXT)
+test_remotebackend_post_OBJECTS = \
+ $(am_test_remotebackend_post_OBJECTS)
+test_remotebackend_post_DEPENDENCIES = libtestremotebackend.la \
+ $(am__DEPENDENCIES_1) \
+ ../../pdns/ext/polarssl-1.1.2/library/libpolarssl.a \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+test_remotebackend_post_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \
+ $(test_remotebackend_post_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__depfiles_maybe = depfiles
am__mv = mv -f
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \
- $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
- $(AM_CXXFLAGS) $(CXXFLAGS)
-AM_V_CXX = $(am__v_CXX_$(V))
-am__v_CXX_ = $(am__v_CXX_$(AM_DEFAULT_VERBOSITY))
-am__v_CXX_0 = @echo " CXX " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
-am__v_at_0 = @
-CXXLD = $(CXX)
-CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
- $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CXXLD = $(am__v_CXXLD_$(V))
-am__v_CXXLD_ = $(am__v_CXXLD_$(AM_DEFAULT_VERBOSITY))
-am__v_CXXLD_0 = @echo " CXXLD " $@;
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
@@ -113,6 +200,9 @@
AM_V_CC = $(am__v_CC_$(V))
am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
am__v_CC_0 = @echo " CC " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
CCLD = $(CC)
LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
@@ -120,13 +210,41 @@
AM_V_CCLD = $(am__v_CCLD_$(V))
am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
am__v_CCLD_0 = @echo " CCLD " $@;
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CXXFLAGS) $(CXXFLAGS)
+AM_V_CXX = $(am__v_CXX_$(V))
+am__v_CXX_ = $(am__v_CXX_$(AM_DEFAULT_VERBOSITY))
+am__v_CXX_0 = @echo " CXX " $@;
+CXXLD = $(CXX)
+CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
+ $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CXXLD = $(am__v_CXXLD_$(V))
+am__v_CXXLD_ = $(am__v_CXXLD_$(AM_DEFAULT_VERBOSITY))
+am__v_CXXLD_0 = @echo " CXXLD " $@;
AM_V_GEN = $(am__v_GEN_$(V))
am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
am__v_GEN_0 = @echo " GEN " $@;
-SOURCES = $(libremotebackend_la_SOURCES)
-DIST_SOURCES = $(libremotebackend_la_SOURCES)
+SOURCES = $(libremotebackend_la_SOURCES) \
+ $(libtestremotebackend_la_SOURCES) \
+ $(test_remotebackend_http_SOURCES) \
+ $(test_remotebackend_json_SOURCES) \
+ $(test_remotebackend_pipe_SOURCES) \
+ $(test_remotebackend_post_SOURCES)
+DIST_SOURCES = $(libremotebackend_la_SOURCES) \
+ $(libtestremotebackend_la_SOURCES) \
+ $(test_remotebackend_http_SOURCES) \
+ $(test_remotebackend_json_SOURCES) \
+ $(test_remotebackend_pipe_SOURCES) \
+ $(test_remotebackend_post_SOURCES)
ETAGS = etags
CTAGS = ctags
+am__tty_colors = \
+red=; grn=; lgn=; blu=; std=
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
@@ -228,6 +346,7 @@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
RANLIB = @RANLIB@
+REMOTEBACKEND_HTTP = @REMOTEBACKEND_HTTP@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
@@ -304,14 +423,47 @@
# install .lib/libremotebackend.so.0.0.0 @libdir@
#endif
EXTRA_DIST = OBJECTFILES OBJECTLIBS
-lib_LTLIBRARIES = libremotebackend.la
+EXTRA_LTLIBRARIES = libtestremotebackend.la
+lib_LTLIBRARIES = libremotebackend.la
libremotebackend_la_SOURCES = remotebackend.hh remotebackend.cc unixconnector.cc httpconnector.cc pipeconnector.cc
libremotebackend_la_LDFLAGS = -module -avoid-version
libremotebackend_la_LIBS = $(LIBCURL_LIBS)
-all: all-am
+TESTS_ENVIRONMENT = env BOOST_TEST_LOG_LEVEL=message REMOTEBACKEND_HTTP=$(REMOTEBACKEND_HTTP) ./testrunner.sh
+BUILT_SOURCES = ../../pdns/dnslabeltext.cc
+libtestremotebackend_la_SOURCES = ../../pdns/dnsbackend.hh ../../pdns/dnsbackend.cc ../../pdns/ueberbackend.hh ../../pdns/ueberbackend.cc \
+ ../../pdns/nameserver.cc ../../pdns/misc.cc ../../pdns/arguments.hh \
+ ../../pdns/unix_utility.cc ../../pdns/logger.cc ../../pdns/statbag.cc ../../pdns/arguments.hh ../../pdns/arguments.cc ../../pdns/qtype.cc ../../pdns/dnspacket.cc \
+ ../../pdns/dnswriter.cc ../../pdns/base64.cc ../../pdns/base32.cc ../../pdns/dnsrecords.cc ../../pdns/dnslabeltext.cc ../../pdns/dnsparser.cc \
+ ../../pdns/rcpgenerator.cc ../../pdns/ednssubnet.cc ../../pdns/nsecrecords.cc ../../pdns/sillyrecords.cc ../../pdns/dnssecinfra.cc \
+ ../../pdns/aes/dns_random.cc ../../pdns/packetcache.hh ../../pdns/packetcache.cc \
+ ../../pdns/aes/aescpp.h ../../pdns/dns.hh ../../pdns/dns.cc ../../pdns/json.hh ../../pdns/json.cc \
+ ../../pdns/aes/aescrypt.c ../../pdns/aes/aes.h ../../pdns/aes/aeskey.c ../../pdns/aes/aes_modes.c ../../pdns/aes/aesopt.h \
+ ../../pdns/aes/aestab.c ../../pdns/aes/aestab.h ../../pdns/aes/brg_endian.h ../../pdns/aes/brg_types.h ../pipebackend/coprocess.cc \
+ remotebackend.hh remotebackend.cc unixconnector.cc httpconnector.cc pipeconnector.cc
+
+libtestremotebackend_la_CFLAGS = $(BOOST_CPPFLAGS) @THREADFLAGS@ $(LIBCURL_CFLAGS) -g -O0 -I../../pdns
+libtestremotebackend_la_CXXFLAGS = $(BOOST_CPPFLAGS) @THREADFLAGS@ $(LIBCURL_CFLAGS) -g -O0 -I../../pdns
+test_remotebackend_pipe_SOURCES = test-remotebackend.cc test-remotebackend-pipe.cc
+test_remotebackend_http_SOURCES = test-remotebackend.cc test-remotebackend-http.cc ../../config.h
+test_remotebackend_post_SOURCES = test-remotebackend.cc test-remotebackend-post.cc ../../config.h
+test_remotebackend_json_SOURCES = test-remotebackend.cc test-remotebackend-json.cc ../../config.h
+test_remotebackend_pipe_CFLAGS = $(BOOST_CPPFLAGS) @THREADFLAGS@ $(LIBCURL_CFLAGS) -g -O0 -I../../pdns
+test_remotebackend_pipe_CXXFLAGS = $(BOOST_CPPFLAGS) @THREADFLAGS@ $(LIBCURL_CFLAGS) -g -O0 -I../../pdns
+test_remotebackend_pipe_LDADD = libtestremotebackend.la @DYNLINKFLAGS@ @THREADFLAGS@ $(BOOST_UNIT_TEST_FRAMEWORK_LDFLAGS) ../../pdns/ext/polarssl-1.1.2/library/libpolarssl.a $(BOOST_UNIT_TEST_FRAMEWORK_LIBS) $(BOOST_SERIALIZATION_LIBS) $(BOOST_PROGRAM_OPTIONS_LIBS) @LIBDL@ $(LIBCURL_LIBS)
+test_remotebackend_http_CFLAGS = $(BOOST_CPPFLAGS) @THREADFLAGS@ $(LIBCURL_CFLAGS) -g -O0 -I../../pdns
+test_remotebackend_http_CXXFLAGS = $(BOOST_CPPFLAGS) @THREADFLAGS@ $(LIBCURL_CFLAGS) -g -O0 -I../../pdns
+test_remotebackend_http_LDADD = libtestremotebackend.la @DYNLINKFLAGS@ @THREADFLAGS@ $(BOOST_UNIT_TEST_FRAMEWORK_LDFLAGS) ../../pdns/ext/polarssl-1.1.2/library/libpolarssl.a $(BOOST_UNIT_TEST_FRAMEWORK_LIBS) $(BOOST_SERIALIZATION_LIBS) $(BOOST_PROGRAM_OPTIONS_LIBS) @LIBDL@ $(LIBCURL_LIBS)
+test_remotebackend_post_CFLAGS = $(BOOST_CPPFLAGS) @THREADFLAGS@ $(LIBCURL_CFLAGS) -g -O0 -I../../pdns
+test_remotebackend_post_CXXFLAGS = $(BOOST_CPPFLAGS) @THREADFLAGS@ $(LIBCURL_CFLAGS) -g -O0 -I../../pdns
+test_remotebackend_post_LDADD = libtestremotebackend.la @DYNLINKFLAGS@ @THREADFLAGS@ $(BOOST_UNIT_TEST_FRAMEWORK_LDFLAGS) ../../pdns/ext/polarssl-1.1.2/library/libpolarssl.a $(BOOST_UNIT_TEST_FRAMEWORK_LIBS) $(BOOST_SERIALIZATION_LIBS) $(BOOST_PROGRAM_OPTIONS_LIBS) @LIBDL@ $(LIBCURL_LIBS)
+test_remotebackend_json_CFLAGS = $(BOOST_CPPFLAGS) @THREADFLAGS@ $(LIBCURL_CFLAGS) -g -O0 -I../../pdns
+test_remotebackend_json_CXXFLAGS = $(BOOST_CPPFLAGS) @THREADFLAGS@ $(LIBCURL_CFLAGS) -g -O0 -I../../pdns
+test_remotebackend_json_LDADD = libtestremotebackend.la @DYNLINKFLAGS@ @THREADFLAGS@ $(BOOST_UNIT_TEST_FRAMEWORK_LDFLAGS) ../../pdns/ext/polarssl-1.1.2/library/libpolarssl.a $(BOOST_UNIT_TEST_FRAMEWORK_LIBS) $(BOOST_SERIALIZATION_LIBS) $(BOOST_PROGRAM_OPTIONS_LIBS) @LIBDL@ $(LIBCURL_LIBS)
+all: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) all-am
.SUFFIXES:
-.SUFFIXES: .cc .lo .o .obj
+.SUFFIXES: .c .cc .lo .o .obj
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
@@ -375,6 +527,20 @@
done
libremotebackend.la: $(libremotebackend_la_OBJECTS) $(libremotebackend_la_DEPENDENCIES)
$(AM_V_CXXLD)$(libremotebackend_la_LINK) -rpath $(libdir) $(libremotebackend_la_OBJECTS) $(libremotebackend_la_LIBADD) $(LIBS)
+libtestremotebackend.la: $(libtestremotebackend_la_OBJECTS) $(libtestremotebackend_la_DEPENDENCIES)
+ $(AM_V_CXXLD)$(libtestremotebackend_la_LINK) $(libtestremotebackend_la_OBJECTS) $(libtestremotebackend_la_LIBADD) $(LIBS)
+test_remotebackend_http$(EXEEXT): $(test_remotebackend_http_OBJECTS) $(test_remotebackend_http_DEPENDENCIES)
+ @rm -f test_remotebackend_http$(EXEEXT)
+ $(AM_V_CXXLD)$(test_remotebackend_http_LINK) $(test_remotebackend_http_OBJECTS) $(test_remotebackend_http_LDADD) $(LIBS)
+test_remotebackend_json$(EXEEXT): $(test_remotebackend_json_OBJECTS) $(test_remotebackend_json_DEPENDENCIES)
+ @rm -f test_remotebackend_json$(EXEEXT)
+ $(AM_V_CXXLD)$(test_remotebackend_json_LINK) $(test_remotebackend_json_OBJECTS) $(test_remotebackend_json_LDADD) $(LIBS)
+test_remotebackend_pipe$(EXEEXT): $(test_remotebackend_pipe_OBJECTS) $(test_remotebackend_pipe_DEPENDENCIES)
+ @rm -f test_remotebackend_pipe$(EXEEXT)
+ $(AM_V_CXXLD)$(test_remotebackend_pipe_LINK) $(test_remotebackend_pipe_OBJECTS) $(test_remotebackend_pipe_LDADD) $(LIBS)
+test_remotebackend_post$(EXEEXT): $(test_remotebackend_post_OBJECTS) $(test_remotebackend_post_DEPENDENCIES)
+ @rm -f test_remotebackend_post$(EXEEXT)
+ $(AM_V_CXXLD)$(test_remotebackend_post_LINK) $(test_remotebackend_post_OBJECTS) $(test_remotebackend_post_LDADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
@@ -383,10 +549,108 @@
-rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/httpconnector.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtestremotebackend_la-aes_modes.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtestremotebackend_la-aescrypt.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtestremotebackend_la-aeskey.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtestremotebackend_la-aestab.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtestremotebackend_la-arguments.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtestremotebackend_la-base32.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtestremotebackend_la-base64.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtestremotebackend_la-coprocess.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtestremotebackend_la-dns.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtestremotebackend_la-dns_random.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtestremotebackend_la-dnsbackend.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtestremotebackend_la-dnslabeltext.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtestremotebackend_la-dnspacket.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtestremotebackend_la-dnsparser.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtestremotebackend_la-dnsrecords.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtestremotebackend_la-dnssecinfra.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtestremotebackend_la-dnswriter.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtestremotebackend_la-ednssubnet.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtestremotebackend_la-httpconnector.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtestremotebackend_la-json.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtestremotebackend_la-logger.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtestremotebackend_la-misc.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtestremotebackend_la-nameserver.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtestremotebackend_la-nsecrecords.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtestremotebackend_la-packetcache.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtestremotebackend_la-pipeconnector.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtestremotebackend_la-qtype.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtestremotebackend_la-rcpgenerator.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtestremotebackend_la-remotebackend.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtestremotebackend_la-sillyrecords.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtestremotebackend_la-statbag.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtestremotebackend_la-ueberbackend.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtestremotebackend_la-unix_utility.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtestremotebackend_la-unixconnector.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pipeconnector.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/remotebackend.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_remotebackend_http-test-remotebackend-http.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_remotebackend_http-test-remotebackend.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_remotebackend_json-test-remotebackend-json.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_remotebackend_json-test-remotebackend.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_remotebackend_pipe-test-remotebackend-pipe.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_remotebackend_pipe-test-remotebackend.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_remotebackend_post-test-remotebackend-post.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_remotebackend_post-test-remotebackend.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unixconnector.Plo@am__quote@
+.c.o:
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
+
+libtestremotebackend_la-aescrypt.lo: ../../pdns/aes/aescrypt.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CFLAGS) $(CFLAGS) -MT libtestremotebackend_la-aescrypt.lo -MD -MP -MF $(DEPDIR)/libtestremotebackend_la-aescrypt.Tpo -c -o libtestremotebackend_la-aescrypt.lo `test -f '../../pdns/aes/aescrypt.c' || echo '$(srcdir)/'`../../pdns/aes/aescrypt.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtestremotebackend_la-aescrypt.Tpo $(DEPDIR)/libtestremotebackend_la-aescrypt.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../../pdns/aes/aescrypt.c' object='libtestremotebackend_la-aescrypt.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CFLAGS) $(CFLAGS) -c -o libtestremotebackend_la-aescrypt.lo `test -f '../../pdns/aes/aescrypt.c' || echo '$(srcdir)/'`../../pdns/aes/aescrypt.c
+
+libtestremotebackend_la-aeskey.lo: ../../pdns/aes/aeskey.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CFLAGS) $(CFLAGS) -MT libtestremotebackend_la-aeskey.lo -MD -MP -MF $(DEPDIR)/libtestremotebackend_la-aeskey.Tpo -c -o libtestremotebackend_la-aeskey.lo `test -f '../../pdns/aes/aeskey.c' || echo '$(srcdir)/'`../../pdns/aes/aeskey.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtestremotebackend_la-aeskey.Tpo $(DEPDIR)/libtestremotebackend_la-aeskey.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../../pdns/aes/aeskey.c' object='libtestremotebackend_la-aeskey.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CFLAGS) $(CFLAGS) -c -o libtestremotebackend_la-aeskey.lo `test -f '../../pdns/aes/aeskey.c' || echo '$(srcdir)/'`../../pdns/aes/aeskey.c
+
+libtestremotebackend_la-aes_modes.lo: ../../pdns/aes/aes_modes.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CFLAGS) $(CFLAGS) -MT libtestremotebackend_la-aes_modes.lo -MD -MP -MF $(DEPDIR)/libtestremotebackend_la-aes_modes.Tpo -c -o libtestremotebackend_la-aes_modes.lo `test -f '../../pdns/aes/aes_modes.c' || echo '$(srcdir)/'`../../pdns/aes/aes_modes.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtestremotebackend_la-aes_modes.Tpo $(DEPDIR)/libtestremotebackend_la-aes_modes.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../../pdns/aes/aes_modes.c' object='libtestremotebackend_la-aes_modes.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CFLAGS) $(CFLAGS) -c -o libtestremotebackend_la-aes_modes.lo `test -f '../../pdns/aes/aes_modes.c' || echo '$(srcdir)/'`../../pdns/aes/aes_modes.c
+
+libtestremotebackend_la-aestab.lo: ../../pdns/aes/aestab.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CFLAGS) $(CFLAGS) -MT libtestremotebackend_la-aestab.lo -MD -MP -MF $(DEPDIR)/libtestremotebackend_la-aestab.Tpo -c -o libtestremotebackend_la-aestab.lo `test -f '../../pdns/aes/aestab.c' || echo '$(srcdir)/'`../../pdns/aes/aestab.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtestremotebackend_la-aestab.Tpo $(DEPDIR)/libtestremotebackend_la-aestab.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../../pdns/aes/aestab.c' object='libtestremotebackend_la-aestab.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CFLAGS) $(CFLAGS) -c -o libtestremotebackend_la-aestab.lo `test -f '../../pdns/aes/aestab.c' || echo '$(srcdir)/'`../../pdns/aes/aestab.c
+
.cc.o:
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@@ -411,6 +675,374 @@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
+libtestremotebackend_la-dnsbackend.lo: ../../pdns/dnsbackend.cc
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -MT libtestremotebackend_la-dnsbackend.lo -MD -MP -MF $(DEPDIR)/libtestremotebackend_la-dnsbackend.Tpo -c -o libtestremotebackend_la-dnsbackend.lo `test -f '../../pdns/dnsbackend.cc' || echo '$(srcdir)/'`../../pdns/dnsbackend.cc
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtestremotebackend_la-dnsbackend.Tpo $(DEPDIR)/libtestremotebackend_la-dnsbackend.Plo
+@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../../pdns/dnsbackend.cc' object='libtestremotebackend_la-dnsbackend.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -c -o libtestremotebackend_la-dnsbackend.lo `test -f '../../pdns/dnsbackend.cc' || echo '$(srcdir)/'`../../pdns/dnsbackend.cc
+
+libtestremotebackend_la-ueberbackend.lo: ../../pdns/ueberbackend.cc
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -MT libtestremotebackend_la-ueberbackend.lo -MD -MP -MF $(DEPDIR)/libtestremotebackend_la-ueberbackend.Tpo -c -o libtestremotebackend_la-ueberbackend.lo `test -f '../../pdns/ueberbackend.cc' || echo '$(srcdir)/'`../../pdns/ueberbackend.cc
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtestremotebackend_la-ueberbackend.Tpo $(DEPDIR)/libtestremotebackend_la-ueberbackend.Plo
+@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../../pdns/ueberbackend.cc' object='libtestremotebackend_la-ueberbackend.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -c -o libtestremotebackend_la-ueberbackend.lo `test -f '../../pdns/ueberbackend.cc' || echo '$(srcdir)/'`../../pdns/ueberbackend.cc
+
+libtestremotebackend_la-nameserver.lo: ../../pdns/nameserver.cc
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -MT libtestremotebackend_la-nameserver.lo -MD -MP -MF $(DEPDIR)/libtestremotebackend_la-nameserver.Tpo -c -o libtestremotebackend_la-nameserver.lo `test -f '../../pdns/nameserver.cc' || echo '$(srcdir)/'`../../pdns/nameserver.cc
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtestremotebackend_la-nameserver.Tpo $(DEPDIR)/libtestremotebackend_la-nameserver.Plo
+@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../../pdns/nameserver.cc' object='libtestremotebackend_la-nameserver.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -c -o libtestremotebackend_la-nameserver.lo `test -f '../../pdns/nameserver.cc' || echo '$(srcdir)/'`../../pdns/nameserver.cc
+
+libtestremotebackend_la-misc.lo: ../../pdns/misc.cc
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -MT libtestremotebackend_la-misc.lo -MD -MP -MF $(DEPDIR)/libtestremotebackend_la-misc.Tpo -c -o libtestremotebackend_la-misc.lo `test -f '../../pdns/misc.cc' || echo '$(srcdir)/'`../../pdns/misc.cc
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtestremotebackend_la-misc.Tpo $(DEPDIR)/libtestremotebackend_la-misc.Plo
+@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../../pdns/misc.cc' object='libtestremotebackend_la-misc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -c -o libtestremotebackend_la-misc.lo `test -f '../../pdns/misc.cc' || echo '$(srcdir)/'`../../pdns/misc.cc
+
+libtestremotebackend_la-unix_utility.lo: ../../pdns/unix_utility.cc
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -MT libtestremotebackend_la-unix_utility.lo -MD -MP -MF $(DEPDIR)/libtestremotebackend_la-unix_utility.Tpo -c -o libtestremotebackend_la-unix_utility.lo `test -f '../../pdns/unix_utility.cc' || echo '$(srcdir)/'`../../pdns/unix_utility.cc
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtestremotebackend_la-unix_utility.Tpo $(DEPDIR)/libtestremotebackend_la-unix_utility.Plo
+@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../../pdns/unix_utility.cc' object='libtestremotebackend_la-unix_utility.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -c -o libtestremotebackend_la-unix_utility.lo `test -f '../../pdns/unix_utility.cc' || echo '$(srcdir)/'`../../pdns/unix_utility.cc
+
+libtestremotebackend_la-logger.lo: ../../pdns/logger.cc
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -MT libtestremotebackend_la-logger.lo -MD -MP -MF $(DEPDIR)/libtestremotebackend_la-logger.Tpo -c -o libtestremotebackend_la-logger.lo `test -f '../../pdns/logger.cc' || echo '$(srcdir)/'`../../pdns/logger.cc
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtestremotebackend_la-logger.Tpo $(DEPDIR)/libtestremotebackend_la-logger.Plo
+@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../../pdns/logger.cc' object='libtestremotebackend_la-logger.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -c -o libtestremotebackend_la-logger.lo `test -f '../../pdns/logger.cc' || echo '$(srcdir)/'`../../pdns/logger.cc
+
+libtestremotebackend_la-statbag.lo: ../../pdns/statbag.cc
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -MT libtestremotebackend_la-statbag.lo -MD -MP -MF $(DEPDIR)/libtestremotebackend_la-statbag.Tpo -c -o libtestremotebackend_la-statbag.lo `test -f '../../pdns/statbag.cc' || echo '$(srcdir)/'`../../pdns/statbag.cc
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtestremotebackend_la-statbag.Tpo $(DEPDIR)/libtestremotebackend_la-statbag.Plo
+@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../../pdns/statbag.cc' object='libtestremotebackend_la-statbag.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -c -o libtestremotebackend_la-statbag.lo `test -f '../../pdns/statbag.cc' || echo '$(srcdir)/'`../../pdns/statbag.cc
+
+libtestremotebackend_la-arguments.lo: ../../pdns/arguments.cc
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -MT libtestremotebackend_la-arguments.lo -MD -MP -MF $(DEPDIR)/libtestremotebackend_la-arguments.Tpo -c -o libtestremotebackend_la-arguments.lo `test -f '../../pdns/arguments.cc' || echo '$(srcdir)/'`../../pdns/arguments.cc
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtestremotebackend_la-arguments.Tpo $(DEPDIR)/libtestremotebackend_la-arguments.Plo
+@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../../pdns/arguments.cc' object='libtestremotebackend_la-arguments.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -c -o libtestremotebackend_la-arguments.lo `test -f '../../pdns/arguments.cc' || echo '$(srcdir)/'`../../pdns/arguments.cc
+
+libtestremotebackend_la-qtype.lo: ../../pdns/qtype.cc
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -MT libtestremotebackend_la-qtype.lo -MD -MP -MF $(DEPDIR)/libtestremotebackend_la-qtype.Tpo -c -o libtestremotebackend_la-qtype.lo `test -f '../../pdns/qtype.cc' || echo '$(srcdir)/'`../../pdns/qtype.cc
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtestremotebackend_la-qtype.Tpo $(DEPDIR)/libtestremotebackend_la-qtype.Plo
+@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../../pdns/qtype.cc' object='libtestremotebackend_la-qtype.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -c -o libtestremotebackend_la-qtype.lo `test -f '../../pdns/qtype.cc' || echo '$(srcdir)/'`../../pdns/qtype.cc
+
+libtestremotebackend_la-dnspacket.lo: ../../pdns/dnspacket.cc
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -MT libtestremotebackend_la-dnspacket.lo -MD -MP -MF $(DEPDIR)/libtestremotebackend_la-dnspacket.Tpo -c -o libtestremotebackend_la-dnspacket.lo `test -f '../../pdns/dnspacket.cc' || echo '$(srcdir)/'`../../pdns/dnspacket.cc
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtestremotebackend_la-dnspacket.Tpo $(DEPDIR)/libtestremotebackend_la-dnspacket.Plo
+@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../../pdns/dnspacket.cc' object='libtestremotebackend_la-dnspacket.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -c -o libtestremotebackend_la-dnspacket.lo `test -f '../../pdns/dnspacket.cc' || echo '$(srcdir)/'`../../pdns/dnspacket.cc
+
+libtestremotebackend_la-dnswriter.lo: ../../pdns/dnswriter.cc
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -MT libtestremotebackend_la-dnswriter.lo -MD -MP -MF $(DEPDIR)/libtestremotebackend_la-dnswriter.Tpo -c -o libtestremotebackend_la-dnswriter.lo `test -f '../../pdns/dnswriter.cc' || echo '$(srcdir)/'`../../pdns/dnswriter.cc
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtestremotebackend_la-dnswriter.Tpo $(DEPDIR)/libtestremotebackend_la-dnswriter.Plo
+@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../../pdns/dnswriter.cc' object='libtestremotebackend_la-dnswriter.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -c -o libtestremotebackend_la-dnswriter.lo `test -f '../../pdns/dnswriter.cc' || echo '$(srcdir)/'`../../pdns/dnswriter.cc
+
+libtestremotebackend_la-base64.lo: ../../pdns/base64.cc
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -MT libtestremotebackend_la-base64.lo -MD -MP -MF $(DEPDIR)/libtestremotebackend_la-base64.Tpo -c -o libtestremotebackend_la-base64.lo `test -f '../../pdns/base64.cc' || echo '$(srcdir)/'`../../pdns/base64.cc
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtestremotebackend_la-base64.Tpo $(DEPDIR)/libtestremotebackend_la-base64.Plo
+@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../../pdns/base64.cc' object='libtestremotebackend_la-base64.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -c -o libtestremotebackend_la-base64.lo `test -f '../../pdns/base64.cc' || echo '$(srcdir)/'`../../pdns/base64.cc
+
+libtestremotebackend_la-base32.lo: ../../pdns/base32.cc
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -MT libtestremotebackend_la-base32.lo -MD -MP -MF $(DEPDIR)/libtestremotebackend_la-base32.Tpo -c -o libtestremotebackend_la-base32.lo `test -f '../../pdns/base32.cc' || echo '$(srcdir)/'`../../pdns/base32.cc
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtestremotebackend_la-base32.Tpo $(DEPDIR)/libtestremotebackend_la-base32.Plo
+@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../../pdns/base32.cc' object='libtestremotebackend_la-base32.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -c -o libtestremotebackend_la-base32.lo `test -f '../../pdns/base32.cc' || echo '$(srcdir)/'`../../pdns/base32.cc
+
+libtestremotebackend_la-dnsrecords.lo: ../../pdns/dnsrecords.cc
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -MT libtestremotebackend_la-dnsrecords.lo -MD -MP -MF $(DEPDIR)/libtestremotebackend_la-dnsrecords.Tpo -c -o libtestremotebackend_la-dnsrecords.lo `test -f '../../pdns/dnsrecords.cc' || echo '$(srcdir)/'`../../pdns/dnsrecords.cc
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtestremotebackend_la-dnsrecords.Tpo $(DEPDIR)/libtestremotebackend_la-dnsrecords.Plo
+@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../../pdns/dnsrecords.cc' object='libtestremotebackend_la-dnsrecords.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -c -o libtestremotebackend_la-dnsrecords.lo `test -f '../../pdns/dnsrecords.cc' || echo '$(srcdir)/'`../../pdns/dnsrecords.cc
+
+libtestremotebackend_la-dnslabeltext.lo: ../../pdns/dnslabeltext.cc
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -MT libtestremotebackend_la-dnslabeltext.lo -MD -MP -MF $(DEPDIR)/libtestremotebackend_la-dnslabeltext.Tpo -c -o libtestremotebackend_la-dnslabeltext.lo `test -f '../../pdns/dnslabeltext.cc' || echo '$(srcdir)/'`../../pdns/dnslabeltext.cc
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtestremotebackend_la-dnslabeltext.Tpo $(DEPDIR)/libtestremotebackend_la-dnslabeltext.Plo
+@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../../pdns/dnslabeltext.cc' object='libtestremotebackend_la-dnslabeltext.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -c -o libtestremotebackend_la-dnslabeltext.lo `test -f '../../pdns/dnslabeltext.cc' || echo '$(srcdir)/'`../../pdns/dnslabeltext.cc
+
+libtestremotebackend_la-dnsparser.lo: ../../pdns/dnsparser.cc
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -MT libtestremotebackend_la-dnsparser.lo -MD -MP -MF $(DEPDIR)/libtestremotebackend_la-dnsparser.Tpo -c -o libtestremotebackend_la-dnsparser.lo `test -f '../../pdns/dnsparser.cc' || echo '$(srcdir)/'`../../pdns/dnsparser.cc
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtestremotebackend_la-dnsparser.Tpo $(DEPDIR)/libtestremotebackend_la-dnsparser.Plo
+@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../../pdns/dnsparser.cc' object='libtestremotebackend_la-dnsparser.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -c -o libtestremotebackend_la-dnsparser.lo `test -f '../../pdns/dnsparser.cc' || echo '$(srcdir)/'`../../pdns/dnsparser.cc
+
+libtestremotebackend_la-rcpgenerator.lo: ../../pdns/rcpgenerator.cc
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -MT libtestremotebackend_la-rcpgenerator.lo -MD -MP -MF $(DEPDIR)/libtestremotebackend_la-rcpgenerator.Tpo -c -o libtestremotebackend_la-rcpgenerator.lo `test -f '../../pdns/rcpgenerator.cc' || echo '$(srcdir)/'`../../pdns/rcpgenerator.cc
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtestremotebackend_la-rcpgenerator.Tpo $(DEPDIR)/libtestremotebackend_la-rcpgenerator.Plo
+@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../../pdns/rcpgenerator.cc' object='libtestremotebackend_la-rcpgenerator.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -c -o libtestremotebackend_la-rcpgenerator.lo `test -f '../../pdns/rcpgenerator.cc' || echo '$(srcdir)/'`../../pdns/rcpgenerator.cc
+
+libtestremotebackend_la-ednssubnet.lo: ../../pdns/ednssubnet.cc
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -MT libtestremotebackend_la-ednssubnet.lo -MD -MP -MF $(DEPDIR)/libtestremotebackend_la-ednssubnet.Tpo -c -o libtestremotebackend_la-ednssubnet.lo `test -f '../../pdns/ednssubnet.cc' || echo '$(srcdir)/'`../../pdns/ednssubnet.cc
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtestremotebackend_la-ednssubnet.Tpo $(DEPDIR)/libtestremotebackend_la-ednssubnet.Plo
+@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../../pdns/ednssubnet.cc' object='libtestremotebackend_la-ednssubnet.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -c -o libtestremotebackend_la-ednssubnet.lo `test -f '../../pdns/ednssubnet.cc' || echo '$(srcdir)/'`../../pdns/ednssubnet.cc
+
+libtestremotebackend_la-nsecrecords.lo: ../../pdns/nsecrecords.cc
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -MT libtestremotebackend_la-nsecrecords.lo -MD -MP -MF $(DEPDIR)/libtestremotebackend_la-nsecrecords.Tpo -c -o libtestremotebackend_la-nsecrecords.lo `test -f '../../pdns/nsecrecords.cc' || echo '$(srcdir)/'`../../pdns/nsecrecords.cc
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtestremotebackend_la-nsecrecords.Tpo $(DEPDIR)/libtestremotebackend_la-nsecrecords.Plo
+@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../../pdns/nsecrecords.cc' object='libtestremotebackend_la-nsecrecords.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -c -o libtestremotebackend_la-nsecrecords.lo `test -f '../../pdns/nsecrecords.cc' || echo '$(srcdir)/'`../../pdns/nsecrecords.cc
+
+libtestremotebackend_la-sillyrecords.lo: ../../pdns/sillyrecords.cc
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -MT libtestremotebackend_la-sillyrecords.lo -MD -MP -MF $(DEPDIR)/libtestremotebackend_la-sillyrecords.Tpo -c -o libtestremotebackend_la-sillyrecords.lo `test -f '../../pdns/sillyrecords.cc' || echo '$(srcdir)/'`../../pdns/sillyrecords.cc
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtestremotebackend_la-sillyrecords.Tpo $(DEPDIR)/libtestremotebackend_la-sillyrecords.Plo
+@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../../pdns/sillyrecords.cc' object='libtestremotebackend_la-sillyrecords.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -c -o libtestremotebackend_la-sillyrecords.lo `test -f '../../pdns/sillyrecords.cc' || echo '$(srcdir)/'`../../pdns/sillyrecords.cc
+
+libtestremotebackend_la-dnssecinfra.lo: ../../pdns/dnssecinfra.cc
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -MT libtestremotebackend_la-dnssecinfra.lo -MD -MP -MF $(DEPDIR)/libtestremotebackend_la-dnssecinfra.Tpo -c -o libtestremotebackend_la-dnssecinfra.lo `test -f '../../pdns/dnssecinfra.cc' || echo '$(srcdir)/'`../../pdns/dnssecinfra.cc
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtestremotebackend_la-dnssecinfra.Tpo $(DEPDIR)/libtestremotebackend_la-dnssecinfra.Plo
+@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../../pdns/dnssecinfra.cc' object='libtestremotebackend_la-dnssecinfra.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -c -o libtestremotebackend_la-dnssecinfra.lo `test -f '../../pdns/dnssecinfra.cc' || echo '$(srcdir)/'`../../pdns/dnssecinfra.cc
+
+libtestremotebackend_la-dns_random.lo: ../../pdns/aes/dns_random.cc
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -MT libtestremotebackend_la-dns_random.lo -MD -MP -MF $(DEPDIR)/libtestremotebackend_la-dns_random.Tpo -c -o libtestremotebackend_la-dns_random.lo `test -f '../../pdns/aes/dns_random.cc' || echo '$(srcdir)/'`../../pdns/aes/dns_random.cc
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtestremotebackend_la-dns_random.Tpo $(DEPDIR)/libtestremotebackend_la-dns_random.Plo
+@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../../pdns/aes/dns_random.cc' object='libtestremotebackend_la-dns_random.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -c -o libtestremotebackend_la-dns_random.lo `test -f '../../pdns/aes/dns_random.cc' || echo '$(srcdir)/'`../../pdns/aes/dns_random.cc
+
+libtestremotebackend_la-packetcache.lo: ../../pdns/packetcache.cc
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -MT libtestremotebackend_la-packetcache.lo -MD -MP -MF $(DEPDIR)/libtestremotebackend_la-packetcache.Tpo -c -o libtestremotebackend_la-packetcache.lo `test -f '../../pdns/packetcache.cc' || echo '$(srcdir)/'`../../pdns/packetcache.cc
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtestremotebackend_la-packetcache.Tpo $(DEPDIR)/libtestremotebackend_la-packetcache.Plo
+@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../../pdns/packetcache.cc' object='libtestremotebackend_la-packetcache.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -c -o libtestremotebackend_la-packetcache.lo `test -f '../../pdns/packetcache.cc' || echo '$(srcdir)/'`../../pdns/packetcache.cc
+
+libtestremotebackend_la-dns.lo: ../../pdns/dns.cc
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -MT libtestremotebackend_la-dns.lo -MD -MP -MF $(DEPDIR)/libtestremotebackend_la-dns.Tpo -c -o libtestremotebackend_la-dns.lo `test -f '../../pdns/dns.cc' || echo '$(srcdir)/'`../../pdns/dns.cc
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtestremotebackend_la-dns.Tpo $(DEPDIR)/libtestremotebackend_la-dns.Plo
+@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../../pdns/dns.cc' object='libtestremotebackend_la-dns.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -c -o libtestremotebackend_la-dns.lo `test -f '../../pdns/dns.cc' || echo '$(srcdir)/'`../../pdns/dns.cc
+
+libtestremotebackend_la-json.lo: ../../pdns/json.cc
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -MT libtestremotebackend_la-json.lo -MD -MP -MF $(DEPDIR)/libtestremotebackend_la-json.Tpo -c -o libtestremotebackend_la-json.lo `test -f '../../pdns/json.cc' || echo '$(srcdir)/'`../../pdns/json.cc
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtestremotebackend_la-json.Tpo $(DEPDIR)/libtestremotebackend_la-json.Plo
+@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../../pdns/json.cc' object='libtestremotebackend_la-json.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -c -o libtestremotebackend_la-json.lo `test -f '../../pdns/json.cc' || echo '$(srcdir)/'`../../pdns/json.cc
+
+libtestremotebackend_la-coprocess.lo: ../pipebackend/coprocess.cc
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -MT libtestremotebackend_la-coprocess.lo -MD -MP -MF $(DEPDIR)/libtestremotebackend_la-coprocess.Tpo -c -o libtestremotebackend_la-coprocess.lo `test -f '../pipebackend/coprocess.cc' || echo '$(srcdir)/'`../pipebackend/coprocess.cc
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtestremotebackend_la-coprocess.Tpo $(DEPDIR)/libtestremotebackend_la-coprocess.Plo
+@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../pipebackend/coprocess.cc' object='libtestremotebackend_la-coprocess.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -c -o libtestremotebackend_la-coprocess.lo `test -f '../pipebackend/coprocess.cc' || echo '$(srcdir)/'`../pipebackend/coprocess.cc
+
+libtestremotebackend_la-remotebackend.lo: remotebackend.cc
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -MT libtestremotebackend_la-remotebackend.lo -MD -MP -MF $(DEPDIR)/libtestremotebackend_la-remotebackend.Tpo -c -o libtestremotebackend_la-remotebackend.lo `test -f 'remotebackend.cc' || echo '$(srcdir)/'`remotebackend.cc
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtestremotebackend_la-remotebackend.Tpo $(DEPDIR)/libtestremotebackend_la-remotebackend.Plo
+@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='remotebackend.cc' object='libtestremotebackend_la-remotebackend.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -c -o libtestremotebackend_la-remotebackend.lo `test -f 'remotebackend.cc' || echo '$(srcdir)/'`remotebackend.cc
+
+libtestremotebackend_la-unixconnector.lo: unixconnector.cc
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -MT libtestremotebackend_la-unixconnector.lo -MD -MP -MF $(DEPDIR)/libtestremotebackend_la-unixconnector.Tpo -c -o libtestremotebackend_la-unixconnector.lo `test -f 'unixconnector.cc' || echo '$(srcdir)/'`unixconnector.cc
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtestremotebackend_la-unixconnector.Tpo $(DEPDIR)/libtestremotebackend_la-unixconnector.Plo
+@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='unixconnector.cc' object='libtestremotebackend_la-unixconnector.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -c -o libtestremotebackend_la-unixconnector.lo `test -f 'unixconnector.cc' || echo '$(srcdir)/'`unixconnector.cc
+
+libtestremotebackend_la-httpconnector.lo: httpconnector.cc
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -MT libtestremotebackend_la-httpconnector.lo -MD -MP -MF $(DEPDIR)/libtestremotebackend_la-httpconnector.Tpo -c -o libtestremotebackend_la-httpconnector.lo `test -f 'httpconnector.cc' || echo '$(srcdir)/'`httpconnector.cc
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtestremotebackend_la-httpconnector.Tpo $(DEPDIR)/libtestremotebackend_la-httpconnector.Plo
+@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='httpconnector.cc' object='libtestremotebackend_la-httpconnector.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -c -o libtestremotebackend_la-httpconnector.lo `test -f 'httpconnector.cc' || echo '$(srcdir)/'`httpconnector.cc
+
+libtestremotebackend_la-pipeconnector.lo: pipeconnector.cc
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -MT libtestremotebackend_la-pipeconnector.lo -MD -MP -MF $(DEPDIR)/libtestremotebackend_la-pipeconnector.Tpo -c -o libtestremotebackend_la-pipeconnector.lo `test -f 'pipeconnector.cc' || echo '$(srcdir)/'`pipeconnector.cc
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtestremotebackend_la-pipeconnector.Tpo $(DEPDIR)/libtestremotebackend_la-pipeconnector.Plo
+@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='pipeconnector.cc' object='libtestremotebackend_la-pipeconnector.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtestremotebackend_la_CXXFLAGS) $(CXXFLAGS) -c -o libtestremotebackend_la-pipeconnector.lo `test -f 'pipeconnector.cc' || echo '$(srcdir)/'`pipeconnector.cc
+
+test_remotebackend_http-test-remotebackend.o: test-remotebackend.cc
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_remotebackend_http_CXXFLAGS) $(CXXFLAGS) -MT test_remotebackend_http-test-remotebackend.o -MD -MP -MF $(DEPDIR)/test_remotebackend_http-test-remotebackend.Tpo -c -o test_remotebackend_http-test-remotebackend.o `test -f 'test-remotebackend.cc' || echo '$(srcdir)/'`test-remotebackend.cc
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_remotebackend_http-test-remotebackend.Tpo $(DEPDIR)/test_remotebackend_http-test-remotebackend.Po
+@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='test-remotebackend.cc' object='test_remotebackend_http-test-remotebackend.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_remotebackend_http_CXXFLAGS) $(CXXFLAGS) -c -o test_remotebackend_http-test-remotebackend.o `test -f 'test-remotebackend.cc' || echo '$(srcdir)/'`test-remotebackend.cc
+
+test_remotebackend_http-test-remotebackend.obj: test-remotebackend.cc
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_remotebackend_http_CXXFLAGS) $(CXXFLAGS) -MT test_remotebackend_http-test-remotebackend.obj -MD -MP -MF $(DEPDIR)/test_remotebackend_http-test-remotebackend.Tpo -c -o test_remotebackend_http-test-remotebackend.obj `if test -f 'test-remotebackend.cc'; then $(CYGPATH_W) 'test-remotebackend.cc'; else $(CYGPATH_W) '$(srcdir)/test-remotebackend.cc'; fi`
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_remotebackend_http-test-remotebackend.Tpo $(DEPDIR)/test_remotebackend_http-test-remotebackend.Po
+@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='test-remotebackend.cc' object='test_remotebackend_http-test-remotebackend.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_remotebackend_http_CXXFLAGS) $(CXXFLAGS) -c -o test_remotebackend_http-test-remotebackend.obj `if test -f 'test-remotebackend.cc'; then $(CYGPATH_W) 'test-remotebackend.cc'; else $(CYGPATH_W) '$(srcdir)/test-remotebackend.cc'; fi`
+
+test_remotebackend_http-test-remotebackend-http.o: test-remotebackend-http.cc
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_remotebackend_http_CXXFLAGS) $(CXXFLAGS) -MT test_remotebackend_http-test-remotebackend-http.o -MD -MP -MF $(DEPDIR)/test_remotebackend_http-test-remotebackend-http.Tpo -c -o test_remotebackend_http-test-remotebackend-http.o `test -f 'test-remotebackend-http.cc' || echo '$(srcdir)/'`test-remotebackend-http.cc
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_remotebackend_http-test-remotebackend-http.Tpo $(DEPDIR)/test_remotebackend_http-test-remotebackend-http.Po
+@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='test-remotebackend-http.cc' object='test_remotebackend_http-test-remotebackend-http.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_remotebackend_http_CXXFLAGS) $(CXXFLAGS) -c -o test_remotebackend_http-test-remotebackend-http.o `test -f 'test-remotebackend-http.cc' || echo '$(srcdir)/'`test-remotebackend-http.cc
+
+test_remotebackend_http-test-remotebackend-http.obj: test-remotebackend-http.cc
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_remotebackend_http_CXXFLAGS) $(CXXFLAGS) -MT test_remotebackend_http-test-remotebackend-http.obj -MD -MP -MF $(DEPDIR)/test_remotebackend_http-test-remotebackend-http.Tpo -c -o test_remotebackend_http-test-remotebackend-http.obj `if test -f 'test-remotebackend-http.cc'; then $(CYGPATH_W) 'test-remotebackend-http.cc'; else $(CYGPATH_W) '$(srcdir)/test-remotebackend-http.cc'; fi`
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_remotebackend_http-test-remotebackend-http.Tpo $(DEPDIR)/test_remotebackend_http-test-remotebackend-http.Po
+@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='test-remotebackend-http.cc' object='test_remotebackend_http-test-remotebackend-http.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_remotebackend_http_CXXFLAGS) $(CXXFLAGS) -c -o test_remotebackend_http-test-remotebackend-http.obj `if test -f 'test-remotebackend-http.cc'; then $(CYGPATH_W) 'test-remotebackend-http.cc'; else $(CYGPATH_W) '$(srcdir)/test-remotebackend-http.cc'; fi`
+
+test_remotebackend_json-test-remotebackend.o: test-remotebackend.cc
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_remotebackend_json_CXXFLAGS) $(CXXFLAGS) -MT test_remotebackend_json-test-remotebackend.o -MD -MP -MF $(DEPDIR)/test_remotebackend_json-test-remotebackend.Tpo -c -o test_remotebackend_json-test-remotebackend.o `test -f 'test-remotebackend.cc' || echo '$(srcdir)/'`test-remotebackend.cc
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_remotebackend_json-test-remotebackend.Tpo $(DEPDIR)/test_remotebackend_json-test-remotebackend.Po
+@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='test-remotebackend.cc' object='test_remotebackend_json-test-remotebackend.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_remotebackend_json_CXXFLAGS) $(CXXFLAGS) -c -o test_remotebackend_json-test-remotebackend.o `test -f 'test-remotebackend.cc' || echo '$(srcdir)/'`test-remotebackend.cc
+
+test_remotebackend_json-test-remotebackend.obj: test-remotebackend.cc
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_remotebackend_json_CXXFLAGS) $(CXXFLAGS) -MT test_remotebackend_json-test-remotebackend.obj -MD -MP -MF $(DEPDIR)/test_remotebackend_json-test-remotebackend.Tpo -c -o test_remotebackend_json-test-remotebackend.obj `if test -f 'test-remotebackend.cc'; then $(CYGPATH_W) 'test-remotebackend.cc'; else $(CYGPATH_W) '$(srcdir)/test-remotebackend.cc'; fi`
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_remotebackend_json-test-remotebackend.Tpo $(DEPDIR)/test_remotebackend_json-test-remotebackend.Po
+@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='test-remotebackend.cc' object='test_remotebackend_json-test-remotebackend.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_remotebackend_json_CXXFLAGS) $(CXXFLAGS) -c -o test_remotebackend_json-test-remotebackend.obj `if test -f 'test-remotebackend.cc'; then $(CYGPATH_W) 'test-remotebackend.cc'; else $(CYGPATH_W) '$(srcdir)/test-remotebackend.cc'; fi`
+
+test_remotebackend_json-test-remotebackend-json.o: test-remotebackend-json.cc
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_remotebackend_json_CXXFLAGS) $(CXXFLAGS) -MT test_remotebackend_json-test-remotebackend-json.o -MD -MP -MF $(DEPDIR)/test_remotebackend_json-test-remotebackend-json.Tpo -c -o test_remotebackend_json-test-remotebackend-json.o `test -f 'test-remotebackend-json.cc' || echo '$(srcdir)/'`test-remotebackend-json.cc
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_remotebackend_json-test-remotebackend-json.Tpo $(DEPDIR)/test_remotebackend_json-test-remotebackend-json.Po
+@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='test-remotebackend-json.cc' object='test_remotebackend_json-test-remotebackend-json.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_remotebackend_json_CXXFLAGS) $(CXXFLAGS) -c -o test_remotebackend_json-test-remotebackend-json.o `test -f 'test-remotebackend-json.cc' || echo '$(srcdir)/'`test-remotebackend-json.cc
+
+test_remotebackend_json-test-remotebackend-json.obj: test-remotebackend-json.cc
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_remotebackend_json_CXXFLAGS) $(CXXFLAGS) -MT test_remotebackend_json-test-remotebackend-json.obj -MD -MP -MF $(DEPDIR)/test_remotebackend_json-test-remotebackend-json.Tpo -c -o test_remotebackend_json-test-remotebackend-json.obj `if test -f 'test-remotebackend-json.cc'; then $(CYGPATH_W) 'test-remotebackend-json.cc'; else $(CYGPATH_W) '$(srcdir)/test-remotebackend-json.cc'; fi`
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_remotebackend_json-test-remotebackend-json.Tpo $(DEPDIR)/test_remotebackend_json-test-remotebackend-json.Po
+@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='test-remotebackend-json.cc' object='test_remotebackend_json-test-remotebackend-json.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_remotebackend_json_CXXFLAGS) $(CXXFLAGS) -c -o test_remotebackend_json-test-remotebackend-json.obj `if test -f 'test-remotebackend-json.cc'; then $(CYGPATH_W) 'test-remotebackend-json.cc'; else $(CYGPATH_W) '$(srcdir)/test-remotebackend-json.cc'; fi`
+
+test_remotebackend_pipe-test-remotebackend.o: test-remotebackend.cc
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_remotebackend_pipe_CXXFLAGS) $(CXXFLAGS) -MT test_remotebackend_pipe-test-remotebackend.o -MD -MP -MF $(DEPDIR)/test_remotebackend_pipe-test-remotebackend.Tpo -c -o test_remotebackend_pipe-test-remotebackend.o `test -f 'test-remotebackend.cc' || echo '$(srcdir)/'`test-remotebackend.cc
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_remotebackend_pipe-test-remotebackend.Tpo $(DEPDIR)/test_remotebackend_pipe-test-remotebackend.Po
+@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='test-remotebackend.cc' object='test_remotebackend_pipe-test-remotebackend.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_remotebackend_pipe_CXXFLAGS) $(CXXFLAGS) -c -o test_remotebackend_pipe-test-remotebackend.o `test -f 'test-remotebackend.cc' || echo '$(srcdir)/'`test-remotebackend.cc
+
+test_remotebackend_pipe-test-remotebackend.obj: test-remotebackend.cc
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_remotebackend_pipe_CXXFLAGS) $(CXXFLAGS) -MT test_remotebackend_pipe-test-remotebackend.obj -MD -MP -MF $(DEPDIR)/test_remotebackend_pipe-test-remotebackend.Tpo -c -o test_remotebackend_pipe-test-remotebackend.obj `if test -f 'test-remotebackend.cc'; then $(CYGPATH_W) 'test-remotebackend.cc'; else $(CYGPATH_W) '$(srcdir)/test-remotebackend.cc'; fi`
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_remotebackend_pipe-test-remotebackend.Tpo $(DEPDIR)/test_remotebackend_pipe-test-remotebackend.Po
+@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='test-remotebackend.cc' object='test_remotebackend_pipe-test-remotebackend.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_remotebackend_pipe_CXXFLAGS) $(CXXFLAGS) -c -o test_remotebackend_pipe-test-remotebackend.obj `if test -f 'test-remotebackend.cc'; then $(CYGPATH_W) 'test-remotebackend.cc'; else $(CYGPATH_W) '$(srcdir)/test-remotebackend.cc'; fi`
+
+test_remotebackend_pipe-test-remotebackend-pipe.o: test-remotebackend-pipe.cc
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_remotebackend_pipe_CXXFLAGS) $(CXXFLAGS) -MT test_remotebackend_pipe-test-remotebackend-pipe.o -MD -MP -MF $(DEPDIR)/test_remotebackend_pipe-test-remotebackend-pipe.Tpo -c -o test_remotebackend_pipe-test-remotebackend-pipe.o `test -f 'test-remotebackend-pipe.cc' || echo '$(srcdir)/'`test-remotebackend-pipe.cc
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_remotebackend_pipe-test-remotebackend-pipe.Tpo $(DEPDIR)/test_remotebackend_pipe-test-remotebackend-pipe.Po
+@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='test-remotebackend-pipe.cc' object='test_remotebackend_pipe-test-remotebackend-pipe.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_remotebackend_pipe_CXXFLAGS) $(CXXFLAGS) -c -o test_remotebackend_pipe-test-remotebackend-pipe.o `test -f 'test-remotebackend-pipe.cc' || echo '$(srcdir)/'`test-remotebackend-pipe.cc
+
+test_remotebackend_pipe-test-remotebackend-pipe.obj: test-remotebackend-pipe.cc
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_remotebackend_pipe_CXXFLAGS) $(CXXFLAGS) -MT test_remotebackend_pipe-test-remotebackend-pipe.obj -MD -MP -MF $(DEPDIR)/test_remotebackend_pipe-test-remotebackend-pipe.Tpo -c -o test_remotebackend_pipe-test-remotebackend-pipe.obj `if test -f 'test-remotebackend-pipe.cc'; then $(CYGPATH_W) 'test-remotebackend-pipe.cc'; else $(CYGPATH_W) '$(srcdir)/test-remotebackend-pipe.cc'; fi`
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_remotebackend_pipe-test-remotebackend-pipe.Tpo $(DEPDIR)/test_remotebackend_pipe-test-remotebackend-pipe.Po
+@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='test-remotebackend-pipe.cc' object='test_remotebackend_pipe-test-remotebackend-pipe.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_remotebackend_pipe_CXXFLAGS) $(CXXFLAGS) -c -o test_remotebackend_pipe-test-remotebackend-pipe.obj `if test -f 'test-remotebackend-pipe.cc'; then $(CYGPATH_W) 'test-remotebackend-pipe.cc'; else $(CYGPATH_W) '$(srcdir)/test-remotebackend-pipe.cc'; fi`
+
+test_remotebackend_post-test-remotebackend.o: test-remotebackend.cc
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_remotebackend_post_CXXFLAGS) $(CXXFLAGS) -MT test_remotebackend_post-test-remotebackend.o -MD -MP -MF $(DEPDIR)/test_remotebackend_post-test-remotebackend.Tpo -c -o test_remotebackend_post-test-remotebackend.o `test -f 'test-remotebackend.cc' || echo '$(srcdir)/'`test-remotebackend.cc
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_remotebackend_post-test-remotebackend.Tpo $(DEPDIR)/test_remotebackend_post-test-remotebackend.Po
+@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='test-remotebackend.cc' object='test_remotebackend_post-test-remotebackend.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_remotebackend_post_CXXFLAGS) $(CXXFLAGS) -c -o test_remotebackend_post-test-remotebackend.o `test -f 'test-remotebackend.cc' || echo '$(srcdir)/'`test-remotebackend.cc
+
+test_remotebackend_post-test-remotebackend.obj: test-remotebackend.cc
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_remotebackend_post_CXXFLAGS) $(CXXFLAGS) -MT test_remotebackend_post-test-remotebackend.obj -MD -MP -MF $(DEPDIR)/test_remotebackend_post-test-remotebackend.Tpo -c -o test_remotebackend_post-test-remotebackend.obj `if test -f 'test-remotebackend.cc'; then $(CYGPATH_W) 'test-remotebackend.cc'; else $(CYGPATH_W) '$(srcdir)/test-remotebackend.cc'; fi`
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_remotebackend_post-test-remotebackend.Tpo $(DEPDIR)/test_remotebackend_post-test-remotebackend.Po
+@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='test-remotebackend.cc' object='test_remotebackend_post-test-remotebackend.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_remotebackend_post_CXXFLAGS) $(CXXFLAGS) -c -o test_remotebackend_post-test-remotebackend.obj `if test -f 'test-remotebackend.cc'; then $(CYGPATH_W) 'test-remotebackend.cc'; else $(CYGPATH_W) '$(srcdir)/test-remotebackend.cc'; fi`
+
+test_remotebackend_post-test-remotebackend-post.o: test-remotebackend-post.cc
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_remotebackend_post_CXXFLAGS) $(CXXFLAGS) -MT test_remotebackend_post-test-remotebackend-post.o -MD -MP -MF $(DEPDIR)/test_remotebackend_post-test-remotebackend-post.Tpo -c -o test_remotebackend_post-test-remotebackend-post.o `test -f 'test-remotebackend-post.cc' || echo '$(srcdir)/'`test-remotebackend-post.cc
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_remotebackend_post-test-remotebackend-post.Tpo $(DEPDIR)/test_remotebackend_post-test-remotebackend-post.Po
+@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='test-remotebackend-post.cc' object='test_remotebackend_post-test-remotebackend-post.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_remotebackend_post_CXXFLAGS) $(CXXFLAGS) -c -o test_remotebackend_post-test-remotebackend-post.o `test -f 'test-remotebackend-post.cc' || echo '$(srcdir)/'`test-remotebackend-post.cc
+
+test_remotebackend_post-test-remotebackend-post.obj: test-remotebackend-post.cc
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_remotebackend_post_CXXFLAGS) $(CXXFLAGS) -MT test_remotebackend_post-test-remotebackend-post.obj -MD -MP -MF $(DEPDIR)/test_remotebackend_post-test-remotebackend-post.Tpo -c -o test_remotebackend_post-test-remotebackend-post.obj `if test -f 'test-remotebackend-post.cc'; then $(CYGPATH_W) 'test-remotebackend-post.cc'; else $(CYGPATH_W) '$(srcdir)/test-remotebackend-post.cc'; fi`
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_remotebackend_post-test-remotebackend-post.Tpo $(DEPDIR)/test_remotebackend_post-test-remotebackend-post.Po
+@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='test-remotebackend-post.cc' object='test_remotebackend_post-test-remotebackend-post.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_remotebackend_post_CXXFLAGS) $(CXXFLAGS) -c -o test_remotebackend_post-test-remotebackend-post.obj `if test -f 'test-remotebackend-post.cc'; then $(CYGPATH_W) 'test-remotebackend-post.cc'; else $(CYGPATH_W) '$(srcdir)/test-remotebackend-post.cc'; fi`
+
mostlyclean-libtool:
-rm -f *.lo
@@ -469,6 +1101,98 @@
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+check-TESTS: $(TESTS)
+ @failed=0; all=0; xfail=0; xpass=0; skip=0; \
+ srcdir=$(srcdir); export srcdir; \
+ list=' $(TESTS) '; \
+ $(am__tty_colors); \
+ if test -n "$$list"; then \
+ for tst in $$list; do \
+ if test -f ./$$tst; then dir=./; \
+ elif test -f $$tst; then dir=; \
+ else dir="$(srcdir)/"; fi; \
+ if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
+ all=`expr $$all + 1`; \
+ case " $(XFAIL_TESTS) " in \
+ *[\ \ ]$$tst[\ \ ]*) \
+ xpass=`expr $$xpass + 1`; \
+ failed=`expr $$failed + 1`; \
+ col=$$red; res=XPASS; \
+ ;; \
+ *) \
+ col=$$grn; res=PASS; \
+ ;; \
+ esac; \
+ elif test $$? -ne 77; then \
+ all=`expr $$all + 1`; \
+ case " $(XFAIL_TESTS) " in \
+ *[\ \ ]$$tst[\ \ ]*) \
+ xfail=`expr $$xfail + 1`; \
+ col=$$lgn; res=XFAIL; \
+ ;; \
+ *) \
+ failed=`expr $$failed + 1`; \
+ col=$$red; res=FAIL; \
+ ;; \
+ esac; \
+ else \
+ skip=`expr $$skip + 1`; \
+ col=$$blu; res=SKIP; \
+ fi; \
+ echo "$${col}$$res$${std}: $$tst"; \
+ done; \
+ if test "$$all" -eq 1; then \
+ tests="test"; \
+ All=""; \
+ else \
+ tests="tests"; \
+ All="All "; \
+ fi; \
+ if test "$$failed" -eq 0; then \
+ if test "$$xfail" -eq 0; then \
+ banner="$$All$$all $$tests passed"; \
+ else \
+ if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \
+ banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \
+ fi; \
+ else \
+ if test "$$xpass" -eq 0; then \
+ banner="$$failed of $$all $$tests failed"; \
+ else \
+ if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \
+ banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \
+ fi; \
+ fi; \
+ dashes="$$banner"; \
+ skipped=""; \
+ if test "$$skip" -ne 0; then \
+ if test "$$skip" -eq 1; then \
+ skipped="($$skip test was not run)"; \
+ else \
+ skipped="($$skip tests were not run)"; \
+ fi; \
+ test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
+ dashes="$$skipped"; \
+ fi; \
+ report=""; \
+ if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
+ report="Please report to $(PACKAGE_BUGREPORT)"; \
+ test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
+ dashes="$$report"; \
+ fi; \
+ dashes=`echo "$$dashes" | sed s/./=/g`; \
+ if test "$$failed" -eq 0; then \
+ echo "$$grn$$dashes"; \
+ else \
+ echo "$$red$$dashes"; \
+ fi; \
+ echo "$$banner"; \
+ test -z "$$skipped" || echo "$$skipped"; \
+ test -z "$$report" || echo "$$report"; \
+ echo "$$dashes$$std"; \
+ test "$$failed" -eq 0; \
+ else :; fi
+
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
@@ -500,13 +1224,16 @@
fi; \
done
check-am: all-am
-check: check-am
+ $(MAKE) $(AM_MAKEFLAGS) check-TESTS
+check: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) check-am
all-am: Makefile $(LTLIBRARIES)
installdirs:
for dir in "$(DESTDIR)$(libdir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
-install: install-am
+install: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
@@ -531,6 +1258,7 @@
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
clean: clean-am
clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
@@ -602,23 +1330,26 @@
uninstall-am: uninstall-libLTLIBRARIES
-.MAKE: install-am install-strip
+.MAKE: all check check-am install install-am install-strip
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
- clean-libLTLIBRARIES clean-libtool ctags distclean \
- distclean-compile distclean-generic distclean-libtool \
- distclean-tags distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am install-dvi \
- install-dvi-am install-exec install-exec-am install-html \
- install-html-am install-info install-info-am \
- install-libLTLIBRARIES install-man install-pdf install-pdf-am \
- install-ps install-ps-am install-strip installcheck \
- installcheck-am installdirs maintainer-clean \
+.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \
+ clean-generic clean-libLTLIBRARIES clean-libtool ctags \
+ distclean distclean-compile distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-libLTLIBRARIES install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-compile \
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
tags uninstall uninstall-am uninstall-libLTLIBRARIES
+../../pdns/dnslabeltext.cc: ../../pdns/dnslabeltext.rl
+ make -C ../../pdns dnslabeltext.cc
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/modules/remotebackend/httpconnector.cc
^
|
@@ -4,6 +4,8 @@
#include <fcntl.h>
#include <boost/foreach.hpp>
#include <sstream>
+#include "rapidjson/stringbuffer.h"
+#include "rapidjson/writer.h"
#ifdef REMOTEBACKEND_HTTP
#include <curl/curl.h>
@@ -22,9 +24,26 @@
this->d_url_suffix = "";
}
this->timeout = 2;
+ this->d_post = false;
+ this->d_post_json = false;
+
if (options.find("timeout") != options.end()) {
this->timeout = boost::lexical_cast<int>(options.find("timeout")->second)/1000;
}
+ if (options.find("post") != options.end()) {
+ std::string val = options.find("post")->second;
+ if (val == "yes" || val == "true" || val == "on" || val == "1") {
+ this->d_post = true;
+ }
+ }
+ if (options.find("post_json") != options.end()) {
+ std::string val = options.find("post_json")->second;
+ if (val == "yes" || val == "true" || val == "on" || val == "1") {
+ this->d_post_json = true;
+ }
+ }
+ if (options.find("capath") != options.end()) this->d_capath = options.find("capath")->second;
+ if (options.find("cafile") != options.end()) this->d_cafile = options.find("cafile")->second;
}
HTTPConnector::~HTTPConnector() {
@@ -40,12 +59,15 @@
}
// converts json value into string
-void HTTPConnector::json2string(const rapidjson::Value &input, std::string &output) {
+bool HTTPConnector::json2string(const rapidjson::Value &input, std::string &output) {
if (input.IsString()) output = input.GetString();
else if (input.IsNull()) output = "";
+ else if (input.IsUint64()) output = lexical_cast<std::string>(input.GetUint64());
+ else if (input.IsInt64()) output = lexical_cast<std::string>(input.GetInt64());
else if (input.IsUint()) output = lexical_cast<std::string>(input.GetUint());
else if (input.IsInt()) output = lexical_cast<std::string>(input.GetInt());
- else output = "inconvertible value";
+ else return false;
+ return true;
}
void HTTPConnector::addUrlComponent(const rapidjson::Value ¶meters, const char *element, std::stringstream& ss) {
@@ -59,9 +81,36 @@
}
}
+template <class T> std::string buildMemberListArgs(std::string prefix, const T* value, CURL* curlContext) {
+ std::stringstream stream;
+
+ for (rapidjson::Value::ConstMemberIterator itr = value->MemberBegin(); itr != value->MemberEnd(); itr++) {
+ stream << prefix << "[" << itr->name.GetString() << "]=";
+
+ if (itr->value.IsUint64()) {
+ stream << itr->value.GetUint64();
+ } else if (itr->value.IsInt64()) {
+ stream << itr->value.GetInt64();
+ } else if (itr->value.IsUint()) {
+ stream << itr->value.GetUint();
+ } else if (itr->value.IsInt()) {
+ stream << itr->value.GetInt();
+ } else if (itr->value.IsBool()) {
+ stream << (itr->value.GetBool() ? 1 : 0);
+ } else if (itr->value.IsString()) {
+ char *tmpstr = curl_easy_escape(curlContext, itr->value.GetString(), 0);
+ stream << tmpstr;
+ curl_free(tmpstr);
+ }
+
+ stream << "&";
+ }
+
+ return stream.str();
+}
-// builds our request
-void HTTPConnector::requestbuilder(const std::string &method, const rapidjson::Value ¶meters, struct curl_slist **slist)
+// builds our request (near-restful)
+void HTTPConnector::restful_requestbuilder(const std::string &method, const rapidjson::Value ¶meters, struct curl_slist **slist)
{
std::stringstream ss;
std::string sparam;
@@ -77,16 +126,13 @@
// id must be first due to the fact that the qname/name can be empty
addUrlComponent(parameters, "id", ss);
+ addUrlComponent(parameters, "domain_id", ss);
addUrlComponent(parameters, "zonename", ss);
addUrlComponent(parameters, "qname", ss);
addUrlComponent(parameters, "name", ss);
addUrlComponent(parameters, "kind", ss);
addUrlComponent(parameters, "qtype", ss);
- // finally add suffix
- ss << d_url_suffix;
- curl_easy_setopt(d_c, CURLOPT_URL, ss.str().c_str());
-
(*slist) = NULL;
// set the correct type of request based on method
if (method == "activateDomainKey" || method == "deactivateDomainKey") {
@@ -106,8 +152,86 @@
curl_easy_setopt(d_c, CURLOPT_COPYPOSTFIELDS, postfields);
curl_free(tmpstr);
delete postfields;
+ } else if (method == "superMasterBackend") {
+ std::stringstream ss2;
+ addUrlComponent(parameters, "ip", ss);
+ addUrlComponent(parameters, "domain", ss);
+ // then we need to serialize rrset payload into POST
+ size_t index = 0;
+ for(rapidjson::Value::ConstValueIterator itr = parameters["nsset"].Begin(); itr != parameters["nsset"].End(); itr++) {
+ index++;
+ ss2 << buildMemberListArgs("nsset[" + boost::lexical_cast<std::string>(index) + "]", itr, d_c);
+ }
+ // then give it to curl
+ std::string out = ss2.str();
+ curl_easy_setopt(d_c, CURLOPT_POSTFIELDSIZE, out.size());
+ curl_easy_setopt(d_c, CURLOPT_COPYPOSTFIELDS, out.c_str());
+ } else if (method == "createSlaveDomain") {
+ addUrlComponent(parameters, "ip", ss);
+ addUrlComponent(parameters, "domain", ss);
+ if (parameters.HasMember("account")) {
+ std::string out = parameters["account"].GetString();
+ curl_easy_setopt(d_c, CURLOPT_POSTFIELDSIZE, out.size());
+ curl_easy_setopt(d_c, CURLOPT_COPYPOSTFIELDS, out.c_str());
+ } else {
+ curl_easy_setopt(d_c, CURLOPT_POST, 1);
+ curl_easy_setopt(d_c, CURLOPT_POSTFIELDSIZE, 0);
+ }
+ } else if (method == "replaceRRSet") {
+ std::stringstream ss2;
+ size_t index = 0;
+ for(rapidjson::Value::ConstValueIterator itr = parameters["rrset"].Begin(); itr != parameters["rrset"].End(); itr++) {
+ index++;
+ ss2 << buildMemberListArgs("rrset[" + boost::lexical_cast<std::string>(index) + "]", itr, d_c);
+ }
+ // then give it to curl
+ std::string out = ss2.str();
+ curl_easy_setopt(d_c, CURLOPT_POSTFIELDSIZE, out.size());
+ curl_easy_setopt(d_c, CURLOPT_COPYPOSTFIELDS, out.c_str());
+ } else if (method == "feedRecord") {
+ std::string out = buildMemberListArgs("rr", ¶meters["rr"], d_c);
+ addUrlComponent(parameters, "trxid", ss);
+ curl_easy_setopt(d_c, CURLOPT_POSTFIELDSIZE, out.size());
+ curl_easy_setopt(d_c, CURLOPT_COPYPOSTFIELDS, out.c_str());
+ } else if (method == "feedEnts") {
+ std::stringstream ss2;
+ addUrlComponent(parameters, "trxid", ss);
+ for(rapidjson::Value::ConstValueIterator itr = parameters["nonterm"].Begin(); itr != parameters["nonterm"].End(); itr++) {
+ tmpstr = curl_easy_escape(d_c, itr->GetString(), 0);
+ ss2 << "nonterm[]=" << tmpstr << "&";
+ curl_free(tmpstr);
+ }
+ std::string out = ss2.str();
+ curl_easy_setopt(d_c, CURLOPT_POSTFIELDSIZE, out.size());
+ curl_easy_setopt(d_c, CURLOPT_COPYPOSTFIELDS, out.c_str());
+ } else if (method == "feedEnts3") {
+ std::stringstream ss2;
+ addUrlComponent(parameters, "domain", ss);
+ addUrlComponent(parameters, "trxid", ss);
+ ss2 << "times=" << parameters["times"].GetInt() << "&salt=" << parameters["salt"].GetString() << "&narrow=" << (parameters["narrow"].GetBool() ? 1 : 0) << "&";
+ for(rapidjson::Value::ConstValueIterator itr = parameters["nonterm"].Begin(); itr != parameters["nonterm"].End(); itr++) {
+ tmpstr = curl_easy_escape(d_c, itr->GetString(), 0);
+ ss2 << "nonterm[]=" << tmpstr << "&";
+ curl_free(tmpstr);
+ }
+ std::string out = ss2.str();
+ curl_easy_setopt(d_c, CURLOPT_POSTFIELDSIZE, out.size());
+ curl_easy_setopt(d_c, CURLOPT_COPYPOSTFIELDS, out.c_str());
+ } else if (method == "startTransaction") {
+ addUrlComponent(parameters, "domain", ss);
+ addUrlComponent(parameters, "trxid", ss);
+ curl_easy_setopt(d_c, CURLOPT_POST, 1);
+ curl_easy_setopt(d_c, CURLOPT_POSTFIELDSIZE, 0);
+ } else if (method == "commitTransaction" || method == "abortTransaction") {
+ addUrlComponent(parameters, "trxid", ss);
+ curl_easy_setopt(d_c, CURLOPT_POST, 1);
+ curl_easy_setopt(d_c, CURLOPT_POSTFIELDSIZE, 0);
+ } else if (method == "calculateSOASerial") {
+ addUrlComponent(parameters, "domain", ss);
+ std::string out = buildMemberListArgs("sd", ¶meters["sd"], d_c);
+ curl_easy_setopt(d_c, CURLOPT_POSTFIELDSIZE, out.size());
+ curl_easy_setopt(d_c, CURLOPT_COPYPOSTFIELDS, out.c_str());
} else if (method == "setDomainMetadata") {
- int n=0;
// copy all metadata values into post
std::stringstream ss2;
const rapidjson::Value& param = parameters["value"];
@@ -115,7 +239,7 @@
// this one has values too
if (param.IsArray()) {
for(rapidjson::Value::ConstValueIterator i = param.Begin(); i != param.End(); i++) {
- ss2 << "value" << (++n) << "=" << i->GetString() << "&";
+ ss2 << "value[]=" << i->GetString() << "&";
}
}
sparam = ss2.str();
@@ -124,6 +248,12 @@
} else if (method == "removeDomainKey") {
// this one is delete
curl_easy_setopt(d_c, CURLOPT_CUSTOMREQUEST, "DELETE");
+ } else if (method == "setNotified") {
+ tmpstr = (char*)malloc(128);
+ snprintf(tmpstr, 128, "serial=%u", parameters["serial"].GetInt());
+ curl_easy_setopt(d_c, CURLOPT_POSTFIELDSIZE, strlen(tmpstr));
+ curl_easy_setopt(d_c, CURLOPT_COPYPOSTFIELDS, tmpstr);
+ free(tmpstr);
} else {
// perform normal get
curl_easy_setopt(d_c, CURLOPT_HTTPGET, 1);
@@ -138,15 +268,49 @@
!strncmp(member,"name",4) || !strncmp(member,"kind",4) ||
!strncmp(member,"qtype",5) || !strncmp(member,"id",2) ||
!strncmp(member,"key",3)) continue;
- json2string(parameters[member], sparam);
- snprintf(header, sizeof header, "X-RemoteBackend-%s: %s", iter->name.GetString(), sparam.c_str());
- (*slist) = curl_slist_append((*slist), header);
+ if (json2string(parameters[member], sparam)) {
+ snprintf(header, sizeof header, "X-RemoteBackend-%s: %s", iter->name.GetString(), sparam.c_str());
+ (*slist) = curl_slist_append((*slist), header);
+ }
};
+ // finally add suffix and store url
+ ss << d_url_suffix;
+ curl_easy_setopt(d_c, CURLOPT_URL, ss.str().c_str());
+
// store headers into request
curl_easy_setopt(d_c, CURLOPT_HTTPHEADER, *slist);
}
+void HTTPConnector::post_requestbuilder(const rapidjson::Document &input, struct curl_slist **slist) {
+ if (this->d_post_json) {
+ // simple case, POST JSON into url. nothing fancy.
+ std::string out = makeStringFromDocument(input);
+ (*slist) = curl_slist_append((*slist), "Content-Type: text/javascript; charset=utf-8");
+ curl_easy_setopt(d_c, CURLOPT_POSTFIELDSIZE, out.size());
+ curl_easy_setopt(d_c, CURLOPT_COPYPOSTFIELDS, out.c_str());
+ curl_easy_setopt(d_c, CURLOPT_URL, d_url.c_str());
+ curl_easy_setopt(d_c, CURLOPT_HTTPHEADER, *slist);
+ } else {
+ std::stringstream url,content;
+ char *tmpstr;
+ // call url/method.suffix
+ rapidjson::StringBuffer output;
+ rapidjson::Writer<rapidjson::StringBuffer> w(output);
+ input["parameters"].Accept(w);
+ url << d_url << "/" << input["method"].GetString() << d_url_suffix;
+ // then build content
+ tmpstr = curl_easy_escape(d_c, output.GetString(), 0);
+ content << "parameters=" << tmpstr;
+ // convert into parameters=urlencoded
+ curl_easy_setopt(d_c, CURLOPT_POSTFIELDSIZE, content.str().size());
+ curl_easy_setopt(d_c, CURLOPT_COPYPOSTFIELDS, content.str().c_str());
+ free(tmpstr);
+ curl_easy_setopt(d_c, CURLOPT_URL, d_url.c_str());
+ curl_easy_setopt(d_c, CURLOPT_URL, url.str().c_str());
+ }
+}
+
int HTTPConnector::send_message(const rapidjson::Document &input) {
int rv;
long rcode;
@@ -160,11 +324,26 @@
d_data = "";
curl_easy_setopt(d_c, CURLOPT_NOSIGNAL, 1);
curl_easy_setopt(d_c, CURLOPT_TIMEOUT, this->timeout);
+
+ // turn off peer verification or set verification roots
+ if (d_capath.empty()) {
+ if (d_cafile.empty()) {
+ curl_easy_setopt(d_c, CURLOPT_SSL_VERIFYPEER, 0);
+ } else {
+ curl_easy_setopt(d_c, CURLOPT_CAINFO, d_cafile.c_str());
+ }
+ } else {
+ curl_easy_setopt(d_c, CURLOPT_CAPATH, d_capath.c_str());
+ }
slist = NULL;
- // build request
- requestbuilder(input["method"].GetString(), input["parameters"], &slist);
+ // build request based on mode
+
+ if (d_post)
+ post_requestbuilder(input, &slist);
+ else
+ restful_requestbuilder(input["method"].GetString(), input["parameters"], &slist);
// setup write function helper
curl_easy_setopt(d_c, CURLOPT_WRITEFUNCTION, &(httpconnector_write_data));
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/modules/remotebackend/remotebackend.cc
^
|
@@ -43,12 +43,17 @@
return false;
}
+/**
+ * Standard ctor and dtor
+ */
RemoteBackend::RemoteBackend(const std::string &suffix)
{
setArgPrefix("remote"+suffix);
build(getArg("connection-string"));
+ this->d_result = NULL;
this->d_dnssec = mustDo("dnssec");
this->d_index = -1;
+ this->d_trxid = 0;
}
RemoteBackend::~RemoteBackend() {
@@ -327,7 +332,10 @@
DNSBackend::KeyData key;
key.id = (*iter)["id"].GetUint();
key.flags = (*iter)["flags"].GetUint();
- key.active = (*iter)["active"].GetBool();
+ if ((*iter)["active"].IsBool())
+ key.active = (*iter)["active"].GetBool();
+ else
+ key.active = ((*iter)["active"].GetInt() != 0 ? true : false ); // case where it's returned as non-boolean
key.content = (*iter)["content"].GetString();
keys.push_back(key);
}
@@ -342,7 +350,7 @@
if (d_dnssec == false) return false;
query.SetObject();
- JSON_ADD_MEMBER(query, "method", "getDomainKeys", query.GetAllocator());
+ JSON_ADD_MEMBER(query, "method", "removeDomainKey", query.GetAllocator());
parameters.SetObject();
JSON_ADD_MEMBER(parameters, "name", name.c_str(), query.GetAllocator());
JSON_ADD_MEMBER(parameters, "id", id, query.GetAllocator());
@@ -351,7 +359,7 @@
if (connector->send(query) == false || connector->recv(answer) == false)
return false;
- return answer["result"].GetBool();
+ return true;
}
int RemoteBackend::addDomainKey(const string& name, const KeyData& key) {
@@ -394,7 +402,7 @@
if (connector->send(query) == false || connector->recv(answer) == false)
return false;
- return answer["result"].GetBool();
+ return true;
}
bool RemoteBackend::deactivateDomainKey(const string& name, unsigned int id) {
@@ -414,7 +422,7 @@
if (connector->send(query) == false || connector->recv(answer) == false)
return false;
- return answer["result"].GetBool();
+ return true;
}
bool RemoteBackend::doesDNSSEC() {
@@ -499,13 +507,272 @@
JSON_ADD_MEMBER(query, "method", "setNotified", query.GetAllocator());
parameters.SetObject();
JSON_ADD_MEMBER(parameters, "id", id, query.GetAllocator());
- JSON_ADD_MEMBER(parameters, "serial", id, query.GetAllocator());
-
+ JSON_ADD_MEMBER(parameters, "serial", serial, query.GetAllocator());
+ query.AddMember("parameters", parameters, query.GetAllocator());
+
if (connector->send(query) == false || connector->recv(answer) == false) {
L<<Logger::Error<<kBackendId<<"Failed to execute RPC for RemoteBackend::setNotified("<<id<<","<<serial<<")"<<endl;
}
}
+bool RemoteBackend::superMasterBackend(const string &ip, const string &domain, const vector<DNSResourceRecord>&nsset, string *account, DNSBackend **ddb)
+{
+ rapidjson::Document query,answer;
+ rapidjson::Value parameters;
+ rapidjson::Value rrset;
+
+ query.SetObject();
+ JSON_ADD_MEMBER(query, "method", "superMasterBackend", query.GetAllocator());
+ parameters.SetObject();
+ JSON_ADD_MEMBER(parameters, "ip", ip.c_str(), query.GetAllocator());
+ JSON_ADD_MEMBER(parameters, "domain", domain.c_str(), query.GetAllocator());
+ rrset.SetArray();
+ rrset.Reserve(nsset.size(), query.GetAllocator());
+ for(rapidjson::SizeType i = 0; i < nsset.size(); i++) {
+ rapidjson::Value rr;
+ rr.SetObject();
+ JSON_ADD_MEMBER(rr, "qtype", nsset[i].qtype.getName().c_str(), query.GetAllocator());
+ JSON_ADD_MEMBER(rr, "qname", nsset[i].qname.c_str(), query.GetAllocator());
+ JSON_ADD_MEMBER(rr, "qclass", QClass::IN, query.GetAllocator());
+ JSON_ADD_MEMBER(rr, "content", nsset[i].content.c_str(), query.GetAllocator());
+ JSON_ADD_MEMBER(rr, "ttl", nsset[i].ttl, query.GetAllocator());
+ JSON_ADD_MEMBER(rr, "priority", nsset[i].priority, query.GetAllocator());
+ JSON_ADD_MEMBER(rr, "auth", nsset[i].auth, query.GetAllocator());
+ rrset.PushBack(rr, query.GetAllocator());
+ }
+ parameters.AddMember("nsset", rrset, query.GetAllocator());
+ query.AddMember("parameters", parameters, query.GetAllocator());
+
+ *ddb = 0;
+
+ if (connector->send(query) == false || connector->recv(answer) == false)
+ return false;
+
+ // we are the backend
+ *ddb = this;
+
+ // we allow simple true as well...
+ if (answer["result"].IsObject() && answer["result"].HasMember("account"))
+ *account = answer["result"]["account"].GetString();
+
+ return true;
+}
+
+bool RemoteBackend::createSlaveDomain(const string &ip, const string &domain, const string &account) {
+ rapidjson::Document query,answer;
+ rapidjson::Value parameters;
+ query.SetObject();
+ JSON_ADD_MEMBER(query, "method", "createSlaveDomain", query.GetAllocator());
+ parameters.SetObject();
+ JSON_ADD_MEMBER(parameters, "ip", ip.c_str(), query.GetAllocator());
+ JSON_ADD_MEMBER(parameters, "domain", domain.c_str(), query.GetAllocator());
+ JSON_ADD_MEMBER(parameters, "account", account.c_str(), query.GetAllocator());
+ query.AddMember("parameters", parameters, query.GetAllocator());
+
+ if (connector->send(query) == false || connector->recv(answer) == false)
+ return false;
+ return true;
+}
+
+bool RemoteBackend::replaceRRSet(uint32_t domain_id, const string& qname, const QType& qtype, const vector<DNSResourceRecord>& rrset) {
+ rapidjson::Document query,answer;
+ rapidjson::Value parameters;
+ rapidjson::Value rj_rrset;
+ query.SetObject();
+ JSON_ADD_MEMBER(query, "method", "replaceRRSet", query.GetAllocator());
+ parameters.SetObject();
+ JSON_ADD_MEMBER(parameters, "domain_id", domain_id, query.GetAllocator());
+ JSON_ADD_MEMBER(parameters, "qname", qname.c_str(), query.GetAllocator());
+ JSON_ADD_MEMBER(parameters, "qtype", qtype.getName().c_str(), query.GetAllocator());
+ JSON_ADD_MEMBER(parameters, "trxid", d_trxid, query.GetAllocator());
+
+ rj_rrset.SetArray();
+ rj_rrset.Reserve(rrset.size(), query.GetAllocator());
+
+ for(rapidjson::SizeType i = 0; i < rrset.size(); i++) {
+ rapidjson::Value rr;
+ rr.SetObject();
+ JSON_ADD_MEMBER(rr, "qtype", rrset[i].qtype.getName().c_str(), query.GetAllocator());
+ JSON_ADD_MEMBER(rr, "qname", rrset[i].qname.c_str(), query.GetAllocator());
+ JSON_ADD_MEMBER(rr, "qclass", QClass::IN, query.GetAllocator());
+ JSON_ADD_MEMBER(rr, "content", rrset[i].content.c_str(), query.GetAllocator());
+ JSON_ADD_MEMBER(rr, "ttl", rrset[i].ttl, query.GetAllocator());
+ JSON_ADD_MEMBER(rr, "priority", rrset[i].priority, query.GetAllocator());
+ JSON_ADD_MEMBER(rr, "auth", rrset[i].auth, query.GetAllocator());
+ rj_rrset.PushBack(rr, query.GetAllocator());
+ }
+ parameters.AddMember("rrset", rj_rrset, query.GetAllocator());
+ query.AddMember("parameters", parameters, query.GetAllocator());
+
+ if (connector->send(query) == false || connector->recv(answer) == false)
+ return false;
+
+ return true;
+}
+
+bool RemoteBackend::feedRecord(const DNSResourceRecord &rr, string *ordername) {
+ rapidjson::Document query,answer;
+ rapidjson::Value parameters,rj_rr;
+ query.SetObject();
+ JSON_ADD_MEMBER(query, "method", "feedRecord", query.GetAllocator());
+ parameters.SetObject();
+ rj_rr.SetObject();
+ JSON_ADD_MEMBER(rj_rr, "qtype", rr.qtype.getName().c_str(), query.GetAllocator());
+ JSON_ADD_MEMBER(rj_rr, "qname", rr.qname.c_str(), query.GetAllocator());
+ JSON_ADD_MEMBER(rj_rr, "qclass", QClass::IN, query.GetAllocator());
+ JSON_ADD_MEMBER(rj_rr, "content", rr.content.c_str(), query.GetAllocator());
+ JSON_ADD_MEMBER(rj_rr, "ttl", rr.ttl, query.GetAllocator());
+ JSON_ADD_MEMBER(rj_rr, "priority", rr.priority, query.GetAllocator());
+ JSON_ADD_MEMBER(rj_rr, "auth", rr.auth, query.GetAllocator());
+ parameters.AddMember("rr", rj_rr, query.GetAllocator());
+
+ JSON_ADD_MEMBER(parameters, "trxid", d_trxid, query.GetAllocator());
+
+ if (ordername) {
+ JSON_ADD_MEMBER(parameters, "ordername", ordername->c_str(), query.GetAllocator());
+ }
+
+ query.AddMember("parameters", parameters, query.GetAllocator());
+
+ if (connector->send(query) == false || connector->recv(answer) == false)
+ return false;
+ return true; // XXX FIXME this API should not return 'true' I think -ahu
+}
+
+bool RemoteBackend::feedEnts(int domain_id, set<string>& nonterm) {
+ rapidjson::Document query,answer;
+ rapidjson::Value parameters;
+ rapidjson::Value nts;
+ query.SetObject();
+ JSON_ADD_MEMBER(query, "method", "feedEnts", query.GetAllocator());
+ parameters.SetObject();
+ JSON_ADD_MEMBER(parameters, "domain_id", domain_id, query.GetAllocator());
+ JSON_ADD_MEMBER(parameters, "trxid", d_trxid, query.GetAllocator());
+ nts.SetArray();
+ BOOST_FOREACH(const string &t, nonterm) {
+ nts.PushBack(t.c_str(), query.GetAllocator());
+ }
+ parameters.AddMember("nonterm", nts, query.GetAllocator());
+ query.AddMember("parameters", parameters, query.GetAllocator());
+
+ if (connector->send(query) == false || connector->recv(answer) == false)
+ return false;
+ return true;
+}
+
+bool RemoteBackend::feedEnts3(int domain_id, const string &domain, set<string> &nonterm, unsigned int times, const string &salt, bool narrow) {
+ rapidjson::Document query,answer;
+ rapidjson::Value parameters;
+ rapidjson::Value nts;
+ query.SetObject();
+ JSON_ADD_MEMBER(query, "method", "feedEnts3", query.GetAllocator());
+ parameters.SetObject();
+ JSON_ADD_MEMBER(parameters, "domain_id", domain_id, query.GetAllocator());
+ JSON_ADD_MEMBER(parameters, "domain", domain.c_str(), query.GetAllocator());
+ JSON_ADD_MEMBER(parameters, "times", times, query.GetAllocator());
+ JSON_ADD_MEMBER(parameters, "salt", salt.c_str(), query.GetAllocator());
+ JSON_ADD_MEMBER(parameters, "narrow", narrow, query.GetAllocator());
+ JSON_ADD_MEMBER(parameters, "trxid", d_trxid, query.GetAllocator());
+
+ nts.SetArray();
+ BOOST_FOREACH(const string &t, nonterm) {
+ nts.PushBack(t.c_str(), query.GetAllocator());
+ }
+ parameters.AddMember("nonterm", nts, query.GetAllocator());
+ query.AddMember("parameters", parameters, query.GetAllocator());
+
+ if (connector->send(query) == false || connector->recv(answer) == false)
+ return false;
+ return true;
+}
+
+bool RemoteBackend::startTransaction(const string &domain, int domain_id) {
+ rapidjson::Document query,answer;
+ rapidjson::Value parameters;
+ this->d_trxid = time((time_t*)NULL);
+
+ query.SetObject();
+ JSON_ADD_MEMBER(query, "method", "startTransaction", query.GetAllocator());
+ parameters.SetObject();
+ JSON_ADD_MEMBER(parameters, "domain", domain.c_str(), query.GetAllocator());
+ JSON_ADD_MEMBER(parameters, "domain_id", domain_id, query.GetAllocator());
+ JSON_ADD_MEMBER(parameters, "trxid", d_trxid, query.GetAllocator());
+
+ query.AddMember("parameters", parameters, query.GetAllocator());
+
+ if (connector->send(query) == false || connector->recv(answer) == false) {
+ d_trxid = -1;
+ return false;
+ }
+ return true;
+
+}
+bool RemoteBackend::commitTransaction() {
+ rapidjson::Document query,answer;
+ rapidjson::Value parameters;
+
+ query.SetObject();
+ JSON_ADD_MEMBER(query, "method", "abortTransaction", query.GetAllocator());
+ parameters.SetObject();
+ JSON_ADD_MEMBER(parameters, "trxid", d_trxid, query.GetAllocator());
+ query.AddMember("parameters", parameters, query.GetAllocator());
+
+ d_trxid = -1;
+ if (connector->send(query) == false || connector->recv(answer) == false)
+ return false;
+ return true;
+}
+
+bool RemoteBackend::abortTransaction() {
+ rapidjson::Document query,answer;
+ rapidjson::Value parameters;
+
+ query.SetObject();
+ JSON_ADD_MEMBER(query, "method", "commitTransaction", query.GetAllocator());
+ parameters.SetObject();
+ JSON_ADD_MEMBER(parameters, "trxid", d_trxid, query.GetAllocator());
+ query.AddMember("parameters", parameters, query.GetAllocator());
+
+ d_trxid = -1;
+ if (connector->send(query) == false || connector->recv(answer) == false)
+ return false;
+ return true;
+}
+
+bool RemoteBackend::calculateSOASerial(const string& domain, const SOAData& sd, time_t& serial) {
+ rapidjson::Document query,answer;
+ rapidjson::Value parameters;
+ rapidjson::Value soadata;
+
+ query.SetObject();
+ JSON_ADD_MEMBER(query, "method", "calculateSOASerial", query.GetAllocator());
+ parameters.SetObject();
+ JSON_ADD_MEMBER(parameters, "domain", domain.c_str(), query.GetAllocator());
+ soadata.SetObject();
+ JSON_ADD_MEMBER(soadata, "qname", sd.qname.c_str(), query.GetAllocator());
+ JSON_ADD_MEMBER(soadata, "nameserver", sd.nameserver.c_str(), query.GetAllocator());
+ JSON_ADD_MEMBER(soadata, "hostmaster", sd.hostmaster.c_str(), query.GetAllocator());
+ JSON_ADD_MEMBER(soadata, "ttl", sd.ttl, query.GetAllocator());
+ JSON_ADD_MEMBER(soadata, "serial", sd.serial, query.GetAllocator());
+ JSON_ADD_MEMBER(soadata, "refresh", sd.refresh, query.GetAllocator());
+ JSON_ADD_MEMBER(soadata, "retry", sd.retry, query.GetAllocator());
+ JSON_ADD_MEMBER(soadata, "expire", sd.expire, query.GetAllocator());
+ JSON_ADD_MEMBER(soadata, "default_ttl", sd.default_ttl, query.GetAllocator());
+ JSON_ADD_MEMBER(soadata, "domain_id", sd.domain_id, query.GetAllocator());
+ JSON_ADD_MEMBER(soadata, "scopeMask", sd.scopeMask, query.GetAllocator());
+ parameters.AddMember("sd", soadata, query.GetAllocator());
+ query.AddMember("parameters", parameters, query.GetAllocator());
+
+ if (connector->send(query) == false || connector->recv(answer) == false)
+ return false;
+
+ if (answer["result"].IsInt64() == false)
+ return false;
+
+ serial = answer["result"].GetInt64();
+ return true;
+}
+
DNSBackend *RemoteBackend::maker()
{
try {
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/modules/remotebackend/remotebackend.hh
^
|
@@ -59,15 +59,20 @@
virtual int send_message(const rapidjson::Document &input);
virtual int recv_message(rapidjson::Document &output);
- friend size_t ::httpconnector_write_data(void*, size_t, size_t, void *value);
+ friend size_t httpconnector_write_data(void*, size_t, size_t, void *value);
private:
std::string d_url;
std::string d_url_suffix;
CURL *d_c;
std::string d_data;
int timeout;
- void json2string(const rapidjson::Value &input, std::string &output);
- void requestbuilder(const std::string &method, const rapidjson::Value ¶meters, struct curl_slist **slist);
+ bool d_post;
+ bool d_post_json;
+ std::string d_capath;
+ std::string d_cafile;
+ bool json2string(const rapidjson::Value &input, std::string &output);
+ void restful_requestbuilder(const std::string &method, const rapidjson::Value ¶meters, struct curl_slist **slist);
+ void post_requestbuilder(const rapidjson::Document &input, struct curl_slist **slist);
void addUrlComponent(const rapidjson::Value ¶meters, const char *element, std::stringstream& ss);
};
#endif
@@ -111,6 +116,16 @@
virtual bool getDomainInfo(const string&, DomainInfo&);
virtual void setNotified(uint32_t id, uint32_t serial);
virtual bool doesDNSSEC();
+ virtual bool superMasterBackend(const string &ip, const string &domain, const vector<DNSResourceRecord>&nsset, string *account, DNSBackend **ddb);
+ virtual bool createSlaveDomain(const string &ip, const string &domain, const string &account);
+ virtual bool replaceRRSet(uint32_t domain_id, const string& qname, const QType& qt, const vector<DNSResourceRecord>& rrset);
+ virtual bool feedRecord(const DNSResourceRecord &r, string *ordername);
+ virtual bool feedEnts(int domain_id, set<string>& nonterm);
+ virtual bool feedEnts3(int domain_id, const string &domain, set<string> &nonterm, unsigned int times, const string &salt, bool narrow);
+ virtual bool startTransaction(const string &domain, int domain_id);
+ virtual bool commitTransaction();
+ virtual bool abortTransaction();
+ virtual bool calculateSOASerial(const string& domain, const SOAData& sd, time_t& serial);
static DNSBackend *maker();
@@ -119,6 +134,7 @@
Connector *connector;
bool d_dnssec;
rapidjson::Document *d_result;
- int d_index;
+ int d_index;
+ int64_t d_trxid;
};
#endif
|
[-]
[+]
|
Added |
pdns-3.3.tar.gz/modules/remotebackend/test-remotebackend-http.cc
^
|
@@ -0,0 +1,73 @@
+#include "pdns/namespaces.hh"
+#include <pdns/dns.hh>
+#include <pdns/dnsbackend.hh>
+#include <pdns/dnspacket.hh>
+#include <pdns/ueberbackend.hh>
+#include <pdns/ahuexception.hh>
+#include <pdns/logger.hh>
+#include <pdns/arguments.hh>
+#include <boost/lexical_cast.hpp>
+#include <rapidjson/rapidjson.h>
+#include <rapidjson/document.h>
+#include "pdns/json.hh"
+#include "pdns/statbag.hh"
+#include "pdns/packetcache.hh"
+
+StatBag S;
+PacketCache PC;
+ArgvMap &arg()
+{
+ static ArgvMap arg;
+ return arg;
+};
+
+class RemoteLoader
+{
+ public:
+ RemoteLoader();
+};
+
+DNSBackend *be;
+
+#ifdef REMOTEBACKEND_HTTP
+
+#define BOOST_TEST_DYN_LINK
+#define BOOST_TEST_MAIN
+#define BOOST_TEST_MODULE unit
+
+#include <boost/test/unit_test.hpp>
+#include <boost/assign/list_of.hpp>
+#include <boost/foreach.hpp>
+#include <boost/tuple/tuple.hpp>
+
+struct RemotebackendSetup {
+ RemotebackendSetup() {
+ be = 0;
+ try {
+ // setup minimum arguments
+ ::arg().set("module-dir")="";
+ new RemoteLoader();
+ BackendMakers().launch("remote");
+ // then get us a instance of it
+ ::arg().set("remote-connection-string")="http:url=http://localhost:62434/dns";
+ ::arg().set("remote-dnssec")="yes";
+ be = BackendMakers().all()[0];
+ } catch (AhuException &ex) {
+ BOOST_TEST_MESSAGE("Cannot start remotebackend: " << ex.reason );
+ };
+ }
+ ~RemotebackendSetup() { }
+};
+
+BOOST_GLOBAL_FIXTURE( RemotebackendSetup );
+
+#else
+
+#include <iostream>
+
+int main(void) {
+ std::cout << "No HTTP support in remotebackend - skipping test" << std::endl;
+ return 0;
+}
+
+#endif
|
[-]
[+]
|
Added |
pdns-3.3.tar.gz/modules/remotebackend/test-remotebackend-json.cc
^
|
@@ -0,0 +1,73 @@
+#include "pdns/namespaces.hh"
+#include <pdns/dns.hh>
+#include <pdns/dnsbackend.hh>
+#include <pdns/dnspacket.hh>
+#include <pdns/ueberbackend.hh>
+#include <pdns/ahuexception.hh>
+#include <pdns/logger.hh>
+#include <pdns/arguments.hh>
+#include <boost/lexical_cast.hpp>
+#include <rapidjson/rapidjson.h>
+#include <rapidjson/document.h>
+#include "pdns/json.hh"
+#include "pdns/statbag.hh"
+#include "pdns/packetcache.hh"
+
+StatBag S;
+PacketCache PC;
+ArgvMap &arg()
+{
+ static ArgvMap arg;
+ return arg;
+};
+
+class RemoteLoader
+{
+ public:
+ RemoteLoader();
+};
+
+DNSBackend *be;
+
+#ifdef REMOTEBACKEND_HTTP
+
+#define BOOST_TEST_DYN_LINK
+#define BOOST_TEST_MAIN
+#define BOOST_TEST_MODULE unit
+
+#include <boost/test/unit_test.hpp>
+#include <boost/assign/list_of.hpp>
+#include <boost/foreach.hpp>
+#include <boost/tuple/tuple.hpp>
+
+struct RemotebackendSetup {
+ RemotebackendSetup() {
+ be = 0;
+ try {
+ // setup minimum arguments
+ ::arg().set("module-dir")="";
+ new RemoteLoader();
+ BackendMakers().launch("remote");
+ // then get us a instance of it
+ ::arg().set("remote-connection-string")="http:url=http://localhost:62434/dns/endpoint.json,post=1,post_json=1";
+ ::arg().set("remote-dnssec")="yes";
+ be = BackendMakers().all()[0];
+ } catch (AhuException &ex) {
+ BOOST_TEST_MESSAGE("Cannot start remotebackend: " << ex.reason );
+ };
+ }
+ ~RemotebackendSetup() { }
+};
+
+BOOST_GLOBAL_FIXTURE( RemotebackendSetup );
+
+#else
+
+#include <iostream>
+
+int main(void) {
+ std::cout << "No HTTP support in remotebackend - skipping test" << std::endl;
+ return 0;
+}
+
+#endif
|
[-]
[+]
|
Added |
pdns-3.3.tar.gz/modules/remotebackend/test-remotebackend-pipe.cc
^
|
@@ -0,0 +1,65 @@
+#define BOOST_TEST_DYN_LINK
+#define BOOST_TEST_MAIN
+#define BOOST_TEST_MODULE unit
+
+#include <boost/test/unit_test.hpp>
+#include <boost/assign/list_of.hpp>
+#include <boost/foreach.hpp>
+#include <boost/tuple/tuple.hpp>
+#include "pdns/namespaces.hh"
+#include <pdns/dns.hh>
+#include <pdns/dnsbackend.hh>
+#include <pdns/dnspacket.hh>
+#include <pdns/ueberbackend.hh>
+#include <pdns/ahuexception.hh>
+#include <pdns/logger.hh>
+#include <pdns/arguments.hh>
+#include "pdns/dnsrecords.hh"
+#include <boost/lexical_cast.hpp>
+#include <rapidjson/rapidjson.h>
+#include <rapidjson/document.h>
+#include "pdns/json.hh"
+#include "pdns/statbag.hh"
+#include "pdns/packetcache.hh"
+
+StatBag S;
+PacketCache PC;
+ArgvMap &arg()
+{
+ static ArgvMap arg;
+ return arg;
+};
+
+class RemoteLoader
+{
+ public:
+ RemoteLoader();
+};
+
+DNSBackend *be;
+
+struct RemotebackendSetup {
+ RemotebackendSetup() {
+ be = 0;
+ try {
+ // setup minimum arguments
+ ::arg().set("module-dir")="";
+ new RemoteLoader();
+ BackendMakers().launch("remote");
+ // then get us a instance of it
+ ::arg().set("remote-connection-string")="pipe:command=unittest_pipe.rb";
+ ::arg().set("remote-dnssec")="yes";
+ be = BackendMakers().all()[0];
+ // load few record types to help out
+ SOARecordContent::report();
+ NSRecordContent::report();
+ ARecordContent::report();
+ } catch (AhuException &ex) {
+ BOOST_TEST_MESSAGE("Cannot start remotebackend: " << ex.reason );
+ };
+ }
+ ~RemotebackendSetup() { }
+};
+
+BOOST_GLOBAL_FIXTURE( RemotebackendSetup );
+
|
[-]
[+]
|
Added |
pdns-3.3.tar.gz/modules/remotebackend/test-remotebackend-post.cc
^
|
@@ -0,0 +1,73 @@
+#include "pdns/namespaces.hh"
+#include <pdns/dns.hh>
+#include <pdns/dnsbackend.hh>
+#include <pdns/dnspacket.hh>
+#include <pdns/ueberbackend.hh>
+#include <pdns/ahuexception.hh>
+#include <pdns/logger.hh>
+#include <pdns/arguments.hh>
+#include <boost/lexical_cast.hpp>
+#include <rapidjson/rapidjson.h>
+#include <rapidjson/document.h>
+#include "pdns/json.hh"
+#include "pdns/statbag.hh"
+#include "pdns/packetcache.hh"
+
+StatBag S;
+PacketCache PC;
+ArgvMap &arg()
+{
+ static ArgvMap arg;
+ return arg;
+};
+
+class RemoteLoader
+{
+ public:
+ RemoteLoader();
+};
+
+DNSBackend *be;
+
+#ifdef REMOTEBACKEND_HTTP
+
+#define BOOST_TEST_DYN_LINK
+#define BOOST_TEST_MAIN
+#define BOOST_TEST_MODULE unit
+
+#include <boost/test/unit_test.hpp>
+#include <boost/assign/list_of.hpp>
+#include <boost/foreach.hpp>
+#include <boost/tuple/tuple.hpp>
+
+struct RemotebackendSetup {
+ RemotebackendSetup() {
+ be = 0;
+ try {
+ // setup minimum arguments
+ ::arg().set("module-dir")="";
+ new RemoteLoader();
+ BackendMakers().launch("remote");
+ // then get us a instance of it
+ ::arg().set("remote-connection-string")="http:url=http://localhost:62434/dns,post=1";
+ ::arg().set("remote-dnssec")="yes";
+ be = BackendMakers().all()[0];
+ } catch (AhuException &ex) {
+ BOOST_TEST_MESSAGE("Cannot start remotebackend: " << ex.reason );
+ };
+ }
+ ~RemotebackendSetup() { }
+};
+
+BOOST_GLOBAL_FIXTURE( RemotebackendSetup );
+
+#else
+
+#include <iostream>
+
+int main(void) {
+ std::cout << "No HTTP support in remotebackend - skipping test" << std::endl;
+ return 0;
+}
+
+#endif
|
[-]
[+]
|
Added |
pdns-3.3.tar.gz/modules/remotebackend/test-remotebackend.cc
^
|
@@ -0,0 +1,247 @@
+#define BOOST_TEST_DYN_LINK
+#define BOOST_TEST_NO_MAIN
+
+#include <boost/test/unit_test.hpp>
+#include <boost/assign/list_of.hpp>
+#include <boost/foreach.hpp>
+#include <boost/tuple/tuple.hpp>
+#include "pdns/namespaces.hh"
+#include <pdns/dns.hh>
+#include <pdns/dnsbackend.hh>
+#include <pdns/dnspacket.hh>
+#include <pdns/ueberbackend.hh>
+#include <pdns/ahuexception.hh>
+#include <pdns/logger.hh>
+#include <pdns/arguments.hh>
+#include <boost/lexical_cast.hpp>
+#include <rapidjson/rapidjson.h>
+#include <rapidjson/document.h>
+#include "pdns/json.hh"
+#include "pdns/statbag.hh"
+#include "pdns/packetcache.hh"
+
+#include "test-remotebackend-keys.hh"
+
+extern DNSBackend *be;
+
+BOOST_AUTO_TEST_SUITE(test_remotebackend_so)
+
+BOOST_AUTO_TEST_CASE(test_method_lookup) {
+ BOOST_TEST_MESSAGE("Testing lookup method");
+ DNSResourceRecord rr;
+ be->lookup(QType(QType::SOA), "unit.test");
+ // then try to get()
+ BOOST_CHECK(be->get(rr)); // and this should be TRUE.
+ // then we check rr contains what we expect
+ BOOST_CHECK_EQUAL(rr.qname, "unit.test");
+ BOOST_CHECK_MESSAGE(rr.qtype == QType::SOA, "returned qtype was not SOA");
+ BOOST_CHECK_EQUAL(rr.content, "ns.unit.test hostmaster.unit.test 1 2 3 4 5 6");
+ BOOST_CHECK_EQUAL(rr.ttl, 300);
+}
+
+BOOST_AUTO_TEST_CASE(test_method_list) {
+ int record_count = 0;
+ DNSResourceRecord rr;
+
+ BOOST_TEST_MESSAGE("Testing list method");
+ be->list("unit.test", -1);
+ while(be->get(rr)) record_count++;
+
+ BOOST_CHECK_EQUAL(record_count, 5); // number of records our test domain has
+}
+
+BOOST_AUTO_TEST_CASE(test_method_doesDNSSEC) {
+ BOOST_TEST_MESSAGE("Testing doesDNSSEC method");
+ BOOST_CHECK(be->doesDNSSEC()); // should be true
+}
+
+BOOST_AUTO_TEST_CASE(test_method_setDomainMetadata) {
+ std::vector<std::string> meta;
+ meta.push_back("VALUE");
+ BOOST_TEST_MESSAGE("Testing setDomainMetadata method");
+ BOOST_CHECK(be->setDomainMetadata("unit.test","TEST", meta));
+}
+
+BOOST_AUTO_TEST_CASE(test_method_getDomainMetadata) {
+ std::vector<std::string> meta;
+ BOOST_TEST_MESSAGE("Testing getDomainMetadata method");
+ be->getDomainMetadata("unit.test","TEST", meta);
+ BOOST_CHECK_EQUAL(meta.size(), 1);
+ // in case we got more than one value, which would be unexpected
+ // but not fatal
+ if (meta.size() > 0)
+ BOOST_CHECK_EQUAL(meta[0], "VALUE");
+}
+
+BOOST_AUTO_TEST_CASE(test_method_addDomainKey) {
+ BOOST_TEST_MESSAGE("Testing addDomainKey method");
+ BOOST_CHECK_EQUAL(be->addDomainKey("unit.test",k1), 1);
+ BOOST_CHECK_EQUAL(be->addDomainKey("unit.test",k2), 2);
+}
+
+BOOST_AUTO_TEST_CASE(test_method_getDomainKeys) {
+ std::vector<DNSBackend::KeyData> keys;
+ BOOST_TEST_MESSAGE("Testing getDomainKeys method");
+ // we expect to get two keys
+ be->getDomainKeys("unit.test",0,keys);
+ BOOST_CHECK_EQUAL(keys.size(), 2);
+ // in case we got more than 2 keys, which would be unexpected
+ // but not fatal
+ if (keys.size() > 1) {
+ // check that we have two keys
+ BOOST_FOREACH(DNSBackend::KeyData &kd, keys) {
+ BOOST_CHECK(kd.id > 0);
+ BOOST_CHECK(kd.flags == 256 || kd.flags == 257);
+ BOOST_CHECK(kd.active == true);
+ BOOST_CHECK(kd.content.size() > 500);
+ }
+ }
+}
+
+BOOST_AUTO_TEST_CASE(test_method_deactivateDomainKey) {
+ BOOST_TEST_MESSAGE("Testing deactivateDomainKey method");
+ BOOST_CHECK(be->deactivateDomainKey("unit.test",1));
+}
+
+BOOST_AUTO_TEST_CASE(test_method_activateDomainKey) {
+ BOOST_TEST_MESSAGE("Testing activateDomainKey method");
+ BOOST_CHECK(be->activateDomainKey("unit.test",1));
+}
+
+BOOST_AUTO_TEST_CASE(test_method_removeDomainKey) {
+ BOOST_CHECK(be->removeDomainKey("unit.test",2));
+ BOOST_CHECK(be->removeDomainKey("unit.test",1));
+}
+
+BOOST_AUTO_TEST_CASE(test_method_getBeforeAndAfterNamesAbsolute) {
+ std::string unhashed,before,after;
+ BOOST_TEST_MESSAGE("Testing getBeforeAndAfterNamesAbsolute method");
+
+ be->getBeforeAndAfterNamesAbsolute(-1, "middle.unit.test", unhashed, before, after);
+ BOOST_CHECK_EQUAL(unhashed, "middle");
+ BOOST_CHECK_EQUAL(before, "begin");
+ BOOST_CHECK_EQUAL(after, "stop");
+}
+
+BOOST_AUTO_TEST_CASE(test_method_getTSIGKey) {
+ std::string algorithm, content;
+ BOOST_TEST_MESSAGE("Testing getTSIGKey method");
+ be->getTSIGKey("unit.test",&algorithm,&content);
+ BOOST_CHECK_EQUAL(algorithm, "NULL");
+ BOOST_CHECK_EQUAL(content, "NULL");
+}
+
+BOOST_AUTO_TEST_CASE(test_method_setNotified) {
+ BOOST_TEST_MESSAGE("Testing setNotified method");
+ be->setNotified(1, 2);
+ BOOST_CHECK(true); // we check this on next step
+}
+
+BOOST_AUTO_TEST_CASE(test_method_getDomainInfo) {
+ DomainInfo di;
+ BOOST_TEST_MESSAGE("Testing getDomainInfo method");
+ be->getDomainInfo("unit.test", di);
+ BOOST_CHECK_EQUAL(di.zone, "unit.test");
+ BOOST_CHECK_EQUAL(di.serial, 2);
+ BOOST_CHECK_EQUAL(di.notified_serial, 2);
+ BOOST_CHECK_EQUAL(di.kind, DomainInfo::Native);
+ BOOST_CHECK_EQUAL(di.backend, be);
+}
+
+BOOST_AUTO_TEST_CASE(test_method_superMasterBackend) {
+ DNSResourceRecord rr;
+ std::vector<DNSResourceRecord> nsset;
+ DNSBackend *dbd;
+ BOOST_TEST_MESSAGE("Testing superMasterBackend method");
+
+ rr.qname = "example.com";
+ rr.qtype = QType::NS;
+ rr.qclass = QClass::IN;
+ rr.ttl = 300;
+ rr.content = "ns1.example.com";
+ nsset.push_back(rr);
+ rr.qname = "example.com";
+ rr.qtype = QType::NS;
+ rr.qclass = QClass::IN;
+ rr.ttl = 300;
+ rr.content = "ns2.example.com";
+ nsset.push_back(rr);
+
+ BOOST_CHECK(be->superMasterBackend("10.0.0.1", "example.com", nsset, NULL, &dbd));
+
+ // let's see what we got
+ BOOST_CHECK_EQUAL(dbd, be);
+}
+
+BOOST_AUTO_TEST_CASE(test_method_createSlaveDomain) {
+ BOOST_TEST_MESSAGE("Testing createSlaveDomain method");
+ BOOST_CHECK(be->createSlaveDomain("10.0.0.1", "pirate.unit.test", ""));
+}
+
+BOOST_AUTO_TEST_CASE(test_method_feedRecord) {
+ DNSResourceRecord rr;
+ BOOST_TEST_MESSAGE("Testing feedRecord method");
+ be->startTransaction("example.com",2);
+ rr.qname = "example.com";
+ rr.qtype = QType::SOA;
+ rr.qclass = QClass::IN;
+ rr.ttl = 300;
+ rr.content = "ns1.example.com hostmaster.example.com 2013013441 7200 3600 1209600 300";
+ BOOST_CHECK(be->feedRecord(rr, NULL));
+ rr.qname = "replace.example.com";
+ rr.qtype = QType::A;
+ rr.qclass = QClass::IN;
+ rr.ttl = 300;
+ rr.content = "127.0.0.1";
+ BOOST_CHECK(be->feedRecord(rr, NULL));
+ be->commitTransaction();
+}
+
+BOOST_AUTO_TEST_CASE(test_method_replaceRRSet) {
+ be->startTransaction("example.com",2);
+ DNSResourceRecord rr;
+ std::vector<DNSResourceRecord> rrset;
+ BOOST_TEST_MESSAGE("Testing replaceRRSet method");
+ rr.qname = "replace.example.com";
+ rr.qtype = QType::A;
+ rr.qclass = QClass::IN;
+ rr.ttl = 300;
+ rr.content = "1.1.1.1";
+ rrset.push_back(rr);
+ BOOST_CHECK(be->replaceRRSet(2, "replace.example.com", QType(QType::A), rrset));
+ be->commitTransaction();
+}
+
+BOOST_AUTO_TEST_CASE(test_method_feedEnts) {
+ BOOST_TEST_MESSAGE("Testing feedEnts method");
+ be->startTransaction("example.com",2);
+ set<string> nonterm = boost::assign::list_of("_udp")("_sip._udp");
+ BOOST_CHECK(be->feedEnts(2, nonterm));
+ be->commitTransaction();
+}
+
+BOOST_AUTO_TEST_CASE(test_method_feedEnts3) {
+ BOOST_TEST_MESSAGE("Testing feedEnts3 method");
+ be->startTransaction("example.com",2);
+ set<string> nonterm = boost::assign::list_of("_udp")("_sip._udp");
+ BOOST_CHECK(be->feedEnts3(2, "example.com", nonterm, 1, "\xaa\xbb\xcc\xdd", 0));
+ be->commitTransaction();
+}
+
+BOOST_AUTO_TEST_CASE(test_method_abortTransaction) {
+ BOOST_TEST_MESSAGE("Testing abortTransaction method");
+ be->startTransaction("example.com",2);
+ BOOST_CHECK(be->abortTransaction());
+}
+
+BOOST_AUTO_TEST_CASE(test_method_calculateSOASerial) {
+ SOAData sd;
+ time_t serial;
+
+ be->getSOA("unit.test",sd);
+ BOOST_CHECK(be->calculateSOASerial("unit.test",sd,serial));
+
+ BOOST_CHECK_EQUAL(serial, 2013060300);
+}
+
+BOOST_AUTO_TEST_SUITE_END();
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/modules/tinydnsbackend/Makefile.in
^
|
@@ -227,6 +227,7 @@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
RANLIB = @RANLIB@
+REMOTEBACKEND_HTTP = @REMOTEBACKEND_HTTP@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/modules/tinydnsbackend/tinydnsbackend.cc
^
|
@@ -61,17 +61,20 @@
d_locations = mustDo("locations");
d_ignorebogus = mustDo("ignore-bogus-records");
d_taiepoch = 4611686018427387904ULL + getArgAsNum("tai-adjust");
+ d_dnspacket = NULL;
+ d_cdbReader = NULL;
+ d_isAxfr = false;
+ d_isWildcardQuery = false;
}
void TinyDNSBackend::getUpdatedMasters(vector<DomainInfo>* retDomains) {
Lock l(&s_domainInfoLock); //TODO: We could actually lock less if we do it per suffix.
- TDI_t *domains;
if (! s_domainInfo.count(d_suffix)) {
- domains = new TDI_t;
- s_domainInfo[d_suffix] = *domains;
- }
- domains = &s_domainInfo[d_suffix];
+ TDI_t tmp;
+ s_domainInfo.insert( make_pair(d_suffix,tmp) );
+ }
+ TDI_t *domains = &s_domainInfo[d_suffix];
vector<DomainInfo> allDomains;
getAllDomains(&allDomains);
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/modules/xdbbackend/Makefile.in
^
|
@@ -237,6 +237,7 @@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
RANLIB = @RANLIB@
+REMOTEBACKEND_HTTP = @REMOTEBACKEND_HTTP@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/pdns.spec
^
|
@@ -1,6 +1,6 @@
BuildRoot: /tmp/pdns
Name: pdns-static
-Version: 3.3rc1
+Version: 3.3rc2
Release: 1
Summary: extremely powerful and versatile nameserver
License: GPL
@@ -33,11 +33,7 @@
"/usr/man/man8/pdns_control.8"
"/usr/man/man8/pdns_server.8"
"/usr/man/man8/zone2sql.8"
-"/usr/man/man8/dnsreplay.8"
-"/usr/man/man8/dnsscope.8"
-"/usr/man/man8/dnswasher.8"
"/usr/man/man8/pdnssec.8"
-"/usr/man/man8/zone2ldap.8"
%dir "/etc/powerdns/"
%config(noreplace) "/etc/powerdns/pdns.conf"
@@ -59,4 +55,15 @@
%files -n pdns-tools
%defattr(-,root,root)
+"/usr/bin/dnsbulktest"
"/usr/bin/dnsreplay"
+"/usr/bin/dnsscan"
+"/usr/bin/dnsscope"
+"/usr/bin/dnstcpbench"
+"/usr/bin/dnswasher"
+"/usr/bin/nproxy"
+"/usr/bin/nsec3dig"
+"/usr/man/man8/dnsreplay.8"
+"/usr/man/man8/dnsscope.8"
+"/usr/man/man8/dnswasher.8"
+"/usr/man/man1/dnstcpbench.1"
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/pdns/Makefile.am
^
|
@@ -31,16 +31,15 @@
noinst_SCRIPTS = pdns
sysconf_DATA = pdns.conf-dist
-if RECURSOR
-sbin_PROGRAMS = pdns_server pdns_recursor
-bin_PROGRAMS = pdns_control rec_control pdnssec dnsreplay
-else
sbin_PROGRAMS = pdns_server
-bin_PROGRAMS = pdns_control pdnssec dnsreplay
+bin_PROGRAMS = pdns_control pdnssec
+
+if TOOLS
+ bin_PROGRAMS += dnsbulktest dnsreplay dnsscan dnsscope dnstcpbench dnswasher nproxy nsec3dig
endif
-EXTRA_PROGRAMS=pdns_recursor sdig tsig-tests speedtest pdns_control dnsscope dnsgram \
-testrunner \
+EXTRA_PROGRAMS=pdns_recursor sdig dnstcpbench tsig-tests speedtest rec_control dnsscope dnsgram \
+testrunner dnsreplay \
toysdig dnsdemog dnswasher dnsscan nproxy notify pdnssec dnsbulktest nsec3dig # dnslabel # tcptorture
pdns_server_SOURCES=dnspacket.cc nameserver.cc tcpreceiver.hh \
@@ -142,6 +141,12 @@
misc.cc misc.hh rcpgenerator.cc rcpgenerator.hh base64.cc base64.hh unix_utility.cc \
logger.cc statbag.cc qtype.cc sillyrecords.cc nsecrecords.cc base32.cc
+dnstcpbench_SOURCES=dnstcpbench.cc sstuff.hh dnsparser.cc dnsparser.hh dnsrecords.cc dnswriter.cc dnslabeltext.cc dnswriter.hh \
+ misc.cc misc.hh rcpgenerator.cc rcpgenerator.hh base64.cc base64.hh unix_utility.cc \
+ logger.cc statbag.cc qtype.cc sillyrecords.cc nsecrecords.cc base32.cc
+dnstcpbench_LDFLAGS=$(BOOST_PROGRAM_OPTIONS_LDFLAGS)
+dnstcpbench_LDADD=$(BOOST_PROGRAM_OPTIONS_LIBS)
+
nsec3dig_SOURCES=nsec3dig.cc sstuff.hh dnsparser.cc dnsparser.hh dnsrecords.cc dnswriter.cc dnslabeltext.cc \
dnswriter.hh dnssecinfra.cc \
misc.cc misc.hh rcpgenerator.cc rcpgenerator.hh base64.cc base64.hh unix_utility.cc \
@@ -285,10 +290,10 @@
( echo 'static char sqlCreate[] __attribute__((unused))=' ; sed 's/$$/"/g' bind-dnssec.schema.sqlite3.sql | sed 's/^/"/g' ; echo ';' ) > $@
backends/bind/bindlexer.c:
- make -C backends/bind bindlexer.c
+ cd backends/bind && $(MAKE) bindlexer.c
backends/bind/bindparser.cc:
- make -C backends/bind bindparser.cc
+ cd backends/bind && $(MAKE) bindparser.cc
build_date=$(shell LC_TIME=C date '+%Y%m%d%H%M%S')
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/pdns/Makefile.in
^
|
@@ -38,36 +38,32 @@
host_triplet = @host@
@BOTAN110_TRUE@am__append_1 = $(BOTAN110_CFLAGS)
@BOTAN18_TRUE@am__append_2 = $(BOTAN18_CFLAGS)
-@RECURSOR_FALSE@sbin_PROGRAMS = pdns_server$(EXEEXT)
-@RECURSOR_TRUE@sbin_PROGRAMS = pdns_server$(EXEEXT) \
-@RECURSOR_TRUE@ pdns_recursor$(EXEEXT)
-@RECURSOR_FALSE@bin_PROGRAMS = pdns_control$(EXEEXT) pdnssec$(EXEEXT) \
-@RECURSOR_FALSE@ dnsreplay$(EXEEXT)
-@RECURSOR_TRUE@bin_PROGRAMS = pdns_control$(EXEEXT) \
-@RECURSOR_TRUE@ rec_control$(EXEEXT) pdnssec$(EXEEXT) \
-@RECURSOR_TRUE@ dnsreplay$(EXEEXT)
+sbin_PROGRAMS = pdns_server$(EXEEXT)
+bin_PROGRAMS = pdns_control$(EXEEXT) pdnssec$(EXEEXT) $(am__EXEEXT_1)
+@TOOLS_TRUE@am__append_3 = dnsbulktest dnsreplay dnsscan dnsscope dnstcpbench dnswasher nproxy nsec3dig
EXTRA_PROGRAMS = pdns_recursor$(EXEEXT) sdig$(EXEEXT) \
- tsig-tests$(EXEEXT) speedtest$(EXEEXT) pdns_control$(EXEEXT) \
- dnsscope$(EXEEXT) dnsgram$(EXEEXT) testrunner$(EXEEXT) \
- toysdig$(EXEEXT) dnsdemog$(EXEEXT) dnswasher$(EXEEXT) \
- dnsscan$(EXEEXT) nproxy$(EXEEXT) notify$(EXEEXT) \
- pdnssec$(EXEEXT) dnsbulktest$(EXEEXT) nsec3dig$(EXEEXT)
-@BOTAN110_TRUE@am__append_3 = botan110signers.cc botansigners.cc
-@BOTAN110_TRUE@am__append_4 = $(BOTAN110_LIBS) -lgmp -lrt
-@BOTAN18_TRUE@am__append_5 = botan18signers.cc botansigners.cc
-@BOTAN18_TRUE@am__append_6 = $(BOTAN18_LIBS) -lgmp
-@CRYPTOPP_TRUE@am__append_7 = cryptoppsigners.cc
-@CRYPTOPP_TRUE@am__append_8 = -lcryptopp
-@SQLITE3_TRUE@am__append_9 = ssqlite3.cc ssqlite3.hh
-@ORACLE_TRUE@am__append_10 = $(ORACLE_LIBS)
-@BOTAN110_TRUE@am__append_11 = botan110signers.cc botansigners.cc
-@BOTAN110_TRUE@am__append_12 = $(BOTAN110_LIBS) -lgmp -lrt
-@BOTAN18_TRUE@am__append_13 = botan18signers.cc botansigners.cc
-@BOTAN18_TRUE@am__append_14 = $(BOTAN18_LIBS) -lgmp
-@CRYPTOPP_TRUE@am__append_15 = cryptoppsigners.cc
-@CRYPTOPP_TRUE@am__append_16 = -lcryptopp
-@SQLITE3_TRUE@am__append_17 = ssqlite3.cc ssqlite3.hh
-@ORACLE_TRUE@am__append_18 = $(ORACLE_LIBS)
+ dnstcpbench$(EXEEXT) tsig-tests$(EXEEXT) speedtest$(EXEEXT) \
+ rec_control$(EXEEXT) dnsscope$(EXEEXT) dnsgram$(EXEEXT) \
+ testrunner$(EXEEXT) dnsreplay$(EXEEXT) toysdig$(EXEEXT) \
+ dnsdemog$(EXEEXT) dnswasher$(EXEEXT) dnsscan$(EXEEXT) \
+ nproxy$(EXEEXT) notify$(EXEEXT) pdnssec$(EXEEXT) \
+ dnsbulktest$(EXEEXT) nsec3dig$(EXEEXT)
+@BOTAN110_TRUE@am__append_4 = botan110signers.cc botansigners.cc
+@BOTAN110_TRUE@am__append_5 = $(BOTAN110_LIBS) -lgmp -lrt
+@BOTAN18_TRUE@am__append_6 = botan18signers.cc botansigners.cc
+@BOTAN18_TRUE@am__append_7 = $(BOTAN18_LIBS) -lgmp
+@CRYPTOPP_TRUE@am__append_8 = cryptoppsigners.cc
+@CRYPTOPP_TRUE@am__append_9 = -lcryptopp
+@SQLITE3_TRUE@am__append_10 = ssqlite3.cc ssqlite3.hh
+@ORACLE_TRUE@am__append_11 = $(ORACLE_LIBS)
+@BOTAN110_TRUE@am__append_12 = botan110signers.cc botansigners.cc
+@BOTAN110_TRUE@am__append_13 = $(BOTAN110_LIBS) -lgmp -lrt
+@BOTAN18_TRUE@am__append_14 = botan18signers.cc botansigners.cc
+@BOTAN18_TRUE@am__append_15 = $(BOTAN18_LIBS) -lgmp
+@CRYPTOPP_TRUE@am__append_16 = cryptoppsigners.cc
+@CRYPTOPP_TRUE@am__append_17 = -lcryptopp
+@SQLITE3_TRUE@am__append_18 = ssqlite3.cc ssqlite3.hh
+@ORACLE_TRUE@am__append_19 = $(ORACLE_LIBS)
TESTS = testrunner$(EXEEXT)
subdir = pdns
DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
@@ -85,6 +81,10 @@
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES = pdns precursor
CONFIG_CLEAN_VPATH_FILES =
+@TOOLS_TRUE@am__EXEEXT_1 = dnsbulktest$(EXEEXT) dnsreplay$(EXEEXT) \
+@TOOLS_TRUE@ dnsscan$(EXEEXT) dnsscope$(EXEEXT) \
+@TOOLS_TRUE@ dnstcpbench$(EXEEXT) dnswasher$(EXEEXT) \
+@TOOLS_TRUE@ nproxy$(EXEEXT) nsec3dig$(EXEEXT)
am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(sbindir)" \
"$(DESTDIR)$(sysconfdir)"
PROGRAMS = $(bin_PROGRAMS) $(sbin_PROGRAMS)
@@ -149,6 +149,17 @@
dnsscope_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
$(CXXFLAGS) $(dnsscope_LDFLAGS) $(LDFLAGS) -o $@
+am_dnstcpbench_OBJECTS = dnstcpbench.$(OBJEXT) dnsparser.$(OBJEXT) \
+ dnsrecords.$(OBJEXT) dnswriter.$(OBJEXT) \
+ dnslabeltext.$(OBJEXT) misc.$(OBJEXT) rcpgenerator.$(OBJEXT) \
+ base64.$(OBJEXT) unix_utility.$(OBJEXT) logger.$(OBJEXT) \
+ statbag.$(OBJEXT) qtype.$(OBJEXT) sillyrecords.$(OBJEXT) \
+ nsecrecords.$(OBJEXT) base32.$(OBJEXT)
+dnstcpbench_OBJECTS = $(am_dnstcpbench_OBJECTS)
+dnstcpbench_DEPENDENCIES = $(am__DEPENDENCIES_1)
+dnstcpbench_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
+ $(CXXFLAGS) $(dnstcpbench_LDFLAGS) $(LDFLAGS) -o $@
am_dnswasher_OBJECTS = dnswasher.$(OBJEXT) misc.$(OBJEXT) \
unix_utility.$(OBJEXT) qtype.$(OBJEXT) logger.$(OBJEXT) \
statbag.$(OBJEXT) dnspcap.$(OBJEXT)
@@ -452,16 +463,18 @@
am__v_GEN_0 = @echo " GEN " $@;
SOURCES = $(dnsbulktest_SOURCES) $(dnsdemog_SOURCES) \
$(dnsgram_SOURCES) $(dnsreplay_SOURCES) $(dnsscan_SOURCES) \
- $(dnsscope_SOURCES) $(dnswasher_SOURCES) $(notify_SOURCES) \
- $(nproxy_SOURCES) $(nsec3dig_SOURCES) $(pdns_control_SOURCES) \
+ $(dnsscope_SOURCES) $(dnstcpbench_SOURCES) \
+ $(dnswasher_SOURCES) $(notify_SOURCES) $(nproxy_SOURCES) \
+ $(nsec3dig_SOURCES) $(pdns_control_SOURCES) \
$(pdns_recursor_SOURCES) $(pdns_server_SOURCES) \
$(pdnssec_SOURCES) $(rec_control_SOURCES) $(sdig_SOURCES) \
$(speedtest_SOURCES) $(testrunner_SOURCES) $(toysdig_SOURCES) \
$(tsig_tests_SOURCES)
DIST_SOURCES = $(dnsbulktest_SOURCES) $(dnsdemog_SOURCES) \
$(dnsgram_SOURCES) $(dnsreplay_SOURCES) $(dnsscan_SOURCES) \
- $(dnsscope_SOURCES) $(dnswasher_SOURCES) $(notify_SOURCES) \
- $(nproxy_SOURCES) $(nsec3dig_SOURCES) $(pdns_control_SOURCES) \
+ $(dnsscope_SOURCES) $(dnstcpbench_SOURCES) \
+ $(dnswasher_SOURCES) $(notify_SOURCES) $(nproxy_SOURCES) \
+ $(nsec3dig_SOURCES) $(pdns_control_SOURCES) \
$(pdns_recursor_SOURCES) $(am__pdns_server_SOURCES_DIST) \
$(am__pdnssec_SOURCES_DIST) $(rec_control_SOURCES) \
$(sdig_SOURCES) $(speedtest_SOURCES) $(testrunner_SOURCES) \
@@ -631,6 +644,7 @@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
RANLIB = @RANLIB@
+REMOTEBACKEND_HTTP = @REMOTEBACKEND_HTTP@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
@@ -745,15 +759,15 @@
polarrsakeyinfra.cc md5.hh signingpipe.cc signingpipe.hh \
dnslabeltext.cc lua-pdns.cc lua-auth.cc lua-auth.hh \
serialtweaker.cc ednssubnet.cc ednssubnet.hh cachecleaner.hh \
- json.cc json.hh version.hh version.cc $(am__append_3) \
- $(am__append_5) $(am__append_7) $(am__append_9)
+ json.cc json.hh version.hh version.cc $(am__append_4) \
+ $(am__append_6) $(am__append_8) $(am__append_10)
#
pdns_server_LDFLAGS = @moduleobjects@ @modulelibs@ @DYNLINKFLAGS@ @LIBDL@ @THREADFLAGS@ $(BOOST_SERIALIZATION_LDFLAGS) -rdynamic
pdns_server_LDADD = ext/polarssl-1.1.2/library/libpolarssl.a \
$(BOOST_SERIALIZATION_LIBS) $(LUA_LIBS) $(SQLITE3_LIBS) \
- $(LIBCURL_LIBS) $(MYSQL_lib) $(am__append_4) $(am__append_6) \
- $(am__append_8) $(am__append_10)
+ $(LIBCURL_LIBS) $(MYSQL_lib) $(am__append_5) $(am__append_7) \
+ $(am__append_9) $(am__append_11)
pdnssec_SOURCES = pdnssec.cc dbdnsseckeeper.cc sstuff.hh dnsparser.cc \
dnsparser.hh dnsrecords.cc dnswriter.cc dnswriter.hh misc.cc \
misc.hh rcpgenerator.cc rcpgenerator.hh base64.cc base64.hh \
@@ -770,17 +784,23 @@
aes/aescrypt.c aes/aes.h aes/aeskey.c aes/aes_modes.c \
aes/aesopt.h aes/aestab.c aes/aestab.h aes/brg_endian.h \
aes/brg_types.h aes/dns_random.cc json.cc serialtweaker.cc \
- $(am__append_11) $(am__append_13) $(am__append_15) \
- $(am__append_17)
+ $(am__append_12) $(am__append_14) $(am__append_16) \
+ $(am__append_18)
pdnssec_LDFLAGS = @moduleobjects@ @modulelibs@ @DYNLINKFLAGS@ @LIBDL@ @THREADFLAGS@ $(BOOST_PROGRAM_OPTIONS_LDFLAGS) $(BOOST_SERIALIZATION_LDFLAGS)
pdnssec_LDADD = ext/polarssl-1.1.2/library/libpolarssl.a \
$(BOOST_PROGRAM_OPTIONS_LIBS) $(BOOST_SERIALIZATION_LIBS) \
- $(SQLITE3_LIBS) $(LIBCURL_LIBS) $(MYSQL_lib) $(am__append_12) \
- $(am__append_14) $(am__append_16) $(am__append_18)
+ $(SQLITE3_LIBS) $(LIBCURL_LIBS) $(MYSQL_lib) $(am__append_13) \
+ $(am__append_15) $(am__append_17) $(am__append_19)
sdig_SOURCES = sdig.cc sstuff.hh dnsparser.cc dnsparser.hh dnsrecords.cc dnswriter.cc dnslabeltext.cc dnswriter.hh \
misc.cc misc.hh rcpgenerator.cc rcpgenerator.hh base64.cc base64.hh unix_utility.cc \
logger.cc statbag.cc qtype.cc sillyrecords.cc nsecrecords.cc base32.cc
+dnstcpbench_SOURCES = dnstcpbench.cc sstuff.hh dnsparser.cc dnsparser.hh dnsrecords.cc dnswriter.cc dnslabeltext.cc dnswriter.hh \
+ misc.cc misc.hh rcpgenerator.cc rcpgenerator.hh base64.cc base64.hh unix_utility.cc \
+ logger.cc statbag.cc qtype.cc sillyrecords.cc nsecrecords.cc base32.cc
+
+dnstcpbench_LDFLAGS = $(BOOST_PROGRAM_OPTIONS_LDFLAGS)
+dnstcpbench_LDADD = $(BOOST_PROGRAM_OPTIONS_LIBS)
nsec3dig_SOURCES = nsec3dig.cc sstuff.hh dnsparser.cc dnsparser.hh dnsrecords.cc dnswriter.cc dnslabeltext.cc \
dnswriter.hh dnssecinfra.cc \
misc.cc misc.hh rcpgenerator.cc rcpgenerator.hh base64.cc base64.hh unix_utility.cc \
@@ -1052,6 +1072,9 @@
dnsscope$(EXEEXT): $(dnsscope_OBJECTS) $(dnsscope_DEPENDENCIES)
@rm -f dnsscope$(EXEEXT)
$(AM_V_CXXLD)$(dnsscope_LINK) $(dnsscope_OBJECTS) $(dnsscope_LDADD) $(LIBS)
+dnstcpbench$(EXEEXT): $(dnstcpbench_OBJECTS) $(dnstcpbench_DEPENDENCIES)
+ @rm -f dnstcpbench$(EXEEXT)
+ $(AM_V_CXXLD)$(dnstcpbench_LINK) $(dnstcpbench_OBJECTS) $(dnstcpbench_LDADD) $(LIBS)
dnswasher$(EXEEXT): $(dnswasher_OBJECTS) $(dnswasher_DEPENDENCIES)
@rm -f dnswasher$(EXEEXT)
$(AM_V_CXXLD)$(dnswasher_LINK) $(dnswasher_OBJECTS) $(dnswasher_LDADD) $(LIBS)
@@ -1136,6 +1159,7 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dnsscope.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dnssecinfra.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dnssecsigner.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dnstcpbench.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dnswasher.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dnswriter.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dynhandler.Po@am__quote@
@@ -1867,10 +1891,10 @@
( echo 'static char sqlCreate[] __attribute__((unused))=' ; sed 's/$$/"/g' bind-dnssec.schema.sqlite3.sql | sed 's/^/"/g' ; echo ';' ) > $@
backends/bind/bindlexer.c:
- make -C backends/bind bindlexer.c
+ cd backends/bind && $(MAKE) bindlexer.c
backends/bind/bindparser.cc:
- make -C backends/bind bindparser.cc
+ cd backends/bind && $(MAKE) bindparser.cc
version.o: version_generated.h
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/pdns/backends/Makefile.in
^
|
@@ -195,6 +195,7 @@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
RANLIB = @RANLIB@
+REMOTEBACKEND_HTTP = @REMOTEBACKEND_HTTP@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/pdns/backends/bind/Makefile.in
^
|
@@ -273,6 +273,7 @@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
RANLIB = @RANLIB@
+REMOTEBACKEND_HTTP = @REMOTEBACKEND_HTTP@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/pdns/backends/bind/bindbackend2.cc
^
|
@@ -423,7 +423,7 @@
;
else if(bdr.qname==toLower(bb2.d_name))
bdr.qname.clear();
- else if(bdr.qname.length() > bb2.d_name.length())
+ else if(bdr.qname.length() > bb2.d_name.length() && dottedEndsOn(bdr.qname, bb2.d_name))
bdr.qname.resize(bdr.qname.length() - (bb2.d_name.length() + 1));
else
throw AhuException("Trying to insert non-zone data, name='"+bdr.qname+"', qtype="+qtype.getName()+", zone='"+bb2.d_name+"'");
@@ -715,7 +715,7 @@
staging->name_id_map[i->name]=bbd->d_id; // fill out name -> id map
// overwrite what we knew about the domain
- bbd->d_name=i->name;
+ bbd->d_name=toLower(canonic(i->name));
bool filenameChanged = (bbd->d_filename!=i->filename);
bbd->d_filename=i->filename;
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/pdns/backends/bind/zone2sql.cc
^
|
@@ -49,6 +49,20 @@
static bool g_intransaction;
static int g_numRecords;
+
+/* this is an official wart. We don't terminate domains on a . in PowerDNS,
+ which is fine as it goes, except for encoding the root, it would end up as '',
+ which leads to ambiguities in the content field. Therefore, if we encounter
+ the root as a . in a BIND zone, we leave it as a ., and don't replace it by
+ an empty string. Back in 1999 we made the wrong choice. */
+
+static string stripDotContent(const string& content)
+{
+ if(boost::ends_with(content, " .") || content==".")
+ return content;
+ return stripDot(content);
+}
+
static string sqlstr(const string &name)
{
if(g_mode == SQLITE)
@@ -149,7 +163,7 @@
cout<<"insert into records (domain_id, name,type,content,ttl,prio) select id ,"<<
sqlstr(toLower(stripDot(qname)))<<", "<<
sqlstr(qtype)<<", "<<
- sqlstr(stripDot(content))<<", "<<ttl<<", "<<prio<<
+ sqlstr(stripDotContent(content))<<", "<<ttl<<", "<<prio<<
" from domains where name="<<toLower(sqlstr(zoneName))<<";\n";
} else
{
@@ -157,7 +171,7 @@
sqlstr(toLower(stripDot(qname)))<<", "<<
sqlstr(toLower(labelReverse(makeRelative(stripDot(qname), zoneName))))<<", "<<auth<<", "<<
sqlstr(qtype)<<", "<<
- sqlstr(stripDot(content))<<", "<<ttl<<", "<<prio<<
+ sqlstr(stripDotContent(content))<<", "<<ttl<<", "<<prio<<
" from domains where name="<<toLower(sqlstr(zoneName))<<";\n";
}
}
@@ -166,7 +180,7 @@
cout<<"insert into records (domain_id, name,type,content,ttl,prio) select id ,"<<
sqlstr(toLower(stripDot(qname)))<<", "<<
sqlstr(qtype)<<", "<<
- sqlstr(stripDot(content))<<", "<<ttl<<", "<<prio<<
+ sqlstr(stripDotContent(content))<<", "<<ttl<<", "<<prio<<
" from domains where name="<<toLower(sqlstr(zoneName))<<";\n";
} else
{
@@ -174,7 +188,7 @@
sqlstr(toLower(stripDot(qname)))<<", "<<
sqlstr(toLower(labelReverse(makeRelative(stripDot(qname), zoneName))))<<", '"<< (auth ? 't' : 'f') <<"', "<<
sqlstr(qtype)<<", "<<
- sqlstr(stripDot(content))<<", "<<ttl<<", "<<prio<<
+ sqlstr(stripDotContent(content))<<", "<<ttl<<", "<<prio<<
" from domains where name="<<toLower(sqlstr(zoneName))<<";\n";
}
}
@@ -182,7 +196,7 @@
cout<<"insert into Records (id,ZoneId, name,type,content,TimeToLive,Priority) select RECORDS_ID_SEQUENCE.nextval,id ,"<<
sqlstr(toLower(stripDot(qname)))<<", "<<
sqlstr(qtype)<<", "<<
- sqlstr(stripDot(content))<<", "<<ttl<<", "<<prio<<
+ sqlstr(stripDotContent(content))<<", "<<ttl<<", "<<prio<<
" from Domains where name="<<toLower(sqlstr(zoneName))<<";\n";
}
else if (g_mode == MYDNS) {
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/pdns/common_startup.cc
^
|
@@ -17,6 +17,7 @@
*/
#include "common_startup.hh"
bool g_anyToTcp;
+bool g_addSuperfluousNSEC3;
typedef Distributor<DNSPacket,DNSPacket,PacketHandler> DNSDistributor;
@@ -30,8 +31,6 @@
int avg_latency;
TCPNameserver *TN;
-
-
ArgvMap &arg()
{
return theArg;
@@ -96,7 +95,6 @@
::arg().setSwitch("slave","Act as a slave")="no";
::arg().setSwitch("master","Act as a master")="no";
::arg().setSwitch("guardian","Run within a guardian process")="no";
- ::arg().setSwitch("strict-rfc-axfrs","Perform strictly rfc compliant axfrs (very slow)")="no";
::arg().setSwitch("send-root-referral","Send out old-fashioned root-referral instead of ServFail in case of no authority")="no";
::arg().setSwitch("prevent-self-notification","Don't send notifications to what we think is ourself")="yes";
::arg().setSwitch("webserver","Start a webserver for monitoring")="no";
@@ -141,6 +139,7 @@
::arg().setSwitch("traceback-handler","Enable the traceback handler (Linux only)")="yes";
::arg().setSwitch("experimental-direct-dnskey","EXPERIMENTAL: fetch DNSKEY RRs from backend during DNSKEY synthesis")="no";
+ ::arg().setSwitch("add-superfluous-nsec3-for-old-bind","Add superfluous NSEC3 record to positive wildcard response")="yes";
::arg().set("default-ksk-algorithms","Default KSK algorithms")="rsasha256";
::arg().set("default-ksk-size","Default KSK size (0 means default)")="0";
::arg().set("default-zsk-algorithms","Default ZSK algorithms")="rsasha256";
@@ -334,6 +333,7 @@
newuid=Utility::makeUidNumeric(::arg()["setuid"]);
g_anyToTcp = ::arg().mustDo("any-to-tcp");
+ g_addSuperfluousNSEC3 = ::arg().mustDo("add-superfluous-nsec3-for-old-bind");
DNSPacket::s_doEDNSSubnetProcessing = ::arg().mustDo("edns-subnet-processing");
#ifndef WIN32
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/pdns/common_startup.hh
^
|
@@ -50,5 +50,6 @@
extern int isGuarded( char ** );
extern bool g_anyToTcp;
+extern bool g_addSuperfluousNSEC3;
#endif // COMMON_STARTUP_HH
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/pdns/dns.hh
^
|
@@ -37,7 +37,7 @@
struct SOAData
{
- SOAData() : scopeMask(0) {};
+ SOAData() : db(0), scopeMask(0) {};
string qname;
string nameserver;
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/pdns/dnspacket.cc
^
|
@@ -313,6 +313,12 @@
goto noCommit;
}
}
+
+ // if(!pw.getHeader()->tc) // protect against double commit from addSignature
+
+ if(!d_rrs.empty()) pw.commit();
+
+ noCommit:;
if(d_haveednssubnet) {
string makeEDNSSubnetOptsString(const EDNSSubnetOpts& eso);
@@ -324,11 +330,10 @@
}
if(!opts.empty() || d_haveednssection || d_dnssecOk)
+ {
pw.addOpt(2800, 0, d_dnssecOk ? EDNSOpts::DNSSECOK : 0, opts);
-
- if(!pw.getHeader()->tc) // protect against double commit from addSignature
pw.commit();
- noCommit:;
+ }
}
catch(std::exception& e) {
L<<Logger::Warning<<"Exception: "<<e.what()<<endl;
@@ -599,7 +604,15 @@
L<<Logger::Error<<"Packet for domain '"<<q->qdomain<<"' denied: can't find TSIG key with name '"<<*keyname<<"' and algorithm '"<<trc->d_algoName<<"'"<<endl;
return false;
}
- trc->d_algoName += ".sig-alg.reg.int.";
+
+ if (trc->d_algoName == "hmac-md5")
+ trc->d_algoName += ".sig-alg.reg.int.";
+
+ if (trc->d_algoName != "hmac-md5.sig-alg.reg.int.") {
+ L<<Logger::Error<<"Unsupported TSIG HMAC algorithm " << trc->d_algoName << endl;
+ return false;
+ }
+
B64Decode(secret64, *secret);
bool result=calculateMD5HMAC(*secret, message) == trc->d_mac;
if(!result) {
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/pdns/dnsparser.cc
^
|
@@ -60,7 +60,7 @@
const string& relevant=(parts.size() > 2) ? parts[2] : "";
unsigned int total=atoi(parts[1].c_str());
if(relevant.size()!=2*total)
- throw runtime_error("invalid unknown record");
+ throw MOADNSException((boost::format("invalid unknown record length for label %s: size not equal to length field (%d != %d)") % d_dr.d_label.c_str() % relevant.size() % (2*total)).str());
string out;
out.reserve(total+1);
for(unsigned int n=0; n < total; ++n) {
@@ -512,8 +512,8 @@
ret.reserve(label.size()+4);
for(parts_t::const_iterator i=parts.begin(); i!=parts.end(); ++i) {
if(!root.empty() && !strncasecmp(root.c_str(), label.c_str() + i->first, 1 + label.length() - i->first)) { // also match trailing 0, hence '1 +'
- const char rootptr[2]={0xc0,0x11};
- ret.append(rootptr, 2);
+ const unsigned char rootptr[2]={0xc0,0x11};
+ ret.append((const char *) rootptr, 2);
return ret;
}
ret.append(1, (char)(i->second - i->first));
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/pdns/dnsrecords.cc
^
|
@@ -44,6 +44,7 @@
boilerplate_conv(PTR, ns_t_ptr, conv.xfrLabel(d_content, true));
boilerplate_conv(CNAME, ns_t_cname, conv.xfrLabel(d_content, true));
boilerplate_conv(MR, ns_t_mr, conv.xfrLabel(d_alias, true));
+boilerplate_conv(MINFO, ns_t_minfo, conv.xfrLabel(d_rmailbx, true); conv.xfrLabel(d_emailbx, true));
boilerplate_conv(TXT, ns_t_txt, conv.xfrText(d_text, true));
boilerplate_conv(SPF, 99, conv.xfrText(d_text, true));
boilerplate_conv(HINFO, ns_t_hinfo, conv.xfrText(d_cpu); conv.xfrText(d_host));
@@ -162,11 +163,9 @@
boilerplate_conv(SRV, ns_t_srv,
conv.xfr16BitInt(d_preference); conv.xfr16BitInt(d_weight); conv.xfr16BitInt(d_port);
- conv.xfrLabel(d_target);
+ conv.xfrLabel(d_target);
)
-
-
SOARecordContent::SOARecordContent(const string& mname, const string& rname, const struct soatimes& st)
: DNSRecordContent(ns_t_soa), d_mname(mname), d_rname(rname)
{
@@ -252,8 +251,14 @@
)
DNSKEYRecordContent::DNSKEYRecordContent() : DNSRecordContent(48) {}
-/* EUI48 start */
+boilerplate_conv(RKEY, 57,
+ conv.xfr16BitInt(d_flags);
+ conv.xfr8BitInt(d_protocol);
+ conv.xfrBlob(d_key);
+ )
+RKEYRecordContent::RKEYRecordContent() : DNSRecordContent(57) {}
+/* EUI48 start */
void EUI48RecordContent::report(void)
{
regist(1, ns_t_eui48, &make, &make, "EUI48");
@@ -406,7 +411,6 @@
PTRRecordContent::report();
//DNSRecordContent::regist(3, ns_t_txt, &TXTRecordContent::make, &TXTRecordContent::make, "TXT");
TXTRecordContent::report();
- TXTRecordContent::report();
DNSRecordContent::regist(1, QType::ANY, 0, 0, "ANY");
}
@@ -420,6 +424,7 @@
RPRecordContent::report();
KEYRecordContent::report();
DNSKEYRecordContent::report();
+ RKEYRecordContent::report();
RRSIGRecordContent::report();
DSRecordContent::report();
SSHFPRecordContent::report();
@@ -429,11 +434,12 @@
NSEC3PARAMRecordContent::report();
TLSARecordContent::report();
DLVRecordContent::report();
- //DNSRecordContent::regist(0xff, QType::TSIG, &TSIGRecordContent::make, &TSIGRecordContent::make, "TSIG");
- TSIGRecordContent::report();
+ DNSRecordContent::regist(0xff, QType::TSIG, &TSIGRecordContent::make, &TSIGRecordContent::make, "TSIG");
+ //TSIGRecordContent::report();
OPTRecordContent::report();
EUI48RecordContent::report();
EUI64RecordContent::report();
+ MINFORecordContent::report();
}
void reportFancyTypes()
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/pdns/dnsrecords.hh
^
|
@@ -206,6 +206,15 @@
string d_alias;
};
+class MINFORecordContent : public DNSRecordContent
+{
+public:
+ includeboilerplate(MINFO)
+
+private:
+ string d_rmailbx;
+ string d_emailbx;
+};
class OPTRecordContent : public DNSRecordContent
{
@@ -352,6 +361,15 @@
};
//}
+class RKEYRecordContent : public DNSRecordContent
+{
+public:
+ RKEYRecordContent();
+ includeboilerplate(RKEY)
+ uint16_t d_flags;
+ uint8_t d_protocol, d_algorithm;
+ string d_key;
+};
class SOARecordContent : public DNSRecordContent
{
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/pdns/dnssecinfra.cc
^
|
@@ -495,6 +495,11 @@
void addTSIG(DNSPacketWriter& pw, TSIGRecordContent* trc, const string& tsigkeyname, const string& tsigsecret, const string& tsigprevious, bool timersonly)
{
+ if (trc->d_algoName != "hmac-md5.sig-alg.reg.int.") {
+ L<<Logger::Error<<"Unsupported HMAC TSIG algorithm " << trc->d_algoName << endl;
+ return;
+ }
+
string toSign;
if(!tsigprevious.empty()) {
uint16_t len = htons(tsigprevious.length());
|
[-]
[+]
|
Added |
pdns-3.3.tar.gz/pdns/dnstcpbench.cc
^
|
@@ -0,0 +1,237 @@
+/*
+ PowerDNS Versatile Database Driven Nameserver
+ Copyright (C) 2002-2013 PowerDNS.COM BV
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License version 2
+ as published by the Free Software Foundation
+
+ 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, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+*/
+#include "dnsparser.hh"
+#include "sstuff.hh"
+#include "misc.hh"
+#include "dnswriter.hh"
+#include "dnsrecords.hh"
+#include "statbag.hh"
+#include <netinet/tcp.h>
+#include <boost/array.hpp>
+#include <boost/program_options.hpp>
+
+StatBag S;
+namespace po = boost::program_options;
+po::variables_map g_vm;
+bool g_verbose;
+bool g_onlyTCP;
+bool g_tcpNoDelay;
+unsigned int g_timeoutMsec;
+AtomicCounter g_networkErrors, g_otherErrors, g_OK, g_truncates, g_authAnswers, g_timeOuts;
+ComboAddress g_dest;
+
+/* On Linux, run echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle
+ to prevent running out of free TCP ports */
+
+struct BenchQuery
+{
+ BenchQuery(const std::string& qname_, uint16_t qtype_) : qname(qname_), qtype(qtype_), udpMsec(0), tcpMsec(0) {}
+ BenchQuery(){}
+ std::string qname;
+ uint16_t qtype;
+ uint16_t udpMsec, tcpMsec;
+};
+
+
+void doQuery(BenchQuery* q)
+try
+{
+ vector<uint8_t> packet;
+ DNSPacketWriter pw(packet, q->qname, q->qtype);
+ int res;
+ string reply;
+
+ if(!g_onlyTCP) {
+ Socket udpsock((AddressFamily)g_dest.sin4.sin_family, Datagram);
+
+ udpsock.sendTo(string((char*)&*packet.begin(), (char*)&*packet.end()), g_dest);
+ ComboAddress origin;
+ res = waitForData(udpsock.getHandle(), 0, 1000 * g_timeoutMsec);
+ if(res < 0)
+ throw NetworkError("Error waiting for response");
+ if(!res) {
+ g_timeOuts++;
+ return;
+ }
+
+ udpsock.recvFrom(reply, origin);
+ MOADNSParser mdp(reply);
+ if(!mdp.d_header.tc)
+ return;
+ g_truncates++;
+ }
+
+ Socket sock((AddressFamily)g_dest.sin4.sin_family, Stream);
+ int tmp=1;
+ if(setsockopt(sock.getHandle(),SOL_SOCKET,SO_REUSEADDR,(char*)&tmp,sizeof tmp)<0)
+ throw runtime_error("Unable to set socket reuse: "+string(strerror(errno)));
+
+ if(g_tcpNoDelay && setsockopt(sock.getHandle(), IPPROTO_TCP, TCP_NODELAY,(char*)&tmp,sizeof tmp)<0)
+ throw runtime_error("Unable to set socket no delay: "+string(strerror(errno)));
+
+ sock.connect(g_dest);
+ uint16_t len = htons(packet.size());
+ string tcppacket((char*)& len, 2);
+ tcppacket.append((char*)&*packet.begin(), (char*)&*packet.end());
+
+ sock.writen(tcppacket);
+
+ res = waitForData(sock.getHandle(), 0, 1000 * g_timeoutMsec);
+ if(res < 0)
+ throw NetworkError("Error waiting for response");
+ if(!res) {
+ g_timeOuts++;
+ return;
+ }
+
+ if(sock.read((char *) &len, 2) != 2)
+ throw AhuException("tcp read failed");
+
+ len=ntohs(len);
+ char *creply = new char[len];
+ int n=0;
+ int numread;
+ while(n<len) {
+ numread=sock.read(creply+n, len-n);
+ if(numread<0)
+ throw AhuException("tcp read failed");
+ n+=numread;
+ }
+
+ reply=string(creply, len);
+ delete[] creply;
+
+ MOADNSParser mdp(reply);
+ // cout<<"Had correct TCP/IP response, "<<mdp.d_answers.size()<<" answers, aabit="<<mdp.d_header.aa<<endl;
+ if(mdp.d_header.aa)
+ g_authAnswers++;
+ g_OK++;
+}
+catch(NetworkError& ne)
+{
+ cerr<<"Network error: "<<ne.what()<<endl;
+ g_networkErrors++;
+}
+catch(...)
+{
+ g_otherErrors++;
+}
+
+/* read queries from stdin, put in vector
+ launch n worker threads, each picks a query using AtomicCounter
+ If a worker reaches the end of its queue, it stops */
+
+AtomicCounter g_pos;
+
+vector<BenchQuery> g_queries;
+
+
+static void* worker(void*)
+{
+ for(;;) {
+ unsigned int pos = g_pos++;
+ if(pos >= g_queries.size())
+ break;
+
+ doQuery(&g_queries[pos]); // this is safe as long as nobody *inserts* to g_queries
+ }
+ return 0;
+}
+
+int main(int argc, char** argv)
+try
+{
+ po::options_description desc("Allowed options"), hidden, alloptions;
+ desc.add_options()
+ ("help,h", "produce help message")
+ ("verbose,v", "be verbose")
+ ("udp-first,u", "try UDP first")
+ ("tcp-no-delay", po::value<bool>()->default_value(true), "use TCP_NODELAY socket option")
+ ("timeout-msec", po::value<int>()->default_value(10), "wait for this amount of milliseconds for an answer")
+ ("workers", po::value<int>()->default_value(100), "number of parallel workers");
+
+ hidden.add_options()
+ ("remote-host", po::value<string>(), "remote-host")
+ ("remote-port", po::value<int>()->default_value(53), "remote-port");
+ alloptions.add(desc).add(hidden);
+
+ po::positional_options_description p;
+ p.add("remote-host", 1);
+ p.add("remote-port", 1);
+
+ po::store(po::command_line_parser(argc, argv).options(alloptions).positional(p).run(), g_vm);
+ po::notify(g_vm);
+
+ if(g_vm.count("help")) {
+ cout << desc<<endl;
+ exit(EXIT_SUCCESS);
+ }
+ g_tcpNoDelay = g_vm["tcp-no-delay"].as<bool>();
+
+ g_onlyTCP = !g_vm.count("udp-first");
+ g_verbose = g_vm.count("verbose");
+ g_timeoutMsec = g_vm["timeout-msec"].as<int>();
+
+ reportAllTypes();
+
+ if(g_vm["remote-host"].empty()) {
+ cerr<<"Syntax: tcpbench remote [port] < queries"<<endl;
+ cerr<<"Where queries is one query per line, format: qname qtype, just 1 space"<<endl;
+ cerr<<desc<<endl;
+ exit(EXIT_FAILURE);
+ }
+
+ g_dest = ComboAddress(g_vm["remote-host"].as<string>().c_str(), g_vm["remote-port"].as<int>());
+
+ unsigned int numworkers=g_vm["workers"].as<int>();
+
+ if(g_verbose) {
+ cout<<"Sending queries to: "<<g_dest.toStringWithPort()<<endl;
+ cout<<"Attempting UDP first: " << (g_onlyTCP ? "no" : "yes") <<endl;
+ cout<<"Timeout: "<< g_timeoutMsec<<"msec"<<endl;
+ cout << "Using TCP_NODELAY: "<<g_tcpNoDelay<<endl;
+ }
+
+
+ pthread_t workers[numworkers];
+
+ FILE* fp=fdopen(0, "r");
+ pair<string, string> q;
+ string line;
+ while(stringfgets(fp, line)) {
+ trim_right(line);
+ q=splitField(line, ' ');
+ g_queries.push_back(BenchQuery(q.first, DNSRecordContent::TypeToNumber(q.second)));
+ }
+ fclose(fp);
+
+ for(unsigned int n = 0; n < numworkers; ++n) {
+ pthread_create(&workers[n], 0, worker, 0);
+ }
+ for(unsigned int n = 0; n < numworkers; ++n) {
+ void* status;
+ pthread_join(workers[n], &status);
+ }
+ cout<<"OK: "<<g_OK<<", network errors: "<<g_networkErrors<<", other errors: "<<g_otherErrors<<endl;
+ cout<<"Timeouts: "<<g_timeOuts<<endl;
+ cout<<"Truncateds: "<<g_truncates<<", auth answers: "<<g_authAnswers<<endl;
+}
+catch(std::exception &e)
+{
+ cerr<<"Fatal: "<<e.what()<<endl;
+}
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/pdns/dnswriter.cc
^
|
@@ -68,8 +68,8 @@
d_rollbackmarker=d_content.size();
if(pdns_iequals(d_qname, d_recordqname)) { // don't do the whole label compression thing if we *know* we can get away with "see question"
- static char marker[2]={0xc0, 0x0c};
- d_content.insert(d_content.end(), &marker[0], &marker[2]);
+ static unsigned char marker[2]={0xc0, 0x0c};
+ d_content.insert(d_content.end(), (const char *) &marker[0], (const char *) &marker[2]);
}
else {
xfrLabel(d_recordqname, true);
|
[-]
[+]
|
Added |
pdns-3.3.tar.gz/pdns/docs/dnstcpbench.1
^
|
@@ -0,0 +1,99 @@
+'\" t
+.\" Title: dnstcpbench
+.\" Author: [see the "AUTHOR" section]
+.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
+.\" Date: 06/27/2013
+.\" Manual: \ \&
+.\" Source: \ \&
+.\" Language: English
+.\"
+.TH "DNSTCPBENCH" "1" "06/27/2013" "\ \&" "\ \&"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+dnstcpbench \- tool to perform TCP benchmarking of nameservers
+.SH "SYNOPSIS"
+.sp
+\fIdnstcpbench\fR [\-\-help] [\-\-verbose] [\-\-udp\-first, \-u] [\-\-workers] [\-\-timeout\-msec] remote\-ip\-address [remote\-port]
+.SH "DESCRIPTION"
+.sp
+dnstcpbench reads DNS queries from standard input and sends them out in parallel to a remote nameserver\&. By default TCP/IP is used, but optionally, UDP is tried first, which allows for the benchmarking of TCP/IP fallback\&.
+.sp
+The input format is one query per line: qname single\-space qtype\&. An example: www\&.powerdns\&.com ANY powerdns\&.com MX
+.sp
+When benchmarking extended runs, it may be necessary to enable TIME_WAIT recycling, as TCP/IP port tuples may otherwise run out\&. On Linux this is performed by running:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+# echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+The equivalent for IPv6 is not known\&.
+.SH "OPTIONS"
+.PP
+\-\-verbose
+.RS 4
+Be wordy on what the program is doing
+.RE
+.PP
+\-\-udp\-first, \-u
+.RS 4
+Attempt resolution via UDP first, only do TCP if truncated answer is received
+.RE
+.PP
+\-\-workers
+.RS 4
+Number of parallel worker threads to use\&.
+.RE
+.PP
+\-\-timeout\-msec
+.RS 4
+Number of milliseconds to wait for an answer
+.RE
+.PP
+\-\-help
+.RS 4
+Provide a helpful message
+.RE
+.sp
+Remote IP address can be IPv4 or IPv6\&. Remote port defaults to 53\&.
+.SH "BUGS"
+.sp
+Currently the timeout code does not actually perform non\-blocking connects or writes\&. So a slow connect or slow writes will still cause low performance and delays\&.
+.SH "AUTHOR"
+.sp
+Written by PowerDNS\&.COM BV, bert hubert, <\m[blue]\fBbert\&.hubert@netherlabs\&.nl\fR\m[]\&\s-2\u[1]\d\s+2>
+.SH "RESOURCES"
+.sp
+Website: \m[blue]\fBhttp://www\&.powerdns\&.com\fR\m[]
+.SH "COPYING"
+.sp
+Copyright \(co 2013 PowerDNS\&.COM BV\&. Free use of this software is granted under the terms of the GNU General Public License (GPL) version 2\&.
+.SH "NOTES"
+.IP " 1." 4
+bert.hubert@netherlabs.nl
+.RS 4
+\%mailto:bert.hubert@netherlabs.nl
+.RE
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/pdns/dynlistener.cc
^
|
@@ -1,6 +1,6 @@
/*
PowerDNS Versatile Database Driven Nameserver
- Copyright (C) 2002 - 2008 PowerDNS.COM BV
+ Copyright (C) 2002 - 2013 PowerDNS.COM BV
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License version 2 as
@@ -83,8 +83,32 @@
}
}
+/* this does a simplistic check, if we can connect, we consider it live. If we can't connect because
+ of access denied, we must consider it dead, nothing we can do about it.
+*/
+bool DynListener::testLive(const string& fname)
+{
+ struct sockaddr_un addr;
+ int fd = socket(AF_UNIX, SOCK_STREAM, 0);
+ if(fd < 0) { // we'll have bigger issues down the road
+ return false;
+ }
+
+ memset(&addr, 0, sizeof(addr));
+ addr.sun_family = AF_UNIX;
+ strncpy(addr.sun_path, fname.c_str(), fname.length());
+
+ int status = connect(fd, (struct sockaddr*)&addr, sizeof(addr));
+ close(fd);
+ return status==0;
+}
+
void DynListener::listenOnUnixDomain(const string& fname)
{
+ if(testLive(fname)) {
+ L<<Logger::Critical<<"Previous controlsocket '"<<fname<<"' is in use"<<endl;
+ exit(1);
+ }
int err=unlink(fname.c_str());
if(err < 0 && errno!=ENOENT) {
L<<Logger::Critical<<"Unable to remove (previous) controlsocket at '"<<fname<<"': "<<strerror(errno)<<endl;
@@ -219,8 +243,10 @@
continue;
}
}
+ errno=0;
if(!fgets(&mesg[0], mesg.size(), fp.get())) {
- L<<Logger::Error<<"Unable to receive line from controlsocket ("<<d_client<<"): "<<strerror(errno)<<endl;
+ if(errno)
+ L<<Logger::Error<<"Unable to receive line from controlsocket ("<<d_client<<"): "<<strerror(errno)<<endl;
close(d_client);
continue;
}
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/pdns/dynlistener.hh
^
|
@@ -84,5 +84,6 @@
ComboAddress d_socketaddress;
static g_funkdb_t s_funcdb;
static g_funk_t* s_restfunc;
+ bool testLive(const string& fname);
};
#endif /* PDNS_DYNLISTENER */
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/pdns/misc.hh
^
|
@@ -126,6 +126,7 @@
}
}
+// fills container with ranges, so {posbegin,posend}
template <typename Container>
void
vstringtok (Container &container, string const &in,
@@ -349,6 +350,12 @@
return atomic_exchange_and_add( &value_, +1 ) + 1;
}
+ unsigned int operator++(int)
+ {
+ return atomic_exchange_and_add( &value_, +1 );
+ }
+
+
unsigned int operator--()
{
return atomic_exchange_and_add( &value_, -1 ) - 1;
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/pdns/nameserver.cc
^
|
@@ -315,7 +315,7 @@
cerr<<"Weird, trying to send a message that needs truncation, "<< buffer.length()<<" > "<<p->getMaxReplyLen()<<endl;
}
if(sendmsg(p->getSocket(), &msgh, 0) < 0)
- L<<Logger::Error<<"Error sending reply with sendto (socket="<<p->getSocket()<<"): "<<strerror(errno)<<endl;
+ L<<Logger::Error<<"Error sending reply with sendmsg (socket="<<p->getSocket()<<"): "<<strerror(errno)<<endl;
}
static bool HarvestDestinationAddress(struct msghdr* msgh, ComboAddress* destination)
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/pdns/no-dnssec.schema.mysql.sql
^
|
@@ -28,7 +28,7 @@
CREATE INDEX domain_id ON records(domain_id);
create table supermasters (
- ip VARCHAR(25) NOT NULL,
+ ip VARCHAR(64) NOT NULL,
nameserver VARCHAR(255) NOT NULL,
account VARCHAR(40) DEFAULT NULL
) Engine=InnoDB;
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/pdns/no-dnssec.schema.pgsql.sql
^
|
@@ -29,7 +29,7 @@
CREATE INDEX domain_id ON records(domain_id);
create table supermasters (
- ip VARCHAR(25) NOT NULL,
+ ip VARCHAR(64) NOT NULL,
nameserver VARCHAR(255) NOT NULL,
account VARCHAR(40) DEFAULT NULL
);
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/pdns/no-dnssec.schema.sqlite3.sql
^
|
@@ -26,7 +26,7 @@
CREATE INDEX domain_id ON records(domain_id);
create table supermasters (
- ip VARCHAR(25) NOT NULL,
+ ip VARCHAR(64) NOT NULL,
nameserver VARCHAR(255) NOT NULL COLLATE NOCASE,
account VARCHAR(40) DEFAULT NULL
);
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/pdns/packethandler.cc
^
|
@@ -603,7 +603,7 @@
// add matching NSEC3 RR
// we used to skip this one for mode 3, but old BIND needs it
// see https://github.com/PowerDNS/pdns/issues/814
- // if (mode != 3) {
+ if (mode != 3 || g_addSuperfluousNSEC3) {
unhashed=(mode == 0 || mode == 5) ? target : closest;
hashed=hashQNameWithSalt(ns3rc.d_iterations, ns3rc.d_salt, unhashed);
@@ -612,7 +612,7 @@
getNSEC3Hashes(narrow, sd.db, sd.domain_id, hashed, false, unhashed, before, after);
DLOG(L<<"Done calling for matching, hashed: '"<<toBase32Hex(hashed)<<"' before='"<<toBase32Hex(before)<<"', after='"<<toBase32Hex(after)<<"'"<<endl);
emitNSEC3(ns3rc, sd, unhashed, before, after, target, r, mode);
- // }
+ }
// add covering NSEC3 RR
if (mode != 0 && mode != 5) {
@@ -740,7 +740,7 @@
DNSBackend *db;
if(!B.superMasterBackend(p->getRemote(), p->qdomain, nsset, &account, &db)) {
L<<Logger::Error<<"Unable to find backend willing to host "<<p->qdomain<<" for potential supermaster "<<p->getRemote()<<". "<<nsset.size()<<" remote nameservers: "<<endl;
- BOOST_FOREACH(struct DNSResourceRecord& rr, nsset) {
+ BOOST_FOREACH(class DNSResourceRecord& rr, nsset) {
L<<Logger::Error<<rr.content<<endl;
}
return RCode::Refused;
@@ -1183,7 +1183,7 @@
if(doVersionRequest(p,r,target)) // catch version.bind requests
goto sendit;
- if(p->qtype.getCode() == QType::ANY && !p->d_tcp && g_anyToTcp) {
+ if((p->qtype.getCode() == QType::ANY || p->qtype.getCode() == QType::RRSIG) && !p->d_tcp && g_anyToTcp) {
r->d.tc = 1;
r->commitD();
return r;
@@ -1372,7 +1372,12 @@
DLOG(L<<"Have unauth data, so need to hunt for best NS records"<<endl);
if(tryReferral(p, r, sd, target))
goto sendit;
- L<<Logger::Error<<"Should not get here ("<<p->qdomain<<"|"<<p->qtype.getCode()<<"): please run pdnssec rectify-zone "<<sd.qname<<endl;
+ // check whether this could be fixed easily
+ if (*(rr.qname.rbegin()) == '.') {
+ L<<Logger::Error<<"Should not get here ("<<p->qdomain<<"|"<<p->qtype.getCode()<<"): you have a trailing dot, this could be the problem (or run pdnssec rectify-zone " <<sd.qname<<")"<<endl;
+ } else {
+ L<<Logger::Error<<"Should not get here ("<<p->qdomain<<"|"<<p->qtype.getCode()<<"): please run pdnssec rectify-zone "<<sd.qname<<endl;
+ }
}
else {
DLOG(L<<"Have some data, but not the right data"<<endl);
@@ -1387,6 +1392,12 @@
editSOA(d_dk, sd.qname, r);
+ BOOST_FOREACH(const DNSResourceRecord& rr, r->getRRS()) {
+ if(rr.scopeMask) {
+ noCache=1;
+ break;
+ }
+ }
if(p->d_dnssecOk)
addRRSigs(d_dk, B, authSet, r->getRRS());
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/pdns/pdns.conf-dist
^
|
@@ -1,5 +1,10 @@
# Autogenerated configuration file template
#################################
+# add-superfluous-nsec3-for-old-bind Add superfluous NSEC3 record to positive wildcard response
+#
+# add-superfluous-nsec3-for-old-bind=yes
+
+#################################
# allow-axfr-ips Allow zonetransfers only to these subnets
#
# allow-axfr-ips=0.0.0.0/0,::/0
@@ -380,11 +385,6 @@
# socket-dir=/var/run
#################################
-# strict-rfc-axfrs Perform strictly rfc compliant axfrs (very slow)
-#
-# strict-rfc-axfrs=no
-
-#################################
# tcp-control-address If set, PowerDNS can be controlled over TCP on this address
#
# tcp-control-address=
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/pdns/pdns.in
^
|
@@ -6,12 +6,12 @@
# Provides: pdns
# Required-Start: $remote_fs $network $syslog
# Required-Stop: $remote_fs $network $syslog
-# Should-Start: $all
-# Should-Stop:
+# Should-Start:
+# Should-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
-# Short-Description: Start/stop PowerDNS authoritative server
-# Description: Start/stop PowerDNS authoritative server
+# Short-Description: PowerDNS authoritative server
+# Description: PowerDNS authoritative server
### END INIT INFO
set -e
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/pdns/qtype.hh
^
|
@@ -114,6 +114,7 @@
qtype_insert("MR",9);
qtype_insert("PTR",12);
qtype_insert("HINFO",13);
+ qtype_insert("MINFO",14);
qtype_insert("MX",15);
qtype_insert("TXT",16);
qtype_insert("RP",17);
@@ -141,7 +142,7 @@
qtype_insert("SPF",99);
qtype_insert("EUI48",108);
qtype_insert("EUI64",109);
- qtype_insert("TSIG", 250);
+// qtype_insert("TSIG", 250);
qtype_insert("IXFR",251);
qtype_insert("AXFR",252);
qtype_insert("ANY",255);
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/pdns/receiver.cc
^
|
@@ -1,6 +1,6 @@
/*
PowerDNS Versatile Database Driven Nameserver
- Copyright (C) 2002 - 2011 PowerDNS.COM BV
+ Copyright (C) 2002 - 2013 PowerDNS.COM BV
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License version 2
@@ -524,12 +524,6 @@
daemonize();
}
- if(::arg()["server-id"].empty()) {
- char tmp[128];
- gethostname(tmp, sizeof(tmp)-1);
- ::arg().set("server-id")=tmp;
- }
-
if(isGuarded(argv)) {
L<<Logger::Warning<<"This is a guarded instance of pdns"<<endl;
dl=new DynListener; // listens on stdin
@@ -567,6 +561,13 @@
if(!::arg().mustDo("no-config"))
::arg().file(configname.c_str());
::arg().parse(argc,argv);
+
+ if(::arg()["server-id"].empty()) {
+ char tmp[128];
+ gethostname(tmp, sizeof(tmp)-1);
+ ::arg().set("server-id")=tmp;
+ }
+
UeberBackend::go();
N=new UDPNameserver; // this fails when we are not root, throws exception
@@ -584,7 +585,6 @@
showProductVersion();
try {
-
mainthread();
}
catch(AhuException &AE) {
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/pdns/resolver.cc
^
|
@@ -122,7 +122,8 @@
if(!tsigkeyname.empty()) {
// cerr<<"Adding TSIG to notification, key name: '"<<tsigkeyname<<"', algo: '"<<tsigalgorithm<<"', secret: "<<Base64Encode(tsigsecret)<<endl;
TSIGRecordContent trc;
- trc.d_algoName = tsigalgorithm + ".sig-alg.reg.int.";
+ if (tsigalgorithm == "hmac-md5")
+ trc.d_algoName = tsigalgorithm + ".sig-alg.reg.int.";
trc.d_time = time(0);
trc.d_fudge = 300;
trc.d_origID=ntohs(d_randomid);
@@ -182,8 +183,11 @@
rr.priority = atoi(rr.content.c_str());
vector<pair<string::size_type, string::size_type> > fields;
vstringtok(fields, rr.content, " ");
- if(fields.size()==4)
+ if(fields.size()==4) {
+ if(fields[3].second - fields[3].first > 1) // strip dot, unless root
+ fields[3].second--;
rr.content=string(rr.content.c_str() + fields[1].first, fields[3].second - fields[1].first);
+ }
}
result->push_back(rr);
}
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/pdns/session.cc
^
|
@@ -26,6 +26,7 @@
#include <fcntl.h>
#include <sstream>
#include "misc.hh"
+#include "iputils.hh"
void Session::init()
{
@@ -284,54 +285,24 @@
return new Session(clisock, remote);
}
-
-
-Server::Server(int p, const string &p_localaddress)
+Server::Server(int port, const string &localaddress)
{
- d_localaddress="0.0.0.0";
- string localaddress=p_localaddress;
- port=p;
-
- struct sockaddr_in local;
- s=socket(AF_INET,SOCK_STREAM,0);
- Utility::setCloseOnExec(s);
+ d_local = ComboAddress(localaddress.empty() ? "0.0.0.0" : localaddress, port);
+ s = socket(d_local.sin4.sin_family ,SOCK_STREAM,0);
- if(s<0)
+ if(s < 0)
throw Exception(string("socket: ")+strerror(errno));
-
- memset(&local,0,sizeof(local));
-
- local.sin_family=AF_INET;
-
- struct hostent *h;
- if(localaddress=="")
- localaddress=d_localaddress;
-
- if ( localaddress != "0.0.0.0" )
- {
- h=gethostbyname(localaddress.c_str());
-
- if(!h)
- throw Exception();
-
- local.sin_addr.s_addr=*(int*)h->h_addr;
- }
- else
- {
- local.sin_addr.s_addr = INADDR_ANY;
- }
- local.sin_port=htons(port);
+ Utility::setCloseOnExec(s);
int tmp=1;
- if(setsockopt(s,SOL_SOCKET,SO_REUSEADDR,(char*)&tmp,sizeof tmp)<0)
+ if(setsockopt(s, SOL_SOCKET, SO_REUSEADDR,(char*)&tmp,sizeof tmp)<0)
throw SessionException(string("Setsockopt failed: ")+strerror(errno));
- if(bind(s, (sockaddr*)&local,sizeof(local))<0)
- throw SessionException("binding to port "+itoa(port)+string(" on ")+localaddress+": "+strerror(errno));
+ if(bind(s, (sockaddr*)&d_local, d_local.getSocklen())<0)
+ throw SessionException("binding to "+d_local.toStringWithPort()+": "+strerror(errno));
if(listen(s,128)<0)
- throw SessionException("listen: "+stringerror());
-
+ throw SessionException("listen: "+stringerror());
}
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/pdns/session.hh
^
|
@@ -1,6 +1,6 @@
/*
PowerDNS Versatile Database Driven Nameserver
- Copyright (C) 2002 PowerDNS.COM BV
+ Copyright (C) 2002 - 2013 PowerDNS.COM BV
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License version 2
@@ -34,7 +34,7 @@
# include <strings.h>
#endif // WIN32
-
+#include "iputils.hh"
#include "ahuexception.hh"
class SessionException: public AhuException
@@ -98,12 +98,12 @@
public:
Server(int p, const string &localaddress=""); //!< port on which to listen
Session* accept(); //!< Call accept() in an endless loop to accept new connections
+ ComboAddress d_local;
private:
int s;
int port;
int backlog;
- string d_localaddress;
};
class Exception
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/pdns/slavecommunicator.cc
^
|
@@ -193,8 +193,6 @@
}
i->domain_id=domain_id;
- if (i->qtype.getCode() == QType::SRV)
- i->content = stripDot(i->content);
#if 0
if(i->qtype.getCode()>=60000)
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/pdns/statbag.cc
^
|
@@ -200,7 +200,7 @@
int rpos;
vector<string>newring;
for(unsigned int i=startpos;i<d_pos;++i) {
- rpos=i>=0 ? i : i+d_size;
+ rpos= i;
newring.push_back(d_items[rpos%d_size]);
}
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/pdns/test-dnsrecords_cc.cc
^
|
@@ -140,8 +140,8 @@
(CASE_S(QType::SPF, "\"v=spf1 a:mail.rec.test ~all\"", "\x1bv=spf1 a:mail.rec.test ~all",false))
(CASE_S(QType::EUI48, "00-11-22-33-44-55", "\x00\x11\x22\x33\x44\x55",false))
(CASE_S(QType::EUI64, "00-11-22-33-44-55-66-77", "\x00\x11\x22\x33\x44\x55\x66\x77",false))
- (CASE_S(QType::TSIG, "HMAC-MD5.SIG-ALG.REG.INT. 1368386956 60 16 TkbpD66/Mtgo8GUEFZIwhg== 12345 0 0", "\x08HMAC-MD5\x07SIG-ALG\x03REG\x03INT\x00\x00\x00\x51\x8f\xed\x8c\x00\x3c\x00\x10\x4e\x46\xe9\x0f\xae\xbf\x32\xd8\x28\xf0\x65\x04\x15\x92\x30\x86\x30\x39\x00\x00\x00\x00",false))
-(CASE_S(QType::TSIG, "HMAC-MD5.SIG-ALG.REG.INT. 1368386956 60 16 TkbpD66/Mtgo8GUEFZIwhg== 12345 18 16 TkbpD66/Mtgo8GUEFZIwhg==", "\x08HMAC-MD5\x07SIG-ALG\x03REG\x03INT\x00\x00\x00\x51\x8f\xed\x8c\x00\x3c\x00\x10\x4e\x46\xe9\x0f\xae\xbf\x32\xd8\x28\xf0\x65\x04\x15\x92\x30\x86\x30\x39\x00\x12\x00\x10\x4e\x46\xe9\x0f\xae\xbf\x32\xd8\x28\xf0\x65\x04\x15\x92\x30\x86",true))
+ //(CASE_S(QType::TSIG, "HMAC-MD5.SIG-ALG.REG.INT. 1368386956 60 16 TkbpD66/Mtgo8GUEFZIwhg== 12345 0 0", "\x08HMAC-MD5\x07SIG-ALG\x03REG\x03INT\x00\x00\x00\x51\x8f\xed\x8c\x00\x3c\x00\x10\x4e\x46\xe9\x0f\xae\xbf\x32\xd8\x28\xf0\x65\x04\x15\x92\x30\x86\x30\x39\x00\x00\x00\x00",false))
+ //(CASE_S(QType::TSIG, "HMAC-MD5.SIG-ALG.REG.INT. 1368386956 60 16 TkbpD66/Mtgo8GUEFZIwhg== 12345 18 16 TkbpD66/Mtgo8GUEFZIwhg==", "\x08HMAC-MD5\x07SIG-ALG\x03REG\x03INT\x00\x00\x00\x51\x8f\xed\x8c\x00\x3c\x00\x10\x4e\x46\xe9\x0f\xae\xbf\x32\xd8\x28\xf0\x65\x04\x15\x92\x30\x86\x30\x39\x00\x12\x00\x10\x4e\x46\xe9\x0f\xae\xbf\x32\xd8\x28\xf0\x65\x04\x15\x92\x30\x86",true))
/* (CASE_S(QType::URL, "http://server.rec.test/", "\x17http://server.rec.test/",false))
(CASE_S(QType::MBOXFW, "you@yourcompany.com", "line format",false))
(CASE_S(QType::CURL, "http://server.rec.test/", "\x17http://server.rec.test/",false))
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/pdns/ueberbackend.cc
^
|
@@ -347,6 +347,7 @@
static int negqueryttl=::arg().asNum("negquery-cache-ttl");
if(!negqueryttl)
return;
+ // we should also not be storing negative answers if a pipebackend does scopeMask, but we can't pass a negative scopeMask in an empty set!
PC.insert(q.qname, q.qtype, PacketCache::QUERYCACHE, "", negqueryttl, q.zoneId);
}
@@ -367,6 +368,8 @@
BOOST_FOREACH(DNSResourceRecord rr, rrs) {
if (rr.ttl < queryttl)
cachettl = rr.ttl;
+ if (rr.scopeMask)
+ return;
}
boa << rrs;
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/pdns/unix_utility.cc
^
|
@@ -237,7 +237,7 @@
if (t->tm_sec>60) { t->tm_min += t->tm_sec/60; t->tm_sec%=60; }
if (t->tm_min>60) { t->tm_hour += t->tm_min/60; t->tm_min%=60; }
if (t->tm_hour>60) { t->tm_mday += t->tm_hour/60; t->tm_hour%=60; }
- if (t->tm_mon>12) { t->tm_year += t->tm_mon/12; t->tm_mon%=12; }
+ if (t->tm_mon>11) { t->tm_year += t->tm_mon/12; t->tm_mon%=12; }
while (t->tm_mday>spm[1+t->tm_mon]) {
if (t->tm_mon==1 && isleap(t->tm_year+1900)) {
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/pdns/utility.hh
^
|
@@ -91,11 +91,6 @@
#else
typedef int sem_value_t;
- uint32_t m_magic;
- pthread_mutex_t m_lock;
- pthread_cond_t m_gtzero;
- sem_value_t m_count;
- uint32_t m_nwaiters;
#endif
protected:
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/pdns/version.cc
^
|
@@ -25,8 +25,7 @@
string compilerVersion()
{
#if defined(__clang__)
- // clang defines __GNUC__ as well, so put it first.
- return string("clang "__clang__version);
+ return string("clang "__clang_version__);
#elif defined(__GNUC__)
return string("gcc "__VERSION__);
#elif defined(_MSC_VER)
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/pdns/webserver.cc
^
|
@@ -177,7 +177,7 @@
}
catch(SessionTimeoutException &e) {
- L<<Logger::Error<<"Timeout in webserver"<<endl;
+ // L<<Logger::Error<<"Timeout in webserver"<<endl;
}
catch(SessionException &e) {
L<<Logger::Error<<"Fatal error in webserver: "<<e.reason<<endl;
@@ -221,14 +221,14 @@
Session *client;
pthread_t tid;
- L<<Logger::Error<<"Launched webserver on "<<d_listenaddress<<":"<<d_port<<endl;
+ L<<Logger::Error<<"Launched webserver on " << d_server->d_local.toStringWithPort() <<endl;
while((client=d_server->accept())) {
pthread_create(&tid, 0 , &serveConnection, (void *)client);
}
}
catch(SessionTimeoutException &e) {
- L<<Logger::Error<<"Timeout in webserver"<<endl;
+ // L<<Logger::Error<<"Timeout in webserver"<<endl;
}
catch(SessionException &e) {
L<<Logger::Error<<"Fatal error in webserver: "<<e.reason<<endl;
|
[-]
[+]
|
Changed |
pdns-3.3.tar.gz/pdns/zoneparser-tng.cc
^
|
@@ -388,7 +388,8 @@
case QType::SRV:
stringtok(recparts, rr.content);
if(recparts.size()==4) {
- recparts[3] = stripDot(toCanonic(d_zonename, recparts[3]));
+ if(recparts[3]!=".")
+ recparts[3] = stripDot(toCanonic(d_zonename, recparts[3]));
rr.content=recparts[0]+" "+recparts[1]+" "+recparts[2]+" "+recparts[3];
}
break;
|