bluez: fix hid2hci

This commit is contained in:
Stefan Saraev 2013-10-23 23:13:56 +03:00 committed by Stephan Raue
parent 077d5307cf
commit 8435dcc676

View File

@ -0,0 +1,47 @@
From: Giovanni Campagna <gcampagna@xxxxxxxxxxxxx>
The paths under /dev, in the default udev configuration, are formatted
with two leading zeros, but the number obtained from sysfs don't have
them, so we must convert them to integers and reformat them.
Signed-off-by: Giovanni Campagna <scampa.giovanni@xxxxxxxxx>
---
tools/hid2hci.c | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/tools/hid2hci.c b/tools/hid2hci.c
index bb8a521..76d0b5a 100644
--- a/tools/hid2hci.c
+++ b/tools/hid2hci.c
@@ -221,18 +221,21 @@ static int usb_switch_dell(int fd, enum mode mode)
static int find_device(struct udev_device *udev_dev)
{
char path[PATH_MAX];
- const char *busnum, *devnum;
+ const char *busnum_s, *devnum_s;
+ int busnum, devnum;
int fd;
- busnum = udev_device_get_sysattr_value(udev_dev, "busnum");
- if (!busnum)
+ busnum_s = udev_device_get_sysattr_value(udev_dev, "busnum");
+ if (!busnum_s)
return -1;
+ busnum = strtol(busnum_s, NULL, 10);
- devnum = udev_device_get_sysattr_value(udev_dev, "devnum");
- if (!devnum)
+ devnum_s = udev_device_get_sysattr_value(udev_dev, "devnum");
+ if (!devnum_s)
return -1;
+ devnum = strtol(devnum_s, NULL, 10);
- snprintf(path, sizeof(path), "/dev/bus/usb/%s/%s", busnum, devnum);
+ snprintf(path, sizeof(path), "/dev/bus/usb/%03d/%03d", busnum, devnum);
fd = open(path, O_RDWR, O_CLOEXEC);
if (fd < 0) {
--
1.8.3.1
--