| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
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
|
|
|
|
|
| |
Asynchronously closes resources the agent has allocated on remote
servers.
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
| |
Forgotten to add in 0.1.15 release?
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
https://gitlab.freedesktop.org/gstreamer/gst-build/issues/14
|
|
|
|
| |
Tested inside Cerbero with VS 2017
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
Add a function that can check if two candidates point to the same place.
https://phabricator.freedesktop.org/T104
Reviewed-by: Philip Withnall <philip.withnall@collabora.co.uk>
Differential Revision: https://phabricator.freedesktop.org/D1715
|
|
|
|
|
|
|
| |
GLib already uses it, instead of adding another dep.
Reviewed-by: Philip Withnall <philip.withnall@collabora.co.uk>
Differential Revision: https://phabricator.freedesktop.org/D1705
|
|
|
|
|
|
| |
This will shortly be used to implement secure random number generation.
Differential Revision: https://phabricator.freedesktop.org/D1609
|
| |
|
|
|
|
| |
Adds new API: nice_agent_set_local_credentials().
|
| |
|
|
|
|
|
|
| |
It doesn't make sense to tell applications to include <agent.h>,
including <nice/agent.h> is much safer. So tell the applications
to use the includedir directly.
|
|
|
|
|
|
|
| |
It might be useful for dependent packages to check whether libnice was
compiled with UPnP support, so expose that as a variable in the
pkg-config file, set to ‘true’ if supported, and the empty string
otherwise.
|
|
|
|
|
|
| |
The requirements in the pkg-config file were outdated and incomplete. It
makes a lot more sense to automatically substitute them in from the
checks in configure.ac.
|
| |
|
| |
|
| |
|
|
|
|
| |
Nice to make debug logs more friendly to read.
|
|
|
|
|
| |
Also made the GIOStream into a singleton, it always returns the same one.
Also make it impossible to create a GIOStream for a non-existing stream/component
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add one new public function, nice_agent_send_messages_nonblocking(),
which replaces nice_agent_send_full(). This isn’t an API break, because
nice_agent_send_full() hasn’t been in a release yet. The new API allows
sending multiple messages in a single call, and supports vectors of
buffers to transmit the messages from.
The existing nice_agent_send() API has been left untouched, although
it’s a bit of a bugbear because it’s non-blocking and doesn’t fit with
the new *_nonblocking() naming scheme. Oh well.
This doesn’t bring any notable changes to the number of memcpy()s on the
critical path: it remains at zero for the common cases and common socket
types. It introduces the possibility for future work to eliminate some
memcpy()s in more complex socket types, like tcp-turn and tcp-bsd, but
these optimisations have not been made yet. FIXME comments have been
added.
This includes modifications to the test-send-recv unit test to cover the
new API.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add two new public functions:
• nice_agent_recv_messages()
• nice_agent_recv_messages_nonblocking()
which allow receiving multiple messages in a single call, and support
vectors of buffers to receive the messages into.
The existing nice_agent_recv[_nonblocking]() APIs have been left
untouched.
This tidies up a lot of the message handling code internally, and
eliminates a couple of memcpy()s. There are still a few more memcpy()s
on the critical path, which could be eliminated with further work.
In the reliable agent case, every message is memcpy()ed twice: once into
the pseudo-TCP receive buffer, and once out of it. The copy on input
could be eliminated (in the case of in-order delivery of packets) by
receiving directly into the receive buffer. The copy on output can’t be
eliminated except in the I/O callback case (when
nice_agent_attach_recv() has been used), in which case the callback
could be invoked with a pointer directly into the pseudo-TCP receive
buffer.
In the non-reliable agent case, zero memcpy()s are used.
A couple of the more complex socket implementations (TURN and HTTP) have
slow paths during setup, and partially also during normal use. These
could be optimised further, and FIXME comments have been added.
|
| |
|
|
|
|
|
|
|
|
|
| |
This is a non-blocking variant of nice_agent_recv(), and will be used
internally by the GPollableInputStream implementation. External
implementations may use it as well.
It reserves the right to iterate the main context, but doesn’t currently
do so.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds three new classes:
• NiceIOStream
• NiceInputStream
• NiceOutputStream
which allow wrapping a single stream/component pair in an I/O stream
which can be used with the standard GIO functions.
The streams are constructed as wrappers around a NiceAgent, with changes
to the NiceAgent’s properties affecting all instantiated streams.
Streams are only supported for reliable connections.
If the NiceAgent stream which underlies a NiceInputStream,
NiceOutputStream or NiceIOStream is removed, the I/O stream is marked as
closed.
This is based on work originally done by Youness Alaoui
<youness.alaoui@collabora.co.uk>.
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds GError and GCancellable parameters to the existing
nice_agent_send() API, and is identical in all other respects (notably,
it is non-blocking).
The GCancellable is currently unused, but could be used in future if the
API grows to support blocking writes.
The GError is used to return more interesting error codes than just
‘-1’.
|
|
|
|
|
|
|
|
| |
This is a blocking receive function, designed to be called from a worker
thread. It cannot be used in conjunction with the existing
nice_agent_attach_recv() API, as the blocking receive and the GSource
would compete over access to the single copy of the data in the kernel’s
receive buffer.
|
|
|
|
| |
Older compilers don't understand all of the flags
|
|
|
|
| |
This should be used only when the protocol has it's own keepalive mechanism
|
|
|
|
|
|
|
| |
They’re private dependencies which are needed on the linker command line when
linking statically against libnice.
https://bugs.freedesktop.org/show_bug.cgi?id=70965
|
| |
|
|
|
|
|
| |
This adds nice_agent_set_stream_name, nice_agent_get_stream_name,
nice_agent_generate_local_sdp, nice_agent_parse_remote_sdp.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|