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++;
 		}
 	}