Peter Dunkley <peter.dunkley@...> writes:
Hi,
I am trying to use t_suspend()/t_continue() multiple times on the same
transaction. Calling t_suspend() more than once works, but the second time
I call t_continue() the transaction is killed and a 500 response is sent.
It is the "if (branch == t->nr_of_outgoings)" check from the code fragment
below (from t_suspend.c:t_continue()) that results in the transaction being
killed - you can see the debug/error line I added to determine this in the
fragment.
Is using t_suspend()/t_continue() multiple times
something that should
work?
Thanks,
Peter
if (t->uas.status < 200) {
/* No final reply has been sent yet.
* Check whether or not there is any pending branch.
*/
for ( branch = 0;
branch < t->nr_of_outgoings;
branch++
) {
if ((t->uac[branch].request.buffer != NULL)
&& (t->uac[branch].last_received < 200)
)
break;
}
if (branch == t->nr_of_outgoings) {
/* There is not any open branch so there is
* no chance that a final response will be
received. */
ret = 0;
LM_ERR("branch == t->nr_of_outgoings\n");
goto kill_trans;
}
}
hi Peter,
are you find any solution? the same problem occur in my circumstance.