Commit 051c5981 authored by Simon Morlat's avatar Simon Morlat

attempt to prevent timer C from looping forever on a transaction that cannot...

attempt to prevent timer C from looping forever on a transaction that cannot be cancelled because marked as destroyed.
parent 465d9185
......@@ -8874,7 +8874,10 @@ size_t outgoing_timer_c(outgoing_queue_t *q,
* If the client transaction has received a provisional response, the
* proxy MUST generate a CANCEL request matching that transaction.
*/
nta_outgoing_tcancel(orq, NULL, NULL, TAG_NULL());
if (!orq->orq_destroyed) /*check if the transaction is already marked as destroyed, otherwise cancel has no effect*/
nta_outgoing_tcancel(orq, NULL, NULL, TAG_NULL());
else
nta_outgoing_complete(orq); /*in that case simply mark the transaction as completed so that it will be freed.*/
}
return timeout;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment