]> granicus.if.org Git - pdns/commitdiff
Merge branch 'remotebackend-coverity-20130709' into remotebackend-unix-test
authorAki Tuomi <cmouse@desteem.org>
Tue, 9 Jul 2013 07:29:59 +0000 (10:29 +0300)
committerAki Tuomi <cmouse@desteem.org>
Tue, 9 Jul 2013 07:29:59 +0000 (10:29 +0300)
1  2 
modules/remotebackend/unixconnector.cc

index 4894dd317712d82c828a67365e720900e102c25f,ff7080d07ca7d6d0dc89f81287481b95e1bafb6e..5ef5ec298131e825ca3640af787651dfb54421bf
@@@ -135,9 -135,14 +136,14 @@@ void UnixsocketConnector::reconnect() 
     sock.sun_family = AF_UNIX;
     memset(sock.sun_path, 0, UNIX_PATH_MAX);
     path.copy(sock.sun_path, UNIX_PATH_MAX, 0);
-    fcntl(fd, F_SETFL, O_NONBLOCK, &fd);
+    if (fcntl(fd, F_SETFL, O_NONBLOCK, &fd)) {
+       connected = false;
+       L<<Logger::Error<<"Cannot manipulate socket: " << strerror(errno) << std::endl;;
+       close(fd);
+       return;
+    }
  
 -   while(connect(fd, reinterpret_cast<struct sockaddr*>(&sock), sizeof sock)==-1 && (errno == EINPROGRESS)) {
 +   while((rv = connect(fd, reinterpret_cast<struct sockaddr*>(&sock), sizeof sock))==-1 && (errno == EINPROGRESS)) {
       waitForData(fd, 0, 500);
     }