From ff5007dfdd321435adb1cc3abeb0120af2d564f3 Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Wed, 16 Apr 2008 17:22:14 +0000 Subject: [PATCH] * fhandler_socket.cc (fhandler_socket::close): Disable enforced lingering since the original problem can no longer be reproduced. --- winsup/cygwin/ChangeLog | 5 +++++ winsup/cygwin/fhandler_socket.cc | 8 ++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 93d5eabee..e7f39dc3c 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,8 @@ +2008-04-16 Corinna Vinschen + + * fhandler_socket.cc (fhandler_socket::close): Disable enforced + lingering since the original problem can no longer be reproduced. + 2008-04-16 Corinna Vinschen * grp.cc (internal_getgroups): Drop local buf. Allocate groups diff --git a/winsup/cygwin/fhandler_socket.cc b/winsup/cygwin/fhandler_socket.cc index d25733629..50aaf1f83 100644 --- a/winsup/cygwin/fhandler_socket.cc +++ b/winsup/cygwin/fhandler_socket.cc @@ -1460,7 +1460,11 @@ int fhandler_socket::close () { int res = 0; - + /* TODO: CV - 2008-04-16. Lingering disabled. The original problem + could be no longer reproduced on NT4, XP, 2K8. Any return of a + spurious "Connection reset by peer" *could* be caused by disabling + the linger code here... */ +#if 0 /* HACK to allow a graceful shutdown even if shutdown() hasn't been called by the application. Note that this isn't the ultimate solution but it helps in many cases. */ @@ -1469,7 +1473,7 @@ fhandler_socket::close () linger.l_linger = 240; /* secs. default 2MSL value according to MSDN. */ setsockopt (get_socket (), SOL_SOCKET, SO_LINGER, (const char *)&linger, sizeof linger); - +#endif release_events (); while ((res = closesocket (get_socket ())) != 0) {