summaryrefslogtreecommitdiff
path: root/tools/hcitool.c
diff options
context:
space:
mode:
authorClaudio Takahasi <claudio.takahasi@openbossa.org>2012-08-30 13:16:33 -0300
committerJohan Hedberg <johan.hedberg@intel.com>2012-09-06 17:32:34 +0300
commit30529a58b0a224cb6c88c34bcb0141bac29e74ad (patch)
treefecc9db2f4dd63bf4b7fff1e925182260fe99958 /tools/hcitool.c
parent0940a92c1a341504cfa4fff6f27f233b816381f1 (diff)
downloadbluez-30529a58b0a224cb6c88c34bcb0141bac29e74ad.tar.gz
hcitool: Add LE scan based on White List
This patch extends the LE scanning command allowing the user to inform an option to enable LE scanning detecting advertises sent from devices in the White List Only. This option can be used combined with others.
Diffstat (limited to 'tools/hcitool.c')
-rw-r--r--tools/hcitool.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/tools/hcitool.c b/tools/hcitool.c
index 66e5c2072..aefbd68a7 100644
--- a/tools/hcitool.c
+++ b/tools/hcitool.c
@@ -2487,6 +2487,7 @@ static struct option lescan_options[] = {
{ "help", 0, 0, 'h' },
{ "privacy", 0, 0, 'p' },
{ "passive", 0, 0, 'P' },
+ { "whitelist", 0, 0, 'w' },
{ "discovery", 1, 0, 'd' },
{ "duplicates", 0, 0, 'D' },
{ 0, 0, 0, 0 }
@@ -2496,6 +2497,7 @@ static const char *lescan_help =
"Usage:\n"
"\tlescan [--privacy] enable privacy\n"
"\tlescan [--passive] set scan type passive (default active)\n"
+ "\tlescan [--whitelist] scan for address in the whitelist only\n"
"\tlescan [--discovery=g|l] enable general or limited discovery"
"procedure\n"
"\tlescan [--duplicates] don't filter duplicates\n";
@@ -2506,6 +2508,7 @@ static void cmd_lescan(int dev_id, int argc, char **argv)
uint8_t own_type = 0x00;
uint8_t scan_type = 0x01;
uint8_t filter_type = 0;
+ uint8_t filter_policy = 0x00;
uint16_t interval = htobs(0x0010);
uint16_t window = htobs(0x0010);
uint8_t filter_dup = 1;
@@ -2518,6 +2521,9 @@ static void cmd_lescan(int dev_id, int argc, char **argv)
case 'P':
scan_type = 0x00; /* Passive */
break;
+ case 'w':
+ filter_policy = 0x01; /* Whitelist */
+ break;
case 'd':
filter_type = optarg[0];
if (filter_type != 'g' && filter_type != 'l') {
@@ -2548,7 +2554,7 @@ static void cmd_lescan(int dev_id, int argc, char **argv)
}
err = hci_le_set_scan_parameters(dd, scan_type, interval, window,
- own_type, 0x00, 1000);
+ own_type, filter_policy, 1000);
if (err < 0) {
perror("Set scan parameters failed");
exit(1);