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