summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/adapter.c27
1 files changed, 11 insertions, 16 deletions
diff --git a/src/adapter.c b/src/adapter.c
index 3491d60b..bda52f84 100644
--- a/src/adapter.c
+++ b/src/adapter.c
@@ -577,35 +577,30 @@ static int write_scan_enable(int dd, uint8_t scan)
return 0;
}
-static gboolean discov_timeout_handler(void *data)
+static gboolean discov_timeout_handler(gpointer user_data)
{
- struct btd_adapter *adapter = data;
+ struct btd_adapter *adapter = user_data;
int dd;
- uint8_t scan_enable = adapter->scan_mode;
- gboolean retval = TRUE;
+ uint8_t scan_enable;
uint16_t dev_id = adapter->dev_id;
- scan_enable &= ~SCAN_INQUIRY;
+ adapter->discov_timeout = 0;
dd = hci_open_dev(dev_id);
if (dd < 0) {
error("HCI device open failed: hci%d", dev_id);
- return TRUE;
+ return FALSE;
}
- if (write_scan_enable(dd, scan_enable) < 0)
- goto failed;
-
- set_limited_discoverable(dd, adapter->dev.class, FALSE);
+ scan_enable = adapter->scan_mode & ~SCAN_INQUIRY;
- adapter_remove_discov_timeout(adapter);
- retval = FALSE;
+ hci_send_cmd(dd, OGF_HOST_CTL, OCF_WRITE_SCAN_ENABLE,
+ 1, &scan_enable);
+ hci_close_dev(dd);
-failed:
- if (dd >= 0)
- hci_close_dev(dd);
+ set_limited_discoverable(dd, adapter->dev.class, FALSE);
- return retval;
+ return FALSE;
}
static void adapter_set_discov_timeout(struct btd_adapter *adapter,