mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-11-28 14:21:00 +01:00
MINOR: htx: Add BODYLESS flags on the HTX start-line and the HTTP message
the flags HTX_SL_F_BODYLESS and HTTP_MSGF_BODYLESS have been added. These flags are set when the corresponding HTTP message has no body at all.
This commit is contained in:
parent
0359911935
commit
b2db4fa016
@ -81,6 +81,7 @@
|
||||
#define HTX_SL_F_CLEN 0x00000008 /* The content-length header was found in message */
|
||||
#define HTX_SL_F_CHNK 0x00000010 /* The message payload is chunked */
|
||||
#define HTX_SL_F_VER_11 0x00000020 /* The message indicates version 1.1 or above */
|
||||
#define HTX_SL_F_BODYLESS 0x00000040 /* The message has no body (content-length = 0) */
|
||||
|
||||
/* HTX flags */
|
||||
#define HTX_FL_NONE 0x00000000
|
||||
|
||||
@ -148,6 +148,8 @@
|
||||
#define HTTP_MSGF_WAIT_CONN 0x00000010 /* Wait for connect() to be confirmed before processing body */
|
||||
#define HTTP_MSGF_COMPRESSING 0x00000020 /* data compression is in progress */
|
||||
|
||||
#define HTTP_MSGF_BODYLESS 0x00000040 /* The message has no body (content-length = 0) */
|
||||
|
||||
|
||||
/* Redirect flags */
|
||||
enum {
|
||||
|
||||
@ -848,6 +848,8 @@ static size_t h1_process_headers(struct h1s *h1s, struct h1m *h1m, struct htx *h
|
||||
flags |= HTX_SL_F_CHNK;
|
||||
else if (h1m->flags & H1_MF_CLEN)
|
||||
flags |= HTX_SL_F_CLEN;
|
||||
if (h1m->state == H1_MSG_DONE)
|
||||
flags |= HTX_SL_F_BODYLESS;
|
||||
}
|
||||
|
||||
if (!(h1m->flags & H1_MF_RESP)) {
|
||||
|
||||
@ -307,6 +307,8 @@ int htx_wait_for_request(struct stream *s, struct channel *req, int an_bit)
|
||||
msg->flags |= HTTP_MSGF_VER_11;
|
||||
msg->flags |= HTTP_MSGF_XFER_LEN;
|
||||
msg->flags |= ((sl->flags & HTX_SL_F_CHNK) ? HTTP_MSGF_TE_CHNK : HTTP_MSGF_CNT_LEN);
|
||||
if (sl->flags & HTX_SL_F_BODYLESS)
|
||||
msg->flags |= HTTP_MSGF_BODYLESS;
|
||||
|
||||
/* we can make use of server redirect on GET and HEAD */
|
||||
if (txn->meth == HTTP_METH_GET || txn->meth == HTTP_METH_HEAD)
|
||||
@ -1610,6 +1612,8 @@ int htx_wait_for_response(struct stream *s, struct channel *rep, int an_bit)
|
||||
if (sl->flags & HTX_SL_F_XFER_LEN) {
|
||||
msg->flags |= HTTP_MSGF_XFER_LEN;
|
||||
msg->flags |= ((sl->flags & HTX_SL_F_CHNK) ? HTTP_MSGF_TE_CHNK : HTTP_MSGF_CNT_LEN);
|
||||
if (sl->flags & HTX_SL_F_BODYLESS)
|
||||
msg->flags |= HTTP_MSGF_BODYLESS;
|
||||
}
|
||||
|
||||
n = txn->status / 100;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user