Speed up AutoConnect at startup.

Call periodic_handler() immediately at startup. Also, don't try to
connect to ourself.
This commit is contained in:
Guus Sliepen 2016-04-17 17:06:11 +02:00
parent f934417aa6
commit b6b302cee9

View file

@ -210,10 +210,13 @@ static void periodic_handler(void *data) {
and we are not already trying to make one, create an and we are not already trying to make one, create an
outgoing connection to this node. outgoing connection to this node.
*/ */
int r = rand() % node_tree->count; int r = rand() % (node_tree->count - 1);
int i = 0; int i = 0;
for splay_each(node_t, n, node_tree) { for splay_each(node_t, n, node_tree) {
if(n == myself)
continue;
if(i++ != r) if(i++ != r)
continue; continue;
@ -442,7 +445,7 @@ void retry(void) {
*/ */
int main_loop(void) { int main_loop(void) {
timeout_add(&pingtimer, timeout_handler, &pingtimer, &(struct timeval){pingtimeout, rand() % 100000}); 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 #ifndef HAVE_MINGW
signal_t sighup = {0}; signal_t sighup = {0};