diff --git a/ChangeLog b/ChangeLog index a161ee3..12e05c5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2009-04-18 Matthew Fredrickson + + * libpri 1.4.10.2 released. A bug was found which was introduced + during the PTMP rewrite, which causes timers to not be cleared + before being set in certain situations. This can cause the + scheduler to be competely filled, as well as improper Q.921 link + operation. + 2009-04-18 Matthew Fredrickson * libpri 1.4.10.1 released. Includes a fix for a regression found in diff --git a/q921.c b/q921.c index f2057a6..83b9c7c 100644 --- a/q921.c +++ b/q921.c @@ -799,6 +799,16 @@ static pri_event *q921_dchannel_up(struct pri *pri) pri_message(pri, DBGHEAD "q921_state now is Q921_LINK_CONNECTION_ESTABLISHED\n", DBGINFO); pri->q921_state = Q921_LINK_CONNECTION_ESTABLISHED; + /* Ensure that we do not have T200 or T203 running when the link comes up */ + if (pri->t200_timer) { + pri_schedule_del(pri, pri->t200_timer); + pri->t200_timer = 0; + } + + if (pri->t203_timer) { + pri_schedule_del(pri, pri->t203_timer); + } + /* Start the T203 timer */ pri->t203_timer = pri_schedule_event(pri, pri->timers[PRI_TIMER_T203], t203_expire, pri);