connection establishment communication procedure improvements
This commit is contained in:
parent
17de1a8e12
commit
827b1db525
@ -459,7 +459,9 @@ static int handle_udp_packet(dtls_listener_relay_server_type *server,
|
||||
}
|
||||
s->e = ioa_eng;
|
||||
add_socket_to_map(s, amap);
|
||||
open_client_connection_session(ts, &(sm->m.sm));
|
||||
if(open_client_connection_session(ts, &(sm->m.sm))<0) {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -742,7 +742,10 @@ static int handle_relay_message(relay_server_handle rs, struct message_to_relay
|
||||
sm->m.sm.s = NULL;
|
||||
} else {
|
||||
s->e = rs->ioa_eng;
|
||||
open_client_connection_session(&(rs->server), &(sm->m.sm));
|
||||
if(open_client_connection_session(&(rs->server), &(sm->m.sm))<0) {
|
||||
IOA_CLOSE_SOCKET(s);
|
||||
sm->m.sm.s = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
ioa_network_buffer_delete(rs->ioa_eng, sm->m.sm.nd.nbh);
|
||||
@ -780,7 +783,10 @@ static int handle_relay_message(relay_server_handle rs, struct message_to_relay
|
||||
sm->m.sm.s = NULL;
|
||||
} else {
|
||||
s->e = rs->ioa_eng;
|
||||
open_client_connection_session(&(rs->server), &(sm->m.sm));
|
||||
if(open_client_connection_session(&(rs->server), &(sm->m.sm))<0) {
|
||||
IOA_CLOSE_SOCKET(s);
|
||||
sm->m.sm.s = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
ioa_network_buffer_delete(rs->ioa_eng, sm->m.sm.nd.nbh);
|
||||
|
||||
@ -1633,6 +1633,7 @@ void detach_socket_net_data(ioa_socket_handle s)
|
||||
void close_ioa_socket(ioa_socket_handle s)
|
||||
{
|
||||
if (s) {
|
||||
|
||||
if(s->magic != SOCKET_MAGIC) {
|
||||
TURN_LOG_FUNC(TURN_LOG_LEVEL_INFO, "!!! %s wrong magic on socket: 0x%lx, st=%d, sat=%d\n", __FUNCTION__,(long)s, s->st, s->sat);
|
||||
return;
|
||||
@ -2401,11 +2402,11 @@ static int socket_input_worker(ioa_socket_handle s)
|
||||
TURN_LOG_FUNC(TURN_LOG_LEVEL_INFO, "!!!%s on socket: 0x%lx, st=%d, sat=%d: bev already exist\n", __FUNCTION__,(long)s, s->st, s->sat);
|
||||
}
|
||||
s->bev = bufferevent_socket_new(s->e->event_base,
|
||||
s->fd,
|
||||
TURN_BUFFEREVENTS_OPTIONS);
|
||||
s->fd,
|
||||
TURN_BUFFEREVENTS_OPTIONS);
|
||||
debug_ptr_add(s->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_enable(s->bev, EV_READ|EV_WRITE); /* Start reading. */
|
||||
}
|
||||
@ -3298,14 +3299,19 @@ int register_callback_on_ioa_socket(ioa_engine_handle e, ioa_socket_handle s, in
|
||||
return -1;
|
||||
}
|
||||
} else {
|
||||
s->bev = bufferevent_socket_new(s->e->event_base,
|
||||
if(check_tentative_tls(s->fd)) {
|
||||
s->tobeclosed = 1;
|
||||
return -1;
|
||||
} else {
|
||||
s->bev = bufferevent_socket_new(s->e->event_base,
|
||||
s->fd,
|
||||
TURN_BUFFEREVENTS_OPTIONS);
|
||||
debug_ptr_add(s->bev);
|
||||
bufferevent_setcb(s->bev, socket_input_handler_bev, socket_output_handler_bev,
|
||||
eventcb_bev, s);
|
||||
bufferevent_setwatermark(s->bev, EV_READ|EV_WRITE, 0, BUFFEREVENT_HIGH_WATERMARK);
|
||||
bufferevent_enable(s->bev, EV_READ|EV_WRITE); /* Start reading. */
|
||||
debug_ptr_add(s->bev);
|
||||
bufferevent_setcb(s->bev, socket_input_handler_bev, socket_output_handler_bev,
|
||||
eventcb_bev, s);
|
||||
bufferevent_setwatermark(s->bev, EV_READ|EV_WRITE, 0, BUFFEREVENT_HIGH_WATERMARK);
|
||||
bufferevent_enable(s->bev, EV_READ|EV_WRITE); /* Start reading. */
|
||||
}
|
||||
}
|
||||
break;
|
||||
case TLS_SOCKET:
|
||||
|
||||
@ -4320,8 +4320,9 @@ static int create_relay_connection(turn_turnserver* server,
|
||||
set_do_not_use_df(newelem->s);
|
||||
|
||||
if(get_ioa_socket_type(newelem->s) != TCP_SOCKET) {
|
||||
register_callback_on_ioa_socket(server->e, newelem->s, IOA_EV_READ,
|
||||
peer_input_handler, ss, 0);
|
||||
if(register_callback_on_ioa_socket(server->e, newelem->s, IOA_EV_READ,peer_input_handler, ss, 0)<0) {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
if (lifetime<1)
|
||||
@ -4555,8 +4556,10 @@ static int attach_socket_to_session(turn_turnserver* server, ioa_socket_handle s
|
||||
|
||||
ss->client_socket = s;
|
||||
|
||||
register_callback_on_ioa_socket(server->e, s, IOA_EV_READ,
|
||||
client_input_handler, ss, 0);
|
||||
if(register_callback_on_ioa_socket(server->e, s, IOA_EV_READ,
|
||||
client_input_handler, ss, 0)<0) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
set_ioa_socket_session(s, ss);
|
||||
}
|
||||
@ -4582,8 +4585,10 @@ int open_client_connection_session(turn_turnserver* server,
|
||||
|
||||
ss->client_socket = sm->s;
|
||||
|
||||
register_callback_on_ioa_socket(server->e, ss->client_socket, IOA_EV_READ,
|
||||
client_input_handler, ss, 0);
|
||||
if(register_callback_on_ioa_socket(server->e, ss->client_socket, IOA_EV_READ,
|
||||
client_input_handler, ss, 0)<0) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
set_ioa_socket_session(ss->client_socket, ss);
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user