v1.5.2-rc.1
Pre-releaseRelease Notes
Including changes from v1.5.2-rc.0.
API / ABI / Integration Changes
API/ABI version: 1.5.
New Features and Improvements
- Epic #2336: Add Authenticated-Encryption with Associated-Data (AEAD) mode - v1.6.0 API Preview.
Use theENABLE_AEAD_API_PREVIEW=ON
andUSE_ENCLIB=openssl-evp
build options. - PR #456: Added extraction of
IP_PKTINFO
.
Important Bug Fixes
- #2664: Send rejection handshake to the peer in rendezvous mode.
- #2661: Reworked the
CRcvBuffer::dropMessage(..)
function. - #2643: Set CLOSING state when closing a socket.
- #2608: Refaxed and fixed multiplexer reusage.
- #2619: Fix crash when enable heavy log and socket id less than 10.
- #2630: Fixed PKTINFO case that was failing for IPv4+IPv6 bound sockets.
- #2616: Fixed wrong null-safety condition check in haicrypt.
- #2622: Fixed reject reason by a caller if connection is UNSECURE.
- #2605: Fixed default reject reason for a listener callback.
- #2589: SRTO_MSS = 1300 splits one message into two packets in TSBPD mode.
- #2557: The caller should not connect to another caller.
- #2555: The caller should not connect to rendezvous.
- #2553: Possible crash while sending crypto keys.
- #2539: Rendezvous Connection takes extra steps in the Non-Blocking Mode.
- #2502: Corrupted data packet at SRT receiver output when using encryption.
- #2494: Handshake: reject if the Extension Flags field does not contain the magic value (INDUCTION PHASE).
- #2485: Peer address not available through
srt_getpeername()
. - #2411: Disabled warnings various platforms and fixed C++20 Windows build.
- #1859: Fixed guard for rcv-rexmit fields.
Build
- PR #2671: Set serial running unit tests property.
- PR #2439: Fix builds where the C++ runtime library does not have
std::put_time()
. - PR #2462: Fix MacOS Build with SDK-10.5.
Documentation
- PR #2659: Added
SRTO_PBKEYLEN
negotiation table. - PR #2575: Fixed SRTO_PASSPHRASE length range.
- PR #2513: Fixed wrong description of
PBKEYLEN
conflict resolution. - PR #2529: Added a note on activating HAICRYPT logging.
- PR #2483: Added
SRTO_CRYPTOMODE
,SRT_REJ_CRYPTO
,SRT_KM_S_BADCRYPTOMODE
.
Changelog
Click to expand/collapse
API
41c4b1f Fixed #ifdef ENABLE_AEAD_API_PREVIEW
(#2603).
b3a21e1 SRT version raised to 1.5.2.
c0d9fcd Restored resetlogfa(..) in udt.h. Reverting #2558, although udt.h is not the official SRT API.
87de405 Added ENABLE_AEAD_API_PREVIEW build option to enable AEAD API.
60d1237 Crypto mode 'auto' implemented for listener (#2574).
27e7d8d Socket Options: do not allow AES GCM if TSBPD is disabled.
3e4561e Add GCM to the SRT API.
Core Functionality
1cffd2f Added rejection handshake sent to the peer in rendezvous mode (#2667).
f57ba89 Added missing thread watchdog ticks in 3 thread loop (#2669).
e8d0533 Fixed old ENABLE_AEAD_PREVIEW.
599c1fb Reworked the CRcvBuffer::dropMessage(..) function (#2661).
7948772 Removed duplicate lines (#2660).
3ffc93f Fixed CRcvBuffer::dropMessage (#2657).
e9a3955 Fixed guard for rcv-rexmit fields (#1859).
22e97f8 Fixed warnings and removed redundant includes (#2658).
c83c31b Reduce frequency of the decryption failure log (#2602).
21b55a2 Disabled warnings various platforms and fixed C++20 Windows build (#2411).
65bef37 Set CLOSING state when closing a socket (#2643).
02cba9e Drop undecrypted packet based on sequence number (#2654).
6d774dd Fixed invalid ASSERT checking outdated object in haicrypt (#2652).
8db35de Refaxed and fixed multiplexer reusage (#2608).
6c92a13 Fix crash when enable heavy log and socket id less than 10 (#2619).
64dedef CodeQL: operation requires 22 bytes.
0c583f8 CodeQL warning: checking NULL after new.
b8962b4 Fixed PKTINFO case that was failing for IPv4+IPv6 bound sockets (#2630).
a42a39f Fixed wrong null-safety condition check in haicrypt (#2616).
30f6f6b Removed extra redundant condition checks (#2615).
5f02310 Fix negative id when wrap around
f533716 Fixed reject reason by a caller if connection is UNSECURE (#2622).
04e8dbc Fixed default reject reason for a listener callback (#2605).
0b9d583 AEAD: don't break a connection on decrypt failure.
6db28dc RCV Buffer Refax: added some utils and simplifications (#2522).
5889a2c AES-GCM payload length check (#2591).
45232ad Allow fileCC in group mode
98b1b00 Added extraction of IP_PKTINFO when reading (#456).
de9fc45 Fix CRcvBuffer last position in getTimespan_ms (#2579).
38b4211 Remove use variable length array (#2279).
78dd987 Fixed missing DROPREQ for LOSSREPORT that partially predates ACK (#2498).
4090b25 Reject caller to caller connection (#2562).
0a835ea Refax: moved removal of one seq from fresh loss list to a separate function (#2521).
19af5d1 Obtain ConnectionLock while sending crypto keys.
3d517cf Fixed a warning: member referenced before initialized (#2433).
fc82eac Refax: remove usage of LOGF/HLOGF (#2566).
637d439 Refax: removed m_iRcvLastSkipAck and its dependencies (#2546).
6c52f2d Pass std::string by const ref where possible.
6d62096 Applied clang-format on md5.cpp and md5.h.
2c48cba MD5: Removed null pointer subtraction (may have undefined behavior).
ae39052 Fixed rendezvous connection in the Non Blocking Mode (#2548).
0138898 Fixed cloning the RX crypto context (AEAD)
be1ccf5 Moved KM refresh in packUniqueData() (#2541).
f864cec Fixed TARGET_OS_MAC not defined. Wrong include order.
432f2d8 fix CSndBuffer parameter incorrect in AES GCM mode
cbfa812 Refax/postfix: further fixes after last refax changes (#2528)
e082f30 Fixed validation of input parameters in srt_connect (#2520).
932e5bd Cleanup of bonding conditionals and unused code (#2525).
f477b51 Fixed connected peer address recording (#2526)
b76c8b2 Fixed CRcvBuffer::getAvailSize() may jump around. (#2490)
71c3e40 Refax: safety improvements for RCV loss list and closing state (#2517)
491e6e8 Extract RCV buffer insertion handling to a separate function (#2500).
258a858 Refax: added size cache to the group container (#2510).
2fd1363 Refax: improve logging and code readability around specific logging (#2511).
f7a024a Refax: removed the synconmsg property and its handling in the group (#2509)
53735e1 Don't consider tool old ACK as IPE, it' may caused by network.
d26bbf7 Fixed a false alarm: ACK ERROR...(diff -1)
0f6e7c7 Fixed the inconsistency between getFirstLostSeq() and ackDataUpTo() (#2488)
ea86302 Reduced calls to steady_clock::now() from two to one.
8e9958a Reject if SRT_MAGIC_CODE is not set in the HS induction response.
8e67aa7 Tune logs of group members adding and removing.
c01c646 Fixed AES-GCM support check.
d5f73ca Protocol: set AES-GCM auth in the KM message.
f637035 Use setDataPacketTS to timestamp data packets (#2489).
04369b8 Made offset consistent with avail_bufsize. (#2465)
ba5ad53 Fixed message seqno check.
c416971 Minor edits to the CRcvBuffer::getTimespan_ms().
9ed7392 CRYSPR GCM: fixed usage of the aes_gcm_cipher(..) prototype. Renamed CRYSPR_AUTHTAGMAX to HAICRYPT_AUTHTAG_MAX and relocated.
66179ab CRYSPR: Add AES GCM mode with OpenSSL EVP (#2476).
1b20a48 Replaced m_iRcvLastSkipAck with m_iRcvLastAck in logs.
e94d3e1 Add auth tag to the sender buffer. The additional space to be used for auth tag in GCM AEAD.
6dd47c3 Add capacity property to CPacket.
345517b Changed CUnit::m_iFlag type to bool.
2fed400 Renamed buffer.cpp to buffer_snd.cpp.
4f2bf28 Renamed CRcvBufferNew to CRcvBuffer
29c7c64 Removed old receiver buffer and ENABLE_NEW_RCVBUFFER build option.
a1c0ab3 Combined the loops of m_FreshLoss and m_pRcvLossList
daf91f3 Replaced reorder_prevent_lossreport with initial_loss_ttl.
ae18186 Also protected m_pRcvLossList->insert() with m_RcvBufferLock.
432cfe4 Moved m_FreshLoss.push_back() out of the incoming loop.
e2f4375 Cleanup the useless tnkeep.
c21a5ae Mark m_pRcvLossList and m_FreshLoss to be guarded by m_RcvLossLock.
70a8eb2 Fixed missing m_RcvLossLock in processData().
22588e4 Improved logs of core.cpp with CONID()
229192c Added a trailing space in CONID()
d84ac20 Improved some logs for the no room issue.
90bcc64 Fixed CRcvLossList can not remove m_iMaxSeqNo.
8c6675c Fixed some wrong usages of m_iMaxSeqNo.
fda7441 Refax: moved buffer tools to a separate file (#2499).
Unit Tests
715da9d Added check for read-ready for decryption failure case (#2609).
053f179 Splitting ListenCallback test into 3 separate tests (#2556).
9a022d6 Added AES GCM unit test for CCryptoControl.
43a7c32 Added a couple of tests on RCV loss list.
fa8c58a Bonding: fixed closing the listener socket (#2538).
Build Scripts (CMake, etc.)
d9c1794 Set serial running unit tests property (#2671).
f57beb6 Fixed CodeQL configuration (#2644).
a7bd1b0 Use CXX 14 in MacOS GitHub Action.
dd19eac Add CodeQL workflow for GitHub code scanning (#2578).
85f555d Fix builds where the C++ runtime library does not have std::put_time() (#2439).
a08a42c Use GTest from brew in MacOS action. (#2607)
ef17a24 Travis: display stack trace by gdb on crash (#2565).
fdb9389 Run codecov only after success in Travis.
f86df39 Disable ConnectionTimeout test (blocking), Win GitHub Action (#2543).
27a92b3 Upgrade to checkout@v3 GitHub action.
b90b64d Identify parameters with a prepended -l in CMAKE_CXX_IMPLICIT_LINK_LIBRARIES
90af35a Fix MacOS Build with SDK-10.5 (#2462).
f610fe6 Find GTest using version range 1.8-1.12.
Sample Applications
46d55c6 Added 'bind' parameter handling for applications (#2672).
aba73de Added examples for message mode transmission (#2592).
b38b61d Fix ENABLE_AEAD_API_PREVIEW in apps. (#2588)
b6f1e9c Examples: wait 1 sec until receiver completes (#2572).
11701a6 Added cryptomode URI query option.
18c829a UriParser: fixed protocol type detection (#2452).
0bc3b03 List contributors using the changelog generation script (#2456)
Documentation
806f474 Changed the buffer size description to be clearer (#2670).
09fa30c Added SRTO_PBKEYLEN negotiation table (#2659).
f15f7a2 Fixed formatting and minor errors in srt_bind API doc (#2642).
bb7472f Fixed invalid link 2-srt_km_state (#2614).
746551d Added package version badges (#2604).
5b16f69 Removed LGTM badges from README.
a7e4204 groupconnect option value "1" (instead of "true") (#2590)
ba67d36 AES-GCM is only allowed if TSBPD is enabled.
72d135d Fixed SRTO_PASSPHRASE length range.
6a0caac Address multiple typo fixes. (#2570)
37d44f4 Added lacking SRTO_BINDTODEVICE for srt_config_add (#2564).
a791156 Fixed wrong description of PBKEYLEN conflict resolution (#2513).
89992c0 Added a note on activating HAICRYPT logging (#2529)
8a77525 Add SRTO_CRYPTOMODE, SRT_REJ_CRYPTO, SRT_KM_S_BADCRYPTOMODE.
e0a25d0 Fixed the build-win.md (#2487)
0f49f1c Defined a reason to use C++11 on Windows
6c4c299 Updated docs on release notes generation
90d2f07 Fixed the version to 1.5.1 and did some minor changes to build options summary table
82f742b Added Packet Managers section to Build Instructions