From d0fbbbf84e3dad2ca4f5745f99a4642078ff87e9 Mon Sep 17 00:00:00 2001
From: anta999 <antarcticstation@gmail.com>
Date: Mon, 3 Jun 2019 19:41:54 +0400
Subject: [PATCH] !

---
 dap_client.c       | 30 +++++++++++++++++++-----------
 libdap             |  2 +-
 libdap-server      |  2 +-
 libdap-server-core |  2 +-
 libdap-server-udp  |  2 +-
 libdap-stream      |  2 +-
 libdap-stream-ch   |  2 +-
 7 files changed, 25 insertions(+), 17 deletions(-)
 mode change 100755 => 100644 dap_client.c

diff --git a/dap_client.c b/dap_client.c
old mode 100755
new mode 100644
index 354dbae..8d96a9f
--- a/dap_client.c
+++ b/dap_client.c
@@ -289,22 +289,30 @@ void dap_client_request(dap_client_t * a_client, const char * a_full_path, void
  * @param a_client
  * @return
  */
-int dap_client_disconnect(dap_client_t * a_client)
+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_socket ){
-            close (l_client_internal->stream_socket);
-            l_client_internal->stream_socket = 0;
-        }
-        if(l_client_internal->stream_es) {
-            dap_events_socket_delete(l_client_internal->stream_es, true);
-            l_client_internal->stream_es = NULL;
-        }
+    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_remove_and_delete( l_client_internal->stream_es, true );
+//            l_client_internal->stream_es = NULL;
+//        }
+
+        l_client_internal->stream_es->signal_close = true;
+
+//        if (l_client_internal->stream_socket ) {
+//            close (l_client_internal->stream_socket);
+        l_client_internal->stream_socket = 0;
+//        }
 
         return 1;
     }
     //l_client_internal->stream_socket = 0;
+
+    log_it(L_DEBUG, "dap_client_disconnect( ) done" );
+
     return -1;
 }
 
diff --git a/libdap b/libdap
index 999a4bc..d37b2aa 160000
--- a/libdap
+++ b/libdap
@@ -1 +1 @@
-Subproject commit 999a4bc46231c2398a8d010dee06628965b3c478
+Subproject commit d37b2aa26d2a7cc068529db343a87fd728904d33
diff --git a/libdap-server b/libdap-server
index 1b3a871..2520382 160000
--- a/libdap-server
+++ b/libdap-server
@@ -1 +1 @@
-Subproject commit 1b3a871d6ec93801f14081de51157bbb703593f1
+Subproject commit 2520382b703cc4308a6bb017da3b2cc5b95083b9
diff --git a/libdap-server-core b/libdap-server-core
index 7c6065b..e5bb9b7 160000
--- a/libdap-server-core
+++ b/libdap-server-core
@@ -1 +1 @@
-Subproject commit 7c6065bc699760e6e66ee4e80861a3562b2366c1
+Subproject commit e5bb9b75237cd702c5980b4070da9842d1f101e2
diff --git a/libdap-server-udp b/libdap-server-udp
index 19a6376..1668210 160000
--- a/libdap-server-udp
+++ b/libdap-server-udp
@@ -1 +1 @@
-Subproject commit 19a6376646f497d97bfe1ea3fade1a907c32f76a
+Subproject commit 1668210c08275ec85f8278a80c66b50e7414d61c
diff --git a/libdap-stream b/libdap-stream
index 8fa982b..550a546 160000
--- a/libdap-stream
+++ b/libdap-stream
@@ -1 +1 @@
-Subproject commit 8fa982b5333a4ea85429fe772987f9d84e5fb96e
+Subproject commit 550a546222f8b07c0687c9feaea32d3f2c66e87c
diff --git a/libdap-stream-ch b/libdap-stream-ch
index dfbdaa1..268f422 160000
--- a/libdap-stream-ch
+++ b/libdap-stream-ch
@@ -1 +1 @@
-Subproject commit dfbdaa1df0498069e60ffaf42de963375bffa816
+Subproject commit 268f422bde88a5f4f254a31b7d52b18d2cad71fc
-- 
GitLab