rmdir(dirname);
}
+void device_remove_bonding(struct btd_device *device, uint8_t bdaddr_type)
+{
+ if (bdaddr_type == BDADDR_BREDR)
+ device->bredr_state.bonded = false;
+ else
+ device->le_state.bonded = false;
+
+ if (!device->bredr_state.bonded && !device->le_state.bonded)
+ btd_device_set_temporary(device, true);
+
+ btd_adapter_remove_bonding(device->adapter, &device->bdaddr,
+ bdaddr_type);
+}
+
static void device_remove_stored(struct btd_device *device)
{
char device_addr[18];
char *data;
gsize length = 0;
- if (device->bredr_state.bonded) {
- device->bredr_state.bonded = false;
- btd_adapter_remove_bonding(device->adapter, &device->bdaddr,
- BDADDR_BREDR);
- }
+ if (device->bredr_state.bonded)
+ device_remove_bonding(device, BDADDR_BREDR);
- if (device->le_state.bonded) {
- device->le_state.bonded = false;
- btd_adapter_remove_bonding(device->adapter, &device->bdaddr,
- device->bdaddr_type);
- }
+ if (device->le_state.bonded)
+ device_remove_bonding(device, device->bdaddr_type);
device->bredr_state.paired = false;
device->le_state.paired = false;
uint16_t btd_device_get_vendor_src(struct btd_device *device);
uint16_t btd_device_get_product(struct btd_device *device);
uint16_t btd_device_get_version(struct btd_device *device);
+void device_remove_bonding(struct btd_device *device, uint8_t bdaddr_type);
void device_remove(struct btd_device *device, gboolean remove_stored);
int device_address_cmp(gconstpointer a, gconstpointer b);
int device_bdaddr_cmp(gconstpointer a, gconstpointer b);