From 16ee7cf944aac2acf53baba31e71f4b44cb7bb58 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 10 Apr 2025 09:33:51 +0200 Subject: [PATCH] - Fix for print of connection type in log-replies for dot and doh. --- daemon/worker.c | 4 ++-- doc/Changelog | 3 +++ services/mesh.c | 2 +- util/data/msgreply.c | 8 ++++---- util/data/msgreply.h | 4 +++- 5 files changed, 13 insertions(+), 8 deletions(-) diff --git a/daemon/worker.c b/daemon/worker.c index 54ba2d76c..ead20938e 100644 --- a/daemon/worker.c +++ b/daemon/worker.c @@ -2055,13 +2055,13 @@ send_reply_rc: &repinfo->client_addr, repinfo->client_addrlen, tv, 1, c->buffer, (worker->env.cfg->log_destaddr?(void*)repinfo->c->socket->addr:NULL), - c->type); + c->type, c->ssl); } else { log_reply_info(NO_VERBOSE, &qinfo, &repinfo->client_addr, repinfo->client_addrlen, tv, 1, c->buffer, (worker->env.cfg->log_destaddr?(void*)repinfo->c->socket->addr:NULL), - c->type); + c->type, c->ssl); } } #ifdef USE_DNSCRYPT diff --git a/doc/Changelog b/doc/Changelog index 08f6c09f4..f8e2a7000 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,6 @@ +10 April 2025: Wouter + - Fix for print of connection type in log-replies for dot and doh. + 9 April 2025: Wouter - Fix to detect if atomic_store links in configure. - Fix #1264: unbound 1.22.0 leaks memory when doing DoH. diff --git a/services/mesh.c b/services/mesh.c index 1d19e7c7d..8a52fe4a6 100644 --- a/services/mesh.c +++ b/services/mesh.c @@ -1579,7 +1579,7 @@ mesh_send_reply(struct mesh_state* m, int rcode, struct reply_info* rep, &r->query_reply.client_addr, r->query_reply.client_addrlen, duration, 0, r_buffer, (m->s.env->cfg->log_destaddr?(void*)r->query_reply.c->socket->addr:NULL), - r->query_reply.c->type); + r->query_reply.c->type, r->query_reply.c->ssl); } } diff --git a/util/data/msgreply.c b/util/data/msgreply.c index 530eee701..e98dce133 100644 --- a/util/data/msgreply.c +++ b/util/data/msgreply.c @@ -965,7 +965,7 @@ void log_reply_info(enum verbosity_value v, struct query_info *qinf, struct sockaddr_storage *addr, socklen_t addrlen, struct timeval dur, int cached, struct sldns_buffer *rmsg, struct sockaddr_storage* daddr, - enum comm_point_type tp) + enum comm_point_type tp, void* ssl) { char clientip_buf[128]; char rcode_buf[16]; @@ -1000,9 +1000,9 @@ log_reply_info(enum verbosity_value v, struct query_info *qinf, (int)daddr->ss_family); } comm = "udp"; - if(tp == comm_tcp) comm = "tcp"; - else if(tp == comm_tcp_accept) comm = "tcp"; - else if(tp == comm_http) comm = "dot"; + if(tp == comm_tcp) comm = (ssl?"dot":"tcp"); + else if(tp == comm_tcp_accept) comm = (ssl?"dot":"tcp"); + else if(tp == comm_http) comm = "doh"; else if(tp == comm_local) comm = "unix"; else if(tp == comm_raw) comm = "raw"; snprintf(dest_buf, sizeof(dest_buf), " on %s %s %d", diff --git a/util/data/msgreply.h b/util/data/msgreply.h index d1c2bfa4b..9c701f07d 100644 --- a/util/data/msgreply.h +++ b/util/data/msgreply.h @@ -554,11 +554,13 @@ void log_dns_msg(const char* str, struct query_info* qinfo, * @param rmsg: sldns buffer packet. * @param daddr: if not NULL, the destination address and port are logged. * @param tp: type of the comm point for logging destination connection type. + * @param ssl: the SSL pointer of the connection, to see if the connection + * type is tcp or dot. */ void log_reply_info(enum verbosity_value v, struct query_info *qinf, struct sockaddr_storage *addr, socklen_t addrlen, struct timeval dur, int cached, struct sldns_buffer *rmsg, struct sockaddr_storage* daddr, - enum comm_point_type tp); + enum comm_point_type tp, void* ssl); /** * Print string with neat domain name, type, class from query info. -- 2.47.3