[Spice-devel] [PATCH spice-gtk] file transfer: vdagent need a cancel msg when user cancel a file tranfser

Jonathon Jongsma jjongsma at redhat.com
Wed Nov 18 12:21:23 PST 2015


On Wed, 2015-11-18 at 11:29 +0800, Jay.han wrote:
> 
> According to vdagent fileXfer, it requires a
>  VD_AGENT_FILE_XFER_STATUS_CANCELLED msg when user cancel a file transfer.
> Currently our code only send VD_AGENT_FILE_XFER_STATUS_ERROR,
> this will cause the vdagent lock the file until it restart, you can't remove
> the broken file.
> 
> diff --git a/src/channel-main.c b/src/channel-main.c
> index 8138fd5..7a9af7b 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);
> -- 
> Jay.Han
> 

Thank you for your patch. It looks correct to me. 

But your description above indicates that there may also be a bug in the
vdagent. The file should not be locked if we send an error message to the
vdagent. Were you using a windows guest or a linux guest?

In the future, could you send patches in plain-text format so we can easily
apply them to the git repository?

Thanks a lot!
Jonathon




More information about the Spice-devel mailing list