From: Willy Tarreau Date: Sat, 16 Nov 2013 09:13:35 +0000 (+0100) Subject: CLEANUP: http: homogenize processing of denied req counter X-Git-Tag: v1.5-dev20~240 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=687ba13e92b7fa2420ef7d09ed437848dccbf5c4;p=thirdparty%2Fhaproxy.git CLEANUP: http: homogenize processing of denied req counter The reqdeny/reqideny and reqtarpit/reqitarpit rules used to maintain the stats counters themselves while http-request deny/tarpit and rspdeny/rspideny used to centralize them at the point where the error is processed. Thus, let's do the same for reqdeny/reqtarpit so that the functions which iterate over the rules do not have to deal with these counters anymore. --- diff --git a/src/proto_http.c b/src/proto_http.c index ce41362d15..9d137ce520 100644 --- a/src/proto_http.c +++ b/src/proto_http.c @@ -3695,6 +3695,11 @@ int http_process_req_common(struct session *s, struct channel *req, int an_bit, s->logs.tv_request = now; stream_int_retnclose(req->prod, http_error_message(s, HTTP_ERR_403)); session_inc_http_err_ctr(s); + s->fe->fe_counters.denied_req++; + if (s->fe != s->be) + s->be->be_counters.denied_req++; + if (s->listener->counters) + s->listener->counters->denied_req++; goto return_prx_cond; } @@ -3715,6 +3720,11 @@ int http_process_req_common(struct session *s, struct channel *req, int an_bit, if (!req->analyse_exp) req->analyse_exp = tick_add(now_ms, 0); session_inc_http_err_ctr(s); + s->fe->fe_counters.denied_req++; + if (s->fe != s->be) + s->be->be_counters.denied_req++; + if (s->listener->counters) + s->listener->counters->denied_req++; return 1; } } @@ -6360,25 +6370,11 @@ int apply_filter_to_req_headers(struct session *t, struct channel *req, struct h case ACT_DENY: txn->flags |= TX_CLDENY; last_hdr = 1; - - t->fe->fe_counters.denied_req++; - if (t->fe != t->be) - t->be->be_counters.denied_req++; - if (t->listener->counters) - t->listener->counters->denied_req++; - break; case ACT_TARPIT: txn->flags |= TX_CLTARPIT; last_hdr = 1; - - t->fe->fe_counters.denied_req++; - if (t->fe != t->be) - t->be->be_counters.denied_req++; - if (t->listener->counters) - t->listener->counters->denied_req++; - break; case ACT_REPLACE: @@ -6482,25 +6478,11 @@ int apply_filter_to_req_line(struct session *t, struct channel *req, struct hdr_ case ACT_DENY: txn->flags |= TX_CLDENY; - - t->fe->fe_counters.denied_req++; - if (t->fe != t->be) - t->be->be_counters.denied_req++; - if (t->listener->counters) - t->listener->counters->denied_req++; - done = 1; break; case ACT_TARPIT: txn->flags |= TX_CLTARPIT; - - t->fe->fe_counters.denied_req++; - if (t->fe != t->be) - t->be->be_counters.denied_req++; - if (t->listener->counters) - t->listener->counters->denied_req++; - done = 1; break;