bearermanagement/mpm/src/mpmserversession.cpp
changeset 72 0c32cf868819
parent 71 9f263f780e41
child 73 70ee5458c95d
--- 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<TUint32> 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;
                 }