diff -r f63038272f30 -r 6a1fe72036e3 bluetoothengine/btsac/src/btsacStateListening.cpp --- a/bluetoothengine/btsac/src/btsacStateListening.cpp Mon Jan 18 20:28:57 2010 +0200 +++ b/bluetoothengine/btsac/src/btsacStateListening.cpp Tue Jan 26 12:06:42 2010 +0200 @@ -203,7 +203,7 @@ if (err) { TRACE_INFO((_L("CBtsacListening::GAVDP_ConfigurationConfirm() Listen returned error:%d."), err)) - ResetGavdp(EGavdpResetReasonGeneral); + ResetGavdp(); return; } if(iInitializationProcedure == EInitProcedureWaitingConfConfirmed) @@ -269,13 +269,14 @@ } if(iGavdpResetReason != EGavdpResetReasonNone) { - ResetGavdp(iGavdpResetReason); + ResetGavdp(); } else { GoListen(); } - if(iDisconnectReason == KErrDisconnected || iDisconnectReason == KErrHCILinkDisconnection) + if((iDisconnectReason == KErrDisconnected || iDisconnectReason == KErrHCILinkDisconnection) && + iPendingRequests == KRequestNone) { if(remoteAddr != TBTDevAddr()) { @@ -325,7 +326,7 @@ { // Shutdown failed, reset gavdp TRACE_INFO((_L("CBtsacListening::GoListen(), error = %d."), err)) - ResetGavdp(EGavdpResetReasonGeneral); + ResetGavdp(); } } @@ -333,21 +334,18 @@ // CBtsacListening::ResetGavdp // ----------------------------------------------------------------------------- // -TInt CBtsacListening::ResetGavdp(TBTSACGavdpResetReason aReason) +TInt CBtsacListening::ResetGavdp() { TRACE_FUNC Parent().iGavdp->Close(); if( Parent().iGavdp->Open() == KErrNone ) { iInitializationProcedure = EInitProcedureWaitingConfConfirmed; - if(aReason != EGavdpResetReasonCancelOpenAudio) - { - if(iPendingRequests == KRequestNone) - { - TRACE_INFO((_L("CBtsacListening::ResetGavdp() Remote Addr reseted."))) - Parent().SetRemoteAddr(TBTDevAddr()); - } - } + if(iPendingRequests == KRequestNone) + { + TRACE_INFO((_L("CBtsacListening::ResetGavdp() Remote Addr reseted."))) + Parent().SetRemoteAddr(TBTDevAddr()); + } return Parent().iGavdp->RegisterSEPs(*Parent().iLocalSEPs, Parent().iStreamer->GetCaps()); } else @@ -432,7 +430,7 @@ // KErrDied -13 // KErrInUse -14 { - ResetGavdp(EGavdpResetReasonGeneral); + ResetGavdp(); break; } }