supl/locationsuplfw/protocolhandlerapi/src/epos_csuplconnection.cpp
branchRCL_3
changeset 12 f3bd2a0973b9
parent 0 667063e416a2
child 22 4c4ed41530db
child 42 02ba3f1733c6
--- a/supl/locationsuplfw/protocolhandlerapi/src/epos_csuplconnection.cpp	Fri Feb 19 23:14:27 2010 +0200
+++ b/supl/locationsuplfw/protocolhandlerapi/src/epos_csuplconnection.cpp	Fri Mar 12 15:44:22 2010 +0200
@@ -406,12 +406,14 @@
 			}
     	// Socket Connect has completed
     	case EConnecting:
+    		iTimer->Cancel(); // Valid SUPL server, Cancel timer started for this purpose
     		if(iStatus == KErrNone)
     		{
 				if(iVariantEnabled)
 					{
 		    		iTrace->Trace(_L("CSuplConnection::RunL Making Secure Connection"), KTraceFileName, __LINE__);
 		    		iState = EMakingSecureConn;
+		    		
 		    		MakeSecureConnection();
 					}
 				else
@@ -603,7 +605,7 @@
     {
     	// Log
     	iTrace->Trace(_L("CSuplConnection::CancelConnect"), KTraceFileName, __LINE__);
-
+		iTimer->Cancel();  // Cancel all timers
         if (iConnArray.Count() > 1)
             {                
             CompleteConnectCancel(aStatus);
@@ -774,7 +776,17 @@
                 {
                 iResolver.Cancel();                        
 				break;	
-                }                
+                }     
+                case EConnecting:
+                	{
+                		iState = EFailure;
+    					iSocket.Close();
+						#ifndef __WINS__  // Bug Fix for close connection
+						// Close the RConnection
+						iConnection.Close();
+						#endif
+        				break;     
+      				}      
 			default:
 				{
 				if(iVariantEnabled)
@@ -1143,6 +1155,7 @@
     	iTrace->Trace(_L("CSuplConnection::Connect(void)"), KTraceFileName, __LINE__);
     	
     	iState = EConnecting;
+    	iTimer->Start(4000000); // For DNS pass case , but not a valid SUPL server
     	iSocket.Connect(iAddress, iStatus);
 	   	SetActive();
 	}