ratox

FIFO based tox client
git clone git://git.2f30.org/ratox
Log | Files | Refs | README | LICENSE

commit 4c4d2d25f8c24d1e2ec962962dcbd48bc9d541bb
parent 33ee6bfc66254e98e7500f8f2613ae0a4d19d87b
Author: sin <sin@2f30.org>
Date:   Fri,  3 Oct 2014 12:41:50 +0100

Implement cbcallending() to properly reset state when we cancel the call

Diffstat:
Mratox.c | 13+++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/ratox.c b/ratox.c @@ -431,7 +431,17 @@ cbcallstarting(void *av, int32_t cnum, void *udata) static void cbcallending(void *av, int32_t cnum, void *udata) { - printf("Entered %s\n", __func__); + struct friend *f; + int32_t fnum; + + fnum = toxav_get_peer_id(toxav, cnum, 0); + TAILQ_FOREACH(f, &friendhead, entry) + if (f->num == fnum) + break; + if (!f) + return; + + cancelrxcall(f, "Ending"); } static void @@ -475,7 +485,6 @@ cbcalldata(ToxAv *av, int32_t cnum, int16_t *data, int len, void *udata) if (n < 0) { if (errno == EPIPE) { toxav_hangup(toxav, 0); - cancelrxcall(f, "Hangup"); break; } else if (errno == EWOULDBLOCK) { continue;