summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsin <sin@2f30.org>2014-11-30 17:14:26 +0000
committersin <sin@2f30.org>2014-11-30 17:19:15 +0000
commit7719eafe2a566c8998901e75cca6545f5afa419c (patch)
tree5e7d0180f5b2972e390b8cfebd985334b16ebc54
parent5777da3a2865fb640cebf49cc6a4dbc476faafbe (diff)
Connect to nodes in a random order to minimize load on any given node
-rw-r--r--ratox.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/ratox.c b/ratox.c
index 5f40ecc..fa78f13 100644
--- a/ratox.c
+++ b/ratox.c
@@ -1258,10 +1258,21 @@ static int
toxconnect(void)
{
struct node *n;
+ struct node tmp;
uint8_t id[TOX_CLIENT_ID_SIZE];
- size_t i;
+ size_t i, j;
int r;
+ srand(time(NULL));
+
+ /* shuffle it to minimize load on nodes */
+ for (i = LEN(nodes) - 1; i > 0; i--) {
+ j = rand() % LEN(nodes);
+ tmp = nodes[j];
+ nodes[j] = nodes[i];
+ nodes[i] = tmp;
+ }
+
for (i = 0; i < LEN(nodes); i++) {
n = &nodes[i];
if (ipv6 == 1 && !n->addr6)