| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
| |
|
|
|
|
|
|
|
|
| |
The candidate may be a newly discovered peer reflexive one,
or a server reflexive initial candidate, where address and
base address differ. Early incoming checks are received on
the base address. These incoming checks may accumulate if remote
credentials arrive with a delay.
|
| |
|
|
|
|
|
| |
In complement to the conncheck list, we dump the pair transport type,
the socket type, and the incoming checks list.
|
| |
|
|
|
|
|
|
|
| |
This complete the similar debug trace when remote candidates are
received, and help to debug our tests with the patched farstream
library, where candidates and credentials are transmitted with a
random delay.
|
|
|
|
|
|
| |
This foundation update may be needed when a selected pair contains a remote
candidate that has been found by an inbound stun request, but has not
been received by nice_agent_set_remote_candidates()
|
| |
|
| |
|
|
|
|
| |
This reverts commit ca47519feda9d4dad38a06e2f7d94c0afc501364.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
conn_check_prune_socket() on nsocket must be called before removing the
candidate with this socket inside the loop, to prevent the
use-after-free reported initially in issue #73.
But commit 541801d introduced a regression during discovery when an udp
turn over tcp socket is immediately closed by a HUP condition for
example. In this case, discovery_prune_socket() is never called, because
we don't have a candidate with this socket inside the loop. So the
nsocket is freed by the final nice_component_detach_socket() but is
still used by the discovery timer callback.
This commit moves the discovery_prune_socket() and
conn_check_prune_socket() actions before the loop instead of after, or
inside.
Closes #73
|
| |
|
|
|
|
|
|
|
| |
The patch makes the agent alive at least until the last callback of
the removal of turn refreshes when a stream is deleted from the agent.
Closes #84
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
The automake generated ones are a little funky, so the meson one have to also be
to not break API...
|
|
|
|
|
|
|
| |
This API makes it possible to get an array of all of the sockets used
by a specific component, this is useful to set options on the socket.
Also bump GLib requirement to 2.54, which is the version in RHEL 7
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
By default libnice now ignores network interfaces from virtual machines
and containers, i.e. names that start with "docker", "veth", "virbr" and
"vnet".
If you want to disable this feature override the default with
./configure --without-ignored-network-interface-prefix ...
./configure --with-ignored-network-interface-prefix= ...
meson setup -D ignored-network-interface-prefix= ...
meson setup -D ignored-network-interface-prefix=[] ...
|
|
|
|
|
|
|
| |
This fixes commit b4abda09c79e4ce372a3771300abf568c85c7ff5
--without-XXX sets $withval to "no", hence we must check for this special
value instead of ignoring network interfaces that start with "no".
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The parameter for the ignored network interface prefix build option
accepts a comma-separated string now. This list will be converted to a
comma-separated list of string literals for the C code.
Disable the feature:
./configure ...
./configure --with-ignored-network-interface-prefix= ...
meson setup -D ignored-network-interface-prefix= ...
meson setup -D ignored-network-interface-prefix=[] ...
Ignore interfaces whose names start with "virbr":
./configure --with-ignored-network-interface-prefix=virbr ...
meson setup -D ignored-network-interface-prefix=virbr ...
Ignore interfaces whose names start with "virbr" or "veth":
./configure --with-ignored-network-interface-prefix=virbr,veth ...
meson setup -D ignored-network-interface-prefix=virbr,veth ...
|
|
|
|
|
|
|
|
| |
Improve on commit b4abda09c79e4ce372a3771300abf568c85c7ff5
Instead of checking one prefix, check against a list of prefixes. This
allows libnice to be configured to ignore interfaces from virtual
machines and containers.
|
|
|
|
| |
Check for IFF_UP and IFF_RUNNING flags on the interface.
|
|
|
|
| |
This fixes commit 9afd0c8b8f12aa560f800ced7e50b4da40dea456
|
|
|
|
|
|
|
| |
Update nice_interfaces_is_private_ip() to handle IPv6 too:
- unique local address block: fc00::/7
- link-local address block: fe80::/10
|
|
|
|
|
|
| |
This fixes commit b4abda09c79e4ce372a3771300abf568c85c7ff5
Copy the implementation to the !HAVE_GETIFADDRS branch too.
|
|
|
|
|
| |
Clone implementation from HAVE_GETIFADDRS branch to !HAVE_GETIFADDRS
branch of nice_interfaces_get_local_ips()
|
| |
|
|
|
|
| |
https://gitlab.freedesktop.org/libnice/libnice/commit/da41258a21102f63ec5d5b2dc20d303f772eb195. Fix #64.
|
|
|
|
| |
Code comment mentions peer reflexive candidate pair should be selected
only in the case of TCP local candidates, but it was done in all cases.
|
|
|
|
| |
Otherwise, MSVC will complain and cause build error.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
This makes the API more GIO style
|
|
|
|
|
| |
Asynchronously closes resources the agent has allocated on remote
servers.
|
| |
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
First collect the relay candidates, then dispose them in a loop.
|
| |
|
| |
|
|
|
|
|
|
| |
Attribute is proposed here: https://tools.ietf.org/html/draft-thatcher-ice-renomination-00
WebRTC supports this attribute: controlling side provides attribute value increased by one each time selected pair is changed:
https://chromium.googlesource.com/external/webrtc/+/3c7d599750405bc734e1d5adbf1b54265b725a9d/p2p/base/p2ptransportchannel.cc#1821
|
| |
|
| |
|
|
|
|
|
|
|
| |
conn_check_prune_socket() was trying to access deleted NiceCandidate
instance. Prune the socket before removing the candidate.
Closes #73
|
| |
|
|
|
|
| |
Call nice_agent_peer_candidate_gathering_done () where appropriate.
|
|
|
|
|
| |
The STUN thread may be blocked waiting for stun_signal_ptr so signal it
when stopping the thread.
|
| |
|