bearermanagement/mpm/src/mpmdisconnectdlg.cpp
branchRCL_3
changeset 55 fc7b30ed2058
parent 0 5a93021fdf25
equal deleted inserted replaced
54:984e13af52c4 55:fc7b30ed2058
   116 void CMPMDisconnectDlg::UserSelectedOk( TInt aError )
   116 void CMPMDisconnectDlg::UserSelectedOk( TInt aError )
   117     {
   117     {
   118     MPMLOGSTRING( "CMPMDisconnectDlg::UserSelectedOk: \
   118     MPMLOGSTRING( "CMPMDisconnectDlg::UserSelectedOk: \
   119 Tell BM to ignore error and do reselection" )
   119 Tell BM to ignore error and do reselection" )
   120 
   120 
       
   121     TInt error = aError;
       
   122 
       
   123     // Get the current connection IapId for this connId 
       
   124     TUint32 iapId = iSession.MyServer().GetBMIap( iSession.ConnectionId() );
       
   125     
       
   126     TBMNeededAction neededActionForPendingMsgs( EIgnoreError );
       
   127     iSession.MyServer().HandlePendingMsgs( iapId, 
       
   128                                            KErrNone,
       
   129                                            &error,
       
   130                                            &neededActionForPendingMsgs );
       
   131 										   
   121     TBMNeededAction neededAction( EDoReselection );
   132     TBMNeededAction neededAction( EDoReselection );
   122     TInt error = aError;
       
   123 
       
   124     iSession.ProcessErrorComplete( KErrNone,
   133     iSession.ProcessErrorComplete( KErrNone,
   125                                    &error,
   134                                    &error,
   126                                    &neededAction );
   135                                    &neededAction );
   127     }
   136     }
   128 
   137 
   154 
   163 
   155     // Get the state of the connection for this Iap Id.
   164     // Get the state of the connection for this Iap Id.
   156     // 
   165     // 
   157     TConnectionState state;
   166     TConnectionState state;
   158     iSession.MyServer().GetConnectionState( connId, state );
   167     iSession.MyServer().GetConnectionState( connId, state );
       
   168 
       
   169     // Get the current connection IapId for this connId 
       
   170     //
       
   171     TUint32 currentIap = iSession.MyServer().GetBMIap( connId );
   159 
   172 
   160     if ( state == EStarting )
   173     if ( state == EStarting )
   161         {
   174         {
   162         MPMLOGSTRING2( "CMPMDisconnectDlg::UserSelectedCancelL: \
   175         MPMLOGSTRING2( "CMPMDisconnectDlg::UserSelectedCancelL: \
   163 Tell BM to end the client connection with error code %i", error )
   176 Tell BM to end the client connection with error code %i", error )
   170         // New notification will be attempted with latest
   183         // New notification will be attempted with latest
   171         // available IAPs
   184         // available IAPs
   172         //
   185         //
   173         iSession.StoredIapInfo().ResetStoredIapInfo();
   186         iSession.StoredIapInfo().ResetStoredIapInfo();
   174         neededAction = EIgnoreError;
   187         neededAction = EIgnoreError;
   175 
       
   176         // Get the current connection IapId for this connId 
       
   177         //
       
   178         TUint32 currentIap = iSession.MyServer().GetBMIap( connId );
       
   179 
   188 
   180         TConnMonIapInfo availableIAPs;
   189         TConnMonIapInfo availableIAPs;
   181         availableIAPs = iSession.GetAvailableIAPs();
   190         availableIAPs = iSession.GetAvailableIAPs();
   182 
   191 
   183         iSession.MyServer().HandleServerBlackListIap( connId, 
   192         iSession.MyServer().HandleServerBlackListIap( connId, 
   206         {
   215         {
   207         MPMLOGSTRING2( "CMPMDisconnectDlg::UserSelectedCancelL: \
   216         MPMLOGSTRING2( "CMPMDisconnectDlg::UserSelectedCancelL: \
   208 Unsupported state %d", state )
   217 Unsupported state %d", state )
   209         }
   218         }
   210 
   219 
       
   220     iSession.MyServer().HandlePendingMsgs( currentIap,
       
   221                                            KErrNone,
       
   222                                            errorPtr,
       
   223                                            &neededAction );
       
   224 
   211     iSession.ProcessErrorComplete( KErrNone,
   225     iSession.ProcessErrorComplete( KErrNone,
   212                                    errorPtr,
   226                                    errorPtr,
   213                                    &neededAction );
   227                                    &neededAction );
   214     }
   228     }
   215 
   229 
   227     // 
   241     // 
   228     MPMLOGSTRING2(
   242     MPMLOGSTRING2(
   229         "CMPMDisconnectDlg::RunError: RunL made a leave with error = %i", 
   243         "CMPMDisconnectDlg::RunError: RunL made a leave with error = %i", 
   230         aError )
   244         aError )
   231 
   245 
       
   246     // Get the current connection IapId for this connId 
       
   247     TUint32 iapId = iSession.MyServer().GetBMIap( iSession.ConnectionId() );
       
   248 
       
   249     iSession.MyServer().HandlePendingMsgs( iapId, aError, NULL, NULL );
       
   250 
   232     iSession.ProcessErrorComplete( aError, NULL, NULL );
   251     iSession.ProcessErrorComplete( aError, NULL, NULL );
   233 
   252 	
   234     // Return KErrNone to prevent panic 
   253     // Return KErrNone to prevent panic 
   235     // 
   254     // 
   236     return KErrNone;
   255     return KErrNone;
   237     }
   256     }
   238 
   257