|
|
|
|
@ -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 { |
|
|
|
|
|