# HG changeset patch # User Cristi Posoiu # Date 1299380131 0 # Node ID 45496e1dfe5cb59c6f5f0c87da4b212ff9b15116 # Parent 4f414608eaad719dd751918c96f4faacbdf25f4b Fix up some cases of file transfers never finishing. This will help certain instances of Yahoo file transfers not working, but not all. Fixes #12472. committer: John Bailey diff -r 4f414608eaad -r 45496e1dfe5c libpurple/ft.c --- a/libpurple/ft.c Sat Mar 05 17:18:10 2011 +0000 +++ b/libpurple/ft.c Sun Mar 06 02:55:31 2011 +0000 @@ -1100,9 +1100,11 @@ r = write(xfer->fd, buffer, s); if (r < 0 && errno == EAGAIN) r = 0; - if ((purple_xfer_get_bytes_sent(xfer)+r) >= purple_xfer_get_size(xfer)) - purple_xfer_set_completed(xfer, TRUE); } + if (r >= 0 && (purple_xfer_get_bytes_sent(xfer)+r) >= purple_xfer_get_size(xfer) && + !purple_xfer_is_completed(xfer)) + purple_xfer_set_completed(xfer, TRUE); + return r; }