telephonyserverplugins/simtsy/src/CSimContextHelper.cpp
changeset 62 8ef833fbf5aa
parent 42 3adadc800673
--- a/telephonyserverplugins/simtsy/src/CSimContextHelper.cpp	Tue Jul 06 15:36:38 2010 +0300
+++ b/telephonyserverplugins/simtsy/src/CSimContextHelper.cpp	Wed Aug 18 10:57:47 2010 +0300
@@ -111,8 +111,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) ||
@@ -120,9 +118,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;