/*
* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
* which accompanies this distribution, and is available
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
* Contributors:
*
* Description: Wlan Adapter commsDB handler
*
*/
#ifndef __NSMLWLANSETTINGS_H__
#define __NSMLWLANSETTINGS_H__
#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
#include <commsdat_partner.h>
#endif
#include <commdb.h>
#include <commsdattypesv1_1.h>
#include <EapType.h>
const TInt KMaxPSKLength = 63;
const TInt KMinPSKLength = 8;
// ==========================================================================
// Class forwards
// ==========================================================================
//
class CWlanSettings;
class TWlanSettings
{
public:
TBuf<KMaxTextLength> Name;
TUint32 Id;
TUint32 ServiceID;
TUint32 ConnectionMode; // Infrastructure / adhoc
TBuf<KMaxTextLength> SSID;
TBuf8<KMaxTextLength> WepKey1;
TBuf8<KMaxTextLength> WepKey2;
TBuf8<KMaxTextLength> WepKey3;
TBuf8<KMaxTextLength> WepKey4;
TUint32 WepIndex;
TUint32 SecurityMode; // SecurityMode (Allow unsecure, wep, 802.1xs, wpa) enum EWlanSecurityMode
TUint32 WPAMode; // enum EWpaMode
TUint32 UseWPAPSK; // CR ID: TMVI-5Y49AS
TBuf8<KMaxPSKLength> WPAPreSharedKey;
TUint32 AuthMode;
TBuf<KMaxTextLength> UsedSSID;
TUint32 ScanSSID;
TBuf<KMaxLongTextLength> EapList;
TBool SecondarySSIDsExisting;
// TBuf<KMaxTextLength> SecondarySSID;
// TBuf<KMaxTextLength> UsedSecondarySSID;
};
class TSecondarySSID
{
public:
TUint32 Id;
TBuf<KMaxTextLength> ScannedId;
TBuf<KMaxTextLength> UsedId;
};
// -----------------------------------------------------------------------------------------------
// Defines
// -----------------------------------------------------------------------------------------------
class CWlanSettings : public CBase
{
public:
static CWlanSettings* NewL( CCommsDatabase& aDatabase );
void ConstructL( );
~CWlanSettings( );
TInt GetWlanSettings( TUint32 aLuid, TWlanSettings& aWlanSettings );
TInt DeleteWlanSettings( TUint32 aLuid );
TInt WriteWlanSettings( TWlanSettings& aWlanSettings );
void ConnectToDatabaseL( );
TInt RecordExists( TUint32 aLuid );
TInt PerformLockWLANTablesL(TBool aProtect);
TBool CheckEnforcementL();
TBool CheckAPEnforcementL();
TBool iWLANRelock;
TInt GetEAPSettings( const TInt aId, const TInt aEapType, const TInt aTunnelingType, EAPSettings& aEapSettings );
TInt DeleteEAPSettings( TInt aId , TInt aEapType );
void DeleteWlanEapSettingsL( TInt aWlanId );
TInt DeleteSecondarySSIDsL( TUint32 aWLANId );
TInt DeleteOneSecondarySSIDL( TUint32 aWLANId , TUint32 asecId);
TInt WriteEAPSettings( EAPSettings& aEapSettings);
TInt WriteSecondarySSIDL( TUint32 aWlanID, TSecondarySSID& aSettings, TBool aNew );
void GetSecondarySSIDListL(TUint32 aLuid, RArray<TSecondarySSID>& aSecondarySSIDs);
void GetEAPInterfaceL(const TInt aId, const TInt aTunnelingType, const TInt aType);
TInt InstalledEAPsL(CBufBase& aEAPList);
private:
CWlanSettings( CCommsDatabase& aDatabase );
TInt GoToRecord( TUint32 aId );
void GetDataFromRecordL( TWlanSettings* aWlanSettings );
void WriteDataToRecordL( TWlanSettings* aWlanSettings );
void InitialiseRecordL( );
void SetSecondaryViewToRecordL( TUint32 aId );
TDesC8& ConvertTo8LC( const TDesC& aSource );
TDesC16& ConvertTo16LC( const TDesC8& aSource );
CCommsDatabase& iDatabase;
CCommsDbTableView* iTableView;
CCommsDbTableView* iSecondaryView;
CEapType* iEapType;
TUint32 iServiceID;
TBool iExpandedEAPTypeFieldsUsed;
};
#endif __NSMLWLANSETTINGS_H__