File 2042-Copy-linger-zero-flag-from-listen-socket.patch of Package erlang

From b0018e78e6b87b40e93760bda715ae45f0776da7 Mon Sep 17 00:00:00 2001
From: Raimo Niskanen <raimo@erlang.org>
Date: Fri, 26 Apr 2019 16:48:07 +0200
Subject: [PATCH 2/2] Copy linger zero flag from listen socket

---
 erts/emulator/drivers/common/inet_drv.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/erts/emulator/drivers/common/inet_drv.c b/erts/emulator/drivers/common/inet_drv.c
index b71ce0389d..becc04950e 100644
--- a/erts/emulator/drivers/common/inet_drv.c
+++ b/erts/emulator/drivers/common/inet_drv.c
@@ -9846,10 +9846,8 @@ static tcp_descriptor* tcp_inet_copy(tcp_descriptor* desc,SOCKET s,
     copy_desc->send_timeout  = desc->send_timeout;
     copy_desc->send_timeout_close = desc->send_timeout_close;
 
-    if (desc->tcp_add_flags & TCP_ADDF_SHOW_ECONNRESET)
-	copy_desc->tcp_add_flags |= TCP_ADDF_SHOW_ECONNRESET;
-    else
-	copy_desc->tcp_add_flags &= ~TCP_ADDF_SHOW_ECONNRESET;
+    copy_desc->tcp_add_flags = desc->tcp_add_flags
+        & (TCP_ADDF_SHOW_ECONNRESET | TCP_ADDF_LINGER_ZERO);
     
     /* The new port will be linked and connected to the original caller */
     port = driver_create_port(port, owner, "tcp_inet", (ErlDrvData) copy_desc);
-- 
2.16.4

openSUSE Build Service is sponsored by