static tsk_object_t* tnet_transport_dtor(tsk_object_t * self) { tnet_transport_t *transport = self; if (transport){ tnet_transport_set_callback(transport, tsk_null, tsk_null); tnet_transport_shutdown(transport); TSK_OBJECT_SAFE_FREE(transport->master); TSK_OBJECT_SAFE_FREE(transport->context); TSK_OBJECT_SAFE_FREE(transport->natt_ctx); TSK_FREE(transport->local_ip); TSK_FREE(transport->local_host); // proxy TSK_OBJECT_SAFE_FREE(transport->proxy.info); // (tls and dtls) = ssl TSK_FREE(transport->tls.ca); TSK_FREE(transport->tls.pbk); TSK_FREE(transport->tls.pvk); _tnet_transport_ssl_deinit(transport); // openssl contexts TSK_DEBUG_INFO("*** Transport (%s) destroyed ***", transport->description); TSK_FREE(transport->description); } return self; }
int tdav_session_msrp_stop(tmedia_session_t* self) { tdav_session_msrp_t* msrp; int ret; if(!self){ TSK_DEBUG_ERROR("Invalid parameter"); return -1; } msrp = (tdav_session_msrp_t*)self; if(msrp->sender){ if((ret = tmsrp_sender_stop(msrp->sender))){ TSK_DEBUG_ERROR("Failed to stop the MSRP sender"); } } if(msrp->receiver){ if((ret = tmsrp_receiver_stop(msrp->receiver))){ TSK_DEBUG_ERROR("Failed to stop the MSRP receiver"); } } if(msrp->transport){ if((ret = tnet_transport_shutdown(msrp->transport))){ TSK_DEBUG_ERROR("Failed to stop the MSRP transport"); } } return 0; }