Commit cd418ec7 authored by Pekka Pessi's avatar Pekka Pessi

nta.c: do not destroy INVITE transaction if it has been CANCELed

Handle gracefully cases where the INVITE transaction is destroyed
immediately after canceling it. The old behaviour was to left it up to the
application to ACK the final response returned to INVITE.

Thanks for Fabio Margarido for reporting this problem.

darcs-hash:20070823152242-65a35-322b6f73ae28a9f7e4378462b8e6c7afbcd16cc8.gz
parent f2274153
......@@ -7769,11 +7769,11 @@ void outgoing_destroy(nta_outgoing_t *orq)
if (orq->orq_terminated || orq->orq_default) {
outgoing_free(orq);
}
/* We have to handle 200 OK statelessly =>
kill transaction immediately */
/* Application is expected to handle 200 OK statelessly
=> kill transaction immediately */
else if (orq->orq_method == sip_method_invite && !orq->orq_completed
/* (unless we have to wait to send CANCEL) */
&& !orq->orq_cancel) {
/* (unless we the transaction has been canceled) */
&& !orq->orq_canceled) {
orq->orq_destroyed = 1;
outgoing_terminate(orq);
}
......
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