Diff between 11ec0c1e5e8610f1f50ee59d9d72dbd5ad11d612 and e88d1f041fa84836d46c39748461de84d51c1226

Changed Files

File Additions Deletions Status
src/event.c +0 -16 modified
src/event.h +0 -1 modified
src/mgmt.c +18 -3 modified

Full Patch

diff --git a/src/event.c b/src/event.c
index 00119d3..29931a3 100644
--- a/src/event.c
+++ b/src/event.c
@@ -276,22 +276,6 @@ int btd_event_ltk_notify(bdaddr_t *local, bdaddr_t *peer, uint8_t bdaddr_type,
 	return 0;
 }
 
-void btd_event_disconn_complete(bdaddr_t *local, bdaddr_t *peer)
-{
-	struct btd_adapter *adapter;
-	struct btd_device *device;
-
-	DBG("");
-
-	if (!get_adapter_and_device(local, peer, &adapter, &device, FALSE))
-		return;
-
-	if (!device)
-		return;
-
-	adapter_remove_connection(adapter, device);
-}
-
 void btd_event_device_blocked(bdaddr_t *local, bdaddr_t *peer)
 {
 	struct btd_adapter *adapter;
diff --git a/src/event.h b/src/event.h
index f98669c..ddaa24e 100644
--- a/src/event.h
+++ b/src/event.h
@@ -24,7 +24,6 @@
 
 void btd_event_remote_name(const bdaddr_t *local, bdaddr_t *peer,
 							const char *name);
-void btd_event_disconn_complete(bdaddr_t *local, bdaddr_t *peer);
 void btd_event_returned_link_key(bdaddr_t *local, bdaddr_t *peer);
 void btd_event_device_blocked(bdaddr_t *local, bdaddr_t *peer);
 void btd_event_device_unblocked(bdaddr_t *local, bdaddr_t *peer);
diff --git a/src/mgmt.c b/src/mgmt.c
index ff33335..c32e756 100644
--- a/src/mgmt.c
+++ b/src/mgmt.c
@@ -549,6 +549,8 @@ static void mgmt_device_disconnected(int sk, uint16_t index, void *buf,
 {
 	struct mgmt_ev_device_disconnected *ev = buf;
 	struct controller_info *info;
+	struct btd_adapter *adapter;
+	struct btd_device *device;
 	char addr[18];
 	uint8_t reason;
 
@@ -573,7 +575,12 @@ static void mgmt_device_disconnected(int sk, uint16_t index, void *buf,
 
 	info = &controllers[index];
 
-	btd_event_disconn_complete(&info->bdaddr, &ev->addr.bdaddr);
+	if (!get_adapter_and_device(&info->bdaddr, &ev->addr.bdaddr,
+						&adapter, &device, false))
+		return;
+
+	if (device)
+		adapter_remove_connection(adapter, device);
 }
 
 static void mgmt_connect_failed(int sk, uint16_t index, void *buf, size_t len)
@@ -1212,6 +1219,8 @@ static void disconnect_complete(int sk, uint16_t index, uint8_t status,
 {
 	struct mgmt_rp_disconnect *rp = buf;
 	struct controller_info *info;
+	struct btd_adapter *adapter;
+	struct btd_device *device;
 	char addr[18];
 
 	if (len < sizeof(*rp)) {
@@ -1235,9 +1244,15 @@ static void disconnect_complete(int sk, uint16_t index, uint8_t status,
 
 	info = &controllers[index];
 
-	btd_event_disconn_complete(&info->bdaddr, &rp->addr.bdaddr);
+	if (!get_adapter_and_device(&info->bdaddr, &rp->addr.bdaddr,
+						&adapter, &device, false))
+		return;
+
+	if (device)
+		adapter_remove_connection(adapter, device);
 
-	bonding_complete(info, &rp->addr.bdaddr, MGMT_STATUS_DISCONNECTED);
+	adapter_bonding_complete(adapter, &rp->addr.bdaddr,
+						MGMT_STATUS_DISCONNECTED);
 }
 
 static void pair_device_complete(int sk, uint16_t index, uint8_t status,