summaryrefslogtreecommitdiff
path: root/docs
Commit message (Collapse)AuthorAgeFilesLines
* agent: Add API to set local credentialsRohan Garg2015-04-141-0/+1
| | | | Adds new API: nice_agent_set_local_credentials().
* docs: Enable documentation checks during `make check` by defaultPhilip Withnall2015-01-021-3/+4
| | | | Now that they pass, we should endeavour to ensure they continue to pass.
* docs: Add 0.1.8 API to the documentation indexPhilip Withnall2015-01-021-0/+4
| | | | This should have been included before. This fixes `make check` in docs/.
* docs: Add various missing documentation comments and update sections.txtPhilip Withnall2015-01-021-0/+8
| | | | | This straightens out the last few bits of the documentation and almost allows `make check` to pass in docs/.
* docs: Inform gtk-doc of the libnice namespacePhilip Withnall2015-01-021-1/+1
| | | | This allows it to order the index a little better.
* docs: Switch from gtk-doc SGML mode to XML modePhilip Withnall2015-01-022-2/+2
| | | | | We already used XML everywhere; just formally switch to XML mode and eliminate the last few traces of SGML.
* docs: Ignore some undocumentable/non-public APIPhilip Withnall2014-08-211-1/+2
|
* pseudotcp: Add pseudo_tcp_socket_shutdown() supportPhilip Withnall2014-08-211-0/+2
| | | | | This is analogous to the UNIX shutdown() function, allowing either or both sides of a pseudo-TCP connection to be shut down.
* pseudotcp: Add optional FIN–ACK and RST supportPhilip Withnall2014-08-211-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In order to detect cases where the peer closes its connection without an explicit in-band close message (e.g. in protocols such as Telnet where there is none), pseudo-TCP needs to grow support for a shutdown handshake, following the TCP FIN–ACK specification. Arguably it should have had this all along, but Jingle apparently doesn’t need it. This adds support for FIN–ACK to the pseudo-TCP implementation. It is backwards-compatible, only being used if the TCP_OPT_FIN_ACK option is specified in the SYN segment. If enabled, full-duplex closes are supported, and the standard method for notifying a peer of the other end closing its connection (returning 0 from recv()) is used. Also allow rapidly tearing down a connection, discarding unsent and unreceived data, by sending an RST segment. This preserves the ability to do a forced socket closure with pseudo_tcp_socket_close(sock, TRUE). It also permits graceful socket shutdown in the case where the final ACK is lost, and one peer gets stuck in the LAST-ACK state: that peer will eventually re-transmit its FIN segment. The other peer, in the CLOSED state, will respond with a RST segment, and the first peer will then reach CLOSED. References (most useful first): • http://tools.ietf.org/html/rfc793#section-3.5 • http://tools.ietf.org/html/rfc1122#page-87 • http://vincent.bernat.im/en/blog/2014-tcp-time-wait-state-linux.html • http://tools.ietf.org/html/rfc675 Diagram: • http://en.wikipedia.org/wiki/Transmission_Control_Protocol#mediaviewer/File:TCP_CLOSE.svg
* pseudotcp: Allow the ‘current’ time to be setPhilip Withnall2014-08-211-0/+1
| | | | | | | | | | This is needed for the upcoming new test suite for pseudo-TCP. It shouldn’t be used in normal code — only in tests. Ideally, the pseudo-TCP code should originally never have called g_get_monotonic_time() itself, and should have always taken a time parameter from the caller; then it would be more testable. Unfortunately, API guarantees prevent this from being changed now.
* pseudotcp: Add pseudo_tcp_socket_is_closed()Philip Withnall2014-08-211-0/+1
| | | | New convenience API to check if the socket is in state TCP_CLOSED.
* docs: Remove some private symbols from the documentation sections filePhilip Withnall2014-07-071-5/+0
|
* address: add nice_address_equal_no_port() to compare addresses ignoring portsOlivier Crête2014-05-171-0/+1
|
* candidate: Add Boxed typeOlivier Crête2014-05-171-0/+9
|
* Version 0.1.60.1.6Olivier Crête2014-04-281-0/+4
|
* 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.
* Remove all traces of compile time marshallersOlivier Crête2014-04-011-1/+1
|
* doc: Update doc generationOlivier Crête2014-03-063-21/+109
|
* docs: Remove NiceIOStream, nothing specific to documentOlivier Crête2014-02-213-64/+6
|
* 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.
* socket: Add vectored I/O support for receiving on socketsPhilip Withnall2014-01-311-0/+1
| | | | | | | | | | | | Replace the recv() API with a recv_messages() API, which supports receiving multiple messages, each with multiple buffers rather than a single monolithic buffer. This doesn’t break API, as the socket API is not exposed outside libnice. It does introduce a new struct: NiceInputMessage, which is analogous to struct mmsghdr. This includes updates to the test-bsd test to cover the changed API.
* 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 nice_agent_build_io_stream() APIPhilip Withnall2014-01-311-0/+1
| | | | | This allows creation of a NiceIOStream from an existing NiceAgent instance.
* agent: Add support for GIO-style I/O streamsPhilip Withnall2014-01-313-3/+64
| | | | | | | | | | | | | | | | | | | | 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.
* pseudotcp: Add methods to query the state of the send and recv buffersOlivier Crête2014-01-311-0/+2
|
* configure: Verify that the compiler understands warning cflagsOlivier Crête2013-12-261-1/+1
| | | | Older compilers don't understand all of the flags
* Fix documentationYouness Alaoui2013-02-221-1/+2
|
* Export the new nice_agent_get_selected_pair APIYouness Alaoui2013-02-061-0/+1
|
* 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.
* Added support for compiling when gtk-doc is not installedFilippo Della Betta2012-03-051-1/+1
|
* Add a nice_agent_set_port_range API to allow forcing the listening port on ↵Youness Alaoui2011-01-191-0/+1
| | | | local host candidates
* Make stun_timer timeouts configurable (breaks API)Youness Alaoui2010-09-291-0/+3
|
* Fix various gtk-doc warnings/errors and typosYouness Alaoui2010-02-161-3/+4
|
* Add an API to enable/disable debug messages for pseudotcpYouness Alaoui2010-02-161-0/+2
|
* nice.fdo was never put up, revert the doc link to the correct domainYouness Alaoui2010-02-161-1/+1
|
* Add nice_agent_new_reliable to the libnice API which uses pseudotcpYouness Alaoui2010-02-161-0/+1
|
* Add pseudotcp docs and fix a bit the API and testYouness Alaoui2010-02-162-2/+27
|
* Add nice_agent_set_software and stun_agent_set_software documentationYouness Alaoui2009-11-041-0/+2
|
* add the doc for nice_agent_set_stream_tosYouness Alaoui2009-07-281-0/+1
|
* Link manual building with GUPNP if availableOlivier Crête2009-05-071-1/+2
|
* Fix documentationYouness Alaoui2009-03-311-0/+1
|
* Set a title for the STUN usagesYouness Alaoui2009-03-051-0/+4
|
* Change includes to minimize non public API from being includedYouness Alaoui2009-03-051-2/+3
|
* Update docs, finish formatting the gtk-doc and add the STUN API to the ↵Youness Alaoui2009-03-021-14/+33
| | | | exported symbols list