mirror of
https://github.com/coturn/coturn.git
synced 2025-10-26 20:41:07 +01:00
working on crashes
This commit is contained in:
parent
4850464e1a
commit
553b16dfa1
@ -7,6 +7,7 @@ Version 4.1.0.1 'Vitari':
|
||||
- STUN BINDING response fixed in the case of -X (external address) option.
|
||||
- "pu" CLI command fixed.
|
||||
- session cleaning fixed in TCP relay functionality (RFC 6062).
|
||||
- some crash conditions fixed.
|
||||
- working on compilation warnings.
|
||||
|
||||
06/13/2014 Oleg Moskalenko <mom040267@gmail.com>
|
||||
|
||||
@ -401,6 +401,11 @@ static void auth_server_receive_message(struct bufferevent *bev, void *ptr)
|
||||
TURN_LOG_LEVEL_ERROR,
|
||||
"%s: Too large UDP relay number: %d\n",
|
||||
__FUNCTION__,(int)dest);
|
||||
} else if(!(udp_relay_servers[dest])) {
|
||||
TURN_LOG_FUNC(
|
||||
TURN_LOG_LEVEL_ERROR,
|
||||
"%s: Wrong UDP relay number: %d, total %d\n",
|
||||
__FUNCTION__,(int)dest, (int)get_real_udp_relay_servers_number());
|
||||
} else {
|
||||
output = bufferevent_get_output(udp_relay_servers[dest]->auth_out_buf);
|
||||
}
|
||||
@ -408,8 +413,13 @@ static void auth_server_receive_message(struct bufferevent *bev, void *ptr)
|
||||
if(dest >= get_real_general_relay_servers_number()) {
|
||||
TURN_LOG_FUNC(
|
||||
TURN_LOG_LEVEL_ERROR,
|
||||
"%s: Too large general relay number: %d\n",
|
||||
__FUNCTION__,(int)dest);
|
||||
"%s: Too large general relay number: %d, total %d\n",
|
||||
__FUNCTION__,(int)dest,(int)get_real_general_relay_servers_number());
|
||||
} else if(!(general_relay_servers[dest])) {
|
||||
TURN_LOG_FUNC(
|
||||
TURN_LOG_LEVEL_ERROR,
|
||||
"%s: Wrong general relay number: %d, total %d\n",
|
||||
__FUNCTION__,(int)dest,(int)get_real_general_relay_servers_number());
|
||||
} else {
|
||||
output = bufferevent_get_output(general_relay_servers[dest]->auth_out_buf);
|
||||
}
|
||||
@ -437,10 +447,14 @@ static int send_socket_to_general_relay(ioa_engine_handle e, struct message_to_r
|
||||
|
||||
smptr->t = RMT_SOCKET;
|
||||
|
||||
{
|
||||
struct evbuffer *output = NULL;
|
||||
int success = 0;
|
||||
|
||||
if(!rdest) {
|
||||
success = -1;
|
||||
goto label_end;
|
||||
}
|
||||
|
||||
output = bufferevent_get_output(rdest->out_buf);
|
||||
|
||||
if(output) {
|
||||
@ -451,22 +465,19 @@ static int send_socket_to_general_relay(ioa_engine_handle e, struct message_to_r
|
||||
"%s: Cannot add message to relay output buffer\n",
|
||||
__FUNCTION__);
|
||||
} else {
|
||||
|
||||
success = 1;
|
||||
smptr->m.sm.nd.nbh=NULL;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
label_end:
|
||||
|
||||
if(!success) {
|
||||
ioa_network_buffer_delete(e, smptr->m.sm.nd.nbh);
|
||||
smptr->m.sm.nd.nbh=NULL;
|
||||
|
||||
IOA_CLOSE_SOCKET(smptr->m.sm.s);
|
||||
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -487,23 +498,39 @@ static int send_socket_to_relay(turnserver_id id, u64bits cid, stun_tid *tid, io
|
||||
if(dest >= get_real_udp_relay_servers_number()) {
|
||||
TURN_LOG_FUNC(
|
||||
TURN_LOG_LEVEL_ERROR,
|
||||
"%s: Too large UDP relay number: %d, rmt=%d\n",
|
||||
__FUNCTION__,(int)dest,(int)rmt);
|
||||
"%s: Too large UDP relay number: %d, rmt=%d, total=%d\n",
|
||||
__FUNCTION__,(int)dest,(int)rmt, (int)get_real_udp_relay_servers_number());
|
||||
ret = -1;
|
||||
goto err;
|
||||
}
|
||||
rs = udp_relay_servers[dest];
|
||||
if(!rs) {
|
||||
TURN_LOG_FUNC(
|
||||
TURN_LOG_LEVEL_ERROR,
|
||||
"%s: Wrong UDP relay number: %d, rmt=%d, total=%d\n",
|
||||
__FUNCTION__,(int)dest,(int)rmt, (int)get_real_udp_relay_servers_number());
|
||||
ret = -1;
|
||||
goto err;
|
||||
}
|
||||
} else {
|
||||
size_t dest = id;
|
||||
if(dest >= get_real_general_relay_servers_number()) {
|
||||
TURN_LOG_FUNC(
|
||||
TURN_LOG_LEVEL_ERROR,
|
||||
"%s: Too large general relay number: %d, rmt=%d\n",
|
||||
__FUNCTION__,(int)dest,(int)rmt);
|
||||
"%s: Too large general relay number: %d, rmt=%d, total=%d\n",
|
||||
__FUNCTION__,(int)dest,(int)rmt, (int)get_real_general_relay_servers_number());
|
||||
ret = -1;
|
||||
goto err;
|
||||
}
|
||||
rs = general_relay_servers[dest];
|
||||
if(!rs) {
|
||||
TURN_LOG_FUNC(
|
||||
TURN_LOG_LEVEL_ERROR,
|
||||
"%s: Wrong general relay number: %d, rmt=%d, total=%d\n",
|
||||
__FUNCTION__,(int)dest,(int)rmt, (int)get_real_general_relay_servers_number());
|
||||
ret = -1;
|
||||
goto err;
|
||||
}
|
||||
}
|
||||
|
||||
switch (rmt) {
|
||||
@ -749,7 +776,12 @@ static void listener_receive_message(struct bufferevent *bev, void *ptr)
|
||||
if(turn_params.net_engine_version == NEV_UDP_SOCKET_PER_THREAD) {
|
||||
size_t ri;
|
||||
for(ri=0;ri<get_real_general_relay_servers_number();ri++) {
|
||||
if(general_relay_servers[ri]->thr == pthread_self()) {
|
||||
if(!(general_relay_servers[ri])) {
|
||||
TURN_LOG_FUNC(
|
||||
TURN_LOG_LEVEL_ERROR,
|
||||
"%s: Wrong general relay number: %d, total %d\n",
|
||||
__FUNCTION__,(int)ri,(int)get_real_general_relay_servers_number());
|
||||
} else if(general_relay_servers[ri]->thr == pthread_self()) {
|
||||
relay_thread_index=ri;
|
||||
break;
|
||||
}
|
||||
@ -1655,6 +1687,25 @@ void setup_server(void)
|
||||
setup_tcp_listener_servers(turn_params.listener.ioa_eng, NULL);
|
||||
}
|
||||
|
||||
{
|
||||
int tot = 0;
|
||||
if(udp_relay_servers[0]) {
|
||||
tot = get_real_udp_relay_servers_number();
|
||||
}
|
||||
TURN_LOG_FUNC(TURN_LOG_LEVEL_INFO,"Total UDP servers: %d\n",(int)tot);
|
||||
}
|
||||
|
||||
{
|
||||
int tot = get_real_general_relay_servers_number();
|
||||
TURN_LOG_FUNC(TURN_LOG_LEVEL_INFO,"Total General servers: %d\n",(int)tot);
|
||||
int i;
|
||||
for(i = 0;i<tot;i++) {
|
||||
if(!(general_relay_servers[i])) {
|
||||
TURN_LOG_FUNC(TURN_LOG_LEVEL_ERROR,"General server %d is not initialized !\n",(int)i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
setup_auth_server();
|
||||
if(use_cli)
|
||||
setup_cli_server();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user