--- a/omadm/omadmextensions/adapters/nsmldinternet/src/NSmlWLanAdapter.cpp Tue Feb 02 00:03:17 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,3993 +0,0 @@
-/*
-* Copyright (c) 2002-2006 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: Wlan Adapter
-*
-*/
-
-
-
-#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
-#include <commsdat_partner.h>
-#endif
-#include "NSmlWLanAdapter.h"
-#include "NSmlWlanSettings.h"
-#include "nsmldebug.h"
-#include <commdb.h>
-#include <utf.h>
-#include <cdbstore.h>
-#include <cdbcols.h>
-#include <EapType.h>
-#include <nsmldmuri.h>
-
-
-#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
-
-//-----------------------------------------------------------------------------
-// CNSmlWLanAdapter* CNSmlWLanAdapter::NewL( )
-//-----------------------------------------------------------------------------
-CNSmlWLanAdapter* CNSmlWLanAdapter::NewL( MSmlDmCallback* aDmCallback,CCommsDatabase& aDatabase )
- {
- _DBG_FILE("CNSmlWLanAdapter::NewL(): begin");
-
- CNSmlWLanAdapter* self = NewLC( aDmCallback, aDatabase );
- CleanupStack::Pop( self );
-
- _DBG_FILE("CNSmlWLanAdapter::NewL(): end");
- return self;
- }
-
-//-----------------------------------------------------------------------------
-// CNSmlWLanAdapter* CNSmlWLanAdapter::NewLC( )
-//-----------------------------------------------------------------------------
-CNSmlWLanAdapter* CNSmlWLanAdapter::NewLC( MSmlDmCallback* aDmCallback, CCommsDatabase& aDatabase )
- {
- _DBG_FILE("CNSmlWLanAdapter::NewLC(): begin");
-
- CNSmlWLanAdapter* self = new(ELeave) CNSmlWLanAdapter(aDmCallback);
- CleanupStack::PushL( self );
-
- self->iCallBack = aDmCallback;
- self->ConstructL( aDatabase );
-
- _DBG_FILE("CNSmlWLanAdapter::NewLC(): end");
- return self;
- }
-
-//-----------------------------------------------------------------------------
-// void CNSmlWLanAdapter::ConstructL( )
-// Second phase constructor
-//-----------------------------------------------------------------------------
-void CNSmlWLanAdapter::ConstructL( CCommsDatabase& aDatabase )
- {
- _DBG_FILE("CNSmlWLanAdapter::ConstructL(): begin");
-
- iWlanSettings = CWlanSettings::NewL( aDatabase );
- iBuffer = new (ELeave) CArrayFixFlat <TNSmlWepKeyBufferElement> (KNSmlWepKeyGranularity);
- iSettings = new (ELeave) TWlanSettings;
- iEAPSettings = new (ELeave) EAPSettings;
-
- _DBG_FILE("CNSmlWLanAdapter::ConstructL(): end");
- }
-
-//-----------------------------------------------------------------------------
-// CNSmlWLanAdapter::CNSmlWLanAdapter( )
-// Constructor
-//-----------------------------------------------------------------------------
-CNSmlWLanAdapter::CNSmlWLanAdapter( TAny* aEcomArguments )
- : CSmlDmAdapter(aEcomArguments)
- {
- _DBG_FILE("CNSmlWLanAdapter::CNSmlWLanAdapter(): begin");
- _DBG_FILE("CNSmlWLanAdapter::CNSmlWLanAdapter(): end");
- }
-
-//-----------------------------------------------------------------------------
-// CNSmlWLanAdapter::~CNSmlWLanAdapter( )
-// Destructor
-//-----------------------------------------------------------------------------
-CNSmlWLanAdapter::~CNSmlWLanAdapter( )
- {
- _DBG_FILE("CNSmlWLanAdapter::~CNSmlWLanAdapter(): begin");
-
- if ( iBuffer )
- {
-
- for( TInt index=0; index<iBuffer->Count(); index++ )
- {
- delete iBuffer->At(index).iUri;
- delete iBuffer->At(index).iData;
-
- iBuffer->Delete(index);
- }
-
- iBuffer->Reset();
- delete iBuffer;
-
- }
- delete iWlanSettings;
- delete iSettings;
-
- TRAP_IGNORE( DeleteEAPStructL() );
-
- for ( TInt i = 0 ; i < iEAPBuffer.Count() ; i++ )
- {
- iEAPBuffer[i]->iStatusRefArray.Close();
- iEAPBuffer[i]->iEAPSettings->iEncapsulatedEAPTypes.Close();
- iEAPBuffer[i]->iEAPSettings->iCipherSuites.Close();
- delete iEAPBuffer[i]->iEAPSettings;
- iEAPBuffer[i]->iEAPSettings = NULL;
- }
- iEAPBuffer.ResetAndDestroy();
-
- TInt count = iSecondaryBuffer.Count();
- for( TInt index=0; index<count; index++ )
- {
- delete iSecondaryBuffer[index];
- }
-
- iSecondaryBuffer.Reset();
-
-
- _DBG_FILE("CNSmlWLanAdapter::~CNSmlWLanAdapter(): end");
- }
-
-
-//-----------------------------------------------------------------------------
-// CNSmlWLanAdapter* CNSmlWLanAdapter::DDFVersionL( CBufBase& aDDFVersion )
-//-----------------------------------------------------------------------------
-void CNSmlWLanAdapter::DDFVersionL( CBufBase& aDDFVersion )
- {
- _DBG_FILE("CNSmlWLanAdapter::DDFVersionL(): begin");
-
- aDDFVersion.InsertL( 0, KNSmlWLanAdapterDDFversion );
-
- _DBG_FILE("CNSmlWLanAdapter::DDFVersionL(): end");
- }
-
-//-----------------------------------------------------------------------------
-// CNSmlWLanAdapter* CNSmlWLanAdapter::DDFStructureL( MSmlDmDDFObject& aDDF )
-//-----------------------------------------------------------------------------
-void CNSmlWLanAdapter::DDFStructureL( MSmlDmDDFObject& aDDF )
- {
- _DBG_FILE("CNSmlWLanAdapter::DDFStructureL(): begin");
-
- TSmlDmAccessTypes *aclTypes = new (ELeave) TSmlDmAccessTypes();
- CleanupStack::PushL(aclTypes);
-//
-// Set Get as acceptable operations
-//
- aclTypes->SetGet();
- aclTypes->SetAdd(); // 041208 Added
- aclTypes->SetDelete( );
- aclTypes->SetReplace( );
-
- TSmlDmAccessTypes accessTypesAll;
- accessTypesAll.SetGet( );
- accessTypesAll.SetDelete( );
- accessTypesAll.SetAdd( );
- accessTypesAll.SetReplace( );
-
- TSmlDmAccessTypes accessTypesNoDelete;
- accessTypesNoDelete.SetGet( );
- accessTypesNoDelete.SetAdd( );
- accessTypesNoDelete.SetReplace( );
-
- TSmlDmAccessTypes accessTypesGetAdd;
- accessTypesGetAdd.SetGet( );
- accessTypesGetAdd.SetAdd();
-
- TSmlDmAccessTypes accessTypesGetAddDel;
- accessTypesGetAddDel.SetGet();
- accessTypesGetAddDel.SetAdd();
- accessTypesGetAddDel.SetDelete();
- //WLAN
- MSmlDmDDFObject& rootNode = aDDF.AddChildObjectL( KNSmlWLanNodeName );
- FillNodeInfoL( rootNode,
- accessTypesGetAdd,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::ENode,
- KNSmlEmpty );
-
- //WLAN/<x>
- MSmlDmDDFObject& wlanNode = rootNode.AddChildObjectGroupL( );
- FillNodeInfoL( wlanNode,
- accessTypesGetAddDel,
- MSmlDmDDFObject::EOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::ENode,
- KNSmlEmpty );
-
- //WLAN/<x>/SSID
- MSmlDmDDFObject& ssid = wlanNode.AddChildObjectL( KNSmlWLanSsid );
- FillNodeInfoL( ssid,
- accessTypesNoDelete,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EChr,
- KNSmlEmpty );
-
- //WLAN/<x>/UsedSSID
- MSmlDmDDFObject& usedSsid = wlanNode.AddChildObjectL( KNSmlWLanUsedSsid );
- FillNodeInfoL( usedSsid,
- accessTypesNoDelete,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EChr,
- KNSmlEmpty );
-
- //WLAN/<x>/SSIDHidden
- MSmlDmDDFObject& ssidHidden = wlanNode.AddChildObjectL( KNSmlWLanSsidHidden );
- FillNodeInfoL( ssidHidden,
- accessTypesNoDelete,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EBool,
- KNSmlEmpty );
-
- //WLAN/<x>/NetworkMode
- MSmlDmDDFObject& networkMode = wlanNode.AddChildObjectL( KNSmlWLanNetworkMode );
- FillNodeInfoL( networkMode,
- accessTypesNoDelete,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EChr,
- KNSmlEmpty );
-
- //WLAN/<x>/SecurityMode
- MSmlDmDDFObject& securityMode = wlanNode.AddChildObjectL( KNSmlWLanSecurityMode );
- FillNodeInfoL( securityMode,
- accessTypesNoDelete,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EChr,
- KNSmlEmpty );
-
- //WLAN/<x>/UseWPAPSK
- MSmlDmDDFObject& useWPAPSK = wlanNode.AddChildObjectL( KNSmlWLanUseWPAPSK );
- FillNodeInfoL( useWPAPSK,
- accessTypesNoDelete,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EBool,
- KNSmlEmpty );
-
- //WLAN/<x>/WPAPreSharedKey
- MSmlDmDDFObject& wpaPreSharedKey = wlanNode.AddChildObjectL( KNSmlWLanWpaPreSharedKey );
- FillNodeInfoL( wpaPreSharedKey,
- accessTypesNoDelete,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EBin,
- KNSmlEmpty );
-
- //WLAN/<x>/WLANEAPList
- MSmlDmDDFObject& wlanEapList = wlanNode.AddChildObjectL( KNSmlWLanEapList );
- FillNodeInfoL( wlanEapList,
- accessTypesNoDelete,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EChr,
- KNSmlEmpty );
-
- //WLAN/<x>/WEPKeyIndex
- MSmlDmDDFObject& wepKeyIndex = wlanNode.AddChildObjectL( KNSmlWLanWepIndex );
- FillNodeInfoL( wepKeyIndex,
- accessTypesNoDelete,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EInt,
- KNSmlEmpty );
-
- //WLAN/<x>/WEPAuthMode
- MSmlDmDDFObject& wlanWepAuthMode = wlanNode.AddChildObjectL( KNSmlWLanAuthMode );
- FillNodeInfoL( wlanWepAuthMode,
- accessTypesNoDelete,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EInt,
- KNSmlEmpty );
-
- //WLAN/<x>/WEPKey/
- MSmlDmDDFObject& wepKeyRoot = wlanNode.AddChildObjectL( KNSmlWLanWepKey );
- FillNodeInfoL( wepKeyRoot,
- accessTypesNoDelete,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::ENode,
- KNSmlEmpty );
-
- //WLAN/<x>/WEPKey/<x>
- MSmlDmDDFObject& wepKey = wepKeyRoot.AddChildObjectGroupL( );
- FillNodeInfoL( wepKey,
- accessTypesGetAdd,
- MSmlDmDDFObject::EOneOrN,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::ENode,
- KNSmlEmpty );
-
- //WLAN/<x>/WEPKey/<x>/WEPKeyID
- MSmlDmDDFObject& wepKeyId = wepKey.AddChildObjectL( KNSmlWLanWepKeyId );
- FillNodeInfoL( wepKeyId,
- accessTypesNoDelete,
- MSmlDmDDFObject::EOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EInt,
- KNSmlEmpty );
-
- //WLAN/<x>/WEPKey/<x>/Data
- MSmlDmDDFObject& data = wepKey.AddChildObjectL( KNSmlWLanWepKeyData );
- FillNodeInfoL( data,
- accessTypesNoDelete,
- MSmlDmDDFObject::EOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EBin,
- KNSmlEmpty );
-
-
- //WLAN/<x>/SecondarySSID/
- MSmlDmDDFObject& secondarySSidRoot = wlanNode.AddChildObjectL( KNSmlWLanSecSsid );
- FillNodeInfoL( secondarySSidRoot,
- accessTypesGetAdd,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::ENode,
- KNSmlEmpty );
-
- //WLAN/<x>/SecondarySSID/<x>
- MSmlDmDDFObject& secondarySSid = secondarySSidRoot.AddChildObjectGroupL( );
- FillNodeInfoL( secondarySSid,
- accessTypesGetAddDel,
- MSmlDmDDFObject::EOneOrN,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::ENode,
- KNSmlEmpty );
-
- //WLAN/<x>/SecondarySSID/<x>/SSID
- MSmlDmDDFObject& secSsidId = secondarySSid.AddChildObjectL( KNSmlWLanSsid );
- FillNodeInfoL( secSsidId,
- accessTypesNoDelete,
- MSmlDmDDFObject::EOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EChr,
- KNSmlEmpty );
-
- //WLAN/<x>/SecondarySSID/<x>/UsedSSID
- MSmlDmDDFObject& secUsedSsidId = secondarySSid.AddChildObjectL( KNSmlWLanUsedSsid );
- FillNodeInfoL( secUsedSsidId,
- accessTypesNoDelete,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EChr,
- KNSmlEmpty );
-
- //WLAN/<x>/EAP/
- MSmlDmDDFObject& eapRoot = wlanNode.AddChildObjectL( KNSmlWLanEap );
- FillNodeInfoL( eapRoot,
- accessTypesGetAdd,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::ENode,
- KNSmlEmpty );
-
- //WLAN/<x>/EAP/<x>
- MSmlDmDDFObject& eap = eapRoot.AddChildObjectGroupL( );
- FillNodeInfoL( eap,
- accessTypesGetAdd,
- MSmlDmDDFObject::EOneOrN,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::ENode,
- KNSmlEmpty );
-
- //WLAN/<x>/EAP/<x>/EAPType
- MSmlDmDDFObject& eapType = eap.AddChildObjectL( KNSmlWLanEapType );
- FillNodeInfoL( eapType,
- accessTypesNoDelete,
- MSmlDmDDFObject::EOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EChr,
- KNSmlEmpty );
-
- //WLAN/<x>/EAP/<x>/Username
- MSmlDmDDFObject& eapUsername = eap.AddChildObjectL( KNSmlWLanUsername );
- FillNodeInfoL( eapUsername,
- accessTypesNoDelete,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EChr,
- KNSmlEmpty );
-
- //WLAN/<x>/EAP/<x>/Password
- MSmlDmDDFObject& eapPassword = eap.AddChildObjectL( KNSmlWLanPassword );
- FillNodeInfoL( eapPassword,
- accessTypesNoDelete,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EChr,
- KNSmlEmpty );
-
- //WLAN/<x>/EAP/<x>/Realm
- MSmlDmDDFObject& eapRealm = eap.AddChildObjectL( KNSmlWLanRealm );
- FillNodeInfoL( eapRealm,
- accessTypesNoDelete,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EChr,
- KNSmlEmpty );
-
- //WLAN/<x>/EAP/<x>/UsePseudonym
- MSmlDmDDFObject& eapPseudo = eap.AddChildObjectL( KNSmlWLanUsePseudonym );
- FillNodeInfoL( eapPseudo,
- accessTypesNoDelete,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EBool,
- KNSmlEmpty );
-
- //WLAN/<x>/EAP/<x>/Encapsulation
- // Encapsulation is not supported using this parameter. It is done
- // with */EAP/EAPIdxxx-yyy/* where xxx is the encapsulated and yyy the encapsulating method.
- /*MSmlDmDDFObject& eapEncapsulation = eap.AddChildObjectL( KNSmlWLanEncapsulation );
- FillNodeInfoL( eapEncapsulation,
- accessTypesNoDelete,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EChr,
- KNSmlEmpty ); */
-
- //WLAN/<x>/EAP/<x>/VerifyCertRealm
- MSmlDmDDFObject& eapVerifyCertRealm = eap.AddChildObjectL( KNSmlWLanVerifyCertRealm );
- FillNodeInfoL( eapVerifyCertRealm,
- accessTypesNoDelete,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EBool,
- KNSmlEmpty );
-
- //WLAN/<x>/EAP/<x>/RequireClientAuthentication
- MSmlDmDDFObject& eapRequireClientAuthentication = eap.AddChildObjectL( KNSmlWLanRequireClientAuthentication );
- FillNodeInfoL( eapRequireClientAuthentication,
- accessTypesNoDelete,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EBool,
- KNSmlEmpty );
-
- //WLAN/<x>/EAP/<x>/SessionValidityTime
- MSmlDmDDFObject& eapSessionValidityTime = eap.AddChildObjectL( KNSmlWLanSessionValidityTime );
- FillNodeInfoL( eapSessionValidityTime,
- accessTypesNoDelete,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EChr,
- KNSmlEmpty );
-
- //WLAN/<x>/EAP/<x>/CipherSuite
- MSmlDmDDFObject& eapCipherSuite = eap.AddChildObjectL( KNSmlWLanCipherSuite );
- FillNodeInfoL( eapCipherSuite,
- accessTypesNoDelete,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EChr,
- KNSmlEmpty );
-
- //WLAN/<x>/EAP/<x>/AllowPEAPv0
- MSmlDmDDFObject& eapAllowPEAPv0 = eap.AddChildObjectL( KNSmlWLanAllowPEAPv0 );
- FillNodeInfoL( eapAllowPEAPv0,
- accessTypesNoDelete,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EBool,
- KNSmlEmpty );
-
- //WLAN/<x>/EAP/<x>/AllowPEAPv1
- MSmlDmDDFObject& eapAllowPEAPv1 = eap.AddChildObjectL( KNSmlWLanAllowPEAPv1 );
- FillNodeInfoL( eapAllowPEAPv1,
- accessTypesNoDelete,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EBool,
- KNSmlEmpty );
-
- //WLAN/<x>/EAP/<x>/AllowPEAPv2
- MSmlDmDDFObject& eapAllowPEAPv2 = eap.AddChildObjectL( KNSmlWLanAllowPEAPv2 );
- FillNodeInfoL( eapAllowPEAPv2,
- accessTypesNoDelete,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EBool,
- KNSmlEmpty );
-
-#ifdef FF_WLAN_EXTENSIONS
-
- //WLAN/<x>/EAP/<x>/AuthProvModeAllowed
- MSmlDmDDFObject& authProvMode = eap.AddChildObjectL( KNSmlWLanAuthProvMode );
- FillNodeInfoL( authProvMode,
- accessTypesNoDelete,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EBool,
- KNSmlEmpty );
-
- //WLAN/<x>/EAP/<x>/UnauthProvModeAllowed
- MSmlDmDDFObject& unauthProvMode = eap.AddChildObjectL( KNSmlWLanUnauthProvMode );
- FillNodeInfoL( unauthProvMode,
- accessTypesNoDelete,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EBool,
- KNSmlEmpty );
-
- //WLAN/<x>/EAP/<x>/PACGroupReference
- MSmlDmDDFObject& pacGroupRef = eap.AddChildObjectL( KNSmlWLanPACGroupRef );
- FillNodeInfoL( pacGroupRef,
- accessTypesNoDelete,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EChr,
- KNSmlEmpty );
-
- //WLAN/<x>/EAP/<x>/WarnADHPNoPAC
- MSmlDmDDFObject& warnADHPNoPAC = eap.AddChildObjectL( KNSmlWLanWarnADHPNoPAC );
- FillNodeInfoL( warnADHPNoPAC,
- accessTypesNoDelete,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EBool,
- KNSmlEmpty );
-
- //WLAN/<x>/EAP/<x>/WarnADHPNoMatchingPAC
- MSmlDmDDFObject& warnADHPNoMatchingPAC = eap.AddChildObjectL( KNSmlWLanWarnADHPNoMatchPAC );
- FillNodeInfoL( warnADHPNoMatchingPAC,
- accessTypesNoDelete,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EBool,
- KNSmlEmpty );
-
- //WLAN/<x>/EAP/<x>/WarnNotDefaultServer
- MSmlDmDDFObject& warnNoDefServ = eap.AddChildObjectL( KNSmlWLanWarnNotDefaultSrv );
- FillNodeInfoL( warnNoDefServ,
- accessTypesNoDelete,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EBool,
- KNSmlEmpty );
-
-#endif
-
-
- //WLAN/<x>/EAP/<x>/Certificate
- MSmlDmDDFObject& eapCertificateRoot = eap.AddChildObjectL( KNSmlWLanCertificate );
- FillNodeInfoL( eapCertificateRoot,
- accessTypesGetAdd,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::ENode,
- KNSmlEmpty );
-
- //WLAN/<x>/EAP/<x>/Certificate/<x>
- MSmlDmDDFObject& eapCertificate = eapCertificateRoot.AddChildObjectGroupL( );
- FillNodeInfoL( eapCertificate,
- accessTypesGetAdd,
- MSmlDmDDFObject::EOneOrMore,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::ENode,
- KNSmlEmpty );
-
- //WLAN/<x>/EAP/<x>/Certificate/<x>/IssuerName
- MSmlDmDDFObject& eapIssuerName = eapCertificate.AddChildObjectL( KNSmlWLanIssuerName );
- FillNodeInfoL( eapIssuerName,
- accessTypesNoDelete,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EChr,
- KNSmlEmpty );
-
- //WLAN/<x>/EAP/<x>/Certificate/<x>/SubjectName
- MSmlDmDDFObject& eapSubjectName = eapCertificate.AddChildObjectL( KNSmlWLanSubjectName );
- FillNodeInfoL( eapSubjectName,
- accessTypesNoDelete,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EChr,
- KNSmlEmpty );
-
- //WLAN/<x>/EAP/<x>/Certificate/<x>/CertType
- MSmlDmDDFObject& eapCertType = eapCertificate.AddChildObjectL( KNSmlWLanCertType );
- FillNodeInfoL( eapCertType,
- accessTypesNoDelete,
- MSmlDmDDFObject::EOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EChr,
- KNSmlEmpty );
-
- //WLAN/<x>/EAP/<x>/Certificate/<x>/SerialNumber
- MSmlDmDDFObject& eapSerialNumber = eapCertificate.AddChildObjectL( KNSmlWLanSerialNumber );
- FillNodeInfoL( eapSerialNumber,
- accessTypesNoDelete,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EChr,
- KNSmlEmpty );
-
- //WLAN/<x>/EAP/<x>/Certificate/<x>/SubjectKeyId
- MSmlDmDDFObject& eapSubjectKeyId = eapCertificate.AddChildObjectL( KNSmlWLanSubjectKeyId );
- FillNodeInfoL( eapSubjectKeyId,
- accessTypesNoDelete,
- MSmlDmDDFObject::EOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EChr,
- KNSmlEmpty );
-
- //WLAN/<x>/EAP/<x>/Certificate/<x>/Fingerprint
- MSmlDmDDFObject& eapFingerprint = eapCertificate.AddChildObjectL( KNSmlWLanFingerprint );
- FillNodeInfoL( eapFingerprint,
- accessTypesNoDelete,
- MSmlDmDDFObject::EZeroOrOne,
- MSmlDmDDFObject::EDynamic,
- MSmlDmDDFObject::EChr,
- KNSmlEmpty );
-
- CleanupStack::PopAndDestroy(); //aclTypes
-
- _DBG_FILE("CNSmlWLanAdapter::DDFStructureL(): end");
- }
-
-//-----------------------------------------------------------------------------
-// CNSmlWLanAdapter* CNSmlWLanAdapter::AddLeafObjectL( const TDesC& aURI,const
-// TDesC& aParentLUID, const TDesC8& aObject, const TDesC& aType,
-// const TInt aStatusRef )
-//-----------------------------------------------------------------------------
-void CNSmlWLanAdapter::AddLeafObjectL( const TDesC8& aURI,
- const TDesC8& aParentLUID,
- const TDesC8& aObject,
- const TDesC8& /*aType*/,
- const TInt aStatusRef )
- {
- DBG_ARGS8(_S8("CNSmlWLanAdapter::AddLeafObjectL - <%S> <%S> <%S>"), &aURI, &aParentLUID, &aObject );
-
- TInt uriSegs = NumOfUriSegs( aURI );
- TInt luid = GetIdFromLuid( aParentLUID );
- TInt err(KErrNone);
- TPtrC8 lastUriSeg = GetLastUriSeg( aURI );
-
- TInt eapIndex(0);
-
- TInt eapId = GetEAPIdFromUri( aURI );
- if (eapId == KErrNotFound)
- {
- _DBG_FILE("CNSmlWLanAdapter::AddLeafObjectL(): Non-EAP setting.");
- if(luid==KErrNotFound)
- {
- return;
- }
- err = iWlanSettings->GetWlanSettings( luid, *iSettings );
- }
- else
- {
- _DBG_FILE("CNSmlWLanAdapter::AddLeafObjectL(): EAP setting.");
- TInt encapsEapId = GetEncapsEAPIdFromUri( aURI );
- if ( encapsEapId == KErrNotFound )
- {
- _DBG_FILE("CNSmlWLanAdapter::AddLeafObjectL(): Does not have encapsulation id xx-xx.");
- encapsEapId = EAPSettings::EEapNone;
- }
- TInt i(0);
- // This is EAP addition. Check if the buffer for this EAP already exists
- for ( i = 0 ; i < iEAPBuffer.Count() ; i++ )
- {
- if ( eapId == iEAPBuffer[i]->iEAPSettings->iEAPType
- && encapsEapId == iEAPBuffer[i]->iEncapsulatingEAPId )
- {
- // The correct buffer was found.
- _DBG_FILE("CNSmlWLanAdapter::AddLeafObjectL(): Found existing buffer.");
- eapIndex = i;
- break;
- }
- }
- if ( i == iEAPBuffer.Count() )
- {
- DBG_ARGS8(_S8("CNSmlWLanAdapter::AddLeafObjectL(): No buffer found. Create new: <%d>-<%d>"), eapId, encapsEapId );
- // Buffer was not found. Create new.
- TInt WLANServiceId = GetServiceIdFromUriL ( aURI );
-
- if ( WLANServiceId == KErrNotFound )
- {
- _DBG_FILE("CNSmlWLanAdapter::AddLeafObjectL(): Could not find WLAN service ID from URI.");
- iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
- return;
- }
-
- TNSmlEAPBufferElement* buffer = new (ELeave) TNSmlEAPBufferElement;
- CleanupStack::PushL( buffer );
-
- buffer->iEAPSettings = new (ELeave) EAPSettings;
- CleanupStack::PushL( buffer->iEAPSettings );
-
- buffer->iEAPSettings->iEAPType = static_cast<EAPSettings::TEapType> ( eapId );
- buffer->iWLANServiceId = WLANServiceId;
- buffer->iEncapsulatingEAPId = static_cast<EAPSettings::TEapType>( encapsEapId );
- iEAPBuffer.AppendL(buffer);
-
- CleanupStack::Pop( buffer->iEAPSettings );
- CleanupStack::Pop( buffer );
-
- eapIndex = iEAPBuffer.Count() - 1;
- }
- }
- if( err != KErrNone )
- {
- DBG_ARGS(_S16("CNSmlWLanAdapter::AddLeafObjectL - ErrorCode <%D>"), err );
- iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
- return;
- }
-
- else if( aURI.Match( _L8("AP/*/NAPDef/*/WLAN/*/WEPKey/*/*") ) != KErrNotFound && uriSegs==9 )
- {
- TInt wepKeyId = GetWepKeyIdFromLuid( aParentLUID );
-
- if( wepKeyId != KErrNotFound )
- {
- if( lastUriSeg.Match( KNSmlWLanWepKeyData ) != KErrNotFound )
- {
- switch( wepKeyId )
- {
- case 1:
- iSettings->WepKey1 = aObject;
- break;
- case 2:
- iSettings->WepKey2 = aObject;
- break;
- case 3:
- iSettings->WepKey3 = aObject;
- break;
- case 4:
- iSettings->WepKey4 = aObject;
- break;
- default:
- iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
- return;
- }
- }
- else if( lastUriSeg.Match( KNSmlWLanWepKeyId ) != KErrNotFound )
- {
- iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
- return;
- }
- else
- {
- iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
- return;
- }
- }
-
- else
- {
- TInt index = -1;
-
- for( TInt i=0; i<iBuffer->Count(); i++ )
- {
- if( aURI.Find( iBuffer->At(i).iUri->Des() ) != KErrNotFound )
- {
- index = i;
- break;
- }
- }
- if( index < 0 )
- {
- wepKeyId = GetWepKeyIdFromUri( aURI );
-
- TBuf8<80> addLUID; // AP/<x>/NapDef/<x>/WLAN/<x>/WEPKey/WKIdnnn
- addLUID.AppendNum( wepKeyId );
- addLUID.AppendNumFixedWidth( luid, EDecimal, 3 );
-
- DBG_ARGS8(_S8("WLanAdapter::AddleafObject - mapping uri: <%S> to luid: <%S>"), &aURI, &addLUID );
- DBG_ARGS8(_S8("Parametrit - <%S> <%S>"), &aURI, &addLUID );
- iCallBack->SetMappingL(aURI, addLUID);
- if( lastUriSeg.Match( KNSmlWLanWepKeyData ) != KErrNotFound )
- {
- switch( wepKeyId )
- {
- case 1:
- iSettings->WepKey1 = aObject;
- break;
- case 2:
- iSettings->WepKey2 = aObject;
- break;
- case 3:
- iSettings->WepKey3 = aObject;
- break;
- case 4:
- iSettings->WepKey4 = aObject;
- break;
- default:
- iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
- return;
- }
- }
- else if( lastUriSeg.Match( KNSmlWLanWepKeyId ) != KErrNotFound )
- {
- iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
- return;
- }
- else
- {
- iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
- return;
- }
- }
- else
- {
- //Add WepKeyId and execute buffer
- if( lastUriSeg.Match( KNSmlWLanWepKeyId ) != KErrNotFound )
- {
- iBuffer->At(index).iWepKeyId = DesToInt( aObject );
- iBuffer->At(index).iIdStatusRef = aStatusRef;
-
-// ExecuteBufferL( ); (JPLA-6M29NR caused error in WEPkey Data if buffer is executed here)
- return;
- }
-
- else if( lastUriSeg.Match( KNSmlWLanWepKeyData ) != KErrNotFound )
- {
- iBuffer->At(index).iData = aObject.AllocLC();
- iBuffer->At(index).iDataSet = ETrue;
- CleanupStack::Pop( ); //iBuffer->At(index).iData
- iBuffer->At(index).iDataStatusRef = aStatusRef;
- return;
- }
- else
- {
- iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
- return;
- }
- }
- }
- }
-
- else if( aURI.Match( _L8("AP/*/NAPDef/*/WLAN/*/*") ) != KErrNotFound && uriSegs==7 )
- {
- if( lastUriSeg.Compare(KNSmlWLanSsid) == 0 )
- {
- TInt returnValue = CnvUtfConverter::ConvertToUnicodeFromUtf8( iSettings->SSID, aObject );
- DBG_ARGS(_S16("WLanAdapter::ssid convert: <%D>"), returnValue );
- if (returnValue != KErrNone)
- {
- // setting the default value to the network name
- iSettings->SSID = TPtrC(KNSmlWLanDefaultSSID);
- DBG_ARGS(_S16("CNSmlWLanAdapter::AddLeafObjectL SSID - ErrorCode <%D>"), returnValue );
- iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
- return;
- }
- }
-
- else if( lastUriSeg.Compare(KNSmlWLanUsedSsid) == 0 )
- {
- TInt returnValue = CnvUtfConverter::ConvertToUnicodeFromUtf8( iSettings->UsedSSID, aObject );
- DBG_ARGS(_S16("WLanAdapter::usedSsid convert: <%D>"), returnValue );
- }
-
- else if( lastUriSeg.Compare(KNSmlWLanSsidHidden) == 0 )
- {
- if( aObject.MatchF( _L8("True")) != KErrNotFound )
- {
- iSettings->ScanSSID = 1;
- }
- else
- {
- iSettings->ScanSSID = 0;
- }
- }
-
- else if( lastUriSeg.Compare(KNSmlWLanNetworkMode) == 0 )
- {
- if( aObject.MatchF( _L8("ADHOC") ) != KErrNotFound )
- {
- iSettings->ConnectionMode = EAdhoc;
- }
-
- else if( aObject.MatchF( _L8("Infrastructure") ) != KErrNotFound )
- {
- iSettings->ConnectionMode = EInfrastructure;
- }
- else
- {
- iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EInvalidObject );
- return;
- }
- }
-
- else if( lastUriSeg.Compare(KNSmlWLanSecurityMode) == 0 )
- {
- if( aObject.MatchF( _L8("NONE") ) != KErrNotFound )
- {
- iSettings->SecurityMode = EAllowUnsecure;
- }
- else if( aObject.MatchF( _L8("WEP") ) != KErrNotFound )
- {
- iSettings->SecurityMode = EWep;
- }
- else if( aObject.MatchF( _L8("8021X") ) != KErrNotFound )
- {
- iSettings->SecurityMode = EWlan8021x;
- }
- else if( aObject.MatchF( _L8("WPA") ) != KErrNotFound )
- {
- iSettings->SecurityMode = EWpa;
- }
- else if( aObject.MatchF( _L8("WPA2") ) != KErrNotFound )
- {
- iSettings->SecurityMode = EWpa2;
- }
- else
- {
- iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EInvalidObject );
- return;
- }
- }
-
- else if( lastUriSeg.Compare( KNSmlWLanUseWPAPSK ) == 0 )
- {
- if( aObject.MatchF( _L8("True")) != KErrNotFound )
- {
- iSettings->UseWPAPSK = 1;
- }
- else
- {
- iSettings->UseWPAPSK = 0;
- }
- }
-
- else if( lastUriSeg.Compare(KNSmlWLanWpaPreSharedKey) == 0 )
- {
- if(aObject.Length() > KMaxPSKLength)
- {
- iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ETooLargeObject );
- return;
- }
- /*else if(aObject.Length() < KMinPSKLength)
- {
- iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EInvalidObject );
- return;
- }*/
- else
- {
- iSettings->WPAPreSharedKey = aObject;
- }
- }
-
- else if( lastUriSeg.Compare( KNSmlWLanEapList ) == 0 )
- {
- TInt returnValue = CnvUtfConverter::ConvertToUnicodeFromUtf8( iSettings->EapList, aObject );
- DBG_ARGS(_S16("WLanAdapter::EapList convert: <%D>"), returnValue );
- }
-
- else if( lastUriSeg.Compare( KNSmlWLanAuthMode ) == 0 )
- {
- if( aObject.MatchF( _L8("1")) != KErrNotFound )
- {
- iSettings->AuthMode = EShared;
- }
- else
- {
- iSettings->AuthMode = EOpen;
- }
- }
-
- else if( lastUriSeg.Compare(KNSmlWLanWepIndex) == 0 )
- {
- TInt32 actualIndex = DesToInt( aObject );
- if( actualIndex < 4 && actualIndex >= 0 )
- {
- iSettings->WepIndex = actualIndex ;
- }
- else
- {
- if ( actualIndex > 3)
- {
- iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ETooLargeObject );
- }
- else
- {
- iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
- }
- return;
- }
- }
-
- else
- {
- iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
- return;
- }
- }
-
- else if( aURI.Match( _L8("AP/*/NAPDef/*/WLAN/*/SecondarySSID/*/*") ) != KErrNotFound && uriSegs == 9 )
- {
- TSecondarySSID ssid;
- ssid.Id = 0;
- TUint32 id = GetSecSSIDFromUriL(aURI);
- RArray<TSecondarySSID> secondaryList;
- CleanupClosePushL( secondaryList );
- iWlanSettings->GetSecondarySSIDListL(luid, secondaryList);
- TInt count = secondaryList.Count();
- for (TInt i=0;i<count;i++)
- {
- if (id == secondaryList[i].Id)
- {
- ssid = secondaryList[i];
- break;
- }
- }
- CleanupStack::PopAndDestroy(&secondaryList);
- if (ssid.Id == 0)
- {
-
- _DBG_FILE("CNSmlWLanAdapter::Coming to check buffer ");
-
- //Check if its buffered here - Divya
- TInt index = -1;
-
- for( TInt i=0; i<iSecondaryBuffer.Count(); i++ )
- {
- if( aURI.Find( iSecondaryBuffer[i]->iUri->Des() ) != KErrNotFound )
- {
- index = i;
- _DBG_FILE("CNSmlWLanAdapter::one indexis matched :-)");
- break;
- }
- }
- if( index < 0 )
- {
- _DBG_FILE("CNSmlWLanAdapter::one indexis matched :-)");
- iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
- return;
- }
- else
- {
- DBG_ARGS8(_S8("CWlanadaptes::Execute Buffer - copying in buffer instead of giving 404 uri: object id : <%S>"), &aObject);
-
- if( lastUriSeg.Compare(KNSmlWLanSsid) == 0 )
- {
- if ( aObject.Length() <= KMaxTextLength )
- {
- iSecondaryBuffer[index]->ScannedId.Copy(aObject);
- }
- else
- {
- _DBG_FILE("CNSmlWLanAdapter::AddLeafObject - SecondarySSID too long");
- iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
- return;
- }
-
- }
- else if (lastUriSeg.Compare(KNSmlWLanUsedSsid) == 0 )
- {
- iSecondaryBuffer[index]->UsedId.Copy(aObject);
- }
-
- }
-
-
- }
-
- else
- {
-
- if( lastUriSeg.Compare(KNSmlWLanSsid) == 0 )
- {
- ssid.ScannedId.Copy(aObject);
- }
- else if (lastUriSeg.Compare(KNSmlWLanUsedSsid) == 0 )
- {
- ssid.UsedId.Copy(aObject);
- }
- TInt retval = iWlanSettings->WriteSecondarySSIDL(luid, ssid, EFalse);
- if (retval == KErrNone)
- {
- iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
- }
- else
- {
- iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
- }
- }
- }
- else if( aURI.Match( _L8("AP/*/NAPDef/*/WLAN/*/EAP/*/*") ) != KErrNotFound && uriSegs == 9 )
- {
- DBG_ARGS8(_S8("CNSmlWLanAdapter::AddLeafObjectL - EAP index: <%d>"), eapIndex );
-
- if( lastUriSeg.Compare(KNSmlWLanEapType) == 0 )
- {
- // Get EAP ID from URI instead of the value because the server gives the value
- // incorrectly as the textual representation of the EAP method instead of the IANA number.
- iEAPBuffer[eapIndex]->iEAPSettings->iEAPType = static_cast<EAPSettings::TEapType>(GetEAPIdFromUri(aURI));
- }
- else if (lastUriSeg.Compare(KNSmlWLanUsername) == 0)
- {
- TInt retval = CnvUtfConverter::ConvertToUnicodeFromUtf8( iEAPBuffer[eapIndex]->iEAPSettings->iUsername, aObject );
- if (retval == KErrNone)
- {
- iEAPBuffer[eapIndex]->iEAPSettings->iUsernamePresent = ETrue;
- }
- else
- {
- iEAPBuffer[eapIndex]->iEAPSettings->iUsername.Zero();
- DBG_ARGS(_S16("CNSmlWLanAdapter::AddLeafObjectL EAP username - ErrorCode <%D>"), retval );
- iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
- return;
- }
-
- }
- else if (lastUriSeg.Compare(KNSmlWLanPassword) == 0)
- {
- TInt retval = CnvUtfConverter::ConvertToUnicodeFromUtf8( iEAPBuffer[eapIndex]->iEAPSettings->iPassword, aObject );
- if (retval == KErrNone)
- {
- iEAPBuffer[eapIndex]->iEAPSettings->iPasswordPresent = ETrue;
- }
- else
- {
- iEAPBuffer[eapIndex]->iEAPSettings->iPassword.Zero();
- DBG_ARGS(_S16("CNSmlWLanAdapter::AddLeafObjectL EAP password - ErrorCode <%D>"), retval );
- iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
- return;
- }
- }
- else if (lastUriSeg.Compare(KNSmlWLanRealm) == 0)
- {
- TInt retval = CnvUtfConverter::ConvertToUnicodeFromUtf8( iEAPBuffer[eapIndex]->iEAPSettings->iRealm, aObject );
- if (retval == KErrNone)
- iEAPBuffer[eapIndex]->iEAPSettings->iRealmPresent = ETrue;
-
- }
- else if (lastUriSeg.Compare(KNSmlWLanUsePseudonym) == 0)
- {
- if ( (aObject == KTrue) || (aObject == KTtrue) )
- iEAPBuffer[eapIndex]->iEAPSettings->iUsePseudonyms = ETrue;
- else
- iEAPBuffer[eapIndex]->iEAPSettings->iUsePseudonyms = EFalse;
-
-
- iEAPBuffer[eapIndex]->iEAPSettings->iUsePseudonymsPresent = ETrue;
- }
- else if (lastUriSeg.Compare(KNSmlWLanEncapsulation) == 0)
- {
- TBuf8<KExpandedEAPIdLength> dummy;
- ConvertEAPStringToIds( aObject, dummy, iEAPBuffer[eapIndex]->iEncapsulatingEAPId );
- }
- else if (lastUriSeg.Compare(KNSmlWLanVerifyCertRealm) == 0)
- {
- if ( (aObject == KTrue) || (aObject == KTtrue) )
- iEAPBuffer[eapIndex]->iEAPSettings->iVerifyServerRealm = ETrue;
- else
- iEAPBuffer[eapIndex]->iEAPSettings->iVerifyServerRealm = EFalse;
-
-
- iEAPBuffer[eapIndex]->iEAPSettings->iVerifyServerRealmPresent = ETrue;
-
- }
- else if (lastUriSeg.Compare(KNSmlWLanRequireClientAuthentication) == 0)
- {
- if ( (aObject == KTrue) || (aObject == KTtrue) )
- iEAPBuffer[eapIndex]->iEAPSettings->iRequireClientAuthentication = ETrue;
- else
- iEAPBuffer[eapIndex]->iEAPSettings->iRequireClientAuthentication = EFalse;
-
-
- iEAPBuffer[eapIndex]->iEAPSettings->iRequireClientAuthenticationPresent = ETrue;
-
- }
- else if (lastUriSeg.Compare(KNSmlWLanSessionValidityTime) == 0)
- {
- TLex8 lex(aObject);
- TUint newVal;
- TInt sesValErr = lex.Val(newVal);
- // Check whether the conversion went ok
- if ( sesValErr == KErrNone )
- {
- iEAPBuffer[eapIndex]->iEAPSettings->iSessionValidityTime = newVal;
- iEAPBuffer[eapIndex]->iEAPSettings->iSessionValidityTimePresent = ETrue;
- }
- else
- {
- // there were errors, let's leave the function and update status
- DBG_ARGS(_S16("CNSmlWLanAdapter::AddLeafObjectL SessionValidityTime - ErrorCode <%D>"), sesValErr );
- iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EInvalidObject );
- return;
- }
- }
- else if (lastUriSeg.Compare(KNSmlWLanCipherSuite) == 0)
- {
- FillCipherSuitesL( aObject , eapIndex );
- }
- else if (lastUriSeg.Compare(KNSmlWLanAllowPEAPv0) == 0)
- {
- if ( (aObject == KTrue) || (aObject == KTtrue) )
- iEAPBuffer[eapIndex]->iEAPSettings->iPEAPv0Allowed = ETrue;
- else
- iEAPBuffer[eapIndex]->iEAPSettings->iPEAPv0Allowed = EFalse;
-
- iEAPBuffer[eapIndex]->iEAPSettings->iPEAPVersionsPresent = ETrue;
- }
- else if (lastUriSeg.Compare(KNSmlWLanAllowPEAPv1) == 0)
- {
- if ( (aObject == KTrue) || (aObject == KTtrue) )
- iEAPBuffer[eapIndex]->iEAPSettings->iPEAPv1Allowed = ETrue;
- else
- iEAPBuffer[eapIndex]->iEAPSettings->iPEAPv1Allowed = EFalse;
-
- iEAPBuffer[eapIndex]->iEAPSettings->iPEAPVersionsPresent = ETrue;
-
- }
- else if (lastUriSeg.Compare(KNSmlWLanAllowPEAPv2) == 0)
- {
- if ( (aObject == KTrue) || (aObject == KTtrue) )
- iEAPBuffer[eapIndex]->iEAPSettings->iPEAPv2Allowed = ETrue;
- else
- iEAPBuffer[eapIndex]->iEAPSettings->iPEAPv2Allowed = EFalse;
-
- iEAPBuffer[eapIndex]->iEAPSettings->iPEAPVersionsPresent = ETrue;
- }
-
-#ifdef FF_WLAN_EXTENSIONS
- else if (lastUriSeg.Compare(KNSmlWLanAuthProvMode) == 0)
- {
- if ( (aObject == KTrue) || (aObject == KTtrue) )
- iEAPBuffer[eapIndex]->iEAPSettings->iAuthProvModeAllowed = ETrue;
- else
- iEAPBuffer[eapIndex]->iEAPSettings->iAuthProvModeAllowed = EFalse;
-
- iEAPBuffer[eapIndex]->iEAPSettings->iAuthProvModeAllowedPresent = ETrue;
- }
-
-
- else if (lastUriSeg.Compare(KNSmlWLanUnauthProvMode) == 0)
- {
- if ( (aObject == KTrue) || (aObject == KTtrue) )
- iEAPBuffer[eapIndex]->iEAPSettings->iUnauthProvModeAllowed = ETrue;
- else
- iEAPBuffer[eapIndex]->iEAPSettings->iUnauthProvModeAllowed = EFalse;
-
- iEAPBuffer[eapIndex]->iEAPSettings->iUnauthProvModeAllowedPresent = ETrue;
- }
-
-
- else if (lastUriSeg.Compare(KNSmlWLanPACGroupRef) == 0)
- {
- TInt retval = CnvUtfConverter::ConvertToUnicodeFromUtf8( iEAPBuffer[eapIndex]->iEAPSettings->iPACGroupReference, aObject );
- if (retval == KErrNone)
- iEAPBuffer[eapIndex]->iEAPSettings->iPACGroupReferencePresent = ETrue;
-
- }
-
- else if (lastUriSeg.Compare(KNSmlWLanWarnADHPNoPAC) == 0)
- {
- if ( (aObject == KTrue) || (aObject == KTtrue) )
- iEAPBuffer[eapIndex]->iEAPSettings->iWarnADHPNoPAC = ETrue;
- else
- iEAPBuffer[eapIndex]->iEAPSettings->iWarnADHPNoPAC = EFalse;
-
- iEAPBuffer[eapIndex]->iEAPSettings->iWarnADHPNoPACPresent = ETrue;
- }
-
-
- else if (lastUriSeg.Compare(KNSmlWLanWarnADHPNoMatchPAC) == 0)
- {
- if ( (aObject == KTrue) || (aObject == KTtrue) )
- iEAPBuffer[eapIndex]->iEAPSettings->iWarnADHPNoMatchingPAC = ETrue;
- else
- iEAPBuffer[eapIndex]->iEAPSettings->iWarnADHPNoMatchingPAC = EFalse;
-
- iEAPBuffer[eapIndex]->iEAPSettings->iWarnADHPNoMatchingPACPresent = ETrue;
- }
-
-
- else if (lastUriSeg.Compare(KNSmlWLanWarnNotDefaultSrv) == 0)
- {
- if ( (aObject == KTrue) || (aObject == KTtrue) )
- iEAPBuffer[eapIndex]->iEAPSettings->iWarnNotDefaultServer = ETrue;
- else
- iEAPBuffer[eapIndex]->iEAPSettings->iWarnNotDefaultServer = EFalse;
-
- iEAPBuffer[eapIndex]->iEAPSettings->iWarnNotDefaultServerPresent = ETrue;
- }
-
-
-#endif
-
- // Save the status reference
- iEAPBuffer[eapIndex]->iStatusRefArray.AppendL(aStatusRef);
- return;
- }
- else if (aURI.Match( _L8("AP/*/NAPDef/*/WLAN/*/EAP/*/Certificate/*/*") ) != KErrNotFound && uriSegs == 11)
- {
- TPtrC8 ptr = NSmlDmURI::ParentURI( aURI );
-
- // Get the LUID from ptr2
- HBufC8* certLuid = iCallBack->GetLuidAllocL( ptr );
-
- TInt certIndex = GetIdFromLuid( *certLuid );
-
- delete certLuid;
-
- DBG_ARGS8(_S8("CNSmlWLanAdapter::AddLeafObjectL - cert index: <%d>, cert count: <%d>"),
- certIndex, iEAPBuffer[eapIndex]->iEAPSettings->iCertificates.Count());
-
- if ( iEAPBuffer[eapIndex]->iEAPSettings->iCertificates.Count() - 1 < certIndex )
- {
- _DBG_FILE("CNSmlWLanAdapter::AddLeafObject - Certificate buffer does not exist. Create it.");
- // The certificate buffer does not exist. Create a new one
- CertificateEntry entry;
- iEAPBuffer[eapIndex]->iEAPSettings->iCertificates.AppendL(entry);
- iEAPBuffer[eapIndex]->iEAPSettings->iCertificatesPresent = ETrue;
-
- certIndex = iEAPBuffer[eapIndex]->iEAPSettings->iCertificates.Count() - 1;
-
- TBuf8<2> newLuid;
- newLuid.Num( certIndex );
-
- DBG_ARGS8(_S8("WLanAdapter::AddLeafObjectL - mapping uri: <%S> to luid: <%S>"), &aURI, &newLuid );
- iCallBack->SetMappingL( aURI, newLuid);
- }
-
- if (lastUriSeg.Compare(KNSmlWLanIssuerName) == 0)
- {
- TInt retval =
- CnvUtfConverter::ConvertToUnicodeFromUtf8(
- iEAPBuffer[eapIndex]->iEAPSettings->iCertificates[certIndex].iIssuerName, aObject );
- if (retval == KErrNone)
- iEAPBuffer[eapIndex]->iEAPSettings->iCertificates[certIndex].iIssuerNamePresent = ETrue;
- }
- else if (lastUriSeg.Compare(KNSmlWLanSubjectName) == 0)
- {
- TInt retval = CnvUtfConverter::ConvertToUnicodeFromUtf8(
- iEAPBuffer[eapIndex]->iEAPSettings->iCertificates[certIndex].iSubjectName, aObject );
- if (retval == KErrNone)
- iEAPBuffer[eapIndex]->iEAPSettings->iCertificates[certIndex].iSubjectNamePresent = ETrue;
- }
- else if (lastUriSeg.Compare(KNSmlWLanCertType) == 0)
- {
- iEAPBuffer[eapIndex]->iEAPSettings->iCertificates[certIndex].iCertType = (CertificateEntry::TCertType)DesToInt(aObject);
- }
- else if (lastUriSeg.Compare(KNSmlWLanSerialNumber) == 0)
- {
- TInt retval = CnvUtfConverter::ConvertToUnicodeFromUtf8(
- iEAPBuffer[eapIndex]->iEAPSettings->iCertificates[certIndex].iSerialNumber, aObject );
- if (retval == KErrNone)
- iEAPBuffer[eapIndex]->iEAPSettings->iCertificates[certIndex].iSerialNumberPresent = ETrue;
-
- }
- else if (lastUriSeg.Compare(KNSmlWLanSubjectKeyId) == 0)
- {
-
- // Define literals to search the subject key for possible 0X/0x beginning
- _LIT(KHexIdLC, "0x");
- _LIT(KHexIdUC, "0X");
- TBuf<2> hexIdBuf;
- // The lenght of the key given as input
- TInt keyLen = aObject.Length();
-
- // setting the given key to the key buffer
- TBuf8<KNsmlSubjectKeyIdLength> origKey = aObject;
- origKey.SetLength(keyLen);
- TBuf<KNsmlSubjectKeyIdLength> key;
- TLex8 tmpByte;
- TUint16 byte;
-
- // Remove possible spaces from the beginning
- origKey.TrimLeft();
-
- // the key should be atleast two chars long
- if (origKey.Length() >= 2)
- {
- // Copy the two left most characters in to the buffer
- hexIdBuf.Copy(origKey.Left(2));
-
- // If the first characters are 0x or 0X, then thet should be ignored
- if (hexIdBuf.Compare(KHexIdLC) == 0
- || hexIdBuf.Compare(KHexIdUC) == 0)
- {
- // delete two characters
- origKey.Delete(0, 2);
- }
- }
-
-
- // looping the subject key through, removing whitespaces
- for (TInt i = 0; i < keyLen; i++)
- {
- // removing white spaces from the left side of the key
- origKey.TrimLeft();
- // check that there are characters left
- if (origKey.Length() >= 2)
- {
- // pick the two left most bytes from the key
- tmpByte = origKey.Left(2);
- // convert byte into binary format
- err = tmpByte.Val(byte, EHex);
-
- // check whether conversion to decimal went ok
- if (err != KErrNone)
- {
- // if there are problems, then leave the loop
- break;
- }
-
- // store the appended byte into the key variable
- key.Append(byte);
- // delete two characters from the left side of the character array in the buffer
- origKey.Delete(0, 2);
- }
- else if ( origKey.Length() == 1 )
- {
- // pick the left most byte from the key
- tmpByte = origKey.Left(1);
- // convert byte into binary format
- err = tmpByte.Val(byte, EHex);
-
- // check whether conversion to decimal went ok
- if (err != KErrNone)
- {
- // if there are problems, then leave the loop
- break;
- }
-
- // store the appended byte into the key variable
- key.Append(byte);
- // delete two characters from the left side of the character array in the buffer
- origKey.Delete(0, 1);
- }
- else {
- // leave the loop, no characters are left
- break;
- }
- }
- // store key value only if no errors occurred
- if (err == KErrNone)
- {
- iEAPBuffer[eapIndex]->iEAPSettings->iCertificates[certIndex].iSubjectKeyID.Copy(key);
- iEAPBuffer[eapIndex]->iEAPSettings->iCertificates[certIndex].iSubjectKeyIDPresent = ETrue;
- }
- else
- {
- // there were errors, let's leave the function and update status
- DBG_ARGS(_S16("CNSmlWLanAdapter::AddLeafObjectL - ErrorCode <%D>"), err );
- iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
- return;
- }
- }
- else if (lastUriSeg.Compare(KNSmlWLanFingerprint) == 0)
- {
- TInt retval = CnvUtfConverter::ConvertToUnicodeFromUtf8(
- iEAPBuffer[eapIndex]->iEAPSettings->iCertificates[certIndex].iThumbprint, aObject );
- if (retval == KErrNone)
- iEAPBuffer[eapIndex]->iEAPSettings->iCertificates[certIndex].iThumbprintPresent = ETrue;
- }
- // Save the status reference
- iEAPBuffer[eapIndex]->iStatusRefArray.AppendL(aStatusRef);
-
- return;
- }
-
- if (eapId == KErrNotFound)
- {
- err = iWlanSettings->WriteWlanSettings( *iSettings );
- }
-
- if( err != KErrNone )
- {
- DBG_ARGS(_S16("CNSmlWLanAdapter::AddLeafObjectL - ErrorCode <%D>"), err );
- iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
- return;
- }
-
- iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
-
- _DBG_FILE("CNSmlWLanAdapter::AddLeafObjectL(): end");
- }
-
-//-----------------------------------------------------------------------------
-// CNSmlWLanAdapter* CNSmlWLanAdapter::UpdateLeafObjectL( const TDesC& aURI,
-// const TDesC& aLUID, const TDesC8& aObject, const TDesC& aType,
-// const TInt aStatusRef )
-//-----------------------------------------------------------------------------
-void CNSmlWLanAdapter::UpdateLeafObjectL( const TDesC8& aURI,
- const TDesC8& aLUID,
- const TDesC8& aObject,
- const TDesC8& aType,
- const TInt aStatusRef )
- {
- _DBG_FILE("CNSmlWLanAdapter::UpdateLeafObjectL(): begin");
- DBG_ARGS8(_S8("WLanAdapter::UpdateLeafObjectL - <%S> <%S> <%S>"), &aURI, &aLUID, &aObject );
-
- AddLeafObjectL( aURI, aLUID, aObject, aType, aStatusRef );
-
- _DBG_FILE("CNSmlWLanAdapter::UpdateLeafObjectL(): end");
- }
-
-//------------------------------------------------------------------------------
-// CNSmlWLanAdapter::UpdateLeafObjectL( const TDesC8& aURI,
-// const TDesC8& aLUID, const TDesC8& aObject, const TDesC8& aType )
-//------------------------------------------------------------------------------
-
-void CNSmlWLanAdapter::UpdateLeafObjectL( const TDesC8& /*aURI*/,
- const TDesC8& /*aLUID*/,
- RWriteStream*& /*aStream*/,
- const TDesC8& /*aType*/,
- TInt aStatusRef )
- {
- _DBG_FILE("CNSmlWLanAdapter::UpdateLeafObjectL(): begin");
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EError);
- _DBG_FILE("CNSmlWLanAdapter::UpdateLeafObjectL(): end");
- }
-
-//-----------------------------------------------------------------------------
-// CNSmlWLanAdapter* CNSmlWLanAdapter::DeleteObjectL( const TDesC8& aURI,
-// const TDesC8& aLUID, const TInt aStatusRef )
-//-----------------------------------------------------------------------------
-void CNSmlWLanAdapter::DeleteObjectL( const TDesC8& aURI,
- const TDesC8& aLUID,
- const TInt aStatusRef )
- {
- _DBG_FILE("CNSmlWLanAdapter::DeleteObjectL(): begin");
- CSmlDmAdapter::TError status = CSmlDmAdapter::ENotFound;
-
- if( aLUID.Length() == 0 )
- {
- iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
-
- _DBG_FILE("CNSmlWLanAdapter::DeleteObjectL(): end");
- return;
- }
-
- TInt luid = GetIdFromLuid( aLUID );
-
-
- if( ( NumOfUriSegs( aURI ) < 6 )
- || (aURI.Match( _L8("AP/*/NAPDef/*/WLAN/*") ) != KErrNotFound && NumOfUriSegs( aURI ) == 6 ) )
- {
- if(luid==KErrNotFound)
- {
- return;
- }
- TInt ret = iWlanSettings->DeleteWlanSettings( luid );
-
- if( ret == KErrNone )
- {
- status = CSmlDmAdapter::EOk;
- }
- else
- {
- status = CSmlDmAdapter::EError;
- }
-
- }
- else if( aURI.Match( _L8("AP/*/NAPDef/*/WLAN/*/WEPKey") ) != KErrNotFound && NumOfUriSegs( aURI ) == 7 )
- {
- // Individual WLAN settings cannot be deleted and this case should never happen.
- // These are deleted through WLAN parent nodes.
- status = CSmlDmAdapter::EError;
- }
-
- else if( aURI.Match( _L8("AP/*/NAPDef/*/WLAN/*/SecondarySSID/*"))!= KErrNotFound && NumOfUriSegs( aURI ) == 8 )
- {
- _DBG_FILE("CNSmlWLanAdapter::DeleteObjectL(): matching SecondarySSID/*");
- //Check if the secondary SSID is present , if so delete that
- TUint32 secid = GetSecSSIDFromUriL(aURI);
- TInt retvalue( KErrNone );
- _DBG_FILE("CNSmlWLanAdapter::DeleteObjectL() before call to DeleteOneSecondarySSIDL ");
- TRAPD(ssidError, retvalue = iWlanSettings->DeleteOneSecondarySSIDL(luid,secid));
- _DBG_FILE("CNSmlWLanAdapter::DeleteObjectL() After call to DeleteOneSecondarySSIDL ");
- DBG_ARGS8(_S8("TRAP ERROR ssidError : Id = %d and retvalue eror = %d"), ssidError, retvalue);
-
- if(ssidError == KErrNone )
- {
- _DBG_FILE("CNSmlWLanAdapter::DeleteObjectL() SSID trap KERRONONE");
- if(retvalue == KErrNone)
- {
- _DBG_FILE("CNSmlWLanAdapter::DeleteObjectL() retvalue also KERRONONE, so its deleted");
- status = CSmlDmAdapter::EOk;
- }
-
- else if (retvalue == KErrNotFound)
- {
- status = CSmlDmAdapter::ENotFound;
- _DBG_FILE("CNSmlWLanAdapter::DeleteObjectL() retvalue KErrNotFound :-(");
- }
-
- else
- {
- _DBG_FILE("CNSmlWLanAdapter::DeleteObjectL() retvalue some error :-(");
- status = CSmlDmAdapter::EError;
- }
-
-
- }
- else
- {
- _DBG_FILE("CNSmlWLanAdapter::DeleteObjectL() trap error :-( ");
- status = CSmlDmAdapter::EError;
- }
-
- }
-
- else if( aURI.Match( _L8("AP/*/NAPDef/*/WLAN/*/*") ) != KErrNotFound && NumOfUriSegs( aURI ) == 7 )
- {
- // Individual WLAN settings cannot be deleted and this case should never happen.
- // These are deleted through WLAN parent nodes.
- status = CSmlDmAdapter::EError;
- }
-
- else if( aURI.Match( _L8("AP/*/NAPDef/*/WLAN/*/WEPKey/*") ) != KErrNotFound && NumOfUriSegs( aURI ) == 8 )
- {
- // Individual WEP keys cannot be deleted and this case should never happen.
- // These are deleted through WLAN parent nodes.
- status = CSmlDmAdapter::EError;
- }
-
- else if( aURI.Match( _L8("AP/*/NAPDef/*/WLAN/*/WEPKey/*/Data") ) != KErrNotFound && NumOfUriSegs( aURI ) == 9 )
- {
- // Individual WEP keys cannot be deleted and this case should never happen.
- // These are deleted through WLAN parent nodes.
- status = CSmlDmAdapter::EError;
- }
-
- else if( aURI.Match( _L8("AP/*/NAPDef/*/WLAN/*/EAP/*") ) != KErrNotFound && NumOfUriSegs( aURI ) == 8 )
- {
- // Individual EAP settings cannot be deleted and this case should never happen.
- // These are deleted through WLAN parent nodes.
- status = CSmlDmAdapter::EError;
- }
- else if( aURI.Match( _L8("AP/*/NAPDef/*/WLAN/*/EAP/*/*") ) != KErrNotFound && NumOfUriSegs( aURI ) == 9 )
- {
- // Individual EAP settings cannot be deleted and this case should never happen.
- // These are deleted through WLAN parent nodes.
- status = CSmlDmAdapter::EError;
- }
- else if (aURI.Match( _L8("AP/*/NAPDef/*/WLAN/*/EAP/*/Certificate/*") ) != KErrNotFound && NumOfUriSegs( aURI ) == 10)
- {
- // Individual certificates are not allowed to be deleted and this case should never happen
- // These are deleted through WLAN parent nodes.
- status = CSmlDmAdapter::EError;
-
- }
- else if (aURI.Match( _L8("AP/*/NAPDef/*/WLAN/*/EAP/*/Certificate/*/*") ) != KErrNotFound && NumOfUriSegs( aURI ) == 11)
- {
- // Individual certificate fields are not allowed to be deleted and this case should never happen.
- // These are deleted through WLAN parent nodes.
- status = CSmlDmAdapter::EError;
- }
-
- iCallBack->SetStatusL( aStatusRef, status );
-
- _DBG_FILE("CNSmlWLanAdapter::DeleteObjectL(): end");
- }
-
-//-----------------------------------------------------------------------------
-// CNSmlWLanAdapter* CNSmlWLanAdapter::FetchLeafObjectL( const TDesC8& aURI,
-// const TDesC8& aLUID, const TDesC8& aType,
-// const TInt aResultsRef, const TInt aStatusRef )
-// not used.
-//-----------------------------------------------------------------------------
-
-void CNSmlWLanAdapter::FetchLeafObjectSizeL( const TDesC8& /*aURI*/,
- const TDesC8& /*aLUID*/,
- const TDesC8& /*aType*/,
- TInt /*aResultsRef*/,
- TInt /*aStatusRef*/ )
- {
- _DBG_FILE("CNSmlWLanAdapter::FetchLeafObjectSizeL(): begin");
- _DBG_FILE("CNSmlWLanAdapter::FetchLeafObjectSizeL(): end");
- return;
-}
-
-
-//-----------------------------------------------------------------------------
-// CNSmlWLanAdapter* CNSmlWLanAdapter::FetchLeafObjectL( const TDesC8& aURI,
-// const TDesC8& aLUID, const TDesC8& aType,
-// const TInt aResultsRef, const TInt aStatusRef )
-//-----------------------------------------------------------------------------
-void CNSmlWLanAdapter::FetchLeafObjectL( const TDesC8& /*aURI*/,
- const TDesC8& /*aLUID*/,
- const TDesC8& /*aType*/,
- const TInt /*aResultsRef*/,
- const TInt /*aStatusRef*/ )
- {
- _DBG_FILE("CNSmlWLanAdapter::FetchLeafObjectL(): begin");
- _DBG_FILE("CNSmlWLanAdapter::FetchLeafObjectL(): end");
-
- }
-
-//-----------------------------------------------------------------------------
-// CNSmlWLanAdapter* CNSmlWLanAdapter::FetchLeafObjectL( const TDesC& aURI,
-// const TDesC& aLUID, const TDesC& aType,
-// const TInt aResultsRef, const TInt aStatusRef )
-//-----------------------------------------------------------------------------
-CSmlDmAdapter::TError CNSmlWLanAdapter::FetchLeafObjectL( const TDesC8& aURI,
- const TDesC8& aLUID,
- const TDesC8& aType,
- CBufBase& aObject )
- {
-
- _DBG_FILE("CNSmlWLanAdapter::FetchLeafObjectL(): begin");
- DBG_ARGS8(_S8("WLanAdapter::FetchLeafObjectL - <%S> <%S> <%S>"), &aURI, &aLUID, &aType);
-
- if(aLUID.Length()==0)
- {
-
- _DBG_FILE("CNSmlWLanAdapter::FetchLeafObjectL(): ENotFound");
- return CSmlDmAdapter::ENotFound;
- }
-
- CSmlDmAdapter::TError status = CSmlDmAdapter::ENotFound;
-
- // This luid is the service table id (Found from EAP node and parents)
- TInt luid;
- if ( aURI.Match( _L8("AP/*/NAPDef/*/WLAN/*/EAP/*")) != KErrNotFound )
- {
- luid = GetServiceIdFromUriL( aURI );
- }
- else
- {
- // The luid supplied is ok
- luid = GetIdFromLuid( aLUID );
- }
-
- TPtrC8 lastUriSeg = GetLastUriSeg( aURI );
-
- if(luid==KErrNotFound)
- {
- return;
- }
-
- TInt err = iWlanSettings->GetWlanSettings( luid, *iSettings );
-
- if( err == KErrNotFound )
- {
-
- _DBG_FILE("CNSmlWLanAdapter::FetchLeafObjectL(): ENotFound");
- return CSmlDmAdapter::ENotFound;
- }
-
- if( lastUriSeg.Compare( KNSmlWLanSsid ) == 0 )
- {
-
- if (aURI.Match( _L8("AP/*/NAPDef/*/WLAN/*/SecondarySSID/*")) != KErrNotFound)
- {
- RArray<TSecondarySSID> secondarySSIDs;
- CleanupClosePushL( secondarySSIDs );
- iWlanSettings->GetSecondarySSIDListL(luid, secondarySSIDs);
- TSecondarySSID ssid;
- ssid.Id = 0;
- TUint32 id = GetSecSSIDFromUriL(aURI);
- TInt count = secondarySSIDs.Count();
- for (TInt i=0;i<count;i++)
- {
- if (id == secondarySSIDs[i].Id)
- {
- ssid = secondarySSIDs[i];
- break;
- }
- }
- CleanupStack::PopAndDestroy(&secondarySSIDs);
- if (ssid.Id == 0)
- {
- status = CSmlDmAdapter::ENotFound;
- }
- else
- {
- HBufC* data = ssid.ScannedId.AllocLC();
- HBufC8* data8 = HBufC8::NewLC(data->Size());
- TPtr8 dataPtr8 = data8->Des();
- //FFS
- CnvUtfConverter::ConvertFromUnicodeToUtf8( dataPtr8, data->Des() );
-
- aObject.InsertL( 0, dataPtr8 );
- status = CSmlDmAdapter::EOk;
-
- CleanupStack::PopAndDestroy( 2 ); //data, data8
- }
- }
- else
- {
-
- HBufC* data = iSettings->SSID.AllocLC();
- HBufC8* data8 = HBufC8::NewLC(data->Size());
- TPtr8 dataPtr8 = data8->Des();
- //FFS
- CnvUtfConverter::ConvertFromUnicodeToUtf8( dataPtr8, data->Des() );
-
- aObject.InsertL( 0, dataPtr8 );
- status = CSmlDmAdapter::EOk;
-
- CleanupStack::PopAndDestroy( 2 ); //data, data8
-
- }
-
- }
-
- else if( lastUriSeg.Compare( KNSmlWLanUsedSsid ) == 0 )
- {
-
- if (aURI.Match( _L8("AP/*/NAPDef/*/WLAN/*/SecondarySSID/*")) != KErrNotFound)
- {
- RArray<TSecondarySSID> secondarySSIDs;
- CleanupClosePushL( secondarySSIDs );
- iWlanSettings->GetSecondarySSIDListL(luid, secondarySSIDs);
- TSecondarySSID ssid;
- ssid.Id = 0;
- TUint32 id = GetSecSSIDFromUriL(aURI);
- TInt count = secondarySSIDs.Count();
- for (TInt i=0;i<count;i++)
- {
- if (id == secondarySSIDs[i].Id)
- {
- ssid = secondarySSIDs[i];
- break;
- }
- }
- CleanupStack::PopAndDestroy(&secondarySSIDs);
- if (ssid.Id == 0)
- {
- status = CSmlDmAdapter::ENotFound;
- }
- else
- {
- HBufC* data = ssid.UsedId.AllocLC();
- HBufC8* data8 = HBufC8::NewLC(data->Size());
- TPtr8 dataPtr8 = data8->Des();
- //FFS
- CnvUtfConverter::ConvertFromUnicodeToUtf8( dataPtr8, data->Des() );
-
- aObject.InsertL( 0, dataPtr8 );
- status = CSmlDmAdapter::EOk;
-
- CleanupStack::PopAndDestroy( 2 ); //data, data8
- }
- }
- else
- {
-
- HBufC* data = iSettings->UsedSSID.AllocLC();
- HBufC8* data8 = HBufC8::NewLC(data->Size());
- TPtr8 dataPtr8 = data8->Des();
- //FFS
- CnvUtfConverter::ConvertFromUnicodeToUtf8( dataPtr8, data->Des() );
-
- aObject.InsertL( 0, dataPtr8 );
- status = CSmlDmAdapter::EOk;
-
- CleanupStack::PopAndDestroy( 2 ); //data, data8
-
- }
-
- }
-
- else if( lastUriSeg.Compare( KNSmlWLanSsidHidden ) == 0 )
- {
- if ( iSettings->ScanSSID == 1 )
- {
- aObject.InsertL( 0, _L8("True" ) );
- }
- else
- {
- aObject.InsertL( 0, _L8("False" ) );
- }
- status = CSmlDmAdapter::EOk;
- }
-
-
- else if( lastUriSeg.Compare( KNSmlWLanNetworkMode ) == 0 )
- {
- status = CSmlDmAdapter::EOk;
-
- switch( iSettings->ConnectionMode )
- {
- case 0:
- aObject.InsertL( 0, KNSmlWLanAdHoc8 );
- break;
- case 1:
- aObject.InsertL( 0, KNSmlWLanInfrastructure8 );
- break;
- default:
- status = CSmlDmAdapter::ENotFound;
- break;
- }
- }
- else if( lastUriSeg.Compare( KNSmlWLanSecurityMode ) == 0 )
- {
- status = CSmlDmAdapter::EOk;
-
- switch( iSettings->SecurityMode )
- {
- case EAllowUnsecure:
- aObject.InsertL( 0, KNSmlWLanAllowUnsecure8 );
- break;
- case EWep:
- aObject.InsertL( 0, KNSmlWLanWep8 );
- break;
- case EWlan8021x:
- aObject.InsertL( 0, KNSmlWLan8021x8 );
- break;
- case EWpa:
- aObject.InsertL( 0, KNSmlWLanWpa8 );
- break;
- case EWpa2:
- aObject.InsertL( 0, KNSmlWLanWpa28 );
- break;
- default:
- status = CSmlDmAdapter::ENotFound;
- break;
- }
- }
-
- else if( lastUriSeg.Compare( KNSmlWLanWpaPreSharedKey ) == 0 )
- {
- aObject.InsertL( 0, iSettings->WPAPreSharedKey );
- status = CSmlDmAdapter::EOk;
- }
-
- else if( lastUriSeg.Compare( KNSmlWLanUseWPAPSK ) == 0 )
- {
- if ( iSettings->UseWPAPSK == 1 )
- {
- aObject.InsertL( 0, _L8("True" ) );
- }
- else
- {
- aObject.InsertL( 0, _L8("False" ) );
- }
- status = CSmlDmAdapter::EOk;
- }
-
- else if( lastUriSeg.Compare( KNSmlWLanWepIndex ) == 0 )
- {
- HBufC8* data = IntToDes8LC( iSettings->WepIndex );
- aObject.InsertL( 0, data->Des() );
-
- CleanupStack::PopAndDestroy( data ); //data
- status = CSmlDmAdapter::EOk;
- }
-
- else if( lastUriSeg.Compare( KNSmlWLanEapList ) == 0 )
- {
- HBufC* data = iSettings->EapList.AllocLC();
- HBufC8* data8 = HBufC8::NewLC(data->Size());
- TPtr8 dataPtr8 = data8->Des();
- //FFS
- CnvUtfConverter::ConvertFromUnicodeToUtf8( dataPtr8, data->Des() );
-
- aObject.InsertL( 0, dataPtr8 );
- status = CSmlDmAdapter::EOk;
-
- CleanupStack::PopAndDestroy( 2 ); //data, data8
-
- }
-
- else if( lastUriSeg.Compare( KNSmlWLanAuthMode ) == 0 )
- {
- HBufC8* data = IntToDes8LC( iSettings->AuthMode );
- aObject.InsertL( 0, data->Des() );
-
- CleanupStack::PopAndDestroy( data ); //data
- status = CSmlDmAdapter::EOk;
- }
-
- else if( lastUriSeg.Compare( KNSmlWLanWepKeyData ) == 0 )
- {
- TInt wepKeyIndex = GetWepKeyIdFromLuid( aLUID );
- if(wepKeyIndex == KErrNotFound)
- {
- wepKeyIndex = GetWepKeyIdFromUri( aURI );
- TBuf8<80> addLUID; // AP/<x>/NapDef/<x>/WLAN/<x>/WEPKey/WKIdnnn
- addLUID.AppendNum( wepKeyIndex );
- addLUID.AppendNumFixedWidth( luid, EDecimal, 3 );
- DBG_ARGS8(_S8("WLanAdapter::Fetchleaf object, set mapping uri: <%S> to luid: <%S>"), &aURI, &addLUID );
- DBG_ARGS8(_S8("Parametrit - <%S> <%S>"), &aURI, &addLUID );
- iCallBack->SetMappingL(aURI, addLUID);
-
- }
- status = CSmlDmAdapter::EOk;
- switch( wepKeyIndex )
- {
- case 1:
- aObject.InsertL( 0, iSettings->WepKey1 );
- break;
- case 2:
- aObject.InsertL( 0, iSettings->WepKey2 );
- break;
- case 3:
- aObject.InsertL( 0, iSettings->WepKey3 );
- break;
- case 4:
- aObject.InsertL( 0, iSettings->WepKey4 );
- break;
- default:
- status = CSmlDmAdapter::EError;
- }
- }
- else if( lastUriSeg.Compare( KNSmlWLanWepKeyId ) == 0 )
- {
- TInt wepKeyIndex = GetWepKeyIdFromLuid( aLUID );
- if(wepKeyIndex == KErrNotFound)
- {
- wepKeyIndex = GetWepKeyIdFromUri( aURI );
- TBuf8<80> addLUID; // AP/<x>/NapDef/<x>/WLAN/<x>/WEPKey/WKIdnnn
- addLUID.AppendNum( wepKeyIndex );
- addLUID.AppendNumFixedWidth( luid, EDecimal, 3 );
- DBG_ARGS8(_S8("WLanAdapter::Fetchleaf object, set mapping uri: <%S> to luid: <%S>"), &aURI, &addLUID );
- DBG_ARGS8(_S8("Parametrit - <%S> <%S>"), &aURI, &addLUID );
- iCallBack->SetMappingL(aURI, addLUID);
- }
- if( wepKeyIndex > 0 )
- {
- HBufC8* data = IntToDes8LC( wepKeyIndex );
- aObject.InsertL( 0, data->Des() );
- CleanupStack::PopAndDestroy( data ); //data
- status = CSmlDmAdapter::EOk;
- }
- else
- {
- status = CSmlDmAdapter::EError;
- }
- }
-
- else if (aURI.Match( _L8("AP/*/NAPDef/*/WLAN/*/EAP/*")) != KErrNotFound)
- {
- TInt eapId = GetEAPIdFromUri(aURI);
-
- // Check if the id contains encapsulating type as well
- TInt encapsEapId = GetEncapsEAPIdFromUri( aURI );
- if ( encapsEapId == KErrNotFound )
- {
- encapsEapId = EAPSettings::EEapNone;
- }
-
- ResetEAPStructL();
-
- TInt err = iWlanSettings->GetEAPSettings( luid, eapId, encapsEapId, *iEAPSettings );
- if (err != KErrNone || iEAPSettings == NULL)
- {
- status = CSmlDmAdapter::EError;
- }
- else if (lastUriSeg.Compare( KNSmlWLanEapType ) == 0 )
- {
- aObject.InsertL(0, *IntToDes8LC((TInt)iEAPSettings->iEAPType));
- CleanupStack::PopAndDestroy(); // IntToDes8LC
- status = CSmlDmAdapter::EOk;
- }
- else if (lastUriSeg.Compare( KNSmlWLanUsername ) == 0 )
- {
- if (iEAPSettings->iUsernamePresent)
- {
- DesToBufferL(aObject, iEAPSettings->iUsername);
- }
- status = CSmlDmAdapter::EOk;
- }
- else if (lastUriSeg.Compare( KNSmlWLanPassword ) == 0 )
- {
- if (iEAPSettings->iPasswordPresent)
- {
- DesToBufferL(aObject, iEAPSettings->iPassword);
- }
- status = CSmlDmAdapter::EOk;
- }
- else if (lastUriSeg.Compare( KNSmlWLanRealm ) == 0 )
- {
- if (iEAPSettings->iRealmPresent)
- {
- DesToBufferL(aObject, iEAPSettings->iRealm);
- }
- status = CSmlDmAdapter::EOk;
- }
- else if (lastUriSeg.Compare( KNSmlWLanUsePseudonym ) == 0 )
- {
- if (iEAPSettings->iUsePseudonymsPresent && iEAPSettings->iUsePseudonyms)
- {
- aObject.InsertL(0, KTrue);
- }
- else
- {
- aObject.InsertL(0, KFalse);
- }
- status = CSmlDmAdapter::EOk;
- }
- else if (lastUriSeg.Compare( KNSmlWLanEncapsulation ) == 0 )
- {
- if ( encapsEapId == EAPSettings::EEapPeap )
- {
- aObject.InsertL( 0, KEAPPEAP);
- }
- else if ( encapsEapId == EAPSettings::EEapTtls )
- {
- aObject.InsertL( 0, KEAPTTLS);
- }
- status = CSmlDmAdapter::EOk;
- }
- else if (lastUriSeg.Compare( KNSmlWLanVerifyCertRealm ) == 0 )
- {
- if (iEAPSettings->iVerifyServerRealmPresent && iEAPSettings->iVerifyServerRealm)
- {
- aObject.InsertL(0, KTrue);
- }
- else
- {
- aObject.InsertL(0, KFalse);
- }
- status = CSmlDmAdapter::EOk;
- }
- else if (lastUriSeg.Compare( KNSmlWLanRequireClientAuthentication ) == 0 )
- {
- if (iEAPSettings->iRequireClientAuthenticationPresent && iEAPSettings->iRequireClientAuthentication)
- {
- aObject.InsertL(0, KTrue);
- }
- else
- {
- aObject.InsertL(0, KFalse);
- }
- status = CSmlDmAdapter::EOk;
- }
- else if (lastUriSeg.Compare( KNSmlWLanSessionValidityTime ) == 0 )
- {
- if (iEAPSettings->iSessionValidityTimePresent)
- {
- aObject.InsertL(0, *IntToDes8LC((TInt)iEAPSettings->iSessionValidityTime));
- CleanupStack::PopAndDestroy(); // IntToDes8LC
- }
- status = CSmlDmAdapter::EOk;
- }
- else if (lastUriSeg.Compare( KNSmlWLanCipherSuite ) == 0 )
- {
- FillCipherSuiteBufferL(aObject);
- status = CSmlDmAdapter::EOk;
- }
- else if (lastUriSeg.Compare( KNSmlWLanAllowPEAPv0 ) == 0 )
- {
- if (iEAPSettings->iPEAPVersionsPresent && iEAPSettings->iPEAPv0Allowed)
- {
- aObject.InsertL(0, KTrue);
- }
- else
- {
- aObject.InsertL(0, KFalse);
- }
- status = CSmlDmAdapter::EOk;
- }
- else if (lastUriSeg.Compare( KNSmlWLanAllowPEAPv1 ) == 0 )
- {
- if (iEAPSettings->iPEAPVersionsPresent && iEAPSettings->iPEAPv1Allowed)
- {
- aObject.InsertL(0, KTrue);
- }
- else
- {
- aObject.InsertL(0, KFalse);
- }
- status = CSmlDmAdapter::EOk;
- }
- else if (lastUriSeg.Compare( KNSmlWLanAllowPEAPv2 ) == 0 )
- {
- if (iEAPSettings->iPEAPVersionsPresent && iEAPSettings->iPEAPv2Allowed)
- {
- aObject.InsertL(0, KTrue);
- }
- else
- {
- aObject.InsertL(0, KFalse);
- }
- status = CSmlDmAdapter::EOk;
- }
-
-
-
-#ifdef FF_WLAN_EXTENSIONS
- else if (lastUriSeg.Compare(KNSmlWLanAuthProvMode) == 0)
- {
- if (iEAPSettings->iAuthProvModeAllowedPresent && iEAPSettings->iAuthProvModeAllowed)
- {
- aObject.InsertL(0, KTrue);
- }
- else
- {
- aObject.InsertL(0, KFalse);
- }
- status = CSmlDmAdapter::EOk;
- }
-
-
- else if (lastUriSeg.Compare(KNSmlWLanUnauthProvMode) == 0)
- {
- if (iEAPSettings->iUnauthProvModeAllowedPresent && iEAPSettings->iUnauthProvModeAllowed)
- {
- aObject.InsertL(0, KTrue);
- }
- else
- {
- aObject.InsertL(0, KFalse);
- }
- status = CSmlDmAdapter::EOk;
- }
-
- else if (lastUriSeg.Compare(KNSmlWLanPACGroupRef) == 0)
- {
- if (iEAPSettings->iPACGroupReferencePresent)
- {
- DesToBufferL(aObject, iEAPSettings->iPACGroupReference);
- }
- status = CSmlDmAdapter::EOk;
- }
-
- else if (lastUriSeg.Compare(KNSmlWLanWarnADHPNoPAC) == 0)
- {
- if (iEAPSettings->iWarnADHPNoPACPresent && iEAPSettings->iWarnADHPNoPAC)
- {
- aObject.InsertL(0, KTrue);
- }
- else
- {
- aObject.InsertL(0, KFalse);
- }
- status = CSmlDmAdapter::EOk;
- }
-
-
- else if (lastUriSeg.Compare(KNSmlWLanWarnADHPNoMatchPAC) == 0)
- {
- if (iEAPSettings->iWarnADHPNoMatchingPACPresent && iEAPSettings->iWarnADHPNoMatchingPAC)
- {
- aObject.InsertL(0, KTrue);
- }
- else
- {
- aObject.InsertL(0, KFalse);
- }
- status = CSmlDmAdapter::EOk;
- }
-
-
-
- else if (lastUriSeg.Compare(KNSmlWLanWarnNotDefaultSrv) == 0)
- {
- if (iEAPSettings->iWarnNotDefaultServerPresent && iEAPSettings->iWarnNotDefaultServer)
- {
- aObject.InsertL(0, KTrue);
- }
- else
- {
- aObject.InsertL(0, KFalse);
- }
- status = CSmlDmAdapter::EOk;
- }
-
-#endif
-
-
- else if (lastUriSeg.Compare( KNSmlWLanIssuerName ) == 0 )
- {
- status = CSmlDmAdapter::ENotFound;
-
- TInt certId = GetCertificateIdFromUri(aURI);
-
- if ( iEAPSettings->iCertificatesPresent
- && iEAPSettings->iCertificates.Count() >= certId
- && certId != KErrNotFound )
- {
- if (iEAPSettings->iCertificates[certId-1].iIssuerNamePresent)
- {
- aObject.InsertL(0, ConvertTo8LC(iEAPSettings->iCertificates[certId-1].iIssuerName));
- CleanupStack::PopAndDestroy(); // ConvertTo8LC
- status = CSmlDmAdapter::EOk;
- }
- }
- }
- else if (lastUriSeg.Compare( KNSmlWLanSubjectName ) == 0 )
- {
- status = CSmlDmAdapter::ENotFound;
-
- TInt certId = GetCertificateIdFromUri(aURI);
-
- if ( iEAPSettings->iCertificatesPresent
- && iEAPSettings->iCertificates.Count() >= certId
- && certId != KErrNotFound )
- {
- if (iEAPSettings->iCertificates[certId-1].iSubjectNamePresent)
- {
- aObject.InsertL(0, ConvertTo8LC(iEAPSettings->iCertificates[certId-1].iSubjectName));
- CleanupStack::PopAndDestroy(); // ConvertTo8LC
- status = CSmlDmAdapter::EOk;
- }
- }
- }
- else if (lastUriSeg.Compare( KNSmlWLanCertType ) == 0 )
- {
- status = CSmlDmAdapter::ENotFound;
-
- TInt certId = GetCertificateIdFromUri(aURI);
-
- if ( iEAPSettings->iCertificatesPresent
- && iEAPSettings->iCertificates.Count() >= certId
- && certId != KErrNotFound )
- {
- aObject.InsertL(0, *IntToDes8LC(iEAPSettings->iCertificates[certId-1].iCertType));
- CleanupStack::PopAndDestroy(); // IntToDes8LC
- status = CSmlDmAdapter::EOk;
- }
- }
- else if (lastUriSeg.Compare( KNSmlWLanSerialNumber ) == 0 )
- {
- status = CSmlDmAdapter::ENotFound;
-
- TInt certId = GetCertificateIdFromUri(aURI);
-
- if ( iEAPSettings->iCertificatesPresent
- && iEAPSettings->iCertificates.Count() >= certId
- && certId != KErrNotFound )
- {
- if (iEAPSettings->iCertificates[certId-1].iSerialNumberPresent)
- {
- aObject.InsertL(0, ConvertTo8LC(iEAPSettings->iCertificates[certId-1].iSerialNumber));
- CleanupStack::PopAndDestroy(); // ConvertTo8LC
- status = CSmlDmAdapter::EOk;
- }
- }
- }
- else if (lastUriSeg.Compare( KNSmlWLanSubjectKeyId ) == 0 )
- {
- status = CSmlDmAdapter::ENotFound;
-
- TInt certId = GetCertificateIdFromUri(aURI);
-
- if ( iEAPSettings->iCertificatesPresent
- && iEAPSettings->iCertificates.Count() >= certId
- && certId != KErrNotFound )
- {
- if (iEAPSettings->iCertificates[certId-1].iSubjectKeyIDPresent)
- {
- _DBG_FILE("CNSmlWLanAdapter::FetchLeafObject - Fetch subject key.");
- // check the lenght of the given subjectKeyId, if it is longer that 20, then we
- // update the status with error and will not go through the key
- if ((iEAPSettings->iCertificates[certId-1].iSubjectKeyID.Length()) > KKeyIdentifierLength)
- {
- status = CSmlDmAdapter::EError;
- }
- else
- {
- _DBG_FILE("CNSmlWLanAdapter::FetchLeafObject - key is under max lenght");
- TBuf8<KKeyIdentifierLength> binKey = iEAPSettings->iCertificates[certId-1].iSubjectKeyID;
- TBuf8<2> idBuf;
- TBuf8<KKeyIdentifierLength*2> key;
- TUint8 byte;
-
- // hexadecimal representation
- _LIT8(KFormat, "%02x");
-
- // looping the subject key through
- for (TInt i = 0; i < binKey.Length(); i++)
- {
- _DBG_FILE("CNSmlWLanAdapter::FetchLeafObject - Loop the key through.");
- // pick the next value from the buffer
- byte = binKey[i];
- // convert the value into hexadecimal format
- idBuf.Format(KFormat, byte);
- // store the hexa value into the key variable
- key.Append(idBuf);
- }
- // Copy the key to the aObject variable
- aObject.InsertL(0, key);
- status = CSmlDmAdapter::EOk;
- }
- }
- }
- }
- else if (lastUriSeg.Compare( KNSmlWLanFingerprint ) == 0 )
- {
- status = CSmlDmAdapter::ENotFound;
-
- TInt certId = GetCertificateIdFromUri(aURI);
-
- if ( iEAPSettings->iCertificatesPresent
- && iEAPSettings->iCertificates.Count() >= certId
- && certId != KErrNotFound )
- {
- if (iEAPSettings->iCertificates[certId-1].iThumbprintPresent)
- {
- aObject.InsertL(0, ConvertTo8LC(iEAPSettings->iCertificates[certId-1].iThumbprint));
- CleanupStack::PopAndDestroy(); // ConvertTo8LC
- status = CSmlDmAdapter::EOk;
- }
- }
- }
- else if (lastUriSeg.Compare( KNSmlWLanSerialNumber ) == 0 )
- {
- status = CSmlDmAdapter::ENotFound;
-
- TInt certId = GetCertificateIdFromUri(aURI);
-
- if ( iEAPSettings->iCertificatesPresent
- && iEAPSettings->iCertificates.Count() >= certId
- && certId != KErrNotFound )
- {
- if (iEAPSettings->iCertificates[certId-1].iSerialNumberPresent)
- {
- aObject.InsertL(0, ConvertTo8LC(iEAPSettings->iCertificates[certId-1].iSerialNumber));
- CleanupStack::PopAndDestroy(); // ConvertTo8LC
- status = CSmlDmAdapter::EOk;
- }
- }
- }
- }
-
-
- DBG_ARGS(_S16("CNSmlWLanAdapter::FetchLeafObjectL - Status <%D>"), status );
- _DBG_FILE("CNSmlWLanAdapter::FetchLeafObjectL(): end");
- return status;
- }
-
-//-----------------------------------------------------------------------------
-// CNSmlWLanAdapter* CNSmlWLanAdapter::ChildURIListL( const TDesC& aURI,
-// const TDesC& aLUID, const CArrayFix<TNSmlDmMappingInfo>& aPreviousURISegmentList,
-// const TInt aResultsRef, const TInt aStatusRef )
-//-----------------------------------------------------------------------------
-void CNSmlWLanAdapter::ChildURIListL( const TDesC8& aURI,
- const TDesC8& aLUID,
- const CArrayFix<TSmlDmMappingInfo>& aPreviousURISegmentList,
- const TInt aResultsRef,
- const TInt aStatusRef )
- {
- _DBG_FILE("CNSmlWLanAdapter::ChildURIListL(): begin");
- DBG_ARGS8(_S8("WLanAdapter::ChildURIListL - <%S> <%S>"), &aURI, &aLUID );
- CBufBase* currentUriSegmentList = CBufFlat::NewL( 128 );
- CleanupStack::PushL( currentUriSegmentList );
-
- TInt uriSegs = NumOfUriSegs( aURI );
- TInt luid = GetIdFromLuid( aLUID );
-
- //AP/<x>/NAPDef/<x>/
- if( aURI.Match( _L8("AP/*/NAPDef/*") ) != KErrNotFound && uriSegs==4 )
- {
- DBG_ARGS8(_S8("WLanAdapter::ChildURIListL->NAPDef - <%S> <%S>"), &aURI, &aLUID );
- if(luid==KErrNotFound)
- {
- return;
- }
- if( iWlanSettings->RecordExists( luid ) < 0 )
- {
- currentUriSegmentList->InsertL( 0, KNSmlNAPDefWlanNode );
- iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
- iCallBack->SetResultsL( aResultsRef, *currentUriSegmentList, KNullDesC8 );
- _DBG_FILE("CNSmlWLanAdapter::ChildURIListL(): status ok");
- }
- else
- {
- currentUriSegmentList->InsertL( 0, KNSmlNAPDefWlanNode );
- currentUriSegmentList->InsertL( currentUriSegmentList->Size(), KNSmlWLan );
- iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
- iCallBack->SetResultsL( aResultsRef, *currentUriSegmentList, KNullDesC8 );
- _DBG_FILE("CNSmlWLanAdapter::ChildURIListL(): status ok");
- }
- }
-
- //AP/<x>/NAPDef/<x>/WLAN
- else if (aURI.Match(_L8("AP/*/NAPDef/*/WLAN")) != KErrNotFound && uriSegs == 5 )
- {
- if( aPreviousURISegmentList.Count() > 0 )
- {
- HBufC8 *uriSeg = HBufC8::NewLC(KNSmlMaxURISegLen);
- TPtr8 uriSegPtr = uriSeg->Des();
- uriSegPtr = aPreviousURISegmentList.At(0).iURISeg;
- currentUriSegmentList->InsertL( currentUriSegmentList->Size(), uriSegPtr );
- CleanupStack::PopAndDestroy( uriSeg ); //uriSeg
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EOk);
- iCallBack->SetResultsL(aResultsRef,*currentUriSegmentList,KNullDesC8);
- _DBG_FILE("CNSmlWLanAdapter::ChildURIListL(): status ok");
- }
- else
- {
- if(luid==KErrNotFound)
- {
- return;
- }
- if( iWlanSettings->RecordExists( luid ) < 0)
- {
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::ENotFound);
- _DBG_FILE("CNSmlWLanAdapter::ChildURIListL(): status: Not found");
- }
- else
- {
- _LIT8(Kprev,"WLId");
- TBuf8<9> addNAME(Kprev); // WLId
- addNAME.AppendNumFixedWidth(luid,EDecimal,3);
-
- currentUriSegmentList->InsertL(currentUriSegmentList->Size(),addNAME);
- currentUriSegmentList->InsertL(currentUriSegmentList->Size(),_L8("/"));
-
- TBuf8<80> addURI; // AP/<x>/NapDef/<x>/WLAN/WLIdnnn , n=aLUID
- addURI.Append(aURI);
- addURI.Append(_L8("/WLId"));
- addURI.AppendNumFixedWidth(luid,EDecimal,3);
-
- TBuf8<16> addLUID;
- _LIT8(KFormat,"%d");
- addLUID.Format(KFormat,luid);
-
- // Also added to mapping
- DBG_ARGS8(_S8("WLanAdapter::ChildURIListL - mapping uri: <%S> to luid: <%S>"), &addURI, &addLUID );
- DBG_ARGS8(_S8("Parameters - <%S> <%S>"), &aURI, &aLUID );
- iCallBack->SetMappingL(addURI,addLUID);
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::EOk);
- iCallBack->SetResultsL(aResultsRef,*currentUriSegmentList,KNullDesC8);
- _DBG_FILE("CNSmlWLanAdapter::ChildURIListL(): status ok");
- }
- }
- }
-
- //AP/<x>/NAPDef/<x>/WLAN/<x>
- else if( aURI.Match( _L8("AP/*/NAPDef/*/WLAN/*") ) != KErrNotFound && uriSegs==6 )
- {
- DBG_ARGS8(_S8("WLanAdapter::ChildURIListL->NAPDef - <%S> <%S>"), &aURI, &aLUID );
- if(luid==KErrNotFound)
- {
- return;
- }
- if( iWlanSettings->RecordExists( luid ) < 0 )
- {
- iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
- _DBG_FILE("CNSmlWLanAdapter::ChildURIListL(): ENotFound end");
- }
- else
- {
- currentUriSegmentList->InsertL( currentUriSegmentList->Size(), KNSmlWLanListOfLeafs );
- iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
- iCallBack->SetResultsL( aResultsRef, *currentUriSegmentList, KNullDesC8 );
- _DBG_FILE("CNSmlWLanAdapter::ChildURIListL(): status ok");
- }
- }
-
-
- //AP/<x>/NAPDef/<x>/WLAN/<x>/WEPKey
- else if( aURI.Match( _L8("AP/*/NAPDef/*/WLAN/*/WEPKey") ) != KErrNotFound && uriSegs==7 )
- {
- DBG_ARGS8(_S8("WLanAdapter::ChildURIListL->WEPKey - <%S> <%S> <%D> <%D>"), &aURI, &aLUID, aResultsRef, aStatusRef );
-
- for( TInt i=0; i<4; i++ )
- {
- if( aPreviousURISegmentList.Count()>i )
- {
- HBufC8 *uriSeg = HBufC8::NewLC( KNSmlMaxURISegLen) ;
- TPtr8 uriSegPtr = uriSeg->Des();
- uriSegPtr = aPreviousURISegmentList.At(i).iURISeg;
-
- currentUriSegmentList->InsertL( currentUriSegmentList->Size(),uriSegPtr );
- currentUriSegmentList->InsertL( currentUriSegmentList->Size(),_L8( "/" ) );
- CleanupStack::PopAndDestroy(); //uriSeg
- }
- else
- {
- TBuf8<25> addNAME;
- addNAME.Append( _L8("WKId") );
- addNAME.AppendNum( i+1 );
- addNAME.Append( _L8("/") );
-
- currentUriSegmentList->InsertL( currentUriSegmentList->Size(),addNAME );
- }
- }
-
- iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
- iCallBack->SetResultsL( aResultsRef, *currentUriSegmentList, KNullDesC8 );
- _DBG_FILE("CNSmlWLanAdapter::ChildURIListL(): status ok");
- }
-
- //AP/<x>/NAPDef/<x>/WEPKey/<x>
- else if( aURI.Match( _L8("AP/*/NAPDef/*/WLAN/*/WEPKey/*") ) != KErrNotFound && uriSegs==8 )
- {
- DBG_ARGS8(_S8("WLanAdapter::ChildURIListL->WEPKey/* - <%S> <%D>"), &aURI, luid );
- if(luid==KErrNotFound)
- {
- return;
- }
- if( iWlanSettings->RecordExists( luid ) < 0 )
- {
- //wlan settings not found for aLUID
- iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
- _DBG_FILE("CNSmlWLanAdapter::ChildURIListL(): ENotFound end");
- }
- else
- {
- TInt wepKeyId = GetWepKeyIdFromLuid( aLUID );
- if( wepKeyId == KErrNotFound )
- {
- wepKeyId = GetWepKeyIdFromUri( aURI );
-
- TBuf8<80> addLUID; // AP/<x>/NapDef/<x>/WLAN/<x>/WEPKey/WKIdnnn
- addLUID.AppendNum( wepKeyId );
- addLUID.AppendNumFixedWidth( luid, EDecimal, 3 );
-
- DBG_ARGS8(_S8("WLanAdapter::ChildURIListL - mapping uri: <%S> to luid: <%S>"), &aURI, &addLUID );
- DBG_ARGS8(_S8("Parametrit - <%S> <%S>"), &aURI, &addLUID );
- iCallBack->SetMappingL(aURI, addLUID);
- }
-
- currentUriSegmentList->InsertL( currentUriSegmentList->Size(), KNSmlWLanListOfWepKeyLeafs );
- iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
- iCallBack->SetResultsL( aResultsRef, *currentUriSegmentList, KNullDesC8 );
- _DBG_FILE("CNSmlWLanAdapter::ChildURIListL(): status ok");
- }
- }
-
- //AP/<x>/NAPDef/<x>/WLAN/<x>/SecondarySSID/
- else if( aURI.Match( _L8("AP/*/NAPDef/*/WLAN/*/SecondarySSID") ) != KErrNotFound && uriSegs==7 )
- {
- DBG_ARGS8(_S8("WLanAdapter::ChildURIListL->EAP - <%S> <%S> <%D> <%D>"), &aURI, &aLUID, aResultsRef, aStatusRef );
- if( aPreviousURISegmentList.Count() > 0 )
- {
- HBufC8 *uriSeg = HBufC8::NewLC(KNSmlMaxURISegLen);
- TPtr8 uriSegPtr = uriSeg->Des();
- uriSegPtr = aPreviousURISegmentList.At(0).iURISeg;
- currentUriSegmentList->InsertL( currentUriSegmentList->Size(), uriSegPtr );
- CleanupStack::PopAndDestroy( uriSeg ); //uriSeg
- iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
- iCallBack->SetResultsL( aResultsRef, *currentUriSegmentList, KNullDesC8 );
- _DBG_FILE("CNSmlWLanAdapter::ChildURIListL(): status ok");
- }
- else
- {
- if(luid==KErrNotFound)
- {
- return;
- }
- if( iWlanSettings->RecordExists( luid ) < 0)
- {
- iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::ENotFound);
- _DBG_FILE("CNSmlWLanAdapter::ChildURIListL(): status: Not found");
- }
- else
- {
- RArray<TSecondarySSID> secondarySSIDs;
- CleanupClosePushL( secondarySSIDs );
- iWlanSettings->GetSecondarySSIDListL(luid, secondarySSIDs);
- TInt count = secondarySSIDs.Count();
- _LIT8(KPrefixSSID,"SecSSID");
- TBuf8<5> addNAME; // number
- for (TInt i=0;i<count;i++)
- {
- if (i != 0) // Don't do it in first iteration, but with all the following
- {
- currentUriSegmentList->InsertL(currentUriSegmentList->Size(),_L8("/"));
- }
- currentUriSegmentList->InsertL(currentUriSegmentList->Size(),KPrefixSSID);
- addNAME.Zero();
- addNAME.AppendNumFixedWidth(secondarySSIDs[i].Id ,EDecimal,3);
- currentUriSegmentList->InsertL(currentUriSegmentList->Size(),addNAME);
- }
- CleanupStack::PopAndDestroy(&secondarySSIDs);
- iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
- iCallBack->SetResultsL( aResultsRef, *currentUriSegmentList, KNullDesC8 );
- _DBG_FILE("CNSmlWLanAdapter::ChildURIListL(): status ok");
- }
- }
- }
- //AP/<x>/NAPDef/<x>/WLAN/<x>/SecondarySSID/*
- else if( aURI.Match( _L8("AP/*/NAPDef/*/WLAN/*/SecondarySSID/*") ) != KErrNotFound && uriSegs==8 )
- {
- DBG_ARGS8(_S8("WLanAdapter::ChildURIListL->SecondarySSID/* - <%S> <%D>"), &aURI, luid );
- if(luid==KErrNotFound)
- {
- return;
- }
- if( iWlanSettings->RecordExists( luid ) < 0 )
- {
- //wlan settings not found for aLUID
- iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
- _DBG_FILE("CNSmlWLanAdapter::ChildURIListL(): ENotFound end");
- }
- else
- {
- currentUriSegmentList->InsertL( currentUriSegmentList->Size(), KNSmlWLanListOfSecondaryLeafs );
- iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
- iCallBack->SetResultsL( aResultsRef, *currentUriSegmentList, KNullDesC8 );
- _DBG_FILE("CNSmlWLanAdapter::ChildURIListL(): status ok");
- }
- }
- //AP/<x>/NAPDef/<x>/WLAN/<x>/EAP
- else if( aURI.Match( _L8("AP/*/NAPDef/*/WLAN/*/EAP") ) != KErrNotFound && uriSegs==7 )
- {
- DBG_ARGS8(_S8("WLanAdapter::ChildURIListL->EAP - <%S> <%S> <%D> <%D>"), &aURI, &aLUID, aResultsRef, aStatusRef );
-
- // Need to get the service id from parent node
- luid = GetServiceIdFromUriL ( aURI );
-
- if(luid==KErrNotFound)
- {
- return;
- }
- if( iWlanSettings->RecordExists( luid ) < 0 )
- {
- //wlan settings not found for aLUID
- iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
- _DBG_FILE("CNSmlWLanAdapter::ChildURIListL(): ENotFound end");
- }
- else
- {
- iWlanSettings->InstalledEAPsL(*currentUriSegmentList);
-
- iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
- iCallBack->SetResultsL( aResultsRef, *currentUriSegmentList, KNullDesC8 );
- _DBG_FILE("CNSmlWLanAdapter::ChildURIListL(): status ok");
- }
- }
- //AP/<x>/NAPDef/<x>/WLAN/<x>/EAP/<x>
- else if( aURI.Match( _L8("AP/*/NAPDef/*/WLAN/*/EAP/*") ) != KErrNotFound && uriSegs==8 )
- {
- // Need to get the service id from parent node
- luid = GetServiceIdFromUriL ( aURI );
-
- DBG_ARGS8(_S8("WLanAdapter::ChildURIListL->EAP/* - <%S> <%D>"), &aURI, luid );
- if( iWlanSettings->RecordExists( luid ) < 0 )
- {
- //wlan settings not found for aLUID
- iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
- _DBG_FILE("CNSmlWLanAdapter::ChildURIListL(): ENotFound end");
- }
- else
- {
- currentUriSegmentList->InsertL( currentUriSegmentList->Size(), KNSmlWLanListOfEAPLeafs );
- iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
- iCallBack->SetResultsL( aResultsRef, *currentUriSegmentList, KNullDesC8 );
- _DBG_FILE("CNSmlWLanAdapter::ChildURIListL(): status ok");
- }
- }
- //AP/<x>/NAPDef/<x>/WLAN/<x>/EAP/<x>/Certificate
- else if( aURI.Match( _L8("AP/*/NAPDef/*/WLAN/*/EAP/*/Certificate") ) != KErrNotFound && uriSegs== 9 )
- {
- luid = GetServiceIdFromUriL ( aURI );
-
- DBG_ARGS8(_S8("WLanAdapter::ChildURIListL->Certificate - <%S> <%D>"), &aURI, luid );
- if( iWlanSettings->RecordExists( luid ) < 0 )
- {
- //wlan settings not found for aLUID
- iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
- _DBG_FILE("CNSmlWLanAdapter::ChildURIListL(): ENotFound end");
- }
- else
- {
- TInt eapId = GetEAPIdFromUri( aURI );
-
- // Check if the id contains encapsulating type as well
- TInt encapsEapId = GetEncapsEAPIdFromUri( aURI );
- if ( encapsEapId == KErrNotFound )
- {
- encapsEapId = EAPSettings::EEapNone;
- }
-
- ResetEAPStructL();
- TInt err = iWlanSettings->GetEAPSettings(luid, eapId, encapsEapId, *iEAPSettings);
- if (err != KErrNone || !iEAPSettings->iCertificatesPresent)
- {
- iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
- _DBG_FILE("CNSmlWLanAdapter::ChildURIListL(): ENotFound end");
- }
- else
- {
- TInt certCount = iEAPSettings->iCertificates.Count();
- HBufC8* pBuf = HBufC8::NewLC(KNSmlMaxURISegLen);
- TPtr8 ptrCerts = pBuf->Des();
- for (TInt i=0; i<certCount; i++)
- {
- ptrCerts.Append(_L8("CertId"));
- ptrCerts.AppendNumFixedWidth( i+1, EDecimal, 3);
- ptrCerts.Append( _L8("/") );
- }
-
- currentUriSegmentList->InsertL( currentUriSegmentList->Size(), ptrCerts );
- CleanupStack::PopAndDestroy(pBuf); // pBuf
- iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
- iCallBack->SetResultsL( aResultsRef, *currentUriSegmentList, KNullDesC8 );
- _DBG_FILE("CNSmlWLanAdapter::ChildURIListL(): status ok");
- }
- }
- }
- //AP/<x>/NAPDef/<x>/WLAN/<x>/EAP/<x>/Certificate/<x>
- else if( aURI.Match( _L8("AP/*/NAPDef/*/WLAN/*/EAP/*/Certificate/*") ) != KErrNotFound && uriSegs==10 )
- {
- DBG_ARGS8(_S8("WLanAdapter::ChildURIListL->EAP/* - <%S> <%D>"), &aURI, luid );
- TInt eapId = GetEAPIdFromUri(aURI);
- // Check if the id contains encapsulating type as well
- TInt encapsEapId = GetEncapsEAPIdFromUri( aURI );
- if ( encapsEapId == KErrNotFound )
- {
- encapsEapId = EAPSettings::EEapNone;
- }
-
- ResetEAPStructL();
- TInt err = iWlanSettings->GetEAPSettings(luid, eapId, encapsEapId, *iEAPSettings);
- if (err != KErrNone || !iEAPSettings->iCertificatesPresent)
- {
- iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
- _DBG_FILE("CNSmlWLanAdapter::ChildURIListL(): ENotFound end");
- }
- else
- {
- currentUriSegmentList->InsertL( currentUriSegmentList->Size(), KNSmlWLanListOfCertificateLeafs );
- iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
- iCallBack->SetResultsL( aResultsRef, *currentUriSegmentList, KNullDesC8 );
- _DBG_FILE("CNSmlWLanAdapter::ChildURIListL(): status ok");
- }
- }
-
-
- CleanupStack::PopAndDestroy( currentUriSegmentList );
-
- _DBG_FILE("CNSmlWLanAdapter::ChildURIListL(): end");
- }
-
-//-----------------------------------------------------------------------------
-// void CNSmlWLanAdapter::AddNodeObjectL( const TDesC& aURI, const TDesC& aParentLUID,
-// const TInt aStatusRef )
-//-----------------------------------------------------------------------------
-void CNSmlWLanAdapter::AddNodeObjectL( const TDesC8& aURI,
- const TDesC8& aParentLUID,
- const TInt aStatusRef )
- {
- _DBG_FILE("CNSmlWLanAdapter::AddNodeObjectL(): begin");
- DBG_ARGS8(_S8("WLanAdapter::AddNodeObjectL - uri: <%S> to aParentLuid: <%S>"),
- &aURI, &aParentLUID );
-
- TInt uriSegs = NumOfUriSegs( aURI );
- if( (aURI.Match (_L8( "AP/*/NAPDef/*/WLAN") ) != KErrNotFound && uriSegs == 5 )
- || (aURI.Match (_L8( "AP/*/NAPDef/*/WLAN/*/EAP") ) != KErrNotFound && uriSegs == 7 )
- || (aURI.Match (_L8( "AP/*/NAPDef/*/WLAN/*/EAP/*/Certificate") ) != KErrNotFound && uriSegs == 9 ) )
- {
- iCallBack->SetMappingL( aURI, aParentLUID );
- iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
- return;
- }
-
- //Add new wlan settings
- else if( aURI.Match( _L8("AP/*/NAPDef/*/WLAN/*") ) !=
- KErrNotFound && NumOfUriSegs( aURI ) == 6 )
- {
- iSettings->Id = 0;
- iSettings->ServiceID = DesToInt( aParentLUID );
- iSettings->ConnectionMode = 0;
- iSettings->SSID = TPtrC(KNSmlWLanDefaultSSID);
- iSettings->UsedSSID = _L("");
- iSettings->ScanSSID = 0;
- iSettings->WepKey1 = _L8("");
- iSettings->WepKey2 = _L8("");
- iSettings->WepKey3 = _L8("");
- iSettings->WepKey4 = _L8("");
- iSettings->WepIndex = 0;
- iSettings->SecurityMode = EAllowUnsecure;
- iSettings->WPAPreSharedKey = _L8("");
- iSettings->UseWPAPSK = 0;
- iSettings->EapList = _L("");
- iSettings->AuthMode = 0;
-
- TInt err = iWlanSettings->WriteWlanSettings( *iSettings );
- if( err != KErrNone )
- {
- iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError );
- return;
- }
-
- DBG_ARGS8(_S8("WLanAdapter::AddNodeObjectL - mapping uri: <%S> to luid: <%S>"), &aURI, &aParentLUID );
- iCallBack->SetMappingL( aURI, aParentLUID );
- iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
- }
-
- else if( aURI.Match( _L8("AP/*/NAPDef/*/WLAN/*/WEPKey") ) != KErrNotFound && uriSegs == 7 )
- {
- if( iWlanSettings->RecordExists( DesToInt( aParentLUID ) ) )
- iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk );
- else
- iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ENotFound );
- return;
- }
-
- //Add wep key for existing record
- else if( aURI.Match( _L8("AP/*/NAPDef/*/WLAN/*/WEPKey/*") ) != KErrNotFound && uriSegs == 8 )
- {
- for( TInt i=0; i<iBuffer->Count(); i++ )
- {
- if( iBuffer->At(i).iUri->Match( aURI ) != KErrNotFound )
- {
- iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EAlreadyExists );
-
- _DBG_FILE("CNSmlWLanAdapter::AddNodeObjectL(): EAlreadyExists");
- return;
- }
- }
- DBG_ARGS8(_S8("WLanAdapter::Bufferiin - uri: <%S> to aParentLuid: <%S>"), &aURI, &aParentLUID );
-
- TNSmlWepKeyBufferElement newNode;
- newNode.iUri = aURI.AllocLC();
- newNode.iData = 0;
- newNode.iWepKeyId = 0;
- //newNode.iUseWPAPSK = 0;
- newNode.iIdStatusRef = 0;
- newNode.iDataStatusRef = 0;
- newNode.iLengthStatusRef = 0;
- newNode.iNodeStatusRef = aStatusRef;
- newNode.iExecuted = EFalse;
- newNode.iDataSet = EFalse;
- newNode.iLuid = DesToInt( aParentLUID );
- iBuffer->AppendL( newNode );
-
- CleanupStack::Pop( ); //newNode.iUri
-
- _DBG_FILE("CNSmlWLanAdapter::AddNodeObjectL(): end");
- return;
- }
-
- else if( aURI.Match( _L8("AP/*/NAPDef/*/WLAN/*/SecondarySSID/*") ) !=
- KErrNotFound && NumOfUriSegs( aURI ) == 8 )
- {
- /*
- TSecondarySSID ssid;
- ssid.ScannedId = KNullDesC;
- ssid.UsedId = KNullDesC;
- TInt luid = GetIdFromLuid( aParentLUID );
- TInt retval = iWlanSettings->WriteSecondarySSIDL(luid, ssid, ETrue);*/
-
- TNSmlSecondarySSIDBufferElement *newSecNode = new (ELeave) TNSmlSecondarySSIDBufferElement;;
- newSecNode->iUri = aURI.AllocLC();
- newSecNode->ScannedId = KNullDesC;
- newSecNode->UsedId = KNullDesC;
- newSecNode->iExecuted = EFalse;
- newSecNode->wlanLuid = GetIdFromLuid( aParentLUID );
- iSecondaryBuffer.AppendL( newSecNode );
- CleanupStack::Pop( ); //newNode.iUri
- return;
- }
-
- else if( aURI.Match( _L8("AP/*/NAPDef/*/WLAN/*/EAP/*") ) !=
- KErrNotFound && NumOfUriSegs( aURI ) == 8 )
- {
- TInt eapTypeId = GetEAPIdFromUri(aURI);
- TInt encapsEapId = GetEncapsEAPIdFromUri( aURI );
- if ( encapsEapId == KErrNotFound )
- {
- encapsEapId = EAPSettings::EEapNone;
- }
-
-
- TInt WLANServiceId = GetServiceIdFromUriL ( aURI );
-
- if ( WLANServiceId == KErrNotFound )
- {
- _DBG_FILE("CNSmlWLanAdapter::AddNodeObjectL(): Could not find WLAN service ID from URI.");
- User::Leave( KErrNotFound );
- }
-
- TInt i(0);
- // Check if the buffer for this EAP already exists
- for ( i = 0 ; i < iEAPBuffer.Count() ; i++ )
- {
- if ( eapTypeId == iEAPBuffer[i]->iEAPSettings->iEAPType
- && encapsEapId == iEAPBuffer[i]->iEncapsulatingEAPId )
- {
- // The correct buffer was found.
- _DBG_FILE("CNSmlWLanAdapter::AddNodeObjectL(): Found existing buffer.");
- break;
- }
- }
- // buffer did not exist. Update the existing buffer
- if ( i == iEAPBuffer.Count() )
- {
- TNSmlEAPBufferElement* buffer = new (ELeave) TNSmlEAPBufferElement;
- CleanupStack::PushL( buffer );
-
- buffer->iEAPSettings = new (ELeave) EAPSettings;
- CleanupStack::PushL( buffer->iEAPSettings );
-
- buffer->iEAPSettings->iEAPType = static_cast<EAPSettings::TEapType> (eapTypeId);
- buffer->iStatusRefArray.AppendL(aStatusRef);
- buffer->iWLANServiceId = WLANServiceId;
- buffer->iEncapsulatingEAPId = static_cast<EAPSettings::TEapType>(encapsEapId);
- iEAPBuffer.AppendL(buffer);
-
- CleanupStack::Pop( buffer->iEAPSettings );
- CleanupStack::Pop( buffer );
- }
-
- // Set the mapping luid to be the index to the iEAPBuffer
- TBuf8<2> luid;
- luid.Num( iEAPBuffer.Count() - 1 );
- DBG_ARGS8(_S8("WLanAdapter::AddNodeObjectL - mapping uri: <%S> to luid: <%S>"), &aURI, &luid );
- iCallBack->SetMappingL( aURI, luid);
-
- }
- else if( aURI.Match( _L8("AP/*/NAPDef/*/WLAN/*/EAP/*/Certificate/*") ) !=
- KErrNotFound && NumOfUriSegs( aURI ) == 10 )
- {
- TPtrC8 ptr = NSmlDmURI::ParentURI( aURI );
- TPtrC8 ptr2 = NSmlDmURI::ParentURI( ptr );
-
- HBufC8* eapLuidBuf = iCallBack->GetLuidAllocL( ptr2 );
-
- TInt index = GetIdFromLuid( *eapLuidBuf );
-
- delete eapLuidBuf;
-
- CertificateEntry entry;
- iEAPBuffer[index]->iEAPSettings->iCertificates.AppendL(entry);
- iEAPBuffer[index]->iEAPSettings->iCertificatesPresent = ETrue;
- iEAPBuffer[index]->iStatusRefArray.AppendL(aStatusRef);
-
- TBuf8<2> luid;
- luid.Num( iEAPBuffer[index]->iEAPSettings->iCertificates.Count() - 1 );
-
- DBG_ARGS8(_S8("WLanAdapter::AddNodeObjectL - mapping uri: <%S> to luid: <%S>"), &aURI, &luid );
- iCallBack->SetMappingL( aURI, luid);
- }
- _DBG_FILE("CNSmlWLanAdapter::AddNodeObjectL(): end");
- }
-
-//------------------------------------------------------------------------------
-// CNSmlWLanAdapter::ExecuteCommandL
-// not supported
-//------------------------------------------------------------------------------
-void CNSmlWLanAdapter::ExecuteCommandL( const TDesC8& /*aURI*/,
- const TDesC8& /*aLUID*/,
- const TDesC8& /*aArgument*/,
- const TDesC8& /*aType*/,
- TInt aStatusRef )
- {
- _DBG_FILE("CNSmlWLanAdapter::ExecuteCommandL(): begin");
- iCallBack->SetStatusL(aStatusRef, CSmlDmAdapter::EError);
- _DBG_FILE("CNSmlWLanAdapter::ExecuteCommandL(): end");
- }
-
-//------------------------------------------------------------------------------
-// CNSmlWLanAdapter::ExecuteCommandL ( .. RWriteStream ..)
-// not supported
-//------------------------------------------------------------------------------
-void CNSmlWLanAdapter::ExecuteCommandL( const TDesC8& /*aURI*/,
- const TDesC8& /*aLUID*/,
- RWriteStream*& /*aStream*/,
- const TDesC8& /*aType*/,
- TInt aStatusref )
- {
- _DBG_FILE("CNSmlWLanAdapter::ExecuteCommandL(): begin");
- iCallBack->SetStatusL(aStatusref, CSmlDmAdapter::EError);
- _DBG_FILE("CNSmlWLanAdapter::ExecuteCommandL(): end");
- }
-
-//------------------------------------------------------------------------------
-// CNSmlWLanAdapter::CopyCommandL
-// not supported
-//------------------------------------------------------------------------------
-void CNSmlWLanAdapter::CopyCommandL( const TDesC8& /*aTargetURI*/,
- const TDesC8& /*aTargetLUID*/,
- const TDesC8& /* aSourceURI*/,
- const TDesC8& /*aSourceLUID*/,
- const TDesC8& /*aType*/,
- TInt aStatusRef )
- {
- _DBG_FILE("CNSmlWLanAdapter::CopyCommandL(): begin");
- iCallBack->SetStatusL(aStatusRef, CSmlDmAdapter::EError);
- _DBG_FILE("CNSmlWLanAdapter::CopyCommandL(): end");
- }
-//------------------------------------------------------------------------------
-// CNSmlWLanAdapter::StartAtomicL
-// not supported
-//------------------------------------------------------------------------------
-void CNSmlWLanAdapter::StartAtomicL()
- {
- _DBG_FILE("CNSmlWLanAdapter::StartAtomicL(): begin");
- _DBG_FILE("CNSmlWLanAdapter::StartAtomicL(): end");
- }
-
-//------------------------------------------------------------------------------
-// CNSmlWLanAdapter::CommitAtomicL
-// not supported
-//------------------------------------------------------------------------------
-void CNSmlWLanAdapter::CommitAtomicL()
- {
- _DBG_FILE("CNSmlWLanAdapter::CommitAtomicL(): begin");
- _DBG_FILE("CNSmlWLanAdapter::CommitAtomicL(): end");
- }
-
-//------------------------------------------------------------------------------
-// CNSmlWLanAdapter::RollbackAtomicL
-// returns EError
-//------------------------------------------------------------------------------
-void CNSmlWLanAdapter::RollbackAtomicL()
- {
- _DBG_FILE("CNSmlWLanAdapter::RollbackAtomicL(): begin");
- _DBG_FILE("CNSmlWLanAdapter::RollbackAtomicL(): end");
- }
-
-//------------------------------------------------------------------------------
-// CNSmlWLanAdapter::StreamingSupport
-// returns EFalse
-//------------------------------------------------------------------------------
-
-TBool CNSmlWLanAdapter::StreamingSupport( TInt& /*aItemSize*/ )
- {
- _DBG_FILE("CNSmlWLanAdapter::StreamingSupport(): begin");
- _DBG_FILE("CNSmlWLanAdapter::StreamingSupport(): end");
- return EFalse;
- }
-
-//------------------------------------------------------------------------------
-// CNSmlWLanAdapter::StreamCommittedL
-// not used in this adapter
-//------------------------------------------------------------------------------
-
-void CNSmlWLanAdapter::StreamCommittedL()
- {
- _DBG_FILE("CNSmlWLanAdapter::StreamCommittedL(): begin");
- _DBG_FILE("CNSmlWLanAdapter::StreamCommittedL(): end");
- }
-
-//-----------------------------------------------------------------------------
-// CNSmlWLanAdapter* CNSmlWLanAdapter::CompleteOutstandingCmdsL( )
-//-----------------------------------------------------------------------------
-void CNSmlWLanAdapter::CompleteOutstandingCmdsL( )
- {
- _DBG_FILE("CNSmlWLanAdapter::CompleteOutStandingCmdsL(): begin");
-
- ExecuteBufferL( ETrue );
-
- _DBG_FILE("CNSmlWLanAdapter::CompleteOutStandingCmdsL(): end");
- }
-
-// ------------------------------------------------------------------------------------------------
-// TPtrC8 CNSmlWLanAdapter::GetLastUriSeg(const TDesC8& aURI)
-// Returns only the last uri segemnt
-// ------------------------------------------------------------------------------------------------
-TPtrC8 CNSmlWLanAdapter::GetLastUriSeg( const TDesC8& aURI )
- {
- _DBG_FILE("CNSmlWLanAdapter::GetLastUriSeg(): begin");
-
- TInt i;
- for( i = aURI.Length()-1; i >= 0; i-- )
- {
- if( aURI[i] == '/' )
- {
- break;
- }
- }
-
- if( i==0 )
- {
- _DBG_FILE("CNSmlWLanAdapter::GetLastUriSeg(): end");
- return aURI;
- }
- else
- {
- _DBG_FILE("CNSmlWLanAdapter::GetLastUriSeg(): end");
- return aURI.Mid( i+1 );
- }
- }
-
-
-// ------------------------------------------------------------------------------------------------
-// TPtrC16 CNSmlWLanAdapter::RemoveLastURISeg(const TDesC8& aURI)
-// returns parent uri, i.e. removes last uri segment
-// ------------------------------------------------------------------------------------------------
-TPtrC8 CNSmlWLanAdapter::RemoveLastUriSeg(const TDesC8& aURI)
- {
- _DBG_FILE("CNSmlWLanAdapter::RemoveLastUriSeg(): begin");
-
- TInt i;
- for( i = aURI.Length()-1; i >= 0; i-- )
- {
- if(aURI[i] == '/')
- {
- break;
- }
- }
-
- _DBG_FILE("CNSmlWLanAdapter::RemoveLastUriSeg(): end");
- return aURI.Left(i);
- }
-
-
-// ------------------------------------------------------------------------------------------------
-// TInt CNSmlWLanAdapter::DesToInt( const TDesC8& aLuid )
-// Returns aLuid as integer value
-// ------------------------------------------------------------------------------------------------
-TInt CNSmlWLanAdapter::DesToInt( const TDesC8& aLuid )
- {
- _DBG_FILE("CNSmlWLanAdapter::DesToInt(): begin");
-
- TLex8 lex(aLuid);
- TInt value = 0;
- lex.Val( value );
-
- DBG_ARGS8(_S8("WLanAdapter::DesToInt() - Des: <%S> Int: <%D>"), &aLuid, value );
- _DBG_FILE("CNSmlWLanAdapter::DesToInt(): end");
- return value;
- }
-
-
-// ------------------------------------------------------------------------------------------------
-// HBufC* CNSmlWLanAdapter::IntToDesLC(const TInt aLuid)
-// ------------------------------------------------------------------------------------------------
-HBufC* CNSmlWLanAdapter::IntToDesLC(const TInt aLuid)
- {
- _DBG_FILE("CNSmlWLanAdapter::IntToDesLC(): begin");
-
- HBufC* buf = HBufC::NewLC(10);
- TPtr ptrBuf = buf->Des();
- ptrBuf.Num(aLuid);
-
- _DBG_FILE("CNSmlWLanAdapter::IntToDesLC(): end");
- return buf;
- }
-
-// ------------------------------------------------------------------------------------------------
-// HBufC8* CNSmlWLanAdapter::IntToDes8LC(const TInt aLuid)
-// ------------------------------------------------------------------------------------------------
-HBufC8* CNSmlWLanAdapter::IntToDes8LC(const TInt aLuid)
- {
- _DBG_FILE("CNSmlWLanAdapter::IntToDes8LC(): begin");
-
- HBufC8* buf = HBufC8::NewLC(10);
- TPtr8 ptrBuf = buf->Des();
- ptrBuf.Num(aLuid);
-
- _DBG_FILE("CNSmlWLanAdapter::IntToDes8LC(): end");
- return buf;
- }
-
-// ------------------------------------------------------------------------------------------------
-// TInt CNSmlWLanAdapter::NumOfUriSegs( const TDesC8& aUri )
-// Return count of URI segments of aUri
-// ------------------------------------------------------------------------------------------------
-TInt CNSmlWLanAdapter::NumOfUriSegs( const TDesC8& aUri )
- {
- _DBG_FILE("CNSmlWLanAdapter::NumOfUriSegs(): begin");
-
- TInt count = 1;
- for( TInt i=0; i<aUri.Length(); i++ )
- {
- if( aUri[i] == '/' )
- count ++;
- }
-
- _DBG_FILE("CNSmlWLanAdapter::NumOfUriSegs(): end");
- return count;
- }
-
-
-// -------------------------------------------------------------------------------------
-// CNSmlWLanAdapter::FillNodeInfoL()
-// Fills the node info in ddf structure
-// -------------------------------------------------------------------------------------
-void CNSmlWLanAdapter::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);
- }
-
-
-
-// ------------------------------------------------------------------------------------------------
-// TInt CNSmlWLanAdapter::GetEAPIdFromUri( const TDesC8& aUri )
-// Return WLan ID number from URI
-// ------------------------------------------------------------------------------------------------
-TInt CNSmlWLanAdapter::GetEAPIdFromUri( const TDesC8& aUri )
- {
- DBG_ARGS8(_S8("WLanAdapter::GetEAPIdFromUri - <%S>"), &aUri );
-
- if( aUri.Match( _L8("AP/*/NAPDef/*/WLAN/*/EAP/*") ) == KErrNotFound )
- {
- return KErrNotFound;
- }
-
- TInt begin = aUri.Find(_L8("/EAPId")) + 6;
- if ( begin == KErrNotFound )
- {
- return KErrNotFound;
- }
-
- TInt eapId = DesToInt( aUri.Mid( begin, 3 ) );
-
- return eapId;
- }
-
-// ------------------------------------------------------------------------------------------------
-// TInt CNSmlWLanAdapter::GetEncapsEAPIdFromUri( const TDesC8& aUri )
-// Return WLan ID number from URI
-// ------------------------------------------------------------------------------------------------
-TInt CNSmlWLanAdapter::GetEncapsEAPIdFromUri( const TDesC8& aUri )
- {
- DBG_ARGS8(_S8("WLanAdapter::GetEncapsEAPIdFromUri - <%S>"), &aUri );
-
- if( aUri.Match( _L8("AP/*/NAPDef/*/WLAN/*/EAP/EAPId*-*") ) == KErrNotFound )
- {
- return KErrNotFound;
- }
-
- TInt begin = aUri.Find(_L8("/EAPId")) + 9;
- if ( aUri[begin] != '-' )
- {
- return KErrNotFound;
- }
- begin++;
- TInt end = -1;
- TInt count;
-
- for( count=0; count+begin<aUri.Length(); count++ )
- {
- if( aUri[begin+count]=='/' )
- {
- end = begin+count;
- break;
- }
- else if( aUri.Length() == begin+count+1 )
- {
- count++;
- end = begin+count;
- break;
- }
- }
-
- if( end > 0 )
- {
- TInt eapId = DesToInt( aUri.Mid( begin, count ) );
- return eapId;
- }
- return KErrNotFound;
- }
-
-// ------------------------------------------------------------------------------------------------
-// TInt CNSmlWLanAdapter::GetEAPIdFromUriL( const TDesC8& aUri )
-// Return WLan ID number from URI
-// ------------------------------------------------------------------------------------------------
-TInt CNSmlWLanAdapter::GetServiceIdFromUriL( const TDesC8& aURI)
- {
- DBG_ARGS8(_S8("WLanAdapter::GetServiceIdFromUriL - <%S>"), &aURI );
-
- if( aURI.Match( _L8("AP/*/NAPDef/*/WLAN/*/EAP*") ) == KErrNotFound )
- {
- return KErrNotFound;
- }
-
- TInt end = aURI.Find(_L8("/EAP")) + 4;
-
- if( end > 0 )
- {
-
- HBufC8* luidBuf = iCallBack->GetLuidAllocL( aURI.Left( end ) );
-
- TInt serviceId = GetIdFromLuid( *luidBuf );
-
- delete luidBuf;
-
- return serviceId;
- }
- return KErrNotFound;
- }
-
-// ------------------------------------------------------------------------------------------------
-// TInt CNSmlWLanAdapter::GetSecSSIDFromUriL( const TDesC8& aUri )
-// Return WLan ID number from URI
-// ------------------------------------------------------------------------------------------------
-TUint32 CNSmlWLanAdapter::GetSecSSIDFromUriL( const TDesC8& aUri )
- {
- DBG_ARGS8(_S8("WLanAdapter::GetSecSSIDFromUriL - <%S>"), &aUri );
-
- if( aUri.Match( _L8("AP/*/NAPDef/*/WLAN/*/SecondarySSID/*") ) == KErrNotFound )
- {
- User::Leave(KErrNotFound);
- }
- _LIT8(KSSIDString, "/SecondarySSID/SecSSID");
- TInt begin = aUri.Find(KSSIDString) + KSSIDString().Length();
- TInt end = -1;
- TInt count;
-
- for( count=0; count+begin<aUri.Length(); count++ )
- {
- if( aUri[begin+count]=='/' )
- {
- end = begin+count;
- break;
- }
- else if( aUri.Length() == begin+count+1 )
- {
- count++;
- end = begin+count;
- break;
- }
- }
-
- if( end > 0 )
- {
- TLex8 lex(aUri.Mid( begin, count ));
- TUint32 value = 0;
- lex.Val( value, EDecimal );
- return value;
- }
- else
- {
- User::Leave(KErrNotFound);
- }
- return 0;
- }
-
-
-// ------------------------------------------------------------------------------------------------
-// TInt CNSmlWLanAdapter::GetEAPIdFromUri( const TDesC8& aUri )
-// Return WLan ID number from URI
-// ------------------------------------------------------------------------------------------------
-TInt CNSmlWLanAdapter::GetCertificateIdFromUri( const TDesC8& aUri )
- {
- DBG_ARGS8(_S8("WLanAdapter::GetCertificateIdFromUri - <%S>"), &aUri );
-
- if( aUri.Match( _L8("AP/*/NAPDef/*/WLAN/*/EAP/*/Certificate/*") ) == KErrNotFound )
- {
- return KErrNotFound;
- }
- _LIT8(KCertString, "/Certificate/CertId");
-
- TInt begin = aUri.Find(KCertString);
- if ( begin == KErrNotFound )
- {
- return KErrNotFound;
- }
-
- begin += KCertString().Length();
-
- TInt end = -1;
- TInt count;
-
- for( count=0; count+begin<aUri.Length(); count++ )
- {
- if( aUri[begin+count]=='/' )
- {
- end = begin+count;
- break;
- }
- else if( aUri.Length() == begin+count+1 )
- {
- count++;
- end = begin+count;
- break;
- }
- }
-
- if( end > 0 )
- {
- TInt certId = DesToInt( aUri.Mid( begin, count ) );
- return certId;
- }
- return KErrNotFound;
- }
-
-
-// ------------------------------------------------------------------------------------------------
-// TInt CNSmlWLanAdapter::GetWepKeyIdFromUri( const TDesC8& aUri )
-// Returns WepKey ID number from URI
-// ------------------------------------------------------------------------------------------------
-TInt CNSmlWLanAdapter::GetWepKeyIdFromUri( const TDesC8& aUri )
- {
- if( aUri.Match( _L8("AP/*/NAPDef/*/WLAN/*/WEPKey/*") ) == KErrNotFound )
- {
- return KErrNotFound;
- }
-
- TInt begin = aUri.Find(_L8("WEPKey/WKId")) + 11;
- TInt end = -1;
- TInt count;
-
- for( count=0; count<aUri.Length()-11; count++ )
- {
- if( aUri[begin+count]=='/' )
- {
- end = begin+count;
- break;
- }
-
- else if( aUri.Length() == begin+count+1 )
- {
- count ++;
- end = begin+count;
- break;
- }
- }
-
- if( end > 0 )
- {
- TInt wlanId = DesToInt( aUri.Mid( begin, count ) );
- return wlanId;
- }
- return KErrNotFound;
- }
-
-// ------------------------------------------------------------------------------------------------
-// TInt CNSmlWLanAdapter::GetWepKeyIdFromLuid( const TDesC8& aLuid )
-// Return id number of wepkey
-// ------------------------------------------------------------------------------------------------
-TInt CNSmlWLanAdapter::GetWepKeyIdFromLuid( const TDesC8& aLuid )
- {
- TLex8 iLex( aLuid );
-
- TInt luid;
- if (iLex.Val( luid ) == KErrNone)
- {
- if( luid > 1000 )
- {
- return luid / 1000;
- }
- else
- {
- return KErrNotFound;
- }
- }
- else
- {
- return KErrNotFound;
- }
- }
-
-// ------------------------------------------------------------------------------------------------
-// TInt CNSmlWLanAdapter::GetIdFromLuid( const TDesC& aLuid )
-// Return luid of wlan node
-// ------------------------------------------------------------------------------------------------
-TInt CNSmlWLanAdapter::GetIdFromLuid( const TDesC8& aLuid )
- {
- TLex8 iLex( aLuid );
-
- TInt luid;
- if( iLex.Val(luid) == KErrNone )
- {
- if( luid < 1000 )
- {
- return luid;
- }
- else
- {
- TInt tmp = luid / 1000 * 1000; //First number of luid > 1000
- return luid - tmp;
- }
- }
- else
- {
- return KErrNotFound;
- }
- }
-
-// ------------------------------------------------------------------------------------------------
-// void CNSmlWLanAdapter::ExecuteBufferL( TBool aFinal )
-// Executes buffered commands from iBuffer
-// ------------------------------------------------------------------------------------------------
-void CNSmlWLanAdapter::ExecuteBufferL( TBool aFinal )
- {
- for( TInt index=0; index<iBuffer->Count(); index++ )
- {
- DBG_ARGS8(_S8("WLanAdapter::ExecuteBuffer(): Buf count: <%D> index: <%D>"), iBuffer->Count(), index );
-
- if( iBuffer->At(index).iExecuted )
- {
- continue;
- }
- TInt err = 0;
-
- TInt luid = iBuffer->At(index).iLuid;
- TInt wepKeyId = iBuffer->At(index).iWepKeyId;
- if( ! wepKeyId && ! aFinal )
- {
- continue;
- }
-
- if( wepKeyId > 4 ||
- ! wepKeyId && aFinal )
- {
- if( iBuffer->At(index).iDataStatusRef )
- iCallBack->SetStatusL( iBuffer->At(index).iDataStatusRef, CSmlDmAdapter::EError );
- if( iBuffer->At(index).iNodeStatusRef )
- iCallBack->SetStatusL( iBuffer->At(index).iNodeStatusRef, CSmlDmAdapter::EError );
- if( iBuffer->At(index).iLengthStatusRef )
- iCallBack->SetStatusL( iBuffer->At(index).iLengthStatusRef, CSmlDmAdapter::EError );
-
- iBuffer->At(index).iIdStatusRef = 0;
- iBuffer->At(index).iNodeStatusRef = 0;
- iBuffer->At(index).iDataStatusRef = 0;
- iBuffer->At(index).iLengthStatusRef = 0;
- iBuffer->At(index).iExecuted = ETrue;
-
- continue;
- }
-
- if( iBuffer->At(index).iDataSet &&
- iBuffer->At(index).iWepKeyId > 0 )
- {
- iWlanSettings->GetWlanSettings( luid, *iSettings );
-
- switch( wepKeyId )
- {
- case 1:
- iSettings->WepKey1 = iBuffer->At(index).iData->Des();
- break;
- case 2:
- iSettings->WepKey2 = iBuffer->At(index).iData->Des();
- break;
- case 3:
- iSettings->WepKey3 = iBuffer->At(index).iData->Des();
- break;
- case 4:
- iSettings->WepKey4 = iBuffer->At(index).iData->Des();
- break;
- default:
- continue;
- }
-
- err = iWlanSettings->WriteWlanSettings( *iSettings );
- if( err == KErrNone )
- {
- iCallBack->SetStatusL( iBuffer->At(index).iDataStatusRef, CSmlDmAdapter::EOk );
- }
- else
- {
- iCallBack->SetStatusL( iBuffer->At(index).iDataStatusRef, CSmlDmAdapter::EError );
- }
-
- iBuffer->At(index).iDataStatusRef = 0;
- }
-
- TBuf8<5> addLUID;
- addLUID.AppendNum( wepKeyId );
- addLUID.AppendNumFixedWidth( luid, EDecimal, 3 );
-
- iCallBack->SetMappingL( iBuffer->At( index).iUri->Des(), addLUID );
- if( iBuffer->At(index).iIdStatusRef )
- iCallBack->SetStatusL( iBuffer->At(index).iIdStatusRef, CSmlDmAdapter::EOk );
- if( iBuffer->At(index).iNodeStatusRef )
- iCallBack->SetStatusL( iBuffer->At(index).iNodeStatusRef, CSmlDmAdapter::EOk );
- if( iBuffer->At(index).iLengthStatusRef )
- iCallBack->SetStatusL( iBuffer->At(index).iLengthStatusRef, CSmlDmAdapter::EOk );
-
- iBuffer->At(index).iIdStatusRef = 0;
- iBuffer->At(index).iNodeStatusRef = 0;
- iBuffer->At(index).iLengthStatusRef = 0;
- iBuffer->At(index).iExecuted = ETrue;
- }
-
- //Clean executed command from buffer
- for( TInt i=0; i<iBuffer->Count(); i++ )
- {
- if( iBuffer->At(i).iExecuted )
- {
- if( iBuffer->At(i).iUri )
- {
- delete iBuffer->At(i).iUri;
- iBuffer->At(i).iUri = 0;
- }
- if( iBuffer->At(i).iData )
- {
- delete iBuffer->At(i).iData;
- iBuffer->At(i).iData = 0;
- }
- iBuffer->Delete(i);
- iBuffer->Compress();
- }
- }
-// Secondary SSID Buffer
- for( TInt index=0; index<iSecondaryBuffer.Count(); index++ )
- {
- DBG_ARGS8(_S8("WLanAdapter::ExecuteBuffer(): Buf count: <%D> index: <%D>"), iBuffer->Count(), index );
-
- if( iSecondaryBuffer[index]->iExecuted )
- {
- continue;
- }
-
- TSecondarySSID ssid;
- ssid.ScannedId = iSecondaryBuffer[index]->ScannedId;
- ssid.UsedId = iSecondaryBuffer[index]->UsedId;
-
- DBG_ARGS8(_S8("CWlanadaptes::Execute Buffer - WLAN_SEC_SSID_SCANNED_SSID uri: <%S> ad WLAN_SEC_SSID_USED_SSID : <%S>"), &iSecondaryBuffer[index]->ScannedId, &iSecondaryBuffer[index]->UsedId );
-
- TInt retval = iWlanSettings->WriteSecondarySSIDL(iSecondaryBuffer[index]->wlanLuid, ssid, ETrue);
- iSecondaryBuffer[index]->iExecuted=ETrue;
-
- }
- // EAP settings
- for( TInt i = 0 ; i < iEAPBuffer.Count() ; i++ )
- {
- // Check if this method has encapsulated methods
- for ( TInt j = 0; j < iEAPBuffer.Count() ; j++ )
- {
- if ( iEAPBuffer[i]->iEAPSettings->iEAPType == iEAPBuffer[j]->iEncapsulatingEAPId )
- {
- // j is encapsulated inside i
- iEAPBuffer[i]->iEAPSettings->iEncapsulatedEAPTypes.Append( iEAPBuffer[j]->iEAPSettings->iEAPType );
- iEAPBuffer[i]->iEAPSettings->iEncapsulatedEAPTypesPresent = ETrue;
- }
- }
-
- TRAPD( err, iWlanSettings->GetEAPInterfaceL(iEAPBuffer[i]->iWLANServiceId,
- iEAPBuffer[i]->iEncapsulatingEAPId,
- static_cast<TInt> (iEAPBuffer[i]->iEAPSettings->iEAPType ) ) );
- if ( err == KErrNone )
- {
- err = iWlanSettings->WriteEAPSettings( *iEAPBuffer[i]->iEAPSettings );
- }
-
- MSmlDmAdapter::TError status;
- switch ( err )
- {
- case KErrNotFound:
- {
- status = CSmlDmAdapter::ENotFound;
- break;
- }
- case KErrNone:
- {
- status = CSmlDmAdapter::EOk;
- break;
- }
- default:
- {
- status = CSmlDmAdapter::EError;
- }
- }
-
- for ( TInt j = 0; j < iEAPBuffer[i]->iStatusRefArray.Count() ; j++)
- {
- iCallBack->SetStatusL( iEAPBuffer[i]->iStatusRefArray[j], status );
- }
- }
- for ( TInt i = 0 ; i < iEAPBuffer.Count() ; i++ )
- {
- iEAPBuffer[i]->iStatusRefArray.Close();
- iEAPBuffer[i]->iEAPSettings->iEncapsulatedEAPTypes.Close();
- iEAPBuffer[i]->iEAPSettings->iCipherSuites.Close();
- delete iEAPBuffer[i]->iEAPSettings;
- iEAPBuffer[i]->iEAPSettings = NULL;
- }
- iEAPBuffer.ResetAndDestroy();
- }
-
-
-//=============================================
-// CNSmlWLanAdapter::ConvertTo8LC()
-// Converts string value to 8-bit
-//
-//=============================================
-TDesC8& CNSmlWLanAdapter::ConvertTo8LC( const TDesC& aSource )
- {
- HBufC8* buf = HBufC8::NewLC( aSource.Length()*2);
- TPtr8 bufPtr = buf->Des();
- CnvUtfConverter::ConvertFromUnicodeToUtf8( bufPtr, aSource );
-
- return *buf;
- }
-
-//=============================================
-// CNSmlWLanAdapter::ConvertTo16LC()
-// Converts string value to 16-bit
-//
-//=============================================
-TDesC16& CNSmlWLanAdapter::ConvertTo16LC( const TDesC8& aSource)
- {
- HBufC16* buf16 = HBufC16::NewLC( aSource.Length() );
- TPtr bufPtr16 = buf16->Des();
-
- CnvUtfConverter::ConvertToUnicodeFromUtf8(bufPtr16, aSource);
-
- return *buf16;
- }
-
-void CNSmlWLanAdapter::ResetEAPStructL()
- {
- DeleteEAPStructL();
- iEAPSettings = new (ELeave) EAPSettings;
- }
-
-
-void CNSmlWLanAdapter::DeleteEAPStructL()
- {
- if (iEAPSettings != NULL)
- {
- if (iEAPSettings->iCertificatesPresent)
- {
- iEAPSettings->iCertificates.Reset();
- }
- iEAPSettings->iEncapsulatedEAPTypes.Close();
- iEAPSettings->iCipherSuites.Close();
-
- delete iEAPSettings;
- iEAPSettings = NULL;
- }
- }
-
-
-void CNSmlWLanAdapter::DesToBufferL(CBufBase& aTo, const TDesC& aFrom)
- {
- aTo.InsertL( 0, ConvertTo8LC(aFrom) );
- CleanupStack::PopAndDestroy(); // ConvertTo8LC
- }
-
-void CNSmlWLanAdapter::FillCipherSuiteBufferL(CBufBase& aBuffer)
- {
- if (iEAPSettings == NULL || !iEAPSettings->iCipherSuitesPresent)
- {
- return;
- }
- // 0 5 10 15 20 25 30 35
- _LIT8(KPlus, "+");
- aBuffer.InsertL(0,KSuitesDefault);
- TInt count = iEAPSettings->iCipherSuites.Count();
- for (TInt i=count-1; i>=0;--i)
- {
- switch (iEAPSettings->iCipherSuites[i])
- {
- case RSA_3DES_SHA:
- {
- aBuffer.Write(0, KPlus);
- break;
- }
- case DHE_RSA_3DES_SHA:
- {
- aBuffer.Write(5, KPlus);
- break;
- }
- case DHE_DSS_3DES_SHA:
- {
- aBuffer.Write(10, KPlus);
- break;
- }
- case RSA_AES_SHA:
- {
- aBuffer.Write(15, KPlus);
- break;
- }
- case DHE_RSA_AES_SHA:
- {
- aBuffer.Write(20, KPlus);
- break;
- }
- case DHE_DSS_AES_SHA:
- {
- aBuffer.Write(25, KPlus);
- break;
- }
- case RSA_RC4_MD5:
- {
- aBuffer.Write(30, KPlus);
- break;
- }
- case RSA_RC4_SHA:
- {
- aBuffer.Write(35, KPlus);
- break;
- }
- default:
- {
- break;
- }
-
- }
- }
-
- }
-
-
-void CNSmlWLanAdapter::FillCipherSuitesL(const TDesC8& aObject, const TInt aLuid)
- {
- if (iEAPBuffer[aLuid] == NULL)
- {
- return;
- }
- iEAPBuffer[aLuid]->iEAPSettings->iCipherSuites.Reset();
- iEAPBuffer[aLuid]->iEAPSettings->iCipherSuitesPresent = EFalse; // init to EFalse
-
- TChar plus('+');
-
- TInt length = aObject.Length();
- for (TInt i=0; i+3<length;i+=5)
- {
- if (aObject[i] == plus)
- {
- TLex8 lex(aObject.Mid(i+1, 3));
- TUint suite;
- lex.Val(suite);
- iEAPBuffer[aLuid]->iEAPSettings->iCipherSuites.Append(suite);
- iEAPBuffer[aLuid]->iEAPSettings->iCipherSuitesPresent = ETrue;
- }
- }
- }
-
-void CNSmlWLanAdapter::ConvertEAPStringToIds( const TDesC8& aEAPString, TDes8& aExpandedId, EAPSettings::TEapType& aId)
- {
- if ( aEAPString == KEAPSIM )
- {
- aExpandedId.Copy( KEapSimTypeId, KExpandedEAPIdLength );
- aId = EAPSettings::EEapSim;
- }
- else if( aEAPString == KEAPAKA )
- {
- aExpandedId.Copy( KEapAkaTypeId, KExpandedEAPIdLength );
- aId = EAPSettings::EEapAka;
- }
- else if( aEAPString == KEAPTLS )
- {
- aExpandedId.Copy( KEapTlsTypeId, KExpandedEAPIdLength );
- aId = EAPSettings::EEapTls;
- }
- else if( aEAPString == KEAPPEAP )
- {
- aExpandedId.Copy( KEapPeapTypeId, KExpandedEAPIdLength );
- aId = EAPSettings::EEapPeap;
- }
- else if( aEAPString == KEAPTTLS )
- {
- aExpandedId.Copy( KEapTtlsTypeId, KExpandedEAPIdLength );
- aId = EAPSettings::EEapTtls;
- }
- else if( aEAPString == KEAPLEAP )
- {
- aExpandedId.Copy( KEapLeapTypeId, KExpandedEAPIdLength );
- aId = EAPSettings::EEapLeap;
- }
- else if( aEAPString == KEAPMSCHAPV2 )
- {
- aExpandedId.Copy( KEapMschapv2TypeId, KExpandedEAPIdLength );
- aId = EAPSettings::EEapMschapv2;
- }
- else if( aEAPString == KMSCHAPV2 )
- {
- aExpandedId.Copy( KMschapv2TypeId, KExpandedEAPIdLength );
- aId = EAPSettings::EPlainMschapv2;
- }
- else if( aEAPString == KEAPGTC )
- {
- aExpandedId.Copy( KEapGtcTypeId, KExpandedEAPIdLength );
- aId = EAPSettings::EEapGtc;
- }
- else if( aEAPString == KEAPFAST )
- {
- aExpandedId.Copy( KEapFastTypeId, KExpandedEAPIdLength );
- aId = EAPSettings::EEapFast;
- }
- else if( aEAPString == KEAPTTLSPAP )
- {
- aExpandedId.Copy( KTtlspapTypeId, KExpandedEAPIdLength );
- aId = static_cast<EAPSettings::TEapType>(98);
- }
- else
- {
- aExpandedId.Copy( KEapNoneId, KExpandedEAPIdLength );
- aId = EAPSettings::EEapNone;
- }
-
- }
-
-
-// end of file