Browse Source

Expose ETCP and STUN profile provenance in monitor protocol

master
evgeny 4 days ago
parent
commit
76d2e58f19
  1. 3
      tools/etcpmon/etcpmon_gui.c
  2. 4
      tools/etcpmon/etcpmon_protocol.h

3
tools/etcpmon/etcpmon_gui.c

@ -1602,9 +1602,10 @@ void etcpmon_gui_update_socket_list(struct etcpmon_app* app,
if (list[i].name[0] == '\0') continue;
char display[256];
snprintf(display, sizeof(display), "%s%s%s:%u | %s policy=%s | mapping=%s inbound=%s | external=%s:%u",
snprintf(display, sizeof(display), "%s%s%s:%u | %s policy=%s | %s mapping=%s inbound=%s | external=%s:%u",
list[i].is_ipv6 ? "[" : "", list[i].ip, list[i].is_ipv6 ? "]" : "", list[i].port,
list[i].is_tcp ? "TCP" : "UDP", config_type_to_string(list[i].config_type),
address_profile_source_name(list[i].source),
address_mapping_name(list[i].mapping), address_inbound_name(list[i].inbound),
list[i].nat_ip[0] ? list[i].nat_ip : "unknown", list[i].nat_port);
SendMessageA(app->hListSockets, LB_ADDSTRING, 0, (LPARAM)display);

4
tools/etcpmon/etcpmon_protocol.h

@ -22,7 +22,7 @@ extern "C" {
* Protocol Constants
* ============================================================================ */
#define ETCPMON_PROTOCOL_VERSION 2
#define ETCPMON_PROTOCOL_VERSION 3
/* Server config types (mirrored from config_parser.h) */
#define CFG_SERVER_TYPE_UNKNOWN 0
@ -126,7 +126,7 @@ struct etcpmon_socket_info {
uint16_t port; /* Port number (host byte order) */
uint8_t is_ipv6; /* 1 = IPv6, 0 = IPv4 */
uint8_t config_type; /* CFG_SERVER_TYPE_PUBLIC/NAT/PRIVATE */
uint8_t mapping, inbound; /* ADDRESS_MAP_* / ADDRESS_IN_* */
uint8_t mapping, inbound, source; /* ADDRESS_MAP_* / ADDRESS_IN_* / ADDRESS_SOURCE_* */
uint8_t is_tcp;
uint64_t generation, evidence_id, checked_at;
char nat_ip[46]; /* Null-terminated NAT IP address string */

Loading…
Cancel
Save