return ACT_RET_PRS_ERR;
switch (rule->from) {
- case ACT_F_TCP_REQ_SES: flags = SMP_VAL_FE_SES_ACC; break;
- case ACT_F_TCP_REQ_CNT: flags = SMP_VAL_FE_REQ_CNT; break;
- case ACT_F_TCP_RES_CNT: flags = SMP_VAL_BE_RES_CNT; break;
- case ACT_F_HTTP_REQ: flags = SMP_VAL_FE_HRQ_HDR; break;
- case ACT_F_HTTP_RES: flags = SMP_VAL_BE_HRS_HDR; break;
- case ACT_F_TCP_CHK: flags = SMP_VAL_BE_CHK_RUL; break;
- case ACT_F_CFG_PARSER: flags = SMP_VAL_CFG_PARSER; break;
- case ACT_F_CLI_PARSER: flags = SMP_VAL_CLI_PARSER; break;
+ case ACT_F_TCP_REQ_SES:
+ flags = SMP_VAL_FE_SES_ACC;
+ break;
+ case ACT_F_TCP_REQ_CNT:
+ flags = (px->cap & PR_CAP_FE) ? SMP_VAL_FE_REQ_CNT : SMP_VAL_BE_REQ_CNT;
+ break;
+ case ACT_F_TCP_RES_CNT:
+ flags = (px->cap & PR_CAP_FE) ? SMP_VAL_FE_RES_CNT : SMP_VAL_BE_RES_CNT;
+ break;
+ case ACT_F_HTTP_REQ:
+ flags = (px->cap & PR_CAP_FE) ? SMP_VAL_FE_HRQ_HDR : SMP_VAL_BE_HRQ_HDR;
+ break;
+ case ACT_F_HTTP_RES:
+ flags = (px->cap & PR_CAP_BE) ? SMP_VAL_BE_HRS_HDR : SMP_VAL_FE_HRS_HDR;
+ break;
+ case ACT_F_TCP_CHK:
+ flags = SMP_VAL_BE_CHK_RUL;
+ break;
+ case ACT_F_CFG_PARSER:
+ flags = SMP_VAL_CFG_PARSER;
+ break;
+ case ACT_F_CLI_PARSER:
+ flags = SMP_VAL_CLI_PARSER;
+ break;
default:
memprintf(err,
"internal error, unexpected rule->from=%d, please report this bug!",