diff options
Diffstat (limited to 'tools/hcitool.c')
| -rw-r--r-- | tools/hcitool.c | 24 | 
1 files changed, 16 insertions, 8 deletions
| diff --git a/tools/hcitool.c b/tools/hcitool.c index c9d3dbd6..ec043d6e 100644 --- a/tools/hcitool.c +++ b/tools/hcitool.c @@ -484,6 +484,7 @@ static struct option scan_options[] = {  	{ "numrsp",	1, 0, 'n' },  	{ "iac",	1, 0, 'i' },  	{ "flush",	0, 0, 'f' }, +	{ "refresh",	0, 0, 'r' },  	{ "class",	0, 0, 'C' },  	{ "info",	0, 0, 'I' },  	{ "oui",	0, 0, 'O' }, @@ -494,7 +495,7 @@ static struct option scan_options[] = {  static char *scan_help =  	"Usage:\n" -	"\tscan [--length=N] [--numrsp=N] [--iac=lap] [--flush] [--class] [--info] [--oui]\n"; +	"\tscan [--length=N] [--numrsp=N] [--iac=lap] [--flush] [--class] [--info] [--oui] [--refresh]\n";  static void cmd_scan(int dev_id, int argc, char **argv)  { @@ -507,7 +508,7 @@ static void cmd_scan(int dev_id, int argc, char **argv)  	struct hci_version version;  	struct hci_dev_info di;  	struct hci_conn_info_req *cr; -	int extcls = 0, extinf = 0, extoui = 0; +	int refresh = 0, extcls = 0, extinf = 0, extoui = 0;  	int i, n, l, opt, dd, cc, nc;  	length  = 8;	/* ~10 seconds */ @@ -543,6 +544,10 @@ static void cmd_scan(int dev_id, int argc, char **argv)  			flags |= IREQ_CACHE_FLUSH;  			break; +		case 'r': +			refresh = 1; +			break; +  		case 'C':  			extcls = 1;  			break; @@ -598,12 +603,15 @@ static void cmd_scan(int dev_id, int argc, char **argv)  		printf("\n");  	for (i = 0; i < num_rsp; i++) { -		memset(name, 0, sizeof(name)); -		tmp = get_device_name(&di.bdaddr, &(info+i)->bdaddr); -		if (tmp) { -			strncpy(name, tmp, 249); -			free(tmp); -			nc = 1; +		if (!refresh) { +			memset(name, 0, sizeof(name)); +			tmp = get_device_name(&di.bdaddr, &(info+i)->bdaddr); +			if (tmp) { +				strncpy(name, tmp, 249); +				free(tmp); +				nc = 1; +			} else +				nc = 0;  		} else  			nc = 0; | 
