diff -r 000000000000 -r 5a93021fdf25 apengine/apeng/src/APAccessPointItem.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/apengine/apeng/src/APAccessPointItem.cpp Thu Dec 17 08:55:21 2009 +0200 @@ -0,0 +1,5492 @@ +/* +* Copyright (c) 2002 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: Declaration of the class CApAccessPointItem +* +*/ + + +// INCLUDE FILES +#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS +#include +#endif +#include +#include +#include +#include +#include +#include "ApAccessPointItem.h" +#include "ApEngineConsts.h" +#include "ApEngineCommons.h" +#include "ApEngineLogger.h" +#include +#include + +#include "APItemExtra.h" +#include "APItemCdmaData.h" +#include "APItemWlanData.h" + +#include +#include +#include + +#include + + +// EXTERNAL FUNCTION PROTOTYPES + +// CONSTANTS +_LIT( KDefIspIfName, "ppp" ); // required ! + +_LIT( KDefGprsIfName, "pppgprs" ); // required ! + +_LIT( KDefIspIfNetworksIPv4, "ip" ); // required ! +//_LIT( KDefGprsIfParams, "gprsnif" ); // required ! +_LIT( KDefGprsIfParams, "" ); // required ! + +_LIT( KDefWapGatewayIpAddress, "0.0.0.0" ); +_LIT( KDefIspGateway, "0.0.0.0" ); +_LIT( KDefPhoneIpAddress, "0.0.0.0" ); +_LIT( KDefPrimaryNameServer, "0.0.0.0" ); +_LIT( KDefSecondaryNameServer, "0.0.0.0" ); + +_LIT( KWellKnownIp6PrimaryNameServer, "fec0:000:0000:ffff::1" ); +_LIT( KWellKnownIp6SecondaryNameServer, "fec0:000:0000:ffff::2" ); +_LIT( KDefIp6PrimaryNameServer, "0:0:0:0:0:0:0:0" ); +_LIT( KDefIp6SecondaryNameServer, "0:0:0:0:0:0:0:0" ); + +_LIT( KDefIspIfNetworksIPv6, "ip6" ); // required ! +_LIT( KDefIspIfNetworksIPv4IPv6, "ip,ip6" ); // required ! +_LIT( KDefIspIfNetworksIPv4IPv6LAN, "ip,ip6" ); // required ! + + + +/// ROM drive. +_LIT( KApEngineResDriveZ, "z:" ); +/// ApEngine resource file name. +_LIT( KApEngineResFileName, "ApEngine.rsc" ); + + +/** +* General Settings UID +*/ +#ifdef __TEST_USE_SHARED_DATA + LOCAL_D const TUid KGeneralSettingsUid = { 0X100058EC }; +#endif // __TEST_USE_SHARED_DATA + + +// MACROS +#define BOOL_COMPARE(a,b) (((a) && (b)) || (!(a) && !(b))) + +// LOCAL CONSTANTS AND MACROS +const TInt KApItemInitialTxtBufSize = 0; + +const TInt KApMembers = EApWlanIPNameServer2+1; + +_LIT( KDefProxyProtocolName, "http" ); // required ! + +#if defined(_DEBUG) + _LIT( kApSet, "APEngine" ) ; +#endif // (_DEBUG) + +const TInt KEndOfArray = -1; + +const TInt KCsdAnalogue[] = { KSpeedAutobaud, KSpeed9600, KSpeed14400, + KEndOfArray }; + +const TInt KCsdAnalogueWcdma[] = { KSpeedAutobaud, KSpeed9600, KSpeed14400, + KSpeed28800, KEndOfArray}; + +const TInt KCsdIsdn110[] = { KSpeed9600, KSpeed14400, KEndOfArray}; + +const TInt KCsdIsdn110Wcdma[] = { KSpeed9600, KSpeed14400, KSpeed28800, + KSpeed38400, KEndOfArray}; + +const TInt KCsdIsdn120[] = { KSpeed9600, KSpeed14400, KEndOfArray}; + +const TInt KCsdIsdn120Wcdma[] = { KSpeed9600, KSpeed14400, KSpeed28800, + KSpeed56000, KEndOfArray}; + +const TInt KHcsdAnal[] = { KSpeedAutobaud, KSpeed9600, KSpeed14400, + KSpeed19200, KSpeed28800, KEndOfArray}; + +const TInt KHcsdIsdn110[] = { KSpeed9600, KSpeed14400, KSpeed19200, + KSpeed28800, KSpeed38400, KEndOfArray}; + +const TInt KHcsdIsdn120[] = { KSpeed9600, KSpeed14400, KSpeed19200, + KSpeed28800, KSpeed43200, KEndOfArray}; + + + +// --------------------------------------------------------- +// --------------------------------------------------------- +// +// LOCAL, CApItemExtra class implementation +// +// --------------------------------------------------------- +// --------------------------------------------------------- +// +// --------------------------------------------------------- +// CApItemExtra::NewL +// --------------------------------------------------------- +// +CApItemExtra* CApItemExtra::NewL() + { + CLOG( ( EApItem, 0, _L( "-> CApItemExtra::NewL" ) ) ); + + CApItemExtra* self = new ( ELeave ) CApItemExtra; + CleanupStack::PushL( self ); + self->ConstructL(); + + CleanupStack::Pop( self ); + + CLOG( ( EApItem, 1, _L( "<- CApItemExtra::NewL" ) ) ); + + return self; + } + + +// Destructor +// --------------------------------------------------------- +// CApItemExtra::~CApItemExtra +// --------------------------------------------------------- +// +CApItemExtra::~CApItemExtra() + { + CLOG( ( EApItem, 0, _L( "-> CApItemExtra::~CApItemExtra" ) ) ); + + delete iCdmaData; + delete iWlanData; + delete iIpv6PrimaryDNS; + delete iIpv6SecondaryDNS; + delete iLanBearerModemName; + delete iIapBearerType; + } + + +// C++ default constructor can NOT contain any code that +// might leave. +// --------------------------------------------------------- +// CApItemExtra::CApItemExtra +// --------------------------------------------------------- +// +CApItemExtra::CApItemExtra() +:iIsFeatureManagerInitialised( EFalse ), +iIpv6GetDNSIPFromServer( ETrue ), +iIsWcdma( EFalse ), +iIsIpv6Supported( EFalse ), +iIsVpnAp( EFalse ), +iIsAppCsdSupport( EFalse ) + { + } + +// Symbian OS default constructor can leave. +// --------------------------------------------------------- +// CApItemExtra::ConstructL +// --------------------------------------------------------- +// +void CApItemExtra::ConstructL() + { + CLOG( ( EApItem, 0, _L( "-> CApItemExtra::ConstructL" ) ) ); + + iIpv6PrimaryDNS = HBufC::NewL( KApItemInitialTxtBufSize ); + iIpv6SecondaryDNS = HBufC::NewL( KApItemInitialTxtBufSize ); + iLanBearerModemName = HBufC::NewL( KApItemInitialTxtBufSize ); + iIapBearerType = HBufC::NewL( KApItemInitialTxtBufSize ); + +#ifdef __TEST_USE_SHARED_DATA + iIsAppHscsdSupport = + ApCommons::IsGivenSharedDataSupportL( KGeneralSettingsUid, + KGSHSCSDAccessPoints ); +#else + iIsAppHscsdSupport = ETrue; +#endif // __TEST_USE_SHARED_DATA + + +#ifdef __TEST_HSCSD_SUPPORT + iIsAppHscsdSupport = ETrue; +#endif // __TEST_HSCSD_SUPPORT + + CLOG( ( EApItem, 1, _L( "<- CApItemExtra::ConstructL" ) ) ); + } + + +// --------------------------------------------------------- +// --------------------------------------------------------- +// +// LOCAL, CApItemCdmaData class implementation +// +// --------------------------------------------------------- +// --------------------------------------------------------- +// +// --------------------------------------------------------- +// CApItemCdmaData::NewL +// --------------------------------------------------------- +// +CApItemCdmaData* CApItemCdmaData::NewL() + { + CLOG( ( EApItem, 0, _L( "-> CApItemCdmaData::NewL" ) ) ); + + CApItemCdmaData* self = new ( ELeave ) CApItemCdmaData; + CleanupStack::PushL( self ); + self->ConstructL(); + CleanupStack::Pop( self ); + + CLOG( ( EApItem, 1, _L( "<- CApItemCdmaData::NewL" ) ) ); + + return self; + } + + +// Destructor +// --------------------------------------------------------- +// CApItemCdmaData::~CApItemCdmaData +// --------------------------------------------------------- +// +CApItemCdmaData::~CApItemCdmaData() + { + CLOG( ( EApItem, 0, _L( "-> CApItemCdmaData::~CApItemCdmaData" ) ) ); + + delete iIwfName; + delete iPdpAddress; + delete iHomeAgentAddress; + delete iMipHomeAddress; + delete iMipPrimaryHomeAgent; + delete iMipSecondaryHomeAgent; + } + + +// C++ default constructor can NOT contain any code that +// might leave. +// --------------------------------------------------------- +// CApItemCdmaData::CApItemCdmaData +// --------------------------------------------------------- +// +CApItemCdmaData::CApItemCdmaData() +/* Assuming 0 default values everywhere. */ +:iServiceOption( RPacketContext::KLowSpeedData ), +iPdpType( EIPv4 ), +iReqFwdPriority( 0 ), /*RPacketQoS::TQoSLinkPriority*/ +iReqRevPriority( 0 ), /*RPacketQoS::TQoSLinkPriority*/ +iReqFwdBitrate( 0 ), /*RPacketQoS::TQoSDataRate*/ +iReqRevBitrate( 0 ), /*RPacketQoS::TQoSDataRate*/ +iReqFwdLoss( 0 ), /*RPacketQoS::TQoSDataLoss*/ +iReqRevLoss( 0 ), /*RPacketQoS::TQoSDataLoss*/ +iReqFwdMaxDelay( 0 ), /*RPacketQoS::TQoSDelay*/ +iReqRevMaxDelay( 0 ), /*RPacketQoS::TQoSDelay*/ +iMinFwdBitrate( 0 ), /*RPacketQoS::TQoSDataRate*/ +iMinRevBitrate( 0 ), /*RPacketQoS::TQoSDataRate*/ +iAccptFwdLoss( 0 ), /*RPacketQoS::TQoSDataLoss*/ +iAccptRevLoss( 0 ), /*RPacketQoS::TQoSDataLoss*/ +iAccptFwdMaxDelay( 0 ), /*RPacketQoS::TQoSDelay*/ +iAccptRevMaxDelay( 0 ), /*RPacketQoS::TQoSDelay*/ +iQosWarningTimeout( 0 ), /*0xffffffff disables*/ +iRlpMode( RPacketQoS::KRLPUnknown ), +// CDMA2000 deprecated Mobile IP fields +iMip( EFalse ), +iMipTimeout( 0 ), +// CDMA2000 specific CDMA parameters provisioned through OTA +iNaiType( 0 ), +iSimpleIpAuthAlgorithm( 0 ), +iSimpleIpPapSsHandle( 0 ), +iSimpleIpChapSsHandle( 0 ), +iMipTBit( 0 ), +iMipMnAaaAuthAlgorithm( 0 ), +iMipMnAaaSpi( 0 ), +iMipMnAaaSsHandle( 0 ), +iMipMnHaAuthAlgorithm( 0 ), +iMipMnHaSpi( 0 ), +iMipMnHaSsHandle( 0 ) + { + } + +// Symbian OS default constructor can leave. +// --------------------------------------------------------- +// CApItemCdmaData::ConstructL +// --------------------------------------------------------- +// +void CApItemCdmaData::ConstructL() + { + CLOG( ( EApItem, 0, _L( "-> CApItemCdmaData::ConstructL" ) ) ); + + iIwfName = HBufC::NewL( KApItemInitialTxtBufSize ); + iPdpAddress = HBufC::NewL( KApItemInitialTxtBufSize ); + iHomeAgentAddress = HBufC::NewL( KApItemInitialTxtBufSize ); + iMipHomeAddress = HBufC::NewL( KApItemInitialTxtBufSize ); + iMipPrimaryHomeAgent = HBufC::NewL( KApItemInitialTxtBufSize ); + iMipSecondaryHomeAgent = HBufC::NewL( KApItemInitialTxtBufSize ); + + CLOG( ( EApItem, 1, _L( "<- CApItemCdmaData::ConstructL" ) ) ); + } + + + + + + + +// --------------------------------------------------------- +// --------------------------------------------------------- +// +// LOCAL, CApItemWlanData class implementation +// +// --------------------------------------------------------- +// --------------------------------------------------------- +// +// --------------------------------------------------------- +// CApItemWlanData::NewL +// --------------------------------------------------------- +// +CApItemWlanData* CApItemWlanData::NewL() + { + CLOG( ( EApItem, 0, _L( "-> CApItemWlanData::NewL" ) ) ); + + CApItemWlanData* self = new ( ELeave ) CApItemWlanData; + CleanupStack::PushL( self ); + self->ConstructL(); + CleanupStack::Pop( self ); + + CLOG( ( EApItem, 1, _L( "<- CApItemWlanData::NewL" ) ) ); + + return self; + } + + +// Destructor +// --------------------------------------------------------- +// CApItemWlanData::~CApItemWlanData +// --------------------------------------------------------- +// +CApItemWlanData::~CApItemWlanData() + { + CLOG( ( EApItem, 0, _L( "-> CApItemWlanData::~CApItemWlanData" ) ) ); + delete iWlanNetworkName; + } + + +// C++ default constructor can NOT contain any code that +// might leave. +// --------------------------------------------------------- +// CApItemWlanData::CApItemWlanData +// --------------------------------------------------------- +// +CApItemWlanData::CApItemWlanData() +:iWlanNetworkMode( EInfra ), +iWlanSecurityMode( EOpen ) +/* Assuming 0 default values elsewhere. */ + { + } + +// Symbian OS default constructor can leave. +// --------------------------------------------------------- +// CApItemWlanData::ConstructL +// --------------------------------------------------------- +// +void CApItemWlanData::ConstructL() + { + CLOG( ( EApItem, 0, _L( "-> CApItemWlanData::ConstructL" ) ) ); + + iWlanNetworkName = HBufC::NewL( KApItemInitialTxtBufSize ); + + CLOG( ( EApItem, 1, _L( "<- CApItemWlanData::ConstructL" ) ) ); + } + + + + +// MODULE DATA STRUCTURES + +// ========================================================= +// ========================================================= +// ========================================================= +// +// CApAccessPointItem class implementation +// +// ========================================================= +// ========================================================= +// ========================================================= +// + +// ================= MEMBER FUNCTIONS ======================= +// Two-phased constructor. +// --------------------------------------------------------- +// CApAccessPointItem::NewLC +// --------------------------------------------------------- +// +EXPORT_C CApAccessPointItem* CApAccessPointItem::NewLC() + { + CLOG( ( EApItem, 0, _L( "-> CApAccessPointItem::NewLC" ) ) ); + + CApAccessPointItem* self = new ( ELeave ) CApAccessPointItem; + CleanupStack::PushL( self ); + self->ConstructL(); + + CLOG( ( EApItem, 1, _L( "<- CApAccessPointItem::NewLC" ) ) ); + return self; + } + + +// Destructor +// --------------------------------------------------------- +// CApAccessPointItem::~CApAccessPointItem +// --------------------------------------------------------- +// +EXPORT_C CApAccessPointItem::~CApAccessPointItem() + { + CLOG( ( EApItem, 0, _L( "-> CApAccessPointItem::~CApAccessPointItem" ) ) ); + + if ( iExt ) + { + if ( iExt->iIsFeatureManagerInitialised ) + { + FeatureManager::UnInitializeLib(); + } + } + + delete iExt; + delete iSpecified; + delete iWapAccessPointName; + delete iWapBearer; + delete iStartingPage; + delete iWapGatewayAddress; + delete iIapName; + delete iIspName; + delete iIspDescription; + delete iIspDefaultTelNumber; + delete iLoginScript; + delete iUserName; + delete iPassword; + delete iIspIfName; + delete iIspIfParams; + delete iIspIfNetworks; + delete iIspIfAuthName; + delete iIspIfAuthPass; + delete iIspIfCallbackInfo; + delete iIspIPAddr; + delete iIspIPNetMask; + delete iIspGateway; + delete iPrimaryDNS; + delete iSecondaryDNS; + delete iIspInitString; + delete iIapServiceType; + delete iGprsAccessPointName; + delete iGprsPdpAddress; + delete iApProxyProtocolName; + delete iApProxyServerAddress; + delete iApProxyExceptions; + delete iNetworkName; + delete iWapProxyLoginName; + delete iWapProxyLoginPass; + + CLOG( ( EApItem, 1, _L( "<- CApAccessPointItem::~CApAccessPointItem" ) ) ); + } + + +// --------------------------------------------------------- +// CApAccessPointItem::CopyFromL +// --------------------------------------------------------- +// +EXPORT_C void CApAccessPointItem::CopyFromL( const CApAccessPointItem& + aCopyFrom ) + { + CLOG( ( EApItem, 0, _L( "-> CApAccessPointItem::CopyFromL" ) ) ); + + WriteTextL( EApWapAccessPointName, *aCopyFrom.iWapAccessPointName ); + WriteTextL( EApWapCurrentBearer, *aCopyFrom.iWapBearer ); + WriteLongTextL( EApWapStartPage, *aCopyFrom.iStartingPage ); + // The WAP gateway address + WriteTextL( EApWapGatewayAddress, *aCopyFrom.iWapGatewayAddress ); + + iIsWTLSSecurityOn = aCopyFrom.iIsWTLSSecurityOn; + iIsConnectionTypeContinuous = aCopyFrom.iIsConnectionTypeContinuous; + iChargeCard = aCopyFrom.iChargeCard; + iWapIap = aCopyFrom.iWapIap; + + WriteTextL( EApIapName, *aCopyFrom.iIapName ); + iIapServiceId = aCopyFrom.iIapServiceId; + WriteTextL( EApIapServiceType, *aCopyFrom.iIapServiceType ); + + + iIapChargeCardId = aCopyFrom.iIapChargeCardId; + + WriteTextL( EApIspName, *aCopyFrom.iIspName ); + WriteTextL( EApIspDescription, *aCopyFrom.iIspDescription ); + + iIspType = aCopyFrom.iIspType; + + WriteTextL( EApIspDefaultTelNumber, *aCopyFrom.iIspDefaultTelNumber ); + + iIspDialResolution = aCopyFrom.iIspDialResolution; + iUseLoginScript = aCopyFrom.iUseLoginScript; + + WriteLongTextL( EApIspLoginScript, *aCopyFrom.iLoginScript ); + + iPromptPassword = aCopyFrom.iPromptPassword; + + WriteTextL( EApIspLoginName, *aCopyFrom.iUserName ); + WriteTextL( EApIspLoginPass, *aCopyFrom.iPassword ); + + iDisplayTerminalWindow = aCopyFrom.iDisplayTerminalWindow; + + WriteTextL( EApIspIfName, *aCopyFrom.iIspIfName ); + WriteTextL( EApIspIfParams, *aCopyFrom.iIspIfParams ); + WriteTextL( EApIspIfNetworks, *aCopyFrom.iIspIfNetworks ); + + iIspIfPromptForAuth = aCopyFrom.iIspIfPromptForAuth; + + WriteTextL( EApIspIfAuthName, *aCopyFrom.iIspIfAuthName ); + WriteTextL( EApIspIfAuthPass, *aCopyFrom.iIspIfAuthPass ); + + iIspIfAuthRetries = aCopyFrom.iIspIfAuthRetries; + iUseCallBack = aCopyFrom.iUseCallBack; + iCallBackTypeIsServerNum = aCopyFrom.iCallBackTypeIsServerNum; + + WriteTextL( EApIspIfCallbackInfo, *aCopyFrom.iIspIfCallbackInfo ); + + iIspCallbackTimeOut = aCopyFrom.iIspCallbackTimeOut; + iIspIPAddrFromServer = aCopyFrom.iIspIPAddrFromServer; + + WriteTextL( EApIspIPAddr, *aCopyFrom.iIspIPAddr ); + WriteTextL( EApIspIPNetMask, *aCopyFrom.iIspIPNetMask ); + WriteTextL( EApIspIPGateway, *aCopyFrom.iIspGateway ); + + iGetDNSIPFromServer = aCopyFrom.iGetDNSIPFromServer; + + WriteTextL( EApIspIPNameServer1, *aCopyFrom.iPrimaryDNS ); + WriteTextL( EApIspIPNameServer2, *aCopyFrom.iSecondaryDNS ); + + iEnablePPPCompression = aCopyFrom.iEnablePPPCompression; + iIspEnableLCPExtensions = aCopyFrom.iIspEnableLCPExtensions; + iIsPasswordAuthenticationSecure = + aCopyFrom.iIsPasswordAuthenticationSecure; + iIspEnableSwCompression = aCopyFrom.iIspEnableSwCompression; + iIspBearerName = aCopyFrom.iIspBearerName; + iMaxConnSpeed = aCopyFrom.iMaxConnSpeed; + iIspBearerCE = aCopyFrom.iIspBearerCE; + iApIapBearerService = aCopyFrom.iApIapBearerService; + iBearerCallTypeIsdn = aCopyFrom.iBearerCallTypeIsdn; + + WriteTextL( EApIspInitString, *aCopyFrom.iIspInitString ); + + iIspBearerType = aCopyFrom.iIspBearerType; + iIspChannelCoding = aCopyFrom.iIspChannelCoding; + iIspAIUR = aCopyFrom.iIspAIUR; + iIspRequestedTimeSlots = aCopyFrom.iIspRequestedTimeSlots; + iIspMaximumTimeSlots = aCopyFrom.iIspMaximumTimeSlots; + + WriteLongTextL( EApGprsAccessPointName, *aCopyFrom.iGprsAccessPointName ); + + WriteTextL( EApGprsPdpAddress, *aCopyFrom.iGprsPdpAddress ); + + iGprsPdpType = aCopyFrom.iGprsPdpType; + iGprsReqPrecedence = aCopyFrom.iGprsReqPrecedence; + iGprsReqDelay = aCopyFrom.iGprsReqDelay; + iGprsReqReliability = aCopyFrom.iGprsReqReliability; + iGprsReqPeakThroughput = aCopyFrom.iGprsReqPeakThroughput; + iGprsReqMeanPeakThroughput = aCopyFrom.iGprsReqMeanPeakThroughput; + iGprsMinPrecedence = aCopyFrom.iGprsMinPrecedence; + + iGprsMinDelay = aCopyFrom.iGprsMinDelay; + iGprsMinReliability = aCopyFrom.iGprsMinReliability; + iGprsMinPeakThroughput = aCopyFrom.iGprsMinPeakThroughput; + iGprsMinMeanThroughput = aCopyFrom.iGprsMinMeanThroughput; + + iGprsUseAnonymAccess = aCopyFrom.iGprsUseAnonymAccess; + WriteTextL( EApProxyProtocolName, *aCopyFrom.iApProxyProtocolName ); + WriteLongTextL( EApProxyServerAddress, *aCopyFrom.iApProxyServerAddress ); + WriteLongTextL( EApProxyExceptions, *aCopyFrom.iApProxyExceptions); + iApProxyPortNumber = aCopyFrom.iApProxyPortNumber; + iApProxyUseProxy = aCopyFrom.iApProxyUseProxy; + iApHasProxySettings = aCopyFrom.iApHasProxySettings; + WriteTextL( EApNetworkName, *aCopyFrom.iNetworkName ); + WriteTextL( EApProxyLoginName, *aCopyFrom.iWapProxyLoginName ); + WriteTextL( EApProxyLoginPass, *aCopyFrom.iWapProxyLoginPass ); + + iNetworkId = aCopyFrom.iNetworkId; + WriteTextL( EApLanBearerName, *aCopyFrom.iExt->iLanBearerModemName ); + WriteTextL( EApIapBearerType, *aCopyFrom.iExt->iIapBearerType ); + + + // Copying of WLAN data must be before Ipv6 support handling as that + // requires the knowledge of the bearer type!!!!! + if ( iExt->iWlanData ) + { + iExt->iWlanData->iWlanNetworkMode = + aCopyFrom.iExt->iWlanData->iWlanNetworkMode; + iExt->iWlanData->iWlanSecurityMode = + aCopyFrom.iExt->iWlanData->iWlanSecurityMode; + ReAllocL( iExt->iWlanData->iWlanNetworkName, + *aCopyFrom.iExt->iWlanData->iWlanNetworkName ); + iExt->iWlanData->iWlanId = aCopyFrom.iExt->iWlanData->iWlanId; + iExt->iWlanData->iIsWlan = aCopyFrom.iExt->iWlanData->iIsWlan; + iExt->iWlanData->iScanSSID = aCopyFrom.iExt->iWlanData->iScanSSID; + iExt->iWlanData->iChannelId = aCopyFrom.iExt->iWlanData->iChannelId; + } + + if ( iExt->iIsIpv6Supported ) + { + iExt->iIpv6GetDNSIPFromServer = + aCopyFrom.iExt->iIpv6GetDNSIPFromServer; + WriteTextL( EApIP6NameServer1, *aCopyFrom.iExt->iIpv6PrimaryDNS ); + WriteTextL( EApIP6NameServer2, *aCopyFrom.iExt->iIpv6SecondaryDNS ); + } + + if( iExt->iCdmaData ) + { + // CDMA2000 + ReAllocL( iExt->iCdmaData->iIwfName, + *aCopyFrom.iExt->iCdmaData->iIwfName ); + iExt->iCdmaData->iServiceOption = + aCopyFrom.iExt->iCdmaData->iServiceOption; + iExt->iCdmaData->iPdpType = aCopyFrom.iExt->iCdmaData->iPdpType; + ReAllocL( iExt->iCdmaData->iPdpAddress, + *aCopyFrom.iExt->iCdmaData->iPdpAddress ); + iExt->iCdmaData->iReqFwdPriority = + aCopyFrom.iExt->iCdmaData->iReqFwdPriority; + iExt->iCdmaData->iReqRevPriority = + aCopyFrom.iExt->iCdmaData->iReqRevPriority; + iExt->iCdmaData->iReqFwdBitrate = + aCopyFrom.iExt->iCdmaData->iReqFwdBitrate; + iExt->iCdmaData->iReqRevBitrate = + aCopyFrom.iExt->iCdmaData->iReqRevBitrate; + iExt->iCdmaData->iReqFwdLoss = aCopyFrom.iExt->iCdmaData->iReqFwdLoss; + iExt->iCdmaData->iReqRevLoss = aCopyFrom.iExt->iCdmaData->iReqRevLoss; + iExt->iCdmaData->iReqFwdMaxDelay = + aCopyFrom.iExt->iCdmaData->iReqFwdMaxDelay; + iExt->iCdmaData->iReqRevMaxDelay = + aCopyFrom.iExt->iCdmaData->iReqRevMaxDelay; + iExt->iCdmaData->iMinFwdBitrate = + aCopyFrom.iExt->iCdmaData->iMinFwdBitrate; + iExt->iCdmaData->iMinRevBitrate = + aCopyFrom.iExt->iCdmaData->iMinRevBitrate; + iExt->iCdmaData->iAccptFwdLoss = + aCopyFrom.iExt->iCdmaData->iAccptFwdLoss; + iExt->iCdmaData->iAccptRevLoss = + aCopyFrom.iExt->iCdmaData->iAccptRevLoss; + iExt->iCdmaData->iAccptFwdMaxDelay = + aCopyFrom.iExt->iCdmaData->iAccptFwdMaxDelay; + iExt->iCdmaData->iAccptRevMaxDelay = + aCopyFrom.iExt->iCdmaData->iAccptRevMaxDelay; + iExt->iCdmaData->iQosWarningTimeout = + aCopyFrom.iExt->iCdmaData->iQosWarningTimeout; + iExt->iCdmaData->iRlpMode = aCopyFrom.iExt->iCdmaData->iRlpMode; + // CDMA2000 deprecated Mobile IP fields + iExt->iCdmaData->iMip = aCopyFrom.iExt->iCdmaData->iMip; + ReAllocL( iExt->iCdmaData->iHomeAgentAddress, + *aCopyFrom.iExt->iCdmaData->iHomeAgentAddress ); + iExt->iCdmaData->iMipTimeout = aCopyFrom.iExt->iCdmaData->iMipTimeout; + // CDMA2000 specific CDMA parameters provisioned through OTA + iExt->iCdmaData->iNaiType = aCopyFrom.iExt->iCdmaData->iNaiType; + iExt->iCdmaData->iSimpleIpAuthAlgorithm = + aCopyFrom.iExt->iCdmaData->iSimpleIpAuthAlgorithm; + iExt->iCdmaData->iSimpleIpPapSsHandle = + aCopyFrom.iExt->iCdmaData->iSimpleIpPapSsHandle; + iExt->iCdmaData->iSimpleIpChapSsHandle = + aCopyFrom.iExt->iCdmaData->iSimpleIpChapSsHandle; + iExt->iCdmaData->iMipTBit = aCopyFrom.iExt->iCdmaData->iMipTBit; + ReAllocL( iExt->iCdmaData->iMipHomeAddress, + *aCopyFrom.iExt->iCdmaData->iMipHomeAddress ); + ReAllocL( iExt->iCdmaData->iMipPrimaryHomeAgent, + *aCopyFrom.iExt->iCdmaData->iMipPrimaryHomeAgent ); + ReAllocL( iExt->iCdmaData->iMipSecondaryHomeAgent, + *aCopyFrom.iExt->iCdmaData->iMipSecondaryHomeAgent ); + iExt->iCdmaData->iMipMnAaaAuthAlgorithm = + aCopyFrom.iExt->iCdmaData->iMipMnAaaAuthAlgorithm; + iExt->iCdmaData->iMipMnAaaSpi = + aCopyFrom.iExt->iCdmaData->iMipMnAaaSpi; + iExt->iCdmaData->iMipMnAaaSsHandle = + aCopyFrom.iExt->iCdmaData->iMipMnAaaSsHandle; + iExt->iCdmaData->iMipMnHaAuthAlgorithm = + aCopyFrom.iExt->iCdmaData->iMipMnHaAuthAlgorithm; + iExt->iCdmaData->iMipMnHaSpi = aCopyFrom.iExt->iCdmaData->iMipMnHaSpi; + iExt->iCdmaData->iMipMnHaSsHandle = + aCopyFrom.iExt->iCdmaData->iMipMnHaSsHandle; + } + + + SetIfNetworksL(); + + CLOG( ( EApItem, 1, _L( "<- CApAccessPointItem::CopyFromL" ) ) ); + } + + + +// --------------------------------------------------------- +// CApAccessPointItem::operator== +// --------------------------------------------------------- +// +EXPORT_C TBool CApAccessPointItem::operator==( + const CApAccessPointItem& aItem + ) const + { + CLOG( ( EApItem, 0, _L( "-> CApAccessPointItem::operator==" ) ) ); + + TBool retval( EFalse ); + TRAPD( err, retval = DoCompareApL( aItem ) ); + if ( err ) + { + retval = EFalse; + } + + CLOG( ( EApItem, 1, _L( "<- CApAccessPointItem::operator==" ) ) ); + return retval; + } + + + +// --------------------------------------------------------- +// CApAccessPointItem::operator!= +// --------------------------------------------------------- +// +EXPORT_C TBool CApAccessPointItem::operator!=( + const CApAccessPointItem& aItem + ) const + { + CLOG( ( EApItem, 0, _L( "-> CApAccessPointItem::operator!=" ) ) ); + + TBool ret = ( *this == aItem ); + + CLOG( ( EApItem, 1, _L( "<- CApAccessPointItem::operator!=" ) ) ); + return ( !ret ); + } + + + +// C++ default constructor can NOT contain any code that +// might leave. +// --------------------------------------------------------- +// CApAccessPointItem::CApAccessPointItem +// --------------------------------------------------------- +// +EXPORT_C CApAccessPointItem::CApAccessPointItem() +:iIsWTLSSecurityOn( EFalse ), +iIsConnectionTypeContinuous( EWapWspOptionConnectionOriented ), +iIspType( EIspTypeInternetOnly ), +iUseLoginScript( EFalse ), +iPromptPassword( EFalse ), +iDisplayTerminalWindow( EFalse ), +iUseCallBack( EFalse ), +iCallBackTypeIsServerNum( ECallbackActionMSCBCPAcceptServerSpecifiedNumber ), +iIspCallbackTimeOut( KCallBackTimeOut ), +iEnablePPPCompression( EFalse ), +iIsPasswordAuthenticationSecure( ETrue ), +iBearerCallTypeIsdn( ECallTypeAnalogue ), +iIspBearerCE( RMobileCall::EQoSNonTransparent ), +iGprsPdpType( EIPv4 ), +iIsReadOnly( EFalse ), +iApHasProxySettings( EFalse ), +iNetworkId( 0 ), +iApIapBearerService( RMobileCall::KCapsDataCircuitAsynchronous ) + + { + } + + +// Symbian OS default constructor can leave. +// --------------------------------------------------------- +// CApAccessPointItem::ConstructL +// --------------------------------------------------------- +// +EXPORT_C void CApAccessPointItem::ConstructL() + { + CLOG( ( EApItem, 0, _L( "-> CApAccessPointItem::ConstructL" ) ) ); + + iExt = CApItemExtra::NewL(); + + FeatureManager::InitializeLibL(); + iExt->iIsFeatureManagerInitialised = ETrue; + + iExt->iIsWcdma = + FeatureManager::FeatureSupported( KFeatureIdProtocolWcdma ); + + iExt->iIsAppCsdSupport = + FeatureManager::FeatureSupported( KFeatureIdAppCsdSupport ); +#ifdef __TEST_CSD_SUPPORT + iExt->iIsAppCsdSupport = ETrue; +#endif // __TEST_CSD_SUPPORT + + + iExt->iIsIpv6Supported = + FeatureManager::FeatureSupported( KFeatureIdIPv6 ); +#ifdef __TEST_IPV6_SUPPORT + iExt->iIsIpv6Supported = ETrue; +#endif // __TEST_IPV6_SUPPORT + if( FeatureManager::FeatureSupported( KFeatureIdProtocolCdma ) ) + { + iExt->iCdmaData = CApItemCdmaData::NewL(); + } +#ifdef __TEST_CDMA_SUPPORT + if( !iExt->iCdmaData ) + { + iExt->iCdmaData = CApItemCdmaData::NewL(); + } +#endif // __TEST_CDMA_SUPPORT + + if( FeatureManager::FeatureSupported( KFeatureIdProtocolWlan ) ) + { + iExt->iWlanData = CApItemWlanData::NewL(); + } +#ifdef __TEST_WLAN_SUPPORT + iExt->iWlanData = CApItemWlanData::NewL(); +#endif // __TEST_WLAN_SUPPORT + + iSpecified = new (ELeave) CArrayFixFlat( KApMembers ); + for (TInt i=0; i< KApMembers; i++) + { + iSpecified->AppendL( EFalse ); + } + // as we are in ConstructL called from NewLC, + // 'this' is already on the CleanupStack, + // so do not push members onto it! + iWapAccessPointName = HBufC::NewL( KApItemInitialTxtBufSize ); + iWapBearer = HBufC::NewL( KApItemInitialTxtBufSize ); + iStartingPage = HBufC::NewL( KApItemInitialTxtBufSize ); + iWapGatewayAddress = HBufC::NewL( KApItemInitialTxtBufSize ); + iIapName = HBufC::NewL( KApItemInitialTxtBufSize ); + iIspName = HBufC::NewL( KApItemInitialTxtBufSize ); + iIspDescription = HBufC::NewL( KApItemInitialTxtBufSize ); + iLoginScript = HBufC::NewL( KApItemInitialTxtBufSize ); + iUserName = HBufC::NewL( KApItemInitialTxtBufSize ); + + iPassword = HBufC::NewL( KApItemInitialTxtBufSize ); + iIspIfName = HBufC::NewL( KApItemInitialTxtBufSize ); + iIspIfParams = HBufC::NewL( KApItemInitialTxtBufSize ); + iIspIfNetworks = HBufC::NewL( KApItemInitialTxtBufSize ); + iIspIfAuthName = HBufC::NewL( KApItemInitialTxtBufSize ); + iIspIfAuthPass = HBufC::NewL( KApItemInitialTxtBufSize ); + iIspIfCallbackInfo = HBufC8::NewL( KApItemInitialTxtBufSize ); + iIspIPAddr = HBufC::NewL( KApItemInitialTxtBufSize ); + iIspIPNetMask = HBufC::NewL( KApItemInitialTxtBufSize ); + iIspGateway = HBufC::NewL( KApItemInitialTxtBufSize ); + + iPrimaryDNS = HBufC::NewL( KApItemInitialTxtBufSize ); + iSecondaryDNS = HBufC::NewL( KApItemInitialTxtBufSize ); + iIspInitString = HBufC8::NewL( KApItemInitialTxtBufSize ); + iIspDefaultTelNumber = HBufC::NewL( KApItemInitialTxtBufSize ); + + + iIapServiceType = HBufC::NewL( KApItemInitialTxtBufSize ); + iGprsAccessPointName = HBufC::NewL( KApItemInitialTxtBufSize ); + iGprsPdpAddress = HBufC::NewL( KApItemInitialTxtBufSize ); + + + iApProxyProtocolName = HBufC::NewL( KApItemInitialTxtBufSize ); + iApProxyServerAddress = HBufC::NewL( KApItemInitialTxtBufSize ); + iApProxyExceptions = HBufC::NewL( KApItemInitialTxtBufSize ); + iNetworkName = HBufC::NewL( KApItemInitialTxtBufSize ); + + iWapProxyLoginName = HBufC::NewL( KApItemInitialTxtBufSize ); + iWapProxyLoginPass = HBufC::NewL( KApItemInitialTxtBufSize ); + + RFs fs; + CleanupClosePushL( fs ); + User::LeaveIfError( fs.Connect() ); + + // can't use resource here because it is not added yet.... + TFileName resourceFile; + resourceFile.Append( KApEngineResDriveZ ); + resourceFile.Append( KDC_RESOURCE_FILES_DIR ); + resourceFile.Append( KApEngineResFileName ); + BaflUtils::NearestLanguageFile( fs, resourceFile ); + + RResourceFile rf; + CleanupClosePushL( rf ); + rf.OpenL( fs, resourceFile ); + rf.ConfirmSignatureL( 0 ); + HBufC8* readBuffer = rf.AllocReadLC( R_APNG_DEFAULT_AP_NAME ); + // as we are expecting HBufC16... + __ASSERT_DEBUG( ( readBuffer->Length()%2 ) == 0, + ApCommons::Panic( EWrongResourceFormat ) ); + const TPtrC16 ptrReadBuffer( (TText16*) readBuffer->Ptr(), + ( readBuffer->Length() + 1 ) >> 1 ); + HBufC16* textBuffer=HBufC16::NewL( ptrReadBuffer.Length() ); + *textBuffer=ptrReadBuffer; + CleanupStack::PopAndDestroy( readBuffer ); // readBuffer + CleanupStack::PushL( textBuffer ); + + SetNamesL( *textBuffer ); + + CleanupStack::PopAndDestroy( 3 ); // textbuffer, fs, rf + + WriteTextL( EApWapCurrentBearer, TPtrC(WAP_IP_BEARER) ); // required ! + + WriteTextL( EApIapServiceType, TPtrC(OUTGOING_WCDMA) ); // required ! + + + WriteTextL( EApIspIfName, KDefGprsIfName ); // required ! + WriteTextL( EApIspIfParams, KDefGprsIfParams ); // required ! + WriteTextL( EApIspIPGateway, KDefIspGateway ); + + WriteTextL( EApWapGatewayAddress, KDefWapGatewayIpAddress ); + WriteTextL( EApIspIPAddr, KDefPhoneIpAddress ); + WriteTextL( EApIspIPNameServer1, KDefPrimaryNameServer ); + WriteTextL( EApIspIPNameServer2, KDefSecondaryNameServer ); + + if ( iExt->iIsIpv6Supported ) + { + WriteTextL( EApIP6NameServer1, KDefIp6PrimaryNameServer ); + WriteTextL( EApIP6NameServer2, KDefIp6SecondaryNameServer ); + } + + SetIfNetworksL(); + + WriteTextL( EApProxyProtocolName, KDefProxyProtocolName ); + + CLOG( ( EApItem, 1, _L( "<- CApAccessPointItem::ConstructL" ) ) ); + } + + +// --------------------------------------------------------- +// CApAccessPointItem::ReadTextL +// --------------------------------------------------------- +// +EXPORT_C void CApAccessPointItem::ReadTextL( const TApMember aColumn, + TDes8& aValue ) + { + CLOG( ( EApItem, 0, _L( "-> CApAccessPointItem::ReadTextL8" ) ) ); + + LeaveIfUnsupportedL( aColumn ); + + switch ( aColumn ) + { + case EApIspIfCallbackInfo: + { + // make it large enough to hold + aValue.SetLength( iIspIfCallbackInfo->Length() ); + aValue.Format( KFormat8, iIspIfCallbackInfo ); + break; + } + case EApIspInitString: + { + // make it large enough to hold + aValue.SetLength( iIspInitString->Length() ); + aValue.Format( KFormat8, iIspInitString ); + break; + } + default: + { + __ASSERT_DEBUG( EFalse, ApCommons::Panic( EInvalidColumn ) ); + User::Leave( KErrInvalidColumn ); + break; + } + } + + CLOG( ( EApItem, 1, _L( "<- CApAccessPointItem::ReadTextL8" ) ) ); + } + + + +// --------------------------------------------------------- +// CApAccessPointItem::ReadTextL +// --------------------------------------------------------- +// +EXPORT_C void CApAccessPointItem::ReadTextL( const TApMember aColumn, + TDes16& aValue ) + { + CLOG( ( EApItem, 0, _L( "-> CApAccessPointItem::ReadTextL" ) ) ); + + LeaveIfUnsupportedL( aColumn ); + + switch ( aColumn ) + { + case EApWapAccessPointName: + { + aValue.SetLength( iWapAccessPointName->Length() ); + aValue.Format( KFormat, iWapAccessPointName ); + break; + } + case EApWapCurrentBearer: + { + // make it large enough to hold + aValue.SetLength( iWapBearer->Length() ); + aValue.Format( KFormat, iWapBearer ); + break; + } + case EApWapGatewayAddress: + { + // make it large enough to hold + aValue.SetLength( iWapGatewayAddress->Length() ); + aValue.Format( KFormat, iWapGatewayAddress ); + break; + } + case EApIapName: + { + // make it large enough to hold + aValue.SetLength( iIapName->Length() ); + aValue.Format( KFormat, iIapName ); + break; + } + case EApIapServiceType: + { + // make it large enough to hold + aValue.SetLength( iIapServiceType->Length() ); + aValue.Format( KFormat, iIapServiceType ); + break; + } + case EApIspName: + { + // make it large enough to hold + aValue.SetLength( iIspName->Length() ); + aValue.Format( KFormat, iIspName ); + break; + } + case EApIspDescription: + { + // make it large enough to hold + aValue.SetLength( iIspDescription->Length() ); + aValue.Format( KFormat, iIspDescription ); + break; + } + case EApIspDefaultTelNumber: + { + // make it large enough to hold + aValue.SetLength( iIspDefaultTelNumber->Length() ); + aValue.Format( KFormat, iIspDefaultTelNumber ); + break; + } + case EApIspLoginName: + { + // make it large enough to hold + aValue.SetLength( iUserName->Length() ); + aValue.Format( KFormat, iUserName ); + break; + } + case EApIspLoginPass: + { + // make it large enough to hold + aValue.SetLength( iPassword->Length() ); + aValue.Format( KFormat, iPassword ); + break; + } + case EApIspIfName: + case EApGprsIfName: + case EApCdmaIfName: + { + // make it large enough to hold + aValue.SetLength( iIspIfName->Length() ); + aValue.Format( KFormat, iIspIfName ); + break; + } + case EApIspIfParams: + case EApGprsIfParams: + case EApCdmaIfParams: + { + // make it large enough to hold + aValue.SetLength( iIspIfParams->Length() ); + aValue.Format( KFormat, iIspIfParams ); + break; + } + case EApIspIfNetworks: + case EApGprsIfNetworks: + case EApCdmaIfNetworks: + case EApWlanIfNetworks: + { + // make it large enough to hold + aValue.SetLength( iIspIfNetworks->Length() ); + aValue.Format( KFormat, iIspIfNetworks ); + break; + } + case EApIspIfAuthName: + case EApGprsIfAuthName: + case EApCdmaIfAuthName: + case EApWlanIfAuthName: + { + // make it large enough to hold + aValue.SetLength( iIspIfAuthName->Length() ); + aValue.Format( KFormat, iIspIfAuthName ); + break; + } + case EApIspIfAuthPass: + case EApGprsIfAuthPassword: + case EApCdmaIfAuthPassword: + case EApWlanIfAuthPassword: + { + // make it large enough to hold + aValue.SetLength( iIspIfAuthPass->Length() ); + aValue.Format( KFormat, iIspIfAuthPass ); + break; + } + case EApIspIPAddr: + case EApGprsIpAddr: + case EApCdmaIpAddr: + case EApWlanIpAddr: + { + // make it large enough to hold + aValue.SetLength( iIspIPAddr->Length() ); + aValue.Format( KFormat, iIspIPAddr ); + break; + } + case EApIspIPNetMask: + case EApGprsIpNetMask: + case EApCdmaIpNetMask: + case EApWlanIpNetMask: + { + // make it large enough to hold + aValue.SetLength( iIspIPNetMask->Length() ); + aValue.Format( KFormat, iIspIPNetMask ); + break; + } + case EApIspIPGateway: + case EApGprsIpGateway: + case EApCdmaIpGateway: + case EApWlanIpGateway: + { + // make it large enough to hold + aValue.SetLength( iIspGateway->Length() ); + aValue.Format( KFormat, iIspGateway ); + break; + } + case EApIspIPNameServer1: + case EApGprsIPNameServer1: + case EApCdmaIPNameServer1: + case EApWlanIPNameServer1: + { + // make it large enough to hold + aValue.SetLength( iPrimaryDNS->Length() ); + aValue.Format( KFormat, iPrimaryDNS ); + break; + } + case EApIspIPNameServer2: + case EApGprsIPNameServer2: + case EApCdmaIPNameServer2: + case EApWlanIPNameServer2: + { + // make it large enough to hold + aValue.SetLength( iSecondaryDNS->Length() ); + aValue.Format( KFormat, iSecondaryDNS ); + break; + } + case EApGprsPdpAddress: + { + // make it large enough to hold + aValue.SetLength( iGprsPdpAddress->Length() ); + aValue.Format( KFormat, iGprsPdpAddress ); + break; + } + case EApProxyProtocolName: + { + aValue.SetLength( iApProxyProtocolName->Length() ); + aValue.Format( KFormat, iApProxyProtocolName ); + break; + } + case EApProxyLoginName: + { + aValue.SetLength( iWapProxyLoginName->Length() ); + aValue.Format( KFormat, iWapProxyLoginName ); + break; + } + case EApProxyLoginPass: + { + aValue.SetLength( iWapProxyLoginPass->Length() ); + aValue.Format( KFormat, iWapProxyLoginPass ); + break; + } + case EApNetworkName: + { + aValue.SetLength( iNetworkName->Length() ); + aValue.Format( KFormat, iNetworkName ); + break; + } + case EApIP6NameServer1: + { + // make it large enough to hold + if ( iExt->iIsIpv6Supported ) + { + aValue.SetLength( iExt->iIpv6PrimaryDNS->Length() ); + aValue.Format( KFormat, iExt->iIpv6PrimaryDNS ); + } + else + { + User::Leave( KErrNotSupported ); + } + break; + } + case EApIP6NameServer2: + { + // make it large enough to hold + if ( iExt->iIsIpv6Supported ) + { + aValue.SetLength( iExt->iIpv6SecondaryDNS->Length() ); + aValue.Format( KFormat, iExt->iIpv6SecondaryDNS ); + } + else + { + User::Leave( KErrNotSupported ); + } + break; + } + // CDMA2000 + case EApCdmaIwfName: + { + // LeaveIfUnsupported prevents getting here with no CDMA support. + __ASSERT_ALWAYS \ + ( iExt->iCdmaData, ApCommons::Panic( ESanityCheckFailed ) ); + aValue.SetLength( iExt->iCdmaData->iIwfName->Length() ); + aValue.Format( KFormat, iExt->iCdmaData->iIwfName ); + break; + } + case EApCdmaPdpAddress: + { + // LeaveIfUnsupported prevents getting here with no CDMA support. + __ASSERT_ALWAYS \ + ( iExt->iCdmaData, ApCommons::Panic( ESanityCheckFailed ) ); + aValue.SetLength( iExt->iCdmaData->iPdpAddress->Length() ); + aValue.Format( KFormat, iExt->iCdmaData->iPdpAddress ); + break; + } + case EApCdmaHomeAgentAddress: + { + // LeaveIfUnsupported prevents getting here with no CDMA support. + __ASSERT_ALWAYS \ + ( iExt->iCdmaData, ApCommons::Panic( ESanityCheckFailed ) ); + aValue.SetLength( iExt->iCdmaData->iHomeAgentAddress->Length() ); + aValue.Format( KFormat, iExt->iCdmaData->iHomeAgentAddress ); + break; + } + case EApCdmaMipPrimaryHomeAgent: + { + // LeaveIfUnsupported prevents getting here with no CDMA support. + __ASSERT_ALWAYS \ + ( iExt->iCdmaData, ApCommons::Panic( ESanityCheckFailed ) ); + aValue.SetLength + ( iExt->iCdmaData->iMipPrimaryHomeAgent->Length() ); + aValue.Format + ( KFormat, iExt->iCdmaData->iMipPrimaryHomeAgent ); + break; + } + case EApCdmaMipSecondaryHomeAgent: + { + // LeaveIfUnsupported prevents getting here with no CDMA support. + __ASSERT_ALWAYS \ + ( iExt->iCdmaData, ApCommons::Panic( ESanityCheckFailed ) ); + aValue.SetLength + ( iExt->iCdmaData->iMipSecondaryHomeAgent->Length() ); + aValue.Format + ( KFormat, iExt->iCdmaData->iMipSecondaryHomeAgent ); + break; + } + // END CDMA2000 + // WLAN + case EApWlanNetworkName: + { + // LeaveIfUnsupported prevents getting here with no WLAN support. + __ASSERT_ALWAYS \ + ( iExt->iWlanData, ApCommons::Panic( ESanityCheckFailed ) ); + aValue.SetLength + ( iExt->iWlanData->iWlanNetworkName->Length() ); + aValue.Format + ( KFormat, iExt->iWlanData->iWlanNetworkName ); + break; + } + // END WLAN + // LANModem + case EApLanBearerName: + { + aValue.SetLength( iExt->iLanBearerModemName->Length() ); + aValue.Format( KFormat, iExt->iLanBearerModemName ); + break; + } + // END LANModem + case EApIapBearerType: + { + aValue.SetLength( iExt->iIapBearerType->Length() ); + aValue.Format( KFormat, iExt->iIapBearerType ); + break; + } + default: + { + __ASSERT_DEBUG( EFalse, ApCommons::Panic( EInvalidColumn ) ); + User::Leave( KErrInvalidColumn ); + } + } + + CLOG( ( EApItem, 1, _L( "<- CApAccessPointItem::ReadTextL" ) ) ); + } + + +// --------------------------------------------------------- +// CApAccessPointItem::ReadLongTextL +// --------------------------------------------------------- +// +EXPORT_C HBufC* CApAccessPointItem::ReadLongTextL( const TApMember aColumn ) + { + CLOG( ( EApItem, 0, _L( "-> CApAccessPointItem::ReadLongTextL" ) ) ); + + LeaveIfUnsupportedL( aColumn ); + + HBufC* retval = NULL; + switch ( aColumn ) + { + case EApWapStartPage: + { + retval = iStartingPage; + break; + } + case EApIspLoginScript: + { + retval = iLoginScript; + break; + } + case EApGprsAccessPointName: + { + retval = iGprsAccessPointName; + break; + } + case EApProxyServerAddress: + { + retval = iApProxyServerAddress; + break; + } + case EApProxyExceptions: + { + retval = iApProxyExceptions; + break; + } + default: + { + __ASSERT_DEBUG( EFalse, ApCommons::Panic( EInvalidColumn ) ); + User::Leave( KErrInvalidColumn ); + break; + } + } + + CLOG( ( EApItem, 1, _L( "<- CApAccessPointItem::ReadLongTextL" ) ) ); + return retval; + } + + + + +// --------------------------------------------------------- +// CApAccessPointItem::ReadConstLongTextL +// --------------------------------------------------------- +// +EXPORT_C const HBufC* CApAccessPointItem::ReadConstLongTextL + ( const TApMember aColumn ) + { + CLOG( ( EApItem, 0, _L( "-> CApAccessPointItem::ReadConstLongTextL" ) ) ); + + LeaveIfUnsupportedL( aColumn ); + + HBufC* retval = NULL; + switch ( aColumn ) + { + case EApWapStartPage: + { + retval = iStartingPage; + break; + } + case EApIspLoginScript: + { + retval = iLoginScript; + break; + } + case EApGprsAccessPointName: + { + retval = iGprsAccessPointName; + break; + } + case EApProxyServerAddress: + { + retval = iApProxyServerAddress; + break; + } + case EApProxyExceptions: + { + retval = iApProxyExceptions; + break; + } + default: + { + __ASSERT_DEBUG( EFalse, ApCommons::Panic( EInvalidColumn ) ); + User::Leave( KErrInvalidColumn ); + break; + } + } + + CLOG( ( EApItem, 1, _L( "<- CApAccessPointItem::ReadConstLongTextL" ) ) ); + return retval; + } + + +// --------------------------------------------------------- +// CApAccessPointItem::ReadTextLengthL +// --------------------------------------------------------- +// +EXPORT_C TUint32 CApAccessPointItem::ReadTextLengthL( const TApMember aColumn ) + { + CLOG( ( EApItem, 0, _L( "-> CApAccessPointItem::ReadTextLengthL" ) ) ); + + LeaveIfUnsupportedL( aColumn ); + + TUint32 l( 0 ); + switch ( aColumn ) + { // 16 first + case EApWapAccessPointName: + { + l = iWapAccessPointName->Length(); + break; + } + case EApWapStartPage: + { + l = iStartingPage->Length(); + break; + } + case EApWapCurrentBearer: + { + l = iWapBearer->Length(); + break; + } + case EApWapGatewayAddress: + { + l = iWapGatewayAddress->Length(); + break; + } + case EApIapName: + { + l = iIapName->Length(); + break; + } + case EApIapServiceType: + { + l = iIapServiceType->Length(); + break; + } + case EApIspName: + { + l = iIspName->Length(); + break; + } + case EApIspDescription: + { + l = iIspDescription->Length(); + break; + } + case EApIspDefaultTelNumber: + { + l = iIspDefaultTelNumber->Length(); + break; + } + case EApIspLoginName: + { + l = iUserName->Length(); + break; + } + case EApIspLoginPass: + { + l = iPassword->Length(); + break; + } + case EApIspIfName: + case EApGprsIfName: + case EApCdmaIfName: + { + l = iIspIfName->Length(); + break; + } + case EApIspIfParams: + case EApGprsIfParams: + case EApCdmaIfParams: + { + l = iIspIfParams->Length(); + break; + } + case EApIspIfNetworks: + case EApGprsIfNetworks: + case EApCdmaIfNetworks: + case EApWlanIfNetworks: + { + l = iIspIfNetworks->Length(); + break; + } + case EApIspIfAuthName: + case EApGprsIfAuthName: + case EApCdmaIfAuthName: + case EApWlanIfAuthName: + { + l = iIspIfAuthName->Length(); + break; + } + case EApIspIfAuthPass: + case EApGprsIfAuthPassword: + case EApCdmaIfAuthPassword: + case EApWlanIfAuthPassword: + { + l = iIspIfAuthPass->Length(); + break; + } + case EApIspIPAddr: + case EApGprsIpAddr: + case EApCdmaIpAddr: + case EApWlanIpAddr: + { + l = iIspIPAddr->Length(); + break; + } + case EApIspIPNetMask: + case EApGprsIpNetMask: + case EApCdmaIpNetMask: + case EApWlanIpNetMask: + { + l = iIspIPNetMask->Length(); + break; + } + case EApIspIPGateway: + case EApGprsIpGateway: + case EApCdmaIpGateway: + case EApWlanIpGateway: + { + l = iIspGateway->Length(); + break; + } + case EApIspIPNameServer1: + case EApGprsIPNameServer1: + case EApCdmaIPNameServer1: + case EApWlanIPNameServer1: + { + l = iPrimaryDNS->Length(); + break; + } + case EApIspIPNameServer2: + case EApGprsIPNameServer2: + case EApCdmaIPNameServer2: + case EApWlanIPNameServer2: + { + l = iSecondaryDNS->Length(); + break; + } + case EApGprsAccessPointName: + { + l = iGprsAccessPointName->Length(); + break; + } + case EApGprsPdpAddress: + { + l = iGprsPdpAddress->Length(); + break; + } + // 8 bit ones + case EApIspIfCallbackInfo: + { + l = iIspIfCallbackInfo->Length(); + break; + } + case EApIspInitString: + { + l = iIspInitString->Length(); + break; + } + // Login script + case EApIspLoginScript: + { + l = iLoginScript->Length(); + break; + } + case EApProxyProtocolName: + { + l = iApProxyProtocolName->Length(); + break; + } + case EApProxyServerAddress: + { + l = iApProxyServerAddress->Length(); + break; + } + case EApProxyExceptions: + { + l = iApProxyExceptions->Length(); + break; + } + case EApProxyLoginName: + { + l = iWapProxyLoginName->Length(); + break; + } + case EApProxyLoginPass: + { + l = iWapProxyLoginPass->Length(); + break; + } + case EApNetworkName: + { + l = iNetworkName->Length(); + break; + } + case EApIP6NameServer1: + { + if ( iExt->iIsIpv6Supported ) + { + l = iExt->iIpv6PrimaryDNS->Length(); + } + else + { + User::Leave( KErrNotSupported ); + } + break; + } + case EApIP6NameServer2: + { + if ( iExt->iIsIpv6Supported ) + { + l = iExt->iIpv6SecondaryDNS->Length(); + } + else + { + User::Leave( KErrNotSupported ); + } + break; + } + // CDMA2000 + case EApCdmaIwfName: + { + // LeaveIfUnsupported prevents getting here with no CDMA support. + __ASSERT_ALWAYS \ + ( iExt->iCdmaData, ApCommons::Panic( ESanityCheckFailed ) ); + l = iExt->iCdmaData->iIwfName->Length(); + break; + } + case EApCdmaPdpAddress: + { + // LeaveIfUnsupported prevents getting here with no CDMA support. + __ASSERT_ALWAYS \ + ( iExt->iCdmaData, ApCommons::Panic( ESanityCheckFailed ) ); + l = iExt->iCdmaData->iPdpAddress->Length(); + break; + } + case EApCdmaHomeAgentAddress: + { + // LeaveIfUnsupported prevents getting here with no CDMA support. + __ASSERT_ALWAYS \ + ( iExt->iCdmaData, ApCommons::Panic( ESanityCheckFailed ) ); + l = iExt->iCdmaData->iHomeAgentAddress->Length(); + break; + } + case EApCdmaMipPrimaryHomeAgent: + { + // LeaveIfUnsupported prevents getting here with no CDMA support. + __ASSERT_ALWAYS \ + ( iExt->iCdmaData, ApCommons::Panic( ESanityCheckFailed ) ); + l = iExt->iCdmaData->iMipPrimaryHomeAgent->Length(); + break; + } + case EApCdmaMipSecondaryHomeAgent: + { + // LeaveIfUnsupported prevents getting here with no CDMA support. + __ASSERT_ALWAYS \ + ( iExt->iCdmaData, ApCommons::Panic( ESanityCheckFailed ) ); + l = iExt->iCdmaData->iMipSecondaryHomeAgent->Length(); + break; + } + // END CDMA2000 + // WLAN + case EApWlanNetworkName: + { + // LeaveIfUnsupported prevents getting here with no WLAN support. + __ASSERT_ALWAYS \ + ( iExt->iWlanData, ApCommons::Panic( ESanityCheckFailed ) ); + l = iExt->iWlanData->iWlanNetworkName->Length(); + break; + } + // END WLAN + default: + { + __ASSERT_DEBUG( EFalse, ApCommons::Panic( EInvalidColumn ) ); + User::Leave( KErrInvalidColumn ); + } + } + + CLOG( ( EApItem, 1, _L( "<- CApAccessPointItem::ReadTextLengthL" ) ) ); + return l; + } + + +// --------------------------------------------------------- +// CApAccessPointItem::ReadUint +// --------------------------------------------------------- +// +EXPORT_C TInt CApAccessPointItem::ReadUint( const TApMember aColumn, + TUint32& aValue ) + { + CLOG( ( EApItem, 0, _L( "-> CApAccessPointItem::ReadUint" ) ) ); + + TInt retval ( KErrNone ); + + if( !IsSupported( aColumn ) ) + { + retval = KErrNotSupported; + } + else + { + switch ( aColumn ) + { + case EApWapAccessPointID: + { + aValue = iWapUid; + break; + } + case EApWapIap: + { + aValue = iWapIap; + break; + } + case EApIapServiceId: + { + aValue = iIapServiceId; + break; + } + case EApIapChargecard: + { + aValue = iIapChargeCardId; + break; + } + case EApIspIspType: + case EApCdmaApType: + { + aValue = iIspType; + break; + } + case EApIspAuthRetries: + case EApGprsIfAuthRetries: + case EApCdmaIfAuthRetries: + case EApWlanIfAuthRetries: + { + aValue = iIspIfAuthRetries; + break; + } + case EApIspIfCallbackType: + { + aValue = iCallBackTypeIsServerNum; + break; + } + case EApIspCallBackTimeOut: + { + aValue = iIspCallbackTimeOut; + break; + } + case EApIspBearerName: + { + aValue = iIspBearerName; + break; + } + case EApIspBearerSpeed: + { + aValue = iMaxConnSpeed; + break; + } + case EApIspBearerCE: + { + aValue = iIspBearerCE; + break; + } + case EApIspBearerCallTypeIsdn: + { + aValue = iBearerCallTypeIsdn; + break; + } + case EApIspBearerType: + { + aValue = iIspBearerType; + break; + } + case EApIspChannelCoding: + { + aValue = iIspChannelCoding; + break; + } + case EApIspAIUR: + { + aValue = iIspAIUR; + break; + } + case EApIspRequestedTimeSlots: + { + aValue = iIspRequestedTimeSlots; + break; + } + case EApIspMaximumTimeSlots: + { + aValue = iIspMaximumTimeSlots; + break; + } + case EApGprsPdpType: + { + aValue = iGprsPdpType; + break; + } + case EApGprsReqPrecedence: + { + aValue = iGprsReqPrecedence; + break; + } + case EApGprsReqDelay: + { + aValue = iGprsReqDelay; + break; + } + case EApGprsReqReliability: + { + aValue = iGprsReqReliability; + break; + } + case EApGprsReqPeakThroughput: + { + aValue = iGprsReqPeakThroughput; + break; + } + case EApGprsReqMeanPeakThroughput: + { + aValue = iGprsReqMeanPeakThroughput; + break; + } + case EApGprsMinPrecedence: + { + aValue = iGprsMinPrecedence; + break; + } + case EApGprsMinDelay: + { + aValue = iGprsMinDelay; + break; + } + case EApGprsMinReliability: + { + aValue = iGprsMinReliability; + break; + } + case EApGprsMinPeakThroughput: + { + aValue = iGprsMinPeakThroughput; + break; + } + case EApGprsMinMeanThroughput: + { + aValue = iGprsMinMeanThroughput; + break; + } + case EApWapWspOption: + { + aValue = iIsConnectionTypeContinuous; + break; + } + case EApProxyPortNumber: + { + aValue = iApProxyPortNumber; + break; + } + case EApWapProxyPort: + { + aValue = iWapProxyPort; + break; + } + case EApNetworkID: + { + aValue = iNetworkId; + break; + } + case EApIapBearerService: + { + aValue = iApIapBearerService; + break; + } + + //* DEPRECATED !!! + case EApWapIsp: + case EApWapChargecard: + case EApWapIspType: + { + __ASSERT_DEBUG( EFalse, \ + User::Panic( kApSet, KErrNotSupported ) ); + retval = KErrNotSupported; + break; + } + //* Deprecated ends + // CDMA2000 + case EApCdmaServiceOption: + { + // IsSupported() check prevents getting here with no CDMA supp. + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + aValue = iExt->iCdmaData->iServiceOption; + break; + } + case EApCdmaPdpType: + { + // IsSupported() check prevents getting here with no CDMA supp. + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + aValue = iExt->iCdmaData->iPdpType; + break; + } + case EApCdmaReqFwdPriority: + { + // IsSupported() check prevents getting here with no CDMA supp. + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + aValue = iExt->iCdmaData->iReqFwdPriority; + break; + } + case EApCdmaReqRevPriority: + { + // IsSupported() check prevents getting here with no CDMA supp. + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + aValue = iExt->iCdmaData->iReqRevPriority; + break; + } + case EApCdmaReqFwdBitrate: + { + // IsSupported() check prevents getting here with no CDMA supp. + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + aValue = iExt->iCdmaData->iReqFwdBitrate; + break; + } + case EApCdmaReqRevBitrate: + { + // IsSupported() check prevents getting here with no CDMA supp. + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + aValue = iExt->iCdmaData->iReqRevBitrate; + break; + } + case EApCdmaReqFwdLoss: + { + // IsSupported() check prevents getting here with no CDMA supp. + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + aValue = iExt->iCdmaData->iReqFwdLoss; + break; + } + case EApCdmaReqRevLoss: + { + // IsSupported() check prevents getting here with no CDMA supp. + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + aValue = iExt->iCdmaData->iReqRevLoss; + break; + } + case EApCdmaReqFwdMaxDelay: + { + // IsSupported() check prevents getting here with no CDMA supp. + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + aValue = iExt->iCdmaData->iReqFwdMaxDelay; + break; + } + case EApCdmaReqRevMaxDelay: + { + // IsSupported() check prevents getting here with no CDMA supp. + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + aValue = iExt->iCdmaData->iReqRevMaxDelay; + break; + } + case EApCdmaMinFwdBitrate: + { + // IsSupported() check prevents getting here with no CDMA supp. + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + aValue = iExt->iCdmaData->iMinFwdBitrate; + break; + } + case EApCdmaMinRevBitrate: + { + // IsSupported() check prevents getting here with no CDMA supp. + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + aValue = iExt->iCdmaData->iMinRevBitrate; + break; + } + case EApCdmaAccptFwdLoss: + { + // IsSupported() check prevents getting here with no CDMA supp. + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + aValue = iExt->iCdmaData->iAccptFwdLoss; + break; + } + case EApCdmaAccptRevLoss: + { + // IsSupported() check prevents getting here with no CDMA supp. + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + aValue = iExt->iCdmaData->iAccptRevLoss; + break; + } + case EApCdmaAccptFwdMaxDelay: + { + // IsSupported() check prevents getting here with no CDMA supp. + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + aValue = iExt->iCdmaData->iAccptFwdMaxDelay; + break; + } + case EApCdmaAccptRevMaxDelay: + { + // IsSupported() check prevents getting here with no CDMA supp. + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + aValue = iExt->iCdmaData->iAccptRevMaxDelay; + break; + } + case EApCdmaQosWarningTimeout: + { + // IsSupported() check prevents getting here with no CDMA supp. + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + aValue = iExt->iCdmaData->iQosWarningTimeout; + break; + } + case EApCdmaRlpMode: + { + // IsSupported() check prevents getting here with no CDMA supp. + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + aValue = iExt->iCdmaData->iRlpMode; + break; + } + case EApCdmaMipTimeout: + { + // IsSupported() check prevents getting here with no CDMA supp. + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + aValue = iExt->iCdmaData->iMipTimeout; + break; + } + case EApCdmaNaiType: + { + // IsSupported() check prevents getting here with no CDMA supp. + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + aValue = iExt->iCdmaData->iNaiType; + break; + } + case EApCdmaSimpleIpAuthAlgorithm: + { + // IsSupported() check prevents getting here with no CDMA supp. + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + aValue = iExt->iCdmaData->iSimpleIpAuthAlgorithm; + break; + } + case EApCdmaSimpleIpPapSsHandle: + { + // IsSupported() check prevents getting here with no CDMA supp. + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + aValue = iExt->iCdmaData->iSimpleIpPapSsHandle; + break; + } + case EApCdmaSimpleIpChapSsHandle: + { + // IsSupported() check prevents getting here with no CDMA supp. + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + aValue = iExt->iCdmaData->iSimpleIpChapSsHandle; + break; + } + case EApCdmaMipTBit: + { + // IsSupported() check prevents getting here with no CDMA supp. + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + aValue = iExt->iCdmaData->iMipTBit; + break; + } + case EApCdmaMipMnAaaAuthAlgorithm: + { + // IsSupported() check prevents getting here with no CDMA supp. + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + aValue = iExt->iCdmaData->iMipMnAaaAuthAlgorithm; + break; + } + case EApCdmaMipMnAaaSpi: + { + // IsSupported() check prevents getting here with no CDMA supp. + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + aValue = iExt->iCdmaData->iMipMnAaaSpi; + break; + } + case EApCdmaMipMnAaaSsHandle: + { + // IsSupported() check prevents getting here with no CDMA supp. + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + aValue = iExt->iCdmaData->iMipMnAaaSsHandle; + break; + } + case EApCdmaMipMnHaAuthAlgorithm: + { + // IsSupported() check prevents getting here with no CDMA supp. + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + aValue = iExt->iCdmaData->iMipMnHaAuthAlgorithm; + break; + } + case EApCdmaMipMnHaSpi: + { + // IsSupported() check prevents getting here with no CDMA supp. + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + aValue = iExt->iCdmaData->iMipMnHaSpi; + break; + } + case EApCdmaMipMnHaSsHandle: + { + // IsSupported() check prevents getting here with no CDMA supp. + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + aValue = iExt->iCdmaData->iMipMnHaSsHandle; + break; + } + // END CDMA2000 + // WLAN + case EApWlanNetworkMode: + { + // IsSupported() check prevents getting here with no WLAN supp. + __ASSERT_ALWAYS ( iExt->iWlanData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + aValue = iExt->iWlanData->iWlanNetworkMode; + break; + } + case EApWlanSecurityMode: + { + // IsSupported() check prevents getting here with no WLAN supp. + __ASSERT_ALWAYS ( iExt->iWlanData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + aValue = iExt->iWlanData->iWlanSecurityMode; + break; + } + case EApWlanSettingsId: + { + // IsSupported() check prevents getting here with no WLAN supp. + __ASSERT_ALWAYS ( iExt->iWlanData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + aValue = iExt->iWlanData->iWlanId; + break; + } + case EApWlanChannelId: + { + // IsSupported() check prevents getting here with no WLAN supp. + __ASSERT_ALWAYS ( iExt->iWlanData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + aValue = iExt->iWlanData->iChannelId; + break; + } + // END WLAN + // LANModem + case EApIapBearerID: + { + aValue = iExt->iIapBearerID; + break; + } + // END LANModem + default : + { + __ASSERT_DEBUG( EFalse, ApCommons::Panic( EInvalidColumn ) ); + retval = KErrInvalidColumn; + break; + } + } + } + + CLOG( ( EApItem, 1, _L( "<- CApAccessPointItem::ReadUint" ) ) ); + return retval; + } + + + +// --------------------------------------------------------- +// CApAccessPointItem::ReadBool +// --------------------------------------------------------- +// +EXPORT_C TInt CApAccessPointItem::ReadBool( const TApMember aColumn, + TBool& aValue ) + { + CLOG( ( EApItem, 0, _L( "-> CApAccessPointItem::ReadBool" ) ) ); + + TInt retval ( KErrNone ); + + if( !IsSupported( aColumn ) ) + { + retval = KErrNotSupported; + } + else + { + switch ( aColumn ) + { + case EApWapSecurity: + { + aValue = iIsWTLSSecurityOn; + break; + } + case EApIspDialResolution: + { + aValue = iIspDialResolution; + break; + } + case EApIspUseLoginScript: + { + aValue = iUseLoginScript; + break; + } + case EApIspPromptForLogin: + { + aValue = iPromptPassword; + break; + } + case EApIspDisplayPCT: + { + aValue = iDisplayTerminalWindow; + break; + } + case EApIspIfPromptForAuth: + case EApGprsIfPromptForAuth: + case EApCdmaIfPromptForAuth: + case EApWlanIfPromptForAuth: + { + aValue = iIspIfPromptForAuth; + break; + } + case EApIspIfCallbackEnabled: + { + aValue = iUseCallBack; + break; + } + case EApIspIPAddrFromServer: + case EApGprsIpAddrFromServer: + case EApCdmaIpAddrFromServer: + case EApWlanIpAddrFromServer: + { + aValue = iIspIPAddrFromServer; + break; + } + case EApIspIPDnsAddrFromServer: + case EApGprsIpDnsAddrFromServer: + case EApCdmaIpDnsAddrFromServer: + case EApWlanIpDnsAddrFromServer: + { + aValue = iGetDNSIPFromServer; + break; + } + case EApIspEnableIpHeaderComp: + case EApGprsHeaderCompression: + case EApCdmaHeaderCompression: + { + aValue = iEnablePPPCompression; + break; + } + case EApIspEnableLCPExtensions: + case EApGprsEnableLCPExtensions: + case EApCdmaEnableLCPExtensions: + { + aValue = iIspEnableLCPExtensions; + break; + } + case EApIspDisablePlainTextAuth: + case EApGprsDisablePlainTextAuth: + case EApCdmaDisablePlainTextAuth: + { + aValue = iIsPasswordAuthenticationSecure; + break; + } + case EApIspEnableSWCompression: + case EApGprsDataCompression: + case EApCdmaDataCompression: + { + aValue = iIspEnableSwCompression; + break; + } +// NOTE! This has been deprecated. + case EApIspBearerCallTypeIsdn: + { + aValue = ( iBearerCallTypeIsdn != ECallTypeAnalogue ); + break; + } + case EApGprsUseAnonymAccess: + case EApCdmaAnonymousAccess: + { + aValue = iGprsUseAnonymAccess; + break; + } + case EApIsReadOnly: + { + aValue = iIsReadOnly; + break; + } + case EApProxyUseProxy: + { + aValue = iApProxyUseProxy; + break; + } + case EApHasProxySettings: + { + aValue = iApHasProxySettings; + break; + } + case EApIP6DNSAddrFromServer: + { + if ( iExt->iIsIpv6Supported ) + { + aValue = iExt->iIpv6GetDNSIPFromServer; + } + else + { + retval = KErrNotSupported; + } + break; + } + // CDMA2000 + case EApCdmaMip: + { + // IsSupported() check prevents getting here with no CDMA supp. + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + aValue = iExt->iCdmaData->iMip; + break; + } + // END CDMA2000 + // WLAN + case EApWlanScanSSID: + { + // IsSupported() check prevents getting here with no WLAN supp. + __ASSERT_ALWAYS ( iExt->iWlanData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + aValue = iExt->iWlanData->iScanSSID; + break; + } + // END WLAN + default : + { + __ASSERT_DEBUG( EFalse, ApCommons::Panic( EInvalidColumn ) ); + return KErrInvalidColumn; + } + } + } + + CLOG( ( EApItem, 1, _L( "<- CApAccessPointItem::ReadBool" ) ) ); + return retval; + } + + +// Update +// --------------------------------------------------------- +// CApAccessPointItem::WriteTextL +// --------------------------------------------------------- +// +EXPORT_C TInt CApAccessPointItem::WriteTextL( const TApMember aColumn, + const TDesC8& aValue ) + { + CLOG( ( EApItem, 0, _L( "-> CApAccessPointItem::WriteTextL8" ) ) ); + + LeaveIfUnsupportedL( aColumn ); + + TInt ret = KErrNone; + + switch ( aColumn ) + { + case EApIspIfCallbackInfo: + { + ReAllocL( iIspIfCallbackInfo, aValue ); + break; + } + case EApIspInitString: + { + ReAllocL( iIspInitString, aValue ); + break; + } + default: + { + __ASSERT_DEBUG( EFalse, ApCommons::Panic( EInvalidColumn ) ); + ret = KErrInvalidColumn; + break; + } + } + + CLOG( ( EApItem, 1, _L( "<- CApAccessPointItem::WriteTextL8" ) ) ); + return ret; + } + + + +// --------------------------------------------------------- +// CApAccessPointItem::WriteTextL +// --------------------------------------------------------- +// +EXPORT_C TInt CApAccessPointItem::WriteTextL( const TApMember aColumn, + const TDesC16& aValue ) + { + CLOG( ( EApItem, 0, _L( "-> CApAccessPointItem::WriteTextL" ) ) ); + + LeaveIfUnsupportedL( aColumn ); + + TInt retval( KErrNone ); + switch ( aColumn ) + { + case EApWapAccessPointName: + { + HBufC* sgd = aValue.AllocLC(); + sgd->Des().Trim(); + ReAllocL( iWapAccessPointName, *sgd); + CleanupStack::PopAndDestroy( sgd ); // sgd + break; + } + case EApWapCurrentBearer: + { + ReAllocL( iWapBearer, aValue); + break; + } + case EApWapGatewayAddress: + { + // this is an IP Address, must remove leading 0s from + // the numbers + HBufC *tmp = GetCleanIpAddressLC( aValue ); + ReAllocL( iWapGatewayAddress, *tmp ); + CleanupStack::PopAndDestroy( tmp ); + break; + } + case EApIapName: + { + ReAllocL( iIapName, aValue); + break; + } + case EApIspName: + { + ReAllocL( iIspName, aValue); + break; + } + case EApIapServiceType: + { + ReAllocL( iIapServiceType, aValue); + //Check if ISP/GPRS has changed , update lfname &/or lfnetworks.! + if ( ( *iIapServiceType == TPtrC(DIAL_IN_ISP) ) || + ( *iIapServiceType == TPtrC(DIAL_OUT_ISP) ) ) + { + WriteTextL( EApIspIfName, KDefIspIfName ); + } + else if ( ( *iIapServiceType == TPtrC(OUTGOING_GPRS) ) || + ( *iIapServiceType == TPtrC(INCOMING_GPRS) ) ) + { + WriteTextL( EApIspIfName, KDefGprsIfName ); + } + else + { // unknown ISP type, do not know what to write, + // simply ignore it.... + } + break; + } + case EApIspDescription: + { + ReAllocL( iIspDescription, aValue); + break; + } + case EApIspDefaultTelNumber: + { + ReAllocL( iIspDefaultTelNumber, aValue); + break; + } + case EApIspLoginName: + { + ReAllocL( iUserName, aValue); + ReAllocL( iIspIfAuthName, aValue); + break; + } + case EApIspLoginPass: + { + ReAllocL( iPassword, aValue); + ReAllocL( iIspIfAuthPass, aValue); + break; + } + case EApIspIfName: + case EApGprsIfName: + case EApCdmaIfName: + { + ReAllocL( iIspIfName, aValue); + break; + } + case EApIspIfParams: + case EApGprsIfParams: + case EApCdmaIfParams: + { + ReAllocL( iIspIfParams, aValue); + break; + } + case EApIspIfNetworks: + case EApGprsIfNetworks: + case EApCdmaIfNetworks: + case EApWlanIfNetworks: + { + ReAllocL( iIspIfNetworks, aValue); // CAN NOT BE CHANGED + break; + } + case EApIspIfAuthName: + case EApGprsIfAuthName: + case EApCdmaIfAuthName: + case EApWlanIfAuthName: + { + ReAllocL( iIspIfAuthName, aValue); + ReAllocL( iUserName, aValue); + break; + } + case EApIspIfAuthPass: + case EApGprsIfAuthPassword: + case EApCdmaIfAuthPassword: + case EApWlanIfAuthPassword: + { + ReAllocL( iIspIfAuthPass, aValue); + ReAllocL( iPassword, aValue); + break; + } + case EApIspIPAddr: + case EApGprsIpAddr: + case EApCdmaIpAddr: + case EApWlanIpAddr: + { + ReAllocL( iIspIPAddr, aValue); + SetIpFromServer(); + break; + } + case EApIspIPNetMask: + case EApGprsIpNetMask: + case EApCdmaIpNetMask: + case EApWlanIpNetMask: + { + ReAllocL( iIspIPNetMask, aValue); + break; + } + case EApIspIPGateway: + case EApGprsIpGateway: + case EApCdmaIpGateway: + case EApWlanIpGateway: + { + ReAllocL( iIspGateway, aValue); + break; + } + case EApIspIPNameServer1: + case EApGprsIPNameServer1: + case EApCdmaIPNameServer1: + case EApWlanIPNameServer1: + { + ReAllocL( iPrimaryDNS, aValue); + SetDnsIpFromServer(); + break; + } + case EApIspIPNameServer2: + case EApGprsIPNameServer2: + case EApCdmaIPNameServer2: + case EApWlanIPNameServer2: + { + ReAllocL( iSecondaryDNS, aValue); + SetDnsIpFromServer(); + break; + } + case EApGprsPdpAddress: + { + ReAllocL( iGprsPdpAddress, aValue ); + break; + } + case EApProxyProtocolName: + { + ReAllocL( iApProxyProtocolName, aValue ); + SetProxyFlag(); + break; + } + case EApNetworkName: + { + ReAllocL( iNetworkName, aValue ); + break; + } + case EApProxyLoginName: + { + ReAllocL( iWapProxyLoginName, aValue ); + break; + } + case EApProxyLoginPass: + { + ReAllocL( iWapProxyLoginPass, aValue ); + break; + } + case EApIP6NameServer1: + { + if ( iExt->iIsIpv6Supported ) + { + ReAllocL( iExt->iIpv6PrimaryDNS, aValue); + SetDns6IpFromServer(); + } + else + { + User::Leave( KErrNotSupported ); + } + break; + } + case EApIP6NameServer2: + { + if ( iExt->iIsIpv6Supported ) + { + ReAllocL( iExt->iIpv6SecondaryDNS, aValue); + SetDns6IpFromServer(); + } + else + { + User::Leave( KErrNotSupported ); + } + break; + } + // CDMA2000 + case EApCdmaIwfName: + { + __ASSERT_ALWAYS \ + ( iExt->iCdmaData, ApCommons::Panic( ESanityCheckFailed ) ); + ReAllocL( iExt->iCdmaData->iIwfName, aValue ); + break; + } + case EApCdmaPdpAddress: + { + __ASSERT_ALWAYS \ + ( iExt->iCdmaData, ApCommons::Panic( ESanityCheckFailed ) ); + ReAllocL( iExt->iCdmaData->iPdpAddress, aValue ); + break; + } + case EApCdmaHomeAgentAddress: + { + __ASSERT_ALWAYS \ + ( iExt->iCdmaData, ApCommons::Panic( ESanityCheckFailed ) ); + ReAllocL( iExt->iCdmaData->iHomeAgentAddress, aValue ); + break; + } + case EApCdmaMipPrimaryHomeAgent: + { + __ASSERT_ALWAYS \ + ( iExt->iCdmaData, ApCommons::Panic( ESanityCheckFailed ) ); + ReAllocL( iExt->iCdmaData->iMipPrimaryHomeAgent, aValue ); + break; + } + case EApCdmaMipSecondaryHomeAgent: + { + __ASSERT_ALWAYS \ + ( iExt->iCdmaData, ApCommons::Panic( ESanityCheckFailed ) ); + ReAllocL( iExt->iCdmaData->iMipSecondaryHomeAgent, aValue ); + break; + } + // END CDMA2000 + // WLAN + case EApWlanNetworkName: + { + __ASSERT_ALWAYS \ + ( iExt->iWlanData, ApCommons::Panic( ESanityCheckFailed ) ); + ReAllocL( iExt->iWlanData->iWlanNetworkName, aValue ); + break; + } + // END WLAN + // LANModem + case EApLanBearerName: + { + ReAllocL( iExt->iLanBearerModemName, aValue ); + break; + } + // END LANModem + case EApIapBearerType: + { + ReAllocL( iExt->iIapBearerType, aValue ); + break; + } + default: + { + __ASSERT_DEBUG( EFalse, ApCommons::Panic( EInvalidColumn ) ); + retval = KErrInvalidColumn; + break; + } + } + + CLOG( ( EApItem, 1, _L( "<- CApAccessPointItem::WriteTextL" ) ) ); + return retval; + } + + +// --------------------------------------------------------- +// CApAccessPointItem::WriteLongTextL +// --------------------------------------------------------- +// +EXPORT_C TInt CApAccessPointItem::WriteLongTextL( const TApMember aColumn, + const TDesC& aValue ) + { + CLOG( ( EApItem, 0, _L( "-> CApAccessPointItem::WriteLongTextL" ) ) ); + + LeaveIfUnsupportedL( aColumn ); + + TInt retval( KErrNone ); + switch ( aColumn ) + { + case EApGprsAccessPointName: + { + ReAllocL( iGprsAccessPointName, aValue); + break; + } + case EApWapStartPage: + { + ReAllocL( iStartingPage, aValue); + break; + } + case EApIspLoginScript: + { + ReAllocL( iLoginScript, aValue ); + break; + } + case EApProxyServerAddress: + { + ReAllocL( iApProxyServerAddress, aValue ); + SetProxyFlag(); + break; + } + case EApProxyExceptions: + { + ReAllocL( iApProxyExceptions, aValue ); + SetProxyFlag(); + break; + } + default: + { + // unknown column... + __ASSERT_DEBUG( EFalse, ApCommons::Panic( EInvalidColumn ) ); + retval = KErrInvalidColumn; + break; + } + } + + CLOG( ( EApItem, 1, _L( "<- CApAccessPointItem::WriteLongTextL" ) ) ); + return retval; + } + + +// --------------------------------------------------------- +// CApAccessPointItem::WriteUint +// --------------------------------------------------------- +// +EXPORT_C TInt CApAccessPointItem::WriteUint( const TApMember aColumn, + const TUint32& aValue ) + { + CLOG( ( EApItem, 0, _L( "-> CApAccessPointItem::WriteUint" ) ) ); + + /***************************************************** + * Series 60 Customer / ETel + * Series 60 ETel API + *****************************************************/ + TInt retval( KErrNone ); + + if ( !IsSupported( aColumn ) ) + { + retval = KErrNotSupported; + } + else + { + switch ( aColumn ) + { + case EApWapAccessPointID: + { + iWapUid = aValue; + break; + } + case EApWapIap: + { + iWapIap = aValue; + break; + } + case EApIapServiceId: + { + iIapServiceId = aValue; + break; + } + case EApIapChargecard: + { + iIapChargeCardId = aValue; + break; + } + case EApIspIspType: + case EApCdmaApType: + { + iIspType = (TCommsDbIspType)aValue; + break; + } + case EApIspAuthRetries: + case EApGprsIfAuthRetries: + case EApCdmaIfAuthRetries: + case EApWlanIfAuthRetries: + { + iIspIfAuthRetries = aValue; + break; + } + case EApIspIfCallbackType: + { + iCallBackTypeIsServerNum = TCallbackAction( aValue ); + break; + } + case EApIspCallBackTimeOut: + { + iIspCallbackTimeOut = aValue; + break; + } + case EApIspBearerName: + { + iIspBearerName = + RMobileCall::TMobileCallDataServiceCaps( aValue ); + break; + } + case EApIspBearerSpeed: + { + iMaxConnSpeed = TApCallSpeed( aValue ); + break; + } + case EApIspBearerCE: + { + //iIspBearerCE = RMobileCall::TMobileCallDataQoSCaps( aValue ); + iIspBearerCE = RMobileCall::TMobileCallDataQoS( aValue ); + break; + } + case EApIspBearerCallTypeIsdn: + { + /* + // DO NOT CHECK VALIDITY HERE AS COMMSDB STORES IT DIFFERENTLY + // AFTER READED FROM THE DB, IT WILL BE CHECKED!!!!! + // ensure it is in the valid range + TUint32 tempint = aValue; + tempint = Min( tempint, TUint32(ECallTypeISDNv120) ); + tempint = Max( tempint, TUint32(ECallTypeAnalogue) ); + */ + iBearerCallTypeIsdn = (TApCallType)aValue; + break; + } + case EApIspBearerType: + { + iIspBearerType = aValue; + break; + } + case EApIspChannelCoding: + { + iIspChannelCoding = aValue; + break; + } + case EApIspAIUR: + { + iIspAIUR = aValue; + break; + } + case EApIspRequestedTimeSlots: + { + iIspRequestedTimeSlots = aValue; + break; + } + case EApIspMaximumTimeSlots: + { + iIspMaximumTimeSlots = aValue; + break; + } + + case EApGprsPdpType: + { + iGprsPdpType = aValue; + TRAP_IGNORE( SetIfNetworksL() ); + break; + } + case EApGprsReqPrecedence: + { + iGprsReqPrecedence = aValue; + break; + } + case EApGprsReqDelay: + { + iGprsReqDelay = aValue; + break; + } + case EApGprsReqReliability: + { + iGprsReqReliability = aValue; + break; + } + case EApGprsReqPeakThroughput: + { + iGprsReqPeakThroughput = aValue; + break; + } + case EApGprsReqMeanPeakThroughput: + { + iGprsReqMeanPeakThroughput = aValue; + break; + } + case EApGprsMinPrecedence: + { + iGprsMinPrecedence = aValue; + break; + } + case EApGprsMinDelay: + { + iGprsMinDelay = aValue; + break; + } + case EApGprsMinReliability: + { + iGprsMinReliability = aValue; + break; + } + case EApGprsMinPeakThroughput: + { + iGprsMinPeakThroughput = aValue; + break; + } + case EApGprsMinMeanThroughput: + { + iGprsMinMeanThroughput = aValue; + break; + } + case EApWapWspOption: + { + iIsConnectionTypeContinuous = aValue; + break; + } + case EApProxyPortNumber: + { + iApProxyPortNumber = aValue; + SetProxyFlag(); + break; + } + case EApWapProxyPort: + { + iWapProxyPort = aValue; + break; + } + case EApNetworkID: + { // now it is supported to set it from the outside... + iNetworkId = aValue; + break; + } + case EApIapBearerService: + { + iApIapBearerService = aValue; + break; + } + + // DEPRECATED !!! + case EApWapIsp: + case EApWapChargecard: + case EApWapIspType: + { + __ASSERT_DEBUG( EFalse, \ + User::Panic( kApSet, KErrNotSupported ) ); + retval = KErrNotSupported; + break; + } + // CDMA2000 + case EApCdmaServiceOption: + { + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + iExt->iCdmaData->iServiceOption = aValue; + break; + } + case EApCdmaPdpType: + { + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + iExt->iCdmaData->iPdpType = aValue; + TRAP_IGNORE( SetIfNetworksL() ); + break; + } + case EApCdmaReqFwdPriority: + { + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + iExt->iCdmaData->iReqFwdPriority = aValue; + break; + } + case EApCdmaReqRevPriority: + { + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + iExt->iCdmaData->iReqRevPriority = aValue; + break; + } + case EApCdmaReqFwdBitrate: + { + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + iExt->iCdmaData->iReqFwdBitrate = aValue; + break; + } + case EApCdmaReqRevBitrate: + { + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + iExt->iCdmaData->iReqRevBitrate = aValue; + break; + } + case EApCdmaReqFwdLoss: + { + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + iExt->iCdmaData->iReqFwdLoss = aValue; + break; + } + case EApCdmaReqRevLoss: + { + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + iExt->iCdmaData->iReqRevLoss = aValue; + break; + } + case EApCdmaReqFwdMaxDelay: + { + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + iExt->iCdmaData->iReqFwdMaxDelay = aValue; + break; + } + case EApCdmaReqRevMaxDelay: + { + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + iExt->iCdmaData->iReqRevMaxDelay = aValue; + break; + } + case EApCdmaMinFwdBitrate: + { + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + iExt->iCdmaData->iMinFwdBitrate = aValue; + break; + } + case EApCdmaMinRevBitrate: + { + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + iExt->iCdmaData->iMinRevBitrate = aValue; + break; + } + case EApCdmaAccptFwdLoss: + { + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + iExt->iCdmaData->iAccptFwdLoss = aValue; + break; + } + case EApCdmaAccptRevLoss: + { + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + iExt->iCdmaData->iAccptRevLoss = aValue; + break; + } + case EApCdmaAccptFwdMaxDelay: + { + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + iExt->iCdmaData->iAccptFwdMaxDelay = aValue; + break; + } + case EApCdmaAccptRevMaxDelay: + { + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + iExt->iCdmaData->iAccptRevMaxDelay = aValue; + break; + } + case EApCdmaQosWarningTimeout: + { + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + iExt->iCdmaData->iQosWarningTimeout = aValue; + break; + } + case EApCdmaRlpMode: + { + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + iExt->iCdmaData->iRlpMode = aValue; + break; + } + case EApCdmaMipTimeout: + { + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + iExt->iCdmaData->iMipTimeout = aValue; + break; + } + case EApCdmaNaiType: + { + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + iExt->iCdmaData->iNaiType = aValue; + break; + } + case EApCdmaSimpleIpAuthAlgorithm: + { + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + iExt->iCdmaData->iSimpleIpAuthAlgorithm = aValue; + break; + } + case EApCdmaSimpleIpPapSsHandle: + { + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + iExt->iCdmaData->iSimpleIpPapSsHandle = aValue; + break; + } + case EApCdmaSimpleIpChapSsHandle: + { + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + iExt->iCdmaData->iSimpleIpChapSsHandle = aValue; + break; + } + case EApCdmaMipTBit: + { + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + iExt->iCdmaData->iMipTBit = aValue; + break; + } + case EApCdmaMipMnAaaAuthAlgorithm: + { + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + iExt->iCdmaData->iMipMnAaaAuthAlgorithm = aValue; + break; + } + case EApCdmaMipMnAaaSpi: + { + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + iExt->iCdmaData->iMipMnAaaSpi = aValue; + break; + } + case EApCdmaMipMnAaaSsHandle: + { + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + iExt->iCdmaData->iMipMnAaaSsHandle = aValue; + break; + } + case EApCdmaMipMnHaAuthAlgorithm: + { + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + iExt->iCdmaData->iMipMnHaAuthAlgorithm = aValue; + break; + } + case EApCdmaMipMnHaSpi: + { + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + iExt->iCdmaData->iMipMnHaSpi = aValue; + break; + } + case EApCdmaMipMnHaSsHandle: + { + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + iExt->iCdmaData->iMipMnHaSsHandle = aValue; + break; + } + // END CDMA2000 + // WLAN + case EApWlanNetworkMode: + { + __ASSERT_ALWAYS ( iExt->iWlanData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + iExt->iWlanData->iWlanNetworkMode = aValue; + break; + } + case EApWlanSecurityMode: + { + __ASSERT_ALWAYS ( iExt->iWlanData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + iExt->iWlanData->iWlanSecurityMode = aValue; + break; + } + case EApWlanSettingsId: + { + __ASSERT_ALWAYS ( iExt->iWlanData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + iExt->iWlanData->iWlanId = aValue; + break; + } + case EApWlanChannelId: + { + __ASSERT_ALWAYS ( iExt->iWlanData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + iExt->iWlanData->iChannelId = aValue; + break; + } + // END WLAN + // LANModem + case EApIapBearerID: + { + iExt->iIapBearerID = aValue; + break; + } + // END LANModem + default : + { + __ASSERT_DEBUG( EFalse, ApCommons::Panic( EInvalidColumn ) ); + retval = KErrInvalidColumn; + } + } + } + + CLOG( ( EApItem, 1, _L( "<- CApAccessPointItem::WriteUint" ) ) ); + return retval; + } + + + +// --------------------------------------------------------- +// CApAccessPointItem::WriteBool +// --------------------------------------------------------- +// +EXPORT_C TInt CApAccessPointItem::WriteBool( const TApMember aColumn, + const TBool& aValue ) + { + CLOG( ( EApItem, 0, _L( "-> CApAccessPointItem::WriteBool" ) ) ); + + TInt retval( KErrNone ); + + if ( !IsSupported( aColumn ) ) + { + retval = KErrNotSupported; + } + else + { + switch ( aColumn ) + { + case EApWapSecurity: + { + iIsWTLSSecurityOn = aValue; + break; + } + case EApIspDialResolution: + { + iIspDialResolution = aValue; + break; + } + case EApIspUseLoginScript: + { + iUseLoginScript = aValue; + break; + } + case EApIspPromptForLogin: + { + iPromptPassword = aValue; + iIspIfPromptForAuth = aValue; + break; + } + case EApIspDisplayPCT: + { + iDisplayTerminalWindow = EFalse; + break; + } + case EApIspIfPromptForAuth: + case EApGprsIfPromptForAuth: + case EApCdmaIfPromptForAuth: + case EApWlanIfPromptForAuth: + { + iIspIfPromptForAuth = aValue; + iPromptPassword = aValue; + break; + } + case EApIspIfCallbackEnabled: + { + iUseCallBack = aValue; + break; + } + case EApIspIPAddrFromServer: + case EApGprsIpAddrFromServer: + case EApCdmaIpAddrFromServer: + case EApWlanIpAddrFromServer: + { + iIspIPAddrFromServer = aValue; + break; + } + case EApIspIPDnsAddrFromServer: + case EApGprsIpDnsAddrFromServer: + case EApCdmaIpDnsAddrFromServer: + case EApWlanIpDnsAddrFromServer: + { + iGetDNSIPFromServer = aValue; + break; + } + case EApIspEnableIpHeaderComp: + case EApGprsHeaderCompression: + case EApCdmaHeaderCompression: + { + iEnablePPPCompression = aValue; + break; + } + case EApIspEnableLCPExtensions: + case EApGprsEnableLCPExtensions: + case EApCdmaEnableLCPExtensions: + { + iIspEnableLCPExtensions = aValue; + break; + } + case EApIspDisablePlainTextAuth: + case EApGprsDisablePlainTextAuth: + case EApCdmaDisablePlainTextAuth: + { + iIsPasswordAuthenticationSecure = aValue; + break; + } + case EApIspEnableSWCompression: + case EApGprsDataCompression: + case EApCdmaDataCompression: + { + iIspEnableSwCompression = aValue; + break; + } + // NOTE! This is deprecated. + case EApIspBearerCallTypeIsdn: + { + iBearerCallTypeIsdn = + TApCallType( aValue != ECallTypeAnalogue ); + break; + } + case EApGprsUseAnonymAccess: + case EApCdmaAnonymousAccess: + { + iGprsUseAnonymAccess = aValue; + break; + } + case EApIsReadOnly: + { + __ASSERT_DEBUG( EFalse, ApCommons::Panic( EInvalidColumn ) ); + retval = KErrInvalidColumn; + break; + } + case EApProxyUseProxy: + { + iApProxyUseProxy = aValue; + SetProxyFlag(); + break; + } + case EApHasProxySettings: + { + __ASSERT_DEBUG( EFalse, ApCommons::Panic( EInvalidColumn ) ); + retval = KErrNotSupported; + break; + } + case EApIP6DNSAddrFromServer: + { + if ( iExt->iIsIpv6Supported ) + { + iExt->iIpv6GetDNSIPFromServer = aValue; + } + else + { + retval = KErrNotSupported; + } + break; + } + // CDMA2000 + case EApCdmaMip: + { + __ASSERT_ALWAYS ( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + iExt->iCdmaData->iMip = aValue; + break; + } + // END CDMA2000 + // WLAN + case EApWlanScanSSID: + { + __ASSERT_ALWAYS ( iExt->iWlanData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + iExt->iWlanData->iScanSSID = aValue; + break; + } + // END WLAN + default : + { + __ASSERT_DEBUG( EFalse, ApCommons::Panic( EInvalidColumn ) ); + retval = KErrInvalidColumn; + break; + } + } + } + + CLOG( ( EApItem, 1, _L( "<- CApAccessPointItem::WriteBool" ) ) ); + return retval; + } + + + +// Query +// COMMON + +// --------------------------------------------------------- +// CApAccessPointItem::Uid +// --------------------------------------------------------- +// +EXPORT_C TUint32 CApAccessPointItem::WapUid() const + { + CLOG( ( EApItem, 0, _L( "<-> CApAccessPointItem::WapUid" ) ) ); + + return iWapUid; + } + + +// --------------------------------------------------------- +// CApAccessPointItem::ConnectionName +// --------------------------------------------------------- +// +EXPORT_C const TDesC& CApAccessPointItem::ConnectionName() const + { + CLOG( ( EApItem, 0, _L( "<-> CApAccessPointItem::ConnectionName" ) ) ); + + return *iWapAccessPointName; + } + + +// WAP-spec. +// --------------------------------------------------------- +// CApAccessPointItem::WapBearer +// --------------------------------------------------------- +// +EXPORT_C const TDesC& CApAccessPointItem::WapBearer() const + { + CLOG( ( EApItem, 0, _L( "<-> CApAccessPointItem::WapBearer" ) ) ); + + return *iWapBearer; + } + + + +// WAP-spec. +// --------------------------------------------------------- +// CApAccessPointItem::BearerTypeL +// --------------------------------------------------------- +// +EXPORT_C TApBearerType CApAccessPointItem::BearerTypeL() + { + CLOG( ( EApItem, 0, _L( "-> CApAccessPointItem::BearerTypeL" ) ) ); + + TApBearerType retval( EApBearerTypeAllBearers ); + // decide which bearer, read bearer spec. data. + if ( *iWapBearer == TPtrC(WAP_IP_BEARER) ) + { + if ( ( *iIapServiceType == TPtrC(DIAL_OUT_ISP) ) || + ( *iIapServiceType == TPtrC(DIAL_IN_ISP) ) ) + { + // now check speed + if ( iIspBearerType == EBearerTypeCSD ) + { + retval = EApBearerTypeCSD; + } + else + { + if ( iIspBearerType == EBearerTypeHSCSD ) + { + retval = EApBearerTypeHSCSD; + } + else + { + User::Leave( KErrInvalidBearer ); + } + } + } + else + { + if ( ( *iIapServiceType == TPtrC(OUTGOING_WCDMA) ) || + ( *iIapServiceType == TPtrC(INCOMING_WCDMA) ) ) + { + retval = EApBearerTypeGPRS; + } + else + { // some other bearer, currently only VPN... + if ( iExt->iIsVpnAp ) + { + // in this case get REAL IAP's bearer type... + retval = iExt->iVPnRealIapBearerType; + } + else + { + if ( iExt->iWlanData ) + { + // check if it is WLAN... + if ( *iIapServiceType == TPtrC(LAN_SERVICE) ) + { + if ( IsWlan() ) + { + retval = EApBearerTypeWLAN; + } + else + { + if ( *iExt->iLanBearerModemName == + KModemBearerLANModem ) + {// IPPass Through + retval = EApBearerTypeLANModem; + } + else + { + #ifdef __TEST_LAN_BEARER + retval = EApBearerTypeLAN; + #else + User::Leave( KErrInvalidBearer ); + #endif // __TEST_LAN_BEARER + } + } + } + else + { // otherwise, it is not known, invalid... + User::Leave( KErrInvalidBearer ); + } + } + else + { + if ( *iExt->iLanBearerModemName == + KModemBearerLANModem ) + {// IPPass Through + retval = EApBearerTypeLANModem; + } + else + { + #ifdef __TEST_LAN_BEARER + retval = EApBearerTypeLAN; + #else // __TEST_LAN_BEARER + User::Leave( KErrInvalidBearer ); + #endif // __TEST_LAN_BEARER + } + } + } + } + } + } + else + { + User::Leave( KErrInvalidBearer ); + } + if ( retval == EApBearerTypeAllBearers ) + { + User::Leave( KErrInvalidBearer ); + } + + CLOG( ( EApItem, 1, _L( "<- CApAccessPointItem::BearerTypeL" ) ) ); + return retval; + } + + + +// --------------------------------------------------------- +// CApAccessPointItem::SetBearerTypeL +// --------------------------------------------------------- +// +EXPORT_C void CApAccessPointItem::SetBearerTypeL( TApBearerType aBearer ) + { + CLOG( ( EApItem, 0, _L( "-> CApAccessPointItem::SetBearerTypeL" ) ) ); + + HBufC* tmpbuf; + switch ( aBearer ) + { + case EApBearerTypeGPRS: // GPRS + { + tmpbuf = TPtrC(WAP_IP_BEARER).AllocL(); + delete iWapBearer; + iWapBearer = tmpbuf; + WriteTextL( EApIapServiceType, TPtrC(OUTGOING_WCDMA) ); + WriteTextL( EApIspIfParams, KDefGprsIfParams ); // required ! + if( iExt->iWlanData ) + { + iExt->iWlanData->iIsWlan = EFalse; + } + WriteTextL( EApLanBearerName, KModemBearerGPRS ); + break; + } + case EApBearerTypeCSD: // CSD + { + if ( !iExt->iIsAppCsdSupport ) + { + User::Leave( KErrNotSupported ); + } + + tmpbuf = TPtrC(WAP_IP_BEARER).AllocL(); + delete iWapBearer; + iWapBearer = tmpbuf; + WriteTextL( EApIapServiceType, TPtrC(DIAL_OUT_ISP) ); + WriteTextL( EApIspIfParams, KEmpty ); // required ! + iIspBearerType = EBearerTypeCSD; + if( iExt->iWlanData ) + { + iExt->iWlanData->iIsWlan = EFalse; + } + WriteTextL( EApLanBearerName, KModemBearerCSD ); + LimitIp6DNSL(); + break; + } + case EApBearerTypeHSCSD: // HSCSD + { + if ( !iExt->iIsAppHscsdSupport || !iExt->iIsAppCsdSupport ) + { + User::Leave( KErrNotSupported ); + } + tmpbuf = TPtrC(WAP_IP_BEARER).AllocL(); + delete iWapBearer; + iWapBearer = tmpbuf; + WriteTextL( EApIapServiceType, TPtrC(DIAL_OUT_ISP) ); + WriteTextL( EApIspIfParams, KEmpty ); // required ! + iIspBearerType = EBearerTypeHSCSD; + if( iExt->iWlanData ) + { + iExt->iWlanData->iIsWlan = EFalse; + } + WriteTextL( EApLanBearerName, KModemBearerCSD ); + LimitIp6DNSL(); + break; + } + case EApBearerTypeWLAN: // WLAN + { + if( !iExt->iWlanData ) + { + User::Leave( KErrNotSupported ); + } + tmpbuf = TPtrC(WAP_IP_BEARER).AllocL(); + delete iWapBearer; + iWapBearer = tmpbuf; + WriteTextL( EApIapServiceType, TPtrC(LAN_SERVICE) ); + WriteTextL( EApIspIfParams, KEmpty ); // required ! + WriteTextL( EApLanBearerName, KModemBearerWLAN ); + iExt->iWlanData->iIsWlan = ETrue; + break; + } +#ifdef __TEST_LAN_BEARER + case EApBearerTypeLAN: // LAN + { + tmpbuf = TPtrC(WAP_IP_BEARER).AllocL(); + delete iWapBearer; + iWapBearer = tmpbuf; + WriteTextL( EApIapServiceType, TPtrC(LAN_SERVICE) ); + WriteTextL( EApIspIfParams, KEmpty ); // required ! + if( iExt->iWlanData ) + { + iExt->iWlanData->iIsWlan = EFalse; + } + WriteTextL( EApLanBearerName, KModemBearerLAN ); + break; + } +#endif // __TEST_LAN_BEARER + case EApBearerTypeLANModem: // LAN modem + { + tmpbuf = TPtrC(WAP_IP_BEARER).AllocL(); + delete iWapBearer; + iWapBearer = tmpbuf; + WriteTextL( EApIapServiceType, TPtrC(LAN_SERVICE) ); + WriteTextL( EApIspIfParams, KEmpty ); // required ! + if( iExt->iWlanData ) + { + iExt->iWlanData->iIsWlan = EFalse; + } + WriteTextL( EApLanBearerName, KModemBearerLANModem ); + break; + } + default: + { + User::Leave( KErrInvalidBearer ); + break; + } + } + LimitSpeedL(); + + SetIfNetworksL(); + + CLOG( ( EApItem, 1, _L( "<- CApAccessPointItem::SetBearerTypeL" ) ) ); + } + + + +// --------------------------------------------------------- +// CApAccessPointItem::SetNamesL +// --------------------------------------------------------- +// +EXPORT_C void CApAccessPointItem::SetNamesL( const TDesC16& aValue ) + { + CLOG( ( EApItem, 0, _L( "-> CApAccessPointItem::SetNamesL" ) ) ); + + WriteTextL( EApWapAccessPointName, aValue ); + WriteTextL( EApIapName, aValue ); + WriteTextL( EApIspName, aValue ); + WriteTextL( EApNetworkName, aValue ); + + CLOG( ( EApItem, 1, _L( "<- CApAccessPointItem::SetNamesL" ) ) ); + } + + + +// --------------------------------------------------------- +// CApAccessPointItem::SanityCheckOk +// --------------------------------------------------------- +// +EXPORT_C TBool CApAccessPointItem::SanityCheckOk() + { + CLOG( ( EApItem, 0, _L( "<-> CApAccessPointItem::SanityCheckOk" ) ) ); + + TBool retval( ETrue ); + // as iWApIspType had been deprecated, this method also... + return retval; + } + + + +// --------------------------------------------------------- +// CApAccessPointItem::HasSameIspAndBearer +// --------------------------------------------------------- +// +EXPORT_C TBool CApAccessPointItem::HasSameIspAndBearerL( + CApAccessPointItem& aItem ) + { + CLOG( ( EApItem, 0, + _L( "-> CApAccessPointItem::HasSameIspAndBearerL" ) ) ); + + TBool retval( EFalse ); + TApBearerType bearer = BearerTypeL(); + if ( bearer == aItem.BearerTypeL() ) + { + switch ( bearer ) + { + case EApBearerTypeCSD: + case EApBearerTypeHSCSD: + { + // compare phone number, username, pwd + // first compare phone numbers + if ( IsSamePhoneNumberL( aItem ) ) + { + TBool pwd1; + ReadBool( EApIspPromptForLogin, pwd1 ); + TBool pwd2; + aItem.ReadBool( EApIspPromptForLogin, pwd2 ); + if ( ( !pwd1 ) && ( !pwd2 ) ) + { + HBufC* tmpuser = HBufC::NewLC( + aItem.ReadTextLengthL( EApIspLoginName ) ); + HBufC* tmppwd = HBufC::NewLC( + aItem.ReadTextLengthL( EApIspLoginPass ) ); + TPtr16 tmpptruser( tmpuser->Des() ); + TPtr16 tmpptrpwd( tmppwd->Des() ); + aItem.ReadTextL( EApIspLoginName, tmpptruser ); + aItem.ReadTextL( EApIspLoginPass, tmpptrpwd ); + if ( ( iUserName->Compare( *tmpuser ) == 0 ) + && (iPassword->Compare( *tmppwd ) == 0 ) ) + { + retval = ETrue; + } + // tmpuser, tmppw + CleanupStack::PopAndDestroy( 2, tmpuser ); + } + } + break; + } + case EApBearerTypeGPRS: + { + // compare APN, (username/pwd?) + if ( aItem.ReadConstLongTextL( EApGprsAccessPointName ) + ->Compare( *iGprsAccessPointName ) == 0 ) + { + retval = ETrue; + } + break; + } + case EApBearerTypeCDMA: + { + retval = ETrue; + break; + } + case EApBearerTypeWLAN: + { + if( iExt->iWlanData ) + { + retval = ETrue; + } + else + { + User::Leave( KErrNotSupported ); + } + break; + } +#ifdef __TEST_LAN_BEARER + case EApBearerTypeLAN: + { + retval = ETrue; + break; + } +#endif // __TEST_LAN_BEARER + case EApBearerTypeLANModem: + { + retval = ETrue; + break; + } + default: + { + User::Leave( KErrInvalidBearer ); + break; + } + } + } + + CLOG( ( EApItem, 1, + _L( "<- CApAccessPointItem::HasSameIspAndBearerL" ) ) ); + return retval; + } + + +// --------------------------------------------------------- +// CApAccessPointItem::IsReadOnly +// --------------------------------------------------------- +// +EXPORT_C TBool CApAccessPointItem::IsReadOnly() const + { + CLOG( ( EApItem, 0, _L( "<-> CApAccessPointItem::IsReadOnly" ) ) ); + + return iIsReadOnly; + } + + + + +// ================= OTHER EXPORTED FUNCTIONS ============== + + +// =============== OTHER NON - EXPORTED FUNCTIONS ============ +// --------------------------------------------------------- +// CApAccessPointItem::IsVpnAp +// --------------------------------------------------------- +// +TBool CApAccessPointItem::IsVpnAp() const + { + return iExt->iIsVpnAp; + } + + +// --------------------------------------------------------- +// CApAccessPointItem::SetVpnAp +// --------------------------------------------------------- +// +void CApAccessPointItem::SetVpnAp( TBool aIsVpn ) + { + iExt->iIsVpnAp = aIsVpn; + } + +// --------------------------------------------------------- +// CApAccessPointItem::Specified +// --------------------------------------------------------- +// +TBool CApAccessPointItem::Specified( TApMember aMember ) + { + CLOG( ( EApItem, 0, _L( "<-> CApAccessPointItem::Specified" ) ) ); + + return iSpecified->At( aMember ); + } + + +// --------------------------------------------------------- +// CApAccessPointItem::Specify +// --------------------------------------------------------- +// +void CApAccessPointItem::Specify( TApMember aMember, TBool aOn ) + { + CLOG( ( EApItem, 0, _L( "<-> CApAccessPointItem::Specify" ) ) ); + + iSpecified->At( aMember ) = aOn; + } + + +// --------------------------------------------------------- +// CApAccessPointItem::SpecifyAll +// --------------------------------------------------------- +// +void CApAccessPointItem::SpecifyAll( TBool aOn ) + { + CLOG( ( EApItem, 0, _L( "-> CApAccessPointItem::SpecifyAll" ) ) ); + + for( TInt i=0; i< KApMembers; i++ ) + { + iSpecified->At( i ) = aOn; + } + + CLOG( ( EApItem, 1, _L( "<- CApAccessPointItem::SpecifyAll" ) ) ); + } + + + +// --------------------------------------------------------- +// CApAccessPointItem::SpecifyWap +// --------------------------------------------------------- +// +void CApAccessPointItem::SpecifyWap( TBool aOn ) + { + CLOG( ( EApItem, 0, _L( "-> CApAccessPointItem::SpecifyWap" ) ) ); + + iSpecified->At( EApWapAccessPointID ) = aOn; + iSpecified->At( EApWapAccessPointName ) = aOn; + iSpecified->At( EApWapCurrentBearer ) = aOn; + iSpecified->At( EApWapStartPage ) = aOn; + iSpecified->At( EApWapGatewayAddress ) = aOn; + iSpecified->At( EApWapWspOption ) = aOn; + iSpecified->At( EApWapSecurity ) = aOn; + + CLOG( ( EApItem, 1, _L( "<- CApAccessPointItem::SpecifyWap" ) ) ); + } + + + +// --------------------------------------------------------- +// CApAccessPointItem::SpecifyIpBearer +// --------------------------------------------------------- +// +void CApAccessPointItem::SpecifyIpBearer( TBool aOn ) + { + CLOG( ( EApItem, 0, _L( "-> CApAccessPointItem::SpecifyIpBearer" ) ) ); + +//* DEPRECATED + iSpecified->At( EApWapIsp ) = EFalse; +//* DEPRECATED + iSpecified->At( EApWapChargecard ) = EFalse; + iSpecified->At( EApWapIap ) = aOn; +//* DEPRECATED + iSpecified->At( EApWapIspType ) = EFalse; + + CLOG( ( EApItem, 1, _L( "<- CApAccessPointItem::SpecifyIpBearer" ) ) ); + } + + +// --------------------------------------------------------- +// CApAccessPointItem::SpecifyIAP +// --------------------------------------------------------- +// +void CApAccessPointItem::SpecifyIAP( TBool aOn ) + { + CLOG( ( EApItem, 0, _L( "-> CApAccessPointItem::SpecifyIAP" ) ) ); + + iSpecified->At( EApWapIap ) = aOn; + iSpecified->At( EApIapName ) = aOn; + iSpecified->At( EApIapServiceType ) = aOn; + iSpecified->At( EApIapServiceId ) = aOn; + iSpecified->At( EApIapChargecard ) = aOn; + + CLOG( ( EApItem, 1, _L( "<- CApAccessPointItem::SpecifyIAP" ) ) ); + } + + +// --------------------------------------------------------- +// CApAccessPointItem::SpecifyISP +// --------------------------------------------------------- +// +void CApAccessPointItem::SpecifyISP( TBool aOn ) + { + CLOG( ( EApItem, 0, _L( "-> CApAccessPointItem::SpecifyISP" ) ) ); + + iSpecified->At( EApIspName ) = aOn; + iSpecified->At( EApIspDescription ) = aOn; + iSpecified->At( EApIspIspType ) = aOn; + + iSpecified->At( EApIspDefaultTelNumber ) = aOn; + iSpecified->At( EApIspDialResolution ) = aOn; + iSpecified->At( EApIspUseLoginScript ) = aOn; + iSpecified->At( EApIspLoginScript ) = aOn; + iSpecified->At( EApIspPromptForLogin ) = aOn; + iSpecified->At( EApIspLoginName ) = aOn; + iSpecified->At( EApIspLoginPass ) = aOn; + iSpecified->At( EApIspDisplayPCT ) = aOn; + iSpecified->At( EApIspIfName ) = aOn; + iSpecified->At( EApIspIfParams ) = aOn; + iSpecified->At( EApIspIfNetworks ) = aOn; + iSpecified->At( EApIspIfPromptForAuth ) = aOn; + iSpecified->At( EApIspIfAuthName ) = aOn; + iSpecified->At( EApIspIfAuthPass ) = aOn; + iSpecified->At( EApIspAuthRetries ) = aOn; + iSpecified->At( EApIspIfCallbackEnabled ) = aOn; + iSpecified->At( EApIspIfCallbackType ) = aOn; + iSpecified->At( EApIspIfCallbackInfo ) = aOn; + iSpecified->At( EApIspCallBackTimeOut ) = aOn; + iSpecified->At( EApIspIPAddrFromServer ) = aOn; + iSpecified->At( EApIspIPAddr ) = aOn; + iSpecified->At( EApIspIPNetMask ) = aOn; + iSpecified->At( EApIspIPGateway ) = aOn; + iSpecified->At( EApIspIPDnsAddrFromServer ) = aOn; + iSpecified->At( EApIspIPNameServer1 ) = aOn; + iSpecified->At( EApIspIPNameServer2 ) = aOn; + iSpecified->At( EApIspEnableIpHeaderComp ) = aOn; + iSpecified->At( EApIspEnableLCPExtensions ) = aOn; + iSpecified->At( EApIspDisablePlainTextAuth ) = aOn; + iSpecified->At( EApIspEnableSWCompression ) = aOn; + iSpecified->At( EApIspBearerName ) = aOn; + iSpecified->At( EApIspBearerSpeed ) = aOn; + iSpecified->At( EApIspBearerCallTypeIsdn ) = aOn; + iSpecified->At( EApIspBearerCE ) = aOn; + iSpecified->At( EApIspInitString ) = aOn; + iSpecified->At( EApIspBearerType ) = aOn; + iSpecified->At( EApIspChannelCoding ) = aOn; + iSpecified->At( EApIspAIUR ) = aOn; + iSpecified->At( EApIspRequestedTimeSlots ) = aOn; + iSpecified->At( EApIspMaximumTimeSlots ) = aOn; + + if ( iExt->iIsIpv6Supported ) + { + iSpecified->At( EApIP6DNSAddrFromServer ) = aOn; + iSpecified->At( EApIP6NameServer1 ) = aOn; + iSpecified->At( EApIP6NameServer2 ) = aOn; + } + + CLOG( ( EApItem, 1, _L( "<- CApAccessPointItem::SpecifyISP" ) ) ); + } + + +// --------------------------------------------------------- +// CApAccessPointItem::SpecifyGPRS +// --------------------------------------------------------- +// +void CApAccessPointItem::SpecifyGPRS( TBool aOn ) + { + CLOG( ( EApItem, 0, _L( "-> CApAccessPointItem::SpecifyGPRS" ) ) ); + + iSpecified->At( EApGprsAccessPointName ) = aOn; + iSpecified->At( EApGprsPdpType ) = aOn; + iSpecified->At( EApGprsPdpAddress ) = aOn; + iSpecified->At( EApGprsReqPrecedence ) = aOn; + iSpecified->At( EApGprsReqDelay ) = aOn; + iSpecified->At( EApGprsReqReliability ) = aOn; + iSpecified->At( EApGprsReqPeakThroughput ) = aOn; + iSpecified->At( EApGprsReqMeanPeakThroughput ) = aOn; + iSpecified->At( EApGprsMinPrecedence ) = aOn; + iSpecified->At( EApGprsMinDelay ) = aOn; + iSpecified->At( EApGprsMinReliability ) = aOn; + iSpecified->At( EApGprsMinPeakThroughput ) = aOn; + iSpecified->At( EApGprsMinMeanThroughput ) = aOn; + iSpecified->At( EApGprsUseAnonymAccess ) = aOn; + + // followings are mapped to ISP... fields + iSpecified->At( EApGprsDataCompression ) = aOn; + iSpecified->At( EApGprsHeaderCompression ) = aOn; + iSpecified->At( EApGprsIfName ) = aOn; + iSpecified->At( EApGprsIfParams ) = aOn; + iSpecified->At( EApGprsIfNetworks ) = aOn; + iSpecified->At( EApGprsIfPromptForAuth ) = aOn; + iSpecified->At( EApGprsIfAuthName ) = aOn; + iSpecified->At( EApGprsIfAuthPassword ) = aOn; + iSpecified->At( EApGprsIfAuthRetries ) = aOn; + iSpecified->At( EApGprsIpNetMask ) = aOn; + iSpecified->At( EApGprsIpGateway ) = aOn; + iSpecified->At( EApGprsIpAddrFromServer ) = aOn; + iSpecified->At( EApGprsIpAddr ) = aOn; + iSpecified->At( EApGprsIpDnsAddrFromServer ) = aOn; + iSpecified->At( EApGprsIPNameServer1 ) = aOn; + iSpecified->At( EApGprsIPNameServer2 ) = aOn; + iSpecified->At( EApGprsEnableLCPExtensions ) = aOn; + iSpecified->At( EApGprsDisablePlainTextAuth ) = aOn; + + CLOG( ( EApItem, 1, _L( "<- CApAccessPointItem::SpecifyGPRS" ) ) ); + } + + +// --------------------------------------------------------- +// CApAccessPointItem::SpecifyCDMA +// --------------------------------------------------------- +// +void CApAccessPointItem::SpecifyCDMA( TBool aOn ) + { + CLOG( ( EApItem, 0, _L( "-> CApAccessPointItem::SpecifyCDMA" ) ) ); + + __ASSERT_DEBUG( iExt->iCdmaData, ApCommons::Panic( ESanityCheckFailed ) ); + + iSpecified->At( EApCdmaIwfName ) = aOn; + iSpecified->At( EApCdmaServiceOption ) = aOn; + iSpecified->At( EApCdmaPdpType ) = aOn; + iSpecified->At( EApCdmaPdpAddress ) = aOn; + iSpecified->At( EApCdmaReqFwdPriority ) = aOn; + iSpecified->At( EApCdmaReqRevPriority ) = aOn; + iSpecified->At( EApCdmaReqFwdBitrate ) = aOn; + iSpecified->At( EApCdmaReqRevBitrate ) = aOn; + iSpecified->At( EApCdmaReqFwdLoss ) = aOn; + iSpecified->At( EApCdmaReqRevLoss ) = aOn; + iSpecified->At( EApCdmaReqFwdMaxDelay ) = aOn; + iSpecified->At( EApCdmaReqRevMaxDelay ) = aOn; + iSpecified->At( EApCdmaMinFwdBitrate ) = aOn; + iSpecified->At( EApCdmaMinRevBitrate ) = aOn; + iSpecified->At( EApCdmaAccptFwdLoss ) = aOn; + iSpecified->At( EApCdmaAccptRevLoss ) = aOn; + iSpecified->At( EApCdmaAccptFwdMaxDelay ) = aOn; + iSpecified->At( EApCdmaAccptRevMaxDelay ) = aOn; + // CDMA2000, mapped to ISP... fields + iSpecified->At( EApCdmaDataCompression ) = aOn; + iSpecified->At( EApCdmaHeaderCompression ) = aOn; + iSpecified->At( EApCdmaAnonymousAccess ) = aOn; + iSpecified->At( EApCdmaIfName ) = aOn; + iSpecified->At( EApCdmaIfParams ) = aOn; + iSpecified->At( EApCdmaIfNetworks ) = aOn; + iSpecified->At( EApCdmaIfPromptForAuth ) = aOn; + iSpecified->At( EApCdmaIfAuthName ) = aOn; + iSpecified->At( EApCdmaIfAuthPassword ) = aOn; + iSpecified->At( EApCdmaIfAuthRetries ) = aOn; + iSpecified->At( EApCdmaIpNetMask ) = aOn; + iSpecified->At( EApCdmaIpGateway ) = aOn; + iSpecified->At( EApCdmaIpAddrFromServer ) = aOn; + iSpecified->At( EApCdmaIpAddr ) = aOn; + iSpecified->At( EApCdmaIpDnsAddrFromServer ) = aOn; + iSpecified->At( EApCdmaIPNameServer1 ) = aOn; + iSpecified->At( EApCdmaIPNameServer2 ) = aOn; + iSpecified->At( EApCdmaEnableLCPExtensions ) = aOn; + iSpecified->At( EApCdmaDisablePlainTextAuth ) = aOn; + // CDMA2000 + iSpecified->At( EApCdmaApType ) = aOn; + iSpecified->At( EApCdmaQosWarningTimeout ) = aOn; + iSpecified->At( EApCdmaRlpMode ) = aOn; + // CDMA2000 deprecated Mobile IP fields + iSpecified->At( EApCdmaMip ) = aOn; + iSpecified->At( EApCdmaHomeAgentAddress ) = aOn; + iSpecified->At( EApCdmaMipTimeout ) = aOn; + // CDMA2000 specific CDMA parameters provisioned through OTA + iSpecified->At( EApCdmaNaiType ) = aOn; + iSpecified->At( EApCdmaSimpleIpAuthAlgorithm ) = aOn; + iSpecified->At( EApCdmaSimpleIpPapSsHandle ) = aOn; + iSpecified->At( EApCdmaSimpleIpChapSsHandle ) = aOn; + iSpecified->At( EApCdmaMipTBit ) = aOn; + iSpecified->At( EApCdmaMipHomeAddress ) = aOn; + iSpecified->At( EApCdmaMipPrimaryHomeAgent ) = aOn; + iSpecified->At( EApCdmaMipSecondaryHomeAgent ) = aOn; + iSpecified->At( EApCdmaMipMnAaaAuthAlgorithm ) = aOn; + iSpecified->At( EApCdmaMipMnAaaSpi ) = aOn; + iSpecified->At( EApCdmaMipMnAaaSsHandle ) = aOn; + iSpecified->At( EApCdmaMipMnHaAuthAlgorithm ) = aOn; + iSpecified->At( EApCdmaMipMnHaSpi ) = aOn; + iSpecified->At( EApCdmaMipMnHaSsHandle ) = aOn; + + CLOG( ( EApItem, 1, _L( "<- CApAccessPointItem::SpecifyCDMA" ) ) ); + } + + +// --------------------------------------------------------- +// CApAccessPointItem::SpecifyWLAN +// --------------------------------------------------------- +// +void CApAccessPointItem::SpecifyWLAN( TBool aOn ) + { + CLOG( ( EApItem, 0, _L( "-> CApAccessPointItem::SpecifyWLAN" ) ) ); + + __ASSERT_DEBUG( iExt->iWlanData, ApCommons::Panic( ESanityCheckFailed ) ); + + // WLAN, mapped to ISP... fields + iSpecified->At( EApWlanIfNetworks ) = aOn; + iSpecified->At( EApWlanIfPromptForAuth ) = aOn; + iSpecified->At( EApWlanIfAuthName ) = aOn; + iSpecified->At( EApWlanIfAuthPassword ) = aOn; + iSpecified->At( EApWlanIfAuthRetries ) = aOn; + iSpecified->At( EApWlanIpNetMask ) = aOn; + iSpecified->At( EApWlanIpGateway ) = aOn; + iSpecified->At( EApWlanIpAddrFromServer ) = aOn; + iSpecified->At( EApWlanIpAddr ) = aOn; + iSpecified->At( EApWlanIpDnsAddrFromServer ) = aOn; + iSpecified->At( EApWlanIPNameServer1 ) = aOn; + iSpecified->At( EApWlanIPNameServer2 ) = aOn; + + CLOG( ( EApItem, 1, _L( "<- CApAccessPointItem::SpecifyWLAN" ) ) ); + } + + +// --------------------------------------------------------- +// CApAccessPointItem::SetDnsIpFromServer +// --------------------------------------------------------- +// +void CApAccessPointItem::SetDnsIpFromServer() + { + CLOG( ( EApItem, 0, _L( "-> CApAccessPointItem::SetDnsIpFromServer" ) ) ); + + if ( ( iPrimaryDNS->Compare( KDynIpAddress ) == 0 ) && + ( iSecondaryDNS->Compare( KDynIpAddress ) == 0 ) ) + { + iGetDNSIPFromServer = ETrue; + } + else + { + iGetDNSIPFromServer = EFalse; + } + + CLOG( ( EApItem, 1, _L( "<- CApAccessPointItem::SetDnsIpFromServer" ) ) ); + } + + + +// --------------------------------------------------------- +// CApAccessPointItem::SetIpFromServer +// --------------------------------------------------------- +// +void CApAccessPointItem::SetIpFromServer() + { + CLOG( ( EApItem, 0, _L( "-> CApAccessPointItem::SetIpFromServer" ) ) ); + + if ( iIspIPAddr->Compare( KDynIpAddress ) == 0 ) + { + iIspIPAddrFromServer = ETrue; + } + else + { + iIspIPAddrFromServer = EFalse; + } + + CLOG( ( EApItem, 1, _L( "<- CApAccessPointItem::SetIpFromServer" ) ) ); + } + + + +// --------------------------------------------------------- +// CApAccessPointItem::SetDns6IpFromServer +// --------------------------------------------------------- +// +void CApAccessPointItem::SetDns6IpFromServer() + { + CLOG( ( EApItem, 0, _L( "-> CApAccessPointItem::SetDns6IpFromServer" ) ) ); + + if ( iExt->iIsIpv6Supported ) + { + if ( ( iExt->iIpv6PrimaryDNS->Compare( KDynIpv6Address ) == 0 ) && + ( iExt->iIpv6SecondaryDNS->Compare( KDynIpv6Address ) == 0 ) ) + { + + TApBearerType bt(EApBearerTypeGPRS); + TInt err(KErrNone); + TRAP( err, bt = BearerTypeL() ); + if ( err == KErrNone ) + { + switch (bt) + { + case EApBearerTypeCSD: + case EApBearerTypeHSCSD: + { // consider it user defined + iExt->iIpv6GetDNSIPFromServer = EFalse; + break; + } + default: + { + iExt->iIpv6GetDNSIPFromServer = ETrue; + break; + } + } + } + } + else + { + iExt->iIpv6GetDNSIPFromServer = EFalse; + } + } + + CLOG( ( EApItem, 1, _L( "<- CApAccessPointItem::SetDns6IpFromServer" ) ) ); + } + + +// --------------------------------------------------------- +// CApAccessPointItem::ReAllocL +// --------------------------------------------------------- +// +void CApAccessPointItem::ReAllocL(HBufC8*& aDes, const TDesC8& aValue) + { + CLOG( ( EApItem, 0, _L( "-> CApAccessPointItem::ReAllocL8" ) ) ); + + // now remove 'invalid' chars (TABs) as they cause problems + // in other places, like listboxes... + HBufC8* tmp = RemoveInvalidCharsLC( aValue ); + delete aDes; + aDes = tmp; + CleanupStack::Pop( tmp ); + + CLOG( ( EApItem, 1, _L( "<- CApAccessPointItem::ReAllocL8" ) ) ); + } + + +// --------------------------------------------------------- +// CApAccessPointItem::ReAllocL +// --------------------------------------------------------- +// +void CApAccessPointItem::ReAllocL(HBufC*& aDes, const TDesC16& aValue) + { + CLOG( ( EApItem, 0, _L( "-> CApAccessPointItem::ReAllocL" ) ) ); + + // now remove 'invalid' chars (TABs) as they cause problems + // in other places, like listboxes... + HBufC* tmp = RemoveInvalidCharsLC( aValue ); + delete aDes; + aDes = tmp; + CleanupStack::Pop( tmp ); + + CLOG( ( EApItem, 1, _L( "<- CApAccessPointItem::ReAllocL" ) ) ); + } + + + +// --------------------------------------------------------- +// CApAccessPointItem::DoCompareApL +// --------------------------------------------------------- +// +TBool CApAccessPointItem::DoCompareApL( const CApAccessPointItem& aItem )const + { + CLOG( ( EApItem, 0, _L( "-> CApAccessPointItem::DoCompareApL" ) ) ); + + TBool retval( EFalse ); + // sorry for those CONST_CASTS, but could not do it otherwise + // without API breask.... + CApAccessPointItem* thisitem = CONST_CAST( CApAccessPointItem*, this ); + CApAccessPointItem* otheritem = CONST_CAST( CApAccessPointItem*, &aItem ); + + TApBearerType thisbearer = thisitem->BearerTypeL(); + if ( thisbearer == otheritem->BearerTypeL() ) + { // if diff. bearers, compareing might give false results + // compare WAP: + // expect IAP ID + if ( CompareWap( aItem ) ) + { + switch ( thisbearer ) + { + case EApBearerTypeCSD: + case EApBearerTypeHSCSD: + { + // compare IAP + if ( CompareIap( aItem ) ) + { + // compare ISP + if ( CompareIsp( aItem ) ) + { + if ( CompareProxy( aItem ) ) + { + retval = ETrue; + } + } + } + break; + } + case EApBearerTypeGPRS: + { + // compare IAP + if ( CompareIap( aItem ) ) + { + // comapre GPRS + if ( CompareGprs( aItem ) ) + { + if ( CompareProxy( aItem ) ) + { + retval = ETrue; + } + } + } + break; + } + case EApBearerTypeCDMA: + { + // compare IAP + if ( CompareIap( aItem ) ) + { + // comapre CDMA + if ( CompareCdma( aItem ) ) + { + if ( CompareProxy( aItem ) ) + { + retval = ETrue; + } + } + } + break; + } + case EApBearerTypeWLAN: + { + if ( iExt->iWlanData ) + { + // Compare Iap + if ( CompareIap( aItem ) ) + { + // Check compareing for WLAN and LAN!!! + // Compare WLAN + if ( CompareWlan( aItem ) ) + { + if ( CompareProxy( aItem ) ) + { + retval = ETrue; + } + } + } + } + else + { + User::Leave( KErrNotSupported ); + } + break; + } + default: + { + // KErrInvalidBearer, but can not Leave here, + // so just return False + // retval is already False, nothing to do + break; + } + } + } + } + + CLOG( ( EApItem, 1, _L( "<- CApAccessPointItem::DoCompareApL" ) ) ); + return retval; + } + + + +// --------------------------------------------------------- +// CApAccessPointItem::CompareWap +// --------------------------------------------------------- +// +TBool CApAccessPointItem::CompareWap( const CApAccessPointItem& aItem ) const + { + CLOG( ( EApItem, 0, _L( "-> CApAccessPointItem::CompareWap" ) ) ); + + TBool retval( EFalse ); +// WAP AP Table +/* +WAP_CURRENT_BEARER +WAP_START_PAGE +*/ + +// WAP IP Bearer Table +/* + -- WAP_ACCESS_POINT_ID +WAP_GATEWAY_ADDRESS + -- WAP_IAP + -- WAP_ISP + -- WAP_CHARGECARD +WAP_ISP_TYPE +WAP_WSP_OPTION +WAP_SECURITY +*/ + + if ( BOOL_COMPARE( iIsWTLSSecurityOn, aItem.iIsWTLSSecurityOn ) + && ( iIsConnectionTypeContinuous == aItem.iIsConnectionTypeContinuous ) + ) + { + if ( + ( iWapAccessPointName->Compare( *aItem.iWapAccessPointName ) == 0 ) + && ( iWapBearer->Compare( *aItem.iWapBearer ) == 0 ) + && ( iStartingPage->Compare( *aItem.iStartingPage ) == 0 ) + && ( iWapGatewayAddress->Compare( *aItem.iWapGatewayAddress ) == 0 ) + && ( iWapProxyLoginName->Compare( + *aItem.iWapProxyLoginName ) == 0 ) + && ( iWapProxyLoginPass->Compare( + *aItem.iWapProxyLoginPass ) == 0 ) + ) + { + retval = ETrue; + } + } + + CLOG( ( EApItem, 1, _L( "<- CApAccessPointItem::CompareWap" ) ) ); + return retval; + } + + + +// --------------------------------------------------------- +// CApAccessPointItem::CompareIap +// --------------------------------------------------------- +// +TBool CApAccessPointItem::CompareIap( const CApAccessPointItem& aItem ) const + { + CLOG( ( EApItem, 0, _L( "-> CApAccessPointItem::CompareIap" ) ) ); + + TBool retval( EFalse ); +// WAP IAP Table +/* +COMMDB_NAME +-- IAP_SERVICE _S("IAPService") +IAP_SERVICE_TYPE _S("IAPServiceType") +-- IAP_CHARGECARD _S("Chargecard") +*/ + if ( + ( iIapName->Compare( *aItem.iIapName ) == 0 ) + && ( iIapServiceType->Compare( *aItem.iIapServiceType ) == 0 ) + && ( iNetworkName->Compare( *aItem.iNetworkName ) == 0 ) + && ( iNetworkId == aItem.iNetworkId ) + ) + { + retval = ETrue; + } + + CLOG( ( EApItem, 1, _L( "<- CApAccessPointItem::CompareIap" ) ) ); + return retval; + } + + + + +// --------------------------------------------------------- +// CApAccessPointItem::CompareIsp +// --------------------------------------------------------- +// +TBool CApAccessPointItem::CompareIsp( const CApAccessPointItem& aItem ) const + { + CLOG( ( EApItem, 0, _L( "-> CApAccessPointItem::CompareIsp" ) ) ); + + TBool retval( EFalse ); + if ( + BOOL_COMPARE( iIspDialResolution , aItem.iIspDialResolution ) + && BOOL_COMPARE( iUseLoginScript, aItem.iUseLoginScript ) + && BOOL_COMPARE( iPromptPassword, aItem.iPromptPassword ) + && BOOL_COMPARE( iDisplayTerminalWindow, aItem.iDisplayTerminalWindow ) + && BOOL_COMPARE( iIspIfPromptForAuth, aItem.iIspIfPromptForAuth ) + && iIspIfAuthRetries == aItem.iIspIfAuthRetries + && BOOL_COMPARE( iUseCallBack, aItem.iUseCallBack ) + && iCallBackTypeIsServerNum == aItem.iCallBackTypeIsServerNum + && iIspCallbackTimeOut == aItem.iIspCallbackTimeOut + && BOOL_COMPARE( iIspIPAddrFromServer, aItem.iIspIPAddrFromServer ) + && BOOL_COMPARE( iGetDNSIPFromServer, aItem.iGetDNSIPFromServer ) + && BOOL_COMPARE( iEnablePPPCompression, aItem.iEnablePPPCompression ) + && BOOL_COMPARE( iIspEnableLCPExtensions, + aItem.iIspEnableLCPExtensions ) + && BOOL_COMPARE( iIsPasswordAuthenticationSecure, + aItem.iIsPasswordAuthenticationSecure ) + && BOOL_COMPARE( iIspEnableSwCompression, + aItem.iIspEnableSwCompression ) + && iIspBearerName == aItem.iIspBearerName + && iMaxConnSpeed == aItem.iMaxConnSpeed + && iIspBearerCE == aItem.iIspBearerCE + && iApIapBearerService == aItem.iApIapBearerService + && iIspBearerType == aItem.iIspBearerType + && iBearerCallTypeIsdn == aItem.iBearerCallTypeIsdn + && iIspChannelCoding == aItem.iIspChannelCoding + && iIspAIUR == aItem.iIspAIUR + && iIspRequestedTimeSlots == aItem.iIspRequestedTimeSlots + && iIspMaximumTimeSlots == aItem.iIspMaximumTimeSlots + && ( + ( iExt->iIsIpv6Supported + && ( BOOL_COMPARE( iExt->iIpv6GetDNSIPFromServer, + aItem.iExt->iIpv6GetDNSIPFromServer ) ) ) + || !iExt->iIsIpv6Supported ) + ) + { + if ( + ( iIspName->Compare( *aItem.iIspName ) == 0 ) + && ( iIspDescription->Compare( *aItem.iIspDescription ) == 0 ) + && + ( iIspDefaultTelNumber->Compare( + *aItem.iIspDefaultTelNumber ) == 0 ) + && ( iLoginScript->Compare( *aItem.iLoginScript ) == 0 ) + && ( iUserName->Compare( *aItem.iUserName ) == 0 ) + && ( iPassword->Compare( *aItem.iPassword ) == 0 ) + && ( iIspIfName->Compare( *aItem.iIspIfName ) == 0 ) + && ( iIspIfParams->Compare( *aItem.iIspIfParams ) == 0 ) + && ( iIspIfNetworks->Compare( *aItem.iIspIfNetworks ) == 0 ) + && ( iIspIfAuthName->Compare( *aItem.iIspIfAuthName ) == 0 ) + && ( iIspIfAuthPass->Compare( *aItem.iIspIfAuthPass ) == 0 ) + && + ( iIspIfCallbackInfo->Compare( *aItem.iIspIfCallbackInfo ) == 0 ) + && ( iIspIPAddr->Compare( *aItem.iIspIPAddr ) == 0 ) + && ( iIspIPNetMask->Compare( *aItem.iIspIPNetMask ) == 0 ) + && ( iIspGateway->Compare( *aItem.iIspGateway ) == 0 ) + && ( iPrimaryDNS->Compare( *aItem.iPrimaryDNS ) == 0 ) + && ( iSecondaryDNS->Compare( *aItem.iSecondaryDNS ) == 0 ) + && ( iIspInitString->Compare( *aItem.iIspInitString ) == 0 ) + && ( + ( iExt->iIsIpv6Supported && + ( + ( iExt->iIpv6PrimaryDNS->Compare( + *aItem.iExt->iIpv6PrimaryDNS ) == 0 ) + && + ( iExt->iIpv6SecondaryDNS->Compare( + *aItem.iExt->iIpv6SecondaryDNS ) == 0 ) + ) + || !iExt->iIsIpv6Supported ) + ) + ) + { + retval = ETrue; + } + } + + CLOG( ( EApItem, 1, _L( "<- CApAccessPointItem::CompareIsp" ) ) ); + return retval; + } + + + + +// --------------------------------------------------------- +// CApAccessPointItem::CompareGprs +// --------------------------------------------------------- +// +TBool CApAccessPointItem::CompareGprs( const CApAccessPointItem& aItem ) const + { + CLOG( ( EApItem, 0, _L( "-> CApAccessPointItem::CompareGprs" ) ) ); + + TBool retval( EFalse ); + + if ( + iGprsPdpType == aItem.iGprsPdpType +// + && BOOL_COMPARE( iIspIfPromptForAuth, aItem.iIspIfPromptForAuth ) + && iIspIfAuthRetries == aItem.iIspIfAuthRetries + && BOOL_COMPARE( iIspIPAddrFromServer, aItem.iIspIPAddrFromServer ) + && BOOL_COMPARE( iGetDNSIPFromServer, aItem.iGetDNSIPFromServer ) + && BOOL_COMPARE( iEnablePPPCompression, aItem.iEnablePPPCompression ) + && BOOL_COMPARE( iIspEnableLCPExtensions, + aItem.iIspEnableLCPExtensions ) + && BOOL_COMPARE( iIsPasswordAuthenticationSecure, + aItem.iIsPasswordAuthenticationSecure ) + && BOOL_COMPARE( iIspEnableSwCompression, + aItem.iIspEnableSwCompression ) +// + && iGprsReqPrecedence == aItem.iGprsReqPrecedence + && iGprsReqDelay == aItem.iGprsReqDelay + && iGprsReqReliability == aItem.iGprsReqReliability + && iGprsReqPeakThroughput == aItem.iGprsReqPeakThroughput + && iGprsReqMeanPeakThroughput == aItem.iGprsReqMeanPeakThroughput + && iGprsMinPrecedence == aItem.iGprsMinPrecedence + && iGprsMinDelay == aItem.iGprsMinDelay + && iGprsMinReliability == aItem.iGprsMinReliability + && iGprsMinPeakThroughput == aItem.iGprsMinPeakThroughput + && iGprsMinMeanThroughput == aItem.iGprsMinMeanThroughput + && BOOL_COMPARE( iGprsUseAnonymAccess, aItem.iGprsUseAnonymAccess ) + && ( + ( iExt->iIsIpv6Supported + && (BOOL_COMPARE( iExt->iIpv6GetDNSIPFromServer, + aItem.iExt->iIpv6GetDNSIPFromServer ) ) ) + || ( !iExt->iIsIpv6Supported ) ) + ) + { + if ( + ( iGprsAccessPointName->Compare( + *aItem.iGprsAccessPointName ) == 0 ) +// + && ( iIspIfName->Compare( *aItem.iIspIfName ) == 0 ) + && ( iIspIfParams->Compare( *aItem.iIspIfParams ) == 0 ) + && ( iIspIfNetworks->Compare( *aItem.iIspIfNetworks ) == 0 ) + && ( iIspIfAuthName->Compare( *aItem.iIspIfAuthName ) == 0 ) + && ( iIspIfAuthPass->Compare( *aItem.iIspIfAuthPass ) == 0 ) + && ( iIspIPAddr->Compare( *aItem.iIspIPAddr ) == 0 ) + && ( iIspIPNetMask->Compare( *aItem.iIspIPNetMask ) == 0 ) + && ( iIspGateway->Compare( *aItem.iIspGateway ) == 0 ) + && ( iPrimaryDNS->Compare( *aItem.iPrimaryDNS ) == 0 ) + && ( iSecondaryDNS->Compare( *aItem.iSecondaryDNS ) == 0 ) +// + && ( iGprsPdpAddress->Compare( *aItem.iGprsPdpAddress ) == 0 ) + && ( + ( iExt->iIsIpv6Supported && + ( + ( iExt->iIpv6PrimaryDNS->Compare( + *aItem.iExt->iIpv6PrimaryDNS ) == 0 ) + && + ( iExt->iIpv6SecondaryDNS->Compare( + *aItem.iExt->iIpv6SecondaryDNS ) == 0 ) + ) + || !iExt->iIsIpv6Supported ) + ) + ) + { + retval = ETrue; + } + } + + CLOG( ( EApItem, 1, _L( "<- CApAccessPointItem::CompareGprs" ) ) ); + return retval; + } + + + +// --------------------------------------------------------- +// CApAccessPointItem::CompareCdma +// --------------------------------------------------------- +// +TBool CApAccessPointItem::CompareCdma( const CApAccessPointItem& aItem ) const + { + CLOG( ( EApItem, 0, _L( "-> CApAccessPointItem::CompareCdma" ) ) ); + + TBool retval( EFalse ); + + __ASSERT_ALWAYS( iExt->iCdmaData, ApCommons::Panic( ESanityCheckFailed ) ); + + if ( + iExt->iCdmaData->iServiceOption == + aItem.iExt->iCdmaData->iServiceOption + && iExt->iCdmaData->iPdpType == aItem.iExt->iCdmaData->iPdpType + && iExt->iCdmaData->iReqFwdPriority == + aItem.iExt->iCdmaData->iReqFwdPriority + && iExt->iCdmaData->iReqRevPriority == + aItem.iExt->iCdmaData->iReqRevPriority + && iExt->iCdmaData->iReqFwdBitrate == + aItem.iExt->iCdmaData->iReqFwdBitrate + && iExt->iCdmaData->iReqRevBitrate == + aItem.iExt->iCdmaData->iReqRevBitrate + && iExt->iCdmaData->iReqFwdLoss == aItem.iExt->iCdmaData->iReqFwdLoss + && iExt->iCdmaData->iReqRevLoss == aItem.iExt->iCdmaData->iReqRevLoss + && iExt->iCdmaData->iReqFwdMaxDelay == + aItem.iExt->iCdmaData->iReqFwdMaxDelay + && iExt->iCdmaData->iReqRevMaxDelay == + aItem.iExt->iCdmaData->iReqRevMaxDelay + && iExt->iCdmaData->iMinFwdBitrate == + aItem.iExt->iCdmaData->iMinFwdBitrate + && iExt->iCdmaData->iMinRevBitrate == + aItem.iExt->iCdmaData->iMinRevBitrate + && iExt->iCdmaData->iAccptFwdLoss == + aItem.iExt->iCdmaData->iAccptFwdLoss + && iExt->iCdmaData->iAccptRevLoss == + aItem.iExt->iCdmaData->iAccptRevLoss + && iExt->iCdmaData->iAccptFwdMaxDelay == + aItem.iExt->iCdmaData->iAccptFwdMaxDelay + && iExt->iCdmaData->iAccptRevMaxDelay == + aItem.iExt->iCdmaData->iAccptRevMaxDelay +// + && BOOL_COMPARE( iIspIfPromptForAuth, aItem.iIspIfPromptForAuth ) + && iIspIfAuthRetries == aItem.iIspIfAuthRetries + && BOOL_COMPARE( iIspIPAddrFromServer, aItem.iIspIPAddrFromServer ) + && BOOL_COMPARE( iGetDNSIPFromServer, aItem.iGetDNSIPFromServer ) + && BOOL_COMPARE( iEnablePPPCompression, aItem.iEnablePPPCompression ) + && BOOL_COMPARE( iIspEnableLCPExtensions, + aItem.iIspEnableLCPExtensions ) + && BOOL_COMPARE( iIsPasswordAuthenticationSecure, + aItem.iIsPasswordAuthenticationSecure ) + && BOOL_COMPARE( iIspEnableSwCompression, + aItem.iIspEnableSwCompression ) +// + && iIspType == aItem.iIspType + && iExt->iCdmaData->iQosWarningTimeout == + aItem.iExt->iCdmaData->iQosWarningTimeout + && iExt->iCdmaData->iRlpMode == aItem.iExt->iCdmaData->iRlpMode + && BOOL_COMPARE( iExt->iCdmaData->iMip, aItem.iExt->iCdmaData->iMip ) + && iExt->iCdmaData->iMipTimeout == aItem.iExt->iCdmaData->iMipTimeout + && iExt->iCdmaData->iNaiType == aItem.iExt->iCdmaData->iNaiType + && iExt->iCdmaData->iSimpleIpAuthAlgorithm == + aItem.iExt->iCdmaData->iSimpleIpAuthAlgorithm + && iExt->iCdmaData->iSimpleIpPapSsHandle == + aItem.iExt->iCdmaData->iSimpleIpPapSsHandle + && iExt->iCdmaData->iSimpleIpChapSsHandle == + aItem.iExt->iCdmaData->iSimpleIpChapSsHandle + && iExt->iCdmaData->iMipTBit == aItem.iExt->iCdmaData->iMipTBit + && iExt->iCdmaData->iMipMnAaaAuthAlgorithm == + aItem.iExt->iCdmaData->iMipMnAaaAuthAlgorithm + && iExt->iCdmaData->iMipMnAaaSpi == + aItem.iExt->iCdmaData->iMipMnAaaSpi + && iExt->iCdmaData->iMipMnAaaSsHandle == + aItem.iExt->iCdmaData->iMipMnAaaSsHandle + && iExt->iCdmaData->iMipMnHaAuthAlgorithm == + aItem.iExt->iCdmaData->iMipMnHaAuthAlgorithm + && iExt->iCdmaData->iMipMnHaSpi == aItem.iExt->iCdmaData->iMipMnHaSpi + && iExt->iCdmaData->iMipMnHaSsHandle == + aItem.iExt->iCdmaData->iMipMnHaSsHandle +// + && BOOL_COMPARE( iGprsUseAnonymAccess, aItem.iGprsUseAnonymAccess ) + && ( + ( iExt->iIsIpv6Supported + && ( BOOL_COMPARE( iExt->iIpv6GetDNSIPFromServer, + aItem.iExt->iIpv6GetDNSIPFromServer ) ) ) + || ( !iExt->iIsIpv6Supported ) ) + ) + { + if ( + ( iExt->iCdmaData->iIwfName->Compare( + *aItem.iExt->iCdmaData->iIwfName ) == 0 ) + && ( iExt->iCdmaData->iPdpAddress->Compare( + *aItem.iExt->iCdmaData->iPdpAddress ) == 0 ) + && ( iExt->iCdmaData->iHomeAgentAddress->Compare( + *aItem.iExt->iCdmaData->iHomeAgentAddress ) == 0 ) + && ( iExt->iCdmaData->iMipHomeAddress->Compare( + *aItem.iExt->iCdmaData->iMipHomeAddress ) == 0 ) + && ( iExt->iCdmaData->iMipPrimaryHomeAgent->Compare( + *aItem.iExt->iCdmaData->iMipPrimaryHomeAgent ) == 0 ) + && ( iExt->iCdmaData->iMipSecondaryHomeAgent->Compare( + *aItem.iExt->iCdmaData->iMipSecondaryHomeAgent ) == 0 ) +// + && ( iIspIfName->Compare( *aItem.iIspIfName ) == 0 ) + && ( iIspIfParams->Compare( *aItem.iIspIfParams ) == 0 ) + && ( iIspIfNetworks->Compare( *aItem.iIspIfNetworks ) == 0 ) + && ( iIspIfAuthName->Compare( *aItem.iIspIfAuthName ) == 0 ) + && ( iIspIfAuthPass->Compare( *aItem.iIspIfAuthPass ) == 0 ) + && ( iIspIPAddr->Compare( *aItem.iIspIPAddr ) == 0 ) + && ( iIspIPNetMask->Compare( *aItem.iIspIPNetMask ) == 0 ) + && ( iIspGateway->Compare( *aItem.iIspGateway ) == 0 ) + && ( iPrimaryDNS->Compare( *aItem.iPrimaryDNS ) == 0 ) + && ( iSecondaryDNS->Compare( *aItem.iSecondaryDNS ) == 0 ) +// + && ( + ( iExt->iIsIpv6Supported && + ( + ( iExt->iIpv6PrimaryDNS->Compare( + *aItem.iExt->iIpv6PrimaryDNS ) == 0 ) + && + ( iExt->iIpv6SecondaryDNS->Compare( + *aItem.iExt->iIpv6SecondaryDNS ) == 0 ) + ) + || !iExt->iIsIpv6Supported ) + ) + ) + { + retval = ETrue; + } + } + + CLOG( ( EApItem, 1, _L( "<- CApAccessPointItem::CompareCdma" ) ) ); + return retval; + } + + + +// --------------------------------------------------------- +// CApAccessPointItem::CompareWlan +// --------------------------------------------------------- +// +TBool CApAccessPointItem::CompareWlan( const CApAccessPointItem& aItem ) const + { + CLOG( ( EApItem, 0, _L( "-> CApAccessPointItem::CompareWlan" ) ) ); + + TBool retval( EFalse ); + + __ASSERT_ALWAYS( iExt->iWlanData, ApCommons::Panic( ESanityCheckFailed ) ); + __ASSERT_ALWAYS( aItem.iExt->iWlanData, + ApCommons::Panic( ESanityCheckFailed ) ); + + if ( + iExt->iWlanData->iWlanNetworkMode == + aItem.iExt->iWlanData->iWlanNetworkMode + && iExt->iWlanData->iScanSSID == aItem.iExt->iWlanData->iScanSSID + && iExt->iWlanData->iWlanSecurityMode == + aItem.iExt->iWlanData->iWlanSecurityMode + && iExt->iWlanData->iChannelId == + aItem.iExt->iWlanData->iChannelId + && BOOL_COMPARE( iGetDNSIPFromServer, aItem.iGetDNSIPFromServer ) + ) + { + if ( ( iExt->iWlanData->iWlanNetworkName->Compare( + *aItem.iExt->iWlanData->iWlanNetworkName ) == 0 ) + && ( iIspIPAddr->Compare( *aItem.iIspIPAddr ) == 0 ) + && ( iIspIPNetMask->Compare( *aItem.iIspIPNetMask ) == 0 ) + && ( iIspGateway->Compare( *aItem.iIspGateway ) == 0 ) + && ( iPrimaryDNS->Compare( *aItem.iPrimaryDNS ) == 0 ) + && ( iSecondaryDNS->Compare( *aItem.iSecondaryDNS ) == 0 ) +// Check if AuthName is needed or not +// && ( iIspIfAuthName->Compare( *aItem.iIspIfAuthName ) == 0 ) + ) + { + retval = ETrue; + } + } + + CLOG( ( EApItem, 1, _L( "<- CApAccessPointItem::CompareWlan" ) ) ); + return retval; + } + + +// --------------------------------------------------------- +// CApAccessPointItem::GetCleanIpAddressLC +// --------------------------------------------------------- +// +HBufC* CApAccessPointItem::GetCleanIpAddressLC( const TDesC& aValue ) + { + CLOG( ( EApItem, 0, _L( "-> CApAccessPointItem::GetCleanIpAddressLC" ) ) ); + + TBuf<256> buf; + TInetAddr in; + User::LeaveIfError( in.Input( aValue ) ); + in.Output( buf ); + + CLOG( ( EApItem, 1, _L( "<- CApAccessPointItem::GetCleanIpAddressLC" ) ) ); + return buf.AllocLC(); + } + + + +// --------------------------------------------------------- +// CApAccessPointItem::GetPlainPhoneNumberLC +// --------------------------------------------------------- +// +HBufC* CApAccessPointItem::GetPlainPhoneNumberLC( const TDesC& aNumber ) + { + CLOG( ( EApItem, 0, + _L( "-> CApAccessPointItem::GetPlainPhoneNumberLC" ) ) ); + + // Removes invalid chars e.g. space, () from the passed phone number. + // (valid are 0,1,2,..9,p,w,+,*,#) + // Strips pre- and postfixes, prefix separator is#, + // postfix separators are p, w or + + HBufC* retval = NULL; + + HBufC* numbuf = RemoveInvalidPhoneCharsLC( aNumber ); + TPtr16 num( numbuf->Des() ); + + TInt prefixpos( 0 ); + TInt postfixpos( 0 ); + TInt lasthashmark = num.LocateReverse('#'); + if ( lasthashmark != KErrNotFound ) + { // has prefix + prefixpos = ++lasthashmark; + } + else + { // no prefix + prefixpos = 0; + } + // now get postfixes, if any + // be carefull not to say postfix for the international code... + // as can be more than one postfix, get each postfix-separator type's + // position and use the lowest one + TInt ppos( 0 ); + TInt wpos( 0 ); + TInt pluspos( 0 ); + TInt tmppos( 0 ); + + tmppos = num.Locate( '+' ); + if ( tmppos != KErrNotFound ) + { + pluspos = tmppos; + if ( tmppos == 0 ) + { // possibly country code comes, get next if any + // also inc. prefixpos + prefixpos++; + num = num.Right( num.Length() - 1 ); + tmppos = num.Locate( '+' ); + if ( tmppos != KErrNotFound ) + { + tmppos = pluspos; + } + } + } + + tmppos = num.Locate( 'p' ); + if ( tmppos != KErrNotFound ) + { + ppos = tmppos; + num = num.Left( num.Length() - ppos ); + } + tmppos = num.LocateReverse( 'w' ); + if ( tmppos != KErrNotFound ) + { + wpos = tmppos; + num = num.Left( num.Length() - wpos ); + } + // now we have 3 positions, + // decide which is the smallest but greater than 0 + // if all is 0, it is 0... + if ( wpos ) + { + postfixpos = wpos; + } + else + { + if ( ppos ) + { + postfixpos = ppos; + } + else + { + if ( pluspos ) + { + postfixpos = pluspos; + } + } + } + // now we have pre- and postfix positions, get the resulting string + if ( postfixpos == 0 ) + { + postfixpos = aNumber.Length(); + } + retval = aNumber.Mid( prefixpos, postfixpos-prefixpos ).AllocLC(); + CleanupStack::Pop( retval ); // retval + CleanupStack::PopAndDestroy( numbuf ); // numbuf + CleanupStack::PushL( retval ); + + CLOG( ( EApItem, 1, + _L( "<- CApAccessPointItem::GetPlainPhoneNumberLC" ) ) ); + return retval; + } + + + + + +// --------------------------------------------------------- +// CApAccessPointItem::IsSamePhoneNumber +// --------------------------------------------------------- +// +TBool CApAccessPointItem::IsSamePhoneNumberL( CApAccessPointItem& aItem ) + { + CLOG( ( EApItem, 0, _L( "-> CApAccessPointItem::IsSamePhoneNumberL" ) ) ); + + TBool retval( EFalse ); + + HBufC* tmpphone = + HBufC::NewLC( aItem.ReadTextLengthL( EApIspDefaultTelNumber ) ); + TPtr16 tmpptr( tmpphone->Des() ); + aItem.ReadTextL( EApIspDefaultTelNumber, tmpptr ); + + HBufC* ph1 = GetPlainPhoneNumberLC( *iIspDefaultTelNumber ); + HBufC* ph2 = GetPlainPhoneNumberLC( tmpptr ); + TInt cl ( 7 ); + cl = Min( cl, ph1->Length() ); + cl = Min( cl, ph2->Length() ); + TPtrC16 ptr1 = ph1->Right( cl ); + TPtrC16 ptr2 = ph2->Right( cl ); + if ( ptr1.Compare( ptr2 ) == 0 ) + { + retval = ETrue; + } + CleanupStack::PopAndDestroy( 3, tmpphone ); // ph1, ph2, tmpphone + + CLOG( ( EApItem, 1, _L( "<- CApAccessPointItem::IsSamePhoneNumberL" ) ) ); + return retval; + } + + + +// --------------------------------------------------------- +// CApAccessPointItem::RemoveInvalidPhoneCharsLC +// --------------------------------------------------------- +// +HBufC* CApAccessPointItem::RemoveInvalidPhoneCharsLC( const TDesC16& aInText ) + { + CLOG( ( EApItem, 0, + _L( "-> CApAccessPointItem::RemoveInvalidPhoneCharsLC" ) ) ); + + // valid are 0,1,2,..9,p,w,+,*,# + TInt size = aInText.Length(); + HBufC* aOutText = HBufC::NewLC( size ); + TPtr ptr = aOutText->Des(); + + for(TInt i = 0; i< size; i++) + { + //TText ch = aInText[i]; + TChar ch = aInText[i]; + if ( ( ch == 'p' ) || ( ch == 'P' ) || ( ch == 'W' ) || ( ch == 'W' ) + || ( ch == '+' ) || ( ch == '0' ) || ( ch == '1' ) || ( ch == '2' ) + || ( ch == '3' ) || ( ch == '4' ) || ( ch == '5' ) || ( ch == '6' ) + || ( ch == '7' ) || ( ch == '8' ) || ( ch == '9' ) || ( ch == '*' ) + || ( ch == '#' ) + ) + { + ptr.Append( ch ); + } + } + + CLOG( ( EApItem, 1, + _L( "<- CApAccessPointItem::RemoveInvalidPhoneCharsLC" ) ) ); + return aOutText; + } + + + +// --------------------------------------------------------- +// CApAccessPointItem::RemoveInvalidCharsLC +// --------------------------------------------------------- +// +HBufC* CApAccessPointItem::RemoveInvalidCharsLC( const TDesC16& aInText ) + { + CLOG( ( EApItem, 0, + _L( "-> CApAccessPointItem::RemoveInvalidCharsLC" ) ) ); + + TInt size = aInText.Length(); + HBufC* aOutText = HBufC::NewLC( size ); + TPtr ptr = aOutText->Des(); + + for ( TInt ii=0; ii CApAccessPointItem::RemoveInvalidCharsLC8" ) ) ); + + TInt size = aInText.Length(); + HBufC8* aOutText = HBufC8::NewLC( size ); + TPtr8 ptr = aOutText->Des(); + + for ( TInt ii=0; ii CApAccessPointItem::CompareProxy" ) ) ); + + TBool retval( EFalse ); + if ( BOOL_COMPARE( iApHasProxySettings, aItem.iApHasProxySettings ) + && iApProxyPortNumber == aItem.iApProxyPortNumber + && BOOL_COMPARE( iApProxyUseProxy, iApProxyUseProxy ) + && ( iApProxyProtocolName->Compare( + *aItem.iApProxyProtocolName ) == 0 ) + && ( iApProxyServerAddress->Compare( + *aItem.iApProxyServerAddress ) == 0 ) + && ( iApProxyExceptions->Compare( *aItem.iApProxyExceptions ) == 0 ) ) + { + retval = ETrue; + } + + CLOG( ( EApItem, 1, _L( "<- CApAccessPointItem::CompareProxy" ) ) ); + return retval; + } + + +// --------------------------------------------------------- +// CApAccessPointItem::HasProxy +// --------------------------------------------------------- +// +TBool CApAccessPointItem::HasProxy() const + { + CLOG( ( EApItem, 0, _L( "<-> CApAccessPointItem::HasProxy" ) ) ); + + return iApHasProxySettings; + } + + + +// --------------------------------------------------------- +// CApAccessPointItem::SetProxyFlag +// --------------------------------------------------------- +// +void CApAccessPointItem::SetProxyFlag() + { + CLOG( ( EApItem, 0, _L( "-> CApAccessPointItem::SetProxyFlag" ) ) ); + + if ( ( iApProxyServerAddress->Compare( KDynIpAddress ) + && iApProxyServerAddress->Compare( KEmpty ) ) + || ( iApProxyPortNumber != 0 ) ) + { + iApHasProxySettings = ETrue; + } + else + { + iApHasProxySettings = EFalse; + } + // BY DEFAULT, as it is not accessible on the UI, + // we set the USE PROXY flag if ANY proxy setting is defined... + iApProxyUseProxy = iApHasProxySettings; + + CLOG( ( EApItem, 1, _L( "<- CApAccessPointItem::SetProxyFlag" ) ) ); + } + + + + +//---------------------------------------------------------- +// CApAccessPointItem::LimitSpeed +//---------------------------------------------------------- +// +void CApAccessPointItem::LimitSpeedL() + { + CLOG( ( EApItem, 0, _L( "-> CApAccessPointItem::LimitSpeedL" ) ) ); + + TBool isWcdma = iExt->iIsWcdma; + TApBearerType bearer = BearerTypeL(); + const TInt* actSpeeds = NULL; + switch ( bearer ) + { + case EApBearerTypeCSD: + { + switch ( iBearerCallTypeIsdn ) + { + case ECallTypeISDNv110: + { + isWcdma ? actSpeeds = KCsdIsdn110Wcdma : + actSpeeds = KCsdIsdn110; + break; + } + case ECallTypeISDNv120: + { + isWcdma ? actSpeeds = KCsdIsdn120Wcdma : + actSpeeds = KCsdIsdn120; + break; + } + case ECallTypeAnalogue: + default: + { + isWcdma ? actSpeeds = KCsdAnalogueWcdma : + actSpeeds = KCsdAnalogue; + break; + } + } + break; + } + case EApBearerTypeHSCSD: + { + switch ( iBearerCallTypeIsdn ) + { + case ECallTypeISDNv110: + { + actSpeeds = KHcsdIsdn110; + break; + } + case ECallTypeISDNv120: + { + actSpeeds = KHcsdIsdn120; + break; + } + case ECallTypeAnalogue: + default: + { + actSpeeds = KHcsdAnal; + break; + } + } + break; + } + default: + { + break; + } + } + + + if( actSpeeds ) + { + TInt tempSpeed = *actSpeeds; + TInt nextSpeed = *( actSpeeds + 1); + while ( ( nextSpeed != KEndOfArray ) + && ( tempSpeed < ( TInt )iMaxConnSpeed ) + && ( nextSpeed <= ( TInt )iMaxConnSpeed ) ) + { + tempSpeed = *( ++actSpeeds ); + nextSpeed = *( actSpeeds + 1); + } + iMaxConnSpeed = ( TApCallSpeed )tempSpeed ; + } + + CLOG( ( EApItem, 1, _L( "<- CApAccessPointItem::LimitSpeedL" ) ) ); + } + + + +//---------------------------------------------------------- +// CApAccessPointItem::SetIfNetworksL +//---------------------------------------------------------- +// +void CApAccessPointItem::SetIfNetworksL() + { + // Check if Wlan affects this one!!! + // Check if Lan affects this one!!! + TApBearerType bearertype = BearerTypeL(); + if ( iExt->iIsIpv6Supported ) + { + if ( bearertype == EApBearerTypeGPRS ) + { + if ( iGprsPdpType == EIPv6 ) + { + WriteTextL( EApIspIfNetworks, KDefIspIfNetworksIPv6 ); + } + else + { + WriteTextL( EApIspIfNetworks, KDefIspIfNetworksIPv4 ); + } + } + else if ( bearertype == EApBearerTypeCDMA ) + { + __ASSERT_ALWAYS( iExt->iCdmaData, \ + ApCommons::Panic( ESanityCheckFailed ) ); + if ( iExt->iCdmaData->iPdpType == EIPv6 ) + { + WriteTextL( EApIspIfNetworks, KDefIspIfNetworksIPv6 ); + } + else + { + WriteTextL( EApIspIfNetworks, KDefIspIfNetworksIPv4 ); + } + } + else + { +#ifdef __TEST_LAN_BEARER + if ( bearertype == EApBearerTypeLAN ) + { + WriteTextL( EApIspIfNetworks, KDefIspIfNetworksIPv4IPv6LAN ); + } +#endif// __TEST_LAN_BEARER + if ( ( bearertype == EApBearerTypeWLAN ) + || ( bearertype == EApBearerTypeLANModem ) ) + { + WriteTextL( EApIspIfNetworks, KDefIspIfNetworksIPv4IPv6LAN ); + } + else + { // CSD, HSCSD + WriteTextL( EApIspIfNetworks, KDefIspIfNetworksIPv4IPv6 ); + } + } + } + else + { + WriteTextL( EApIspIfNetworks, KDefIspIfNetworksIPv4 ); + } + } + + +//---------------------------------------------------------- +// CApAccessPointItem::IsSupported +//---------------------------------------------------------- +// +TBool CApAccessPointItem::IsSupported( TApMember aColumn ) + { + TBool ret( ETrue ); + + switch ( aColumn ) + { + case EApCdmaIwfName: + case EApCdmaServiceOption: + case EApCdmaPdpType: + case EApCdmaPdpAddress: + case EApCdmaReqFwdPriority: + case EApCdmaReqRevPriority: + case EApCdmaReqFwdBitrate: + case EApCdmaReqRevBitrate: + case EApCdmaReqFwdLoss: + case EApCdmaReqRevLoss: + case EApCdmaReqFwdMaxDelay: + case EApCdmaReqRevMaxDelay: + case EApCdmaMinFwdBitrate: + case EApCdmaMinRevBitrate: + case EApCdmaAccptFwdLoss: + case EApCdmaAccptRevLoss: + case EApCdmaAccptFwdMaxDelay: + case EApCdmaAccptRevMaxDelay: + case EApCdmaDataCompression: + case EApCdmaHeaderCompression: + case EApCdmaAnonymousAccess: + case EApCdmaIfName: + case EApCdmaIfParams: + case EApCdmaIfNetworks: + case EApCdmaIfPromptForAuth: + case EApCdmaIfAuthName: + case EApCdmaIfAuthPassword: + case EApCdmaIfAuthRetries: + case EApCdmaIpNetMask: + case EApCdmaIpGateway: + case EApCdmaIpAddrFromServer: + case EApCdmaIpAddr: + case EApCdmaIpDnsAddrFromServer: + case EApCdmaIPNameServer1: + case EApCdmaIPNameServer2: + case EApCdmaEnableLCPExtensions: + case EApCdmaDisablePlainTextAuth: + case EApCdmaApType: + case EApCdmaQosWarningTimeout: + case EApCdmaRlpMode: + case EApCdmaMip: + case EApCdmaHomeAgentAddress: + case EApCdmaMipTimeout: + case EApCdmaNaiType: + case EApCdmaSimpleIpAuthAlgorithm: + case EApCdmaSimpleIpPapSsHandle: + case EApCdmaSimpleIpChapSsHandle: + case EApCdmaMipTBit: + case EApCdmaMipHomeAddress: + case EApCdmaMipPrimaryHomeAgent: + case EApCdmaMipSecondaryHomeAgent: + case EApCdmaMipMnAaaAuthAlgorithm: + case EApCdmaMipMnAaaSpi: + case EApCdmaMipMnAaaSsHandle: + case EApCdmaMipMnHaAuthAlgorithm: + case EApCdmaMipMnHaSpi: + case EApCdmaMipMnHaSsHandle: + { + ret = iExt->iCdmaData != NULL; + break; + } + case EApWlanNetworkName: + case EApWlanNetworkMode: + case EApWlanSecurityMode: + case EApWlanScanSSID: + case EApWlanChannelId: + { + ret = iExt->iWlanData != NULL; + break; + } + + default: + { + break; + } + } + + return ret; + } + +//---------------------------------------------------------- +// CApAccessPointItem::LeaveIfUnsupportedL +//---------------------------------------------------------- +// +void CApAccessPointItem::LeaveIfUnsupportedL( TApMember aColumn ) + { + if( !IsSupported( aColumn ) ) + { + User::Leave( KErrNotSupported ); + } + } + + + + +//---------------------------------------------------------- +// CApAccessPointItem::IsWlan +//---------------------------------------------------------- +// +TBool CApAccessPointItem::IsWlan() + { + TBool retval( EFalse ); + if ( iExt->iWlanData ) + { + retval = iExt->iWlanData->iIsWlan; + } + return retval; + } + + +//---------------------------------------------------------- +// CApAccessPointItem::LimitIp6DNSL +//---------------------------------------------------------- +// +void CApAccessPointItem::LimitIp6DNSL() + { + if ( iExt->iIsIpv6Supported ) + { + if ( ( iExt->iIpv6PrimaryDNS->Compare( KDynIpv6Address ) == 0 ) && + ( iExt->iIpv6SecondaryDNS->Compare( KDynIpv6Address ) == 0 ) ) + { + WriteTextL( EApIP6NameServer1, KWellKnownIp6PrimaryNameServer ); + WriteTextL( EApIP6NameServer2, KWellKnownIp6SecondaryNameServer ); + } + } + + } + +// End of File