Add handle and timeout parameters to hci_le_create_conn
Now hci_le_create_conn is more consistent with hci_create_conn, both
have a handle out parameter and a timeout.
diff --git a/lib/hci.c b/lib/hci.c
index a886c96..1c455c5 100644
--- a/lib/hci.c
+++ b/lib/hci.c
@@ -2701,7 +2701,8 @@
bdaddr_t peer_bdaddr, uint8_t own_bdaddr_type,
uint16_t min_interval, uint16_t max_interval,
uint16_t latency, uint16_t supervision_timeout,
- uint16_t min_ce_length, uint16_t max_ce_length)
+ uint16_t min_ce_length, uint16_t max_ce_length,
+ uint16_t *handle, int to)
{
struct hci_request rq;
le_create_connection_cp create_conn_cp;
@@ -2730,7 +2731,7 @@
rq.rparam = &conn_complete_rp;
rq.rlen = EVT_CONN_COMPLETE_SIZE;
- if (hci_send_req(dd, &rq, 1000) < 0)
+ if (hci_send_req(dd, &rq, to) < 0)
return -1;
if (conn_complete_rp.status) {
@@ -2738,5 +2739,8 @@
return -1;
}
+ if (handle)
+ *handle = conn_complete_rp.handle;
+
return 0;
}
diff --git a/lib/hci_lib.h b/lib/hci_lib.h
index 2a36dc4..b63a2a4 100644
--- a/lib/hci_lib.h
+++ b/lib/hci_lib.h
@@ -125,7 +125,8 @@
bdaddr_t peer_bdaddr, uint8_t own_bdaddr_type,
uint16_t min_interval, uint16_t max_interval,
uint16_t latency, uint16_t supervision_timeout,
- uint16_t min_ce_length, uint16_t max_ce_length);
+ uint16_t min_ce_length, uint16_t max_ce_length,
+ uint16_t *handle, int to);
int hci_for_each_dev(int flag, int(*func)(int dd, int dev_id, long arg), long arg);
int hci_get_route(bdaddr_t *bdaddr);
diff --git a/tools/hcitool.c b/tools/hcitool.c
index 14b17de..0fff0ce 100644
--- a/tools/hcitool.c
+++ b/tools/hcitool.c
@@ -2485,7 +2485,7 @@
int err, opt, dd;
bdaddr_t bdaddr;
uint16_t interval, latency, max_ce_length, max_interval, min_ce_length;
- uint16_t min_interval, supervision_timeout, window;
+ uint16_t min_interval, supervision_timeout, window, handle;
uint8_t initiator_filter, own_bdaddr_type, peer_bdaddr_type;
for_each_opt(opt, lecc_options, NULL) {
@@ -2527,12 +2527,14 @@
err = hci_le_create_conn(dd, interval, window, initiator_filter,
peer_bdaddr_type, bdaddr, own_bdaddr_type, min_interval,
max_interval, latency, supervision_timeout,
- min_ce_length, max_ce_length);
+ min_ce_length, max_ce_length, &handle, 25000);
if (err < 0) {
perror("Could not create connection");
exit(1);
}
+ printf("Connection handle %d\n", handle);
+
hci_close_dev(dd);
}