diff options
author | Claudio Takahasi <claudio.takahasi@openbossa.org> | 2006-09-20 14:31:32 +0000 |
---|---|---|
committer | Claudio Takahasi <claudio.takahasi@openbossa.org> | 2006-09-20 14:31:32 +0000 |
commit | bdad9f66c2e7341a73b19e1b2b7ad6dfd0a13df5 (patch) | |
tree | ad34b0a0f35a07ef1c42e0f1fb400ec061c68e3b | |
parent | 0d02f462e60a4bc0bbe26f8a597dd30eb0bf4b24 (diff) |
Cancel/Stop inquiry when unregistering path or if DEV_DOWN is received
-rw-r--r-- | hcid/dbus.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/hcid/dbus.c b/hcid/dbus.c index 40b5d6a2..8b7bec84 100644 --- a/hcid/dbus.c +++ b/hcid/dbus.c @@ -404,6 +404,10 @@ static void reply_pending_requests(const char *path, struct hci_dbus_data *pdata message = dbus_message_new_signal(path, ADAPTER_INTERFACE, "DiscoveryCompleted"); send_reply_and_unref(connection, message); + + /* Cancel inquiry initiated by D-Bus client */ + if (pdata->discovery_requestor) + cancel_discovery(pdata); } if (pdata->pdisc_active) { @@ -411,6 +415,10 @@ static void reply_pending_requests(const char *path, struct hci_dbus_data *pdata message = dbus_message_new_signal(path, ADAPTER_INTERFACE, "PeriodicDiscoveryStopped"); send_reply_and_unref(connection, message); + + /* Stop periodic inquiry initiated by D-Bus client */ + if (pdata->pdiscovery_requestor) + cancel_periodic_discovery(pdata); } } @@ -2248,11 +2256,11 @@ int cancel_periodic_discovery(struct hci_dbus_data *pdata) dev = l->data; - bacpy(&cp.bdaddr, &dev->bdaddr); - memset(&rq, 0, sizeof(rq)); memset(&cp, 0, sizeof(cp)); + bacpy(&cp.bdaddr, &dev->bdaddr); + rq.ogf = OGF_LINK_CTL; rq.ocf = OCF_REMOTE_NAME_REQ_CANCEL; rq.cparam = &cp; |