besser82 / rpms / pidgin

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