MINOR: h1: properly pre-initialize err_pos to -2

This way we maintain the old mechanism stating that -2 means we block
on errors, -1 means we only capture them, and a positive value indicates
the position of the first error.
This commit is contained in:
Willy Tarreau 2018-09-12 09:08:54 +02:00
parent 25173a7bcc
commit bbf3823f82
2 changed files with 8 additions and 3 deletions

View File

@ -309,7 +309,7 @@ static inline struct h1m *h1m_init_req(struct h1m *h1m)
h1m->flags = H1_MF_NONE;
h1m->curr_len = 0;
h1m->body_len = 0;
h1m->err_pos = 0;
h1m->err_pos = -2;
h1m->err_state = 0;
return h1m;
}
@ -323,7 +323,7 @@ static inline struct h1m *h1m_init_res(struct h1m *h1m)
h1m->flags = H1_MF_RESP;
h1m->curr_len = 0;
h1m->body_len = 0;
h1m->err_pos = 0;
h1m->err_pos = -2;
h1m->err_state = 0;
return h1m;
}

View File

@ -143,7 +143,12 @@ enum h1m_state {
#define H1_MF_RESP 0x00000004 // this message is the response message
/* basic HTTP/1 message state for use in parsers */
/* basic HTTP/1 message state for use in parsers. The err_pos field is special,
* it is pre-set to a negative value (-1 or -2), and once non-negative it contains
* the relative position in the message of the first parse error. -2 is used to tell
* the parser that we want to block the invalid message. -1 is used to only perform
* a silent capture.
*/
struct h1m {
enum h1m_state state; // H1 message state (H1_MSG_*)
/* 8 bits available here */