chiark / gitweb /
site: Randomise key setup retry time
[secnet.git] / site.c
diff --git a/site.c b/site.c
index 6b09588653aef388ff0c7291b8392908482a5c22..3f5e66c63adf2a77af08192b2fee7105aa359e8e 100644 (file)
--- a/site.c
+++ b/site.c
@@ -536,7 +536,13 @@ struct msg {
 };
 
 static int32_t wait_timeout(struct site *st) {
-    return st->wait_timeout_mean;
+    int32_t t = st->wait_timeout_mean;
+    int8_t factor;
+    if (t < INT_MAX/2) {
+       st->random->generate(st->random->st,sizeof(factor),&factor);
+       t += (t / 256) * factor;
+    }
+    return t;
 }
 
 static _Bool set_new_transform(struct site *st, char *pk)