MINOR: proxy: define cap PR_CAP_LUA
Define a new cap PR_CAP_LUA. It can be used to allocate the internal
proxy for lua Socket class. This cap overrides default settings for
preferable values in the lua context.
diff --git a/include/haproxy/proxy-t.h b/include/haproxy/proxy-t.h
index 009a7bd..e8e2385 100644
--- a/include/haproxy/proxy-t.h
+++ b/include/haproxy/proxy-t.h
@@ -68,6 +68,7 @@
#define PR_CAP_BE 0x0002
#define PR_CAP_LISTEN (PR_CAP_FE|PR_CAP_BE)
#define PR_CAP_DEF 0x0004 /* defaults section */
+#define PR_CAP_LUA 0x0008 /* internal proxy used by lua engine */
/* bits for proxy->options */
#define PR_O_REDISP 0x00000001 /* allow reconnection to dispatch in case of errors */
diff --git a/src/proxy.c b/src/proxy.c
index 1541b63..335bbaf 100644
--- a/src/proxy.c
+++ b/src/proxy.c
@@ -1342,10 +1342,14 @@
{
defproxy->mode = PR_MODE_TCP;
defproxy->disabled = 0;
- defproxy->maxconn = cfg_maxpconn;
- defproxy->conn_retries = CONN_RETRIES;
+ if (!(defproxy->cap & PR_CAP_LUA)) {
+ defproxy->maxconn = cfg_maxpconn;
+ defproxy->conn_retries = CONN_RETRIES;
+ }
defproxy->redispatch_after = 0;
defproxy->options = PR_O_REUSE_SAFE;
+ if (defproxy->cap & PR_CAP_LUA)
+ defproxy->options2 |= PR_O2_INDEPSTR;
defproxy->max_out_conns = MAX_SRV_LIST;
defproxy->defsrv.check.inter = DEF_CHKINTR;
@@ -1376,6 +1380,9 @@
#if defined(USE_QUIC)
quic_transport_params_init(&defproxy->defsrv.quic_params, 0);
#endif
+
+ if (defproxy->cap & PR_CAP_LUA)
+ defproxy->timeout.connect = 5000;
}
/* Frees all dynamic settings allocated on a default proxy that's about to be
@@ -1470,7 +1477,9 @@
curproxy->last_change = now.tv_sec;
curproxy->id = strdup(name);
curproxy->cap = cap;
- proxy_store_name(curproxy);
+
+ if (!(cap & PR_CAP_LUA))
+ proxy_store_name(curproxy);
done:
return curproxy;