]> granicus.if.org Git - pdns/commitdiff
Now uses indefinite wait instead of while loop
authorAki Tuomi <cmouse@desteem.org>
Tue, 9 Jul 2013 07:50:02 +0000 (10:50 +0300)
committerAki Tuomi <cmouse@desteem.org>
Tue, 9 Jul 2013 07:50:02 +0000 (10:50 +0300)
modules/remotebackend/unixconnector.cc

index 5ef5ec298131e825ca3640af787651dfb54421bf..bd7320d535c005f4d3d2905cd34d5af233fabeec 100644 (file)
@@ -143,8 +143,9 @@ void UnixsocketConnector::reconnect() {
       return;
    }
 
-   while((rv = connect(fd, reinterpret_cast<struct sockaddr*>(&sock), sizeof sock))==-1 && (errno == EINPROGRESS)) {
-     waitForData(fd, 0, 500);
+   if((rv = connect(fd, reinterpret_cast<struct sockaddr*>(&sock), sizeof sock))==-1 && (errno == EINPROGRESS)) {
+     waitForData(fd, 0, -1);
+     rv = connect(fd, reinterpret_cast<struct sockaddr*>(&sock), sizeof sock);
    }
 
    if (rv != 0 && errno != EISCONN && errno != 0) {