diff -r c45d4fe2ff0a -r 0a9e01492035 connectionmonitoring/connmon/connectionmonitor/src/ConnMonNoti.cpp --- a/connectionmonitoring/connmon/connectionmonitor/src/ConnMonNoti.cpp Tue May 11 16:35:05 2010 +0300 +++ b/connectionmonitoring/connmon/connectionmonitor/src/ConnMonNoti.cpp Tue May 25 13:08:02 2010 +0300 @@ -21,6 +21,8 @@ #include #include #include +#include // KErrPacketDataTsyMaxPdpContextsReached +#include // KErrUmtsMaxNumOfContextExceededByNetwork #include "ConnMonServ.h" #include "ConnMonSess.h" @@ -562,10 +564,10 @@ } else { - iEventInfo.Reset(); - if ( iInfoBuf().iStage != static_cast< TInt >( iEventInfo.iData ) ) { + iEventInfo.Reset(); + // Send only new stage info to clients iEventInfo.iEventType = EConnMonConnectionStatusChange; iEventInfo.iConnectionId = iConnectionId; @@ -640,13 +642,18 @@ } } - if ( iInfoBuf().iError == KErrNone ) - { - // New request + if ( iInfoBuf().iError == KErrNone || + iInfoBuf().iError == KErrGprsInsufficientResources || // -4154 + iInfoBuf().iError == KErrPacketDataTsyMaxPdpContextsReached || // -6000 + iInfoBuf().iError == KErrUmtsMaxNumOfContextExceededByNetwork || // -4179 + iInfoBuf().iError == KErrUmtsMaxNumOfContextExceededByPhone ) // -4178 + { + // New request, DisconnectDlg might be shown for the error codes above. Receive(); } else { + LOGIT1("CProgressNotifier::RunL() - connection closing - iInfoBuf().iError: %d", iInfoBuf().iError) // Connection is closing. CSubConnUpDownNotifier* subConnUpDownNotifier = 0; TInt err = iServer->Iap()->GetSubConnUpDownNotifier(