]> granicus.if.org Git - pdns/commitdiff
Dan Bilik has found a problem with leaking TCP connections, this fix is a variant...
authorBert Hubert <bert.hubert@netherlabs.nl>
Wed, 6 Sep 2006 19:12:51 +0000 (19:12 +0000)
committerBert Hubert <bert.hubert@netherlabs.nl>
Wed, 6 Sep 2006 19:12:51 +0000 (19:12 +0000)
git-svn-id: svn://svn.powerdns.com/pdns/trunk/pdns@889 d19b8d6e-7fed-0310-83ef-9ca221ded41b

pdns/tcpreceiver.cc

index ec9e150c30d962044949a100c76e03a31251df2e..6a9e5accc2e460a3b4d137968fd82202cffa5c52 100644 (file)
@@ -133,7 +133,7 @@ void *TCPNameserver::doConnection(void *data)
   // Fix gcc-4.0 error (on AMD64)
   int fd=(int)(long)data; // gotta love C (generates a harmless warning on opteron)
   pthread_detach(pthread_self());
-
+  Utility::setNonBlocking(fd);
   try {
     char mesg[512];
     
@@ -158,7 +158,7 @@ void *TCPNameserver::doConnection(void *data)
         delete packet;
 
       packet=new DNSPacket;
-
+      
       packet->setRemote(&remote);
       packet->d_tcp=true;
       if(packet->parse(mesg, pktlen)<0)
@@ -244,7 +244,7 @@ void *TCPNameserver::doConnection(void *data)
     Lock l(&s_plock);
     delete s_P;
     s_P = 0; // on next call, backend will be recycled
-    L<<Logger::Error<<"TCP nameserver had error, cycling backend:"<<ae.reason<<endl;
+    L<<Logger::Error<<"TCP nameserver had error, cycling backend: "<<ae.reason<<endl;
   }
   catch(exception &e) {
     L<<Logger::Error<<"TCP Connection Thread died because of STL error: "<<e.what()<<endl;