libpurple/ft.c

branch
soc.2008.yahoo
changeset 26373
105e5b66e8da
parent 25359
ea172b7ea601
child 26726
b81bcec8f359
--- a/libpurple/ft.c	Wed Jan 28 07:01:37 2009 +0000
+++ b/libpurple/ft.c	Wed Jan 28 07:34:18 2009 +0000
@@ -857,8 +857,12 @@
 	else
 		s = MIN(purple_xfer_get_bytes_remaining(xfer), xfer->current_buffer_size);
 
-	if (xfer->ops.read != NULL)
+	if (xfer->ops.read != NULL)	{
 		r = (xfer->ops.read)(buffer, xfer);
+		if ((purple_xfer_get_size(xfer) > 0) &&
+			((purple_xfer_get_bytes_sent(xfer)+r) >= purple_xfer_get_size(xfer)))
+			purple_xfer_set_completed(xfer, TRUE);
+	}
 	else {
 		*buffer = g_malloc0(s);
 

mercurial