networkcontrol/iptransportlayer/src/netmcpr.cpp
branchRCL_3
changeset 53 7e41d162e158
parent 0 af10295192d8
child 75 c1029e558ef5
--- a/networkcontrol/iptransportlayer/src/netmcpr.cpp	Thu Jul 15 20:25:02 2010 +0300
+++ b/networkcontrol/iptransportlayer/src/netmcpr.cpp	Thu Aug 19 11:25:30 2010 +0300
@@ -33,6 +33,8 @@
 
 #ifdef SYMBIAN_ADAPTIVE_TCP_RECEIVE_WINDOW
 #include <tcpdfltrecvwin.h>
+// Custom type for WLAN bearer
+const TUint32 KNetMcprWlanBearer = 0x3C;
 #endif //SYMBIAN_ADAPTIVE_TCP_RECEIVE_WINDOW
 #include <commsdattypeinfov1_1_internal.h>
 
@@ -477,8 +479,11 @@
    	//TCP receive window size for ethernet
    	iBearerInfoMap.Insert(KEthernetBearer,KBearerEthernetWinSize);
 
+    //TCP receive window size for WLAN bearer
+    iBearerInfoMap.Insert(KNetMcprWlanBearer,KBearerWlanWinSize);
+   	
    	//TCP receive window size for other bearer
-   	iBearerInfoMap.Insert(KDefaultBearer,KBearerWlanWinSize);
+   	iBearerInfoMap.Insert(KDefaultBearer,KBearerDefaultWinSize);
 	}
 
 void CDfltTCPReceiveWindowSize::SetTcpWin(TUint aBearerType)
@@ -486,8 +491,20 @@
  * Set TCP receive window 
  */
 	{
-	//Set the TCP Receive Window.
-	iWinSize = *static_cast<TUint*>(iBearerInfoMap.Find(aBearerType));
+    // Get bearer window size from hash table
+    TUint* iWinSizePtr = static_cast<TUint*>(iBearerInfoMap.Find(aBearerType));
+
+    // Check whether bearer type was known 
+    if ( iWinSizePtr != NULL )
+        {
+        // Set the TCP Receive Window
+        iWinSize = *iWinSizePtr;
+        }
+    else
+        {
+        // Use default window
+        iWinSize = KBearerDefaultWinSize;
+        }
 	  
 	//Set the Max TCP receive Window.
 	SetMaxWinSize(aBearerType);
@@ -511,12 +528,16 @@
 		//
 			iMaxWinSize = KBearerHsdpaWinSize; 
 			break; 
-		case KEthernetBearer:
-			iMaxWinSize = KEthernetMaxWinSize;
+		case KNetMcprWlanBearer:
+			iMaxWinSize = KBearerWlanWinSize;
 			break;
    
+        case KEthernetBearer:
+            iMaxWinSize = KEthernetMaxWinSize;
+            break;
+			
 		default:
-			iMaxWinSize = KEthernetMaxWinSize;
+			iMaxWinSize = KBearerDefaultMaxWinSize;
 			break;
 		}
 	}