summaryrefslogtreecommitdiff
path: root/usbredirhost/usbredirhost.c
diff options
context:
space:
mode:
authorHans de Goede <hdegoede@redhat.com>2012-03-06 14:47:13 +0100
committerHans de Goede <hdegoede@redhat.com>2012-03-06 15:42:20 +0100
commitd7f30101ecb3493985e3e155c8c4e7169d3f6a8a (patch)
treeb20b5028fd8d17a15d2377d1765adbfc4c76398e /usbredirhost/usbredirhost.c
parent5c25d7aa72112ce5eea54f37180158cf0ae65c12 (diff)
Extend the usb_redir_ep_info packet header with a max_packet_size field
This new field is only send / received if both sides have the (new) usb_redir_cap_ep_info_max_packet_size capability. Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Diffstat (limited to 'usbredirhost/usbredirhost.c')
-rw-r--r--usbredirhost/usbredirhost.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/usbredirhost/usbredirhost.c b/usbredirhost/usbredirhost.c
index 50820c3..f89bbc3 100644
--- a/usbredirhost/usbredirhost.c
+++ b/usbredirhost/usbredirhost.c
@@ -325,6 +325,7 @@ static void usbredirhost_send_interface_n_ep_info(struct usbredirhost *host)
ep_info.type[i] = host->endpoint[i].type;
ep_info.interval[i] = host->endpoint[i].interval;
ep_info.interface[i] = host->endpoint[i].interface;
+ ep_info.max_packet_size[i] = host->endpoint[i].max_packetsize;
}
usbredirparser_send_ep_info(host->parser, &ep_info);
}
@@ -414,6 +415,7 @@ static void usbredirhost_parse_config(struct usbredirhost *host)
}
host->endpoint[i].interval = 0;
host->endpoint[i].interface = 0;
+ host->endpoint[i].max_packetsize = 0;
}
for (i = 0; i < host->config->bNumInterfaces; i++) {
@@ -616,6 +618,7 @@ struct usbredirhost *usbredirhost_open_full(
usbredirparser_caps_set_cap(caps, usb_redir_cap_connect_device_version);
usbredirparser_caps_set_cap(caps, usb_redir_cap_filter);
usbredirparser_caps_set_cap(caps, usb_redir_cap_device_disconnect_ack);
+ usbredirparser_caps_set_cap(caps, usb_redir_cap_ep_info_max_packet_size);
usbredirparser_init(host->parser, version, caps, USB_REDIR_CAPS_SIZE,
parser_flags);
@@ -1497,6 +1500,7 @@ static void usbredirhost_set_alt_setting(void *priv, uint32_t id,
}
host->endpoint[j].interval = 0;
host->endpoint[j].interface = 0;
+ host->endpoint[j].max_packetsize = 0;
}
host->alt_setting[i] = set_alt_setting->alt;