--- 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<TSoTcpLingerOpt> linger;
+ linger().iOnOff = 1;
+ linger().iLinger = lingerTimeout;
+ iSocket.SetOpt(KSoTcpLingerinMicroSec, KSolInetTcp, linger);
+ }
+
}
return error;
}