Re: [spice-gtk v4 07/24] main: to let SpiceFileTransferTask handle errors

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 2016-06-23 at 19:37 +0200, Victor Toso wrote:
> * spice_file_transfer_task_read_async() will call the callback with
>   error in case it is called on pending state

OK, this maintains behavior, since it just moves the error reporting down a
level to the called function.

> 
> * on VD_AGENT_FILE_XFER_STATUS_SUCCESS it should not be possible to be
>   on pending state as spice_file_transfer_task_read_async() would
>   return immediately in case all file is read

On the other hand, this appears to change behavior. If the guest sends an early
STATUS_SUCCESS to the client for some reason (buggy agent thinks it received all
data even though the client is still sending data), we will no longer report an
error. I'm not sure that's a good idea.


> ---
>  src/channel-main.c | 8 --------
>  1 file changed, 8 deletions(-)
> 
> diff --git a/src/channel-main.c b/src/channel-main.c
> index 9787613..4b728fe 100644
> --- a/src/channel-main.c
> +++ b/src/channel-main.c
> @@ -1993,11 +1993,6 @@ static void
> spice_file_transfer_task_handle_status(SpiceFileTransferTask *task,
>  
>      switch (msg->result) {
>      case VD_AGENT_FILE_XFER_STATUS_CAN_SEND_DATA:
> -        if (task->pending) {
> -            error = g_error_new(SPICE_CLIENT_ERROR,
> SPICE_CLIENT_ERROR_FAILED,
> -                           "transfer received CAN_SEND_DATA in pending
> state");
> -            break;
> -        }
>          spice_file_transfer_task_read_async(task, file_xfer_read_async_cb,
> NULL);
>          return;
>      case VD_AGENT_FILE_XFER_STATUS_CANCELLED:
> @@ -2009,9 +2004,6 @@ static void
> spice_file_transfer_task_handle_status(SpiceFileTransferTask *task,
>                              "some errors occurred in the spice agent");
>          break;
>      case VD_AGENT_FILE_XFER_STATUS_SUCCESS:
> -        if (task->pending)
> -            error = g_error_new(SPICE_CLIENT_ERROR,
> SPICE_CLIENT_ERROR_FAILED,
> -                                "transfer received success in pending
> state");
>          break;
>      default:
>          g_warn_if_reached();

Reviewed-by: Jonathon Jongsma <jjongsma@xxxxxxxxxx>
_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/spice-devel




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]