bert hubert [Thu, 8 Jan 2015 15:40:13 +0000 (16:40 +0100)]
recursor timestamps, recursor any address, auth consolidation: teach recursor about how to properly reply from 0.0.0.0, ::
teach recursor to measure 'received' timestamps, teach it to drop queries that have been sitting in a queue for a second already, add too-old-drops metric for this
unify some code with the auth server
bert hubert [Thu, 8 Jan 2015 12:01:30 +0000 (13:01 +0100)]
don't reprime the root because we discovered a delegation loop. No longer terminate a query when this happens. Do terminate a query if more than 50 throttled queries. Improve --trace output a bit.
bert hubert [Tue, 6 Jan 2015 11:56:38 +0000 (12:56 +0100)]
scavenge some further malloc calls, plus don't attempt to make socket nonblocking before we know it is open!
Plus some comments on non-observed speedups on reducing system calls by passing CLO_EXEC and NONBLOCK to socket directly
Ruben Kerkhof [Fri, 2 Jan 2015 18:28:14 +0000 (19:28 +0100)]
Make executables position-independent
Pass -pie to the linker
before:
ruben@yourmomma: pdns (master %=)$ checksec --file pdns/pdns_server
RELRO STACK CANARY NX PIE RPATH RUNPATH FILE
Full RELRO Canary found NX enabled No PIE No RPATH No RUNPATH pdns/pdns_server
ruben@yourmomma: pdns (master %=)$ checksec --file pdns/pdns_control
RELRO STACK CANARY NX PIE RPATH RUNPATH FILE
Full RELRO Canary found NX enabled No PIE No RPATH No RUNPATH pdns/pdns_control
after:
ruben@yourmomma: pdns (master *%=)$ checksec --file pdns/pdns_control
RELRO STACK CANARY NX PIE RPATH RUNPATH FILE
Full RELRO Canary found NX enabled PIE enabled No RPATH No RUNPATH pdns/pdns_control
ruben@yourmomma: pdns (master *%=)$ checksec --file pdns/pdns_server
RELRO STACK CANARY NX PIE RPATH RUNPATH FILE
Full RELRO Canary found NX enabled PIE enabled No RPATH No RUNPATH pdns/pdns_server
Ruben Kerkhof [Thu, 1 Jan 2015 18:05:01 +0000 (19:05 +0100)]
Generating manpages without pandoc is an error
If for some reason we end up with a dist tarball
without generated manpages, better warn and exit then trying to run
no -s -t man manpages/dnsdist.1.md -o dnsdist.1
Discussed with @rubenk. While a lot faster, the autoconf-archive
variant gives confusing errors when parts of Boost are missing,
and misses an rpath workaround for Solaris
Ruben Kerkhof [Tue, 30 Dec 2014 21:50:12 +0000 (22:50 +0100)]
Fix building tools on OSX
Triggered by running ./configure --enable-tools
Turns the error
In file included from selectmplexer.cc:6:
In file included from ./syncres.hh:22:
In file included from ./mtasker.hh:26:
/usr/include/ucontext.h:43:2: error: The deprecated ucontext routines require _XOPEN_SOURCE to be defined
^
In file included from selectmplexer.cc:6:
In file included from ./syncres.hh:22:
In file included from ./mtasker.hh:113:
./mtasker.cc:272:3: error: use of undeclared identifier 'getcontext'
getcontext(uc);
^
2 errors generated.
make[4]: *** [selectmplexer.o] Error 1
make[3]: *** [all-recursive] Error 1
make[2]: *** [all] Error 2
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
into a warning:
In file included from ./mtasker.hh:113:
./mtasker.cc:272:3: warning: 'getcontext' is deprecated: first deprecated in OS X 10.6 [-Wdeprecated-declarations]
getcontext(uc);
^
/usr/include/ucontext.h:37:6: note: 'getcontext' has been explicitly marked deprecated here
int getcontext(ucontext_t *) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_2_0, __IPHONE_2_0);
^
1 warning generated.
Ruben Kerkhof [Mon, 29 Dec 2014 16:10:32 +0000 (17:10 +0100)]
Fix semistatic building
5e71d414cfc6 added BOOST_LDFLAGS to the front of LDFLAGS.
A side effect of this change is that this adds -L/usr/lib
at the front of the linker search path, where normally it is last.
We then try to link to /usr/lib/libpq.a but that's a different version
than the one we need.
As a workaround place the BOOST_LDFLAGS after LDFLAGS. The correct fix
needs more thought.
Pieter Lexis [Tue, 2 Dec 2014 07:45:53 +0000 (08:45 +0100)]
Port manpages to MarkDown and use autotools
Shout out to @rubenk for helping with autotools.
* Add disable-dnssec to pdnssec docs (closes #641)
* Make manpages consistent with eachother
* Expanded missing options
* Removed old manpages
* Added --with-docs and --with-manpages configure switches
* Build manpages and docs in travis.
* Add both the built docs/manpages and sources to dist tarball
* Build docs to pdsn/docs/html (instead of html-new)
* Remove all references to asciidoc
* Distribute both the source files and built docs + manpages in the
tarball created with `make dist`
* Move all manpages to section 1 (closes #1753)