From 1a47eb933b363d9a02f739eafd68196ab46371b4 Mon Sep 17 00:00:00 2001 From: Stefan Knoblich Date: Wed, 5 Sep 2012 00:13:18 +0200 Subject: [PATCH] ftmod_libpri: Reset timer parameters in lpwrap_run_expired() before invoking the callback. Allowing us to restart the timer from the callback with lpwrap_start_timer(). Signed-off-by: Stefan Knoblich --- libs/freetdm/src/ftmod/ftmod_libpri/lpwrap_pri.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/libs/freetdm/src/ftmod/ftmod_libpri/lpwrap_pri.c b/libs/freetdm/src/ftmod/ftmod_libpri/lpwrap_pri.c index 7cbcc7cd41..fb478901b3 100644 --- a/libs/freetdm/src/ftmod/ftmod_libpri/lpwrap_pri.c +++ b/libs/freetdm/src/ftmod/ftmod_libpri/lpwrap_pri.c @@ -275,15 +275,17 @@ static int lpwrap_run_expired(struct lpwrap_pri *spri, ftdm_time_t now_ms) /* fire callbacks */ while ((cur = expired_list)) { + timeout_handler handler = cur->callback; expired_list = cur->next; - if (cur->callback) - cur->callback(spri, cur); - /* stop timer */ + + /* Stop timer */ cur->next = NULL; cur->timeout = 0; cur->callback = NULL; - } + if (handler) + handler(spri, cur); + } return 0; }