connectionmonitoring/connmon/connectionmonitor/src/ConnMonNoti.cpp
changeset 32 5c4486441ae6
parent 18 fcbbe021d614
child 44 a0c4ceac30d0
child 53 4af712113915
equal deleted inserted replaced
31:c16e04725da3 32:5c4486441ae6
    19 #include <es_enum_partner.h>
    19 #include <es_enum_partner.h>
    20 #endif
    20 #endif
    21 #include <e32base.h>
    21 #include <e32base.h>
    22 #include <rmmcustomapi.h>
    22 #include <rmmcustomapi.h>
    23 #include <featmgr.h>
    23 #include <featmgr.h>
       
    24 #include <gsmerror.h>     // KErrPacketDataTsyMaxPdpContextsReached 
       
    25 #include <etelpckt.h>     // KErrUmtsMaxNumOfContextExceededByNetwork
    24 
    26 
    25 #include "ConnMonServ.h"
    27 #include "ConnMonServ.h"
    26 #include "ConnMonSess.h"
    28 #include "ConnMonSess.h"
    27 #include "CEventQueue.h"
    29 #include "CEventQueue.h"
    28 #include "ConnMonIAP.h"
    30 #include "ConnMonIAP.h"
   560         {
   562         {
   561         LOGIT2("SERVER: connection status event FAILED <%d>, id %d", iStatus.Int(), iConnectionId)
   563         LOGIT2("SERVER: connection status event FAILED <%d>, id %d", iStatus.Int(), iConnectionId)
   562         }
   564         }
   563     else
   565     else
   564         {
   566         {
   565         iEventInfo.Reset();
       
   566 
       
   567         if ( iInfoBuf().iStage != static_cast< TInt >( iEventInfo.iData ) )
   567         if ( iInfoBuf().iStage != static_cast< TInt >( iEventInfo.iData ) )
   568             {
   568             {
       
   569             iEventInfo.Reset();
       
   570             
   569             // Send only new stage info to clients
   571             // Send only new stage info to clients
   570             iEventInfo.iEventType       = EConnMonConnectionStatusChange;
   572             iEventInfo.iEventType       = EConnMonConnectionStatusChange;
   571             iEventInfo.iConnectionId    = iConnectionId;
   573             iEventInfo.iConnectionId    = iConnectionId;
   572             iEventInfo.iSubConnectionId = iSubConnectionId;
   574             iEventInfo.iSubConnectionId = iSubConnectionId;
   573             iEventInfo.iData            = iInfoBuf().iStage;
   575             iEventInfo.iData            = iInfoBuf().iStage;
   638                 {
   640                 {
   639                 LOGIT("SERVER: This is old info. Packet was filtered out.")
   641                 LOGIT("SERVER: This is old info. Packet was filtered out.")
   640                 }
   642                 }
   641             }
   643             }
   642 
   644 
   643         if ( iInfoBuf().iError == KErrNone )
   645         // New request
   644             {
   646         Receive();
   645             // New request
   647             
   646             Receive();
   648         if ( iInfoBuf().iError == KErrDisconnected )
   647             }
   649             {
   648         else
   650             // Enable WLAN scan when IAP availability is check for the
   649             {
   651             // next time because current bearer has been lost (-36).
   650             // Connection is closing.
   652             // MPM needs a fresh list of available iaps.
   651             CSubConnUpDownNotifier* subConnUpDownNotifier = 0;
   653             iServer->Iap()->EnableWlanScan();
   652             TInt err = iServer->Iap()->GetSubConnUpDownNotifier(
       
   653                     iConnectionId,
       
   654                     &subConnUpDownNotifier );
       
   655 
       
   656             if ( KErrNone == err )
       
   657                 {
       
   658                 // Subconn down notifier has stopped and allinterface closed event has arrived
       
   659                 if ( !subConnUpDownNotifier->IsActive() )
       
   660                     {
       
   661                     subConnUpDownNotifier->SendDeletedEvent();
       
   662                     }
       
   663                 }
       
   664 
       
   665             if ( iInfoBuf().iError == KErrDisconnected )
       
   666                 {
       
   667                 // Enable WLAN scan when IAP availability is check for the
       
   668                 // next time because current bearer has been lost (-36).
       
   669                 // MPM needs a fresh list of available iaps.
       
   670                 iServer->Iap()->EnableWlanScan();
       
   671                 }
       
   672             }
   654             }
   673         }
   655         }
   674     //LOGEXITFN("CProgressNotifier::RunL()")
   656     //LOGEXITFN("CProgressNotifier::RunL()")
   675     }
   657     }
   676 
   658