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