diff -r abbed5a4b42a -r 8d540f55e491 linklayercontrol/networkinterfacemgr/agentprcore/src/CAgentAdapter.cpp --- 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; } }