--- 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;
}
}