bearermanagement/S60MCPR/src/s60mcprstates.cpp
changeset 2 086aae6fc07e
parent 1 40cb640ef159
child 12 ea6e024ea6f9
child 18 fcbbe021d614
--- a/bearermanagement/S60MCPR/src/s60mcprstates.cpp	Thu Jan 07 12:56:54 2010 +0200
+++ b/bearermanagement/S60MCPR/src/s60mcprstates.cpp	Mon Jan 18 20:33:49 2010 +0200
@@ -465,6 +465,15 @@
          ( aCompletedRequest.iNeededAction == EIgnoreError ||
            aCompletedRequest.iNeededAction == EDoReselection ))
         {
+        // Send error recovery propagated msg to self. This way a potential mobility 
+        // handshake knows that there were a problem with migrated IAP.
+        // In case there isn't mobility active available this just results as stray msg
+        if ( aCompletedRequest.iNeededAction == EIgnoreError )
+            {
+            iNode.SelfInterface().PostMessage( iNode.Id(), 
+                    TCFS60MCPRMessage::TMPMStartupErrorIgnoredMsg().CRef() );
+            }
+        
         TCFS60MCPRMessage::TMPMProcessErrorCompletedMsg msg( (TInt)aCompletedRequest.iNeededAction );
         iLastRequestOriginator.ReplyTo( iNode.Id(), msg );
         iLastRequestOriginator.Close();
@@ -480,6 +489,8 @@
             ASSERT( aCompletedRequest.iError != KErrNone );
             err = aCompletedRequest.iError != KErrNone ? aCompletedRequest.iError : KErrGeneral;
             }
+            
+        // Send error msg indicatating the processerror has been completed.
         TEBase::TError msg( TCFS60MCPRMessage::TMPMProcessErrorCompletedMsg::Id(), err );
         iLastRequestOriginator.ReplyTo( iNode.Id(), msg );
         iLastRequestOriginator.Close();