From: Christopher Faulet Date: Mon, 26 Jul 2021 07:42:49 +0000 (+0200) Subject: BUG/MINOR: mux-h1: Obey dontlognull option for empty requests X-Git-Tag: v2.5-dev3~32 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=07e10deb36642666372469a71b1cc92602bde9db;p=thirdparty%2Fhaproxy.git BUG/MINOR: mux-h1: Obey dontlognull option for empty requests If a H1 connection is closed while no data are received, if the dontlognull option is set, no log message must be emitted. Because the H1 multiplexer handles early errors, it must take care to obey this option. It is true for 400-Bad-Request, 408-Request-Time-out and 501-Not-Implemented responses. 500-Internal-Server-Error responses are still logged. This patch should fix the issue #1336 for H1 sessions. It must be backported to 2.4. --- diff --git a/src/mux_h1.c b/src/mux_h1.c index 537f0f999c..bed2e03fab 100644 --- a/src/mux_h1.c +++ b/src/mux_h1.c @@ -2427,7 +2427,8 @@ static int h1_handle_bad_req(struct h1c *h1c) h1c->errcode = 400; ret = h1_send_error(h1c); - sess_log(sess); + if (b_data(&h1c->ibuf) || !(sess->fe->options & PR_O_NULLNOLOG)) + sess_log(sess); end: return ret; @@ -2454,7 +2455,8 @@ static int h1_handle_not_impl_err(struct h1c *h1c) h1c->errcode = 501; ret = h1_send_error(h1c); - sess_log(sess); + if (b_data(&h1c->ibuf) || !(sess->fe->options & PR_O_NULLNOLOG)) + sess_log(sess); end: return ret; @@ -2479,7 +2481,8 @@ static int h1_handle_req_tout(struct h1c *h1c) _HA_ATOMIC_INC(&sess->listener->counters->failed_req); h1c->errcode = 408; - ret = h1_send_error(h1c); + if (b_data(&h1c->ibuf) || !(sess->fe->options & PR_O_NULLNOLOG)) + ret = h1_send_error(h1c); sess_log(sess); end: return ret;