Diff between 2a8c76faaf0b17964f7410e6ea034e559a20aa19 and cac78035f18a9544352a99adb8a4b7634515d9d7

Changed Files

File Additions Deletions Status
plugins/hciops.c +5 -1 modified
plugins/mgmtops.c +15 -8 modified
src/event.c +0 -17 modified
src/event.h +0 -2 modified

Full Patch

diff --git a/plugins/hciops.c b/plugins/hciops.c
index b82d32d..435e61a 100644
--- a/plugins/hciops.c
+++ b/plugins/hciops.c
@@ -889,6 +889,8 @@ static int disconnect_addr(int index, bdaddr_t *dba, uint8_t reason)
 static void bonding_complete(struct dev_info *dev, struct bt_conn *conn,
 								uint8_t status)
 {
+	struct btd_adapter *adapter;
+
 	DBG("status 0x%02x", status);
 
 	if (conn->io != NULL) {
@@ -901,7 +903,9 @@ static void bonding_complete(struct dev_info *dev, struct bt_conn *conn,
 
 	conn->bonding_initiator = FALSE;
 
-	btd_event_bonding_complete(&dev->bdaddr, &conn->bdaddr, status);
+	adapter = manager_find_adapter(&dev->bdaddr);
+	if (adapter)
+		adapter_bonding_complete(adapter, &conn->bdaddr, status);
 }
 
 static int get_auth_info(int index, bdaddr_t *bdaddr, uint8_t *auth)
diff --git a/plugins/mgmtops.c b/plugins/mgmtops.c
index 864f433..cbe1ff3 100644
--- a/plugins/mgmtops.c
+++ b/plugins/mgmtops.c
@@ -350,6 +350,16 @@ static void mgmt_new_settings(int sk, uint16_t index, void *buf, size_t len)
 	info->current_settings = settings;
 }
 
+static void bonding_complete(struct controller_info *info, bdaddr_t *bdaddr,
+								uint8_t status)
+{
+	struct btd_adapter *adapter;
+
+	adapter = manager_find_adapter(&info->bdaddr);
+	if (adapter != NULL)
+		adapter_bonding_complete(adapter, bdaddr, status);
+}
+
 static void mgmt_new_link_key(int sk, uint16_t index, void *buf, size_t len)
 {
 	struct mgmt_ev_new_link_key *ev = buf;
@@ -382,7 +392,7 @@ static void mgmt_new_link_key(int sk, uint16_t index, void *buf, size_t len)
 						ev->key.val, ev->key.type,
 						ev->key.pin_len);
 
-	btd_event_bonding_complete(&info->bdaddr, &ev->key.bdaddr, 0);
+	bonding_complete(info, &ev->key.bdaddr, 0);
 }
 
 static void mgmt_device_connected(int sk, uint16_t index, void *buf, size_t len)
@@ -461,8 +471,7 @@ static void mgmt_connect_failed(int sk, uint16_t index, void *buf, size_t len)
 	btd_event_conn_failed(&info->bdaddr, &ev->addr.bdaddr, ev->status);
 
 	/* In the case of security mode 3 devices */
-	btd_event_bonding_complete(&info->bdaddr, &ev->addr.bdaddr,
-								ev->status);
+	bonding_complete(info, &ev->addr.bdaddr, ev->status);
 }
 
 static int mgmt_pincode_reply(int index, bdaddr_t *bdaddr, const char *pin,
@@ -909,8 +918,7 @@ static void disconnect_complete(int sk, uint16_t index, void *buf, size_t len)
 
 	btd_event_disconn_complete(&info->bdaddr, &rp->bdaddr);
 
-	btd_event_bonding_complete(&info->bdaddr, &rp->bdaddr,
-						HCI_CONNECTION_TERMINATED);
+	bonding_complete(info, &rp->bdaddr, HCI_CONNECTION_TERMINATED);
 }
 
 static void pair_device_complete(int sk, uint16_t index, void *buf, size_t len)
@@ -935,8 +943,7 @@ static void pair_device_complete(int sk, uint16_t index, void *buf, size_t len)
 
 	info = &controllers[index];
 
-	btd_event_bonding_complete(&info->bdaddr, &rp->addr.bdaddr,
-								rp->status);
+	bonding_complete(info, &rp->addr.bdaddr, rp->status);
 }
 
 static void get_connections_complete(int sk, uint16_t index, void *buf,
@@ -1208,7 +1215,7 @@ static void mgmt_auth_failed(int sk, uint16_t index, void *buf, size_t len)
 
 	info = &controllers[index];
 
-	btd_event_bonding_complete(&info->bdaddr, &ev->bdaddr, ev->status);
+	bonding_complete(info, &ev->bdaddr, ev->status);
 }
 
 static void mgmt_local_name_changed(int sk, uint16_t index, void *buf, size_t len)
diff --git a/src/event.c b/src/event.c
index 2be4bfe..6854990 100644
--- a/src/event.c
+++ b/src/event.c
@@ -204,23 +204,6 @@ int btd_event_user_notify(bdaddr_t *sba, bdaddr_t *dba, uint32_t passkey)
 								FALSE, NULL);
 }
 
-void btd_event_bonding_complete(bdaddr_t *local, bdaddr_t *peer,
-							uint8_t status)
-{
-	struct btd_adapter *adapter;
-	struct btd_device *device;
-	gboolean create;
-
-	DBG("status 0x%02x", status);
-
-	create = status ? FALSE : TRUE;
-
-	if (!get_adapter_and_device(local, peer, &adapter, &device, create))
-		return;
-
-	adapter_bonding_complete(adapter, peer, status);
-}
-
 void btd_event_simple_pairing_complete(bdaddr_t *local, bdaddr_t *peer,
 								uint8_t status)
 {
diff --git a/src/event.h b/src/event.h
index 1f352f8..708eeb9 100644
--- a/src/event.h
+++ b/src/event.h
@@ -32,8 +32,6 @@ void btd_event_remote_name(bdaddr_t *local, bdaddr_t *peer, char *name);
 void btd_event_conn_complete(bdaddr_t *local, bdaddr_t *peer);
 void btd_event_conn_failed(bdaddr_t *local, bdaddr_t *peer, uint8_t status);
 void btd_event_disconn_complete(bdaddr_t *local, bdaddr_t *peer);
-void btd_event_bonding_complete(bdaddr_t *local, bdaddr_t *peer,
-							uint8_t status);
 void btd_event_simple_pairing_complete(bdaddr_t *local, bdaddr_t *peer, uint8_t status);
 void btd_event_returned_link_key(bdaddr_t *local, bdaddr_t *peer);
 int btd_event_user_confirm(bdaddr_t *sba, bdaddr_t *dba, uint32_t passkey);