- 04 Jul, 2019 2 commits
-
-
-
The base64 decoded username and password strings given to stun_usage_turn_create() should not freed immediately, since they remain used when handling the following related inbound stun replies.
-
- 09 May, 2019 3 commits
-
-
Olivier Crête authored
This makes the API more GIO style
-
Jakub Adam authored
When deleting a turn refresh, ensure the assocaited port allocations on the TURN server are properly removed. This means wait for a response for our 0-lifetime refresh request and implement retransmissions. Only delete the refresh after TURN port removal has been confirmed or all our retransmissions timed out.
-
Jakub Adam authored
-
- 28 Oct, 2018 2 commits
-
-
Olivier Crête authored
Remove all pointers that don't include have a reference except to agents
-
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
-
- 06 Jun, 2018 1 commit
-
-
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
-
- 23 Mar, 2018 1 commit
-
-
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
-
- 12 Jun, 2017 1 commit
-
-
Fabrice Bellet authored
Three STUN binding request properties should be customisable. RFC 5245 describes the retransmission timer of the STUN transaction 'RTO', and RFC 5389 describes the number of retransmissions to send until a response is received 'Rc'. The third property is the 'RTO' when a reliable connection is used. RFC 5389 introduces a supplementary property 'Rm' as a multiplier used to compute the final timeout RTO * Rm. However, this property is not added in libnice, because this would require breaking the public API for STUN. Currently, our STUN implementation hardcodes a division by two for this final timeout. Differential Revision: https://phabricator.freedesktop.org/D1109
-
- 27 May, 2016 2 commits
-
-
Olivier Crête authored
This should fix compliance with RFC 5245 Section 4.1.2 https://phabricator.freedesktop.org/T3324
-
Olivier Crête authored
Only allow transitions to gathering from disconnected or failed states.
-
- 01 Mar, 2016 1 commit
-
-
Philip Withnall authored
This patch fixes a bug where the foundation definition shouldn't take into account the stream the pair belongs to. This is important, because the ordinary checks algorithm will change pair state from Frozen to Waiting, by selecting pairs from other streams sharing the same foundation than already succeeded pairs. Reviewed-by:
Olivier Crête <olivier.crete@collabora.com> Differential Revision: https://phabricator.freedesktop.org/D815
-
- 01 Oct, 2015 2 commits
-
-
Philip Withnall authored
Remove all references to the old, unnamespaced versions. This should cause no functional changes. Reviewed-by:
Olivier Crête <olivier.crete@collabora.com> Differential Revision: https://phabricator.freedesktop.org/D309
-
Philip Withnall authored
Remove all references to the old, unnamespaced versions. This should cause no functional changes. Reviewed-by:
Olivier Crête <olivier.crete@collabora.com> Differential Revision: https://phabricator.freedesktop.org/D308
-
- 02 Sep, 2015 1 commit
-
-
Jakub Adam authored
Summary: So that we can take the base address into account in the calculation. Maniphest Tasks: T3324 Reviewers: pwithnall Projects: #libnice Reviewed By: pwithnall Subscribers: pwithnall Differential Revision: https://phabricator.freedesktop.org/D235
-
- 09 Oct, 2014 1 commit
-
-
Olivier Crête authored
-
- 23 Sep, 2014 1 commit
-
-
Philip Withnall authored
To try and avoid NULL NiceCandidates entering our internal state.
-
- 22 Sep, 2014 1 commit
-
-
Philip Withnall authored
If a NiceSocket is destroyed, various pointers are currently left dangling to it in the conncheck state. These can cause crashes if (for example) a CandidateCheckPair with such a dangling pointer is then used; the GSocket methods will fail. Fix this by explicitly removing the socket and all NiceCandidates which wrap it from various areas of the state.
-
- 19 Sep, 2014 2 commits
-
-
Philip Withnall authored
Modify agent_timeout_add_with_context() to force destroying and freeing of an existing GSource before overwriting it with a new one (probably with an updated timeout period). This fixes a case in priv_map_reply_to_relay_refresh() where the TURN candidate refresh timer was being overwritten with a new one, without the old one being destroyed. This lead to two timeouts existing, only one of which would be destroyed when the CandidateRefresh struct was freed, leaking the other one (in the main context) and allowing it to be later dispatched with a dangling CandidateRefresh pointer. The modification to agent_timeout_add_with_context() should prevent this happening in new code in future.
-
Philip Withnall authored
Modify the agent_timeout_add_with_context() utility function to automatically add names to the timer GSources it creates. This makes them a little easier to identify when debugging.
-
- 25 Jul, 2014 1 commit
-
-
Olivier Crête authored
This reverts commit 18e5dff4.
-
- 23 Jul, 2014 1 commit
-
-
Olivier Crête authored
Send thing one line at a time, so no explicit \n Also make it possible to set a log handler explicitly
-
- 17 May, 2014 8 commits
-
-
Olivier Crête authored
We want ICE-TCP to not have reliable behavior unless the agent is reliable otherwise it will confuse existing VoIP applications.
-
Olivier Crête authored
discovery: Make it less likely that a locally assigned remote foundation clashes with the remote one.
-
Olivier Crête authored
The RFC says that "for reflexive and relayed candidates, the STUN or TURN servers used to obtain them have the same IP address."
-
Olivier Crête authored
-
Olivier Crête authored
-
Olivier Crête authored
If the socket can't be bound, then trying another port makes sense, otherwise it doesn't.
-
For TCP server reflexive candidates, since STUN can't work on TCP candidates, we will use STUN on UDP or TCP and once we get an externally mapped address, we will create a server reflexive candidate for all local TCP candidates that share the same base address, and use the same mapped port as the base addresse's port.
-
This is a massive commit that can't be split. We add ice-tcp support into the agent by creating local host tcp-active/tcp-passive candidates. We also need to find the local and remote candidates whenever we discover a peer-reflexive because their data is important to setup the peer-reflexive so a few changes were added to look for the local or remote candidate. For TCP-ACTIVE remote peer-reflexive candidates, we can't add conncheck pairs normally because TCP-PASSIVE (local) do not generate candidate pairs, and we also can't have a connection from any local host, so we can only create a single candidatepair with the local/remote that are connected. The pair->socket of a candidate check pair will hold the connected tcp socket (through connect for ACT or accept for PASS) and we will either have a remote or a local peer-reflexive which will create a new candidate pair, we cannot trigger checks on the initial candidate pair, we must only do it on the new check pairs. but in the case of a tcp-passive, we don't get a new local peer-reflexive candidate, so there is no new candidate with a new NiceSocket, so when we get a triggered check, we need to match it to the candidate check pair or when we select a pair, it will still use the original TCP-PASS socket. We must store the new connected tcp socket in the peer reflexive candidates since they represent that unique peer-reflx candidate's connection
-
- 15 May, 2014 7 commits
-
-
Youness Alaoui authored
-
Youness Alaoui authored
The TURN-TCP RFC is very different from TURN-UDP, the current turn and tcp-turn files were only for UDP TURN RFC and UDP TURN using TCP transport. When we implement TCP-TURN, we'll need a different algorithm, so I renamed the files and API to avoid any confusion.
-
Youness Alaoui authored
-
Youness Alaoui authored
-
Youness Alaoui authored
-
Youness Alaoui authored
-
Youness Alaoui authored
One issue with tcp-bsd is that it will queue messages when the tcp socket is not writable, but it will also drop messages when the queue is full. If we want to do proper reliable ice-tcp, we need to make sure that messages don't get dropped, also, this would affect http/socks5/pseudossl if their messages get dropped. For ice-tcp, when the socket is not writable we want to return 0, not queue the message. The change here is to allow connchecks and other important protocol messages to be sent as 'reliable' on tcp transports by queuing them and in the various socket layers and to never drop them, but all user messages will be dropped. if the tcp socket is not writable.
-
- 25 Apr, 2014 2 commits
-
-
Olivier Crête authored
But keep the turn connection that's currently being used if it is the selected candidate. Also clear the TURN candidate refresh.
-
Olivier Crête authored
Instead of just blindling assuming that all of the pointers are valid until the end.
-