gecko-dev/media/mtransport/third_party/nICEr
Michael Froman 032f9ca0bc Bug 1345511 - pt 1 - nICEr changes to support stun addr gathering from main process. r=bwc
Expose a tweaked version of nr_ice_get_local_addresses to allow callers to
provide pre-fetched stun addrs if they are available.  By default, the normal
call to nr_ice_gather calls this with no pre-fetched stun addrs (read
non-e10s).  In e10s, the stun addrs are discovered on the main process and
provided to nr_ice_get_local_addreses.  When nr_ice_gather is called from
the content process the local addresses have already been gathered.

In the past, nr_ice_get_local_addresses also applied policy (by removing
duplicate addrs, and, based on stun prefs, removing loopback and/or
link_local addrs.  This functionality has been moved to
nr_ice_set_local_addresses where other policy is being applied (like
default route only, forcing specific interfaces, and prioritization).

Because we're now serializing nr_local_addr (wrapped by NrIceStunAddr), we
can't assume that certain pointer references in the source nr_local_addr
are correct when calling nr_local_addr_copy.  New non-pointer-arithmetic
version of setting up the pointer on the copied nr_local_addr is used.  Also
easier to understand when walking up to it the first time.

MozReview-Commit-ID: KVRFl4dfr7J

--HG--
extra : rebase_source : c0437700ad77ee3b7f98947d3505551ca9ed43e9
2017-03-16 12:06:09 -05:00
..
src Bug 1345511 - pt 1 - nICEr changes to support stun addr gathering from main process. r=bwc 2017-03-16 12:06:09 -05:00
IMPORT_FILES Bug 797262 - IPV6 support for webrtc. r=drno 2015-04-22 15:02:50 -05:00
nicer.gyp Bug 1060419 - add -Werror=format to the warnings.configure, r=froydnj 2016-12-15 09:57:59 -07:00
README
README_MOZILLA
upstream.diff

                             nICEr 1.0

PREREQUISITES:
-------------
You must first obtain and build the following packages:

* nrappkit
  - http://nrappkit.sourceforge.net/

* OpenSSL-0.9.8g
  - http://www.openssl.org/source/openssl-0.9.8g.tar.gz


For best results, the "ice-<version>" directory should be at
the same level as the "nrappkit" and "openssl-0.9.8g"
directories.  I.e., the directory structure should look like:

   nrappkit/
   ice-<version>/
   openssl/
          include/
          lib/VC/


BUILDING ON UNIX:
----------------
Once the prerequisite packages are built, 'cd' to the
relevant build directory, one of:

   ice-<version>/make/darwin
   ice-<version>/make/linux-fedora
   ice-<version>/make/ubuntu

and simply do a "make".


BUILDING ON WINDOWS:
-------------------
The Visual C++ project files are configured to expect the
directory structure described above.
 
Note: Binary Windows builds of OpenSSL can be found at:
   http://www.slproweb.com/products/Win32OpenSSL.html

Once the prerequisite packages are built, open the VC++ 9.0
solution file: ICE/make/win32/ice.sln and build the solution.
Note: Since the VC++ project/solution files are version 9.0,
Visual Studio 2008 is required.


STATUS:
------
The ICE code has been tested on the following platforms:
-- Fedora Core 4 (Intel 32-bit)
-- Fedora Core 6 (Intel 32-bit)
-- Ubuntu 6.10 
-- MacOSX 10.4.9
-- Windows Vista (Home Premium)
-- Windows XP Pro
-- Windows 2000 SP4


KNOWN ISSUES:
------------
-- TURN SET-ACTIVE-DESTINATION mode not yet supported.

-- Problems may exist with the TURN client implementation; the TURN code
   has received minimal testing due to the unavailability of a real
   TURN server to test against.

-- The ICE-Lite implementation is not complete.

-- The new "impatient" timeout has not yet been thoroughly tested.