diff options
author | Jay.han <ezzzehxx@gmail.com> | 2015-11-18 14:24:13 -0600 |
---|---|---|
committer | Jonathon Jongsma <jjongsma@redhat.com> | 2015-11-19 14:33:18 -0600 |
commit | df331737d1c9ab5e680dfb3fd91897f3179cf4b6 (patch) | |
tree | 9faa0b4998eeba1bfe3136e11bf81c4c5d20af93 | |
parent | fd6cecaaa28705063a67f3543c6e709151de1794 (diff) | |
download | spice-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.c | 3 |
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); |