From dbc6dc90283220c06b4f4946cf0a131d2f965884 Mon Sep 17 00:00:00 2001 From: attilamolnar Date: Tue, 16 Apr 2013 00:20:01 +0200 Subject: Do not enable SO_LINGER on our sockets Using this option allowed close() to block for up to a second Thanks to Shamsdeen and Rix for their assistance that made this fix possible Fixes issue #445 reported by @shaggie76 Fixes issue #494 reported by @Rixcho --- src/socketengine.cpp | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/socketengine.cpp b/src/socketengine.cpp index 27abd0ad6..6c99edc95 100644 --- a/src/socketengine.cpp +++ b/src/socketengine.cpp @@ -166,12 +166,7 @@ int SocketEngine::NonBlocking(int fd) void SocketEngine::SetReuse(int fd) { int on = 1; - struct linger linger = { 0, 0 }; setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (char*)&on, sizeof(on)); - /* This is BSD compatible, setting l_onoff to 0 is *NOT* http://web.irc.org/mla/ircd-dev/msg02259.html */ - linger.l_onoff = 1; - linger.l_linger = 1; - setsockopt(fd, SOL_SOCKET, SO_LINGER, (char*)&linger, sizeof(linger)); } int SocketEngine::RecvFrom(EventHandler* fd, void *buf, size_t len, int flags, sockaddr *from, socklen_t *fromlen) -- cgit v1.2.3