- 13 May, 2021 2 commits
-
-
Fabrice Bellet authored
-
Fabrice Bellet authored
-
- 11 May, 2021 1 commit
-
-
Ole André Vadla Ravnås authored
-
- 10 May, 2021 1 commit
-
-
Ole André Vadla Ravnås authored
To be consistent with what we do for ICE-TCP.
-
- 09 May, 2021 1 commit
-
-
Ole André Vadla Ravnås authored
-
- 03 May, 2021 4 commits
-
-
Olivier Crête authored
The type is already checked to not be peer reflexive earlier.
-
Olivier Crête authored
Even if the agent is invalid, don't leak. This makes coverity a little happier.
-
Olivier Crête authored
This should make Coverity's job a little easier. And also fix a little leak in the error path.
-
Olivier Crête authored
As removing the request from the queue looks into the SendRequest, one needs to unqueue it before freeing it.
-
- 20 Apr, 2021 11 commits
-
-
Fabrice Bellet authored
With this patch we free all outstanding refreshes when the agent dispose method is called, even those that are in the way to be discarded asynchronously, when a stream is removed. We also make the final user callback of the refresh proces synchronous, so we don't have to deal with an heap use-after-free problem. This also requires to order some parts of code.
-
Fabrice Bellet authored
Asynchronous refreshes pruning may occur when the agent async close function is called, but also when a stream is closed. A flag 'discarding' is used in the CandidateRefresh object to determine if a refresh is already on the way to be asynchronously freed. A refresh definitely freed is removed from agent refresh_list. When the agent async close function is called, it is passed a user callback that will be invoked when all refreshes have been freed. This is not exactly how things work currently, because right now, the callback function is also invoked when all CandidateRefresh objects have the discarding flag set, with the test 'data->items_to_free==0'. In that case, clearly not all refreshes have been freed, as some are still there in the refresh_list with the discarding flag set. This is probably not what the user expects from the function nice_agent_close_async(), where the callback is supposed to be invoked after all refreshes have been freed: and including those asynchronously pruned by nice_prune_stream_async(). This patch adds a supplementary timeout when closing the agent async, that waits until the agent refresh list becomes empty.
-
Fabrice Bellet authored
We keep refreshes having the discarding flag set. They may be freed later if the agent main context remains alive after agent deletion.
-
Fabrice Bellet authored
This patch suggests the developer to close its alive reservations on the turn server before disposing the agent. Not removing reservations on the turn server, will make them alive until their default timeout, generally 300 seconds, which is not fair for the turn server resources, but also it may cause a fatal error 437, "Mismatched allocation: wrong transaction ID", when another agent tries to contact the same turn server using the same nat mapping before this delay expires.
-
Olivier Crête authored
The reason is that the component object could have been destroyed in the mean time.
-
Fabrice Bellet authored
-
Fabrice Bellet authored
-
Fabrice Bellet authored
Refreshes with zero lifetime sent over tcp transport may cause the removal of the underlying socket when the remote peer closes the connection taking our request into account. These refreshes must be tracked and freeed on our side to avoid retransmission attempt on a closed socket and a heap-use-after-free error in that case.
-
Ole André Vadla Ravnås authored
Including unused utun devices.
-
Ole André Vadla Ravnås authored
Including unused utun devices.
-
Olivier Crête authored
-
- 19 Apr, 2021 7 commits
-
-
Olivier Crête authored
-
Olivier Crête authored
-
Olivier Crête authored
-
Olivier Crête authored
-
Olivier Crête authored
-
Olivier Crête authored
-
Olivier Crête authored
-
- 05 Mar, 2021 5 commits
-
-
Fabrice Bellet authored
The remote credentials recorded in the streams should be reset, in the case the restarted conncheck begins with new remote candidates *before* the updated remote credentials are received.
-
Fabrice Bellet authored
The state of the component is downgraded to gathering state, so it can really restart a new conncheck from scratch. It'll transition to state connecting when receiving the updated remote candidates.
-
Fabrice Bellet authored
Ice restart must not change the role of the agents since RFC8445, section 9, "ICE Restarts".
-
demotomohiro authored
-
Nicolas Dufresne authored
gst-build uses meson introspection and reads the plugins array of each subproject in order to locate the plugins. Setting libnice plugins array allow enabling nice plugin in both gst-env.py and when building single library libgstreamer-full.so.
-
- 25 Feb, 2021 1 commit
-
-
Olivier Crête authored
Android now spits other address types too confusing libnice. This patch is a collaborative work with Tom Gilbert <twcgilbert@gmail.com>
-
- 16 Feb, 2021 2 commits
-
-
Olivier Crête authored
-
Olivier Crête authored
-
- 06 Jan, 2021 3 commits
-
-
http://www.w3.org/2001/XIncludeLemures Lemniscati authored
Avoid to use a deprecated namespace http://www.w3.org/2003/XInclude
-
Lemures Lemniscati authored
-
Lemures Lemniscati authored
-
- 14 Dec, 2020 2 commits
-
-
Fabrice Bellet authored
-
Fabrice Bellet authored
Peer-reflexive candidates are not supposed to be set by the application, since they are not exchanged in the SDP.
-