Skip to content
Snippets Groups Projects
Commit f1d86049 authored by Jan Hák's avatar Jan Hák Committed by Daniel Salzman
Browse files

tcp-handler: don't print broken address

parent 873e0d97
No related branches found
No related tags found
No related merge requests found
......@@ -38,6 +38,7 @@
#include "contrib/macros.h"
#include "contrib/mempattern.h"
#include "contrib/net.h"
#include "contrib/openbsd/strlcpy.h"
#include "contrib/sockaddr.h"
#include "contrib/time.h"
#include "contrib/ucw/mempool.h"
......@@ -75,6 +76,15 @@ static void update_tcp_conf(tcp_context_t *tcp)
rcu_read_unlock();
}
static void client_addr(const struct sockaddr_storage *ss, char *out, size_t out_len)
{
if (ss->ss_family == AF_UNIX) {
strlcpy(out, "UNIX", out_len);
} else if (sockaddr_tostr(out, out_len, ss) < 0) {
strlcpy(out, "unknown", out_len);
}
}
/*! \brief Sweep TCP connection. */
static fdset_sweep_state_t tcp_sweep(fdset_t *set, int fd, void *data)
{
......@@ -84,9 +94,9 @@ static fdset_sweep_state_t tcp_sweep(fdset_t *set, int fd, void *data)
/* Best-effort, name and shame. */
struct sockaddr_storage ss;
socklen_t len = sizeof(struct sockaddr_storage);
if (getpeername(fd, (struct sockaddr*)&ss, &len) == 0) {
char addr_str[SOCKADDR_STRLEN] = {0};
sockaddr_tostr(addr_str, sizeof(addr_str), &ss);
if (getpeername(fd, (struct sockaddr *)&ss, &len) == 0) {
char addr_str[SOCKADDR_STRLEN];
client_addr(&ss, addr_str, sizeof(addr_str));
log_notice("TCP, terminated inactive client, address %s", addr_str);
}
......@@ -107,8 +117,8 @@ static void tcp_log_error(struct sockaddr_storage *ss, const char *operation, in
{
/* Don't log ECONN as it usually means client closed the connection. */
if (ret == KNOT_ETIMEOUT) {
char addr_str[SOCKADDR_STRLEN] = { 0 };
sockaddr_tostr(addr_str, sizeof(addr_str), ss);
char addr_str[SOCKADDR_STRLEN];
client_addr(ss, addr_str, sizeof(addr_str));
log_debug("TCP, %s, address %s (%s)", operation, addr_str,
knot_strerror(ret));
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment