]> granicus.if.org Git - pdns/commitdiff
don't truncate just before sending answer, plus improve logging a bit
authorBert Hubert <bert.hubert@netherlabs.nl>
Fri, 7 Jan 2011 13:02:37 +0000 (13:02 +0000)
committerBert Hubert <bert.hubert@netherlabs.nl>
Fri, 7 Jan 2011 13:02:37 +0000 (13:02 +0000)
git-svn-id: svn://svn.powerdns.com/pdns/trunk/pdns@1828 d19b8d6e-7fed-0310-83ef-9ca221ded41b

pdns/nameserver.cc
pdns/packethandler.cc

index 7aed04b4f887db4f92dcf58e7ec3ce6783f83549..d6c3203f128152adb3ccadd86f265a3589729ac0 100644 (file)
@@ -181,15 +181,9 @@ void UDPNameserver::send(DNSPacket *p)
   const char *buffer=p->getData();
   DLOG(L<<Logger::Notice<<"Sending a packet to "<< p->remote.toString() <<" ("<<p->len<<" octets)"<<endl);
   if(p->len > p->getMaxReplyLen()) {
-    shared_ptr<DNSPacket> sharedp(new DNSPacket(*p));
-    sharedp->truncate(p->getMaxReplyLen());
-    buffer=sharedp->getData();
-    if(sendto(sharedp->getSocket(),buffer,sharedp->len,0,(struct sockaddr *)(&sharedp->remote), sharedp->remote.getSocklen())<0) 
-      L<<Logger::Error<<"Error sending reply with sendto (socket="<<sharedp->getSocket()<<"): "<<strerror(errno)<<endl;
-  }
-  else {
-    if(sendto(p->getSocket(),buffer,p->len,0,(struct sockaddr *)(&p->remote),p->remote.getSocklen())<0)
-      L<<Logger::Error<<"Error sending reply with sendto (socket="<<p->getSocket()<<"): "<<strerror(errno)<<endl;
+    cerr<<"Weird, trying to send a message that needs truncation, "<<p->len<<" > "<<p->getMaxReplyLen()<<endl;
   }
+  if(sendto(p->getSocket(),buffer,p->len,0,(struct sockaddr *)(&p->remote),p->remote.getSocklen())<0)
+    L<<Logger::Error<<"Error sending reply with sendto (socket="<<p->getSocket()<<"): "<<strerror(errno)<<endl;
 }
 
index 3570ffe0bde064d975ab0075f6ca4fc9cad05099..c38d3ee1942f6a79635a0af504cfd6c7a64ed6de 100644 (file)
@@ -1148,7 +1148,8 @@ DNSPacket *PacketHandler::questionOrRecurse(DNSPacket *p, bool *shouldRecurse)
 
   DNSPacket *r=0;
   try {    
-    L << Logger::Notice<<"Remote "<< p->remote.toString() <<" wants a type " << p->qtype.getName() << " ("<<p->qtype.getCode()<<") about '"<<p->qdomain << "'" << endl;
+    L << Logger::Notice<<"Remote "<< p->remote.toString() <<" wants " << p->qtype.getName() << " for '"<<p->qdomain << 
+      "', do = " <<p->d_dnssecOk <<", bufsize = "<< p->getMaxReplyLen()<< endl;
 
     if(p->d.qr) { // QR bit from dns packet (thanks RA from N)
       L<<Logger::Error<<"Received an answer (non-query) packet from "<<p->getRemote()<<", dropping"<<endl;