]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
make it explicit that servfail packets get stored for servfail-packetcache-ttl seconds
authorbert hubert <bert.hubert@netherlabs.nl>
Wed, 2 Mar 2016 13:59:24 +0000 (14:59 +0100)
committerbert hubert <bert.hubert@netherlabs.nl>
Wed, 2 Mar 2016 14:03:12 +0000 (15:03 +0100)
pdns/pdns_recursor.cc

index 00887eac1a6892d18ab0d677ce0821ce1be8d39c..19cb2a42429047ddddd6067a7c76be367c02ceb4 100644 (file)
@@ -872,14 +872,13 @@ void startDoResolve(void *p)
         msgh.msg_control=NULL;
       if(sendmsg(dc->d_socket, &msgh, 0) < 0 && g_logCommonErrors) 
         L<<Logger::Warning<<"Sending UDP reply to client "<<dc->d_remote.toStringWithPort()<<" failed with: "<<strerror(errno)<<endl;
-
       if(!SyncRes::s_nopacketcache && !variableAnswer && !sr.wasVariable() ) {
-        t_packetCache->insertResponsePacket(dc->d_tag, dc->d_mdp.d_qname, dc->d_mdp.d_qtype, dc->d_query, string((const char*)&*packet.begin(), packet.size()),
+
+        t_packetCache->insertResponsePacket(dc->d_tag, dc->d_mdp.d_qname, dc->d_mdp.d_qtype, dc->d_query, 
+                                            string((const char*)&*packet.begin(), packet.size()),
                                             g_now.tv_sec,
-                                            min(minTTL,
-                                                (pw.getHeader()->rcode == RCode::ServFail) ? SyncRes::s_packetcacheservfailttl : SyncRes::s_packetcachettl
-                                            )
-        );
+                                            pw.getHeader()->rcode == RCode::ServFail ? SyncRes::s_packetcacheservfailttl :
+                                            min(minTTL,SyncRes::s_packetcachettl));
       }
       //      else cerr<<"Not putting in packet cache: "<<sr.wasVariable()<<endl;
     }