X-Git-Url: https://www.tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Fnet.c;h=9b60a31446143dd3cce7c0cafe4da41f6077cfb8;hp=59dd39b30c327b8f15f5deb6360148a043deb466;hb=51099658c919794cde72ea1107b9d9b9c3cee926;hpb=35af4051c3749cd2c2137a7eb57171a1fbb12af7 diff --git a/src/net.c b/src/net.c index 59dd39b3..9b60a314 100644 --- a/src/net.c +++ b/src/net.c @@ -303,7 +303,7 @@ static void check_network_activity(fd_set * readset, fd_set * writeset) { else { ifdebug(CONNECTIONS) logger(LOG_DEBUG, "Error while connecting to %s (%s): %s", - c->name, c->hostname, strerror(result)); + c->name, c->hostname, sockstrerror(result)); closesocket(c->socket); do_outgoing_connection(c); continue; @@ -369,9 +369,8 @@ int main_loop(void) { #endif if(r < 0) { - if(errno != EINTR && errno != EAGAIN) { - logger(LOG_ERR, "Error while waiting for input: %s", - strerror(errno)); + if(!sockwouldblock(sockerrno)) { + logger(LOG_ERR, "Error while waiting for input: %s", sockstrerror(sockerrno)); dump_connections(); return 1; } @@ -419,8 +418,13 @@ int main_loop(void) { } if(sigalrm) { + avl_node_t *node; logger(LOG_INFO, "Flushing event queue"); expire_events(); + for(node = connection_tree->head; node; node = node->next) { + connection_t *c = node->data; + send_ping(c); + } sigalrm = false; }