summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJay.han <ezzzehxx@gmail.com>2015-11-18 14:24:13 -0600
committerJonathon Jongsma <jjongsma@redhat.com>2015-11-19 14:33:18 -0600
commitdf331737d1c9ab5e680dfb3fd91897f3179cf4b6 (patch)
tree9faa0b4998eeba1bfe3136e11bf81c4c5d20af93
parentfd6cecaaa28705063a67f3543c6e709151de1794 (diff)
downloadspice-gtk-df331737d1c9ab5e680dfb3fd91897f3179cf4b6.tar.gz
spice-gtk-df331737d1c9ab5e680dfb3fd91897f3179cf4b6.tar.xz
spice-gtk-df331737d1c9ab5e680dfb3fd91897f3179cf4b6.zip
file transfer: send cancel message when user cancels a transfer
When a user cancel's a file transfer, we should send a STATUS_CANCELED message rather than an STATUS_ERROR message. The latter triggers a bug in the vdagent where the file remains opened by the vdagent in the guest and cannot be removed. Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com>
-rw-r--r--src/channel-main.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/channel-main.c b/src/channel-main.c
index 8138fd5..18c9b18 100644
--- a/src/channel-main.c
+++ b/src/channel-main.c
@@ -1922,7 +1922,8 @@ static void file_xfer_read_cb(GObject *source_object,
} else if (error) {
VDAgentFileXferStatusMessage msg = {
.id = self->priv->id,
- .result = VD_AGENT_FILE_XFER_STATUS_ERROR,
+ .result = error->code == G_IO_ERROR_CANCELLED ?
+ VD_AGENT_FILE_XFER_STATUS_CANCELLED : VD_AGENT_FILE_XFER_STATUS_ERROR,
};
agent_msg_queue_many(self->priv->channel, VD_AGENT_FILE_XFER_STATUS,
&msg, sizeof(msg), NULL);