# HG changeset patch # User hgs # Date 1285676048 -28800 # Node ID 866b4af7ffbe9482ac682986d23b8fd87d4e8019 # Parent 64200268cac234e5379c84cacb1bd084fc1e6ee0 201039_01 diff -r 64200268cac2 -r 866b4af7ffbe backupandrestore/backupengine/src/sbecompressionandencryption.cpp --- a/backupandrestore/backupengine/src/sbecompressionandencryption.cpp Fri Sep 17 11:40:03 2010 +0800 +++ b/backupandrestore/backupengine/src/sbecompressionandencryption.cpp Tue Sep 28 20:14:08 2010 +0800 @@ -126,7 +126,12 @@ if( ! iIsFreed ) iOffsetStart->Set(iActualStart); // free reserved space when leave occurs. #endif - delete iCipher; + if( iCipher ) + { + delete iCipher; + iCipher = NULL; + } + OstTraceFunctionExit0( CSBECOMPRESSANDENCRYPT_CSBECOMPRESSANDENCRYPT_DES_EXIT ); } diff -r 64200268cac2 -r 866b4af7ffbe backupandrestore/backupengine/src/sbedataowner.cpp --- a/backupandrestore/backupengine/src/sbedataowner.cpp Fri Sep 17 11:40:03 2010 +0800 +++ b/backupandrestore/backupengine/src/sbedataowner.cpp Tue Sep 28 20:14:08 2010 +0800 @@ -2278,7 +2278,7 @@ { OstTrace0(TRACE_NORMAL, DUP4_CDATAOWNER_GETNEXTPUBLICFILEL, "parsing directory..."); RDir dir; - dir.Open(ipDataOwnerManager->GetRFs(), fileName, KEntryAttMaskSupported); + User::LeaveIfError(dir.Open(ipDataOwnerManager->GetRFs(), fileName, KEntryAttMaskSupported)); iPublicDirStack.AppendL(dir); iPublicDirNameStack.AppendL(fileName.AllocL()); ++stackCount; diff -r 64200268cac2 -r 866b4af7ffbe localconnectivityservice/dun/atext/inc/DunAtCmdHandler.h --- a/localconnectivityservice/dun/atext/inc/DunAtCmdHandler.h Fri Sep 17 11:40:03 2010 +0800 +++ b/localconnectivityservice/dun/atext/inc/DunAtCmdHandler.h Tue Sep 28 20:14:08 2010 +0800 @@ -555,9 +555,13 @@ * * @since TB9.2 * @param aCharacter Character to test + * @param aBasic ETrue if basic check needed, EFalse otherwise + * @param aExtended ETrue if extended check needed, EFalse otherwise * @return ETrue if delimiter character, EFalse otherwise */ - TBool IsDelimiterCharacter( TChar aCharacter ); + TBool IsDelimiterCharacter( TChar aCharacter, + TBool aBasic, + TBool aExtended ); /** * Checks if character is of extended group @@ -608,7 +612,19 @@ * @param aEndIndex End index (changes) * @return Symbian error code on error, KErrNone otherwise */ - TBool FindSubCommandQuotes( TChar aCharacter, TInt aStartIndex, TInt& aEndIndex ); + TBool FindSubCommandQuotes( TChar aCharacter, + TInt aStartIndex, + TInt& aEndIndex ); + + /** + * Check if in basic command delimiter skip zone + * + * @since TB9.2 + * @param aCharacter Character to check + * @param aEndIndex End index (changes) + * @return Symbian error code on error, KErrNone otherwise + */ + TBool IsBasicDelimiterSkipZone( TChar aCharacter, TInt& aEndIndex ); /** * Check if in next subcommand's extended border @@ -619,7 +635,9 @@ * @param aEndIndex End index (changes) * @return ETrue if in next command's extended border, EFalse otherwise */ - TBool IsExtendedBorder( TChar aCharacter, TInt aStartIndex, TInt& aEndIndex ); + TBool IsExtendedBorder( TChar aCharacter, + TInt aStartIndex, + TInt& aEndIndex ); /** * Finds subcommand with alphanumeric borders diff -r 64200268cac2 -r 866b4af7ffbe localconnectivityservice/dun/atext/src/DunAtCmdEchoer.cpp --- a/localconnectivityservice/dun/atext/src/DunAtCmdEchoer.cpp Fri Sep 17 11:40:03 2010 +0800 +++ b/localconnectivityservice/dun/atext/src/DunAtCmdEchoer.cpp Tue Sep 28 20:14:08 2010 +0800 @@ -70,9 +70,9 @@ FTRACE(FPrint( _L("CDunAtCmdEchoer::SendEchoCharacter() (not ready) complete") )); return KErrNotReady; } + iAtEchoState = EDunStateAtCmdEchoing; iStreamCallback->NotifyDataPushRequest( aInput, this ); iCallback = aCallback; - iAtEchoState = EDunStateAtCmdEchoing; FTRACE(FPrint( _L("CDunDownstream::SendEchoCharacter() complete" ) )); return KErrNone; } diff -r 64200268cac2 -r 866b4af7ffbe localconnectivityservice/dun/atext/src/DunAtCmdHandler.cpp --- a/localconnectivityservice/dun/atext/src/DunAtCmdHandler.cpp Fri Sep 17 11:40:03 2010 +0800 +++ b/localconnectivityservice/dun/atext/src/DunAtCmdHandler.cpp Tue Sep 28 20:14:08 2010 +0800 @@ -53,6 +53,11 @@ * Refer to test specification if planning to change the heuristic. * Note2: Input buffer management (ExtractLineFromInputBuffer()) can be tested * with non-line based terminals such as HyperTerminal or Realterm. + * Note3: If there is a need to handle commands with random data, the extended + * command checking can interfere with the character set of this random data. + * Best way to handle this random data is to create a handler for these commands + * which skips the valid "not to be parsed" data or use quotes. For these cases + * the CDunAtSpecialCmdHandler could be extended. */ #include "DunAtCmdHandler.h" @@ -978,7 +983,7 @@ for ( TInt i=aStartIndex; i| // border must be detected but only for a "basic" command, not for - // extended. + // extended. This type of case is in active use in initialization + // strings where "ATS7=60L1M1X3" is one example if ( iDecodeInfo.iExtendedIndex<0 && iDecodeInfo.iPrevExists && iDecodeInfo.iPrevChar.IsDigit() && aCharacter.IsAlpha() ) { @@ -1497,6 +1562,7 @@ TInt startIndex = iDecodeInfo.iDecodeIndex; aEndIndex = startIndex; TBool found = EFalse; + TBool skipZone = EFalse; TInt lineLength = iLineBuffer.Length(); iDecodeInfo.iAssignFound = EFalse; iDecodeInfo.iInQuotes = EFalse; @@ -1506,11 +1572,22 @@ for ( ; aEndIndex - if ( IsDelimiterCharacter(character) ) + if ( IsDelimiterCharacter(character,ETrue,ETrue) ) { aEndIndex--; FTRACE(FPrint( _L("CDunAtCmdHandler::FindSubCommand() (delimiter) complete") )); diff -r 64200268cac2 -r 866b4af7ffbe localconnectivityservice/dun/atext/src/DunAtCmdPusher.cpp --- a/localconnectivityservice/dun/atext/src/DunAtCmdPusher.cpp Fri Sep 17 11:40:03 2010 +0800 +++ b/localconnectivityservice/dun/atext/src/DunAtCmdPusher.cpp Tue Sep 28 20:14:08 2010 +0800 @@ -119,13 +119,13 @@ return KErrGeneral; } iStatus = KRequestPending; + iAtPushState = EDunStateAtCmdPushing; iAtCmdExt->HandleCommand( iStatus, aInput, iRecvBuffer, iReplyLeftPckg, iReplyTypePckg ); SetActive(); - iAtPushState = EDunStateAtCmdPushing; FTRACE(FPrint( _L("CDunAtCmdPusher::IssueRequest() complete") )); return KErrNone; } diff -r 64200268cac2 -r 866b4af7ffbe localconnectivityservice/dun/atext/src/DunAtEcomListen.cpp --- a/localconnectivityservice/dun/atext/src/DunAtEcomListen.cpp Fri Sep 17 11:40:03 2010 +0800 +++ b/localconnectivityservice/dun/atext/src/DunAtEcomListen.cpp Tue Sep 28 20:14:08 2010 +0800 @@ -86,9 +86,9 @@ return KErrNotReady; } iStatus = KRequestPending; + iEcomListenState = EDunStateEcomListening; iAtCmdExt->ReceiveEcomPluginChange( iStatus, iPluginUidPckg, iEcomTypePckg ); SetActive(); - iEcomListenState = EDunStateEcomListening; FTRACE(FPrint( _L("CDunAtEcomListen::IssueRequest() complete") )); return KErrNone; } diff -r 64200268cac2 -r 866b4af7ffbe localconnectivityservice/dun/atext/src/DunAtModeListen.cpp --- a/localconnectivityservice/dun/atext/src/DunAtModeListen.cpp Fri Sep 17 11:40:03 2010 +0800 +++ b/localconnectivityservice/dun/atext/src/DunAtModeListen.cpp Tue Sep 28 20:14:08 2010 +0800 @@ -84,9 +84,9 @@ return KErrNotReady; } iStatus = KRequestPending; + iModeListenState = EDunStateModeListening; iAtCmdExtCommon->ReceiveModeStatusChange( iStatus, iModePckg ); SetActive(); - iModeListenState = EDunStateModeListening; FTRACE(FPrint( _L("CDunAtModeListen::IssueRequest() complete" ))); return KErrNone; } @@ -179,4 +179,6 @@ // void CDunAtModeListen::DoCancel() { + FTRACE(FPrint( _L("CDunAtModeListen::DoCancel()") )); + FTRACE(FPrint( _L("CDunAtModeListen::DoCancel() complete") )); } diff -r 64200268cac2 -r 866b4af7ffbe localconnectivityservice/dun/atext/src/DunAtNvramListen.cpp --- a/localconnectivityservice/dun/atext/src/DunAtNvramListen.cpp Fri Sep 17 11:40:03 2010 +0800 +++ b/localconnectivityservice/dun/atext/src/DunAtNvramListen.cpp Tue Sep 28 20:14:08 2010 +0800 @@ -91,9 +91,9 @@ iStarted = ETrue; } iStatus = KRequestPending; + iNvramHandleState = EDunStateNvramListening; iAtCmdExtCommon->ReceiveNvramStatusChange( iStatus, iNvramBuffer ); SetActive(); - iNvramHandleState = EDunStateNvramListening; FTRACE(FPrint( _L("CDunAtNvramListen::IssueRequest() complete") )); return KErrNone; } diff -r 64200268cac2 -r 866b4af7ffbe localconnectivityservice/dun/atext/src/DunAtUrcHandler.cpp --- a/localconnectivityservice/dun/atext/src/DunAtUrcHandler.cpp Fri Sep 17 11:40:03 2010 +0800 +++ b/localconnectivityservice/dun/atext/src/DunAtUrcHandler.cpp Tue Sep 28 20:14:08 2010 +0800 @@ -90,9 +90,9 @@ return KErrNotReady; } iStatus = KRequestPending; + iUrcHandleState = EDunStateAtUrcHandling; iAtCmdExt->ReceiveUnsolicitedResult( iStatus, iRecvBuffer, iOwnerUidPckg ); SetActive(); - iUrcHandleState = EDunStateAtUrcHandling; // Next mark ownership if ( !iStarted ) { @@ -213,6 +213,8 @@ // void CDunAtUrcHandler::DoCancel() { + FTRACE(FPrint( _L("CDunAtUrcHandler::DoCancel()") )); + FTRACE(FPrint( _L("CDunAtUrcHandler::DoCancel() complete") )); } // --------------------------------------------------------------------------- diff -r 64200268cac2 -r 866b4af7ffbe localconnectivityservice/dun/plugins/src/bt/DunBtListen.cpp --- a/localconnectivityservice/dun/plugins/src/bt/DunBtListen.cpp Fri Sep 17 11:40:03 2010 +0800 +++ b/localconnectivityservice/dun/plugins/src/bt/DunBtListen.cpp Tue Sep 28 20:14:08 2010 +0800 @@ -142,9 +142,9 @@ User::Leave( retTemp ); } iStatus = KRequestPending; + iListenState = EBtListenStateListening; iListenSocket.Accept( iEntity.iBTPort, iStatus ); SetActive(); - iListenState = EBtListenStateListening; FTRACE(FPrint( _L( "CDunBtListen::IssueRequestL() complete") )); } diff -r 64200268cac2 -r 866b4af7ffbe localconnectivityservice/dun/plugins/src/usb/DunUsbConfig.cpp --- a/localconnectivityservice/dun/plugins/src/usb/DunUsbConfig.cpp Fri Sep 17 11:40:03 2010 +0800 +++ b/localconnectivityservice/dun/plugins/src/usb/DunUsbConfig.cpp Tue Sep 28 20:14:08 2010 +0800 @@ -117,9 +117,9 @@ return KErrNotReady; } iStatus = KRequestPending; + iConfigState = EUsbConfigStateWaiting; iAcmProperty.Subscribe( iStatus ); SetActive(); - iConfigState = EUsbConfigStateWaiting; FTRACE(FPrint( _L("CDunUsbConfig::IssueRequest() complete" ))); return KErrNone; } diff -r 64200268cac2 -r 866b4af7ffbe localconnectivityservice/dun/plugins/src/usb/DunUsbListen.cpp --- a/localconnectivityservice/dun/plugins/src/usb/DunUsbListen.cpp Fri Sep 17 11:40:03 2010 +0800 +++ b/localconnectivityservice/dun/plugins/src/usb/DunUsbListen.cpp Tue Sep 28 20:14:08 2010 +0800 @@ -182,11 +182,11 @@ } iDeviceStatePrev = iDeviceState; iStatus = KRequestPending; + iListenState = EUsbListenStateListening; iUsbServer.DeviceStateNotification( KDunUsbDeviceStateMask, iDeviceState, iStatus ); SetActive(); - iListenState = EUsbListenStateListening; FTRACE(FPrint( _L( "CDunUsbListen::Activate() complete" ) )); return KErrNone; } diff -r 64200268cac2 -r 866b4af7ffbe localconnectivityservice/dun/utils/src/DunDataPusher.cpp --- a/localconnectivityservice/dun/utils/src/DunDataPusher.cpp Fri Sep 17 11:40:03 2010 +0800 +++ b/localconnectivityservice/dun/utils/src/DunDataPusher.cpp Tue Sep 28 20:14:08 2010 +0800 @@ -194,7 +194,6 @@ FTRACE(FPrint( _L("CDunDataPusher::SendQueuedData() (ERROR) complete" ))); return EFalse; } - iPushState = EDunStateDataPushing; FTRACE(FPrint( _L("CDunDataPusher::SendQueuedData() complete (%d)" ), iEventQueue.Count() )); return ETrue; } @@ -338,21 +337,24 @@ if ( iComm ) { iStatus = KRequestPending; + iPushState = EDunStateDataPushing; iComm->Write( iStatus, *dataToPush ); - FTRACE(FPrint( _L("CDunDataPusher::ManageOneEvent() RComm Write() requested (buffer=0x%08X)" ), dataToPush )); + SetActive(); + FTRACE(FPrint( _L("CDunDataPusher::ManageOneEvent() RComm Write() requested for %d bytes... (buffer=0x%08X)" ), dataToPush->Length(), dataToPush )); } else if ( iSocket ) { iStatus = KRequestPending; + iPushState = EDunStateDataPushing; iSocket->Send( *dataToPush, 0, iStatus ); - FTRACE(FPrint( _L("CDunDataPusher::ManageOneEvent() RSocket Send() requested (buffer=0x%08X)" ), dataToPush )); + SetActive(); + FTRACE(FPrint( _L("CDunDataPusher::ManageOneEvent() RSocket Send() requested for %d bytes... (buffer=0x%08X)" ), dataToPush->Length(), dataToPush )); } else { FTRACE(FPrint( _L("CDunDataPusher::ManageOneEvent() (ERROR) complete" ))); return KErrGeneral; } - SetActive(); FTRACE(FPrint( _L("CDunDataPusher::ManageOneEvent() complete" ))); return KErrNone; } @@ -412,6 +414,7 @@ } // if ( !stop ) else // stop -> tear down connection { + iPushState = EDunStateIdle; TDunConnectionReason connReason; connReason.iReasonType = EDunReasonTypeRW; connReason.iContext = EDunMediaContextLocal; diff -r 64200268cac2 -r 866b4af7ffbe localconnectivityservice/dun/utils/src/DunDataWaiter.cpp --- a/localconnectivityservice/dun/utils/src/DunDataWaiter.cpp Fri Sep 17 11:40:03 2010 +0800 +++ b/localconnectivityservice/dun/utils/src/DunDataWaiter.cpp Tue Sep 28 20:14:08 2010 +0800 @@ -134,11 +134,11 @@ FTRACE(FPrint( _L("CDunDataWaiter::IssueRequest() (iComm) not initialized!" ) )); return KErrGeneral; } + iComm->ResetBuffers(); iStatus = KRequestPending; - iComm->ResetBuffers(); + iDataWaiterState = EDunStateDataWaiting; iComm->NotifyDataAvailable( iStatus ); SetActive(); - iDataWaiterState = EDunStateDataWaiting; FTRACE(FPrint( _L("CDunDataWaiter::IssueRequest() complete" ))); return KErrNone; } diff -r 64200268cac2 -r 866b4af7ffbe localconnectivityservice/dun/utils/src/DunDownstream.cpp --- a/localconnectivityservice/dun/utils/src/DunDownstream.cpp Fri Sep 17 11:40:03 2010 +0800 +++ b/localconnectivityservice/dun/utils/src/DunDownstream.cpp Tue Sep 28 20:14:08 2010 +0800 @@ -222,6 +222,7 @@ iPushData.iDataPusher->StopOneEvent( iBufferPtr ); } iTransferState = EDunStateIdle; + iOperationType = EDunOperationTypeUndefined; FTRACE(FPrint( _L("CDunDownstream::Stop() complete" ))); return KErrNone; } @@ -298,11 +299,13 @@ { case EDunReaderDownstream: iStatus = KRequestPending; + iTransferState = EDunStateTransferring; iNetwork->ReadOneOrMore( iStatus, *iBufferPtr ); SetActive(); FTRACE(FPrint( _L("CDunDownstream::IssueRequest() RComm ReadOneOrMore() requested" ) )); break; case EDunWriterDownstream: + iTransferState = EDunStateTransferring; AddToQueueAndSend( iBufferPtr, this ); break; default: @@ -310,8 +313,6 @@ return KErrGeneral; } - iTransferState = EDunStateTransferring; - FTRACE(FPrint( _L("CDunDownstream::IssueRequest() (Dir=%d) complete" ), iDirection)); return KErrNone; } @@ -374,6 +375,8 @@ // void CDunDownstream::DoCancel() { + FTRACE(FPrint( _L("CDunDownstream::DoCancel()" ))); + FTRACE(FPrint( _L("CDunDownstream::DoCancel() complete" ))); } // --------------------------------------------------------------------------- @@ -407,8 +410,6 @@ FTRACE(FPrint( _L("CDunDownstream::NotifyDataPushComplete() (continue) complete" ))); return; } - iTransferState = EDunStateIdle; - iOperationType = EDunOperationTypeUndefined; if ( !iPushData.iDataPusher ) { FTRACE(FPrint( _L("CDunDownstream::NotifyDataPushComplete() (iPushData.iDataPusher not initialized!) complete" ))); @@ -423,7 +424,8 @@ FTRACE(FPrint( _L("CDunDownstream::NotifyDataPushComplete() (find event)" ))); if ( foundIndex >= 0 ) { - // Restart the reading from Dataport only if in data mode + iTransferState = EDunStateIdle; + iOperationType = EDunOperationTypeUndefined; FTRACE(FPrint( _L("CDunDownstream::NotifyDataPushComplete() (issue request)" ))); if ( iPushData.iDataMode ) { @@ -443,9 +445,10 @@ { FTRACE(FPrint( _L("CDunDownstream::NotifyCommandModeStart()" ))); iPushData.iDataMode = EFalse; - // Now the data mode has ended. - // If read operation then cancel it. - if ( iOperationType == EDunOperationTypeRead ) + // Now the data mode has ended. If read operation then cancel it. + // Check for iTransferState here to minimize logging + if ( iTransferState==EDunStateTransferring && + iOperationType==EDunOperationTypeRead ) { Stop( EFalse ); } @@ -461,8 +464,14 @@ { FTRACE(FPrint( _L("CDunDownstream::NotifyCommandModeEnd()" ))); iPushData.iDataMode = ETrue; - // Command mode ends here so start reading from Dataport - iOperationType = EDunOperationTypeRead; - IssueRequest(); + // Command mode ends here so start reading from Dataport only if generic + // transferring state is not EDunStateIdle. This is a reduced form of having + // read pending -> reissue not needed OR write pending -> reissue not needed + // (NotifyDataPushComplete() will reissue). + if ( iTransferState == EDunStateIdle ) + { + iOperationType = EDunOperationTypeRead; // just in case + IssueRequest(); + } FTRACE(FPrint( _L("CDunDownstream::NotifyCommandModeEnd() complete" ))); } diff -r 64200268cac2 -r 866b4af7ffbe localconnectivityservice/dun/utils/src/DunSignalCopy.cpp --- a/localconnectivityservice/dun/utils/src/DunSignalCopy.cpp Fri Sep 17 11:40:03 2010 +0800 +++ b/localconnectivityservice/dun/utils/src/DunSignalCopy.cpp Tue Sep 28 20:14:08 2010 +0800 @@ -192,9 +192,9 @@ { FTRACE(FPrint( _L("CDunSignalCopy::IssueRequest() start waiting for change..." ) )); iStatus = KRequestPending; + iSignalCopyState = EDunStateSignalCopy; comm->NotifySignalChange( iStatus, iSignals, iListenSignals ); SetActive(); - iSignalCopyState = EDunStateSignalCopy; } FTRACE(FPrint( _L("CDunSignalCopy::IssueRequest() complete" ))); return KErrNone; diff -r 64200268cac2 -r 866b4af7ffbe localconnectivityservice/dun/utils/src/DunSignalNotify.cpp --- a/localconnectivityservice/dun/utils/src/DunSignalNotify.cpp Fri Sep 17 11:40:03 2010 +0800 +++ b/localconnectivityservice/dun/utils/src/DunSignalNotify.cpp Tue Sep 28 20:14:08 2010 +0800 @@ -165,9 +165,9 @@ { FTRACE(FPrint( _L("CDunSignalNotify::IssueRequest() start waiting for change..." ) )); iStatus = KRequestPending; + iSignalNotifyState = EDunStateSignalNotify; iNetwork->NotifySignalChange( iStatus, iSignals, iListenSignals ); SetActive(); - iSignalNotifyState = EDunStateSignalNotify; } FTRACE(FPrint( _L("CDunSignalNotify::IssueRequest() complete" ))); return KErrNone; @@ -382,4 +382,6 @@ // void CDunSignalNotify::DoCancel() { + FTRACE(FPrint( _L("CDunSignalNotify::DoCancel()" ) )); + FTRACE(FPrint( _L("CDunSignalNotify::DoCancel() complete" ) )); } diff -r 64200268cac2 -r 866b4af7ffbe localconnectivityservice/dun/utils/src/DunSignalWaiter.cpp --- a/localconnectivityservice/dun/utils/src/DunSignalWaiter.cpp Fri Sep 17 11:40:03 2010 +0800 +++ b/localconnectivityservice/dun/utils/src/DunSignalWaiter.cpp Tue Sep 28 20:14:08 2010 +0800 @@ -141,9 +141,9 @@ return KErrGeneral; } iStatus = KRequestPending; + iSignalWaiterState = EDunStateSignalWaiting; iComm->NotifySignalChange( iStatus, iSignals, KSignalDCEInputs ); SetActive(); - iSignalWaiterState = EDunStateSignalWaiting; FTRACE(FPrint( _L("CDunSignalWaiter::IssueRequest() complete" ))); return KErrNone; } diff -r 64200268cac2 -r 866b4af7ffbe localconnectivityservice/dun/utils/src/DunUpstream.cpp --- a/localconnectivityservice/dun/utils/src/DunUpstream.cpp Fri Sep 17 11:40:03 2010 +0800 +++ b/localconnectivityservice/dun/utils/src/DunUpstream.cpp Tue Sep 28 20:14:08 2010 +0800 @@ -121,6 +121,12 @@ FTRACE(FPrint( _L("CDunUpstream::InitializeForAtParsing() (trapped!) complete" ) )); return retTrap; } + // Note: the order of the added callbacks is important. When a mode change + // occurs, it is best to do the most important stuff with the first callback + // object and after this cleanups with the second. Example: Data mode start + // should stop command handling; first callback stops command handling, + // second callback stops multiplexer (doing this differently could cause the + // multiplexer to re-activate). atCmdHandler->AddCmdModeCallback( aCallbackUp ); atCmdHandler->AddCmdModeCallback( aCallbackDown ); iParseData.iDataMode = EFalse; @@ -189,6 +195,7 @@ } Cancel(); iTransferState = EDunStateIdle; + iOperationType = EDunOperationTypeUndefined; // Notify parent about inactivity if ( iActivityData.iActivityCallback && iActivityData.iNotified ) { @@ -279,13 +286,17 @@ if ( iComm ) { iStatus = KRequestPending; + iTransferState = EDunStateTransferring; iComm->ReadOneOrMore( iStatus, *iBufferPtr ); + SetActive(); FTRACE(FPrint( _L("CDunUpstream::IssueRequest() RComm ReadOneOrMore() requested" ) )); } else if ( iSocket ) { iStatus = KRequestPending; + iTransferState = EDunStateTransferring; iSocket->RecvOneOrMore( *iBufferPtr, 0, iStatus, iReadLengthSocket ); + SetActive(); FTRACE(FPrint( _L("CDunUpstream::IssueRequest() RSocket RecvOneOrMore() requested" ) )); } else @@ -296,7 +307,9 @@ break; case EDunWriterUpstream: iStatus = KRequestPending; + iTransferState = EDunStateTransferring; iNetwork->Write( iStatus, *iBufferPtr ); + SetActive(); FTRACE(FPrint( _L("CDunUpstream::IssueRequest() RComm Write() requested" ) )); break; default: @@ -304,9 +317,6 @@ return KErrGeneral; } - SetActive(); - iTransferState = EDunStateTransferring; - FTRACE(FPrint( _L("CDunUpstream::IssueRequest() (Dir=%d) complete" ), iDirection)); return KErrNone; } @@ -440,6 +450,8 @@ // void CDunUpstream::DoCancel() { + FTRACE(FPrint( _L("CDunUpstream::DoCancel()" ))); + FTRACE(FPrint( _L("CDunUpstream::DoCancel() complete" ))); } // --------------------------------------------------------------------------- @@ -450,6 +462,11 @@ void CDunUpstream::NotifyParserNeedsMoreData() { FTRACE(FPrint( _L("CDunUpstream::NotifyParserNeedsMoreData()" ))); + if ( iOperationType != EDunOperationTypeRead ) + { + FTRACE(FPrint( _L("CDunUpstream::NotifyParserNeedsMoreData() (not ready) complete" ))); + return; + } IssueRequest(); // iOperationType must be read here (don't set) FTRACE(FPrint( _L("CDunUpstream::NotifyParserNeedsMoreData() complete" ))); } @@ -550,15 +567,12 @@ iParseData.iDataMode = ETrue; // Stop processing (mandatory). // This will stop any possibly pending operations of - // CDunAtCmdHandler and CDunAtUrcHandler. CDunDownstream will take care of - // clearing (and stopping) non-callback write queues. + // CDunAtCmdHandler and CDunAtUrcHandler(s). CDunDownstream will take care + // of clearing (and stopping) non-callback write queues. StopAtCmdHandling(); - // The follow is needed because stopping the AT command handling here - // prevents the subsequent AT command handling notification to reach the - // NotifyAtCmdHandlingEnd() in this class (the notification starts from - // CDunAtCmdPusher's SetToIdleAndNotifyEnd()). - // So here we have to do the block "if ( aStartIndex < 0 )" in function - // NotifyAtCmdHandlingEnd(). + // The following is needed here because stopping the AT command handling + // causes CDunAtCmdHandler not to call NotifyParserNeedsMoreData(). + // In command mode iOperationType is always EDunOperationTypeRead. IssueRequest(); FTRACE(FPrint( _L("CDunUpstream::NotifyCommandModeEnd() complete" ))); } @@ -571,6 +585,7 @@ void CDunUpstream::NotifyEchoComplete() { FTRACE(FPrint( _L("CDunUpstream::NotifyEchoComplete()" ))); + // iOperationType is always EDunOperationTypeRead here IssueRequest(); FTRACE(FPrint( _L("CDunUpstream::NotifyEchoComplete() complete" ))); } diff -r 64200268cac2 -r 866b4af7ffbe mtpdataproviders/mtpimagedp/src/cmtpimagedpthumbnailcreator.cpp --- a/mtpdataproviders/mtpimagedp/src/cmtpimagedpthumbnailcreator.cpp Fri Sep 17 11:40:03 2010 +0800 +++ b/mtpdataproviders/mtpimagedp/src/cmtpimagedpthumbnailcreator.cpp Tue Sep 28 20:14:08 2010 +0800 @@ -65,20 +65,36 @@ { iThumbMgr->CancelRequest(iCurrentReq); } + delete iData; + iData = NULL; + delete iImgEnc; + iImgEnc = NULL; + #ifdef MTPTHUMBSCALING delete iScaler; + iScaler = NULL; #endif + delete iBitmap; + iBitmap = NULL; + delete iObjectSource; + iObjectSource = NULL; + delete iThumbMgr; + iThumbMgr = NULL; + if(iActiveSchedulerWait != NULL && iActiveSchedulerWait->IsStarted()) { *iCreationErr = KErrNotReady; iActiveSchedulerWait->AsyncStop(); } + delete iActiveSchedulerWait; + iActiveSchedulerWait = NULL; + OstTraceFunctionExit0( CMTPIMAGEDPTHUMBNAILCREATOR_CMTPIMAGEDPTHUMBNAILCREATOR_DES_EXIT ); } @@ -183,6 +199,7 @@ "CMTPImageDpThumbnailCreator::RunL(),EDoNotCreate; iState %d", iState ); delete iData; + iData = NULL; iData = HBufC8::NewL(1); } diff -r 64200268cac2 -r 866b4af7ffbe mtpdataproviders/mtppictbridgedp/src/cmtppictbridgedpgetformatcapabilities.cpp --- a/mtpdataproviders/mtppictbridgedp/src/cmtppictbridgedpgetformatcapabilities.cpp Fri Sep 17 11:40:03 2010 +0800 +++ b/mtpdataproviders/mtppictbridgedp/src/cmtppictbridgedpgetformatcapabilities.cpp Tue Sep 28 20:14:08 2010 +0800 @@ -56,6 +56,7 @@ { __FLOG(_L8(">> CMTPPictBridgeDpGetFormatCapabilities::ServiceL")); delete iCapabilityList; + iCapabilityList = NULL; iCapabilityList = CMTPTypeFormatCapabilityList::NewL(); iFormatCode = Request().Uint32(TMTPTypeRequest::ERequestParameter1); BuildFormatScriptL(); diff -r 64200268cac2 -r 866b4af7ffbe mtpdataproviders/mtppictbridgedp/src/cmtppictbridgedpgetobjectproplist.cpp --- a/mtpdataproviders/mtppictbridgedp/src/cmtppictbridgedpgetobjectproplist.cpp Fri Sep 17 11:40:03 2010 +0800 +++ b/mtpdataproviders/mtppictbridgedp/src/cmtppictbridgedpgetobjectproplist.cpp Tue Sep 28 20:14:08 2010 +0800 @@ -255,6 +255,7 @@ CleanupClosePushL( handles ); delete iHandles; + iHandles = NULL; iHandles = CMTPTypeArray::NewL( EMTPTypeAUINT32 ); do @@ -284,6 +285,7 @@ else if ( 0 == aDepth ) { delete iHandles; + iHandles = NULL; iHandles = CMTPTypeArray::NewL( EMTPTypeAUINT32 ); //empty array } else diff -r 64200268cac2 -r 866b4af7ffbe mtpfws/mtpfw/daemon/server/inc/cmtpserver.h --- a/mtpfws/mtpfw/daemon/server/inc/cmtpserver.h Fri Sep 17 11:40:03 2010 +0800 +++ b/mtpfws/mtpfw/daemon/server/inc/cmtpserver.h Tue Sep 28 20:14:08 2010 +0800 @@ -61,6 +61,11 @@ The MTP framework singletons. */ RMTPFramework iFrameworkSingletons; + + /** + Flag for the MTP framework singletons. + **/ + TBool iFrameworkSingletonsOpened; /** The active MTP client API session count. diff -r 64200268cac2 -r 866b4af7ffbe mtpfws/mtpfw/daemon/server/src/cmtpserver.cpp --- a/mtpfws/mtpfw/daemon/server/src/cmtpserver.cpp Fri Sep 17 11:40:03 2010 +0800 +++ b/mtpfws/mtpfw/daemon/server/src/cmtpserver.cpp Tue Sep 28 20:14:08 2010 +0800 @@ -77,9 +77,12 @@ OstTraceFunctionEntry0( CMTPSERVER_CMTPSERVER_DES_ENTRY ); delete iShutdown; iShutdown = NULL; - iFrameworkSingletons.ConnectionMgr().StopTransports(); - iFrameworkSingletons.DpController().UnloadDataProviders(); - iFrameworkSingletons.Close(); + if(iFrameworkSingletonsOpened) + { + iFrameworkSingletons.ConnectionMgr().StopTransports(); + iFrameworkSingletons.DpController().UnloadDataProviders(); + iFrameworkSingletons.Close(); + } REComSession::FinalClose(); OstTraceFunctionExit0( CMTPSERVER_CMTPSERVER_DES_EXIT ); } @@ -192,6 +195,7 @@ OstTraceFunctionEntry0( CMTPSERVER_CONSTRUCTL_ENTRY ); StartL(KMTPServerName); iFrameworkSingletons.OpenL(); + iFrameworkSingletonsOpened = ETrue; if (!iShutdown) { TRAPD(error, iShutdown = CMTPShutdown::NewL()); diff -r 64200268cac2 -r 866b4af7ffbe mtpfws/mtpfw/dataproviders/devdp/src/cmtpgetdevicepropdesc.cpp --- a/mtpfws/mtpfw/dataproviders/devdp/src/cmtpgetdevicepropdesc.cpp Fri Sep 17 11:40:03 2010 +0800 +++ b/mtpfws/mtpfw/dataproviders/devdp/src/cmtpgetdevicepropdesc.cpp Tue Sep 28 20:14:08 2010 +0800 @@ -422,9 +422,11 @@ iPropDesc = CMTPTypeDevicePropDesc::NewL(EMTPDevicePropCodeFunctionalID, 1, 0, NULL); delete iData; + iData = NULL; iData = GetGUIDL( MMTPFrameworkConfig::EDeviceDefaultFuncationalID ); iPropDesc->SetL(CMTPTypeDevicePropDesc::EFactoryDefaultValue, *iData); delete iData; + iData = NULL; iData = GetGUIDL(MMTPFrameworkConfig::EDeviceCurrentFuncationalID); iPropDesc->SetL(CMTPTypeDevicePropDesc::ECurrentValue, *iData); @@ -443,10 +445,12 @@ iPropDesc = CMTPTypeDevicePropDesc::NewL(EMTPDevicePropCodeModelID, 0, 0, NULL); delete iData; + iData = NULL; iData = GetGUIDL(MMTPFrameworkConfig::EDeviceDefaultModelID); iPropDesc->SetL(CMTPTypeDevicePropDesc::EFactoryDefaultValue, *iData); delete iData; + iData = NULL; iData = GetGUIDL(MMTPFrameworkConfig::EDeviceCurrentModelID); iPropDesc->SetL(CMTPTypeDevicePropDesc::ECurrentValue, *iData); diff -r 64200268cac2 -r 866b4af7ffbe mtpfws/mtpfw/dataproviders/devdp/src/cmtpgetdevicepropvalue.cpp --- a/mtpfws/mtpfw/dataproviders/devdp/src/cmtpgetdevicepropvalue.cpp Fri Sep 17 11:40:03 2010 +0800 +++ b/mtpfws/mtpfw/dataproviders/devdp/src/cmtpgetdevicepropvalue.cpp Tue Sep 28 20:14:08 2010 +0800 @@ -223,6 +223,7 @@ OstTraceFunctionEntry0( CMTPGETDEVICEPROPVALUE_SERVICEFUNCTIONALIDL_ENTRY ); delete iData; + iData = NULL; iData = GetGUIDL(MMTPFrameworkConfig::EDeviceCurrentFuncationalID); SendDataL(*iData); @@ -237,6 +238,7 @@ OstTraceFunctionEntry0( CMTPGETDEVICEPROPVALUE_SERVICEMODELIDL_ENTRY ); delete iData; + iData = NULL; iData = GetGUIDL(MMTPFrameworkConfig::EDeviceCurrentModelID); SendDataL(*iData); diff -r 64200268cac2 -r 866b4af7ffbe mtpfws/mtpfw/dataproviders/devdp/src/cmtpgetobjecthandles.cpp --- a/mtpfws/mtpfw/dataproviders/devdp/src/cmtpgetobjecthandles.cpp Fri Sep 17 11:40:03 2010 +0800 +++ b/mtpfws/mtpfw/dataproviders/devdp/src/cmtpgetobjecthandles.cpp Tue Sep 28 20:14:08 2010 +0800 @@ -114,6 +114,7 @@ iTimeoutCount = 0; delete iHandles; + iHandles = NULL; iHandles = CMTPTypeArray::NewL(EMTPTypeAUINT32); OstTraceExt2( TRACE_NORMAL, DUP2_CMTPGETOBJECTHANDLES_SERVICEL, diff -r 64200268cac2 -r 866b4af7ffbe mtpfws/mtpfw/dataproviders/devdp/src/cmtpgetserviceinfo.cpp --- a/mtpfws/mtpfw/dataproviders/devdp/src/cmtpgetserviceinfo.cpp Fri Sep 17 11:40:03 2010 +0800 +++ b/mtpfws/mtpfw/dataproviders/devdp/src/cmtpgetserviceinfo.cpp Tue Sep 28 20:14:08 2010 +0800 @@ -128,6 +128,7 @@ OstTraceFunctionEntry0( CMTPGETSERVICEINFO_BUILDSERVICEINFOL_ENTRY ); delete iServiceInfo; + iServiceInfo = NULL; iServiceInfo = CMTPTypeServiceInfo::NewL(); TUint32 serviceId = Request().Uint32(TMTPTypeRequest::ERequestParameter1); diff -r 64200268cac2 -r 866b4af7ffbe mtpfws/mtpfw/dataproviders/devdp/src/cmtpresetdevicepropvalue.cpp --- a/mtpfws/mtpfw/dataproviders/devdp/src/cmtpresetdevicepropvalue.cpp Fri Sep 17 11:40:03 2010 +0800 +++ b/mtpfws/mtpfw/dataproviders/devdp/src/cmtpresetdevicepropvalue.cpp Tue Sep 28 20:14:08 2010 +0800 @@ -239,6 +239,7 @@ { OstTraceFunctionEntry0( CMTPRESETDEVICEPROPVALUE_SERVICEFUNCTIONALIDL_ENTRY ); delete iData; + iData = NULL; iData = GetGUIDL( MMTPFrameworkConfig::EDeviceDefaultFuncationalID ); SaveGUID(MMTPFrameworkConfig::EDeviceCurrentFuncationalID, *iData); SendResponseL(EMTPRespCodeOK); diff -r 64200268cac2 -r 866b4af7ffbe mtpfws/mtpfw/dataproviders/dputility/src/cmtpgetformatcapabilities.cpp --- a/mtpfws/mtpfw/dataproviders/dputility/src/cmtpgetformatcapabilities.cpp Fri Sep 17 11:40:03 2010 +0800 +++ b/mtpfws/mtpfw/dataproviders/dputility/src/cmtpgetformatcapabilities.cpp Tue Sep 28 20:14:08 2010 +0800 @@ -48,6 +48,7 @@ void CMTPGetFormatCapabilities::ServiceL() { delete iCapabilityList; + iCapabilityList = NULL; iCapabilityList = CMTPTypeFormatCapabilityList::NewL(); iFormatCode = Request().Uint32(TMTPTypeRequest::ERequestParameter1); diff -r 64200268cac2 -r 866b4af7ffbe mtpfws/mtpfw/dataproviders/dputility/src/cmtpgetobjectproplist.cpp --- a/mtpfws/mtpfw/dataproviders/dputility/src/cmtpgetobjectproplist.cpp Fri Sep 17 11:40:03 2010 +0800 +++ b/mtpfws/mtpfw/dataproviders/dputility/src/cmtpgetobjectproplist.cpp Tue Sep 28 20:14:08 2010 +0800 @@ -278,6 +278,7 @@ CleanupClosePushL(handles); delete iHandles; + iHandles = NULL; iHandles = CMTPTypeArray::NewL(EMTPTypeAUINT32); do diff -r 64200268cac2 -r 866b4af7ffbe mtpfws/mtpfw/dataproviders/dputility/src/cmtpgetpartialobject.cpp --- a/mtpfws/mtpfw/dataproviders/dputility/src/cmtpgetpartialobject.cpp Fri Sep 17 11:40:03 2010 +0800 +++ b/mtpfws/mtpfw/dataproviders/dputility/src/cmtpgetpartialobject.cpp Tue Sep 28 20:14:08 2010 +0800 @@ -139,6 +139,7 @@ else { delete iFileObject; + iFileObject = NULL; iFileObject = CMTPTypeFile::NewL(iFramework.Fs(), iObjectInfo->DesC(CMTPObjectMetaData::ESuid), EFileRead, iLength, iOffset); SendDataL(*iFileObject); } diff -r 64200268cac2 -r 866b4af7ffbe mtpfws/mtpfw/dataproviders/proxydp/src/cmtpdeleteobjectproplist.cpp --- a/mtpfws/mtpfw/dataproviders/proxydp/src/cmtpdeleteobjectproplist.cpp Fri Sep 17 11:40:03 2010 +0800 +++ b/mtpfws/mtpfw/dataproviders/proxydp/src/cmtpdeleteobjectproplist.cpp Tue Sep 28 20:14:08 2010 +0800 @@ -92,6 +92,7 @@ OstTraceFunctionEntry0( CMTPDELETEOBJECTPROPLIST_SERVICEL_ENTRY ); delete iDeleteObjectPropList; + iDeleteObjectPropList = NULL; iTargetDps.Reset(); iSubDatasets.Reset(); diff -r 64200268cac2 -r 866b4af7ffbe mtpfws/mtpfw/dataproviders/proxydp/src/cmtpgetformatcapabilities.cpp --- a/mtpfws/mtpfw/dataproviders/proxydp/src/cmtpgetformatcapabilities.cpp Fri Sep 17 11:40:03 2010 +0800 +++ b/mtpfws/mtpfw/dataproviders/proxydp/src/cmtpgetformatcapabilities.cpp Tue Sep 28 20:14:08 2010 +0800 @@ -83,6 +83,7 @@ OstTraceFunctionEntry0( CMTPGETFORMATCAPABILITIES_SERVICEL_ENTRY ); delete iCapabilityList; + iCapabilityList = NULL; iCapabilityList = CMTPTypeFormatCapabilityList::NewL(); iTargetDps.Reset(); diff -r 64200268cac2 -r 866b4af7ffbe mtpfws/mtpfw/datatypes/src/cmtptypeserviceobjpropextnform.cpp --- a/mtpfws/mtpfw/datatypes/src/cmtptypeserviceobjpropextnform.cpp Fri Sep 17 11:40:03 2010 +0800 +++ b/mtpfws/mtpfw/datatypes/src/cmtptypeserviceobjpropextnform.cpp Tue Sep 28 20:14:08 2010 +0800 @@ -190,6 +190,7 @@ { case EFlat1Chunk: delete iChunkName; + iChunkName = NULL; iChunkName = CMTPTypeString::NewL(); ChunkAppendL(*iChunkName); break; diff -r 64200268cac2 -r 866b4af7ffbe mtpfws/mtpfw/src/cmtpconnectionmgr.cpp --- a/mtpfws/mtpfw/src/cmtpconnectionmgr.cpp Fri Sep 17 11:40:03 2010 +0800 +++ b/mtpfws/mtpfw/src/cmtpconnectionmgr.cpp Tue Sep 28 20:14:08 2010 +0800 @@ -169,6 +169,7 @@ { iTransport->Stop(*this); delete iTransport; + iTransport = NULL; iTransportCount--; iTransport = CMTPTransportPlugin::NewL(aTransport, aParameter); diff -r 64200268cac2 -r 866b4af7ffbe mtpfws/mtpfw/src/cmtpdeltadatamgr.cpp --- a/mtpfws/mtpfw/src/cmtpdeltadatamgr.cpp Fri Sep 17 11:40:03 2010 +0800 +++ b/mtpfws/mtpfw/src/cmtpdeltadatamgr.cpp Tue Sep 28 20:14:08 2010 +0800 @@ -104,7 +104,8 @@ OstTrace0( TRACE_ERROR, DUP1_CMTPDELTADATAMGR_CREATEDELTADATATABLEL, "PuidIndex on MTPDeltaDataTable create error!" )); } } - iDeltaTableBatched.Open(iDatabase, KMTPDeltaDataTable, RDbRowSet::EUpdatable); + LEAVEIFERROR(iDeltaTableBatched.Open(iDatabase, KMTPDeltaDataTable, RDbRowSet::EUpdatable), + OstTrace0( TRACE_ERROR, DUP1_CMTPDELTADATAMGR_CREATEDELTADATATABLEL, "MTPDeltaDataTable open error!" )); OstTraceFunctionExit0( CMTPDELTADATAMGR_CREATEDELTADATATABLEL_EXIT ); } @@ -132,7 +133,8 @@ OstTrace0( TRACE_ERROR, DUP1_CMTPDELTADATAMGR_CREATEANCHORIDTABLEL, "INDEX IdentifierIndex on AnchorIdTable create error!" )); } } - iAnchorTableBatched.Open(iDatabase, KAnchorIdTable, RDbRowSet::EUpdatable); + LEAVEIFERROR(iAnchorTableBatched.Open(iDatabase, KAnchorIdTable, RDbRowSet::EUpdatable), + OstTrace0( TRACE_ERROR, DUP1_CMTPDELTADATAMGR_CREATEANCHORIDTABLEL, "AnchorIdTable open error!" )); OstTraceFunctionExit0( CMTPDELTADATAMGR_CREATEANCHORIDTABLEL_EXIT ); } diff -r 64200268cac2 -r 866b4af7ffbe mtpfws/mtpfw/src/cmtpframeworkconfig.cpp --- a/mtpfws/mtpfw/src/cmtpframeworkconfig.cpp Fri Sep 17 11:40:03 2010 +0800 +++ b/mtpfws/mtpfw/src/cmtpframeworkconfig.cpp Tue Sep 28 20:14:08 2010 +0800 @@ -44,9 +44,14 @@ { //Save the AbnormalDown state to EFalse const TInt KNormalShutDownValue = 0; - iRepository->Set(EAbnormalDown, KNormalShutDownValue); - delete iRepository; + if( iRepository ) + { + iRepository->Set(EAbnormalDown, KNormalShutDownValue); + delete iRepository; + iRepository = NULL; + } + } EXPORT_C void CMTPFrameworkConfig::GetValueL(TParameter aParam, TDes& aValue) const diff -r 64200268cac2 -r 866b4af7ffbe mtpfws/mtpfw/src/cmtpobjectstore.cpp --- a/mtpfws/mtpfw/src/cmtpobjectstore.cpp Fri Sep 17 11:40:03 2010 +0800 +++ b/mtpfws/mtpfw/src/cmtpobjectstore.cpp Tue Sep 28 20:14:08 2010 +0800 @@ -237,7 +237,7 @@ { RDbTable temp; CleanupClosePushL(temp); - temp.Open(iDatabase, KSQLHandleTableName, RDbRowSet::EUpdatable); + User::LeaveIfError(temp.Open(iDatabase, KSQLHandleTableName, RDbRowSet::EUpdatable)); TUint32 tmpStorageID = 0; TBool bStorageAvailable = ETrue; diff -r 64200268cac2 -r 866b4af7ffbe mtpfws/mtpfw/src/cmtpreferencemgr.cpp --- a/mtpfws/mtpfw/src/cmtpreferencemgr.cpp Fri Sep 17 11:40:03 2010 +0800 +++ b/mtpfws/mtpfw/src/cmtpreferencemgr.cpp Tue Sep 28 20:14:08 2010 +0800 @@ -176,7 +176,7 @@ { CreateIndexL(); } - iBatched.Open(*iDatabase, KSQLReferenceTableName, RDbRowSet::EUpdatable); + User::LeaveIfError(iBatched.Open(*iDatabase, KSQLReferenceTableName, RDbRowSet::EUpdatable)); iBatched.SetIndex( KSQLReferenceIndexName ); } diff -r 64200268cac2 -r 866b4af7ffbe mtptransports/mtpptpiptransport/filterapi/interface/cptpiphostfilterinterface.h --- a/mtptransports/mtpptpiptransport/filterapi/interface/cptpiphostfilterinterface.h Fri Sep 17 11:40:03 2010 +0800 +++ b/mtptransports/mtpptpiptransport/filterapi/interface/cptpiphostfilterinterface.h Tue Sep 28 20:14:08 2010 +0800 @@ -37,7 +37,7 @@ #include -class CPTPIPHostFilterInterface : public MPTPIPHostFilter +class CPTPIPHostFilterInterface : public CBase, public MPTPIPHostFilter { public: IMPORT_C static CPTPIPHostFilterInterface* NewL(); diff -r 64200268cac2 -r 866b4af7ffbe mtptransports/mtpptpiptransport/ptpipcontroller/eabi/ptpipcontrolleru.def --- a/mtptransports/mtpptpiptransport/ptpipcontroller/eabi/ptpipcontrolleru.def Fri Sep 17 11:40:03 2010 +0800 +++ b/mtptransports/mtpptpiptransport/ptpipcontroller/eabi/ptpipcontrolleru.def Tue Sep 28 20:14:08 2010 +0800 @@ -21,6 +21,10 @@ _ZTV11CPTPIPTimer @ 20 NONAME _ZTV16CPTPIPController @ 21 NONAME _ZTV19CPTPIPSocketHandler @ 22 NONAME - _ZThn4_N16CPTPIPControllerD0Ev @ 23 NONAME - _ZThn4_N16CPTPIPControllerD1Ev @ 24 NONAME + _ZThn28_N16CPTPIPController10NewSocketLEv @ 23 NONAME + _ZThn28_N16CPTPIPController13SetDeviceGUIDER6TDesC8 @ 24 NONAME + _ZThn28_N16CPTPIPController13StopTransportEv @ 25 NONAME + _ZThn28_N16CPTPIPController14SocketAcceptedER14TRequestStatus @ 26 NONAME + _ZThn28_N16CPTPIPController21SetDeviceFriendlyNameEP7TDesC16 @ 27 NONAME + diff -r 64200268cac2 -r 866b4af7ffbe mtptransports/mtpptpiptransport/ptpipcontroller/inc/cptpipcontroller.h --- a/mtptransports/mtpptpiptransport/ptpipcontroller/inc/cptpipcontroller.h Fri Sep 17 11:40:03 2010 +0800 +++ b/mtptransports/mtpptpiptransport/ptpipcontroller/inc/cptpipcontroller.h Tue Sep 28 20:14:08 2010 +0800 @@ -73,7 +73,7 @@ }; -class CPTPIPController : public MPTPIPController,public CActive +class CPTPIPController : public CActive, public MPTPIPController { public: IMPORT_C static CPTPIPController* NewL(); diff -r 64200268cac2 -r 866b4af7ffbe mtptransports/mtpptpiptransport/ptpipcontroller/src/cptpipcontroller.cpp --- a/mtptransports/mtpptpiptransport/ptpipcontroller/src/cptpipcontroller.cpp Fri Sep 17 11:40:03 2010 +0800 +++ b/mtptransports/mtpptpiptransport/ptpipcontroller/src/cptpipcontroller.cpp Tue Sep 28 20:14:08 2010 +0800 @@ -341,6 +341,7 @@ { OstTraceFunctionEntry0( CPTPIPCONTROLLER_SETDEVICEFRIENDLYNAME_ENTRY ); delete iDeviceFriendlyName; + iDeviceFriendlyName = NULL; TRAPD(err, iDeviceFriendlyName=aDeviceFreindlyName->AllocL());