diff -r 29c8f9bc68e1 -r 5960d2d03390 vpnui/vpnmanagementui/src/vpnapiwrapper.cpp --- a/vpnui/vpnmanagementui/src/vpnapiwrapper.cpp Wed Sep 15 13:20:54 2010 +0300 +++ b/vpnui/vpnmanagementui/src/vpnapiwrapper.cpp Wed Oct 13 15:42:16 2010 +0300 @@ -15,14 +15,10 @@ * */ -#include -#include -#include #include "vpnapiwrapper.h" - +#include "vpnapi.h" #include "log_vpnmanagementui.h" -using namespace CMManager; CVpnApiWrapper* CVpnApiWrapper::NewL() { @@ -40,19 +36,20 @@ CVpnApiWrapper::~CVpnApiWrapper() { - LOG_("CVpnApiWrapper::~CVpnApiWrapper() called\n"); delete iPolicyList; Cancel(); - - iVpnExtApi.Close(); + iVpnApi.Close(); } void CVpnApiWrapper::DoCancel() { LOG_("CVpnApiWrapper::DoCancel() called\n"); - TInt i=iVpnExtApi.CancelPolicyProvision(); - + if (iOngoingTask == ETaskImportPolicies) + { + iVpnApi.CancelImport(); + } + iOngoingTask = ETaskNone; } @@ -60,10 +57,10 @@ { LOG_1("CVpnApiWrapper::RunL():%d", iStatus.Int()); - if (iOngoingTask == ETaskSynchroniseServer) - { - iCaller->NotifySynchroniseServerCompleteL(iStatus.Int()); - } + if (iOngoingTask == ETaskImportPolicies) + { + iCaller->NotifyPolicyImportComplete(iStatus.Int()); + } iOngoingTask = ETaskNone; } @@ -73,8 +70,9 @@ LOG_("CVpnApiWrapper::ConstructL() - begin"); CActiveScheduler::Add(this); + LOG_("CVpnApiWrapper::ConstructL() - begin 2"); + User::LeaveIfError(iVpnApi.Connect()); - User::LeaveIfError(iVpnExtApi.Connect()); LOG_("CVpnApiWrapper::ConstructL() - end"); } @@ -93,7 +91,7 @@ iPolicyList = new (ELeave) CArrayFixFlat(2); - User::LeaveIfError(iVpnExtApi.GetPolicyInfoList(iPolicyList)); + User::LeaveIfError(iVpnApi.GetPolicyInfoList(iPolicyList)); TKeyArrayFix Key( _FOFF(TVpnPolicyInfo,iName), ECmpCollated ); Key.SetPtr( iPolicyList ); @@ -107,10 +105,7 @@ LOG_("CVpnApiWrapper::DeletePolicyL() - begin"); TVpnPolicyId& policyToDelete = iPolicyList->At(aPolicyIndex).iId; - User::LeaveIfError(iVpnExtApi.DeletePolicy(policyToDelete)); - - //Delete all VPN APs pointing deleted policy - DeleteReferringVpnAps(policyToDelete); + User::LeaveIfError(iVpnApi.DeletePolicy(policyToDelete)); LOG_("CVpnApiWrapper::DeletePolicyL() - end"); } @@ -120,131 +115,29 @@ LOG_("CVpnApiWrapper::GetPolicyDetailsL() - begin"); TVpnPolicyId& policyOfInterest = iPolicyList->At(aPolicyIndex).iId; - User::LeaveIfError(iVpnExtApi.GetPolicyDetails(policyOfInterest, aPolicyDetails)); + User::LeaveIfError(iVpnApi.GetPolicyDetails(policyOfInterest, aPolicyDetails)); LOG_("CVpnApiWrapper::GetPolicyDetailsL() - end"); } - - -TInt CVpnApiWrapper::CreateServer( const TAgileProvisionApiServerSettings& aServerDetails) +void CVpnApiWrapper::ImportPolicyL(const TDesC& aImportDir, MVpnApiWrapperCaller* aCaller) { - - iPolicyServer.iServerNameLocal = aServerDetails.iServerNameLocal; - iPolicyServer.iServerUrl = aServerDetails.iServerUrl; - iPolicyServer.iSelection = aServerDetails.iSelection; - - return iVpnExtApi.CreateServer(iPolicyServer); - } + LOG_("CVpnApiWrapper::ImportPolicyL() - begin"); -TAgileProvisionApiServerListElem& CVpnApiWrapper::ServerListL() - { - TInt err(iVpnExtApi.ServerListL( iVpnPolicyServerList )); - User::LeaveIfError( err ); - - return iVpnPolicyServerList; - - } - -void CVpnApiWrapper::GetServerDetailsL( TAgileProvisionApiServerSettings& aServerDetails ) - { - User::LeaveIfError( iVpnExtApi.ServerDetails(aServerDetails)); - } + if (iOngoingTask != ETaskNone) + { + User::Leave(KErrInUse); + } -TInt CVpnApiWrapper::DeleteServer() - { - - return iVpnExtApi.DeleteServer(); + iCaller = aCaller; + iImportDir.Copy(aImportDir); - } + iVpnApi.ImportPolicy(iImportDir, iStatus); -void CVpnApiWrapper::SynchroniseServerL( MVpnApiWrapperCaller* aCaller ) - { - iCaller=aCaller; - iVpnExtApi.SynchronizePolicyServer(iStatus); + iOngoingTask = ETaskImportPolicies; SetActive(); - iOngoingTask = ETaskSynchroniseServer; - } - -void CVpnApiWrapper::CancelSynchronise() - { - - Cancel(); - - } - -void CVpnApiWrapper::DeleteReferringVpnAps(const TVpnPolicyId& aPolicyId) const - { - TRAP_IGNORE(DeleteReferringVpnApsL(aPolicyId)); + LOG_("CVpnApiWrapper::ImportPolicyL() - end"); } -void CVpnApiWrapper::DeleteReferringVpnApsL(const TVpnPolicyId& aPolicyId) const - { - RCmManager cmManager; - cmManager.OpenLC(); - - //First collect all VPN connection methods from destinations - RArray destinationArray; - cmManager.AllDestinationsL( destinationArray ); - CleanupClosePushL(destinationArray); - - for (TInt i = 0; i < destinationArray.Count(); ++i) - { - RCmDestination destination = cmManager.DestinationL( destinationArray[i] ); - CleanupClosePushL(destination); - - TInt connectionMethodCount = destination.ConnectionMethodCount(); - for (TInt j = connectionMethodCount - 1; j >= 0; --j) - { - RCmConnectionMethod connectionMethod = destination.ConnectionMethodL( j ); - CleanupClosePushL(connectionMethod); - - if ( connectionMethod.GetBoolAttributeL(ECmVirtual) && - connectionMethod.GetIntAttributeL( ECmBearerType ) == KPluginVPNBearerTypeUid) - { - HBufC* policyId = connectionMethod.GetStringAttributeL( EVpnServicePolicy ); - CleanupStack::PushL(policyId); - if (policyId->Compare(aPolicyId) == 0) - { - destination.DeleteConnectionMethodL( connectionMethod ); - destination.UpdateL(); - } - CleanupStack::PopAndDestroy(policyId); - } - CleanupStack::PopAndDestroy(); //connectionMethod - } - - CleanupStack::PopAndDestroy(); //destination - } - CleanupStack::PopAndDestroy(); //destinationArray - - //Second collect VPN connection methods, which are not inside a destination. - RArray connectionMethodArray; - cmManager.ConnectionMethodL( connectionMethodArray ); - CleanupClosePushL(connectionMethodArray); - - for ( TInt i = 0; i < connectionMethodArray.Count(); ++i) - { - RCmConnectionMethod connectionMethod = - cmManager.ConnectionMethodL( connectionMethodArray[i] ); - CleanupClosePushL(connectionMethod); - if ( connectionMethod.GetBoolAttributeL(ECmVirtual) && - connectionMethod.GetIntAttributeL( ECmBearerType ) == KPluginVPNBearerTypeUid) - { - HBufC* policyId = connectionMethod.GetStringAttributeL( EVpnServicePolicy ); - CleanupStack::PushL(policyId); - if (policyId->Compare(aPolicyId) == 0) - { - connectionMethod.DeleteL(); - connectionMethod.UpdateL(); - } - CleanupStack::PopAndDestroy(policyId); - } - CleanupStack::PopAndDestroy(); //connectionMethod - } - CleanupStack::PopAndDestroy(); //connectionMethodArray - - CleanupStack::PopAndDestroy(); //cmManager - } /***/