Commit d26f84fd authored by Youness Alaoui's avatar Youness Alaoui

make udp relay socket modify the agent's socketptr. Also make sure we try to...

make udp relay socket modify the agent's socketptr. Also make sure we try to parse with the socket from the same stream and component
parent 0f9d0a98
......@@ -1333,9 +1333,10 @@ _nice_agent_recv (
#endif
for (i = component->local_candidates; i; i = i->next) {
NiceCandidate *cand = i->data;
if (cand->type == NICE_CANDIDATE_TYPE_RELAYED) {
len = nice_udp_turn_socket_parse_recv (cand->sockptr, &from, len, buf, &from, buf, len);
socket = cand->sockptr;
if (cand->type == NICE_CANDIDATE_TYPE_RELAYED &&
cand->stream_id == stream->id && cand->component_id == component->id) {
len = nice_udp_turn_socket_parse_recv (cand->sockptr, &socket,
&from, len, buf, &from, buf, len);
}
}
}
......
......@@ -364,6 +364,7 @@ nice_udp_turn_socket_set_peer (NiceSocket *sock, NiceAddress *peer)
gint
nice_udp_turn_socket_parse_recv (
NiceSocket *sock,
NiceSocket **from_sock,
NiceAddress *from,
guint len,
gchar *buf,
......@@ -502,6 +503,7 @@ nice_udp_turn_socket_parse_recv (
nice_address_set_from_sockaddr (from, (struct sockaddr *)&sa);
*from_sock = sock;
memmove (buf, data, len > data_len ? data_len : len);
return len > data_len ? data_len : len;
} else {
......@@ -528,9 +530,11 @@ nice_udp_turn_socket_parse_recv (
if (binding) {
*from = binding->peer;
*from_sock = sock;
} else {
*from = *recv_from;
}
memmove (buf, recv_buf, len > recv_len ? recv_len : len);
return len > recv_len ? recv_len : len;
......@@ -562,12 +566,13 @@ socket_recv (
uint8_t recv_buf[STUN_MAX_MESSAGE_SIZE];
gint recv_len;
NiceAddress recv_from;
NiceSocket *dummy;;
recv_len = nice_socket_recv (priv->base_socket, &recv_from,
sizeof(recv_buf), (gchar *) recv_buf);
return nice_udp_turn_socket_parse_recv (sock, from, len, buf, &recv_from,
(gchar *) recv_buf, (guint) recv_len);
return nice_udp_turn_socket_parse_recv (sock, &dummy, from, len, buf,
&recv_from, (gchar *) recv_buf, (guint) recv_len);
}
static gboolean
......
......@@ -52,6 +52,7 @@ typedef enum {
gint
nice_udp_turn_socket_parse_recv (
NiceSocket *sock,
NiceSocket **from_sock,
NiceAddress *from,
guint len,
gchar *buf,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment