diff --git a/modules/chain/dap_chain_ch.c b/modules/chain/dap_chain_ch.c index 63efeb33a959f10396716d8566d96c71b4d38d17..db000009a43b7b3e7b06939cc728f76367aef7b3 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 a1767982f78cc6d9ead9a9319dd6ae4612de460b..48360348860d935200167d7f96313585bbff6603 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 = {};