Verify CHAT admission excludes placeholders and deleted members
This commit is contained in:
1 parent
f1b62f9112
commit
af50fde9d9
3 files changed
+18
-3
No files matched your search
@@ -3,7 +3,7 @@
|
||||
* @brief Групповые сессии и обмен маршрутами поверх общего транспорта NCD.
|
||||
*
|
||||
* У каждой группы своя топология; идентичности и адреса узлов общие (topo_node.h).
|
||||
* UTUN обменивается также подсетями, CHAT допускает только локально известных участников.
|
||||
* UTUN обменивается также подсетями, CHAT допускает только полных неудалённых участников из локальной БД.
|
||||
* Для подключения используйте peer_open/close: группа владеет NCD с начала попытки.
|
||||
* JOIN/ACCEPT согласует сессию, NODEINFO/WITHDRAW поддерживают её маршруты.
|
||||
* Потерю путей обрабатывает topo_recovery, выбор CHAT-пиров — topo_group_connect.
|
||||
@@ -116,7 +116,7 @@ void topo_fire_nodeinfo_cbk(struct UTUN_INSTANCE* instance, struct TOPO_GROUP* g
|
||||
// ETCP ID для пакетов топологии: ETCP_ID_TOPO_ENTRY (см. etcp_api.h)
|
||||
|
||||
/* Групповая сессия принадлежит паре (group, peer), транспорт разделяется через NCD.
|
||||
* JOIN_GROUP не добавляет мембера: CHAT проверяет локальную таблицу участников
|
||||
* JOIN_GROUP не добавляет мембера: CHAT требует source=0 и deleted=0 в локальной таблице участников
|
||||
* (chat_join.h / member_sync). Поздний commit мембера повторяет JOIN на готовом NCD.
|
||||
*
|
||||
* Каждая сторона создаёт случайный ненулевой local_epoch. JOIN несёт src_epoch,
|
||||
|
||||
@@ -169,7 +169,7 @@ static void tgi_handle_info_resp(struct ETCP_CONN* conn, const uint8_t* data, si
|
||||
DEBUG_INFO(DEBUG_CATEGORY_BGP, "invite: verified channel saved peer=%016llx group=%s name=%s owner=%016llx",
|
||||
(unsigned long long)p->node_id, ch_id, name, (unsigned long long)owner);
|
||||
/* Только существующий мембер может инициировать групповое согласование. */
|
||||
if (topo_node_sqlite_member_in_channel(inst->topo_sqlite_db, ch_id, p->node_id))
|
||||
if (topo_node_sqlite_member_allowed(inst->topo_sqlite_db, ch_id, p->node_id))
|
||||
topo_group_connect_node_once(group, p->node_id);
|
||||
tgi_finish(p, TGI_EVENT_JOIN);
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user