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