From 0606e704cdebfb87e26693f691b8df07396f49fa Mon Sep 17 00:00:00 2001 From: Benny Prijono Date: Tue, 22 May 2007 12:21:40 +0000 Subject: [PATCH] =?UTF-8?q?Fixed=20ticket=20#284:=20Failed=20scenarios=20w?= =?UTF-8?q?ith=20CANCEL=20requests=20(thanks=20Esbj=C3=B6rn=20Dominique)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@1287 74dad513-b988-da41-8d7b-12977e46ad98 --- pjsip/include/pjsip-ua/sip_inv.h | 1 + pjsip/src/pjsip-ua/sip_inv.c | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/pjsip/include/pjsip-ua/sip_inv.h b/pjsip/include/pjsip-ua/sip_inv.h index 8023c8ec1..7ea1f27df 100644 --- a/pjsip/include/pjsip-ua/sip_inv.h +++ b/pjsip/include/pjsip-ua/sip_inv.h @@ -223,6 +223,7 @@ struct pjsip_inv_session char obj_name[PJ_MAX_OBJ_NAME]; /**< Log identification */ pj_pool_t *pool; /**< Dialog's pool. */ pjsip_inv_state state; /**< Invite sess state. */ + pj_bool_t cancelling; /**< CANCEL sent? */ pjsip_status_code cause; /**< Disconnect cause. */ pj_str_t cause_text; /**< Cause text. */ pj_bool_t notify; /**< Internal. */ diff --git a/pjsip/src/pjsip-ua/sip_inv.c b/pjsip/src/pjsip-ua/sip_inv.c index 44d073b47..3e4e546b0 100644 --- a/pjsip/src/pjsip-ua/sip_inv.c +++ b/pjsip/src/pjsip-ua/sip_inv.c @@ -1560,6 +1560,7 @@ PJ_DEF(pj_status_t) pjsip_inv_end_session( pjsip_inv_session *inv, /* Done */ + inv->cancelling = PJ_TRUE; *p_tdata = tdata; return PJ_SUCCESS; @@ -1950,7 +1951,9 @@ static void inv_on_state_calling( pjsip_inv_session *inv, pjsip_event *e) inv_check_sdp_in_incoming_msg(inv, tsx, e->body.tsx_state.src.rdata); - } else if (tsx->status_code==401 || tsx->status_code==407) { + } else if ((tsx->status_code==401 || tsx->status_code==407) && + !inv->cancelling) + { /* Handle authentication failure: * Resend the request with Authorization header.