MEDIUM: Add helper for task creation for checks
This helper is in preparation for adding a second struct check element
to struct server.
Signed-off-by: Simon Horman <horms@verge.net.au>
diff --git a/src/checks.c b/src/checks.c
index cfbb8a3..e34ed0f 100644
--- a/src/checks.c
+++ b/src/checks.c
@@ -1509,6 +1509,32 @@
return t;
}
+static int start_check_task(struct check *check, int mininter,
+ int nbcheck, int srvpos)
+{
+ struct task *t;
+ /* task for the check */
+ if ((t = task_new()) == NULL) {
+ Alert("Starting [%s:%s] check: out of memory.\n",
+ check->server->proxy->id, check->server->id);
+ return 0;
+ }
+
+ check->task = t;
+ t->process = process_chk;
+ t->context = check;
+
+ /* check this every ms */
+ t->expire = tick_add(now_ms,
+ MS_TO_TICKS(((mininter &&
+ mininter >= srv_getinter(check)) ?
+ mininter : srv_getinter(check)) * srvpos / nbcheck));
+ check->start = now;
+ task_queue(t);
+
+ return 1;
+}
+
/*
* Start health-check.
* Returns 0 if OK, -1 if error, and prints the error in this case.
@@ -1569,24 +1595,8 @@
if (!(s->state & SRV_CHECKED))
continue;
- /* one task for the checks */
- if ((t = task_new()) == NULL) {
- Alert("Starting [%s:%s] check: out of memory.\n", px->id, s->id);
+ if (!start_check_task(&s->check, mininter, nbcheck, srvpos))
return -1;
- }
-
- s->check.task = t;
- t->process = process_chk;
- t->context = &s->check;
-
- /* check this every ms */
- t->expire = tick_add(now_ms,
- MS_TO_TICKS(((mininter &&
- mininter >= srv_getinter(&s->check)) ?
- mininter : srv_getinter(&s->check)) * srvpos / nbcheck));
- s->check.start = now;
- task_queue(t);
-
srvpos++;
}
}