#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
void UnixsocketConnector::reconnect() {
struct sockaddr_un sock;
struct timeval tv;
- fd_set rd;
rapidjson::Document init,res;
rapidjson::Value val;
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) {