mirror of
https://github.com/coturn/coturn.git
synced 2025-10-30 14:31:29 +01:00
more debug information
This commit is contained in:
parent
e50080c753
commit
7973a31f01
@ -747,11 +747,27 @@ static void del_tm_ptr(void *ptr, const char *id) {
|
|||||||
pthread_mutex_unlock(&tm);
|
pthread_mutex_unlock(&tm);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void tm_id(char *id, const char* file, int line) {
|
static void tm_id(char *id, const char* function, int line) {
|
||||||
sprintf(id,"%s:%d",file,line);
|
sprintf(id,"%s:%d",function,line);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define TM_START() char id[128];tm_id(id,file,line);tm_init()
|
#define TM_START() char id[128];tm_id(id,function,line);tm_init()
|
||||||
|
|
||||||
|
extern "C" void* debug_ptr_add_func(void *ptr, const char* function, int line) {
|
||||||
|
|
||||||
|
TM_START();
|
||||||
|
|
||||||
|
add_tm_ptr(ptr,id);
|
||||||
|
|
||||||
|
return ptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
extern "C" void debug_ptr_del_func(void *ptr, const char* function, int line) {
|
||||||
|
|
||||||
|
TM_START();
|
||||||
|
|
||||||
|
del_tm_ptr(ptr,id);
|
||||||
|
}
|
||||||
|
|
||||||
extern "C" void tm_print_func(void);
|
extern "C" void tm_print_func(void);
|
||||||
void tm_print_func(void) {
|
void tm_print_func(void) {
|
||||||
@ -765,8 +781,8 @@ void tm_print_func(void) {
|
|||||||
pthread_mutex_unlock(&tm);
|
pthread_mutex_unlock(&tm);
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" void *turn_malloc_func(size_t sz, const char* file, int line);
|
extern "C" void *turn_malloc_func(size_t sz, const char* function, int line);
|
||||||
void *turn_malloc_func(size_t sz, const char* file, int line) {
|
void *turn_malloc_func(size_t sz, const char* function, int line) {
|
||||||
|
|
||||||
TM_START();
|
TM_START();
|
||||||
|
|
||||||
@ -777,8 +793,8 @@ void *turn_malloc_func(size_t sz, const char* file, int line) {
|
|||||||
return ptr;
|
return ptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" void *turn_realloc_func(void *ptr, size_t old_sz, size_t new_sz, const char* file, int line);
|
extern "C" void *turn_realloc_func(void *ptr, size_t old_sz, size_t new_sz, const char* function, int line);
|
||||||
void *turn_realloc_func(void *ptr, size_t old_sz, size_t new_sz, const char* file, int line) {
|
void *turn_realloc_func(void *ptr, size_t old_sz, size_t new_sz, const char* function, int line) {
|
||||||
|
|
||||||
UNUSED_ARG(old_sz);
|
UNUSED_ARG(old_sz);
|
||||||
|
|
||||||
@ -794,8 +810,8 @@ void *turn_realloc_func(void *ptr, size_t old_sz, size_t new_sz, const char* fil
|
|||||||
return ptr;
|
return ptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" void turn_free_func(void *ptr, size_t sz, const char* file, int line);
|
extern "C" void turn_free_func(void *ptr, size_t sz, const char* function, int line);
|
||||||
void turn_free_func(void *ptr, size_t sz, const char* file, int line) {
|
void turn_free_func(void *ptr, size_t sz, const char* function, int line) {
|
||||||
|
|
||||||
UNUSED_ARG(sz);
|
UNUSED_ARG(sz);
|
||||||
|
|
||||||
@ -816,8 +832,8 @@ void turn_free_simple(void *ptr) {
|
|||||||
free(ptr);
|
free(ptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" void *turn_calloc_func(size_t number, size_t size, const char* file, int line);
|
extern "C" void *turn_calloc_func(size_t number, size_t size, const char* function, int line);
|
||||||
void *turn_calloc_func(size_t number, size_t size, const char* file, int line) {
|
void *turn_calloc_func(size_t number, size_t size, const char* function, int line) {
|
||||||
|
|
||||||
TM_START();
|
TM_START();
|
||||||
|
|
||||||
@ -828,8 +844,8 @@ void *turn_calloc_func(size_t number, size_t size, const char* file, int line) {
|
|||||||
return ptr;
|
return ptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" char *turn_strdup_func(const char* s, const char* file, int line);
|
extern "C" char *turn_strdup_func(const char* s, const char* function, int line);
|
||||||
char *turn_strdup_func(const char* s, const char* file, int line) {
|
char *turn_strdup_func(const char* s, const char* function, int line) {
|
||||||
|
|
||||||
TM_START();
|
TM_START();
|
||||||
|
|
||||||
|
|||||||
@ -266,7 +266,7 @@ static ioa_socket_handle dtls_server_input_handler(dtls_listener_relay_server_ty
|
|||||||
timeout.tv_usec = 0;
|
timeout.tv_usec = 0;
|
||||||
BIO_ctrl(wbio, BIO_CTRL_DGRAM_SET_RECV_TIMEOUT, 0, &timeout);
|
BIO_ctrl(wbio, BIO_CTRL_DGRAM_SET_RECV_TIMEOUT, 0, &timeout);
|
||||||
|
|
||||||
connecting_ssl = SSL_new(server->dtls_ctx);
|
connecting_ssl = SSL_NEW(server->dtls_ctx);
|
||||||
|
|
||||||
SSL_set_accept_state(connecting_ssl);
|
SSL_set_accept_state(connecting_ssl);
|
||||||
|
|
||||||
@ -285,7 +285,7 @@ static ioa_socket_handle dtls_server_input_handler(dtls_listener_relay_server_ty
|
|||||||
SSL_set_shutdown(connecting_ssl, SSL_RECEIVED_SHUTDOWN);
|
SSL_set_shutdown(connecting_ssl, SSL_RECEIVED_SHUTDOWN);
|
||||||
SSL_shutdown(connecting_ssl);
|
SSL_shutdown(connecting_ssl);
|
||||||
}
|
}
|
||||||
SSL_free(connecting_ssl);
|
SSL_FREE(connecting_ssl);
|
||||||
}
|
}
|
||||||
|
|
||||||
return rc;
|
return rc;
|
||||||
@ -536,7 +536,7 @@ static int create_new_connected_udp_socket(
|
|||||||
timeout.tv_usec = 0;
|
timeout.tv_usec = 0;
|
||||||
BIO_ctrl(wbio, BIO_CTRL_DGRAM_SET_RECV_TIMEOUT, 0, &timeout);
|
BIO_ctrl(wbio, BIO_CTRL_DGRAM_SET_RECV_TIMEOUT, 0, &timeout);
|
||||||
|
|
||||||
connecting_ssl = SSL_new(server->dtls_ctx);
|
connecting_ssl = SSL_NEW(server->dtls_ctx);
|
||||||
|
|
||||||
SSL_set_accept_state(connecting_ssl);
|
SSL_set_accept_state(connecting_ssl);
|
||||||
|
|
||||||
@ -552,7 +552,7 @@ static int create_new_connected_udp_socket(
|
|||||||
SSL_set_shutdown(connecting_ssl, SSL_RECEIVED_SHUTDOWN);
|
SSL_set_shutdown(connecting_ssl, SSL_RECEIVED_SHUTDOWN);
|
||||||
SSL_shutdown(connecting_ssl);
|
SSL_shutdown(connecting_ssl);
|
||||||
}
|
}
|
||||||
SSL_free(connecting_ssl);
|
SSL_FREE(connecting_ssl);
|
||||||
IOA_CLOSE_SOCKET(ret);
|
IOA_CLOSE_SOCKET(ret);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1305,11 +1305,7 @@ static void connect_eventcb(struct bufferevent *bev, short events, void *ptr)
|
|||||||
if (events & BEV_EVENT_CONNECTED) {
|
if (events & BEV_EVENT_CONNECTED) {
|
||||||
ret->conn_cb = NULL;
|
ret->conn_cb = NULL;
|
||||||
ret->conn_arg = NULL;
|
ret->conn_arg = NULL;
|
||||||
if(ret->conn_bev) {
|
BUFFEREVENT_FREE(ret->conn_bev);
|
||||||
bufferevent_disable(ret->conn_bev,EV_READ|EV_WRITE);
|
|
||||||
bufferevent_free(ret->conn_bev);
|
|
||||||
ret->conn_bev=NULL;
|
|
||||||
}
|
|
||||||
ret->connected = 1;
|
ret->connected = 1;
|
||||||
if(cb) {
|
if(cb) {
|
||||||
cb(1,arg);
|
cb(1,arg);
|
||||||
@ -1318,11 +1314,7 @@ static void connect_eventcb(struct bufferevent *bev, short events, void *ptr)
|
|||||||
/* An error occured while connecting. */
|
/* An error occured while connecting. */
|
||||||
ret->conn_cb = NULL;
|
ret->conn_cb = NULL;
|
||||||
ret->conn_arg = NULL;
|
ret->conn_arg = NULL;
|
||||||
if(ret->conn_bev) {
|
BUFFEREVENT_FREE(ret->conn_bev);
|
||||||
bufferevent_disable(ret->conn_bev,EV_READ|EV_WRITE);
|
|
||||||
bufferevent_free(ret->conn_bev);
|
|
||||||
ret->conn_bev=NULL;
|
|
||||||
}
|
|
||||||
if(cb) {
|
if(cb) {
|
||||||
cb(0,arg);
|
cb(0,arg);
|
||||||
}
|
}
|
||||||
@ -1364,15 +1356,12 @@ ioa_socket_handle ioa_create_connecting_tcp_relay_socket(ioa_socket_handle s, io
|
|||||||
|
|
||||||
set_ioa_socket_session(ret, s->session);
|
set_ioa_socket_session(ret, s->session);
|
||||||
|
|
||||||
if(ret->conn_bev) {
|
BUFFEREVENT_FREE(ret->conn_bev);
|
||||||
bufferevent_disable(ret->conn_bev,EV_READ|EV_WRITE);
|
|
||||||
bufferevent_free(ret->conn_bev);
|
|
||||||
ret->conn_bev=NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
ret->conn_bev = bufferevent_socket_new(ret->e->event_base,
|
ret->conn_bev = bufferevent_socket_new(ret->e->event_base,
|
||||||
ret->fd,
|
ret->fd,
|
||||||
BEV_OPT_THREADSAFE | BEV_OPT_DEFER_CALLBACKS | BEV_OPT_UNLOCK_CALLBACKS);
|
BEV_OPT_THREADSAFE | BEV_OPT_DEFER_CALLBACKS | BEV_OPT_UNLOCK_CALLBACKS);
|
||||||
|
debug_ptr_add(ret->conn_bev);
|
||||||
bufferevent_setcb(ret->conn_bev, NULL, NULL, connect_eventcb, ret);
|
bufferevent_setcb(ret->conn_bev, NULL, NULL, connect_eventcb, ret);
|
||||||
|
|
||||||
ret->conn_arg = arg;
|
ret->conn_arg = arg;
|
||||||
@ -1577,16 +1566,8 @@ static void close_socket_net_data(ioa_socket_handle s)
|
|||||||
evconnlistener_free(s->list_ev);
|
evconnlistener_free(s->list_ev);
|
||||||
s->list_ev = NULL;
|
s->list_ev = NULL;
|
||||||
}
|
}
|
||||||
if(s->conn_bev) {
|
BUFFEREVENT_FREE(s->conn_bev);
|
||||||
bufferevent_disable(s->conn_bev,EV_READ|EV_WRITE);
|
BUFFEREVENT_FREE(s->bev);
|
||||||
bufferevent_free(s->conn_bev);
|
|
||||||
s->conn_bev=NULL;
|
|
||||||
}
|
|
||||||
if(s->bev) {
|
|
||||||
bufferevent_disable(s->bev,EV_READ|EV_WRITE);
|
|
||||||
bufferevent_free(s->bev);
|
|
||||||
s->bev=NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (s->ssl) {
|
if (s->ssl) {
|
||||||
if (!s->broken) {
|
if (!s->broken) {
|
||||||
@ -1607,8 +1588,7 @@ static void close_socket_net_data(ioa_socket_handle s)
|
|||||||
log_socket_event(s, "SSL shutdown received, socket to be closed",0);
|
log_socket_event(s, "SSL shutdown received, socket to be closed",0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
SSL_free(s->ssl);
|
SSL_FREE(s->ssl);
|
||||||
s->ssl = NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (s->fd >= 0) {
|
if (s->fd >= 0) {
|
||||||
@ -1630,18 +1610,10 @@ void detach_socket_net_data(ioa_socket_handle s)
|
|||||||
}
|
}
|
||||||
s->acb = NULL;
|
s->acb = NULL;
|
||||||
s->acbarg = NULL;
|
s->acbarg = NULL;
|
||||||
if(s->conn_bev) {
|
BUFFEREVENT_FREE(s->conn_bev);
|
||||||
bufferevent_disable(s->conn_bev,EV_READ|EV_WRITE);
|
|
||||||
bufferevent_free(s->conn_bev);
|
|
||||||
s->conn_bev=NULL;
|
|
||||||
}
|
|
||||||
s->conn_arg=NULL;
|
s->conn_arg=NULL;
|
||||||
s->conn_cb=NULL;
|
s->conn_cb=NULL;
|
||||||
if(s->bev) {
|
BUFFEREVENT_FREE(s->bev);
|
||||||
bufferevent_disable(s->bev,EV_READ|EV_WRITE);
|
|
||||||
bufferevent_free(s->bev);
|
|
||||||
s->bev=NULL;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2382,7 +2354,7 @@ static int socket_input_worker(ioa_socket_handle s)
|
|||||||
#if defined(SSL_TXT_TLSV1_2)
|
#if defined(SSL_TXT_TLSV1_2)
|
||||||
case TURN_TLS_v1_2:
|
case TURN_TLS_v1_2:
|
||||||
if(s->e->tls_ctx_v1_2) {
|
if(s->e->tls_ctx_v1_2) {
|
||||||
set_socket_ssl(s,SSL_new(s->e->tls_ctx_v1_2));
|
set_socket_ssl(s,SSL_NEW(s->e->tls_ctx_v1_2));
|
||||||
STRCPY(s->orig_ctx_type,"TLSv1.2");
|
STRCPY(s->orig_ctx_type,"TLSv1.2");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -2390,20 +2362,20 @@ static int socket_input_worker(ioa_socket_handle s)
|
|||||||
#if defined(SSL_TXT_TLSV1_1)
|
#if defined(SSL_TXT_TLSV1_1)
|
||||||
case TURN_TLS_v1_1:
|
case TURN_TLS_v1_1:
|
||||||
if(s->e->tls_ctx_v1_1) {
|
if(s->e->tls_ctx_v1_1) {
|
||||||
set_socket_ssl(s,SSL_new(s->e->tls_ctx_v1_1));
|
set_socket_ssl(s,SSL_NEW(s->e->tls_ctx_v1_1));
|
||||||
STRCPY(s->orig_ctx_type,"TLSv1.1");
|
STRCPY(s->orig_ctx_type,"TLSv1.1");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
case TURN_TLS_v1_0:
|
case TURN_TLS_v1_0:
|
||||||
if(s->e->tls_ctx_v1_0) {
|
if(s->e->tls_ctx_v1_0) {
|
||||||
set_socket_ssl(s,SSL_new(s->e->tls_ctx_v1_0));
|
set_socket_ssl(s,SSL_NEW(s->e->tls_ctx_v1_0));
|
||||||
STRCPY(s->orig_ctx_type,"TLSv1.0");
|
STRCPY(s->orig_ctx_type,"TLSv1.0");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
if(s->e->tls_ctx_ssl23) {
|
if(s->e->tls_ctx_ssl23) {
|
||||||
set_socket_ssl(s,SSL_new(s->e->tls_ctx_ssl23));
|
set_socket_ssl(s,SSL_NEW(s->e->tls_ctx_ssl23));
|
||||||
STRCPY(s->orig_ctx_type,"SSLv23");
|
STRCPY(s->orig_ctx_type,"SSLv23");
|
||||||
} else {
|
} else {
|
||||||
s->tobeclosed = 1;
|
s->tobeclosed = 1;
|
||||||
@ -2416,6 +2388,7 @@ static int socket_input_worker(ioa_socket_handle s)
|
|||||||
s->ssl,
|
s->ssl,
|
||||||
BUFFEREVENT_SSL_ACCEPTING,
|
BUFFEREVENT_SSL_ACCEPTING,
|
||||||
BEV_OPT_THREADSAFE | BEV_OPT_DEFER_CALLBACKS | BEV_OPT_UNLOCK_CALLBACKS);
|
BEV_OPT_THREADSAFE | BEV_OPT_DEFER_CALLBACKS | BEV_OPT_UNLOCK_CALLBACKS);
|
||||||
|
debug_ptr_add(s->bev);
|
||||||
bufferevent_setcb(s->bev, socket_input_handler_bev, socket_output_handler_bev,
|
bufferevent_setcb(s->bev, socket_input_handler_bev, socket_output_handler_bev,
|
||||||
eventcb_bev, s);
|
eventcb_bev, s);
|
||||||
bufferevent_setwatermark(s->bev, EV_READ|EV_WRITE, 0, BUFFEREVENT_HIGH_WATERMARK);
|
bufferevent_setwatermark(s->bev, EV_READ|EV_WRITE, 0, BUFFEREVENT_HIGH_WATERMARK);
|
||||||
@ -2431,6 +2404,7 @@ static int socket_input_worker(ioa_socket_handle s)
|
|||||||
s->bev = bufferevent_socket_new(s->e->event_base,
|
s->bev = bufferevent_socket_new(s->e->event_base,
|
||||||
s->fd,
|
s->fd,
|
||||||
BEV_OPT_THREADSAFE | BEV_OPT_DEFER_CALLBACKS | BEV_OPT_UNLOCK_CALLBACKS);
|
BEV_OPT_THREADSAFE | BEV_OPT_DEFER_CALLBACKS | BEV_OPT_UNLOCK_CALLBACKS);
|
||||||
|
debug_ptr_add(s->bev);
|
||||||
bufferevent_setcb(s->bev, socket_input_handler_bev, socket_output_handler_bev,
|
bufferevent_setcb(s->bev, socket_input_handler_bev, socket_output_handler_bev,
|
||||||
eventcb_bev, s);
|
eventcb_bev, s);
|
||||||
bufferevent_setwatermark(s->bev, EV_READ|EV_WRITE, 0, BUFFEREVENT_HIGH_WATERMARK);
|
bufferevent_setwatermark(s->bev, EV_READ|EV_WRITE, 0, BUFFEREVENT_HIGH_WATERMARK);
|
||||||
@ -3255,6 +3229,7 @@ int register_callback_on_ioa_socket(ioa_engine_handle e, ioa_socket_handle s, in
|
|||||||
s->bev = bufferevent_socket_new(s->e->event_base,
|
s->bev = bufferevent_socket_new(s->e->event_base,
|
||||||
s->fd,
|
s->fd,
|
||||||
BEV_OPT_THREADSAFE | BEV_OPT_DEFER_CALLBACKS | BEV_OPT_UNLOCK_CALLBACKS);
|
BEV_OPT_THREADSAFE | BEV_OPT_DEFER_CALLBACKS | BEV_OPT_UNLOCK_CALLBACKS);
|
||||||
|
debug_ptr_add(s->bev);
|
||||||
bufferevent_setcb(s->bev, socket_input_handler_bev, socket_output_handler_bev,
|
bufferevent_setcb(s->bev, socket_input_handler_bev, socket_output_handler_bev,
|
||||||
eventcb_bev, s);
|
eventcb_bev, s);
|
||||||
bufferevent_setwatermark(s->bev, EV_READ|EV_WRITE, 0, BUFFEREVENT_HIGH_WATERMARK);
|
bufferevent_setwatermark(s->bev, EV_READ|EV_WRITE, 0, BUFFEREVENT_HIGH_WATERMARK);
|
||||||
@ -3272,19 +3247,21 @@ int register_callback_on_ioa_socket(ioa_engine_handle e, ioa_socket_handle s, in
|
|||||||
#if !defined(TURN_NO_TLS)
|
#if !defined(TURN_NO_TLS)
|
||||||
if(!(s->ssl)) {
|
if(!(s->ssl)) {
|
||||||
//??? how we can get to this point ???
|
//??? how we can get to this point ???
|
||||||
set_socket_ssl(s,SSL_new(e->tls_ctx_ssl23));
|
set_socket_ssl(s,SSL_NEW(e->tls_ctx_ssl23));
|
||||||
STRCPY(s->orig_ctx_type,"SSLv23");
|
STRCPY(s->orig_ctx_type,"SSLv23");
|
||||||
s->bev = bufferevent_openssl_socket_new(s->e->event_base,
|
s->bev = bufferevent_openssl_socket_new(s->e->event_base,
|
||||||
s->fd,
|
s->fd,
|
||||||
s->ssl,
|
s->ssl,
|
||||||
BUFFEREVENT_SSL_ACCEPTING,
|
BUFFEREVENT_SSL_ACCEPTING,
|
||||||
BEV_OPT_THREADSAFE | BEV_OPT_DEFER_CALLBACKS | BEV_OPT_UNLOCK_CALLBACKS);
|
BEV_OPT_THREADSAFE | BEV_OPT_DEFER_CALLBACKS | BEV_OPT_UNLOCK_CALLBACKS);
|
||||||
|
debug_ptr_add(s->bev);
|
||||||
} else {
|
} else {
|
||||||
s->bev = bufferevent_openssl_socket_new(s->e->event_base,
|
s->bev = bufferevent_openssl_socket_new(s->e->event_base,
|
||||||
s->fd,
|
s->fd,
|
||||||
s->ssl,
|
s->ssl,
|
||||||
BUFFEREVENT_SSL_OPEN,
|
BUFFEREVENT_SSL_OPEN,
|
||||||
BEV_OPT_THREADSAFE | BEV_OPT_DEFER_CALLBACKS | BEV_OPT_UNLOCK_CALLBACKS);
|
BEV_OPT_THREADSAFE | BEV_OPT_DEFER_CALLBACKS | BEV_OPT_UNLOCK_CALLBACKS);
|
||||||
|
debug_ptr_add(s->bev);
|
||||||
}
|
}
|
||||||
bufferevent_setcb(s->bev, socket_input_handler_bev, socket_output_handler_bev,
|
bufferevent_setcb(s->bev, socket_input_handler_bev, socket_output_handler_bev,
|
||||||
eventcb_bev, s);
|
eventcb_bev, s);
|
||||||
|
|||||||
@ -882,12 +882,7 @@ static void close_cli_session(struct cli_session* cs)
|
|||||||
cs->ts = NULL;
|
cs->ts = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(cs->bev) {
|
BUFFEREVENT_FREE(cs->bev);
|
||||||
bufferevent_flush(cs->bev,EV_READ|EV_WRITE,BEV_FLUSH);
|
|
||||||
bufferevent_disable(cs->bev,EV_READ|EV_WRITE);
|
|
||||||
bufferevent_free(cs->bev);
|
|
||||||
cs->bev=NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(cs->fd>=0) {
|
if(cs->fd>=0) {
|
||||||
close(cs->fd);
|
close(cs->fd);
|
||||||
@ -1175,6 +1170,7 @@ static void cliserver_input_handler(struct evconnlistener *l, evutil_socket_t fd
|
|||||||
clisession->bev = bufferevent_socket_new(cliserver.event_base,
|
clisession->bev = bufferevent_socket_new(cliserver.event_base,
|
||||||
fd,
|
fd,
|
||||||
BEV_OPT_THREADSAFE | BEV_OPT_DEFER_CALLBACKS | BEV_OPT_UNLOCK_CALLBACKS);
|
BEV_OPT_THREADSAFE | BEV_OPT_DEFER_CALLBACKS | BEV_OPT_UNLOCK_CALLBACKS);
|
||||||
|
debug_ptr_add(clisession->bev);
|
||||||
bufferevent_setcb(clisession->bev, cli_socket_input_handler_bev, NULL,
|
bufferevent_setcb(clisession->bev, cli_socket_input_handler_bev, NULL,
|
||||||
cli_eventcb_bev, clisession);
|
cli_eventcb_bev, clisession);
|
||||||
bufferevent_setwatermark(clisession->bev, EV_READ|EV_WRITE, 0, BUFFEREVENT_HIGH_WATERMARK);
|
bufferevent_setwatermark(clisession->bev, EV_READ|EV_WRITE, 0, BUFFEREVENT_HIGH_WATERMARK);
|
||||||
|
|||||||
@ -80,7 +80,7 @@ static SSL* tls_connect(ioa_socket_raw fd, ioa_addr *remote_addr)
|
|||||||
{
|
{
|
||||||
int ctxtype = (int)(((unsigned long)random())%root_tls_ctx_num);
|
int ctxtype = (int)(((unsigned long)random())%root_tls_ctx_num);
|
||||||
|
|
||||||
SSL *ssl = SSL_new(root_tls_ctx[ctxtype]);
|
SSL *ssl = SSL_NEW(root_tls_ctx[ctxtype]);
|
||||||
|
|
||||||
if(use_tcp) {
|
if(use_tcp) {
|
||||||
SSL_set_fd(ssl, fd);
|
SSL_set_fd(ssl, fd);
|
||||||
@ -590,8 +590,7 @@ static int clnet_allocate(int verbose,
|
|||||||
int close_socket = (int)(random()%2);
|
int close_socket = (int)(random()%2);
|
||||||
if(ssl && !close_socket) {
|
if(ssl && !close_socket) {
|
||||||
SSL_shutdown(ssl);
|
SSL_shutdown(ssl);
|
||||||
SSL_free(ssl);
|
SSL_FREE(ssl);
|
||||||
ssl = NULL;
|
|
||||||
fd = -1;
|
fd = -1;
|
||||||
} else if(fd>=0) {
|
} else if(fd>=0) {
|
||||||
close(fd);
|
close(fd);
|
||||||
@ -615,7 +614,7 @@ static int clnet_allocate(int verbose,
|
|||||||
|
|
||||||
if(ssl) {
|
if(ssl) {
|
||||||
SSL_shutdown(ssl);
|
SSL_shutdown(ssl);
|
||||||
SSL_free(ssl);
|
SSL_FREE(ssl);
|
||||||
} else if(fd>=0) {
|
} else if(fd>=0) {
|
||||||
close(fd);
|
close(fd);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -140,8 +140,7 @@ static void uc_delete_session_elem_data(app_ur_session* cdi) {
|
|||||||
SSL_shutdown(cdi->pinfo.tcp_conn[i]->tcp_data_ssl);
|
SSL_shutdown(cdi->pinfo.tcp_conn[i]->tcp_data_ssl);
|
||||||
}
|
}
|
||||||
if(cdi->pinfo.tcp_conn[i]->tcp_data_ssl) {
|
if(cdi->pinfo.tcp_conn[i]->tcp_data_ssl) {
|
||||||
SSL_free(cdi->pinfo.tcp_conn[i]->tcp_data_ssl);
|
SSL_FREE(cdi->pinfo.tcp_conn[i]->tcp_data_ssl);
|
||||||
cdi->pinfo.tcp_conn[i]->tcp_data_ssl = NULL;
|
|
||||||
}
|
}
|
||||||
if(cdi->pinfo.tcp_conn[i]->tcp_data_fd>=0) {
|
if(cdi->pinfo.tcp_conn[i]->tcp_data_fd>=0) {
|
||||||
socket_closesocket(cdi->pinfo.tcp_conn[i]->tcp_data_fd);
|
socket_closesocket(cdi->pinfo.tcp_conn[i]->tcp_data_fd);
|
||||||
@ -165,8 +164,7 @@ static void uc_delete_session_elem_data(app_ur_session* cdi) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(cdi->pinfo.ssl) {
|
if(cdi->pinfo.ssl) {
|
||||||
SSL_free(cdi->pinfo.ssl);
|
SSL_FREE(cdi->pinfo.ssl);
|
||||||
cdi->pinfo.ssl = NULL;
|
|
||||||
}
|
}
|
||||||
if(cdi->pinfo.fd>=0) {
|
if(cdi->pinfo.fd>=0) {
|
||||||
socket_closesocket(cdi->pinfo.fd);
|
socket_closesocket(cdi->pinfo.fd);
|
||||||
@ -865,8 +863,7 @@ static int start_client(const char *remote_address, int port,
|
|||||||
clnet_info_rtcp, &chnum_rtcp);
|
clnet_info_rtcp, &chnum_rtcp);
|
||||||
|
|
||||||
if(clnet_info_probe.ssl) {
|
if(clnet_info_probe.ssl) {
|
||||||
SSL_free(clnet_info_probe.ssl);
|
SSL_FREE(clnet_info_probe.ssl);
|
||||||
clnet_info_probe.ssl = NULL;
|
|
||||||
clnet_info_probe.fd = -1;
|
clnet_info_probe.fd = -1;
|
||||||
} else if(clnet_info_probe.fd != -1) {
|
} else if(clnet_info_probe.fd != -1) {
|
||||||
socket_closesocket(clnet_info_probe.fd);
|
socket_closesocket(clnet_info_probe.fd);
|
||||||
@ -971,8 +968,7 @@ static int start_c2c(const char *remote_address, int port,
|
|||||||
clnet_info2_rtcp, &chnum2_rtcp);
|
clnet_info2_rtcp, &chnum2_rtcp);
|
||||||
|
|
||||||
if(clnet_info_probe.ssl) {
|
if(clnet_info_probe.ssl) {
|
||||||
SSL_free(clnet_info_probe.ssl);
|
SSL_FREE(clnet_info_probe.ssl);
|
||||||
clnet_info_probe.ssl = NULL;
|
|
||||||
clnet_info_probe.fd = -1;
|
clnet_info_probe.fd = -1;
|
||||||
} else if(clnet_info_probe.fd != -1) {
|
} else if(clnet_info_probe.fd != -1) {
|
||||||
socket_closesocket(clnet_info_probe.fd);
|
socket_closesocket(clnet_info_probe.fd);
|
||||||
|
|||||||
@ -120,13 +120,17 @@ static inline u64bits _ioa_ntoh64(u64bits v)
|
|||||||
#define TURN_LOG_FUNC(level, ...) printf (__VA_ARGS__)
|
#define TURN_LOG_FUNC(level, ...) printf (__VA_ARGS__)
|
||||||
|
|
||||||
void tm_print_func(void);
|
void tm_print_func(void);
|
||||||
void *turn_malloc_func(size_t sz, const char* file, int line);
|
void *turn_malloc_func(size_t sz, const char* function, int line);
|
||||||
void *turn_realloc_func(void *ptr, size_t old_sz, size_t new_sz, const char* file, int line);
|
void *turn_realloc_func(void *ptr, size_t old_sz, size_t new_sz, const char* function, int line);
|
||||||
void turn_free_func(void *ptr, size_t sz, const char* file, int line);
|
void turn_free_func(void *ptr, size_t sz, const char* function, int line);
|
||||||
void turn_free_simple(void *ptr);
|
void turn_free_simple(void *ptr);
|
||||||
void *turn_calloc_func(size_t number, size_t size, const char* file, int line);
|
void *turn_calloc_func(size_t number, size_t size, const char* function, int line);
|
||||||
char *turn_strdup_func(const char* s, const char* file, int line);
|
char *turn_strdup_func(const char* s, const char* function, int line);
|
||||||
|
void* debug_ptr_add_func(void *ptr, const char* function, int line);
|
||||||
|
void debug_ptr_del_func(void *ptr, const char* function, int line);
|
||||||
|
|
||||||
|
#define debug_ptr_add(ptr) debug_ptr_add_func((ptr),__FUNCTION__,__LINE__)
|
||||||
|
#define debug_ptr_del(ptr) debug_ptr_del_func((ptr),__FUNCTION__,__LINE__)
|
||||||
#define tm_print() tm_print_func()
|
#define tm_print() tm_print_func()
|
||||||
#define turn_malloc(sz) turn_malloc_func((size_t)(sz),__FUNCTION__,__LINE__)
|
#define turn_malloc(sz) turn_malloc_func((size_t)(sz),__FUNCTION__,__LINE__)
|
||||||
#define turn_free(ptr,sz) turn_free_func((ptr),(size_t)(sz),__FUNCTION__,__LINE__)
|
#define turn_free(ptr,sz) turn_free_func((ptr),(size_t)(sz),__FUNCTION__,__LINE__)
|
||||||
@ -136,6 +140,8 @@ static inline u64bits _ioa_ntoh64(u64bits v)
|
|||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
|
#define debug_ptr_add(ptr) (ptr)
|
||||||
|
#define debug_ptr_del(ptr)
|
||||||
#define tm_print()
|
#define tm_print()
|
||||||
#define turn_malloc(sz) malloc((size_t)(sz))
|
#define turn_malloc(sz) malloc((size_t)(sz))
|
||||||
#define turn_free(ptr,sz) free((ptr))
|
#define turn_free(ptr,sz) free((ptr))
|
||||||
@ -146,6 +152,11 @@ static inline u64bits _ioa_ntoh64(u64bits v)
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define SSL_NEW(ctx) ((SSL*)debug_ptr_add(SSL_new(ctx)))
|
||||||
|
#define SSL_FREE(ssl) do { debug_ptr_del(ssl); SSL_free(ssl); ssl = NULL; } while(0)
|
||||||
|
|
||||||
|
#define BUFFEREVENT_FREE(be) do { if(be) { debug_ptr_del(be); bufferevent_flush(be,EV_READ|EV_WRITE,BEV_FLUSH); bufferevent_disable(be,EV_READ|EV_WRITE); bufferevent_free(be); be = NULL;} } while(0)
|
||||||
|
|
||||||
#define turn_time() ((turn_time_t)time(NULL))
|
#define turn_time() ((turn_time_t)time(NULL))
|
||||||
|
|
||||||
typedef int vint;
|
typedef int vint;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user