diff -r a2a70ce3d4e8 -r 5f1cd966e0d9 applayerpluginsandutils/httptransportplugins/httptransporthandler/csocket.cpp --- a/applayerpluginsandutils/httptransportplugins/httptransporthandler/csocket.cpp Thu Jul 15 19:14:59 2010 +0300 +++ b/applayerpluginsandutils/httptransportplugins/httptransporthandler/csocket.cpp Thu Aug 19 10:27:19 2010 +0300 @@ -27,6 +27,7 @@ const TInt KSocketRecvBufSize = 16 * 1024; const TInt KSocketSendBufSize = 16 * 1024; const TInt KSocketDefaultSendBufSize = 4 * 1024; +const TUint32 KSoTcpLingerinMicroSec = 0x101F55F6;//linger constant to send close connection fast CSocket* CSocket::NewL(MCommsInfoProvider& aCommsInfoProvider, TSocketType aSocketType) /** @@ -137,6 +138,16 @@ iSocket.SetOpt(KSoTcpNoDelay,KSolInetTcp,1); // Disable the nagle. iSocket.SetOpt(KSORecvBuf, KSOLSocket, KSocketRecvBufSize); // Set the socket recv buf to be 16K } + + TInt lingerTimeout = iCommsInfoProvider.GetSocketImmediateCloseTimeout(); + if (lingerTimeout != KErrNotFound) + { + TPckgBuf linger; + linger().iOnOff = 1; + linger().iLinger = lingerTimeout; + iSocket.SetOpt(KSoTcpLingerinMicroSec, KSolInetTcp, linger); + } + } return error; }