diff -r 43824b19ee35 -r 837dcc42fd6a bluetoothengine/btmac/src/BTMonoCmdHandler/HfpAtCmdhandler.cpp --- a/bluetoothengine/btmac/src/BTMonoCmdHandler/HfpAtCmdhandler.cpp Fri May 14 16:01:46 2010 +0300 +++ b/bluetoothengine/btmac/src/BTMonoCmdHandler/HfpAtCmdhandler.cpp Thu May 27 13:01:44 2010 +0300 @@ -63,7 +63,7 @@ } iATExtClient.HandleCommand(iCommander->iStatus, iCmdBuffer, iReplyBuffer, iRemainingReplyLengthPckg, iReplyTypePckg); - iCommander->GoActive(); + iCommander->GoActive(); } void CHFPAtCmdHandler::RequestCompletedL(CBtmcActive& aActive, TInt aErr) @@ -74,32 +74,37 @@ { case EHandleCommandRequest: { - if(err == KErrNone) - { - if (iRemainingReplyLengthPckg()) - { - /*RBuf8 reply2; - reply2.CreateL(iRemainingReplyLengthPckg() + iReplyBuffer.Length()); - err = iATExtClient.GetNextPartOfReply(reply2, iRemainingReplyLengthPckg); - if (!err) + if(err == KErrNone) + { + if (iRemainingReplyLengthPckg()) + { + TRACE_INFO((_L8("reply '%S'"), &iReplyBuffer)) + iObserver.ATExtHandleReplyReceivedL(err, iReplyBuffer); + do { - reply2.Insert(0, iReplyBuffer); + TRACE_INFO((_L8("iRemainingReplyLength '%d'"), iRemainingReplyLengthPckg())) + RBuf8 reply; + reply.CreateL(iRemainingReplyLengthPckg()); + err = iATExtClient.GetNextPartOfReply(iRecvBuffer, iRemainingReplyLengthPckg()); + if (!err) + { + reply.Insert(0, iRecvBuffer); + } + TRACE_INFO((_L8("reply '%S'"), &reply)) + iObserver.ATExtHandleReplyReceivedL(err, reply); + reply.Close(); } - TRACE_INFO((_L8("reply '%S'"), &reply2)) - iObserver.ATExtHandleCommandCompletedL(err, reply2); - reply2.Close();*/ - iATExtClient.GetNextPartOfReply( iRecvBuffer, - iRemainingReplyLength ); - } - else - { + while (iRemainingReplyLengthPckg()); + } + else + { TRACE_INFO((_L8("reply '%S'"), &iReplyBuffer)) - iObserver.ATExtHandleCommandCompletedL(err, iReplyBuffer); - } - } + iObserver.ATExtHandleReplyReceivedL(err, iReplyBuffer); + } + } else { - iObserver.ATExtHandleCommandCompletedL(err, iSystemReply); + iObserver.ATExtHandleReplyReceivedL(err, iSystemReply); } break; }