From 4c838a11c5a3b6bd40ad9f6050e06bb305772235 Mon Sep 17 00:00:00 2001 From: Lukasz Rymanowski Date: Tue, 17 Feb 2015 23:56:34 +0100 Subject: [PATCH] android/bluetooth: Fix enabling secure connection Current code works fine for controllers supporting BR/EDR secure connections. We want to have LE Secure connection enabled also for controllers which does not support BR/EDR secure connections. For this we need to set secure connection in the kernel just after LE is enabled (if requested on register) --- android/bluetooth.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/android/bluetooth.c b/android/bluetooth.c index 4ce3b9493..45cac5f38 100644 --- a/android/bluetooth.c +++ b/android/bluetooth.c @@ -3390,9 +3390,6 @@ static void read_info_complete(uint8_t status, uint16_t length, if (missing_settings & MGMT_SETTING_SSP) set_mode(MGMT_OP_SET_SSP, 0x01); - if (missing_settings & MGMT_SETTING_SECURE_CONN) - set_mode(MGMT_OP_SET_SECURE_CONN, 0x01); - if (missing_settings & MGMT_SETTING_BONDABLE) set_mode(MGMT_OP_SET_BONDABLE, 0x01); @@ -5295,6 +5292,10 @@ bool bt_bluetooth_register(struct ipc *ipc, uint8_t mode) goto failed; } + /* Requested mode is set now, let's enable secure connection */ + if (missing_settings & MGMT_SETTING_SECURE_CONN) + set_mode(MGMT_OP_SET_SECURE_CONN, 0x01); + /* Set initial default name */ if (!adapter.name) { adapter.name = g_strdup(bt_config_get_model()); -- 2.47.3