bluez (4.99-1) 03-Fix-return-code-of-hid2hci.patch

Summary

 tools/hid2hci.c |   10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

    
download this patch

Patch contents

Description: bluez: getting a "Logitech, Inc. diNovo Edge Keyboard" working
Author: Nobuhiro Iwamatsu <iwamatsu@debian.org>
Origin: Nobuhiro Iwamatsu <iwamatsu@debian.org>
Debian BTS: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=626975

diff --git a/tools/hid2hci.c b/tools/hid2hci.c
index 45a3a3d..da278cb 100644
--- a/tools/hid2hci.c
+++ b/tools/hid2hci.c
@@ -240,7 +240,7 @@ int main(int argc, char *argv[])
 	enum mode mode = HCI;
 	const char *devpath = NULL;
 	int err = -1;
-	int rc = 1;
+	int rc = 0;
 
 	for (;;) {
 		int option;
@@ -288,13 +288,16 @@ int main(int argc, char *argv[])
 	}
 
 	udev = udev_new();
-	if (udev == NULL)
+	if (udev == NULL) {
+		rc = errno;
 		goto exit;
+	}
 
 	snprintf(syspath, sizeof(syspath), "%s/%s", udev_get_sys_path(udev), devpath);
 	udev_dev = udev_device_new_from_syspath(udev, syspath);
 	if (udev_dev == NULL) {
 		fprintf(stderr, "error: could not find '%s'\n", devpath);
+		rc = errno;
 		goto exit;
 	}
 
@@ -312,6 +315,7 @@ int main(int argc, char *argv[])
 			dev = udev_device_get_parent_with_subsystem_devtype(dev, "usb", "usb_device");
 			if (dev == NULL) {
 				fprintf(stderr, "error: could not find usb_device for '%s'\n", devpath);
+				rc = errno;
 				goto exit;
 			}
 		}
@@ -320,6 +324,7 @@ int main(int argc, char *argv[])
 		if (handle == NULL) {
 			fprintf(stderr, "error: unable to handle '%s'\n",
 				udev_device_get_syspath(dev));
+			rc = errno;
 			goto exit;
 		}
 		err = usb_switch(handle, mode);
@@ -331,6 +336,7 @@ int main(int argc, char *argv[])
 		device = udev_device_get_devnode(udev_dev);
 		if (device == NULL) {
 			fprintf(stderr, "error: could not find hiddev device node\n");
+			rc = errno;
 			goto exit;
 		}
 		err = hid_switch_logitech(device);
-- 
1.7.5.4