diff options
author | Claudio Takahasi <claudio.takahasi@openbossa.org> | 2011-03-02 17:29:28 -0300 |
---|---|---|
committer | Johan Hedberg <johan.hedberg@nokia.com> | 2011-03-04 16:45:50 -0300 |
commit | dc920afdf5a9ee58181d094f96def64f15b65207 (patch) | |
tree | dc03ad7f6727d9bf32ac9b358e1a773216008e08 | |
parent | 81a57bd00d4fb91281c014565744c62cfbbec60e (diff) | |
download | bluez-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.c | 15 |
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); |