From: Grigorii Demidov Date: Fri, 13 Apr 2018 15:42:55 +0000 (+0200) Subject: daemon/worker: separate counter for TLS sendings X-Git-Tag: v2.3.0~5^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b6b83db94da971a7f2ea98fa37fcfbbcfcc2c4db;p=thirdparty%2Fknot-resolver.git daemon/worker: separate counter for TLS sendings --- diff --git a/daemon/bindings.c b/daemon/bindings.c index e3dd72584..bcb9daa21 100644 --- a/daemon/bindings.c +++ b/daemon/bindings.c @@ -1598,6 +1598,8 @@ static int wrk_stats(lua_State *L) lua_setfield(L, -2, "udp"); lua_pushnumber(L, worker->stats.tcp); lua_setfield(L, -2, "tcp"); + lua_pushnumber(L, worker->stats.tls); + lua_setfield(L, -2, "tls"); lua_pushnumber(L, worker->stats.ipv6); lua_setfield(L, -2, "ipv6"); lua_pushnumber(L, worker->stats.ipv4); diff --git a/daemon/worker.c b/daemon/worker.c index f91b95cf7..6edd39baf 100644 --- a/daemon/worker.c +++ b/daemon/worker.c @@ -946,6 +946,16 @@ ssize_t worker_gnutls_push(gnutls_transport_ptr_t h, const void *buf, size_t len if (res == 0) { if (task) { qr_task_ref(task); /* Pending ioreq on current task */ + struct request_ctx *ctx = task->ctx; + if (ctx && ctx->source.session && + t->session->handle != ctx->source.session->handle) { + struct sockaddr *addr = &t->session->peer.ip; + worker->stats.tls += 1; + if (addr->sa_family == AF_INET6) + worker->stats.ipv6 += 1; + else if (addr->sa_family == AF_INET) + worker->stats.ipv4 += 1; + } } if (worker->too_many_open && worker->stats.rconcurrent < @@ -953,12 +963,6 @@ ssize_t worker_gnutls_push(gnutls_transport_ptr_t h, const void *buf, size_t len worker->too_many_open = false; } ret = len; - struct sockaddr *addr = &t->session->peer.ip; - worker->stats.tcp += 1; - if (addr->sa_family == AF_INET6) - worker->stats.ipv6 += 1; - else if (addr->sa_family == AF_INET) - worker->stats.ipv4 += 1; } else { VERBOSE_MSG(NULL,"[%s] uv_write: %s\n", t->client_side ? "tls_client" : "tls", uv_strerror(res)); diff --git a/daemon/worker.h b/daemon/worker.h index ec3e0f885..c65528b1d 100644 --- a/daemon/worker.h +++ b/daemon/worker.h @@ -138,6 +138,7 @@ struct worker_ctx { size_t rconcurrent; size_t udp; size_t tcp; + size_t tls; size_t ipv4; size_t ipv6; size_t queries;