return err_code;
}
+/* Returns the next entry following <cur> proxy attached it <head> list. This
+ * is a wrapper able to work with either a simple singly linked list or a
+ * doubly linked struct list type.
+ *
+ * TODO remove it once all proxies list are unified under the same type
+ */
+static struct proxy *_get_next_proxy(void *head, struct proxy *cur)
+{
+ struct proxy *next;
+ struct list *list = (struct list *)head;
+
+ if (0) { /* TODO complete with newly converted list */
+ next = cur ?
+ LIST_ELEM(cur->el.n, struct proxy *, el) :
+ LIST_ELEM(list->n, struct proxy *, el);
+
+ if (&next->el == head)
+ next = NULL;
+ }
+ else {
+ next = cur ? cur->next : head;
+ }
+
+ return next;
+}
+
/*
* Returns the error code, 0 if OK, or any combination of :
* - ERR_ABORT: must abort ASAP
int check_config_validity()
{
int cfgerr = 0, ret;
- struct proxy *init_proxies_list = NULL, *defpx;
+ struct proxy *defpx;
+ void *init_proxies_list = NULL;
struct stktable *t;
struct server *newsrv = NULL;
struct mt_list back;
err_code |= proxy_check_http_errors(defpx);
}
+ curproxy = NULL;
/* starting to initialize the main proxies list */
init_proxies_list = proxies_list;
init_proxies_list_stage1:
- for (curproxy = init_proxies_list; curproxy; curproxy = curproxy->next) {
+ while ((curproxy = _get_next_proxy(init_proxies_list, curproxy))) {
proxy_init_per_thr(curproxy);
/* Assign automatic UUID if unset except for internal proxies.
/* Dynamic proxies IDs will never be lowered than this value. */
dynpx_next_id = next_pxid;
+ curproxy = NULL;
/*
* We have just initialized the main proxies list
* we must also configure the log-forward proxies list
/* perform the final checks before creating tasks */
+ curproxy = NULL;
/* starting to initialize the main proxies list */
init_proxies_list = proxies_list;
init_proxies_list_stage2:
- for (curproxy = init_proxies_list; curproxy; curproxy = curproxy->next) {
+ while ((curproxy = _get_next_proxy(init_proxies_list, curproxy))) {
struct listener *listener;
unsigned int next_id;
}
}
+ curproxy = NULL;
/*
* We have just initialized the main proxies list
* we must also configure the log-forward proxies list