コード例 #1
0
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;
}
コード例 #2
0
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;
}