ratox

FIFO based tox client
Log | Files | Refs | README | LICENSE

commit 0c916898347ff1887801443526f20136190a947d
parent 15e5fb0021d87d4672ede019c85403fbf7d1face
Author: sin <sin@2f30.org>
Date:   Tue Sep 16 13:45:35 +0100

Only monitor FIFOs for friends that are online

Side-effect: If you send a file to a friend that is offline,
the write will block() until the friend comes online at which point
the file transfer will begin.

Diffstat:
ratatox.c | 13+++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/ratatox.c b/ratatox.c @@ -891,10 +891,13 @@ loop(void) fdmax = STDIN_FILENO; TAILQ_FOREACH(f, &friendhead, entry) { - for (i = 0; i < NR_FIFOS; i++) { - FD_SET(f->fd[i], &rfds); - if (f->fd[i] > fdmax) - fdmax = f->fd[i]; + /* Only monitor friends that are online */ + if (tox_get_friend_connection_status(tox, f->fid) == 1) { + for (i = 0; i < NR_FIFOS; i++) { + FD_SET(f->fd[i], &rfds); + if (f->fd[i] > fdmax) + fdmax = f->fd[i]; + } } } @@ -917,6 +920,8 @@ loop(void) * sent. */ TAILQ_FOREACH(f, &friendhead, entry) { + if (tox_get_friend_connection_status(tox, f->fid) == 0) + continue; if (f->t.state == TRANSFER_NONE) continue; if (f->t.pending == 0)