1. 27 Dec, 2018 1 commit
  2. 23 Dec, 2018 1 commit
    • Tim-Philipp Müller's avatar
      meson: Allow building of g-i with static libs. · 94a78215
      Tim-Philipp Müller authored
      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.
      94a78215
  3. 21 Dec, 2018 2 commits
    • Jakub Adam's avatar
      meson: Fix pkg-config generation with internal dependencies · ff75be1b
      Jakub Adam authored
      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.
      ff75be1b
    • Jakub Adam's avatar
      meson: Fix build with fallback glib · 17272759
      Jakub Adam authored
      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.
      17272759
  4. 18 Dec, 2018 1 commit
  5. 14 Dec, 2018 4 commits
  6. 11 Apr, 2017 1 commit
  7. 03 Apr, 2017 1 commit
  8. 31 Mar, 2017 1 commit
  9. 03 Jun, 2016 1 commit
  10. 14 Apr, 2015 1 commit
  11. 09 Oct, 2014 1 commit
  12. 08 Oct, 2014 1 commit
  13. 07 Jul, 2014 2 commits
  14. 17 May, 2014 1 commit
  15. 25 Apr, 2014 2 commits
  16. 23 Apr, 2014 1 commit
  17. 31 Jan, 2014 8 commits
    • Olivier Crête's avatar
      agent: Replace nice_agent_build_io_stream() with nice_agent_get_io_stream() · 430e8db5
      Olivier Crête authored
      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
      430e8db5
    • Philip Withnall's avatar
      agent: Add support for vectored I/O for sends · f7b15f14
      Philip Withnall authored
      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.
      f7b15f14
    • Philip Withnall's avatar
      agent: Add support for vectored I/O for receives · 253be348
      Philip Withnall authored
      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.
      253be348
    • Olivier Crête's avatar
    • Philip Withnall's avatar
      agent: Add a nice_agent_recv_nonblocking() function · 6d3a32a0
      Philip Withnall authored
      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.
      6d3a32a0
    • Philip Withnall's avatar
      agent: Add support for GIO-style I/O streams · 949f979a
      Philip Withnall authored
      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>.
      949f979a
    • Philip Withnall's avatar
      agent: Add a nice_agent_send_full() API exposing error information · 5d63de5a
      Philip Withnall authored
      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’.
      5d63de5a
    • Philip Withnall's avatar
      agent: Add nice_agent_recv() allowing blocking receives on sockets · 243c47ec
      Philip Withnall authored
      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.
      243c47ec
  18. 27 Dec, 2013 1 commit
  19. 20 Nov, 2013 1 commit
  20. 29 Oct, 2013 1 commit
  21. 05 Feb, 2013 2 commits
  22. 02 Feb, 2013 2 commits
  23. 03 Dec, 2012 1 commit
  24. 13 Oct, 2011 1 commit
  25. 15 Aug, 2011 1 commit