]> granicus.if.org Git - pdns/commit
The PowerDNS Recursor shuffles answers randomly, so no single A record gets overloade...
authorbert hubert <bert.hubert@netherlabs.nl>
Sun, 21 Aug 2016 12:21:28 +0000 (14:21 +0200)
committerbert hubert <bert.hubert@netherlabs.nl>
Sun, 21 Aug 2016 12:21:28 +0000 (14:21 +0200)
commit27b85f24de25a192336d7f9b0022da1860863495
tree6b5d2da611e3fddf22b2b3faf1ac8c41af47a8ba
parent1d20db9656bd1d3d959bc167d556a3671bb6057b
The PowerDNS Recursor shuffles answers randomly, so no single A record gets overloaded. This logic also took care not to shuffle a CNAME record until after the name it points to, because we theorized this would upset some resolvers.
Our logic however assumed all the CNAMEs would initially be at the front of the packet. We'd start our shuffling after skipping all the CNAMEs up front. It now turns out that sometimes we end up with a 'CNAME A CNAME A' packet to shuffle.
This would happily shuffle the last three records. With this PR, we put the CNAMEs up front explicitly before commencing the shuffle. Closes #4339.

Still to be investigated: why didn't this bite us before?
pdns/misc.cc