Diff between 97f5e13982dfea6f90e72ac11ff88d8f96a10e36 and a5302fdae6a4d38f3e55837609ce2d8ec3b0e798

Changed Files

File Additions Deletions Status
src/event.c +17 -0 modified
src/event.h +1 -0 modified

Full Patch

diff --git a/src/event.c b/src/event.c
index 136ad77..06f33d3 100644
--- a/src/event.c
+++ b/src/event.c
@@ -526,6 +526,23 @@ void btd_event_device_unblocked(bdaddr_t *local, bdaddr_t *peer)
 	device_unblock(conn, device, FALSE, TRUE);
 }
 
+void btd_event_device_unpaired(bdaddr_t *local, bdaddr_t *peer)
+{
+	struct btd_adapter *adapter;
+	struct btd_device *device;
+	DBusConnection *conn = get_dbus_connection();
+
+	if (!get_adapter_and_device(local, peer, &adapter, &device, FALSE))
+		return;
+
+	device_set_temporary(device, TRUE);
+
+	if (device_is_connected(device))
+		device_request_disconnect(device, NULL);
+	else
+		adapter_remove_device(conn, adapter, device, TRUE);
+}
+
 /* Section reserved to device HCI callbacks */
 
 void btd_event_returned_link_key(bdaddr_t *local, bdaddr_t *peer)
diff --git a/src/event.h b/src/event.h
index c09350d..503d35f 100644
--- a/src/event.h
+++ b/src/event.h
@@ -40,6 +40,7 @@ int btd_event_user_passkey(bdaddr_t *sba, bdaddr_t *dba);
 int btd_event_user_notify(bdaddr_t *sba, bdaddr_t *dba, uint32_t passkey);
 void btd_event_device_blocked(bdaddr_t *local, bdaddr_t *peer);
 void btd_event_device_unblocked(bdaddr_t *local, bdaddr_t *peer);
+void btd_event_device_unpaired(bdaddr_t *local, bdaddr_t *peer);
 int btd_event_link_key_notify(bdaddr_t *local, bdaddr_t *peer, uint8_t *key,
 					uint8_t key_type, uint8_t pin_length);
 int btd_event_ltk_notify(bdaddr_t *local, bdaddr_t *peer, addr_type_t addr_type,