Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5b26cc48 authored by Sunny Kapdi's avatar Sunny Kapdi Committed by Zhihai Xu
Browse files

Fixes random host disconnection after establishing connection

Host starts encryption twice when the remote device is
already paired. The host sends disconnect when the
second encryption attempt returns failure. This fix
avoids duplicate encryption attempt.

bug:11450719
Change-Id: I8ec5c4a953180ec17585aece757810421bc44aae
parent da4da0cd
Loading
Loading
Loading
Loading
+10 −4
Original line number Diff line number Diff line
@@ -1177,12 +1177,18 @@ tBTM_STATUS btm_ble_set_encryption (BD_ADDR bd_addr, void *p_ref_data, UINT8 lin
        case BTM_BLE_SEC_ENCRYPT:
            if (link_role == BTM_ROLE_MASTER)
            {
                if(p_rec->sec_state == BTM_SEC_STATE_ENCRYPTING) {
                    BTM_TRACE_DEBUG0 ("State is already encrypting::");
                    cmd = BTM_CMD_STARTED;
                }
                else {
                    /* start link layer encryption using the security info stored */
                    if (btm_ble_start_encrypt(bd_addr, FALSE, NULL))
                    {
                        p_rec->sec_state = BTM_SEC_STATE_ENCRYPTING;
                        cmd = BTM_CMD_STARTED;
                    }
                }
                break;
            }
            /* if salve role then fall through to call SMP_Pair below which will send a