struct proxy *findproxy(const char *name, int cap);
struct server *findserver(const struct proxy *px, const char *name);
int proxy_cfg_ensure_no_http(struct proxy *curproxy);
+void init_new_proxy(struct proxy *p);
int get_backend_server(const char *bk_name, const char *sv_name,
struct proxy **bk, struct server **sv);
return err_code;
}
-/* Perform the most basic initialization of a proxy :
- * memset(), list_init(*), reset_timeouts(*).
- */
-static void init_new_proxy(struct proxy *p)
-{
- memset(p, 0, sizeof(struct proxy));
- LIST_INIT(&p->pendconns);
- LIST_INIT(&p->acl);
- LIST_INIT(&p->http_req_rules);
- LIST_INIT(&p->block_cond);
- LIST_INIT(&p->redirect_rules);
- LIST_INIT(&p->mon_fail_cond);
- LIST_INIT(&p->switching_rules);
- LIST_INIT(&p->persist_rules);
- LIST_INIT(&p->sticking_rules);
- LIST_INIT(&p->storersp_rules);
- LIST_INIT(&p->tcp_req.inspect_rules);
- LIST_INIT(&p->tcp_rep.inspect_rules);
- LIST_INIT(&p->tcp_req.l4_rules);
- LIST_INIT(&p->req_add);
- LIST_INIT(&p->rsp_add);
- LIST_INIT(&p->listener_queue);
-
- /* Timeouts are defined as -1 */
- proxy_reset_timeouts(p);
- p->tcp_rep.inspect_delay = TICK_ETERNITY;
-}
-
void init_default_instance()
{
init_new_proxy(&defproxy);
err_code |= ERR_ALERT | ERR_ABORT;
goto out;
}
- curpeers->peers_fe->parent = curpeers;
-
- LIST_INIT(&(curpeers->peers_fe)->pendconns);
- LIST_INIT(&(curpeers->peers_fe)->acl);
- LIST_INIT(&(curpeers->peers_fe)->block_cond);
- LIST_INIT(&(curpeers->peers_fe)->redirect_rules);
- LIST_INIT(&(curpeers->peers_fe)->mon_fail_cond);
- LIST_INIT(&(curpeers->peers_fe)->switching_rules);
- LIST_INIT(&(curpeers->peers_fe)->tcp_req.inspect_rules);
- LIST_INIT(&(curpeers->peers_fe)->tcp_rep.inspect_rules);
- proxy_reset_timeouts(curpeers->peers_fe);
+ init_new_proxy(curpeers->peers_fe);
+ curpeers->peers_fe->parent = curpeers;
curpeers->peers_fe->last_change = now.tv_sec;
curpeers->peers_fe->id = strdup(args[1]);
if (!fe)
return NULL;
- LIST_INIT(&fe->pendconns);
- LIST_INIT(&fe->acl);
- LIST_INIT(&fe->block_cond);
- LIST_INIT(&fe->redirect_rules);
- LIST_INIT(&fe->mon_fail_cond);
- LIST_INIT(&fe->switching_rules);
- LIST_INIT(&fe->tcp_req.inspect_rules);
-
- /* Timeouts are defined as -1, so we cannot use the zeroed area
- * as a default value.
- */
- proxy_reset_timeouts(fe);
+ init_new_proxy(fe);
fe->last_change = now.tv_sec;
fe->id = strdup("GLOBAL");
return 0;
}
+/* Perform the most basic initialization of a proxy :
+ * memset(), list_init(*), reset_timeouts(*).
+ * Any new proxy should be initialized via this function.
+ */
+void init_new_proxy(struct proxy *p)
+{
+ memset(p, 0, sizeof(struct proxy));
+ LIST_INIT(&p->pendconns);
+ LIST_INIT(&p->acl);
+ LIST_INIT(&p->http_req_rules);
+ LIST_INIT(&p->block_cond);
+ LIST_INIT(&p->redirect_rules);
+ LIST_INIT(&p->mon_fail_cond);
+ LIST_INIT(&p->switching_rules);
+ LIST_INIT(&p->persist_rules);
+ LIST_INIT(&p->sticking_rules);
+ LIST_INIT(&p->storersp_rules);
+ LIST_INIT(&p->tcp_req.inspect_rules);
+ LIST_INIT(&p->tcp_rep.inspect_rules);
+ LIST_INIT(&p->tcp_req.l4_rules);
+ LIST_INIT(&p->req_add);
+ LIST_INIT(&p->rsp_add);
+ LIST_INIT(&p->listener_queue);
+
+ /* Timeouts are defined as -1 */
+ proxy_reset_timeouts(p);
+ p->tcp_rep.inspect_delay = TICK_ETERNITY;
+}
+
/*
* This function creates all proxy sockets. It should be done very early,
* typically before privileges are dropped. The sockets will be registered