#define PR_O2_CHK_ANY 0xF0000000 /* Mask to cover any check */
/* end of proxy->options2 */
+/* bits for proxy->options3 */
+/* unused: 0x00000000 to 0x80000000 */
+/* end of proxy->options3 */
+
/* Cookie settings for pr->ck_opts */
#define PR_CK_RW 0x00000001 /* rewrite all direct cookies with the right serverid */
#define PR_CK_IND 0x00000002 /* keep only indirect cookies */
int options; /* PR_O_REDISP, PR_O_TRANSP, ... */
int options2; /* PR_O2_* */
+ int options3; /* PR_O3_* */
unsigned int ck_opts; /* PR_CK_* (cookie options) */
unsigned int fe_req_ana, be_req_ana; /* bitmap of common request protocol analysers for the frontend and backend */
unsigned int fe_rsp_ana, be_rsp_ana; /* bitmap of common response protocol analysers for the frontend and backend */
/* used only during configuration parsing */
int no_options; /* PR_O_REDISP, PR_O_TRANSP, ... */
int no_options2; /* PR_O2_* */
+ int no_options3; /* PR_O3_* */
struct {
const char *file; /* file where the section appears */
extern const struct cfg_opt cfg_opts[];
extern const struct cfg_opt cfg_opts2[];
+extern const struct cfg_opt cfg_opts3[];
struct task *manage_proxy(struct task *t, void *context, unsigned int state);
void proxy_cond_pause(struct proxy *p);
if (err_code & ERR_CODE)
goto out;
+ /* try to match option within cfg_opts3 */
+ if (cfg_parse_listen_match_option(file, linenum, kwm, cfg_opts3, &err_code, args,
+ PR_MODES, PR_CAP_NONE,
+ &curproxy->options3, &curproxy->no_options3))
+ goto out;
+ if (err_code & ERR_CODE)
+ goto out;
+
/* HTTP options override each other. They can be cancelled using
* "no option xxx" which only switches to default mode if the mode
* was this one (useful for cancelling options set in defaults
{ NULL, 0, 0, 0 }
};
+/* proxy->options3 */
+const struct cfg_opt cfg_opts3[] =
+{
+ { NULL, 0, 0, 0 }
+};
+
/* Helper function to resolve a single sticking rule after config parsing.
* Returns 1 for success and 0 for failure
*/