[Nice] Libnice 0.0.6 released!

Youness Alaoui youness.alaoui at collabora.co.uk
Tue Mar 31 13:45:12 PDT 2009

Hash: SHA1

Hi everyone!

A new version of libnice is now available : version 0.0.6!
You can download it from here : http://nice.freedesktop.org/releases/
And you'll find its documentation available here :

Here are the main changes :
- - Fix connectivity checks for detecting when we loose the connection
- - Fix a race condition with gtalk that made the call silent after 30
- - Robustness checks with regards to relay information
- - Fix a race condition crash with retransmission ticks
- - Added a new STUN API : stun_agent_forget_transaction
- - Fix a possible crash if tcp-turn is shutdown early in the process
- - Fix a crash when a stream is removed
- - Fix MSN support by disable keepalive connchecks

This release basically adds a lot of fixes, but the important thing is
that the STUN API has a new function : stun_agent_forget_transaction.
The stun agent keeps a list of all the transaction ids sent for
requests, so it can match the ids with the responses on the
stun_agent_validate (if not matched, you get
STUN_VALIDATION_UNMATCHED_RESPONSE). The stun agent previously kept a
maximum of 20 ids in its internal state, that limit has now been
increased to 200 considering that real life use cases can exceed 20
concurrent stun requests at a time.
I also realized that if a stun request is sent to an invalid/unreachable
destination, we'll never get a response, and that id takes a slot in the
agent's internal state forever, which is why I added
When using the STUN API from libnice, whenever you call
stun_agent_finish_message on a request, make sure you add proper
timeouts that would call stun_agent_forget_transaction if the
transaction times out and the response is never received! This is
important otherwise, the stun agent will refuse to build any more requests.
Note also that the behavior of stun_agent_finish_message also changed a
little, if the agent's internal state has all 200 saved id slots taken
and the agent can't save a new id in its list, then the function will
return 0. This is a precaution to avoid having the response UNMATCHED by
the stun_agent_validate later on.
Please read the documentation for stun_agent_finish_message and
stun_agent_forget_transaction as it has been updated.

Youness Alaoui.
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org


More information about the Nice mailing list