platform/upstream/libnice.git
10 years agodiscovery: Compare tranports (TCP vs UDP) while assigning remote foundations
Olivier Crête [Sat, 17 May 2014 05:30:10 +0000 (01:30 -0400)]
discovery: Compare tranports (TCP vs UDP) while assigning remote foundations

10 years agoaddress: add nice_address_equal_no_port() to compare addresses ignoring ports
Olivier Crête [Sat, 17 May 2014 05:29:14 +0000 (01:29 -0400)]
address: add nice_address_equal_no_port() to compare addresses ignoring ports

10 years agoagent: Add new-selected-pair-full
Olivier Crête [Sat, 17 May 2014 04:59:17 +0000 (00:59 -0400)]
agent: Add new-selected-pair-full

This signal include the whole candidate as the foundation is ambiguous.

10 years agosignal
Olivier Crête [Sat, 17 May 2014 04:50:44 +0000 (00:50 -0400)]
signal

10 years agoTODO: Update to match current state
Olivier Crête [Sat, 17 May 2014 03:10:07 +0000 (23:10 -0400)]
TODO: Update to match current state

10 years agogitignore: Add test-driver from recent automake
Olivier Crête [Sat, 17 May 2014 04:23:14 +0000 (00:23 -0400)]
gitignore: Add test-driver from recent automake

10 years agoagent: Add new-candidate-full and new-remote-candidate-full signals
Olivier Crête [Sat, 17 May 2014 04:03:04 +0000 (00:03 -0400)]
agent: Add new-candidate-full and new-remote-candidate-full signals

These signals include the actual candidate instead of just the foundation
which is not unique.

10 years agocandidate: Add Boxed type
Olivier Crête [Sat, 17 May 2014 04:02:33 +0000 (00:02 -0400)]
candidate: Add Boxed type

10 years agostunmessage: Accept NULL terminated buffers for fast speed validation
Olivier Crête [Fri, 16 May 2014 16:04:30 +0000 (12:04 -0400)]
stunmessage: Accept NULL terminated buffers for fast speed validation

10 years agodiscovery: Differentiate socket creation failure from other errors
Olivier Crête [Thu, 15 May 2014 21:48:30 +0000 (17:48 -0400)]
discovery: Differentiate socket creation failure from other errors

If the socket can't be bound, then trying another port makes sense,
otherwise it doesn't.

10 years agoAdd TCP server reflexive candidates
Youness Alaoui [Fri, 25 Apr 2014 11:24:42 +0000 (07:24 -0400)]
Add TCP server reflexive candidates

For TCP server reflexive candidates, since STUN can't work on TCP
candidates, we will use STUN on UDP or TCP and once we get an
externally mapped address, we will create a server reflexive candidate
for all local TCP candidates that share the same base address, and use
the same mapped port as the base addresse's port.

10 years agoSignal reliable-transport-writable when ice-tcp socket is writable
Youness Alaoui [Fri, 25 Apr 2014 10:55:02 +0000 (06:55 -0400)]
Signal reliable-transport-writable when ice-tcp socket is writable

10 years agoAdd a nice_socket_can_send and nice_socket_set_writable_callback APIs
Youness Alaoui [Fri, 25 Apr 2014 10:40:40 +0000 (06:40 -0400)]
Add a nice_socket_can_send and nice_socket_set_writable_callback APIs

10 years agoCall g_socket_check_connect_result before g_socket_is_connected
Youness Alaoui [Fri, 25 Apr 2014 10:13:33 +0000 (06:13 -0400)]
Call g_socket_check_connect_result before g_socket_is_connected

If we don't call check_connect_result on an outbound connection,
then is_connected will always return FALSE. That's why we check
both conditions to make sure g_socket_is_connected returns the
correct result, otherwise we end up closing valid connections

10 years agoBind to a local random port for tcp-bsd
Youness Alaoui [Fri, 25 Apr 2014 08:32:32 +0000 (04:32 -0400)]
Bind to a local random port for tcp-bsd

10 years agoChange argument names for tcp-bsd
Youness Alaoui [Fri, 25 Apr 2014 08:32:09 +0000 (04:32 -0400)]
Change argument names for tcp-bsd

10 years agoSet local address of TCP-BSD socket
Jakub Adam [Thu, 24 Apr 2014 11:12:26 +0000 (13:12 +0200)]
Set local address of TCP-BSD socket

10 years agonice_tcp_bsd_socket_new: rename addr -> remote_addr
Jakub Adam [Thu, 24 Apr 2014 10:38:56 +0000 (12:38 +0200)]
nice_tcp_bsd_socket_new: rename addr -> remote_addr

10 years agoAdd a bytestream-tcp property that is read-only for now
Youness Alaoui [Thu, 24 Apr 2014 02:32:53 +0000 (22:32 -0400)]
Add a bytestream-tcp property that is read-only for now

10 years agoOnly enable ice-tcp for RFC and OC2007 compatibility modes
Youness Alaoui [Thu, 24 Apr 2014 02:29:32 +0000 (22:29 -0400)]
Only enable ice-tcp for RFC and OC2007 compatibility modes

10 years agoAdd documentation for ice-udp and ice-tcp properties
Youness Alaoui [Thu, 24 Apr 2014 01:21:08 +0000 (21:21 -0400)]
Add documentation for ice-udp and ice-tcp properties

10 years agoOnly generate ms-turn candidates for ice-tcp base host addresses
Youness Alaoui [Sat, 19 Apr 2014 06:34:12 +0000 (02:34 -0400)]
Only generate ms-turn candidates for ice-tcp base host addresses

The issue here was that there would be a new turn discovery for UDP
and for TCP-ACTIVE host candidates and we'd get 2 relayed addresses
with the same base_addr causing two relayed candidates to have the
same foundation. This causes farstream to duplicate candidates
since we only expose the foundation when we signal new-candidate.
This will also help later for adding turn-tcp support.

10 years agoMove the rfc4571 handling for OC2007 into udp-turn
Youness Alaoui [Sat, 19 Apr 2014 04:52:18 +0000 (00:52 -0400)]
Move the rfc4571 handling for OC2007 into udp-turn

In the case of OC2007, we must consider that the turn control messages
are framed with rfc4571 and udp-turn-over-tcp only adds a single guint16
to represent turn-control or end-to-end indication. Otherwise, we will
have issues with double-framing when we do the allocate directly on
the udp-turn-over-tcp but we'd have no framing once we add the udp-turn
socket layer on top of udp-turn-over-tcp

10 years agoDo not parse turn data more than once if we have multiple relays
Youness Alaoui [Sat, 19 Apr 2014 04:51:00 +0000 (00:51 -0400)]
Do not parse turn data more than once if we have multiple relays

10 years agoDo the recv on relayed socket
Youness Alaoui [Sat, 19 Apr 2014 04:48:13 +0000 (00:48 -0400)]
Do the recv on relayed socket

With OC2007 compat, doing a recv on the attached socket (udp-turn-over-tcp)
will cause the RFC4571 to be unframed before doing the parse_recv on the
udp-turn socket, which will fail. And even if that didn't fail, it
would still cause the resulting data to be rfc4571 since the unframing
in the agent happens before the parse_recv

10 years agoError tcp socket when it fails to connect
Youness Alaoui [Sat, 19 Apr 2014 04:47:08 +0000 (00:47 -0400)]
Error tcp socket when it fails to connect

10 years agoReturn the right value in agent_socket_send when framing
Youness Alaoui [Sat, 19 Apr 2014 01:51:14 +0000 (21:51 -0400)]
Return the right value in agent_socket_send when framing

10 years agoAllocate request is sent on UDP-TURN-OVER-TCP socket and is also framed
Youness Alaoui [Sat, 19 Apr 2014 01:47:16 +0000 (21:47 -0400)]
Allocate request is sent on UDP-TURN-OVER-TCP socket and is also framed

The UDP-TURN socket layer is only added at the end after we discover
the relay candidate with Allocate, but until then, we use the
UDP-TURN-OVER-TCP socket layer directly, so we need to do the rfc
framing for that as well, otherwise, it won't work.

10 years agoOnly create one relay/upnp request for ice-tcp depending on active or passive type
Youness Alaoui [Sat, 19 Apr 2014 01:46:16 +0000 (21:46 -0400)]
Only create one relay/upnp request for ice-tcp depending on active or passive type

10 years agoOnly use pseudossl for OC2007 if turn type is TLS
Youness Alaoui [Sat, 19 Apr 2014 01:44:30 +0000 (21:44 -0400)]
Only use pseudossl for OC2007 if turn type is TLS

10 years agoWrap socket_send in udp-turn to avoid if/else on reliable everywhere
Youness Alaoui [Sat, 19 Apr 2014 01:43:40 +0000 (21:43 -0400)]
Wrap socket_send in udp-turn to avoid if/else on reliable everywhere

10 years agoCheck real received size for pseuddossl handshake
Youness Alaoui [Sat, 19 Apr 2014 01:41:55 +0000 (21:41 -0400)]
Check real received size for pseuddossl handshake

10 years agoSend reliable-transport-writable on reliable ice-tcp and drop bogus 'ice-tcp unsupported'
Youness Alaoui [Thu, 17 Apr 2014 00:56:56 +0000 (20:56 -0400)]
Send reliable-transport-writable on reliable ice-tcp and drop bogus 'ice-tcp unsupported'

10 years agoAdd some informative debug messaging
Youness Alaoui [Wed, 16 Apr 2014 23:03:19 +0000 (19:03 -0400)]
Add some informative debug messaging

10 years agoAdd support for ICE-TCP
Youness Alaoui [Wed, 16 Apr 2014 22:51:54 +0000 (18:51 -0400)]
Add support for ICE-TCP

This is a massive commit that can't be split. We add ice-tcp support
into the agent by creating local host tcp-active/tcp-passive candidates.
We also need to find the local and remote candidates whenever we discover
a peer-reflexive because their data is important to setup the peer-reflexive
so a few changes were added to look for the local or remote candidate.
For TCP-ACTIVE remote peer-reflexive candidates, we can't add conncheck
pairs normally because TCP-PASSIVE (local) do not generate candidate pairs,
and we also can't have a connection from any local host, so we can only create
a single candidatepair with the local/remote that are connected.
The pair->socket of a candidate check pair will hold the connected tcp socket
(through connect for ACT or accept for PASS) and we will either have a
remote or a local peer-reflexive which will create a new candidate pair,
we cannot trigger checks on the initial candidate pair, we must only do it
on the new check pairs. but in the case of a tcp-passive, we don't get a new
local peer-reflexive candidate, so there is no new candidate with a new NiceSocket, so
when we get a triggered check, we need to match it to the candidate check pair
or when we select a pair, it will still use the original TCP-PASS socket.
We must store the new connected tcp socket in the peer reflexive candidates
since they represent that unique peer-reflx candidate's connection

10 years agoDo not retransmit triggered checks if reliable transport
Youness Alaoui [Wed, 16 Apr 2014 22:49:25 +0000 (18:49 -0400)]
Do not retransmit triggered checks if reliable transport

10 years agoSmall refactor for conncheck add_pair function
Youness Alaoui [Wed, 16 Apr 2014 22:47:44 +0000 (18:47 -0400)]
Small refactor for conncheck add_pair function

10 years agoPrint info on selected pair
Youness Alaoui [Wed, 16 Apr 2014 01:07:16 +0000 (21:07 -0400)]
Print info on selected pair

10 years agoStore connections in tcp-passive to allow sending
Youness Alaoui [Tue, 15 Apr 2014 23:49:45 +0000 (19:49 -0400)]
Store connections in tcp-passive to allow sending

In the case of TCP-ACTIVE, we don't have a problem, because the new
socket will generate a  peer-reflexive candidate with the right
sockptr, and all sends will go through it, but for TCP-PASSIVE, there
is no peer reflexive candidates, so once the pair is selected, the local
candidate will point to the TCP-PASSIVE candidate with the TCP_PASSIVE
socket type which will cause all sends to fail, so we need to proxy
them to the child connections

10 years agoFix RFC4571 n_buffers when reading and frame outgoing STUN messages
Youness Alaoui [Tue, 15 Apr 2014 23:19:31 +0000 (19:19 -0400)]
Fix RFC4571 n_buffers when reading and frame outgoing STUN messages

10 years agoFix SDP generation for TCP candidates
Youness Alaoui [Tue, 15 Apr 2014 00:56:53 +0000 (20:56 -0400)]
Fix SDP generation for TCP candidates

10 years agoDo not create a socket_source if fileno is NULL
Youness Alaoui [Mon, 14 Apr 2014 23:05:26 +0000 (19:05 -0400)]
Do not create a socket_source if fileno is NULL

10 years agoAdd support for RFC4571 framing (packetized mode) for ICE-TCP candidates
Youness Alaoui [Sat, 12 Apr 2014 04:34:42 +0000 (00:34 -0400)]
Add support for RFC4571 framing (packetized mode) for ICE-TCP candidates

10 years agoDisable reliable mode for test-fullmode, we already have pseudotcp unit tests
Youness Alaoui [Sat, 12 Apr 2014 03:13:57 +0000 (23:13 -0400)]
Disable reliable mode for test-fullmode, we already have pseudotcp unit tests

10 years agoAdd RFC4571 framing to ice-tcp for MS-TURN
Youness Alaoui [Sat, 12 Apr 2014 03:11:04 +0000 (23:11 -0400)]
Add RFC4571 framing to ice-tcp for MS-TURN

Data and STUN messages sent over TCP MUST follow the framing method
specified in [RFC4571] section 2. We will frame every outgoing packet
and split it into 62KB frames when sending, and on reception, we will
unframe the rfc4571. For now, we only unframe for udp-turn tcp-act/pass
candidates, which means only for MS-TURN over TCP.
We still need to do the unframing for real ice-tcp candidates, then add
support for reading the data in a serialized way.

10 years agoSet pair->sockptr when discovering peer-reflexive candidates
Youness Alaoui [Fri, 11 Apr 2014 21:36:02 +0000 (17:36 -0400)]
Set pair->sockptr when discovering peer-reflexive candidates

Fixes Issue #1

10 years agoAdd tcp-passive and tcp-active socket layers with unit test
Youness Alaoui [Fri, 11 Apr 2014 04:14:22 +0000 (00:14 -0400)]
Add tcp-passive and tcp-active socket layers with unit test

10 years agoAdd a nice_socket_recv convenience function similar to nice_socket_send
Youness Alaoui [Fri, 11 Apr 2014 04:11:49 +0000 (00:11 -0400)]
Add a nice_socket_recv convenience function similar to nice_socket_send

10 years agoRefactor tcp-bsd to ease integration of tcp-act/tcp-passive
Youness Alaoui [Fri, 11 Apr 2014 03:47:59 +0000 (23:47 -0400)]
Refactor tcp-bsd to ease integration of tcp-act/tcp-passive

10 years agoMake socket reliable in case of tcp-act/tcp-pass and move logic for ms-turn
Youness Alaoui [Fri, 11 Apr 2014 01:32:19 +0000 (21:32 -0400)]
Make socket reliable in case of tcp-act/tcp-pass and move logic for ms-turn

10 years agoFactor out the add_to_be_sent into a helper API for sockets
Youness Alaoui [Thu, 10 Apr 2014 02:13:08 +0000 (22:13 -0400)]
Factor out the add_to_be_sent into a helper API for sockets

The add_to_be_sent was duplicated in http/socks5/pseudossl/tcp-bsd and
had some small differences. It's better to factor it out so bug fixes
get applied to all of them and code is cleaner.

10 years agoDo not allow message_offset to become negative when queuing messages
Youness Alaoui [Thu, 10 Apr 2014 01:15:06 +0000 (21:15 -0400)]
Do not allow message_offset to become negative when queuing messages

10 years agoUse reliable TCP for ms-turn since it generates tcp candidates
Youness Alaoui [Thu, 10 Apr 2014 00:35:33 +0000 (20:35 -0400)]
Use reliable TCP for ms-turn since it generates tcp candidates

10 years agoDo not return the socket to the app if we use ice-tcp, even in unreliable case
Youness Alaoui [Wed, 9 Apr 2014 23:54:24 +0000 (19:54 -0400)]
Do not return the socket to the app if we use ice-tcp, even in unreliable case

10 years agoAdd support for MS-ICE2 candidate priorization for OC2007R2 compatibility
Youness Alaoui [Wed, 9 Apr 2014 23:47:54 +0000 (19:47 -0400)]
Add support for MS-ICE2 candidate priorization for OC2007R2 compatibility

10 years agoRename turn files and API to be UDP specific
Youness Alaoui [Wed, 9 Apr 2014 03:58:01 +0000 (23:58 -0400)]
Rename turn files and API to be UDP specific

The TURN-TCP RFC is very different from TURN-UDP, the current turn and tcp-turn
files were only for UDP TURN RFC and UDP TURN using TCP transport.
When we implement TCP-TURN, we'll need a different algorithm, so I
renamed the files and API to avoid any confusion.

10 years agoFix crash when discovering peer reflexive candidates in RFC compat
Youness Alaoui [Wed, 9 Apr 2014 03:56:39 +0000 (23:56 -0400)]
Fix crash when discovering peer reflexive candidates in RFC compat

10 years agotest-fullmode: protect against ready->connected->ready state change and accept data...
Youness Alaoui [Wed, 9 Apr 2014 03:55:00 +0000 (23:55 -0400)]
test-fullmode: protect against ready->connected->ready state change and accept data reception on connected state

10 years agoMake OC2007 relay candidates use TCP_ACTIVE and TCP_PASSIVE candidate types when...
Youness Alaoui [Wed, 9 Apr 2014 02:11:19 +0000 (22:11 -0400)]
Make OC2007 relay candidates use TCP_ACTIVE and TCP_PASSIVE candidate types when using TCP TURN

10 years agoDo not add server-reflexive from TURN if using a TCP connection
Youness Alaoui [Wed, 9 Apr 2014 01:42:02 +0000 (21:42 -0400)]
Do not add server-reflexive from TURN if using a TCP connection

10 years agoRemove priority functions from public header file and move to agent-priv.h
Youness Alaoui [Wed, 9 Apr 2014 01:31:11 +0000 (21:31 -0400)]
Remove priority functions from public header file and move to agent-priv.h

10 years agoChange priority algorithm for better values
Youness Alaoui [Wed, 9 Apr 2014 01:26:42 +0000 (21:26 -0400)]
Change priority algorithm for better values

Now we will always give a handicap to UDP candidates, but still give
relays the lower priority. We have the following priorities now :
In reliable mode :
TCP Host : 120
TCP peer-refl : 110
TCP nat-assist : 105
TCP srv-refl : 100
UDP Host : 60
UDP peer-refl : 55
UDP nat-assist : 52
UDP srv-refl : 50
TCP relay : 10
UDP relay : 5

In unreliable mode :
UDP Host : 120
UDP peer-refl : 110
UDP nat-assist : 105
UDP srv-refl : 100
TCP Host : 60
TCP peer-refl : 55
TCP nat-assist : 52
TCP srv-refl : 50
UDP relay : 10
TCP relay : 5

10 years agotest-priority: Unit test various configurations of candidate priorities
Youness Alaoui [Wed, 9 Apr 2014 00:48:15 +0000 (20:48 -0400)]
test-priority: Unit test various configurations of candidate priorities

10 years agoFix peer reflexive priority depending on transport and compatibility
Youness Alaoui [Wed, 9 Apr 2014 00:26:09 +0000 (20:26 -0400)]
Fix peer reflexive priority depending on transport and compatibility

10 years agoAdd support for ice-tcp priorities, udp-tunneled and nat-assisted priorities
Youness Alaoui [Wed, 9 Apr 2014 00:21:55 +0000 (20:21 -0400)]
Add support for ice-tcp priorities, udp-tunneled and nat-assisted priorities

10 years agoUse nice_candidate_ice_priority instead of _full variant when possible
Youness Alaoui [Tue, 8 Apr 2014 23:10:36 +0000 (19:10 -0400)]
Use nice_candidate_ice_priority instead of _full variant when possible

10 years agoAdd support for MS-TURN in OC2007 compatibility turn usage
Youness Alaoui [Tue, 8 Apr 2014 07:58:15 +0000 (03:58 -0400)]
Add support for MS-TURN in OC2007 compatibility turn usage

10 years agoDo not enable keepalives for tcp candidates
Youness Alaoui [Tue, 8 Apr 2014 07:57:43 +0000 (03:57 -0400)]
Do not enable keepalives for tcp candidates

10 years agodo not set socket tos if fileno == NULL
Youness Alaoui [Tue, 8 Apr 2014 07:37:59 +0000 (03:37 -0400)]
do not set socket tos if fileno == NULL

10 years agoAdd support for tcp candidates in sdp generation
Youness Alaoui [Tue, 8 Apr 2014 06:54:19 +0000 (02:54 -0400)]
Add support for tcp candidates in sdp generation

10 years agoAdd candidate type to debug
Youness Alaoui [Tue, 8 Apr 2014 06:53:50 +0000 (02:53 -0400)]
Add candidate type to debug

10 years agoAdd a sockptr to CandidateCheckPair, will be required for tcp-active
Youness Alaoui [Tue, 8 Apr 2014 06:05:37 +0000 (02:05 -0400)]
Add a sockptr to CandidateCheckPair, will be required for tcp-active

10 years agoDo not attach to sockets with fileno == NULL (requires for tcp-active)
Youness Alaoui [Tue, 8 Apr 2014 05:28:55 +0000 (01:28 -0400)]
Do not attach to sockets with fileno == NULL (requires for tcp-active)

10 years agoOnly check selected pair for writability in gio outputstream
Youness Alaoui [Tue, 8 Apr 2014 03:14:42 +0000 (23:14 -0400)]
Only check selected pair for writability in gio outputstream

10 years agoDo not retransmit connection checks on reliable transport
Jakub Adam [Thu, 2 Jun 2011 21:04:44 +0000 (23:04 +0200)]
Do not retransmit connection checks on reliable transport

10 years agoUse local candidate foundation as CANDIDATE-IDENTIFIER when creating
Jakub Adam [Sun, 22 May 2011 12:30:06 +0000 (14:30 +0200)]
Use local candidate foundation as CANDIDATE-IDENTIFIER when creating
STUN_BINDING requests.

Candidate check pair foundation was used - a combination of local
and remote candidates' foundation, which does not correspond with
[MS-ICE2] 2.2.2.1 0x8054 CANDIDATE-IDENTIFIER

10 years agoDisable TURN refresh in MSOC compatibility mode
Jakub Adam [Sun, 26 Aug 2012 18:10:47 +0000 (20:10 +0200)]
Disable TURN refresh in MSOC compatibility mode

At least temporary, maybe it is not used at all. TURN refresh messages
were not seen in the packet capture.

10 years agoIf allow_partial, then allow a return 0 from the socket
Youness Alaoui [Sat, 5 Apr 2014 09:54:01 +0000 (05:54 -0400)]
If allow_partial, then allow a return 0 from the socket

10 years agoOnce a ice-tcp connection is established, it should work like any other, so just...
Youness Alaoui [Sat, 5 Apr 2014 09:53:31 +0000 (05:53 -0400)]
Once a ice-tcp connection is established, it should work like any other, so just send to it

10 years agoGenerate valid TCP connection check pairs
Youness Alaoui [Sat, 5 Apr 2014 07:41:48 +0000 (03:41 -0400)]
Generate valid TCP connection check pairs

10 years agoRefactor discovery/agent to add support for non-udp candidates
Youness Alaoui [Sat, 5 Apr 2014 07:15:23 +0000 (03:15 -0400)]
Refactor discovery/agent to add support for non-udp candidates

10 years agoFix indentation for _set_remote_candidates_locked
Youness Alaoui [Sat, 5 Apr 2014 03:54:12 +0000 (23:54 -0400)]
Fix indentation for _set_remote_candidates_locked

10 years agoSmall refactoring of agent, loop on component id from 1
Youness Alaoui [Sat, 5 Apr 2014 03:56:53 +0000 (23:56 -0400)]
Small refactoring of agent, loop on component id from 1

10 years agoAdd support for MS-TURN in tcp-turn
Youness Alaoui [Fri, 4 Apr 2014 11:18:44 +0000 (07:18 -0400)]
Add support for MS-TURN in tcp-turn

10 years agoAdd support for MS Office Communicator pseudossl compatibility
Youness Alaoui [Sat, 5 Apr 2014 03:56:16 +0000 (23:56 -0400)]
Add support for MS Office Communicator pseudossl compatibility

10 years agoFactor out pseudotcp so it's not used if the transport is already reliable
Youness Alaoui [Fri, 4 Apr 2014 06:12:02 +0000 (02:12 -0400)]
Factor out pseudotcp so it's not used if the transport is already reliable

10 years agoAdd a nice_socket_send_reliable API for internal use.
Youness Alaoui [Sat, 5 Apr 2014 04:29:54 +0000 (00:29 -0400)]
Add a nice_socket_send_reliable API for internal use.

One issue with tcp-bsd is that it will queue messages when the tcp socket
is not writable, but it will also drop messages when the queue is full.
If we want to do proper reliable ice-tcp, we need to make sure that
messages don't get dropped, also, this would affect http/socks5/pseudossl
if their messages get dropped. For ice-tcp, when the socket is not writable
we want to return 0, not queue the message.
The change here is to allow connchecks and other important protocol messages
to be sent as 'reliable' on tcp transports by queuing them and in the various
socket layers and to never drop them, but all user messages will be dropped.

if the tcp socket is not writable.

10 years agoturn: In case of error, don't just pass through the data, return an error
Youness Alaoui [Sat, 5 Apr 2014 04:27:59 +0000 (00:27 -0400)]
turn: In case of error, don't just pass through the data, return an error

10 years agoReturn number of sent messages in socket_send_messages when an error happens part-way
Youness Alaoui [Sat, 5 Apr 2014 04:21:02 +0000 (00:21 -0400)]
Return number of sent messages in socket_send_messages when an error happens part-way

10 years agoFix return value of send_messages in socks5
Youness Alaoui [Sat, 5 Apr 2014 04:14:18 +0000 (00:14 -0400)]
Fix return value of send_messages in socks5

10 years agoAllow tcp-bsd to act as reliable or non reliable transport and fix is_reliable on...
Youness Alaoui [Thu, 3 Apr 2014 01:53:12 +0000 (21:53 -0400)]
Allow tcp-bsd to act as reliable or non reliable transport and fix is_reliable on other sockets

10 years agoAdd a socket type for socket layer
Youness Alaoui [Tue, 1 Apr 2014 01:30:29 +0000 (21:30 -0400)]
Add a socket type for socket layer

10 years agoSome refactoring to allow for ice-tcp (non pseudotcp reliable)
Youness Alaoui [Tue, 1 Apr 2014 01:13:14 +0000 (21:13 -0400)]
Some refactoring to allow for ice-tcp (non pseudotcp reliable)

10 years agoFix documentation in preparation for ice-tcp support
Youness Alaoui [Tue, 1 Apr 2014 00:24:58 +0000 (20:24 -0400)]
Fix documentation in preparation for ice-tcp support

10 years agoAdd ICE-TCP candidate transport types
Youness Alaoui [Wed, 22 Aug 2012 19:55:03 +0000 (15:55 -0400)]
Add ICE-TCP candidate transport types

10 years agoSmall documentation fix
Youness Alaoui [Tue, 25 Mar 2014 02:35:52 +0000 (22:35 -0400)]
Small documentation fix

10 years agoagent: Use 1280 instead of 65536 buffer size to send STUN Message
Olivier Crête [Mon, 12 May 2014 23:40:08 +0000 (19:40 -0400)]
agent: Use 1280 instead of 65536 buffer size to send STUN Message

RFC 5389 says:
   All STUN messages sent over UDP SHOULD be less than the path MTU, if
   known.  If the path MTU is unknown, messages SHOULD be the smaller of
   576 bytes and the first-hop MTU for IPv4 [RFC1122] and 1280 bytes for
   IPv6 [RFC2460].

So sending 65536 bytes is always wrong

10 years agoVersion 0.1.7.1
Olivier Crête [Mon, 5 May 2014 19:02:48 +0000 (15:02 -0400)]
Version 0.1.7.1

10 years agoVersion 0.1.7 0.1.7
Olivier Crête [Mon, 5 May 2014 18:58:12 +0000 (14:58 -0400)]
Version 0.1.7

10 years agostunmessage: Revert another function to use sockaddr
Olivier Crête [Fri, 2 May 2014 21:53:40 +0000 (17:53 -0400)]
stunmessage: Revert another function to use sockaddr

The farstream unit tests were using it.