blob: d2884d2c68a7675011b64d8c3af14d5bd5e69214 [file] [log] [blame]
James Kuszmaul82f6c042021-01-17 11:30:16 -080012018-11-24 Alfred E. Heggestad <alfred.heggestad@gmail.com>
2
3 * Version 0.6.0
4
5 * Project URL: https://github.com/creytiv/re
6
7 * build: add major,minor,patch versions to CFLAGS
8
9 * odict: add high-level odict helper functions
10
11 * rtmp: new module for Real Time Messaging Protocol (RTMP)
12
13 * uri: add uri_decode_hostport
14
15
162018-09-01 Alfred E. Heggestad <alfred.heggestad@gmail.com>
17
18 * Version 0.5.9
19
20 * Project URL: https://github.com/creytiv/re
21
22 * build: Added support for 64-bit MINGW (#131)
23 (thanks Alexander Ushakov)
24
25 fixed inline issue when compiling VS as C++ (#143)
26 (thanks TheSil)
27
28 * jbuf: zero out jbuf_stat on jbuf flush (#147)
29 (thanks Christian Spielberger)
30
31 * net: remove net_conn api (old and unused) (#145)
32 fix bug in net_if_getname (#144)
33
34 * sip: get local TCP address in establish handler (#146)
35
36 * tls: add AES-GCM to DTLS-SRTP (#141)
37
38
392018-04-20 Alfred E. Heggestad <alfred.heggestad@gmail.com>
40
41 * Version 0.5.8
42
43 * Project URL: https://github.com/creytiv/re
44
45 * build: update win32 files (thanks Encamy)
46
47 * aes: add support for AES-GCM (Galois Counter Mode)
48
49 * fmt: json/utf8: fix unescaping of unicode code points (#127)
50 add utf8_byteseq
51
52 * mqueue: set non-blocking mode for read/write file descriptors (#122)
53
54 * srtp: add support for AES-GCM cipher suite (RFC 7714)
55
56
572018-01-12 Alfred E. Heggestad <alfred.heggestad@gmail.com>
58
59 * Version 0.5.7
60
61 * Project URL: https://github.com/creytiv/re
62
63 * build: remove support for Cygwin (#95)
64 remove support for splint (#96)
65
66 * mem: add secure memory functions (#102)
67
68 * net: larger buffer for net_if_list (#100)
69
70 * sipreg: add from_name (Display Name) (#104)
71
72 * tls: use per connection bio_method (fixes issue #92) (#93)
73
74
752017-11-06 Alfred E. Heggestad <alfred.heggestad@gmail.com>
76
77 * Version 0.5.6
78
79 * Project URL: https://github.com/creytiv/re
80
81 * build: Update ar flags; use deterministic mode (#79)
82
83 * http: added support for chunked transfer encoding (#90)
84
85 * ice: Added functions to get selected candidates. (#72)
86 (thanks Joachim Bauch)
87
88 * json: improved performance for mypower10 (#88)
89 (thanks Chris Owen)
90
91 * mqueue: Pack struct of mqueue messages. (#62)
92 (thanks Joachim Bauch)
93
94 * odict: use int instead of enum to avoid vararg promotion (#81)
95
96 * tls: add dtls_recv_packet() (#89)
97
98
992017-09-05 Alfred E. Heggestad <alfred.heggestad@gmail.com>
100
101 * Version 0.5.5
102
103 * Project URL: https://github.com/creytiv/re
104
105 * ice: move gathering to application
106
107 * mod: add accessor function to module list
108
109 * sipreg: Added function sipreg_laddr()
110
111 * sys: optimize rand_str() and rand_char()
112
113
1142017-06-24 Alfred E. Heggestad <alfred.heggestad@gmail.com>
115
116 * Version 0.5.4
117
118 * Project URL: https://github.com/creytiv/re
119
120 * rtp: add extension bit to the api
121
122
1232017-05-13 Alfred E. Heggestad <alfred.heggestad@gmail.com>
124
125 * Version 0.5.3
126
127 * Project URL: https://github.com/creytiv/re
128
129 * build: upgrade windows project to VS2015 (thanks Mikhail Barg)
130 makefile improvements (thanks Lennart Grahl)
131
132 * ice: remove session object "struct ice"
133
134 * telev: add telev_set_srate (thanks Jan Hoffmann)
135
136
1372017-04-08 Alfred E. Heggestad <alfred.heggestad@gmail.com>
138
139 * Version 0.5.2
140
141 * Project URL: https://github.com/creytiv/re
142
143 * build: add Debian/kFreeBSD+Hurd (thanks Vasudev Kamath)
144
145 * ice: make enum ice_role type public
146
147 * main: fix build for Solaris 11
148
149 * srtcp: use unsigned for encrypted bit
150
151 * tls: add tls_openssl_context() accessor function
152
153
1542017-02-04 Alfred E. Heggestad <alfred.heggestad@gmail.com>
155
156 * Version 0.5.1
157
158 * Project URL: https://github.com/creytiv/re
159
160 * fmt: print directly to stream using handler (#38)
161
162 * http: HTTP client improvements (#36)
163 - http client connection reuse
164 - retry failed requests using fresh connections
165 - Handle Connection: close response header
166
167
1682016-11-25 Alfred E. Heggestad <alfred.heggestad@gmail.com>
169
170 * Version 0.5.0
171
172 * Project URL: https://github.com/creytiv/re
173
174 * build: add Dragonfly BSD (thanks Dmitrij D. Czarkoff)
175 remove support for Symbian OS
176
177 * aes: add support for OpenSSL version 1.1.0
178
179 * dns: dns/resolv cleanup (#11)
180 (thanks Dmitrij D. Czarkoff)
181
182 * hmac: add support for OpenSSL version 1.1.0
183
184 * main: remove support for ActiveScheduler (SymbianOS)
185
186 * tls: add support for OpenSSL version 1.1.0
187 add tls_set_certificate_pem()
188 add tls_set_certificate_der()
189 add dtls_peer()
190 add dtls_set_peer()
191 add tls_flush_error to dump openssl errors
192 (thanks to Lennart Grahl)
193
194 * udp: add udp_helper_find()
195
196
1972016-06-24 Alfred E. Heggestad <aeh@db.org>
198
199 * Version 0.4.17
200
201 * build: add USE_OPENSSL_AES and USE_OPENSSL_HMAC
202
203 * dns: add key to dns_rrlist_sort()
204 add dns_rrlist_sort_addr
205
206 * tls: add tls_set_ciphers()
207 add tls_set_servername()
208
209 * sip: fix for stateless SIP requests
210 sort DNS RR entries by a fixed key
211
212 * stun: fix bug with 8-bit and 16-bit attributes on certain
213 platforms, such as MIPS
214
215
2162016-04-27 Alfred E. Heggestad <aeh@db.org>
217
218 * Version 0.4.16
219
220 * build: fix warnings about DEFAULT_SOURCE with new glibc
221
222 * lock: fix debian build without HAVE_PTHREAD_RWLOCK
223
224 * rand: add arc4random (based on patch from Dmitrij D. Czarkoff)
225
226 * rtcp: adjust mbuf positions for RTCP_PSFB_AFB decoding
227
228 * tls: add tls_cipher_name()
229 add dtls_set_mtu()
230
231
2322016-02-06 Alfred E. Heggestad <aeh@db.org>
233
234 * Version 0.4.15
235
236 * build: fix warnings about DEFAULT_SOURCE with new glibc
237 fix compile error for mingw32 (thanks Dmitrij D. Czarkoff)
238
239 * aes: handle buffers with zero length
240
241 * dns: add support for multiple DNS name-servers on Android
242
243 * hmac: add support for HMAC-SHA256
244
245 * rtp: fix packet-loss calc when first packet has seq=0
246
247 * srtp: split error code in ENOSR and ENOMEM
248
249 * stun: keepalive: handle method BINDING only
250
251 * telev: add a maximum queue size
252
253 * uri: fix a potential read buffer overflow
254
255
2562015-10-24 Alfred E. Heggestad <aeh@db.org>
257
258 * Version 0.4.14
259
260 * New modules: json and odict
261
262 * build: add pkg-config file (thanks to William King)
263
264 * re_types: added a portable __REFUNC__
265
266 * fmt: add utf8_encode/decode, used by JSON module
267
268 * hash: add hash_fast() function
269
270 * json: new JavaScript Object Notation (JSON) module
271
272 * main: fix order of kqueue setting events (WRITE,READ)
273
274 * odict: new Ordered Dictionary module
275
276 * sip: reverse order of transport enumeration for SRV-records
277
278 * udp,tcp,net: add __USE_XOPEN2K (thanks Dmitrij D. Czarkoff)
279
280
2812015-07-01 Alfred E. Heggestad <aeh@db.org>
282
283 * Version 0.4.13
284
285 * aes: added support for CommonCrypto API
286
287 * fmt: pl_float() handles negative numbers now
288
289 * hmac: added support for CommonCrypto API
290
291 * main: added support for async I/O method `kqueue'
292 this is now the default on platforms like OSX/iOS,
293 FreeBSD, NetBSD and OpenBSD.
294
295 * mem: added mem_reallocarray(), inspired by OpenBSD
296
297 * net: added net_default_gateway_get()
298
299 * tls: use RSA_generate_key_ex() instead of deprecated functions
300
301
3022015-03-16 Alfred E. Heggestad <aeh@db.org>
303
304 * Version 0.4.12
305
306 * ice: added ice_ prefix to some functions and types
307 fix bug in priority calculations (thanks to Daniel Ma)
308
309 * mqueue: fix bug with leaking sockets on Windows-32
310
311 * rtp: fix bug with RTCP timestamp calculation
312
313 * sip: export sip_transp_laddr()
314
315 * tls: added more TLS methods
316
317
3182014-12-09 Alfred E. Heggestad <aeh@db.org>
319
320 * Version 0.4.11
321
322 * build: export USE_TLS and USE_DTLS flags in re.mk makefile
323 detect sysctl.h and epoll.h for multi-arch platforms
324 dont use libresolv for openbsd
325
326 * main: check that maxfds is less than FD_SETSIZE (for select method)
327
328 * dtls: added udp-socket accessor and function to set handlers
329
330 * stun: added support for DTLS-transport
331 added doxygen comments
332
333 * tls: added function to set certificate from a string
334
335 * turn: added support for DTLS-transport
336
337
3382014-10-19 Alfred E. Heggestad <aeh@db.org>
339
340 * Version 0.4.10
341
342 * dns: added support for using multi-threaded libresolv
343 (thanks to Thomas Klausner)
344 (thanks to Dmitrij D. Czarkoff for testing on OpenBSD)
345
346 * dtls: added support for sending DTLS over e.g. TURN
347 (this is done by adding 4 bytes of headroom in the packet)
348
349 * ice: added ice_set_conf()
350 continue checklist if send fails (thanks to SnakE)
351
352 * mbuf: added mbuf_shift()
353
354 * sdp: added sdp_media_session_rattr()
355 added extmap decoding RFC 5285 (thanks to Jose Carlos Pujol)
356
357 * sip: added struct sip_contact and related functions
358
359 * sipevent: added support for URI in contact-user, used for GRUU
360 (thanks to Juha Heinanen)
361
362 * sipreg: added "gruu" to list of Supported extensions
363
364 * sipsess: added support for URI in contact-user, used for GRUU
365 (thanks to Juha Heinanen)
366
367
3682014-06-18 Alfred E. Heggestad <aeh@db.org>
369
370 * Version 0.4.9
371
372 * aes: clear openssl error queue in error cases
373
374 * bfcp: disabled support for DTLS-transport
375
376 * hmac: clear openssl error queue in error cases
377
378 * http: make response parsing a bit more robust
379
380 * main: make use of openssl's multi-threading API
381
382 * rtcp: added Round-Trip Time (RTT) field to struct rtcp_stats
383 fix some rounding errors
384
385 * sa: added padding buffer to struct sa union
386
387 * sdp: improved handling of unsupported transport protocols
388 and sub-sequence offer/answer exchanges
389
390 * srtp: added support for Secure Real-time Transport Protocol (SRTP)
391 (RFC 3711 and RFC 6188)
392
393 * sys: rand -- clear openssl error queue in error cases
394
395 * tls: added support for generating self-signed certificates
396 added support for the SRTP-extension using openssl
397 clear openssl error queue in error cases
398 improved DTLS api
399
400
4012014-04-11 Alfred E. Heggestad <aeh@db.org>
402
403 * Version 0.4.8
404
405 * build: added support for Apple in cmake
406
407 * debian: update package
408
409 * aes: added AES (Advanced Encryption Standard) wrapper
410
411 * hmac: added a stateful HMAC wrapper
412
413 * http: added a HTTP client
414
415 * ice: minor API improvements
416
417 * msg: added a Generic message component library
418 (shared by SIP module and HTTP module)
419
420 * sdp: added sdp_media_laddr() to get local transport address
421
422 * sip: change struct sip_msg to use new struct msg_ctype
423 fixed a bug in parsing of Via headers
424
425 * sipsess: added sipsess_set_close_headers() to set any additional
426 SIP headers for BYE or BYE-response
427
428 * net: fixed a bug in net_rt_list() for darwin
429
430 * websock: added WebSocket Protocol (RFC 6455)
431
432
4332014-01-05 Alfred E. Heggestad <aeh@db.org>
434
435 * Version 0.4.7
436
437 * build: added support for LLVM clang compiler
438
439 * dns: added support for getting Android nameserver address
440
441 * ice: minor debug tuning
442
443 * sipsess: only send INFO when dialog is established
444
445
4462013-11-12 Alfred E. Heggestad <aeh@db.org>
447
448 * Version 0.4.6
449
450 * bfcp: fix bitwise operator for bool (thanks Tomasz Ostrowski)
451
452 * dns: do not connect the UDP socket
453
454 * ice: fix deref of NULL-pointer (thanks Tomasz Ostrowski)
455
456 * rtp: add support for RTCP AFB (Application-layer Feedback)
457 make RTCP decoding more robust
458
459 * udp: udp_connect() -- add peer address
460 add udp_error_handler_set()
461
462
4632013-10-03 Alfred E. Heggestad <aeh@db.org>
464
465 * Version 0.4.5
466
467 * udp: add functions for joining/leaving multicast groups
468
469 * fmt: re_regex() fix va_end robustness
470
471 * rtp: set sequence number in range 0-32767
472
473 * sa: sa_print_addr() fix build when HAVE_INET6 is not set
474
475
4762013-08-27 Alfred E. Heggestad <aeh@db.org>
477
478 * Version 0.4.4
479
480 * base64: added base64_print()
481
482 * http: added HTTP (Hypertext Transfer Protocol) parser
483
484 * ice: cleanup and minor bug fixes
485
486 * main: added external mutex for re_main() loop
487
488 * sdp: added sdp_media_set_alt_protos()
489 added sdp_media_proto()
490
491 * stun: make API compatible with C++
492 fix endianess-bug in STUN attributes
493
494 * sys: sys_rel_get() detect new kernels
495
496 * tls: fingerprint: add SHA-256
497 proper error handling, call ERR_clear_error()
498
499
5002013-05-05 Alfred E. Heggestad <aeh@db.org>
501
502 * Version 0.4.3
503
504 * bfcp: added udp
505
506 * dns: added doxygen comments
507
508 * fmt: added str_cmp()
509
510 * mbuf: make mbuf_get_left() and mbuf_get_space() more robust
511 added mbuf_fill()
512
513 * mod: fixed a bug in mod_find()
514
515 * mqueue: move handler to mqueue_alloc()
516
517 * sa: fix building on some Windows platforms
518
519 * sdp: added sdp_session_lbandwidth()
520 added sdp_media_set_fmt_ignore()
521
522 * stun: make stun_msg_vencode() public
523 unlink element from attribute-list in destructor
524
525 * tcp: make fd handling more robust
526
527 * tls: added tls_get_remote_fingerprint()
528
529
5302012-08-10 Alfred E. Heggestad <aeh@db.org>
531
532 * Version 0.4.2
533
534 * added debian build
535
536 * build: fix building for Ubuntu 12.04
537
538 * re_types: increase ERRNO values
539
540 * fmt: re_printf() add support for %m to print errno description
541 added str_error()
542
543 * hash: added hash_clear()
544
545 * list: added list_clear()
546
547 * net: added net_if_getlinklocal()
548
549 * rtp: added rtcp_set_srate_tx/rx()
550 rtcp_msg_print(): add all types
551
552 * sa: added sa_print_addr()
553
554 * sdp: added media encode handler
555 sdp_format_add(): added fmtp encode handler (breaks API)
556
557 * sip: handle merged SIP requests (482 Loop Detected)
558 added doxygen comments
559
560 * sipevent: fix bug in handler argument
561
562 * sys: added sys_username()
563 added fs_mkdir() and fs_gethome()
564
565 * tcp: added tcp_conn_txqsz()
566 fix enqueue buffer size
567 handle scopeid for IPv6 linklocal
568
569 * tmr: added tmr_status %H handler
570
571 * udp: handle scopeid for IPv6 linklocal
572
573
5742012-04-21 Alfred E. Heggestad <aeh@db.org>
575
576 * Version 0.4.1
577
578 * updated doxygen comments for sdp and tls
579
580 * dns: dnsc_srv_set: copy DNS servers to fixed-size array
581
582 * fmt: added str_isset()
583 added fmt_param_exists()
584
585 * rtp: fix lock protection of RTCP txstat during read
586
587 * sdp: sdp_media_align_formats: move unsupported codecs to end of list
588
589 * sip: limit startline to max 8192 bytes
590 limit tcp buffersize to max 65536 bytes
591
592 * tcp: limit the size of the tcp send queue
593
594
5952011-12-25 Alfred E. Heggestad <aeh@db.org>
596
597 * Version 0.4.0
598
599 * updated doxygen comments
600
601 * build: add support for CMake (thanks to Stefan Radomski)
602 clean up OS and ARCH detection
603
604 * dns: fix potential infinite loop in dname decode
605
606 * sip: change struct sip_via transp to enum sip_transp (breaks API)
607 added sip_transp_isladdr() and sip_transp_port()
608 added sip_dialog_fork(), sip_dialog_lseq(),
609 sip_dialog_established(), sip_dialog_cmp_half()
610
611 * sipevent: new module for SIP Event framework (RFC 3265, RFC 3515)
612
613 * sys: add portable sys_usleep() and sys_msleep()
614
615 * tcp: add tcp_send_helper()
616
617 * tls: add support for DTLSv1 (Datagram TLS)
618 tls_alloc: add tls_method and layer (breaks API)
619 tls_tcp: use custom BIO to send data
620
621 * tmr: optimize tmr_start() where delay == 0
622
623 * turn: add stun_msg to turnc handler (breaks API)
624
625 * udp: add udp_send_helper()
626
627
6282011-09-07 Alfred E. Heggestad <aeh@db.org>
629
630 * Version 0.3.0
631
632 * build support for native mingw32 (thanks to Michael Erskine)
633
634 * bfcp: new module for The Binary Floor Control Protocol (RFC 4582)
635
636 * g711: module moved to librem
637
638 * sipreg: fix a bug in failwait() calculation
639
640 * stun: add support for STUNS (secure STUN)
641
642 * tcp: added tcp_set_handlers()
643
644 * turn: added send/recv functions
645
646
6472011-05-20 Alfred E. Heggestad <aeh@db.org>
648
649 * Version 0.2.0
650
651 * updated doxygen comments
652
653 * conf: added conf_get_bool()
654
655 * dns: fixed a bug in get_resolv_dns()
656
657 * fmt: added pl_x64() pl_float() fmt_gmtime()
658
659 * hash: added hash_valid_size()
660
661 * httpauth: clean up API
662
663 * ice: many improvements and bugfixes
664
665 * main: fix a bug if re_main() fails
666
667 * mbuf: added mbuf_debug()
668
669 * natbd: fixed some race conditions and memory leaks
670
671 * rtp: added rtcp_enable_mux() (RFC 5761; RTP and RTCP multiplexing)
672
673 * sdp: fixed setting RTCP port if RTP port is zero
674
675 * sip: added support for SIP Outbound (RFC 5626)
676 added sip_msg_hdr_count() sip_msg_xhdr_count()
677 added sip_msg_hdr_has_value() sip_msg_xhdr_has_value()
678 added sip_auth_reset()
679 handle multiple authenticate headers with equal realm value
680 fixed a bug with loose-routing in Route header
681 fixed decoding of Via header
682
683 * sipreg: added support for SIP Outbound (breaks API compatibility)
684
685 * sipsess: fix a bug in sipsess_reject() if fmt is NULL
686
687 * tcp: update tcp_register_helper() (breaks API)
688
689 * tmr: removed tmrl from 'struct tmr' (breaks ABI)
690 added tmr_isrunning()
691
692 * udp: update udp_register_helper() (breaks API)
693
694 * uri: fix optional username in uri_decode()
695
696
6972010-11-05 Alfred E. Heggestad <aeh@db.org>
698
699 * Version 0.1.0
700
701 * Initial Release