From 95fa3afe9bf3830bff72720e473ebe4e46a27320 Mon Sep 17 00:00:00 2001
From: Constantin Papizh <p.const@bk.ru>
Date: Thu, 14 Jan 2021 21:49:09 +0300
Subject: [PATCH] ...

---
 dap-sdk/net/client/dap_client_http.c | 11 ++++++-----
 dap-sdk/net/core/dap_events_socket.c |  2 +-
 2 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/dap-sdk/net/client/dap_client_http.c b/dap-sdk/net/client/dap_client_http.c
index ffc17fcb39..264e8466e1 100644
--- a/dap-sdk/net/client/dap_client_http.c
+++ b/dap-sdk/net/client/dap_client_http.c
@@ -127,7 +127,7 @@ static bool s_timer_timeout_check(void * a_arg)
     if(dap_events_socket_check_unsafe(l_worker, l_es) ){
         if (!dap_uint128_check_equal(l_es->uuid,l_es_handler->uuid)){
             // Timer esocket wrong argument, ignore this timeout...
-            DAP_DELETE(l_es_handler);
+            DAP_DEL_Z(l_es_handler)
             return false;
         }
         dap_client_http_pvt_t * l_http_pvt = PVT(l_es);
@@ -141,10 +141,8 @@ static bool s_timer_timeout_check(void * a_arg)
         log_it(L_INFO, "Close %s sock %u type %d by timeout",
                l_es->remote_addr_str ? l_es->remote_addr_str : "", l_es->socket, l_es->type);
         dap_events_socket_remove_and_delete_unsafe(l_es, true);
-    } else {
-        log_it(L_INFO, "Socket %d type %d already disposed", l_es->socket, l_es->type);
     }
-    DAP_DELETE(l_es_handler);
+    DAP_DEL_Z(l_es_handler)
     return false;
 }
 
@@ -501,7 +499,10 @@ void* dap_client_http_request_custom(dap_worker_t * a_worker,const char *a_uplin
             log_it(L_DEBUG, "Connecting to %s:%u", a_uplink_addr, a_uplink_port);
             l_http_pvt->worker = a_worker?a_worker: dap_events_worker_get_auto();
             dap_worker_add_events_socket(l_ev_socket,l_http_pvt->worker);
-            dap_timerfd_start_on_worker(l_http_pvt->worker,s_client_timeout_ms, s_timer_timeout_check,l_ev_socket);
+            dap_events_socket_handler_t * l_ev_socket_handler = DAP_NEW_Z(dap_events_socket_handler_t);
+            l_ev_socket_handler->esocket = l_ev_socket;
+            l_ev_socket_handler->uuid = l_ev_socket->uuid;
+            dap_timerfd_start_on_worker(l_http_pvt->worker,s_client_timeout_ms, s_timer_timeout_check,l_ev_socket_handler);
             return l_http_pvt;
         } else {
             log_it(L_ERROR, "Socket %d connecting error: %d", l_ev_socket->socket, l_err2);
diff --git a/dap-sdk/net/core/dap_events_socket.c b/dap-sdk/net/core/dap_events_socket.c
index 78d5df0c34..6cd7a3c214 100644
--- a/dap-sdk/net/core/dap_events_socket.c
+++ b/dap-sdk/net/core/dap_events_socket.c
@@ -149,7 +149,7 @@ dap_events_socket_t *dap_events_socket_wrap_no_add( dap_events_t *a_events,
     l_ret->buf_out    = a_callbacks->timer_callback ? NULL : DAP_NEW_Z_SIZE(byte_t, l_ret->buf_out_size_max + 1);
     l_ret->buf_in_size = l_ret->buf_out_size = 0;
     #if defined(DAP_EVENTS_CAPS_EPOLL)
-    ret->ev_base_flags = EPOLLERR | EPOLLRDHUP | EPOLLHUP;
+    l_ret->ev_base_flags = EPOLLERR | EPOLLRDHUP | EPOLLHUP;
     #elif defined(DAP_EVENTS_CAPS_POLL)
     l_ret->poll_base_flags = POLLERR | POLLRDHUP | POLLHUP;
     #endif
-- 
GitLab