diff --git a/core/utils.c b/core/utils.c index 2388a7ce..b7add434 100644 --- a/core/utils.c +++ b/core/utils.c @@ -622,12 +622,14 @@ void uwsgi_close_request(struct wsgi_request *wsgi_req) { free(wsgi_req->proto_parser_buf); } - uwsgi.workers[0].requests++; - uwsgi.workers[uwsgi.mywid].requests++; - uwsgi.workers[uwsgi.mywid].cores[wsgi_req->async_id].requests++; - uwsgi.workers[uwsgi.mywid].cores[wsgi_req->async_id].write_errors += wsgi_req->write_errors; - // this is used for MAX_REQUESTS - uwsgi.workers[uwsgi.mywid].delta_requests++; + if (!wsgi_req->do_not_account) { + uwsgi.workers[0].requests++; + uwsgi.workers[uwsgi.mywid].requests++; + uwsgi.workers[uwsgi.mywid].cores[wsgi_req->async_id].requests++; + uwsgi.workers[uwsgi.mywid].cores[wsgi_req->async_id].write_errors += wsgi_req->write_errors; + // this is used for MAX_REQUESTS + uwsgi.workers[uwsgi.mywid].delta_requests++; + } // after_request hook if (uwsgi.p[wsgi_req->uh->modifier1]->after_request) diff --git a/plugins/ping/ping_plugin.c b/plugins/ping/ping_plugin.c index 9f7ae4c7..384fa972 100644 --- a/plugins/ping/ping_plugin.c +++ b/plugins/ping/ping_plugin.c @@ -71,6 +71,7 @@ int uwsgi_request_ping(struct wsgi_request *wsgi_req) { uwsgi_log( "PING\n"); wsgi_req->uh->modifier2 = 1; wsgi_req->uh->pktsize = 0; + wsgi_req->do_not_account = 1; len = strlen(uwsgi.shared->warning_message); if (len > 0) { diff --git a/uwsgi.h b/uwsgi.h index 21511b5d..2bfc8dd2 100644 --- a/uwsgi.h +++ b/uwsgi.h @@ -1266,6 +1266,8 @@ struct uwsgi_router { int do_not_add_to_async_queue; + int do_not_account; + int status; struct uwsgi_buffer *headers;