- 16 Nov, 2018 1 commit
-
-
Olivier Crête authored
-
- 31 Oct, 2018 4 commits
-
-
Jakub Adam authored
nice_socket_recv_messages() may return a NiceInputMessage of length = 0, so before attempting to read the RFC4571 header check the message really has at least sizeof (guint16) bytes of data. The bug's always been there, the previous commit only made it more apparent.
-
Jakub Adam authored
There might be multiple RFC4571-framed messages (or fragments thereof) within a single TCP-TURN message. Make sure each NiceInputMessage passed by the user into socket_recv_messages() gets exactly one RFC4571 frame, or remains empty if there aren't any messages to receive. We should keep any data that doesn't fit into the user buffers for the next time socket_recv_messages() gets called with the socket.
-
Jakub Adam authored
After being parsed, a TURN control message turns into a NiceInputMessage with zero length. Such message doesn't increment the iteration counter i and so is re-processed in the next iteration, which detects right away that message->length == 0 and continues to the next element in recv_messages. Thus, n_valid_messages variable serves no real purpose and to achieve the same result we can simply increment the iteration counter after each message.
-
Olivier Crête authored
-
- 28 Oct, 2018 7 commits
-
-
Olivier Crête authored
The socket abstraction not being reference counted, we need a global lock for them in the short term.
-
Olivier Crête authored
It's not locked in any way.
-
Olivier Crête authored
-
Olivier Crête authored
This should make it safer.
-
Olivier Crête authored
-
Olivier Crête authored
Remove all pointers that don't include have a reference except to agents
-
Juan Navarro authored
Work on libnice's bug #1 in Gitlab. This work is composed of multiple merged parts: - "Global lock contention removed" Phabricator D1900: https://phabricator.freedesktop.org/D1900 By @nifigase Opened in GitLab as Merge Request !12 - "agent: properly handle NiceAgent ref in callbacks from timeout sources" Phabricator D1898: https://phabricator.freedesktop.org/D1898 By @mparis This patch was itself based upon a previous version of the work done in D1900. After the switch of hosting, it got lost. On top of these, additions to follow some review comments from @ocrete: - https://phabricator.freedesktop.org/D1900#40412 - https://phabricator.freedesktop.org/D1898#39332
-
- 21 Oct, 2018 10 commits
-
-
Olivier Crête authored
-
Matthew Waters authored
getifaddrs() may only be available if the target API is >= 24
-
Michael Olbrich authored
This makes it possible to enable keepalive for TCP candidates. It is useful to detect disappearing peers or network failures faster.
-
Michael Olbrich authored
By default, 'candidate_identifier == NULL' only happens for 'compatibility == NICE_COMPATIBILITY_GOOGLE'. However, keepalive=true will also trigger the same code path so candidate_identifier must be checked to avoid a segfault.
-
Michael Olbrich authored
For some connection types nicesock->fileno is never set. Make sure it is not NULL before using it.
-
Olivier Crête authored
-
Brendan Shanks authored
-
Brendan Shanks authored
-
Brendan Shanks authored
-
Olivier Crête authored
-
- 21 Jun, 2018 1 commit
-
-
Olivier Crête authored
-
- 19 Jun, 2018 2 commits
-
-
Olivier Crête authored
-
Olivier Crête authored
-
- 18 Jun, 2018 3 commits
-
-
Olivier Crête authored
Now, we use GitLab at https://gitlab.freedesktop.org/libnice/libnice
-
Justin Kim authored
MacOS X and Windows don't have MSG_NOSIGNAL. Signed-off-by:
Justin Kim <justin.kim@collabora.com>
-
Nicolas Dufresne authored
There was two cases where instead of freeing the queue, we actually clear the queue so it's ready for reused. Notably in nice_socket_free_send_queue(), a missed name function and nicesrc element state change. This regression was introduced by: fa783b1dd727a6ee2b99a111ca24790ae850c2f7
-
- 12 Jun, 2018 1 commit
-
-
Nicolas Dufresne authored
This is new warning introduced with GCC 8. This is being fixed by using appropriate function, like g_queue_free_full/g_list_free_full or by casting to GCallback before casting to the target function signature. Closes: #46
-
- 06 Jun, 2018 4 commits
-
-
Miguel París Díaz authored
Following [1] and [2], "-" character is not allowed for foundation Refs [1] https://tools.ietf.org/html/rfc5245#page-73 [2] https://tools.ietf.org/html/rfc5234#appendix-B.1
-
Brendan Shanks authored
Closes: ttps://gitlab.freedesktop.org/libnice/libnice/issues/45
-
Edward Hervey authored
Like all other instances of nice_RAND_bytes that were renamed to nice_RAND_nonce. Fixes the windows build
-
Edward Hervey authored
In the same way we do it for the other error messages
-
- 04 May, 2018 3 commits
-
-
Olivier Crête authored
-
Olivier Crête authored
-
Olivier Crête authored
This makes GLib usage annoying as it makes GSourceFunc casts invalid.
-
- 23 Mar, 2018 4 commits
-
-
Jakub Adam authored
Setting writable socket callbacks doesn't have to be limited to reliable agents. TCP sockets need the callback in any case for correct operation and calling nice_socket_set_writable_callback() on a NiceSocket that has UDP as its base has no effect. Differential Revision: https://phabricator.freedesktop.org/D1726
-
Jakub Adam authored
If main SfB TURN server sends our allocation request to an alternate server, the response will have XOR_MAPPED_ADDRESS containing the IP address of the turn server that proxied the message instead of our own actual external IP. Before we create server reflexive candidates upon receiving an allocate response, check that the TURN port got assigned on the same server we sent out allocate request to. Otherwise, the request was proxied and XOR_MAPPED_ADDRESS contains a bogus value we should ignore. Issue introduced by 59fcf95d. Differential Revision: https://phabricator.freedesktop.org/D1949
-
Fabrice Bellet authored
With this patch we prevent the username and the password of a candidate to be modified during a session, as required by the RFC, sect 9.1.2. This is also needed from a memory management point of view, because the password string pointer may be recorded in the components stun agent sent_ids[] struct key member, and freeing these values there may cause an use-after-free condition, when an inbound stun is received from this candidate. This behavior has been observed with pidgin, xmpp, and farstream when a same remote candidates are "updated" several times, even if the credentials don't change in this case. Reviewed-by:
Olivier Crête <olivier.crete@collabora.com> Differential Revision: https://phabricator.freedesktop.org/D1917
-
Fabrice Bellet authored
The tcp server reflexive discovered local candidates must be ignored when force_relay is set. Reviewed-by:
Olivier Crête <olivier.crete@collabora.com> Differential Revision: https://phabricator.freedesktop.org/D1899
-