bluetooth/btstack/secman/secman.cpp
branchRCL_3
changeset 12 9b6d3ca0c601
parent 11 20fda83a6398
child 16 9f17f914e828
equal deleted inserted replaced
11:20fda83a6398 12:9b6d3ca0c601
   554 
   554 
   555 	CPhysicalLink* link = iPhysicalLinksManager->FindPhysicalLink(aAddr);
   555 	CPhysicalLink* link = iPhysicalLinksManager->FindPhysicalLink(aAddr);
   556 	__ASSERT_ALWAYS(link, PANIC(KBTSecPanic, EBTSecPhysicalLinkMissing));
   556 	__ASSERT_ALWAYS(link, PANIC(KBTSecPanic, EBTSecPhysicalLinkMissing));
   557 	__ASSERT_DEBUG(!link->InstanceNumericComparator(), PANIC(KBTSecPanic, EBTSecConnectionNumericComparisonTwice));
   557 	__ASSERT_DEBUG(!link->InstanceNumericComparator(), PANIC(KBTSecPanic, EBTSecConnectionNumericComparisonTwice));
   558 	__ASSERT_DEBUG(!link->InstanceUserConfirmer(), PANIC(KBTSecPanic, EBTSecConnectionUserConfirmationTwice));
   558 	__ASSERT_DEBUG(!link->InstanceUserConfirmer(), PANIC(KBTSecPanic, EBTSecConnectionUserConfirmationTwice));
   559 	if(link->InstanceNumericComparator())
   559 	if(link->InstanceNumericComparator() || link->InstanceUserConfirmer())
   560 		{
   560 		{
   561 		return;
   561 		return;
   562 		}
   562 		}
   563 
   563 
   564 	if(link->AuthWithMITM())
   564 	if(link->AuthWithMITM())
   580 				TRAP_IGNORE(iCommandController->UserConfirmationRequestNegativeReplyL(aAddr));
   580 				TRAP_IGNORE(iCommandController->UserConfirmationRequestNegativeReplyL(aAddr));
   581 				return;// No passkey or comparison dialogs; disconnect instead
   581 				return;// No passkey or comparison dialogs; disconnect instead
   582 				}
   582 				}
   583 			}
   583 			}
   584 		}
   584 		}
   585 	else if (!link->IsPairingExpected())
   585 	else if (!link->IsPairingExpected()
       
   586 			|| ((link->AuthenticationRequirement() == EMitmNotReqDedicatedBonding 
       
   587 					|| link->AuthenticationRequirement() == EMitmReqDedicatedBonding)
       
   588 				&& !IsDedicatedBondingAttempted(aAddr)))
   586 		{
   589 		{
   587 		TRAPD(err,link->NewUserConfirmerL(aAddr, *this, ETrue));
   590 		TRAPD(err,link->NewUserConfirmerL(aAddr, *this, ETrue));
   588 		if(err)
   591 		if(err)
   589 			{
   592 			{
   590 			if(requester)
   593 			if(requester)