equal
deleted
inserted
replaced
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 |