From 41b4c86a9443f9cb76ffd709ed23c230bd4c41c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Al=D0=B5x=D0=B0nder=20Lysik=D0=BEv?= <alexander.lysikov@demlabs.net> Date: Thu, 19 Dec 2019 00:24:45 +0500 Subject: [PATCH] fixed looping when connection is broken --- src/dap_events.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/dap_events.c b/src/dap_events.c index 495b556..e646b50 100755 --- a/src/dap_events.c +++ b/src/dap_events.c @@ -332,6 +332,14 @@ static void *thread_worker_function( void *arg ) continue; } + //connection already closed (EPOLLHUP - shutdown has been made in both directions) + if(events[n].events & EPOLLHUP && events[n].events & EPOLLERR) { + log_it( L_DEBUG,"Socket error (EPOLLHUP): 0x%x",events[n].events ); + if(events[n].events & ~(EPOLLIN | EPOLLOUT)) + cur->no_close = false; + cur->flags |= DAP_SOCK_SIGNAL_CLOSE; + } + if ( events[n].events & EPOLLERR ) { log_it( L_ERROR,"Socket error: %s",strerror(errno) ); cur->flags |= DAP_SOCK_SIGNAL_CLOSE; -- GitLab