--- a/wlanutilities/wlansniffer/apwizard/src/wsfwlanssiddiscovery.cpp Thu Aug 19 10:59:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,323 +0,0 @@
-/*
-* Copyright (c) 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: Implementation of WLAN SSID discovery class
-*
-*/
-
-
-
-// EXTERNAL INCLUDES
-#include <wlanmgmtclient.h>
-#include <wlanmgmtcommon.h>
-
-// CLASS HEADER
-#include "wsfwlanssiddiscovery.h"
-
-// INTERNAL INCLUDES
-#include "wsflogger.h"
-
-
-using namespace CMManager;
-
-
-/**
-* Management frame information element IDs.
-* needed to determine SSID
-* (from \S60\osext\wlan\wlanldd\wlan_common\umac_common\inc\802dot11.h)
-*/
-enum TWsf802Dot11InformationElementID
- {
- E802Dot11SsidIE = 0,
- E802Dot11SupportedRatesIE = 1,
- E802Dot11FhParameterSetIE = 2,
- E802Dot11DsParameterSetIE = 3,
- E802Dot11CfParameterSetIE = 4,
- E802Dot11TimIE = 5,
- E802Dot11IbssParameterSetIE = 6,
- E802Dot11CountryIE = 7,
- E802Dot11HoppingPatternParamIE = 8,
- E802Dot11HoppingPatternTableIE = 9,
- E802Dot11RequestIE = 10,
-
- E802Dot11ChallengeTextIE = 16,
- // Reserved for challenge text extension 17 - 31
- E802Dot11ErpInformationIE = 42,
- E802Dot11ExtendedRatesIE = 50,
- E802Dot11AironetIE = 133,
- E802Dot11ApIpAddressIE = 149,
- E802Dot11RsnIE = 221
- };
-
-
-/**
-* Bit masks for Capability Information field.
-* (from \S60\osext\wlan\wlanldd\wlan_common\umac_common\inc\802dot11.h)
-*/
-enum TWsf802Dot11CapabilityBitMask
- {
- E802Dot11CapabilityEssMask = 0x0001,
- E802Dot11CapabilityIbssMask = 0x0002,
- E802Dot11CapabilityCfPollableMask = 0x0004,
- E802Dot11CapabilityCfPollRequestMask= 0x0008,
- E802Dot11CapabilityPrivacyMask = 0x0010,
- E802Dot11ShortPreambleMask = 0x0020,
- E802Dot11PbccMask = 0x0040,
- E802Dot11ChannelAgilityMask = 0x0080
- };
-
-
-// ======================= MEMBER FUNCTIONS =================================
-
-// ----------------------------------------------------------------------------
-// CWsfWlanSsidDiscovery::NewL
-// ----------------------------------------------------------------------------
-//
-CWsfWlanSsidDiscovery* CWsfWlanSsidDiscovery::NewL()
- {
- CWsfWlanSsidDiscovery* self = new (ELeave) CWsfWlanSsidDiscovery();
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
- return self;
- }
-
-
-// ----------------------------------------------------------------------------
-// CWsfWlanSsidDiscovery::CWsfWlanSsidDiscovery
-// ----------------------------------------------------------------------------
-//
-CWsfWlanSsidDiscovery::CWsfWlanSsidDiscovery(): CActive( EPriorityStandard )
- {
- CActiveScheduler::Add( this );
- }
-
-
-// ----------------------------------------------------------------------------
-// CWsfWlanSsidDiscovery::ConstructL
-// ----------------------------------------------------------------------------
-//
-void CWsfWlanSsidDiscovery::ConstructL()
- {
- LOG_ENTERFN( "CWsfWlanSsidDiscovery::ConstructL" );
-#ifndef __WINS__
- iWlanMgmt = CWlanMgmtClient::NewL();
- iScanInfo = CWlanScanInfo::NewL();
-#endif
- }
-
-
-// ----------------------------------------------------------------------------
-// CWsfWlanSsidDiscovery::~CWsfWlanSsidDiscovery()
-// ----------------------------------------------------------------------------
-//
-CWsfWlanSsidDiscovery::~CWsfWlanSsidDiscovery()
- {
- LOG_ENTERFN( "CWsfWlanSsidDiscovery::~CWsfWlanSsidDiscovery" );
- Cancel();
- delete iWlanMgmt;
- delete iScanInfo;
- }
-
-
-// ----------------------------------------------------------------------------
-// CWsfWlanSsidDiscovery::DoCancel
-// ----------------------------------------------------------------------------
-//
-void CWsfWlanSsidDiscovery::DoCancel()
- {
- LOG_ENTERFN( "CWsfWlanSsidDiscovery::DoCancel" );
-#ifndef __WINS__
- iWlanMgmt->CancelGetScanResults();
-#endif
- }
-
-
-// ----------------------------------------------------------------------------
-// CWsfWlanSsidDiscovery::AbortScanning
-// ----------------------------------------------------------------------------
-//
-void CWsfWlanSsidDiscovery::AbortScanning()
- {
- LOG_ENTERFN( "CWsfWlanSsidDiscovery::AbortScanning" );
- if ( iWait.IsStarted() )
- {
- LOG_WRITE( "aborting..." );
- Cancel();
-
- iProgState = EAborted;
- iWait.AsyncStop();
- }
- }
-
-
-// ----------------------------------------------------------------------------
-// CWsfWlanSsidDiscovery::RunL
-// ----------------------------------------------------------------------------
-//
-void CWsfWlanSsidDiscovery::RunL()
- {
- LOG_ENTERFN( "CWsfWlanSsidDiscovery::RunL" );
-
- if ( iProgState == EScanning )
- {
- if ( !iStatus.Int() )
- // The list is ready
- {
- LOG_WRITE( "No error" );
- iProgState = EDone;
- }
- else
- // something went wrong -> no coverage.
- {
- LOG_WRITE( "error" );
- }
- }
-
- // stop blocking
- if ( iWait.IsStarted() )
- {
- iWait.AsyncStop();
- }
-
- }
-
-
-// ----------------------------------------------------------------------------
-// CWsfWlanSsidDiscovery::ScanForSsidL
-// ----------------------------------------------------------------------------
-//
-TBool CWsfWlanSsidDiscovery::ScanForSsidL( TWlanSsid& aEnteredSsid,
- TBool aBroadcast,
- CMManager::TWlanNetMode& aNetworkMode,
- CMManager::TWlanSecMode& aSecurityMode,
- TBool& aUsesPsk )
- {
- LOG_ENTERFN( "CWsfWlanSsidDiscovery::ScanForSsidL" );
-
- if ( IsActive() )
- {
- return EFalse;
- }
-
- TBool found = EFalse;
-#ifndef __WINS__
- iProgState = EScanning;
-
- if ( aBroadcast )
- {
- LOG_WRITE( "performing broadcast scan" );
- iWlanMgmt->GetScanResults( iStatus, *iScanInfo );
- }
- else
- {
- LOG_WRITE( "performing direct scan" );
- iWlanMgmt->GetScanResults( aEnteredSsid, iStatus, *iScanInfo );
- }
-
- SetActive();
- iWait.Start();
-
- // now we have the results and might start to work on them...
- if ( iProgState == EDone )
- {
- LOG_WRITE( "iProgState = EDone" );
- //finished without error, work on the result...
- for ( iScanInfo->First(); !found && !iScanInfo->IsDone();
- iScanInfo->Next() )
- {
- TUint8 ieLen( 0 );
- const TUint8* ieData;
-
- TInt ret = iScanInfo->InformationElement( E802Dot11SsidIE, ieLen,
- &ieData );
- User::LeaveIfError( ret );
-
- // get the ssid
- TWlanSsid ssid;
- ssid.Copy( ieData, ieLen );
-
- if ( !aEnteredSsid.Compare( ssid ) )
- {
- // SSID matched
- LOG_WRITE( "SSID matched, processing security settings" );
- found = ETrue;
-
- // adhoc or infrastructure
- aNetworkMode = ( iScanInfo->Capability() &
- E802Dot11CapabilityEssMask ) ?
- EInfra : EAdhoc;
-
- // security mode
- TWlanConnectionSecurityMode connSec =
- iScanInfo->SecurityMode();
-
- // convert TWlanConnectionSecurityMode to
- // CMManager::TWlanSecMode
- switch ( connSec )
- {
- case EWlanConnectionSecurityOpen:
- {
- aSecurityMode = EWlanSecModeOpen;
- break;
- }
- case EWlanConnectionSecurityWep:
- {
- aSecurityMode = EWlanSecModeWep;
- break;
- }
- case EWlanConnectionSecurity802d1x:
- {
- aSecurityMode = EWlanSecMode802_1x;
- break;
- }
- case EWlanConnectionSecurityWpa:
- case EWlanConnectionSecurityWpaPsk:
- {
- aSecurityMode = EWlanSecModeWpa;
- break;
- }
- default:
- {
- }
- }
-
- aUsesPsk = ( connSec == EWlanConnectionSecurityWpaPsk );
-
- } // if aEnteredSsid
-
- } // for
-
- }
- else if ( iProgState == EAborted )
- {
- LOG_WRITE( "iProgState = EAborted" );
- User::Leave( KErrCancel );
- }
- else
- {
- LOG_WRITEF( "iProgState = ???, iStatus = %d", iStatus.Int() );
- User::LeaveIfError( iStatus.Int() );
- }
-
-#else // __WINS__
-
- // we don't like warnings
- aEnteredSsid, aBroadcast, aNetworkMode, aSecurityMode, aUsesPsk;
-
-#endif // __WINS__
-
- return found;
- }
-
-