diff options
| author | Max Krasnyansky <maxk@qualcomm.com> | 2002-06-18 18:32:44 +0000 | 
|---|---|---|
| committer | Max Krasnyansky <maxk@qualcomm.com> | 2002-06-18 18:32:44 +0000 | 
| commit | 9942261d0febb9ef243ffe810421451e97925e68 (patch) | |
| tree | b7a32e1bf1c3cf4c14e2dacc86c3e5dd86e0dfae | |
| parent | d316a5fbab4a41ce3f8321eef407db9c53b57e85 (diff) | |
improved hci_devid
| -rw-r--r-- | include/hci_lib.h | 2 | ||||
| -rw-r--r-- | src/hci.c | 15 | 
2 files changed, 14 insertions, 3 deletions
diff --git a/include/hci_lib.h b/include/hci_lib.h index 982c7608..b988de5f 100644 --- a/include/hci_lib.h +++ b/include/hci_lib.h @@ -62,7 +62,7 @@ int hci_disconnect(int dd, uint16_t handle, uint8_t reason, int to);  int hci_inquiry(int dev_id, int len, int num_rsp, uint8_t *lap, inquiry_info **ii, long flags);  int hci_devinfo(int dev_id, struct hci_dev_info *di);  int hci_devba(int dev_id, bdaddr_t *ba); -int hci_devid(bdaddr_t *ba); +int hci_devid(char *str);  int hci_local_name(int dd, int len, char *name, int to);  int hci_remote_name(int dd, bdaddr_t *ba, int len, char *name, int to); @@ -415,9 +415,20 @@ int hci_get_route(bdaddr_t *bdaddr)  		return hci_for_each_dev(HCI_UP, NULL, 0);  } -int hci_devid(bdaddr_t *bdaddr) +int hci_devid(char *str)  { -	return hci_for_each_dev(HCI_UP, __same_bdaddr, (long) bdaddr); +	bdaddr_t ba; +	int id = -1; + +	if (!strncmp(str, "hci", 3) && strlen(str) >= 4) { +		id = atoi(str + 3); +		if (hci_devba(id, &ba) < 0) +			return -1; +	} else { +		str2ba(str, &ba); +		id = hci_for_each_dev(HCI_UP, __same_bdaddr, (long) &ba); +	} +	return id;  }  int hci_devinfo(int dev_id, struct hci_dev_info *di)  | 
