Fix NICE_CHECK_VERSION in public install
[platform/upstream/libnice.git] / NEWS
1 libnice 0.1.19 (2022-05-03)
2 ===========================
3 Allow incoming connchecks before remote candidates are set, allows for connection based on received bind requests
4 Implement RFC 7675 for Consent Freshness
5 Use a single server reflexive and local relay candidate, reduces useless duplicated local candidates
6 Improved ICE restart implementation
7 Use Windows native crypto API, removing the need for OpenSSL
8 Add bytestream ICE-TCP and improve ICE-TCP
9 Add API to know if a NiceAddress is link-local
10 Add API to extact the relay address from a relayed NiceAddress
11 Improve support for detection addresses on Android, iOS, macOS
12 A number of bug fixes
13
14 libnice 0.1.18 (2020-10-20)
15 ===========================
16 Remove the autotools build system, now only meson is available
17 On Windows, use crypto library instead of CryptGenRandom() which is deprecated
18 On Windows, use GetBestInterfaceEx() for UWP compatibility
19 On Windows, fix the listing of interfaces to use the correct APIs
20 On Windows, implement ignoring interfaces
21 Accept receiving messages in multiple steps over TCP
22 Accept duplicated ports as last option instead of spinning forever
23 Use sendmmsg if possible to send multiple packets in one call
24 Fail gathering if no port is available
25 Hide the implementation of NiceCandidate, this hides some parts that were previously visible
26 Enable TURN server connects where both TCP and UDP use the same port number
27 Don't count rejected STUN messages as keepalive packets
28
29 libnice 0.1.17 (2020-05-22)
30 ===========================
31 Add API to retrieve the underlying BSD sockets
32 Support systems with multiple loopback devices
33 Ignore non-running network interfaces
34 Ignore multiple interface prefixes
35 Now tries to nominate matching pairs across components and streams
36 Retry TURN deallocation on timeout, requires not destoying the NiceAgent right after the stream
37 Use different port for every host candidate
38 Make timeouts and retransmissions more in line with the RFCs
39 Find OpenSSL without pkg-config, for Windows
40 Complete meson support
41 GLib required version update to 2.54
42 Removed deprecated GLib APIs
43 Many ICE compatibility and performance improvements
44 Many bug fixes
45
46 libnice 0.1.16 (2019-05-09)
47 ===========================
48 Add API to make it easier to implement ICE trickle
49 Add async closing of agent, to cleanly close TURN allocations
50 Add Google non-standard NOMINATION STUN attribute
51 Fix tests on Windows
52 Fix some racy tests
53
54 libnice 0.1.15 (2018-12-27)
55 ===========================
56 Add support for Regular Nomination
57 Removal of the global lock over all agents
58 Add method to compare candidate targets
59 Added optional Meson build system, future releases will remove autotools
60 Renamed all members of PseudoTcpState enum (compile-time API change)
61 Now drops all packets from addresses that have not been validated by an ICE check
62 Multiple improvements to ICE interoperability
63 Improved RFC compliance
64 Improved OC2007 compatibility mode alternate-server support
65
66 libnice 0.1.14 (2017-04-03)
67 ===========================
68 Improved RFC compliance
69 Split verbose logs into a separate option
70 Numerous bug fixes
71 Use GnuTLS for hash functions
72 Implement NewReno in PseudoTCP
73 Requires GLib 2.44 GnuTLS 2.12
74
75 libnice 0.1.13 (2015-04-28)
76 ===========================
77 Fix build on non-Windows platforms that don't have getifaddrs()
78 Fix build regression on Windows
79
80 libnice 0.1.12 (2015-04-22)
81 ===========================
82 Fix regression in SDP parser
83 Make examples work on Windows
84 Bug fixes on nicesrc
85
86 libnice 0.1.11 (2015-04-20)
87 ===========================
88 API: nice_agent_set_local_credentials() for WebRTC
89 Nicesink: support GstBufferList
90 Better warnings on programming errors
91 Build fixes for Solaris and Windows
92 Bug and documentation fixes
93
94 libnice 0.1.10 (2015-01-28)
95 ===========================
96 Fix bug on component change on the sink
97
98 libnice 0.1.9 (2015-01-28)
99 ==========================
100 Make it possible to statically build the GStreamer plugins
101 Bug fixes, in particular fix compatibility with coTurn servers
102 Documentation fixes
103
104 libnice 0.1.8 (2014-10-09)
105 ==========================
106 Added FIN-ACK behavior in the PseudoTCP
107 ICE-TCP, both standard mode and Microsoft compatible
108 Microsoft compatible TURN-TCP
109 API: nice_address_equal_no_port() to compare NiceAddresses ignoring the port
110 API: nice_agent_get_component_state() to get the current component state
111 API: agent:keepalive-conncheck to make the agent use conncheck as keepalives
112   and fail the connection if there is no answer
113 API: agent:ice-tcp, agent:udp-tcp to control ICE-UDP vs ICE-TCP behaviours
114 API: agent:bytestream-tcp to know if the send/receives in reliable mode create full packets or not
115 API: New signals agent::new-selected-pair-full, agent::new-candidate-full,
116   agent::new-remote-candidate-full which include the NiceCandidates directly
117 API: Deprecated agent::new-selected-pair and agent::new-candidate and 
118   agent::new-remote-candidate signals
119 Now all signals are emitted at the function return time
120
121 libnice 0.1.7 (2014-05-05)
122 ==========================
123 Fix undesired API change that broke Farstream unit testsx
124
125 libnice 0.1.6 (2014-04-28)
126 ==========================
127 API: nice_agent_restart_stream() to do a ICE restart on a single strema
128 API: nice_component_state_to_string() to get a printable name for a component
129   state
130 API: nice_agent_forget_relays() to forget the relays set for a
131   specific component, along with nice_agent_restart_stream(), it allows
132   changing the current relay without dropping the connection.
133 It is now possible to add relays after the initial candidate gathering.
134 Many bug fixes
135
136 libnice 0.1.5 (2014-03-06)
137 ==========================
138
139 API: nice_agent_recv() and nice_agent_recv_nonblocking() as an alternative to
140   the nice_agent_attach_recv()
141 API: nice_agent_recv_messages() and nice_agent_recv_messages_nonblocking() to
142   receive multiple messages at the same time
143 API: nice_agent_get_io_stream() to get a GIOStream in reliable mode
144 API: nice_agent_get_selected_socket() to extract the selected GSocket
145 Import Google's newer PseudoTCP code including window scaling
146 Improve PseudoTCP performance
147 Improve performance
148 Build fixes
149
150 libnice 0.1.4 (2013-02-22)
151 ==========================
152
153 Fix issue with dribble mode
154 Fix issue with TURN permissions
155 Fix missing win32 directory from release archive
156 Fix support for OC2007
157 Added new nice_address_ip_vesion API
158 Added new nice_agent_get_selected_pair API
159 Added new SDP parsing and generation API
160 Added simple examples (simple, threaded and sdp usages examples)
161
162 libnice 0.1.3 (2012-09-13)
163 ==========================
164
165 Dribble mode: You can set remote candidates while gathering the local ones
166 Add support for GStreamer 1.0, will compile plugins for both 1.0 and 0.10 by default
167 Cache GSocketAddress in UdpBsdSocket, creating it is very slow
168
169 libnice 0.1.2 (2012-04-03)
170 ==========================
171
172 Fix a bug where a controlled agent may never go to READY if it received early conncheck
173 Restart connchecks on a failed candidate pair when receiving a triggered check
174 Fix a bug where gathering-done signal could be sent before UPnP mapping finishes
175 Fix a race condition where setting remote-candidates on a gathered stream failed if another stream was gathering
176 Many fixes to complete and stabilize TURN support 
177 Fix a bug in proxy support where TURN packets were misread
178 Refactor libnice to use GSocket which works around a glib limitation of g_io_channel on windows
179 Fix a bug with receiving error messages during conncheck
180 Fix a possible infinite loop bug
181 Fix memory leaks and multi-threaded race conditions
182 Better compatibility for BSD and Mingw
183 Added support files for Visual Studio compilation
184 Various fixes to UPnP support
185 Fixes to the build system
186
187 libnice 0.1.1 (2011-09-07)
188 ==========================
189
190 Fixed BSD and Solaris compatibility
191 Fixed PPC64 symbol test
192 Removed a few possible leak/bugs
193 Fixed compatibility with google's recent protocol change
194
195 libnice 0.1.0 (2011-01-20)
196 ==========================
197
198 Added nice_candidate_copy to the public API
199 Make stun_timer timeouts configurable (Break API and ABI)
200 Add compatibility support for MSOC 2007 and MSOC 2007 R2
201 Add MS-TURN support for MSOC
202 Added and completed TURN RFC 5766 support
203 Add a nice_agent_set_port_range API to force a component to use a specific port
204 Fix various bugs and memory leaks
205 Improve documentation
206
207 libnice 0.0.13 (2010-07-20)
208 ==========================
209
210 Add support for IPv6
211 Fix crc32 function conflict with libz.so
212 Various bug fixing and code cleaning
213 Validate the remote candidate address before adding it
214
215 libnice 0.0.12 (2010-05-19)
216 ==========================
217
218 Update compatibility to RFC5245
219 Fix a memory corruption bug
220 Fix a possible buffer overflow with socks5 proxies
221
222 libnice 0.0.11 (2010-03-18)
223 ===========================
224
225 Handle EAGAIN for UDP sockets
226 Fix coverity warnings
227 Fix a bug with TURN and Channel Bindings
228 Add a reliable transport mode using libjingle's PseudoTcp implementation
229 Various fixes
230
231 libnice 0.0.10 (2009-11-04)
232 ===========================
233
234 Fix some memory leaks with the gstreamer elements
235 Fix username/foundation for google TURN candidates
236 Fix the sending of hundreds of connectivity checks at once the stream is connected
237 Fix BSD support
238 Fix reprocessing of already processed early incoming checks when in dribble-mode
239 Fix a rare crash with failing relay candidates allocations
240 Add a stun_agent_set_software API
241 Add a nice_agent_set_software API
242
243 libnice 0.0.9 (2009-07-31)
244 ===========================
245
246 Fix some more issues with peer-reflexive candidates in google mode (for early incoming checks)
247 Fix SHA1 algorithm when strict aliasing is used
248 Fix google mode connectivity with discovered remote peer reflexive candidates
249 Fix google/msn mode by not limiting the conncheck list
250 Fix the interfaces discovery by using getifaddrs
251 Fix compilation on Mac OS X
252 Add ToS support to the sockets
253
254
255 libnice 0.0.8 (2009-06-19)
256 ===========================
257
258 Remove deprecated g_strcasecmp call
259 Use addr instead of base_addr on assigning remote peer-reflexive candidates (fixes crash)
260 Use a global mutex and g_source_is_destroyed to avoid race conditions (fixes crashes)
261 Unlock the mutex before calling the recv callback
262
263 libnice 0.0.7 (2009-06-11)
264 ===========================
265
266 Added UPnP Support
267 Fix a race condition when destroying the nice agent
268 Stun headers are now installed
269 Unset timer's source if they return FALSE
270 Fix interoperability with gtalk2voip.com
271 Avoid a race condition where a candidate has the wrong user/pass
272 Add support for delayed setting of the remote candidates in google mode
273 Better connectivity support and race condition fixes
274 Keepalive connchecks do not change the state if they fail but data was still received
275 Fix foundation generation for remote peer reflexive candidates
276 Drop packets when using TCP and the bandwidth is too slow for the data output
277
278
279 libnice 0.0.6 (2009-03-31)
280 ===========================
281
282 Fix connectivity checks for detecting when we loose the connection
283 Fix a race condition with gtalk that made the call silent after 30 seconds
284 Robustness checks with regards to relay information
285 Fix a race condition crash with retransmission ticks
286 Added a new STUN API : stun_agent_forget_transaction
287 Fix a possible crash if tcp-turn is shutdown early in the process
288 Fix a crash when a stream is removed
289 Fix MSN support by disable keepalive connchecks
290
291
292 libnice 0.0.5 (2009-03-04)
293 ===========================
294
295 Name change from nice to libnice
296 Added support for HTTP proxies
297 Added a nice_interfaces API to query the local interfaces/ips
298 Fixed libnice when used in dribble mode
299 Fix a data corruption issue with the SHA1 algorithm
300 Endianness gets checked at runtime so libnice should compile and work everywhere
301 Add compatiblity for WLM2009 ICE
302 Export libstun API and add documentation for libstun
303 Add connectivity checks during the connection to detect when the peer gets disconnected
304 Bug fixes and code cleaning
305
306
307 nice 0.0.4 (2008-12-17)
308 ========================
309
310 Fix compilation for 64bits systems
311 Revert the use of netbuffer in the gstreamer elements
312 Added support for pseudossl-tcp TURN relay for Google
313 Added support for SOCKS5 proxy servers for TCP relaying
314 Bug fixes and code cleaning
315
316 nice 0.0.3 (2008-11-25)
317 ========================
318
319 Stable google talk support
320 Added TCP TURN relay support for google.
321 Removed openssl dependency.
322
323 nice 0.0.2 (2008-11-12)
324 ========================
325
326 Better support for google talk compatibility mode as well as UDP TURN relay compatibility for Google. 
327 Removed -Werror compile flag for releases
328
329 nice 0.0.1 (2008-11-05)
330 ========================
331
332 Initial release of libnice.
333 It has compatibility support for the latest ICE draft 19, as well as google talk and MSN compatibility.
334 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.
335 The library is multiplatform and should compile fine on Linux, Mac and Windows systems.