From 39a376e25524d33e15b0e3145f75387c129e3646 Mon Sep 17 00:00:00 2001 From: Evgeny Date: Sat, 18 Jul 2026 23:23:14 +0300 Subject: [PATCH] =?UTF-8?q?fix:=20BGP=20=D0=B8=20=D1=87=D0=B0=D1=82=20?= =?UTF-8?q?=D0=B1=D0=BE=D0=BB=D1=8C=D1=88=D0=B5=20=D0=BD=D0=B5=20=D0=B7?= =?UTF-8?q?=D0=B0=D1=82=D0=B8=D1=80=D0=B0=D1=8E=D1=82=20=D0=B0=D0=B4=D1=80?= =?UTF-8?q?=D0=B5=D1=81=D0=B0=20=D0=B4=D1=80=D1=83=D0=B3=20=D0=B4=D1=80?= =?UTF-8?q?=D1=83=D0=B3=D0=B0=20=D0=B2=20node=5Faddresses?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - BGP DELETE: +AND socket_id != 0 — не трогает чат-адреса (invite/JOIN/WELCOME) - Чат invite DELETE: +AND socket_id=0 — не трогает BGP-адреса --- src/topo_node_sqlite.c | 4 ++-- tools/chatgui/transport/chat_core.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/topo_node_sqlite.c b/src/topo_node_sqlite.c index 9b6cb8d5..e5b51983 100644 --- a/src/topo_node_sqlite.c +++ b/src/topo_node_sqlite.c @@ -139,9 +139,9 @@ int topo_node_sqlite_node_put(sqlite3* db, struct TOPO_NODEQ* nq) { if (i > 0) pos += snprintf(del_sql + pos, sizeof(del_sql) - (size_t)pos, ","); pos += snprintf(del_sql + pos, sizeof(del_sql) - (size_t)pos, "%d", (int)sock_ids[i]); } - pos += snprintf(del_sql + pos, sizeof(del_sql) - (size_t)pos, ")"); + pos += snprintf(del_sql + pos, sizeof(del_sql) - (size_t)pos, ") AND socket_id != 0"); } else { - snprintf(del_sql, sizeof(del_sql), "DELETE FROM node_addresses WHERE node_id=?"); + snprintf(del_sql, sizeof(del_sql), "DELETE FROM node_addresses WHERE node_id=? AND socket_id != 0"); } sqlite3_stmt* del_stmt = NULL; if (sqlite3_prepare_v2(db, del_sql, -1, &del_stmt, NULL) == SQLITE_OK) { diff --git a/tools/chatgui/transport/chat_core.c b/tools/chatgui/transport/chat_core.c index 4dcedff6..1170d7a7 100644 --- a/tools/chatgui/transport/chat_core.c +++ b/tools/chatgui/transport/chat_core.c @@ -647,11 +647,11 @@ void chat_core_connect_from_invite(struct chat_invite* inv) { DEBUG_INFO(DEBUG_CATEGORY_DEBUG, "%s: [ADDR_SYNC] save_invite_addr node=0x%016llx addr_count=%d", CC_ID, (unsigned long long)node_id, inv->addr_count); sqlite3_stmt* ds = NULL; if (sqlite3_prepare_v2(g_cc.db, - "DELETE FROM node_addresses WHERE node_id=?", -1, &ds, NULL) == SQLITE_OK) { + "DELETE FROM node_addresses WHERE node_id=? AND socket_id=0", -1, &ds, NULL) == SQLITE_OK) { sqlite3_bind_int64(ds, 1, (sqlite3_int64)node_id); sqlite3_step(ds); int deleted = sqlite3_changes(g_cc.db); - DEBUG_INFO(DEBUG_CATEGORY_DEBUG, "%s: [ADDR_SYNC] invite DELETE ALL for node=0x%016llx: %d rows deleted", CC_ID, (unsigned long long)node_id, deleted); + DEBUG_INFO(DEBUG_CATEGORY_DEBUG, "%s: [ADDR_SYNC] invite DELETE socket_id=0 for node=0x%016llx: %d rows deleted", CC_ID, (unsigned long long)node_id, deleted); sqlite3_finalize(ds); } sqlite3_stmt* is = NULL;