diff --git a/src/transport_layer/etcp_connections.c b/src/transport_layer/etcp_connections.c index 4f3286f5..b6464fa8 100644 --- a/src/transport_layer/etcp_connections.c +++ b/src/transport_layer/etcp_connections.c @@ -29,6 +29,16 @@ #include "../lib/mem.h" #include "etcp.h" +static const char* server_type_str(uint8_t type) { + static const char* names[] = {"UNKNOWN", "PUBLIC", "NAT", "PRIVATE", "LOCAL"}; + return type < 5 ? names[type] : "?"; +} +static const char* nat_type_str(uint8_t nat_type) { + if (nat_type >= 4 && nat_type <= 7) nat_type -= 4; + static const char* names[] = {"UNKNOWN", "EIM", "STRICT", "DIRECT"}; + return nat_type < 4 ? names[nat_type] : "?"; +} + // TCP server: on new incoming connection → create minimal ETCP_CONN static void tcp_server_on_link(struct stcp_link *link, void *arg) { struct UTUN_INSTANCE *inst = (struct UTUN_INSTANCE *)arg; @@ -723,7 +733,7 @@ struct ETCP_SOCKET* etcp_socket_add(struct UTUN_INSTANCE* instance, struct CFG_S u_free(e_sock); return NULL; } - DEBUG_INFO(DEBUG_CATEGORY_SOCKET, "Add Socket type=%d", type); + DEBUG_INFO(DEBUG_CATEGORY_SOCKET, "Add Socket type=%s", server_type_str(type)); e_sock->next = instance->etcp_sockets; instance->etcp_sockets = e_sock; e_sock->socket_id = uasync_add_socket_t(instance->ua, e_sock->fd, etcp_connections_read_callback_socket, NULL, NULL, e_sock); @@ -1432,8 +1442,8 @@ static void send_init_response(struct ETCP_SOCKET* e_sock, struct ETCP_DGRAM* pk } } /* Self-detection: if my IP is non-local, I'm on a public IP */ - DEBUG_INFO(DEBUG_CATEGORY_NAT, "self-detect check: socket=%s type=%d nat_type=%d if_addr=%s local_addr=%s", - e_sock->name, e_sock->type, e_sock->nat_type, + DEBUG_INFO(DEBUG_CATEGORY_NAT, "self-detect check: socket=%s type=%s nat=%s if_addr=%s local_addr=%s", + e_sock->name, server_type_str(e_sock->type), nat_type_str(e_sock->nat_type), sockaddr_storage_to_str(&e_sock->interface_addr).str, sockaddr_storage_to_str(&e_sock->local_addr).str); if (e_sock->nat_type != NAT_VERIFIED_DIRECT && e_sock->interface_addr.ss_family == AF_INET) {