Newer Older
Olivier Crête's avatar
Olivier Crête committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
libnice 0.1.18 (2020-10-20)
Remove the autotools build system, now only meson is available
On Windows, use crypto library instead of CryptGenRandom() which is deprecated
On Windows, use GetBestInterfaceEx() for UWP compatibility
On Windows, fix the listing of interfaces to use the correct APIs
On Windows, implement ignoring interfaces
Accept receiving messages in multiple steps over TCP
Accept duplicated ports as last option instead of spinning forever
Use sendmmsg if possible to send multiple packets in one call
Fail gathering if no port is available
Hide the implementation of NiceCandidate, this hides some parts that were previously visible
Enable TURN server connects where both TCP and UDP use the same port number
Don't count rejected STUN messages as keepalive packets

Olivier Crête's avatar
Olivier Crête committed
libnice 0.1.17 (2020-05-22)
17 18
Add API to retrieve the underlying BSD sockets
Olivier Crête's avatar
Olivier Crête committed
19 20 21 22 23 24 25 26 27 28 29 30 31
Support systems with multiple loopback devices
Ignore non-running network interfaces
Ignore multiple interface prefixes
Now tries to nominate matching pairs across components and streams
Retry TURN deallocation on timeout, requires not destoying the NiceAgent right after the stream
Use different port for every host candidate
Make timeouts and retransmissions more in line with the RFCs
Find OpenSSL without pkg-config, for Windows
Complete meson support
GLib required version update to 2.54
Removed deprecated GLib APIs
Many ICE compatibility and performance improvements
Many bug fixes

Olivier Crête's avatar
Olivier Crête committed
33 34 35 36 37 38 39 40
libnice 0.1.16 (2019-05-09)
Add API to make it easier to implement ICE trickle
Add async closing of agent, to cleanly close TURN allocations
Add Google non-standard NOMINATION STUN attribute
Fix tests on Windows
Fix some racy tests

Olivier Crête's avatar
Olivier Crête committed
41 42 43 44 45 46 47 48 49 50 51 52
libnice 0.1.15 (2018-12-27)
Add support for Regular Nomination
Removal of the global lock over all agents
Add method to compare candidate targets
Added optional Meson build system, future releases will remove autotools
Renamed all members of PseudoTcpState enum (compile-time API change)
Now drops all packets from addresses that have not been validated by an ICE check
Multiple improvements to ICE interoperability
Improved RFC compliance
Improved OC2007 compatibility mode alternate-server support

Olivier Crête's avatar
Olivier Crête committed
53 54 55 56 57 58 59 60 61
libnice 0.1.14 (2017-04-03)
Improved RFC compliance
Split verbose logs into a separate option
Numerous bug fixes
Use GnuTLS for hash functions
Implement NewReno in PseudoTCP
Requires GLib 2.44 GnuTLS 2.12

Olivier Crête's avatar
Olivier Crête committed
62 63 64 65 66
libnice 0.1.13 (2015-04-28)
Fix build on non-Windows platforms that don't have getifaddrs()
Fix build regression on Windows

Olivier Crête's avatar
Olivier Crête committed
67 68 69 70 71 72
libnice 0.1.12 (2015-04-22)
Fix regression in SDP parser
Make examples work on Windows
Bug fixes on nicesrc

Olivier Crête's avatar
Olivier Crête committed
73 74 75 76 77 78 79 80
libnice 0.1.11 (2015-04-20)
API: nice_agent_set_local_credentials() for WebRTC
Nicesink: support GstBufferList
Better warnings on programming errors
Build fixes for Solaris and Windows
Bug and documentation fixes

Olivier Crête's avatar
Olivier Crête committed
81 82 83 84
libnice 0.1.10 (2015-01-28)
Fix bug on component change on the sink

Olivier Crête's avatar
Olivier Crête committed
85 86 87 88 89 90
libnice 0.1.9 (2015-01-28)
Make it possible to statically build the GStreamer plugins
Bug fixes, in particular fix compatibility with coTurn servers
Documentation fixes

Olivier Crête's avatar
Olivier Crête committed
91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
libnice 0.1.8 (2014-10-09)
Added FIN-ACK behavior in the PseudoTCP
ICE-TCP, both standard mode and Microsoft compatible
Microsoft compatible TURN-TCP
API: nice_address_equal_no_port() to compare NiceAddresses ignoring the port
API: nice_agent_get_component_state() to get the current component state
API: agent:keepalive-conncheck to make the agent use conncheck as keepalives
  and fail the connection if there is no answer
API: agent:ice-tcp, agent:udp-tcp to control ICE-UDP vs ICE-TCP behaviours
API: agent:bytestream-tcp to know if the send/receives in reliable mode create full packets or not
API: New signals agent::new-selected-pair-full, agent::new-candidate-full,
  agent::new-remote-candidate-full which include the NiceCandidates directly
API: Deprecated agent::new-selected-pair and agent::new-candidate and 
  agent::new-remote-candidate signals
Now all signals are emitted at the function return time

Olivier Crête's avatar
Olivier Crête committed
108 109 110 111
libnice 0.1.7 (2014-05-05)
Fix undesired API change that broke Farstream unit testsx

Olivier Crête's avatar
Olivier Crête committed
112 113 114 115 116 117 118 119 120 121 122
libnice 0.1.6 (2014-04-28)
API: nice_agent_restart_stream() to do a ICE restart on a single strema
API: nice_component_state_to_string() to get a printable name for a component
API: nice_agent_forget_relays() to forget the relays set for a
  specific component, along with nice_agent_restart_stream(), it allows
  changing the current relay without dropping the connection.
It is now possible to add relays after the initial candidate gathering.
Many bug fixes

Olivier Crête's avatar
Olivier Crête committed
123 124 125 126 127 128 129 130 131 132 133 134 135 136
libnice 0.1.5 (2014-03-06)

API: nice_agent_recv() and nice_agent_recv_nonblocking() as an alternative to
  the nice_agent_attach_recv()
API: nice_agent_recv_messages() and nice_agent_recv_messages_nonblocking() to
  receive multiple messages at the same time
API: nice_agent_get_io_stream() to get a GIOStream in reliable mode
API: nice_agent_get_selected_socket() to extract the selected GSocket
Import Google's newer PseudoTCP code including window scaling
Improve PseudoTCP performance
Improve performance
Build fixes

Youness Alaoui's avatar
Youness Alaoui committed
137 138 139 140 141 142 143 144 145 146 147 148
libnice 0.1.4 (2013-02-22)

Fix issue with dribble mode
Fix issue with TURN permissions
Fix missing win32 directory from release archive
Fix support for OC2007
Added new nice_address_ip_vesion API
Added new nice_agent_get_selected_pair API
Added new SDP parsing and generation API
Added simple examples (simple, threaded and sdp usages examples)

Olivier Crête's avatar
Olivier Crête committed
149 150 151 152 153 154 155
libnice 0.1.3 (2012-09-13)

Dribble mode: You can set remote candidates while gathering the local ones
Add support for GStreamer 1.0, will compile plugins for both 1.0 and 0.10 by default
Cache GSocketAddress in UdpBsdSocket, creating it is very slow

Youness Alaoui's avatar
Youness Alaoui committed
156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173
libnice 0.1.2 (2012-04-03)

Fix a bug where a controlled agent may never go to READY if it received early conncheck
Restart connchecks on a failed candidate pair when receiving a triggered check
Fix a bug where gathering-done signal could be sent before UPnP mapping finishes
Fix a race condition where setting remote-candidates on a gathered stream failed if another stream was gathering
Many fixes to complete and stabilize TURN support 
Fix a bug in proxy support where TURN packets were misread
Refactor libnice to use GSocket which works around a glib limitation of g_io_channel on windows
Fix a bug with receiving error messages during conncheck
Fix a possible infinite loop bug
Fix memory leaks and multi-threaded race conditions
Better compatibility for BSD and Mingw
Added support files for Visual Studio compilation
Various fixes to UPnP support
Fixes to the build system

Youness Alaoui's avatar
Youness Alaoui committed
174 175 176 177 178 179 180 181
libnice 0.1.1 (2011-09-07)

Fixed BSD and Solaris compatibility
Fixed PPC64 symbol test
Removed a few possible leak/bugs
Fixed compatibility with google's recent protocol change

Youness Alaoui's avatar
Youness Alaoui committed
182 183 184 185 186 187 188 189 190 191 192 193
libnice 0.1.0 (2011-01-20)

Added nice_candidate_copy to the public API
Make stun_timer timeouts configurable (Break API and ABI)
Add compatibility support for MSOC 2007 and MSOC 2007 R2
Add MS-TURN support for MSOC
Added and completed TURN RFC 5766 support
Add a nice_agent_set_port_range API to force a component to use a specific port
Fix various bugs and memory leaks
Improve documentation

Youness Alaoui's avatar
Youness Alaoui committed
194 195 196 197 198 199 200 201
libnice 0.0.13 (2010-07-20)

Add support for IPv6
Fix crc32 function conflict with
Various bug fixing and code cleaning
Validate the remote candidate address before adding it

Youness Alaoui's avatar
Youness Alaoui committed
202 203 204 205 206 207 208
libnice 0.0.12 (2010-05-19)

Update compatibility to RFC5245
Fix a memory corruption bug
Fix a possible buffer overflow with socks5 proxies

Youness Alaoui's avatar
Youness Alaoui committed
209 210 211 212 213 214 215 216 217
libnice 0.0.11 (2010-03-18)

Handle EAGAIN for UDP sockets
Fix coverity warnings
Fix a bug with TURN and Channel Bindings
Add a reliable transport mode using libjingle's PseudoTcp implementation
Various fixes

Youness Alaoui's avatar
Youness Alaoui committed
218 219 220 221 222 223 224 225 226 227 228 229
libnice 0.0.10 (2009-11-04)

Fix some memory leaks with the gstreamer elements
Fix username/foundation for google TURN candidates
Fix the sending of hundreds of connectivity checks at once the stream is connected
Fix BSD support
Fix reprocessing of already processed early incoming checks when in dribble-mode
Fix a rare crash with failing relay candidates allocations
Add a stun_agent_set_software API
Add a nice_agent_set_software API

Youness Alaoui's avatar
Youness Alaoui committed
230 231 232 233 234 235 236 237 238 239 240 241
libnice 0.0.9 (2009-07-31)

Fix some more issues with peer-reflexive candidates in google mode (for early incoming checks)
Fix SHA1 algorithm when strict aliasing is used
Fix google mode connectivity with discovered remote peer reflexive candidates
Fix google/msn mode by not limiting the conncheck list
Fix the interfaces discovery by using getifaddrs
Fix compilation on Mac OS X
Add ToS support to the sockets

Youness Alaoui's avatar
Youness Alaoui committed
242 243 244 245 246 247 248 249
libnice 0.0.8 (2009-06-19)

Remove deprecated g_strcasecmp call
Use addr instead of base_addr on assigning remote peer-reflexive candidates (fixes crash)
Use a global mutex and g_source_is_destroyed to avoid race conditions (fixes crashes)
Unlock the mutex before calling the recv callback

Youness Alaoui's avatar
Youness Alaoui committed
250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265
libnice 0.0.7 (2009-06-11)

Added UPnP Support
Fix a race condition when destroying the nice agent
Stun headers are now installed
Unset timer's source if they return FALSE
Fix interoperability with
Avoid a race condition where a candidate has the wrong user/pass
Add support for delayed setting of the remote candidates in google mode
Better connectivity support and race condition fixes
Keepalive connchecks do not change the state if they fail but data was still received
Fix foundation generation for remote peer reflexive candidates
Drop packets when using TCP and the bandwidth is too slow for the data output

Youness Alaoui's avatar
Youness Alaoui committed
266 267 268 269 270 271 272 273 274 275 276 277 278
libnice 0.0.6 (2009-03-31)

Fix connectivity checks for detecting when we loose the connection
Fix a race condition with gtalk that made the call silent after 30 seconds
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

279 280 281 282 283 284 285 286 287 288 289 290 291 292 293
libnice 0.0.5 (2009-03-04)

Name change from nice to libnice
Added support for HTTP proxies
Added a nice_interfaces API to query the local interfaces/ips
Fixed libnice when used in dribble mode
Fix a data corruption issue with the SHA1 algorithm
Endianness gets checked at runtime so libnice should compile and work everywhere
Add compatiblity for WLM2009 ICE
Export libstun API and add documentation for libstun
Add connectivity checks during the connection to detect when the peer gets disconnected
Bug fixes and code cleaning

Youness Alaoui's avatar
Youness Alaoui committed
294 295 296 297 298 299 300 301 302
nice 0.0.4 (2008-12-17)

Fix compilation for 64bits systems
Revert the use of netbuffer in the gstreamer elements
Added support for pseudossl-tcp TURN relay for Google
Added support for SOCKS5 proxy servers for TCP relaying
Bug fixes and code cleaning

Youness Alaoui's avatar
Youness Alaoui committed
303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322
nice 0.0.3 (2008-11-25)

Stable google talk support
Added TCP TURN relay support for google.
Removed openssl dependency.

nice 0.0.2 (2008-11-12)

Better support for google talk compatibility mode as well as UDP TURN relay compatibility for Google. 
Removed -Werror compile flag for releases

nice 0.0.1 (2008-11-05)

Initial release of libnice.
It has compatibility support for the latest ICE draft 19, as well as google talk and MSN compatibility.
It also has support for TURN relays using TURN draft 9 if you're in ICE draft 19 compatibility, or specific Google/MSN relay support if you're in Google/MSN compatibility mode.
The library is multiplatform and should compile fine on Linux, Mac and Windows systems.