platform/upstream/libnice.git
5 years agomeson: Fix enum types generation to match automake
Olivier Crête [Wed, 3 Jul 2019 19:17:26 +0000 (15:17 -0400)]
meson: Fix enum types generation to match automake

The automake generated ones are a little funky, so the meson one have to also be
to not break API...

5 years agoagent: add nice_agent_get_sockets API
Olivier Crête [Fri, 28 Jun 2019 21:03:44 +0000 (17:03 -0400)]
agent: add nice_agent_get_sockets 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

5 years agoconncheck: add transport information to debug
Fabrice Bellet [Thu, 27 Jun 2019 19:52:13 +0000 (19:52 +0000)]
conncheck: add transport information to debug

5 years agobuild: add default ignore network interface prefix
Stefan Becker [Thu, 27 Jun 2019 10:33:25 +0000 (13:33 +0300)]
build: add default ignore network interface prefix

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=[] ...

5 years agoconfigure: support --without-ignored-network-interface-prefix
Stefan Becker [Thu, 27 Jun 2019 09:41:06 +0000 (12:41 +0300)]
configure: support --without-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".

5 years agobuild: make prefix option accept a list of strings
Stefan Becker [Thu, 27 Jun 2019 09:22:53 +0000 (12:22 +0300)]
build: make prefix option accept a list of strings

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 ...

5 years agointerfaces: allow list of ignored prefixes
Stefan Becker [Thu, 27 Jun 2019 09:17:43 +0000 (12:17 +0300)]
interfaces: allow list of ignored prefixes

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.

5 years agointerfaces: ignore non-running interfaces
Stefan Becker [Wed, 26 Jun 2019 09:00:21 +0000 (12:00 +0300)]
interfaces: ignore non-running interfaces

Check for IFF_UP and IFF_RUNNING flags on the interface.

5 years agotests: ignore trickle executables
Stefan Becker [Wed, 26 Jun 2019 08:59:04 +0000 (11:59 +0300)]
tests: ignore trickle executables

This fixes commit 9afd0c8b8f12aa560f800ced7e50b4da40dea456

5 years agointerfaces: detect IPv6 ULA & link-local addresses
Stefan Becker [Wed, 26 Jun 2019 08:45:06 +0000 (11:45 +0300)]
interfaces: detect IPv6 ULA & link-local addresses

Update nice_interfaces_is_private_ip() to handle IPv6 too:

- unique local address block: fc00::/7
- link-local address block:   fe80::/10

5 years agointerfaces: add missing support for IGNORED_IFACE_PREFIX
Stefan Becker [Wed, 26 Jun 2019 08:08:37 +0000 (11:08 +0300)]
interfaces: add missing support for IGNORED_IFACE_PREFIX

This fixes commit b4abda09c79e4ce372a3771300abf568c85c7ff5

Copy the implementation to the !HAVE_GETIFADDRS branch too.

5 years agointerfaces: support multiple loopbacks
Stefan Becker [Wed, 26 Jun 2019 08:00:25 +0000 (11:00 +0300)]
interfaces: support multiple loopbacks

Clone implementation from HAVE_GETIFADDRS branch to !HAVE_GETIFADDRS
branch of nice_interfaces_get_local_ips()

5 years agoAssign source out of the for loop
alex [Wed, 5 Jun 2019 09:45:17 +0000 (11:45 +0200)]
Assign source out of the for loop

5 years agoFix regression introduced by https://gitlab.freedesktop.org/libnice/libnice/commit...
alex [Tue, 21 May 2019 14:19:32 +0000 (16:19 +0200)]
Fix regression introduced by https://gitlab.freedesktop.org/libnice/libnice/commit/da41258a21102f63ec5d5b2dc20d303f772eb195. Fix #64.

5 years agoconncheck: Don't lookup prflx pair for UDP candidates
Jakub Adam [Wed, 29 May 2019 18:10:40 +0000 (20:10 +0200)]
conncheck: Don't lookup prflx pair for UDP candidates

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.

5 years agomeson: Fix build with MSVC and non-English locale
Seungha Yang [Mon, 20 May 2019 15:22:36 +0000 (00:22 +0900)]
meson: Fix build with MSVC and non-English locale

Otherwise, MSVC will complain and cause build error.

5 years agoDeploy documentation
Olivier Crête [Fri, 10 May 2019 05:23:39 +0000 (01:23 -0400)]
Deploy documentation

5 years agoVersion 0.1.16.1
Olivier Crête [Thu, 9 May 2019 18:01:07 +0000 (14:01 -0400)]
Version 0.1.16.1

5 years agoVersion 0.1.16 0.1.16
Olivier Crête [Thu, 9 May 2019 17:18:13 +0000 (13:18 -0400)]
Version 0.1.16

5 years agogst: Fix URI in plugin
Olivier Crête [Thu, 9 May 2019 16:44:45 +0000 (12:44 -0400)]
gst: Fix URI in plugin

5 years agoagent: Replace closed signal with GASyncResult type function
Olivier Crête [Wed, 8 May 2019 20:40:10 +0000 (16:40 -0400)]
agent: Replace closed signal with GASyncResult type function

This makes the API more GIO style

5 years agoagent: add nice_agent_close_async() API
Jakub Adam [Mon, 25 Feb 2019 10:30:10 +0000 (11:30 +0100)]
agent: add nice_agent_close_async() API

Asynchronously closes resources the agent has allocated on remote
servers.

5 years agoagent: Add "closed" signal
Jakub Adam [Mon, 25 Feb 2019 10:23:22 +0000 (11:23 +0100)]
agent: Add "closed" signal

5 years agodiscovery: Asynchronous removal of TURN refreshes
Jakub Adam [Tue, 19 Feb 2019 10:24:06 +0000 (11:24 +0100)]
discovery: Asynchronous removal of TURN refreshes

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.

5 years agocomponent: Refactor nice_component_clean_turn_servers()
Jakub Adam [Thu, 21 Feb 2019 14:54:06 +0000 (15:54 +0100)]
component: Refactor nice_component_clean_turn_servers()

First collect the relay candidates, then dispose them in a loop.

5 years agodiscovery: Remove unused refresh_prune_socket()
Jakub Adam [Wed, 20 Feb 2019 15:18:54 +0000 (16:18 +0100)]
discovery: Remove unused refresh_prune_socket()

5 years agoagent: G_GNUC_FALLTHROUGH macro for compatibility with older glib
Jakub Adam [Tue, 19 Feb 2019 10:21:07 +0000 (11:21 +0100)]
agent: G_GNUC_FALLTHROUGH macro for compatibility with older glib

5 years agoconncheck: NOMINATION STUN attribute support
Andrey Skryabin [Tue, 6 Nov 2018 12:34:10 +0000 (15:34 +0300)]
conncheck: NOMINATION STUN attribute support

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

5 years agoAdded OPENSSL_LDFLAGS
illya_dudchenko [Fri, 5 Apr 2019 10:07:17 +0000 (12:07 +0200)]
Added OPENSSL_LDFLAGS

5 years agoReplaced OPENSSL_CFLAGS with OPENSSL_INCLUDES
illya_dudchenko [Fri, 5 Apr 2019 09:44:29 +0000 (11:44 +0200)]
Replaced OPENSSL_CFLAGS with OPENSSL_INCLUDES

5 years agocomponent: Fix use-after-free
Jakub Adam [Wed, 6 Mar 2019 10:31:13 +0000 (11:31 +0100)]
component: Fix use-after-free

conn_check_prune_socket() was trying to access deleted NiceCandidate
instance. Prune the socket before removing the candidate.

Closes #73

5 years agotest-new-trickle: remove superfluous expression
Jakub Adam [Tue, 12 Feb 2019 14:30:22 +0000 (15:30 +0100)]
test-new-trickle: remove superfluous expression

5 years agotests: enable "trickle-ice" mode
Jakub Adam [Mon, 11 Feb 2019 16:20:01 +0000 (17:20 +0100)]
tests: enable "trickle-ice" mode

Call nice_agent_peer_candidate_gathering_done () where appropriate.

5 years agotest-new-trickle: prevent deadlock in dgram_process()
Jakub Adam [Tue, 12 Feb 2019 13:47:28 +0000 (14:47 +0100)]
test-new-trickle: prevent deadlock in dgram_process()

The STUN thread may be blocked waiting for stun_signal_ptr so signal it
when stopping the thread.

5 years agotests: rename test-dribble to test-trickle
Jakub Adam [Mon, 11 Feb 2019 12:15:39 +0000 (13:15 +0100)]
tests: rename test-dribble to test-trickle

5 years agoagent: trickle ICE mode
Jakub Adam [Wed, 9 Jan 2019 09:29:17 +0000 (10:29 +0100)]
agent: trickle ICE mode

In this mode, activated by setting "ice-trickle" property of a
NiceAgent to TRUE, a component without a successful connectivity check
will wait indefinitely for more remote candidates to come.

nice_agent_peer_candidate_gathering_done() must be called after
receiving the last remote candidate for the component to finally change
its state to NICE_COMPONENT_STATE_FAILED.

5 years agowin32: remove obsolete vs9 build files
Jakub Adam [Mon, 11 Feb 2019 12:16:57 +0000 (13:16 +0100)]
win32: remove obsolete vs9 build files

Windows users should just use Meson for building libnice.

5 years agolibnice.sym: export nice_agent_new_full
Jakub Adam [Wed, 16 Jan 2019 09:50:52 +0000 (10:50 +0100)]
libnice.sym: export nice_agent_new_full

Forgotten to add in 0.1.15 release?

5 years agotest-send-recv: Fix occasional timeouts
Jakub Adam [Tue, 5 Mar 2019 17:05:56 +0000 (18:05 +0100)]
test-send-recv: Fix occasional timeouts

While waiting for write thread to finish sending, keep also receiving so
that any STUN messages from the peer still get processed.

5 years agostun: Fix LibreSSL support
Stefan Strogin [Fri, 15 Feb 2019 18:45:34 +0000 (20:45 +0200)]
stun: Fix LibreSSL support

Closes #71

5 years agoagent: don't print TURN password unless the logging is verbose
Jakub Adam [Mon, 11 Feb 2019 16:22:58 +0000 (17:22 +0100)]
agent: don't print TURN password unless the logging is verbose

Limits accidental leakage of secret information.

5 years agostunbdc: initialize Winsock API when on Windows
Jakub Adam [Mon, 11 Feb 2019 12:26:47 +0000 (13:26 +0100)]
stunbdc: initialize Winsock API when on Windows

5 years agoturn: Allow lifetimes under 60s
Olivier Crête [Tue, 22 Jan 2019 22:57:34 +0000 (17:57 -0500)]
turn: Allow lifetimes under 60s

Don't set a timeout to the very far future if the lifetime sent  by the
server is under 60s. Instead of doing "lifetime - 60", switch to lifetime/2.

5 years agocomponent_io_cb: Avoid potential deadlock
Jakub Adam [Mon, 28 Jan 2019 13:17:18 +0000 (14:17 +0100)]
component_io_cb: Avoid potential deadlock

Don't unref NiceAgent while holding agent mutex. If it's the last
reference, nice_agent_dispose() will try to acquire the mutex again and
deadlock.

5 years agotest-fullmode: Make test non-racy too
Olivier Crête [Mon, 28 Jan 2019 22:18:42 +0000 (17:18 -0500)]
test-fullmode: Make test non-racy too

5 years agotest-drop-invalid: Fix raciness
Olivier Crête [Mon, 28 Jan 2019 22:07:12 +0000 (17:07 -0500)]
test-drop-invalid: Fix raciness

5 years agogitlab-ci: Move docker images to main libnice repo
Olivier Crête [Thu, 24 Jan 2019 00:22:42 +0000 (19:22 -0500)]
gitlab-ci: Move docker images to main libnice repo

5 years agomeson: Require very latest 0.49.1 as older versions break in our CI
Olivier Crête [Thu, 24 Jan 2019 00:12:54 +0000 (19:12 -0500)]
meson: Require very latest 0.49.1 as older versions break in our CI

Also remove workarounds for the older versions.

5 years agogitlab-ci: Work around meson bug for non-POSIX utf-8 characters
Olivier Crête [Fri, 4 Jan 2019 13:56:02 +0000 (08:56 -0500)]
gitlab-ci: Work around meson bug for non-POSIX utf-8 characters

5 years agogitlab-ci: remove username for now because meson craps out on accents
Olivier Crête [Fri, 4 Jan 2019 03:02:32 +0000 (22:02 -0500)]
gitlab-ci: remove username for now because meson craps out on accents

5 years agogitlab ci: Use new CentOS 7 dockerfile based containers everywhere
Olivier Crête [Fri, 4 Jan 2019 00:06:28 +0000 (19:06 -0500)]
gitlab ci: Use new CentOS 7 dockerfile based containers everywhere

5 years agotests: Add Dockerfiles
Olivier Crête [Thu, 3 Jan 2019 23:40:28 +0000 (18:40 -0500)]
tests: Add Dockerfiles

5 years agoturn: Allow alternate server error with no valid credentials
Olivier Crête [Tue, 22 Jan 2019 23:46:55 +0000 (18:46 -0500)]
turn: Allow alternate server error with no valid credentials

coturn doesn't authenticate us before sending us to an alternate server.

5 years agostunagent: Replace more magic numbers with defines
Olivier Crête [Tue, 22 Jan 2019 23:17:39 +0000 (18:17 -0500)]
stunagent: Replace more magic numbers with defines

5 years agoturn: Replace magic numbers with define
Olivier Crête [Tue, 22 Jan 2019 23:15:28 +0000 (18:15 -0500)]
turn: Replace magic numbers with define

5 years agogitlab-ci: Add gtkdoc-check log to build artifacts
Jakub Adam [Wed, 16 Jan 2019 13:51:58 +0000 (14:51 +0100)]
gitlab-ci: Add gtkdoc-check log to build artifacts

5 years agomeson: install .pc file for static gstreamer plugin
Tim-Philipp Müller [Tue, 15 Jan 2019 12:26:57 +0000 (12:26 +0000)]
meson: install .pc file for static gstreamer plugin

5 years agogitlab-ci: Use compiler warning level 2 in Meson build
Jakub Adam [Mon, 7 Jan 2019 09:36:14 +0000 (10:36 +0100)]
gitlab-ci: Use compiler warning level 2 in Meson build

5 years agotests: Fix -Wcast-function-type warnings with GCC 8
Jakub Adam [Mon, 7 Jan 2019 09:31:25 +0000 (10:31 +0100)]
tests: Fix -Wcast-function-type warnings with GCC 8

glib documentation says G_SOURCE_FUNC() macro should be used to suppress
the warning about incompatible function types when the function will be
cast back to the correct type before it is called by the GSource.

5 years agotests: Disable UPnP
Jakub Adam [Mon, 14 Jan 2019 09:24:12 +0000 (10:24 +0100)]
tests: Disable UPnP

An application using more than one NiceAgent instance may crash due to
a race in gUPnP.

Fix is to be released in gUPnP 1.1.2 / 1.0.4:

https://gitlab.gnome.org/GNOME/gupnp/commit/0123e574595e0a547ce26422633df72d63d3d0e0

5 years agomeson: unify exported symbol versions with autotools
Jakub Adam [Mon, 14 Jan 2019 11:44:41 +0000 (12:44 +0100)]
meson: unify exported symbol versions with autotools

libnice.so created by autotools has its symbols bound to the default
'Base' version node, whereas Meson build arbitrarily introduced a
version node named 'libnice'. This breaks tools like dpkg-gensymbols
that track changes in exported symbols through several releases of the
library.

Remove 'libnice' version and revert back to using unspecified version.

5 years agoagent: Fix spelling
Jakub Adam [Mon, 14 Jan 2019 18:03:38 +0000 (19:03 +0100)]
agent: Fix spelling

Errors reported by lintian -EvIL -pedantic.

5 years agoudp-turn: Avoid potential integer overflow
Jakub Adam [Thu, 3 Jan 2019 20:26:41 +0000 (21:26 +0100)]
udp-turn: Avoid potential integer overflow

5 years agoudp-turn: Fix unaligned memory access on ARM
Jakub Adam [Thu, 3 Jan 2019 08:50:25 +0000 (09:50 +0100)]
udp-turn: Fix unaligned memory access on ARM

5 years agogitlab-ci: Build gtk-doc and test install with meson
Olivier Crête [Fri, 4 Jan 2019 00:13:15 +0000 (19:13 -0500)]
gitlab-ci: Build gtk-doc and test install with meson

5 years agogitlab-ci: Split make distcheck into a separate build
Olivier Crête [Thu, 3 Jan 2019 23:30:29 +0000 (18:30 -0500)]
gitlab-ci: Split make distcheck into a separate build

5 years agogitlab-ci: Run autotools tests in CI too
Olivier Crête [Thu, 3 Jan 2019 21:16:57 +0000 (16:16 -0500)]
gitlab-ci: Run autotools tests in CI too

5 years agogitlab-ci: Add meson tests to build
Olivier Crête [Thu, 3 Jan 2019 20:21:33 +0000 (15:21 -0500)]
gitlab-ci: Add meson tests to build

5 years agogitlab-ci: Skip meson build on schedules
Olivier Crête [Thu, 3 Jan 2019 20:21:23 +0000 (15:21 -0500)]
gitlab-ci: Skip meson build on schedules

5 years agotest-tcp: Use IPv4 instead of IPv6
Olivier Crête [Thu, 3 Jan 2019 20:12:21 +0000 (15:12 -0500)]
test-tcp: Use IPv4 instead of IPv6

This is because Docker doesn't have IPv6 by default.

5 years agotests/test-different-number-streams: Make it work with only localhost
Olivier Crête [Thu, 3 Jan 2019 19:58:44 +0000 (14:58 -0500)]
tests/test-different-number-streams: Make it work with only localhost

5 years agomeson: fix test-gstreamer
Jan Tojnar [Thu, 3 Jan 2019 13:16:47 +0000 (14:16 +0100)]
meson: fix test-gstreamer

On Nix, test-gstreamer fails with

36/38 test-gstreamer                          FAIL     0.07 s (exit status 1)

--- command ---
BUILT_WITH_MESON='1' /build/libnice/build/tests/nice-test-gstreamer
--- stdout ---
Running suite(s): nice_gstreamer_test
0%: Checks: 1, Failures: 1, Errors: 0
../libs/gst/check/gstcheck.c:466:F:nice:buffer_list_test:0: Could not create a 'nicesink' element
Check suite udpsink ran in 0.002s (tests failed: 1)
-------

Let’s add the build directory to GST_PLUGIN_SYSTEM_PATH_1_0, so that
the test can find the built GStreamer element.

5 years agomeson: Fix DLL search path during test execution on Windows
Jakub Adam [Wed, 2 Jan 2019 11:55:02 +0000 (12:55 +0100)]
meson: Fix DLL search path during test execution on Windows

Meson needs to see all libraries a target depends on so that it can add
each to PATH when running "meson test".

Avoids "*.dll was not found" errors.

5 years agomeson: Add fallback for openssl
Jakub Adam [Wed, 2 Jan 2019 11:53:56 +0000 (12:53 +0100)]
meson: Add fallback for openssl

5 years agoVersion 0.1.15.1
Olivier Crête [Thu, 27 Dec 2018 22:54:17 +0000 (16:54 -0600)]
Version 0.1.15.1

5 years agoVersion 0.1.15 0.1.15
Olivier Crête [Thu, 27 Dec 2018 21:23:09 +0000 (15:23 -0600)]
Version 0.1.15

5 years agoMakefiles: Add meson.build files to tarball
Olivier Crête [Thu, 27 Dec 2018 22:46:19 +0000 (16:46 -0600)]
Makefiles: Add meson.build files to tarball

5 years agoAdd more files to .gitignore
Olivier Crête [Thu, 27 Dec 2018 22:32:01 +0000 (16:32 -0600)]
Add more files to .gitignore

5 years agoFix little bugs found by clang-analyzer
Olivier Crête [Thu, 27 Dec 2018 22:25:28 +0000 (16:25 -0600)]
Fix little bugs found by clang-analyzer

5 years agodocs: Add _get_type() symbols to hidden section
Olivier Crête [Thu, 27 Dec 2018 21:47:49 +0000 (15:47 -0600)]
docs: Add _get_type() symbols to hidden section

5 years agomeson.build: Sync libversion with libtool
Olivier Crête [Thu, 27 Dec 2018 21:08:32 +0000 (15:08 -0600)]
meson.build: Sync libversion with libtool

5 years agonice/test-symbols.sh: Make symbols test work from other path too
Olivier Crête [Thu, 27 Dec 2018 20:56:38 +0000 (14:56 -0600)]
nice/test-symbols.sh: Make symbols test work from other path too

5 years agoMakefile.am: Export *_get_type() symbols like meson does
Olivier Crête [Thu, 27 Dec 2018 20:55:08 +0000 (14:55 -0600)]
Makefile.am: Export *_get_type() symbols like meson does

5 years agoconncheck.c: Fix negotiation problem
Jose Antonio Santos Cadenas [Fri, 29 Jan 2016 18:04:54 +0000 (19:04 +0100)]
conncheck.c: Fix negotiation problem

When a peer reflexive candidate is discovered, it is added to the
list of connection checks, but is is not nominated by default.

This causes a problem if parent pair is already nominated and
the remote peer does not send more requests because it has already
selected a candidate. (i.e.: This is the case of WebRtc in Firefox)

5 years agoagent: Check for early checks on dribbled candidates too
Olivier Crête [Sat, 17 Nov 2018 00:02:01 +0000 (19:02 -0500)]
agent: Check for early checks on dribbled candidates too

We have to check this list every time candidates are added.

5 years agoconncheck: Don't free all incoming checks on credentials
Olivier Crête [Fri, 16 Nov 2018 23:56:04 +0000 (18:56 -0500)]
conncheck: Don't free all incoming checks on credentials

Candidates could also be dribbled.

5 years agocomponent: Make incoming_checks into a GQueue
Olivier Crête [Fri, 16 Nov 2018 23:51:32 +0000 (18:51 -0500)]
component: Make incoming_checks into a GQueue

We check the size regularly, so add a little efficiency.

5 years agomeson: Allow building of g-i with static libs.
Tim-Philipp Müller [Fri, 14 Dec 2018 16:44:43 +0000 (16:44 +0000)]
meson: Allow building of g-i with static libs.

Allow building of g-i with static libs which should
work since Meson 0.49 and sufficiently recent
gobject-introspection (>= 1.58.1). If g-i is too
old people will get a suitable error message and
can disable g-i via build options.

5 years agomeson: Fix pkg-config generation with internal dependencies
Jakub Adam [Tue, 18 Dec 2018 13:11:04 +0000 (14:11 +0100)]
meson: Fix pkg-config generation with internal dependencies

Prevents Meson error:

ERROR:  requires argument not a string, library with pkgconfig-generated
file or pkgconfig-dependency object, got <InternalDependency null: True>

Requires Meson 0.49.

5 years agomeson: Fix build with fallback glib
Jakub Adam [Mon, 17 Dec 2018 12:03:24 +0000 (13:03 +0100)]
meson: Fix build with fallback glib

When building libnice with glib fallback, its 'libgio_dep' internal
dependency doesn't provide all needed include and library search paths.

To avoid unresolved header files and linker errors in such case,
'libglib_dep', 'libmodule_dep' and 'libgobject_dep' from glib submodule
must be pulled in as well.

The problem should be fixed in GLib 2.60.

5 years agoagent: Fix use of freed stream in nice_agent_dispose()
Jakub Adam [Fri, 21 Dec 2018 18:05:17 +0000 (19:05 +0100)]
agent: Fix use of freed stream in nice_agent_dispose()

nice_stream_close() calls agent_find_stream(), which iterates over
agent->streams list.

Therefore, when we're freeing agent->streams in a loop, we must also
delete the respective GSList item from the list at the end of each
iteration. Otherwise agent_find_stream() would stumble over already
deleted NiceStream instance the next time it gets called.

Fixes random crashes when running test-different-number-streams on
Windows.

5 years agomeson ci: Add logs to artifacts
Olivier Crête [Tue, 18 Dec 2018 21:38:35 +0000 (16:38 -0500)]
meson ci: Add logs to artifacts

5 years agopseudotcp: Rename state enums to not clash with system ones
Olivier Crête [Tue, 18 Dec 2018 20:50:56 +0000 (15:50 -0500)]
pseudotcp: Rename state enums to not clash with system ones

5 years agotests: Initialize Windows Sockets where needed
Jakub Adam [Tue, 18 Dec 2018 10:27:46 +0000 (11:27 +0100)]
tests: Initialize Windows Sockets where needed

Fixes failing test cases on Windows.

5 years agoudp-bsd: Fix recv with small buffer on Windows
Jakub Adam [Tue, 18 Dec 2018 09:36:53 +0000 (10:36 +0100)]
udp-bsd: Fix recv with small buffer on Windows

The underlying GSocket implementation on Windows returns an error when
the user-provided buffer isn't large enough to fit the whole datagram
received on a message-oriented socket.

When this occurs, in order to preserve identical behavior of udp-bsd
NiceSocket across platforms, we have to mute the error and set the
received message length to the size of the provided NiceInputMessage.
Any excess portion of the message gets discarded.

Fixed udp-bsd test on Windows.

GLib 2.48 is required in order to use G_IO_ERROR_MESSAGE_TOO_LARGE.

5 years agoagent: Expose input_message_get_size() in agent-priv.h
Jakub Adam [Tue, 18 Dec 2018 09:35:15 +0000 (10:35 +0100)]
agent: Expose input_message_get_size() in agent-priv.h

5 years agolibnice.sym: add some generated get_type functions and fix gtk-doc build
Tim-Philipp Müller [Tue, 18 Dec 2018 14:43:08 +0000 (14:43 +0000)]
libnice.sym: add some generated get_type functions and fix gtk-doc build

https://gitlab.freedesktop.org/gstreamer/gst-build/issues/14

5 years agomeson: tests: make fullmode-with-stun non-parallel and disable fuzzing test
Tim-Philipp Müller [Fri, 14 Dec 2018 20:22:29 +0000 (20:22 +0000)]
meson: tests: make fullmode-with-stun non-parallel and disable fuzzing test

test-fullmode-with-stun needs to run in non-parallel mode to work.

test-pseudotcp-fuzzy sometimes just times out, which needs investigating.

meson test -C builddir --repeat=20

5 years agowindows: use proper fallback for ssize_t and use stdint.h for types
Tim-Philipp Müller [Fri, 14 Dec 2018 17:09:58 +0000 (17:09 +0000)]
windows: use proper fallback for ssize_t and use stdint.h for types

stdint.h is available since vs2010 and stdbool.h since vs2013,
so we should be able to just use that these days.

5 years agoFix build with MSVC
Nirbheek Chauhan [Fri, 23 Nov 2018 03:52:12 +0000 (09:22 +0530)]
Fix build with MSVC

Tested inside Cerbero with VS 2017