From 6f156da77bee8051cb13035dac9ff69e0af67d62 Mon Sep 17 00:00:00 2001 From: Roman Khlopkov <roman.khlopkov@demlabs.net> Date: Mon, 12 Feb 2024 15:54:08 +0300 Subject: [PATCH] [*] Already in process request correction --- dap-sdk | 2 +- modules/chain/dap_chain_ch.c | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/dap-sdk b/dap-sdk index c427c10945..32ee5dddfa 160000 --- a/dap-sdk +++ b/dap-sdk @@ -1 +1 @@ -Subproject commit c427c109455c41aabb0cb21d35129b7628ee823c +Subproject commit 32ee5dddfa5641119add13d4334d3f37a90c4313 diff --git a/modules/chain/dap_chain_ch.c b/modules/chain/dap_chain_ch.c index 3bc47068d0..24b663613e 100644 --- a/modules/chain/dap_chain_ch.c +++ b/modules/chain/dap_chain_ch.c @@ -801,7 +801,8 @@ void s_stream_ch_packet_in(dap_stream_ch_t* a_ch, void* a_arg) if(s_debug_more) log_it(L_INFO, "In: UPDATE_GLOBAL_DB pkt data_size=%zu", l_chain_pkt_data_size); if (l_ch_chain->state != CHAIN_STATE_UPDATE_GLOBAL_DB_REMOTE || - memcmp(&l_ch_chain->request_hdr, &l_chain_pkt->hdr, sizeof(dap_chain_ch_pkt_t))) { + memcmp(&l_ch_chain->request_hdr.net_id, &l_chain_pkt->hdr.net_id, + sizeof(dap_chain_net_id_t) + sizeof(dap_chain_id_t) + sizeof(dap_chain_cell_id_t))) { log_it(L_WARNING, "Can't process UPDATE_GLOBAL_DB request because its already busy with syncronization"); s_stream_ch_write_error_unsafe(a_ch, l_chain_pkt->hdr.net_id.uint64, l_chain_pkt->hdr.chain_id.uint64, l_chain_pkt->hdr.cell_id.uint64, @@ -838,7 +839,8 @@ void s_stream_ch_packet_in(dap_stream_ch_t* a_ch, void* a_arg) case DAP_STREAM_CH_CHAIN_PKT_TYPE_UPDATE_GLOBAL_DB_END: { if(l_chain_pkt_data_size == sizeof(dap_chain_ch_sync_request_t)) { if (l_ch_chain->state != CHAIN_STATE_UPDATE_GLOBAL_DB_REMOTE || - memcmp(&l_ch_chain->request_hdr, &l_chain_pkt->hdr, sizeof(dap_chain_ch_pkt_t))) { + memcmp(&l_ch_chain->request_hdr.net_id, &l_chain_pkt->hdr.net_id, + sizeof(dap_chain_net_id_t) + sizeof(dap_chain_id_t) + sizeof(dap_chain_cell_id_t))) { log_it(L_WARNING, "Can't process UPDATE_GLOBAL_DB_END request because its already busy with syncronization"); s_stream_ch_write_error_unsafe(a_ch, l_chain_pkt->hdr.net_id.uint64, l_chain_pkt->hdr.chain_id.uint64, l_chain_pkt->hdr.cell_id.uint64, @@ -1017,7 +1019,8 @@ void s_stream_ch_packet_in(dap_stream_ch_t* a_ch, void* a_arg) case DAP_STREAM_CH_CHAIN_PKT_TYPE_UPDATE_CHAINS_END: { if(l_chain_pkt_data_size == sizeof(dap_chain_ch_sync_request_t)) { if (l_ch_chain->state != CHAIN_STATE_UPDATE_CHAINS_REMOTE || - memcmp(&l_ch_chain->request_hdr, &l_chain_pkt->hdr, sizeof(dap_chain_ch_pkt_t))) { + memcmp(&l_ch_chain->request_hdr.net_id, &l_chain_pkt->hdr.net_id, + sizeof(dap_chain_net_id_t) + sizeof(dap_chain_id_t) + sizeof(dap_chain_cell_id_t))) { log_it(L_WARNING, "Can't process UPDATE_CHAINS_END request because its already busy with syncronization"); s_stream_ch_write_error_unsafe(a_ch, l_chain_pkt->hdr.net_id.uint64, l_chain_pkt->hdr.chain_id.uint64, l_chain_pkt->hdr.cell_id.uint64, -- GitLab