diff --git a/http_server/http_client/dap_http_client_simple.c b/http_server/http_client/dap_http_client_simple.c
index 79d43ba19e10bfed320ae4de28d5eab77dfa50cd..f5e3ce797ddf44a9fa65b2e821505b0f3f92b112 100755
--- a/http_server/http_client/dap_http_client_simple.c
+++ b/http_server/http_client/dap_http_client_simple.c
@@ -67,6 +67,7 @@ static void *dap_http_client_thread( void *arg );
 
 size_t dap_http_client_curl_request_callback( char *a_ptr, size_t a_size, size_t a_nmemb, void *a_userdata );
 size_t dap_http_client_curl_response_callback(char *a_ptr, size_t a_size, size_t a_nmemb, void *a_userdata );
+size_t dap_http_client_curl_close_callback( char *a_ptr, size_t a_size, size_t a_nmemb, void *a_userdata );
 
 void dap_http_client_internal_delete( dap_http_client_internal_t *a_client );
 
@@ -194,6 +195,9 @@ void dap_http_client_simple_request_custom( const char *a_url, const char *a_met
   curl_easy_setopt( l_curl_h , CURLOPT_WRITEDATA , l_client_internal );
   curl_easy_setopt( l_curl_h , CURLOPT_WRITEFUNCTION , dap_http_client_curl_response_callback );
 
+  curl_easy_setopt( l_curl_h , CURLOPT_CLOSESOCKETDATA , l_client_internal );
+  curl_easy_setopt( l_curl_h , CURLOPT_CLOSESOCKETFUNCTION , dap_http_client_curl_close_callback );
+
   curl_multi_add_handle( m_curl_mh, l_curl_h );
     //curl_multi_perform(m_curl_mh, &m_curl_cond);
 
@@ -255,6 +259,21 @@ size_t dap_http_client_curl_response_callback( char *a_ptr, size_t a_size, size_
     return a_size*a_nmemb;
 }
 
+
+/**
+ * @brief dap_http_client_curl_response_callback
+ * @param a_ptr
+ * @param a_size
+ * @param a_nmemb
+ * @param a_userdata
+ * @return
+ */
+size_t dap_http_client_curl_close_callback( char *a_ptr, size_t a_size, size_t a_nmemb, void *a_userdata )
+{
+    dap_http_client_internal_t * l_client_internal = (dap_http_client_internal_t *) a_userdata;
+    printf("\n*** close l_client_internal=%x\n\n", l_client_internal);
+}
+
 /**
  * @brief dap_http_client_curl_request_callback
  * @param a_ptr