applayerpluginsandutils/httptransportplugins/httptransporthandler/csocket.cpp
branchRCL_3
changeset 37 5f1cd966e0d9
parent 22 26ce6fb6aee2
child 39 c0c2f28ace9c
--- 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;
     }