wlanutilities/wlansniffer/engine/client/src/wsfsession.cpp
branchRCL_3
changeset 24 63be7eb3fc78
parent 23 b852595f5cbe
child 25 f28ada11abbf
--- a/wlanutilities/wlansniffer/engine/client/src/wsfsession.cpp	Thu Aug 19 10:59:40 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,807 +0,0 @@
-/*
-* Copyright (c) 2007-2008 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 RWsfSession
-*
-*/
-
-
-
-//  CLASS HEADER
-#include "wsfsession.h"
-
-//  INTERNAL INCLUDES
-#include "wsfwlaninfoarray.h"
-#include "wsfeventhandler.h"
-#include "wsfactivewaiter.h"
-#include "wsfservercommon.h"
-#include "wsflogger.h"
-
-
-
-//  LOCAL DEFINITIONS
-/**
-* Number of message slots at the server
-*/
-static const TInt KIPCSlots = 6;
-
-/**
-* Number of retries to start the server
-*/
-static const TInt KRetries = 3;
-
-
-
-// ---------------------------------------------------------------------------
-// RWsfSession::RWsfSession
-// ---------------------------------------------------------------------------
-EXPORT_C RWsfSession::RWsfSession(): 
-    RSessionBase(), 
-    iEventHandler( 0 ),
-    iConnectingResult( KErrNone )
-    {
-    }
-
-
-// ---------------------------------------------------------------------------
-// RWsfSession::StartServer
-// ---------------------------------------------------------------------------
-TInt RWsfSession::StartServer()
-    {
-    LOG_ENTERFN( "RWsfSession::StartServerL" );
-    
-    TInt res( KErrNone );
-    // create server - if one of this name does not already exist
-    TFindServer findServer( KWlanSnifferServerName );
-    TFullName name;
-
-    if ( findServer.Next( name ) != KErrNone ) // we don't exist already
-        {
-        RProcess server;
-        // Create the server process
-        res = server.Create( KWlanSnifferServerExe, KNullDesC );
-
-        if ( res != KErrNone ) // thread created ok - now start it going
-            {
-            return res;
-            }
-
-        // Rendezvous is used to detect server start
-        TRequestStatus status;
-        server.Rendezvous( status );                                                 
-                                                                                   
-        if ( status != KRequestPending )                                             
-            {
-            LOG_WRITEF( "StartServer Rendezvous ERROR: %d", status.Int() );
-            server.Kill( 0 );    // abort startup                                 
-            }                                                                      
-        else                                                                       
-            {                                                                      
-            server.Resume();    // logon OK - start the server                     
-            }                                                                      
-        
-        LOG_WRITE( "StartServer wait for start" );
-        User::WaitForRequest( status ); // wait for start or death
-
-        // We can't use the 'exit reason' if the server paniced as this                                                          
-        // is the panic 'reason' and may be '0' which cannot be distinguished                                        
-        // from KErrNone                                                                                             
-        res = ( server.ExitType() == EExitPanic ) ? KErrGeneral : status.Int();
-        
-        // we're no longer interested in the other process
-        server.Close(); 
-        }
-        
-    return res;
-    }
-
-
-// ---------------------------------------------------------------------------
-// RWsfSession::Connect
-// ---------------------------------------------------------------------------
-//
-EXPORT_C TInt RWsfSession::Connect()
-    {
-    LOG_ENTERFN( "RWsfSession::Connect" );
-    TInt err = StartServer();
-    
-    for (TInt tries = 0; tries < KRetries; tries++)
-        {
-        LOG_WRITE( "server started" );
-
-        err = CreateSession( KWlanSnifferServerName, Version(), KIPCSlots );
-
-        LOG_WRITEF( "CreateSession() returned %d", err );
-        
-        if (!err)
-            {
-            LOG_WRITE( "connected" );
-            TRAP( err, iConnWaiter = new (ELeave) CActiveSchedulerWait() );
-            break; 
-            }
-        if (err != KErrNotFound && err != KErrServerTerminated)
-            {
-            LOG_WRITE( "problems session creation - break" );
-            break; 
-            }
-            
-        TInt err = StartServer(); // try to launch the server
-
-        if (!err)
-            {
-            LOG_WRITE( "ok - try to connect again" );
-            continue; 
-            }
-            
-        if (err == KErrAlreadyExists)
-            {
-            LOG_WRITE( "someone else started - try to connect again" );
-            continue; 
-            }
-            
-        LOG_WRITE( "problems - break" );
-        break; 
-        }
-    
-    LOG_WRITEF( "connect exit value = %d", err );
-
-    return err;
-    }
-
-
-// ---------------------------------------------------------------------------
-// RWsfSession::Version
-// ---------------------------------------------------------------------------
-//
-TVersion RWsfSession::Version() const
-    {
-    return TVersion( KWlanSnifferServerMajor, 
-                     KWlanSnifferServerMinor, 
-                     KWlanSnifferServerBuild );
-    }
-
-
-// ---------------------------------------------------------------------------
-// RWsfSession::CancelNotifyEvent
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void RWsfSession::CancelNotifyEvent()
-    {
-    LOG_ENTERFN( "RWsfSession::CancelNotifyEvent" );
-    if ( iEventHandler )
-        {
-        iEventHandler->Cancel();
-        }
-    }
-
-
-// ---------------------------------------------------------------------------
-// RWsfSession::ConnectedAccountNameL
-// ---------------------------------------------------------------------------
-//
-EXPORT_C HBufC* RWsfSession::ConnectedAccountNameL()
-    {
-    LOG_ENTERFN("RWsfSession::ConnectedAccountNameL");
-    TPckgBuf<TWsfQueryConnectedAccount> package;
-    CWsfActiveWaiter *waiter = CWsfActiveWaiter::NewL();
-    CleanupStack::PushL( waiter );
-    SendReceive( ESnifferCmdConnectionName, TIpcArgs( &package ), 
-                                                            waiter->iStatus );
-    waiter->WaitForRequest();
-    LOG_WRITEF( "message[%d] call returned %d", 
-                ESnifferCmdConnectionName,
-                waiter->iStatus.Int() );
-    User::LeaveIfError( waiter->iStatus.Int() );
-    CleanupStack::PopAndDestroy( waiter );
-    
-    if ( package().iConnected )
-        {
-        return package().iConnectedAccountName.AllocL();
-        }
-    return KNullDesC().AllocL();
-    }
-
-
-// ---------------------------------------------------------------------------
-// RWsfSession::GetConnectedWlanDetailsL
-// ---------------------------------------------------------------------------
-//
-EXPORT_C TBool RWsfSession::GetConnectedWlanDetailsL( TWsfWlanInfo& aWlanInfo )
-    {
-    LOG_ENTERFN("RWsfSession::GetConnectedWlanDetailsL");
-    TPckgBuf<TBool> ret( EFalse );
-    TPckg<TWsfWlanInfo> package( aWlanInfo );
-
-    CWsfActiveWaiter *waiter = CWsfActiveWaiter::NewL();
-    CleanupStack::PushL( waiter );
-
-    SendReceive( ESnifferCmdConnectedDetails, TIpcArgs( &ret, &package ), 
-                                                             waiter->iStatus );
-    waiter->WaitForRequest();
-    LOG_WRITEF( "message[%d] call returned %d", 
-                ESnifferCmdConnectedDetails,
-                waiter->iStatus.Int() );
-    User::LeaveIfError( waiter->iStatus.Int() );
-    CleanupStack::PopAndDestroy( waiter );
-
-    return ret();
-    }
-
-
-// ---------------------------------------------------------------------------
-// RWsfSession::GetConnectedWlanDetails
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void RWsfSession::GetConnectedWlanDetails( TPckgBuf<TBool>& aPckg,
-                                                    TWsfWlanInfo& aWlanInfo,
-                                                    TRequestStatus& aStatus )
-    {
-    LOG_ENTERFN("RWsfSession::GetConnectedWlanDetails");
-    TPckg<TWsfWlanInfo> package( aWlanInfo );
-
-    SendReceive( ESnifferCmdConnectedDetails, TIpcArgs( &aPckg, &package ), 
-                 aStatus );
-    }
-
-
-// ---------------------------------------------------------------------------
-// RWsfSession::NotifyEventL
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void RWsfSession::NotifyEventL( MWsfStateChangeObserver& aObserver )
-    {
-    LOG_ENTERFN("RWsfSession::NotifyEventL");
-    if ( !iEventHandler )
-        {
-        iEventHandler = CWsfEventHandler::NewL( *this, aObserver );
-        }
-    iEventHandler->ResetObserver( aObserver );
-    if ( !iEventHandler->IsActive() )
-        {
-        iEventHandler->Start();
-        SendReceive( ESnifferCmdNotifyEvents, 
-                     TIpcArgs( &iEventHandler->EventContainer() ), 
-                     iEventHandler->iStatus );
-        }
-    }
-
-
-// ---------------------------------------------------------------------------
-// RWsfSession::EnableScanL
-// ---------------------------------------------------------------------------
-//
-EXPORT_C TBool RWsfSession::EnableScanL()
-    {
-    LOG_ENTERFN("RWsfSession::EnableScanL");
-
-    TInt err = Send( ESnifferCmdActivateScan );
-    LOG_WRITEF( "message[%d] call returned %d", ESnifferCmdActivateScan, err );
-    
-    User::LeaveIfError( err );
-                                                         
-    return !err;
-    }
-    
-
-// ---------------------------------------------------------------------------
-// RWsfSession::DisableScanL
-// ---------------------------------------------------------------------------
-//
-EXPORT_C TBool RWsfSession::DisableScanL()
-    {
-    LOG_ENTERFN("RWsfSession::DisableScanL");    
-
-    TInt err = Send( ESnifferCmdDisableScan );
-    LOG_WRITEF( "message[%d] call returned %d", ESnifferCmdDisableScan, err );
-
-    User::LeaveIfError( err );
-
-    return !err;
-    }
-    
-
-// ---------------------------------------------------------------------------
-// RWsfSession::IsScanEnabledL
-// ---------------------------------------------------------------------------
-//
-EXPORT_C TBool RWsfSession::IsScanEnabledL()
-    {
-    LOG_ENTERFN("RWsfSession::IsScanEnabledL");
-    TBool res = 0;
-    TPckgBuf<TInt> pckg;
-
-    CWsfActiveWaiter *waiter = CWsfActiveWaiter::NewL();
-    CleanupStack::PushL( waiter );
-    
-    SendReceive( ESnifferCmdIsScanEnabled, TIpcArgs( &pckg ), 
-                                                            waiter->iStatus );
-    waiter->WaitForRequest();
-    LOG_WRITEF( "message[%d] call returned %d", 
-                ESnifferCmdIsScanEnabled,
-                waiter->iStatus.Int() );
-    User::LeaveIfError( waiter->iStatus.Int() );
-    CleanupStack::PopAndDestroy( waiter );
-                                                         
-    res = pckg();
-    return res;
-    }
-    
-
-// ---------------------------------------------------------------------------
-// RWsfSession::UpdateWlanListL
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void RWsfSession::UpdateWlanListL( CWsfWlanInfoArray* aInfoArray )
-    {
-    LOG_ENTERFN("RWsfSession::UpdateWlanListL");    
-    // first request the buffer size for wlan data...
-    TPckgBuf<TUint> pckg;
-    TUint infoArrayElementCount = aInfoArray->Count();
-
-    CWsfActiveWaiter *waiter = CWsfActiveWaiter::NewL();
-    CleanupStack::PushL( waiter );
-
-    SendReceive( ESnifferCmdWlanDataSize, TIpcArgs( &pckg ), waiter->iStatus );
-    waiter->WaitForRequest();
-    LOG_WRITEF( "message[%d] call returned %d", 
-                ESnifferCmdWlanDataSize,
-                waiter->iStatus.Int() );
-    User::LeaveIfError( waiter->iStatus.Int() );
-
-    // alloc the required size buffer...
-    TInt requiredSize = pckg();
-    LOG_WRITEF( "WLAN data buffer size = %d", requiredSize );
-
-    if ( !requiredSize ) 
-        {
-        // no data ...
-        CleanupStack::PopAndDestroy( waiter );
-        return;
-        }
-
-    HBufC8* buffer = HBufC8::NewLC( requiredSize );
-    TPtr8 ptr = buffer->Des();
-    
-    SendReceive( ESnifferCmdGetWlanInfo, TIpcArgs( &pckg, &ptr ), 
-                                                            waiter->iStatus );
-    waiter->WaitForRequest();
-    LOG_WRITEF( "message[%d] call returned %d", 
-                ESnifferCmdGetWlanInfo,
-                waiter->iStatus.Int() );
-    User::LeaveIfError( waiter->iStatus.Int() );
-                                                    
-    
-    LOG_WRITEF( "actual bytes occupied = %d", pckg() );
-    
-    if ( requiredSize != pckg() )
-        {
-        // the buffer is not long enough... we must try again...
-        User::Leave( KErrOverflow );
-        }
-    
-    // Check that aInfoArray has not been modified 
-    // while we waited server response
-    if ( aInfoArray->Count() != infoArrayElementCount )
-        {
-        LOG_WRITEF( "aInfoArray data has changed %d != %d ", 
-                aInfoArray->Count(), infoArrayElementCount );
-        aInfoArray->Reset();
-        }
-    
-    aInfoArray->AppendFromStreamBufferL( ptr );
-    CleanupStack::PopAndDestroy( buffer );
-    CleanupStack::PopAndDestroy( waiter );
-    }
-
-
-// ---------------------------------------------------------------------------
-// RWsfSession::GetWlanListSize
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void RWsfSession::GetWlanListSize( TPckgBuf<TUint> &aPckg, TRequestStatus& aStatus )
-    {
-    LOG_ENTERFN("RWsfSession::GetWlanListSize");    
-    SendReceive( ESnifferCmdWlanDataSize, TIpcArgs( &aPckg ), aStatus );
-    }
-
-
-// ---------------------------------------------------------------------------
-// RWsfSession::GetWlanList
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void RWsfSession::GetWlanList( TPckgBuf<TUint>& aPckg, TPtr8& aPtr, TRequestStatus& aStatus )
-    {
-    LOG_ENTERFN("RWsfSession::GetWlanList");    
-    SendReceive( ESnifferCmdGetWlanInfo, TIpcArgs( &aPckg, &aPtr ), aStatus );
-    }
-
-
-// ---------------------------------------------------------------------------
-// RWsfSession::MonitorAccessPointL
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void RWsfSession::MonitorAccessPointL( TUint32 aMonitoredIap )
-    {
-    LOG_ENTERFN("RWsfSession::MonitorAccessPointL");
-
-    TInt err = Send( ESnifferCmdMonitorAp, TIpcArgs( aMonitoredIap ));
-    LOG_WRITEF( "message[%d] call returned %d", ESnifferCmdMonitorAp, err );
-        
-    User::LeaveIfError( err );
-    }
-
-
-// ---------------------------------------------------------------------------
-// RWsfSession::RequestScanL
-// ---------------------------------------------------------------------------
-//
-EXPORT_C TBool RWsfSession::RequestScanL()
-    {
-    LOG_ENTERFN("RWsfSession::RequestScanL");
-    TPckgBuf<TBool> pckg;
-    
-    CWsfActiveWaiter *waiter = CWsfActiveWaiter::NewL();
-    CleanupStack::PushL( waiter );
-
-    SendReceive( ESnifferCmdRequestScan, TIpcArgs( &pckg ), waiter->iStatus );
-    waiter->WaitForRequest();
-    LOG_WRITEF( "message[%d] call returned %d", 
-                ESnifferCmdRequestScan,
-                waiter->iStatus.Int() );
-    User::LeaveIfError( waiter->iStatus.Int() );
-    CleanupStack::PopAndDestroy( waiter );
-    return pckg();
-    }
-
-
-// ---------------------------------------------------------------------------
-// RWsfSession::RequestScan
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void RWsfSession::RequestScan(TPckgBuf<TBool>& aPckg, TRequestStatus& aStatus )
-    {
-    LOG_ENTERFN("RWsfSession::RequestScan");
-    SendReceive( ESnifferCmdRequestScan, TIpcArgs( &aPckg ), aStatus );
-    }
-
-
-// ---------------------------------------------------------------------------
-// RWsfSession::ConnectWlanBearerL
-// ---------------------------------------------------------------------------
-//
-EXPORT_C TInt RWsfSession::ConnectWlanBearerL( TUint32 aIapId, 
-                                               TBool aConnectOnly,
-                                               TWsfIapPersistence aPersistence )
-    {
-    LOG_ENTERFN( "RWsfSession::ConnectWlanBearerL" );
-    LOG_WRITEF( "IAP id = %d", aIapId );
-
-    // mark the beginning of the connection process
-    iEventHandler->UnBlockNextConnectedEvent();
-    iEventHandler->SetConnecting( ETrue );
-
-    TInt res( KErrNone );
-    TPckgBuf<TInt> pckg;
-
-    CWsfActiveWaiter *waiter = CWsfActiveWaiter::NewL();
-    CleanupStack::PushL( waiter );
-
-    SendReceive( ESnifferCmdConnect, 
-                 TIpcArgs( &pckg, aIapId, aConnectOnly, aPersistence ), 
-                 waiter->iStatus );
-    
-    waiter->WaitForRequest();
-    LOG_WRITEF( "message[%d] call returned %d", 
-                ESnifferCmdConnect,
-                waiter->iStatus.Int() );
-    User::LeaveIfError( waiter->iStatus.Int() );
-    CleanupStack::PopAndDestroy( waiter );
-    
-    res = pckg();
-    
-    if ( res != KErrNone )
-        {
-        // on any error the flag should be cleared
-        iEventHandler->SetConnecting( EFalse );
-        }
-    else
-        {
-        // otherwise we must wait until the connected signal arrives
-        iConnWaiter->Start();
-        }
-    
-    if ( iConnectingResult )
-        {
-        // the caller must know if the connecting process was cancelled
-        res = iConnectingResult;
-        iConnectingResult = KErrNone;
-        }
-        
-    return res;
-    }
-
-
-// ---------------------------------------------------------------------------
-// RWsfSession::ConnectWlanBearer
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void RWsfSession::ConnectWlanBearer( TPckgBuf<TBool>& aPckg,
-                                               TUint32 aIapId, 
-                                               TBool aConnectOnly,
-                                               TWsfIapPersistence aPersistence,
-                                               TRequestStatus& aStatus )
-    {
-    LOG_ENTERFN( "RWsfSession::ConnectWlanBearer" );
-    LOG_WRITEF( "IAP id = %d", aIapId );
-
-    // mark the beginning of the connection process
-    iEventHandler->UnBlockNextConnectedEvent();
-    iEventHandler->SetConnecting( ETrue );
-
-    SendReceive( ESnifferCmdConnect, 
-                 TIpcArgs( &aPckg, aIapId, aConnectOnly, aPersistence ), 
-                 aStatus );
-    }
-
-
-// ---------------------------------------------------------------------------
-// RWsfSession::SetConnectWlanBearerResult
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void RWsfSession::SetConnectWlanBearerResult( TInt aResult )
-    {
-    LOG_ENTERFN( "RWsfSession::SetConnectWlanBearerResult" );
-    LOG_WRITEF( "Result = %d", aResult );
-    
-    if ( aResult != KErrNone )
-        {
-        // on any error the flag should be cleared
-        iEventHandler->SetConnecting( EFalse );
-        }
-    }
-
-
-// ---------------------------------------------------------------------------
-// RWsfSession::StopConnectingWait
-// ---------------------------------------------------------------------------
-//
-void RWsfSession::StopConnectingWait()
-    {
-    LOG_ENTERFN( "RWsfSession::StopConnectingWait" );
-    if ( iConnWaiter->IsStarted() )
-        {
-        iConnWaiter->AsyncStop();
-        }
-    }
-
-
-// ---------------------------------------------------------------------------
-// RWsfSession::DisconnectWlanBearerL
-// ---------------------------------------------------------------------------
-//
-EXPORT_C TBool RWsfSession::DisconnectWlanBearerL()
-    {
-    LOG_ENTERFN("RWsfSession::DisconnectWlanBearerL");
-    TBool res = 0;
-    TPckgBuf<TInt> pckg;
-
-    CWsfActiveWaiter *waiter = CWsfActiveWaiter::NewL();
-    CleanupStack::PushL( waiter );
-
-    SendReceive( ESnifferCmdDisconnect, TIpcArgs( &pckg ), waiter->iStatus );
-    waiter->WaitForRequest();
-    LOG_WRITEF( "message[%d] call returned %d", 
-                ESnifferCmdDisconnect,
-                waiter->iStatus.Int() );
-    User::LeaveIfError( waiter->iStatus.Int() );
-
-    CleanupStack::PopAndDestroy( waiter );
-
-    res = pckg();
-    return res;
-    }
-
-
-// ---------------------------------------------------------------------------
-// RWsfSession::DisconnectWlanBearer
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void RWsfSession::DisconnectWlanBearer( TPckgBuf<TBool>& aPckg, TRequestStatus& aStatus )
-    {
-    LOG_ENTERFN("RWsfSession::DisconnectWlanBearer");
-    SendReceive( ESnifferCmdDisconnect, TIpcArgs( &aPckg ), aStatus );
-    }
-
-
-// ---------------------------------------------------------------------------
-// RWsfSession::Close
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void RWsfSession::Close()
-    {
-    LOG_ENTERFN("RWsfSession::Close");
-    delete iEventHandler; iEventHandler = NULL;
-    delete iConnWaiter; iConnWaiter = NULL;
-    
-    LOG_WRITE( "close session" );
-    RSessionBase::Close();
-    }
-
-
-// ---------------------------------------------------------------------------
-// RWsfSession::DoCancelNotifyEvent
-// ---------------------------------------------------------------------------
-//
-void RWsfSession::DoCancelNotifyEvent()
-    {
-    LOG_ENTERFN("RWsfSession::DoCancelNotifyEvent");    
-    // used only by CWsfEventHandler
-    TInt err = Send( ESnifferCmdCancelNotifyEvents );
-    LOG_WRITEF( "message[%d] call returned %d", 
-                ESnifferCmdCancelNotifyEvents, err );
-    }
-
-
-// ---------------------------------------------------------------------------
-// RWsfSession::CancelAll
-// ---------------------------------------------------------------------------
-//
-void RWsfSession::CancelAll()
-    {
-    LOG_ENTERFN("RWsfSession::CancelAll");
-    TInt err = Send( ESnifferCmdCancelAll );
-
-    LOG_WRITEF( "message[%d] call returned %d", ESnifferCmdCancelAll, err );
-    }
-    
-
-// ---------------------------------------------------------------------------
-// RWsfSession::IsConnectedL
-// ---------------------------------------------------------------------------
-//
-EXPORT_C TBool RWsfSession::IsConnectedL()
-    {
-    LOG_ENTERFN("RWsfSession::IsConnectedL");
-    TPckgBuf<TBool> pckg;
-
-    CWsfActiveWaiter *waiter = CWsfActiveWaiter::NewL();
-    CleanupStack::PushL( waiter );
-
-    SendReceive( ESnifferCmdIsConnected, TIpcArgs( &pckg ), waiter->iStatus );
-    waiter->WaitForRequest();
-    LOG_WRITEF( "message[%d] call returned %d", 
-                ESnifferCmdIsConnected,
-                waiter->iStatus.Int() );
-    User::LeaveIfError( waiter->iStatus.Int() );
-    CleanupStack::PopAndDestroy( waiter );
-    
-    return pckg();
-    }
-
-
-// ---------------------------------------------------------------------------
-// RWsfSession::RecoverFromServerTermination
-// ---------------------------------------------------------------------------
-//
-TBool RWsfSession::RecoverFromServerTermination( 
-                                           MWsfStateChangeObserver& aObserver )
-    {
-    RSessionBase::Close();
-    
-    TBool ret( EFalse );
-    
-    ret = ( Connect() == KErrNone );
-    if ( ret )
-        {
-        TRAPD( err, NotifyEventL( aObserver ) );
-        ret = ( err == KErrNone );
-        }
-        
-    return ret;
-    }
-
-
-// ---------------------------------------------------------------------------
-// RWsfSession::AbortConnectingL
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void RWsfSession::AbortConnectingL()
-    {
-    LOG_ENTERFN("RWsfSession::AbortConnectingL");
-
-    if ( iEventHandler->Connecting() )
-        {
-        iConnectingResult = KErrCancel;
-        iEventHandler->BlockNextConnectedEvent();
-
-        TInt err = Send( ESnifferCmdAbortConnecting );
-        LOG_WRITEF( "message[%d] call returned %d", 
-                    ESnifferCmdAbortConnecting, err );
-        
-        User::LeaveIfError( err );
-        StopConnectingWait();
-        }
-    
-    }
-    
-
-// ---------------------------------------------------------------------------
-// RWsfSession::AbortScanningL
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void RWsfSession::AbortScanningL()
-    {
-    LOG_ENTERFN("RWsfSession::AbortScanningL");    
-
-    TInt err = Send( ESnifferCmdAbortScanning );
-    LOG_WRITEF( "message[%d] call returned %d", 
-                ESnifferCmdAbortScanning, err );
-
-    User::LeaveIfError( err );
-    }
-
-
-// ---------------------------------------------------------------------------
-// RWsfSession::SetIapPersistenceL
-// ---------------------------------------------------------------------------
-//
-EXPORT_C TBool RWsfSession::SetIapPersistenceL( 
-                                              TWsfIapPersistence aPersistence )
-    {
-    LOG_ENTERFN("RWsfSession::SetIapPersistenceL");
-    TPckgBuf<TBool> ret( EFalse );
-
-    CWsfActiveWaiter *waiter = CWsfActiveWaiter::NewL();
-    CleanupStack::PushL( waiter );
-
-    SendReceive( ESnifferCmdSetIapPersistence, TIpcArgs( &ret, aPersistence ), 
-                                                             waiter->iStatus );
-    waiter->WaitForRequest();
-    LOG_WRITEF( "message[%d] call returned %d", 
-                ESnifferCmdSetIapPersistence,
-                waiter->iStatus.Int() );
-    User::LeaveIfError( waiter->iStatus.Int() );
-    CleanupStack::PopAndDestroy( waiter );
-    
-    return ret();    
-    }
-
-
-// ---------------------------------------------------------------------------
-// RWsfSession::ControlDisconnectTimerL
-// ---------------------------------------------------------------------------
-//
-EXPORT_C TBool RWsfSession::ControlDisconnectTimerL( TUint aAdcCommand )
-    {
-    LOG_ENTERFN("RWsfSession::ControlDisconnectTimerL"); 
-    
-    TPckgBuf<TBool> ret( EFalse );
-
-    CWsfActiveWaiter *waiter = CWsfActiveWaiter::NewL();
-    CleanupStack::PushL( waiter );
-
-    SendReceive( ESnifferCmdControlDisconnectTimer, 
-                 TIpcArgs( &ret, aAdcCommand ), 
-                 waiter->iStatus );
-                 
-    waiter->WaitForRequest();
-    LOG_WRITEF( "message[%d] call returned %d", 
-                ESnifferCmdControlDisconnectTimer,
-                waiter->iStatus.Int() );
-    User::LeaveIfError( waiter->iStatus.Int() );
-    CleanupStack::PopAndDestroy( waiter );
-    
-    return ret();    
-    }
-
-