diff -r 9f263f780e41 -r 0c32cf868819 bearermanagement/mpm/src/mpmserversession.cpp --- a/bearermanagement/mpm/src/mpmserversession.cpp Wed Oct 27 17:51:11 2010 +0300 +++ b/bearermanagement/mpm/src/mpmserversession.cpp Wed Oct 27 18:01:02 2010 +0300 @@ -111,8 +111,6 @@ // CMPMServerSession::~CMPMServerSession() { - delete iConfirmDlgRoaming; - delete iIapSelection; // Remove serverside objects for notification session. // @@ -142,6 +140,9 @@ // Cancel discreet popup iMyServer.ConnUiUtils()->CancelConnectingViaDiscreetPopup(); + + delete iConfirmDlgRoaming; + delete iIapSelection; } @@ -3447,10 +3448,26 @@ iMyServer.UserConnection() ) { MPMLOGSTRING( "CMPMServerSession::UseUserConnPref - User connection active" ); + + // If user connection is blacklisted for this connection, don't use it. + RArray blacklistedIaps; + CleanupClosePushL( blacklistedIaps ); + iMyServer.GetBlacklistedIAP( iConnId, blacklistedIaps ); + TInt blacklistedIapFoundError = blacklistedIaps.Find( iMyServer.UserConnPref()->IapId() ); + CleanupStack::PopAndDestroy( &blacklistedIaps ); + if ( blacklistedIapFoundError != KErrNotFound ) + { + MPMLOGSTRING( "CMPMServerSession::UseUserConnPref -\ + User connection blacklisted -> don't use user connection" ); + return EFalse; + } + // Check whether default connection will be used if ( iIapSelection->MpmConnPref().ConnType() == TMpmConnPref::EConnTypeDefault ) { + MPMLOGSTRING( "CMPMServerSession::UseUserConnPref -\ + Default connection -> use user connection" ); return ETrue; } else if ( ( iIapSelection->MpmConnPref().ConnType() == @@ -3458,7 +3475,7 @@ PrefsAllowWlan() ) { MPMLOGSTRING( "CMPMServerSession::UseUserConnPref -\ - Prompt from the user" ); + Prompt from the user -> use user connection" ); // Prompt from the user -> use user connection return ETrue; } @@ -3477,6 +3494,8 @@ if ( ( error == KErrNone ) && ( isInternetSnap ) && PrefsAllowWlan() ) { + MPMLOGSTRING( "CMPMServerSession::UseUserConnPref -\ + Application preferencies in Internet SNAP -> use user connection" ); // Iap belongs to internet snap -> use user connection return ETrue; }