From: Willy Tarreau Date: Mon, 29 Mar 2010 16:33:29 +0000 (+0200) Subject: [CLEANUP] proxy: move PR_O_SSL3_CHK to options2 to release one flag X-Git-Tag: v1.4.4~9 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=07a5490881a39c0bbd8c0877e5bfbfede04ddcdc;p=thirdparty%2Fhaproxy.git [CLEANUP] proxy: move PR_O_SSL3_CHK to options2 to release one flag We'll need another flag in the 'options' member close to PR_O_TPXY_*, and all are used, so let's move this easy one to options2 (which are already used for SQL checks). --- diff --git a/include/types/proxy.h b/include/types/proxy.h index 53c00f71e7..13b5f2a521 100644 --- a/include/types/proxy.h +++ b/include/types/proxy.h @@ -94,7 +94,6 @@ #define PR_O_FORCE_CLO 0x00200000 /* enforce the connection close immediately after server response */ #define PR_O_TCP_NOLING 0x00400000 /* disable lingering on client and server connections */ #define PR_O_ABRT_CLOSE 0x00800000 /* immediately abort request when client closes */ -#define PR_O_SSL3_CHK 0x01000000 /* use SSLv3 CLIENT_HELLO packets for server health */ /* TPXY: exclusive values */ #define PR_O_TPXY_ADDR 0x02000000 /* bind to this non-local address when connect()ing */ @@ -137,6 +136,7 @@ #define PR_O2_MYSQL_CHK 0x00020000 /* use MYSQL check for server health */ #define PR_O2_USE_PXHDR 0x00040000 /* use Proxy-Connection for proxy requests */ #define PR_O2_CHK_SNDST 0x00080000 /* send the state of each server along with HTTP health checks */ +#define PR_O2_SSL3_CHK 0x00100000 /* use SSLv3 CLIENT_HELLO packets for server health */ /* end of proxy->options2 */ /* bits for sticking rules */ diff --git a/src/cfgparse.c b/src/cfgparse.c index 645c631c8c..b647ff2ae1 100644 --- a/src/cfgparse.c +++ b/src/cfgparse.c @@ -2667,8 +2667,8 @@ stats_error_parsing: /* use HTTP request to check servers' health */ free(curproxy->check_req); curproxy->check_req = NULL; - curproxy->options &= ~PR_O_SSL3_CHK; curproxy->options &= ~PR_O_SMTP_CHK; + curproxy->options2 &= ~PR_O2_SSL3_CHK; curproxy->options2 &= ~PR_O2_MYSQL_CHK; curproxy->options |= PR_O_HTTP_CHK; if (!*args[2]) { /* no argument */ @@ -2701,14 +2701,14 @@ stats_error_parsing: curproxy->options &= ~PR_O_HTTP_CHK; curproxy->options &= ~PR_O_SMTP_CHK; curproxy->options2 &= ~PR_O2_MYSQL_CHK; - curproxy->options |= PR_O_SSL3_CHK; + curproxy->options2 |= PR_O2_SSL3_CHK; } else if (!strcmp(args[1], "smtpchk")) { /* use SMTP request to check servers' health */ free(curproxy->check_req); curproxy->check_req = NULL; curproxy->options &= ~PR_O_HTTP_CHK; - curproxy->options &= ~PR_O_SSL3_CHK; + curproxy->options2 &= ~PR_O2_SSL3_CHK; curproxy->options2 &= ~PR_O2_MYSQL_CHK; curproxy->options |= PR_O_SMTP_CHK; @@ -2734,8 +2734,8 @@ stats_error_parsing: free(curproxy->check_req); curproxy->check_req = NULL; curproxy->options &= ~PR_O_HTTP_CHK; - curproxy->options &= ~PR_O_SSL3_CHK; curproxy->options &= ~PR_O_SMTP_CHK; + curproxy->options2 &= ~PR_O2_SSL3_CHK; curproxy->options2 |= PR_O2_MYSQL_CHK; } else if (!strcmp(args[1], "forwardfor")) { @@ -4915,7 +4915,7 @@ out_uri_auth_compat: } } - if (curproxy->options & PR_O_SSL3_CHK) { + if (curproxy->options2 & PR_O2_SSL3_CHK) { curproxy->check_len = sizeof(sslv3_client_hello_pkt) - 1; curproxy->check_req = (char *)malloc(curproxy->check_len); memcpy(curproxy->check_req, sslv3_client_hello_pkt, curproxy->check_len); diff --git a/src/checks.c b/src/checks.c index e6fec7dfe9..d326625be8 100644 --- a/src/checks.c +++ b/src/checks.c @@ -741,8 +741,8 @@ static int event_srv_chk_w(int fd) if (!(s->result & SRV_CHK_ERROR)) { /* we don't want to mark 'UP' a server on which we detected an error earlier */ if ((s->proxy->options & PR_O_HTTP_CHK) || - (s->proxy->options & PR_O_SSL3_CHK) || (s->proxy->options & PR_O_SMTP_CHK) || + (s->proxy->options2 & PR_O2_SSL3_CHK) || (s->proxy->options2 & PR_O2_MYSQL_CHK)) { int ret; const char *check_req = s->proxy->check_req; @@ -752,7 +752,7 @@ static int event_srv_chk_w(int fd) * so we'll send the request, and won't wake the checker up now. */ - if (s->proxy->options & PR_O_SSL3_CHK) { + if (s->proxy->options2 & PR_O2_SSL3_CHK) { /* SSL requires that we put Unix time in the request */ int gmt_time = htonl(date.tv_sec); memcpy(s->proxy->check_req + 11, &gmt_time, 4); @@ -956,7 +956,7 @@ static int event_srv_chk_r(int fd) set_server_check_status(s, HCHK_STATUS_L7STS, desc); } } - else if (s->proxy->options & PR_O_SSL3_CHK) { + else if (s->proxy->options2 & PR_O2_SSL3_CHK) { if (!done && s->check_data_len < 5) goto wait_more_data; @@ -1359,7 +1359,7 @@ struct task *process_chk(struct task *t) if (!EV_FD_ISSET(fd, DIR_RD)) { set_server_check_status(s, HCHK_STATUS_L4TOUT, NULL); } else { - if (s->proxy->options & PR_O_SSL3_CHK) + if (s->proxy->options2 & PR_O2_SSL3_CHK) set_server_check_status(s, HCHK_STATUS_L6TOUT, NULL); else /* HTTP, SMTP */ set_server_check_status(s, HCHK_STATUS_L7TOUT, NULL);