diff --git a/src/ringdht/sips_transport_ice.cpp b/src/ringdht/sips_transport_ice.cpp index 9b1d340d497bee00bd1f001ef2956929c89ba841..b62d3f88aaec9977cb1dbecdd51153f05888301f 100644 --- a/src/ringdht/sips_transport_ice.cpp +++ b/src/ringdht/sips_transport_ice.cpp @@ -177,7 +177,7 @@ SipsIceTransport::SipsIceTransport(pjsip_endpoint* endpt, if (pjsip_transport_register(base.tpmgr, &base) != PJ_SUCCESS) throw std::runtime_error("Can't register PJSIP transport."); - gnutls_priority_init(&priority_cache, + gnutls_priority_init(&priority_cache_, "SECURE192:-VERS-TLS-ALL:+VERS-DTLS-ALL:%SERVER_PRECEDENCE", nullptr); @@ -219,6 +219,8 @@ SipsIceTransport::~SipsIceTransport() pj_lock_destroy(trData_.base.lock); pj_atomic_destroy(trData_.base.ref_cnt); + + gnutls_priority_deinit(priority_cache_); } pj_status_t @@ -237,7 +239,7 @@ SipsIceTransport::startTlsSession() gnutls_session_set_ptr(session_, this); gnutls_transport_set_ptr(session_, this); - gnutls_priority_set(session_, priority_cache); + gnutls_priority_set(session_, priority_cache_); /* Allocate credentials for handshaking and transmission */ gnutls_certificate_credentials_t certCred; diff --git a/src/ringdht/sips_transport_ice.h b/src/ringdht/sips_transport_ice.h index aa4284afeda4cdada6d23049192a399b6e45d34c..365d89735151bd924f148e35675b22dc2470bc74 100644 --- a/src/ringdht/sips_transport_ice.h +++ b/src/ringdht/sips_transport_ice.h @@ -129,7 +129,7 @@ private: gnutls_session_t session_ {nullptr}; std::unique_ptr<gnutls_certificate_credentials_st, decltype(gnutls_certificate_free_credentials)&> xcred_; - gnutls_priority_t priority_cache; + gnutls_priority_t priority_cache_ {nullptr}; gnutls_datum_t cookie_key_ {nullptr, 0}; gnutls_dtls_prestate_st prestate_;