nodeinfo: 2 адреса на сокет (до/после NAT) + типы адресов local/public/nat/nat_eim/nat_strict

- topo_node: сокет рекламирует INTERFACE (до NAT) + NAT (после NAT, EIM);
  strict/direct отдельным адресом не передаются
- topo_node_sqlite: addr_type_classify различает NAT_VERIFIED_*; добавлен
  ADDR_TYPE_NAT (тип неизвестен), fallback больше не даёт DIRECT по IP
- chat_member: бейдж NAT-типа по приоритету (public>nat_eim>nat>nat_strict>local)
  вместо MIN(addr_type)
- GUI (desktop+android): адреса мембера с socket_id и ролью (local/public/nat/nat_eim/nat_strict)
This commit is contained in:
evgeny committed 2026-09-13 01:05:25 +03:00
1 parent a823898379
commit 7bba39ddcb
14 files changed
+82 -39

No files matched your search

+2 -2
View File
@@ -39,8 +39,8 @@ QVariant MemberListModel::data(const QModelIndex& index, int role) const {
QString sub;
if (it->rtt >= 0) sub += QString("rtt=%1ms").arg(it->rtt / 10);
if (it->natType >= 0) {
static const char* nat[] = {"NET","DIR","EIM","STR"};
const char* nt = (it->natType <= 3) ? nat[it->natType] : "?";
static const char* nat[] = {"NET","DIR","EIM","STR","NAT"};
const char* nt = (it->natType <= 4) ? nat[it->natType] : "?";
if (!sub.isEmpty()) sub += " ";
sub += nt;
}