[MINOR] spread checks also when the server is OK.

Initial patch only managed to spread the checks when the checks
failed. The randomization code needs to be added also in the path
where the server is going fine.
diff --git a/src/checks.c b/src/checks.c
index 57242f1..cd6bd30 100644
--- a/src/checks.c
+++ b/src/checks.c
@@ -491,8 +491,14 @@
 			}
 			s->curfd = -1; /* no check running anymore */
 			fd_delete(fd);
-			while (tv_isle(&t->expire, &now))
-				tv_ms_add(&t->expire, &t->expire, s->inter);
+
+			rv = 0;
+			if (global.spread_checks > 0) {
+				rv = s->inter * global.spread_checks / 100;
+				rv -= (int) (2 * rv * (rand() / (RAND_MAX + 1.0)));
+				//fprintf(stderr, "process_chk(%p): (%d+/-%d%%) random=%d\n", s, s->inter, global.spread_checks, rv);
+			}
+			tv_ms_add(&t->expire, &now, s->inter + rv);
 			goto new_chk;
 		}
 		else if (s->result < 0 || tv_isle(&t->expire, &now)) {
@@ -511,10 +517,9 @@
 			if (global.spread_checks > 0) {
 				rv = s->inter * global.spread_checks / 100;
 				rv -= (int) (2 * rv * (rand() / (RAND_MAX + 1.0)));
-				//fprintf(stderr, "process_chk: (%d+/-%d%%) random=%d\n", s->inter, global.spread_checks, rv);
+				//fprintf(stderr, "process_chk(%p): (%d+/-%d%%) random=%d\n", s, s->inter, global.spread_checks, rv);
 			}
-			while (tv_isle(&t->expire, &now))
-				tv_ms_add(&t->expire, &t->expire, s->inter + rv);
+			tv_ms_add(&t->expire, &now, s->inter + rv);
 			goto new_chk;
 		}
 		/* if result is 0 and there's no timeout, we have to wait again */