]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MINOR: sample: add a new CFG_PARSER context for samples
authorWilly Tarreau <w@1wt.eu>
Fri, 26 Mar 2021 10:09:38 +0000 (11:09 +0100)
committerWilly Tarreau <w@1wt.eu>
Fri, 26 Mar 2021 15:23:45 +0000 (16:23 +0100)
We'd sometimes like to be able to process samples while parsing
the configuration based on purely internal thing but that's not
possible right now. Let's add a new CFG_PARSER context for samples
which only permits constant samples (i.e. those which do not change
in the process' life and which are stable during config parsing).

include/haproxy/sample-t.h
src/sample.c

index 76b365ab1a2bc8d668ec1e2af6c9af4883a573bb..656e78ab5035e0be7c4ecfda16ab0086505c0161 100644 (file)
@@ -95,6 +95,7 @@ enum {
        SMP_CKP_FE_HRS_BDY,  /* FE HTTP response body */
        SMP_CKP_FE_LOG_END,  /* FE log at the end of the txn/stream */
        SMP_CKP_BE_CHK_RUL,  /* BE tcp-check rules */
+       SMP_CKP_CFG_PARSER,  /* config parser (i.e. before boot) */
        SMP_CKP_ENTRIES /* nothing after this */
 };
 
@@ -162,6 +163,7 @@ enum {
        SMP_VAL_FE_HRS_BDY = 1 << SMP_CKP_FE_HRS_BDY,  /* FE HTTP response body */
        SMP_VAL_FE_LOG_END = 1 << SMP_CKP_FE_LOG_END,  /* FE log at the end of the txn/stream */
        SMP_VAL_BE_CHK_RUL = 1 << SMP_CKP_BE_CHK_RUL,  /* BE tcp-check rule */
+       SMP_VAL_CFG_PARSER = 1 << SMP_CKP_CFG_PARSER,  /* within config parser */
 
        /* a few combinations to decide what direction to try to fetch (useful for logs) */
        SMP_VAL_REQUEST    = SMP_VAL_FE_CON_ACC | SMP_VAL_FE_SES_ACC | SMP_VAL_FE_REQ_CNT |
index 1b2abfd816ff51ec326f33ea6bb57773d87d13ec..5b78125fc0da0323443a12acb2454d62defa0e90 100644 (file)
@@ -76,7 +76,7 @@ const unsigned int fetch_cap[SMP_SRC_ENTRIES] = {
                           SMP_VAL_BE_SET_SRV | SMP_VAL_BE_SRV_CON | SMP_VAL_BE_RES_CNT |
                           SMP_VAL_BE_HRS_HDR | SMP_VAL_BE_HRS_BDY | SMP_VAL_BE_STO_RUL |
                           SMP_VAL_FE_RES_CNT | SMP_VAL_FE_HRS_HDR | SMP_VAL_FE_HRS_BDY |
-                          SMP_VAL_FE_LOG_END | SMP_VAL_BE_CHK_RUL),
+                          SMP_VAL_FE_LOG_END | SMP_VAL_BE_CHK_RUL | SMP_VAL_CFG_PARSER),
 
        [SMP_SRC_INTRN] = (SMP_VAL_FE_CON_ACC | SMP_VAL_FE_SES_ACC | SMP_VAL_FE_REQ_CNT |
                           SMP_VAL_FE_HRQ_HDR | SMP_VAL_FE_HRQ_BDY | SMP_VAL_FE_SET_BCK |
@@ -84,7 +84,7 @@ const unsigned int fetch_cap[SMP_SRC_ENTRIES] = {
                           SMP_VAL_BE_SET_SRV | SMP_VAL_BE_SRV_CON | SMP_VAL_BE_RES_CNT |
                           SMP_VAL_BE_HRS_HDR | SMP_VAL_BE_HRS_BDY | SMP_VAL_BE_STO_RUL |
                           SMP_VAL_FE_RES_CNT | SMP_VAL_FE_HRS_HDR | SMP_VAL_FE_HRS_BDY |
-                          SMP_VAL_FE_LOG_END | SMP_VAL_BE_CHK_RUL),
+                          SMP_VAL_FE_LOG_END | SMP_VAL_BE_CHK_RUL | SMP_VAL___________),
 
        [SMP_SRC_LISTN] = (SMP_VAL_FE_CON_ACC | SMP_VAL_FE_SES_ACC | SMP_VAL_FE_REQ_CNT |
                           SMP_VAL_FE_HRQ_HDR | SMP_VAL_FE_HRQ_BDY | SMP_VAL_FE_SET_BCK |
@@ -92,7 +92,7 @@ const unsigned int fetch_cap[SMP_SRC_ENTRIES] = {
                           SMP_VAL_BE_SET_SRV | SMP_VAL_BE_SRV_CON | SMP_VAL_BE_RES_CNT |
                           SMP_VAL_BE_HRS_HDR | SMP_VAL_BE_HRS_BDY | SMP_VAL_BE_STO_RUL |
                           SMP_VAL_FE_RES_CNT | SMP_VAL_FE_HRS_HDR | SMP_VAL_FE_HRS_BDY |
-                          SMP_VAL_FE_LOG_END | SMP_VAL___________),
+                          SMP_VAL_FE_LOG_END | SMP_VAL___________ | SMP_VAL___________),
 
        [SMP_SRC_FTEND] = (SMP_VAL_FE_CON_ACC | SMP_VAL_FE_SES_ACC | SMP_VAL_FE_REQ_CNT |
                           SMP_VAL_FE_HRQ_HDR | SMP_VAL_FE_HRQ_BDY | SMP_VAL_FE_SET_BCK |
@@ -100,7 +100,7 @@ const unsigned int fetch_cap[SMP_SRC_ENTRIES] = {
                           SMP_VAL_BE_SET_SRV | SMP_VAL_BE_SRV_CON | SMP_VAL_BE_RES_CNT |
                           SMP_VAL_BE_HRS_HDR | SMP_VAL_BE_HRS_BDY | SMP_VAL_BE_STO_RUL |
                           SMP_VAL_FE_RES_CNT | SMP_VAL_FE_HRS_HDR | SMP_VAL_FE_HRS_BDY |
-                          SMP_VAL_FE_LOG_END | SMP_VAL___________),
+                          SMP_VAL_FE_LOG_END | SMP_VAL___________ | SMP_VAL___________),
 
        [SMP_SRC_L4CLI] = (SMP_VAL_FE_CON_ACC | SMP_VAL_FE_SES_ACC | SMP_VAL_FE_REQ_CNT |
                           SMP_VAL_FE_HRQ_HDR | SMP_VAL_FE_HRQ_BDY | SMP_VAL_FE_SET_BCK |
@@ -108,7 +108,7 @@ const unsigned int fetch_cap[SMP_SRC_ENTRIES] = {
                           SMP_VAL_BE_SET_SRV | SMP_VAL_BE_SRV_CON | SMP_VAL_BE_RES_CNT |
                           SMP_VAL_BE_HRS_HDR | SMP_VAL_BE_HRS_BDY | SMP_VAL_BE_STO_RUL |
                           SMP_VAL_FE_RES_CNT | SMP_VAL_FE_HRS_HDR | SMP_VAL_FE_HRS_BDY |
-                          SMP_VAL_FE_LOG_END | SMP_VAL_BE_CHK_RUL),
+                          SMP_VAL_FE_LOG_END | SMP_VAL_BE_CHK_RUL | SMP_VAL___________),
 
        [SMP_SRC_L5CLI] = (SMP_VAL___________ | SMP_VAL_FE_SES_ACC | SMP_VAL_FE_REQ_CNT |
                           SMP_VAL_FE_HRQ_HDR | SMP_VAL_FE_HRQ_BDY | SMP_VAL_FE_SET_BCK |
@@ -116,7 +116,7 @@ const unsigned int fetch_cap[SMP_SRC_ENTRIES] = {
                           SMP_VAL_BE_SET_SRV | SMP_VAL_BE_SRV_CON | SMP_VAL_BE_RES_CNT |
                           SMP_VAL_BE_HRS_HDR | SMP_VAL_BE_HRS_BDY | SMP_VAL_BE_STO_RUL |
                           SMP_VAL_FE_RES_CNT | SMP_VAL_FE_HRS_HDR | SMP_VAL_FE_HRS_BDY |
-                          SMP_VAL_FE_LOG_END | SMP_VAL___________),
+                          SMP_VAL_FE_LOG_END | SMP_VAL___________ | SMP_VAL___________),
 
        [SMP_SRC_TRACK] = (SMP_VAL_FE_CON_ACC | SMP_VAL_FE_SES_ACC | SMP_VAL_FE_REQ_CNT |
                           SMP_VAL_FE_HRQ_HDR | SMP_VAL_FE_HRQ_BDY | SMP_VAL_FE_SET_BCK |
@@ -124,7 +124,7 @@ const unsigned int fetch_cap[SMP_SRC_ENTRIES] = {
                           SMP_VAL_BE_SET_SRV | SMP_VAL_BE_SRV_CON | SMP_VAL_BE_RES_CNT |
                           SMP_VAL_BE_HRS_HDR | SMP_VAL_BE_HRS_BDY | SMP_VAL_BE_STO_RUL |
                           SMP_VAL_FE_RES_CNT | SMP_VAL_FE_HRS_HDR | SMP_VAL_FE_HRS_BDY |
-                          SMP_VAL_FE_LOG_END | SMP_VAL___________),
+                          SMP_VAL_FE_LOG_END | SMP_VAL___________ | SMP_VAL___________),
 
        [SMP_SRC_L6REQ] = (SMP_VAL___________ | SMP_VAL___________ | SMP_VAL_FE_REQ_CNT |
                           SMP_VAL_FE_HRQ_HDR | SMP_VAL_FE_HRQ_BDY | SMP_VAL_FE_SET_BCK |
@@ -132,7 +132,7 @@ const unsigned int fetch_cap[SMP_SRC_ENTRIES] = {
                           SMP_VAL_BE_SET_SRV | SMP_VAL_BE_SRV_CON | SMP_VAL___________ |
                           SMP_VAL___________ | SMP_VAL___________ | SMP_VAL___________ |
                           SMP_VAL___________ | SMP_VAL___________ | SMP_VAL___________ |
-                          SMP_VAL___________ | SMP_VAL___________),
+                          SMP_VAL___________ | SMP_VAL___________ | SMP_VAL___________),
 
        [SMP_SRC_HRQHV] = (SMP_VAL___________ | SMP_VAL___________ | SMP_VAL_FE_REQ_CNT |
                           SMP_VAL_FE_HRQ_HDR | SMP_VAL_FE_HRQ_BDY | SMP_VAL_FE_SET_BCK |
@@ -140,7 +140,7 @@ const unsigned int fetch_cap[SMP_SRC_ENTRIES] = {
                           SMP_VAL_BE_SET_SRV | SMP_VAL_BE_SRV_CON | SMP_VAL___________ |
                           SMP_VAL___________ | SMP_VAL___________ | SMP_VAL___________ |
                           SMP_VAL___________ | SMP_VAL___________ | SMP_VAL___________ |
-                          SMP_VAL___________ | SMP_VAL___________),
+                          SMP_VAL___________ | SMP_VAL___________ | SMP_VAL___________),
 
        [SMP_SRC_HRQHP] = (SMP_VAL___________ | SMP_VAL___________ | SMP_VAL_FE_REQ_CNT |
                           SMP_VAL_FE_HRQ_HDR | SMP_VAL_FE_HRQ_BDY | SMP_VAL_FE_SET_BCK |
@@ -148,7 +148,7 @@ const unsigned int fetch_cap[SMP_SRC_ENTRIES] = {
                           SMP_VAL_BE_SET_SRV | SMP_VAL_BE_SRV_CON | SMP_VAL_BE_RES_CNT |
                           SMP_VAL_BE_HRS_HDR | SMP_VAL_BE_HRS_BDY | SMP_VAL_BE_STO_RUL |
                           SMP_VAL_FE_RES_CNT | SMP_VAL_FE_HRS_HDR | SMP_VAL_FE_HRS_BDY |
-                          SMP_VAL_FE_LOG_END | SMP_VAL___________),
+                          SMP_VAL_FE_LOG_END | SMP_VAL___________ | SMP_VAL___________),
 
        [SMP_SRC_HRQBO] = (SMP_VAL___________ | SMP_VAL___________ | SMP_VAL___________ |
                           SMP_VAL___________ | SMP_VAL_FE_HRQ_BDY | SMP_VAL_FE_SET_BCK |
@@ -156,7 +156,7 @@ const unsigned int fetch_cap[SMP_SRC_ENTRIES] = {
                           SMP_VAL_BE_SET_SRV | SMP_VAL_BE_SRV_CON | SMP_VAL___________ |
                           SMP_VAL___________ | SMP_VAL___________ | SMP_VAL___________ |
                           SMP_VAL___________ | SMP_VAL___________ | SMP_VAL___________ |
-                          SMP_VAL___________ | SMP_VAL___________),
+                          SMP_VAL___________ | SMP_VAL___________ | SMP_VAL___________),
 
        [SMP_SRC_BKEND] = (SMP_VAL___________ | SMP_VAL___________ | SMP_VAL___________ |
                           SMP_VAL___________ | SMP_VAL___________ | SMP_VAL___________ |
@@ -164,7 +164,7 @@ const unsigned int fetch_cap[SMP_SRC_ENTRIES] = {
                           SMP_VAL_BE_SET_SRV | SMP_VAL_BE_SRV_CON | SMP_VAL_BE_RES_CNT |
                           SMP_VAL_BE_HRS_HDR | SMP_VAL_BE_HRS_BDY | SMP_VAL_BE_STO_RUL |
                           SMP_VAL_FE_RES_CNT | SMP_VAL_FE_HRS_HDR | SMP_VAL_FE_HRS_BDY |
-                          SMP_VAL_FE_LOG_END | SMP_VAL_BE_CHK_RUL),
+                          SMP_VAL_FE_LOG_END | SMP_VAL_BE_CHK_RUL | SMP_VAL___________),
 
        [SMP_SRC_SERVR] = (SMP_VAL___________ | SMP_VAL___________ | SMP_VAL___________ |
                           SMP_VAL___________ | SMP_VAL___________ | SMP_VAL___________ |
@@ -172,7 +172,7 @@ const unsigned int fetch_cap[SMP_SRC_ENTRIES] = {
                           SMP_VAL___________ | SMP_VAL_BE_SRV_CON | SMP_VAL_BE_RES_CNT |
                           SMP_VAL_BE_HRS_HDR | SMP_VAL_BE_HRS_BDY | SMP_VAL_BE_STO_RUL |
                           SMP_VAL_FE_RES_CNT | SMP_VAL_FE_HRS_HDR | SMP_VAL_FE_HRS_BDY |
-                          SMP_VAL_FE_LOG_END | SMP_VAL_BE_CHK_RUL),
+                          SMP_VAL_FE_LOG_END | SMP_VAL_BE_CHK_RUL | SMP_VAL___________),
 
        [SMP_SRC_L4SRV] = (SMP_VAL___________ | SMP_VAL___________ | SMP_VAL___________ |
                           SMP_VAL___________ | SMP_VAL___________ | SMP_VAL___________ |
@@ -180,7 +180,7 @@ const unsigned int fetch_cap[SMP_SRC_ENTRIES] = {
                           SMP_VAL___________ | SMP_VAL___________ | SMP_VAL_BE_RES_CNT |
                           SMP_VAL_BE_HRS_HDR | SMP_VAL_BE_HRS_BDY | SMP_VAL_BE_STO_RUL |
                           SMP_VAL_FE_RES_CNT | SMP_VAL_FE_HRS_HDR | SMP_VAL_FE_HRS_BDY |
-                          SMP_VAL_FE_LOG_END | SMP_VAL_BE_CHK_RUL),
+                          SMP_VAL_FE_LOG_END | SMP_VAL_BE_CHK_RUL | SMP_VAL___________),
 
        [SMP_SRC_L5SRV] = (SMP_VAL___________ | SMP_VAL___________ | SMP_VAL___________ |
                           SMP_VAL___________ | SMP_VAL___________ | SMP_VAL___________ |
@@ -188,7 +188,7 @@ const unsigned int fetch_cap[SMP_SRC_ENTRIES] = {
                           SMP_VAL___________ | SMP_VAL___________ | SMP_VAL_BE_RES_CNT |
                           SMP_VAL_BE_HRS_HDR | SMP_VAL_BE_HRS_BDY | SMP_VAL_BE_STO_RUL |
                           SMP_VAL_FE_RES_CNT | SMP_VAL_FE_HRS_HDR | SMP_VAL_FE_HRS_BDY |
-                          SMP_VAL_FE_LOG_END | SMP_VAL_BE_CHK_RUL),
+                          SMP_VAL_FE_LOG_END | SMP_VAL_BE_CHK_RUL | SMP_VAL___________),
 
        [SMP_SRC_L6RES] = (SMP_VAL___________ | SMP_VAL___________ | SMP_VAL___________ |
                           SMP_VAL___________ | SMP_VAL___________ | SMP_VAL___________ |
@@ -196,7 +196,7 @@ const unsigned int fetch_cap[SMP_SRC_ENTRIES] = {
                           SMP_VAL___________ | SMP_VAL___________ | SMP_VAL_BE_RES_CNT |
                           SMP_VAL_BE_HRS_HDR | SMP_VAL_BE_HRS_BDY | SMP_VAL_BE_STO_RUL |
                           SMP_VAL_FE_RES_CNT | SMP_VAL_FE_HRS_HDR | SMP_VAL_FE_HRS_BDY |
-                          SMP_VAL___________ | SMP_VAL_BE_CHK_RUL),
+                          SMP_VAL___________ | SMP_VAL_BE_CHK_RUL | SMP_VAL___________),
 
        [SMP_SRC_HRSHV] = (SMP_VAL___________ | SMP_VAL___________ | SMP_VAL___________ |
                           SMP_VAL___________ | SMP_VAL___________ | SMP_VAL___________ |
@@ -204,7 +204,7 @@ const unsigned int fetch_cap[SMP_SRC_ENTRIES] = {
                           SMP_VAL___________ | SMP_VAL___________ | SMP_VAL_BE_RES_CNT |
                           SMP_VAL_BE_HRS_HDR | SMP_VAL_BE_HRS_BDY | SMP_VAL_BE_STO_RUL |
                           SMP_VAL_FE_RES_CNT | SMP_VAL_FE_HRS_HDR | SMP_VAL_FE_HRS_BDY |
-                          SMP_VAL___________ | SMP_VAL_BE_CHK_RUL),
+                          SMP_VAL___________ | SMP_VAL_BE_CHK_RUL | SMP_VAL___________),
 
        [SMP_SRC_HRSHP] = (SMP_VAL___________ | SMP_VAL___________ | SMP_VAL___________ |
                           SMP_VAL___________ | SMP_VAL___________ | SMP_VAL___________ |
@@ -212,7 +212,7 @@ const unsigned int fetch_cap[SMP_SRC_ENTRIES] = {
                           SMP_VAL___________ | SMP_VAL___________ | SMP_VAL_BE_RES_CNT |
                           SMP_VAL_BE_HRS_HDR | SMP_VAL_BE_HRS_BDY | SMP_VAL_BE_STO_RUL |
                           SMP_VAL_FE_RES_CNT | SMP_VAL_FE_HRS_HDR | SMP_VAL_FE_HRS_BDY |
-                          SMP_VAL_FE_LOG_END | SMP_VAL_BE_CHK_RUL),
+                          SMP_VAL_FE_LOG_END | SMP_VAL_BE_CHK_RUL | SMP_VAL___________),
 
        [SMP_SRC_HRSBO] = (SMP_VAL___________ | SMP_VAL___________ | SMP_VAL___________ |
                           SMP_VAL___________ | SMP_VAL___________ | SMP_VAL___________ |
@@ -220,7 +220,7 @@ const unsigned int fetch_cap[SMP_SRC_ENTRIES] = {
                           SMP_VAL___________ | SMP_VAL___________ | SMP_VAL___________ |
                           SMP_VAL___________ | SMP_VAL_BE_HRS_BDY | SMP_VAL_BE_STO_RUL |
                           SMP_VAL_FE_RES_CNT | SMP_VAL_FE_HRS_HDR | SMP_VAL_FE_HRS_BDY |
-                          SMP_VAL___________ | SMP_VAL_BE_CHK_RUL),
+                          SMP_VAL___________ | SMP_VAL_BE_CHK_RUL | SMP_VAL___________),
 
        [SMP_SRC_RQFIN] = (SMP_VAL___________ | SMP_VAL___________ | SMP_VAL___________ |
                           SMP_VAL___________ | SMP_VAL___________ | SMP_VAL___________ |
@@ -228,7 +228,7 @@ const unsigned int fetch_cap[SMP_SRC_ENTRIES] = {
                           SMP_VAL___________ | SMP_VAL___________ | SMP_VAL___________ |
                           SMP_VAL___________ | SMP_VAL___________ | SMP_VAL___________ |
                           SMP_VAL___________ | SMP_VAL___________ | SMP_VAL___________ |
-                          SMP_VAL_FE_LOG_END | SMP_VAL___________),
+                          SMP_VAL_FE_LOG_END | SMP_VAL___________ | SMP_VAL___________),
 
        [SMP_SRC_RSFIN] = (SMP_VAL___________ | SMP_VAL___________ | SMP_VAL___________ |
                           SMP_VAL___________ | SMP_VAL___________ | SMP_VAL___________ |
@@ -236,7 +236,7 @@ const unsigned int fetch_cap[SMP_SRC_ENTRIES] = {
                           SMP_VAL___________ | SMP_VAL___________ | SMP_VAL___________ |
                           SMP_VAL___________ | SMP_VAL___________ | SMP_VAL___________ |
                           SMP_VAL___________ | SMP_VAL___________ | SMP_VAL___________ |
-                          SMP_VAL_FE_LOG_END | SMP_VAL___________),
+                          SMP_VAL_FE_LOG_END | SMP_VAL___________ | SMP_VAL___________),
 
        [SMP_SRC_TXFIN] = (SMP_VAL___________ | SMP_VAL___________ | SMP_VAL___________ |
                           SMP_VAL___________ | SMP_VAL___________ | SMP_VAL___________ |
@@ -244,7 +244,7 @@ const unsigned int fetch_cap[SMP_SRC_ENTRIES] = {
                           SMP_VAL___________ | SMP_VAL___________ | SMP_VAL___________ |
                           SMP_VAL___________ | SMP_VAL___________ | SMP_VAL___________ |
                           SMP_VAL___________ | SMP_VAL___________ | SMP_VAL___________ |
-                          SMP_VAL_FE_LOG_END | SMP_VAL___________),
+                          SMP_VAL_FE_LOG_END | SMP_VAL___________ | SMP_VAL___________),
 
        [SMP_SRC_SSFIN] = (SMP_VAL___________ | SMP_VAL___________ | SMP_VAL___________ |
                           SMP_VAL___________ | SMP_VAL___________ | SMP_VAL___________ |
@@ -252,7 +252,7 @@ const unsigned int fetch_cap[SMP_SRC_ENTRIES] = {
                           SMP_VAL___________ | SMP_VAL___________ | SMP_VAL___________ |
                           SMP_VAL___________ | SMP_VAL___________ | SMP_VAL___________ |
                           SMP_VAL___________ | SMP_VAL___________ | SMP_VAL___________ |
-                          SMP_VAL_FE_LOG_END | SMP_VAL___________),
+                          SMP_VAL_FE_LOG_END | SMP_VAL___________ | SMP_VAL___________),
 };
 
 static const char *fetch_src_names[SMP_SRC_ENTRIES] = {