diff -r 85e0c0339cc3 -r 883e91c086aa localconnectivityservice/dun/atext/src/DunAtCmdPusher.cpp --- a/localconnectivityservice/dun/atext/src/DunAtCmdPusher.cpp Fri Jun 11 14:27:06 2010 +0300 +++ b/localconnectivityservice/dun/atext/src/DunAtCmdPusher.cpp Tue Jul 06 15:13:34 2010 +0300 @@ -103,19 +103,24 @@ // Starts AT command handling // --------------------------------------------------------------------------- // -TInt CDunAtCmdPusher::IssueRequest( TDesC8& aCommand, TBool aNormalMode ) +TInt CDunAtCmdPusher::IssueRequest( TDesC8& aInput, TBool aNormalMode ) { FTRACE(FPrint( _L("CDunAtCmdPusher::IssueRequest()") )); FTRACE(FPrint( _L("CDunAtCmdPusher::IssueRequest() send ATEXT:") )); - FTRACE(FPrintRaw(aCommand) ); + FTRACE(FPrintRaw(aInput) ); if ( iAtPushState!=EDunStateIdle && aNormalMode ) { FTRACE(FPrint( _L("CDunAtCmdPusher::IssueRequest() (not ready) complete") )); return KErrNotReady; } + if ( iDownstream->IsDataInQueue(&iRecvBuffer) ) + { + FTRACE(FPrint( _L("CDunAtCmdPusher::IssueRequest() (in queue!) complete") )); + return KErrGeneral; + } iStatus = KRequestPending; iAtCmdExt->HandleCommand( iStatus, - aCommand, + aInput, iRecvBuffer, iReplyLeftPckg, iReplyTypePckg ); @@ -132,6 +137,7 @@ TInt CDunAtCmdPusher::Stop() { FTRACE(FPrint( _L("CDunAtCmdPusher::Stop()") )); + SetEndOfCmdLine(); if ( iAtPushState != EDunStateAtCmdPushing ) { FTRACE(FPrint( _L("CDunAtCmdHandler::Stop() (not ready) complete" ))); @@ -142,7 +148,6 @@ // idle eventually), cancel the actual operation in DoCancel() Cancel(); iAtPushState = EDunStateIdle; - SetEndOfCmdLine(); FTRACE(FPrint( _L("CDunAtCmdPusher::Stop() complete") )); return KErrNone; } @@ -480,8 +485,9 @@ // First check if error or stop condition detected if ( iReplyType==EReplyTypeError || iStop ) { + SetEndOfCmdLine(); + iAtPushState = EDunStateIdle; iCallback->NotifyEndOfCmdLineProcessing(); - iAtPushState = EDunStateIdle; FTRACE(FPrint( _L("CDunAtCmdPusher::NotifyDataPushComplete() (error reply) complete") )); return; }