linklayercontrol/networkinterfacemgr/agentprcore/src/CAgentAdapter.cpp
branchRCL_3
changeset 20 7e41d162e158
parent 15 4214adf9e0d3
child 21 abbed5a4b42a
--- a/linklayercontrol/networkinterfacemgr/agentprcore/src/CAgentAdapter.cpp	Thu Jul 15 20:25:02 2010 +0300
+++ b/linklayercontrol/networkinterfacemgr/agentprcore/src/CAgentAdapter.cpp	Thu Aug 19 11:25:30 2010 +0300
@@ -71,7 +71,7 @@
     : iAgentScpr(aAgentScpr),
     iAgentState(EDisconnected),
     iAgentConnectType(EAgentNone),
-    iLastProgress(KFinishedSelection,KErrNone)
+    iLastProgress(KFinishedSelection,KErrNone),iAgentErrorState(EFalse)
     {
     }
 
@@ -148,16 +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,7 +309,9 @@
             }
         else
             {
-            iLastProgress.iError = aStatus;            
+            iLastProgress.iError = aStatus;
+            // set the agent state to EDisconnecting
+            iAgentState = EDisconnecting;
             iAgent->Disconnect(aStatus);
             }
         }
@@ -392,6 +396,7 @@
     else
         {
         iAgentScpr.Error(iLastProgress);
+        iAgentErrorState = ETrue;
         }
     }