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