From 6f28e633d0c238365c7c7242a72dee3e549ad524 Mon Sep 17 00:00:00 2001 From: "roman.khlopkov" <roman.khlopkov@demlabs.net> Date: Tue, 14 May 2024 19:30:44 +0300 Subject: [PATCH] [+] Block standard chain protocol for GDB chains --- modules/chain/dap_chain_ch.c | 4 ++-- modules/net/dap_chain_net.c | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/modules/chain/dap_chain_ch.c b/modules/chain/dap_chain_ch.c index 63efeb33a9..db000009a4 100644 --- a/modules/chain/dap_chain_ch.c +++ b/modules/chain/dap_chain_ch.c @@ -835,8 +835,8 @@ static bool s_stream_ch_packet_in(dap_stream_ch_t* a_ch, void* a_arg) break; } dap_chain_t *l_chain = dap_chain_find_by_id(l_chain_pkt->hdr.net_id, l_chain_pkt->hdr.chain_id); - if (!l_chain) { - log_it(L_WARNING, "Not found chain id 0x%016" DAP_UINT64_FORMAT_x " with net id 0x%016" DAP_UINT64_FORMAT_x, + if (!l_chain || l_chain->callback_load_from_gdb) { + log_it(L_WARNING, "Not found valid chain with id 0x%016" DAP_UINT64_FORMAT_x " and net id 0x%016" DAP_UINT64_FORMAT_x, l_chain_pkt->hdr.chain_id.uint64, l_chain_pkt->hdr.net_id.uint64); dap_stream_ch_write_error_unsafe(a_ch, l_chain_pkt->hdr.net_id, l_chain_pkt->hdr.chain_id, l_chain_pkt->hdr.cell_id, diff --git a/modules/net/dap_chain_net.c b/modules/net/dap_chain_net.c index a1767982f7..4836034886 100644 --- a/modules/net/dap_chain_net.c +++ b/modules/net/dap_chain_net.c @@ -2519,6 +2519,12 @@ static void s_sync_timer_callback(void *a_arg) } // TODO make correct working with cells assert(l_net_pvt->sync_context.cur_chain); + if (l_net_pvt->sync_context.cur_chain->callback_load_from_gdb) { + // This type of chain is GDB based and not synced by chains protocol + l_net_pvt->sync_context.cur_chain = l_net_pvt->sync_context.cur_chain->next; + l_net_pvt->sync_context.last_state = SYNC_STATE_SYNCED; + return; + } l_net_pvt->sync_context.cur_cell = l_net_pvt->sync_context.cur_chain->cells; l_net_pvt->sync_context.state = l_net_pvt->sync_context.last_state = SYNC_STATE_WAITING; dap_chain_ch_sync_request_t l_request = {}; -- GitLab