From 697aee03518bd0e53141b7a6d1ebe4c97b61399d Mon Sep 17 00:00:00 2001 From: Evgeny Date: Fri, 24 Apr 2026 01:23:39 +0300 Subject: [PATCH] Socket info: show config and netif IP in log, monitor shows interface IP --- src/control_server.c | 10 +++++----- src/etcp_connections.c | 15 ++++++++++----- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/src/control_server.c b/src/control_server.c index d046b001..0ab0acf3 100644 --- a/src/control_server.c +++ b/src/control_server.c @@ -829,13 +829,13 @@ static void send_socket_list(struct control_server* server, struct control_clien for (uint8_t i = 0; i < count && sock; i++) { strncpy(info[i].name, sock->name, ETCPMON_MAX_CONN_NAME - 1); info[i].name[ETCPMON_MAX_CONN_NAME - 1] = '\0'; - info[i].is_ipv6 = (sock->local_addr.ss_family == AF_INET6) ? 1 : 0; - if (sock->local_addr.ss_family == AF_INET) { - struct sockaddr_in* sin = (struct sockaddr_in*)&sock->local_addr; + info[i].is_ipv6 = (sock->interface_addr.ss_family == AF_INET6) ? 1 : 0; + if (sock->interface_addr.ss_family == AF_INET) { + struct sockaddr_in* sin = (struct sockaddr_in*)&sock->interface_addr; inet_ntop(AF_INET, &sin->sin_addr, info[i].ip, sizeof(info[i].ip)); info[i].port = ntohs(sin->sin_port); - } else if (sock->local_addr.ss_family == AF_INET6) { - struct sockaddr_in6* sin6 = (struct sockaddr_in6*)&sock->local_addr; + } else if (sock->interface_addr.ss_family == AF_INET6) { + struct sockaddr_in6* sin6 = (struct sockaddr_in6*)&sock->interface_addr; inet_ntop(AF_INET6, &sin6->sin6_addr, info[i].ip, sizeof(info[i].ip)); info[i].port = ntohs(sin6->sin6_port); } else { diff --git a/src/etcp_connections.c b/src/etcp_connections.c index d769e6d2..38395b39 100644 --- a/src/etcp_connections.c +++ b/src/etcp_connections.c @@ -590,12 +590,17 @@ struct ETCP_SOCKET* etcp_socket_add(struct UTUN_INSTANCE* instance, struct CFG_S sin_if->sin_port = sin_cfg->sin_port; } } - { - struct sockaddr_in* isin = (struct sockaddr_in*)&e_sock->interface_addr; - if (isin->sin_addr.s_addr != 0) { - DEBUG_INFO(DEBUG_CATEGORY_ETCP, "[ETCP] interface_addr for %s: %s:%d", e_sock->name, ip_to_str(&isin->sin_addr, AF_INET).str, ntohs(isin->sin_port)); - } + + char config_str[64] = "none"; + char netif_str[64] = "none"; + if (e_sock->local_addr.ss_family != 0) { + snprintf(config_str, sizeof(config_str), "%s", sockaddr_storage_to_str(&e_sock->local_addr).str); } + if (e_sock->interface_addr.ss_family != 0) { + snprintf(netif_str, sizeof(netif_str), "%s", sockaddr_storage_to_str(&e_sock->interface_addr).str); + } + DEBUG_INFO(DEBUG_CATEGORY_GENERAL, "Listen socket initialized: name=%s fd=%d config=%s, netif=%s", e_sock->name, e_sock->fd, config_str, netif_str); + e_sock->instance = instance; e_sock->errorcode = 0; e_sock->pkt_format_errors = 0;