--- a/creator/src/creator_connectionmethod.cpp Thu Aug 19 09:55:38 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,948 +0,0 @@
-/*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-*
-*/
-
-
-#include "creator_connectionmethod.h"
-#include "creator_traces.h"
-
-using namespace CMManager;
-
-#include <cmpluginpacketdatadef.h>
-#include <cmplugincsddef.h>
-#include <cmpluginhscsddef.h>
-#include <cmmanagerext.h>
-#include <cmdestinationext.h>
-#include <cmpluginembdestinationdef.h>
-#include <cmpluginvpndef.h>
-#include <cmpluginlanbasedef.h>
-#include <cmdefconnvalues.h>
-#include <cmconnectionmethoddef.h>
-
-
-#include <wlanmgmtinterface.h>
-#include <wlanmgmtclient.h>
-#include <wlanmgmtclient.inl>
-#include <wlanmgmtcommon.h>
-#include <wlanscaninfo.h>
-#include <wlanscaninfo.inl>
-#include <wlanscaninfointerface.h>
-
-//#include <WEPSecuritySettingsUI.h>//For WEP setting
-//#include <dbcreatorcommon.h>
-
-static const TInt KConnectionSettingssFieldLength = 128;
-
-_LIT(KCreatorConnectionSettingssPrefixName, "CR_");
-
-//----------------------------------------------------------------------------
-
-CConnectionSettingsParameters::CConnectionSettingsParameters()
- {
- LOGSTRING("Creator: CConnectionSettingsParameters::CConnectionSettingsParameters");
-
- iConnectionName = HBufC::New(KConnectionSettingssFieldLength);
- iStartPage = HBufC::New(KConnectionSettingssFieldLength);
- iLoginName = HBufC::New(KConnectionSettingssFieldLength);
- iLoginPass = HBufC::New(KConnectionSettingssFieldLength);
- iIPAddr = HBufC::New(KConnectionSettingssFieldLength);
- iIP4NameServer1 = HBufC::New(KConnectionSettingssFieldLength);
- iIP4NameServer2 = HBufC::New(KConnectionSettingssFieldLength);
- iDefaultTelNumber = HBufC::New(KConnectionSettingssFieldLength);
- iProxyServerAddress = HBufC::New(KConnectionSettingssFieldLength);
- iSubnetMask = HBufC::New(KConnectionSettingssFieldLength);
- iGatewayAddress = HBufC::New(KConnectionSettingssFieldLength);
- iWLANName = HBufC::New(KConnectionSettingssFieldLength);
- iWlanIpAddr = HBufC::New(KConnectionSettingssFieldLength);
- iIP6NameServer1 = HBufC::New(KConnectionSettingssFieldLength);
- iIP6NameServer2 = HBufC::New(KConnectionSettingssFieldLength);
- }
-
-CConnectionSettingsParameters::~CConnectionSettingsParameters()
- {
- LOGSTRING("Creator: CConnectionSettingssParameters::~CConnectionSettingssParameters");
-
- delete iProxyServerAddress;
- delete iDefaultTelNumber;
- delete iIP4NameServer2;
- delete iIP4NameServer1;
- delete iIPAddr;
- delete iLoginPass;
- delete iLoginName;
- delete iStartPage;
- delete iConnectionName;
- delete iSubnetMask;
- delete iGatewayAddress;
- delete iWLANName;
- delete iWlanIpAddr;
- delete iIP6NameServer1;
- delete iIP6NameServer2;
- }
-
-//----------------------------------------------------------------------------
-
-CCreatorConnectionSettings* CCreatorConnectionSettings::NewL(CCreatorEngine* aEngine)
- {
- CCreatorConnectionSettings* self = CCreatorConnectionSettings::NewLC(aEngine);
- CleanupStack::Pop(self);
- return self;
- }
-
-CCreatorConnectionSettings* CCreatorConnectionSettings::NewLC(CCreatorEngine* aEngine)
- {
- CCreatorConnectionSettings* self = new (ELeave) CCreatorConnectionSettings;
- CleanupStack::PushL(self);
- self->ConstructL(aEngine);
- return self;
- }
-
-CCreatorConnectionSettings::CCreatorConnectionSettings()
- {
- }
-
-void CCreatorConnectionSettings::ConstructL(CCreatorEngine* aEngine)
- {
- LOGSTRING("Creator: CCreatorConnectionSettings::ConstructL");
-
- iEngine = aEngine;
-
- iCmManagerExt.CreateTablesAndOpenL();
- }
-
-CCreatorConnectionSettings::~CCreatorConnectionSettings()
- {
- LOGSTRING("Creator: CCreatorConnectionSettings::~CCreatorConnectionSettings");
-
- if ( iEngine && iEntryIds.Count() )
- {
- TRAP_IGNORE( iEngine->WriteEntryIdsToStoreL( iEntryIds, KUidDictionaryUidIAP ) );
- }
- iEntryIds.Reset();
- iEntryIds.Close();
-
- if (iParameters)
- {
- delete iParameters;
- }
-
- iCmManagerExt.Close();
- }
-
-
-//----------------------------------------------------------------------------
-
-TBool CCreatorConnectionSettings::AskDataFromUserL(TInt aCommand, TInt& aNumberOfEntries)
- {
- LOGSTRING("Creator: CCreatorConnectionSettings::AskDataFromUserL");
-
- if( aCommand == ECmdDeleteIAPs )
- {
- return iEngine->YesNoQueryDialogL(_L("Delete all Connection Methods?") );
- }
- else if( aCommand == ECmdDeleteCreatorIAPs )
- {
- return iEngine->YesNoQueryDialogL(_L("Delete all Connection Methods created with Creator?") );
- }
- else
- {
- return iEngine->EntriesQueryDialogL(aNumberOfEntries, _L("How many entries to create?"));
- }
- }
-
-
-//----------------------------------------------------------------------------
-
-TInt CCreatorConnectionSettings::CreateConnectionSettingsEntryL(CCreatorModuleBaseParameters *aParameters)
- {
- LOGSTRING("Creator: CCreatorConnectionSettings::CreateConnectionSettingsEntryL");
-
- CConnectionSettingsParameters* parameters = (CConnectionSettingsParameters*) aParameters;
-
- // clear any existing parameter definations
- delete iParameters;
- iParameters = NULL;
-
- // random data needed if no predefined data available
- if (!parameters)
- {
- iParameters = new (ELeave) CConnectionSettingsParameters();
- parameters = iParameters;
- SetRandomParametersL(*parameters);
- }
-
- if( parameters->iBearerType == KRandomBearerType )
- {
- SetRandomBearerTypeL(*parameters);
- }
-
- TInt err = KErrNone;
-
- // create unique name for each network destination
- RCmDestinationExt dest;
- TInt destinationError = KErrNone;
- TInt count = 0;
- TBuf<KConnectionSettingssFieldLength> name;
- name.Copy(parameters->iConnectionName->Des());
- do
- {
- TRAP(destinationError, dest = iCmManagerExt.CreateDestinationL(name));
- if (destinationError == KErrAlreadyExists)
- {
- name.Copy(parameters->iConnectionName->Des());
- count++;
- name.AppendFormat(_L(" (%d)"), count);
- }
- else if (destinationError != KErrNone)
- {
- User::Leave(destinationError);
- }
- }
- while (destinationError == KErrAlreadyExists);
- parameters->iConnectionName->Des().Copy(name);
-
- CleanupClosePushL(dest);
- dest.UpdateL();
-
- RCmConnectionMethodExt conMethod = dest.CreateConnectionMethodL( parameters->iBearerType);//KUidPacketDataBearerType
- CleanupClosePushL( conMethod );
-
- if(parameters->iBearerType == KUidWlanBearerType)
- {
- //IP net mask of interface
- conMethod.SetStringAttributeL( EWlanIpNetMask, parameters->iSubnetMask->Des() );
-
- //IP address of EPOC.
- conMethod.SetStringAttributeL( EWlanIpAddr, parameters->iWlanIpAddr->Des() );
- //
- //following gateway ID:s is not workin,
- //logically ID would be EWlanIpGateway because EWlanIpNetMask
- //is going to net mask, which is just before gateway in ui
- //--->
- conMethod.SetStringAttributeL( EWlanIpGateway, parameters->iGatewayAddress->Des() );
- //conMethod.SetStringAttributeL( EApIspIPGateway, parameters->iGatewayAddress->Des() );
- conMethod.SetStringAttributeL( ECmWapIPGatewayAddress, parameters->iGatewayAddress->Des() );
- conMethod.SetStringAttributeL( ECmIPGateway, parameters->iGatewayAddress->Des() );
- //<---
-
- //IP Address of primary and secondary name server (IP v4).
- conMethod.SetStringAttributeL( EWlanIpNameServer1, parameters->iIP4NameServer1->Des() );
- conMethod.SetStringAttributeL( EWlanIpNameServer2, parameters->iIP4NameServer2->Des() );
- //The SSID of this WLAN connection.
- conMethod.SetStringAttributeL( EWlanSSID, parameters->iWLANName->Des() );
-
- //IP6 address of primary and secondary name servers
- conMethod.SetStringAttributeL( EWlanIp6NameServer1, parameters->iIP6NameServer1->Des() );
- conMethod.SetStringAttributeL( EWlanIp6NameServer2, parameters->iIP6NameServer2->Des() );
-
- //
- //Setting secure mode settings
- //
-
- //Network status (default: EWlanSecModeOpen) // EWlanAuthenticationMode use instead?
- conMethod.SetIntAttributeL( EWlanSecurityMode, parameters->iWLanSecMode );
- //WLAN Network mode
- conMethod.SetIntAttributeL( EWlanConnectionMode, parameters->iWlanNetMode );
-
-
- if(parameters->iWLanSecMode == EWlanSecModeOpen)
- {}//Nothing to set when mode is open
- else if(parameters->iWLanSecMode == EWlanSecModeWep)
- {
- //See WEPSecuritySettingsUI.h
-
-
- ///CWEPSecuritySettings
- // conMethod.SetIntAttributeL( EWlanSecurityMode, parameters->iWLanSecMode );
- }
- else if(parameters->iWLanSecMode == EWlanSecMode802_1x)
- {
- }
- else if(parameters->iWLanSecMode == EWlanSecModeWpa)
- {
- }
- else if(parameters->iWLanSecMode == EWlanSecModeWpa2)
- {
- }
-
- //WLAN security setting
- //conMethod.SetStringAttributeL( EWlanAuthenticationMode, parameters->iIP6NameServer2->Des() );
- //Utilise this method
- //conMethod.SetStringAttributeL( EWlanSecurityMode, parameters->iWLanSecMode );
- }
- //Not known special attributes for packet data
- else if(parameters->iBearerType == KUidPacketDataBearerType)
- {
-
- //Access point name.
- conMethod.SetStringAttributeL( EPacketDataAPName, parameters->iConnectionName->Des() );//crash
-
- //Authentication user name
- conMethod.SetStringAttributeL( EPacketDataIFAuthName, parameters->iLoginName->Des() );
- ///TProtocolType a;
- //EPdpTypeIPv4 or EPdpTypeIPv6
- conMethod.SetIntAttributeL( EPacketDataPDPType, parameters->iProtocolType );
-
- //IP6 address of primary and secondary name servers
- conMethod.SetStringAttributeL( EPacketDataIPIP6NameServer1, parameters->iIP6NameServer1->Des() );
- conMethod.SetStringAttributeL( EPacketDataIPIP6NameServer2, parameters->iIP6NameServer2->Des() );
- //IP address of primary name server
- conMethod.SetStringAttributeL( EPacketDataIPNameServer1, parameters->iIP4NameServer1->Des() );
- //IP address of secondary name server
- conMethod.SetStringAttributeL( EPacketDataIPNameServer2, parameters->iIP4NameServer2->Des() );
-
- //Also existing but UI not showing them: EPacketDataHeaderCompression, EPacketDataDisablePlainTextAuth
- //EPacketDataIFAuthPass, EDialIFAuthPass, EPacketDataIFPromptForAuth, EPacketDataIPAddr
- }
- else if(parameters->iBearerType == KUidCSDBearerType || parameters->iBearerType == KUidHSCSDBearerType)
- {
- //Authentication user name
- conMethod.SetStringAttributeL( EDialIFAuthName, parameters->iLoginName->Des() );
- //Dial-up number
- conMethod.SetStringAttributeL( EDialDefaultTelNum, parameters->iDefaultTelNumber->Des() );
- //Call type
- conMethod.SetIntAttributeL( EDialCallType , parameters->iBearerCallTypeIsdn );
- //Maximum speed
- conMethod.SetIntAttributeL( EDialMaxConnSpeed, parameters->iBearerSpeed );
- //Prompt user for username and password? (Only for dial out)
- conMethod.SetBoolAttributeL( EDialPromptForLogin, parameters->iPromptPassword );
- //IP6 address of primary and secondary name servers
- conMethod.SetStringAttributeL( EDialIP6NameServer1, parameters->iIP6NameServer1->Des() );
- conMethod.SetStringAttributeL( EDialIP6NameServer2, parameters->iIP6NameServer2->Des() );
- //Disable plaintext authentication
- conMethod.SetBoolAttributeL( EDialDisablePlainTextAuth, parameters->iDisableTextAuth );
- //IP address of primary name server
- conMethod.SetStringAttributeL( EDialIPNameServer1, parameters->iIP4NameServer1->Des() );
- //IP address of secondary name server
- conMethod.SetStringAttributeL( EDialIPNameServer2, parameters->iIP4NameServer2->Des() );
-
- //Also existing EDialEnableIPHeaderComp; EDialIFPromptForAuth;EDialIPAddress parameters
-
- }
- else if(parameters->iBearerType == KUidLanBearerType)
- {
-
- conMethod.SetStringAttributeL( ELanBaseIpNetMask, parameters->iSubnetMask->Des() );
- conMethod.SetStringAttributeL( ELanBaseIpGateway, parameters->iGatewayAddress->Des());
- conMethod.SetStringAttributeL( ELanBaseIpAddr, parameters->iIPAddr->Des() );
- conMethod.SetStringAttributeL( ELanBaseIpNameServer1, parameters->iIP4NameServer1->Des() );
- conMethod.SetStringAttributeL( ELanBaseIpNameServer2, parameters->iIP4NameServer2->Des() );
- conMethod.SetStringAttributeL( ELanBaseIp6NameServer1,parameters->iIP6NameServer1->Des() );
- conMethod.SetStringAttributeL( ELanBaseIp6NameServer2,parameters->iIP6NameServer2->Des() );
-
- }
- else //KUidEmbeddedDestination and KPluginVPNBearerTypeUid
- {
- //NOTE: NOT Tested, because no supporting Emulator for them
-
- //Authentication user name
- conMethod.SetStringAttributeL( ECmIFAuthName, parameters->iLoginName->Des() );
- //IP6 address of primary and secondary name servers
- conMethod.SetStringAttributeL( ECmIP6NameServer1, parameters->iIP6NameServer1->Des() );
- conMethod.SetStringAttributeL( ECmIP6NameServer2, parameters->iIP6NameServer2->Des() );
- //Disable plaintext authentication
- conMethod.SetBoolAttributeL( ECmDisablePlainTextAuth, parameters->iDisableTextAuth );
- //Prompt user for authentication
- conMethod.SetBoolAttributeL( ECmIFPromptForAuth, parameters->iPromptPassword );
- //Authentication password
- conMethod.SetStringAttributeL( ECmIFAuthPass, parameters->iLoginPass->Des() );
- }
-
- //
- //Adding common attributes, all not neccessary used with all bearer types, but should not cause any problems eather
- //
-
- //CM Name (Connection Method, formelly known as Access Point)
- conMethod.SetStringAttributeL( ECmName, parameters->iConnectionName->Des() );
- // Start page of CM
- conMethod.SetStringAttributeL( ECmStartPage, parameters->iStartPage->Des() );
- // Enable Proxy
- conMethod.SetBoolAttributeL( ECmProxyUsageEnabled, parameters->iUseProxy );
- // Server Name
- conMethod.SetStringAttributeL( ECmProxyServerName, parameters->iProxyServerAddress->Des() );
- // Port Number
- conMethod.SetIntAttributeL( ECmProxyPortNumber, parameters->iProxyPortNumber );
- //Proxy login name
- conMethod.SetStringAttributeL( ECmWapIPProxyLoginName, parameters->iLoginName->Des() );
- //Proxy login password
- conMethod.SetStringAttributeL( ECmWapIPProxyLoginPass, parameters->iLoginPass->Des() );
- //IP address of gateway
- conMethod.SetStringAttributeL( ECmIPGateway, parameters->iGatewayAddress->Des() );
- //connection-oriented or connectionless API should be used
- //ECmWapIPWSPOption option TWapWSPOption: ECmWapWspOptionConnectionless or ECmWapWspOptionConnectionOriented
- conMethod.SetIntAttributeL( ECmWapIPWSPOption, parameters->iWapWspOption );
- //NOT WORKING????? Attempt secure WTLS connection to the gateway
- conMethod.SetBoolAttributeL( ECmWapIPSecurity, parameters->iSecureAuthentication );
-
- //
- //Adding advanced settings (Network type, Phone IP addr, DNS addr, proxy srv name, proxy port nbr
- //
-
- //IP address of interface
- conMethod.SetStringAttributeL( ECmIPAddress, parameters->iIPAddr->Des() );
- //IP address of primary name server
- conMethod.SetStringAttributeL( ECmIPNameServer1, parameters->iIP4NameServer1->Des() );
- //IP address of secondary name server
- conMethod.SetStringAttributeL( ECmIPNameServer2, parameters->iIP4NameServer2->Des() );
-
-
- conMethod.UpdateL();
-
- //If no defaults set, set the created CM as a default
- SetDefaultCML( conMethod );
-
- // id has been generated, store it for being able to delete
- // only entries created with Creator
- iEntryIds.Append( dest.Id() );
-
- conMethod.Close();
- CleanupStack::Pop( );//conMethod
-
- dest.UpdateL();
- dest.Close();
- CleanupStack::Pop(); // dest
-
- return err;
- }
-
-//----------------------------------------------------------------------------
-void CConnectionSettingsParameters::SetRandomCMNameL(CCreatorEngine& aEngine)
- {
- LOGSTRING("Creator: CConnectionSettingsParameters::SetRandomCMNameL");
-
- TInt num = aEngine.RandomNumber(1, 3);
- TBuf<10> apType;
-
- if (num==1)
- {
- apType = _L("mms");
- }
- else if (num==2)
- {
- apType = _L("wap");
- }
- else
- {
- apType = _L("internet");
- }
- TBuf<160> company = aEngine.RandomString(CCreatorEngine::ECompany);
- iConnectionName->Des() = KCreatorConnectionSettingssPrefixName;
- iConnectionName->Des().Append( company );
- iConnectionName->Des().Append(_L(" "));
- iConnectionName->Des().Append(apType);
- }
-
-void CConnectionSettingsParameters::SetRandomWLANNameL(CCreatorEngine& aEngine)
- {
- LOGSTRING("Creator: CConnectionSettingsParameters::SetRandomWLANNameL");
-
- TBuf<160> company = aEngine.RandomString(CCreatorEngine::ECompany);
- iWLANName->Des() = KCreatorConnectionSettingssPrefixName;
- iWLANName->Des().Append( company );
- iWLANName->Des().Append( _L(" WLAN") );
- }
-
-void CConnectionSettingsParameters::SetRandomWLANNetModeL(CCreatorEngine& aEngine)
- {
- LOGSTRING("Creator: CConnectionSettingsParameters::SetRandomWLANNetModeL");
-
- TInt wlanNetModeRand = aEngine.RandomNumber(1, 2);
- if(wlanNetModeRand == 1)
- {
- iWlanNetMode = EAdhoc;//Ad-Hoc mode
- }
- else
- {
- iWlanNetMode = CMManager::EInfra;//Infrastructure mode
- }
- }
-
-void CConnectionSettingsParameters::SetRandomWLANSecurityModeL(CCreatorEngine& aEngine)
- {
- LOGSTRING("Creator: CConnectionSettingsParameters::SetRandomWLANSecurityModeL");
-
- TInt wlanSecModeRand = aEngine.RandomNumber(1, 5);
- if(wlanSecModeRand == 1)
- {
- iWLanSecMode = EWlanSecModeOpen;///< Open security mode
- }
- else if(wlanSecModeRand == 2)
- {
- iWLanSecMode = EWlanSecModeWep;///< WEP security mode
- //See WEPSecuritySettingsUI.h
-
- ///CWEPSecuritySettings
-
- //WEP key in us
-
- //Authentication type
-
- //WEP Key settings (key len, key format, key data)
- }
- else if(wlanSecModeRand == 3)
- {
- iWLanSecMode = EWlanSecMode802_1x; ///< 802.1x security mode
- }
- else if(wlanSecModeRand == 4)
- {
- iWLanSecMode = EWlanSecModeWpa;///< WPA security mode
- }
- else if(wlanSecModeRand == 5)
- {
- iWLanSecMode = EWlanSecModeWpa2;///< WPA@ security mode
- }
- }
-
-void CConnectionSettingsParameters::SetRandomLoginNameL(CCreatorEngine& aEngine)
- {
- iLoginName->Des() = aEngine.RandomString(CCreatorEngine::EFirstName);
- iLoginName->Des().LowerCase();
- }
-
-void CConnectionSettingsParameters::SetRandomLoginPassL(CCreatorEngine& aEngine)
- {
- iLoginPass->Des() = aEngine.RandomString(CCreatorEngine::ESurname);
- iLoginPass->Des().LowerCase();
- }
-
-void CConnectionSettingsParameters::SetRandomSecureAuthenticationL(CCreatorEngine& /*aEngine*/)
- {
- iSecureAuthentication = EFalse;
- }
-
-void CConnectionSettingsParameters::SetRandomPromptPasswordL(CCreatorEngine& /*aEngine*/)
- {
- iPromptPassword = ETrue;
- }
-
-void CConnectionSettingsParameters::SetRandomUseProxyL(CCreatorEngine& /*aEngine*/)
- {
- iUseProxy = ETrue;
- }
-
-void CConnectionSettingsParameters::SetRandomProxyAddressL(CCreatorEngine& /*aEngine*/)
- {
- iProxyServerAddress->Des() = _L("127.0.0.1");
- }
-
-void CConnectionSettingsParameters::SetRandomProxyPortL(CCreatorEngine& /*aEngine*/)
- {
- iProxyPortNumber = 80;
- }
-
-void CConnectionSettingsParameters::SetRandomStartPageL(CCreatorEngine& aEngine)
- {
- LOGSTRING("Creator: CConnectionSettingsParameters::SetRandomStartPageL");
-
- TInt num = aEngine.RandomNumber(1, 3);
- TBuf<10> apType;
-
- if (num==1)
- {
- apType = _L("mms");
- }
- else if (num==2)
- {
- apType = _L("wap");
- }
- else
- {
- apType = _L("internet");
- }
- TBuf<160> company = aEngine.RandomString(CCreatorEngine::ECompany);
- iStartPage->Des() = _L("http://");
- iStartPage->Des().Append(apType);
- iStartPage->Des().Append(_L("."));
- iStartPage->Des().Append(company);
- iStartPage->Des().Append(_L(".com"));
- iStartPage->Des().LowerCase();
- }
-
-void CConnectionSettingsParameters::SetRandomIPAddressL(CCreatorEngine& /*aEngine*/)
- {
- iIPAddr->Des() = _L("10.10.10.10");
- }
-
-void CConnectionSettingsParameters::SetRandomIP4NameServer1L(CCreatorEngine& /*aEngine*/)
- {
- iIP4NameServer1->Des() = _L("10.1.1.1");
- }
-void CConnectionSettingsParameters::SetRandomIP4NameServer2L(CCreatorEngine& /*aEngine*/)
- {
- iIP4NameServer2->Des() = _L("10.2.2.2");
- }
-
-void CConnectionSettingsParameters::SetRandomProtocolTypeL(CCreatorEngine& aEngine)
- {
- LOGSTRING("Creator: CConnectionSettingsParameters::SetRandomProtocolTypeL");
-
- TInt protocolTypeRand = aEngine.RandomNumber(1, 2);
- if(protocolTypeRand == 1)
- {
- iProtocolType = RPacketContext::EPdpTypeIPv4;
- }
- else
- {
- iProtocolType = RPacketContext::EPdpTypeIPv6;
- }
- }
-
-void CConnectionSettingsParameters::SetRandomTelephoneNumberL(CCreatorEngine& aEngine)
- {
- iDefaultTelNumber->Des() = aEngine.RandomString(CCreatorEngine::EPhoneNumber);
- }
-
-void CConnectionSettingsParameters::SetRandomBearerTypeIsdnL(CCreatorEngine& /*aEngine*/)
- {
- iBearerCallTypeIsdn = ECmCallTypeISDNv110;
- }
-
-void CConnectionSettingsParameters::SetRandomBearerSpeedL(CCreatorEngine& /*aEngine*/)
- {
- iBearerSpeed = ECmSpeed14400;
- }
-
-void CConnectionSettingsParameters::SetRandomWapWspOptionL(CCreatorEngine& /*aEngine*/)
- {
- iWapWspOption = ECmWapWspOptionConnectionless;
- }
-
-void CConnectionSettingsParameters::SetRandomSubnetMaskL(CCreatorEngine& /*aEngine*/)
- {
- iSubnetMask->Des() = _L("255.255.255.0");
- }
-
-void CConnectionSettingsParameters::SetRandomGatewayAddressL(CCreatorEngine& /*aEngine*/)
- {
- iGatewayAddress->Des() = _L("10.0.0.1");
- }
-
-void CConnectionSettingsParameters::SetRandomWlanIpAddrL(CCreatorEngine& /*aEngine*/)
- {
- iWlanIpAddr->Des() = _L("10.0.0.99");
- }
-
-void CConnectionSettingsParameters::SetRandomIPv6NameServer1L(CCreatorEngine& /*aEngine*/)
- {
- iIP6NameServer1->Des() = _L("2007:abcd:1000:2000:3000:4000:5000:6001");
- }
-
-void CConnectionSettingsParameters::SetRandomIPv6NameServer2L(CCreatorEngine& /*aEngine*/)
- {
- iIP6NameServer2->Des() = _L("2007:abcd:1000:2000:3000:4000:5000:6002");
- }
-
-void CConnectionSettingsParameters::SetRandomDisableTextAuthL(CCreatorEngine& /*aEngine*/)
- {
- iDisableTextAuth = EFalse;
- }
-
-void CCreatorConnectionSettings::SetRandomBearerTypeL(CConnectionSettingsParameters& parameters)
- {
- LOGSTRING("Creator: CCreatorConnectionSettings::SetRandomBearerTypeL");
-
- RArray<TUint32> supportedBearers = RArray<TUint32>( 10 );
- iCmManagerExt.SupportedBearersL(supportedBearers);
- CleanupClosePushL( supportedBearers );
-
- //In random mode, skipping KUidLanBearerType
- //Because of Emulator migh show it as supported, when it's really not
- //and that causes weird situation in UI when there is an item, but it can't be opened
- TInt lanID = supportedBearers.Find(KUidLanBearerType);
- if( lanID != KErrNotFound )
- {
- supportedBearers.Remove(lanID);
- }
-
- // in emulator remove WLAN
- #ifdef __WINSCW__
- TInt wlanID = supportedBearers.Find(KUidWlanBearerType);
- if( wlanID != KErrNotFound )
- {
- supportedBearers.Remove(wlanID);
- }
- #endif
-
- /*
- for(TInt i = 0; i<supportedCount; i++)
- {
- TUint bearer = supportedBearers[i];
- if(bearer == KUidLanBearerType)
- {
- supportedBearers.Remove(i);
- }
- }
- */
-
- //Select random bearer type.
- //Also possible to use SupportedBearersL() -method to find supported methods
- //but using that will cause problems when setting attributes.
- TInt supportedCount = supportedBearers.Count();
- TInt bearerTypeID = iEngine->RandomNumber(0, supportedCount-1);
-
- TUint bearerType = supportedBearers[bearerTypeID];
-
- //Bearer types KUidEmbeddedDestination and KPluginVPNBearerTypeUid is not supported
- if(bearerType == KUidWlanBearerType)//Wireless LAN
- {
- parameters.iBearerType = KUidWlanBearerType;
- }
- else if(bearerType == KUidPacketDataBearerType)//Packet data (GPRS)
- {
- parameters.iBearerType = KUidPacketDataBearerType;
- }
- else if(bearerType == KUidCSDBearerType)//Data Call
- {
- parameters.iBearerType = KUidCSDBearerType;
- }
- else if(bearerType == KUidHSCSDBearerType) //High speed GSM
- {
- parameters.iBearerType = KUidHSCSDBearerType;
- }
- else if(bearerType == KUidEmbeddedDestination)
- {
- parameters.iBearerType = KUidEmbeddedDestination;
- }
- else// if(bearerType == KPluginVPNBearerTypeUid)
- {
- parameters.iBearerType = KPluginVPNBearerTypeUid;
- }
- /* In random mode skipping LAN type
- else// if(bearerType == KUidLanBearerType)
- {
- iBearerType = KUidLanBearerType;
- }*/
-
- CleanupStack::PopAndDestroy(); // supportedBearers
- }
-
-void CCreatorConnectionSettings::SetRandomParametersL(CConnectionSettingsParameters& parameters)
- {
- LOGSTRING("Creator: CCreatorConnectionSettings::SetRandomParametersL");
-
- // Connection method name:
- parameters.SetRandomCMNameL(*iEngine);
-
- SetRandomBearerTypeL(parameters);
-
- if(parameters.iBearerType == KUidWlanBearerType)//Wireless LAN
- {
- // WLAN name:
- parameters.SetRandomWLANNameL(*iEngine);
-
- //WLAN network mode
- parameters.SetRandomWLANNetModeL(*iEngine);
-
- //WLAN security mode:
- parameters.SetRandomWLANSecurityModeL(*iEngine);
- }
-
- // Login name:
- parameters.SetRandomLoginNameL(*iEngine);
-
- // Login password:
- parameters.SetRandomLoginPassL(*iEngine);
-
- // Secure authentication:
- parameters.SetRandomSecureAuthenticationL(*iEngine);
-
- // Prompt password:
- parameters.SetRandomPromptPasswordL(*iEngine);
-
- // Use proxy:
- parameters.SetRandomUseProxyL(*iEngine);
-
- // Proxy address
- parameters.SetRandomProxyAddressL(*iEngine);
-
- // Proxy port number:
- parameters.SetRandomProxyPortL(*iEngine);
-
- // Start page:
- parameters.SetRandomStartPageL(*iEngine);
-
- // IP address:
- parameters.SetRandomIPAddressL(*iEngine);
-
- // IPv4 name servers:
- parameters.SetRandomIP4NameServer1L(*iEngine);
- parameters.SetRandomIP4NameServer2L(*iEngine);
-
- // Protocol type:
- parameters.SetRandomProtocolTypeL(*iEngine);
-
- // Default telephone number:
- parameters.SetRandomTelephoneNumberL(*iEngine);
-
- // Bearer isdn
- parameters.SetRandomBearerTypeIsdnL(*iEngine);
-
- // Bearer speed:
- parameters.SetRandomBearerSpeedL(*iEngine);
-
- // WAP wsp option:
- parameters.SetRandomWapWspOptionL(*iEngine);
-
- // Subnet mask:
- parameters.SetRandomSubnetMaskL(*iEngine);
-
- // Gateway address:
- parameters.SetRandomGatewayAddressL(*iEngine);
-
- // WLAN ip address:
- parameters.SetRandomWlanIpAddrL(*iEngine);
-
- // IPv6 name servers:
- parameters.SetRandomIPv6NameServer1L(*iEngine);
- parameters.SetRandomIPv6NameServer2L(*iEngine);
-
- // Disable text authorization:
- parameters.SetRandomDisableTextAuthL(*iEngine);
- }
-
-//----------------------------------------------------------------------------
-
-void CCreatorConnectionSettings::SetDefaultCML(RCmConnectionMethodExt conMethod)
- {
- LOGSTRING("Creator: CCreatorConnectionSettings::SetDefaultCM");
-
- TCmDefConnValue defConnValue;
-
- //Returns the default connection method/SNAP.
- TRAPD( err, iCmManagerExt.ReadDefConnL( defConnValue ) );
- if( err == KErrNotSupported )
- {
- return; //If Default Connection NOT supported, just returning
- }
- else if ( err != KErrNone )
- {
- User::Leave( err ); //If something else happend
- }
- else if ( defConnValue.iId == 0 ) // default not set
- {
- TCmDefConnValue newDefaultCM;
- HBufC* cmName = conMethod.GetStringAttributeL( ECmName );
- CleanupStack::PushL( cmName );
- newDefaultCM.iId = AccessPointNameToIdL( cmName->Des() );
- newDefaultCM.iType = ECmDefConnDestination;
- //Stores the default connection method/SNAP.
- iCmManagerExt.WriteDefConnL( newDefaultCM );
- CleanupStack::PopAndDestroy( cmName );
- }
- }
-
-//----------------------------------------------------------------------------
-
-TUint32 CCreatorConnectionSettings::AccessPointNameToIdL(const TDesC& aAPName,
- TBool aAnyIfNotFound )
- {
- LOGSTRING("Creator: CCreatorConnectionSettings::AccessPointNameToIdL");
-
- //RCmDestination destination
-
- RArray<TUint32> destIdArray = RArray<TUint32>( 10 );
-
- iCmManagerExt.AllDestinationsL( destIdArray );
-
- CleanupClosePushL( destIdArray );
- TUint32 id = 0 ;
- TBool found = EFalse;
-
- for( TInt i = 0; i < destIdArray.Count(); i++ )
- {
- RCmDestinationExt dest = iCmManagerExt.DestinationL( destIdArray[i] );
- CleanupClosePushL( dest );
-
- HBufC* destName = dest.NameLC();
-
- if (destName->CompareF(aAPName) == 0){
- id = dest.Id();
- found = ETrue;
- }
- if ( !found && id == 0 && aAnyIfNotFound )
- {
- id = dest.Id();
- }
- CleanupStack::PopAndDestroy( 2 ); // destName , dest
- if(found)
- {
- break;
- }
- }
-
- CleanupStack::PopAndDestroy(); // destIdArray
- return id;
- }
-
-//----------------------------------------------------------------------------
-
-void CCreatorConnectionSettings::HandleSessionEventL(TMsvSessionEvent /*aEvent*/, TAny* /*aArg1*/, TAny* /*aArg2*/, TAny* /*aArg3*/) // from MMsvSessionObserver
- {
- LOGSTRING("Creator: CCreatorConnectionSettings::HandleSessionEventL");
- }
-
-//----------------------------------------------------------------------------
-void CCreatorConnectionSettings::DeleteAllL()
- {
- LOGSTRING("Creator: CCreatorConnectionSettings::DeleteAllL");
- DeleteAllDestinationsL( EFalse );
- }
-
-//----------------------------------------------------------------------------
-void CCreatorConnectionSettings::DeleteAllCreatedByCreatorL()
- {
- LOGSTRING("Creator: CCreatorConnectionSettings::DeleteAllCreatedByCreatorL");
- iEntryIds.Reset();
-
- // fetch ids of entries created by Creator
- iEngine->ReadEntryIdsFromStoreL( iEntryIds, KUidDictionaryUidIAP );
-
- // delete entries
- DeleteAllDestinationsL( ETrue );
- }
-
-//----------------------------------------------------------------------------
-
-void CCreatorConnectionSettings::DeleteAllDestinationsL( TBool aOnlyCreatedWithCreator )
- {
- LOGSTRING("Creator: CCreatorConnectionSettings::DeleteAllDestinationsL");
- RArray<TUint32> destIdArray(5);
- CleanupClosePushL( destIdArray );
- iCmManagerExt.AllDestinationsL( destIdArray );
-
- for( TInt i = 0; i < destIdArray.Count(); i++ )
- {
- TRAP_IGNORE
- (
- RCmDestinationExt dest = iCmManagerExt.DestinationL( destIdArray[i] );
- CleanupClosePushL( dest );
-
- if ( !aOnlyCreatedWithCreator || iEntryIds.Find( destIdArray[i]) != KErrNotFound )
- {
- dest.DeleteLD();
- }
- CleanupStack::PopAndDestroy(); // dest
- );
- }
-
- CleanupStack::PopAndDestroy(); // destIdArray
-
- // reset must be done here, because iEntryIds is stored in destructor
- iEntryIds.Reset();
-
- // all entries deleted, remove the IMPS related registry
- iEngine->RemoveStoreL( KUidDictionaryUidIAP );
- }
-//----------------------------------------------------------------------------