diff --git a/plugins/hciops.c b/plugins/hciops.c
index b82d32d..435e61a 100644
--- a/plugins/hciops.c
+++ b/plugins/hciops.c
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) {
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
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;
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)
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,
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)
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,
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
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
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);