[sr-dev] Using t_suspend()/t_continue() multiple times on the same transaction

dennis dennis.yu at live.cn
Wed Jul 2 11:24:33 CEST 2014


Peter Dunkley <peter.dunkley at ...> 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.






More information about the sr-dev mailing list