From c795063f3055b44751d1507bca8d2ea525b090d0 Mon Sep 17 00:00:00 2001
From: Dmitriy Gerasimov <naeper@demlabs.net>
Date: Fri, 24 May 2019 15:04:30 +0700
Subject: [PATCH] [*] Reconnect option

---
 dap_client.c     | 2 +-
 dap_client_pvt.c | 3 ++-
 dap_client_pvt.h | 1 +
 3 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/dap_client.c b/dap_client.c
index ed7d21d..02f2d73 100755
--- a/dap_client.c
+++ b/dap_client.c
@@ -294,7 +294,7 @@ int dap_client_disconnect(dap_client_t * a_client)
     dap_client_pvt_t * l_client_internal = (a_client) ? DAP_CLIENT_PVT(a_client) : NULL;
     if(l_client_internal && l_client_internal->stream_socket){
         if(l_client_internal->stream_es) {
-            dap_events_socket_delete(l_client_internal->stream_es, false);
+            dap_events_socket_delete(l_client_internal->stream_es, true);
             l_client_internal->stream_es = NULL;
         }
         else if (l_client_internal->stream_socket ){
diff --git a/dap_client_pvt.c b/dap_client_pvt.c
index 79800be..88d11b6 100755
--- a/dap_client_pvt.c
+++ b/dap_client_pvt.c
@@ -855,7 +855,8 @@ void m_es_stream_delete(dap_events_socket_t * a_es, void * arg)
     l_client_pvt->stream_es = NULL;
     dap_stream_session_close(l_client_pvt->stream_session->id);
     l_client_pvt->stream_session = NULL;
-    dap_client_go_stage(l_client_pvt->client, STAGE_STREAM_STREAMING, m_stage_stream_streaming);
+    if (l_client_pvt->is_reconnect)
+       dap_client_go_stage(l_client_pvt->client, STAGE_STREAM_STREAMING, m_stage_stream_streaming);
 }
 
 /**
diff --git a/dap_client_pvt.h b/dap_client_pvt.h
index a9785f9..38a8121 100755
--- a/dap_client_pvt.h
+++ b/dap_client_pvt.h
@@ -72,6 +72,7 @@ typedef struct dap_client_internal
     dap_client_callback_t stage_status_error_callback;
 
     bool is_encrypted;
+    bool is_reconnect;
     bool is_close_session;// the last request in session, in the header will be added "SessionCloseAfterRequest: true"
     dap_client_callback_data_size_t request_response_callback;
     dap_client_callback_int_t request_error_callback;
-- 
GitLab