summaryrefslogtreecommitdiff
path: root/nice
Commit message (Collapse)AuthorAgeFilesLines
* agent: add nice_agent_get_sockets APIOlivier Crête2019-07-021-0/+1
| | | | | | | 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
* agent: add nice_agent_close_async() APIJakub Adam2019-05-091-0/+1
| | | | | Asynchronously closes resources the agent has allocated on remote servers.
* agent: trickle ICE modeJakub Adam2019-03-081-0/+1
| | | | | | | | | 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.
* libnice.sym: export nice_agent_new_fullJakub Adam2019-03-081-0/+1
| | | Forgotten to add in 0.1.15 release?
* meson: unify exported symbol versions with autotoolsJakub Adam2019-01-141-5/+2
| | | | | | | | | | 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: Fix DLL search path during test execution on WindowsJakub Adam2019-01-021-1/+2
| | | | | | | 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.
* Makefiles: Add meson.build files to tarballOlivier Crête2018-12-271-1/+3
|
* nice/test-symbols.sh: Make symbols test work from other path tooOlivier Crête2018-12-271-1/+1
|
* meson: Allow building of g-i with static libs.Tim-Philipp Müller2018-12-231-1/+1
| | | | | | | | 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.
* meson: Fix pkg-config generation with internal dependenciesJakub Adam2018-12-211-3/+1
| | | | | | | | | 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.
* meson: Fix build with fallback glibJakub Adam2018-12-211-1/+1
| | | | | | | | | | | 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.
* libnice.sym: add some generated get_type functions and fix gtk-doc buildTim-Philipp Müller2018-12-181-0/+13
| | | | https://gitlab.freedesktop.org/gstreamer/gst-build/issues/14
* Fix build with MSVCNirbheek Chauhan2018-12-141-1/+3
| | | | Tested inside Cerbero with VS 2017
* meson: disable introspection if g-ir-scanner is not foundVíctor Manuel Jáquez Leal2018-12-141-1/+1
|
* meson: allow selecting crypto library manually via an optionTim-Philipp Müller2018-12-141-1/+1
|
* Add support for Meson build systemTim-Philipp Müller2018-12-144-0/+114
|
* candidate: Add equality check functionOlivier Crête2017-04-111-0/+1
| | | | | | | | | 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
* stun: Switch from gcrypt to gnutlsOlivier Crête2017-04-031-1/+0
| | | | | | | 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
* stun: Add libgcrypt dependencyPhilip Withnall2017-03-311-0/+1
| | | | | | This will shortly be used to implement secure random number generation. Differential Revision: https://phabricator.freedesktop.org/D1609
* pseudotcp: Export more symbols for PseudoTCPOlivier Crête2016-06-031-0/+4
|
* agent: Add API to set local credentialsRohan Garg2015-04-141-0/+1
| | | | Adds new API: nice_agent_set_local_credentials().
* agent: Add function to retrieve the current component stateOlivier Crête2014-10-091-0/+1
|
* nice.pc: Include ${includedir} directlyOlivier Crête2014-10-081-1/+1
| | | | | | 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.
* nice: Expose UPnP support in nice.pc.inPhilip Withnall2014-07-071-0/+1
| | | | | | | 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.
* nice: Auto-substitute pkg-config requirements in nice.pc.inPhilip Withnall2014-07-071-5/+4
| | | | | | 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.
* address: add nice_address_equal_no_port() to compare addresses ignoring portsOlivier Crête2014-05-171-0/+1
|
* add nice_agent_forget_relays()Guillaume Desmottes2014-04-241-0/+1
|
* agent: Add nice_agent_restart_stream() to restart a single streamOlivier Crête2014-04-241-0/+1
|
* add nice_component_state_to_string()Guillaume Desmottes2014-04-231-0/+1
| | | | Nice to make debug logs more friendly to read.
* agent: Replace nice_agent_build_io_stream() with nice_agent_get_io_stream()Olivier Crête2014-01-311-1/+1
| | | | | 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
* agent: Add support for vectored I/O for sendsPhilip Withnall2014-01-311-1/+1
| | | | | | | | | | | | | | | | | | | | | | 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.
* agent: Add support for vectored I/O for receivesPhilip Withnall2014-01-311-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* nice: Add nice_agent_build_io_stream to exported symbolsOlivier Crête2014-01-311-0/+1
|
* agent: Add a nice_agent_recv_nonblocking() functionPhilip Withnall2014-01-311-0/+1
| | | | | | | | | 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.
* agent: Add support for GIO-style I/O streamsPhilip Withnall2014-01-311-0/+3
| | | | | | | | | | | | | | | | | | | | 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>.
* agent: Add a nice_agent_send_full() API exposing error informationPhilip Withnall2014-01-311-0/+1
| | | | | | | | | | | | 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’.
* agent: Add nice_agent_recv() allowing blocking receives on socketsPhilip Withnall2014-01-311-0/+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.
* configure: Verify that the compiler understands warning cflagsOlivier Crête2013-12-261-1/+1
| | | | Older compilers don't understand all of the flags
* agent: Add API to retrieve the selected GSocketBryce Allen2013-11-201-0/+1
| | | | This should be used only when the protocol has it's own keepalive mechanism
* build: Add GUPnP libraries to Libs.private in pkg-config filePhilip Withnall2013-10-291-0/+1
| | | | | | | 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
* Add new parsing API, for stream and candidatesYouness Alaoui2013-02-051-0/+5
|
* Adding new SDP parsing and generation API.Youness Alaoui2013-02-041-0/+4
| | | | | This adds nice_agent_set_stream_name, nice_agent_get_stream_name, nice_agent_generate_local_sdp, nice_agent_parse_remote_sdp.
* Add nice_agent_get_selected_pair API to NiceAgentYouness Alaoui2013-02-011-0/+1
|
* Add nice_address_ip_version API to NiceAddressYouness Alaoui2013-02-011-0/+1
|
* Add nice_agent_set_port_range to the list of exported API functionsYouness Alaoui2012-12-031-0/+1
|
* Use only POSIX statements in nice/Makefile.amTimothy Redaelli2011-10-131-5/+5
|
* Fix check-symbols test for PPC64David Woodhouse2011-08-151-3/+10
|
* Use only POSIX statements in Makefile.amTimothy Redaelli2011-03-311-2/+2
|
* Add nice_candidate_copy to the public APIYouness Alaoui2010-08-231-0/+1
|
* Adding pseudotcp API to the exported symbol listYouness Alaoui2010-02-161-0/+11
|