Slightly randomize all timeouts.
authorGuus Sliepen <guus@tinc-vpn.org>
Sun, 21 Oct 2012 15:45:16 +0000 (17:45 +0200)
committerGuus Sliepen <guus@tinc-vpn.org>
Sun, 21 Oct 2012 15:45:16 +0000 (17:45 +0200)
src/net.c
src/net_packet.c
src/net_setup.c
src/net_socket.c
src/protocol.c
src/route.c

index b333c5b..77ff1c8 100644 (file)
--- a/src/net.c
+++ b/src/net.c
@@ -164,7 +164,7 @@ static void timeout_handler(int fd, short events, void *event) {
                }
        }
 
-       event_add(event, &(struct timeval){pingtimeout, 0});
+       event_add(event, &(struct timeval){pingtimeout, rand() % 100000});
 }
 
 static void periodic_handler(int fd, short events, void *event) {
@@ -278,7 +278,7 @@ static void periodic_handler(int fd, short events, void *event) {
                }
        }
 
-       event_add(event, &(struct timeval){5, 0});
+       event_add(event, &(struct timeval){5, rand() % 100000});
 }
 
 void handle_meta_connection_data(int fd, short events, void *data) {
@@ -449,10 +449,10 @@ int main_loop(void) {
        struct event periodic_event;
 
        timeout_set(&timeout_event, timeout_handler, &timeout_event);
-       event_add(&timeout_event, &(struct timeval){pingtimeout, 0});
+       event_add(&timeout_event, &(struct timeval){pingtimeout, rand() % 100000});
 
        timeout_set(&periodic_event, periodic_handler, &periodic_event);
-       event_add(&periodic_event, &(struct timeval){5, 0});
+       event_add(&periodic_event, &(struct timeval){5, rand() % 100000});
 
 #ifndef HAVE_MINGW
        struct event sighup_event;
index 67ebc22..dc31fd7 100644 (file)
@@ -151,7 +151,7 @@ static void send_mtu_probe_handler(int fd, short events, void *data) {
        }
 
 end:
-       event_add(&n->mtuevent, &(struct timeval){timeout, 0});
+       event_add(&n->mtuevent, &(struct timeval){timeout, rand() % 100000});
 }
 
 void send_mtu_probe(node_t *n) {
index 74c57c5..d53aad0 100644 (file)
@@ -285,7 +285,7 @@ void regenerate_key(void) {
                timeout_set(&keyexpire_event, keyexpire_handler, NULL);
        }
 
-       event_add(&keyexpire_event, &(struct timeval){keylifetime, 0});
+       event_add(&keyexpire_event, &(struct timeval){keylifetime, rand() % 100000});
 }
 
 /*
index 09c5207..ce1e3aa 100644 (file)
@@ -282,7 +282,7 @@ void retry_outgoing(outgoing_t *outgoing) {
                outgoing->timeout = maxtimeout;
 
        timeout_set(&outgoing->ev, retry_outgoing_handler, outgoing);
-       event_add(&outgoing->ev, &(struct timeval){outgoing->timeout, 0});
+       event_add(&outgoing->ev, &(struct timeval){outgoing->timeout, rand() % 100000});
 
        logger(DEBUG_CONNECTIONS, LOG_NOTICE,
                           "Trying to re-establish outgoing connection in %d seconds",
index 3c08d72..34c3f3b 100644 (file)
@@ -180,7 +180,7 @@ bool seen_request(const char *request) {
                new->request = xstrdup(request);
                new->firstseen = time(NULL);
                splay_insert(past_request_tree, new);
-               event_add(&past_request_event, &(struct timeval){10, 0});
+               event_add(&past_request_event, &(struct timeval){10, rand() % 100000});
                return false;
        }
 }
@@ -201,7 +201,7 @@ static void age_past_requests(int fd, short events, void *data) {
                           deleted, left);
 
        if(left)
-               event_add(&past_request_event, &(struct timeval){10, 0});
+               event_add(&past_request_event, &(struct timeval){10, rand() % 100000});
 }
 
 void init_requests(void) {
index e874d89..e9d4ece 100644 (file)
@@ -209,7 +209,7 @@ static void age_subnets(int fd, short events, void *data) {
        }
 
        if(left)
-               event_add(&age_subnets_event, &(struct timeval){10, 0});
+               event_add(&age_subnets_event, &(struct timeval){10, rand() % 100000});
 }
 
 static void learn_mac(mac_t *address) {
@@ -238,7 +238,7 @@ static void learn_mac(mac_t *address) {
 
                if(!timeout_initialized(&age_subnets_event))
                        timeout_set(&age_subnets_event, age_subnets, NULL);
-               event_add(&age_subnets_event, &(struct timeval){10, 0});
+               event_add(&age_subnets_event, &(struct timeval){10, rand() % 100000});
        } else {
                if(subnet->expires)
                        subnet->expires = time(NULL) + macexpire;