comparison libpurple/ft.c @ 31301:45496e1dfe5c

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 <rekkanoryo@rekkanoryo.org>
author Cristi Posoiu
date Sun, 06 Mar 2011 02:55:31 +0000
parents a8cc50c2279f
children 313fcc5be568
comparison
equal deleted inserted replaced
31300:4f414608eaad 31301:45496e1dfe5c
1098 r = (xfer->ops.write)(buffer, s, xfer); 1098 r = (xfer->ops.write)(buffer, s, xfer);
1099 } else { 1099 } else {
1100 r = write(xfer->fd, buffer, s); 1100 r = write(xfer->fd, buffer, s);
1101 if (r < 0 && errno == EAGAIN) 1101 if (r < 0 && errno == EAGAIN)
1102 r = 0; 1102 r = 0;
1103 if ((purple_xfer_get_bytes_sent(xfer)+r) >= purple_xfer_get_size(xfer)) 1103 }
1104 purple_xfer_set_completed(xfer, TRUE); 1104 if (r >= 0 && (purple_xfer_get_bytes_sent(xfer)+r) >= purple_xfer_get_size(xfer) &&
1105 } 1105 !purple_xfer_is_completed(xfer))
1106 purple_xfer_set_completed(xfer, TRUE);
1107
1106 1108
1107 return r; 1109 return r;
1108 } 1110 }
1109 1111
1110 static void 1112 static void