b11a1c
----------------------------------------------------------------------
b11a1c
Revision: 9d51cb9fbcc04d21597eed0381f4d06c53facc44
b11a1c
Parent:   17326b88b85d2f13939a71ca80d4a617f0527f9a
b11a1c
Author:   Cristi Posoiu
b11a1c
Date:     06/03/11 02:55:31
b11a1c
Branch:   im.pidgin.pidgin
b11a1c
b11a1c
Changelog: 
b11a1c
b11a1c
Fix up some cases of file transfers never finishing.  This will help certain
b11a1c
instances of Yahoo file transfers not working, but not all.  Fixes #12472.
b11a1c
b11a1c
Changes against parent 17326b88b85d2f13939a71ca80d4a617f0527f9a
b11a1c
b11a1c
  patched  libpurple/ft.c
b11a1c
b11a1c
============================================================
b11a1c
--- libpurple/ft.c	2b8633b159e16099b858dd21ed122e9c3811a9d5
b11a1c
+++ libpurple/ft.c	ffba61c0a50c9d5f866f8b1f0dec16cf13bbd65c
b11a1c
@@ -1100,9 +1100,11 @@ purple_xfer_write(PurpleXfer *xfer, cons
b11a1c
 		r = write(xfer->fd, buffer, s);
b11a1c
 		if (r < 0 && errno == EAGAIN)
b11a1c
 			r = 0;
b11a1c
-		if ((purple_xfer_get_bytes_sent(xfer)+r) >= purple_xfer_get_size(xfer))
b11a1c
-			purple_xfer_set_completed(xfer, TRUE);
b11a1c
 	}
b11a1c
+	if (r >= 0 && (purple_xfer_get_bytes_sent(xfer)+r) >= purple_xfer_get_size(xfer) &&
b11a1c
+		!purple_xfer_is_completed(xfer))
b11a1c
+		purple_xfer_set_completed(xfer, TRUE);
b11a1c
+	
b11a1c
 
b11a1c
 	return r;
b11a1c
 }