[Spice-devel] [PATCH spice-gtk] win-usb-dev: fix device arrival event logic
Yuri Benditovich
yuri.benditovich at daynix.com
Mon Jul 3 04:48:31 UTC 2017
https://bugzilla.redhat.com/show_bug.cgi?id=1425961
If attached new device when one device with the same vid
and pid already present, the notification is ignored and
attached device is not redirected (if auto share set) and
not displayed in USB devices widget
Signed-off-by: Yuri Benditovich <yuri.benditovich at daynix.com>
---
src/win-usb-dev.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/win-usb-dev.c b/src/win-usb-dev.c
index ec3dd91..e5cd7c6 100644
--- a/src/win-usb-dev.c
+++ b/src/win-usb-dev.c
@@ -380,20 +380,20 @@ static gboolean get_usb_dev_info(libusb_device *dev, GUdevDeviceInfo *udevinfo)
return TRUE;
}
-/* Only vid:pid are compared */
static gint gudev_devices_differ(gconstpointer a, gconstpointer b)
{
GUdevDeviceInfo *ai, *bi;
- gboolean same_vid;
- gboolean same_pid;
+ gboolean same_vid, same_pid, same_bus, same_addr;
ai = G_UDEV_DEVICE(a)->priv->udevinfo;
bi = G_UDEV_DEVICE(b)->priv->udevinfo;
same_vid = (ai->vid == bi->vid);
same_pid = (ai->pid == bi->pid);
+ same_bus = (ai->bus == bi->bus);
+ same_addr = (ai->addr == bi->addr);
- return (same_pid && same_vid) ? 0 : -1;
+ return (same_pid && same_vid && same_bus && same_addr) ? 0 : -1;
}
static void notify_dev_state_change(GUdevClient *self,
--
2.9.4
More information about the Spice-devel
mailing list