Sisyphus repositório
Última atualização: 1 outubro 2023 | SRPMs: 18631 | Visitas: 37500625
en ru br
ALT Linux repositórios
S:2.8.0-alt2
5.0: 2.0.5-alt3.1
4.1: 2.0.5-alt3
4.0: 2.0.5-alt2
3.0: 2.0.2-alt1

Group :: Sistema/Servidores
RPM: nut

 Main   Changelog   Spec   Patches   Sources   Download   Gear   Bugs e FR  Repocop 

Patch: nut-2.6.0-alt-usb.patch
Download


diff --git a/nut/drivers/libusb.c b/nut/drivers/libusb.c
index 1d4688c..43d3f94 100644
--- a/nut/drivers/libusb.c
+++ b/nut/drivers/libusb.c
@@ -286,7 +286,10 @@ static int libusb_open(usb_dev_handle **udevp, USBDevice_t *curDevice, USBDevice
 			}
 #endif
 
-			nut_usb_set_altinterface(udev);
+			if (nut_usb_set_altinterface(udev) != 0) {
+				upsdebugx(2, " Couldn't set default interface");
+				goto next_device;
+			}
 
 			if (!callback) {
 				return 1;
diff --git a/nut/drivers/usbhid-ups.c b/nut/drivers/usbhid-ups.c
index 1e87de4..153852c 100644
--- a/nut/drivers/usbhid-ups.c
+++ b/nut/drivers/usbhid-ups.c
@@ -112,7 +112,7 @@ bool_t use_interrupt_pipe = TRUE;
 bool_t use_interrupt_pipe = FALSE;
 #endif
 static time_t lastpoll; /* Timestamp the last polling */
-hid_dev_handle_t udev;
+hid_dev_handle_t udev = NULL;
 
 /* support functions */
 static hid_info_t *find_nut_info(const char *varname);
@@ -1360,6 +1360,9 @@ static int reconnect_ups(void)
 	upsdebugx(4, "= device has been disconnected, try to reconnect =");
 	upsdebugx(4, "==================================================");
 
+	if (udev)
+		comm_driver->close(udev);
+
 	ret = comm_driver->open(&udev, &curDevice, subdriver_matcher, NULL);
 
 	if (ret > 0) {
 
projeto & código: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
mantenedor atual: Michael Shigorin
mantenedor da tradução: Fernando Martini aka fmartini © 2009