From 3cc7e03a86ce8fcc1125c8c86e7ac5d4d6ea379b Mon Sep 17 00:00:00 2001
From: Roman Khlopkov <roman.khlopkov@demlabs.net>
Date: Mon, 3 Jul 2023 17:47:11 +0300
Subject: [PATCH] [*] ESBOCS consensus part bugfixes

---
 modules/consensus/esbocs/dap_chain_cs_esbocs.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/modules/consensus/esbocs/dap_chain_cs_esbocs.c b/modules/consensus/esbocs/dap_chain_cs_esbocs.c
index 77efcc4455..6fa8a5afe0 100644
--- a/modules/consensus/esbocs/dap_chain_cs_esbocs.c
+++ b/modules/consensus/esbocs/dap_chain_cs_esbocs.c
@@ -1725,11 +1725,10 @@ static void s_session_packet_in(void *a_arg, dap_chain_node_addr_t *a_sender_nod
                 s_session_sync_queue_add(l_session, l_message, a_data_size);
                 goto session_unlock;
             }
-        } else if (l_message->hdr.round_id != l_session->cur_round.id ||
-                   l_message->hdr.attempt_num < l_session->cur_round.attempt_num) {
+        } else if (l_message->hdr.round_id != l_session->cur_round.id) {
             // round check
             debug_if(l_cs_debug, L_MSG, "net:%s, chain:%s, round:%"DAP_UINT64_FORMAT_U", attempt:%hhu."
-                                        " Message rejected: round or attempt in message does not match",
+                                        " Message rejected: round number doesn't match",
                                             l_session->chain->net_name, l_session->chain->name,
                                                 l_session->cur_round.id, l_session->cur_round.attempt_num);
             goto session_unlock;
@@ -1745,6 +1744,7 @@ static void s_session_packet_in(void *a_arg, dap_chain_node_addr_t *a_sender_nod
                                                 l_session->cur_round.id, l_message->hdr.attempt_num);
             goto session_unlock;
         }
+        dap_chain_addr_fill_from_sign(&l_signing_addr, l_sign, l_session->chain->net_id);
         // check messages chain
         dap_chain_esbocs_message_item_t *l_chain_message, *l_chain_message_tmp;
         HASH_ITER(hh, l_round->message_items, l_chain_message, l_chain_message_tmp) {
@@ -1770,7 +1770,6 @@ static void s_session_packet_in(void *a_arg, dap_chain_node_addr_t *a_sender_nod
                 }
             }
         }
-        dap_chain_addr_fill_from_sign(&l_signing_addr, l_sign, l_session->chain->net_id);
         s_message_chain_add(l_session, l_message, a_data_size, a_data_hash, &l_signing_addr);
     } else
         dap_chain_addr_fill_from_sign(&l_signing_addr, l_sign, l_session->chain->net_id);
-- 
GitLab