diff --git a/src/sipevent/notify.c b/src/sipevent/notify.c index 790b1dc..d86dc23 100644 --- a/src/sipevent/notify.c +++ b/src/sipevent/notify.c @@ -99,6 +99,9 @@ static void tmr_handler(void *arg) { struct sipnot *not = arg; + if (not->terminated) + return; + re_printf("subscription expired\n"); sipnot_terminate(not, ETIMEDOUT, NULL, SIPEVENT_TIMEOUT); diff --git a/src/sipevent/subscribe.c b/src/sipevent/subscribe.c index 3fa9e2b..f326dd2 100644 --- a/src/sipevent/subscribe.c +++ b/src/sipevent/subscribe.c @@ -99,7 +99,7 @@ static void tmr_handler(void *arg) struct sipsub *sub = arg; int err; - if (sub->req) + if (sub->req || sub->terminated) return; err = request(sub, true);