summaryrefslogtreecommitdiff
path: root/pjsip
diff options
context:
space:
mode:
Diffstat (limited to 'pjsip')
-rw-r--r--pjsip/src/pjsip/sip_transport_tcp.c6
-rw-r--r--pjsip/src/pjsip/sip_transport_tls_ossl.c12
2 files changed, 18 insertions, 0 deletions
diff --git a/pjsip/src/pjsip/sip_transport_tcp.c b/pjsip/src/pjsip/sip_transport_tcp.c
index 1bf0a030..da3c2a25 100644
--- a/pjsip/src/pjsip/sip_transport_tcp.c
+++ b/pjsip/src/pjsip/sip_transport_tcp.c
@@ -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;
diff --git a/pjsip/src/pjsip/sip_transport_tls_ossl.c b/pjsip/src/pjsip/sip_transport_tls_ossl.c
index 3998b6d8..db159148 100644
--- a/pjsip/src/pjsip/sip_transport_tls_ossl.c
+++ b/pjsip/src/pjsip/sip_transport_tls_ossl.c
@@ -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"));
}