From: Timo Sirainen Date: Mon, 10 Apr 2017 09:59:08 +0000 (+0300) Subject: lib-http: Add http_client_request_stats.first_sent_msecs X-Git-Tag: 2.2.29~13 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8465d8e426ac501dd0c9c0be9cab2175f4e58cd4;p=thirdparty%2Fdovecot%2Fcore.git lib-http: Add http_client_request_stats.first_sent_msecs Also rename sent_msecs to last_sent_msecs. --- diff --git a/src/lib-http/http-client-request.c b/src/lib-http/http-client-request.c index 99a0d5619c..9e927637f1 100644 --- a/src/lib-http/http-client-request.c +++ b/src/lib-http/http-client-request.c @@ -597,10 +597,16 @@ void http_client_request_get_stats(struct http_client_request *req, diff_msecs = timeval_diff_msecs(&ioloop_timeval, &req->submit_time); stats_r->total_msecs = (unsigned int)I_MAX(diff_msecs, 0); + /* elapsed time since message was first sent */ + if (req->first_sent_time.tv_sec > 0) { + diff_msecs = timeval_diff_msecs(&ioloop_timeval, &req->first_sent_time); + stats_r->first_sent_msecs = (unsigned int)I_MAX(diff_msecs, 0); + } + /* elapsed time since message was last sent */ if (req->sent_time.tv_sec > 0) { diff_msecs = timeval_diff_msecs(&ioloop_timeval, &req->sent_time); - stats_r->sent_msecs = (unsigned int)I_MAX(diff_msecs, 0); + stats_r->last_sent_msecs = (unsigned int)I_MAX(diff_msecs, 0); } if (req->conn != NULL) { @@ -644,9 +650,9 @@ void http_client_request_append_stats_text(struct http_client_request *req, http_client_request_get_stats(req, &stats); - if (stats.sent_msecs > 0) { + if (stats.last_sent_msecs > 0) { str_printfa(str, "sent %u.%03u secs ago", - stats.sent_msecs/1000, stats.sent_msecs%1000); + stats.last_sent_msecs/1000, stats.last_sent_msecs%1000); } else { str_append(str, "not yet sent"); } diff --git a/src/lib-http/http-client.h b/src/lib-http/http-client.h index 0a04b3441c..8b46831fa8 100644 --- a/src/lib-http/http-client.h +++ b/src/lib-http/http-client.h @@ -186,8 +186,10 @@ struct http_client_tunnel { struct http_client_request_stats { /* Total elapsed time since message was submitted */ unsigned int total_msecs; + /* Elapsed time since message was first sent */ + unsigned int first_sent_msecs; /* Elapsed time since message was last sent */ - unsigned int sent_msecs; + unsigned int last_sent_msecs; /* Time spent in other ioloops */ unsigned int other_ioloop_msecs;