chat: BGP-driven address sync, member identity verify, join_sig fix
- Адреса узлов вынесены из wire-протокола member_sync/merkle/join/welcome в BGP/topo_group: node_addresses теперь пишет только topo_node_sqlite_addrs_put (источник истины ni->v4/v6_addrs), классификация config_type/nat_type в sockmeta - Жёсткая анти-подделка: node_id=derive(x25519), ed25519 сверяется с доверенной таблицей nodes, NODEINFO node_id/pubkey mismatch отклоняется как forgery - Единые member_sync_build_join_msg (112Б) и member_sync_build_update_msg: устранён баг _verify_join_sig (join_ts по смещению 80 вместо 104, длина 104→112), который рушил приём мемберов; все 7 мест подписи/проверки join_sig через хелпер - Единое обновление своего мембера chat_core_update_my_member (вместо sync_my_addresses) - Android standby: пауза таймеров (broadcast/db_sync/merkle_sync/chat_sync) через standby_wait - name[16] → name[MAX_CONN_NAME_LEN] с truncation-warning в парсере - conn_mgr: etcp_connect_cancel_by_node (use-after-free при отмене invite), промоушен conn в ncd после успешного invite - Android GUI: foreground-gating опросов, сохранение портов интерфейсов, фикс udp-log flush - chatgui: персистентный db_path; мелкие DEBUG-логи epoll/pool
This commit is contained in:
1 parent
c07bd385ca
commit
5c2501b4f3
34 files changed
+808
-882
No files matched your search
@@ -16,7 +16,12 @@
|
||||
|
||||
int topo_node_sqlite_init(sqlite3* db);
|
||||
|
||||
int topo_node_sqlite_node_put(sqlite3* db, struct TOPO_GROUPS* groups, struct TOPO_GROUP_NODE* nq, time_t now_sec);
|
||||
/* Персистентная запись адресов узла в node_addresses (источник истины — BGP/topo_group).
|
||||
* DELETE + INSERT из ni->v4_addrs/v6_addrs, классификация config_type/nat_type из SOCKMETA. */
|
||||
int topo_node_sqlite_addrs_put(sqlite3* db, uint64_t node_id, struct TOPO_NODE* ni);
|
||||
|
||||
/* Есть ли у узла запись мембера хотя бы в одной peers_<ch> (реальный мембер с ключами). */
|
||||
int topo_node_sqlite_member_exists(sqlite3* db, uint64_t node_id);
|
||||
|
||||
int topo_node_sqlite_channel_put(sqlite3* db, const char* channel_id,
|
||||
const char* name, uint64_t owner_node_id,
|
||||
|
||||
Reference in new issue
Block a user