Skip to content
An implementation of the IETF’s Interactive Connectivity Establishment (ICE) standard — this is an official read-only mirror of the upstream repository at https://gitlab.freedesktop.org/libnice/libnice/. File issues there and create pull requests there too instead of here.
C Meson Other
Branch: master
Clone or download

Latest commit

fbellet and ocrete conncheck: add a check to move into the ready state after a pair failed
This patch tries to move the component state from connected to ready in
places where a pair may fail. Consequently, the final check done after
the expiration of the idle timeout can be removed, assuming that
transitions are done as soon as they occur.

The only place where such a situation has been observed in a real world
stress test is a 401 unauthorized stun error received in
priv_map_reply_to_conn_check_request(), when the conncheck contains a
local and a remote candidate, both of type host, with an identical IP
address and port number (two boxes with a private network using the same
subnet). In such a case, a stun request to the remote candidate will
reach the local candidate instead, and will logically fail.
Latest commit b67df58 May 20, 2020

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
agent conncheck: add a check to move into the ready state after a pair failed May 22, 2020
docs Remove autotools build May 22, 2020
examples Remove autotools build May 22, 2020
gst Remove autotools build May 22, 2020
nice Remove autotools build May 22, 2020
random Remove autotools build May 22, 2020
socket Remove autotools build May 22, 2020
stun Remove autotools build May 22, 2020
subprojects meson: Move glib wrap to download May 8, 2020
tests Remove autotools build May 22, 2020
.gitignore gitignore: Remove in-tree built files May 22, 2020
.gitlab-ci.yml gitlab-ci: Put image at the top May 22, 2020
AUTHORS Fix for make distcheck to work Oct 27, 2008
COPYING relicense under MPL+LGPL Apr 30, 2007
COPYING.LGPL move COPYING -> COPYING.LGPL Apr 30, 2007
COPYING.MPL add COPYING.MPL Apr 30, 2007
NEWS version 0.1.17 May 22, 2020
README Remove autotools build May 22, 2020
TODO TODO: Update to match current state May 17, 2014
meson.build version 0.1.17.1 May 22, 2020
meson_options.txt build: add default ignore network interface prefix Jun 27, 2019

README

Nice: GLib ICE library
======================

Copyright
---------

 (C) 2006-2020 Collabora Ltd.
 (C) 2006-2011 Nokia Corporation

License
-------

See the file COPYING.

Requirements
------------

 glib >= 2.54
 pkg-config
 gnutls >= 2.12.0 or OpenSSL
 gupnp-igd >= 0.1.2 (optional)
 gstreamer-0.10 (optional)
 gstreamer-1.0 (optional)

Build instructions
------------------

libnice uses the Meson Build System: https://mesonbuild.com

To build on Linux and Mac, you only need to type the usual commands :

  meson builddir
  ninja -C builddir
  ninja -C builddir test (or "meson test -C builddir" for more control)
  sudo ninja -C builddir install

See https://mesonbuild.com/Quick-guide.html#compiling-a-meson-project
for more details and how to install the Meson build system.

Structure
---------

 agent/   - ICE agent
 docs/    - Design and API documentation
 gst/     - Gstreamer elements
 nice/    - libnice library
 random/  - random number generation
 socket/  - Socket abstraction layer
 stun/    - STUN implementation
 tests/   - Unit tests

Relevant standards
------------------

These standards are relevant to nice's current implementation.

ICE
  http://tools.ietf.org/html/rfc5245 (old)
  http://tools.ietf.org/html/rfc8445
STUN
  http://tools.ietf.org/html/rfc3489 (old)
  http://tools.ietf.org/html/rfc5389
TURN 
  http://tools.ietf.org/html/rfc5766
RTP
  http://tools.ietf.org/html/rfc3550
ICE-TCP RFC
  http://tools.ietf.org/html/rfc6544
Trickle ICE
   https://tools.ietf.org/html/draft-ietf-ice-trickle-21
XMPP Jingle ICE transport
  http://www.xmpp.org/extensions/xep-0176.html

In future, nice may additionally support the following standards.

NAT-PMP
  http://files.dns-sd.org/draft-cheshire-nat-pmp.txt


You can’t perform that action at this time.