From f1f448e2bac05875aacd9673680989302093bb27 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Mon, 1 Aug 2011 03:13:18 +0000 Subject: [PATCH] [OSKITTCP] - Force the connection to be closed immediately - Hopefully will fix the random bind issues caused by oskit becoming out of sync with the rest of the IP library svn path=/trunk/; revision=53014 --- reactos/lib/drivers/oskittcp/oskittcp/interface.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/reactos/lib/drivers/oskittcp/oskittcp/interface.c b/reactos/lib/drivers/oskittcp/oskittcp/interface.c index bf9114f3cb2..5c81bcb33a5 100644 --- a/reactos/lib/drivers/oskittcp/oskittcp/interface.c +++ b/reactos/lib/drivers/oskittcp/oskittcp/interface.c @@ -294,11 +294,17 @@ int OskitTCPShutdown(PCONNECTION_ENDPOINT connection, int disconn_type) { int OskitTCPClose( PCONNECTION_ENDPOINT connection ) { int error; + struct socket *socket; OSKLock(); - if (connection->SocketContext) + socket = connection->SocketContext; + if (socket) { - error = soclose(connection->SocketContext); + /* HACK: Force abortive close by changing SO_LINGER settings */ + socket->so_options |= SO_LINGER; + socket->so_linger = 0; + + error = soclose(socket); } else {