summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohan Hedberg <johan.hedberg@nokia.com>2006-09-15 15:17:52 +0000
committerJohan Hedberg <johan.hedberg@nokia.com>2006-09-15 15:17:52 +0000
commiteb3def6c7256c40876d9dc023feb40f47f37caf7 (patch)
treecddc7486acc0052d27572a749493a1b627476d9a
parent0ab6b68b07ee96bf4bd4cf0fe7d4b68582b5caf5 (diff)
Cleanup pending pin request list on disconnect event
-rw-r--r--hcid/dbus.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/hcid/dbus.c b/hcid/dbus.c
index 6712b3a5..3a15ad0a 100644
--- a/hcid/dbus.c
+++ b/hcid/dbus.c
@@ -1307,6 +1307,13 @@ void hcid_dbus_disconn_complete(bdaddr_t *local, uint8_t status, uint16_t handle
cancel_passkey_agent_requests(pdata->passkey_agents, path, &dev->bdaddr);
release_passkey_agents(pdata, &dev->bdaddr);
+ l = slist_find(pdata->pin_reqs, &dev->bdaddr, pin_req_cmp);
+ if (l) {
+ struct pending_pin_req *p = l->data;
+ pdata->pin_reqs = slist_remove(pdata->pin_reqs, p);
+ free(p);
+ }
+
/* Check if there is a pending CreateBonding request */
if (pdata->bonding && (bacmp(&pdata->bonding->bdaddr, &dev->bdaddr) == 0)) {
if (pdata->bonding->cancel) {