bearermanagement/S60MCPR/src/s60mcprerrorrecoveryactivity.cpp
branchRCL_3
changeset 69 cf1b3ddbe9a1
parent 58 83ca720e2b9a
equal deleted inserted replaced
65:14754bf06654 69:cf1b3ddbe9a1
   111             // Should never end up here!!
   111             // Should never end up here!!
   112             __ASSERT_DEBUG( EFalse, User::Panic( KS60MCprPanic, KPanicUnsupportedMCPRState ) );
   112             __ASSERT_DEBUG( EFalse, User::Panic( KS60MCprPanic, KPanicUnsupportedMCPRState ) );
   113             iContext.iNodeActivity->SetError( KErrGeneral );
   113             iContext.iNodeActivity->SetError( KErrGeneral );
   114             }
   114             }
   115 
   115 
       
   116 #ifdef _DEBUG
       
   117         // Purely for debugging purposes
       
   118         CS60MetaConnectionProvider& node = (CS60MetaConnectionProvider&)iContext.Node();
       
   119         if ( node.IsGoneDownRecoveryOngoing() )
       
   120             {
       
   121             // This transition is done in both connection start recovery and in
       
   122             // gone down recovery. If we are running gone down recovery, there
       
   123             // are two possible options what can happen next:
       
   124             // 1) If we are running mobility activity, the error can be ignored
       
   125             //    if there is another carrier available. In this case MPM will
       
   126             //    send a preffered carrier available soon after.
       
   127             // 2) In all other cases, the only way forward is error propagation
       
   128             //    (see gone down activity for further info). In this case, the
       
   129             //    gone down error is sent to clients and connection will be 
       
   130             //    teared down.
       
   131             //
       
   132             // In both cases, the GoneDownRecoveryOngoing flag is not cleared.
       
   133             // For case 1) above, it will be cleared after the connection has
       
   134             // roamed, and for option 2) it is pretty much irrelevant (we can
       
   135             // probably avoid a couple of race conditions by leaving the flag
       
   136             // active for the time being.
       
   137             S60MCPRLOGSTRING1("S60MCPR<%x>::TNoTagOrIgnoreErrorOrErrorTag::TransitionTag() MPM response while GoneDown recovery active",(TInt*)&iContext.Node());
       
   138             }
       
   139 #endif
       
   140         
   116         // Error transition
   141         // Error transition
   117         //
   142         //
   118         if ( !msg )
   143         if ( !msg )
   119             {
   144             {
   120             return KErrorTag | NetStateMachine::EForward;
   145             return KErrorTag | NetStateMachine::EForward;