59 lines
1.7 KiB
Diff
59 lines
1.7 KiB
Diff
From 596013354fd1d5b102cdb54449b10e11346f9fda Mon Sep 17 00:00:00 2001
|
|
From: Hans de Goede <hdegoede@redhat.com>
|
|
Date: Mon, 3 Sep 2012 11:53:28 +0200
|
|
Subject: [PATCH] usb-redir: Add a usbredir_reject_device helper function
|
|
|
|
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
|
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
|
|
---
|
|
hw/usb/redirect.c | 21 +++++++++++----------
|
|
1 file changed, 11 insertions(+), 10 deletions(-)
|
|
|
|
diff --git a/hw/usb/redirect.c b/hw/usb/redirect.c
|
|
index b9a3633..a590cb2 100644
|
|
--- a/hw/usb/redirect.c
|
|
+++ b/hw/usb/redirect.c
|
|
@@ -820,16 +820,21 @@ static void usbredir_chardev_open(USBRedirDevice *dev)
|
|
usbredirparser_do_write(dev->parser);
|
|
}
|
|
|
|
+static void usbredir_reject_device(USBRedirDevice *dev)
|
|
+{
|
|
+ usbredir_device_disconnect(dev);
|
|
+ if (usbredirparser_peer_has_cap(dev->parser, usb_redir_cap_filter)) {
|
|
+ usbredirparser_send_filter_reject(dev->parser);
|
|
+ usbredirparser_do_write(dev->parser);
|
|
+ }
|
|
+}
|
|
+
|
|
static void usbredir_do_attach(void *opaque)
|
|
{
|
|
USBRedirDevice *dev = opaque;
|
|
|
|
if (usb_device_attach(&dev->dev) != 0) {
|
|
- usbredir_device_disconnect(dev);
|
|
- if (usbredirparser_peer_has_cap(dev->parser, usb_redir_cap_filter)) {
|
|
- usbredirparser_send_filter_reject(dev->parser);
|
|
- usbredirparser_do_write(dev->parser);
|
|
- }
|
|
+ usbredir_reject_device(dev);
|
|
}
|
|
}
|
|
|
|
@@ -1008,11 +1013,7 @@ static int usbredir_check_filter(USBRedirDevice *dev)
|
|
return 0;
|
|
|
|
error:
|
|
- usbredir_device_disconnect(dev);
|
|
- if (usbredirparser_peer_has_cap(dev->parser, usb_redir_cap_filter)) {
|
|
- usbredirparser_send_filter_reject(dev->parser);
|
|
- usbredirparser_do_write(dev->parser);
|
|
- }
|
|
+ usbredir_reject_device(dev);
|
|
return -1;
|
|
}
|
|
|
|
--
|
|
1.7.12.1
|
|
|