Re: [PATCH] Fix not detecting errors on small files

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

 



Hi,

On Wed, Sep 29, 2010 at 5:27 PM, Luiz Augusto von Dentz
<luiz.dentz@xxxxxxxxx> wrote:
> From: Luiz Augusto von Dentz <luiz.dentz-von@xxxxxxxxx>
>
> When flushing the last part of buffer/file we have to wait for response
> since that can contain errors.
>
> To fix this gw_obex_xfer_close is called in order to force gwobex to
> resume the request and return any error related to it.
> ---
>  client/transfer.c |    9 +++++++--
>  1 files changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/client/transfer.c b/client/transfer.c
> index 8ceb36f..e5fcfcc 100644
> --- a/client/transfer.c
> +++ b/client/transfer.c
> @@ -360,7 +360,7 @@ static void put_xfer_progress(GwObexXfer *xfer, gpointer user_data)
>  {
>        struct transfer_data *transfer = user_data;
>        struct transfer_callback *callback = transfer->callback;
> -       gint written, err = 0;
> +       gint written = 0, err = 0;
>
>        if (transfer->buffer_len == 0) {
>                transfer->buffer_len = DEFAULT_BUFFER_SIZE;
> @@ -380,7 +380,12 @@ static void put_xfer_progress(GwObexXfer *xfer, gpointer user_data)
>                transfer->filled += len;
>
>                if (transfer->filled == 0) {
> -                       gw_obex_xfer_flush(xfer, &err);
> +                       if (written > 0) {
> +                               gw_obex_xfer_flush(xfer, &err);
> +                               return;
> +                       }
> +
> +                       gw_obex_xfer_close(xfer, &err);
>                        goto done;
>                }

Actually I might simplify even more by not returning when flushing the
transfer, at that point we don't have anything else to write so
returning and waiting for gwobex to call it again is just a wait of
time, so please ignore this for now.

-- 
Luiz Augusto von Dentz
Computer Engineer
--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux