]> granicus.if.org Git - pdns/commitdiff
Replace select with waitForData in remotebackend. Patch by Aki Tuomi, closes #715
authorPeter van Dijk <peter.van.dijk@netherlabs.nl>
Tue, 12 Mar 2013 14:33:48 +0000 (14:33 +0000)
committerPeter van Dijk <peter.van.dijk@netherlabs.nl>
Tue, 12 Mar 2013 14:33:48 +0000 (14:33 +0000)
git-svn-id: svn://svn.powerdns.com/pdns/trunk/pdns@3117 d19b8d6e-7fed-0310-83ef-9ca221ded41b

modules/remotebackend/httpconnector.cc
modules/remotebackend/unixconnector.cc

index 7edd2b8fe7cab77fb3f59b3c1063884edce82c52..af49cd4c67baf42c8a30131f591c2eb4d39ec644 100644 (file)
@@ -1,7 +1,6 @@
 #include "remotebackend.hh"
 #include <sys/socket.h>
 #include <unistd.h>
-#include <sys/select.h>
 #include <fcntl.h>
 #include <boost/foreach.hpp>
 #include <sstream>
index c7894de3031e9dcbcd41884bb761bcbfcc3007c8..c8c68ac2e183454c1b8aae1395f5883bb1e0f408 100644 (file)
@@ -2,7 +2,6 @@
 #include <sys/socket.h>
 #include <pdns/lock.hh> 
 #include <unistd.h>
-#include <sys/select.h>
 #include <fcntl.h>
 #ifndef UNIX_PATH_MAX 
 #define UNIX_PATH_MAX 108
@@ -120,7 +119,6 @@ ssize_t UnixsocketConnector::write(const std::string &data) {
 void UnixsocketConnector::reconnect() {
    struct sockaddr_un sock;
    struct timeval tv;
-   fd_set rd;
    rapidjson::Document init,res;
    rapidjson::Value val;
 
@@ -140,11 +138,7 @@ void UnixsocketConnector::reconnect() {
    fcntl(fd, F_SETFL, O_NONBLOCK, &fd);
 
    while(connect(fd, reinterpret_cast<struct sockaddr*>(&sock), sizeof sock)==-1 && (errno == EINPROGRESS)) {
-     tv.tv_sec = 0;
-     tv.tv_usec = 500;
-     FD_ZERO(&rd);
-     FD_SET(fd, &rd);
-     select(fd+1,&rd,NULL,NULL,&tv); // wait a moment
+     waitForData(fd, 0, 500);
    }
 
    if (errno != EISCONN && errno != 0) {