MINOR: proxy: add proxy->options3
proxy->options2 is almost full, yet we will add new log-forward options in upcoming patches so we anticipate that by adding a new {no_}options3 and cfg_opts3[] to further extend proxy options
This commit is contained in:
parent
d47e7103b8
commit
cc5a66212d
@ -170,6 +170,10 @@ enum PR_SRV_STATE_FILE {
|
|||||||
#define PR_O2_CHK_ANY 0xF0000000 /* Mask to cover any check */
|
#define PR_O2_CHK_ANY 0xF0000000 /* Mask to cover any check */
|
||||||
/* end of proxy->options2 */
|
/* end of proxy->options2 */
|
||||||
|
|
||||||
|
/* bits for proxy->options3 */
|
||||||
|
/* unused: 0x00000000 to 0x80000000 */
|
||||||
|
/* end of proxy->options3 */
|
||||||
|
|
||||||
/* Cookie settings for pr->ck_opts */
|
/* Cookie settings for pr->ck_opts */
|
||||||
#define PR_CK_RW 0x00000001 /* rewrite all direct cookies with the right serverid */
|
#define PR_CK_RW 0x00000001 /* rewrite all direct cookies with the right serverid */
|
||||||
#define PR_CK_IND 0x00000002 /* keep only indirect cookies */
|
#define PR_CK_IND 0x00000002 /* keep only indirect cookies */
|
||||||
@ -294,6 +298,7 @@ struct proxy {
|
|||||||
|
|
||||||
int options; /* PR_O_REDISP, PR_O_TRANSP, ... */
|
int options; /* PR_O_REDISP, PR_O_TRANSP, ... */
|
||||||
int options2; /* PR_O2_* */
|
int options2; /* PR_O2_* */
|
||||||
|
int options3; /* PR_O3_* */
|
||||||
unsigned int ck_opts; /* PR_CK_* (cookie options) */
|
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_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 */
|
unsigned int fe_rsp_ana, be_rsp_ana; /* bitmap of common response protocol analysers for the frontend and backend */
|
||||||
@ -429,6 +434,7 @@ struct proxy {
|
|||||||
/* used only during configuration parsing */
|
/* used only during configuration parsing */
|
||||||
int no_options; /* PR_O_REDISP, PR_O_TRANSP, ... */
|
int no_options; /* PR_O_REDISP, PR_O_TRANSP, ... */
|
||||||
int no_options2; /* PR_O2_* */
|
int no_options2; /* PR_O2_* */
|
||||||
|
int no_options3; /* PR_O3_* */
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
const char *file; /* file where the section appears */
|
const char *file; /* file where the section appears */
|
||||||
|
@ -39,6 +39,7 @@ extern struct eb_root proxy_by_name; /* tree of proxies sorted by name */
|
|||||||
|
|
||||||
extern const struct cfg_opt cfg_opts[];
|
extern const struct cfg_opt cfg_opts[];
|
||||||
extern const struct cfg_opt cfg_opts2[];
|
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);
|
struct task *manage_proxy(struct task *t, void *context, unsigned int state);
|
||||||
void proxy_cond_pause(struct proxy *p);
|
void proxy_cond_pause(struct proxy *p);
|
||||||
|
@ -2066,6 +2066,14 @@ stats_error_parsing:
|
|||||||
if (err_code & ERR_CODE)
|
if (err_code & ERR_CODE)
|
||||||
goto out;
|
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
|
/* HTTP options override each other. They can be cancelled using
|
||||||
* "no option xxx" which only switches to default mode if the mode
|
* "no option xxx" which only switches to default mode if the mode
|
||||||
* was this one (useful for cancelling options set in defaults
|
* was this one (useful for cancelling options set in defaults
|
||||||
|
@ -136,6 +136,12 @@ const struct cfg_opt cfg_opts2[] =
|
|||||||
{ NULL, 0, 0, 0 }
|
{ 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.
|
/* Helper function to resolve a single sticking rule after config parsing.
|
||||||
* Returns 1 for success and 0 for failure
|
* Returns 1 for success and 0 for failure
|
||||||
*/
|
*/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user