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