syncmlfw/dm/provisioningadapter/src/NSmlDmProvisioningAdapter.cpp
branchRCL_3
changeset 26 19bba8228ff0
parent 25 b183ec05bd8c
child 27 5cc2995847ea
--- a/syncmlfw/dm/provisioningadapter/src/NSmlDmProvisioningAdapter.cpp	Tue Aug 31 16:04:06 2010 +0300
+++ b/syncmlfw/dm/provisioningadapter/src/NSmlDmProvisioningAdapter.cpp	Wed Sep 01 12:27:42 2010 +0100
@@ -23,14 +23,14 @@
 #include <cdbcols.h>			 // CommsDB columname defs
 #include <stringresourcereader.h>
 #include <barsread.h>
-#include <nsmldmprovisioningadapter.rsg>
+#include <NSmlDMProvisioningAdapter.rsg>
 #include <f32file.h>
 #include <bautils.h>
+#include <ApUtils.h>
 #include <utf.h>
 #include <featmgr.h>
 #include <barsc.h> 
-#include <cmconnectionmethoddef.h>
-#include <cmmanagerext.h>
+
 #include <nsmldebug.h>
 #include <CWPCharacteristic.h>
 #include <CWPParameter.h>
@@ -40,8 +40,6 @@
 #include "NSmlTransportHandler.h"
 
 #include <data_caging_path_literals.hrh>
-#define KMINPORT 0
-#define KMAXPORT 65536
 
 // ============================ MEMBER FUNCTIONS ===============================
 
@@ -61,6 +59,7 @@
 // -----------------------------------------------------------------------------
 void CNSmlDmProvisioningAdapter::ConstructL()
 	{
+    iLock = EFalse;
 	iSession.OpenL();
 	FeatureManager::InitializeLibL();
 	}
@@ -186,35 +185,7 @@
 		iAuthSecretLimitIndicator = 0;
 		User::Leave(KErrOverflow);
 	}
-	
-	//check for incorrect port
-	//Only port address between 1 to 65536 is allowed. 
-	if( iProfiles[aItem]->iPort )
-		{
-			const TDesC& port = iProfiles[aItem]->iPort->Des();
-			TInt len = port.Length();
-			if(len > 0)
-			{
-        HBufC* bufPort = port.AllocL();
-        TLex aLex(*bufPort);
-        TInt portNum ;
-        TInt err = aLex.Val(portNum);
-        if(bufPort)
-        {
-          delete bufPort;
-          bufPort = NULL;
-        }
-	    if(err != KErrNone)
-	    {
-          User::Leave(KErrGeneral);
-	    }
-	    if(!((portNum > KMINPORT) && (portNum < KMAXPORT)))
-	    {
-	      User::Leave(KErrGeneral);       
-	    }
-		}
-	}
-	
+
 	TPckgBuf<TUint32> uid;
 	
 	RSyncMLDevManProfile profile,ProfileToSearch;
@@ -247,9 +218,8 @@
 		TInt isprofilelocked=profile.ProfileLocked(EFalse, EFalse);
 		if (isprofilelocked == 1)
 		 {
-		  
-      profile.Close(); 
-      User::Leave(KErrAccessDenied); 	 	
+            profile.ProfileLocked(ETrue, EFalse);
+            iLock = ETrue;	 	
 		 }
 		
 		}
@@ -289,6 +259,14 @@
 	    }
 		    
 	// creates profile -> must be done before opening the connection
+
+	
+	if(iLock)
+	    {
+      profile.ProfileLocked(ETrue, ETrue);
+      iLock = EFalse;
+	    }
+	    
 	profile.UpdateL();
 	
 	RSyncMLConnection connection;
@@ -298,16 +276,13 @@
 	if( iProfiles[aItem]->iVisitParameter && iProfiles[aItem]->iVisitParameter->Data().Length() == uid.MaxLength() )
 		{
 		uid.Copy( iProfiles[aItem]->iVisitParameter->Data() );
-		
-		RCmManagerExt  cmmanagerExt;
-		cmmanagerExt.OpenL();
-		CleanupClosePushL(cmmanagerExt);
-		RCmConnectionMethodExt cm;
-		cm = cmmanagerExt.ConnectionMethodL( uid());
-		CleanupClosePushL( cm );
+
+		CCommsDatabase* commDb = CCommsDatabase::NewL();
+		CleanupStack::PushL( commDb );
+		CApUtils* aputils = CApUtils::NewLC( *commDb );
 
 		TUint apId = 0;
-		TRAPD( ERROR, apId = cm.GetIntAttributeL(CMManager::ECmIapId) );
+		TRAPD( ERROR, apId = aputils->IapIdFromWapIdL( uid() ) );
 		if( ERROR != KErrNone )
 			{
 			apId = GetDefaultIAPL();
@@ -319,7 +294,7 @@
 
 		connection.SetPropertyL( KNSmlIAPId, *iapBuf );
 		
-		CleanupStack::PopAndDestroy( 3 ); //cmmanager,cm, iapBuf
+		CleanupStack::PopAndDestroy( 3 ); //commdb, aputils, iapBuf		
 		}
 		
 	if( iProfiles[aItem]->iHostAddress )
@@ -459,7 +434,7 @@
 	    
 	    CleanupStack::PopAndDestroy(alertMessage);	    
 	    }
-
+	    
 	CleanupStack::PopAndDestroy( &profile );
 
 	_DBG_FILE("CNSmlDmProvisioningAdapter::SaveL(): end");