X-Git-Url: https://tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Fnet.c;h=8328db914d824e316de5c708a27baf30f4b10bb8;hp=c2c5d198ddb08f829d2a3b751156add7d314470c;hb=b6b302cee9de92d157f73d7739cc259d269c0ca0;hpb=0037ec7cb38994dda6ab5e4fa85ce595b9a59f6b diff --git a/src/net.c b/src/net.c index c2c5d198..8328db91 100644 --- a/src/net.c +++ b/src/net.c @@ -210,10 +210,13 @@ static void periodic_handler(void *data) { and we are not already trying to make one, create an outgoing connection to this node. */ - int r = rand() % node_tree->count; + int r = rand() % (node_tree->count - 1); int i = 0; for splay_each(node_t, n, node_tree) { + if(n == myself) + continue; + if(i++ != r) continue; @@ -442,7 +445,7 @@ void retry(void) { */ int main_loop(void) { timeout_add(&pingtimer, timeout_handler, &pingtimer, &(struct timeval){pingtimeout, rand() % 100000}); - timeout_add(&periodictimer, periodic_handler, &periodictimer, &(struct timeval){pingtimeout, rand() % 100000}); + timeout_add(&periodictimer, periodic_handler, &periodictimer, &(struct timeval){0, 0}); #ifndef HAVE_MINGW signal_t sighup = {0};