| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
In the case of gstreamer test, the symbol gst_init_static_plugins
needed by gstreamer will be available at the end of the build with
gstreamer-full library.
|
|
|
|
| |
It was already set at creation time, so all we got was a warning.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
If we have gathered a host IP-address that is link-local we should
never try to use it for anything else than trying to match it with
another link-local address. Some routers seem to have problems with
traffic from link-local addresses destined at external IP-addresses.
By definition link-local addresses should stay local so there's no
reason to access STUN/TURN from it or try to form a candidate with
another address that is not link-local.
|
|
|
|
|
| |
In one case, the message pointer gets replaced by the rfc4571_message
one, so it wasn't getting cleared as expected.
|
|
|
|
|
|
|
| |
Busy-looping is not a good idea, especially not when run under Valgrind,
where such a thread may result in well-behaved threads running thousands
of times slower. While passing --fair-sched=yes to Valgrind avoids the
issue, it's still better to make our busy-looping less aggressive.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
We cannot assume that the message will be completely filled even in
reliable mode.
|
|
|
|
|
| |
Cannot pass g_main_loop_quit as the GSourceFunc as its return type is
void.
|
|
|
|
|
| |
Due to off-by-one errors. Since the code added above now handles what
this code tried to handle, we can go ahead and remove it.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
With this patch we ensure that local socket errors during connection
establishment are properly transmitted to the connection check layer, so
the related pair can be put in state failed when needed. The local
socket errors we are interested in, are those occuring when the local
source address cannot be bound anymore, because the underlying interface
vanished for example.
In particular, we don't ignore errors coming from g_socket_bind() with
tcp active sockets, that perform a bind to *whatever* local address is
available, in case it cannot bind to the specified address.
This behaviour was demonstrated with the test-tcp example, that tried
to bind to the IPv4 loopback address on a socket initially created for
the IPv6 loopback.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Ice restart must not change the role of the agents since RFC8445,
section 9, "ICE Restarts".
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Specified in https://tools.ietf.org/html/rfc7675
RFC 7675 is a slight modification of the existing keepalive connection
checks that could be enabled manually or were used with the GOOGLE
compatibility mode.
Slight differences from the existing keepalive connection checks
include:
- an additional consent expiry timer instead of relying on all binding
requests to succeed.
- 403: 'Forbidden' stun error-code which revokes consent with immediate
effect.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch fixes cases, where the range is full, some ports fail with
HOST_CANDIDATE_CANT_CREATE_SOCKET, other fail with
HOST_CANDIDATE_DUPLICATE_PORT, the value of res we keep when leaving the
loop is randomly the one of the last iteration of the loop.
CANT_CREATE_SOCKET still happens when trying to create an udp bsd socket
with the same address and port than one of another component, so it is
also a case of duplicate port in fact.
To be homogeneous, we add a gerror for nice_udp_bsd_socket_new(), like
we did in nice_tcp_passive_socket_new(), and we can catch the same
G_IO_ERROR_ADDRESS_IN_USE there too, when failing to get free available
udp ports.
This patch is a complement to merge request !158
|
|
|
|
| |
This is slightly an API break, but it should never have been public.
|
|
|
|
|
|
|
| |
This will make it fail if either our test of UDP port clash fails
or if the kernel rejects the new socket because there is a port clash.
Also include a unit test for this.
|
| |
|
|
|
|
|
|
|
|
| |
Commit a04fa4d492 introduced a new feature to try to have a different port for every
local candidate, even if they are on different interfaces. This breaks setups where the
application really wants a specific port and sets a range of exactly 1 port or a very small range.
In that case, if we can't find non-duplicated ports, then we just go around again and skip that check,
but only if both ports are in the same stream and component. Otherwise, we fail the whole component!
|
|
|
|
|
|
| |
Remove dist check on the CI, since it doesn't really
add anything in the Meson case (tarball is based
on files checked into git and srcdir != builddir).
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Also adds a unit test
Fixes #67
|
| |
|
|
|
|
| |
This makes for clearer reports in the CI
|
| |
|
|
|
|
| |
This matches the rest of the tests.
|
|
|
|
|
| |
This race condition is hit all the time when running the test under
valgrind.
|
|
|
|
|
| |
We can accept up to 8 turn servers, with turn preference value
starting at zero. Also fix the error message.
|
|
|
|
|
|
|
|
|
|
| |
This value is built from the position in the component turn servers
list, and from the base address network interface position in the list
of network interfaces. This value is used to ensure a unique candidate
priority for each one. Also ensure that the fields that compose the
local preference don't overlap, by checking their maximum value. See
RFC-8445, section 5.1.2.2 "Guidelines for Choosing Type and Local
Preferences".
|
|
|
|
| |
This is a unix-only test
|
|
|
|
|
|
| |
The local preference of UDP candidates is (now) determined by the
position of the IP address in the list returned by
nice_interfaces_get_local_ips().
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
We're not sure that our callback will be called again if
we haven't filled the pipe.
|
|
|
|
| |
The parser didn't seem to handle line continuations properly back then.
|
|
|
|
| |
It crashes on Windows
|