--- a/omadm/omadmextensions/adapters/nsmldinternet/src/NSmlInternetAdapter.cpp Tue Feb 02 00:03:17 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,9261 +0,0 @@
-/*
-* Copyright (c) 2005 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: Internet-settings
- *
-*/
-
-
-#include <commdb.h>
-#include <cdbstore.h>
-#include <cdbcols.h> // CommsDB columname defs
-#include <implementationproxy.h> // For TImplementationProxy definition
-#include <cdbpreftable.h>
-#include <etelpckt.h> // ISP enumerations
-#include <etelmm.h> // GPRS ProtocolType
-#include <nifvar.h> // CallbackType
-#include <etelqos.h> // GPRS enumeration
-#include <wappdef.h> // WAP enumeration
-#include <sysutil.h> // OOD checking
-#include <uriutils.h> // ipv4 + ipv6 checking
-#include <featmgr.h>
-#include "NSmlInternetAdapter.h"
-#include "NSmlWLanAdapter.h"
-#include "nsmldebug.h"
-#include "nsmldmtreedbclient.h"
-#include <comms-infras/commdb/protection/protectdb.h>
-#include <utf.h>
-
-
-#include <metadatabase.h>
-#include <cmmanagerext.h>
-#include <cmconnectionmethoddef.h>
-#include <cmconnectionmethodext.h>
-#include <cmpluginbaseeng.h>
-#include <centralrepository.h>
-#include <pdpcontextmanagerinternalcrkeys.h>
-
-const TUint KNSmlInternetAdapterImplUid = 0x101F6DE2;
-
-const TUint KIapColumn = 0x00000100;
-const TUint KLingerColumn = 0x00000200;
-const TUint KColumnMask = 0xFFFFFF00;
-const TUint KRowMask = 0x000000FF;
-
-
-#include <SettingEnforcementInfo.h> // VSettingEnforcementInfo
-
-class CNSmlWLanAdapter;
-
-_LIT( KDaemonManagerName, "NetCfgExtnDhcp" );
-_LIT( KConfigDaemonName, "!DhcpServ" );
-
-#ifndef __WINS__
-// This lowers the unnecessary compiler warning (armv5) to remark.
-// "Warning: #174-D: expression has no effect..." is caused by
-// DBG_ARGS8 macro in no-debug builds.
-#pragma diag_remark 174
-#endif
-
-const TInt KBeginTransRetryDelay = 1000000; // Delay for comms db begintransaction retry (microseconds)
-const TInt KBeginTransRetryCount = 7; // Maximum number of retries
-//-----------------------------------------------------------------------------
-// CSmlInternetAdapter* CSmlInternetAdapter::NewL( )
-//-----------------------------------------------------------------------------
-
-CNSmlInternetAdapter* CNSmlInternetAdapter::NewL(MSmlDmCallback* aDmCallback )
- {
- _DBG_FILE("CNSmlInternetAdapter::NewL(): begin");
-
- CNSmlInternetAdapter* self = NewLC(aDmCallback);
- CleanupStack::Pop();
-
- _DBG_FILE("CNSmlInternetAdapter::NewL(): end");
- return self;
- }
-
-//------------------------------------------------------------------------------
-// CNSmlInternetAdapter* CNSmlInternetAdapter::NewLC( )
-//------------------------------------------------------------------------------
-CNSmlInternetAdapter* CNSmlInternetAdapter::NewLC(MSmlDmCallback* aDmCallback )
- {
- _DBG_FILE("CNSmlInternetAdapter::NewLC(): begin");
- CNSmlInternetAdapter* self = new (ELeave) CNSmlInternetAdapter(aDmCallback);
- CleanupStack::PushL(self);
-
- self->iCallBack = aDmCallback;
- self->ConstructL();
-
- _DBG_FILE("CNSmlInternetAdapter::NewLC(): end");
- return self;
- }
-
-//------------------------------------------------------------------------------
-// CNSmlInternetAdapter::CNSmlInternetAdapter()
-//------------------------------------------------------------------------------
-CNSmlInternetAdapter::CNSmlInternetAdapter(TAny* aEcomArguments)
- : CSmlDmAdapter(aEcomArguments)
- {
- _DBG_FILE("CNSmlInternetAdapter::CNSmlInternetAdapter(): begin");
- _DBG_FILE("CNSmlInternetAdapter::CNSmlInternetAdapter(): end");
- }
-
-//------------------------------------------------------------------------------
-// CNSmlInternetAdapter::~CNSmlInternetAdapter(TAny* aEcomArguments)
-//------------------------------------------------------------------------------
-CNSmlInternetAdapter::~CNSmlInternetAdapter()
- {
- _DBG_FILE("CNSmlInternetAdapter::~CNSmlInternetAdapter(): begin");
-
- delete iField;
-
- delete iPrevURI;
-
- // Command buffer cleaning if leave happend
- if (iBuffer)
- {
- for(TInt i=0;i<iBuffer->Count();i++)
- {
- delete iBuffer->At(i).iMappingName;
- delete iBuffer->At(i).iName;
-
- ClearBuffer( iBuffer->At(iExecutionIndex).iNodeBuf );
- delete iBuffer->At(i).iNodeBuf;
-
- ClearBuffer( iBuffer->At(iExecutionIndex).iWlanNodeBuf );
- delete iBuffer->At(i).iWlanNodeBuf;
- }
-
- iBuffer->Reset();
- delete iBuffer;
- }
-
- if ( iWlanSupported )
- {
- delete iWlanAdapter;
- }
-
- delete iDatabase;
- FeatureManager::UnInitializeLib();
- _DBG_FILE("CNSmlInternetAdapter::~CNSmlInternetAdapter(): end");
- }
-
-//=============================================
-// CNSmlInternetAdapter::ConstructL()
-// Second phase constructor.
-//=============================================
-void CNSmlInternetAdapter::ConstructL()
- {
- FeatureManager::InitializeLibL();
- iField = HBufC8::NewL( KNSmlMaxURLLength );
-
- iPrevURI = HBufC8::NewL( KNSmlMaxURLLength );
-
- iDatabase = CCommsDatabase::NewL();
- // iDatabase->BeginTransaction(); //+++
- iTransactionCommitted=ETrue;
- i3GPPPS = EFalse;
-
- iLeafType = EDMUnset; // Default for leaf handling
-
- // Reset identification data
-
- iDirection = ECommDbConnectionDirectionUnknown;
-
- //
- // Command buffering used for AddNode + AddLeaf
- //
- iBuffer = new (ELeave) CArrayFixFlat <TNSmlAPBufferElement> (KNSmlAPGranularity);
-
- // checks if Wlan feature is supported
- iWlanSupported = FeatureManager::FeatureSupported( KFeatureIdProtocolWlan );
-
- // WlanAdapter
- //
- if ( iWlanSupported )
- {
- iWlanAdapter = CNSmlWLanAdapter::NewL(iCallBack, *iDatabase);
- }
-
- iNetworkId = KErrNotFound;
- iLingerValue = NULL;
- iLingerFlag = ETrue;
- }
-
-//------------------------------------------------------------------------------
-// void CNSmlInternetAdapter::DDFVersionL()
-//------------------------------------------------------------------------------
-void CNSmlInternetAdapter::DDFVersionL(CBufBase& aDDFVersion)
- {
- aDDFVersion.InsertL(0,KNSmlInternetAdapterDDFversion);
- }
-//------------------------------------------------------------------------------
-// void CNSmlInternetAdapter::DDFStructureL()
-//------------------------------------------------------------------------------
-void CNSmlInternetAdapter::DDFStructureL( MSmlDmDDFObject& aDDF )
- {
- _DBG_FILE("CNSmlInternetAdapter::DDFStructureL(): begin");
-
- //
- // Set rest acceptable operations for data itself
- //
-
- TSmlDmAccessTypes aclTypesAddGetDel;
- aclTypesAddGetDel.SetGet();
- aclTypesAddGetDel.SetAdd();
- aclTypesAddGetDel.SetDelete();
-
- TSmlDmAccessTypes aclTypesAddGet;
- aclTypesAddGet.SetGet();
- aclTypesAddGet.SetAdd();
-
- TSmlDmAccessTypes aclTypesNoDelete;
- aclTypesNoDelete.SetGet();
- aclTypesNoDelete.SetReplace();
- aclTypesNoDelete.SetAdd();
-
- TSmlDmAccessTypes aclTypesNoGet;
- aclTypesNoGet.SetReplace();
- aclTypesNoGet.SetAdd();
- aclTypesNoGet.SetDelete();
-
- TSmlDmAccessTypes aclTypesAddReplace;
- aclTypesAddReplace.SetReplace();
- aclTypesAddReplace.SetAdd();
-
- TSmlDmAccessTypes aclTypesOnlyGet;
- aclTypesOnlyGet.SetGet();
-
- TSmlDmAccessTypes aclTypesAll;
- aclTypesAll.SetGet();
- aclTypesAll.SetReplace();
- aclTypesAll.SetAdd();
- aclTypesAll.SetDelete();
-
- MSmlDmDDFObject* ddfRoot = &aDDF;
- MSmlDmDDFObject& ddf = ddfRoot->AddChildObjectL(KNSmlDdfAP);
-
- _LIT8(KDescription,"AP-Settings DDF description");
- _LIT8(KDFTitle,"AP-settings title");
-
- FillNodeInfoL( ddf,
- aclTypesOnlyGet,
- MSmlDmDDFObject::EOne,
- MSmlDmDDFObject::EPermanent,
- MSmlDmDDFObject::ENode,
- KDescription);
-
- ddf.SetDFTitleL(KDFTitle);
- ddf.SetDefaultValueL(KNullDesC8);
-
- MSmlDmDDFObject& nApDDF = ddf.AddChildObjectGroupL(); // For AP/<X>
-
- FillNodeInfoL( nApDDF,
- aclTypesAll,
- MSmlDmDDFObject::EZeroOrMore,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::ENode,
- KNullDesC8);
-
- MSmlDmDDFObject& nNAPDefRootDDF = nApDDF.AddChildObjectL(KNSmlDdfNAPDef); // NAPDef
- FillNodeInfoL( nNAPDefRootDDF,
- aclTypesAddGet,
- MSmlDmDDFObject::EZeroOrOne, // EZeroOrMore
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::ENode,
- KNullDesC8);
-
- MSmlDmDDFObject& nNAPDefDDF = nNAPDefRootDDF.AddChildObjectGroupL(); // For NAPDef<x>
- FillNodeInfoL( nNAPDefDDF,
- aclTypesAddGet,
- MSmlDmDDFObject::EOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::ENode,
- KNullDesC8);
-
- MSmlDmDDFObject& nPxRootDDF = nApDDF.AddChildObjectL(KNSmlDdfPx); // Px
- FillNodeInfoL( nPxRootDDF,
- aclTypesAddGet,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::ENode,
- KNullDesC8);
-
- MSmlDmDDFObject& nPxDDF = nPxRootDDF.AddChildObjectGroupL(); // For Px<x>
- FillNodeInfoL( nPxDDF,
- aclTypesAddGetDel,//aclTypesAddGet
- MSmlDmDDFObject::EOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::ENode,
- KNullDesC8);
-//
-// NAPDef-node fields
-//
- MSmlDmDDFObject& nNameDDF = nNAPDefDDF.AddChildObjectL(KNSmlDdfNAPName); // Name
- FillNodeInfoL( nNameDDF,
- aclTypesAddGet,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EChr,
- KNSmlDdfNAPNameDesc);
-
- MSmlDmDDFObject& nNAPIDDDF = nNAPDefDDF.AddChildObjectL(KNSmlDdfNAPID); // NAPID
- FillNodeInfoL( nNAPIDDDF,
- aclTypesOnlyGet,
- MSmlDmDDFObject::EOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EChr,
- KNSmlDdfNAPIDDesc);
-
- MSmlDmDDFObject& nNAPLingerDDF = nNAPDefDDF.AddChildObjectL(KNSmlDdfNAPLinger); // Linger
- FillNodeInfoL( nNAPLingerDDF,
- aclTypesNoDelete,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EInt,
- KNSmlDdfNAPLingerDesc);
-
- MSmlDmDDFObject& nNAPStartpgDDF = nNAPDefDDF.AddChildObjectL(KNSmlDdfStartpg); // Startpg
- FillNodeInfoL( nNAPStartpgDDF,
- aclTypesNoDelete,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EChr,
- KNSmlDdfStartpgDesc);
-
- MSmlDmDDFObject& nBearerRootDDF = nNAPDefDDF.AddChildObjectL(KNSmlDdfBearer); // Bearer
- FillNodeInfoL( nBearerRootDDF,
- aclTypesAddGet,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::ENode,
- KNullDesC8);
-
- MSmlDmDDFObject& nBearerDDF = nBearerRootDDF.AddChildObjectGroupL(); // Bearer/<x>
- FillNodeInfoL( nBearerDDF,
- aclTypesAddGet,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::ENode,
- KNullDesC8);
-
- MSmlDmDDFObject& nBearerLDDF = nBearerDDF.AddChildObjectL(KNSmlDdfBearerL); // BearerL
- FillNodeInfoL( nBearerLDDF,
- aclTypesAddGet,
- MSmlDmDDFObject::EOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EChr,
- KNSmlDdfBearerLDesc);
-
- MSmlDmDDFObject& nDirectionDDF = nBearerDDF.AddChildObjectL(KNSmlDdfDirection); // Direction
- FillNodeInfoL( nDirectionDDF,
- aclTypesAddGet,
- MSmlDmDDFObject::EOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EChr,
- KNSmlDdfDirectionDesc);
-
- MSmlDmDDFObject& nNAPAddrDDF = nNAPDefDDF.AddChildObjectL(KNSmlDdfNAPAddr); // NAPAddr
- FillNodeInfoL( nNAPAddrDDF,
- aclTypesNoDelete,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EChr,
- KNSmlDdfNAPAddrDesc);
-
- MSmlDmDDFObject& nNAPAddrTyDDF = nNAPDefDDF.AddChildObjectL(KNSmlDdfNAPAddrTy); // NAPAddrTy
- FillNodeInfoL( nNAPAddrTyDDF,
- aclTypesNoDelete,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EChr,
- KNSmlDdfNAPAddrTyDesc);
-
- MSmlDmDDFObject& nDNSAddrRootDDF = nNAPDefDDF.AddChildObjectL(KNSmlDdfDNSAddr); // DNSAddr
- FillNodeInfoL( nDNSAddrRootDDF,
- aclTypesAddGet,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::ENode,
- KNullDesC8);
-
- MSmlDmDDFObject& nDNSAddrDDF = nDNSAddrRootDDF.AddChildObjectGroupL(); // DNSAddr/<x>
- FillNodeInfoL( nDNSAddrDDF,
- aclTypesAddGet,
- MSmlDmDDFObject::EOneOrMore,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::ENode,
- KNullDesC8);
-
- MSmlDmDDFObject& nDNSAddrLDDF = nDNSAddrDDF.AddChildObjectL(KNSmlDdfDNSAddrL); // DNSAddrL
- FillNodeInfoL( nDNSAddrLDDF,
- aclTypesNoDelete,
- MSmlDmDDFObject::EOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EChr,
- KNSmlDdfDNSAddrLDesc);
-
- MSmlDmDDFObject& nDNSAddrTyDDF = nDNSAddrDDF.AddChildObjectL(KNSmlDdfDNSAddrTy); // DNSAddrTy
- FillNodeInfoL( nDNSAddrTyDDF,
- aclTypesOnlyGet,
- MSmlDmDDFObject::EOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EChr,
- KNSmlDdfDNSAddrTyDesc);
-
- MSmlDmDDFObject& nDNSPriorityDDF = nDNSAddrDDF.AddChildObjectL(KNSmlDdfDNSPriority); // DNSAddrPriority
- FillNodeInfoL( nDNSPriorityDDF,
- aclTypesNoDelete,
- MSmlDmDDFObject::EOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EChr,
- KNSmlDdfDNSPriorityDesc);
-
- MSmlDmDDFObject& nNAPAuthInfRootDDF = nNAPDefDDF.AddChildObjectL(KNSmlDdfNAPAuthInf); // NAPAuthInf
- FillNodeInfoL( nNAPAuthInfRootDDF,
- aclTypesNoDelete,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::ENode,
- KNullDesC8);
-
- MSmlDmDDFObject& nNAPAuthInfDDF = nNAPAuthInfRootDDF.AddChildObjectGroupL(); // NAPAuthInf/<x>
- FillNodeInfoL( nNAPAuthInfDDF,
- aclTypesNoDelete,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::ENode,
- KNullDesC8);
-
- MSmlDmDDFObject& nAuthNameDDF = nNAPAuthInfDDF.AddChildObjectL(KNSmlDdfAuthName); // AuthName
- FillNodeInfoL( nAuthNameDDF,
- aclTypesNoDelete,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EChr,
- KNSmlDdfAuthNameDesc);
-
- MSmlDmDDFObject& nAuthSecrDDF = nNAPAuthInfDDF.AddChildObjectL(KNSmlDdfAuthSecr); // AuthSecr
- FillNodeInfoL( nAuthSecrDDF,
- aclTypesAddReplace,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EChr,
- KNSmlDdfAuthSecrDesc);
-
- MSmlDmDDFObject& nDefGWDDF = nNAPDefDDF.AddChildObjectL(KNSmlDdfDefGW); // DefGW
- FillNodeInfoL( nDefGWDDF,
- aclTypesNoDelete,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EChr,
- KNSmlDdfDefGWDesc);
-
- MSmlDmDDFObject& nNetworkMaskDDF = nNAPDefDDF.AddChildObjectL(KNSmlDdfNetworkMask); // NetworkMask
- FillNodeInfoL( nNetworkMaskDDF,
- aclTypesNoDelete,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EChr,
- KNSmlDdfNetworkMaskDesc);
-
- MSmlDmDDFObject& nUsePTxtLogDDF = nNAPDefDDF.AddChildObjectL(KNSmlDdfUsePTxtLog); // UsePTxtLog
- FillNodeInfoL( nUsePTxtLogDDF,
- aclTypesNoDelete,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EBool,
- KNSmlDdfUsePTxtLogDesc);
-
- MSmlDmDDFObject& nNetworksRootDDF = nNAPDefDDF.AddChildObjectL(KNSmlDdfNetworks); // Networks
- FillNodeInfoL( nNetworksRootDDF,
- aclTypesAddGet,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::ENode,
- KNullDesC8 );
-
- MSmlDmDDFObject& nNetworksDDF = nNetworksRootDDF.AddChildObjectGroupL(); // Networks/<x>
- FillNodeInfoL( nNetworksDDF,
- aclTypesAddGet,
- MSmlDmDDFObject::EOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::ENode,
- KNullDesC8);
-
- MSmlDmDDFObject& nNetworkNameDDF = nNetworksDDF.AddChildObjectL(KNSmlDdfNetworkName); // NetworkName
- FillNodeInfoL( nNetworkNameDDF,
- aclTypesNoDelete,
- MSmlDmDDFObject::EOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EChr,
- KNSmlDdfNetworkNameDesc);
-
- MSmlDmDDFObject& nNetworkIDDDF = nNetworksDDF.AddChildObjectL(KNSmlDdfNetworkID); // NetworkID
- FillNodeInfoL( nNetworkIDDDF,
- aclTypesNoDelete,
- MSmlDmDDFObject::EOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EInt,
- KNSmlDdfNetworkIDDesc);
-
- MSmlDmDDFObject& nPPPCompDDF = nNAPDefDDF.AddChildObjectL(KNSmlDdfPPPComp); // PPPComp
- FillNodeInfoL( nPPPCompDDF,
- aclTypesNoDelete,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EBool,
- KNSmlDdfPPPCompDesc);
-
- MSmlDmDDFObject& nGPRSPDPDDF = nNAPDefDDF.AddChildObjectL(KNSmlDdfGPRSPDP); // GPRSPDP
- FillNodeInfoL( nGPRSPDPDDF,
- aclTypesNoDelete,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EChr,
- KNSmlDdfGPRSPDPDesc);
-
- MSmlDmDDFObject& nIPAddrFromServerDDF = nNAPDefDDF.AddChildObjectL(KNSmlDdfIPAddrFromServer); // IPAddrFromServer
- FillNodeInfoL( nIPAddrFromServerDDF,
- aclTypesNoDelete,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EBool,
- KNSmlDdfIPAddrFromServerDesc);
-
- MSmlDmDDFObject& nIPAddrDDF = nNAPDefDDF.AddChildObjectL(KNSmlDdfIPAddr); // IPAddr
- FillNodeInfoL( nIPAddrDDF,
- aclTypesNoDelete,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EChr,
- KNSmlDdfIPAddrDesc);
-
- MSmlDmDDFObject& nDNSAddrFromServerDDF = nNAPDefDDF.AddChildObjectL(KNSmlDdfDNSAddrFromServer); // DNSAddrFromServer
- FillNodeInfoL( nDNSAddrFromServerDDF,
- aclTypesNoDelete,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EBool,
- KNSmlDdfDNSAddrFromServerDesc);
-
- MSmlDmDDFObject& nIPv6DNSAddrFromServerDDF = nNAPDefDDF.AddChildObjectL(KNSmlDdfIPv6DNSAddrFromServer); // IPv6DNSAddrFromServer
- FillNodeInfoL( nIPv6DNSAddrFromServerDDF,
- aclTypesNoDelete,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EBool,
- KNSmlDdfIPv6DNSAddrFromServerDesc);
-
- MSmlDmDDFObject& nIfNetworksDDF = nNAPDefDDF.AddChildObjectL(KNSmlDdfIfNetworks); // IfNetworks
- FillNodeInfoL( nIfNetworksDDF,
- aclTypesNoDelete,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EChr,
- KNSmlDdfIfNetworksDesc);
-
- MSmlDmDDFObject& nIAPServiceDDF = nNAPDefDDF.AddChildObjectL(KNSmlDdfIAPService); // IAPService
- FillNodeInfoL( nIAPServiceDDF,
- aclTypesOnlyGet,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EChr,
- KNSmlDdfIAPServiceDesc);
-
-
-
- MSmlDmDDFObject& nIAPSeamlessnessDDF = nNAPDefDDF.AddChildObjectL(KNSmlDdfIAPSeamlessness); // IAPService
- FillNodeInfoL( nIAPSeamlessnessDDF,
- aclTypesNoDelete,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EInt,
- KNSmlDdfIAPSeamlessnessDesc);
- MSmlDmDDFObject& nIAPMetaDataDDF = nNAPDefDDF.AddChildObjectL(KNSmlDdfIAPMetaData); // IAPService
- FillNodeInfoL( nIAPMetaDataDDF,
- aclTypesNoDelete,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EInt,
- KNSmlDdfIAPMetaDataDesc);
-
- if ( iWlanSupported )
- {
- iWlanAdapter->DDFStructureL( nNAPDefDDF ); // Adds WLAN fields to DDF
- }
-
-//
-// Px-node fields
-//
- MSmlDmDDFObject& nPxNameDDF = nPxDDF.AddChildObjectL(KNSmlDdfPxName); // Name
- FillNodeInfoL( nPxNameDDF,
- aclTypesNoDelete,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EChr,
- KNSmlDdfPxDesc);
-
- MSmlDmDDFObject& nPxIdDDF = nPxDDF.AddChildObjectL(KNSmlDdfPxId); // PxId
- FillNodeInfoL( nPxIdDDF,
- aclTypesOnlyGet,
- MSmlDmDDFObject::EOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EChr,
- KNSmlDdfPxIdDesc);
-
- MSmlDmDDFObject& nDomainRootDDF = nPxDDF.AddChildObjectL(KNSmlDdfDomain); // Domain
- FillNodeInfoL( nDomainRootDDF,
- aclTypesAddGet,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::ENode,
- KNSmlDdfDomainDesc);
-
- MSmlDmDDFObject& nDomainDDF = nDomainRootDDF.AddChildObjectGroupL(); // Domain<x>
- FillNodeInfoL( nDomainDDF,
- aclTypesAddGet,
- MSmlDmDDFObject::EOneOrMore,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::ENode,
- KNullDesC8);
-
- MSmlDmDDFObject& nDomainLDDF = nDomainDDF.AddChildObjectL(KNSmlDdfDomainL); // DomainL (Get)
- FillNodeInfoL( nDomainLDDF,
- aclTypesNoDelete,
- MSmlDmDDFObject::EOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EChr,
- KNSmlDdfDomainLDesc);
-
- MSmlDmDDFObject& nPxPWDDF = nPxDDF.AddChildObjectL(KNSmlDdfPxPW); // PxPW
- FillNodeInfoL( nPxPWDDF,
- aclTypesNoDelete,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EChr,
- KNSmlDdfPxPWDesc);
-
- MSmlDmDDFObject& nPxAddrDDF = nPxDDF.AddChildObjectL(KNSmlDdfPxAddr); // PxAddr
- FillNodeInfoL( nPxAddrDDF,
- aclTypesNoDelete,
- MSmlDmDDFObject::EOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EChr,
- KNSmlDdfPxAddrDesc);
-
- MSmlDmDDFObject& nPortRootDDF = nPxDDF.AddChildObjectL(KNSmlDdfPort); // Port
- FillNodeInfoL( nPortRootDDF,
- aclTypesAddGet,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::ENode,
- KNSmlDdfPortDesc);
-
- MSmlDmDDFObject& nPortDDF = nPortRootDDF.AddChildObjectGroupL(); // Port<x>
- FillNodeInfoL( nPortDDF,
- aclTypesAddGet,
- MSmlDmDDFObject::EOneOrMore,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::ENode,
- KNullDesC8);
-
- MSmlDmDDFObject& nPortNbrDDF = nPortDDF.AddChildObjectL(KNSmlDdfPortNbr); // PortNbr (Get)
- FillNodeInfoL( nPortNbrDDF,
- aclTypesNoDelete,
- MSmlDmDDFObject::EOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EInt,
- KNSmlDdfPortNbrDesc);
-
- MSmlDmDDFObject& nToNAPIDRootDDF = nPxDDF.AddChildObjectL(KNSmlDdfToNAPID); // ToNAPID
- FillNodeInfoL( nToNAPIDRootDDF,
- aclTypesOnlyGet,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::ENode,
- KNSmlDdfToNAPIDDesc);
-
- MSmlDmDDFObject& nToNAPIDDDF = nToNAPIDRootDDF.AddChildObjectGroupL(); // ToNAPID<x>
- FillNodeInfoL( nToNAPIDDDF,
- aclTypesOnlyGet,
- MSmlDmDDFObject::EOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::ENode,
- KNullDesC8);
-
- MSmlDmDDFObject& nToNAPIDLDDF = nToNAPIDDDF.AddChildObjectL(KNSmlDdfToNAPIDL); // ToNAPIDL (Get)
- FillNodeInfoL( nToNAPIDLDDF,
- aclTypesOnlyGet,
- MSmlDmDDFObject::EOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EChr,
- KNSmlDdfToNAPIDLDesc);
-
- MSmlDmDDFObject& nPxStartpgDDF = nPxDDF.AddChildObjectL(KNSmlDdfStartpg); // Startpg
- FillNodeInfoL( nPxStartpgDDF,
- aclTypesNoDelete,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EChr,
- KNSmlDdfStartpgDesc);
-
- MSmlDmDDFObject& nPxAuthInfRootDDF = nPxDDF.AddChildObjectL(KNSmlDdfPxAuthInf); // PxAuthInf
- FillNodeInfoL( nPxAuthInfRootDDF,
- aclTypesAddGet,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::ENode,
- KNullDesC8);
-
- MSmlDmDDFObject& nPxAuthInfDDF = nPxAuthInfRootDDF.AddChildObjectGroupL(); // PxAuthInf/<x>
- FillNodeInfoL( nPxAuthInfDDF,
- aclTypesAddGet,
- MSmlDmDDFObject::EOneOrMore,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::ENode,
- KNullDesC8);
-
- MSmlDmDDFObject& nPxAuthIdDDF = nPxAuthInfDDF.AddChildObjectL(KNSmlDdfPxAuthId); // PxAuthId
- FillNodeInfoL( nPxAuthIdDDF,
- aclTypesNoDelete,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EChr,
- KNSmlDdfPxAuthIdDesc);
-
- MSmlDmDDFObject& nPxAuthPWDDF = nPxAuthInfDDF.AddChildObjectL(KNSmlDdfPxAuthPW); // PxAuthPW
- FillNodeInfoL( nPxAuthPWDDF,
- aclTypesAddReplace,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EChr,
- KNSmlDdfPxAuthPWDesc);
-
- MSmlDmDDFObject& nNoPxForRootDDF = nPxDDF.AddChildObjectL(KNSmlDdfNoPxFor); // NoPxFor
- FillNodeInfoL( nNoPxForRootDDF,
- aclTypesAddGet,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::ENode,
- KNSmlDdfNoPxForDesc);
-
- MSmlDmDDFObject& nNoPxForDDF = nNoPxForRootDDF.AddChildObjectGroupL(); // NoPxFor<x>
- FillNodeInfoL( nNoPxForDDF,
- aclTypesAddGet,
- MSmlDmDDFObject::EOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::ENode,
- KNullDesC8);
-
- MSmlDmDDFObject& nNoPxForLDDF = nNoPxForDDF.AddChildObjectL(KNSmlDdfNoPxForL); // NoPxForL (Get)
- FillNodeInfoL( nNoPxForLDDF,
- aclTypesNoDelete,
- MSmlDmDDFObject::EOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EChr,
- KNSmlDdfNoPxForLDesc);
-
-
- _DBG_FILE("CNSmlInternetAdapter::DDFStructureL(): end");
- }
-
-//------------------------------------------------------------------------------
-// CNSmlInternetAdapter::LingerValueL()
-//------------------------------------------------------------------------------
-
-void CNSmlInternetAdapter::LingerValueL( const TDesC8& aObject )
-{
-
- TBuf<100> desObj;
- CnvUtfConverter::ConvertToUnicodeFromUtf8(desObj, aObject);
- TInt err(KErrNone);
- //const TDesC& value = desObj;
- if(!Notalpha(desObj))
- {
- TLex lex( desObj );
- TUint Linger = 0;
- TInt lingerint;
- err = lex.Val( Linger, EDecimal );
- if( err == KErrNone )
- {
- lingerint = Linger;
- if( lingerint >= 0 )
- {
- iLingerValue = lingerint;
- iLingerFlag = EFalse;
- }
- }
- }
-}
-
-
-// -----------------------------------------------------------------------------
-// CWPAPNapdef::UdateligerValueL
-//
-// -----------------------------------------------------------------------------
-//
-TBool CNSmlInternetAdapter::Notalpha(const TDesC& aValue)
-{
- TBool NotAlpha = EFalse;
- TChar character;
- for(TInt i = 0 ; i < aValue.Length(); i++)
- {
- character = aValue[i];
- NotAlpha = character.IsAlpha();
- if(NotAlpha)
- break;
- }
-
- return NotAlpha;
-}
-// CNSmlInternetAdapter::AddLeafObjectL()
-//------------------------------------------------------------------------------
-void CNSmlInternetAdapter::AddLeafObjectL( const TDesC8& aURI,
- const TDesC8& aParentLUID,
- const TDesC8& aObject,
- const TDesC8& aType,
- const TInt aStatusRef )
- {
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): begin");
- DBG_ARGS8(_S8("AP:add aURI AddLeafObjectL - %S - %S"), &aURI, &aParentLUID);
- DBG_ARGS8(_S8("AP:Object %S"), &aObject);
-
- TInt parentLUID(0);
- if(aParentLUID.Length()<=0 )
- {
- if (aURI.Match(_L8("AP/*/Px/*" ))!= KErrNotFound)
- {
- if(!GetProxyIdL(aURI))
- {
- _DBG_FILE("CNSmlInternetAdapter::FetchLeafObjectL(internal)()(): ENotFound end");
- return;
- }
- }
- if(!iLUID)
- iLUID = IntLUID(aParentLUID);
- parentLUID = GetAPIdFromURIL(aURI);
- if( parentLUID == 0 )
- {
- if( IsAPUriFormatMatchPredefined(aURI) )
- {
- iLUID = ConstructTreeL(aURI);
- parentLUID = GetAPIdFromURIL(aURI);
- }
- }
-
- }
- else
- {
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): PParentLUID set to parentLUID");
- parentLUID = IntLUID(aParentLUID);
- }
-// Always buffer DNSAddr/<X>/*
- if( ( parentLUID ==0 ||
- aURI.Find(KNSmlDdfDNSPriority ) >= 0 ||
- aURI.Find(KNSmlDdfDNSAddrL ) >= 0 ) && !iExecutingBuffer )
- // Update as add
- {
- iLeafType = EDMUnset; // Default for leaf handling
- AddLeafBufferL(aURI,aParentLUID,aObject,aType,aStatusRef);
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): end");
- return;
- }
-
- if(parentLUID == KNSmlIncompleteAP)
- {
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): EError end");
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EError);
- return;
- }
-
-//check if Stale and add leaf buffer
- if (parentLUID > 0 && !iExecutingBuffer )
- {
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): parentLUID > 0 && !iExecutingBuffer");
- TUint32 apID = GetAPIdFromURIL(aURI);
- if(!APExistsL(apID))
- {
- AddLeafBufferL(aURI,aParentLUID,aObject,aType,aStatusRef);
- iStaleMapUpdate=ETrue;
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): end");
- return;
- }
- }
- TInt pushed = 0;
-//
-// Check which field going to be handled
-//
- SetField(aURI);
- if((iField->Compare(KNSmlDdfNAPLinger) == 0))
- {
- TUint32 apID = GetAPIdFromURIL(aURI);
- if( aObject.Size()==0 )
- {
- DeleteLingerL( apID );
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EOk);
- return;
- }
- LingerValueL( aObject );
-
- if ( !iLingerFlag )
- {
- iLingerFlag = ETrue;
- TRAPD (error, AddLingerL( apID , iLingerValue ));
- if( error == !KErrNone)
- {
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EError);
- }
- else
- {
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EOk);
- }
- }
- else
- {
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EError);
- }
- return;
- }
-
-//
-// On leaf handling and add, must be checked that value not set before
-//
- if (iLeafType != EDMUpdate &&
- iLeafType != EDMDelete )
- {
- iLeafType = EDMAdd;
- }
- if (iStaleMapUpdate)
- {
- iLeafType = EDMAdd;
- }
-
- TPtrC qTable = TPtrC(KNullDesC);
- TPtrC qColumn = TPtrC(KNullDesC);
- TPtrC qDB = TPtrC(COMMDB_ID);
-
- if(aURI.Find(KNSmlDdfPortNbr) >= 0)
- {
- IsWapPort(aObject);
- }
-//
-// Get Database field type
-//
-
- if(parentLUID > 0)
- {
- // Get IAP nbr for servicetype
- TUint32 iapIDs = GetAPIdFromURIL(aURI);
-
- DBG_ARGS8(_S8("CNSmlInternetAdapter::AddLeafObjectL(): checkluid is %d and iapId %d "),parentLUID, iapIDs );
-
- // IAP-table search serviceType (=Bearer)
- CCommsDbTableView* iapViews = iDatabase->OpenViewMatchingUintLC(TPtrC(IAP),
- TPtrC(COMMDB_ID),
- iapIDs);
-
- TBuf<KCommsDbSvrMaxFieldLength> serviceType;
-
- TInt errorCode = iapViews->GotoFirstRecord();
-
- // Read iapService from (IAP)
- if ( errorCode == KErrNone )
- {
- iapViews->ReadTextL(TPtrC(IAP_SERVICE_TYPE), serviceType);
- CleanupStack::PopAndDestroy(); // iapViews
- qTable.Set(serviceType);
- }
- else
- {
- CleanupStack::PopAndDestroy(); // iapViews
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::ENotFound);
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): ENotFound 1 end");
- return;
- }
- }
-
- if ( iWlanSupported )
- {
- TBool wLANfield = IsWLANfield(aURI);
- if( wLANfield )
- {
- iWlanAdapter->AddLeafObjectL( aURI, aParentLUID, aObject, aType, aStatusRef );
- CleanupStack::PopAndDestroy(pushed);
- return;
- }
- }
-
- TInt fType = GetAPFieldType( aURI );
- if (fType == EWrong) // Error if leaf not supported
- {
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): EError end");
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EError);
- return;
- }
-
- TBool fieldOK = GetAPField(qTable,qColumn);
- if(!fieldOK ) // OK if column for table not supported
- {
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): EOk end");
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EOk);
- return;
- }
-
- iISPId = parentLUID;
- if(aURI.Match(_L8("AP/*/Px/*/*" ))!= KErrNotFound)
- {
- if(iProxyId == 0)
- iProxyId = parentLUID;
- }
-
- if (( fType == CNSmlInternetAdapter::EStr ) ||
- ( fType == CNSmlInternetAdapter::EInt && aURI.Find(KNSmlDdfGPRSPDP) >= 0) || // KNSmlDdfNAPAddrTy
- ( fType == CNSmlInternetAdapter::EInt && aURI.Find(KNSmlDdfNAPAddrTy) >= 0)) // KNSmlDdfNAPAddrTy
- { // Name + NAPAddr + DNSAddr + Networks/*/Name
-
- if(aURI.Match(_L8("AP/*/Networks/*/Name"))!= KErrNotFound)
- {
- TUint32 checkLUID = 0;
- TUint32 iapID1 = GetAPIdFromURIL(aURI);
-
-
- // IAP-table NetworkId Update
- CCommsDbTableView* iapUpdate = iDatabase->OpenViewMatchingUintLC(TPtrC(IAP),TPtrC(COMMDB_ID),iapID1);
- TInt iapExists = iapUpdate->GotoFirstRecord();
-
- if (iapExists == KErrNone)
- {
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL, Get network id");
- iapUpdate->ReadUintL(TPtrC(IAP_NETWORK),checkLUID);
- DBG_ARGS8(_S8("CNSmlInternetAdapter::AddLeafObjectL(): networks is %d"),checkLUID);
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL, IAP exists");
- if( checkLUID >0 )
- {
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL, network id > 0");
- //check if network exist in NETWORK TABLE
- CCommsDbTableView* checknetView;
- checknetView = iDatabase->OpenViewMatchingUintLC(TPtrC(NETWORK),TPtrC(COMMDB_ID),checkLUID);
- TInt error = checknetView->GotoFirstRecord();
- if (error == KErrNotFound)
- {
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL: Network does not exist, create it");
- AddNetworkL(checkLUID,aObject);
- if( checkLUID > 0 )
- {
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL: network generation ok");
- DBG_ARGS8(_S8("CNSmlInternetAdapter::AddLeafObjectL(): network id is %d"),checkLUID);
- //iapUpdate->WriteUintL(TPtrC(IAP_NETWORK),checkLUID);
- }
- else
- {
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): network generation failed");
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EError);
- return;
- }
- }
- // Network was found, update the name to the given name.
- else
- {
- if(checknetView->UpdateRecord()==KErrNone)
- {
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL: network found, update name");
- checknetView->WriteTextL(TPtrC(COMMDB_NAME), ConvertTo16LC(aObject));
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL: network name updated");
- CleanupStack::PopAndDestroy(); //ConvertTo16LC
- }
- // writing failed for some reason
- else
- {
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): network generation failed");
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EError);
- return;
- }
- }
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL: network ok");
- CleanupStack::PopAndDestroy(); //checknetView
- }
- }
- // IAP does not exist yet, create network, network id will be updated later using checkLUID
- else
- {
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL: network does not exist, creation 2");
- AddNetworkL(checkLUID,aObject);
- DBG_ARGS8(_S8("CNSmlInternetAdapter::AddLeafObjectL(): network id is %d"),checkLUID);
- }
- CleanupStack::PopAndDestroy(); // iapUpdate
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL: network addition handled");
-
-
- // IAP-table NetworkId Update
- CCommsDbTableView* iapView = iDatabase->OpenViewMatchingUintLC(TPtrC(IAP),
- TPtrC(COMMDB_ID),
- iapID1);
- TInt iapFound = iapView->GotoFirstRecord();
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL: network id update begin");
- if(iapFound==KErrNone)
- {
- TBool iapReLock = EFalse;
- if(FeatureManager::FeatureSupported(KFeatureIdSapPolicyManagement))
- {
- TBool apEnforce=EFalse;
- TRAPD(eError,apEnforce=CheckEnforcementL())
- DBG_ARGS8(_S8("CNSmlInternetAdapter::AddLeafObjectL(): EError %d , APEnforcement is %d"),eError,apEnforce);
- if(eError==KErrNone && apEnforce)
- {
- DoLockIAPTablesL(EFalse);
- ((CCommsDbProtectTableView*)iapView)->UnprotectRecord();
- iWAPRelock = ETrue;
- }
- }
-
- if(IsIAPRecordLockedL(iapID1))
- {
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): apaccesspoint record is LOCKED");
- TInt reclockerr = ((CCommsDbProtectTableView*)iapView)->UnprotectRecord();
- DBG_ARGS8(_S8("CNSmlInternetAdapter::AddLeafObjectL ,UnProtecting IAPAccessRecord returned code = %d"),reclockerr);
- if(reclockerr==KErrNone)
- iapReLock = ETrue;
- }
- else
- {
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): apaccesspoint record is not write protected");
- }
-
- if(iapView->UpdateRecord()==KErrNone)
- {
- iapView->WriteUintL(TPtrC(IAP_NETWORK), checkLUID);
- DBG_ARGS8(_S8("CNSmlInternetAdapter::AddLeafObject(): checkLUID is %d"),checkLUID);
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObject, IAP_NETWORK set to checkLUID ");
- iapView->PutRecordChanges();
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObject, iap found, set iNetworkId to checkLUID");
- iNetworkId = checkLUID;
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EOk);
- }
- else
- {
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EError);
- }
-
- if(FeatureManager::FeatureSupported(KFeatureIdSapPolicyManagement))
- {
- if(iWAPRelock)
- {
- DoLockIAPTablesL(ETrue);
- ((CCommsDbProtectTableView*)iapView)->ProtectRecord();
- iWAPRelock = EFalse;
- }
- }
- if(iapReLock)
- {
- TInt reclockerr = DoProtectIAPRecordL(iapID1,ETrue);
- DBG_ARGS8(_S8("CNSmlInternetAdapter::AddLeafObjectL ,Protecting IAPAccessRecord returned code = %d"),reclockerr);
- if(reclockerr==KErrNone)
- iapReLock = EFalse;
- }
- }
- else if (iapFound==KErrNotFound)
- {
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObject, iap not found, set iNetworkId");
- DBG_ARGS8(_S8("CNSmlInternetAdapter::AddLeafObject(): checkLUID is %d"),checkLUID);
- iNetworkId = checkLUID;
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EOk);
- }
- else
- {
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObject, iap found");
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EError);
- }
-
- CleanupStack::PopAndDestroy(); // iapView
- CleanupStack::PopAndDestroy(pushed);
-
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): OK end");
- return;
- }
-
- else if(((aURI.Match(_L8("AP/*/Px/*/Name")) != KErrNotFound || // ProxyName
- aURI.Match(_L8("AP/*/Px/*/PxAddr")) != KErrNotFound || // ProxyAddr
- aURI.Match(_L8("AP/*/Px/*/DomainL")) != KErrNotFound ) // DomainL (PROXY_PROTOCOL_NAME)
- && iLeafType == EDMUpdate) ||
- ((aURI.Match(_L8("AP/*/Px/*/PxAddr")) != KErrNotFound
- || aURI.Match(_L8("AP/*/Px/*/DomainL")) != KErrNotFound )
- && iLeafType == EDMAdd))
- {
- CCommsDbTableView* tableView = iDatabase->OpenViewMatchingUintLC(TPtrC(PROXIES),
- TPtrC(COMMDB_ID),
- iProxyId);
- TBool proxyReLock = EFalse;
- if(IsProxyRecordLockedL(iProxyId))
- {
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): proxy record is LOCKED");
- TInt reclockerr = ((CCommsDbProtectTableView*)tableView)->UnprotectRecord();
- DBG_ARGS8(_S8("CNSmlInternetAdapter::AddLeafObjectL ,UnProtecting ProxyRecord returned code = %d"),reclockerr);
- if(reclockerr==KErrNone)
- proxyReLock = ETrue;
- }
- else
- {
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): apaccesspoint record is not write protected");
- }
-
- TInt errorCode = tableView->GotoFirstRecord();
- if ( errorCode == KErrNone )
- {
- if (tableView->UpdateRecord() == KErrNone )
- {
- if (aURI.Match(_L8("AP/*/Px/*/PxAddr")) != KErrNotFound )
- {
- tableView->WriteLongTextL(TPtrC(PROXY_SERVER_NAME), ConvertTo16LC(aObject));
- pushed++;
- }
- else if (aURI.Match(_L8("AP/*/Px/*/DomainL")) != KErrNotFound )
- {
- // Accepted values are (http, https, ftp, ftps)
- _LIT8(KProxyProtocol,"http, https, ftp, ftps");
-
- TInt protocolFound = 0;
- if(aObject.Length() > 0)
- {
- protocolFound = KProxyProtocol().Find(aObject);
- }
- if( protocolFound == KErrNotFound && aObject.Length() > 0)
- {
- CleanupStack::PopAndDestroy(); // tableView
- CleanupStack::PopAndDestroy(pushed);
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EError);
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): EError end");
- return;
- }
- if(aObject.Length() == 0)
- {
- tableView->SetNullL(TPtrC(PROXY_PROTOCOL_NAME));
- }
- else
- {
- tableView->WriteTextL(TPtrC(PROXY_PROTOCOL_NAME), ConvertTo16LC(aObject));
- CleanupStack::PopAndDestroy(); //ConvertTo16LC
- }
- }
- tableView->PutRecordChanges();
- CleanupStack::PopAndDestroy(); // tableView
- }
- else
- {
- CleanupStack::PopAndDestroy(); // tableView
- CleanupStack::PopAndDestroy(pushed);
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EError);
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): EError end");
- return;
- }
- }
- else
- {
- CleanupStack::PopAndDestroy(); // tableView
- CleanupStack::PopAndDestroy(pushed);
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::ENotFound);
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): ENotFound end");
- return;
- }
- if(proxyReLock)
- {
- TInt reclockerr = DoProtectProxyRecordL(iProxyId,ETrue);
- DBG_ARGS8(_S8("CNSmlInternetAdapter::AddLeafObjectL ,UnProtecting Proxy returned code = %d"),reclockerr);
- if(reclockerr==KErrNone)
- proxyReLock = EFalse;
- }
- CleanupStack::PopAndDestroy(pushed);
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EOk);
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): EOk end");
- return;
- }
-
- if (iLeafType == EDMUpdate ||
- (iLeafType == EDMAdd &&
- (aURI.Find(KNSmlDdfNAPName) >= 0 &&
- aURI.Find(KNSmlDdfNAPDef) >= 0) ||
- aURI.Find(KNSmlDdfNAPAddr) >= 0 ||
- aURI.Find(KNSmlDdfGPRSPDP) >= 0 ||
- aURI.Find(KNSmlDdfDNSAddrL) >= 0 ||
- aURI.Find(KNSmlDdfAuthSecr) >= 0 ||
- aURI.Find(KNSmlDdfDefGW) >= 0 ||
- aURI.Find(KNSmlDdfNetworkMask) >= 0 ||
- aURI.Find(KNSmlDdfIPAddr) >= 0 ||
- aURI.Find(KNSmlDdfNAPAddrTy)>= 0 ))
- {
- // Get IAP nbr for servicetype
-
- TUint32 iapID2 = GetAPIdFromURIL(aURI);
-
- // IAP-table search serviceType (=Bearer)
- CCommsDbTableView* serviceView = iDatabase->OpenViewMatchingUintLC(TPtrC(IAP),
- qDB,
- iapID2);
-
- TBuf<KCommsDbSvrMaxFieldLength> serviceType;
-
- TInt errorCode = serviceView->GotoFirstRecord();
-
- // Read serviceType from (IAP)
- if ( errorCode == KErrNone )
- {
- serviceView->ReadTextL(TPtrC(IAP_SERVICE_TYPE), serviceType);
- serviceView->ReadTextL(TPtrC(IAP_SERVICE_TYPE), iProxyServiceType); // for locking
-
- serviceView->ReadUintL(TPtrC(IAP_SERVICE), iISPId);
-
- CleanupStack::PopAndDestroy(); // serviceView
- }
- else
- {
- CleanupStack::PopAndDestroy(); // serviceView
- CleanupStack::PopAndDestroy(pushed);
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::ENotFound);
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): ENotFound end");
- return;
- }
- qTable.Set(serviceType);
-
- CCommsDbTableView* tableView = iDatabase->OpenViewMatchingUintLC(serviceType,
- qDB,
- iISPId);
-
- errorCode = tableView->GotoFirstRecord();
-
- if ( errorCode == KErrNone )
- {
- TBool serviceReLock = EFalse;
- if(IsServiceRecordLockedL(iISPId))
- {
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): apaccesspoint record is LOCKED");
- TInt reclockerr = ( (CCommsDbProtectTableView*) tableView )->UnprotectRecord();
- DBG_ARGS8(_S8("CNSmlInternetAdapter::AddLeafObjectL ,UnProtecting WAPAccessRecord returned code = %d"),reclockerr);
- if(reclockerr==KErrNone)
- serviceReLock = ETrue;
- }
- else
- {
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): apaccesspoint record is not write protected");
- }
-
- if(tableView->UpdateRecord()!=KErrNone)
- {
- //database locked
- CleanupStack::PopAndDestroy(); // tableView
- CleanupStack::PopAndDestroy(pushed);
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EError);
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): Update failed end");
- return;
- }
- if ( fType == CNSmlInternetAdapter::EInt)
- {
- TUint32 object32;
- if (aURI.Find(KNSmlDdfGPRSPDP) >= 0 || /* GPRSPDP handling */
- aURI.Find(KNSmlDdfNAPAddrTy) >= 0) /* NAPAddrTy handling */
- {
- if(aObject.MatchF(KNSmlDmApValIpv4) != KErrNotFound )
- {
- object32 = RPacketContext::EPdpTypeIPv4;
- }
- else if (aObject.MatchF(KNSmlDmApValIpv6) != KErrNotFound )
- {
- object32 = RPacketContext::EPdpTypeIPv6;
- }
- else if (aObject.MatchF(_L8("PPP")) != KErrNotFound )
- {
- object32 = RPacketContext::EPdpTypePPP;
- }
- else
- { // NotValid value
- tableView->CancelRecordChanges();
- CleanupStack::PopAndDestroy(); // tableView
- CleanupStack::PopAndDestroy(pushed);
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EError);
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): Update failed end");
- return;
- }
- }
- else
- {
- object32 = GetIntObject8(aObject);
- }
-
- tableView->WriteUintL(qColumn, object32);
- }
- else
- {
- // This should be executed only when executing buffered cmds
- if(aURI.Find(KNSmlDdfDNSAddrL) >= 0 )
- // DNS address
- {
- TPtrC8 parentUri = RemoveLastSeg(aURI);
- TInt dnsPri = 0;
- TBool found = InitializeDNSParamsFromBuffL( parentUri, dnsPri );
- UriUtils::TUriHostType dnsAddrTy = UriUtils::HostType(aObject);
-
- if (!found )
- {
- UriUtils::TUriHostType dnsLuidType;
- TInt dnsLuidPriority;
- if ( LuidToDns(dnsLuidType, dnsLuidPriority, parentLUID ) != KErrNone )
- {
- if ( dnsAddrTy == UriUtils::EIPv4Host )
- {
- iDnsIpv4Pri = (iDnsIpv4Pri % 2 ) + 1;
- dnsPri = iDnsIpv4Pri;
- }
- else if ( dnsAddrTy == UriUtils::EIPv6Host )
- {
- iDnsIpv6Pri = (iDnsIpv6Pri % 2 ) + 1;
- dnsPri = iDnsIpv6Pri;
- }
- }
- else
- {
- // update
- dnsPri = dnsLuidPriority;
- }
-
- }
- if ( dnsPri != 0 )
- {
- if ( dnsPri == 1)
- {
- if ( dnsAddrTy == UriUtils::EIPv4Host )
- {
- qColumn.Set( TPtrC(SERVICE_IP_NAME_SERVER1 ));
- }
- else
- {
- qColumn.Set( TPtrC(SERVICE_IP6_NAME_SERVER1 ));
-
- }
- }
- else
- {
- if ( dnsAddrTy == UriUtils::EIPv4Host )
- {
- qColumn.Set( TPtrC(SERVICE_IP_NAME_SERVER2 ));
- }
- else
- {
- qColumn.Set( TPtrC(SERVICE_IP6_NAME_SERVER2 ));
-
- }
- }
- tableView->WriteTextL(qColumn, ConvertTo16LC(aObject));
- pushed++;
- TInt dnsLuid = DnsToLuid( dnsAddrTy, dnsPri);
- iCallBack->SetMappingL(parentUri, SetIntObjectLC( dnsLuid ));
- pushed++;
- }
- else
- {
- CleanupStack::PopAndDestroy(); // tableView
- CleanupStack::PopAndDestroy(pushed);
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EError);
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): Update failed end");
- return;
- }
-
- }
-
- else
- {
- if(( serviceType == TPtrC( LAN_SERVICE ) ) && (iField->Compare(KNSmlDdfNAPAddr) == 0 ) )
- {
- if(!IsValidIPv4AddressL(aObject))
- {
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EInvalidObject);
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): EInvalidObject end");
- CleanupStack::PopAndDestroy(); // tableView
- CleanupStack::PopAndDestroy(pushed);
- return;
- }
-
- }
- tableView->WriteTextL(qColumn, ConvertTo16LC(aObject));
- pushed++;
-
- }
- // DNSAddrL <> 0.0.0.0 or empty =>
- if(aURI.Find(KNSmlDdfDNSAddrL) >= 0 ) /* DNS serviceFlag handling */
- {
- if( aObject.Match(_L8("fec0:0:0:ffff::1")) == KErrNotFound ||
- aObject.Match(_L8("fec0:0:0:ffff::2")) == KErrNotFound )
- {
- tableView->WriteBoolL(TPtrC(SERVICE_IP6_DNS_ADDR_FROM_SERVER),EFalse);
- }
- else
- {
- tableView->WriteBoolL(TPtrC(SERVICE_IP6_DNS_ADDR_FROM_SERVER),ETrue);
- }
-
-
- }
- }
- TInt putOk = tableView->PutRecordChanges();
- if ( putOk != KErrNone )
- {
- TInt retry = KBeginTransRetryCount;
- while ( retry > 0 && putOk == KErrLocked )
- {
- User::After(KBeginTransRetryDelay);
- putOk = tableView->PutRecordChanges();
- retry--;
- }
- if(putOk != KErrNone)
- {
- CleanupStack::PopAndDestroy(); // tableView
- CleanupStack::PopAndDestroy(pushed);
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EError);
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): Update failed end");
- DBG_ARGS(_S16("CNSmlInternetAdapter::AddLeafObjectL(): Update failed with Code %d"),putOk);
- return;
- }
- }
- if (aURI.Find(KNSmlDdfNAPName) >= 0 &&
- aURI.Find(KNSmlDdfAuthName) <= 0 ) /* NAPName */
- {
- if(UpdateIAPnameL(iapID2,aObject) != KErrNone )
- {
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EError);
- }
- }
- if(serviceReLock)
- {
- TInt reclockerr = DoProtectServiceRecordL(iISPId,ETrue);
- DBG_ARGS8(_S8("CNSmlInternetAdapter::AddLeafObjectL ,UnProtecting WAPAccessRecord returned code = %d"),reclockerr);
- if(reclockerr==KErrNone)
- serviceReLock = EFalse;
- }
- }
- else
- {
- CleanupStack::PopAndDestroy(); // tableView
- CleanupStack::PopAndDestroy(pushed);
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::ENotFound);
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): ENotFound end");
- return;
- }
-
- CleanupStack::PopAndDestroy(); // tableView
- }
-
- }
- else if (fType == CNSmlInternetAdapter::EBool)
- { // UseCB + UseIPSec
- TUint32 iapID3 = GetAPIdFromURIL(aURI);
-
- // IAP-table search serviceType (=Bearer)
- CCommsDbTableView* boolView = iDatabase->OpenViewMatchingUintLC(TPtrC(IAP),
- TPtrC(COMMDB_ID),
- iapID3);
- TInt errorCode = boolView->GotoFirstRecord();
-
- TBuf<KCommsDbSvrMaxFieldLength> serviceType;
-
- errorCode = boolView->GotoFirstRecord();
-
- // Read serviceType from (IAP)
- if ( errorCode == KErrNone )
- {
- boolView->ReadTextL(TPtrC(IAP_SERVICE_TYPE), serviceType);
- boolView->ReadTextL(TPtrC(IAP_SERVICE_TYPE), iProxyServiceType); // for locking
- boolView->ReadUintL(TPtrC(IAP_SERVICE), iISPId);
- }
- else
- {
- CleanupStack::PopAndDestroy(); // boolView
- CleanupStack::PopAndDestroy(pushed);
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::ENotFound);
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): ENotFound end");
- return;
- }
-
- CleanupStack::PopAndDestroy(); // boolView
-
- qTable.Set(serviceType);
- TBool ret = GetAPField(qTable,qColumn);
- if(!ret)
- {
- CleanupStack::PopAndDestroy(pushed);
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EInvalidObject);
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): EInvalidObject end");
- return;
- }
-
-
- CCommsDbTableView* tableView = iDatabase->OpenViewMatchingUintLC(serviceType,
- TPtrC(COMMDB_ID),
- iISPId);
-
- errorCode = tableView->GotoFirstRecord();
-
- if ( errorCode == KErrNone )
- {
- TBool serviceReLock = EFalse;
- if(IsServiceRecordLockedL(iISPId))
- {
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): apaccesspoint record is LOCKED");
- TInt reclockerr = ( (CCommsDbProtectTableView*) tableView )->UnprotectRecord();
- DBG_ARGS8(_S8("CNSmlInternetAdapter::AddLeafObjectL ,UnProtecting WAPAccessRecord returned code = %d"),reclockerr);
- if(reclockerr==KErrNone)
- serviceReLock = ETrue;
- }
- else
- {
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): apaccesspoint record is not write protected");
- }
- if(tableView->UpdateRecord()!=KErrNone)
- {
- //database locked
- CleanupStack::PopAndDestroy(); // tableView
- CleanupStack::PopAndDestroy(pushed);
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EError);
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): Update failed end");
- return;
- }
- TBool tObject = EFalse;
-
- if(aObject.CompareF(KNSmlDmApValTrue) == 0)
- {
- tObject = ETrue;
- }
- if(aURI.Right(10).Compare(KNSmlDdfUsePTxtLog)==0)
- {
- tObject=!tObject;
- }
- if( qColumn.Match(TPtrC(SERVICE_IP_ADDR_FROM_SERVER)) != KErrNotFound )
- {
- if ( serviceType == TPtrC( LAN_SERVICE ) ) // Is WLAN service
- {
- if( tObject )
- {
- tableView->WriteTextL( TPtrC(SERVICE_CONFIG_DAEMON_MANAGER_NAME),
- KDaemonManagerName );
- tableView->WriteTextL( TPtrC(SERVICE_CONFIG_DAEMON_NAME),
- KConfigDaemonName );
- }
- else
- {
- tableView->WriteTextL( TPtrC(SERVICE_CONFIG_DAEMON_MANAGER_NAME), KNullDesC );
- tableView->WriteTextL( TPtrC(SERVICE_CONFIG_DAEMON_NAME), KNullDesC );
- }
- }
- } // Is WLAN service
-
- tableView->WriteBoolL(qColumn, tObject );
- tableView->PutRecordChanges();
- CleanupStack::PopAndDestroy(); // tableView
- if(serviceReLock)
- {
- TInt reclockerr = DoProtectServiceRecordL(iISPId,ETrue);
- DBG_ARGS8(_S8("CNSmlInternetAdapter::AddLeafObjectL ,UnProtecting ServiceRecord returned code = %d"),reclockerr);
- if(reclockerr==KErrNone)
- serviceReLock = EFalse;
- }
- }
- else
- {
- tableView->CancelRecordChanges();
- CleanupStack::PopAndDestroy(); // tableView
- CleanupStack::PopAndDestroy(pushed);
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EError);
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): EError end");
- return;
- }
- }
- else if (fType == CNSmlInternetAdapter::EInt)
- { // UsePTxtLog + PortNbr + seamlessness and metadata
- iObject = GetIntObject8(aObject);
-
- if(aURI.Find(KNSmlDdfIAPSeamlessness) >= 0 )
- {
- // TUint32 setSeam = GetIntObject8(aObject);
- TUint32 apMetaID = GetAPIdFromURIL(aURI);
- SetIAPSeamlessnessL(apMetaID,iObject,aStatusRef);
- return;
- }
-
- else if (aURI.Find(KNSmlDdfIAPMetaData) >= 0)
- {
- // TUint32 setMeta = GetIntObject8(aObject);
- TUint32 apMetaID = GetAPIdFromURIL(aURI);
- SetIAPMetaDataL(apMetaID,iObject,aStatusRef);
- return;
- }
-
-
- if (aURI.Find(KNSmlDdfUsePTxtLog) >= 0)
- {
- TUint32 iapID4 = GetAPIdFromURIL(aURI);
-
- // IAP-table search serviceType (=Bearer)
- CCommsDbTableView* iapView4 = iDatabase->OpenViewMatchingUintLC(TPtrC(IAP),
- TPtrC(COMMDB_ID),
- iapID4);
- TInt errorCode = iapView4->GotoFirstRecord();
-
- TBuf<KCommsDbSvrMaxFieldLength> serviceType;
-
- errorCode = iapView4->GotoFirstRecord();
-
- // Read serviceType from (IAP)
- if ( errorCode == KErrNone )
- {
- iapView4->ReadTextL(TPtrC(IAP_SERVICE_TYPE), serviceType);
- iapView4->ReadTextL(TPtrC(IAP_SERVICE_TYPE), iProxyServiceType); // for locking
- iapView4->ReadUintL(TPtrC(IAP_SERVICE), iISPId);
- CleanupStack::PopAndDestroy(); // iapView4
- }
- else
- {
- CleanupStack::PopAndDestroy(); // iapView4
- CleanupStack::PopAndDestroy(pushed);
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::ENotFound);
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): ENotFound end");
- return;
- }
-
- CCommsDbTableView* tableView = iDatabase->OpenViewMatchingUintLC(serviceType,
- TPtrC(COMMDB_ID),
- iISPId);
-
- errorCode = tableView->GotoFirstRecord();
-
- if ( errorCode == KErrNone )
- {
- TBool serviceReLock = EFalse;
- if(IsServiceRecordLockedL(iISPId))
- {
-
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): apaccesspoint record is LOCKED");
- TInt reclockerr = ( (CCommsDbProtectTableView*) tableView )->UnprotectRecord();
- DBG_ARGS8(_S8("CNSmlInternetAdapter::AddLeafObjectL ,UnProtecting WAPAccessRecord returned code = %d"),reclockerr);
- if(reclockerr==KErrNone)
- serviceReLock = ETrue;
- }
- else
- {
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): apaccesspoint record is not write protected");
- }
- if(tableView->UpdateRecord()!=KErrNone)
- {
- //database locked
- CleanupStack::PopAndDestroy(); // tableView
- CleanupStack::PopAndDestroy(pushed);
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EError);
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): Update failed end");
- return;
- }
- TBool tObject = EFalse;
- if(iObject)
- {
- tObject = ETrue; // <> 0
- }
- tableView->WriteBoolL(TPtrC(SERVICE_DISABLE_PLAIN_TEXT_AUTH), tObject );
- tableView->PutRecordChanges();
- if(serviceReLock)
- {
- DoProtectIAPRecordL(iapID4,ETrue);
- TInt reclockerr = DoProtectServiceRecordL(iISPId,ETrue);
- DBG_ARGS8(_S8("CNSmlInternetAdapter::AddLeafObjectL ,UnProtecting ServiceRecord returned code = %d"),reclockerr);
- if(reclockerr==KErrNone)
- serviceReLock = EFalse;
- }
- CleanupStack::PopAndDestroy(); // tableView
- }
- else
- {
- tableView->CancelRecordChanges();
- CleanupStack::PopAndDestroy(); // tableView
- CleanupStack::PopAndDestroy(pushed);
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EError);
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): EError end");
- return;
- }
- }
- else if (aURI.Find(KNSmlDdfPortNbr) >= 0)
- {
- if(GetProxyIdL(aURI))
- {
- iProxyISP = GetAPIdFromURIL(aURI);
-
- CCommsDbTableView* tableView = iDatabase->OpenViewMatchingUintLC(TPtrC(PROXIES),
- TPtrC(COMMDB_ID),
- iProxyId);
- TInt errorCode = tableView->GotoFirstRecord();
- TBool proxyReLock = EFalse;
- // Read all columns needed.
- if ( errorCode == KErrNone )
- {
- if(IsProxyRecordLockedL(iProxyId))
- {
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): proxy record is LOCKED");
- TInt reclockerr = ((CCommsDbProtectTableView*)tableView)->UnprotectRecord();
- DBG_ARGS8(_S8("CNSmlInternetAdapter::AddLeafObjectL ,UnProtecting Proxy Record returned code = %d"),reclockerr);
- if(reclockerr==KErrNone)
- proxyReLock = ETrue;
- }
- else
- {
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): apaccesspoint record is not write protected");
- }
- if(tableView->UpdateRecord()!=KErrNone)
- {
- //database locked
- CleanupStack::PopAndDestroy(); // tableView
- CleanupStack::PopAndDestroy(pushed);
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EError);
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): Update failed end");
- return;
- }
- iObject = GetIntObject8(aObject);
-
- tableView->WriteUintL(TPtrC(PROXY_PORT_NUMBER), iObject);
- }
- tableView->PutRecordChanges();
- if(proxyReLock)
- {
- TInt reclockerr = DoProtectProxyRecordL(iProxyId,ETrue);
- DBG_ARGS8(_S8("CNSmlInternetAdapter::AddLeafObjectL ,UnProtecting Proxy Record returned code = %d"),reclockerr);
- if(reclockerr==KErrNone)
- proxyReLock = EFalse;
- }
- CleanupStack::PopAndDestroy(); // tableView
- }
- else
- {
- CleanupStack::PopAndDestroy(pushed);
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EError);
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): PortNbr Error end");
- return;
- }
- }
- else
- {
- CleanupStack::PopAndDestroy(pushed);
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EError);
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): PortNbr Error end");
- return;
- }
-
- }
-
- else if (fType == CNSmlInternetAdapter::EWap)
- { // Startpg + PxAuthId + PxAuthPW (WAP-settings) (BasAuthId + BasAuthPW)
- TUint32 iapID5 = GetAPIdFromURIL(aURI);
- //
- // Without iapID5 no insert possible, set on buffer
- //
- if(iapID5 < 1)
- {
- AddLeafBufferL(aURI,aParentLUID,aObject,aType,aStatusRef);
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): end");
- return;
- }
-
- GetAPField(qTable,qColumn);
- if(WapAPExistsL(iapID5))
- { // Update handled
- TBool iapReLock = EFalse;
- if(FeatureManager::FeatureSupported(KFeatureIdSapPolicyManagement))
- {
- TBool apEnforce=EFalse;
- TRAPD(eError,apEnforce=CheckEnforcementL())
- DBG_ARGS8(_S8("CNSmlInternetAdapter::AddLeafObjectL(): EError %d , APEnforcement is %d"),eError,apEnforce);
- if(eError==KErrNone && apEnforce)
- {
- DoLockIAPTablesL(EFalse);
- iWAPRelock = ETrue;
- }
- }
- if(IsIAPRecordLockedL(iapID5))
- {
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): apaccesspoint record is LOCKED");
- TInt reclockerr = DoProtectIAPRecordL(iapID5,EFalse);
- DBG_ARGS8(_S8("CNSmlInternetAdapter::AddLeafObjectL ,UnProtecting IAPAccessRecord returned code = %d"),reclockerr);
- if(reclockerr==KErrNone)
- iapReLock = ETrue;
- }
- else
- {
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): apaccesspoint record is not write protected");
- }
- CCommsDbTableView* wapView;
- TBool wapaccesspointTableLocked = EFalse;
-
- if(qColumn == TPtrC(WAP_START_PAGE))
- {
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): record to be added WAP_START_PAGE, check for lock status");
- DBG_ARGS8(_S8("CNSmlInternetAdapter::AddLeafObjectL Get WapAccessPoint record access for ID = %d"),iWapId);
- if(IsWAPAccessPointRecordLockedL(iWapId))
- {
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): wapaccesspoint record is LOCKED");
- TInt reclockerr = DoProtectWAPAccessRecordL(iWapId,EFalse);
- DBG_ARGS8(_S8("CNSmlInternetAdapter::AddLeafObjectL ,UnProtecting IAPAccessRecord returned code = %d"),reclockerr);
- if(reclockerr==KErrNone)
- wapaccesspointTableLocked = ETrue;
- }
- else
- {
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): wapaccesspoint record is not write protected");
- }
- wapView = iDatabase->OpenViewMatchingUintLC(TPtrC(WAP_ACCESS_POINT),
- TPtrC(COMMDB_ID),
- iWapId);
- pushed++;
- }
- else // Other WAP-data
- {
- wapView = iDatabase->OpenViewMatchingUintLC(TPtrC(WAP_IP_BEARER),
- TPtrC(WAP_ACCESS_POINT_ID),
- iWapId);
- pushed++;
- }
-
- TInt errorCode = wapView->GotoFirstRecord();
-
- // Read all columns needed.
- if ( errorCode == KErrNone )
- {
- if(wapView->UpdateRecord()!=KErrNone)
- {
- //database locked
- CleanupStack::PopAndDestroy(pushed);
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EError);
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): Wapview Update failed end");
- if(wapaccesspointTableLocked)
- {
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): wapaccesspoint record to be locked again ");
- DoProtectWAPAccessRecordL(iWapId,ETrue);
- wapaccesspointTableLocked = EFalse;
- }
- if(FeatureManager::FeatureSupported(KFeatureIdSapPolicyManagement))
- {
- if(iWAPRelock)
- {
- DoLockIAPTablesL(ETrue);
- iWAPRelock = EFalse;
- }
- }
- if(iapReLock)
- {
- TInt reclockerr = DoProtectIAPRecordL(iapID5,ETrue);
- DBG_ARGS8(_S8("CNSmlInternetAdapter::AddLeafObjectL ,UnProtecting WAPAccessRecord returned code = %d"),reclockerr);
- if(reclockerr==KErrNone)
- iapReLock = EFalse;
- }
- return;
- }
-
- if(qColumn == TPtrC(WAP_PROXY_PORT))
- {
- TBool security = EFalse; // => 9200 + 9201, ETrue 9202 + 9203
- TUint32 object32;
- TPtrC object16 = ConvertTo16LC(aObject);
- pushed++;
- if(object16.Match(KWappPort9200) != KErrNotFound )
- {
- object32 = KWAPP_PORT_9200; // wappdef.h
- }
- else if(object16.Match(KWappPort9201) != KErrNotFound )
- {
- object32 = KWAPP_PORT_9201;
- }
- else if(object16.Match(KWappPort9202) != KErrNotFound )
- {
- object32 = KWAPP_PORT_9202;
- security = ETrue;
- }
- else if(object16.Match(KWappPort9203) != KErrNotFound )
- {
- object32 = KWAPP_PORT_9203;
- security = ETrue;
- }
- else
- {
- wapView->CancelRecordChanges();
- CleanupStack::PopAndDestroy(pushed);
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EError);
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): EError end");
- if(FeatureManager::FeatureSupported(KFeatureIdSapPolicyManagement))
- {
- if(iWAPRelock)
- {
- DoLockIAPTablesL(ETrue);
- iWAPRelock = EFalse;
- }
- }
- if(iapReLock)
- {
- TInt reclockerr = DoProtectIAPRecordL(iapID5,ETrue);
- DBG_ARGS8(_S8("CNSmlInternetAdapter::AddLeafObjectL ,UnProtecting IAPAccessRecord returned code = %d"),reclockerr);
- if(reclockerr==KErrNone)
- iapReLock = EFalse;
- }
- return;
- }
- wapView->WriteUintL(qColumn, object32);
- wapView->WriteBoolL(TPtrC(WAP_SECURITY), security );
- }
- else
- {
- wapView->WriteTextL(TPtrC(qColumn),ConvertTo16LC(aObject));
- pushed++;
- }
- }
- wapView->PutRecordChanges();
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): wapaccesspoint record Changes DONE successfully ");
- if(wapaccesspointTableLocked)
- {
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): wapaccesspoint record to be locked again ");
- TInt reclockerr = DoProtectWAPAccessRecordL(iWapId,ETrue);
- DBG_ARGS8(_S8("CNSmlInternetAdapter::AddLeafObjectL ,Protecting WAPAccessRecord %d , returned code = %d"),iWapId,reclockerr);
- wapaccesspointTableLocked = EFalse;
- }
- if(FeatureManager::FeatureSupported(KFeatureIdSapPolicyManagement))
- {
- if(iWAPRelock)
- {
- DoLockIAPTablesL(ETrue);
- iWAPRelock = EFalse;
- }
- }
- if(iapReLock)
- {
- TInt reclockerr = DoProtectIAPRecordL(iapID5,ETrue);
- DBG_ARGS8(_S8("CNSmlInternetAdapter::AddLeafObjectL ,UnProtecting WAPAccessRecord returned code = %d"),reclockerr);
- if(reclockerr==KErrNone)
- iapReLock = EFalse;
- }
- CleanupStack::PopAndDestroy(pushed);
- pushed = 0;
- }
- else
- { // Insert handled
- CCommsDbTableView* insView;
- TInt wapInitOK = KErrCancel;
- TBool iapReLock = EFalse;
-
- if(FeatureManager::FeatureSupported(KFeatureIdSapPolicyManagement))
- {
- TBool apEnforce=EFalse;
- TRAPD(eError,apEnforce=CheckEnforcementL())
- DBG_ARGS8(_S8("CNSmlInternetAdapter::AddLeafObjectL(): EError %d , APEnforcement is %d"),eError,apEnforce);
- if(eError==KErrNone && apEnforce)
- {
- DoLockIAPTablesL(EFalse);
- iWAPRelock = ETrue;
- }
- }
- if(iapReLock)
- {
- TInt reclockerr = DoProtectIAPRecordL(iapID5,ETrue);
- DBG_ARGS8(_S8("CNSmlInternetAdapter::AddLeafObjectL ,UnProtecting WAPAccessRecord returned code = %d"),reclockerr);
- if(reclockerr==KErrNone)
- iapReLock = EFalse;
- }
- insView = iDatabase->OpenTableLC(TPtrC(WAP_ACCESS_POINT));
- iWapId = 0;
- wapInitOK = insView->InsertRecord(iWapId);
- if(wapInitOK == KErrNone)
- {
- iWAPAccessPoint.Zero();
- iWapUserName.Zero();
- iWapPassword.Zero();
-
- if(qColumn == TPtrC(WAP_START_PAGE))
- {
- iWAPAccessPoint = aObject;
- }
- else if(qColumn == TPtrC(WAP_PROXY_LOGIN_NAME))
- {
- iWapUserName = aObject;
- }
- else if(qColumn == TPtrC(WAP_PROXY_LOGIN_PASS))
- {
- iWapPassword = aObject;
- }
-
- iWapBearer = TPtrC(WAP_IP_BEARER);
- iWapName = FirstURISeg(aURI); // Name needed !!!
-
- wapInitOK = InitializeWAPIAPL( insView, iIAPName );
- if( wapInitOK == KErrNone )
- {
- insView->PutRecordChanges();
- CleanupStack::PopAndDestroy(); // insView
-
- CCommsDbTableView* updView;
- TUint32 iWapId2 = 0;
- iISPId = iapID5; // IAP number set
- updView = iDatabase->OpenTableLC(TPtrC(WAP_IP_BEARER));
- if(updView->InsertRecord(iWapId2) == KErrNone )
- {
- wapInitOK = InitializeWAPL( updView );
- }
- else
- {
- wapInitOK = KErrGeneral;
- }
- if( wapInitOK == KErrNone )
- {
- if( !PxExistsL(iapID5) )
- {
-
- // Set mapping-data
-
- TPtrC8 addURI = GetAddURISeg(aURI,KNSmlDdfStartpg);
- TBuf8<16> addLUID;
- _LIT8(KFormat,"%d");
- addLUID.Format(KFormat,iapID5);
- iCallBack->SetMappingL(addURI,addLUID);
- }
- else if( !NAPDefExistsL(iapID5) )
- {
-
- // Set mapping-data
-
- TPtrC8 addURI = GetAddURISeg(aURI,KNSmlDdfStartpg);
- TBuf8<16> addLUID;
- _LIT8(KFormat,"%d");
- addLUID.Format(KFormat,iapID5);
- iCallBack->SetMappingL(addURI,addLUID);
- }
-
- updView->PutRecordChanges();
- CleanupStack::PopAndDestroy(); // updView
- CleanupStack::PopAndDestroy(pushed);
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EOk);
-
- if(FeatureManager::FeatureSupported(KFeatureIdSapPolicyManagement))
- {
- if(iWAPRelock)
- {
- DoLockIAPTablesL(ETrue);
- iWAPRelock = EFalse;
- }
- }
- if(iapReLock)
- {
- TInt reclockerr = DoProtectIAPRecordL(iapID5,ETrue);
- DBG_ARGS8(_S8("CNSmlInternetAdapter::AddLeafObjectL ,UnProtecting IAPAccessRecord returned code = %d"),reclockerr);
- if(reclockerr==KErrNone)
- iapReLock = EFalse;
- }
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): EOk end");
- return;
- }
- else
- {
- CleanupStack::PopAndDestroy(); // updView
- CleanupStack::PopAndDestroy(pushed);
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EError);
-
- if(FeatureManager::FeatureSupported(KFeatureIdSapPolicyManagement))
- {
- if(iWAPRelock)
- {
- DoLockIAPTablesL(ETrue);
- iWAPRelock = EFalse;
- }
- }
- if(iapReLock)
- {
- TInt reclockerr = DoProtectIAPRecordL(iapID5,ETrue);
- DBG_ARGS8(_S8("CNSmlInternetAdapter::AddLeafObjectL ,UnProtecting IAPAccessRecord returned code = %d"),reclockerr);
- if(reclockerr==KErrNone)
- iapReLock = EFalse;
- }
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): EError end");
- return;
- }
- }
- else
- {
- insView->CancelRecordChanges();
- CleanupStack::PopAndDestroy(); // insView
- CleanupStack::PopAndDestroy(pushed);
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EError);
-
- if(FeatureManager::FeatureSupported(KFeatureIdSapPolicyManagement))
- {
- if(iWAPRelock)
- {
- DoLockIAPTablesL(ETrue);
- iWAPRelock = EFalse;
- }
- }
- if(iapReLock)
- {
- TInt reclockerr = DoProtectIAPRecordL(iapID5,ETrue);
- DBG_ARGS8(_S8("CNSmlInternetAdapter::AddLeafObjectL ,UnProtecting IAPAccessRecord returned code = %d"),reclockerr);
- if(reclockerr==KErrNone)
- iapReLock = EFalse;
- }
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): EError end");
- return;
- }
- }
- else
- {
- CleanupStack::PopAndDestroy(); // insView
- CleanupStack::PopAndDestroy(pushed);
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EError);
- if(FeatureManager::FeatureSupported(KFeatureIdSapPolicyManagement))
- {
- if(iWAPRelock)
- {
- DoLockIAPTablesL(ETrue);
- iWAPRelock = EFalse;
- }
- }
- if(iapReLock)
- {
- TInt reclockerr = DoProtectIAPRecordL(iapID5,ETrue);
- DBG_ARGS8(_S8("CNSmlInternetAdapter::AddLeafObjectL ,UnProtecting IAPAccessRecord returned code = %d"),reclockerr);
- if(reclockerr==KErrNone)
- iapReLock = EFalse;
- }
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): EError end");
- return;
- }
- }
- }
- else if ( fType == CNSmlInternetAdapter::ESpec )
- { // BearerL + NoPxForL + IAPService + Direction
- if (aURI.Find(KNSmlDdfDirection) >= 0)
- {
- _LIT8(KDirection,"Outgoing");
- if(KDirection().Find(aObject) != KErrNotFound)
- {
- iDirection = ECommDbConnectionDirectionOutgoing;
- }
- else
- {
- iDirection = ECommDbConnectionDirectionIncoming;
- if(iBearer == TPtrC(OUTGOING_GPRS))
- {
- iBearer = TPtrC(INCOMING_GPRS);
- }
- }
- }
- else if (aURI.Find(KNSmlDdfIAPService) >= 0)
- {
- CleanupStack::PopAndDestroy(pushed);
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EError);
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): EError end");
- return;
- }
- else if (aURI.Find(KNSmlDdfNoPxForL) >= 0) /* No proxies used field handling */
- {
- TBool proxyFound = GetProxyIdL(aURI);
- if(!proxyFound)
- {
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EError);
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): EError end");
- CleanupStack::PopAndDestroy(pushed);
- return;
- }
-
- CCommsDbTableView* specView = iDatabase->OpenViewMatchingUintLC(TPtrC(PROXIES),
- TPtrC(COMMDB_ID),
- iProxyId);
- TInt errorCode = specView->GotoFirstRecord();
-
-
- if ( errorCode == KErrNone )
- {
- TBool proxyReLock = EFalse;
- if(IsProxyRecordLockedL(iProxyId))
- {
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): apaccesspoint record is LOCKED");
- TInt reclockerr = ((CCommsDbProtectTableView*)specView)->UnprotectRecord();
- DBG_ARGS8(_S8("CNSmlInternetAdapter::AddLeafObjectL ,UnProtecting ProxyAccessRecord returned code = %d"),reclockerr);
- if(reclockerr==KErrNone)
- proxyReLock = ETrue;
- }
- else
- {
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): apaccesspoint record is not write protected");
- }
- if(specView->UpdateRecord()==KErrNone)
- {
- //database not locked
- specView->WriteLongTextL(TPtrC(PROXY_EXCEPTIONS), ConvertTo16LC(aObject));
- specView->PutRecordChanges();
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EOk);
- CleanupStack::PopAndDestroy(); // ConvertTo16LC
- }
- else
- {
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EError);
- }
- if(proxyReLock)
- {
- TInt reclockerr = DoProtectProxyRecordL(iProxyId,ETrue);
- DBG_ARGS8(_S8("CNSmlInternetAdapter::AddLeafObjectL ,UnProtecting ProxyAccessRecord returned code = %d"),reclockerr);
- if(reclockerr==KErrNone)
- proxyReLock = EFalse;
- }
- }
- else
- {
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EError);
- }
- CleanupStack::PopAndDestroy(); // specView
-
- CleanupStack::PopAndDestroy(pushed);
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): EError end");
- return;
- }
- else if (aURI.Find(KNSmlDdfBearerL) >= 0) /* Bearer handling */
- {
- if (aObject.Match(KNSmlDmApValGsmGprs) != KErrNotFound)
- {
- if(iDirection == ECommDbConnectionDirectionIncoming)
- {
- iBearer = TPtrC(INCOMING_GPRS);
- }
- else
- {
- iBearer = TPtrC(OUTGOING_GPRS);
- }
- }
-
- else if (aObject.Match(KNSmlDmApVal3Gppps) != KErrNotFound)
- {
- i3GPPPS = ETrue;
- if(iDirection == ECommDbConnectionDirectionIncoming)
- {
- iBearer = TPtrC(INCOMING_GPRS);
- }
- else
- {
- iBearer = TPtrC(OUTGOING_GPRS);
- }
- }
- else if (aObject.Match(KNSmlDmApValVpn) != KErrNotFound)
- {
- iBearer = TPtrC(VPN_SERVICE);
- }
- else if ( (aObject.Match(KNSmlDmApValWlan) != KErrNotFound )
- && iWlanSupported )
- {
- iBearer = TPtrC(LAN_SERVICE);
- }
- else
- {
- CleanupStack::PopAndDestroy(pushed);
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EError);
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): UNKNOWN Bearer Error end");
- return;
- }
- }
- else if (aURI.Find( KNSmlDdfNAPName ) >= 0)
- {
- iIAPName.Copy( aObject );
- TUint32 iapID2 = GetAPIdFromURIL(aURI);
- if( iapID2 > 0 && UpdateIAPnameL(iapID2,aObject) != KErrNone )
- {
- CleanupStack::PopAndDestroy(pushed);
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EError);
- return;
- }
- }
- }
-
- CleanupStack::PopAndDestroy(pushed);
- pushed = 0;
-
-// Update CommsDB IAP + insert iBearer Table
-
- if( IsInsertAllowedL() && iLeafType == EDMAdd && fType == CNSmlInternetAdapter::ESpec) //iIAPExists
- {
- TInt initOK = KErrCancel;
-
- iISPId = GetMaxIdL() + 1; // For new data
-
- SaveIAPDataL(aURI); // Level 1 Mapping inside
-
- CCommsDbTableView* newAPView;
-
- newAPView = iDatabase->OpenTableLC(iBearer);
- // 3GPPPS = OUTGOING/INCOMING_GPRS
- if (iBearer == TPtrC(OUTGOING_GPRS) ||
- iBearer == TPtrC(INCOMING_GPRS))
- {
- if(newAPView->InsertRecord(iISPId)==KErrNone)
- {
- initOK = InitializeGPRSL(newAPView);
- }
- else
- {
- initOK = KErrGeneral;
- }
- }
-
- else if(iBearer == TPtrC(VPN_SERVICE) )
- {
- if(newAPView->InsertRecord(iISPId)==KErrNone)
- {
- initOK = InitializeVPNServiceL(newAPView);
- }
- else
- {
- initOK = KErrGeneral;
- }
- }
- else if( ( iBearer == TPtrC(LAN_SERVICE) ) && iWlanSupported )
- {
- if(newAPView->InsertRecord(iISPId)==KErrNone)
- {
- initOK = InitializeLANServiceL(newAPView);
- }
- else
- {
- initOK = KErrGeneral;
- }
- }
- else
- {
- initOK = KErrCancel;
- }
-
- if ( initOK == KErrNone)
- {
- TUint32 newId = 0;
- newAPView->PutRecordChanges();
- newAPView->ReadUintL(TPtrC(COMMDB_ID), newId);
-
- // To update right Id
-
- iISPId = newId;
-
- SaveIAPDataL(aURI);
-
- TUint32 iapID2 = GetAPIdFromURIL(aURI);
- UpdateIAPnameL( iapID2, iIAPName );
- //
- // Set mapping-data (levels 2 and 3 )
- //
- TPtrC8 addURI = GetAddURISeg(aURI,KNSmlDdfNAPDef);
-
- TBuf8<16> addLUID;
- _LIT8(KFormat,"%d");
- addLUID.Format(KFormat,newId);
-
- // Also NAPDef (level 2)
- iCallBack->SetMappingL(addURI,addLUID);
- DBG_ARGS8(_S8("AP:level2 URI - <%S> <%S> <%d>"), &addURI, &addLUID, newId );
-
- // Also BearerL (level 3)
- TPtrC8 addURI2 = GetAddURISeg(aURI,KNSmlDdfBearer);
- if ( i3GPPPS )
- {
- newId = KNSmlAp3gpppsLowerBase+newId;
- addLUID.Format(KFormat,newId);
- i3GPPPS = EFalse;
- }
- iCallBack->SetMappingL(addURI2,addLUID);
- DBG_ARGS8(_S8("AP:level3 URI - <%S> <%S> <%d>"), &addURI2, &addLUID, newId );
- }
- else
- {
- if(initOK==KErrCancel)
- {
- newAPView->CancelRecordChanges();
- }
- CleanupStack::PopAndDestroy(newAPView);
- CleanupStack::PopAndDestroy(pushed);
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EError);
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): EError end");
- return;
- }
-
- CleanupStack::PopAndDestroy(newAPView);
- }
- else if(IsInsertAllowedL() &&
- iLeafType == EDMAdd &&
- aURI.Find(KNSmlDdfBearerL) >= 0 )
-
- {
- CleanupStack::PopAndDestroy(pushed);
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EAlreadyExists);
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): EAlreadyExists BearerL end");
- return;
- }
- CleanupStack::PopAndDestroy(pushed);
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EOk);
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): OK end");
- return;
- }
-
-//------------------------------------------------------------------------------
-// CNSmlInternetAdapter::UpdateLeafObjectL( const TDesC8& aURI, const TDesC8& aLUID, const TDesC8& aObject, const TDesC8& aType )
-//------------------------------------------------------------------------------
-void CNSmlInternetAdapter::UpdateLeafObjectL( const TDesC8& aURI,
- const TDesC8& aLUID,
- const TDesC8& aObject,
- const TDesC8& aType,
- const TInt aStatusRef )
- {
- _DBG_FILE("CNSmlInternetAdapter::UpdateLeafObjectL(): begin");
-
- DBG_ARGS8(_S8("AP:update aURI UpdateLeafObjectL - %S - %S"), &aURI, &aLUID);
- DBG_ARGS8(_S8("AP:Object %S"), &aObject);
- if( iTransactionCommitted )
- {
- TInt dberr = iDatabase->BeginTransaction();
- if( dberr == KErrLocked )
- {
- _DBG_FILE("UpdateLeafObjectL: CommsDat was locked.");
- TInt retry = KBeginTransRetryCount;
- while ( retry > 0 && dberr == KErrLocked )
- {
- User::After(KBeginTransRetryDelay);
- _DBG_FILE("UpdateLeafObjectL: Slept 1 second. Try again");
- dberr = iDatabase->BeginTransaction();
- retry--;
- }
- if(dberr != KErrNone)
- {
- _DBG_FILE("CNSmlInternetAdapter: BeginTransaction failed completely.");
- User::Leave( dberr );
- }
- }
- iTransactionCommitted = EFalse;
- }
- if ( ( aURI.Match(_L8("*/WLAN*" )) != KErrNotFound ) && iWlanSupported )
- {
- AddLeafBufferL( aURI, aLUID, aObject, aType, aStatusRef, ETrue );
- iDatabase->CommitTransaction();
- iTransactionCommitted = ETrue;
- _DBG_FILE("CNSmlInternetAdapter::UpdateLeafObjectL(): WLAN end");
-
- return;
- }
-//
-// No direct update allowed only update as add
-//
- if( aLUID.Length() > 0 &&
- aURI.Find(KNSmlDdfNAPDef) >= 0 )
- /*( aURI.Find(KNSmlDdfBearerL) >= 0 ||
- aURI.Find(KNSmlDdfDirection) >= 0 ||
- aURI.Find(KNSmlDdfNAPName) >= 0 ) */
- {
- _DBG_FILE("Bearer | direction CNSmlInternetAdapter::UpdatelaefObject ( ): EError end");
-
- AddLeafBufferL( aURI, aLUID, aObject, aType, aStatusRef, EFalse );
- iDatabase->CommitTransaction();
- iTransactionCommitted = ETrue;
- return;
- }
-
- iLeafType = EDMUpdate;
-
- TRAP_IGNORE(AddLeafObjectL( aURI, aLUID, aObject, aType , aStatusRef ));
- iDatabase->CommitTransaction();
- iTransactionCommitted = ETrue;
-//
-// If try to update field that has value which is not default errorvalue should be returned
-//
- iLeafType = EDMUnset;
-
- _DBG_FILE("CNSmlInternetAdapter::UpdateLeafObjectL(): end");
-
- return;
- }
-
-//------------------------------------------------------------------------------
-// CNSmlInternetAdapter::UpdateLeafObjectL( const TDesC8& aURI,
-// const TDesC8& aLUID, const TDesC8& aObject, const TDesC8& aType )
-//------------------------------------------------------------------------------
-
-void CNSmlInternetAdapter::UpdateLeafObjectL( const TDesC8& /*aURI*/,
- const TDesC8& /*aLUID*/,
- RWriteStream*& /*aStream*/,
- const TDesC8& /*aType*/,
- TInt aStatusRef )
- {
- _DBG_FILE("CNSmlInternetAdapter::UpdateLeafObjectL(RWriteStream): begin");
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EError);
- _DBG_FILE("CNSmlInternetAdapter::UpdateLeafObjectL(RWriteStream): end");
- }
-
-//------------------------------------------------------------------------------
-// CNSmlInternetAdapter::DeleteObjectL( const TDesC& aURI, const TDesC& aLUID,
-// const TInt aStatusRef )
-//------------------------------------------------------------------------------
-void CNSmlInternetAdapter::DeleteObjectL( const TDesC8& aURI,
- const TDesC8& aLUID,
- const TInt aStatusRef )
- {
- _DBG_FILE("CNSmlInternetAdapter::DeleteObjectL( ): begin");
- if( iTransactionCommitted )
- {
- TInt dberr = iDatabase->BeginTransaction();
- if( dberr == KErrLocked )
- {
- _DBG_FILE("DeleteObjectL: CommsDat was locked.");
- TInt retry = KBeginTransRetryCount;
- while ( retry > 0 && dberr == KErrLocked )
- {
- User::After(KBeginTransRetryDelay);
- _DBG_FILE("DeleteObjectL: Slept 1 second. Try again");
- dberr = iDatabase->BeginTransaction();
- retry--;
- }
- if(dberr != KErrNone)
- {
- _DBG_FILE("CNSmlInternetAdapter: BeginTransaction failed completely.");
- User::Leave( dberr );
- }
- }
- iTransactionCommitted = EFalse;
- }
-
- if( ( aURI.Match( _L8( "AP/*/NAPDef/*/WLAN/*" ) ) != KErrNotFound ) && iWlanSupported )
- {
- iWlanAdapter->DeleteObjectL( aURI, aLUID, aStatusRef );
- _DBG_FILE("CNSmlInternetAdapter::DeleteObjectL( ): end");
- return;
- }
-
-//
-// Check which field going to be handled
-//
- SetField(aURI);
-
- iLUID = IntLUID(aLUID);
-
- TUint32 checkLUID = IntLUID(aLUID);
-//
-// Check which kind node to be deleted (Leaf delete not supported)
-//
- if( aURI.Match(_L8("AP/*" ))!= KErrNotFound &&
- aURI.Match(_L8("AP/*/*"))== KErrNotFound )
- {
- // Check if AP exists
- if(!APExistsL(checkLUID))
- {
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::ENotFound);
- _DBG_FILE("CNSmlInternetAdapter::DeleteObjectL(): ENotFound end");
- return;
- }
- if(DeleteAPL(checkLUID))
- {
- iPrevURI->Des().Format( KNullDesC8 );
- iPrevLUID = 0;
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EOk);
- _DBG_FILE("CNSmlInternetAdapter::DeleteObjectL(): EOk end");
- return;
- }
- else
- {
- iPrevURI->Des().Format( KNullDesC8 );
- iPrevLUID = 0;
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EError);
- _DBG_FILE("CNSmlInternetAdapter::DeleteObjectL(): EError end");
- return;
- }
- }
-
- if (aURI.Match(_L8("AP/*/Px/*/Startpg" ))!= KErrNotFound) //Key for WAP-delete
- {
- // Check if WAPAp exists
- if(!WapAPExistsL(checkLUID))
- {
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::ENotFound);
- _DBG_FILE("CNSmlInternetAdapter::DeleteObjectL(): ENotFound end");
- return;
- }
- if(DeleteWapAPL(checkLUID))
- {
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EOk);
- _DBG_FILE("CNSmlInternetAdapter::DeleteObjectL(): EOk end");
- return;
- }
- else
- {
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EError);
- _DBG_FILE("CNSmlInternetAdapter::DeleteObjectL(): EError end");
- return;
- }
- }
-
- if (aURI.Match(_L8("AP/*/NAPDef/*" ))!= KErrNotFound &&
- aURI.Match(_L8("AP/*/NAPDef/*/*"))== KErrNotFound )
- {
- // Check if NAPDef exists
- if(!NAPDefExistsL(checkLUID ))
- {
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::ENotFound);
- _DBG_FILE("CNSmlInternetAdapter::DeleteObjectL(): ENotFound end");
- return;
- }
- if(DeleteNAPDefL(checkLUID))
- {
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EOk);
- _DBG_FILE("CNSmlInternetAdapter::DeleteObjectL(): EOk end");
- return;
- }
- }
-
- if (aURI.Match(_L8("AP/*/Px/*" ))!= KErrNotFound &&
- aURI.Match(_L8("AP/*/Px/*/*"))== KErrNotFound )
- {
- // Check if PX exists
- if(!PxExistsL(checkLUID))
- {
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::ENotFound);
- _DBG_FILE("CNSmlInternetAdapter::DeleteObjectL(): ENotFound end");
- return;
- }
- if(DeleteProxyL(checkLUID))
- {
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EOk);
- _DBG_FILE("CNSmlInternetAdapter::DeleteObjectL(): EOk end");
- return;
- }
- }
-
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EError);
- _DBG_FILE("CNSmlInternetAdapter::DeleteObjectL( ): end");
- return;
- }
-
-//------------------------------------------------------------------------------
-// CNSmlInternetAdapter::FetchLeafObjectSizeL()
-//------------------------------------------------------------------------------
-
-void CNSmlInternetAdapter::FetchLeafObjectSizeL( const TDesC8& aURI,
- const TDesC8& aLUID,
- const TDesC8& aType,
- TInt aResultsRef,
- TInt aStatusRef )
- {
- _DBG_FILE("CNSmlInternetAdapter::FetchLeafObjectSizeL(): begin");
-
- DBG_ARGS8(_S8("AP:Fetch aURI - %S - %S"), &aURI, &aLUID);
- CBufBase *lObject = CBufFlat::NewL(128);
- CleanupStack::PushL(lObject);
-
- // call to internal fetchleafobj.
- CSmlDmAdapter::TError status = FetchLeafObjectL( aURI, aLUID, aType, *lObject );
-
- if ( status == CSmlDmAdapter::EOk )
- {
- lObject->Compress();
- TBuf8<8> size;
- size.Num( lObject->Size() );
- lObject->Reset();
- lObject->InsertL(0, size );
- iCallBack->SetResultsL(aResultsRef, *lObject, aType);
- }
- iCallBack->SetStatusL(aStatusRef, status);
-
- CleanupStack::PopAndDestroy(lObject);
- _DBG_FILE("CNSmlInternetAdapter::FetchLeafObjectSizeL(): end");
-
- return;
- }
-
-
-//------------------------------------------------------------------------------
-// CNSmlInternetAdapter::FetchLeafObjectL()
-//------------------------------------------------------------------------------
-
-void CNSmlInternetAdapter::FetchLeafObjectL( const TDesC8& aURI,
- const TDesC8& aLUID,
- const TDesC8& aType,
- const TInt aResultsRef,
- const TInt aStatusRef )
- {
- _DBG_FILE("CNSmlInternetAdapter::FetchLeafObjectL(): begin");
-
- DBG_ARGS8(_S8("AP:Fetch aURI - %S - %S"), &aURI, &aLUID);
- CBufBase *lObject = CBufFlat::NewL(128);
- CleanupStack::PushL(lObject);
-
- // Add call to internal fetchleafobj
- CSmlDmAdapter::TError status = FetchLeafObjectL( aURI, aLUID, aType, *lObject );
- if ( status == CSmlDmAdapter::EOk )
- {
- iCallBack->SetResultsL(aResultsRef,*lObject,aType);
- }
- iCallBack->SetStatusL(aStatusRef, status);
-
- CleanupStack::PopAndDestroy(); //lObject
- _DBG_FILE("CNSmlInternetAdapter::FetchLeafObjectL(): end");
- return;
- }
-
-
-
-//------------------------------------------------------------------------------
-// CSmlDmInternetAdapter::FetchLeafObjectL()
-//------------------------------------------------------------------------------
-
-CSmlDmAdapter::TError CNSmlInternetAdapter::FetchLeafObjectL(
- const TDesC8& aURI,
- const TDesC8& aLUID,
- const TDesC8& aType,
- CBufBase& aObject )
- {
- _DBG_FILE("CNSmlInternetAdapter::FetchLeafObjectL(internal)(): begin");
-
- TInt pushed = 0;
- TUint32 iapID = 0;
- TBool treeConstructed(EFalse);
- //
- // If no proxy no fetch allowed
- //
- if (aURI.Match(_L8("AP/*/Px/*" ))!= KErrNotFound)
- {
- if(!GetProxyIdL(aURI))
- {
- _DBG_FILE("CNSmlInternetAdapter::FetchLeafObjectL(internal)()(): ENotFound end");
- return CSmlDmAdapter::ENotFound;
- }
- }
- if(!iLUID)
- iLUID = IntLUID(aLUID);
-
- iapID = GetAPIdFromURIL(aURI);
-
- if( iapID == 0 )
- {
- if( IsAPUriFormatMatchPredefined(aURI) )
- {
- iLUID = ConstructTreeL(aURI);
- iapID = GetAPIdFromURIL(aURI);
- treeConstructed = ETrue;
- }
-
- }
- // Check if values for Given LUID
- if (!iLUID
- && (!IsWLANfield( aURI ) || !iWlanSupported) )
- {
- _DBG_FILE("CNSmlInternetAdapter::FetchLeafObjectL(internal)()(): ENotFound end");
- return CSmlDmAdapter::ENotFound;
- }
-//
-// Check which field going to be handled
-//
- SetField(aURI);
-
- aObject.Reset();
-
-//Linger value
- if((iField->Compare(KNSmlDdfNAPLinger) == 0))
- {
- TInt lingerInterval;
- TRAPD (err, GetLingerL( iapID, lingerInterval ));
- if(err == KErrNotFound)
- {
-
- return CSmlDmAdapter::ENotFound;
- }
- else if( err !=KErrNone)
- {
-
- return CSmlDmAdapter::EError;
-
- }
- else
- {
- TBuf<10> slinger;
- slinger.AppendNum(lingerInterval);
-
- aObject.InsertL(aObject.Size(),ConvertTo8LC(slinger));
- CleanupStack::PopAndDestroy();
- return CSmlDmAdapter::EOk;
- }
- }
- TPtrC qTable = TPtrC(KNullDesC);
- TPtrC qColumn = TPtrC(KNullDesC);
- TPtrC qDB = TPtrC(COMMDB_ID);
-
- if(aURI.Find(KNSmlDdfPortNbr) >= 0) // Check if WAP or PROXY port asked
- {
- _LIT8( KWap, "/WAP" );
- if(aURI.Find(KWap) >= 0)
- {
- iWapPort = ETrue;
- }
- else
- {
- iWapPort = EFalse;
- }
- }
-
-
- if ( iWlanSupported )
- {
- TBool wLANfield = IsWLANfield(aURI);
- if(wLANfield)
- {
- //
- // WLAN-adapter handles all WLAN fields
- //
- return iWlanAdapter->FetchLeafObjectL(aURI, aLUID, aType, aObject);
- }
- }
-
-//
-// Get Database field type
-//
- TInt fType = GetAPFieldType( aURI );
-
- if (fType == EWrong)
- {
- _DBG_FILE("CNSmlInternetAdapter::FetchLeafObjectL(internal)()(): EError end");
- return CSmlDmAdapter::EError;
- }
-//
- iISPId = iLUID;
-//
-// IAP-table search serviceType (=Bearer)
-
- CCommsDbTableView* serviceView = iDatabase->OpenViewMatchingUintLC(TPtrC(IAP),
- qDB,
- iapID);
-
- TBuf<KCommsDbSvrMaxFieldLength> serviceType;
- TUint32 serviceId = 0;
-
- TInt errorCode = serviceView->GotoFirstRecord();
-
- // Read serviceType from (IAP)
- if ( errorCode == KErrNone )
- {
- serviceView->ReadTextL(TPtrC(IAP_SERVICE_TYPE), serviceType);
- serviceView->ReadUintL(TPtrC(IAP_SERVICE), serviceId);
- CleanupStack::PopAndDestroy(); // serviceView
- }
- else
- {
- CleanupStack::PopAndDestroy(); // serviceView
- _DBG_FILE("CNSmlInternetAdapter::FetchLeafObjectL(internal)()(): ENotFound end");
- CleanupStack::PopAndDestroy(pushed);
- return CSmlDmAdapter::ENotFound;
- }
- qTable.Set(serviceType);
-
- TBool allowed = GetAPField(qTable,qColumn);
-
- if(!allowed)
- {
- if( aURI.Find(KNSmlDdfNAPAddrTy) >= 0) /* NAPAddrTy handling */
- {
- if (serviceType == TPtrC(OUTGOING_GPRS) ||
- serviceType == TPtrC(INCOMING_GPRS))
- {
- _LIT8( KApn, "APN" );
- aObject.InsertL(aObject.Size(), KApn );
-
- }
- CleanupStack::PopAndDestroy(pushed);
- return CSmlDmAdapter::EOk;
-
- }
- _DBG_FILE("CNSmlInternetAdapter::FetchLeafObjectL(internal)()(): FieldNot allowed");
- CleanupStack::PopAndDestroy(pushed);
- return CSmlDmAdapter::EError;
- }
-
- if (fType == CNSmlInternetAdapter::EStr)
- { // Name + NAPAddr + DNSAddrL
- if(aURI.Match(_L8("AP/*/Networks/*/Name"))!= KErrNotFound ) // Networks-name
- {
- TUint32 iapID8 = IntLUID(aLUID);
-
- // IAP-table NetworkId Fetch
- CCommsDbTableView* networkView = iDatabase->OpenViewMatchingUintLC(TPtrC(IAP),
- TPtrC(COMMDB_ID),
- iapID8);
- networkView->GotoFirstRecord();
- TRAPD(leavecode,networkView->ReadUintL(TPtrC(IAP_NETWORK), iISPId));
- CleanupStack::PopAndDestroy(); // networkView
- if(leavecode != 0)
- {
- _DBG_FILE("CNSmlInternetAdapter::FetchLeafObjectL(internal)()(): ENotFound end");
- CleanupStack::PopAndDestroy(pushed);
- return CSmlDmAdapter::ENotFound;
- }
-
- CCommsDbTableView* tableView = iDatabase->OpenViewMatchingUintLC(TPtrC(NETWORK),
- TPtrC(COMMDB_ID),
- iISPId);
-
- errorCode = tableView->GotoFirstRecord();
-
-
- if ( errorCode == KErrNone )
- {
- TBuf<KCommsDbSvrMaxFieldLength> columnValue;
-
- tableView->ReadTextL(qColumn, columnValue);
-
- aObject.InsertL(aObject.Size(),ConvertTo8LC(columnValue));
- pushed++;
- }
- else
- {
- CleanupStack::PopAndDestroy(); // tableView
- _DBG_FILE("CNSmlInternetAdapter::FetchLeafObjectL(internal)()(): ENotFound end");
- CleanupStack::PopAndDestroy(pushed);
- return CSmlDmAdapter::ENotFound;
- }
- }
- else if(aURI.Match(_L8("AP/*/Px/*/Name")) != KErrNotFound || // ProxyName
- aURI.Match(_L8("AP/*/Px/*/PxAddr")) != KErrNotFound || // ProxyAddr
- aURI.Match(_L8("AP/*/Px/*/DomainL")) != KErrNotFound ) // DomainL (PROXY_PROTOCOL_NAME)
- {
- CCommsDbTableView* proxyView = iDatabase->OpenViewMatchingUintLC(TPtrC(PROXIES),
- TPtrC(COMMDB_ID),
- iProxyId);
-
- errorCode = proxyView->GotoFirstRecord();
-
-
- if ( errorCode == KErrNone )
- {
- if(aURI.Match(_L8("AP/*/Px/*/DomainL"))!= KErrNotFound)
- {
- TBuf<KCommsDbSvrMaxFieldLength> columnValue;
-
- proxyView->ReadTextL(TPtrC(PROXY_PROTOCOL_NAME), columnValue);
-
- aObject.InsertL(aObject.Size(),ConvertTo8LC(columnValue));
- pushed++;
- }
-
- else if(aURI.Match(_L8("AP/*/Px/*/PxAddr"))!= KErrNotFound)
- {
- HBufC* serverName = proxyView->ReadLongTextLC(TPtrC(PROXY_SERVER_NAME));
- pushed++;
-
- aObject.InsertL(aObject.Size(),ConvertTo8LC(*serverName));
- pushed++;
- }
- }
- else
- {
- CleanupStack::PopAndDestroy(); // proxyView
- CleanupStack::PopAndDestroy(pushed);
- _DBG_FILE("CNSmlInternetAdapter::FetchLeafObjectL(internal)()(): ENotFound end");
- return CSmlDmAdapter::ENotFound;
- }
- }
- else
- {
- CCommsDbTableView* tableView = iDatabase->OpenViewMatchingUintLC(serviceType,
- qDB,
- serviceId);
-
- errorCode = tableView->GotoFirstRecord();
-
-
- if ( errorCode == KErrNone )
- {
- if ( aURI.Find(KNSmlDdfDNSPriority) >= 0) /* DNSPriority */
- {
- UriUtils::TUriHostType theType;
- TInt dnsPri;
-
- // This resets iLUID to match aLUID, which is needed in this case.
- // Otherwise iLUID has a different value
- if(!treeConstructed)
- iLUID = IntLUID(aLUID);
-
- if ( LuidToDns( theType, dnsPri, iLUID ) == KErrNone )
- {
- if ( dnsPri == 1 )
- {
- aObject.InsertL( aObject.Size(), KNSmlFirstDNSPri );
- }
- else
- {
- aObject.InsertL( aObject.Size(), KNSmlSecondDNSPri );
- }
- }
- else
- {
- CleanupStack::PopAndDestroy(tableView); // tableView
- CleanupStack::PopAndDestroy(pushed);
- _DBG_FILE("CNSmlInternetAdapter::FetchLeafObjectL(internal)()(): ENotFound end");
- return CSmlDmAdapter::ENotFound;
- }
- }
- else if ( aURI.Find(KNSmlDdfDNSAddrTy) >= 0) /* DNSAddrTy */
- {
- UriUtils::TUriHostType theType;
- TInt dnsPri;
- // This resets iLUID to match aLUID, which is needed in this case.
- // Otherwise iLUID has a different value
- if(!treeConstructed)
- iLUID = IntLUID(aLUID);
- if ( LuidToDns( theType, dnsPri, iLUID ) == KErrNone )
- {
- if ( theType == UriUtils::EIPv4Host)
- {
- aObject.InsertL( aObject.Size(), KNSmlDNSIp );
- }
- else
- {
- aObject.InsertL( aObject.Size(), KNSmlDNSIp6 );
- }
- }
- else
- {
- CleanupStack::PopAndDestroy(tableView); // tableView
- CleanupStack::PopAndDestroy(pushed);
- _DBG_FILE("CNSmlInternetAdapter::FetchLeafObjectL(internal)()(): ENotFound end");
- return CSmlDmAdapter::ENotFound;
- }
- }
- else
- {
- TBuf<KCommsDbSvrMaxFieldLength> columnValue;
- if ( aURI.Find(KNSmlDdfDNSAddrL ) >= 0)
- {
- UriUtils::TUriHostType theType;
- TInt dnsPri;
-
- // This resets iLUID to match aLUID, which is needed in this case.
- // Otherwise iLUID has a different value
- if(!treeConstructed)
- iLUID = IntLUID(aLUID);
- if ( LuidToDns( theType, dnsPri, iLUID ) == KErrNone )
- {
- if ( dnsPri == 1)
- {
- if ( theType == UriUtils::EIPv4Host )
- {
- qColumn.Set( TPtrC(SERVICE_IP_NAME_SERVER1 ));
- }
- else
- {
- qColumn.Set( TPtrC(SERVICE_IP6_NAME_SERVER1 ));
-
- }
- }
- else
- {
- if ( theType == UriUtils::EIPv4Host )
- {
- qColumn.Set( TPtrC(SERVICE_IP_NAME_SERVER2 ));
- }
- else
- {
- qColumn.Set( TPtrC(SERVICE_IP6_NAME_SERVER2 ));
-
- }
- }
- }
- else
- {
- CleanupStack::PopAndDestroy(tableView); // tableView
- CleanupStack::PopAndDestroy(pushed);
- _DBG_FILE("CNSmlInternetAdapter::FetchLeafObjectL(internal)()(): ENotFound end");
- return CSmlDmAdapter::ENotFound;
- }
- }
- TRAPD(leavecode,tableView->ReadTextL(qColumn, columnValue));
- if(leavecode != 0)
- {
- CleanupStack::PopAndDestroy(); // tableView
- CleanupStack::PopAndDestroy(pushed);
- _DBG_FILE("CNSmlInternetAdapter::FetchLeafObjectL(internal)()(): ENotFound end");
- return CSmlDmAdapter::ENotFound;
- }
- aObject.InsertL(aObject.Size(),ConvertTo8LC(columnValue));
- pushed++;
- }
- }
- else
- {
- CleanupStack::PopAndDestroy(); // tableView
- CleanupStack::PopAndDestroy(pushed);
- _DBG_FILE("CNSmlInternetAdapter::FetchLeafObjectL(internal)()(): ENotFound end");
- return CSmlDmAdapter::ENotFound;
- }
- }
- CleanupStack::PopAndDestroy(); // tableView
- }
- else if (fType == CNSmlInternetAdapter::EBool)
- { // UseCB
- CCommsDbTableView* boolView = iDatabase->OpenViewMatchingUintLC(serviceType,
- qDB,
- serviceId);
-
- errorCode = boolView->GotoFirstRecord();
-
- TBool objectBool = EFalse;
- if ( errorCode == KErrNone )
- {
- TRAPD(leavecode,boolView->ReadBoolL(qColumn,objectBool ));
- if(leavecode == KErrUnknown ) // value is null
- {
- }
- }
- else
- {
- CleanupStack::PopAndDestroy(); // boolView
- CleanupStack::PopAndDestroy(pushed);
- _DBG_FILE("CNSmlInternetAdapter::FetchLeafObjectL(internal)()(): EError end");
- return CSmlDmAdapter::EError;
- }
-
- if (objectBool)
- {
- aObject.InsertL(aObject.Size(),KNSmlDmApValTrue);
- }
- else
- {
- aObject.InsertL(aObject.Size(),KNSmlDmApValFalse);
- }
-
- CleanupStack::PopAndDestroy(); // boolView
- }
- else if (fType == CNSmlInternetAdapter::EInt)
- { // NAPId +Bearer + NAPAddrTy + PxID + PortNbr + UsePTxtLog
- // CBTy + LnkSpeed
-
- if(aURI.Match(_L8("AP/*/Px/*/PxID"))!= KErrNotFound )
- {
- aObject.InsertL(aObject.Size(),SetIntObjectLC(iISPId));
- pushed++;
- }
-
- else if (aURI.Find(KNSmlDdfIAPSeamlessness) >= 0 ) /* Seamlessness handling */
- {
- TInt seam = GetIAPSeamlessnessL(iapID);
- aObject.InsertL(aObject.Size(),SetIntObjectLC(seam));
- pushed++;
- }
- else if(aURI.Find(KNSmlDdfIAPMetaData) >= 0)
- {
- TInt meta = GetIAPMetaDataL(iapID);
- aObject.InsertL(aObject.Size(),SetIntObjectLC(meta));
- pushed++;
- }
-
- else if(aURI.Match(_L8("AP/*/Networks/*/ID"))!= KErrNotFound )
- {
-
- iISPId= IntLUID(aLUID);
-
- CCommsDbTableView* nwidView = iDatabase->OpenViewMatchingUintLC(TPtrC(IAP),
- TPtrC(COMMDB_ID),
- iISPId);
- nwidView->GotoFirstRecord();
- nwidView->ReadUintL(TPtrC(IAP_NETWORK), iISPId);
- CleanupStack::PopAndDestroy(); // nwidView
-
- aObject.InsertL(aObject.Size(),SetIntObjectLC(iISPId));
- pushed++;
- }
- else if(aURI.Match(_L8("AP/*/Px/*/PortNbr"))!= KErrNotFound )
- {
- _DBG_FILE("CNSmlInternetAdapter::FetchLeafObjectL(internal)()(): PortNbr");
- DBG_ARGS8(_S8("iISPId = %d "), iISPId );
- DBG_ARGS8(_S8("proxyid = %d "), iProxyId );
- CCommsDbTableView* portView = iDatabase->OpenViewMatchingUintLC(TPtrC(PROXIES),
- TPtrC(COMMDB_ID),
- iProxyId);
-
- errorCode = portView->GotoFirstRecord();
-
-
- if ( errorCode == KErrNone )
- {
- _DBG_FILE("CNSmlInternetAdapter::FetchLeafObjectL(internal)()(): Portview opened");
- TUint32 object32=0;
-
- TRAPD(leavecode,portView->ReadUintL(qColumn,object32 ));
- if(leavecode == KErrNone)
- {
- aObject.InsertL(aObject.Size(),SetIntObjectLC(object32));
- pushed++;
- }
- else
- {
- _DBG_FILE("CNSmlInternetAdapter::FetchLeafObjectL(internal)()(): db read failed");
- CleanupStack::PopAndDestroy(); // portView
- CleanupStack::PopAndDestroy(pushed);
- _DBG_FILE("CNSmlInternetAdapter::FetchLeafObjectL(internal)()(): EError end");
- return CSmlDmAdapter::EError;
- }
- }
- else
- {
- _DBG_FILE("CNSmlInternetAdapter::FetchLeafObjectL(internal)()(): Portview opening failed");
- CleanupStack::PopAndDestroy(); // portView
- CleanupStack::PopAndDestroy(pushed);
- _DBG_FILE("CNSmlInternetAdapter::FetchLeafObjectL(internal)()(): ENotFound end");
- return CSmlDmAdapter::ENotFound;
- }
- CleanupStack::PopAndDestroy(); // portView
- }
- else if(aURI.Match(_L8("AP/*/NAPID"))!= KErrNotFound ||
- aURI.Match(_L8("AP/*/ToNAPIDL"))!= KErrNotFound )
- {
- iObject = iapID;
- TPtrC8 napidUri = FirstURISeg(aURI);
- aObject.InsertL(aObject.Size(),napidUri);
-
- }
- else
- {
- iObject = 0;
-
- CCommsDbTableView* colView = iDatabase->OpenViewMatchingUintLC(serviceType,
- qDB,
- serviceId);
-
- errorCode = colView->GotoFirstRecord();
-
- TUint32 object32 = 0;
- if ( errorCode == KErrNone )
- {
- if(aURI.Find(KNSmlDdfUsePTxtLog) >= 0)
- {
- TBool objectBool = EFalse;
- TRAPD(leavecode,colView->ReadBoolL(qColumn,objectBool ));
- errorCode = leavecode;
- object32 = objectBool;
- }
- else
- {
- TRAPD(leavecode,colView->ReadUintL(qColumn,object32 ));
- errorCode = leavecode;
- }
- }
-
- if ( errorCode == KErrNone )
- {
-
- if (aURI.Find(KNSmlDdfNAPAddrTy) >= 0 || /* NAPAddrTy handling */
- aURI.Find(KNSmlDdfGPRSPDP) >= 0) /* NAPAddrTy handling */
- {
- if(object32 == RPacketContext::EPdpTypeIPv4)
- {
- aObject.InsertL(aObject.Size(),KNSmlDmApValIpv4);
- }
- else if (object32 == RPacketContext::EPdpTypeIPv6)
- {
- aObject.InsertL(aObject.Size(), KNSmlDmApValIpv6);
- }
- else if (object32 == RPacketContext::EPdpTypePPP)
- {
- _LIT8( KPpp, "PPP" );
- aObject.InsertL(aObject.Size(),KPpp);
- }
- else
- {
- aObject.InsertL(aObject.Size(),KNullDesC8);
- }
- }
- else
- {
- aObject.InsertL(aObject.Size(),SetIntObjectLC(object32));
- pushed++;
- }
- }
- else
- {
- CleanupStack::PopAndDestroy(); // colView
- CleanupStack::PopAndDestroy(pushed);
- _DBG_FILE("CNSmlInternetAdapter::FetchLeafObjectL(internal)()(): ENotFound end");
- return CSmlDmAdapter::ENotFound;
- }
- CleanupStack::PopAndDestroy(); // colView
- }
- }
-
- else if (fType == CNSmlInternetAdapter::EWap)
- { // Startpg + PxAuthId + PxAuthPW + PortNbr (BasAuthId + BasAuthPW)
- CCommsDbTableView* wapView = iDatabase->OpenViewMatchingUintLC(TPtrC(WAP_IP_BEARER),
- TPtrC(WAP_IAP),
- iapID);
-
- errorCode = wapView->GotoFirstRecord();
-
- if ( errorCode == KErrNone )
- {
- TBuf<KCommsDbSvrMaxFieldLength> columnValue;
-
- if(qColumn == TPtrC(WAP_START_PAGE))
- {
- TRAPD(leavecode,wapView->ReadUintL(TPtrC(WAP_ACCESS_POINT_ID), iWapId));
- CleanupStack::PopAndDestroy(); // wapView
- if(leavecode != KErrNone)
- {
- CleanupStack::PopAndDestroy(pushed);
- _DBG_FILE("CNSmlInternetAdapter::FetchLeafObjectL(internal)()(): EError end");
- return CSmlDmAdapter::EError;
-
- }
-
- CCommsDbTableView* wapView2 = iDatabase->OpenViewMatchingUintLC(TPtrC(WAP_ACCESS_POINT),
- TPtrC(COMMDB_ID),
- iWapId);
-
- errorCode = wapView2->GotoFirstRecord();
- if ( errorCode != KErrNone )
- {
- CleanupStack::PopAndDestroy(); // wapView2
- CleanupStack::PopAndDestroy(pushed);
- _DBG_FILE("CNSmlInternetAdapter::FetchLeafObjectL(internal)()(): ENotFound end");
- return CSmlDmAdapter::ENotFound;
- }
-
- HBufC* tmpVal = wapView2->ReadLongTextLC( qColumn );
-
- aObject.InsertL(aObject.Size(),ConvertTo8LC(tmpVal->Des()));
- CleanupStack::PopAndDestroy(); // ReadLongTextLC
- CleanupStack::PopAndDestroy(); // wapView2
- pushed++;
- }
- else
- {
- if(qColumn == TPtrC(WAP_PROXY_PORT))
- {
- TUint32 object32;
- wapView->ReadUintL(qColumn, object32);
- if(object32 == KWAPP_PORT_9200) // wappdef.h
- {
- aObject.InsertL(aObject.Size(),ConvertTo8LC(KWappPort9200));
- }
- else if(object32 == KWAPP_PORT_9201)
- {
- aObject.InsertL(aObject.Size(),ConvertTo8LC(KWappPort9201));
- }
- else if(object32 == KWAPP_PORT_9202)
- {
- aObject.InsertL(aObject.Size(),ConvertTo8LC(KWappPort9202));
- }
- else if(object32 == KWAPP_PORT_9203)
- {
- aObject.InsertL(aObject.Size(),ConvertTo8LC(KWappPort9203));
- }
- else
- {
- CleanupStack::PopAndDestroy(); // wapView
- CleanupStack::PopAndDestroy(pushed);
- _DBG_FILE("CNSmlInternetAdapter::FetchLeafObjectL(internal)()(): ENotFound end");
- return CSmlDmAdapter::ENotFound;
- }
-
- pushed++;
- }
- else
- {
- wapView->ReadTextL(qColumn, columnValue);
- aObject.InsertL(aObject.Size(),ConvertTo8LC(columnValue));
- pushed++;
- }
- CleanupStack::PopAndDestroy(); // wapView
- }
- }
- else
- {
- CleanupStack::PopAndDestroy(); // wapView
- CleanupStack::PopAndDestroy(pushed);
- _DBG_FILE("CNSmlInternetAdapter::FetchLeafObjectL(internal)()(): ENotFound end");
- return CSmlDmAdapter::ENotFound;
- }
- }
- else if (fType == CNSmlInternetAdapter::ESpec)
- {
- // name
- if ( aURI.Find( KNSmlDdfNAPName ) >= 0 )
- {
- CCommsDbTableView* tableView = iDatabase->OpenViewMatchingUintLC(serviceType,
- qDB,
- serviceId);
-
- errorCode = tableView->GotoFirstRecord();
-
- if ( errorCode == KErrNone )
- {
- TBuf<KCommsDbSvrMaxFieldLength> columnValue;
- TRAPD(leavecode,tableView->ReadTextL(qColumn, columnValue));
- if(leavecode != 0)
- {
- CleanupStack::PopAndDestroy(); // tableView
- CleanupStack::PopAndDestroy(pushed);
- _DBG_FILE("CNSmlInternetAdapter::FetchLeafObjectL(internal)()(): ENotFound end");
- return CSmlDmAdapter::ENotFound;
- }
- aObject.InsertL(aObject.Size(),ConvertTo8LC(columnValue));
- pushed++;
- }
- CleanupStack::PopAndDestroy(); // tableView
- }
- // BearerL + NoPxForL + IAPService
- else if (aURI.Find(KNSmlDdfIAPService) >= 0)
- {
- aObject.InsertL(aObject.Size(),SetIntObjectLC(serviceId));
- pushed++;
- _DBG_FILE("CNSmlInternetAdapter::FetchLeafObjectL(internal)()(): EOk end");
- CleanupStack::PopAndDestroy(pushed);
- return CSmlDmAdapter::EOk;
- }
- else if (aURI.Find(KNSmlDdfNoPxForL) >= 0) /* No proxies used handling */
- {
- TBool proxyFound = GetProxyIdL(aURI);
- if(!proxyFound)
- {
- _DBG_FILE("CNSmlInternetAdapter::FetchLeafObjectL(internal)()(): ENotFound end");
- CleanupStack::PopAndDestroy(pushed);
- return CSmlDmAdapter::ENotFound;
- }
-
- CCommsDbTableView* exeptionView = iDatabase->OpenViewMatchingUintLC(TPtrC(PROXIES),
- TPtrC(COMMDB_ID),
- iProxyId);
- errorCode = exeptionView->GotoFirstRecord();
-
- if ( errorCode == KErrNone )
- {
- HBufC* proxyExceptions = exeptionView->ReadLongTextLC(TPtrC(PROXY_EXCEPTIONS));
- pushed++;
-
- aObject.InsertL(aObject.Size(),ConvertTo8LC(*proxyExceptions));
- pushed++;
- }
- else
- {
- _DBG_FILE("CNSmlInternetAdapter::FetchLeafObjectL(internal)()(): ENotFound end");
- CleanupStack::PopAndDestroy(pushed);
- return CSmlDmAdapter::ENotFound;
- }
- CleanupStack::PopAndDestroy(); // exeptionView
-
- _DBG_FILE("CNSmlInternetAdapter::FetchLeafObjectL(internal)()(): EOk end");
- CleanupStack::PopAndDestroy(pushed);
- return CSmlDmAdapter::EOk;
- }
-
- if(aURI.Find(KNSmlDdfDirection) >= 0)
- {
- if (serviceType == TPtrC(OUTGOING_GPRS))
- {
- aObject.InsertL(aObject.Size(),KNSmlDmApValOutgoing);
- }
- else if (serviceType == TPtrC(INCOMING_GPRS))
- {
- aObject.InsertL(aObject.Size(),KNSmlDmApValIncoming);
- }
- else if (serviceType == TPtrC(LAN_SERVICE)) // Wlan ADD
- {
- aObject.InsertL(aObject.Size(),KNSmlDmApValOutgoing);
- }
- else if (serviceType == TPtrC(VPN_SERVICE))
- {
- aObject.InsertL(aObject.Size(),KNSmlDmApValOutgoing);
- }
- else
- {
- _LIT8( KDirectionUnk, "DirectionUnknown");
- aObject.InsertL(aObject.Size(),KDirectionUnk);
- }
- }
- else
- {
- if (serviceType == TPtrC(OUTGOING_GPRS) ||
- serviceType == TPtrC(INCOMING_GPRS))
- {
- if (i3GPPPS)
- {
- aObject.InsertL(aObject.Size(),KNSmlDmApVal3Gppps);
- i3GPPPS = EFalse;
- }
- else
- {
- aObject.InsertL(aObject.Size(),KNSmlDmApValGsmGprs);
- }
-
- }
-
- else if (serviceType == TPtrC(OUTGOING_GPRS) ||
- serviceType == TPtrC(INCOMING_GPRS))
- {
- if (i3GPPPS)
- {
- aObject.InsertL(aObject.Size(),KNSmlDmApVal3Gppps);
- i3GPPPS = EFalse;
- }
- else
- {
- aObject.InsertL(aObject.Size(),KNSmlDmApValGsmGprs);
- }
-
- }
- else if (serviceType == TPtrC(VPN_SERVICE))
- {
- aObject.InsertL(aObject.Size(),KNSmlDmApValVpn);
- }
-
- else if ( ( serviceType == TPtrC(LAN_SERVICE) && iWlanSupported ) )
- {
- aObject.InsertL(aObject.Size(),KNSmlDmApValWlan);
- }
- else
- {
- _LIT8( KUnkBearer, "Unknown Bearer");
- aObject.InsertL(aObject.Size(),KUnkBearer);
- }
- }
- }
- else
- {
- _DBG_FILE("CNSmlInternetAdapter::FetchLeafObjectL(internal)(): ENotFound end");
- CleanupStack::PopAndDestroy(pushed);
- return CSmlDmAdapter::ENotFound;
- }
-
- _DBG_FILE("CNSmlInternetAdapter::FetchLeafObjectL(internal)(): end");
- CleanupStack::PopAndDestroy(pushed);
- return CSmlDmAdapter::EOk;
-
- }
-
-//------------------------------------------------------------------------------
-// CSmlDmAdapter::ChildURIListL()
-//------------------------------------------------------------------------------
-void CNSmlInternetAdapter::ChildURIListL( const TDesC8& aURI,
- const TDesC8& aLUID,
- const CArrayFix<TSmlDmMappingInfo>& aPreviousURISegmentList,
- const TInt aResultsRef,
- const TInt aStatusRef )
- {
- _DBG_FILE("CNSmlInternetAdapter::ChildURIListL(): begin");
- DBG_ARGS8(_S8("AP:ChildURIListL URI - <%S> <%S>"), &aURI, &aLUID );
-
- CBufBase* currentURISegmentList = CBufFlat::NewL(128);
- CleanupStack::PushL(currentURISegmentList);
-
- TUint32 checkLUID = IntLUID(aLUID);
-
- // If this is command to proxy node we'll need to make sure that
- // the LUID is for proxy node and not AP node.
- // If this command comes to predefined AP node then
- // the LUID passed is inherited from that node and is not
- // proper proxy node.
- if ( aURI.Match(_L8("AP/*/Px/*" ))!= KErrNotFound )
- {
- TLex8 lex(aLUID);
- TUint tempLUID;
- if ( !((lex.Val( tempLUID ) == KErrNone )
- && ( tempLUID > KNSmlApProxyLowerBase )
- && ( tempLUID < KNSmlApProxyUpperBase )) )
- {
- // Non-proxy LUID
- checkLUID = 0;
- }
- }
-
- // Fetch all data for child
- if ( !checkLUID
- && ( !IsWLANfield( aURI ) || !iWlanSupported ) )
- {
- if(aURI.Match(KNSmlDdfAP)== KErrNotFound) // Not for AP
- {
- CleanupStack::PopAndDestroy(); // currentURISegmentList
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::ENotFound);
- _DBG_FILE("CNSmlInternetAdapter::ChildURIListL(): ENotFound end");
- return;
- }
- }
-
- TUint32 apId = GetAPIdFromURIL( aURI );
-
- if( aURI.Match( _L8("AP/*") ) != KErrNotFound &&
- !APExistsL( apId ) )
- {
- if ( aLUID.Length() > 0 )
- {
- // Stale data, remove mapping.
- TInt ret = iCallBack->RemoveMappingL( KNSmlInternetAdapterImplUid,
- GetDynamicAPNodeUri( aURI ), ETrue );
- }
-
- iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
- CleanupStack::PopAndDestroy(); // currentURISegmentList
- _DBG_FILE("CNSmlInternetAdapter::ChildURIListL(): AP doesn't exist: ENotFound end");
- return;
- }
-
- if( aURI.Match(_L8("AP/*" ))!= KErrNotFound &&
- aURI.Match(_L8("AP/*/*"))== KErrNotFound )
- {
- // Check if AP exists
- if(!APExistsL(checkLUID))
- {
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::ENotFound);
- CleanupStack::PopAndDestroy(); // currentURISegmentList
- _DBG_FILE("CNSmlInternetAdapter::ChildURIListL(): ENotFound end");
- return;
- }
- currentURISegmentList->InsertL( 0, KNSmlAPnode);
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EOk);
- iCallBack->SetResultsL(aResultsRef,*currentURISegmentList,KNullDesC8);
- CleanupStack::PopAndDestroy(); // currentURISegmentList
- _DBG_FILE("CNSmlInternetAdapter::ChildURIListL(): end");
- return;
- }
-
- // Check that queried proxy exists
- if (aURI.Match(_L8("AP/*/Px/*" ))!= KErrNotFound &&
- !PxExistsL(checkLUID))
- {
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::ENotFound);
- CleanupStack::PopAndDestroy(); // currentURISegmentList
- _DBG_FILE("CNSmlInternetAdapter::ChildURIListL(): ENotFound end");
- return;
- }
-
- if (aURI.Match(_L8("AP/*/Px/*" ))!= KErrNotFound &&
- aURI.Match(_L8("AP/*/Px/*/*"))== KErrNotFound )
- {
- // Check if PX exists
- if(!PxExistsL(checkLUID))
- {
- // Only WAP-data
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::ENotFound);
- CleanupStack::PopAndDestroy(); // currentURISegmentList
- _DBG_FILE("CNSmlInternetAdapter::ChildURIListL(): ENotFound end");
- return;
- }
- // List all Px
- currentURISegmentList->InsertL( 0, KNSmlPxnode );
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EOk);
- iCallBack->SetResultsL(aResultsRef,*currentURISegmentList,KNullDesC8);
- CleanupStack::PopAndDestroy(); // currentURISegmentList
- _DBG_FILE("CNSmlInternetAdapter::ChildURIListL(): OK end");
- return;
- }
-
- if (aURI.Match(_L8("AP/*/NAPDef/*" ))!= KErrNotFound &&
- aURI.Match(_L8("AP/*/NAPDef/*/*"))== KErrNotFound )
- {
- // Check if IAP has luid mapped
- HBufC8* iapIdBuf = iCallBack->GetLuidAllocL(RemoveLastSeg(aURI));
- TInt iapIdInt = GetIntObject8(iapIdBuf->Des());
-
- delete iapIdBuf;
- iapIdBuf = NULL;
-
- if ( iapIdInt > 0 )
- {
- CCommsDbTableView* iapView = iDatabase->OpenViewMatchingUintLC(
- TPtrC(IAP),TPtrC(COMMDB_ID), iapIdInt);
- TInt error = iapView->GotoFirstRecord();
- TBuf<KCommsDbSvrMaxFieldLength> serviceType;
- if (error == KErrNone)
- {
- iapView->ReadTextL(TPtrC(IAP_SERVICE_TYPE), serviceType);
- }
- CleanupStack::PopAndDestroy( iapView );
-
- // Check if NAPDef exists
- if(!NAPDefExistsL(checkLUID))
- {
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::ENotFound);
- CleanupStack::PopAndDestroy(); // currentURISegmentList
- _DBG_FILE("CNSmlInternetAdapter::ChildURIListL(): ENotFound end");
- return;
- }
- // List all NAPDef
- if(IsWlanL(aURI) && iWlanSupported )
- {
- iWlanAdapter->ChildURIListL(aURI,aLUID,aPreviousURISegmentList,aResultsRef,aStatusRef);
- CleanupStack::PopAndDestroy(); // currentURISegmentList
- _DBG_FILE("CNSmlInternetAdapter::ChildURIListL(): WLAN end");
- return;
- }
- _LIT( KGprs, "*GPRS*");
- _LIT( K3gppps, "*3GPPPS*");
- if ( serviceType.Match(KGprs) != KErrNotFound ||
- serviceType.Match(K3gppps) != KErrNotFound)
- {
- currentURISegmentList->InsertL( 0 ,KNSmlNAPDefGPRSnode);
- }
-
-#ifdef __SYNCML_DM_LSCRIPT
- currentURISegmentList->InsertL(currentURISegmentList->Size(),KNSmlLoginscriptnode);
-#endif
-
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EOk);
- iCallBack->SetResultsL(aResultsRef,*currentURISegmentList,KNullDesC8);
- }
- else
- {
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EError);
- }
- CleanupStack::PopAndDestroy(); // currentURISegmentList
- _DBG_FILE("CNSmlInternetAdapter::ChildURIListL(): end");
- return;
- }
-
-
- if ( ( aURI.Match(_L8("AP/*/WLAN")) != KErrNotFound
- || aURI.Match(_L8("AP/*/WLAN/*"))!= KErrNotFound )
- && iWlanSupported )
- {
- iWlanAdapter->ChildURIListL(aURI,aLUID,aPreviousURISegmentList,aResultsRef,aStatusRef);
- CleanupStack::PopAndDestroy(); // currentURISegmentList
- _DBG_FILE("CNSmlInternetAdapter::ChildURIListL(): WLAN end");
- return;
- }
-//
-// Get all AP numbers from IAP-table
-//
- if (aURI.Match(KNSmlDdfAP)!= KErrNotFound)
- {
- TBool inDatabase = EFalse;
-
- CCommsDbTableView* apView = iDatabase->OpenTableLC(TPtrC(IAP));
-
- TInt errorCode = apView->GotoFirstRecord();
-
- while ( errorCode == KErrNone )
- {
- TUint32 lValue;
- TBool validService = EFalse;
- TInt lLine(0);
- apView->ReadUintL(TPtrC(COMMDB_ID),lValue);
-
- TBuf<KCommsDbSvrMaxFieldLength> serviceType;
- apView->ReadTextL(TPtrC(IAP_SERVICE_TYPE), serviceType);
- TUint32 bearerId = 0;
- apView->ReadUintL(TPtrC(IAP_BEARER),bearerId);
- //
- // Skip other service types than GSM outgoing
- //
- if (serviceType == TPtrC(OUTGOING_GPRS) ||
- serviceType == TPtrC(INCOMING_GPRS))
- {
- validService = ETrue;
- }
-
- else if(serviceType == TPtrC(LAN_SERVICE) &&
- bearerId > 1)
- {
- validService = ETrue;
- }
- else if(serviceType == TPtrC(VPN_SERVICE))
- {
- validService = ETrue;
- }
- else if( ( serviceType == TPtrC(LAN_SERVICE) ) && iWlanSupported )
- {
- validService = ETrue;
- }
-
- if(validService)
- {
- // Skip others
- //
- // Check if in aPreviousURISegmentList
- //
- while(!inDatabase && lLine < aPreviousURISegmentList.Count())
- {
- TUint32 list = GetIntObject8(aPreviousURISegmentList.At(lLine).iURISegLUID);
- if(list == lValue)
- {
- inDatabase = ETrue;
- }
- else
- {
- lLine++;
- }
- }
-
- if(inDatabase)
- {
- currentURISegmentList->InsertL(currentURISegmentList->Size(),aPreviousURISegmentList.At(lLine).iURISeg);
- currentURISegmentList->InsertL(currentURISegmentList->Size(),KNSmlDmApValFSlash);
- inDatabase = EFalse;
- DBG_ARGS8(_S8("InList: Id = %d Name %S"), lValue, &aPreviousURISegmentList.At(lLine).iURISeg);
-
- }
- else
- {
- _LIT8(Kprev,"APId");
- TBuf8<9> addNAME(Kprev); // APIdnnn , nnn = profileid
- addNAME.AppendNumFixedWidth(lValue,EDecimal,3);
-
- currentURISegmentList->InsertL(currentURISegmentList->Size(),addNAME);
- currentURISegmentList->InsertL(currentURISegmentList->Size(),KNSmlDmApValFSlash);
- DBG_ARGS8(_S8("NotInList: Id = %d Name %S"), lValue, &addNAME);
-
- // KNSmlDMStart includes start text for URISeg
- TBuf8<20> addURI; // AP/APIdnnn , nnn = profileid
- addURI.Append(_L8("AP/APId"));
- addURI.AppendNumFixedWidth(lValue,EDecimal,3);
-
- TBuf8<16> addLUID;
- _LIT8(KFormat,"%d");
- addLUID.Format(KFormat,lValue);
-
- // Also added to mapping
- iCallBack->SetMappingL(addURI,addLUID);
- }
- } // Skip
- errorCode = apView->GotoNextRecord();
- }
-
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EOk);
- iCallBack->SetResultsL(aResultsRef,*currentURISegmentList,KNullDesC8);
-
- CleanupStack::PopAndDestroy(2); // apView, currentURISegmentList
-
- _DBG_FILE("CNSmlInternetAdapter::ChildURIListL(): AP end");
- return;
- }
-
- iISPId = IntLUID(aLUID);
-
-//
-// Get all NAPDef numbers
-//
- if (aURI.Match(_L8("AP/*/NAPDef"))!= KErrNotFound)
- {
- TBool inDatabase = EFalse;
- TBuf<KCommsDbSvrMaxFieldLength> serviceType;
- TUint32 serviceId;
-
- CCommsDbTableView* napdefView = iDatabase->OpenViewMatchingUintLC(TPtrC(IAP)
- ,
- TPtrC(COMMDB_ID),
- iISPId);
-
- TInt errorCode = napdefView->GotoFirstRecord();
-
- if (errorCode != KErrNone )
- {
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EError);
- _DBG_FILE("CNSmlInternetAdapter::ChildURIListL(): NAPDef error end");
- CleanupStack::PopAndDestroy(2); // napdefView, currentURISegmentList
- return;
- }
- else
- {
- napdefView->ReadTextL(TPtrC(IAP_SERVICE_TYPE), serviceType);
- napdefView->ReadUintL(TPtrC(IAP_SERVICE), serviceId); // ID
- CleanupStack::PopAndDestroy(); // napdefView
- }
-
- CCommsDbTableView* tableView = iDatabase->OpenViewMatchingUintLC(serviceType,
- TPtrC(COMMDB_ID),
- serviceId);
-
- errorCode = tableView->GotoFirstRecord();
-
- while ( errorCode == KErrNone )
- {
- TUint32 lValue;
- TInt lLine(0);
- tableView->ReadUintL(TPtrC(COMMDB_ID),lValue);
- //
- // Check if in aPreviousURISegmentList
- //
- while(!inDatabase && lLine<aPreviousURISegmentList.Count())
- {
- TUint32 list = GetIntObject8(aPreviousURISegmentList.At(lLine).iURISegLUID);
- if(list == lValue)
- {
- inDatabase = ETrue;
- }
- else
- {
- lLine++;
- }
- }
-
- if(inDatabase)
- {
- currentURISegmentList->InsertL(currentURISegmentList->Size(),aPreviousURISegmentList.At(lLine).iURISeg);
- currentURISegmentList->InsertL(currentURISegmentList->Size(),KNSmlDmApValFSlash);
- inDatabase = EFalse;
- }
- else
- {
- _LIT8(Kprev,"NAPId");
- TBuf8<15> addNAME(Kprev); // APIdnnn , nnn = profileid
- addNAME.AppendNumFixedWidth(lValue,EDecimal,3);
-
- currentURISegmentList->InsertL(currentURISegmentList->Size(),addNAME);
- currentURISegmentList->InsertL(currentURISegmentList->Size(),KNSmlDmApValFSlash);
-
-
-
- _LIT8(Kprev2,"/NAPId");
- TBuf8<80> addURI; // AP/xxx/NAPDef/NAPIdnnn , nnn = id nbr
- addURI.Append(aURI);
- addURI.Append(Kprev2);
- addURI.AppendNumFixedWidth(lValue,EDecimal,3);
-
- TBuf8<16> addLUID;
- _LIT8(KFormat,"%d");
- addLUID.Format(KFormat,lValue);
-
- // Also added to mapping
- iCallBack->SetMappingL(addURI,addLUID);
- }
- errorCode = tableView->GotoNextRecord();
- }
-
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EOk);
- iCallBack->SetResultsL(aResultsRef,*currentURISegmentList,KNullDesC8);
-
- CleanupStack::PopAndDestroy(2); // tableView, currentURISegmentList
-
- _DBG_FILE("CNSmlInternetAdapter::ChildURIListL(): AP end");
- return;
- }
-
-// Get all Px numbers
-// Check also AP-nbr + serviceType and nbr for Proxy
-// To get right data for AP
-//
- if (aURI.Match(_L8("AP/*/Px"))!= KErrNotFound)
- {
- TBool inDatabase = EFalse;
- TBuf<KCommsDbSvrMaxFieldLength> serviceType;
- TUint32 ServiceIsp;
-
- CCommsDbTableView* pxView = iDatabase->OpenViewMatchingUintLC(TPtrC(IAP),
- TPtrC(COMMDB_ID),
- iISPId);
-
- TInt errorCode = pxView->GotoFirstRecord();
-
- if (errorCode != KErrNone )
- {
- CleanupStack::PopAndDestroy(2); // pxView, currentURISegmentList
- _DBG_FILE("CNSmlInternetAdapter::ChildURIListL(): NAPDef error end");
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EError);
- return;
- }
- else
- {
- pxView->ReadTextL(TPtrC(IAP_SERVICE_TYPE), serviceType); // Type
- pxView->ReadUintL(TPtrC(IAP_SERVICE), ServiceIsp); // ID
- CleanupStack::PopAndDestroy(); // pxView
- }
-
- CCommsDbTableView* tableView = iDatabase->OpenViewMatchingTextLC(TPtrC(PROXIES),
- TPtrC(PROXY_SERVICE_TYPE),
- serviceType);
-
- errorCode = tableView->GotoFirstRecord();
-
- TBool proxyFound(false);
- while ( errorCode == KErrNone )
- {
- TUint32 lProxyIspId;
- TUint32 lProxyId;
- TInt lLine(0);
- tableView->ReadUintL(TPtrC(PROXY_ISP),lProxyIspId);
- tableView->ReadUintL(TPtrC(COMMDB_ID),lProxyId);
- if (lProxyIspId == ServiceIsp) // Right value ISP
- {
- proxyFound=true;
- tableView->ReadUintL(TPtrC(COMMDB_ID),lProxyId);
- //
- // Check if in aPreviousURISegmentList
- //
- while(!inDatabase && lLine < aPreviousURISegmentList.Count())
- {
- TUint32 list = GetIntObject8(aPreviousURISegmentList.At(
- lLine).iURISegLUID) - KNSmlApProxyLowerBase;
- if(list == lProxyId)
- {
- inDatabase = ETrue;
- }
- else
- {
- lLine++;
- }
- }
-
- if(inDatabase)
- {
- currentURISegmentList->InsertL(currentURISegmentList->Size(),aPreviousURISegmentList.At(lLine).iURISeg);
- currentURISegmentList->InsertL(currentURISegmentList->Size(),KNSmlDmApValFSlash);
- inDatabase = EFalse;
- DBG_ARGS8(_S8("InList: Id = %d Name %S"), lProxyId + KNSmlApProxyLowerBase , &aPreviousURISegmentList.At(lLine).iURISeg);
- }
- else
- {
- _LIT8(Kprev,"PXId");
- TBuf8<9> addNAME(Kprev); // PXIdnnn , nnn = profileid
- addNAME.AppendNumFixedWidth(lProxyId,EDecimal,3);
-
- currentURISegmentList->InsertL(currentURISegmentList->Size(),addNAME);
- currentURISegmentList->InsertL(currentURISegmentList->Size(),KNSmlDmApValFSlash);
- DBG_ARGS8(_S8("NotInList: Id = %d Name %S"), lProxyId, &addNAME);
- TBuf8<80> addURI; // AP/xxx/Px/PXIdnnn , nnn = id nbr
- addURI.Append(aURI);
- _LIT8( KPxid, "/PXId");
- addURI.Append( KPxid );
- addURI.AppendNumFixedWidth(lProxyId,EDecimal,3);
-
- TBuf8<16> addLUID;
- _LIT8(KFormat,"%d");
- addLUID.Format(KFormat, KNSmlApProxyLowerBase + lProxyId); // 100000 + lProxyId
-
- // Also added to mapping
- iCallBack->SetMappingL(addURI,addLUID);
- }
- }
- errorCode = tableView->GotoNextRecord();
- }
- _DBG_FILE("CNSmlInternetAdapter::ChildURIListL(): AP end");
- if(proxyFound)
- {
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EOk);
- }
- else
- {
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::ENotFound);
- }
- iCallBack->SetResultsL(aResultsRef,*currentURISegmentList,KNullDesC8);
-
- CleanupStack::PopAndDestroy(2); // tableView, currentURISegmentList
-
- return;
- }
-
- if (aURI.Match(_L8("AP/*/Bearer/*" ))!= KErrNotFound &&
- aURI.Match(_L8("AP/*/Bearer/*/*"))== KErrNotFound )
- {
- currentURISegmentList->InsertL(currentURISegmentList->Size(),(_L8("BearerL/Direction"))); // Direction
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EOk);
- iCallBack->SetResultsL(aResultsRef,*currentURISegmentList,KNullDesC8);
- CleanupStack::PopAndDestroy(); // currentURISegmentList
- _DBG_FILE("CNSmlInternetAdapter::ChildURIListL(): BearerL end");
- return;
- }
-
- if (aURI.Match(_L8("AP/*/Bearer"))!= KErrNotFound)
- {
- if(aPreviousURISegmentList.Count()>0) // Allready mapped
- {
- currentURISegmentList->InsertL(currentURISegmentList->Size(),aPreviousURISegmentList.At(0).iURISeg);
- currentURISegmentList->InsertL(currentURISegmentList->Size(),KNSmlDmApValFSlash);
- }
- else
- {
- _LIT8(Kprev,"BId");
- TBuf8<9> addNAME(Kprev); // Id
- addNAME.AppendNumFixedWidth(checkLUID,EDecimal,3);
-
- currentURISegmentList->InsertL(currentURISegmentList->Size(),addNAME);
- currentURISegmentList->InsertL(currentURISegmentList->Size(),KNSmlDmApValFSlash);
-
- TBuf8<80> addURI; // AP/xxx/NapDef/Bearer/BIdn , n=aLUID
- addURI.Append(aURI);
- _LIT8( KBid, "/BId");
- addURI.Append( KBid );
- addURI.AppendNumFixedWidth(checkLUID,EDecimal,3);
-
- TBuf8<16> addLUID;
- _LIT8(KFormat,"%d");
- addLUID.Format(KFormat,checkLUID);
-
- // Also added to mapping
- iCallBack->SetMappingL(addURI,addLUID);
- }
- _DBG_FILE("CNSmlInternetAdapter::ChildURIListL(): Bearer end");
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EOk);
- iCallBack->SetResultsL(aResultsRef,*currentURISegmentList,KNullDesC8);
-
- CleanupStack::PopAndDestroy(); // currentURISegmentList
-
- return;
- }
-
- if (aURI.Match(_L8("AP/*/DNSAddr/*" ))!= KErrNotFound &&
- aURI.Match(_L8("AP/*/DNSAddr/*/*"))== KErrNotFound )
- {
- currentURISegmentList->InsertL(currentURISegmentList->Size(),KNSmlDNSAddrNode);
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EOk);
- iCallBack->SetResultsL(aResultsRef,*currentURISegmentList,KNullDesC8);
- CleanupStack::PopAndDestroy(); // currentURISegmentList
- _DBG_FILE("CNSmlInternetAdapter::ChildURIListL(): DNSAddrL end");
- return;
- }
-
- if (aURI.Match(_L8("AP/*/DNSAddr"))!= KErrNotFound)
- {
-
- TBuf<KCommsDbSvrMaxFieldLength> ServType;
- TUint32 servId;
-
- CCommsDbTableView* napdefView = iDatabase->OpenViewMatchingUintLC(TPtrC(IAP) ,
- TPtrC(COMMDB_ID),
- iISPId);
-
- TInt errorCode = napdefView->GotoFirstRecord();
-
- if (errorCode != KErrNone )
- {
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EError);
- _DBG_FILE("CNSmlInternetAdapter::ChildURIListL(): DNSAddr error end");
- CleanupStack::PopAndDestroy(2); // napdefView, currentURISegmentList
- return;
- }
- else
- {
- napdefView->ReadTextL(TPtrC(IAP_SERVICE_TYPE), ServType);
- napdefView->ReadUintL(TPtrC(IAP_SERVICE), servId); // ID
- CleanupStack::PopAndDestroy(napdefView); // napdefView
- }
-
- CCommsDbTableView* tableView = iDatabase->OpenViewMatchingUintLC(ServType,
- TPtrC(COMMDB_ID),
- servId);
-
- errorCode = tableView->GotoFirstRecord();
-
- if ( errorCode != KErrNone )
- {
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EError);
- _DBG_FILE("CNSmlInternetAdapter::ChildURIListL(): DNSAddr error end");
- CleanupStack::PopAndDestroy(2); // tableView, currentURISegmentList
- return;
- }
- else
- {
- // Now we can read DNSAddrL values
- TInt leavecode;
- TBuf<KCommsDbSvrMaxFieldLength> columnValue;
- TBuf8<16> addLUID;
- TBuf8<80> addURI; // AP/xxx/NAPDef/DNSAddr/DNSx
- _LIT8(KFormat,"%d");
- TRAP(leavecode, tableView->ReadTextL( TPtrC(SERVICE_IP_NAME_SERVER1 ), columnValue));
- if ( ( leavecode == KErrNone ) && ( columnValue.Length() > 0 ) )
- {
- addURI.Append(aURI);
- addURI.Append(KNSmlDNS1);
- _LIT8( KDns1, "DNS1");
- currentURISegmentList->InsertL(currentURISegmentList->Size(),KDns1);
- addLUID.Format(KFormat, DnsToLuid( UriUtils::EIPv4Host, 1));
- iCallBack->SetMappingL(addURI,addLUID);
- addURI.Zero();
- }
-
- TRAP(leavecode, tableView->ReadTextL( TPtrC(SERVICE_IP_NAME_SERVER2 ), columnValue));
- if ( leavecode == KErrNone && ( columnValue.Length() > 0 ) )
- {
- if ( currentURISegmentList->Size() > 0 )
- {
- currentURISegmentList->InsertL(currentURISegmentList->Size(), KNSmlDmApValFSlash);
- }
- addURI.Append(aURI);
- addURI.Append(KNSmlDNS2);
- _LIT8( KDns2, "DNS2");
- currentURISegmentList->InsertL(currentURISegmentList->Size(),KDns2);
- addLUID.Format(KFormat, DnsToLuid( UriUtils::EIPv4Host, 2));
- iCallBack->SetMappingL(addURI,addLUID);
- addURI.Zero();
- }
-
- TRAP(leavecode, tableView->ReadTextL( TPtrC(SERVICE_IP6_NAME_SERVER1 ), columnValue));
- if ( leavecode == KErrNone && ( columnValue.Length() > 0 ) )
- {
- if ( currentURISegmentList->Size() > 0 )
- {
- currentURISegmentList->InsertL(currentURISegmentList->Size(), KNSmlDmApValFSlash);
- }
- addURI.Append(aURI);
- addURI.Append(KNSmlDNS3);
- _LIT8( KDns3, "DNS3");
- currentURISegmentList->InsertL(currentURISegmentList->Size(),KDns3);
- addLUID.Format(KFormat, DnsToLuid( UriUtils::EIPv6Host, 1));
- iCallBack->SetMappingL(addURI,addLUID);
- addURI.Zero();
- }
-
- TRAP(leavecode, tableView->ReadTextL( TPtrC(SERVICE_IP6_NAME_SERVER2 ), columnValue));
- if ( leavecode == KErrNone && ( columnValue.Length() > 0 ) )
- {
- if ( currentURISegmentList->Size() > 0 )
- {
- currentURISegmentList->InsertL(currentURISegmentList->Size(), KNSmlDmApValFSlash);
- }
- addURI.Append(aURI);
- addURI.Append(KNSmlDNS4);
- _LIT8(KDns4, "DNS4" );
- currentURISegmentList->InsertL(currentURISegmentList->Size(),KDns4 );
- addLUID.Format(KFormat, DnsToLuid( UriUtils::EIPv6Host, 2));
- iCallBack->SetMappingL(addURI,addLUID);
- }
-
- _DBG_FILE("CNSmlInternetAdapter::ChildURIListL(): DNSAddr end");
- iCallBack->SetStatusL(aStatusRef, CSmlDmAdapter::EOk);
- iCallBack->SetResultsL(aResultsRef, *currentURISegmentList, KNullDesC8);
-
- CleanupStack::PopAndDestroy(tableView);
- CleanupStack::PopAndDestroy(currentURISegmentList); // currentURISegmentList
- }
- return;
- }
-
-
- if (aURI.Match(_L8("AP/*/Port/*" ))!= KErrNotFound &&
- aURI.Match(_L8("AP/*/Port/*/*"))== KErrNotFound )
- {
- currentURISegmentList->InsertL(currentURISegmentList->Size(),KNSmlDdfPortNbr);
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EOk);
- iCallBack->SetResultsL(aResultsRef,*currentURISegmentList,KNullDesC8);
- CleanupStack::PopAndDestroy(); // currentURISegmentList
- _DBG_FILE("CNSmlInternetAdapter::ChildURIListL(): Port end");
- return;
- }
-
- if (aURI.Match(_L8("AP/*/Port"))!= KErrNotFound)
- {
-
- TUint32 iapID10 = GetAPIdFromURIL(aURI);
-
- if(WapAPExistsL(iapID10)) // WapPort
- {
- TBuf8<80> addURI; // AP/xxx/Px/Port/WAP
- addURI.Append(aURI);
- _LIT8( KWap, "/WAP");
- addURI.Append( KWap );
- _LIT8( KWap2, "WAP/");
- currentURISegmentList->InsertL(currentURISegmentList->Size(),KWap2);
- }
-
- if(PxExistsL(checkLUID)) // ProxyPort
- {
- TBuf8<80> addURI; // AP/xxx/Px/Port/PROXY
- addURI.Append(aURI);
- _LIT8( KProxy, "/PROXY");
- addURI.Append( KProxy );
- _LIT8( KProxy2, "PROXY/");
- currentURISegmentList->InsertL(currentURISegmentList->Size(),KProxy2);
- }
-
- _DBG_FILE("CNSmlInternetAdapter::ChildURIListL(): Port end");
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EOk);
- iCallBack->SetResultsL(aResultsRef,*currentURISegmentList,KNullDesC8);
-
- CleanupStack::PopAndDestroy(); // currentURISegmentList
-
- return;
- }
-
- if (aURI.Match(_L8("AP/*/NAPAuthInf/*" ))!= KErrNotFound &&
- aURI.Match(_L8("AP/*/NAPAuthInf/*/*"))== KErrNotFound )
- {
- _LIT8( KAuthFields, "AuthName/AuthSecr");
- currentURISegmentList->InsertL(currentURISegmentList->Size(),(KAuthFields));
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EOk);
- iCallBack->SetResultsL(aResultsRef,*currentURISegmentList,KNullDesC8);
- CleanupStack::PopAndDestroy(); // currentURISegmentList
- _DBG_FILE("CNSmlInternetAdapter::ChildURIListL(): NAPAuthInfL end");
- return;
- }
-
- if (aURI.Match(_L8("AP/*/NAPAuthInf"))!= KErrNotFound)
- {
- _LIT8(Kprev,"AUId");
- TBuf8<9> addNAME(Kprev); // Id
- addNAME.AppendNumFixedWidth(checkLUID,EDecimal,3);
-
- currentURISegmentList->InsertL(currentURISegmentList->Size(),addNAME);
- currentURISegmentList->InsertL(currentURISegmentList->Size(),KNSmlDmApValFSlash);
-
- TBuf8<80> addURI; // AP/xxx/NapDef/NAPAuthInf/AUIdn , n=aLUID
- addURI.Append(aURI);
- _LIT8( KAuid, "/AUId" );
- addURI.Append( KAuid );
- addURI.AppendNumFixedWidth(checkLUID,EDecimal,3);
-
- TBuf8<16> addLUID;
- _LIT8(KFormat,"%d");
- addLUID.Format(KFormat,checkLUID);
-
- // Also added to mapping
- iCallBack->SetMappingL(addURI,addLUID);
- _DBG_FILE("CNSmlInternetAdapter::ChildURIListL(): NAPAuthInf end");
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EOk);
- iCallBack->SetResultsL(aResultsRef,*currentURISegmentList,KNullDesC8);
-
- CleanupStack::PopAndDestroy(); // currentURISegmentList
-
- return;
- }
-
- if (aURI.Match(_L8("AP/*/PxAuthInf/*" ))!= KErrNotFound &&
- aURI.Match(_L8("AP/*/PxAuthInf/*/*"))== KErrNotFound )
- {
- _LIT8( KPxAuthFields, "PxAuthId/PxAuthPW");
- currentURISegmentList->InsertL(currentURISegmentList->Size(),(KPxAuthFields));
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EOk);
- iCallBack->SetResultsL(aResultsRef,*currentURISegmentList,KNullDesC8);
- CleanupStack::PopAndDestroy(); // currentURISegmentList
- _DBG_FILE("CNSmlInternetAdapter::ChildURIListL(): NAPAuthInfL end");
- return;
- }
-
- if (aURI.Match(_L8("AP/*/PxAuthInf"))!= KErrNotFound)
- {
- _LIT8(Kprev,"AUPxId");
- TBuf8<11> addNAME(Kprev); // Id
- addNAME.AppendNumFixedWidth(checkLUID,EDecimal,3);
-
- currentURISegmentList->InsertL(currentURISegmentList->Size(),addNAME);
- currentURISegmentList->InsertL(currentURISegmentList->Size(),KNSmlDmApValFSlash);
-
- TBuf8<80> addURI; // AP/xxx/Px/PxAuthInf/AUPxIdn , n=aLUID
- addURI.Append(aURI);
- _LIT8( KAupxid, "/AUPxId" );
- addURI.Append( KAupxid );
- addURI.AppendNumFixedWidth(checkLUID,EDecimal,3);
-
- _DBG_FILE("CNSmlInternetAdapter::ChildURIListL(): NAPAuthInf end");
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EOk);
- iCallBack->SetResultsL(aResultsRef,*currentURISegmentList,KNullDesC8);
-
- CleanupStack::PopAndDestroy(); // currentURISegmentList
-
- return;
- }
-
- if (aURI.Match(_L8("AP/*/ToNAPID/*" ))!= KErrNotFound &&
- aURI.Match(_L8("AP/*/ToNAPID/*/*"))== KErrNotFound )
- {
- currentURISegmentList->InsertL(currentURISegmentList->Size(),(KNSmlDdfToNAPIDL));
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EOk);
- iCallBack->SetResultsL(aResultsRef,*currentURISegmentList,KNullDesC8);
- CleanupStack::PopAndDestroy(); // currentURISegmentList
- _DBG_FILE("CNSmlInternetAdapter::ChildURIListL(): ToNAPIDL end");
- return;
- }
-
- if (aURI.Match(_L8("AP/*/ToNAPID"))!= KErrNotFound)
- {
- _LIT8(Kprev,"TId");
- TBuf8<9> addNAME(Kprev); // Id
- addNAME.AppendNumFixedWidth(checkLUID,EDecimal,3);
-
- currentURISegmentList->InsertL(currentURISegmentList->Size(),addNAME);
- currentURISegmentList->InsertL(currentURISegmentList->Size(),KNSmlDmApValFSlash);
-
- TBuf8<80> addURI; // AP/xxx/NapDef/ToNAPID/TIdn , n=aLUID
- addURI.Append(aURI);
- _LIT8( KTid, "/TId" );
- addURI.Append( KTid );
- addURI.AppendNumFixedWidth(checkLUID,EDecimal,3);
-
- _DBG_FILE("CNSmlInternetAdapter::ChildURIListL(): ToNAPID end");
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EOk);
- iCallBack->SetResultsL(aResultsRef,*currentURISegmentList,KNullDesC8);
-
- CleanupStack::PopAndDestroy(); // currentURISegmentList
-
- return;
- }
-
- if (aURI.Match(_L8("AP/*/Networks/*" ))!= KErrNotFound &&
- aURI.Match(_L8("AP/*/Networks/*/*"))== KErrNotFound )
- {
- _LIT8( KNameId, "Name/ID" );
- currentURISegmentList->InsertL(currentURISegmentList->Size(),(KNameId));
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EOk);
- iCallBack->SetResultsL(aResultsRef,*currentURISegmentList,KNullDesC8);
- CleanupStack::PopAndDestroy(); // currentURISegmentList
- _DBG_FILE("CNSmlInternetAdapter::ChildURIListL(): Networks end");
- return;
- }
-
- if (aURI.Match(_L8("AP/*/Networks"))!= KErrNotFound)
- {
- checkLUID = GetAPIdFromURIL(aURI);
-
- CCommsDbTableView* tableView = iDatabase->OpenViewMatchingUintLC(TPtrC(IAP),
- TPtrC(COMMDB_ID),
- checkLUID);
-
- TInt errorCode = tableView->GotoFirstRecord();
-
- if ( errorCode == KErrNone )
- {
- TUint32 nwLUID = 0;
- tableView->ReadUintL(TPtrC(IAP_NETWORK),nwLUID); // Networks luid
- if(!NetworkExistsL(nwLUID))
- {
- errorCode = KErrNotFound;
- }
- }
-
- CleanupStack::PopAndDestroy(); // tableView
-
- if(errorCode != KErrNone)
- {
- _DBG_FILE("CNSmlInternetAdapter::ChildURIListL(): Networks error end");
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EError);
- CleanupStack::PopAndDestroy(); // currentURISegmentList
- return;
- }
-
- if(aPreviousURISegmentList.Count()>0) // Allready mapped
- {
- currentURISegmentList->InsertL(currentURISegmentList->Size(),aPreviousURISegmentList.At(0).iURISeg);
- currentURISegmentList->InsertL(currentURISegmentList->Size(),KNSmlDmApValFSlash);
- }
- else
- {
- _LIT8(Kprev,"NwId");
- TBuf8<9> addNAME(Kprev); // Id
- addNAME.AppendNumFixedWidth(checkLUID,EDecimal,3);
-
- currentURISegmentList->InsertL(currentURISegmentList->Size(),addNAME);
- currentURISegmentList->InsertL(currentURISegmentList->Size(),KNSmlDmApValFSlash);
-
- TBuf8<80> addURI; // AP/xxx/NapDef/Networks/NwIdn , n=aLUID
- addURI.Append(aURI);
- _LIT8( KNwid, "/NwId");
- addURI.Append(KNwid);
- addURI.AppendNumFixedWidth(checkLUID,EDecimal,3);
-
- TBuf8<16> addLUID;
- _LIT8(KFormat,"%d");
- addLUID.Format(KFormat,checkLUID);
-
-
- // Also added to mapping
- iCallBack->SetMappingL(addURI,addLUID);
- }
- _DBG_FILE("CNSmlInternetAdapter::ChildURIListL(): Networks end");
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EOk);
- iCallBack->SetResultsL(aResultsRef,*currentURISegmentList,KNullDesC8);
-
- CleanupStack::PopAndDestroy(); // currentURISegmentList
-
- return;
- }
-
- if (aURI.Match(_L8("AP/*/NoPxFor/*" ))!= KErrNotFound &&
- aURI.Match(_L8("AP/*/NoPxFor/*/*"))== KErrNotFound )
- {
- currentURISegmentList->InsertL(currentURISegmentList->Size(),(KNSmlDdfNoPxForL));
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EOk);
- iCallBack->SetResultsL(aResultsRef,*currentURISegmentList,KNullDesC8);
- CleanupStack::PopAndDestroy(); // currentURISegmentList
- _DBG_FILE("CNSmlInternetAdapter::ChildURIListL(): NoPxFor end");
- return;
- }
-
- if (aURI.Match(_L8("AP/*/NoPxFor"))!= KErrNotFound)
- {
- if(aPreviousURISegmentList.Count()>0) // Allready mapped
- {
- currentURISegmentList->InsertL(currentURISegmentList->Size(),aPreviousURISegmentList.At(0).iURISeg);
- currentURISegmentList->InsertL(currentURISegmentList->Size(),KNSmlDmApValFSlash);
- }
- else
- {
- _LIT8(KexepPrev,"eXC");
- currentURISegmentList->InsertL(currentURISegmentList->Size(),KexepPrev);
- }
- _DBG_FILE("CNSmlInternetAdapter::ChildURIListL(): NoPxFor end");
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EOk);
- iCallBack->SetResultsL(aResultsRef,*currentURISegmentList,KNullDesC8);
-
- CleanupStack::PopAndDestroy(); // currentURISegmentList
-
- return;
- }
-
- if (aURI.Match(_L8("AP/*/Domain/*" ))!= KErrNotFound &&
- aURI.Match(_L8("AP/*/Domain/*/*"))== KErrNotFound )
- {
- currentURISegmentList->InsertL(currentURISegmentList->Size(),(KNSmlDdfDomainL));
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EOk);
- iCallBack->SetResultsL(aResultsRef,*currentURISegmentList,KNullDesC8);
- CleanupStack::PopAndDestroy(); // currentURISegmentList
- _DBG_FILE("CNSmlInternetAdapter::ChildURIListL(): Domain end");
- return;
- }
-
- if (aURI.Match(_L8("AP/*/Domain"))!= KErrNotFound)
- {
- if(aPreviousURISegmentList.Count()>0) // Allready mapped
- {
- currentURISegmentList->InsertL(currentURISegmentList->Size(),aPreviousURISegmentList.At(0).iURISeg);
- currentURISegmentList->InsertL(currentURISegmentList->Size(),KNSmlDmApValFSlash);
- }
- else
- {
- _LIT8(KexepPrev,"dOM");
- currentURISegmentList->InsertL(currentURISegmentList->Size(),KexepPrev);
- }
- _DBG_FILE("CNSmlInternetAdapter::ChildURIListL(): Domain end");
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EOk);
- iCallBack->SetResultsL(aResultsRef,*currentURISegmentList,KNullDesC8);
-
- CleanupStack::PopAndDestroy(); // currentURISegmentList
-
- return;
- }
-
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EOk);
- iCallBack->SetResultsL(aResultsRef,*currentURISegmentList,KNullDesC8);
- _DBG_FILE("CNSmlInternetAdapter::ChildURIListL(): end");
-
- CleanupStack::PopAndDestroy(); // currentURISegmentList
-
- return;
- }
-
-//------------------------------------------------------------------------------
-// CNSmlInternetAdapter::AddNodeBufferL()
-// Inserts new AP-data to database
-//------------------------------------------------------------------------------
-void CNSmlInternetAdapter::AddNodeBufferL( const TDesC8& aURI,
- const TDesC8& /*aParentLUID*/,
- const TInt aStatusRef,
- const TBool aDnsUpd,
- const TBool aWlan )
- {
- TInt index = -1;
-
- for(TInt i = 0; i<iBuffer->Count(); i++)
- {
- TPtrC8 parentUri = FirstURISeg(aURI);
- if(iBuffer->At(i).iMappingName->Compare(parentUri) == 0 )
- {
- index = i;
- break;
- }
- }
-
- if(index<0)
- {
- TNSmlAPBufferElement newNode;
- newNode.iMappingName = aURI.AllocLC();
-
- NextAPNameL(*LastURISeg(aURI).AllocLC());
- CleanupStack::PopAndDestroy();
-
- newNode.iName = iIAPName.AllocLC();
- newNode.iNodeBuf = new (ELeave) CArrayFixFlat <TNSmlAPAddElement> (KNSmlAPGranularity);
- newNode.iWlanNodeBuf = new (ELeave) CArrayFixFlat <TNSmlAPAddElement> (KNSmlAPGranularity);
- newNode.iExecuted = EFalse;
- newNode.iBearer = EFalse;
- newNode.iDirection = EFalse;
- newNode.iNameReceived = EFalse;
- if ( aDnsUpd )
- {
- newNode.iDnsUpdateBuf = ETrue;
- }
- else
- {
- newNode.iDnsUpdateBuf = EFalse;
- }
- newNode.iLuid = 0;
- iBuffer->AppendL(newNode);
- CleanupStack::Pop(2); //newNode.iMappingName,newNode.iName
-
- index = iBuffer->Count() - 1;
- }
-
- if ( !aDnsUpd )
- {
- TNSmlAPAddElement newCommand;
- newCommand.iUri = aURI.AllocLC();
- newCommand.iData = 0;
- newCommand.iStatusRef = aStatusRef;
- newCommand.iLeaf = EFalse;
- newCommand.iDone = EFalse;
-
- TPtrC8 parentUri = FirstURISeg(aURI);
- newCommand.iLuid = iCallBack->GetLuidAllocL( parentUri );
-
- if ( aWlan )
- {
- iBuffer->At(index).iWlanNodeBuf->AppendL(newCommand);
- }
- else
- {
- iBuffer->At(index).iNodeBuf->AppendL(newCommand);
- }
- CleanupStack::Pop(); //newCommand.iUri
- }
- }
-
-//------------------------------------------------------------------------------
-// CNSmlInternetAdapter::AddLeafBufferL()
-//------------------------------------------------------------------------------
-void CNSmlInternetAdapter::AddLeafBufferL( const TDesC8& aURI,
- const TDesC8& aParentLUID,
- const TDesC8& aObject,
- const TDesC8& /*aType*/,
- const TInt aStatusRef,
- const TBool aWlan )
- {
- TInt index = -1;
-
- for(TInt i = 0; i<iBuffer->Count(); i++)
- {
- TPtrC8 parentUri = FirstURISeg(aURI);
- if(iBuffer->At(i).iMappingName->Compare(parentUri) == 0 )
- {
- index = i;
- break;
- }
- }
-
- if( index<0 )
- {
- if ( aParentLUID.Length() < 0 )
- {
- DBG_ARGS8(_S8("AP:AddLeafBufferL URI - <%S> <%S> NOTFOUND"), &aURI, &aParentLUID );
- iCallBack->SetStatusL(aStatusRef, CSmlDmAdapter::ENotFound);
- return;
- }
- else
- {
- // this means update to DNSAddr/<X>
- TPtrC8 apURI = FirstURISeg(aURI);
- HBufC8* luid = iCallBack->GetLuidAllocL(apURI);
- CleanupStack::PushL( luid );
-
- AddNodeBufferL( apURI, luid->Des(), -2, ETrue );
- iDnsIpv4Pri = 0;
- iDnsIpv6Pri = 0;
-
- CleanupStack::PopAndDestroy( luid );
- index = 0;
- }
- }
-
- TNSmlAPAddElement newCommand;
-
- newCommand.iUri = aURI.AllocLC(); //aURI.AllocLC();
- newCommand.iData = aObject.AllocLC();
- newCommand.iStatusRef = aStatusRef;
- newCommand.iLuid = aParentLUID.AllocLC();
- newCommand.iLeaf = ETrue;
- newCommand.iDone = EFalse;
-
- if ( aWlan )
- {
- iBuffer->At(index).iWlanNodeBuf->AppendL(newCommand);
- }
- else
- {
- iBuffer->At(index).iNodeBuf->AppendL(newCommand);
- }
-
- CleanupStack::Pop(3); //newCommand.iLastUriSeg, newCommand.iData, newCommand.iLuid
-
- if (aURI.Find(KNSmlDdfBearerL) >= 0 ) // Bearer added
- {
- if (aObject.Match(KNSmlDmApValGsmGprs)!= KErrNotFound)
- {
- iBuffer->At(index).iBearer = ETrue;
- }
-
- else if (aObject.Match(KNSmlDmApVal3Gppps) != KErrNotFound ||
- aObject.Match(KNSmlDmApValVpn) != KErrNotFound )
- {
- iBuffer->At(index).iBearer = ETrue;
- }
- if ( ( aObject.Match(KNSmlDmApValWlan) != KErrNotFound ) && iWlanSupported ) // Valid Bearer
- {
- iBuffer->At(index).iBearer = ETrue;
- }
- }
-
- if (aURI.Find(KNSmlDdfDirection) >= 0 ) // Direction added
- {
- iBuffer->At(index).iDirection = ETrue;
- }
-
- if ( aURI.Match(_L8("AP/*/NAPDef/*/*" ))!= KErrNotFound &&
- aURI.Match(_L8("AP/*/NAPDef/*/*/*"))== KErrNotFound &&
- LastURISeg(aURI).Compare( KNSmlDdfNAPName ) == 0 )
- {
- iIAPExists = EFalse;
- iBuffer->At(index).iNameReceived = ETrue;
-
- delete iBuffer->At(index).iName;
- iBuffer->At(index).iName = 0;
-
- iBuffer->At(index).iName = aObject.AllocLC();
- iIAPName.Copy( aObject );
- CleanupStack::Pop();
-
- // Check if Name and LUID match
- TPtrC qTable = TPtrC(IAP); // Check if IAP-table free
- TPtrC qDB = TPtrC(COMMDB_ID);
- TPtrC8 parentUri = FirstURISeg(aURI);
- HBufC8* luid = iCallBack->GetLuidAllocL( parentUri );
- CleanupStack::PushL( luid );
-
- CCommsDbTableView* tableView = iDatabase->OpenViewMatchingUintLC(qTable,
- qDB,
- IntLUID( *luid ) );
-
-
- TInt errorCode = tableView->GotoFirstRecord();
- if( errorCode != KErrNotFound )
- {
- // Check the name
- TBuf8<KCommsDbSvrMaxFieldLength> name;
- tableView->ReadTextL( TPtrC(COMMDB_NAME ), name);
- if ( name.Compare( aObject ) != 0 )
- {
- // Not correct name
- // Remove all mappings from AP/xxx level
- TInt ret = iCallBack->RemoveMappingL( KNSmlInternetAdapterImplUid,
- GetDynamicAPNodeUri( aURI ) , ETrue );
- iPrevURI->Des().Format( KNullDesC8 );
- iPrevLUID = 0;
- }
- else
- {
- iIAPExists = ETrue;
- iLeafType = EDMUpdate;
- }
- }
- CleanupStack::PopAndDestroy( tableView );
- CleanupStack::PopAndDestroy( luid );
- }
-//
-
-// If Bearer data + Direction + name => add is possible for AP
-//
- if (iBuffer->At(index).iDirection &&
- iBuffer->At(index).iBearer &&
- iBuffer->At(index).iNameReceived &&
- !iExecutingBuffer )
- {
- iBearer.Zero();
- iDirection = ECommDbConnectionDirectionUnknown;
- ExecuteBufferL(aURI);
-
- }
- }
-
-//------------------------------------------------------------------------------
-// CNSmlInternetAdapter::AddNodeObjectL()
-// Inserts new AP-data to database
-//------------------------------------------------------------------------------
-void CNSmlInternetAdapter::AddNodeObjectL( const TDesC8& aURI,
- const TDesC8& aParentLUID,
- const TInt aStatusRef )
- {
- _DBG_FILE("CNSmlInternetAdapter::AddNodeObjectL(): begin");
-
- DBG_ARGS8(_S8("CNSmlInternetAdapter::AddNodeObjectL(): aURI=<%S>, aParentLUID=<%S>"), &aURI, &aParentLUID);
-
- if (iLeafType == EDMUpdate && iExecutingBuffer )
- {
- // This is an update to an old IAP. All node additions return KErrAlreadyExists.
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EAlreadyExists); // EError
- _DBG_FILE("CNSmlInternetAdapter::AddNodeObjectL(): EAlreadyExists end");
- return;
- }
-
- // Save LUID to local variable to be able to reset the value, if needed.
- TBuf8<KSmlMaxURISegLen> parentLUID;
- parentLUID.Zero();
- parentLUID = aParentLUID;
-
- TUint32 apId = GetAPIdFromURIL( aURI );
-
- if( parentLUID.Length() > 0 && IntLUID(parentLUID) > 0 &&
- !APExistsL( apId ) )
- {
- // AP has been deleted. Handle as new data.
- _DBG_FILE("CNSmlInternetAdapter::AddNodeObjectL(): parentLUID.Length() > 0 && !APExistsL() -> Remove mapping ");
- TInt ret = iCallBack->RemoveMappingL( KNSmlInternetAdapterImplUid,
- GetDynamicAPNodeUri( aURI ) , ETrue );
- if(ret)
- {
- iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
- return;
- }
- parentLUID.Zero();
- iPrevURI->Des().Format( KNullDesC8 );
- iPrevLUID = 0;
- }
-
- if(parentLUID.Length()<=0)
- {
- // Check OOD before saving new
- RFs fs;
- User::LeaveIfError( fs.Connect() );
- CleanupClosePushL(fs);
-
- if (SysUtil::FFSSpaceBelowCriticalLevelL(&fs, KNSmlInternetAdapterFatMinSize))
- {
- CleanupStack::PopAndDestroy(); // fs
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EDiskFull);
- _DBG_FILE("CNSmlInternetAdapter::AddNodeObjectL(): DISK FULL end");
- return;
- // do not write
- }
- CleanupStack::PopAndDestroy(); //fs
- }
-//
-// Check if AP-add
-//
- if(( aURI.Match(_L8("AP/*" ))!= KErrNotFound &&
- aURI.Match(_L8("AP/*/*"))== KErrNotFound ) ||
- ( aURI.Match(_L8("AP/*/NAPDef/*" ))!= KErrNotFound &&
- aURI.Match(_L8("AP/*/NAPDef/*/*"))== KErrNotFound ) ||
- aURI.Match(_L8("AP/*/NAPDef" ))!= KErrNotFound ||
- aURI.Match(_L8("AP/*/NAPDef/*/Bearer"))!= KErrNotFound ||
- ( aURI.Match(_L8("AP/*/NAPDef/*/Bearer/*" ))!= KErrNotFound &&
- aURI.Match(_L8("AP/*/NAPDef/*/Bearer/*/*"))== KErrNotFound ) ||
- aURI.Match(_L8("*/WLAN*" )) != KErrNotFound)
- {
- if( ( parentLUID.Length()<=0 ) && ( aURI.Match(_L8("*/WLAN*" )) != KErrNotFound ) )
- {
- AddNodeBufferL(aURI,parentLUID,aStatusRef, EFalse, ETrue);
- return;
- }
- if(parentLUID.Length()<=0)
- {
- AddNodeBufferL(aURI,parentLUID,aStatusRef, EFalse);
- return;
- }
-
- if( iTransactionCommitted && !iDatabase->InTransaction() )
- {
-
- _DBG_FILE("CNSmlInternetAdapter::AddNode object, begin commsdb transaction ");
- TInt codeBegin = iDatabase->BeginTransaction();
- TInt retry = KBeginTransRetryCount;
- if( codeBegin == KErrNone )
- {
- iTransactionCommitted = EFalse;
- }
- DBG_ARGS8(_S8("CNSmlInternetAdapter::AddNode object iDatabase->Begintransaction start of addobjectL return code = %d"),codeBegin);
- if( codeBegin == KErrLocked )
- {
- _DBG_FILE("CNSmlInternetAdapter::Addnodeobject Database->Begintransaction has returned KErrLocked");
- while ( retry > 0 && codeBegin == KErrLocked )
- {
- User::After(KBeginTransRetryDelay);
- codeBegin = iDatabase->BeginTransaction();
- DBG_ARGS8(_S8("CNSmlInternetAdapter::AddNode object iDatabase->Begintransaction after 2 seconds of wait of addobjectL return code = %d"),codeBegin);
- retry--;
- }
-
- if( codeBegin == KErrNone )
- {
- iTransactionCommitted = EFalse;
- _DBG_FILE("CNSmlInternetAdapter::AddNode object transaction commited is false ");
- }
-
- }
-
-
- }
- if ( ( aURI.Match(_L8("*/WLAN*" )) != KErrNotFound ) && iWlanSupported )
- {
- DBG_ARGS8(_S8("To WlanAdapter::AddNodeObjectL - uri: <%S> to parentLUID: <%S>"), &aURI, &parentLUID );
- iWlanAdapter->AddNodeObjectL( aURI, parentLUID, aStatusRef );
- return;
- }
-
- TInt pluid = IntLUID(parentLUID);
-
- if(pluid < 0)
- {
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EOk);
- _DBG_FILE("CNSmlInternetAdapter::AddNodeObjectL(): end");
- return;
- }
- iIAPId = pluid;
-
- TPtrC qTable = TPtrC(IAP); // Check if IAP-table free
- TPtrC qDB = TPtrC(COMMDB_ID);
-
- //Check if URI is /AP/*/NAPDef/* then it should be check IAP ID in DB not IAPService
- if(( iIAPId > 0 ) && ((aURI.Match(_L8("AP/*/NAPDef/*" ))!= KErrNotFound) || (aURI.Match(_L8("AP/*/NAPDef/*/Bearer/*" ))!= KErrNotFound)))
- {
- //Get parent UID and check if that exist if not add
- iIAPId = GetAPIdFromURIL(aURI);
-
- }
- CCommsDbTableView* tableView = iDatabase->OpenViewMatchingUintLC(qTable,
- qDB,
- iIAPId);
-
- TInt errorCode = tableView->GotoFirstRecord();
-
- CleanupStack::PopAndDestroy(tableView);
-
- // Node allready exists => No adding possible
- if ( errorCode == KErrNone )
- {
- if ( !iExecutingBuffer )
- {
- AddNodeBufferL(aURI,parentLUID,aStatusRef, EFalse);
- }
- else
- {
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EAlreadyExists); // EError
- _DBG_FILE("CNSmlInternetAdapter::AddNodeObjectL(): EAlreadyExists end");
- }
- return;
- }
- else if ( iIAPId == 0 )
- {
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::ENotFound);
- _DBG_FILE("CNSmlInternetAdapter::AddNodeObjectL(): ENotFound end");
- return;
- }
- else if( iIAPId > 0 && errorCode == KErrNotFound) // Stale data, needs update
- {
-
- _DBG_FILE("CNSmlInternetAdapter::AddNodeObjectL(): stale data Add to buffer");
- AddNodeBufferL(aURI,parentLUID,aStatusRef, EFalse);
- iStaleMapUpdate=ETrue;
- return;
- }
-
- }
- else if (aURI.Match(_L8("AP/*/Px/*" ))!= KErrNotFound && // How to check if already added
- aURI.Match(_L8("AP/*/Px/*/*"))== KErrNotFound ) // dm-tree knows last LUID
- {
- if(parentLUID.Length()<=0)
- {
- AddNodeBufferL(aURI,parentLUID,aStatusRef, EFalse);
- return;
- }
-
- // Check if already exists on database (=> only One possible for AP)
- if(GetProxyIdL(aURI))
- {
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EAlreadyExists);
- _DBG_FILE("CNSmlInternetAdapter::AddNodeObjectL(): EAlreadyExists end");
- return;
- }
-
- TUint32 iapID = GetAPIdFromURIL(aURI);
-
- // IAP-table search serviceType (=Bearer)
- CCommsDbTableView* iapView = iDatabase->OpenViewMatchingUintLC(TPtrC(IAP),
- TPtrC(COMMDB_ID),
- iapID);
-
- TInt errorCode = iapView->GotoFirstRecord();
-
- // Read serviceType from (IAP)
- if ( errorCode == KErrNone )
- {
- iapView->ReadTextL(TPtrC(IAP_SERVICE_TYPE), iProxyServiceType);
- iapView->ReadUintL(TPtrC(IAP_SERVICE), iProxyISP);
- CleanupStack::PopAndDestroy(); // iapView
- }
- else if( iapID > 0 && errorCode == KErrNotFound) // Stale data, needs update
- {
-
- CleanupStack::PopAndDestroy(); // iapViewv
- _DBG_FILE("CNSmlInternetAdapter::AddNodeObjectL(): stale data for proxy this as new AP ");
- AddNodeBufferL(aURI,parentLUID,aStatusRef, EFalse);
- iStaleMapUpdate=ETrue;
- return;
- }
- else
- {
- CleanupStack::PopAndDestroy(); // iapView
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::ENotFound);
- _DBG_FILE("CNSmlInternetAdapter::AddNodeObjectL(): ENotFound end");
- return;
- }
-
- CCommsDbTableView* proxyTable;
-
- proxyTable = iDatabase->OpenTableLC(TPtrC(PROXIES));
-
- TInt initOK = proxyTable->InsertRecord(iapID);
-
- TInt retry = KBeginTransRetryCount;
- while ( retry > 0 && initOK != KErrNone )
- {
- User::After( KBeginTransRetryDelay );
- initOK = proxyTable->InsertRecord( iapID );
- retry--;
- }
-
- if( initOK == KErrNone )
- {
- iProxyServerName = LastURISeg(aURI); // Name from URI
- initOK = InitializeProxyL( proxyTable );
-
- User::After( KBeginTransRetryDelay );
- if ( initOK == KErrNone)
- {
- TUint32 newId = 0;
- initOK = proxyTable->PutRecordChanges();
-
- retry = KBeginTransRetryCount;
- while ( retry > 0 && initOK != KErrNone )
- {
- User::After( KBeginTransRetryDelay );
- initOK = proxyTable->PutRecordChanges();
- retry--;
- }
-
- proxyTable->ReadUintL(TPtrC(COMMDB_ID), newId);
- //
- // Set mapping-data
- //
- TBuf8<16> addLUID;
- _LIT8(KFormat,"%d");
- addLUID.Format(KFormat,KNSmlApProxyLowerBase + newId); // 100000 + lProxyId
-
- // Also added to mapping
- iCallBack->SetMappingL(aURI,addLUID);
- }
- else
- {
- proxyTable->CancelRecordChanges();
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EError);
- _DBG_FILE("CNSmlInternetAdapter::AddNodeObjectL(): EError end");
- }
- }
- else
- {
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EError);
- _DBG_FILE("CNSmlInternetAdapter::AddNodeObjectL(): EError end Insert failed");
- }
- CleanupStack::PopAndDestroy(); // proxyTable
-
- }
- else if (aURI.Match(_L8("AP/*/Px/*/*"))!= KErrNotFound )
- {
- if(parentLUID.Length()<=0)
- {
- AddNodeBufferL(aURI,parentLUID,aStatusRef, EFalse);
- _DBG_FILE("CNSmlInternetAdapter::AddNodeObjectL(): end");
- return;
- }
-
- TInt pluid = IntLUID(parentLUID);
-
- if(pluid < 0)
- {
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EOk);
- _DBG_FILE("CNSmlInternetAdapter::AddNodeObjectL(): end");
- return;
- }
- else
- {
- TUint32 apID = GetAPIdFromURIL(aURI);
- CCommsDbTableView* tableView = iDatabase->OpenViewMatchingUintLC(TPtrC(IAP),
- TPtrC(COMMDB_ID),
- apID);
- TInt errorCode = tableView->GotoFirstRecord();
- CleanupStack::PopAndDestroy(tableView);
- if( apID > 0 && errorCode == KErrNotFound) // Stale data, needs update
- {
- _DBG_FILE("CNSmlInternetAdapter::AddNodeObjectL(): stale data for proxy this as new AP ");
- AddNodeBufferL(aURI,parentLUID,aStatusRef, EFalse);
- iStaleMapUpdate=ETrue;
- return;
- }
-
- }
- }
-
- else if (aURI.Match(_L8("AP/*/Px"))!= KErrNotFound )
- {
- if(parentLUID.Length()<=0)
- {
- AddNodeBufferL(aURI,parentLUID,aStatusRef, EFalse);
- return;
- }
-
- TInt pluid = IntLUID(parentLUID);
-
- if(pluid < 0)
- {
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EOk);
- _DBG_FILE("CNSmlInternetAdapter::AddNodeObjectL(): end");
- return;
- }
- else if(pluid == 0)
- {
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EError);
- _DBG_FILE("CNSmlInternetAdapter::AddNodeObjectL(): EError");
- return;
- }
- else
- {
- TUint32 apID = GetAPIdFromURIL(aURI);
- CCommsDbTableView* tableView = iDatabase->OpenViewMatchingUintLC(TPtrC(IAP),
- TPtrC(COMMDB_ID),
- apID);
- TInt errorCode = tableView->GotoFirstRecord();
- CleanupStack::PopAndDestroy(tableView);
- if( apID > 0 && errorCode == KErrNotFound) // Stale data, needs update
- {
- _DBG_FILE("CNSmlInternetAdapter::AddNodeObjectL(): stale data for proxy this as new AP ");
- AddNodeBufferL(aURI,parentLUID,aStatusRef, EFalse);
- iStaleMapUpdate=ETrue;
- return;
- }
- }
- }
-
- else if (aURI.Match(_L8("AP/*/Networks/*" ))!= KErrNotFound &&
- aURI.Match(_L8("AP/*/Networks/*/*"))== KErrNotFound )
- {
- iIAPId = IntLUID(parentLUID);
- }
-
-
-
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EOk);
- _DBG_FILE("CNSmlInternetAdapter::AddNodeObjectL(): end");
- return;
- }
-
-//------------------------------------------------------------------------------
-// CNSmlInternetAdapter::ExecuteCommandL
-// not supported
-//------------------------------------------------------------------------------
-
-
-void CNSmlInternetAdapter::ExecuteCommandL( const TDesC8&/* aURI*/,
- const TDesC8& /*aLUID*/,
- const TDesC8& /*aArgument*/,
- const TDesC8& /*aType*/,
- TInt aStatusRef )
- {
- _DBG_FILE("CNSmlInternetAdapter::ExecuteCommandL(): begin");
- iCallBack->SetStatusL(aStatusRef, CSmlDmAdapter::EError);
- _DBG_FILE("CNSmlInternetAdapter::ExecuteCommandL(): end");
- }
-
-//------------------------------------------------------------------------------
-// CNSmlInternetAdapter::ExecuteCommandL ( .. RWriteStream ..)
-// not supported
-//------------------------------------------------------------------------------
-
-
-void CNSmlInternetAdapter::ExecuteCommandL( const TDesC8& /*aURI*/,
- const TDesC8& /*aLUID*/,
- RWriteStream*& /*aStream*/,
- const TDesC8& /*aType*/,
- TInt aStatusref )
- {
- _DBG_FILE("CNSmlInternetAdapter::ExecuteCommandL(): begin");
- iCallBack->SetStatusL(aStatusref, CSmlDmAdapter::EError);
- _DBG_FILE("CNSmlInternetAdapter::ExecuteCommandL(): end");
- }
-
-//------------------------------------------------------------------------------
-// CNSmlInternetAdapter::CopyCommandL
-// not supported
-//------------------------------------------------------------------------------
-
-
-void CNSmlInternetAdapter::CopyCommandL( const TDesC8& /*aTargetURI*/,
- const TDesC8& /*aTargetLUID*/,
- const TDesC8& /*aSourceURI*/,
- const TDesC8& /*aSourceLUID*/,
- const TDesC8& /*aType*/,
- TInt aStatusRef )
- {
- _DBG_FILE("CNSmlInternetAdapter::CopyCommandL(): begin");
- iCallBack->SetStatusL(aStatusRef, CSmlDmAdapter::EError);
- _DBG_FILE("CNSmlInternetAdapter::CopyCommandL(): end");
- }
-
-//------------------------------------------------------------------------------
-// CNSmlInternetAdapter::StartAtomicL
-// not supported
-//------------------------------------------------------------------------------
-
-
-void CNSmlInternetAdapter::StartAtomicL()
- {
- _DBG_FILE("CNSmlInternetAdapter::StartAtomicL(): begin");
- _DBG_FILE("CNSmlInternetAdapter::StartAtomicL(): end");
- }
-
-//------------------------------------------------------------------------------
-// CNSmlInternetAdapter::CommitAtomicL
-// not supported
-//------------------------------------------------------------------------------
-
-
-void CNSmlInternetAdapter::CommitAtomicL()
- {
- _DBG_FILE("CNSmlInternetAdapter::CommitAtomicL(): begin");
- _DBG_FILE("CNSmlInternetAdapter::CommitAtomicL(): end");
- }
-
-//------------------------------------------------------------------------------
-// CNSmlInternetAdapter::RollbackAtomicL
-// not supported
-//------------------------------------------------------------------------------
-
-void CNSmlInternetAdapter::RollbackAtomicL()
- {
- _DBG_FILE("CNSmlInternetAdapter::RollbackAtomicL(): begin");
- _DBG_FILE("CNSmlInternetAdapter::RollbackAtomicL(): end");
- }
-
-//------------------------------------------------------------------------------
-// CNSmlInternetAdapter::StreamingSupport
-// returns EFalse
-//------------------------------------------------------------------------------
-
-TBool CNSmlInternetAdapter::StreamingSupport( TInt& /*aItemSize*/ )
- {
- _DBG_FILE("CNSmlInternetAdapter::StreamingSupport(): begin");
- _DBG_FILE("CNSmlInternetAdapter::StreamingSupport(): end");
- return EFalse;
- }
-
-//------------------------------------------------------------------------------
-// CNSmlInternetAdapter::StreamCommittedL
-// not used in this adapter
-//------------------------------------------------------------------------------
-
-void CNSmlInternetAdapter::StreamCommittedL()
- {
- _DBG_FILE("CNSmlInternetAdapter::StreamCommittedL(): begin");
- _DBG_FILE("CNSmlInternetAdapter::StreamCommittedL(): end");
- }
-
-//------------------------------------------------------------------------------
-// CNSmlInternetAdapter::CompleteOutstandingCmdsL
-//
-//------------------------------------------------------------------------------
-void CNSmlInternetAdapter::CompleteOutstandingCmdsL()
- {
-
- _DBG_FILE("CNSmlInternetAdapter::CompleteOutstandingCmdsL(): begin");
-//
-// Handle possible unhandled buffered nodes
-//
- if( !iDatabase->InTransaction() )
- {
- _DBG_FILE("CompleteOutstandingCmds: Try first begintransaction.");
- TInt err = iDatabase->BeginTransaction();
- if( err == KErrLocked )
- {
- _DBG_FILE("CompleteOutstandingCmds: CommsDat was locked.");
- TInt retry = KBeginTransRetryCount;
- while ( retry > 0 && err == KErrLocked )
- {
- User::After(KBeginTransRetryDelay);
- _DBG_FILE("CompleteOutstandingCmds: Slept 1 second. Try again");
- err = iDatabase->BeginTransaction();
- retry--;
- }
- if(err != KErrNone)
- {
- _DBG_FILE("CNSmlInternetAdapter: BeginTransaction failed completely.");
- User::Leave( err );
- }
- }
- }
- _DBG_FILE("CompleteOutstandingCmds: BeginTransaction was successful");
-
- iDnsIpv4Pri = 0;
- iDnsIpv6Pri = 0;
- _LIT8( KDummy, "/Dummy" );
- for(TInt h = iBuffer->Count()-1; h >= 0; h--) // Through buffers
- {
- TBuf8<80> commandURI;
- commandURI.Append(iBuffer->At(h).iMappingName->Des());
- commandURI.Append( KDummy ); // Removed on execution
- ExecuteBufferL(commandURI, ETrue);
- }
- iDnsUpdate = EFalse;
- iDnsIpv4Pri = 0;
- iDnsIpv6Pri = 0;
- iBuffer->Reset();
-
- if ( iWlanSupported )
- {
- iWlanAdapter->CompleteOutstandingCmdsL(); // Execute possible unhandled WLAN commands
- }
-
- iNetworkId = KErrNotFound;
-
- iDatabase->CommitTransaction();
- iTransactionCommitted = ETrue;
- _DBG_FILE("CNSmlInternetAdapter::CompleteOutstandingCmdsL(): end");
- }
-
-//=============================================
-// CNSmlInternetAdapter::GetAPField()
-// Match URI fieldname to
-// CommsDb table and column
-//
-//=============================================
-TBool CNSmlInternetAdapter::GetAPField(TPtrC& aTableName,TPtrC& aColumn) const
- {
- _DBG_FILE("CNSmlInternetAdapter::GetAPField(): Start");
-
- TBool fRet = EFalse;
-
- aColumn.Set(TPtrC(KNullDesC));
-
- if (iField->Compare(KNSmlDdfAuthName) == 0)
- {
- if( aTableName == TPtrC(OUTGOING_GPRS) ||
- aTableName == TPtrC(INCOMING_GPRS))
- {
- aColumn.Set(TPtrC(SERVICE_IF_AUTH_NAME));
- }
- else
- {
- return fRet;
- }
- fRet = ETrue;
- }
- else if (iField->Compare(KNSmlDdfNAPName) == 0)
- {
- aColumn.Set(TPtrC(COMMDB_NAME));
- fRet = ETrue;
- }
- else if (iField->Compare(KNSmlDdfToNAPIDL) == 0)
- {
- aColumn.Set(TPtrC(COMMDB_ID));
- fRet = ETrue;
- }
- else if (iField->Compare(KNSmlDdfNAPID) == 0)
- {
- aColumn.Set(TPtrC(COMMDB_ID));
- fRet = ETrue;
- }
- else if (iField->Compare(KNSmlDdfPxId) == 0)
- {
- aColumn.Set(TPtrC(COMMDB_ID));
- fRet = ETrue;
- }
- else if (iField->Compare(KNSmlDdfPxAddr) == 0)
- {
- aTableName.Set(TPtrC(PROXIES));
- aColumn.Set(TPtrC(PROXY_SERVER_NAME));
- fRet = ETrue;
- }
- else if (iField->Compare(KNSmlDdfNAPAddrTy) == 0) // Is valid
- {
- return fRet;
- }
- else if (iField->Compare(KNSmlDdfDNSAddrL) == 0)
- {
- fRet = ETrue;
- }
- else if (iField->Compare(KNSmlDdfDNSPriority) == 0)
- {
- fRet = ETrue;
- }
- else if (iField->Compare(KNSmlDdfDNSAddrTy) == 0)
- {
- fRet = ETrue;
- }
- else if (iField->Compare(KNSmlDdfNAPAddr) == 0)
- {
- if( aTableName == TPtrC(OUTGOING_GPRS) ||
- aTableName == TPtrC(INCOMING_GPRS))
- {
- aColumn.Set(TPtrC(GPRS_APN)); // GPRS_PDP_ADDRESS
- }
- else if(aTableName == TPtrC(LAN_SERVICE)) // Wlan ADD
- {
- aColumn.Set(TPtrC(ISP_IP_ADDR));
- // Leni: Should this be LAN_IP_ADDR ??
- }
- else
- {
- return fRet;
- }
- fRet = ETrue;
- }
- else if (iField->Compare(KNSmlDdfBearerL) == 0)
- {
- aTableName.Set(TPtrC(IAP));
- fRet = ETrue;
- }
- else if (iField->Compare(KNSmlDdfDirection) == 0)
- {
- aTableName.Set(TPtrC(IAP));
- fRet = ETrue;
- }
- else if (iField->Compare(KNSmlDdfAuthSecr) == 0)
- {
- if( aTableName == TPtrC(OUTGOING_GPRS) ||
- aTableName == TPtrC(INCOMING_GPRS))
- {
- aColumn.Set(TPtrC(SERVICE_IF_AUTH_PASS));
- }
- else
- {
- return fRet; // NotValid
- }
- fRet = ETrue;
- }
- else if (iField->Compare(KNSmlDdfPortNbr) == 0)
- {
- if(iWapPort)
- {
- aTableName.Set(TPtrC(WAP_IP_BEARER));
- aColumn.Set(TPtrC(WAP_PROXY_PORT));
- }
- else
- {
- aTableName.Set(TPtrC(PROXIES));
- aColumn.Set(TPtrC(PROXY_PORT_NUMBER));
- }
- fRet = ETrue;
- }
- else if (iField->Compare(KNSmlDdfStartpg) == 0)
- {
- aTableName.Set(TPtrC(WAP_ACCESS_POINT));
- aColumn.Set(TPtrC(WAP_START_PAGE));
- fRet = ETrue;
- }
- else if (iField->Compare(KNSmlDdfPxAuthId) == 0) // No KNSmlDdfBasAuthId
- {
- aTableName.Set(TPtrC(WAP_IP_BEARER));
- aColumn.Set(TPtrC(WAP_PROXY_LOGIN_NAME));
- fRet = ETrue;
- }
- else if (iField->Compare(KNSmlDdfPxAuthPW) == 0) // No KNSmlDdfBasAuthPW
- {
- aTableName.Set(TPtrC(WAP_IP_BEARER));
- aColumn.Set(TPtrC(WAP_PROXY_LOGIN_PASS));
- fRet = ETrue;
- }
- else if (iField->Compare(KNSmlDdfUsePTxtLog) == 0)
- {
- if( aTableName == TPtrC(OUTGOING_GPRS) ||
- aTableName == TPtrC(INCOMING_GPRS))
- {
- aColumn.Set(TPtrC(SERVICE_DISABLE_PLAIN_TEXT_AUTH));
- fRet = ETrue;
- }
- else
- {
- return fRet; // NotValid
- }
- }
- else if (iField->Compare(KNSmlDdfDefGW) == 0)
- {
- aColumn.Set(TPtrC(SERVICE_IP_GATEWAY));
- fRet = ETrue;
- }
- else if (iField->Compare(KNSmlDdfNetworkMask) == 0)
- {
- aColumn.Set(TPtrC(SERVICE_IP_NETMASK));
- fRet = ETrue;
- }
- else if (iField->Compare(KNSmlDdfNetworkID) == 0)
- {
- aColumn.Set(TPtrC(COMMDB_ID));
- fRet = ETrue;
- }
- else if (iField->Compare(KNSmlDdfPPPComp) == 0)
- {
- if( aTableName == TPtrC(OUTGOING_GPRS) ||
- aTableName == TPtrC(INCOMING_GPRS))
- {
- aColumn.Set(TPtrC(GPRS_DATA_COMPRESSION));
- }
- else
- {
- return fRet; // NotValid
- }
- fRet = ETrue;
- }
- else if (iField->Compare(KNSmlDdfGPRSPDP) == 0)
- {
- if( aTableName == TPtrC(OUTGOING_GPRS) ||
- aTableName == TPtrC(INCOMING_GPRS))
- {
- aColumn.Set(TPtrC(GPRS_PDP_TYPE));
- }
- else
- {
- return fRet; // NotValid
- }
- fRet = ETrue;
- }
- else if (iField->Compare(KNSmlDdfNoPxForL) == 0)
- {
- aColumn.Set(TPtrC(PROXY_EXCEPTIONS));
- fRet = ETrue;
- }
- else if (iField->Compare(KNSmlDdfDomainL) == 0)
- {
- aColumn.Set(TPtrC(PROXY_PROTOCOL_NAME));
- fRet = ETrue;
- }
- else if (iField->Compare(KNSmlDdfIPAddrFromServer) == 0)
- {
- aColumn.Set(TPtrC(SERVICE_IP_ADDR_FROM_SERVER));
- fRet = ETrue;
- }
- else if (iField->Compare(KNSmlDdfIPAddr) == 0)
- {
- aColumn.Set(TPtrC(SERVICE_IP_ADDR));
- fRet = ETrue;
- }
- else if (iField->Compare(KNSmlDdfDNSAddrFromServer) == 0)
- {
- aColumn.Set(TPtrC(SERVICE_IP_DNS_ADDR_FROM_SERVER));
- fRet = ETrue;
- }
- else if (iField->Compare(KNSmlDdfIPv6DNSAddrFromServer) == 0)
- {
- aColumn.Set(TPtrC(SERVICE_IP6_DNS_ADDR_FROM_SERVER));
- fRet = ETrue;
- }
- else if (iField->Compare(KNSmlDdfIfNetworks) == 0)
- {
- aColumn.Set(TPtrC(SERVICE_IF_NETWORKS));
- fRet = ETrue;
- }
- else if (iField->Compare(KNSmlDdfIAPService) == 0)
- {
- aColumn.Set(TPtrC(IAP_SERVICE));
- fRet = ETrue;
- }
-
- else if (iField->Compare(KNSmlDdfIAPSeamlessness) == 0)
- {
- fRet= ETrue;
- }
- else if (iField->Compare(KNSmlDdfIAPMetaData) == 0)
- {
- fRet= ETrue;
- }
-
- DBG_ARGS(_S16("GetAPField: aURI - %S - %S - %S"),&aTableName, &aColumn, &*iField);
-
- _DBG_FILE("CNSmlInternetAdapter::GetAPField(): EOk");
-
- return fRet;
- }
-
-//=============================================
-// CNSmlInternetAdapter::GetAPFieldType()
-// Match fieldtype to Commsdb-database
-//
-//=============================================
-CNSmlInternetAdapter::TNSmlAPFieldType CNSmlInternetAdapter::GetAPFieldType( const TDesC8& aURI ) const
- {
- if (iField->Compare(KNSmlDdfBearerL) == 0)
- {
- return CNSmlInternetAdapter::ESpec;
- }
- else if (iField->Compare(KNSmlDdfDirection) == 0)
- {
- return CNSmlInternetAdapter::ESpec;
- }
- else if (iField->Compare(KNSmlDdfBearer) == 0)
- {
- return CNSmlInternetAdapter::EInt;
- }
- else if (iField->Compare(KNSmlDdfToNAPIDL) == 0)
- {
- return CNSmlInternetAdapter::EInt;
- }
- else if (iField->Compare(KNSmlDdfNAPID) == 0)
- {
- return CNSmlInternetAdapter::EInt;
- }
- else if (iField->Compare(KNSmlDdfPxId) == 0)
- {
- return CNSmlInternetAdapter::EInt;
- }
- else if (iField->Compare(KNSmlDdfAuthName) == 0)
- {
- return CNSmlInternetAdapter::EStr;
- }
- else if (iField->Compare(KNSmlDdfNAPName) == 0 ||
- iField->Compare(KNSmlDdfPxName) == 0 ||
- iField->Compare(KNSmlDdfNetworkName) == 0 )
- {
- if( aURI.Match(_L8("AP/*/Px/*/Name")) != KErrNotFound
- || aURI.Match(_L8("AP/*/Networks/*/Name"))!= KErrNotFound )
- {
- return CNSmlInternetAdapter::EStr;
- }
- else
- {
- return CNSmlInternetAdapter::ESpec; // For NAPName
- }
- }
- else if (iField->Compare(KNSmlDdfNAPAddrTy) == 0)
- {
- return CNSmlInternetAdapter::EInt;
- }
- else if (iField->Compare(KNSmlDdfNAPAddr) == 0)
- {
- return CNSmlInternetAdapter::EStr;
- }
- else if (iField->Compare(KNSmlDdfStartpg) == 0)
- {
- return CNSmlInternetAdapter::EWap;
- }
- else if (iField->Compare(KNSmlDdfPxAuthId) == 0)
- {
- return CNSmlInternetAdapter::EWap;
- }
- else if (iField->Compare(KNSmlDdfPxAuthPW) == 0)
- {
- return CNSmlInternetAdapter::EWap;
- }
- else if (iField->Compare(KNSmlDdfPxAddr) == 0)
- {
- return CNSmlInternetAdapter::EStr;
- }
- else if (iField->Compare(KNSmlDdfDNSAddrFromServer) == 0)
- {
- return CNSmlInternetAdapter::EBool;
- }
- else if (iField->Compare(KNSmlDdfIPv6DNSAddrFromServer) == 0)
- {
- return CNSmlInternetAdapter::EBool;
- }
- else if (iField->Compare(KNSmlDdfDNSAddrL) == 0)
- {
- return CNSmlInternetAdapter::EStr;
- }
- else if (iField->Compare(KNSmlDdfDNSAddrTy) == 0)
- {
- return CNSmlInternetAdapter::EStr;
- }
- else if (iField->Compare(KNSmlDdfDNSPriority) == 0)
- {
- return CNSmlInternetAdapter::EStr;
- }
- else if (iField->Compare(KNSmlDdfPxName) == 0)
- {
- return CNSmlInternetAdapter::EStr;
- }
- else if (iField->Compare(KNSmlDdfAuthSecr) == 0)
- {
- return CNSmlInternetAdapter::EStr;
- }
- else if (iField->Compare(KNSmlDdfPxId) == 0)
- {
- return CNSmlInternetAdapter::EInt;
- }
- else if (iField->Compare(KNSmlDdfPxPW) == 0)
- {
- return CNSmlInternetAdapter::EStr;
- }
- else if (iField->Compare(KNSmlDdfPortNbr) == 0)
- {
- if(iWapPort) // Different handlig for WAP and Proxy PortNbr
- {
- return CNSmlInternetAdapter::EWap;
- }
- else
- {
- return CNSmlInternetAdapter::EInt;
- }
- }
- else if (iField->Compare(KNSmlDdfUsePTxtLog) == 0)
- {
- return CNSmlInternetAdapter::EBool;
- }
- else if (iField->Compare(KNSmlDdfDefGW) == 0)
- {
- return CNSmlInternetAdapter::EStr;
- }
- else if (iField->Compare(KNSmlDdfNetworkMask) == 0)
- {
- return CNSmlInternetAdapter::EStr;
- }
- else if (iField->Compare(KNSmlDdfNetworkID) == 0)
- {
- return CNSmlInternetAdapter::EInt;
- }
- else if (iField->Compare(KNSmlDdfPPPComp) == 0)
- {
- return CNSmlInternetAdapter::EBool;
- }
- else if (iField->Compare(KNSmlDdfGPRSPDP) == 0)
- {
- return CNSmlInternetAdapter::EInt;
- }
- else if (iField->Compare(KNSmlDdfDomainL) == 0)
- {
- return CNSmlInternetAdapter::EStr;
- }
- else if (iField->Compare(KNSmlDdfNoPxForL) == 0)
- {
- return CNSmlInternetAdapter::ESpec;
- }
- else if (iField->Compare(KNSmlDdfIPAddrFromServer) == 0)
- {
- return CNSmlInternetAdapter::EBool;
- }
- else if (iField->Compare(KNSmlDdfIPAddr) == 0)
- {
- return EStr;
- }
- else if (iField->Compare(KNSmlDdfIfNetworks) == 0)
- {
- return CNSmlInternetAdapter::EStr;
- }
- else if (iField->Compare(KNSmlDdfIAPService) == 0)
- {
- return CNSmlInternetAdapter::ESpec;
- }
-
- else if (iField->Compare(KNSmlDdfIAPSeamlessness) == 0)
- {
- return CNSmlInternetAdapter::EInt;
- }
- else if (iField->Compare(KNSmlDdfIAPMetaData) == 0)
- {
- return CNSmlInternetAdapter::EInt;
- }
-
- _DBG_FILE("CNSmlInternetAdapter::GetAPFieldType(): Error");
-
- return EWrong;
- }
-
-//------------------------------------------------------------------------------
-//
-//------------------------------------------------------------------------------
-#ifndef IMPLEMENTATION_PROXY_ENTRY
-#define IMPLEMENTATION_PROXY_ENTRY(aUid, aFuncPtr) {{aUid},(aFuncPtr)}
-#endif
-
-const TImplementationProxy ImplementationTable[] =
- {
- IMPLEMENTATION_PROXY_ENTRY(0x101F6DE2, CNSmlInternetAdapter::NewL)
- };
-
-//------------------------------------------------------------------------------
-// TImplementationProxy* ImplementationGroupProxy()
-//------------------------------------------------------------------------------
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy( TInt& aTableCount )
- {
- _DBG_FILE("ImplementationGroupProxy() for CNSmlInternetAdapter: begin");
-
- aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
-
- _DBG_FILE("ImplementationGroupProxy() for CNSmlInternetAdapter: end");
- return ImplementationTable;
- }
-
-//=============================================
-// CNSmlInternetAdapter::IntLUID()
-// Returns IntValue for aLUID
-//=============================================
-TInt CNSmlInternetAdapter::IntLUID(const TDesC8& aLUID)
- {
- TLex8 lex(aLUID);
-
- if (lex.Val(iLUID) == KErrNone)
- {
- if ((iLUID > KNSmlApProxyUpperBase) &&
- (iLUID < KNSmlApDnsLuidUpperBase ))
- {
- iLUID = iLUID - KNSmlApProxyUpperBase;
- }
- else if ((iLUID > KNSmlApProxyLowerBase) &&
- (iLUID < KNSmlApProxyUpperBase ))
- {
- iProxyId = iLUID - KNSmlApProxyLowerBase; // Proxy
- iLUID = iProxyId;
- }
- else if ((iLUID > KNSmlAp3gpppsLowerBase ) &&
- (iLUID <= KNSmlApProxyLowerBase) )
- {
- iLUID = iLUID - KNSmlAp3gpppsLowerBase;
- i3GPPPS = ETrue;
- }
- else
- {
- iProxyId = 0;
- }
- return iLUID;
- }
- else
- {
- return 0;
- }
- }
-
-//=============================================
-// CNSmlInternetAdapter::GetIntObject8()
-// Returns IntValue for aObject
-//=============================================
-TInt CNSmlInternetAdapter::GetIntObject8(const TDesC8& aObject)
- {
- TLex8 lex(aObject);
-
- TInt lValue = 0;
-
- if (lex.Val(lValue) == KErrNone)
- {
- return lValue;
- }
- else
- {
- return lValue;
- }
- }
-//=============================================
-// CNSmlInternetAdapter::SetIntObjectLC()
-// Returns IntValue for aObject
-//=============================================
-TDesC8& CNSmlInternetAdapter::SetIntObjectLC(const TInt& aObject)
- {
- HBufC8* buf = HBufC8::NewLC(8);
- TPtr8 ptrBuf = buf->Des();
-
- ptrBuf.Num(aObject);
-
- return *buf;
- }
-
-//=============================================
-// CNSmlInternetAdapter::NotValidStrLenght()
-// False if datalength is valid
-//=============================================
-TBool CNSmlInternetAdapter::NotValidStrLenght(const TDesC& aSource)
- {
- TInt len = aSource.Length();
- TBool theBool = EFalse;
-
- if(len > KCommsDbSvrMaxFieldLength)
- {
- theBool = ETrue;
- }
- return theBool;
- }
-
-//=============================================
-// CNSmlInternetAdapter::SetField()
-// String after last '/' is returned
-//
-//=============================================
-TInt CNSmlInternetAdapter::SetField( const TDesC8& aSource )
- {
- if (aSource.LocateReverse('/') == KErrNotFound)
- {
- iField->Des().Format(aSource);
- }
- else
- {
- iField->Des().Format(aSource.Mid(aSource.LocateReverse('/')+1));
- }
-
- return KErrNone;
- }
-
-//=============================================
-// CNSmlInternetAdapter::ConvertTo8LC()
-// Converts string value to 8-bit
-//
-//=============================================
-TDesC8& CNSmlInternetAdapter::ConvertTo8LC( const TDesC& aSource )
- {
- HBufC8* buf = HBufC8::NewLC( aSource.Length()*2);
- TPtr8 bufPtr = buf->Des();
- CnvUtfConverter::ConvertFromUnicodeToUtf8( bufPtr, aSource );
-
- return *buf;
- }
-
-//=============================================
-// CNSmlInternetAdapter::ConvertTo16LC()
-// Converts string value to 16-bit
-//
-//=============================================
-TDesC16& CNSmlInternetAdapter::ConvertTo16LC( const TDesC8& aSource)
- {
- HBufC16* buf16 = HBufC16::NewLC( aSource.Length() );
- TPtr bufPtr16 = buf16->Des();
-
- CnvUtfConverter::ConvertToUnicodeFromUtf8(bufPtr16, aSource);
-
- return *buf16;
- }
-
-
-//=============================================
-// CNSmlInternetAdapter::InitializeGPRSL()
-// Initialize GPRS-data before insert
-//
-//=============================================
-TInt CNSmlInternetAdapter::InitializeGPRSL( CCommsDbTableView* aTable )
- {
- TBuf<KCommsDbSvrMaxFieldLength> user;
- TBuf<KCommsDbSvrMaxFieldLength> pass;
-
- _LIT(Kdns6Address, "0:0:0:0:0:0:0:0");
- _LIT(KgifNetworks,"ip");
-
- // COMMON DATA
- aTable->WriteBoolL(TPtrC(SERVICE_DISABLE_PLAIN_TEXT_AUTH),EFalse);
-
- aTable->WriteTextL(TPtrC(GPRS_IF_NETWORKS), KgifNetworks);
-
- aTable->WriteTextL(TPtrC(COMMDB_NAME), ConvertTo16LC(iIAPName)); // Same as IAP
- CleanupStack::PopAndDestroy(); //ConvertTo16LC
-
- aTable->WriteBoolL(TPtrC(GPRS_IF_PROMPT_FOR_AUTH), EFalse);
- aTable->WriteTextL(TPtrC(GPRS_IF_AUTH_NAME), user);
- aTable->WriteTextL(TPtrC(GPRS_IF_AUTH_PASS), pass);
-
- aTable->WriteBoolL(TPtrC(GPRS_IP_ADDR_FROM_SERVER), ETrue );
- aTable->WriteTextL(TPtrC(GPRS_IP_ADDR), KNSmlEmptyIpv4Address);
-
- aTable->WriteBoolL(TPtrC(GPRS_IP_DNS_ADDR_FROM_SERVER), ETrue );
- aTable->WriteTextL(TPtrC(GPRS_IP_NAME_SERVER1), KNSmlEmptyIpv4Address);
- aTable->WriteTextL(TPtrC(GPRS_IP_NAME_SERVER2), KNSmlEmptyIpv4Address);
-
- aTable->WriteBoolL(TPtrC(GPRS_IP6_DNS_ADDR_FROM_SERVER), ETrue );
- aTable->WriteTextL(TPtrC(GPRS_IP6_NAME_SERVER1), Kdns6Address);
- aTable->WriteTextL(TPtrC(GPRS_IP6_NAME_SERVER2), Kdns6Address);
- // GPRS DATA
-
- aTable->WriteTextL(TPtrC(GPRS_APN), ConvertTo16LC(iIAPName)); // Same as IAP
- CleanupStack::PopAndDestroy(); //ConvertTo16LC
-
- aTable->WriteUintL(TPtrC(GPRS_REQ_PRECEDENCE), 0);
- aTable->WriteUintL(TPtrC(GPRS_REQ_DELAY), 0);
- aTable->WriteUintL(TPtrC(GPRS_REQ_RELIABILITY), 0);
- aTable->WriteUintL(TPtrC(GPRS_REQ_PEAK_THROUGHPUT), 0);
- aTable->WriteUintL(TPtrC(GPRS_REQ_MEAN_THROUGHPUT), 0);
- aTable->WriteUintL(TPtrC(GPRS_MIN_PRECEDENCE), 0);
- aTable->WriteUintL(TPtrC(GPRS_MIN_DELAY), 0);
- aTable->WriteUintL(TPtrC(GPRS_MIN_RELIABILITY), 0);
- aTable->WriteUintL(TPtrC(GPRS_MIN_PEAK_THROUGHPUT), 0);
- aTable->WriteUintL(TPtrC(GPRS_MIN_MEAN_THROUGHPUT), 0);
-
- aTable->WriteUintL(TPtrC(GPRS_IF_AUTH_RETRIES), 0);
-
- aTable->WriteBoolL(TPtrC(GPRS_DATA_COMPRESSION), EFalse );
- aTable->WriteUintL(TPtrC(GPRS_PDP_TYPE), RPacketContext::EPdpTypeIPv4); // IPV4
-
- aTable->WriteBoolL(TPtrC(GPRS_ENABLE_LCP_EXTENSIONS), EFalse );
- aTable->WriteBoolL(TPtrC(GPRS_ANONYMOUS_ACCESS), EFalse );
- aTable->WriteBoolL(TPtrC(GPRS_HEADER_COMPRESSION), EFalse );
-
- aTable->WriteBoolL(TPtrC(GPRS_IP_ADDR_FROM_SERVER), ETrue );
- aTable->WriteTextL(TPtrC(GPRS_IP_GATEWAY), KNSmlEmptyIpv4Address);
-
- aTable->WriteTextL(TPtrC(GPRS_IP_ADDR), KNSmlEmptyIpv4Address);
- aTable->WriteTextL(TPtrC(GPRS_IF_PARAMS), KNullDesC);
- aTable->WriteTextL(TPtrC(GPRS_IP_NETMASK), KNullDesC);
-
- aTable->WriteUintL(TPtrC(GPRS_QOS_WARNING_TIMEOUT), 0xffffffff);
-
- aTable->WriteUintL(TPtrC(GPRS_AP_TYPE), (TUint32)EIspTypeInternetAndWAP);
-
-
- return KErrNone;
- }
-
-//=============================================
-// CNSmlInternetAdapter::InitializeProxyL()
-// Initialize Proxy-data before insert
-//
-//=============================================
-TInt CNSmlInternetAdapter::InitializeProxyL( CCommsDbTableView* aTable )
- {
- _LIT(KprotocolName, "http"); // http, https, ftp, ftps
- const TUint32 KPortNumber(80);
-
- aTable->WriteUintL(TPtrC(PROXY_ISP), iProxyISP); // ISP with which these proxies are associated
-
- aTable->WriteTextL(TPtrC(PROXY_SERVICE_TYPE), iProxyServiceType); // Type ISP/GPRS
- aTable->WriteBoolL(TPtrC(PROXY_USE_PROXY_SERVER), ETrue );
-
- TPtr proxyName16 = HBufC::NewLC( iProxyServerName.Length() )->Des();
- CnvUtfConverter::ConvertToUnicodeFromUtf8( proxyName16, iProxyServerName );
-
- aTable->WriteLongTextL(TPtrC(PROXY_SERVER_NAME), proxyName16); // Name of the proxy server
- aTable->WriteTextL(TPtrC(PROXY_PROTOCOL_NAME), KprotocolName); // also https + ftps
-
- aTable->WriteUintL(TPtrC(PROXY_PORT_NUMBER), KPortNumber);
-
- aTable->WriteLongTextL(TPtrC(PROXY_EXCEPTIONS), KNullDesC);
-
- CleanupStack::PopAndDestroy(); //proxyName16
- return KErrNone;
- }
-
-
-// CNSmlInternetAdapter::IsInsertAllowedL
-// Check if possible to Add new AP
-//
-//=============================================
-TBool CNSmlInternetAdapter::IsInsertAllowedL()
- {
- TBool theBool = EFalse;
-//
-// Id + Name + Bearer needed for Insert
-//
- if (
- iIAPName.Length() > 0 &&
- iBearer.Length() > 0 &&
- iDirection != ECommDbConnectionDirectionUnknown)
- {
- theBool = ETrue;
- }
-//
-// Should check also if Name or iISPId in USE !!!
-//
- if(theBool)
- {
- CCommsDbTableView* tableView = iDatabase->OpenViewMatchingTextLC(iBearer,
- TPtrC(COMMDB_NAME),
- iIAPName);
- TInt errorCode = tableView->GotoFirstRecord();
-
- // Node allready exists => No adding possible
- if ( errorCode == KErrNone )
- {
- DBG_ARGS8(_S8("CNSmlInternetAdapter::NODE NAME <%S> ALLREADY(): error"), &iIAPName );
- theBool = EFalse;
- }
- CleanupStack::PopAndDestroy(tableView);
- }
- return theBool;
- }
-
-//=============================================
-// CNSmlInternetAdapter::SaveIAPDataL
-// Saves data to IAP-table
-//
-//=============================================
-void CNSmlInternetAdapter::SaveIAPDataL(const TDesC8& aURI)
- {
- TInt errorCode;
- CCommsDbTableView* tableView;
-
- TBool apEnforce=EFalse;
- TBool iapReLock = EFalse;
-
-
- if(FeatureManager::FeatureSupported(KFeatureIdSapPolicyManagement))
- {
- TRAPD(eError,apEnforce=CheckEnforcementL())
- DBG_ARGS8(_S8("CNSmlInternetAdapter::SaveIAPDataL(): EError %d , APEnforcement is %d"),eError,apEnforce);
- if(eError==KErrNone && apEnforce)
- {
- DoLockIAPTablesL(EFalse);
- iWAPRelock = ETrue;
- }
- }
- if(iIAPExists)
- {
- tableView = iDatabase->OpenViewMatchingUintLC(TPtrC(IAP),TPtrC(COMMDB_ID), iIAPId);
- if(IsIAPRecordLockedL(iIAPId))
- {
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): apaccesspoint record is LOCKED");
- TInt reclockerr = ((CCommsDbProtectTableView*)tableView)->UnprotectRecord();
- DBG_ARGS8(_S8("CNSmlInternetAdapter::AddLeafObjectL ,UnProtecting IAPAccessRecord returned code = %d"),reclockerr);
- if(reclockerr==KErrNone)
- iapReLock = ETrue;
- }
- else
- {
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): apaccesspoint record is not write protected");
- }
-
- errorCode = tableView->GotoFirstRecord();
-
- if ( errorCode == KErrNone )
- {
- if(FeatureManager::FeatureSupported(KFeatureIdSapPolicyManagement))
- {
- // if enforcement is on and rec exists, it needs to be unprotected
- if ( apEnforce )
- {
- ((CCommsDbProtectTableView*)tableView)->UnprotectRecord();
- }
- }
- errorCode = tableView->UpdateRecord();
- }
- }
- else
- {
- tableView = iDatabase->OpenTableLC(TPtrC(IAP));
-
- errorCode = tableView->InsertRecord(iIAPId);
- }
-
- if ( errorCode == KErrNone )
- {
- TUint32 modemISPId = 1; // Default
- TBuf<KCommsDbSvrMaxFieldLength> modemBearer = TPtrC(MODEM_BEARER);
- if(iBearer == TPtrC(LAN_SERVICE))
- {
- modemBearer = TPtrC(LAN_BEARER);
- }
- else if(iBearer == TPtrC(VPN_SERVICE))
- {
- modemBearer = TPtrC(VIRTUAL_BEARER);
- }
- else
- {
- modemBearer = TPtrC(MODEM_BEARER);
- }
-
- if(modemBearer == TPtrC(MODEM_BEARER))
- {
- GetModemBearerL(modemISPId);
- }
- else if(modemBearer == TPtrC(VIRTUAL_BEARER))
- {
- modemISPId = 1;
- }
- else if ( iWlanSupported )
- {
- GetLanBearerL(modemISPId);
- }
- tableView->WriteTextL(TPtrC(COMMDB_NAME), ConvertTo16LC(iIAPName));
- CleanupStack::PopAndDestroy(); //ConvertTo16LC
-
- // ISP id must be written
- tableView->WriteUintL(TPtrC(IAP_SERVICE), iISPId);
- tableView->WriteTextL(TPtrC(IAP_SERVICE_TYPE), iBearer);
-
- tableView->WriteUintL(TPtrC(IAP_BEARER), modemISPId);
- tableView->WriteTextL(TPtrC(IAP_BEARER_TYPE), modemBearer);
- if( iNetworkId != KErrNotFound )
- {
- tableView->WriteUintL(TPtrC(IAP_NETWORK), iNetworkId); // First name on network table
- }
- tableView->WriteUintL(TPtrC(IAP_NETWORK_WEIGHTING), 0);
- tableView->WriteUintL(TPtrC(IAP_LOCATION), 2); // Minimum=2
-
-
- errorCode = tableView->PutRecordChanges();
- }
- if(FeatureManager::FeatureSupported(KFeatureIdSapPolicyManagement))
- {
- if(iWAPRelock)
- {
- DoLockIAPTablesL(ETrue);
- ((CCommsDbProtectTableView*)tableView)->ProtectRecord();
- iWAPRelock = EFalse;
- }
- }
- if(iapReLock)
- {
- TInt reclockerr = DoProtectIAPRecordL(iIAPId,ETrue);
- DBG_ARGS8(_S8("CNSmlInternetAdapter::AddLeafObjectL ,UnProtecting IAPAccessRecord returned code = %d"),reclockerr);
- if(reclockerr==KErrNone)
- iapReLock = EFalse;
- }
-
- if ( errorCode == KErrNone )
- {
- if(!iIAPExists)
- {
- TUint32 lValue;
- tableView->ReadUintL(TPtrC(COMMDB_ID),lValue);
-
- // Add AP
- TPtrC8 addURI = GetAddURISeg(aURI,KNSmlDdfAP);
-
- TBuf8<16> addLUID;
- _LIT8(KFormat,"%d");
- addLUID.Format(KFormat,lValue);
-
- // Also added to mapping
- iCallBack->SetMappingL(addURI,addLUID);
- DBG_ARGS8(_S8("AP:level1 URI - <%S> <%S> <%d>"), &addURI, &addLUID, lValue );
- }
-
- iIAPExists = ETrue;
- }
-
- if (apEnforce)
- apEnforce=EFalse; // to rget rid of warnings
-
- CleanupStack::PopAndDestroy(); // tableView
- User::LeaveIfError(errorCode);
- }
-
-//=============================================
-// CNSmlInternetAdapter::GetMaxIdL
-// Get max id from given bearer
-//
-//=============================================
-TUint32 CNSmlInternetAdapter::GetMaxIdL()
- {
- CCommsDbTableView* checkView;
- TUint32 maxGPRS(0);
- checkView = iDatabase->OpenTableLC(iBearer);
- TInt errorCodem = checkView->GotoFirstRecord();
- while (errorCodem == KErrNone)
- {
- TUint32 lValue;
- checkView->ReadUintL(TPtrC(COMMDB_ID),lValue);
- if(lValue > maxGPRS)
- {
- maxGPRS = lValue;
- }
- errorCodem = checkView->GotoNextRecord();
- }
-
- CleanupStack::PopAndDestroy(); // checkView
-
- return (maxGPRS);
- }
-
-//=============================================
-// CNSmlInternetAdapter::GetProxyIdL
-// Get proxy id for given IAP
-//
-//=============================================
-TBool CNSmlInternetAdapter::GetProxyIdL(const TDesC8& aURI)
- {
- TBool proxyFound = EFalse;
-
- CCommsDbTableView* checkView;
-
- // Get servicetype for IAP nbr
-
- TUint32 iapID = GetAPIdFromURIL(aURI);
- if( iapID == 0 )
- {
- if( IsAPUriFormatMatchPredefined(aURI) )
- {
- iLUID = ConstructTreeL(aURI);
- iapID = GetAPIdFromURIL(aURI);
- }
-
- }
- // IAP-table search serviceType + serviceId
- CCommsDbTableView* iapView = iDatabase->OpenViewMatchingUintLC(TPtrC(IAP),
- TPtrC(COMMDB_ID),
- iapID);
-
- TBuf<KCommsDbSvrMaxFieldLength> serviceType;
- TUint32 serviceId;
-
- TInt errorCode = iapView->GotoFirstRecord();
-
- // Read serviceType from (IAP)
- if ( errorCode == KErrNone )
- {
- iapView->ReadTextL(TPtrC(IAP_SERVICE_TYPE), serviceType);
- iapView->ReadUintL(TPtrC(IAP_SERVICE), serviceId);
- CleanupStack::PopAndDestroy(); // iapView
- }
- else
- {
- CleanupStack::PopAndDestroy(); // iapView
- return proxyFound;
- }
-
- checkView = iDatabase->OpenViewMatchingTextLC(TPtrC(PROXIES),
- TPtrC(PROXY_SERVICE_TYPE),
- serviceType);
-
- TInt errorCodem = checkView->GotoFirstRecord();
-
- while (errorCodem == KErrNone)
- {
- TUint32 lValue;
- checkView->ReadUintL(TPtrC(PROXY_ISP),lValue);
- if(lValue == serviceId)
- {
- checkView->ReadUintL(TPtrC(COMMDB_ID),iProxyId);
- proxyFound = ETrue;
- break;
- }
- errorCodem = checkView->GotoNextRecord();
- }
-
- CleanupStack::PopAndDestroy(); // checkView
-
- return proxyFound;
- }
-
-//------------------------------------------------------------------------------
-// TBool CNSmlInternetAdapter::APExistsL()
-//------------------------------------------------------------------------------
-TBool CNSmlInternetAdapter::APExistsL(TUint32 aId)
- {
- TBool ret = EFalse;
- CCommsDbTableView* checkView;
-
- checkView = iDatabase->OpenViewMatchingUintLC(TPtrC(IAP),TPtrC(COMMDB_ID), aId);
- TInt error = checkView->GotoFirstRecord();
- if (error == KErrNone)
- {
- ret = ETrue;
- }
- CleanupStack::PopAndDestroy(); // checkView
-
- return ret;
- }
-
-//------------------------------------------------------------------------------
-// TBool CNSmlInternetAdapter::NetworkExistsL()
-//------------------------------------------------------------------------------
-TBool CNSmlInternetAdapter::NetworkExistsL(TUint32 aId)
- {
- TBool ret = EFalse;
- CCommsDbTableView* checkView;
-
- checkView = iDatabase->OpenViewMatchingUintLC(TPtrC(NETWORK),TPtrC(COMMDB_ID), aId);
- TInt error = checkView->GotoFirstRecord();
- if (error == KErrNone)
- {
- ret = ETrue;
- }
- CleanupStack::PopAndDestroy(); // checkView
-
- return ret;
- }
-
-//------------------------------------------------------------------------------
-// TBool CNSmlInternetAdapter::NetworkNameExistsL()
-//------------------------------------------------------------------------------
-TBool CNSmlInternetAdapter::NetworkNameExistsL(TUint32& aId, const TDesC8& aObject)
- {
- TBool ret = EFalse;
- CCommsDbTableView* checkView;
-
- checkView = iDatabase->OpenViewMatchingTextLC(TPtrC(NETWORK),TPtrC(COMMDB_NAME), ConvertTo16LC(aObject));
- TInt error = checkView->GotoFirstRecord();
- if (error == KErrNone)
- {
- checkView->ReadUintL(TPtrC(COMMDB_ID), aId);
- ret = ETrue;
- }
-
- CleanupStack::PopAndDestroy(2); // checkView ConvertTo16LC
-
- return ret;
- }
-
-//------------------------------------------------------------------------------
-// TBool CNSmlInternetAdapter::AddNetworkL()
-//------------------------------------------------------------------------------
-TBool CNSmlInternetAdapter::AddNetworkL(TUint32& aId, const TDesC8& aObject)
- {
- TBool ret = EFalse;
- TUint32 newId;
- CCommsDbTableView* networkView = iDatabase->OpenTableLC(TPtrC(NETWORK));
-
- if( networkView->InsertRecord(newId) == KErrNone )
- {
- networkView->WriteTextL(TPtrC(COMMDB_NAME), ConvertTo16LC(aObject));
- if(networkView->PutRecordChanges() == KErrNone)
- {
- networkView->ReadUintL(TPtrC(COMMDB_ID), aId); // New networks Id
- ret = ETrue;
- }
- CleanupStack::PopAndDestroy(); //ConvertTo16LC
- }
- CleanupStack::PopAndDestroy(); // networkView
- DBG_ARGS8(_S8("NsmlInternetAdapter: AddNetworkL:networkId %d"), aId);
-
- return ret;
- }
-//------------------------------------------------------------------------------
-// TBool CNSmlInternetAdapter::NAPDefExistsL()
-//------------------------------------------------------------------------------
-TBool CNSmlInternetAdapter::NAPDefExistsL(TUint32 aId )
- {
- TBool ret = EFalse;
- CCommsDbTableView* checkView;
-
-
- checkView = iDatabase->OpenViewMatchingUintLC(TPtrC(IAP),TPtrC(IAP_SERVICE), aId);
- TInt error = checkView->GotoFirstRecord();
- if (error == KErrNone)
- {
- TBuf<KCommsDbSvrMaxFieldLength> serviceType;
-
- checkView->ReadTextL(TPtrC(IAP_SERVICE_TYPE), serviceType);
- CCommsDbTableView* tableView = iDatabase->OpenViewMatchingUintLC(serviceType,TPtrC(COMMDB_ID), aId);
- error = tableView->GotoFirstRecord();
-
- if (error == KErrNone)
- {
- ret = ETrue;
- }
- CleanupStack::PopAndDestroy(); // tableView
- }
-
- CleanupStack::PopAndDestroy(); // checkView
-
- return ret;
- }
-
-//------------------------------------------------------------------------------
-// TBool CNSmlInternetAdapter::PxExistsL()
-//------------------------------------------------------------------------------
-TBool CNSmlInternetAdapter::PxExistsL(TUint32 aId)
- {
- TBool ret = EFalse;
- CCommsDbTableView* pxView;
-
- pxView = iDatabase->OpenViewMatchingUintLC( TPtrC(PROXIES),TPtrC(COMMDB_ID), aId);
-
- TInt errorCode = pxView->GotoFirstRecord();
-
- if (errorCode == KErrNone )
- {
- ret = ETrue;
- }
- CleanupStack::PopAndDestroy(); // pxView
-
- return ret;
- }
-
-//------------------------------------------------------------------------------
-// TBool CNSmlInternetAdapter::WapAPExistsL()
-//------------------------------------------------------------------------------
-TBool CNSmlInternetAdapter::WapAPExistsL(TUint32 aId)
- {
- TBool ret = EFalse;
- CCommsDbTableView* wapView;
-
- wapView = iDatabase->OpenViewMatchingUintLC( TPtrC(WAP_IP_BEARER),TPtrC(WAP_IAP), aId);
-
- TInt errorCode = wapView->GotoFirstRecord();
-
- if (errorCode == KErrNone )
- {
- wapView->ReadUintL(TPtrC(WAP_ACCESS_POINT_ID), iWapId);
- ret = ETrue;
- }
- CleanupStack::PopAndDestroy(); // wapView
-
- return ret;
- }
-
-//------------------------------------------------------------------------------
-// TUint32 CNSmlInternetAdapter::GetAPIdFromURIL(const TDesC8& aURI)
-// Get AP luid for given aURI
-//------------------------------------------------------------------------------
-TUint32 CNSmlInternetAdapter::GetAPIdFromURIL(const TDesC8& aURI)
- {
- HBufC8* apURI = HBufC8::NewLC(aURI.Length());
-
- _DBG_FILE("CNSmlInternetAdapter::GetAPIdFromURIL(): begin");
- DBG_ARGS8(_S8("AP:add aURI GetAPIdFromURIL - %S "), &aURI);
-//
-// Second slash after AP
-//
- TInt i= 0;
- for( i=aURI.Find(KNSmlDdfAP)+3; i < aURI.Length(); i++ )
- {
- if(aURI[i]=='/')
- {
- break;
- }
- }
- DBG_ARGS8(_S8("AP:add aURI GetAPIdFromURIL i is %d "), i);
- if(i>0)
- {
- apURI->Des().Format(aURI.Left(i));
- }
-//
-// Same profile as previous
-//
- if(iPrevURI->Match(*apURI) != KErrNotFound)
- {
- _DBG_FILE("CNSmlInternetAdapter::GetAPIdFromURIL(): previous uri");
- CleanupStack::PopAndDestroy(); // apURI
- return iPrevLUID;
- }
-//
-// Fetch AP-id for URI
-//
- HBufC8* apLUID = iCallBack->GetLuidAllocL(*apURI);
- CleanupStack::PushL(apLUID);
-
- TUint32 resLUID = IntLUID(*apLUID);
- DBG_ARGS8(_S8("AP:add aURI GetAPIdFromURIL luidallocation is %d "), resLUID);
-
- if ( resLUID > 0 )
- {
- iPrevURI->Des().Format( *apURI );
- iPrevLUID = resLUID;
- }
-
- CleanupStack::PopAndDestroy(2); // apURI, apLUID
-
- return resLUID;
- }
-
-//------------------------------------------------------------------------------
-// TBool CNSmlInternetAdapter::DeleteProxyL()
-//------------------------------------------------------------------------------
-TBool CNSmlInternetAdapter::DeleteProxyL(TUint32 aId)
- {
- TBool ret = EFalse;
- CCommsDbTableView* pxView;
-
- pxView = iDatabase->OpenViewMatchingUintLC( TPtrC(PROXIES),TPtrC(COMMDB_ID), aId);
-
- TInt errorCode = pxView->GotoFirstRecord();
-
- if (errorCode == KErrNone )
- {
- errorCode = pxView->DeleteRecord();
- if (errorCode == KErrNone )
- {
- ret = ETrue;
- }
- }
-
- CleanupStack::PopAndDestroy(); // pxView
- return ret;
- }
-
-//------------------------------------------------------------------------------
-// TBool CNSmlInternetAdapter::DeleteWapAPL()
-//------------------------------------------------------------------------------
-TBool CNSmlInternetAdapter::DeleteWapAPL(TUint32 aId)
- {
- TBool ret = EFalse;
- CCommsDbTableView* wapView;
-
- TUint32 wapId = 0;
-
- if(FeatureManager::FeatureSupported(KFeatureIdSapPolicyManagement))
- {
- TBool apEnforce=EFalse;
- TRAPD(eError,apEnforce=CheckEnforcementL())
- DBG_ARGS8(_S8("CNSmlInternetAdapter::DeleteWAPAPL(): EError %d , APEnforcement is %d"),eError,apEnforce);
- if(eError==KErrNone && apEnforce)
- {
- DoLockIAPTablesL(EFalse);
- iWAPRelock = ETrue;
- }
- }
- wapView = iDatabase->OpenViewMatchingUintLC( TPtrC(WAP_IP_BEARER),TPtrC(WAP_IAP), aId);
-
- TInt errorCode = wapView->GotoFirstRecord();
-
- if (errorCode == KErrNone )
- {
- wapView->ReadUintL(TPtrC(WAP_ACCESS_POINT_ID), wapId); // WapIAP id
- errorCode = wapView->DeleteRecord();
- if (errorCode == KErrNone )
- {
- ret = ETrue;
- }
- }
-
- if(ret)
- {
- CCommsDbTableView* wapApView = iDatabase->OpenViewMatchingUintLC( TPtrC(WAP_ACCESS_POINT),TPtrC(COMMDB_ID), wapId);
-
- errorCode = wapApView->GotoFirstRecord();
-
- if (errorCode == KErrNone )
- {
- errorCode = wapApView->DeleteRecord();
- if (errorCode == KErrNone )
- {
- ret = ETrue;
- }
- }
- CleanupStack::PopAndDestroy(); // wapApView
- }
-
- CleanupStack::PopAndDestroy(); // wapView
- if(FeatureManager::FeatureSupported(KFeatureIdSapPolicyManagement))
- {
- if(iWAPRelock)
- {
- DoLockIAPTablesL(ETrue);
- iWAPRelock = EFalse;
- }
- }
- return ret;
- }
-
-//------------------------------------------------------------------------------
-// TBool CNSmlInternetAdapter::DeleteNAPDefL()
-//------------------------------------------------------------------------------
-TBool CNSmlInternetAdapter::DeleteNAPDefL(TUint32 aId)
- {
- TBool ret = EFalse;
- CCommsDbTableView* checkView;
- TBool apEnforce=EFalse;
- TBool iapReLock = EFalse;
-
- if(FeatureManager::FeatureSupported(KFeatureIdSapPolicyManagement))
- {
- TRAPD( eError,apEnforce=CheckEnforcementL() )
- DBG_ARGS8(_S8("CNSmlInternetAdapter::DeleteNAPDefL(): EError %d , APEnforcement is %d"),eError,apEnforce);
- if( eError==KErrNone && apEnforce )
- {
- DoLockIAPTablesL(EFalse);
- iWAPRelock = ETrue;
- }
- }
-
- checkView = iDatabase->OpenViewMatchingUintLC(TPtrC(IAP),TPtrC(IAP_SERVICE), aId);
- if(IsIAPRecordLockedL(aId))
- {
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): apaccesspoint record is LOCKED");
- TInt reclockerr = ((CCommsDbProtectTableView*)checkView)->UnprotectRecord();
- DBG_ARGS8(_S8("CNSmlInternetAdapter::AddLeafObjectL ,UnProtecting IAPAccessRecord returned code = %d"),reclockerr);
- if(reclockerr==KErrNone)
- iapReLock = ETrue;
- }
- else
- {
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): apaccesspoint record is not write protected");
- }
- TInt error = checkView->GotoFirstRecord();
- if (error == KErrNone)
- {
- TBuf<KCommsDbSvrMaxFieldLength> serviceType;
-
- checkView->ReadTextL(TPtrC(IAP_SERVICE_TYPE), serviceType);
-
- CCommsDbTableView* tableView = iDatabase->OpenViewMatchingUintLC(serviceType,TPtrC(COMMDB_ID), aId);
- error = tableView->GotoFirstRecord();
-
- if (error == KErrNone)
- {
- if(FeatureManager::FeatureSupported(KFeatureIdSapPolicyManagement))
- {
- if ( apEnforce )
- {
- ((CCommsDbProtectTableView*)tableView)->UnprotectRecord();
- }
- }
-
- error = tableView->DeleteRecord();
- if (error == KErrNone )
- {
- ret = ETrue;
- }
- }
- CleanupStack::PopAndDestroy(); // tableView
- }
-
- CleanupStack::PopAndDestroy(); // checkView
-
- if(FeatureManager::FeatureSupported(KFeatureIdSapPolicyManagement))
- {
- if(iWAPRelock)
- {
- DoLockIAPTablesL(ETrue);
- iWAPRelock = EFalse;
- }
- }
-
- if(iapReLock)
- {
- TInt reclockerr = DoProtectIAPRecordL(aId,ETrue);
- DBG_ARGS8(_S8("CNSmlInternetAdapter::AddLeafObjectL ,UnProtecting WAPAccessRecord returned code = %d"),reclockerr);
- if(reclockerr==KErrNone)
- iapReLock = EFalse;
- }
- if (apEnforce)
- apEnforce=EFalse; // to get rid of warnings
-
- return ret;
- }
-
-// ---------------------------------------------------------------------------
-// Removes iapID and linger interval from CentralRepository
-// ---------------------------------------------------------------------------
-//
-void CNSmlInternetAdapter::DeleteLingerL( const TInt aIapId )
- {
- TInt err( KErrNone );
-
- // Open repository
- CRepository* repository = CRepository::NewLC( KCRUidPDPContextManager );
-
- // Find if an entry for "iapId" already exists in CentRep
- RArray< TUint32 > foundKeys;
- foundKeys.Reset();
-
- err = repository->FindEqL( KIapColumn, // partial key
- KColumnMask, // key mask
- aIapId, // value
- foundKeys ); // found keys
-
- if ( err == KErrNone )
- {
- if ( foundKeys.Count() > 0 )
- {
- TInt arrayCount( 0 );
-
- // Get number of iapId&linger entries in Centrep
- err = repository->Get( KPdpContextManagerLingerArrayCount, arrayCount );
-
- if ( err == KErrNone )
- {
- TInt32 row = foundKeys[ 0 ] & KRowMask;
-
- // Shift existing entries one position left
- for ( TInt i=row+1; i <= arrayCount; i++ )
- {
- TInt iapId( 0 );
- TInt linger( 0 );
-
- err = repository->Get( ( KIapColumn | i ), iapId );
-
- if ( err == KErrNone )
- {
- err = repository->Get( ( KLingerColumn | i ), linger );
- }
-
- if ( err == KErrNone )
- {
- err = repository->Set( ( KIapColumn | (i-1) ), iapId );
- }
-
- if ( err == KErrNone )
- {
- err = repository->Set( ( KLingerColumn | (i-1) ), linger );
- }
- }
-
- // Remove the last entry on row arrayCount
- if ( err == KErrNone )
- {
- TUint32 errorKey( 0 );
-
- err = repository->Delete( ( KIapColumn | arrayCount ),
- 0xFFFFFFFF,
- errorKey);
-
- if ( err == KErrNone )
- {
- err = repository->Delete( ( KLingerColumn | arrayCount ),
- 0xFFFFFFFF,
- errorKey);
- arrayCount--;
- }
- }
-
- // Update number of iapId&linger entries in Centrep
- err = repository->Set( KPdpContextManagerLingerArrayCount, arrayCount );
- }
- }
- }
-
- foundKeys.Close();
- CleanupStack::PopAndDestroy( repository );
-
- }
-//------------------------------------------------------------------------------
-// TBool CNSmlInternetAdapter::DeleteAPL()
-//------------------------------------------------------------------------------
-TBool CNSmlInternetAdapter::DeleteAPL(TUint32 aId)
- {
- TBool ret = EFalse;
-
- //Check MIP IAP first then go forward
- if(FeatureManager::FeatureSupported(KFeatureIdSapPolicyManagement))
- {
- TBool apEnforce=EFalse;
- TBool wlanEnforce= EFalse;
- TInt wError = KErrNone;
- TRAP(wError,wlanEnforce=CheckWLANEnforcementL());
- TRAPD( eError,apEnforce=CheckEnforcementL() )
- if( wlanEnforce)
- {
- UnprotectWLANAPItemL(aId);
- }
- DBG_ARGS8(_S8("CNSmlInternetAdapter::DeleteAPL(): EError %d , APEnforcement is %d"),eError,apEnforce);
- if( eError==KErrNone && apEnforce )
- {
- DoLockIAPTablesL(EFalse);
- iWAPRelock = ETrue;
- }
- }
-
- if(iDatabase->InTransaction())
- iDatabase->CommitTransaction();
- RCmManagerExt cmManagerExt;
- cmManagerExt.OpenL();
- RCmConnectionMethodExt cmConMethodExt ;
- TRAPD(err, cmConMethodExt= cmManagerExt.ConnectionMethodL( aId ));
- CleanupClosePushL( cmConMethodExt );
- if(err == KErrNone)
- {
- TRAPD(dError,cmConMethodExt.DeleteL());
- if(dError == KErrNone)
- {
- DeleteLingerL( aId );
- ret= ETrue;
- }
- }
-
- CleanupStack::PopAndDestroy( );
- cmManagerExt.Close();
- if(!iDatabase->InTransaction())
- {
- TInt dberr = iDatabase->BeginTransaction();
- if( dberr == KErrLocked )
- {
- _DBG_FILE("DeleteAPL: CommsDat was locked.");
- TInt retry = KBeginTransRetryCount;
- while ( retry > 0 && dberr == KErrLocked )
- {
- User::After(KBeginTransRetryDelay);
- _DBG_FILE("DeleteAPL: Slept 1 second. Try again");
- dberr = iDatabase->BeginTransaction();
- retry--;
- }
- if(dberr != KErrNone)
- {
- _DBG_FILE("CNSmlInternetAdapter: BeginTransaction failed completely.");
- User::Leave( dberr );
- }
- }
- }
-
- //The following code is kept under #ifndef , so that it can be removed
- //after RD_DM_APPLICATION_LEVEL_ROAMING_SUPPORT becomes stable.
-
- /* #ifndef RD_DM_APPLICATION_LEVEL_ROAMING_SUPPORT
- CCommsDbTableView* checkView;
- CCommsDbTableView* proxyView;
-
- checkView = iDatabase->OpenViewMatchingUintLC(TPtrC(IAP),TPtrC(COMMDB_ID), aId);
- TInt error = checkView->GotoFirstRecord();
- if (error == KErrNone)
- {
- //
- // Remove possible NAPDef-data first if ONLY IAP
- //
- TBuf<KCommsDbSvrMaxFieldLength> serviceType;
- TUint32 serviceId;
-
- checkView->ReadTextL(TPtrC(IAP_SERVICE_TYPE), serviceType);
- checkView->ReadUintL(TPtrC(IAP_SERVICE), serviceId);
-
-
- CCommsDbTableView* tableView;
- tableView= iDatabase->OpenViewMatchingUintLC(serviceType, TPtrC(COMMDB_ID), serviceId);
- error = tableView->GotoFirstRecord();
- if (error == KErrNone )
- {
- error = tableView->DeleteRecord();
- }
- CleanupStack::PopAndDestroy(); // tableView
-
- //
- // Delete Proxies for AP also
- //
- proxyView = iDatabase->OpenViewMatchingTextLC(TPtrC(PROXIES),
- TPtrC(PROXY_SERVICE_TYPE),
- serviceType);
-
- TInt errorProxy = proxyView->GotoFirstRecord();
-
- while (errorProxy == KErrNone)
- {
- TUint32 lValue;
- proxyView->ReadUintL(TPtrC(PROXY_ISP),lValue);
- if(lValue == serviceId)
- {
- proxyView->ReadUintL(TPtrC(COMMDB_ID),iProxyId);
- DBG_ARGS8(_S8("DeleteAPL:Delete ServiceId=%d ProxyId=%d"),lValue, iProxyId);
- error = proxyView->DeleteRecord();
- }
- errorProxy = proxyView->GotoNextRecord();
- }
-
- CleanupStack::PopAndDestroy(); // proxyView
-
- error = checkView->DeleteRecord();
- if( error == KErrNone )
- {
- ret = ETrue;
- }
-
- // Delete WAP also
- if(WapAPExistsL(aId))
- {
- DeleteWapAPL(aId);
- }
- }
-
- CleanupStack::PopAndDestroy(); // checkView
- #endif
- */
- if(FeatureManager::FeatureSupported(KFeatureIdSapPolicyManagement))
- {
- if(iWAPRelock)
- {
- DoLockIAPTablesL(ETrue);
- iWAPRelock = EFalse;
- }
- }
- return ret;
- }
-
-//------------------------------------------------------------------------------
-// TPtrC8 CNSmlInternetAdapter::LastURISeg(const TDesC8& aURI)
-// Returns only the last uri segment
-//------------------------------------------------------------------------------
-TPtrC8 CNSmlInternetAdapter::LastURISeg(const TDesC8& aURI)
- {
- TInt i;
- for(i=aURI.Length()-1;i>=0;i--)
- {
- if(aURI[i]=='/')
- {
- break;
- }
- }
- if(i==0)
- {
- return aURI;
- }
- else
- {
- return aURI.Mid(i+1);
- }
- }
-
-//------------------------------------------------------------------------------
-// TPtrC8 CNSmlInternetAdapter::FirstURISeg(const TDesC8& aURI)
-// returns parent uri, i.e. removes last uri segment
-//------------------------------------------------------------------------------
-TPtrC8 CNSmlInternetAdapter::FirstURISeg(const TDesC8& aURI)
- {
- TInt j= 0;
- for(TInt i=0;i<=aURI.Length()-1;i++)
- {
- if(aURI[i]=='/')
- {
- for(j=i+1;j<=aURI.Length()-1;j++)
- {
- if(aURI[j]=='/') // Second slash => AP/xxxx
- break;
- }
- break;
- }
- }
- return aURI.Left(j);
- }
-
-//------------------------------------------------------------------------------
-// TPtrC8 CNSmlInternetAdapter::GetDynamicAPNodeUri( const TDesC8& aURI )
-// returns AP/xxx URI
-//------------------------------------------------------------------------------
-TPtrC8 CNSmlInternetAdapter::GetDynamicAPNodeUri( const TDesC8& aURI )
- {
- _DBG_FILE("CNSmlInternetAdapter::GetDynamicAPNodeUri(): begin");
- DBG_ARGS8(_S8("CNSmlInternetAdapter::GetDynamicAPNodeUri() - <%S> "), &aURI);
-
- TInt i= 0;
- for ( i = aURI.Find( KNSmlDdfAP ) + 3; i < aURI.Length(); i++ )
- {
- if( aURI[i] == '/' )
- {
- break;
- }
- }
-
- _DBG_FILE("CNSmlInternetAdapter::GetDynamicAPNodeUri(): end");
-
- return aURI.Left( i );
- }
-
-//------------------------------------------------------------------------------
-// CNSmlInternetAdapter::ExecuteBufferL(const TDesC8& aURI)
-// Executes commands for AP after Bearer-data is set
-//------------------------------------------------------------------------------
-void CNSmlInternetAdapter::ExecuteBufferL(const TDesC8& aURI, const TBool aCompleting)
- {
- //
- // Choose AP according to aURI
- //
- iExecutingBuffer = ETrue;
- for(TInt i = 0; i<iBuffer->Count(); i++)
- {
- TPtrC8 parentUri = FirstURISeg(aURI);
- if(iBuffer->At(i).iMappingName->Compare(parentUri) == 0 )
- {
- iExecutionIndex = i;
- break;
- }
- }
-
- if((iExecutionIndex<0) || (iExecutionIndex >= iBuffer->Count()))
- {
- return;
- }
-
- iISPId = 0;
- //
- // Execute all commands for One AP NAPDef
- //
- if ( iBuffer->At(iExecutionIndex).iDnsUpdateBuf )
- {
- iDnsUpdate = ETrue;
- }
-
- for(TInt cmd=iBuffer->At(iExecutionIndex).iNodeBuf->Count()-1;cmd>=0;cmd--)
- {
- TBuf8<16> addLUID;
- _LIT8(KFormat,"%d");
-
- if(iBuffer->At(iExecutionIndex).iNodeBuf->At(cmd).iUri->Match(_L8("AP/*/Px*")) != 0)
- {
-
- if (!iBuffer->At(iExecutionIndex).iNodeBuf->At(cmd).iLeaf)
- {
- addLUID.Format(KFormat,0);
- if(iBuffer->At(iExecutionIndex).iLuid > 0)
- {
- addLUID.Format(KFormat,-1); // Used for Status return
- }
- AddNodeObjectL(iBuffer->At(iExecutionIndex).iNodeBuf->At(cmd).iUri->Des(),
- addLUID,
- iBuffer->At(iExecutionIndex).iNodeBuf->At(cmd).iStatusRef);
-
- iBuffer->At(iExecutionIndex).iExecuted = ETrue;
- }
- else
- {
- if ( iBuffer->At(iExecutionIndex).iDnsUpdateBuf )
- {
- addLUID.Zero();
- addLUID.Append(iBuffer->At(iExecutionIndex).iNodeBuf->At(cmd).iLuid->Des());
- }
- else
- {
- addLUID.Format(KFormat,iBuffer->At(iExecutionIndex).iLuid);
- if(!iBuffer->At(iExecutionIndex).iDirection || // The three values has to be set
- !iBuffer->At(iExecutionIndex).iBearer ||
- !iBuffer->At(iExecutionIndex).iNameReceived ) // before new AP set
- {
- addLUID.Format(KFormat,KNSmlIncompleteAP); // (-1) Used for error
- } // Status return
- }
- //iIAPName = iBuffer->At(iExecutionIndex).iName->Des();
-
- AddLeafObjectL(iBuffer->At(iExecutionIndex).iNodeBuf->At(cmd).iUri->Des(),
- addLUID,
- iBuffer->At(iExecutionIndex).iNodeBuf->At(cmd).iData->Des(),
- KNSmlMimeTypeTextPlain,
- iBuffer->At(iExecutionIndex).iNodeBuf->At(cmd).iStatusRef);
-
- if(iBuffer->At(iExecutionIndex).iLuid == 0) // After BearerL
- iBuffer->At(iExecutionIndex).iLuid = iISPId;
- }
-
- iBuffer->At(iExecutionIndex).iNodeBuf->At(cmd).iDone = ETrue;
- }
-
- }
- //
- // Execute all commands for One AP Px
- //
- for(TInt cmd2=0;cmd2 < iBuffer->At(iExecutionIndex).iNodeBuf->Count();cmd2++)
- {
- TBuf8<16> addLUID2;
- _LIT8(KFormat,"%d");
- if(!iBuffer->At(iExecutionIndex).iNodeBuf->At(cmd2).iDone)
- {
- if (!iBuffer->At(iExecutionIndex).iNodeBuf->At(cmd2).iLeaf)
- {
- addLUID2.Format(KFormat,0);
- if(iBuffer->At(iExecutionIndex).iLuid > 0)
- {
- addLUID2.Format(KFormat,-1); // Used for Status return
- }
- AddNodeObjectL(iBuffer->At(iExecutionIndex).iNodeBuf->At(cmd2).iUri->Des(),
- addLUID2,
- iBuffer->At(iExecutionIndex).iNodeBuf->At(cmd2).iStatusRef);
-
- iBuffer->At(iExecutionIndex).iExecuted = ETrue;
- }
- else
- {
- addLUID2.Format(KFormat,iBuffer->At(iExecutionIndex).iLuid);
- iIAPName = iBuffer->At(iExecutionIndex).iName->Des();
- if(!iBuffer->At(iExecutionIndex).iDirection || // Allvalues has to be set
- !iBuffer->At(iExecutionIndex).iBearer ||
- !iBuffer->At(iExecutionIndex).iName) // before new AP set
- {
- addLUID2.Format(KFormat,KNSmlIncompleteAP); // (-1) Used for error
- } // Status return
-
- AddLeafObjectL(iBuffer->At(iExecutionIndex).iNodeBuf->At(cmd2).iUri->Des(),
- addLUID2,
- iBuffer->At(iExecutionIndex).iNodeBuf->At(cmd2).iData->Des(),
- KNSmlMimeTypeTextPlain,
- iBuffer->At(iExecutionIndex).iNodeBuf->At(cmd2).iStatusRef);
-
- if(iBuffer->At(iExecutionIndex).iLuid == 0) // After BearerL
- iBuffer->At(iExecutionIndex).iLuid = iISPId;
- }
- } //++
-
- iBuffer->At(iExecutionIndex).iNodeBuf->At(cmd2).iDone = ETrue;
-
- delete iBuffer->At(iExecutionIndex).iNodeBuf->At(cmd2).iUri;
- iBuffer->At(iExecutionIndex).iNodeBuf->At(cmd2).iUri = NULL;
-
- if(iBuffer->At(iExecutionIndex).iNodeBuf->At(cmd2).iData)
- {
- delete iBuffer->At(iExecutionIndex).iNodeBuf->At(cmd2).iData;
- iBuffer->At(iExecutionIndex).iNodeBuf->At(cmd2).iData = NULL;
- }
- }
-
- // Wlan buffer execution only when called from CompleteOutstandingCmdsL (= aCompleting)
- for(TInt i = 0; aCompleting && i < iBuffer->At(iExecutionIndex).iWlanNodeBuf->Count(); ++i )
- {
- TBuf8<16> addLUID;
- _LIT8( KFormat,"%d" );
-
- if ( !iBuffer->At( iExecutionIndex ).iWlanNodeBuf->At( i ).iLeaf )
- {
- addLUID.Format( KFormat, 0 );
-
- if( iBuffer->At( iExecutionIndex ).iLuid > 0 )
- {
- addLUID.Format( KFormat, iBuffer->At(iExecutionIndex).iLuid );
- }
-
- AddNodeObjectL( iBuffer->At( iExecutionIndex ).iWlanNodeBuf->At( i ).iUri->Des(),
- addLUID,
- iBuffer->At( iExecutionIndex ).iWlanNodeBuf->At( i ).iStatusRef );
-
- iBuffer->At( iExecutionIndex ).iExecuted = ETrue;
- }
- else
- {
- addLUID.Zero();
- addLUID.Append( iBuffer->At( iExecutionIndex ).iWlanNodeBuf->At( i ).iLuid->Des() );
-
- iIAPName = iBuffer->At( iExecutionIndex ).iName->Des();
-
- AddLeafObjectL( iBuffer->At( iExecutionIndex ).iWlanNodeBuf->At( i ).iUri->Des(),
- addLUID,
- iBuffer->At( iExecutionIndex ).iWlanNodeBuf->At( i ).iData->Des(),
- KNSmlMimeTypeTextPlain,
- iBuffer->At( iExecutionIndex ).iWlanNodeBuf->At( i ).iStatusRef);
-
- if( iBuffer->At( iExecutionIndex ).iLuid == 0 ) // After BearerL
- {
- iBuffer->At( iExecutionIndex ).iLuid = iISPId;
- }
-
- }
-
- iBuffer->At( iExecutionIndex ).iWlanNodeBuf->At( i ).iDone = ETrue;
- }
-
-//
-// Remove data from handled AP-commands
-//
-
- ClearBuffer( iBuffer->At(iExecutionIndex).iNodeBuf );
-
- if ( aCompleting )
- {
- delete iBuffer->At(iExecutionIndex).iNodeBuf;
-
- ClearBuffer( iBuffer->At(iExecutionIndex).iWlanNodeBuf );
- delete iBuffer->At(iExecutionIndex).iWlanNodeBuf;
-
- if(iBuffer->At(iExecutionIndex).iMappingName)
- {
- delete iBuffer->At(iExecutionIndex).iMappingName;
- iBuffer->At(iExecutionIndex).iMappingName = NULL;
- }
-
- if(iBuffer->At(iExecutionIndex).iName)
- {
- delete iBuffer->At(iExecutionIndex).iName;
- iBuffer->At(iExecutionIndex).iName = NULL;
- }
-
- iBuffer->Delete(iExecutionIndex);
- iBuffer->Compress();
- }
-
- iExecutingBuffer = EFalse;
- iStaleMapUpdate = EFalse;
- }
-
-//------------------------------------------------------------------------------
-// TPtrC16 CNSmlInternetAdapter::GetAddURISeg(const TDesC8& aURI,const TDesC8 aName)
-// Returns uri segment until the next segment after given aName
-//------------------------------------------------------------------------------
-TPtrC8 CNSmlInternetAdapter::GetAddURISeg(const TDesC8& aURI,const TDesC8& aName)
- {
- TInt lStrt = aURI.Find(aName);
- if (lStrt == KErrNotFound)
- {
- return aURI;
- }
-
- lStrt += 1;
- TInt i = 0;
- for( i=lStrt+aName.Length(); i <= aURI.Length()-1; i++ )
- {
- if(aURI[i]=='/')
- {
- break;
- }
- }
- if(i==0)
- {
- return aURI;
- }
- else
- {
- return aURI.Left(i);
- }
- }
-
-//=============================================
-// CNSmlInternetAdapter::InitializeWAPAIPL()
-// Initialize WAP IAP-data before insert
-//
-//=============================================
-TInt CNSmlInternetAdapter::InitializeWAPIAPL( CCommsDbTableView* aTable,
- const TDesC8& aName )
- {
- aTable->WriteTextL(TPtrC(COMMDB_NAME), ConvertTo16LC(aName)); // Same as IAP
-
-
- aTable->WriteTextL(TPtrC(WAP_CURRENT_BEARER), iWapBearer);
- aTable->WriteLongTextL(TPtrC(WAP_START_PAGE), ConvertTo16LC(iWAPAccessPoint));
- CleanupStack::PopAndDestroy(2); //ConvertTo16LC
- return KErrNone;
- }
-
-//=============================================
-// CNSmlInternetAdapter::InitializeWAPL()
-// Initialize WAP IP Bearer-data before insert
-//
-//=============================================
-TInt CNSmlInternetAdapter::InitializeWAPL( CCommsDbTableView* aTable )
- {
- TUint32 wapPortNumber = 0;
-
- aTable->WriteUintL(TPtrC(WAP_ACCESS_POINT_ID), iWapId);
- aTable->WriteTextL(TPtrC(WAP_GATEWAY_ADDRESS), KNSmlEmptyIpv4Address);
-
- aTable->WriteUintL(TPtrC(WAP_WSP_OPTION), EWapWspOptionConnectionOriented); // EWapWspOptionConnectionless
- aTable->WriteBoolL(TPtrC(WAP_SECURITY), EFalse ); // if 9200 => false
-
- aTable->WriteUintL(TPtrC(WAP_IAP), iISPId);
- aTable->WriteUintL(TPtrC(WAP_PROXY_PORT), wapPortNumber);
-
- aTable->WriteTextL(TPtrC(WAP_PROXY_LOGIN_NAME), ConvertTo16LC(iWapUserName));
- aTable->WriteTextL(TPtrC(WAP_PROXY_LOGIN_PASS), ConvertTo16LC(iWapPassword));
-
- CleanupStack::PopAndDestroy(2); //ConvertTo16LC
- return KErrNone;
- }
-
-//=============================================
-// CNSmlInternetAdapter::IsWapPort()
-// Check if portnbr for proxy or wap
-//
-//=============================================
-void CNSmlInternetAdapter::IsWapPort( const TDesC8& aObject )
- {
- iWapPort = EFalse;
- TInt portNbr = GetIntObject8(aObject);
- if( portNbr >= KNSmlApWapLowerBase && portNbr <= KNSmlApWapUpperBase )
- {
- iWapPort = ETrue;
- }
- }
-
-// -------------------------------------------------------------------------------------
-// CNSmlInternetAdapter::FillNodeInfoL()
-// Fills the node info in ddf structure
-// -------------------------------------------------------------------------------------
-void CNSmlInternetAdapter::FillNodeInfoL( MSmlDmDDFObject& aNode,
- TSmlDmAccessTypes aAccTypes,
- MSmlDmDDFObject::TOccurence aOccurrence,
- MSmlDmDDFObject::TScope aScope,
- MSmlDmDDFObject::TDFFormat aFormat,
- const TDesC8& aDescription )
-
- {
- aNode.SetAccessTypesL(aAccTypes);
- aNode.SetOccurenceL(aOccurrence);
- aNode.SetScopeL(aScope);
- aNode.SetDFFormatL(aFormat);
- if(aFormat!=MSmlDmDDFObject::ENode)
- {
- aNode.AddDFTypeMimeTypeL(KNSmlMimeType);
- }
- aNode.SetDescriptionL(aDescription);
- }
-
-
-//=======================================================
-// CNSmlInternetAdapter::UpdateIAPnameL()
-// Update IAP-table name add Network-table if needed
-// Add/update WAP-table name also
-//
-//=======================================================
-TInt CNSmlInternetAdapter::UpdateIAPnameL( TUint32 aId, const TDesC8& aObject )
- {
-
- TUint32 nwId=0;
- TInt ret = KErrNone;
- TBool iapReLock = EFalse;
-
- TBool apEnforce=EFalse;
- TRAPD( eError,apEnforce=CheckEnforcementL() )
- DBG_ARGS8(_S8("CNSmlInternetAdapter::UpdateIAPNAme(): EError %d , APEnforcement is %d"),eError,apEnforce);
- if( eError==KErrNone && apEnforce )
- {
- DoLockIAPTablesL(EFalse);
- iWAPRelock = ETrue;
- }
-
- CCommsDbTableView* iapUpdate = iDatabase->OpenViewMatchingUintLC(TPtrC(IAP),TPtrC(COMMDB_ID), aId);
- if(IsIAPRecordLockedL(aId))
- {
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): apaccesspoint record is LOCKED");
- TInt reclockerr = ((CCommsDbProtectTableView*)iapUpdate)->UnprotectRecord();
- DBG_ARGS8(_S8("CNSmlInternetAdapter::AddLeafObjectL ,UnProtecting IAPAccessRecord returned code = %d"),reclockerr);
- if(reclockerr==KErrNone)
- iapReLock = ETrue;
- }
- else
- {
- _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): apaccesspoint record is not write protected");
- }
- TInt error = iapUpdate->GotoFirstRecord();
- if (error == KErrNone)
- {
- _DBG_FILE("CNSmlInternetAdapter::UpdateIAPName, IAP_NETWORK set");
- TRAPD(err, iapUpdate->ReadUintL(TPtrC(IAP_NETWORK),nwId));
-
- if(iapUpdate->UpdateRecord()==KErrNone)
- {
- iapUpdate->WriteTextL(TPtrC(COMMDB_NAME), ConvertTo16LC(aObject));
-
- if( err != KErrNone ) // Network entry not yet created
- {
- AddNetworkL(nwId,aObject);
- if( nwId > 0 )
- {
- _DBG_FILE("CNSmlInternetAdapter::UpdateIAPName, IAP_NETWORK set");
- DBG_ARGS8(_S8("CNSmlInternetAdapter::UpdateIAPName(): networks is %d"),nwId);
- iapUpdate->WriteUintL(TPtrC(IAP_NETWORK),nwId);
- }
- else
- {
- ret = KErrGeneral;
- }
- }
- iapUpdate->PutRecordChanges();
- }
- CleanupStack::PopAndDestroy(); //ConvertTo16LC
- }
- CleanupStack::PopAndDestroy(); // iapUpdate
-
-
- if(WapAPExistsL(aId))
- { // Update handled
- CCommsDbTableView* wapView;
- wapView = iDatabase->OpenViewMatchingUintLC(TPtrC(WAP_ACCESS_POINT),
- TPtrC(COMMDB_ID),
- iWapId);
- TInt errorCode = wapView->GotoFirstRecord();
-
- // Read all columns needed.
- if ( errorCode == KErrNone )
- {
- if(wapView->UpdateRecord()==KErrNone)
- {
- wapView->WriteTextL(TPtrC(COMMDB_NAME), ConvertTo16LC(aObject));
- wapView->PutRecordChanges();
- CleanupStack::PopAndDestroy(); //ConvertTo16LC
- }
- }
- CleanupStack::PopAndDestroy(); // wapView
- }
- else
- { // Insert handled
- CCommsDbTableView* insView;
- TInt wapInitOK = KErrCancel;
-
- insView = iDatabase->OpenTableLC(TPtrC(WAP_ACCESS_POINT));
- iWapId = 0;
- wapInitOK = insView->InsertRecord(iWapId);
- if(wapInitOK == KErrNone)
- {
- iWAPAccessPoint.Zero();
- iWapUserName.Zero();
- iWapPassword.Zero();
- iWapBearer = TPtrC(WAP_IP_BEARER);
-
- wapInitOK = InitializeWAPIAPL( insView, aObject );
- wapInitOK = insView->PutRecordChanges();
-
- if( wapInitOK == KErrNone )
- {
- CCommsDbTableView* updView;
- TUint32 iWapId2 = 0;
- iISPId = aId; // IAP number set
- updView = iDatabase->OpenTableLC(TPtrC(WAP_IP_BEARER));
- if(updView->InsertRecord(iWapId2) == KErrNone)
- {
- InitializeWAPL(updView);
- updView->PutRecordChanges();
- }
- CleanupStack::PopAndDestroy(); // updView
- }
- }
- else
- {
- ret = KErrGeneral;
- }
- CleanupStack::PopAndDestroy(); // insView
- }
- if(FeatureManager::FeatureSupported(KFeatureIdSapPolicyManagement))
- {
- if(iWAPRelock)
- {
- DoLockIAPTablesL(ETrue);
- iWAPRelock = EFalse;
- }
- }
- if(iapReLock)
- {
- TInt reclockerr = DoProtectIAPRecordL(aId,ETrue);
- DBG_ARGS8(_S8("CNSmlInternetAdapter::AddLeafObjectL ,UnProtecting IAPAccessRecord returned code = %d"),reclockerr);
- if(reclockerr==KErrNone)
- iapReLock = EFalse;
- }
- return ret;
- }
-
-//=============================================
-// CNSmlInternetAdapter::InitializeVPNServiceL()
-// Initialize VPNService-data before insert
-//=============================================
-TInt CNSmlInternetAdapter::InitializeVPNServiceL( CCommsDbTableView* aTable )
- {
- _LIT(KdefPolicy, "Home");
-
- aTable->WriteTextL(TPtrC(COMMDB_NAME) ,iIAPName); // Same as IAP
-
- aTable->WriteTextL(TPtrC(VPN_SERVICE_POLICY) ,KdefPolicy);
- aTable->WriteUintL(TPtrC(VPN_SERVICE_IAP) ,1);
- aTable->WriteUintL(TPtrC(VPN_SERVICE_NETWORKID) ,1);
-
- return KErrNone;
- }
-
-
-//=============================================
-// CNSmlInternetAdapter::InitializeLANServiceL()
-// Initialize LANService-data before insert
-//=============================================
-TInt CNSmlInternetAdapter::InitializeLANServiceL( CCommsDbTableView* aTable )
- {
- if ( !iWlanSupported )
- {
- _DBG_FILE("CNSmlInternetAdapter::InitializeLANServiceL, WLAN not supported.");
- return KErrNotSupported;
- }
- _LIT(KgifNetworks, "ip,ip6");
- _LIT(Kdns6Address, "0:0:0:0:0:0:0:0");
- _LIT(KdefaultNetmask, "255.255.255.0");
-
- aTable->WriteTextL(TPtrC(COMMDB_NAME) ,ConvertTo16LC(iIAPName)); // Same as IAP
- aTable->WriteTextL(TPtrC(LAN_IF_NETWORKS) ,KgifNetworks);
- aTable->WriteBoolL(TPtrC(SERVICE_IP_ADDR_FROM_SERVER),ETrue); // DHCP by default.
- aTable->WriteTextL(TPtrC(SERVICE_IP_ADDR) ,KNSmlEmptyIpv4Address);
- aTable->WriteTextL(TPtrC(SERVICE_IP_NETMASK) ,KdefaultNetmask);
- aTable->WriteBoolL(TPtrC(SERVICE_IP_DNS_ADDR_FROM_SERVER),ETrue);
- aTable->WriteTextL(TPtrC(SERVICE_IP_NAME_SERVER1),KNSmlEmptyIpv4Address);
- aTable->WriteTextL(TPtrC(SERVICE_IP_NAME_SERVER2),KNSmlEmptyIpv4Address);
- aTable->WriteTextL(TPtrC(SERVICE_IP_GATEWAY) ,KNSmlEmptyIpv4Address);
-
- aTable->WriteBoolL(TPtrC(SERVICE_IP6_DNS_ADDR_FROM_SERVER),ETrue );
- aTable->WriteTextL(TPtrC(SERVICE_IP6_NAME_SERVER1),Kdns6Address);
- aTable->WriteTextL(TPtrC(SERVICE_IP6_NAME_SERVER2),Kdns6Address);
- aTable->WriteTextL(TPtrC(SERVICE_CONFIG_DAEMON_MANAGER_NAME), KDaemonManagerName);
- aTable->WriteTextL(TPtrC(SERVICE_CONFIG_DAEMON_NAME), KConfigDaemonName );
-
- CleanupStack::PopAndDestroy(); //ConvertTo16LC
- return KErrNone;
- }
-
-//=============================================
-// CNSmlInternetAdapter::IsWLANfield()
-// Check if handled by WLAN-adapter
-//=============================================
-TBool CNSmlInternetAdapter::IsWLANfield( const TDesC8& aURI )
- {
- TBool ret(EFalse);
-
- SetField(aURI);
-
- if(KNSmlDdfNetworkID().Match(*iField) == 0) // ID not valid
- {
- return ret;
- }
- if(KNSmlDdfAP().Match(*iField) == 0) // AP not valid
- {
- return ret;
- }
- if (aURI.Match(_L8("AP/*/NAPDef/*/WLAN/*")) != KErrNotFound)
- {
- DBG_ARGS8(_S8("AP:IsWLANfield URI - <%S> <%S> FOUND"), &aURI, iField );
- ret = ETrue;
- }
-
- return ret;
- }
-
-//=============================================
-// CNSmlInternetAdapter::IsWlanL()
-// Check if WLAN accesspoint
-//=============================================
-TBool CNSmlInternetAdapter::IsWlanL( const TDesC8& aURI )
- {
- TBool ret(EFalse);
-
- if ( !iWlanSupported )
- {
- _DBG_FILE("CNSmlInternetAdapter::IsWlanL, WLAN not supported.");
- return ret;
- }
-
- TBuf<KCommsDbSvrMaxFieldLength> serviceType;
-
- // Get IAP nbr for servicetype
- TUint32 apWlan = GetAPIdFromURIL(aURI);
-
- // IAP-table search serviceType (=Bearer)
- CCommsDbTableView* iapViews = iDatabase->OpenViewMatchingUintLC(TPtrC(IAP),
- TPtrC(COMMDB_ID),
- apWlan);
-
- TInt errorCode = iapViews->GotoFirstRecord();
-
- // Read iapService from (IAP)
- if ( errorCode == KErrNone )
- {
- iapViews->ReadTextL(TPtrC(IAP_SERVICE_TYPE), serviceType);
- if(serviceType == TPtrC(LAN_SERVICE))
- {
- ret = ETrue;
- }
- }
- CleanupStack::PopAndDestroy(); // iapViews
-
- return ret;
- }
-
-//------------------------------------------------------------------------------
-// TBool CNSmlInternetAdapter::GetLanBearerL()
-//------------------------------------------------------------------------------
-TBool CNSmlInternetAdapter::GetLanBearerL(TUint32& aId)
- {
- TBool ret = EFalse;
-
- if ( !iWlanSupported )
- {
- _DBG_FILE("CNSmlInternetAdapter::GetLanBearerL, WLAN not supported.");
- return ret;
- }
-
- CCommsDbTableView* checkView;
-
- HBufC* bName = HBufC::NewLC(15);
- TPtr bNamePtr = bName->Des();
- _LIT(KWlanBearer, "WLANBearer" );
- bNamePtr.Format( KWlanBearer );
-
- checkView = iDatabase->OpenViewMatchingTextLC(TPtrC(LAN_BEARER),TPtrC(COMMDB_NAME), bNamePtr);
- TInt error = checkView->GotoFirstRecord();
- if (error == KErrNone)
- {
- checkView->ReadUintL(TPtrC(COMMDB_ID), aId);
- ret = ETrue;
- }
- else
- {
- aId = 1; // Default modem
- }
- DBG_ARGS8(_S8("CNSmlInternetAdapter:GetLanBearerL %d"), aId);
-
- CleanupStack::PopAndDestroy(2); // checkView bName
-
- return ret;
- }
-
-
-//------------------------------------------------------------------------------
-// TBool CNSmlInternetAdapter::GetModemBearerL()
-//------------------------------------------------------------------------------
-TBool CNSmlInternetAdapter::GetModemBearerL(TUint32& aId)
- {
- TBool ret = EFalse;
- CCommsDbTableView* checkView;
-
- HBufC* bName = HBufC::NewLC(15);
- TPtr bNamePtr = bName->Des();
-
- if(iBearer == TPtrC(OUTGOING_GPRS) ||
- iBearer == TPtrC(INCOMING_GPRS) )
- {
- _LIT(KGprsModem, "GPRS Modem" );
- bNamePtr.Format( KGprsModem );
- }
-
- checkView = iDatabase->OpenViewMatchingTextLC(TPtrC(MODEM_BEARER),TPtrC(COMMDB_NAME), bNamePtr);
- TInt error = checkView->GotoFirstRecord();
- if (error == KErrNone)
- {
- checkView->ReadUintL(TPtrC(COMMDB_ID), aId);
- ret = ETrue;
- }
- else
- {
- aId = 5; // Default modem 1->5 ???
- }
- DBG_ARGS8(_S8("CNSmlInternetAdapter:GetModemBearerL %d"), aId);
-
- CleanupStack::PopAndDestroy(2); // checkView bName
-
- return ret;
- }
-
-
-// ---------------------------------------------------------
-// NextAPNameL()
-// Generates new AP name.
-// ---------------------------------------------------------
-void CNSmlInternetAdapter::NextAPNameL(const TDesC8& aName)
- {
- // generate name candidate
- HBufC8* nameCandidate = HBufC8::NewLC(aName.Length()+12);
- TPtr8 candidatePtr = nameCandidate->Des();
-
- // loop while valid name is found
- TBool validName;
-
- // loop while valid name is found
- TInt i=0;
- do {
- validName = ETrue;
- candidatePtr.Format(aName);
- if(i>0)
- {
- _LIT( KLeftBrace, "(" );
- _LIT( KRightBrace, ")" );
- HBufC* buf = HBufC::NewLC(10); //10 = max length of 32bit integer
- TPtr ptrBuf = buf->Des();
- ptrBuf.Num(i);
- candidatePtr.Append( KLeftBrace );
- candidatePtr.Append(ptrBuf);
- candidatePtr.Append( KRightBrace );
- CleanupStack::PopAndDestroy(); //buf
- }
- i++;
- if(!IsValidNameL(candidatePtr))
- {
- validName = EFalse;
- }
- } while( !validName );
-
- iIAPName = candidatePtr;
-
- CleanupStack::PopAndDestroy(); //nameCandidate
- }
-
-//------------------------------------------------------------------------------
-// TBool CNSmlInternetAdapter::IsValidNameL()
-//------------------------------------------------------------------------------
-TBool CNSmlInternetAdapter::IsValidNameL(const TDesC8& aName)
- {
- TBool ret = ETrue;
- CCommsDbTableView* nameView;
-
- nameView = iDatabase->OpenViewMatchingTextLC( TPtrC(IAP),TPtrC(COMMDB_NAME), aName);
-
- TInt errorCode = nameView->GotoFirstRecord();
-
- if (errorCode == KErrNone )
- {
- ret = EFalse; // If found error returned
- }
-
- CleanupStack::PopAndDestroy(); // nameView
- return ret;
- }
-
-//------------------------------------------------------------------------------
-// TBool CNSmlInternetAdapter::InitializeDNSParamsFromBuffL(const TPtrC8 aParentUri,
-// TInt& aDnsPri )
-// Finds parameters needed in updating DNSAddrL from buffer
-//------------------------------------------------------------------------------
-TBool CNSmlInternetAdapter::InitializeDNSParamsFromBuffL( const TPtrC8 aParentUri,
- TInt& aDnsPri )
- {
- TInt cmd(0);
- TBool found(EFalse);
-
- TNSmlAPBufferElement& thisElem = iBuffer->At( 0 );
-
- // Parse URI to match
- CBufBase* buf = CBufFlat::NewL(150);
- CleanupStack::PushL( buf );
- buf->InsertL(0, aParentUri);
- buf->InsertL(buf->Size(), KNSmlDmApValFSlash);
- buf->InsertL(buf->Size(), KNSmlDdfDNSPriority );
- TBuf8<150> tmp;
- buf->Read(0, tmp, buf->Size());
-
- cmd = thisElem.iNodeBuf->Count() -1;
- // check if the DNSPriority is sent for DNSAddr/<x>
- while( cmd >= 0 )
- {
- TNSmlAPAddElement& dbgElem2 = thisElem.iNodeBuf->At(cmd);
- if( thisElem.iNodeBuf->At(cmd).iUri->Match( tmp ) != KErrNotFound )
- {
- TLex8 lex(thisElem.iNodeBuf->At(cmd).iData->Des());
- lex.Val(aDnsPri);
- thisElem.iNodeBuf->At(cmd).iDone = ETrue;
- found = ETrue;
- }
- cmd--;
- }
- CleanupStack::PopAndDestroy(buf);
- return found;
- }
-
-//------------------------------------------------------------------------------
-// TBool CNSmlInternetAdapter::DnsToLuid(const UriUtils::TUriHostType aType,)
-// const TInt aPriority ) const
-// Encodes special luid for DNSAddr/<X>
-//------------------------------------------------------------------------------
-TInt CNSmlInternetAdapter::DnsToLuid( const UriUtils::TUriHostType aType,
- const TInt aPriority ) const
- {
- return KNSmlApDnsLuidUpperBase + static_cast<TInt>(aType)*10 + aPriority;
- }
-//------------------------------------------------------------------------------
-// TBool CNSmlInternetAdapter::LuidToDns(UriUtils::TUriHostType& aType,)
-// TInt& aPriority, const TInt aLuid ) const
-// Decodes DNAddr/<X> type from LUID
-//------------------------------------------------------------------------------
-TInt CNSmlInternetAdapter::LuidToDns( UriUtils::TUriHostType& aType,
- TInt& aPriority, const TInt aLuid ) const
- {
- TInt err = KErrNone;
- if ( aLuid < KNSmlApDnsLuidUpperBase )
- {
- err = KErrGeneral;
- }
- else
- {
- aPriority = ( aLuid - KNSmlApDnsLuidUpperBase ) % 10;
- if ( (aPriority > 0) && (aPriority < 3) )
- {
- TInt type = ( aLuid - KNSmlApDnsLuidUpperBase - aPriority ) / 10;
- if ( ( type >= 0 ) && ( type < 2 ) )
- {
- aType = static_cast<UriUtils::TUriHostType>(type);
- }
- else
- {
- err = KErrGeneral;
- }
- }
- else
- {
- err = KErrGeneral;
- }
- }
- return err;
- }
-//------------------------------------------------------------------------------
-// TBool CNSmlInternetAdapter::RemoveLastSeg(const TDesC8& aURI)
-// Returns URI without its last segment
-//------------------------------------------------------------------------------
-TPtrC8 CNSmlInternetAdapter::RemoveLastSeg(const TDesC8& aURI) const
- {
- TInt i;
- for(i=aURI.Length()-1;i>=0;i--)
- {
- if(aURI[i]==KNSmlDMUriSeparator)
- {
- break;
- }
- }
- if(i>0)
- {
- return aURI.Left(i);
- }
- else
- {
- return KNullDesC8();
- }
- }
-
-//------------------------------------------------------------------------------
-// void CNSmlInternetAdapter::ClearBuffer()
-// Deletes all dynamically allocated data from given array's each element
-// and resets the buffer.
-//------------------------------------------------------------------------------
-void CNSmlInternetAdapter::ClearBuffer( CArrayFixFlat<TNSmlAPAddElement>* aBuffer )
- {
- for( TInt i = 0; i < aBuffer->Count(); i++ )
- {
- delete aBuffer->At(i).iUri;
- aBuffer->At(i).iUri = NULL;
-
- delete aBuffer->At(i).iData;
- aBuffer->At(i).iData = NULL;
-
- delete aBuffer->At(i).iLuid;
- aBuffer->At(i).iLuid = NULL;
- }
-
- aBuffer->Reset();
- }
-
-
-
-//----------------------------------------------------------------------
-//TBool CNSmlInternetAdapter::IsValidIPv4AddressL(const TDesC8& aNapAddr)
-//Checks if the string is of correct IPV4 address format x.x.x.x and
-//numbers are within the range 0-255
-//returns true on sucess and false on failure.
-//----------------------------------------------------------------------
-TBool CNSmlInternetAdapter::IsValidIPv4AddressL(const TDesC8& aNapAddr)
- {
- TInt digitLen(0);
- TBool ret = EFalse;
- _LIT8( KNSmlDMV4Format, "*.*.*.*" );
-
- if( aNapAddr.Match(KNSmlDMV4Format)!= KErrNotFound )
- {
- TInt pos = 0;
- TInt numDots=0;
- TInt maxIP=255;
- TInt minIP=0;
- for( TInt i=0;i<aNapAddr.Length();i++ )
- {
- digitLen ++;
- //Check if aNapAddr contain any characters other than
- // 0 - 9 and ".", If yes return from the function.
- if( aNapAddr[i]!=KNSmlDMDot && (aNapAddr[i]<KNSmlDMAsciiIntStart || aNapAddr[i] > KNSmlDMAsciiIntEnd ))
- {
- ret = EFalse;
- break;
- }
- if(aNapAddr[i]==KNSmlDMDot)
- {
- ret = ETrue;
- if (i > 0 )
- {
- TInt digit;
- TPtrC8 ptrOneDigit = aNapAddr.Mid(pos,digitLen-1);
- TLex8 lexint(ptrOneDigit);
- if( lexint.Val(digit)!=KErrNone || digit >= maxIP || digit < minIP )
- {
- ret = EFalse;
- break;
- }
- } // end of if i > 0
- pos = i+1;
- numDots++;
- digitLen=0;
- } // end of if
- } //End of for
- if( numDots==3 && ret )
- {
- ret = ETrue;
- }
- else
- {
- ret = EFalse;
- }
- } // end of outer if, format check
- return ret;
- }
-
-TBool CNSmlInternetAdapter::IsWAPAccessPointRecordLockedL(TUint32 aRecord)
- {
- _DBG_FILE("CNSmlInternetAdapter::IsWAPAccessPointRecordLockedL(): BEGIN");
- TBool ret = EFalse;
- CCommsDbTableView* wapView;
- DBG_ARGS8(_S8("CNSmlInternetAdapter::IsWAPAccessPointRecordLockedL record being checked = %d"),aRecord);
- wapView = iDatabase->OpenViewMatchingUintLC(TPtrC(WAP_ACCESS_POINT),
- TPtrC(COMMDB_ID),
- aRecord);
-
- TInt aAccess( 0 );
- if(wapView!=NULL)
- {
- _DBG_FILE("CNSmlInternetAdapter::IsWAPAccessPointRecordLockedL():wap record exists, check for access type");
- TInt err = (((CCommsDbProtectTableView*) wapView )->GetRecordAccess( aAccess ) );
- DBG_ARGS8(_S8("CNSmlInternetAdapter::IsWAPAccessPointRecordLockedL , GetrecordAccess code is =%d and acess type of record = %d"),err, aAccess);
- CleanupStack::PopAndDestroy( wapView);
- if(aAccess == RDbRowSet::EReadOnly)
- ret = ETrue;
- }
-
- _DBG_FILE("CNSmlInternetAdapter::IsWAPAccessPointRecordLockedL(): END");
- return ret;
-
- }
-//----------------------------------------------------------------------
-//TBool CNSmlInternetAdapter::DoProtectWAPAccessRecordL(TUint32 aRecord,TBool aProtect)
-// protect or unprotect wapaccesspoint record of access point being altered
-//----------------------------------------------------------------------
-
-
-TInt CNSmlInternetAdapter::DoProtectWAPAccessRecordL(TUint32 aRecord,TBool aProtect)
- {
- _DBG_FILE("CNSmlInternetAdapter::DoProtectWAPAccessRecordL(): BEGIN");
- DBG_ARGS8(_S8("CNSmlInternetAdapter::DoProtectWAPAccessRecordL , record and protect value =%d = %d"),aRecord, aProtect);
- TInt err = KErrNone;
-
- CCommsDbTableView* wapView;
- wapView = iDatabase->OpenViewMatchingUintLC(TPtrC(WAP_ACCESS_POINT),
- TPtrC(COMMDB_ID),
- aRecord);
- if( wapView != NULL )
- {
- _DBG_FILE("CNSmlInternetAdapter::DoProtectWAPAccessRecordL(): wap record exists");
- if( !aProtect )
- {
- err = ( (CCommsDbProtectTableView*) wapView )->UnprotectRecord();
- DBG_ARGS8(_S8("CNSmlInternetAdapter::DoProtectWAPAccessRecordL ,error code of Unprotectrecord = %d"),err);
- }
-
- else
- {
- err = ( (CCommsDbProtectTableView*) wapView )->ProtectRecord();
- DBG_ARGS8(_S8("CNSmlInternetAdapter::DoProtectWAPAccessRecordL ,error code of ProtectRecord = %d"),err);
- }
-
- CleanupStack::PopAndDestroy( wapView);
- }
-
- _DBG_FILE("CNSmlInternetAdapter::DoProtectWAPAccessRecordL(): END");
- return err;
- }
-
-//------------------------------------------------------------------------------
-// TUint32 CNSmlInternetAdapter::GetIAPSeamlessnessL(TUint32 aId)
-// Gets the seamlessness value from the IAPMetadata table though the cmmanager API
-//------------------------------------------------------------------------------
-
-TUint32 CNSmlInternetAdapter::GetIAPSeamlessnessL(TUint32 aId)
- {
- _DBG_FILE("CNSmlInternetAdapter::GetIAPSeamlessnessL(): begin");
- //Deleting iDatabase, Required since CommsDB has one view open for reading and commsdat API would
- //return KErrLocked if this is not done
- TBool reopenTransaction( EFalse );
- if( iDatabase->InTransaction() )
- {
- iDatabase->CommitTransaction();
- iTransactionCommitted = ETrue;
- reopenTransaction = ETrue;
- }
-
-
- RCmManagerExt cmManagerExt;
- cmManagerExt.OpenL();
- RCmConnectionMethodExt cm = cmManagerExt.ConnectionMethodL( aId );
- CleanupClosePushL( cm );
- TUint32 smless= cm.GetIntAttributeL( CMManager::ECmSeamlessnessLevel );
- CleanupStack::PopAndDestroy( );
- cmManagerExt.Close();
-
- //Recreate reference to CommsDB since other tables
- //are manipulated with Commsdb
- if( reopenTransaction )
- {
- TInt dberr = iDatabase->BeginTransaction();
- if( dberr == KErrLocked )
- {
- _DBG_FILE("GetIAPSeamlessnessL: CommsDat was locked.");
- TInt retry = KBeginTransRetryCount;
- while ( retry > 0 && dberr == KErrLocked )
- {
- User::After(KBeginTransRetryDelay);
- _DBG_FILE("GetIAPSeamlessnessL: Slept 1 second. Try again");
- dberr = iDatabase->BeginTransaction();
- retry--;
- }
- if(dberr != KErrNone)
- {
- _DBG_FILE("CNSmlInternetAdapter: BeginTransaction failed completely.");
- User::Leave( dberr );
- }
- }
- }
-
- _DBG_FILE("CNSmlInternetAdapter::GetIAPSeamlessnessL(): End");
- return smless;
-
- }
-
-//------------------------------------------------------------------------------
-// TUint32 CNSmlInternetAdapter::GetIAPMetaDataL(TUint32 aId)
-// Gets the metadata value from the IAPMetadata table though the cmmanager API
-//--------------------------------------------------------------------------
-
-TUint32 CNSmlInternetAdapter::GetIAPMetaDataL(TUint32 aId)
- {
- _DBG_FILE("CNSmlInternetAdapter::GetIAPMetaDataL(): begin");
- //Deleting iDatabase, Required since CommsDB has one view open for reading and commsdat API would
- //return KErrLocked if this is not done
- TBool reopenTransaction( EFalse );
- if( iDatabase->InTransaction() )
- {
- iDatabase->CommitTransaction();
- iTransactionCommitted = ETrue;
- reopenTransaction = ETrue;
- }
-
- TUint32 metadata, highlight, hidden;
- RCmManagerExt cmManagerExt;
-
- cmManagerExt.OpenL();
- RCmConnectionMethodExt cm = cmManagerExt.ConnectionMethodL( aId );
- CleanupClosePushL( cm );
-
- TBool metaHidden = cm.GetBoolAttributeL( CMManager::ECmMetaHiddenAgent);
- TBool metaHL = cm.GetBoolAttributeL( CMManager::ECmMetaHighlight);
- highlight = EMetaHighlight & metaHL;
- hidden = EMetaHiddenAgent & metaHidden;
- metadata = highlight | hidden;
-
- CleanupStack::PopAndDestroy( );
- cmManagerExt.Close();
- //Recreate reference to CommsDB since other tables
- //are manipulated with Commsdb
- if( reopenTransaction )
- {
- TInt dberr = iDatabase->BeginTransaction();
- if( dberr == KErrLocked )
- {
- _DBG_FILE("GetIAPMetaDataL: CommsDat was locked.");
- TInt retry = KBeginTransRetryCount;
- while ( retry > 0 && dberr == KErrLocked )
- {
- User::After(KBeginTransRetryDelay);
- _DBG_FILE("GetIAPMetaDataL: Slept 1 second. Try again");
- dberr = iDatabase->BeginTransaction();
- retry--;
- }
- if(dberr != KErrNone)
- {
- _DBG_FILE("CNSmlInternetAdapter: BeginTransaction failed completely.");
- User::Leave( dberr );
- }
- }
- }
-
- _DBG_FILE("CNSmlInternetAdapter::GetIAPMetaDataL(): end");
- return metadata;
-
- }
-//------------------------------------------------------------------------------
-// void CNSmlInternetAdapter::SetIAPSeamlessnessL(TUint32 apMetaID,TUint32 aSeam,TInt aStatusRef)
-// Sets the seamlessness value to the IAPMetadata table though the cmmanager API
-//------------------------------------------------------------------------------
- void CNSmlInternetAdapter::SetIAPSeamlessnessL(TUint32 apMetaID,TUint32 aSeam,TInt aStatusRef)
- {
-
- _DBG_FILE("CNSmlInternetAdapter::SetIAPSeamlessnessL(): begin");
- TBool reopenTransaction( EFalse );
- if( iDatabase->InTransaction() )
- {
- iDatabase->CommitTransaction();
- iTransactionCommitted = ETrue;
- reopenTransaction = ETrue;
- }
-
-
- RCmManagerExt cmManagerExt;
- cmManagerExt.OpenL();
- RCmConnectionMethodExt cm ;
- TInt cmerror = KErrNone;
- TRAP(cmerror, cm= cmManagerExt.ConnectionMethodL( apMetaID ));
- CleanupClosePushL( cm );
- TRAPD(sErr,cm.SetIntAttributeL( CMManager::ECmSeamlessnessLevel,aSeam ))
- if(sErr == KErrNone)
- {
- cm.UpdateL();
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EOk);
- }
- else
- {
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EError);
- }
-
- CleanupStack::PopAndDestroy( );
-
- cmManagerExt.Close();
- // iDatabase = CCommsDatabase::NewL();
- if( reopenTransaction )
- {
- TInt dberr = iDatabase->BeginTransaction();
- if( dberr == KErrLocked )
- {
- _DBG_FILE("SetIAPSeamlessnessL: CommsDat was locked.");
- TInt retry = KBeginTransRetryCount;
- while ( retry > 0 && dberr == KErrLocked )
- {
- User::After(KBeginTransRetryDelay);
- _DBG_FILE("SetIAPSeamlessnessL: Slept 1 second. Try again");
- dberr = iDatabase->BeginTransaction();
- retry--;
- }
- if(dberr != KErrNone)
- {
- _DBG_FILE("CNSmlInternetAdapter: BeginTransaction failed completely.");
- User::Leave( dberr );
- }
- }
- }
-
- _DBG_FILE("CNSmlInternetAdapter::SetIAPSeamlessnessL(): end");
- }
-
-//------------------------------------------------------------------------------
-// void CNSmlInternetAdapter::SetIAPMetaDataL(TUint32 apMetaID,TUint32 aMeta,TInt aStatusRef)
-// Sets the metadata value to the IAPMetadata table though the cmmanager API
-//------------------------------------------------------------------------------
-
- void CNSmlInternetAdapter::SetIAPMetaDataL(TUint32 apMetaID,TUint32 aMeta,TInt aStatusRef)
- {
-
- _DBG_FILE("CNSmlInternetAdapter::SetIAPMetaDataL(): begin");
- TInt hMHLErr = KErrNone;
- TInt hMHAErr = KErrNone;
- if(iDatabase)
- {
- iDatabase->CommitTransaction();
- // delete iDatabase;
- }
- RCmManagerExt cmManagerExt;
- cmManagerExt.OpenL();
- RCmConnectionMethodExt cm = cmManagerExt.ConnectionMethodL( apMetaID );
- CleanupClosePushL( cm );
-
- if(aMeta & EMetaHighlight)
- {
- TRAP(hMHLErr,cm.SetBoolAttributeL( CMManager::ECmMetaHighlight,ETrue));
- }
- else
- {
- TRAP(hMHLErr,cm.SetBoolAttributeL( CMManager::ECmMetaHighlight,EFalse));
- }
-
- if(aMeta & EMetaHiddenAgent )
- {
- TRAP(hMHAErr,cm.SetBoolAttributeL( CMManager::ECmMetaHiddenAgent,ETrue));
- }
- else
- {
- TRAP(hMHAErr,cm.SetBoolAttributeL( CMManager::ECmMetaHiddenAgent,EFalse));
- }
- if( (hMHAErr==KErrNone) && (hMHLErr==KErrNone) )
- {
- cm.UpdateL();
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EOk);
-
- }
- else
- {
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EError);
- }
-
-
- CleanupStack::PopAndDestroy( );
-
- cmManagerExt.Close();
- TInt dberr = iDatabase->BeginTransaction();
- if( dberr == KErrLocked )
- {
- _DBG_FILE("SetIAPMetaDataL: CommsDat was locked.");
- TInt retry = KBeginTransRetryCount;
- while ( retry > 0 && dberr == KErrLocked )
- {
- User::After(KBeginTransRetryDelay);
- _DBG_FILE("SetIAPMetaDataL: Slept 1 second. Try again");
- dberr = iDatabase->BeginTransaction();
- retry--;
- }
- if(dberr != KErrNone)
- {
- _DBG_FILE("CNSmlInternetAdapter: BeginTransaction failed completely.");
- User::Leave( dberr );
- }
- }
-
- _DBG_FILE("CNSmlInternetAdapter::SetIAPMetaDataL(): end");
- }
-
-
-void CNSmlInternetAdapter::AddLingerL( const TInt aIapId, const TInt aLingerInterval)
-{
- TInt err( KErrNone );
-
- // Open repository
- CRepository* repository = CRepository::NewLC( KCRUidPDPContextManager );
-
- // Find if an entry for "iapId" already exists in CentRep
- RArray< TUint32 > foundKeys;
- foundKeys.Reset();
-
- err = repository->FindEqL( KIapColumn, // partial key
- KColumnMask, // key mask
- aIapId, // value
- foundKeys ); // found keys
-
- if ( err == KErrNone || err == KErrNotFound )
- {
- if ( foundKeys.Count() == 0 )
- {
- // Add a new entry
- TInt arrayCount( 0 );
-
- // Get number of iapId&linger entries in Centrep
- err = repository->Get( KPdpContextManagerLingerArrayCount,
- arrayCount );
-
- if ( err == KErrNone )
- {
- arrayCount++;
-
- err = repository->Create( ( KIapColumn | arrayCount ), aIapId );
-
- if ( err == KErrNone )
- {
- err = repository->Create( ( KLingerColumn | arrayCount ),
- aLingerInterval );
- }
-
- if ( err == KErrNone )
- {
- // Update number of iapId&linger entries in Centrep
- err = repository->Set( KPdpContextManagerLingerArrayCount,
- arrayCount );
- }
- }
- }
- else
- {
- // Update existing entry on current row
- TInt32 row = foundKeys[ 0 ] & KRowMask;
-
- err = repository->Set( ( KLingerColumn | row ), aLingerInterval );
- }
- }
-
- foundKeys.Close();
- CleanupStack::PopAndDestroy( repository );
-
- User::LeaveIfError( err );
-}
-
-void CNSmlInternetAdapter::UpdateLingerL( const TInt aIapId, const TInt aLingerInterval )
- {
- TInt err( KErrNone );
-
- // Open repository
- CRepository* repository = CRepository::NewLC( KCRUidPDPContextManager );
-
- // Find if an entry for "iapId" already exists in CentRep
- RArray< TUint32 > foundKeys;
- foundKeys.Reset();
-
- err = repository->FindEqL( KIapColumn, // partial key
- KColumnMask, // key mask
- aIapId, // value
- foundKeys ); // found keys
-
- if ( err == KErrNone || err == KErrNotFound )
- {
-
- if ( foundKeys.Count() == 0 )
- {
- // Add a new entry
- TInt arrayCount( 0 );
-
- // Get number of iapId&linger entries in Centrep
- err = repository->Get( KPdpContextManagerLingerArrayCount,
- arrayCount );
-
- if ( err == KErrNone )
- {
- arrayCount++;
-
- err = repository->Create( ( KIapColumn | arrayCount ), aIapId );
-
- if ( err == KErrNone )
- {
- err = repository->Create( ( KLingerColumn | arrayCount ),
- aLingerInterval );
- }
-
- if ( err == KErrNone )
- {
- // Update number of iapId&linger entries in Centrep
- err = repository->Set( KPdpContextManagerLingerArrayCount,
- arrayCount );
- }
- }
- }
- else
- {
- // Update existing entry on currebt row
- TInt32 row = foundKeys[ 0 ] & KRowMask;
-
- err = repository->Set( ( KLingerColumn | row ), aLingerInterval );
- }
- }
-
- foundKeys.Close();
- CleanupStack::PopAndDestroy( repository );
-
- User::LeaveIfError( err );
- }
-void CNSmlInternetAdapter::GetLingerL( const TInt aIapId, TInt& aLingerInterval )
- {
- TInt err( KErrNone );
-
- // Open repository
- CRepository* repository = CRepository::NewLC( KCRUidPDPContextManager );
-
- // Find if an entry for "iapId" already exists in CentRep
- RArray< TUint32 > foundKeys;
- foundKeys.Reset();
-
- err = repository->FindEqL( KIapColumn, // partial key
- KColumnMask, // key mask
- aIapId, // value
- foundKeys ); // found keys
-
- if ( err == KErrNone )
- {
- if ( foundKeys.Count() > 0 )
- {
- // Find linger interval for the iap id on current row
- TInt32 row = foundKeys[ 0 ] & KRowMask;
-
- err = repository->Get( ( KLingerColumn | row ), aLingerInterval );
- }
- }
-
- foundKeys.Close();
- CleanupStack::PopAndDestroy( repository );
-
- User::LeaveIfError( err );
- }
-
-
-
-
-//----------------------------------------------------------------------
-//TBool CNSmlInternetAdapter::CheckEnforcementL()
-// If AP policy is enforced true is returned else false
-//----------------------------------------------------------------------
-TBool CNSmlInternetAdapter::CheckEnforcementL()
- {
- CSettingEnforcementInfo* info = CSettingEnforcementInfo::NewL();
- CleanupStack::PushL(info);
- TBool enforceActive ( EFalse );
- User::LeaveIfError(info->EnforcementActive(EAPEnforcement, enforceActive));
- CleanupStack::PopAndDestroy(info);
- return enforceActive;
- }
-
-//----------------------------------------------------------------------
-//TBool CNSmlInternetAdapter::CheckWLANEnforcementL()
-// If WLAN AP policy is enforced true is returned else false
-//----------------------------------------------------------------------
-TBool CNSmlInternetAdapter::CheckWLANEnforcementL()
- {
- CSettingEnforcementInfo* info = CSettingEnforcementInfo::NewL();
- CleanupStack::PushL(info);
- TBool enforceActive ( EFalse );
- User::LeaveIfError(info->EnforcementActive(EWLANEnforcement, enforceActive));
- CleanupStack::PopAndDestroy(info);
- return enforceActive;
- }
-
-
-//----------------------------------------------------------------------
-//TInt CNSmlInternetAdapter::DoProtectWAPTablesL(TBool aProtect)
-// if aProtect is true , tables are locked otherwise tables are unlocked.
-//----------------------------------------------------------------------
-
-TInt CNSmlInternetAdapter::DoProtectWAPTablesL(TBool aProtect)
- {
- TInt err = KErrNone;
- CCommsDatabaseProtect* dbprotect = CCommsDatabaseProtect::NewL();
- CleanupStack::PushL(dbprotect);
- for ( TInt i( 0 ); i < iLockTableList.Count(); i++ )
- {
- if(!aProtect)
- {
- err = dbprotect->UnProtectTable( iLockTableList[ i ] );
- }
- else
- {
- err = dbprotect->ProtectTable( iLockTableList[ i ] );
- }
-
- }
- CleanupStack::PopAndDestroy( dbprotect );
- return err;
- }
-//----------------------------------------------------------------------
-//void CNSmlInternetAdapter::DoLockIAPTablesL(TBool aProtect)
-// if aProtect is true , tables are locked otherwise tables are unlocked.
-//----------------------------------------------------------------------
-
-void CNSmlInternetAdapter::DoLockIAPTablesL(TBool aLock)
- {
- TInt protError = KErrNone;
- TInt err = KErrNone;
- iDatabase->CommitTransaction();
- iLockTableList.AppendL( TPtrC( WAP_ACCESS_POINT ) );
- iLockTableList.AppendL( TPtrC( WAP_IP_BEARER ) );
- iLockTableList.AppendL( TPtrC( IAP ) );
-
- TRAP(err, protError = DoProtectWAPTablesL(aLock));
- DBG_ARGS8(_S8("CNSmlInternetAdapter::DoLockIAPTablesL(): Table protect error %d , leave error %d " ),protError,err);
-
- if ( protError != KErrNone ) // To remove the warnings
- {
- protError = KErrNone;
- }
- TInt dberr = iDatabase->BeginTransaction();
- if( dberr == KErrLocked )
- {
- _DBG_FILE("DoLockIAPTablesL: CommsDat was locked.");
- TInt retry = KBeginTransRetryCount;
- while ( retry > 0 && dberr == KErrLocked )
- {
- User::After(KBeginTransRetryDelay);
- _DBG_FILE("DoLockIAPTablesL: Slept 1 second. Try again");
- dberr = iDatabase->BeginTransaction();
- retry--;
- }
- if(dberr != KErrNone)
- {
- _DBG_FILE("CNSmlInternetAdapter: BeginTransaction failed completely.");
- User::Leave( dberr );
- }
- }
- }
-//--------------------------------------------------------------------
-//TInt UnprotectWLANAPItemL(TUint32 aId)
-//Unprotect the wlan AP if only wlan enforcement is on
-//-------------------------------------------------------------------
-TInt CNSmlInternetAdapter::UnprotectWLANAPItemL(TUint32 aId)
-{
- _DBG_FILE("CNSmlInternetAdapter::UnprotectWLANAPItemL(): BEGIN");
- CCommsDbTableView* wapView;
-
- TInt errorCode = KErrNone;
- TBuf<KCommsDbSvrMaxFieldLength> serviceType;
-
- //check if its WLAN AP being deleted
- wapView = iDatabase->OpenViewMatchingUintLC( TPtrC(IAP),TPtrC(COMMDB_ID), aId);
-
- errorCode = wapView->GotoFirstRecord();
-
- if ( errorCode == KErrNone )
- {
- wapView->ReadTextL(TPtrC(IAP_SERVICE_TYPE), serviceType);
- if(serviceType != TPtrC(LAN_SERVICE))
- {
- CleanupStack::PopAndDestroy(); // wapView
- return KErrNone;
- }
- }
-
- ((CCommsDbProtectTableView*)wapView)->UnprotectRecord();
-
- CleanupStack::PopAndDestroy(); // wapView
-
- _DBG_FILE("CNSmlInternetAdapter::UnprotectWLANAPItemL(): END");
- return errorCode;
-}
-
-
-//----------------------------------------------------------------------
-//TBool CNSmlInternetAdapter::IsIAPRecordLockedL(TUint32 aRecord)
-//check for wap access point record lock status
-//----------------------------------------------------------------------
-
-TBool CNSmlInternetAdapter::IsIAPRecordLockedL(TUint32 aRecord)
- {
- _DBG_FILE("CNSmlInternetAdapter::IsIAPRecordLockedL(): BEGIN");
- TBool ret = EFalse;
- CCommsDbTableView* apView;
- DBG_ARGS8(_S8("CNSmlInternetAdapter::IsIAPRecordLockedL record being checked = %d"),aRecord);
- apView = iDatabase->OpenViewMatchingUintLC(TPtrC(IAP),
- TPtrC(COMMDB_ID),
- aRecord);
-
- TInt aAccess( 0 );
- if(apView!=NULL)
- {
- _DBG_FILE("CNSmlInternetAdapter::IsIAPRecordLockedL():wap record exists, check for access type");
- TInt err = (((CCommsDbProtectTableView*) apView )->GetRecordAccess( aAccess ) );
- DBG_ARGS8(_S8("CNSmlInternetAdapter::IsIAPRecordLockedL , GetrecordAccess code is =%d and acess type of record = %d"),err, aAccess);
- CleanupStack::PopAndDestroy( apView);
- if(aAccess == RDbRowSet::EReadOnly)
- ret = ETrue;
- }
-
- _DBG_FILE("CNSmlInternetAdapter::IsIAPRecordLockedL(): END");
- return ret;
-
- }
-//----------------------------------------------------------------------
-//TBool CNSmlInternetAdapter::DoProtectIAPRecordL(TUint32 aRecord,TBool aProtect)
-// protect or unprotect wapaccesspoint record of access point being altered
-//----------------------------------------------------------------------
-
-
-TInt CNSmlInternetAdapter::DoProtectIAPRecordL(TUint32 aRecord,TBool aProtect)
- {
- _DBG_FILE("CNSmlInternetAdapter::DoProtectIAPRecordL(): BEGIN");
- DBG_ARGS8(_S8("CNSmlInternetAdapter::DoProtectIAPRecordL , record and protect value =%d = %d"),aRecord, aProtect);
- TInt err = KErrNone;
-
- CCommsDbTableView* apView;
- apView = iDatabase->OpenViewMatchingUintLC(TPtrC(IAP),
- TPtrC(COMMDB_ID),
- aRecord);
- if( apView != NULL )
- {
- _DBG_FILE("CNSmlInternetAdapter::DoProtectIAPRecordL(): wap record exists");
- if( !aProtect )
- {
- err = ( (CCommsDbProtectTableView*) apView )->UnprotectRecord();
- DBG_ARGS8(_S8("CNSmlInternetAdapter::DoProtectIAPAccessRecordL ,error code of Unprotectrecord = %d"),err);
- }
-
- else
- {
- err = ( (CCommsDbProtectTableView*) apView )->ProtectRecord();
- DBG_ARGS8(_S8("CNSmlInternetAdapter::DoProtectIAPRecordL ,error code of ProtectRecord = %d"),err);
- }
-
- CleanupStack::PopAndDestroy( apView);
- }
-
- _DBG_FILE("CNSmlInternetAdapter::DoProtectIAPRecordL(): END");
- return err;
- }
-//----------------------------------------------------------------------
-//TBool CNSmlInternetAdapter::IsProxyRecordLockedL(TUint32 aRecord)
-//check for proxy record lock status
-//----------------------------------------------------------------------
-
-TBool CNSmlInternetAdapter::IsProxyRecordLockedL(TUint32 aRecord)
- {
- _DBG_FILE("CNSmlInternetAdapter::IsProxyRecordLockedL(): BEGIN");
- TBool ret = EFalse;
- CCommsDbTableView* proxyView;
- DBG_ARGS8(_S8("CNSmlInternetAdapter::IsProxyRecordLockedL record being checked = %d"),aRecord);
- proxyView = iDatabase->OpenViewMatchingUintLC(TPtrC(PROXIES),
- TPtrC(COMMDB_ID),
- aRecord);
-
- TInt aAccess( 0 );
- if(proxyView!=NULL)
- {
- _DBG_FILE("CNSmlInternetAdapter::IsProxyRecordLockedL():wap record exists, check for access type");
- TInt err = (((CCommsDbProtectTableView*) proxyView )->GetRecordAccess( aAccess ) );
- DBG_ARGS8(_S8("CNSmlInternetAdapter::IsProxyRecordLockedL , GetrecordAccess code is =%d and acess type of record = %d"),err, aAccess);
- CleanupStack::PopAndDestroy( proxyView);
- if(aAccess == RDbRowSet::EReadOnly)
- ret = ETrue;
- }
-
- _DBG_FILE("CNSmlInternetAdapter::IsProxyRecordLockedL(): END");
- return ret;
-
- }
-//----------------------------------------------------------------------
-//TBool CNSmlInternetAdapter::DoProtectProxyRecordL(TUint32 aRecord,TBool aProtect)
-// protect or unprotect proxy record of access point being altered
-//----------------------------------------------------------------------
-
-
-TInt CNSmlInternetAdapter::DoProtectProxyRecordL(TUint32 aRecord,TBool aProtect)
- {
- _DBG_FILE("CNSmlInternetAdapter::DoProtectProxyRecordL(): BEGIN");
- DBG_ARGS8(_S8("CNSmlInternetAdapter::DoProtectProxyRecordL , record and protect value =%d = %d"),aRecord, aProtect);
- TInt err = KErrNone;
-
- CCommsDbTableView* proxyView;
- proxyView = iDatabase->OpenViewMatchingUintLC(TPtrC(PROXIES),
- TPtrC(COMMDB_ID),
- aRecord);
- if( proxyView != NULL )
- {
- _DBG_FILE("CNSmlInternetAdapter::DoProtectProxyRecordL(): wap record exists");
- if( !aProtect )
- {
- err = ( (CCommsDbProtectTableView*) proxyView )->UnprotectRecord();
- DBG_ARGS8(_S8("CNSmlInternetAdapter::DoProtectProxyRecordL ,error code of Unprotectrecord = %d"),err);
- }
-
- else
- {
- err = ( (CCommsDbProtectTableView*) proxyView )->ProtectRecord();
- DBG_ARGS8(_S8("CNSmlInternetAdapter::DoProtectProxyRecordL ,error code of ProtectRecord = %d"),err);
- }
-
- CleanupStack::PopAndDestroy( proxyView);
- }
-
- _DBG_FILE("CNSmlInternetAdapter::DoProtectProxyRecordL(): END");
- return err;
- }
-
-//----------------------------------------------------------------------
-//TBool CNSmlInternetAdapter::IsServiceRecordLockedL(TUint32 aRecord)
-//check for proxy record lock status
-//----------------------------------------------------------------------
-
-TBool CNSmlInternetAdapter::IsServiceRecordLockedL(TUint32 aRecord)
- {
- _DBG_FILE("CNSmlInternetAdapter::IsProxyRecordLockedL(): BEGIN");
- TBool ret = EFalse;
- CCommsDbTableView* serviceView;
- DBG_ARGS8(_S8("CNSmlInternetAdapter::IsProxyRecordLockedL record being checked = %d"),aRecord);
- serviceView = iDatabase->OpenViewMatchingUintLC(iProxyServiceType,
- TPtrC(COMMDB_ID),
- aRecord);
-
- TInt aAccess( 0 );
- if(serviceView!=NULL)
- {
- _DBG_FILE("CNSmlInternetAdapter::IsProxyRecordLockedL():wap record exists, check for access type");
- TInt err = (((CCommsDbProtectTableView*) serviceView )->GetRecordAccess( aAccess ) );
- DBG_ARGS8(_S8("CNSmlInternetAdapter::IsProxyRecordLockedL , GetrecordAccess code is =%d and acess type of record = %d"),err, aAccess);
- CleanupStack::PopAndDestroy( serviceView);
- if(aAccess == RDbRowSet::EReadOnly)
- ret = ETrue;
- }
-
- _DBG_FILE("CNSmlInternetAdapter::IsProxyRecordLockedL(): END");
- return ret;
-
- }
-//----------------------------------------------------------------------
-//TBool CNSmlInternetAdapter::DoProtectProxyRecordL(TUint32 aRecord,TBool aProtect)
-// protect or unprotect proxy record of access point being altered
-//----------------------------------------------------------------------
-
-
-TInt CNSmlInternetAdapter::DoProtectServiceRecordL(TUint32 aRecord,TBool aProtect)
- {
- _DBG_FILE("CNSmlInternetAdapter::DoProtectProxyRecordL(): BEGIN");
- DBG_ARGS8(_S8("CNSmlInternetAdapter::DoProtectProxyRecordL , record and protect value =%d = %d"),aRecord, aProtect);
- TInt err = KErrNone;
-
- CCommsDbTableView* serviceView;
- serviceView = iDatabase->OpenViewMatchingUintLC(iProxyServiceType,
- TPtrC(COMMDB_ID),
- aRecord);
- if( serviceView != NULL )
- {
- _DBG_FILE("CNSmlInternetAdapter::DoProtectProxyRecordL(): wap record exists");
- if( !aProtect )
- {
- err = ( (CCommsDbProtectTableView*) serviceView )->UnprotectRecord();
- DBG_ARGS8(_S8("CNSmlInternetAdapter::DoProtectProxyRecordL ,error code of Unprotectrecord = %d"),err);
- }
-
- else
- {
- err = ( (CCommsDbProtectTableView*) serviceView )->ProtectRecord();
- DBG_ARGS8(_S8("CNSmlInternetAdapter::DoProtectProxyRecordL ,error code of ProtectRecord = %d"),err);
- }
-
- CleanupStack::PopAndDestroy( serviceView);
- }
-
- _DBG_FILE("CNSmlInternetAdapter::DoProtectProxyRecordL(): END");
- return err;
- }
-//--------------------------------------------------------------------
-//TInt CNSmlInternetAdapter::IsAPUriFormatMatchPredefined(const TDesC8 & aURI)
-//
-//-------------------------------------------------------------------
-
-
-TBool CNSmlInternetAdapter::IsAPUriFormatMatchPredefined(const TDesC8 & aURI)
-{
- if(aURI.Match(_L8("AP/APId*")) != KErrNotFound ||
- aURI.Match(_L8("AP/APId*/NAPDef/NAPId*")) != KErrNotFound)
- {
- return ETrue;
- }
- else
- {
- return EFalse;
- }
-
-
-}
-//--------------------------------------------------------------------
-//TInt CNSmlInternetAdapter::ConstructTreeL(const TDesC8& aURI)
-//
-//-------------------------------------------------------------------
-
-
-TUint32 CNSmlInternetAdapter::ConstructTreeL(const TDesC8& aURI)
-{
- _DBG_FILE("CNSmlInternetAdapter::ConstructTreeL(): AP begin");
- TUint32 returnLuid = 0; // IAP doesn't exist
-
- CCommsDbTableView* apView = iDatabase->OpenTableLC(TPtrC(IAP));
-
- TInt errorCode = apView->GotoFirstRecord();
-
- while ( errorCode == KErrNone )
- {
- TUint32 lValue;
- TBool validService = EFalse;
- apView->ReadUintL(TPtrC(COMMDB_ID),lValue);
-
- TBuf<KCommsDbSvrMaxFieldLength> serviceType;
- apView->ReadTextL(TPtrC(IAP_SERVICE_TYPE), serviceType);
- TUint32 bearerId = 0;
- apView->ReadUintL(TPtrC(IAP_BEARER),bearerId);
- //
- // Skip other service types than GSM outgoing
- //
- if (serviceType == TPtrC(OUTGOING_GPRS) ||
- serviceType == TPtrC(INCOMING_GPRS))
- {
- validService = ETrue;
- }
-
- else if(serviceType == TPtrC(LAN_SERVICE) &&
- bearerId > 0)
- {
- validService = ETrue;
- }
- else if(serviceType == TPtrC(VPN_SERVICE))
- {
- validService = ETrue;
- }
-
- if(validService)
- {
- // Skip others
- //
- // Check if in aPreviousURISegmentList
- //
- TBool skipToNextIAP = EFalse;
- // KNSmlDMStart includes start text for URISeg
- TBuf8<20> addAPURI; // AP/APIdnnn , nnn = profileid
- addAPURI.Append(_L8("AP/APId"));
- addAPURI.AppendNumFixedWidth(lValue,EDecimal,3);
-
- TBuf8<16> addLUID;
- _LIT8(KFormat,"%d");
- addLUID.Format(KFormat,lValue);
-
- HBufC8* mapInfo = iCallBack->GetLuidAllocL(addAPURI);
- CleanupStack::PushL( mapInfo );
- if (mapInfo->Length() == 0)
- {
- iCallBack->SetMappingL(addAPURI,addLUID);
- if( aURI.Find(addAPURI) >= 0 )
- {
- returnLuid = lValue;
- iPrevLUID = lValue;
- }
- }
- else
- {
- skipToNextIAP= ETrue;
- }
- CleanupStack::PopAndDestroy( mapInfo );
-
- if( !skipToNextIAP )
- {
- // Add the NAPDef also
-
- TBuf<KCommsDbSvrMaxFieldLength> serviceType;
- TUint32 serviceId;
-
- CCommsDbTableView* napdefView = iDatabase->OpenViewMatchingUintLC(TPtrC(IAP),
- TPtrC(COMMDB_ID),
- lValue);
-
- errorCode = napdefView->GotoFirstRecord();
- if (errorCode == KErrNone )
- {
- napdefView->ReadTextL(TPtrC(IAP_SERVICE_TYPE), serviceType);
- napdefView->ReadUintL(TPtrC(IAP_SERVICE), serviceId); // ID
- }
-
- CCommsDbTableView* tableView = iDatabase->OpenViewMatchingUintLC(serviceType,
- TPtrC(COMMDB_ID),
- serviceId);
-
- errorCode = tableView->GotoFirstRecord();
-
- while( errorCode == KErrNone )
- {
- TUint32 lValue;
- tableView->ReadUintL(TPtrC(COMMDB_ID),lValue);
- //
- // Check if in aPreviousURISegmentList
- //
-
- _LIT8(Kprev,"NAPId");
- TBuf8<15> addNAME(Kprev); // APIdnnn , nnn = profileid
- addNAME.AppendNumFixedWidth(lValue,EDecimal,3);
-
-
- _LIT8(Kprev2,"/NAPDef/NAPId");
- TBuf8<80> addURI; // AP/xxx/NAPDef/NAPIdnnn , nnn = id nbr
- addURI.Append(addAPURI);
- addURI.Append(Kprev2);
- addURI.AppendNumFixedWidth(lValue,EDecimal,3);
-
- TBuf8<16> addLUID;
- _LIT8(KFormat,"%d");
- addLUID.Format(KFormat,lValue);
-
- HBufC8* mapInfo = iCallBack->GetLuidAllocL(addURI);
- CleanupStack::PushL( mapInfo );
- if (mapInfo->Length() == 0)
- {
- // Also added to mapping
- iCallBack->SetMappingL(addURI,addLUID);
- if( aURI.Find(addURI) >= 0 )
- returnLuid = lValue;
- _DBG_FILE("CNSmlInternetAdapter::ConstructTreeL(): Set NAPDef Mapping ");
-
- TBuf<KCommsDbSvrMaxFieldLength> columnValue;
- TBuf8<16> addDNSLUID;
- TBuf8<80> addDNSURI; // AP/xxx/NAPDef/DNSAddr/DNSx
- _LIT8(KFormat,"%d");
- tableView->ReadTextL( TPtrC(SERVICE_IP_NAME_SERVER1 ), columnValue);
-
- if ( ( columnValue.Length() > 0 ) )
- {
- _LIT8(Kprev2,"/DNSAddr/DNS1");
- addDNSURI.Append(addURI);
- addDNSURI.Append(Kprev2);
- addLUID.Format(KFormat, DnsToLuid( UriUtils::EIPv4Host, 1));
- iCallBack->SetMappingL(addDNSURI,addLUID);
- if( aURI.Find(addDNSURI) >= 0 )
- returnLuid = DnsToLuid( UriUtils::EIPv4Host, 1);
- addDNSURI.Zero();
- }
-
- tableView->ReadTextL( TPtrC(SERVICE_IP_NAME_SERVER2 ), columnValue);
- if ( columnValue.Length() > 0 )
- {
- _LIT8(Kprev2,"/DNSAddr/DNS2");
- addDNSURI.Append(addURI);
- addDNSURI.Append(Kprev2);
- addLUID.Format(KFormat, DnsToLuid( UriUtils::EIPv4Host, 2));
- iCallBack->SetMappingL(addDNSURI,addLUID);
- if( aURI.Find(addDNSURI) >= 0 )
- returnLuid = DnsToLuid( UriUtils::EIPv4Host, 2);
- addDNSURI.Zero();
- }
-
- tableView->ReadTextL( TPtrC(SERVICE_IP6_NAME_SERVER1 ), columnValue);
- if ( columnValue.Length() > 0 )
- {
- _LIT8(Kprev2,"/DNSAddr/DNS3");
- addDNSURI.Append(addURI);
- addDNSURI.Append(Kprev2);
- addLUID.Format(KFormat,DnsToLuid( UriUtils::EIPv6Host, 1) );
- iCallBack->SetMappingL(addDNSURI,addLUID);
- if( aURI.Find(addDNSURI) >= 0 )
- returnLuid = DnsToLuid( UriUtils::EIPv6Host, 1);
- addDNSURI.Zero();
- }
- tableView->ReadTextL( TPtrC(SERVICE_IP6_NAME_SERVER2 ), columnValue);
- if ( columnValue.Length() > 0 )
- {
- _LIT8(Kprev2,"/DNSAddr/DNS4");
- addDNSURI.Append(addURI);
- addDNSURI.Append(Kprev2);
- addLUID.Format(KFormat, DnsToLuid( UriUtils::EIPv6Host, 2));
- iCallBack->SetMappingL(addDNSURI,addLUID);
- if( aURI.Find(addDNSURI) >= 0 )
- returnLuid = DnsToLuid( UriUtils::EIPv6Host, 2);
- addDNSURI.Zero();
- }
- _DBG_FILE("CNSmlInternetAdapter::ConstructTreeL(): Set DNS Mapping ");
-
- TUint32 nwID = 0;
- napdefView->ReadUintL(TPtrC(IAP_NETWORK),nwID); // Networks luid
-
- CCommsDbTableView* nwView = iDatabase->OpenViewMatchingUintLC(TPtrC(NETWORK),TPtrC(COMMDB_ID), nwID);
-
- errorCode = nwView->GotoFirstRecord();
-
- if ( errorCode == KErrNone )
- {
- _LIT8(Kprev2,"/Networks/NwId");
- TBuf8<80> addNwURI; // AP/xxx/NAPDef/xxx/Networks/NwIdnnn , nnn = id nbr
- addNwURI.Append(addURI);
- addNwURI.Append(Kprev2);
- addNwURI.AppendNumFixedWidth(nwID,EDecimal,3);
- TBuf8<16> addNwLUID;
- _LIT8(KFormat,"%d");
- addNwLUID.Format(KFormat,nwID);
- HBufC8* mapInfo = iCallBack->GetLuidAllocL(addNwURI);
- CleanupStack::PushL( mapInfo );
-
- if (mapInfo->Length() == 0)
- {
- // Also added to mapping
- iCallBack->SetMappingL(addNwURI,addNwLUID);
- if( aURI.Find(addNwURI) >= 0 )
- returnLuid = nwID;
- _DBG_FILE("CNSmlInternetAdapter::ConstructTreeL(): Set Networks Mapping ");
- }
- CleanupStack::PopAndDestroy( mapInfo );
- }
- CleanupStack::PopAndDestroy(); // nwView
-
- if ( iWlanSupported )
- {
- // Check WLAN node
- if(serviceType == TPtrC(LAN_SERVICE))
- {
- TUint32 wlanID = serviceId;
- _LIT8(Kprev2,"/WLAN/WLId");
- TBuf8<80> addWlanURI; // AP/xxx/NAPDef/xxx/WLAN/WLIdnnn , nnn = id nbr
- addWlanURI.Append(addURI);
- addWlanURI.Append(Kprev2);
- addWlanURI.AppendNumFixedWidth(wlanID,EDecimal,3);
- TBuf8<16> addWlanLUID;
- _LIT8(KFormat,"%d");
- addWlanLUID.Format(KFormat,wlanID);
- HBufC8* mapInfo = iCallBack->GetLuidAllocL(addWlanURI);
- CleanupStack::PushL( mapInfo );
-
- if (mapInfo->Length() == 0)
- {
- // Also added to mapping
- iCallBack->SetMappingL(addWlanURI,addWlanLUID);
- if( aURI.Find(addWlanURI) >= 0 )
- returnLuid = wlanID;
- _DBG_FILE("CNSmlInternetAdapter::ConstructTreeL(): Set WLAN Mapping ");
-
- TBuf<KCommsDbSvrMaxFieldLength> value;
- TBuf8<16> addWkLUID;
- TBuf8<80> addWkURI; // AP/xxx/NAPDef/xxx/WLAN/xxx/WEPKey/WKIdn, n = id nbr
-
- for( TInt value =1; value <=4 ;value++)
- {
- _LIT8(Kprev2,"/WEPKey/WKId");
- addWkURI.Append(addWlanURI);
- addWkURI.Append(Kprev2);
- addWkURI.AppendNumFixedWidth(value,EDecimal,1);
- _LIT8(KFormat,"%d");
- addWkLUID.Format(KFormat,(1000*value)+value);
- iCallBack->SetMappingL(addWkURI,addWkLUID);
- if( aURI.Find(addWkURI) >= 0 )
- returnLuid = (1000*value)+value;
- addWkURI.Zero();
- }
- }
- CleanupStack::PopAndDestroy( mapInfo );
- }
- }
-
- //Check Bearer node
-
- CCommsDbTableView* bView = iDatabase->OpenViewMatchingUintLC(TPtrC(NETWORK),TPtrC(COMMDB_ID), lValue);
- errorCode = bView->GotoFirstRecord();
-
- if ( errorCode == KErrNone )
- {
- _LIT8(Kprev2,"/Bearer/BId");
- TBuf8<80> addbURI; // AP/xxx/NAPDef/xxx/Bearer/BIdnnn , nnn = id nbr
- addbURI.Append(addURI);
- addbURI.Append(Kprev2);
- addbURI.AppendNumFixedWidth(lValue,EDecimal,3);
- TBuf8<16> addbLUID;
- _LIT8(KFormat,"%d");
- addbLUID.Format(KFormat,lValue);
- HBufC8* mapInfo = iCallBack->GetLuidAllocL(addbURI);
- CleanupStack::PushL( mapInfo );
-
- if (mapInfo->Length() == 0)
- {
- // Also added to mapping
- iCallBack->SetMappingL(addbURI,addbLUID);
- if( aURI.Find(addbURI) >= 0 )
- returnLuid = lValue;
- _DBG_FILE("CNSmlInternetAdapter::ConstructTreeL(): Set Bearer Mapping ");
- }
- CleanupStack::PopAndDestroy( mapInfo );
- }
- CleanupStack::PopAndDestroy(); // bView
-
- //Check NAPAuthInf node NAPAuthInf/AUId
-
- CCommsDbTableView* authView = iDatabase->OpenViewMatchingUintLC(TPtrC(NETWORK),TPtrC(COMMDB_ID), lValue);
-
- errorCode = authView->GotoFirstRecord();
-
- if ( errorCode == KErrNone )
- {
- _LIT8(Kprev2,"/Bearer/BId");
- TBuf8<80> addauthURI; // AP/xxx/NAPDef/xxx/Bearer/BIdnnn , nnn = id nbr
- addauthURI.Append(addURI);
- addauthURI.Append(Kprev2);
- addauthURI.AppendNumFixedWidth(lValue,EDecimal,3);
- TBuf8<16> addauthLUID;
- _LIT8(KFormat,"%d");
- addauthLUID.Format(KFormat,lValue);
- HBufC8* mapInfo = iCallBack->GetLuidAllocL(addauthURI);
- CleanupStack::PushL( mapInfo );
-
- if (mapInfo->Length() == 0)
- {
- // Also added to mapping
- iCallBack->SetMappingL(addauthURI,addauthLUID);
- if( aURI.Find(addauthURI) >= 0 )
- returnLuid = lValue;
- _DBG_FILE("CNSmlInternetAdapter::ConstructTreeL(): Set NAPAuthInf Mapping ");
- }
- CleanupStack::PopAndDestroy( mapInfo );
- }
- CleanupStack::PopAndDestroy(); // authView
-
- //Check Proxy node
-
- CCommsDbTableView* pxView = iDatabase->OpenViewMatchingTextLC(TPtrC(PROXIES),
- TPtrC(PROXY_SERVICE_TYPE),
- serviceType);
-
- errorCode = pxView->GotoFirstRecord();
- if(errorCode == KErrNone)
- {
- while ( errorCode == KErrNone )
- {
- TUint32 lProxyIspId;
- TUint32 lProxyId;
- pxView->ReadUintL(TPtrC(PROXY_ISP),lProxyIspId);
- if (lProxyIspId == serviceId) //ServiceIsp) // Right value ISP
- {
- pxView->ReadUintL(TPtrC(COMMDB_ID),lProxyId);
-
- _LIT8(Kprev2,"/Px/PXId");
- TBuf8<80> addURI; // AP/xxx/Px/PXIdnnn , nnn = id nbr
- addURI.Append(addAPURI);
- addURI.Append(Kprev2);
- addURI.AppendNumFixedWidth(lProxyId,EDecimal,3);
-
- TBuf8<16> addLUID;
- _LIT8(KFormat,"%d");
- addLUID.Format(KFormat, KNSmlApProxyLowerBase + lProxyId); // 100000 + lProxyId
- HBufC8* mapInfo = iCallBack->GetLuidAllocL(addURI);
- CleanupStack::PushL( mapInfo );
-
- if (mapInfo->Length() == 0)
- {
- // Also added to mapping
- iCallBack->SetMappingL(addURI,addLUID);
- if( aURI.Find(addURI) >= 0 )
- returnLuid = KNSmlApProxyLowerBase + lProxyId;
- _DBG_FILE("CNSmlInternetAdapter::ConstructTreeL(): Set Proxy Mapping ");
- _LIT8(KProxy,"/Port/PROXY");
- TBuf8<80> addPortURI; // AP/xxx/Px/Port/PROXY
- addPortURI.Append(addURI);
- addPortURI.Append( KProxy );
- TBuf8<16> addPortLUID;
- _LIT8(KFormat,"%d");
- addPortLUID.Format(KFormat, 1);
- iCallBack->SetMappingL(addPortURI,addPortLUID);
- if( aURI.Find(addPortURI) >= 0 )
- returnLuid = 1;
- }
- CleanupStack::PopAndDestroy( mapInfo );
- }
- errorCode = pxView->GotoNextRecord();
- }
- }
- CleanupStack::PopAndDestroy() ;//Pxview
- }
- CleanupStack::PopAndDestroy( mapInfo );
- errorCode = tableView->GotoNextRecord();
- }
- CleanupStack::PopAndDestroy() ;//tableview
- CleanupStack::PopAndDestroy() ;//napdefview
- }
- }
- errorCode = apView->GotoNextRecord();
- }
- CleanupStack::PopAndDestroy(); // apView
- _DBG_FILE("CNSmlInternetAdapter::ConstructTreeL(): AP end");
- return returnLuid;
-}
-// End of File