mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-05-03 08:17:59 +00:00
MINOR: proto_http: Remove unused http txn flags
Many flags of the HTTP transction (TX_*) are now unused and useless. So the flags TX_WAIT_CLEANUP, TX_HDR_CONN_*, TX_CON_CLO_SET and TX_CON_KAL_SET were removed. Most of TX_CON_WANT_* were also removed. Only TX_CON_WANT_TUN has been kept.
This commit is contained in:
parent
67bb3bb0c2
commit
c41547b66e
@ -273,21 +273,8 @@ void show_txn_flags(unsigned int f)
|
|||||||
|
|
||||||
SHOW_FLAG(f, TX_NOT_FIRST);
|
SHOW_FLAG(f, TX_NOT_FIRST);
|
||||||
SHOW_FLAG(f, TX_USE_PX_CONN);
|
SHOW_FLAG(f, TX_USE_PX_CONN);
|
||||||
SHOW_FLAG(f, TX_HDR_CONN_KAL);
|
|
||||||
SHOW_FLAG(f, TX_HDR_CONN_CLO);
|
|
||||||
SHOW_FLAG(f, TX_HDR_CONN_PRS);
|
|
||||||
SHOW_FLAG(f, TX_WAIT_NEXT_RQ);
|
SHOW_FLAG(f, TX_WAIT_NEXT_RQ);
|
||||||
SHOW_FLAG(f, TX_HDR_CONN_UPG);
|
SHOW_FLAG(f, TX_CON_WANT_TUN);
|
||||||
SHOW_FLAG(f, TX_CON_KAL_SET);
|
|
||||||
SHOW_FLAG(f, TX_CON_CLO_SET);
|
|
||||||
|
|
||||||
//printf("%s", f ? "" : " | ");
|
|
||||||
switch (f & TX_CON_WANT_MSK) {
|
|
||||||
case TX_CON_WANT_KAL: /*f &= ~TX_CON_WANT_MSK ; printf("TX_CON_WANT_KAL%s", f ? " | " : "");*/ break;
|
|
||||||
case TX_CON_WANT_TUN: f &= ~TX_CON_WANT_MSK ; printf("TX_CON_WANT_TUN%s", f ? " | " : ""); break;
|
|
||||||
case TX_CON_WANT_SCL: f &= ~TX_CON_WANT_MSK ; printf("TX_CON_WANT_SCL%s", f ? " | " : ""); break;
|
|
||||||
case TX_CON_WANT_CLO: f &= ~TX_CON_WANT_MSK ; printf("TX_CON_WANT_CLO%s", f ? " | " : ""); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
SHOW_FLAG(f, TX_CACHE_COOK);
|
SHOW_FLAG(f, TX_CACHE_COOK);
|
||||||
SHOW_FLAG(f, TX_CACHEABLE);
|
SHOW_FLAG(f, TX_CACHEABLE);
|
||||||
|
@ -70,37 +70,16 @@
|
|||||||
#define TX_CACHE_IGNORE 0x00004000 /* do not retrieve object from cache */
|
#define TX_CACHE_IGNORE 0x00004000 /* do not retrieve object from cache */
|
||||||
#define TX_CACHE_SHIFT 12 /* bit shift */
|
#define TX_CACHE_SHIFT 12 /* bit shift */
|
||||||
|
|
||||||
/* Unused: 0x8000 */
|
/* Unused: 0x00008000, 0x00010000, 0x00020000, 0x00080000 */
|
||||||
|
|
||||||
#define TX_WAIT_CLEANUP 0x0010000 /* this transaction is waiting for a clean up */
|
#define TX_CON_WANT_TUN 0x00100000 /* Will be a tunnel (CONNECT or 101-Switching-Protocol) */
|
||||||
|
|
||||||
/* Unused: 0x20000, 0x80000 */
|
/* unused: 0x00200000, 0x00400000, 0x00800000, 0x01000000, 0x02000000 */
|
||||||
|
|
||||||
|
|
||||||
/* indicate how we *want* the connection to behave, regardless of what is in
|
|
||||||
* the headers. We have 4 possible values right now :
|
|
||||||
* - WANT_KAL : try to maintain keep-alive (default when nothing configured)
|
|
||||||
* - WANT_TUN : will be a tunnel (CONNECT).
|
|
||||||
* - WANT_SCL : enforce close on the server side
|
|
||||||
* - WANT_CLO : enforce close on both sides
|
|
||||||
*/
|
|
||||||
#define TX_CON_WANT_KAL 0x00000000 /* note: it's important that it is 0 (init) */
|
|
||||||
#define TX_CON_WANT_TUN 0x00100000
|
|
||||||
#define TX_CON_WANT_SCL 0x00200000
|
|
||||||
#define TX_CON_WANT_CLO 0x00300000
|
|
||||||
#define TX_CON_WANT_MSK 0x00300000 /* this is the mask to get the bits */
|
|
||||||
|
|
||||||
#define TX_CON_CLO_SET 0x00400000 /* "connection: close" is now set */
|
|
||||||
#define TX_CON_KAL_SET 0x00800000 /* "connection: keep-alive" is now set */
|
|
||||||
|
|
||||||
/* unused: 0x01000000 */
|
|
||||||
|
|
||||||
#define TX_HDR_CONN_UPG 0x02000000 /* The "Upgrade" token was found in the "Connection" header */
|
|
||||||
#define TX_WAIT_NEXT_RQ 0x04000000 /* waiting for the second request to start, use keep-alive timeout */
|
#define TX_WAIT_NEXT_RQ 0x04000000 /* waiting for the second request to start, use keep-alive timeout */
|
||||||
|
|
||||||
#define TX_HDR_CONN_PRS 0x08000000 /* "connection" header already parsed (req or res), results below */
|
/* unused: 0x08000000, 0x10000000, 0x20000000 */
|
||||||
#define TX_HDR_CONN_CLO 0x10000000 /* "Connection: close" was present at least once */
|
|
||||||
#define TX_HDR_CONN_KAL 0x20000000 /* "Connection: keep-alive" was present at least once */
|
|
||||||
#define TX_USE_PX_CONN 0x40000000 /* Use "Proxy-Connection" instead of "Connection" */
|
#define TX_USE_PX_CONN 0x40000000 /* Use "Proxy-Connection" instead of "Connection" */
|
||||||
|
|
||||||
/* used only for keep-alive purposes, to indicate we're on a second transaction */
|
/* used only for keep-alive purposes, to indicate we're on a second transaction */
|
||||||
|
@ -400,9 +400,6 @@ int htx_wait_for_request(struct stream *s, struct channel *req, int an_bit)
|
|||||||
if (unlikely((s->logs.logwait & LW_REQHDR) && s->req_cap))
|
if (unlikely((s->logs.logwait & LW_REQHDR) && s->req_cap))
|
||||||
htx_capture_headers(htx, s->req_cap, sess->fe->req_cap);
|
htx_capture_headers(htx, s->req_cap, sess->fe->req_cap);
|
||||||
|
|
||||||
/* by default, close the stream at the end of the transaction. */
|
|
||||||
txn->flags = (txn->flags & ~TX_CON_WANT_MSK) | TX_CON_WANT_CLO;
|
|
||||||
|
|
||||||
/* we may have to wait for the request's body */
|
/* we may have to wait for the request's body */
|
||||||
if (s->be->options & PR_O_WREQ_BODY)
|
if (s->be->options & PR_O_WREQ_BODY)
|
||||||
req->analysers |= AN_REQ_HTTP_BODY;
|
req->analysers |= AN_REQ_HTTP_BODY;
|
||||||
@ -1242,7 +1239,7 @@ int htx_request_forward_body(struct stream *s, struct channel *req, int an_bit)
|
|||||||
done:
|
done:
|
||||||
/* other states, DONE...TUNNEL */
|
/* other states, DONE...TUNNEL */
|
||||||
/* we don't want to forward closes on DONE except in tunnel mode. */
|
/* we don't want to forward closes on DONE except in tunnel mode. */
|
||||||
if ((txn->flags & TX_CON_WANT_MSK) != TX_CON_WANT_TUN)
|
if (!(txn->flags & TX_CON_WANT_TUN))
|
||||||
channel_dont_close(req);
|
channel_dont_close(req);
|
||||||
|
|
||||||
if (HAS_REQ_DATA_FILTERS(s)) {
|
if (HAS_REQ_DATA_FILTERS(s)) {
|
||||||
@ -1275,8 +1272,7 @@ int htx_request_forward_body(struct stream *s, struct channel *req, int an_bit)
|
|||||||
* it can be abused to exhaust source ports. */
|
* it can be abused to exhaust source ports. */
|
||||||
if (s->be->options & PR_O_ABRT_CLOSE) {
|
if (s->be->options & PR_O_ABRT_CLOSE) {
|
||||||
channel_auto_read(req);
|
channel_auto_read(req);
|
||||||
if ((req->flags & (CF_SHUTR|CF_READ_NULL)) &&
|
if ((req->flags & (CF_SHUTR|CF_READ_NULL)) && !(txn->flags & TX_CON_WANT_TUN))
|
||||||
((txn->flags & TX_CON_WANT_MSK) != TX_CON_WANT_TUN))
|
|
||||||
s->si[1].flags |= SI_FL_NOLINGER;
|
s->si[1].flags |= SI_FL_NOLINGER;
|
||||||
channel_auto_close(req);
|
channel_auto_close(req);
|
||||||
}
|
}
|
||||||
@ -1751,7 +1747,7 @@ int htx_wait_for_response(struct stream *s, struct channel *rep, int an_bit)
|
|||||||
* header which contains information about that protocol for
|
* header which contains information about that protocol for
|
||||||
* responses with status 101 (eg: see RFC2817 about TLS).
|
* responses with status 101 (eg: see RFC2817 about TLS).
|
||||||
*/
|
*/
|
||||||
txn->flags = (txn->flags & ~TX_CON_WANT_MSK) | TX_CON_WANT_TUN;
|
txn->flags |= TX_CON_WANT_TUN;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* check for NTML authentication headers in 401 (WWW-Authenticate) and
|
/* check for NTML authentication headers in 401 (WWW-Authenticate) and
|
||||||
@ -5142,7 +5138,7 @@ static void htx_end_request(struct stream *s)
|
|||||||
* mode, we'll have to wait for the last bytes to leave in either
|
* mode, we'll have to wait for the last bytes to leave in either
|
||||||
* direction, and sometimes for a close to be effective.
|
* direction, and sometimes for a close to be effective.
|
||||||
*/
|
*/
|
||||||
if ((txn->flags & TX_CON_WANT_MSK) == TX_CON_WANT_TUN) {
|
if (txn->flags & TX_CON_WANT_TUN) {
|
||||||
/* Tunnel mode will not have any analyser so it needs to
|
/* Tunnel mode will not have any analyser so it needs to
|
||||||
* poll for reads.
|
* poll for reads.
|
||||||
*/
|
*/
|
||||||
@ -5262,7 +5258,7 @@ static void htx_end_response(struct stream *s)
|
|||||||
* mode, we'll have to wait for the last bytes to leave in either
|
* mode, we'll have to wait for the last bytes to leave in either
|
||||||
* direction, and sometimes for a close to be effective.
|
* direction, and sometimes for a close to be effective.
|
||||||
*/
|
*/
|
||||||
if ((txn->flags & TX_CON_WANT_MSK) == TX_CON_WANT_TUN) {
|
if (txn->flags & TX_CON_WANT_TUN) {
|
||||||
channel_auto_read(chn);
|
channel_auto_read(chn);
|
||||||
chn->flags |= CF_NEVER_WAIT;
|
chn->flags |= CF_NEVER_WAIT;
|
||||||
if (b_data(&chn->buf))
|
if (b_data(&chn->buf))
|
||||||
|
Loading…
Reference in New Issue
Block a user