commit 388273ecb3c78e742186f3dd2d3227787b407750
parent 2577db3a2d138218f1f0ca649178a7bc692442af
Author: sin <sin@2f30.org>
Date: Sat, 27 Sep 2014 16:58:35 +0100
Clear fd status when we are done to avoid double initiation
Diffstat:
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/ratox.c b/ratox.c
@@ -605,7 +605,7 @@ sendfriendfile(struct friend *f)
if (n == 0) {
/* Signal transfer completion to other end */
if (tox_file_send_control(tox, f->num, 0, f->tx.fnum,
- TOX_FILECONTROL_FINISHED, NULL, 0) < 0)
+ TOX_FILECONTROL_FINISHED, NULL, 0) < 0)
weprintf("Failed to signal transfer completion to the receiver\n");
f->tx.state = TRANSFER_NONE;
break;
@@ -1203,6 +1203,8 @@ loop(void)
continue;
if (f->tx.pendingbuf == 1)
sendfriendfile(f);
+ if (f->tx.state == TRANSFER_NONE)
+ FD_CLR(f->fd[FFILE_IN], &rfds);
}
/* Accept pending transfers if any */