From: Stefan Knoblich Date: Tue, 4 Sep 2012 22:13:18 +0000 (+0200) Subject: ftmod_libpri: Reset timer parameters in lpwrap_run_expired() before invoking the... X-Git-Tag: v1.2.3^2~90^2~4^2~6 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1a47eb933b363d9a02f739eafd68196ab46371b4;p=thirdparty%2Ffreeswitch.git 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 --- 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; }