aboutsummaryrefslogtreecommitdiffstats
path: root/src/client/rspamdclient.c
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2017-04-01 12:05:25 +0100
committerVsevolod Stakhov <vsevolod@highsecure.ru>2017-04-01 12:05:25 +0100
commit34900140350c11df3e938184a03026395316f54e (patch)
tree899eaff2690ca7b1b3a403c9b2edbf99585c3cb5 /src/client/rspamdclient.c
parent5a19519ed2ad4efcc2bd5b6e5e703dccc6b7f9fa (diff)
downloadrspamd-34900140350c11df3e938184a03026395316f54e.tar.gz
rspamd-34900140350c11df3e938184a03026395316f54e.zip
[Fix] Do not count sending and loading time in rspamc
Diffstat (limited to 'src/client/rspamdclient.c')
-rw-r--r--src/client/rspamdclient.c24
1 files changed, 17 insertions, 7 deletions
diff --git a/src/client/rspamdclient.c b/src/client/rspamdclient.c
index 4691ce5ec..6ccdce5f5 100644
--- a/src/client/rspamdclient.c
+++ b/src/client/rspamdclient.c
@@ -41,6 +41,8 @@ struct rspamd_client_connection {
struct timeval timeout;
struct rspamd_http_connection *http_conn;
gboolean req_sent;
+ gdouble start_time;
+ gdouble send_time;
struct rspamd_client_request *req;
struct rspamd_keypair_cache *keys_cache;
};
@@ -92,7 +94,9 @@ rspamd_client_error_handler (struct rspamd_http_connection *conn, GError *err)
struct rspamd_client_connection *c;
c = req->conn;
- req->cb (c, NULL, c->server_name->str, NULL, req->input, req->ud, err);
+ req->cb (c, NULL, c->server_name->str, NULL,
+ req->input, req->ud,
+ c->start_time, c->send_time, err);
}
static gint
@@ -110,6 +114,7 @@ rspamd_client_finish_handler (struct rspamd_http_connection *conn,
if (!c->req_sent) {
c->req_sent = TRUE;
+ c->send_time = rspamd_get_ticks ();
rspamd_http_connection_reset (c->http_conn);
rspamd_http_connection_read_message (c->http_conn,
c->req,
@@ -123,7 +128,8 @@ rspamd_client_finish_handler (struct rspamd_http_connection *conn,
err = g_error_new (RCLIENT_ERROR, msg->code, "HTTP error: %d, %.*s",
msg->code,
(gint)msg->status->len, msg->status->str);
- req->cb (c, msg, c->server_name->str, NULL, req->input, req->ud, err);
+ req->cb (c, msg, c->server_name->str, NULL, req->input, req->ud,
+ c->start_time, c->send_time, err);
g_error_free (err);
return 0;
@@ -169,7 +175,8 @@ rspamd_client_finish_handler (struct rspamd_http_connection *conn,
"Decompression error: %s",
ZSTD_getErrorName (r));
req->cb (c, msg, c->server_name->str, NULL,
- req->input, req->ud, err);
+ req->input, req->ud, c->start_time,
+ c->send_time, err);
g_error_free (err);
ZSTD_freeDStream (zstream);
g_free (out);
@@ -191,7 +198,8 @@ rspamd_client_finish_handler (struct rspamd_http_connection *conn,
err = g_error_new (RCLIENT_ERROR, msg->code, "Cannot parse UCL: %s",
ucl_parser_get_error (parser));
ucl_parser_free (parser);
- req->cb (c, msg, c->server_name->str, NULL, req->input, req->ud, err);
+ req->cb (c, msg, c->server_name->str, NULL, req->input,
+ req->ud, c->start_time, c->send_time, err);
g_error_free (err);
g_free (zout.dst);
@@ -204,7 +212,7 @@ rspamd_client_finish_handler (struct rspamd_http_connection *conn,
err = g_error_new (RCLIENT_ERROR, 500,
"Invalid compression method");
req->cb (c, msg, c->server_name->str, NULL,
- req->input, req->ud, err);
+ req->input, req->ud, c->start_time, c->send_time, err);
g_error_free (err);
return 0;
@@ -216,7 +224,8 @@ rspamd_client_finish_handler (struct rspamd_http_connection *conn,
err = g_error_new (RCLIENT_ERROR, msg->code, "Cannot parse UCL: %s",
ucl_parser_get_error (parser));
ucl_parser_free (parser);
- req->cb (c, msg, c->server_name->str, NULL, req->input, req->ud, err);
+ req->cb (c, msg, c->server_name->str, NULL,
+ req->input, req->ud, c->start_time, c->send_time, err);
g_error_free (err);
return 0;
@@ -224,7 +233,7 @@ rspamd_client_finish_handler (struct rspamd_http_connection *conn,
}
req->cb (c, msg, c->server_name->str, ucl_parser_get_object (
- parser), req->input, req->ud, NULL);
+ parser), req->input, req->ud, c->start_time, c->send_time, NULL);
ucl_parser_free (parser);
}
@@ -425,6 +434,7 @@ rspamd_client_command (struct rspamd_client_connection *conn,
req->msg->url = rspamd_fstring_append (req->msg->url, command, strlen (command));
conn->req = req;
+ conn->start_time = rspamd_get_ticks ();
if (compressed) {
rspamd_http_connection_write_message (conn->http_conn, req->msg, NULL,