diff -r 8e7494275d3a -r 4f0867e42d62 connectivitymodules/SeCon/plugins/ftp/src/sconftpplugin.cpp --- a/connectivitymodules/SeCon/plugins/ftp/src/sconftpplugin.cpp Tue Aug 31 15:05:37 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 -#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 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 -