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; |