diff -r 98a7181d2ce7 -r 8b5d60ce1e94 datacommsserver/esockserver/ssock/ss_connselect.cpp --- a/datacommsserver/esockserver/ssock/ss_connselect.cpp Fri Mar 12 15:49:41 2010 +0200 +++ b/datacommsserver/esockserver/ssock/ss_connselect.cpp Mon Mar 15 12:45:15 2010 +0200 @@ -104,13 +104,23 @@ break; case TEBase::TError::EId: { + TEBase::TError& error = message_cast(aCFMessage); if (iSelectionStatus==ERequestingCommsBinder) - { - CommsBinderRequestError(aSender, message_cast(aCFMessage)); - } + { + CommsBinderRequestError(aSender,error); + } + else if(error.iMsgId == TCFDataClient::TBindToComplete::Id()) + { + if (KErrNone==iOriginalError) + { + iOriginalError = error.iValue; + } + // Send TCFServiceProvider::TBindToComplete to complete BinderRequest + __ASSERT_DEBUG(!iTopMcprId.IsNull(), User::Panic(KSpecAssert_ESockSSockscnslc, 43)); //iTopMcprId must be selected by now! + RNodeInterface::OpenPostMessageClose(Id(), iTopMcprId, TCFServiceProvider::TBindToComplete(error.iValue).CRef()); + } else - { - TEBase::TError& error = message_cast(aCFMessage); + { if (error.iMsgId == TCFSelector::TSimpleSelect::Id() || error.iMsgId == TCFSelector::TSelect::Id()) { @@ -206,10 +216,13 @@ } else if ( aCFMessage.IsMessage() ) { - __ASSERT_DEBUG(KErrNone==message_cast(aCFMessage).iValue || iRequestingNode==aSender, User::Panic(KSpecAssert_ESockSSockscnslc, 12)); - __ASSERT_DEBUG(KErrNone==message_cast(aCFMessage).iValue || iSelectionStatus==ERequestingCommsBinder || iSelectionStatus==EIdle, User::Panic(KSpecAssert_ESockSSockscnslc, 13)); - __ASSERT_DEBUG(KErrNone==message_cast(aCFMessage).iValue || !iTopMcprId.IsNull(), User::Panic(KSpecAssert_ESockSSockscnslc, 14)); //iTopMcprId must be selected by now! - RNodeInterface::OpenPostMessageClose(Id(), iTopMcprId, aCFMessage); + __ASSERT_DEBUG(iRequestingNode==aSender, User::Panic(KSpecAssert_ESockSSockscnslc, 12)); + __ASSERT_DEBUG(iSelectionStatus==ERequestingCommsBinder || iSelectionStatus==EIdle, User::Panic(KSpecAssert_ESockSSockscnslc, 13)); + __ASSERT_DEBUG(!iTopMcprId.IsNull(), User::Panic(KSpecAssert_ESockSSockscnslc, 14)); //iTopMcprId must be selected by now! + + // Notify the service provider to complete binding activity (TCFServiceProvider::TCommsBinderRequest) + RNodeInterface::OpenPostMessageClose(Id(), iTopMcprId, TCFServiceProvider::TBindToComplete().CRef()); + } else if ( aCFMessage.IsMessage() ) {