sdig_SOURCES=sdig.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 unix_utility.cc \
- logger.cc statbag.cc
+ logger.cc statbag.cc qtype.cc
dnspbench_SOURCES=dnspbench.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 unix_utility.cc logger.cc \
<itemizedlist>
<listitem>
<para>
- Commits C540, C541, C542, C543, C545, C547 and C548, C574 all speed up the recursor by a large factor,
+ Commits C535, C540, C541, C542, C543, C544, C545, C547 and C548, C574 all speed up the recursor by a large factor,
without altering the DNS algorithm.
</para>
</listitem>
+ <listitem>
+ <para>
+ Cache was pruned every minute, which was too often. Now once every 5 minutes, c574.
+ </para>
+ </listitem>
<listitem>
<para>
c549 and c550 work around gcc bug <ulink url="http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24704">24704</ulink>
PowerDNS would no longer allow a '/' in domain names, fixed by c537, reported in t48.
</para>
</listitem>
+ <listitem>
+ <para>
+ Parameters to <command>pdns_control notify-host</command> were not checked, leading to
+ possible crashes. Reported in t24, fixed in c565.
+ </para>
+ </listitem>
<listitem>
<para>
On some compilers, processing of NAPTR records could cause the server to crash. Reported by Bernd Froemel
</listitem>
<listitem>
<para>
- <command>dnsscope</command> compiles again, c551, c564 (FreeBSD 64-bit time_t).
+ <command>dnsscope</command> compiles again, c551, c564 (FreeBSD 64-bit time_t).
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <command>dnsreplay_mindex</command> compiles again, fixed by c572. Its performance, and the performance of the recursor
+ was improved by c559.
</para>
</listitem>
<listitem>
if(!d_waiters.empty()) {
time_t now=time(0);
- typedef typename waiters_t::template nth_index<1>::type waiters_by_ttd_index_t;
- waiters_by_ttd_index_t& ttdindex=d_waiters.get<1>();
+ typedef typename waiters_t::template index<KeyTag>::type waiters_by_ttd_index_t;
+ waiters_by_ttd_index_t& ttdindex=d_waiters.get<KeyTag>();
for(typename waiters_by_ttd_index_t::iterator i=ttdindex.begin(); i != ttdindex.end(); ) {
if(i->ttd && i->ttd < now) {
};
// typedef std::map<EventKey,Waiter> waiters_t;
-
+ struct KeyTag {};
typedef multi_index_container<
Waiter,
indexed_by <
ordered_unique<member<Waiter,EventKey,&Waiter::key> >,
- ordered_non_unique<member<Waiter,time_t,&Waiter::ttd> >
+ ordered_non_unique<tag<KeyTag>, member<Waiter,time_t,&Waiter::ttd> >
>
> waiters_t;