Default diff mode is GIT ===> Updating from git Already up-to-date. ===> Generating patch ===> Viewing diff with more diff --git a/dns/powerdns/Makefile b/dns/powerdns/Makefile index 65609ee..652a90c 100644 --- a/dns/powerdns/Makefile +++ b/dns/powerdns/Makefile @@ -1,8 +1,7 @@ -# $FreeBSD$ +# $FreeBSD: head/dns/powerdns/Makefile 365753 2014-08-23 16:23:12Z marino $ PORTNAME= powerdns -PORTVERSION= 3.3.1 -PORTREVISION= 5 +PORTVERSION= 3.4.0 CATEGORIES= dns ipv6 MASTER_SITES= http://downloads.powerdns.com/releases/ DISTNAME= pdns-${PORTVERSION} @@ -16,15 +15,16 @@ LIB_DEPENDS= libboost_serialization.so:${PORTSDIR}/devel/boost-libs CONFLICTS= powerdns-devel-[2-3].[0-9]* -USES= gmake libtool lua:51 pkgconfig +USES= gmake libtool lua:51 pkgconfig tar:bzip2 +USE_LDCONFIG= YES USE_SUBMAKE= YES -GNU_CONFIGURE= yes +GNU_CONFIGURE= YES INSTALL_TARGET= install-strip CXXFLAGS+= -I${LOCALBASE}/include LDFLAGS+= -L${LOCALBASE}/lib CONFIGURE_ARGS= --disable-static \ --with-modules="" \ - --with-dynmodules="pipe ${MODULES}" \ + --with-dynmodules="pipe bind ${MODULES}" \ --sysconfdir="${PREFIX}/etc/pdns" \ --with-boost="${LOCALBASE}" SCRIPTS_ENV= WRKDIRPREFIX="${WRKDIRPREFIX}" \ @@ -32,38 +32,35 @@ SCRIPTS_ENV= WRKDIRPREFIX="${WRKDIRPREFIX}" \ MKDIR="${MKDIR}" \ DISTNAME="${DISTNAME}" \ POWERDNS_OPTIONS="${POWERDNS_OPTIONS}" +DOCSDIR= ${PREFIX}/share/doc/pdns SUB_FILES= pkg-message USE_RC_SUBR= pdns -OPTIONS_DEFINE= GEO MYSQL MYSQL_LOCAL OPENDBX OPENLDAP OPENLDAP_LOCAL \ - PGSQL PGSQL_LOCAL POLARSSL SQLITE3 TOOLS +OPTIONS_DEFINE= GEO MYSQL OPENDBX OPENLDAP PGSQL POLARSSL REMOTE SQLITE3 TOOLS OPTIONS_GROUP= DNSSEC EXPERIMENTAL -OPTIONS_GROUP_DNSSEC= BOTAN110 CRYPTOPP -OPTIONS_GROUP_EXPERIMENTAL= LUA MYDNS REMOTE REMOTE_HTTP TINYDNS +OPTIONS_GROUP_DNSSEC= BOTAN110 +OPTIONS_GROUP_EXPERIMENTAL= GEOIP LMDB LUA MYDNS TINYDNS PGSQL_DESC= PostgreSQL backend -PGSQL_LOCAL_DESC= RUN_DEPEND on PostgreSQL server MYSQL_DESC= MySQL backend -MYSQL_LOCAL_DESC= RUN_DEPEND on MySQL server OPENDBX_DESC= OpenDBX backend OPENLDAP_DESC= OpenLDAP backend -OPENLDAP_LOCAL_DESC= RUN_DEPEND on OpenLDAP server SQLITE3_DESC= SQLite 3 backend GEO_DESC= Geo backend +GEOIP_DESC= GeoIP backend DNSSEC_DESC= Extra DNSSEC options BOTAN110_DESC= Faster signing + ECDSA & GOST algorithms -CRYPTOPP_DESC= ECDSA algorithms POLARSSL_DESC= Use embedded PolarSSL +LMDB_DESC= LMDB backend LUA_DESC= Lua backend MYDNS_DESC= MyDNS backend REMOTE_DESC= Remote backend -REMOTE_HTTP_DESC= Enable HTTP for the Remote backed TINYDNS_DESC= TinyDNS backend TOOLS_DESC= Build extra tools -OPTIONS_DEFAULT= PGSQL DNSSEC BOTAN110 POLARSSL +OPTIONS_DEFAULT= PGSQLDB DNSSEC BOTAN110 POLARSSL OPTIONS_SUB= yes @@ -74,43 +71,43 @@ TOOLS_CONFIGURE_ON= --enable-tools PGSQL_CONFIGURE_ON= --with-pgsql=${LOCALBASE} PGSQL_CONFIGURE_OFF= --without-pgsql -PGSQL_USE= PGSQL=YES -PGSQL_LOCAL_USE= PGSQL=server +PGSQL_USES= pgsql MYSQL_CONFIGURE_ON= --with-mysql=${LOCALBASE} MYSQL_CONFIGURE_OFF= --without-mysql MYSQL_USE= MYSQL=YES -MYSQL_LOCAL_USE= MYSQL=server MYDNS_CONFIGURE_ON= --with-mysql=${LOCALBASE} MYDNS_USE= MYSQL=YES -MYDNS_LOCAL_USE= MYSQL=server OPENLDAP_CXXFLAGS= -DLDAP_DEPRECATED=1 OPENLDAP_USE= OPENLDAP=YES -OPENLDAP_LOCAL_RUN_DEPENDS= openldap-server>=0:${PORTSDIR}/net/openldap24-server -REMOTE_HTTP_CONFIGURE_ON= --enable-remotebackend-http -REMOTE_HTTP_LIB_DEPENDS= libcurl.so:${PORTSDIR}/ftp/curl - -CRYPTOPP_CONFIGURE_ON= --enable-cryptopp - -SQLITE3_USE= SQLITE=3 +SQLITE3_USE= SQLITE=3 OPENDBX_LIB_DEPENDS= libopendbx.so:${PORTSDIR}/databases/opendbx -BOTAN110_CONFIGURE_ON= --enable-botan1.10 -BOTAN110_LIB_DEPENDS= libbotan-1.10.so:${PORTSDIR}/security/botan110 +BOTAN110_CONFIGURE_ON= --enable-botan1.10 +BOTAN110_LIB_DEPENDS= libbotan-1.10.so:${PORTSDIR}/security/botan110 TINYDNS_LIB_DEPENDS= libcdb.so:${PORTSDIR}/databases/tinycdb TINYDNS_CONFIGURE_ON= CDB_LIBS="-L${LOCALBASE}/lib -lcdb" CDB_CFLAGS="-I${LOCALBASE}/include" +LMDB_LIB_DEPENDS= liblmdb.so:${PORTSDIR}/databases/lmdb + +GEOIP_LIB_DEPENDS= libyaml-cpp.so:${PORTSDIR}/devel/yaml-cpp \ + libGeoIP.so:${PORTSDIR}/net/GeoIP + .include .if ${PORT_OPTIONS:MGEO} MODULES+= geo .endif +.if ${PORT_OPTIONS:MGEOIP} +MODULES+= geoip +.endif + .if ${PORT_OPTIONS:MPGSQL} MODULES+= gpgsql .endif @@ -119,32 +116,18 @@ MODULES+= gpgsql MODULES+= gmysql .endif -.if ${PORT_OPTIONS:MPGSQL_LOCAL} -SUB_LIST+= PGSQL_REQ=postgresql -.else -SUB_LIST+= PGSQL_REQ= -.endif - -.if ${PORT_OPTIONS:MMYSQL_LOCAL} -SUB_LIST+= MYSQL_REQ=mysql -.else -SUB_LIST+= MYSQL_REQ= -.endif - .if ${PORT_OPTIONS:MOPENLDAP} MODULES+= ldap .endif -.if ${PORT_OPTIONS:MOPENLDAP_LOCAL} -SUB_LIST+= SLAPD_REQ=slapd -.else -SUB_LIST+= SLAPD_REQ= -.endif - .if ${PORT_OPTIONS:MSQLITE3} MODULES+= gsqlite3 .endif +.if ${PORT_OPTIONS:MLMDB} +MODULES+= lmdb +.endif + .if ${PORT_OPTIONS:MLUA} MODULES+= lua .endif @@ -165,14 +148,6 @@ MODULES+= tinydns MODULES+= opendbx .endif -.if ${PORT_OPTIONS:MCRYPTOPP} -. if exists(${LOCALBASE}/lib/libcryptopp.so) -LIB_DEPENDS+= libcryptopp.so:${PORTSDIR}/security/cryptopp -. else -BUILD_DEPENDS+= ${LOCALBASE}/lib/libcryptopp.a:${PORTSDIR}/security/cryptopp -. endif -.endif - .if ${PORT_OPTIONS:MPOLARSSL} CONFIGURE_ARGS+= --without-system-polarssl .else diff --git a/dns/powerdns/distinfo b/dns/powerdns/distinfo index 084a8e8..44e4aa8 100644 --- a/dns/powerdns/distinfo +++ b/dns/powerdns/distinfo @@ -1,2 +1,2 @@ -SHA256 (pdns-3.3.1.tar.gz) = feb566994725e049391e9b862c9437ca545f1bb970143d2387e474a6ff645bf3 -SIZE (pdns-3.3.1.tar.gz) = 1403435 +SHA256 (pdns-3.4.0.tar.bz2) = 0780f7a7fe768f9debc9decadb5d3a555b716eed14296e7c41f355bf8db4825e +SIZE (pdns-3.4.0.tar.bz2) = 1234318 diff --git a/dns/powerdns/files/patch-pdns__Makefile.in b/dns/powerdns/files/patch-pdns__Makefile.in index 3d4c6ac..ffc45f1 100644 --- a/dns/powerdns/files/patch-pdns__Makefile.in +++ b/dns/powerdns/files/patch-pdns__Makefile.in @@ -1,49 +1,20 @@ ---- ./pdns/Makefile.in.orig 2013-12-17 14:47:45.000000000 +0100 -+++ ./pdns/Makefile.in 2014-01-16 13:37:09.328942976 +0100 -@@ -66,7 +66,7 @@ - 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 -+@BOTAN110_TRUE@am__append_5 = $(BOTAN110_LIBS) - @BOTAN18_TRUE@am__append_6 = botan18signers.cc botansigners.cc - @BOTAN18_TRUE@am__append_7 = $(BOTAN18_LIBS) -lgmp - @CRYPTOPP_TRUE@am__append_8 = cryptoppsigners.cc -@@ -74,7 +74,7 @@ - @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 -+@BOTAN110_TRUE@am__append_13 = $(BOTAN110_LIBS) - @BOTAN18_TRUE@am__append_14 = botan18signers.cc botansigners.cc - @BOTAN18_TRUE@am__append_15 = $(BOTAN18_LIBS) -lgmp - @CRYPTOPP_TRUE@am__append_16 = cryptoppsigners.cc -@@ -750,8 +750,8 @@ - top_builddir = @top_builddir@ - top_srcdir = @top_srcdir@ - AM_CXXFLAGS = -DSYSCONFDIR=\"@sysconfdir@\" -DLIBDIR=\"@libdir@\" -DLOCALSTATEDIR=\"@socketdir@\" -Ibackends/bind @THREADFLAGS@ $(LUA_CFLAGS) $(SQLITE3_CFLAGS) $(POLARSSL_CFLAGS) -Iext/rapidjson/include --AM_CPPFLAGS = -Ibackends/bind $(BOOST_CPPFLAGS) @THREADFLAGS@ \ -- $(LIBCURL_CFLAGS) $(am__append_1) $(am__append_2) -+AM_CPPFLAGS = -Ibackends/bind @THREADFLAGS@ \ -+ $(am__append_1) $(am__append_2) $(BOOST_CPPFLAGS) - EXTRA_DIST = dnslabeltext.rl dnslabeltext.cc mtasker.cc inflighter.cc docs/pdns_control.8 \ - docs/pdns_server.8 docs/zone2sql.8 docs/zone2ldap.8 docs/pdnssec.8 \ - docs/dnsreplay.8 docs/dnsscope.8 docs/dnswasher.8 docs/pdnssec.8 docs/zone2ldap.8 \ -@@ -797,7 +797,7 @@ - # - pdns_server_LDFLAGS = @moduleobjects@ @modulelibs@ @DYNLINKFLAGS@ @LIBDL@ @THREADFLAGS@ $(BOOST_SERIALIZATION_LDFLAGS) -rdynamic - pdns_server_LDADD = $(POLARSSL_LIBS) $(BOOST_SERIALIZATION_LIBS) \ -- $(LUA_LIBS) $(SQLITE3_LIBS) $(LIBCURL_LIBS) $(am__append_5) \ -+ $(LUA_LIBS) $(SQLITE3_LIBS) $(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 \ -@@ -819,7 +819,7 @@ - $(am__append_18) - pdnssec_LDFLAGS = @moduleobjects@ @modulelibs@ @DYNLINKFLAGS@ @LIBDL@ @THREADFLAGS@ $(BOOST_PROGRAM_OPTIONS_LDFLAGS) $(BOOST_SERIALIZATION_LDFLAGS) - pdnssec_LDADD = $(POLARSSL_LIBS) $(BOOST_PROGRAM_OPTIONS_LIBS) \ -- $(BOOST_SERIALIZATION_LIBS) $(SQLITE3_LIBS) $(LIBCURL_LIBS) \ -+ $(BOOST_SERIALIZATION_LIBS) $(SQLITE3_LIBS) \ - $(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 \ +--- pdns/Makefile.in.orig 2014-09-30 09:23:53 UTC ++++ pdns/Makefile.in +@@ -70,7 +70,7 @@ + notify$(EXEEXT) dnsbulktest$(EXEEXT) nsec3dig$(EXEEXT) \ + saxfr$(EXEEXT) + @BOTAN110_TRUE@am__append_5 = botan110signers.cc botansigners.cc +-@BOTAN110_TRUE@am__append_6 = $(BOTAN110_LIBS) -lgmp -lrt ++@BOTAN110_TRUE@am__append_6 = $(BOTAN110_LIBS) + @BOTAN18_TRUE@am__append_7 = botan18signers.cc botansigners.cc + @BOTAN18_TRUE@am__append_8 = $(BOTAN18_LIBS) -lgmp + @CRYPTOPP_TRUE@am__append_9 = cryptoppsigners.cc +@@ -81,7 +81,7 @@ + @PKCS11_TRUE@am__append_14 = $(P11KIT1_LIBS) + @LMDB_TRUE@am__append_15 = zone2lmdb + @BOTAN110_TRUE@am__append_16 = botan110signers.cc botansigners.cc +-@BOTAN110_TRUE@am__append_17 = $(BOTAN110_LIBS) -lgmp -lrt ++@BOTAN110_TRUE@am__append_17 = $(BOTAN110_LIBS) + @BOTAN18_TRUE@am__append_18 = botan18signers.cc botansigners.cc + @BOTAN18_TRUE@am__append_19 = $(BOTAN18_LIBS) -lgmp + @CRYPTOPP_TRUE@am__append_20 = cryptoppsigners.cc diff --git a/dns/powerdns/files/pdns.conf b/dns/powerdns/files/pdns.conf index 0761694..82ef825 100644 --- a/dns/powerdns/files/pdns.conf +++ b/dns/powerdns/files/pdns.conf @@ -1,140 +1,1238 @@ -# MySQL -#launch=gmysql -#gmysql-host=127.0.0.1 -#gmysql-dbname=pdns -#gmysql-user=pdns -#gmysql-password=pdns - -# PostgreSQL -#launch=gpgsql -#gpgsql-host=127.0.0.1 -#gpgsql-dbname=pdns -#gpgsql-user=pdns -#gpgsql-password=pdns - -# SQLite 2 -#launch=gsqlite -#gsqlite-database= - -# SQLite 3 -#launch=gsqlite3 -#gsqlite3-database= - -# LDAP (check http://www.linuxnetworks.de for more information) -#launch=ldap -#ldap-host (default "127.0.0.1:389") -#ldap-starttls (default "no") -#ldap-basedn (default "") -#ldap-binddn (default "") -#ldap-secret (default "") -#ldap-method (default "simple") -#ldap-filter-axfr (default "(:target:)" ) -#ldap-filter-lookup (default "(:target:)" ) - -# OpenDBX (check http://www.linuxnetworks.de for more information) -#launch=opendbx -#opendbx-backend (default "mysql") -#opendbx-host-read (default "127.0.0.1") -#opendbx-host-write (default "127.0.0.1") -#opendbx-database (default "powerdns") -#opendbx-username (default "powerdns") -#opendbx-password (default "") +# Autogenerated configuration file template +################################# +# allow-axfr-ips Allow zonetransfers only to these subnets +# +# allow-axfr-ips=127.0.0.0/8,::1 + +################################# +# allow-dnsupdate-from A global setting to allow DNS updates from these IP ranges. +# +# allow-dnsupdate-from=127.0.0.0/8,::1 + +################################# +# allow-recursion List of subnets that are allowed to recurse +# +# allow-recursion=0.0.0.0/0 + +################################# +# also-notify When notifying a domain, also notify these nameservers +# +# also-notify= + +################################# +# any-to-tcp Answer ANY queries with tc=1, shunting to TCP +# +# any-to-tcp=no + +################################# +# bind-check-interval Interval for zonefile changes +# +# bind-check-interval=0 + +################################# +# bind-config Location of named.conf +# +# bind-config= + +################################# +# bind-dnssec-db Filename to store & access our DNSSEC metadatabase, empty for none +# +# bind-dnssec-db= + +################################# +# bind-hybrid Store DNSSEC metadata in other backend +# +# bind-hybrid=no + +################################# +# bind-ignore-broken-records Ignore records that are out-of-bound for the zone. +# +# bind-ignore-broken-records=no + +################################# +# bind-supermaster-config Location of (part of) named.conf where pdns can write zone-statements to +# +# bind-supermaster-config= + +################################# +# bind-supermaster-destdir Destination directory for newly added slave zones +# +# bind-supermaster-destdir=/usr/local/etc/pdns + +################################# +# bind-supermasters List of IP-addresses of supermasters +# +# bind-supermasters= + +################################# +# cache-ttl Seconds to store packets in the PacketCache +# +# cache-ttl=20 + +################################# +# carbon-interval Number of seconds between carbon (graphite) updates +# +# carbon-interval=30 + +################################# +# carbon-ourname If set, overrides our reported hostname for carbon stats +# +# carbon-ourname= + +################################# +# carbon-server If set, send metrics in carbon (graphite) format to this server +# +# carbon-server= + +################################# +# chroot If set, chroot to this directory for more security +# +# chroot= + +################################# +# config-dir Location of configuration directory (pdns.conf) +# +# config-dir=/usr/local/etc/pdns + +################################# +# config-name Name of this virtual configuration - will rename the binary image +# +# config-name= + +################################# +# control-console Debugging switch - don't use +# +# control-console=no + +################################# +# daemon Operate as a daemon +# +# daemon=no + +################################# +# default-ksk-algorithms Default KSK algorithms +# +# default-ksk-algorithms=rsasha256 + +################################# +# default-ksk-size Default KSK size (0 means default) +# +# default-ksk-size=0 + +################################# +# default-soa-mail mail address to insert in the SOA record if none set in the backend +# +# default-soa-mail= + +################################# +# default-soa-name name to insert in the SOA record if none set in the backend +# +# default-soa-name=a.misconfigured.powerdns.server + +################################# +# default-ttl Seconds a result is valid if not set otherwise +# +# default-ttl=3600 + +################################# +# default-zsk-algorithms Default ZSK algorithms +# +# default-zsk-algorithms=rsasha256 + +################################# +# default-zsk-size Default ZSK size (0 means default) +# +# default-zsk-size=0 + +################################# +# direct-dnskey Fetch DNSKEY RRs from backend during DNSKEY synthesis +# +# direct-dnskey=no + +################################# +# disable-axfr Disable zonetransfers but do allow TCP queries +# +# disable-axfr=no + +################################# +# disable-axfr-rectify Disable the rectify step during an outgoing AXFR. Only required for regression testing. +# +# disable-axfr-rectify=no + +################################# +# disable-tcp Do not listen to TCP queries +# +# disable-tcp=no + +################################# +# distributor-threads Default number of Distributor (backend) threads to start +# +# distributor-threads=3 + +################################# +# do-ipv6-additional-processing Do AAAA additional processing +# +# do-ipv6-additional-processing=yes + +################################# +# edns-subnet-processing If we should act on EDNS Subnet options +# +# edns-subnet-processing=no + +################################# +# entropy-source If set, read entropy from this file +# +# entropy-source=/dev/urandom + +################################# +# experimental-api-readonly If the JSON API should disallow data modification +# +# experimental-api-readonly=no + +################################# +# experimental-dname-processing If we should support DNAME records +# +# experimental-dname-processing=no + +################################# +# experimental-dnsupdate Enable/Disable DNS update (RFC2136) support. Default is no. +# +# experimental-dnsupdate=no + +################################# +# experimental-json-interface If the webserver should serve JSON data +# +# experimental-json-interface=no + +################################# +# experimental-logfile Filename of the log file for JSON parser +# +# experimental-logfile=/var/log/pdns.log + +################################# +# forward-dnsupdate A global setting to allow DNS update packages that are for a Slave domain, to be forwarded to the master. +# +# forward-dnsupdate=yes + +################################# +# geo-ip-map-zonefile path to the rbldnsd format zonefile +# +# geo-ip-map-zonefile=zz.countries.nerd.dk.rbldnsd + +################################# +# geo-maps list of paths to director maps or directories containing director map files +# +# geo-maps= + +################################# +# geo-ns-records targets of the NS records, comma separated. +# +# geo-ns-records= + +################################# +# geo-ns-ttl TTL value for NS records +# +# geo-ns-ttl=86400 + +################################# +# geo-soa-values values of the SOA master nameserver and hostmaster fields, comma separated +# +# geo-soa-values= + +################################# +# geo-ttl TTL value for geo records +# +# geo-ttl=3600 + +################################# +# geo-zone zonename to be served +# +# geo-zone= + +################################# +# geoip-database-cache Cache mode (standard, memory, index, mmap) +# +# geoip-database-cache=standard + +################################# +# geoip-database-file File to load IPv4 geoip data from +# +# geoip-database-file=/usr/share/GeoIP/GeoIP.dat + +################################# +# geoip-database-file6 File to load IPv6 geoip data from +# +# geoip-database-file6=/usr/share/GeoIP/GeoIPv6.dat + +################################# +# geoip-dnssec-keydir Directory to hold dnssec keys (also turns DNSSEC on) +# +# geoip-dnssec-keydir= + +################################# +# geoip-zones-file YAML file to load zone(s) configuration +# +# geoip-zones-file= + +################################# +# gmysql-activate-domain-key-query +# +# gmysql-activate-domain-key-query=update cryptokeys set active=1 where domain_id=(select id from domains where name='%s') and cryptokeys.id=%d + +################################# +# gmysql-add-domain-key-query +# +# gmysql-add-domain-key-query=insert into cryptokeys (domain_id, flags, active, content) select id, %d, %d, '%s' from domains where name='%s' + +################################# +# gmysql-any-id-query Any with ID query +# +# gmysql-any-id-query=SELECT content,ttl,prio,type,domain_id,disabled,name,auth FROM records WHERE disabled=0 and name='%s' and domain_id=%d + +################################# +# gmysql-any-query Any query +# +# gmysql-any-query=SELECT content,ttl,prio,type,domain_id,disabled,name,auth FROM records WHERE disabled=0 and name='%s' + +################################# +# gmysql-basic-query Basic query +# +# gmysql-basic-query=SELECT content,ttl,prio,type,domain_id,disabled,name,auth FROM records WHERE disabled=0 and type='%s' and name='%s' + +################################# +# gmysql-clear-domain-all-keys-query +# +# gmysql-clear-domain-all-keys-query=delete from cryptokeys where domain_id=(select id from domains where name='%s') + +################################# +# gmysql-clear-domain-all-metadata-query +# +# gmysql-clear-domain-all-metadata-query=delete from domainmetadata where domain_id=(select id from domains where name='%s') + +################################# +# gmysql-clear-domain-metadata-query +# +# gmysql-clear-domain-metadata-query=delete from domainmetadata where domain_id=(select id from domains where name='%s') and domainmetadata.kind='%s' + +################################# +# gmysql-dbname Pdns backend database name to connect to +# +# gmysql-dbname=powerdns + +################################# +# gmysql-deactivate-domain-key-query +# +# gmysql-deactivate-domain-key-query=update cryptokeys set active=0 where domain_id=(select id from domains where name='%s') and cryptokeys.id=%d + +################################# +# gmysql-delete-comment-rrset-query +# +# gmysql-delete-comment-rrset-query=DELETE FROM comments WHERE domain_id=%d AND name='%s' AND type='%s' + +################################# +# gmysql-delete-comments-query +# +# gmysql-delete-comments-query=DELETE FROM comments WHERE domain_id=%d + +################################# +# gmysql-delete-domain-query +# +# gmysql-delete-domain-query=delete from domains where name='%s' + +################################# +# gmysql-delete-empty-non-terminal-query delete empty non-terminal from zone +# +# gmysql-delete-empty-non-terminal-query=delete from records where domain_id='%d' and name='%s' and type is null + +################################# +# gmysql-delete-names-query +# +# gmysql-delete-names-query=delete from records where domain_id = %d and name='%s' + +################################# +# gmysql-delete-rrset-query +# +# gmysql-delete-rrset-query=delete from records where domain_id=%d and name='%s' and type='%s' + +################################# +# gmysql-delete-tsig-key-query +# +# gmysql-delete-tsig-key-query=delete from tsigkeys where name='%s' + +################################# +# gmysql-delete-zone-query +# +# gmysql-delete-zone-query=delete from records where domain_id=%d + +################################# +# gmysql-dnssec Enable DNSSEC processing +# +# gmysql-dnssec=no + +################################# +# gmysql-get-all-domain-metadata-query +# +# gmysql-get-all-domain-metadata-query=select kind,content from domains, domainmetadata where domainmetadata.domain_id=domains.id and name='%s' + +################################# +# gmysql-get-all-domains-query Retrieve all domains +# +# gmysql-get-all-domains-query=select domains.id, domains.name, records.content, domains.type, domains.master, domains.notified_serial, domains.last_check from domains LEFT JOIN records ON records.domain_id=domains.id AND records.type='SOA' AND records.name=domains.name WHERE records.disabled=0 OR %d + +################################# +# gmysql-get-domain-metadata-query +# +# gmysql-get-domain-metadata-query=select content from domains, domainmetadata where domainmetadata.domain_id=domains.id and name='%s' and domainmetadata.kind='%s' + +################################# +# gmysql-get-order-after-query DNSSEC Ordering Query, after +# +# gmysql-get-order-after-query=select min(ordername) from records where ordername > '%s' and domain_id=%d and disabled=0 and ordername is not null + +################################# +# gmysql-get-order-before-query DNSSEC Ordering Query, before +# +# gmysql-get-order-before-query=select ordername, name from records where ordername <= '%s' and domain_id=%d and disabled=0 and ordername is not null order by 1 desc limit 1 + +################################# +# gmysql-get-order-first-query DNSSEC Ordering Query, first +# +# gmysql-get-order-first-query=select ordername, name from records where domain_id=%d and disabled=0 and ordername is not null order by 1 asc limit 1 + +################################# +# gmysql-get-order-last-query DNSSEC Ordering Query, last +# +# gmysql-get-order-last-query=select ordername, name from records where ordername != '' and domain_id=%d and disabled=0 and ordername is not null order by 1 desc limit 1 + +################################# +# gmysql-get-tsig-key-query +# +# gmysql-get-tsig-key-query=select algorithm, secret from tsigkeys where name='%s' + +################################# +# gmysql-get-tsig-keys-query +# +# gmysql-get-tsig-keys-query=select name,algorithm, secret from tsigkeys + +################################# +# gmysql-group Pdns backend MySQL 'group' to connect as +# +# gmysql-group=client + +################################# +# gmysql-host Database backend host to connect to +# +# gmysql-host= + +################################# +# gmysql-id-query Basic with ID query +# +# gmysql-id-query=SELECT content,ttl,prio,type,domain_id,disabled,name,auth FROM records WHERE disabled=0 and type='%s' and name='%s' and domain_id=%d + +################################# +# gmysql-info-all-master-query +# +# gmysql-info-all-master-query=select id,name,master,last_check,notified_serial,type from domains where type='MASTER' + +################################# +# gmysql-info-all-slaves-query +# +# gmysql-info-all-slaves-query=select id,name,master,last_check,type from domains where type='SLAVE' + +################################# +# gmysql-info-zone-query +# +# gmysql-info-zone-query=select id,name,master,last_check,notified_serial,type from domains where name='%s' + +################################# +# gmysql-innodb-read-committed Use InnoDB READ-COMMITTED transaction isolation level +# +# gmysql-innodb-read-committed=yes + +################################# +# gmysql-insert-comment-query +# +# gmysql-insert-comment-query=INSERT INTO comments (domain_id, name, type, modified_at, account, comment) VALUES (%d, '%s', '%s', %d, '%s', '%s') + +################################# +# gmysql-insert-empty-non-terminal-query insert empty non-terminal in zone +# +# gmysql-insert-empty-non-terminal-query=insert into records (domain_id,name,type,disabled,auth) values ('%d','%s',null,0,'1') + +################################# +# gmysql-insert-ent-order-query insert empty non-terminal in zone +# +# gmysql-insert-ent-order-query=insert into records (type,domain_id,disabled,name,ordername,auth) values (null,'%d',0,'%s','%s','%d') + +################################# +# gmysql-insert-ent-query insert empty non-terminal in zone +# +# gmysql-insert-ent-query=insert into records (type,domain_id,disabled,name,auth) values (null,'%d',0,'%s','%d') + +################################# +# gmysql-insert-record-order-query +# +# gmysql-insert-record-order-query=insert into records (content,ttl,prio,type,domain_id,disabled,name,ordername,auth) values ('%s',%d,%d,'%s',%d,%d,'%s','%s','%d') + +################################# +# gmysql-insert-record-query +# +# gmysql-insert-record-query=insert into records (content,ttl,prio,type,domain_id,disabled,name,auth) values ('%s',%d,%d,'%s',%d,%d,'%s','%d') + +################################# +# gmysql-insert-slave-query +# +# gmysql-insert-slave-query=insert into domains (type,name,master,account) values('SLAVE','%s','%s','%s') + +################################# +# gmysql-insert-zone-query +# +# gmysql-insert-zone-query=insert into domains (type,name) values('NATIVE','%s') + +################################# +# gmysql-list-comments-query +# +# gmysql-list-comments-query=SELECT domain_id,name,type,modified_at,account,comment FROM comments WHERE domain_id=%d + +################################# +# gmysql-list-domain-keys-query +# +# gmysql-list-domain-keys-query=select cryptokeys.id, flags, active, content from domains, cryptokeys where cryptokeys.domain_id=domains.id and name='%s' + +################################# +# gmysql-list-query AXFR query +# +# gmysql-list-query=SELECT content,ttl,prio,type,domain_id,disabled,name,auth FROM records WHERE (disabled=0 OR %d) and domain_id='%d' order by name, type + +################################# +# gmysql-list-subzone-query Subzone listing +# +# gmysql-list-subzone-query=SELECT content,ttl,prio,type,domain_id,disabled,name,auth FROM records WHERE disabled=0 and (name='%s' OR name like '%s') and domain_id='%d' + +################################# +# gmysql-master-zone-query Data +# +# gmysql-master-zone-query=select master from domains where name='%s' and type='SLAVE' + +################################# +# gmysql-nullify-ordername-and-auth-query DNSSEC nullify ordername and auth query +# +# gmysql-nullify-ordername-and-auth-query=update records set ordername=NULL,auth=0 where name='%s' and type='%s' and domain_id='%d' and disabled=0 + +################################# +# gmysql-nullify-ordername-and-update-auth-query DNSSEC nullify ordername and update auth query +# +# gmysql-nullify-ordername-and-update-auth-query=update records set ordername=NULL,auth=%d where domain_id='%d' and name='%s' and disabled=0 + +################################# +# gmysql-password Pdns backend password to connect with +# +# gmysql-password= + +################################# +# gmysql-port Database backend port to connect to +# +# gmysql-port=0 + +################################# +# gmysql-remove-domain-key-query +# +# gmysql-remove-domain-key-query=delete from cryptokeys where domain_id=(select id from domains where name='%s') and cryptokeys.id=%d + +################################# +# gmysql-remove-empty-non-terminals-from-zone-query remove all empty non-terminals from zone +# +# gmysql-remove-empty-non-terminals-from-zone-query=delete from records where domain_id='%d' and type is null + +################################# +# gmysql-set-auth-on-ds-record-query DNSSEC set auth on a DS record +# +# gmysql-set-auth-on-ds-record-query=update records set auth=1 where domain_id='%d' and name='%s' and type='DS' and disabled=0 + +################################# +# gmysql-set-domain-metadata-query +# +# gmysql-set-domain-metadata-query=insert into domainmetadata (domain_id, kind, content) select id, '%s', '%s' from domains where name='%s' + +################################# +# gmysql-set-order-and-auth-query DNSSEC set ordering query +# +# gmysql-set-order-and-auth-query=update records set ordername='%s',auth=%d where name='%s' and domain_id='%d' and disabled=0 + +################################# +# gmysql-set-tsig-key-query +# +# gmysql-set-tsig-key-query=replace into tsigkeys (name,algorithm,secret) values('%s','%s','%s') + +################################# +# gmysql-socket Pdns backend socket to connect to +# +# gmysql-socket= + +################################# +# gmysql-supermaster-name-to-ips +# +# gmysql-supermaster-name-to-ips=select ip,account from supermasters where nameserver='%s' and account='%s' + +################################# +# gmysql-supermaster-query +# +# gmysql-supermaster-query=select account from supermasters where ip='%s' and nameserver='%s' + +################################# +# gmysql-update-kind-query +# +# gmysql-update-kind-query=update domains set type='%s' where name='%s' + +################################# +# gmysql-update-lastcheck-query +# +# gmysql-update-lastcheck-query=update domains set last_check=%d where id=%d + +################################# +# gmysql-update-master-query +# +# gmysql-update-master-query=update domains set master='%s' where name='%s' + +################################# +# gmysql-update-serial-query +# +# gmysql-update-serial-query=update domains set notified_serial=%d where id=%d + +################################# +# gmysql-user Database backend user to connect as +# +# gmysql-user=powerdns + +################################# +# gmysql-zone-lastchange-query +# +# gmysql-zone-lastchange-query=select max(change_date) from records where domain_id=%d + +################################# +# gpgsql-activate-domain-key-query +# +# gpgsql-activate-domain-key-query=update cryptokeys set active=true where domain_id=(select id from domains where name=E'%s') and cryptokeys.id=%d + +################################# +# gpgsql-add-domain-key-query +# +# gpgsql-add-domain-key-query=insert into cryptokeys (domain_id, flags, active, content) select id, %d, (%d = 1), '%s' from domains where name=E'%s' + +################################# +# gpgsql-any-id-query Any with ID query +# +# gpgsql-any-id-query=SELECT content,ttl,prio,type,domain_id,disabled::int,name,auth::int FROM records WHERE disabled=false and name=E'%s' and domain_id=%d + +################################# +# gpgsql-any-query Any query +# +# gpgsql-any-query=SELECT content,ttl,prio,type,domain_id,disabled::int,name,auth::int FROM records WHERE disabled=false and name=E'%s' + +################################# +# gpgsql-basic-query Basic query +# +# gpgsql-basic-query=SELECT content,ttl,prio,type,domain_id,disabled::int,name,auth::int FROM records WHERE disabled=false and type='%s' and name=E'%s' + +################################# +# gpgsql-clear-domain-all-keys-query +# +# gpgsql-clear-domain-all-keys-query=delete from cryptokeys where domain_id=(select id from domains where name=E'%s') + +################################# +# gpgsql-clear-domain-all-metadata-query +# +# gpgsql-clear-domain-all-metadata-query=delete from domainmetadata where domain_id=(select id from domains where name=E'%s') + +################################# +# gpgsql-clear-domain-metadata-query +# +# gpgsql-clear-domain-metadata-query=delete from domainmetadata where domain_id=(select id from domains where name=E'%s') and domainmetadata.kind=E'%s' + +################################# +# gpgsql-dbname Pdns backend database name to connect to +# +# gpgsql-dbname= + +################################# +# gpgsql-deactivate-domain-key-query +# +# gpgsql-deactivate-domain-key-query=update cryptokeys set active=false where domain_id=(select id from domains where name=E'%s') and cryptokeys.id=%d + +################################# +# gpgsql-delete-comment-rrset-query +# +# gpgsql-delete-comment-rrset-query=DELETE FROM comments WHERE domain_id=%d AND name=E'%s' AND type=E'%s' + +################################# +# gpgsql-delete-comments-query +# +# gpgsql-delete-comments-query=DELETE FROM comments WHERE domain_id=%d + +################################# +# gpgsql-delete-domain-query +# +# gpgsql-delete-domain-query=delete from domains where name=E'%s' + +################################# +# gpgsql-delete-empty-non-terminal-query delete empty non-terminal from zone +# +# gpgsql-delete-empty-non-terminal-query=delete from records where domain_id='%d' and name='%s' and type is null + +################################# +# gpgsql-delete-names-query +# +# gpgsql-delete-names-query=delete from records where domain_id=%d and name=E'%s' + +################################# +# gpgsql-delete-rrset-query +# +# gpgsql-delete-rrset-query=delete from records where domain_id=%d and name=E'%s' and type=E'%s' + +################################# +# gpgsql-delete-tsig-key-query +# +# gpgsql-delete-tsig-key-query=delete from tsigkeys where name='%s' + +################################# +# gpgsql-delete-zone-query +# +# gpgsql-delete-zone-query=delete from records where domain_id=%d + +################################# +# gpgsql-dnssec Enable DNSSEC processing +# +# gpgsql-dnssec=no + +################################# +# gpgsql-get-all-domain-metadata-query +# +# gpgsql-get-all-domain-metadata-query=select kind,content from domains, domainmetadata where domainmetadata.domain_id=domains.id and name=E'%s' + +################################# +# gpgsql-get-all-domains-query Retrieve all domains +# +# gpgsql-get-all-domains-query=select domains.id, domains.name, records.content, domains.type, domains.master, domains.notified_serial, domains.last_check from domains LEFT JOIN records ON records.domain_id=domains.id AND records.type='SOA' AND records.name=domains.name WHERE records.disabled=false OR %d::bool + +################################# +# gpgsql-get-domain-metadata-query +# +# gpgsql-get-domain-metadata-query=select content from domains, domainmetadata where domainmetadata.domain_id=domains.id and name=E'%s' and domainmetadata.kind=E'%s' + +################################# +# gpgsql-get-order-after-query DNSSEC Ordering Query, after +# +# gpgsql-get-order-after-query=select ordername from records where disabled=false and ordername ~>~ E'%s' and domain_id=%d and ordername is not null order by 1 using ~<~ limit 1 + +################################# +# gpgsql-get-order-before-query DNSSEC Ordering Query, before +# +# gpgsql-get-order-before-query=select ordername, name from records where disabled=false and ordername ~<=~ E'%s' and domain_id=%d and ordername is not null order by 1 using ~>~ limit 1 + +################################# +# gpgsql-get-order-first-query DNSSEC Ordering Query, last +# +# gpgsql-get-order-first-query=select ordername, name from records where disabled=false and domain_id=%d and ordername is not null order by 1 using ~<~ limit 1 + +################################# +# gpgsql-get-order-last-query DNSSEC Ordering Query, last +# +# gpgsql-get-order-last-query=select ordername, name from records where disabled=false and ordername != '' and domain_id=%d and ordername is not null order by 1 using ~>~ limit 1 + +################################# +# gpgsql-get-tsig-key-query +# +# gpgsql-get-tsig-key-query=select algorithm, secret from tsigkeys where name=E'%s' + +################################# +# gpgsql-get-tsig-keys-query +# +# gpgsql-get-tsig-keys-query=select name,algorithm, secret from tsigkeys + +################################# +# gpgsql-host Pdns backend host to connect to +# +# gpgsql-host= + +################################# +# gpgsql-id-query Basic with ID query +# +# gpgsql-id-query=SELECT content,ttl,prio,type,domain_id,disabled::int,name,auth::int FROM records WHERE disabled=false and type='%s' and name=E'%s' and domain_id=%d + +################################# +# gpgsql-info-all-master-query +# +# gpgsql-info-all-master-query=select id,name,master,last_check,notified_serial,type from domains where type='MASTER' + +################################# +# gpgsql-info-all-slaves-query +# +# gpgsql-info-all-slaves-query=select id,name,master,last_check,type from domains where type='SLAVE' + +################################# +# gpgsql-info-zone-query +# +# gpgsql-info-zone-query=select id,name,master,last_check,notified_serial,type from domains where name=E'%s' + +################################# +# gpgsql-insert-comment-query +# +# gpgsql-insert-comment-query=INSERT INTO comments (domain_id, name, type, modified_at, account, comment) VALUES (%d, E'%s', E'%s', %d, E'%s', E'%s') + +################################# +# gpgsql-insert-empty-non-terminal-query insert empty non-terminal in zone +# +# gpgsql-insert-empty-non-terminal-query=insert into records (domain_id,name,type,disabled,auth) values ('%d','%s',null,false,true) + +################################# +# gpgsql-insert-ent-order-query insert empty non-terminal in zone +# +# gpgsql-insert-ent-order-query=insert into records (type,domain_id,disabled,name,ordername,auth) values (null,'%d',false,E'%s',E'%s','%d') + +################################# +# gpgsql-insert-ent-query insert empty non-terminal in zone +# +# gpgsql-insert-ent-query=insert into records (type,domain_id,disabled,name,auth) values (null,'%d',false,E'%s','%d') + +################################# +# gpgsql-insert-record-order-query +# +# gpgsql-insert-record-order-query=insert into records (content,ttl,prio,type,domain_id,disabled,name,ordername,auth) values (E'%s',%d,%d,'%s',%d,%d::bool,E'%s',E'%s','%d') + +################################# +# gpgsql-insert-record-query +# +# gpgsql-insert-record-query=insert into records (content,ttl,prio,type,domain_id,disabled,name,auth) values (E'%s',%d,%d,'%s',%d,%d::bool,E'%s','%d') + +################################# +# gpgsql-insert-slave-query +# +# gpgsql-insert-slave-query=insert into domains (type,name,master,account) values('SLAVE',E'%s',E'%s',E'%s') + +################################# +# gpgsql-insert-zone-query +# +# gpgsql-insert-zone-query=insert into domains (type,name) values('NATIVE',E'%s') + +################################# +# gpgsql-list-comments-query +# +# gpgsql-list-comments-query=SELECT domain_id,name,type,modified_at,account,comment FROM comments WHERE domain_id=%d + +################################# +# gpgsql-list-domain-keys-query +# +# gpgsql-list-domain-keys-query=select cryptokeys.id, flags, case when active then 1 else 0 end as active, content from domains, cryptokeys where cryptokeys.domain_id=domains.id and name=E'%s' + +################################# +# gpgsql-list-query AXFR query +# +# gpgsql-list-query=SELECT content,ttl,prio,type,domain_id,disabled::int,name,auth::int FROM records WHERE (disabled=false OR %d::bool) and domain_id='%d' order by name, type + +################################# +# gpgsql-list-subzone-query Subzone listing +# +# gpgsql-list-subzone-query=SELECT content,ttl,prio,type,domain_id,disabled::int,name,auth::int FROM records WHERE disabled=false and (name=E'%s' OR name like E'%s') and domain_id='%d' + +################################# +# gpgsql-master-zone-query Data +# +# gpgsql-master-zone-query=select master from domains where name=E'%s' and type='SLAVE' + +################################# +# gpgsql-nullify-ordername-and-auth-query DNSSEC nullify ordername and auth query +# +# gpgsql-nullify-ordername-and-auth-query=update records set ordername=NULL,auth=false where name=E'%s' and type=E'%s' and domain_id='%d' and disabled=false + +################################# +# gpgsql-nullify-ordername-and-update-auth-query DNSSEC nullify ordername and update auth query +# +# gpgsql-nullify-ordername-and-update-auth-query=update records set ordername=NULL,auth=%d::bool where domain_id='%d' and name='%s' and disabled=false + +################################# +# gpgsql-password Pdns backend password to connect with +# +# gpgsql-password= + +################################# +# gpgsql-port Database backend port to connect to +# +# gpgsql-port= + +################################# +# gpgsql-remove-domain-key-query +# +# gpgsql-remove-domain-key-query=delete from cryptokeys where domain_id=(select id from domains where name=E'%s') and cryptokeys.id=%d + +################################# +# gpgsql-remove-empty-non-terminals-from-zone-query remove all empty non-terminals from zone +# +# gpgsql-remove-empty-non-terminals-from-zone-query=delete from records where domain_id='%d' and type is null + +################################# +# gpgsql-set-auth-on-ds-record-query DNSSEC set auth on a DS record +# +# gpgsql-set-auth-on-ds-record-query=update records set auth=true where domain_id='%d' and name='%s' and type='DS' and disabled=false + +################################# +# gpgsql-set-domain-metadata-query +# +# gpgsql-set-domain-metadata-query=insert into domainmetadata (domain_id, kind, content) select id, '%s', '%s' from domains where name=E'%s' + +################################# +# gpgsql-set-order-and-auth-query DNSSEC set ordering query +# +# gpgsql-set-order-and-auth-query=update records set ordername=E'%s',auth=%d::bool where name=E'%s' and domain_id='%d' and disabled=false + +################################# +# gpgsql-set-tsig-key-query +# +# gpgsql-set-tsig-key-query=insert into tsigkeys (name,algorithm,secret) values('%s','%s','%s') + +################################# +# gpgsql-supermaster-name-to-ips +# +# gpgsql-supermaster-name-to-ips=select ip,account from supermasters where nameserver=E'%s' and account=E'%s' + +################################# +# gpgsql-supermaster-query +# +# gpgsql-supermaster-query=select account from supermasters where ip='%s' and nameserver=E'%s' + +################################# +# gpgsql-update-kind-query +# +# gpgsql-update-kind-query=update domains set type='%s' where name='%s' + +################################# +# gpgsql-update-lastcheck-query +# +# gpgsql-update-lastcheck-query=update domains set last_check=%d where id=%d + +################################# +# gpgsql-update-master-query +# +# gpgsql-update-master-query=update domains set master='%s' where name='%s' + +################################# +# gpgsql-update-serial-query +# +# gpgsql-update-serial-query=update domains set notified_serial=%d where id=%d + +################################# +# gpgsql-user Pdns backend user to connect as +# +# gpgsql-user= + +################################# +# gpgsql-zone-lastchange-query +# +# gpgsql-zone-lastchange-query=select max(change_date) from records where domain_id=%d + +################################# +# gsqlite3-activate-domain-key-query +# +# gsqlite3-activate-domain-key-query=update cryptokeys set active=1 where domain_id=(select id from domains where name='%s') and cryptokeys.id=%d + +################################# +# gsqlite3-add-domain-key-query +# +# gsqlite3-add-domain-key-query=insert into cryptokeys (domain_id, flags, active, content) select id, %d, %d, '%s' from domains where name='%s' + +################################# +# gsqlite3-any-id-query Any with ID query +# +# gsqlite3-any-id-query=SELECT content,ttl,prio,type,domain_id,disabled,name,auth FROM records WHERE disabled=0 and name='%s' and domain_id=%d + +################################# +# gsqlite3-any-query Any query +# +# gsqlite3-any-query=SELECT content,ttl,prio,type,domain_id,disabled,name,auth FROM records WHERE disabled=0 and name='%s' + +################################# +# gsqlite3-basic-query Basic query +# +# gsqlite3-basic-query=SELECT content,ttl,prio,type,domain_id,disabled,name,auth FROM records WHERE disabled=0 and type='%s' and name='%s' + +################################# +# gsqlite3-clear-domain-all-keys-query +# +# gsqlite3-clear-domain-all-keys-query=delete from cryptokeys where domain_id=(select id from domains where name='%s') + +################################# +# gsqlite3-clear-domain-all-metadata-query +# +# gsqlite3-clear-domain-all-metadata-query=delete from domainmetadata where domain_id=(select id from domains where name='%s') + +################################# +# gsqlite3-clear-domain-metadata-query +# +# gsqlite3-clear-domain-metadata-query=delete from domainmetadata where domain_id=(select id from domains where name='%s') and domainmetadata.kind='%s' + +################################# +# gsqlite3-database Filename of the SQLite3 database +# +# gsqlite3-database=powerdns.sqlite + +################################# +# gsqlite3-deactivate-domain-key-query +# +# gsqlite3-deactivate-domain-key-query=update cryptokeys set active=0 where domain_id=(select id from domains where name='%s') and cryptokeys.id=%d + +################################# +# gsqlite3-delete-comment-rrset-query +# +# gsqlite3-delete-comment-rrset-query=DELETE FROM comments WHERE domain_id=%d AND name='%s' AND type='%s' + +################################# +# gsqlite3-delete-comments-query +# +# gsqlite3-delete-comments-query=DELETE FROM comments WHERE domain_id=%d + +################################# +# gsqlite3-delete-domain-query +# +# gsqlite3-delete-domain-query=delete from domains where name='%s' + +################################# +# gsqlite3-delete-empty-non-terminal-query delete empty non-terminal from zone +# +# gsqlite3-delete-empty-non-terminal-query=delete from records where domain_id='%d' and name='%s' and type is null + +################################# +# gsqlite3-delete-names-query +# +# gsqlite3-delete-names-query=delete from records where domain_id = %d and name='%s' + +################################# +# gsqlite3-delete-rrset-query +# +# gsqlite3-delete-rrset-query=delete from records where domain_id = %d and name='%s' and type='%s' + +################################# +# gsqlite3-delete-tsig-key-query +# +# gsqlite3-delete-tsig-key-query=delete from tsigkeys where name='%s' + +################################# +# gsqlite3-delete-zone-query +# +# gsqlite3-delete-zone-query=delete from records where domain_id=%d + +################################# +# gsqlite3-dnssec Enable DNSSEC processing +# +# gsqlite3-dnssec=no + +################################# +# gsqlite3-get-all-domain-metadata-query +# +# gsqlite3-get-all-domain-metadata-query=select kind,content from domains, domainmetadata where domainmetadata.domain_id=domains.id and name='%s' + +################################# +# gsqlite3-get-all-domains-query Retrieve all domains +# +# gsqlite3-get-all-domains-query=select domains.id, domains.name, records.content, domains.type, domains.master, domains.notified_serial, domains.last_check from domains LEFT JOIN records ON records.domain_id=domains.id AND records.type='SOA' AND records.name=domains.name WHERE records.disabled=0 OR %d + +################################# +# gsqlite3-get-domain-metadata-query +# +# gsqlite3-get-domain-metadata-query=select content from domains, domainmetadata where domainmetadata.domain_id=domains.id and name='%s' and domainmetadata.kind='%s' + +################################# +# gsqlite3-get-order-after-query DNSSEC Ordering Query, after +# +# gsqlite3-get-order-after-query=select min(ordername) from records where disabled=0 and ordername > '%s' and domain_id=%d and ordername is not null + +################################# +# gsqlite3-get-order-before-query DNSSEC Ordering Query, before +# +# gsqlite3-get-order-before-query=select ordername, name from records where disabled=0 and ordername <= '%s' and domain_id=%d and ordername is not null order by 1 desc limit 1 + +################################# +# gsqlite3-get-order-first-query DNSSEC Ordering Query, first +# +# gsqlite3-get-order-first-query=select ordername, name from records where disabled=0 and domain_id=%d and ordername is not null order by 1 asc limit 1 + +################################# +# gsqlite3-get-order-last-query DNSSEC Ordering Query, last +# +# gsqlite3-get-order-last-query=select ordername, name from records where disabled=0 and ordername != '' and domain_id=%d and ordername is not null order by 1 desc limit 1 + +################################# +# gsqlite3-get-tsig-key-query +# +# gsqlite3-get-tsig-key-query=select algorithm, secret from tsigkeys where name='%s' + +################################# +# gsqlite3-get-tsig-keys-query +# +# gsqlite3-get-tsig-keys-query=select name,algorithm, secret from tsigkeys + +################################# +# gsqlite3-id-query Basic with ID query +# +# gsqlite3-id-query=SELECT content,ttl,prio,type,domain_id,disabled,name,auth FROM records WHERE disabled=0 and type='%s' and name='%s' and domain_id=%d + +################################# +# gsqlite3-info-all-master-query +# +# gsqlite3-info-all-master-query=select id,name,master,last_check,notified_serial,type from domains where type='MASTER' + +################################# +# gsqlite3-info-all-slaves-query +# +# gsqlite3-info-all-slaves-query=select id,name,master,last_check,type from domains where type='SLAVE' + +################################# +# gsqlite3-info-zone-query +# +# gsqlite3-info-zone-query=select id,name,master,last_check,notified_serial,type from domains where name='%s' + +################################# +# gsqlite3-insert-comment-query +# +# gsqlite3-insert-comment-query=INSERT INTO comments (domain_id, name, type, modified_at, account, comment) VALUES (%d, '%s', '%s', %d, '%s', '%s') + +################################# +# gsqlite3-insert-empty-non-terminal-query insert empty non-terminal in zone +# +# gsqlite3-insert-empty-non-terminal-query=insert into records (domain_id,name,type,disabled,auth) values ('%d','%s',null,0,'1') + +################################# +# gsqlite3-insert-ent-order-query insert empty non-terminal in zone +# +# gsqlite3-insert-ent-order-query=insert into records (type,domain_id,disabled,name,ordername,auth) values (null,'%d',0,'%s','%s','%d') + +################################# +# gsqlite3-insert-ent-query insert empty non-terminal in zone +# +# gsqlite3-insert-ent-query=insert into records (type,domain_id,disabled,name,auth) values (null,'%d',0,'%s','%d') -# Autogenerated configuration file template ################################# -# allow-axfr-ips Allow zonetransfers only to these subnets +# gsqlite3-insert-record-order-query # -# allow-axfr-ips=0.0.0.0/0,::/0 +# gsqlite3-insert-record-order-query=insert into records (content,ttl,prio,type,domain_id,disabled,name,ordername,auth) values ('%s',%d,%d,'%s',%d,%d,'%s','%s','%d') ################################# -# allow-recursion List of subnets that are allowed to recurse +# gsqlite3-insert-record-query # -# allow-recursion=0.0.0.0/0 +# gsqlite3-insert-record-query=insert into records (content,ttl,prio,type,domain_id,disabled,name,auth) values ('%s',%d,%d,'%s',%d,%d,'%s',%d) ################################# -# allow-recursion-override Set this so that local data fully overrides the recursor +# gsqlite3-insert-slave-query # -# allow-recursion-override=no +# gsqlite3-insert-slave-query=insert into domains (type,name,master,account) values('SLAVE','%s','%s','%s') ################################# -# cache-ttl Seconds to store packets in the PacketCache +# gsqlite3-insert-zone-query # -# cache-ttl=20 +# gsqlite3-insert-zone-query=insert into domains (type,name) values('NATIVE','%s') ################################# -# chroot If set, chroot to this directory for more security +# gsqlite3-list-comments-query # -# chroot= +# gsqlite3-list-comments-query=SELECT domain_id,name,type,modified_at,account,comment FROM comments WHERE domain_id=%d ################################# -# config-dir Location of configuration directory (pdns.conf) +# gsqlite3-list-domain-keys-query # -# config-dir=/usr/local/etc/pdns +# gsqlite3-list-domain-keys-query=select cryptokeys.id, flags, active, content from domains, cryptokeys where cryptokeys.domain_id=domains.id and name='%s' ################################# -# config-name Name of this virtual configuration - will rename the binary image +# gsqlite3-list-query AXFR query # -# config-name= +# gsqlite3-list-query=SELECT content,ttl,prio,type,domain_id,disabled,name,auth FROM records WHERE (disabled=0 OR %d) and domain_id='%d' order by name, type ################################# -# control-console Debugging switch - don't use +# gsqlite3-list-subzone-query Subzone listing # -# control-console=no +# gsqlite3-list-subzone-query=SELECT content,ttl,prio,type,domain_id,disabled,name,auth FROM records WHERE disabled=0 and (name='%s' OR name like '%s') and domain_id=%d ################################# -# daemon Operate as a daemon +# gsqlite3-master-zone-query Data # -# daemon=no +# gsqlite3-master-zone-query=select master from domains where name='%s' and type='SLAVE' ################################# -# default-soa-name name to insert in the SOA record if none set in the backend +# gsqlite3-nullify-ordername-and-auth-query DNSSEC nullify ordername and auth query # -# default-soa-name=a.misconfigured.powerdns.server +# gsqlite3-nullify-ordername-and-auth-query=update records set ordername=NULL,auth=0 where name='%s' and type='%s' and domain_id='%d' and disabled=0 ################################# -# default-ttl Seconds a result is valid if not set otherwise +# gsqlite3-nullify-ordername-and-update-auth-query DNSSEC nullify ordername and update auth query # -# default-ttl=3600 +# gsqlite3-nullify-ordername-and-update-auth-query=update records set ordername=NULL,auth=%d where domain_id='%d' and name='%s' and disabled=0 ################################# -# disable-axfr Disable zonetransfers but do allow TCP queries +# gsqlite3-pragma-synchronous Set this to 0 for blazing speed # -# disable-axfr=no +# gsqlite3-pragma-synchronous= ################################# -# disable-tcp Do not listen to TCP queries +# gsqlite3-remove-domain-key-query # -# disable-tcp=no +# gsqlite3-remove-domain-key-query=delete from cryptokeys where domain_id=(select id from domains where name='%s') and cryptokeys.id=%d ################################# -# distributor-threads Default number of Distributor (backend) threads to start +# gsqlite3-remove-empty-non-terminals-from-zone-query remove all empty non-terminals from zone # -# distributor-threads=3 +# gsqlite3-remove-empty-non-terminals-from-zone-query=delete from records where domain_id='%d' and type is null ################################# -# do-ipv6-additional-processing Do AAAA additional processing +# gsqlite3-set-auth-on-ds-record-query DNSSEC set auth on a DS record # -# do-ipv6-additional-processing=no +# gsqlite3-set-auth-on-ds-record-query=update records set auth=1 where domain_id='%d' and name='%s' and type='DS' and disabled=0 ################################# -# edns-subnet-option-number EDNS option number to use +# gsqlite3-set-domain-metadata-query # -# edns-subnet-option-number=20730 +# gsqlite3-set-domain-metadata-query=insert into domainmetadata (domain_id, kind, content) select id, '%s', '%s' from domains where name='%s' ################################# -# edns-subnet-processing If we should act on EDNS Subnet options +# gsqlite3-set-order-and-auth-query DNSSEC set ordering query # -# edns-subnet-processing=no +# gsqlite3-set-order-and-auth-query=update records set ordername='%s',auth=%d where name='%s' and domain_id='%d' and disabled=0 ################################# -# entropy-source If set, read entropy from this file +# gsqlite3-set-tsig-key-query # -# entropy-source=/dev/urandom +# gsqlite3-set-tsig-key-query=replace into tsigkeys (name,algorithm,secret) values('%s','%s','%s') + +################################# +# gsqlite3-supermaster-name-to-ips +# +# gsqlite3-supermaster-name-to-ips=select ip,account from supermasters where nameserver='%s' and account='%s' + +################################# +# gsqlite3-supermaster-query +# +# gsqlite3-supermaster-query=select account from supermasters where ip='%s' and nameserver='%s' + +################################# +# gsqlite3-update-kind-query +# +# gsqlite3-update-kind-query=update domains set type='%s' where name='%s' + +################################# +# gsqlite3-update-lastcheck-query +# +# gsqlite3-update-lastcheck-query=update domains set last_check=%d where id=%d + +################################# +# gsqlite3-update-master-query +# +# gsqlite3-update-master-query=update domains set master='%s' where name='%s' + +################################# +# gsqlite3-update-serial-query +# +# gsqlite3-update-serial-query=update domains set notified_serial=%d where id=%d ################################# -# fancy-records Process URL and MBOXFW records +# gsqlite3-zone-lastchange-query # -# fancy-records=no +# gsqlite3-zone-lastchange-query=select max(change_date) from records where domain_id=%d ################################# # guardian Run within a guardian process @@ -142,14 +1240,24 @@ # guardian=no ################################# +# include-dir Include *.conf files from this directory +# +# include-dir= + +################################# # launch Which backends to launch and order to query them in # -# launch= +# launch=bind,geo,geoip,gmysql,gpgsql,gsqlite3,lmdb,lua,mydns,opendbx,pipe,tinydns ################################# -# lazy-recursion Only recurse if question cannot be answered locally +# lmdb-datapath Path to the directory containing the lmdb files # -# lazy-recursion=yes +# lmdb-datapath=/etc/pdns/data + +################################# +# lmdb-experimental-dnssec Enable experimental DNSSEC processing +# +# lmdb-experimental-dnssec=no ################################# # load-modules Load this module - supply absolute or relative path @@ -162,11 +1270,21 @@ # local-address=0.0.0.0 ################################# +# local-address-nonexist-fail Fail to start if one or more of the local-address's do not exist on this server +# +# local-address-nonexist-fail=yes + +################################# # local-ipv6 Local IP address to which we bind # # local-ipv6= ################################# +# local-ipv6-nonexist-fail Fail to start if one or more of the local-ipv6 addresses do not exist on this server +# +# local-ipv6-nonexist-fail=yes + +################################# # local-port The port on which we listen # # local-port=53 @@ -174,7 +1292,7 @@ ################################# # log-dns-details If PDNS should log DNS non-erroneous details # -# log-dns-details= +# log-dns-details=no ################################# # log-dns-queries If PDNS should log all incoming DNS queries @@ -182,24 +1300,29 @@ # log-dns-queries=no ################################# -# log-failed-updates If PDNS should log failed update requests +# logging-facility Log under a specific facility +# +# logging-facility= + +################################# +# loglevel Amount of logging. Higher is more. Do not set below 3 # -# log-failed-updates= +# loglevel=4 ################################# -# logfile Logfile to use (Windows only) +# lua-filename Filename of the script for lua backend # -# logfile=pdns.log +# lua-filename=powerdns-luabackend.lua ################################# -# logging-facility Log under a specific facility +# lua-logging-query Logging of the LUA Backend # -# logging-facility= +# lua-logging-query=no ################################# -# loglevel Amount of logging. Higher is more. Do not set below 3 +# lua-prequery-script Lua script with prequery handler # -# loglevel=4 +# lua-prequery-script= ################################# # master Act as a master @@ -212,11 +1335,26 @@ # max-cache-entries=1000000 ################################# +# max-ent-entries Maximum number of empty non-terminals in a zone +# +# max-ent-entries=100000 + +################################# +# max-nsec3-iterations Limit the number of NSEC3 hash iterations +# +# max-nsec3-iterations=500 + +################################# # max-queue-length Maximum queuelength before considering situation lost # # max-queue-length=5000 ################################# +# max-signature-cache-entries Maximum number of signatures cache entries +# +# max-signature-cache-entries= + +################################# # max-tcp-connections Maximum number of TCP connections # # max-tcp-connections=10 @@ -224,10 +1362,75 @@ ################################# # module-dir Default directory for modules # -# module-dir=/usr/local/lib +# module-dir=/usr/local/lib/pdns + +################################# +# mydns-dbname Pdns backend database name to connect to +# +# mydns-dbname=mydns + +################################# +# mydns-host Pdns backend host to connect to +# +# mydns-host= + +################################# +# mydns-password Pdns backend password to connect with +# +# mydns-password= + +################################# +# mydns-port Pdns backend host to connect to +# +# mydns-port= + +################################# +# mydns-rr-active Use the active column in the RR table +# +# mydns-rr-active=yes ################################# -# negquery-cache-ttl Seconds to store packets in the PacketCache +# mydns-rr-table Name of RR table to use +# +# mydns-rr-table=rr + +################################# +# mydns-rr-where Additional WHERE clause for RR +# +# mydns-rr-where=1 = 1 + +################################# +# mydns-soa-active Use the active column in the SOA table +# +# mydns-soa-active=yes + +################################# +# mydns-soa-table Name of SOA table to use +# +# mydns-soa-table=soa + +################################# +# mydns-soa-where Additional WHERE clause for SOA +# +# mydns-soa-where=1 = 1 + +################################# +# mydns-socket Pdns backend socket to connect to +# +# mydns-socket= + +################################# +# mydns-use-minimal-ttl Setting this to 'yes' will make the backend behave like MyDNS on the TTL values. Setting it to 'no' will make it ignore the minimal-ttl of the zone. +# +# mydns-use-minimal-ttl=yes + +################################# +# mydns-user Pdns backend user to connect as +# +# mydns-user=powerdns + +################################# +# negquery-cache-ttl Seconds to store negative query results in the QueryCache # # negquery-cache-ttl=60 @@ -237,6 +1440,146 @@ # no-shuffle=off ################################# +# only-notify Only send AXFR NOTIFY to these IP addresses or netmasks +# +# only-notify=0.0.0.0/0,::/0 + +################################# +# opendbx-backend OpenDBX backend +# +# opendbx-backend=mysql + +################################# +# opendbx-database Database name containing the DNS records +# +# opendbx-database=powerdns + +################################# +# opendbx-host deprecated, use host-read and host-write instead +# +# opendbx-host= + +################################# +# opendbx-host-read Name or address of one or more DBMS server to read from +# +# opendbx-host-read=127.0.0.1 + +################################# +# opendbx-host-write Name or address of one or more DBMS server used for updates +# +# opendbx-host-write=127.0.0.1 + +################################# +# opendbx-password Password for connecting to the DBMS +# +# opendbx-password= + +################################# +# opendbx-port Port the DBMS server are listening to +# +# opendbx-port= + +################################# +# opendbx-sql-infomasters Get all updated masters +# +# opendbx-sql-infomasters=SELECT d."id", d."name", d."master", d."last_check", d."notified_serial", d."auto_serial", r."content" FROM "domains" d LEFT JOIN "records" r ON ( d."id"=r."domain_id" AND r."type"='SOA' ) WHERE d."status"='A' AND d."type"='MASTER' + +################################# +# opendbx-sql-infoslaves Get all unfresh slaves +# +# opendbx-sql-infoslaves=SELECT d."id", d."name", d."master", d."last_check", d."notified_serial", d."auto_serial", r."content" FROM "domains" d LEFT JOIN "records" r ON ( d."id"=r."domain_id" AND r."type"='SOA' ) WHERE d."status"='A' AND d."type"='SLAVE' + +################################# +# opendbx-sql-insert-record Feed record into table +# +# opendbx-sql-insert-record=INSERT INTO "records" ( "domain_id", "name", "type", "ttl", "prio", "content" ) VALUES ( %d, '%s', '%s', %d, %d, '%s' ) + +################################# +# opendbx-sql-insert-slave Add slave domain +# +# opendbx-sql-insert-slave=INSERT INTO "domains" ( "name", "type", "master", "account" ) VALUES ( '%s', 'SLAVE', '%s', '%s' ) + +################################# +# opendbx-sql-list AXFR query +# +# opendbx-sql-list=SELECT r."domain_id", r."name", r."type", r."ttl", r."prio", r."content" FROM "records" r WHERE r."domain_id"=:id + +################################# +# opendbx-sql-lookup Lookup query +# +# opendbx-sql-lookup=SELECT r."domain_id", r."name", r."type", r."ttl", r."prio", r."content" FROM "records" r WHERE r."name"=':name' + +################################# +# opendbx-sql-lookupid Lookup query with id +# +# opendbx-sql-lookupid=SELECT r."domain_id", r."name", r."type", r."ttl", r."prio", r."content" FROM "records" r WHERE r."domain_id"=:id AND r."name"=':name' + +################################# +# opendbx-sql-lookupsoa Lookup query for SOA record +# +# opendbx-sql-lookupsoa=SELECT d."id", d."auto_serial", r."ttl", r."content" FROM "records" r JOIN "domains" d ON r."domain_id"=d."id" WHERE r."name"=':name' AND r."type"='SOA' AND d."status"='A' + +################################# +# opendbx-sql-lookuptype Lookup query with type +# +# opendbx-sql-lookuptype=SELECT r."domain_id", r."name", r."type", r."ttl", r."prio", r."content" FROM "records" r WHERE r."name"=':name' AND r."type"=':type' + +################################# +# opendbx-sql-lookuptypeid Lookup query with type and id +# +# opendbx-sql-lookuptypeid=SELECT r."domain_id", r."name", r."type", r."ttl", r."prio", r."content" FROM "records" r WHERE r."domain_id"=:id AND r."name"=':name' AND r."type"=':type' + +################################# +# opendbx-sql-master Get master record for zone +# +# opendbx-sql-master=SELECT d."master" FROM "domains" d WHERE d."name"=':name' AND d."status"='A' AND d."type"='SLAVE' + +################################# +# opendbx-sql-supermaster Get supermaster info +# +# opendbx-sql-supermaster=SELECT s."account" FROM "supermasters" s WHERE s."ip"=':ip' AND s."nameserver"=':ns' + +################################# +# opendbx-sql-transactabort Abort transaction +# +# opendbx-sql-transactabort=ROLLBACK + +################################# +# opendbx-sql-transactbegin Start transaction +# +# opendbx-sql-transactbegin=BEGIN + +################################# +# opendbx-sql-transactend Finish transaction +# +# opendbx-sql-transactend=COMMIT + +################################# +# opendbx-sql-update-lastcheck Set time of last check +# +# opendbx-sql-update-lastcheck=UPDATE "domains" SET "last_check"=%d WHERE "id"=%d + +################################# +# opendbx-sql-update-serial Set zone to notified +# +# opendbx-sql-update-serial=UPDATE "domains" SET "notified_serial"=%d WHERE "id"=%d + +################################# +# opendbx-sql-zonedelete Delete all records for this zone +# +# opendbx-sql-zonedelete=DELETE FROM "records" WHERE "domain_id"=:id + +################################# +# opendbx-sql-zoneinfo Get domain info +# +# opendbx-sql-zoneinfo=SELECT d."id", d."name", d."type", d."master", d."last_check", d."auto_serial", r."content" FROM "domains" d LEFT JOIN "records" r ON ( d."id"=r."domain_id" AND r."type"='SOA' ) WHERE d."name"=':name' AND d."status"='A' + +################################# +# opendbx-username User for connecting to the DBMS +# +# opendbx-username=powerdns + +################################# # out-of-zone-additional-processing Do out of zone additional processing # # out-of-zone-additional-processing=yes @@ -247,9 +1590,19 @@ # overload-queue-length=0 ################################# -# per-zone-axfr-acls When set, backends that implement it perform per-zone AXFL ACL checks +# pipe-command Command to execute for piping questions to +# +# pipe-command= + +################################# +# pipe-regex Regular exception of queries to pass to coprocess +# +# pipe-regex= + +################################# +# pipe-timeout Number of milliseconds to wait for an answer # -# per-zone-axfr-acls=off +# pipe-timeout=2000 ################################# # pipebackend-abi-version Version of the pipe backend ABI @@ -257,7 +1610,12 @@ # pipebackend-abi-version=1 ################################# -# query-cache-ttl Seconds to store packets in the PacketCache +# prevent-self-notification Don't send notifications to what we think is ourself +# +# prevent-self-notification=yes + +################################# +# query-cache-ttl Seconds to store query results in the QueryCache # # query-cache-ttl=20 @@ -282,12 +1640,12 @@ # queue-limit=1500 ################################# -# receiver-threads Default number of Distributor (backend) threads to start +# receiver-threads Default number of receiver threads to start # # receiver-threads=1 ################################# -# recursive-cache-ttl Seconds to store packets in the PacketCache +# recursive-cache-ttl Seconds to store packets for recursive queries in the PacketCache # # recursive-cache-ttl=10 @@ -302,12 +1660,17 @@ # retrieval-threads=2 ################################# +# reuseport Enable higher performance on compliant kernels by using SO_REUSEPORT allowing each receiver thread to open its own socket +# +# reuseport=no + +################################# # send-root-referral Send out old-fashioned root-referral instead of ServFail in case of no authority # # send-root-referral=no ################################# -# server-id Returned when queried for 'server.id' TXT or NSID, defaults to hostname +# server-id Returned when queried for 'server.id' TXT or NSID, defaults to hostname - disabled or custom # # server-id= @@ -327,11 +1690,6 @@ # signing-threads=3 ################################# -# skip-cname Do not perform CNAME indirection for each query -# -# skip-cname=no - -################################# # slave Act as a slave # # slave=no @@ -347,17 +1705,12 @@ # slave-renotify=no ################################# -# smtpredirector Our smtpredir MX host -# -# smtpredirector=a.misconfigured.powerdns.smtp.server - -################################# # soa-expire-default Default SOA expire # # soa-expire-default=604800 ################################# -# soa-minimum-ttl Default SOA mininum ttl +# soa-minimum-ttl Default SOA minimum ttl # # soa-minimum-ttl=3600 @@ -372,21 +1725,11 @@ # soa-retry-default=3600 ################################# -# soa-serial-offset Make sure that no SOA serial is less than this number -# -# soa-serial-offset=0 - -################################# # socket-dir Where the controlsocket will live # # 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= @@ -407,19 +1750,44 @@ # tcp-control-secret= ################################# -# trusted-notification-proxy IP address of incoming notification proxy +# tinydns-dbfile Location of the cdb data file # -# trusted-notification-proxy= +# tinydns-dbfile=data.cdb + +################################# +# tinydns-ignore-bogus-records The data.cdb file might have some wront record data, this causes PowerDNS to fail, where tinydns would send out truncated data. This option makes powerdns ignore that data! +# +# tinydns-ignore-bogus-records=no + +################################# +# tinydns-locations Enable or Disable location support in the backend. Changing the value to 'no' will make the backend ignore the locations. This then returns all records! +# +# tinydns-locations=yes + +################################# +# tinydns-notify-on-startup Tell the TinyDNSBackend to notify all the slave nameservers on startup. Default is no. +# +# tinydns-notify-on-startup=no + +################################# +# tinydns-tai-adjust This adjusts the TAI value if timestamps are used. These seconds will be added to the start point (1970) and will allow you to adjust for leap seconds. The default is 11. +# +# tinydns-tai-adjust=11 + +################################# +# traceback-handler Enable the traceback handler (Linux only) +# +# traceback-handler=yes ################################# -# urlredirector Where we send hosts to that need to be url redirected +# trusted-notification-proxy IP address of incoming notification proxy # -# urlredirector=127.0.0.1 +# trusted-notification-proxy= ################################# -# use-logfile Use a log file (Windows only) +# udp-truncation-threshold Maximum UDP response size before we truncate # -# use-logfile=no +# udp-truncation-threshold=1680 ################################# # version-string PowerDNS version in packets - full, anonymous, powerdns or custom @@ -437,6 +1805,11 @@ # webserver-address=127.0.0.1 ################################# +# webserver-allow-from Webserver access is only allowed from these subnets +# +# webserver-allow-from=0.0.0.0/0,::/0 + +################################# # webserver-password Password required for accessing the webserver # # webserver-password= @@ -451,14 +1824,4 @@ # # webserver-print-arguments=no -################################# -# wildcard-url Process URL and MBOXFW records -# -# wildcard-url=no - -################################# -# wildcards Honor wildcards in the database -# -# wildcards= - diff --git a/dns/powerdns/files/pdns.in b/dns/powerdns/files/pdns.in index 882099dd..bd6f66d 100644 --- a/dns/powerdns/files/pdns.in +++ b/dns/powerdns/files/pdns.in @@ -1,10 +1,10 @@ #!/bin/sh # -# $FreeBSD$ +# $FreeBSD: head/dns/powerdns/files/pdns.in 340872 2014-01-24 00:14:07Z mat $ # # PROVIDE: pdns_server -# REQUIRE: DAEMON %%MYSQL_REQ%% %%PGSQL_REQ%% %%SLAPD_REQ%% +# REQUIRE: DAEMON SERVERS # KEYWORD: shutdown # diff --git a/dns/powerdns/files/pkg-message.in b/dns/powerdns/files/pkg-message.in index b0b0983..c0659ef 100644 --- a/dns/powerdns/files/pkg-message.in +++ b/dns/powerdns/files/pkg-message.in @@ -4,7 +4,17 @@ pdns_enable="YES" - Configuration templates are available in %%PREFIX%%/etc/pdns + A configuration template is available in %%PREFIX%%/etc/pdns as pdns.conf-dist. + + A pdns.conf with all possible options is available in + %%EXAMPLESDIR%% + + --------------------------------------------- + IMPORTANT: PowerDNS Authoritive Server 3.4.0: + --------------------------------------------- + This version needs a mandatory schema change for the gmsyql, + gpgsql and gsqlite3 backends. SQL statements are available in + %%DOCSDIR%% or http://doc.powerdns.com ******************************************************************* diff --git a/dns/powerdns/pkg-plist b/dns/powerdns/pkg-plist index 5a4d2b2..7bf45359 100644 --- a/dns/powerdns/pkg-plist +++ b/dns/powerdns/pkg-plist @@ -5,6 +5,7 @@ bin/zone2ldap bin/zone2sql sbin/pdns_server %%TOOLS%%bin/dnsbulktest +%%TOOLS%%bin/dnsdist %%TOOLS%%bin/dnsreplay %%TOOLS%%bin/dnsscan %%TOOLS%%bin/dnsscope @@ -12,17 +13,23 @@ sbin/pdns_server %%TOOLS%%bin/dnswasher %%TOOLS%%bin/nproxy %%TOOLS%%bin/nsec3dig -%%PGSQL%%lib/libgpgsqlbackend.so -%%MYSQL%%lib/libgmysqlbackend.so -%%SQLITE3%%lib/libgsqlite3backend.so -%%OPENLDAP%%lib/libldapbackend.so -%%OPENDBX%%lib/libopendbxbackend.so -%%GEO%%lib/libgeobackend.so -%%TINYDNS%%lib/libtinydnsbackend.so -%%REMOTE%%lib/libremotebackend.so -%%MYDNS%%lib/libmydnsbackend.so -%%LUA%%lib/libluabackend.so -lib/libpipebackend.so +%%TOOLS%%bin/saxfr +%%PGSQL%%lib/pdns/libgpgsqlbackend.so +%%MYSQL%%lib/pdns/libgmysqlbackend.so +%%SQLITE3%%lib/pdns/libgsqlite3backend.so +%%OPENLDAP%%lib/pdns/libldapbackend.so +%%OPENDBX%%lib/pdns/libopendbxbackend.so +%%GEO%%lib/pdns/libgeobackend.so +%%GEOIP%%lib/pdns/libgeoipbackend.so +%%TINYDNS%%lib/pdns/libtinydnsbackend.so +%%REMOTE%%lib/pdns/libremotebackend.so +%%MYDNS%%lib/pdns/libmydnsbackend.so +%%LUA%%lib/pdns/libluabackend.so +%%LMDB%%lib/pdns/liblmdbbackend.so +%%LMDB%%bin/zone2lmdb +lib/pdns/libbindbackend.so +lib/pdns/libpipebackend.so +%%TOOLS%%man/man1/dnsdist.1.gz %%TOOLS%%man/man1/dnstcpbench.1.gz %%TOOLS%%man/man8/dnsreplay.8.gz %%TOOLS%%man/man8/dnsscope.8.gz @@ -36,5 +43,16 @@ man/man8/zone2sql.8.gz etc/pdns/pdns.conf-dist @exec [ -f %B/pdns.conf ] || cp %B/%f %B/pdns.conf %%PORTEXAMPLES%%%%EXAMPLESDIR%%/pdns.conf -%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%% -@dirrmtry etc/pdns +%%PORTEXAMPLES%%@dir %%EXAMPLESDIR%% +%%MYSQL%%%%PORTDOCS%%%%DOCSDIR%%/dnssec-3.x_to_3.4.0_schema.mysql.sql +%%PGSQL%%%%PORTDOCS%%%%DOCSDIR%%/dnssec-3.x_to_3.4.0_schema.pgsql.sql +%%SQLITE3%%%%PORTDOCS%%%%DOCSDIR%%/dnssec-3.x_to_3.4.0_schema.sqlite3.sql +%%MYSQL%%%%PORTDOCS%%%%DOCSDIR%%/nodnssec-3.x_to_3.4.0_schema.mysql.sql +%%PGSQL%%%%PORTDOCS%%%%DOCSDIR%%/nodnssec-3.x_to_3.4.0_schema.pgsql.sql +%%SQLITE3%%%%PORTDOCS%%%%DOCSDIR%%/nodnssec-3.x_to_3.4.0_schema.sqlite3.sql +%%MYDNS%%%%PORTDOCS%%%%DOCSDIR%%/schema.mydns.sql +%%MYSQL%%%%PORTDOCS%%%%DOCSDIR%%/schema.mysql.sql +%%PGSQL%%%%PORTDOCS%%%%DOCSDIR%%/schema.pgsql.sql +%%SQLITE3%%%%PORTDOCS%%%%DOCSDIR%%/schema.sqlite3.sql +%%PORTDOCS%%@dir %%DOCSDIR%% +@dir etc/pdns ====> Cleaning up ===> Done