diff --git a/libs/sofia-sip/libsofia-sip-ua/nua/nua_client.c b/libs/sofia-sip/libsofia-sip-ua/nua/nua_client.c index 2e57371abf..5b60a3a69d 100644 --- a/libs/sofia-sip/libsofia-sip-ua/nua/nua_client.c +++ b/libs/sofia-sip/libsofia-sip-ua/nua/nua_client.c @@ -1140,7 +1140,7 @@ int nua_base_client_check_restart(nua_client_request_t *cr, if (status == 423) { unsigned my_expires = 0; - if (cr->cr_sip->sip_expires) + if (cr->cr_sip && cr->cr_sip->sip_expires) my_expires = cr->cr_sip->sip_expires->ex_delta; if (sip->sip_min_expires && @@ -1195,7 +1195,8 @@ int nua_base_client_check_restart(nua_client_request_t *cr, } } - if (0 && 500 <= status && status < 600 && + if (500 <= status && status < 600 && + cr->cr_sip && sip->sip_retry_after && sip->sip_retry_after->af_delta < 32) { su_timer_t *timer;