From dff94d38d6ae0d87e8ad43c47eb935bcae401534 Mon Sep 17 00:00:00 2001 From: Roman Khlopkov <roman.khlopkov@demlabs.net> Date: Tue, 5 May 2020 15:21:03 +0300 Subject: [PATCH] Syncronization stopping --- modules/net/dap_chain_net.c | 10 ++++++++-- modules/net/include/dap_chain_net.h | 3 ++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/modules/net/dap_chain_net.c b/modules/net/dap_chain_net.c index 357f3e6baa..1efc4c9ee8 100644 --- a/modules/net/dap_chain_net.c +++ b/modules/net/dap_chain_net.c @@ -273,7 +273,10 @@ static int s_net_states_proc(dap_chain_net_t * l_net) switch ( PVT(l_net)->state ){ case NET_STATE_OFFLINE:{ - PVT(l_net)->state_target = PVT(l_net)->state_new; + if (PVT(l_net)->state_new != NET_STATE_UNDEFINED) { + PVT(l_net)->state_target = PVT(l_net)->state_new; + PVT(l_net)->state_new = NET_STATE_UNDEFINED; + } // reset current link PVT(l_net)->links_count = 0; // delete all links @@ -717,7 +720,10 @@ static int s_net_states_proc(dap_chain_net_t * l_net) break; case NET_STATE_ONLINE: { - PVT(l_net)->state_target = PVT(l_net)->state_new; + if (PVT(l_net)->state_new != NET_STATE_UNDEFINED) { + PVT(l_net)->state_target = PVT(l_net)->state_new; + PVT(l_net)->state_new = NET_STATE_UNDEFINED; + } switch ( PVT(l_net)->state_target) { // disconnect case NET_STATE_OFFLINE: diff --git a/modules/net/include/dap_chain_net.h b/modules/net/include/dap_chain_net.h index 8b76bfcf1b..ca84a0203c 100644 --- a/modules/net/include/dap_chain_net.h +++ b/modules/net/include/dap_chain_net.h @@ -60,7 +60,8 @@ typedef enum dap_chain_net_state{ NET_STATE_ADDR_REQUEST, // Waiting for address assign NET_STATE_SYNC_GDB, NET_STATE_SYNC_CHAINS, - NET_STATE_ONLINE + NET_STATE_ONLINE, + NET_STATE_UNDEFINED } dap_chain_net_state_t; typedef struct dap_chain_net{ -- GitLab