mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-01-19 20:20:45 +00:00
MINOR: h1: Add the flag H1_MF_NO_PHDR to not add pseudo-headers during parsing
Some pseudo-headers are added during the headers parsing, mainly for the mux H2. With this flag, it is possible to not add them. This avoid some boring filtering in the mux H1.
This commit is contained in:
parent
1dc2b49556
commit
25da9e34f1
@ -147,6 +147,7 @@ enum h1m_state {
|
||||
#define H1_MF_CONN_UPG 0x00000080 // message contains "connection: upgrade"
|
||||
#define H1_MF_XFER_LEN 0x00000100 // message xfer size can be determined
|
||||
#define H1_MF_XFER_ENC 0x00000200 // transfer-encoding is present
|
||||
#define H1_MF_NO_PHDR 0x00000400 // don't add pseudo-headers in the header list
|
||||
|
||||
/* Note: for a connection to be persistent, we need this for the request :
|
||||
* - one of CLEN or CHNK
|
||||
|
9
src/h1.c
9
src/h1.c
@ -1053,13 +1053,15 @@ int h1_headers_to_hdr_list(char *start, const char *stop,
|
||||
state = H1_MSG_RQVER;
|
||||
goto http_output_full;
|
||||
}
|
||||
http_set_hdr(&hdr[hdr_count++], ist(":method"), sl.rq.m);
|
||||
if (!(h1m->flags & H1_MF_NO_PHDR))
|
||||
http_set_hdr(&hdr[hdr_count++], ist(":method"), sl.rq.m);
|
||||
|
||||
if (unlikely(hdr_count >= hdr_num)) {
|
||||
state = H1_MSG_RQVER;
|
||||
goto http_output_full;
|
||||
}
|
||||
http_set_hdr(&hdr[hdr_count++], ist(":path"), sl.rq.u);
|
||||
if (!(h1m->flags & H1_MF_NO_PHDR))
|
||||
http_set_hdr(&hdr[hdr_count++], ist(":path"), sl.rq.u);
|
||||
}
|
||||
|
||||
sol = ptr - start;
|
||||
@ -1210,7 +1212,8 @@ int h1_headers_to_hdr_list(char *start, const char *stop,
|
||||
state = H1_MSG_RPREASON;
|
||||
goto http_output_full;
|
||||
}
|
||||
http_set_hdr(&hdr[hdr_count++], ist(":status"), sl.st.c);
|
||||
if (!(h1m->flags & H1_MF_NO_PHDR))
|
||||
http_set_hdr(&hdr[hdr_count++], ist(":status"), sl.st.c);
|
||||
}
|
||||
|
||||
sol = ptr - start;
|
||||
|
Loading…
Reference in New Issue
Block a user