telephonyserverplugins/simtsy/src/CSimContextHelper.cpp
branchRCL_3
changeset 18 17af172ffa5f
parent 0 3553901f7fa8
child 19 630d2f34d719
--- a/telephonyserverplugins/simtsy/src/CSimContextHelper.cpp	Thu Jul 15 19:58:53 2010 +0300
+++ b/telephonyserverplugins/simtsy/src/CSimContextHelper.cpp	Thu Aug 19 11:03:36 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
 // under the terms of "Eclipse Public License v1.0"
@@ -105,8 +105,6 @@
 		(aContextConfigLHS.iProtocolConfigOption.iAuthProtocol != aContextConfigRHS.iProtocolConfigOption.iAuthProtocol) ||
 		(aContextConfigLHS.iProtocolConfigOption.iUsername.Compare(aContextConfigRHS.iProtocolConfigOption.iUsername) != 0) ||
 		(aContextConfigLHS.iProtocolConfigOption.iPassword.Compare(aContextConfigRHS.iProtocolConfigOption.iPassword) != 0) ||
-		(aContextConfigLHS.iProtocolConfigOption.iChallenge.Compare(aContextConfigRHS.iProtocolConfigOption.iChallenge) != 0) ||
-		(aContextConfigLHS.iProtocolConfigOption.iResponse.Compare(aContextConfigRHS.iProtocolConfigOption.iResponse) != 0) ||
 		// These line are commented as these parameters currently are usually returned by the network and not required for
 		// setting the context configuration
 		//		(aContextConfigLHS.iProtocolConfigOption.iPrimaryDNS.Compare(aContextConfigRHS.iProtocolConfigOption.iPrimaryDNS) != 0) ||
@@ -114,9 +112,19 @@
 		(aContextConfigLHS.iProtocolConfigOption.iId != aContextConfigRHS.iProtocolConfigOption.iId) ||
 		(aContextConfigLHS.iPdpHeaderCompression != aContextConfigRHS.iPdpHeaderCompression) ||
 		(aContextConfigLHS.iPdpDataCompression != aContextConfigRHS.iPdpDataCompression))
-		{
+	    // challenge is generated randomly and response is generated using MD5 in CHAP protocol, so it is not possible to check
+	    {
 		return EFalse;
 		}
+	else if (aContextConfigLHS.iProtocolConfigOption.iAuthProtocol != RPacketContext::EProtocolCHAP) 
+	    {// if not CHAP we still try to check challenge and response just in case
+        if ((aContextConfigLHS.iProtocolConfigOption.iChallenge.Compare(aContextConfigRHS.iProtocolConfigOption.iChallenge) != 0) ||
+	        (aContextConfigLHS.iProtocolConfigOption.iResponse.Compare(aContextConfigRHS.iProtocolConfigOption.iResponse) != 0))
+            {
+            return EFalse;
+            }
+	    }
+
 		// else considered equal.
 		
 	return ETrue;