summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClaudio Takahasi <claudio.takahasi@openbossa.org>2011-03-02 17:29:28 -0300
committerJohan Hedberg <johan.hedberg@nokia.com>2011-03-04 16:45:50 -0300
commitdc920afdf5a9ee58181d094f96def64f15b65207 (patch)
treedc03ad7f6727d9bf32ac9b358e1a773216008e08
parent81a57bd00d4fb91281c014565744c62cfbbec60e (diff)
downloadbluez-dc920afdf5a9ee58181d094f96def64f15b65207.tar.gz
hcitool: add "whitelist" option to create LE connections
If "whitelist" option is given, the peer address and type will be ignored and the white list will be used to determine which advertiser to connect to.
-rw-r--r--tools/hcitool.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/tools/hcitool.c b/tools/hcitool.c
index 3e5963083..d4775f1fb 100644
--- a/tools/hcitool.c
+++ b/tools/hcitool.c
@@ -2499,12 +2499,14 @@ static void cmd_lescan(int dev_id, int argc, char **argv)
static struct option lecc_options[] = {
{ "help", 0, 0, 'h' },
{ "random", 0, 0, 'r' },
+ { "whitelist", 0, 0, 'w' },
{ 0, 0, 0, 0 }
};
static const char *lecc_help =
"Usage:\n"
- "\tlecc [--random] <bdaddr>\n";
+ "\tlecc [--random] <bdaddr>\n"
+ "\tlecc --whitelist\n";
static void cmd_lecc(int dev_id, int argc, char **argv)
{
@@ -2515,18 +2517,22 @@ static void cmd_lecc(int dev_id, int argc, char **argv)
uint8_t initiator_filter, own_bdaddr_type, peer_bdaddr_type;
peer_bdaddr_type = LE_PUBLIC_ADDRESS;
+ initiator_filter = 0; /* Use peer address */
for_each_opt(opt, lecc_options, NULL) {
switch (opt) {
case 'r':
peer_bdaddr_type = LE_RANDOM_ADDRESS;
break;
+ case 'w':
+ initiator_filter = 0x01; /* Use white list */
+ break;
default:
printf("%s", lecc_help);
return;
}
}
- helper_arg(1, 1, &argc, &argv, lecc_help);
+ helper_arg(0, 1, &argc, &argv, lecc_help);
if (dev_id < 0)
dev_id = hci_get_route(NULL);
@@ -2537,11 +2543,12 @@ static void cmd_lecc(int dev_id, int argc, char **argv)
exit(1);
}
- str2ba(argv[0], &bdaddr);
+ memset(&bdaddr, 0, sizeof(bdaddr_t));
+ if (argv[0])
+ str2ba(argv[0], &bdaddr);
interval = htobs(0x0004);
window = htobs(0x0004);
- initiator_filter = 0x00;
own_bdaddr_type = 0x00;
min_interval = htobs(0x000F);
max_interval = htobs(0x000F);