diff options
Diffstat (limited to 'hcid/dbus.c')
-rw-r--r-- | hcid/dbus.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/hcid/dbus.c b/hcid/dbus.c index e96f3adf..853c2589 100644 --- a/hcid/dbus.c +++ b/hcid/dbus.c @@ -67,6 +67,11 @@ struct pin_request { bdaddr_t bda; }; +/* + * Timeout functions Protypes + */ +static int discoverable_timeout_handler(void *data); + DBusConnection *get_dbus_connection(void) { return connection; @@ -315,6 +320,13 @@ gboolean hcid_dbus_register_device(uint16_t id) else pdata->mode = rp.enable; /* Keep the current scan status */ + /* + * Enable timeout to address dbus daemon restart, where + * register the device paths is required due connection lost. + */ + if (pdata->mode & SCAN_INQUIRY) + pdata->timeout_handler = &discoverable_timeout_handler; + message = dbus_message_new_signal(MANAGER_PATH, MANAGER_INTERFACE, BLUEZ_MGR_DEV_ADDED); if (message == NULL) { |