Related to ticket #95: bug in TLS transport: keep-alive timer is not cancelled when transport is destroyed
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@1476 74dad513-b988-da41-8d7b-12977e46ad98
This commit is contained in:
parent
9569a0b59f
commit
97acefd361
|
@ -663,6 +663,12 @@ static pj_status_t tcp_destroy(pjsip_transport *transport,
|
|||
/* Mark transport as closing */
|
||||
tcp->is_closing = PJ_TRUE;
|
||||
|
||||
/* Stop keep-alive timer. */
|
||||
if (tcp->ka_timer.id) {
|
||||
pjsip_endpt_cancel_timer(tcp->listener->endpt, &tcp->ka_timer);
|
||||
tcp->ka_timer.id = PJ_FALSE;
|
||||
}
|
||||
|
||||
/* Cancel all delayed transmits */
|
||||
while (!pj_list_empty(&tcp->delayed_list)) {
|
||||
struct delayed_tdata *pending_tx;
|
||||
|
|
|
@ -1397,6 +1397,12 @@ static pj_status_t tls_destroy(pjsip_transport *transport,
|
|||
/* Mark transport as closing */
|
||||
++tls->is_closing;
|
||||
|
||||
/* Stop keep-alive timer. */
|
||||
if (tls->ka_timer.id) {
|
||||
pjsip_endpt_cancel_timer(tls->listener->endpt, &tls->ka_timer);
|
||||
tls->ka_timer.id = PJ_FALSE;
|
||||
}
|
||||
|
||||
/* Cancel all delayed transmits */
|
||||
while (!pj_list_empty(&tls->delayed_list)) {
|
||||
struct delayed_tdata *pending_tx;
|
||||
|
@ -1958,6 +1964,12 @@ static pj_status_t tls_shutdown(pjsip_transport *transport)
|
|||
SSL_shutdown(tls->ssl);
|
||||
tls->ssl_shutdown_called = PJ_TRUE;
|
||||
|
||||
/* Stop keep-alive timer. */
|
||||
if (tls->ka_timer.id) {
|
||||
pjsip_endpt_cancel_timer(tls->listener->endpt, &tls->ka_timer);
|
||||
tls->ka_timer.id = PJ_FALSE;
|
||||
}
|
||||
|
||||
PJ_LOG(4,(transport->obj_name, "TLS transport shutdown"));
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue