diff options
author | Johan Hedberg <johan.hedberg@nokia.com> | 2008-05-27 21:31:12 +0000 |
---|---|---|
committer | Johan Hedberg <johan.hedberg@nokia.com> | 2008-05-27 21:31:12 +0000 |
commit | 649448818704cd93136d55d33676ad80cb463224 (patch) | |
tree | c7671bf290adebc08cc40ad75c1b6e89a92cc9a0 /hcid/dbus-hci.c | |
parent | af457e55d1a46fbf3ecef32fc29e299ee4be21cf (diff) |
Use guint identifier for all name_listener operations
Diffstat (limited to 'hcid/dbus-hci.c')
-rw-r--r-- | hcid/dbus-hci.c | 114 |
1 files changed, 19 insertions, 95 deletions
diff --git a/hcid/dbus-hci.c b/hcid/dbus-hci.c index 319d7cbd..c8d01f7f 100644 --- a/hcid/dbus-hci.c +++ b/hcid/dbus-hci.c @@ -334,10 +334,8 @@ static void reply_pending_requests(const char *path, struct adapter *adapter) remove_pending_device(adapter); - name_listener_remove(connection, - dbus_message_get_sender(adapter->bonding->msg), - (name_cb_t) create_bond_req_exit, - adapter); + name_listener_id_remove(adapter->bonding->listener_id); + if (adapter->bonding->io_id) g_source_remove(adapter->bonding->io_id); g_io_channel_close(adapter->bonding->io); @@ -418,18 +416,15 @@ int unregister_adapter_path(const char *path) } if (adapter->discov_requestor) { - name_listener_remove(connection, - adapter->discov_requestor, - (name_cb_t) discover_devices_req_exit, adapter); + name_listener_id_remove(adapter->discov_listener); + adapter->discov_listener = 0; g_free(adapter->discov_requestor); adapter->discov_requestor = NULL; } if (adapter->pdiscov_requestor) { - name_listener_remove(connection, - adapter->pdiscov_requestor, - (name_cb_t) periodic_discover_req_exit, - adapter); + name_listener_id_remove(adapter->pdiscov_listener); + adapter->pdiscov_listener = 0; g_free(adapter->pdiscov_requestor); adapter->pdiscov_requestor = NULL; } @@ -835,17 +830,15 @@ int hcid_dbus_stop_device(uint16_t id) release_passkey_agents(adapter, NULL); if (adapter->discov_requestor) { - name_listener_remove(connection, adapter->discov_requestor, - (name_cb_t) discover_devices_req_exit, - adapter); + name_listener_id_remove(adapter->discov_listener); + adapter->discov_listener = 0; g_free(adapter->discov_requestor); adapter->discov_requestor = NULL; } if (adapter->pdiscov_requestor) { - name_listener_remove(connection, adapter->pdiscov_requestor, - (name_cb_t) periodic_discover_req_exit, - adapter); + name_listener_id_remove(adapter->pdiscov_listener); + adapter->pdiscov_listener = 0; g_free(adapter->pdiscov_requestor); adapter->pdiscov_requestor = NULL; } @@ -1143,9 +1136,7 @@ proceed: } cleanup: - name_listener_remove(connection, - dbus_message_get_sender(adapter->bonding->msg), - (name_cb_t) create_bond_req_exit, adapter); + name_listener_id_remove(adapter->bonding->listener_id); if (adapter->bonding->io_id) g_source_remove(adapter->bonding->io_id); @@ -1417,8 +1408,8 @@ void hcid_dbus_inquiry_complete(bdaddr_t *local) adapter->found_devices = NULL; if (adapter->discov_requestor) { - name_listener_remove(connection, adapter->discov_requestor, - (name_cb_t) discover_devices_req_exit, adapter); + name_listener_id_remove(adapter->discov_listener); + adapter->discov_listener = 0; g_free(adapter->discov_requestor); adapter->discov_requestor = NULL; @@ -1525,9 +1516,8 @@ void hcid_dbus_periodic_inquiry_exit(bdaddr_t *local, uint8_t status) adapter->oor_devices = NULL; if (adapter->pdiscov_requestor) { - name_listener_remove(connection, adapter->pdiscov_requestor, - (name_cb_t) periodic_discover_req_exit, - adapter); + name_listener_id_remove(adapter->pdiscov_listener); + adapter->pdiscov_listener = 0; g_free(adapter->pdiscov_requestor); adapter->pdiscov_requestor = NULL; } @@ -1858,8 +1848,8 @@ void hcid_dbus_remote_name(bdaddr_t *local, bdaddr_t *peer, uint8_t status, /* The discovery completed signal must be sent only for discover * devices request WITH name resolving */ if (adapter->discov_requestor) { - name_listener_remove(connection, adapter->discov_requestor, - (name_cb_t) discover_devices_req_exit, adapter); + name_listener_id_remove(adapter->discov_listener); + adapter->discov_listener = 0; g_free(adapter->discov_requestor); adapter->discov_requestor = NULL; @@ -2032,10 +2022,8 @@ void hcid_dbus_disconn_complete(bdaddr_t *local, uint8_t status, send_message_and_unref(connection, reply); } - name_listener_remove(connection, - dbus_message_get_sender(adapter->bonding->msg), - (name_cb_t) create_bond_req_exit, - adapter); + name_listener_id_remove(adapter->bonding->listener_id); + if (adapter->bonding->io_id) g_source_remove(adapter->bonding->io_id); g_io_channel_close(adapter->bonding->io); @@ -2404,59 +2392,6 @@ void hcid_dbus_pin_code_reply(bdaddr_t *local, void *ptr) } } -void create_bond_req_exit(const char *name, struct adapter *adapter) -{ - char path[MAX_PATH_LENGTH]; - GSList *l; - - snprintf(path, sizeof(path), "%s/hci%d", BASE_PATH, adapter->dev_id); - - debug("CreateConnection requestor (%s) exited before bonding was completed", - name); - - cancel_passkey_agent_requests(adapter->passkey_agents, path, - &adapter->bonding->bdaddr); - release_passkey_agents(adapter, &adapter->bonding->bdaddr); - - l = g_slist_find_custom(adapter->pin_reqs, &adapter->bonding->bdaddr, - pin_req_cmp); - if (l) { - struct pending_pin_info *p = l->data; - - if (!p->replied) { - int dd; - - dd = hci_open_dev(adapter->dev_id); - if (dd >= 0) { - hci_send_cmd(dd, OGF_LINK_CTL, - OCF_PIN_CODE_NEG_REPLY, - 6, &adapter->bonding->bdaddr); - hci_close_dev(dd); - } - } - - adapter->pin_reqs = g_slist_remove(adapter->pin_reqs, p); - g_free(p); - } - - remove_pending_device(adapter); - - g_io_channel_close(adapter->bonding->io); - if (adapter->bonding->io_id) - g_source_remove(adapter->bonding->io_id); - bonding_request_free(adapter->bonding); - adapter->bonding = NULL; -} - -void discover_devices_req_exit(const char *name, struct adapter *adapter) -{ - debug("DiscoverDevices requestor (%s) exited", name); - - /* Cleanup the discovered devices list and send the command to cancel - * inquiry or cancel remote name request. The return can be ignored. */ - cancel_discovery(adapter); -} - static int inquiry_cancel(int dd, int to) { struct hci_request rq; @@ -2568,17 +2503,6 @@ cleanup: return err; } -void periodic_discover_req_exit(const char *name, struct adapter *adapter) -{ - debug("PeriodicDiscovery requestor (%s) exited", name); - - /* Cleanup the discovered devices list and send the cmd to exit from - * periodic inquiry or cancel remote name request. The return value can - * be ignored. */ - - cancel_periodic_discovery(adapter); -} - static int periodic_inquiry_exit(int dd, int to) { struct hci_request rq; |