From 388273ecb3c78e742186f3dd2d3227787b407750 Mon Sep 17 00:00:00 2001 From: sin Date: Sat, 27 Sep 2014 16:58:35 +0100 Subject: Clear fd status when we are done to avoid double initiation --- ratox.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ratox.c b/ratox.c index a85a87e..6e09474 100644 --- 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 */ -- cgit v1.2.3