Commit 50cf7c0d authored by Youness Alaoui's avatar Youness Alaoui

Cleaner way to handle inbound stun messages from the nice agent

parent e06e3f77
...@@ -1263,31 +1263,19 @@ _nice_agent_recv ( ...@@ -1263,31 +1263,19 @@ _nice_agent_recv (
return 0; return 0;
} }
/* step: check for a RTP fingerprint if (stun_message_validate_buffer_length ((uint8_t *) buf, (size_t) len) == len) {
*
* The top two bits of an RTP message are the version number; the current
* version number is 2. The top two bits of a STUN message are always 0.
*
* - XXX: should use a two-phase check, first a lightweight check,
* and then full validation */
if ((buf[0] & 0xc0) == 0x80)
{
/* looks like RTP */
return len;
}
/* step: validate using the new STUN API */
/* - note: old check '((buf[0] & 0xc0) == 0)' */
else if (stun_message_validate_buffer_length ((uint8_t *) buf, (size_t) len) == len) {
/* If the retval is no 0, its not a valid stun packet, probably data */ /* If the retval is no 0, its not a valid stun packet, probably data */
conn_check_handle_inbound_stun (agent, stream, component, udp_socket, if (conn_check_handle_inbound_stun (agent, stream, component, udp_socket,
&from, buf, len); &from, buf, len) == FALSE) {
/* unhandled STUN, pass to client */
return len;
} }
else } else {
{ /* not STUN, pass to client */
/* not RTP nor STUN, pass to client */
return len; return len;
} }
/* handled STUN message*/
return 0; return 0;
} }
......
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