connectivitymodules/SeCon/plugins/ftp/src/sconftpplugin.cpp
branchRCL_3
changeset 19 0aa8cc770c8a
parent 18 453dfc402455
child 20 4a793f564d72
--- a/connectivitymodules/SeCon/plugins/ftp/src/sconftpplugin.cpp	Thu Aug 19 10:44:03 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,880 +0,0 @@
-/*
-* Copyright (c) 2005-2009 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:  File Transfer Profile Plug-in implementation
-*
-*/
-
-
-// INCLUDE FILES
-
-#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
-#include <obexconstantsinternal.h>
-#endif
-#include "sconftpplugin.h"
-#include "sconftp.h"
-#include "sconftppluginutils.h"
-#include "sconservicetimer.h"
-#include "debug.h"
-
-
-// CONSTANTS
-_LIT(KSConFTPLibName, "sconftp.dll");
-const TInt KSConFTPUidValue = 0x10009D8D;
-const TUid KSConFTPUid = {KSConFTPUidValue};
-
-// Folder listing type from IrObex specification
-_LIT8( KSConFolderListType, "x-obex/folder-listing" );
-
-_LIT( K_C_ROOT, "C:\\" );
-const TInt KSConBufSize = 262144; // 256KB
-// Time (in milliseconds) for the timer
-const TInt KSConTimeOutValue =  60000000;
-// Flags used to indicate SetPath commands
-const TInt KSConNULLSetPath =   0x00;
-
-const TInt KSConHeaderMaxLength = 256;
-
-// ============================= MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CSConFTPplugin::NewL()
-// Two-phase constructor
-// -----------------------------------------------------------------------------
-//
-CSConFTPplugin* CSConFTPplugin::NewL()
-    {
-    TRACE_FUNC_ENTRY;
-    CSConFTPplugin* self = new ( ELeave ) CSConFTPplugin();
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-    TRACE_FUNC_EXIT;
-    return( self );
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTPplugin::~CSConFTPplugin()
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CSConFTPplugin::~CSConFTPplugin()
-    {
-    TRACE_FUNC_ENTRY;
-    
-    // Disconnect from services.
-    Disconnect();
-    
-    if ( iFTPHandler )
-        {
-        delete iFTPHandler;
-        iFTPHandler = NULL;
-        iFTPlib.Close();
-        }
-    
-    delete iBuffer;
-    iBuffer = NULL;
-    delete iObject;
-    iObject = NULL;
-
-    if ( iServiceTimer )
-        {
-        iServiceTimer->Cancel();
-        }
-
-    delete iServiceTimer;
-    iServiceTimer = NULL;
-
-    if ( iFileObject )
-        {
-        delete iFileObject;
-        iFileObject = NULL;
-        }
-
-
-    delete iShutdownWatcher;
-    iShutdownWatcher = NULL;
-    
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTPplugin::IsOBEXActive()
-// Returns active status of OBEX session
-// -----------------------------------------------------------------------------
-//
-TBool CSConFTPplugin::IsOBEXActive()
-    {
-    TRACE_FUNC;
-    return iSessionActive;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTPplugin::NotifyShutdown()
-// System is shutting down
-// -----------------------------------------------------------------------------
-//
-void CSConFTPplugin::NotifyShutdown()
-    {
-    TRACE_FUNC;
-    iShutdownInProgress = ETrue;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTPplugin::LoadFTPDllL()
-// Loads sconftp.dll module
-// -----------------------------------------------------------------------------
-//
-void CSConFTPplugin::LoadFTPDllL()
-    {
-    TRACE_FUNC_ENTRY;
-    // Dynamically load DLL
-    User::LeaveIfError( iFTPlib.Load( KSConFTPLibName ) );
-    if ( iFTPlib.Type()[1] != KSConFTPUid )
-        {
-        LOGGER_WRITE( "KSConFTPUidValue incorrect" );
-        iFTPlib.Close();
-        User::Leave( KErrNotFound );
-        }
-    TSConCreateCSConFTPFunc CreateCSConFTPL =
-    (TSConCreateCSConFTPFunc)iFTPlib.Lookup(1);
-    iFTPHandler = (CSConFTP*)CreateCSConFTPL();
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTPplugin::Disconnect()
-// Closes initialized services
-// -----------------------------------------------------------------------------
-//
-void CSConFTPplugin::Disconnect()
-    {
-    TRACE_FUNC_ENTRY;
-    
-    iLinkAdapter.Close();
-    iSocketServer.Close();
-    
-    if ( iStartTimer != EFalse )
-        {
-        iServiceTimer->Cancel();
-        iServiceTimer->StartTimer();
-        }
-    
-    delete iObject;
-    iObject = NULL;
-    
-    if ( iFileObject )
-        {
-        delete iFileObject;
-        iFileObject = NULL;
-        }
-    if ( iFTPHandler )
-        {
-        delete iFTPHandler;
-        iFTPHandler = NULL;
-        iFTPlib.Close();
-        }
-
-    TRACE_FUNC_EXIT
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTPplugin::ErrorIndication( TInt aError )
-// MObexServerNotify implementation
-// -----------------------------------------------------------------------------
-//
-void CSConFTPplugin::ErrorIndication( TInt aError )
-    {
-    TRACE_FUNC_ENTRY;
-    LOGGER_WRITE_1( "aError : %d", aError );
-    
-    if ( iFTPHandler )
-        {
-        iFTPHandler->AbortFileTransfer( iObject );
-        }
-
-    if ( iObject )
-        {
-        delete iObject;
-        iObject = NULL;
-        }
-    
-    if ( iFileObject )
-        {
-        iFileObject->Reset();
-        delete iFileObject;
-        iFileObject = NULL;
-        }
-
-    // Keep compiler happy
-    (void)aError;
-    
-    delete iShutdownWatcher;
-    iShutdownWatcher = NULL;
-    
-	if ( iLinkAdapter.IsOpen() )
-        {
-        // Cancel ActivateActiveRequester & allow going to low power mode
-        TInt err2 = iLinkAdapter.CancelLowPowerModeRequester();
-        LOGGER_WRITE_1( "iLinkAdapter.CancelLowPowerModeRequester() err: %d", err2 );
-        }
-    
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTPplugin::AbortIndication()
-// MObexServerNotify implementation
-// -----------------------------------------------------------------------------
-//
-void CSConFTPplugin::AbortIndication()
-    {
-    TRACE_FUNC_ENTRY;
-    if ( iFTPHandler )
-        {
-        iFTPHandler->AbortFileTransfer( iObject );
-        }
-
-    if ( iObject )
-        {
-        delete iObject;
-        iObject = NULL;
-        }
-    
-    if ( iFileObject )
-        {
-        iFileObject->Reset();
-        delete iFileObject;
-        iFileObject = NULL;
-        }
-    
-    delete iShutdownWatcher;
-    iShutdownWatcher = NULL;
-    
-    if ( iLinkAdapter.IsOpen() )
-        {
-        // Cancel ActivateActiveRequester & allow going to low power mode
-        TInt err = iLinkAdapter.CancelLowPowerModeRequester();
-        LOGGER_WRITE_1( "iLinkAdapter.CancelLowPowerModeRequester() err: %d", err );
-        }
-    
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTPplugin::TransportUpIndication()
-// MObexServerNotify implementation
-// -----------------------------------------------------------------------------
-//
-void CSConFTPplugin::TransportUpIndication()
-    {
-    TRACE_FUNC;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTPplugin::ObexConnectIndication( const TObexConnectInfo& aRemoteInfo,
-// const TDesC8& aInfo )
-// MObexServerNotify implementation
-// -----------------------------------------------------------------------------
-//
-TInt CSConFTPplugin::ObexConnectIndication(
-                        const TObexConnectInfo& /*aRemoteInfo*/,
-                        const TDesC8& /*aInfo*/ )
-    {
-    TRACE_FUNC_ENTRY;
-    TInt err( KErrNone );
-    iStartTimer = ETrue;
-    
-    if ( iMediaType == ESrcsMediaBT && iObexServer )
-        {
-        TSockAddr remoteAddr;
-        iObexServer->RemoteAddr( remoteAddr );
-        
-        TBTSockAddr btSockAddr( remoteAddr );
-        TBTDevAddr devAddr = btSockAddr.BTAddr();
-        
-        err = iSocketServer.Connect();
-        LOGGER_WRITE_1("iSocketServer.Connect err: %d", err );
-        if ( !err )
-            {
-            err = iLinkAdapter.Open( iSocketServer, devAddr );
-            LOGGER_WRITE_1("iLinkAdapter.Open err: %d", err );
-            }
-        // Ignore all BT link errors
-        err = KErrNone;
-        }
-    
-    if ( err == KErrNone && !iFTPHandler )
-        {
-        TRAP( err, LoadFTPDllL() );
-        LOGGER_WRITE_1( "LoadFTPDllL returned : %d", err );
-        }
-    
-    if ( err == KErrNone )
-        {
-        iFTPHandler->SetProfile( EStandard );
-        LOGGER_WRITE( "CSConFTPplugin::ObexConnectIndication() : iServiceTimer->StopTimer()" );
-        iServiceTimer->Cancel();
-        iServiceTimer->StopTimer();
-        }
-
-    TRACE_FUNC_EXIT;
-    LOGGER_WRITE_1( "CSConFTPplugin::ObexConnectIndication returned %d", err );
-    return TFTPpluginUtils::ConvertFTPResponseCode( err );
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTPplugin::ObexDisconnectIndication( const TDesC8& )
-// MObexServerNotify implementation
-// -----------------------------------------------------------------------------
-//
-void CSConFTPplugin::ObexDisconnectIndication( const TDesC8& )
-    {
-    TRACE_FUNC_ENTRY;
-    Disconnect();
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTPplugin::TransportDownIndication()
-// MObexServerNotify implementation
-// -----------------------------------------------------------------------------
-//
-void CSConFTPplugin::TransportDownIndication()
-    {
-    TRACE_FUNC_ENTRY;
-    Disconnect();
-    if ( iBuffer )
-        {
-        iBuffer->Reset();
-        }
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTPplugin::PutRequestIndication()
-// MObexServerNotify implementation
-// -----------------------------------------------------------------------------
-//
-CObexBufObject* CSConFTPplugin::PutRequestIndication()
-    {
-    TRACE_FUNC_ENTRY;
-    TInt ret( KErrNone );
-    TInt err( KErrNone );
-    iPutError = KErrNone;
-
-    if ( iBuffer )
-        {
-        iBuffer->Reset();
-        }
-
-    if ( iObject )
-        {
-        delete iObject;
-        iObject = NULL;
-        }
-
-    TRAP( err, iObject = CObexBufObject::NewL ( iBuffer ) );
-
-    if ( err != KErrNone )
-        {
-        return NULL;
-        }
-
-    if ( !iFTPHandler )
-        {
-        LOGGER_WRITE( "Creating iFTPHandler has failed" );
-        return NULL;
-        }
-
-    TRAP( err, ret = iFTPHandler->PutFileObjectInitL( iObject, iBuffer ) );
-
-    if ( err != KErrNone )
-        {
-        LOGGER_WRITE_1( "iFTPHandler->PutFileObjectInitL() leaves: %d", err );
-        return NULL;
-        }
-    if ( ret != KErrNone )
-        {
-        LOGGER_WRITE_1( "PutFileObjectInitL failed - returning error in next PutPacketIndication : %d", ret );
-        iPutError = ret;
-        }
-    iPutPacketIndicationCalled = EFalse;
-    
-    if ( !iShutdownWatcher )
-        {
-        TRAP( err, iShutdownWatcher = CShutdownWatcher::NewL( this ) );
-        if ( err == KErrNone )
-            {
-            iShutdownWatcher->StartShutdownWatcher();
-            }
-        else
-            {
-            LOGGER_WRITE_1( "CShutdownWatcher::NewL leaves: %d", err );
-            }
-        }
-    
-    if ( iLinkAdapter.IsOpen() )
-        {
-        // request active BT mode (high power mode)
-        err = iLinkAdapter.ActivateActiveRequester();
-        LOGGER_WRITE_1( "iLinkAdapter.ActivateActiveRequester() err: %d", err );
-        }
-    
-    TRACE_FUNC_EXIT;
-    return( iObject );
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTPplugin::PutPacketIndication()
-// MObexServerNotify implementation
-// -----------------------------------------------------------------------------
-//
-TInt CSConFTPplugin::PutPacketIndication()
-    {
-    TRACE_FUNC_ENTRY;
-    TInt ret( KErrNone );
-    
-    // always normal file transfer
-    if ( (TInt)iObject->Length() > 0 )
-        {
-        if ( !iPutPacketIndicationCalled )
-            {
-            // This is first check, need to check only once
-            TFileName path;
-            iFTPHandler->GetPath( path );
-            if ( path.CompareF( K_C_ROOT ) == 0 )
-                {
-                // path forbidden
-                ret = KErrAccessDenied;
-                }
-            else
-                {
-                if ( iPutError != KErrNone )
-                    {
-                    ret = iPutError;
-                    LOGGER_WRITE_1( "CSConFTPplugin::PutPacketIndication() : PutError : %d", iPutError );
-                    }
-                else
-                    {
-                    // check required free space
-                    // if filesize is small ( <65k ) it fits into one package and its already saved to filesystem.
-                    // if file is larger, need to check is there enought free space in device.
-                    
-                    const TUint32  filesize = iObject->Length();
-                    LOGGER_WRITE_1( "CSConFTPplugin::PutPacketIndication() filesize %d", filesize );
-                    LOGGER_WRITE_1( "CSConFTPplugin::PutPacketIndication() iObject->BytesReceived() %d", iObject->BytesReceived() );
-                    if ( filesize > iObject->BytesReceived() )
-                        {
-                        LOGGER_WRITE( "CSConFTPplugin::PutPacketIndication() : check freespace" );
-                        // file does not fit into one obex packet, check is there enought free space in current drive
-                        if ( iFTPHandler->IsCurrentDiskSpaceBelowCritical( filesize ) )
-                            {
-    	                    LOGGER_WRITE( "CSConFTPplugin::PutPacketIndication() : returning KErrNoMemory" );
-                            ret = KErrNoMemory;
-                            }
-                        }
-                    }
-                }
-            }
-        
-        if ( iShutdownInProgress )
-            {
-            LOGGER_WRITE( "ShutdownInProgress, abort" );
-            ret = KErrDisconnected;
-            }
-        }
-    
-    if ( !iPutPacketIndicationCalled )
-        {
-        // Need to check only once
-        iPutPacketIndicationCalled = ETrue;
-        
-        //Check if filename is too long.
-        TFileName path;
-        iFTPHandler->GetPath( path );
-        if ( ret == KErrNone && path.Length() + iObject->Name().Length() > KMaxFileName )
-            {
-            LOGGER_WRITE_1( "Name length overflow! : %d", path.Length() + iObject->Name().Length() );
-            ret = KErrBadName;
-            }
-        }
-    
-    if ( ret != KErrNone )
-        {
-        if ( iFTPHandler )
-            {
-            iFTPHandler->AbortFileTransfer( iObject );
-            }
-        
-        delete iObject;
-        iObject = NULL;
-        
-        if ( iLinkAdapter.IsOpen() )
-            {
-            // Cancel ActivateActiveRequester & allow going to low power mode
-            TInt err = iLinkAdapter.CancelLowPowerModeRequester();
-            LOGGER_WRITE_1( "iLinkAdapter.CancelLowPowerModeRequester() err: %d", err );
-            }
-        }
-    
-    LOGGER_WRITE_1( "CSConFTPplugin::PutPacketIndication returned: %d", ret );
-    return TFTPpluginUtils::ConvertFTPResponseCode( ret );
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTPplugin::PutCompleteIndication()
-// MObexServerNotify implementation
-// -----------------------------------------------------------------------------
-//
-TInt CSConFTPplugin::PutCompleteIndication()
-    {
-    TRACE_FUNC_ENTRY;
-    TInt ret( KErrNone );
-    TInt err( KErrNone );
-    
-    if ( iLinkAdapter.IsOpen() )
-        {
-        // Cancel ActivateActiveRequester & allow going to low power mode
-        TInt err2 = iLinkAdapter.CancelLowPowerModeRequester();
-        LOGGER_WRITE_1( "iLinkAdapter.CancelLowPowerModeRequester() err: %d", err2 );
-        }
-    
-    TObexHeaderMask validHdrs = iObject->ValidHeaders();
-    TTime time = iObject->Time();
-    
-    // shutdownWatcher is not needed anymore
-    delete iShutdownWatcher;
-    iShutdownWatcher = NULL;
-
-    TInt size = iObject->BytesReceived();
-
-    if (!(validHdrs & KObexHdrTime))
-        {
-        LOGGER_WRITE( "CSConFTPplugin::PutCompleteIndication() no valid time header received - using hometime" );
-        time.HomeTime();
-        TRAP( ret, iObject->SetTimeL(time) );
-        LOGGER_WRITE_1( "CSConFTPplugin::PutCompleteIndication SetTimeL  %d", ret );
-        }
-
-    if ( ( validHdrs & KObexHdrBody ) || ( validHdrs & KObexHdrEndOfBody ) )
-        {
-        LOGGER_WRITE_1( "CSConFTPplugin::PutCompleteIndication : number of received bytes  %d", size );
-        TSConUsedMedia media( ESConNoMedia );
-
-        switch ( iMediaType )
-            {
-            case ESrcsMediaBT:
-                media = ESConBTMedia;
-                break;
-            case ESrcsMediaIrDA:
-                media = ESConIRMedia;
-                break;
-            case ESrcsMediaUSB:
-                media = ESConUSBMedia;
-                break;
-            default:
-                media = ESConNoMedia;
-                break;
-            }
-        iFTPHandler->SetUsedMedia( media );
-        
-        TRAP( ret, err =
-        this->iFTPHandler->PutFileObjectFinalizeL( iObject ) );
-        LOGGER_WRITE_1( "CSConFTPplugin::PutCompleteIndication :PutFileObjectL  %d", ret );
-        }
-    else
-        {
-        LOGGER_WRITE( "CSConFTPplugin::PutCompleteIndication() : Delete  starts" );
-        TRAP( ret, err = this->iFTPHandler->DeleteObjectL( iObject->Name() ) );
-        LOGGER_WRITE_1( "CSConFTPplugin::PutCompleteIndication : DeleteObjectL  %d", ret );
-        }
-
-    if ( iObject )
-        {
-        delete iObject;
-        iObject = NULL;
-        }
-
-    iFTPHandler->DeleteTempFile();
-
-    if ( ret != KErrNone )
-        {
-        LOGGER_WRITE_1( "CSConFTPplugin::PutCompleteIndication : returned  %d", ret );
-        return TFTPpluginUtils::ConvertFTPResponseCode( ret );
-        }
-
-    LOGGER_WRITE_1( "CSConFTPplugin::PutCompleteIndication : returned  %d", err );
-    return TFTPpluginUtils::ConvertFTPResponseCode( err );
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTPplugin::GetRequestIndication( CObexBaseObject* aRequiredObject )
-// MObexServerNotify implementation
-// -----------------------------------------------------------------------------
-//
-CObexBufObject* CSConFTPplugin::GetRequestIndication(
-                                            CObexBaseObject* aRequiredObject )
-    {
-    TRACE_FUNC_ENTRY;
-    CObexBufObject* bufObject(NULL);
-    if ( aRequiredObject->Type().Length() > KSConHeaderMaxLength )
-        {
-        LOGGER_WRITE("TypeHeader too big");
-        return NULL;
-        }
-    if ( aRequiredObject->Name().Length() > KMaxFileName )
-        {
-        LOGGER_WRITE("NameHeader is too long");
-        return NULL;
-        }
-    TInt ret( KErrNone );
-    TInt err( KErrNone );
-    TBuf8<KSConHeaderMaxLength> typeHeader( aRequiredObject->Type() );
-    TrimRightSpaceAndNull( typeHeader );
-    LOGGER_WRITE8_1("type: %S", &typeHeader);
-    LOGGER_WRITE_1("name: %S", &aRequiredObject->Name());
-
-    iBuffer->Reset();
-    
-    delete iObject;
-    iObject = NULL;
-    
-    TRAP( err, iObject = CObexBufObject::NewL ( iBuffer ) );
-    if ( err != KErrNone )
-        {
-        return NULL;
-        }
-    
-    // Client requests folder listing
-    if ( typeHeader == KSConFolderListType )
-        {
-        LOGGER_WRITE( "Client requests folder listning" );
-        if ( !iFTPHandler )
-            {
-            LOGGER_WRITE( "Creating iFTPHandler has failed" );
-            return NULL;
-            }
-
-        TRAP( err, ret = iFTPHandler->GetFolderObjectL( iObject ) );
-        LOGGER_WRITE_1( "iFTPHandler->GetFolderObjectL() returned: %d", ret );
-        if ( err == KErrNone && ret == KErrNone )
-            {
-            bufObject = iObject;
-            }
-        else
-            {
-            LOGGER_WRITE_1( "CSConFTPplugin::GetRequestIndication : Leavecode returned  %d", err );
-            return NULL;
-            }
-        }
-
-    // Client requests a file
-    else
-        {
-        if ( iFileObject )
-            {
-            delete iFileObject;
-            iFileObject = NULL;
-            }
-        
-        TRAP( err, iFileObject = CObexFileObject::NewL() );
-        if ( err != KErrNone )
-            {
-            LOGGER_WRITE( "Creating iFileObject has failed" );
-            return NULL;
-            }
-        iFileObject->Reset();
-        TRAP( err, iFileObject->SetNameL( aRequiredObject->Name() ) );
-
-        if ( err == KErrNone )
-            {
-            if ( !iFTPHandler )
-                {
-                LOGGER_WRITE( "CSConFTPplugin::GetRequestIndication() Creating iFTPHandler has failed" );
-                return NULL;
-                }
-
-            TRAP( err, ret =
-            this->iFTPHandler->GetFileObjectL( iFileObject ) );
-            LOGGER_WRITE_1( "CSConFTPplugin::GetRequestIndication :  GetFileObjectL returned  %d", ret );
-            }
-        if ( err == KErrNone && ret == KErrNone )
-            {
-            bufObject = (CObexBufObject*)iFileObject;
-            }
-        else
-            {
-            LOGGER_WRITE_1( "CSConFTPplugin::GetRequestIndication : Leavecode   %d", err );
-            return NULL;
-            }
-        }
-    if ( bufObject && iLinkAdapter.IsOpen() )
-        {
-        // request active BT mode (high power mode)
-        err = iLinkAdapter.ActivateActiveRequester();
-        LOGGER_WRITE_1( "iLinkAdapter.ActivateActiveRequester() err: %d", err );
-        }
-    return bufObject;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTPplugin::GetPacketIndication()
-// MObexServerNotify implementation
-// -----------------------------------------------------------------------------
-//
-TInt CSConFTPplugin::GetPacketIndication()
-    {
-    TRACE_FUNC;
-    return KErrNone;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTPplugin::GetCompleteIndication()
-// MObexServerNotify implementation
-// -----------------------------------------------------------------------------
-//
-TInt CSConFTPplugin::GetCompleteIndication()
-    {
-    TRACE_FUNC_ENTRY;
-    if ( iLinkAdapter.IsOpen() )
-        {
-        // Cancel ActivateActiveRequester & allow going to low power mode
-        TInt err = iLinkAdapter.CancelLowPowerModeRequester();
-        LOGGER_WRITE_1( "iLinkAdapter.CancelLowPowerModeRequester() err: %d", err );
-        }
-    
-    TInt ret( KErrNone );
-    if ( iFileObject )
-        {
-        iFileObject->Reset();
-        delete iFileObject;
-        iFileObject = NULL;
-        }
-
-    LOGGER_WRITE_1( "CSConFTPplugin::GetCompleteIndication() : returned %d", ret );
-    return ret;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTPplugin::SetPathIndication( const CObex::TSetPathInfo& aPathInfo,
-// const TDesC8& aInfo )
-// MObexServerNotify implementation
-// -----------------------------------------------------------------------------
-//
-TInt CSConFTPplugin::SetPathIndication( const CObex::TSetPathInfo& aPathInfo,
-                                        const TDesC8& /*aInfo*/ )
-    {
-    TRACE_FUNC_ENTRY;
-    TInt ret( KErrNone );
-    TInt err( KErrNone );
-
-    if ( !iFTPHandler )
-        {
-        LOGGER_WRITE( "Creating iFTPHandler has failed" );
-        return TFTPpluginUtils::ConvertFTPResponseCode( KErrNoMemory );
-        }
-
-    if ( aPathInfo.iFlags == KSConNULLSetPath )
-        {
-        TRAP( err, ret = this->iFTPHandler->CreateFolderL( aPathInfo.iName ) );
-        }
-    else
-        {
-        TRAP( err, ret = this->iFTPHandler->SetPathL( aPathInfo.iName,
-        aPathInfo.iFlags ) );
-        }
-    
-    if ( err != KErrNone )
-        {
-        LOGGER_WRITE_1( "CSConFTPplugin::SetPathIndication : returned   %d", err );
-        return TFTPpluginUtils::ConvertFTPResponseCode( err );
-        }
-    LOGGER_WRITE_1( "CSConFTPplugin::SetPathIndication : returned %d", ret );
-    return TFTPpluginUtils::ConvertFTPResponseCode( ret );
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTPplugin::TrimRightSpaceAndNull( TDes8& aDes ) const
-// Removes spaces and nulls from the end of the string
-// -----------------------------------------------------------------------------
-//
-void CSConFTPplugin::TrimRightSpaceAndNull( TDes8& aDes ) const
-    {
-    TRACE_FUNC;
-    aDes.TrimRight();
-    if ( aDes.Length() > 0 )
-        {
-        if ( !aDes[aDes.Length() - 1] )
-            {
-            aDes.SetLength( aDes.Length() - 1 );
-            }
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTPplugin::SetMediaType ( TSrcsMediaType aMediaType )
-// Current used transfer media (IR,USB,BT)
-// -----------------------------------------------------------------------------
-//
-void CSConFTPplugin::SetMediaType ( TSrcsMediaType aMediaType )
-    {
-    TRACE_FUNC;
-    iMediaType = aMediaType;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTPplugin::CSConFTPplugin()
-// Constructor
-// -----------------------------------------------------------------------------
-//
-CSConFTPplugin::CSConFTPplugin()
-    {
-    TRACE_FUNC;
-    iBuffer = NULL;
-    iObject = NULL;
-    iFileObject = NULL;
-    iSessionActive = EFalse;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTPplugin::ConstructL()
-// Initializes member data
-// -----------------------------------------------------------------------------
-//
-void CSConFTPplugin::ConstructL()
-    {
-    TRACE_FUNC_ENTRY;
-    iBuffer = CBufFlat::NewL( KSConBufSize );
-    iObject = CObexBufObject::NewL ( iBuffer );
-    iServiceTimer = new (ELeave) CSConServiceTimer( this, KSConTimeOutValue );
-    iServiceTimer->ConstructL();
-    CActiveScheduler::Add( iServiceTimer );
-    TRACE_FUNC_EXIT;
-    }
-
-// -----------------------------------------------------------------------------
-// CSConFTPplugin::SetObexServer( CObexServer* aObexServer )
-// SetObexServer
-// -----------------------------------------------------------------------------
-//
-TInt CSConFTPplugin::SetObexServer( CObexServer* aObexServer )
-    {
-    iObexServer = aObexServer;
-    TInt ret = iObexServer->Start(this);
-    LOGGER_WRITE_1( "CSConFTPplugin::SetObexServer() ret: %d", ret );
-    return ret;
-    }
-
-// End of file
-