linklayercontrol/networkinterfacemgr/agentprcore/src/CAgentAdapter.cpp
branchRCL_3
changeset 22 8d540f55e491
parent 21 abbed5a4b42a
--- a/linklayercontrol/networkinterfacemgr/agentprcore/src/CAgentAdapter.cpp	Tue Aug 31 16:45:15 2010 +0300
+++ b/linklayercontrol/networkinterfacemgr/agentprcore/src/CAgentAdapter.cpp	Wed Sep 01 12:33:58 2010 +0100
@@ -71,7 +71,7 @@
     : iAgentScpr(aAgentScpr),
     iAgentState(EDisconnected),
     iAgentConnectType(EAgentNone),
-    iLastProgress(KFinishedSelection,KErrNone)
+    iLastProgress(KFinishedSelection,KErrNone),iAgentErrorState(EFalse)
     {
     }
 
@@ -148,15 +148,18 @@
 void CAgentAdapter::DisconnectAgent(TInt aReason)
     {
     if (iAgentState == EConnecting)
-        {
+        {    
         iAgent->CancelConnect();
         }
     else if (iAgentState == EReconnecting)
         {
         iAgent->CancelReconnect();
         }
-    iAgentState = EDisconnecting;
-    iAgent->Disconnect(aReason);
+    if (iAgentState != EDisconnecting)
+        {        
+        iAgentState = EDisconnecting;
+    	iAgent->Disconnect(aReason);
+        }
     }
 
 
@@ -307,6 +310,8 @@
         else
             {
             iLastProgress.iError = aStatus;
+            // set the agent state to EDisconnecting
+            iAgentState = EDisconnecting;
             iAgent->Disconnect(aStatus);
             }
         }
@@ -348,9 +353,9 @@
         {
 #ifdef __CFLOG_ACTIVE
     	TRAPD(err,
-    		//iAgentScpr.ProgressL(KConnectionUninitialised);
     		iAgentState = EDisconnected;
     		iAgentScpr.ConnectionDownL();
+    	//	iAgentScpr.ProgressL(KConnectionUninitialised);
     		);
             if (err != KErrNone)
                 {
@@ -359,9 +364,9 @@
                 }
 #else
     	TRAP_IGNORE(
-            //iAgentScpr.ProgressL(KConnectionUninitialised);
     		iAgentState = EDisconnected;
     		iAgentScpr.ConnectionDownL();
+            //iAgentScpr.ProgressL(KConnectionUninitialised);
     		);
 #endif
         }
@@ -391,6 +396,7 @@
     else
         {
         iAgentScpr.Error(iLastProgress);
+        iAgentErrorState = ETrue;
         }
     }