summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* agent: Verify the source before dereferencing the pointerOlivier Crête2021-04-202-7/+14
| | | | | The reason is that the component object could have been destroyed in the mean time.
* agent: don't allocate large arrays on the stackFabrice Bellet2021-04-203-17/+29
|
* udp-turn: don't allocate large arrays on the stackFabrice Bellet2021-04-201-4/+11
|
* agent: keep a track of the candidate refreshes being prunedFabrice Bellet2021-04-205-0/+35
| | | | | | | | 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.
* interfaces: Skip special interfaces on Apple OSesOle André Vadla Ravnås2021-04-192-1/+26
| | | | Including unused utun devices.
* interfaces: Skip special interfaces on Apple OSesOle André Vadla Ravnås2021-04-201-0/+18
| | | | Including unused utun devices.
* gitlab-ci: Accept double pipeline otherwise MRs arent mergeableOlivier Crête2021-04-191-2/+0
|
* gitlab-ci: Stop base msvc build on msysOlivier Crête2021-04-191-2/+10
|
* gitlab-ci: Mark all tasks as interruptibleOlivier Crête2021-04-191-0/+6
|
* gitlab-ci: Move pacman setup to before_scriptOlivier Crête2021-04-191-2/+10
|
* gitlab-ci: Run meson, ninja and meson test separatelyOlivier Crête2021-04-191-3/+3
|
* gitlab-ci: Just skip the msys global upgradeOlivier Crête2021-04-191-7/+0
|
* gitlab-ci: Update to 2021-02-04 Windows imageOlivier Crête2021-04-191-1/+1
|
* gitlab-ci: Verify that allow-edit is setOlivier Crête2021-04-191-0/+25
|
* agent: reset remote credentials when restarting iceFabrice Bellet2021-03-051-0/+7
| | | | | | 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.
* agent: transition to state gathering when restarting iceFabrice Bellet2021-03-052-3/+8
| | | | | | 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.
* agent: don't change agent role when restarting iceFabrice Bellet2021-03-052-16/+0
| | | | | Ice restart must not change the role of the agents since RFC8445, section 9, "ICE Restarts".
* Add (in) annotation to buf_len argumentdemotomohiro2021-03-051-2/+2
|
* gst: Fix gst-env and libgstreamer-full.so suppportNicolas Dufresne2021-03-051-0/+1
| | | | | | | 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.
* interfaces: Accept only IPv4/IPv4 addresses using ioctl() methodOlivier Crête2021-02-251-17/+30
| | | | | | Android now spits other address types too confusing libnice. This patch is a collaborative work with Tom Gilbert <twcgilbert@gmail.com>
* gitlab-ci: Lock meson to 0.56.2Olivier Crête2021-02-161-1/+1
|
* interfaces: Fix small warnings on Win32Olivier Crête2021-02-161-2/+1
|
* Use a namespace http://www.w3.org/2001/XInclude instead of a deprecated oneLemures Lemniscati2021-01-061-1/+1
| | | | Avoid to use a deprecated namespace http://www.w3.org/2003/XInclude
* Use https instead of http as far as possible in READMELemures Lemniscati2021-01-061-8/+8
|
* Use https instead of http in libnice-docs.xmlLemures Lemniscati2021-01-061-1/+1
|
* test-fallback: fix stack buffer overflow with new candidate APIFabrice Bellet2020-12-141-31/+31
|
* agent: reject addition of peer-reflexive remote candidatesFabrice Bellet2020-12-141-0/+2
| | | | | Peer-reflexive candidates are not supposed to be set by the application, since they are not exchanged in the SDP.
* discovery: use the address of a relayed candidate for its foundationFabrice Bellet2020-12-141-20/+39
| | | | | | | | | | | | | According to the RFC, the base address of a relayed candidate is that candidate itself. This precision is interesting and not just anecdotical, since it allows the relayed candidates from the same turn server to share the same foundation, and to not be tested concurrently. However, since the base address in its current form is required to compute a unique priority, we choose the keep the candidate->base_address for this purpose, and to apply the RFC consequence about relay candidate base being equal to the candidate itself in the foundation assignment instead.
* discovery: remove turn refresh after discarding relay candidateFabrice Bellet2020-12-143-18/+37
| | | | | When a redundant relay candidate is discarded, a turn refresh with zero lifetime must be sent to release its allocation on the turn server.
* discovery: redundant candidates should have the same transportFabrice Bellet2020-12-141-0/+2
| | | | | When dropping redundant server-reflexive and relay candidates, they should of course have the same transport too.
* discovery: use a single server reflexive and relay local candidateFabrice Bellet2020-12-141-1/+18
| | | | | | | | | | | | The rationale with this patch is that an agent running on a multihomed host have no gain to store multiple identical server reflexive and relay local candidates (those obtained by a stun bind request sent from each local interface). The stun requests that use the same default route are all expected to provide the same answer. This patch should keep intact the ICE conncheck versatility, and drastically improve the conncheck time to completion, as the number of checked pairs is reduced.
* interfaces: skip unhandled interface families earlyFabrice Bellet2020-12-141-0/+4
| | | | | | We handle interfaces of type AF_INET or AF_INET6 only, so discard other families before calling sockaddr_to_string() on them, for example PF_PACKET.
* agent: set component is state gathering earlierFabrice Bellet2020-12-142-10/+5
| | | | | This patch avoids to bypass state gathering, with transition from disconnected to connecting.
* candidate: fix unused variableFabrice Bellet2020-12-141-2/+1
|
* agent: implement support for RFC7675 - Consent FreshnessMatthew Waters2020-12-1016-128/+830
| | | | | | | | | | | | | | | 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.
* interfaces: IPv6 addresses can have a scope and be very longOlivier Crête2020-12-071-1/+1
| | | | | | Just put a much larger buffer for this to work. Fixes #126
* conncheck: fix a buggy state transitionFabrice Bellet2020-12-071-4/+8
| | | | | | | The previous patch handling tcp disconnections forgot a case when the selected pair is removed, while in state ready, and in that situation, we should not jump back to connecting state, but fail instead. Just like we did at the beginning of the function.
* agent: report duplicated port in udp bsd sockets tooFabrice Bellet2020-12-077-54/+93
| | | | | | | | | | | | | | | | | | 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
* conncheck: better handle remote tcp disconnectionFabrice Bellet2020-12-073-13/+41
| | | | | | | | | With this patch, we handle tcp disconnections in a more robust way. Such disconnections cause the underlying socket to be detached, and various related pairs have to be discarded from the conncheck list. This may cause unexpected behaviour, like a previously connected component to come back in state connecting, if the selected pair is concerned by a tcp disconnection for example.
* component: Fix potential NULL deferenceOlivier Crête2020-10-261-1/+2
| | | | This was introduced recently and flagged by Coverity.
* gitlab-ci: mingw now works, so dont allow failureOlivier Crête2020-10-211-2/+0
|
* gitlab-ci: Download an updated keyringOlivier Crête2020-10-211-0/+5
| | | | The keyring in our base image is outdated.
* gitlab-ci: Limit ninja to 1 job on mingwOlivier Crête2020-10-211-1/+1
|
* gitlab-ci: Switch to new Windows v13-master Windows imageOlivier Crête2020-10-211-1/+1
|
* gitlab-ci: Kill all msys tasks after upgradingOlivier Crête2020-10-211-1/+7
| | | | | | Also don't fail the first iteration of upgrade Solution found by Jordan Petritis
* gitlab-ci: Disable trigger againOlivier Crête2020-10-211-1/+2
|
* conncheck: add stun transaction id of stun ping response in debugging logsChi Liu2020-10-211-9/+18
|
* gitlab-ci: Trigger website after pages stageOlivier Crête2020-10-211-2/+1
|
* agent: Start connchecks when credentials are setOlivier Crête2020-10-211-0/+1
| | | | | | This should make it work even if no remote candidates at all are set in the case where we can establish a connection based only on peer reflexive candidates.
* agent: Move UPnP handling to each streamOlivier Crête2020-10-216-203/+301
| | | | Also rewrite the logic a little, and try to make the code a little clearer.