summaryrefslogtreecommitdiffstats
path: root/server
diff options
context:
space:
mode:
authorAlon Levy <alevy@redhat.com>2011-07-20 13:40:11 +0300
committerAlon Levy <alevy@redhat.com>2011-07-21 15:09:28 +0300
commitd830cf0553f1de1eb3a6eed1bf2e3dca880278d1 (patch)
treee5c736bcd664723192a521a56cc559371c8b3fb8 /server
parentb759a52fcdf18334b03555840fa23e9b7b9d5db5 (diff)
downloadspice-d830cf0553f1de1eb3a6eed1bf2e3dca880278d1.tar.gz
spice-d830cf0553f1de1eb3a6eed1bf2e3dca880278d1.tar.xz
spice-d830cf0553f1de1eb3a6eed1bf2e3dca880278d1.zip
server/smartcard: handle BaseChannel messages
According to spice.proto the smartcard channel can receive acks and any other message defined in BaseChannel. While the spicec implementation didn't send an ACK spice-gtk does, so handle it.
Diffstat (limited to 'server')
-rw-r--r--server/smartcard.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/server/smartcard.c b/server/smartcard.c
index 7136d111..272098e8 100644
--- a/server/smartcard.c
+++ b/server/smartcard.c
@@ -449,6 +449,11 @@ static int smartcard_channel_handle_message(RedChannel *channel, SpiceDataHeader
VSCMsgHeader* vheader = (VSCMsgHeader*)msg;
SmartCardChannel* smartcard_channel = (SmartCardChannel*)channel;
+ if (header->type != SPICE_MSGC_SMARTCARD_DATA) {
+ /* handle ack's, spicy sends them while spicec does not */
+ return red_channel_handle_message(channel, header, msg);
+ }
+
ASSERT(header->size == vheader->length + sizeof(VSCMsgHeader));
switch (vheader->type) {
case VSC_ReaderAdd: