diff options
author | Liong Sauw Ming <ming@teluu.com> | 2015-08-06 06:28:51 +0000 |
---|---|---|
committer | Liong Sauw Ming <ming@teluu.com> | 2015-08-06 06:28:51 +0000 |
commit | fb77808be64ec6ac4e7896bac5542fdb88b09a1c (patch) | |
tree | f20aedc5876c5941d1aa1033ab27eb00681248ab /pjsip/src | |
parent | 8f71afc1bcb329553c391d9f7308792dacea9dfc (diff) |
Fixed #1875: Assertion in rescheduling PJSIP retransmission
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@5147 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip/src')
-rw-r--r-- | pjsip/src/pjsip/sip_transaction.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/pjsip/src/pjsip/sip_transaction.c b/pjsip/src/pjsip/sip_transaction.c index 0174fa53..ccd3af61 100644 --- a/pjsip/src/pjsip/sip_transaction.c +++ b/pjsip/src/pjsip/sip_transaction.c @@ -1848,8 +1848,14 @@ static void send_msg_callback( pjsip_send_state *send_state, tsx_send_msg(tsx, tsx->last_tx); } - /* Need to reschedule retransmission? */ - if (tsx->transport_flag & TSX_HAS_PENDING_RESCHED) { + /* Need to reschedule retransmission? + * Note that when sending a pending message above, tsx_send_msg() + * may set the flag TSX_HAS_PENDING_TRANSPORT. + * Please refer to ticket #1875. + */ + if (tsx->transport_flag & TSX_HAS_PENDING_RESCHED && + !(tsx->transport_flag & TSX_HAS_PENDING_TRANSPORT)) + { tsx->transport_flag &= ~(TSX_HAS_PENDING_RESCHED); /* Only update when transport turns out to be unreliable. */ |