return nfd;
} /* int setup_vpn_in_socket */
-static void retry_outgoing_handler(int fd, short events, void *data) {
+static void retry_outgoing_handler(void *data) {
setup_outgoing_connection(data);
}
if(outgoing->timeout > maxtimeout)
outgoing->timeout = maxtimeout;
- timeout_set(&outgoing->ev, retry_outgoing_handler, outgoing);
- event_add(&outgoing->ev, &(struct timeval){outgoing->timeout, 0});
+ outgoing->ev.handler = retry_outgoing_handler;
+ outgoing->ev.time = time(NULL) + outgoing->timeout;
+ event_add(&outgoing->ev);
ifdebug(CONNECTIONS) logger(LOG_NOTICE,
"Trying to re-establish outgoing connection in %d seconds",
configure_tcp(c);
+ mutex_lock(&mutex);
connection_add(c);
c->allow_request = ID;
logger(LOG_ERR, "create_thread() failed: %s", strerror(errno));
abort();
}
+ mutex_unlock(&mutex);
}
}