Mercurial > pidgin
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 |