Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37412578
en ru br
Репозитории ALT
S:2.8.0-alt2
5.1: 2.0.5-alt4
4.1: 2.0.5-alt3
4.0: 2.0.5-alt2
3.0: 2.0.2-alt1
www.altlinux.org/Changes

Группа :: Система/Серверы
Пакет: nut

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 

Патч: nut-2.6.0-alt-usb.patch
Скачать


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) {
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin