Browse Source

fix(chatgui): label detected NAT with unknown type as NAT?

stream-multiview
evgeny 7 days ago
parent
commit
60104ea093
  1. 11
      tools/chatgui/src/accountlist.cpp
  2. 2
      tools/chatgui/src/nodespage.cpp
  3. 7
      tools/chatgui/tests/test_channel_replies.cpp

11
tools/chatgui/src/accountlist.cpp

@ -35,7 +35,16 @@ static void memberDetailCb(const uint8_t* data, int len) {
}
static QString addrRoleStr(int t) {
switch (t) { case 0: return "local"; case 1: return "public"; case 2: return "nat_eim"; case 3: return "nat_dependent"; case 4: return "unknown"; case 5: return "contact_required"; default: return QString("?%1").arg(t); }
switch (t) {
case 0: return "local";
case 1: return "public";
case 2: return "nat_eim";
case 3: return "nat_dependent";
case 4: return "NAT?";
case 5: return "contact_required";
case 6: return "EIM?";
default: return QString("?%1").arg(t);
}
}
QString AccountList::addrStr(const void* addr, int family) {

2
tools/chatgui/src/nodespage.cpp

@ -55,7 +55,7 @@ static QString addrTypeStr(int t) {
case ADDR_TYPE_DIRECT: return "DIRECT";
case ADDR_TYPE_NAT_EIM: return "NAT type=EIM";
case ADDR_TYPE_NAT_STRICT: return "NAT type=STRICT";
case ADDR_TYPE_NAT: return "NAT type=UNKNOWN";
case ADDR_TYPE_NAT: return "NAT?";
case ADDR_TYPE_CONTACT: return "CONTACT_REQUIRED";
case ADDR_TYPE_NAT_EIM_UNVERIFIED: return "NAT type=EIM?";
default: return QString("?%1").arg(t);

7
tools/chatgui/tests/test_channel_replies.cpp

@ -79,10 +79,11 @@ private slots:
void addressPresentation() {
TOPO_SOCKMETA4 meta4{}; meta4.id = 5; meta4.config_type = CFG_SERVER_TYPE_PUBLIC;
meta4.address_profile.source = ADDRESS_SOURCE_ETCP;
TOPO_SOCKMETA6 meta6{}; meta6.id = 6; meta6.config_type = CFG_SERVER_TYPE_PUBLIC;
meta6.address_profile = {ADDRESS_MAP_UNCHANGED, ADDRESS_IN_OPEN, ADDRESS_SOURCE_ETCP};
TOPO_ADDR4 addr4{}; memcpy(addr4.addr, (uint8_t[]){194,63,142,140}, 4);
addr4.port = 1333; addr4.socket_id = 5; addr4.protocol = TOPO_PROTO_UDP;
addr4.port = 0; addr4.socket_id = 5; addr4.protocol = TOPO_PROTO_TCP; addr4.type = TOPO_ADDR_NAT;
TOPO_ADDR6 addr6{}; addr6.addr[0] = 0x2a; addr6.addr[1] = 0x04; addr6.addr[2] = 0x52; addr6.addr[15] = 0xf;
addr6.port = 443; addr6.socket_id = 6; addr6.protocol = TOPO_PROTO_TCP | TOPO_PROTO_REALITY;
TOPO_NODE node{}; node.node_id = inst->node_id;
@ -91,8 +92,8 @@ private slots:
NodesPage page(&db); page.refreshNodes();
const auto* dump = page.findChild<QPlainTextEdit*>(); QVERIFY(dump);
const QString text = dump->toPlainText();
QVERIFY2(text.contains("194.63.142.140:1333 UDP UNKNOWN"), qPrintable(text));
QVERIFY2(text.contains("2a04:5200:0:0:0:0:0:f:443 TCP+REALITY DIRECT"), qPrintable(text));
QVERIFY2(text.contains("194.63.142.140:0 TCP NAT?"), qPrintable(text));
QVERIFY2(text.contains("2a04:5200:0:0:0:0:0:f:443 TCP+REALITY INTERFACE mapping=UNCHANGED inbound=OPEN"), qPrintable(text));
}
void unavailableAndForeignReferencesFail() {

Loading…
Cancel
Save