Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
94 commits
Select commit Hold shift + click to select a range
eb5b73f
[core] Fix CUDTGroup::getOpt(..): check value length in group config …
maxsharabayko Nov 14, 2024
833880b
[core] Fixed deriving string options by a group.
maxsharabayko Nov 14, 2024
6ab86d8
[tests] Extended Bonding.Options test with Stream ID and linger set/g…
maxsharabayko Nov 14, 2024
3931af6
[tests] Minor clean up of socket options tests (#3076).
maxsharabayko Nov 19, 2024
5f16494
[core] Fixed getting SRTO_RCVBUF and SRTO_SNDBUF on a group.
maxsharabayko Nov 19, 2024
87850b7
[docs] Fixed link to rejection codes document.
maxsharabayko Nov 25, 2024
cdbe5f5
[docs] Updated conan badge links.
maxsharabayko Nov 27, 2024
f109fb1
[core] Fixed: attempt to send to a group in connection-pending state …
ethouris-hv Dec 11, 2024
59e2c9c
[tests] Added more tests for bonding (#3085).
ethouris Dec 17, 2024
b252637
[core] Make field for bandwidth atomic to avoid thread clash (#3093).
ethouris Dec 18, 2024
1ec61fc
[core] Apply conditional to setting a macro for IPv6 on Mac (#3092).
ethouris Dec 18, 2024
8a89a3a
[core][tests] Clarified conditions for setting IPTOS/TTL options. Add…
ethouris Dec 24, 2024
a6b9959
[core] Fixed misleading error message for listening socket (#3102).
ethouris Jan 20, 2025
5cd2414
[core] Fix stalled connection that should break after rogue NAK/ACK r…
ethouris-hv Jan 14, 2025
bc8a084
[build] Added support for Windows on Arm64 (#3110).
lelegard Feb 13, 2025
ce0a888
[apps] FIX srt-live-transmit stops listening after SRT disconnect #29…
cl-ment Feb 13, 2025
d69b065
[core] Fixed socket options that are not allowed to be set on a group…
maxsharabayko Feb 18, 2025
63bf962
[build] Fix Windows installers (#3113).
lelegard Feb 21, 2025
fd56385
[build] Added deprecation warning for Windows+PThreads configuration …
ethouris Feb 21, 2025
7b77d4c
[build] Fix use of the OPENSSL_USE_STATIC_LIBS CMake option (#3117).
ethouris Feb 24, 2025
00e14f7
[tests] Extending socket options test to group options (#3086).
maxsharabayko Feb 25, 2025
dca5399
Automatic call of startup() and cleanup() #3098 (#3109)
cl-ment Feb 26, 2025
8bc76ac
[docs] Documentation fixes for socket options (#3125).
ethouris Feb 27, 2025
df81ecd
[build] Fixed outdated SonarQube configuration (#3124).
ethouris Feb 27, 2025
697dce0
[apps] Fixed correct bind address selection for windows multicast (#3…
ethouris Feb 28, 2025
f3a8fe3
[core] Fixed bug: tsbpd might miss m_bClosing flag setting, flag not …
ethouris Mar 12, 2025
f8e1bd6
[core] Late-rejection when listener responds with no packet filter
ethouris-hv Mar 10, 2025
0976f76
[build] support OHOS(harmonyOS) system compile (#3139)
lilinxiong Mar 13, 2025
4d0e984
[core] Fixed accidental blocking on sendmsg call
ethouris-hv Mar 12, 2025
ee03ae9
[tests] Fixed tests to avoid mistakes in CI (#3143)
ethouris Mar 14, 2025
952f949
[test] Fixing ConnectNonBlocking: delay listen to prevent connection …
ethouris-hv Mar 21, 2025
0def1b1
[build] Update for compatibility with CMake 4.x (#3167)
samumbach May 19, 2025
19113e6
[build] Update cxx11-macos.yaml (#3170)
yaruno May 19, 2025
21370a7
[core] Fixed problems found by thread and memory sanitizers (#3166)
ethouris May 21, 2025
d6d0e5a
[build] + [core] compilation of SRT on platforms that do not support …
cl-ment Jun 6, 2025
0c570a1
[build] Remove SonarQube
May 21, 2025
5d80411
[build] Update iOS build scripts (#3182)
sergeiignatov Jul 17, 2025
e9160f9
[MAINT] Added optional test discovery. Added improvements for attribu…
ethouris Aug 19, 2025
7497397
[core] Fixed bug in srt_epoll_uwait: wrong number of sockets returned
ethouris-hv Aug 19, 2025
d720b8c
[core] Rework m_bListening to lock-free and m_GlobControlLock to use …
ethouris Aug 26, 2025
725e2d4
[build] Update Ubuntu runners to Lastest. (#3180)
cl-ment Aug 27, 2025
265d0e4
[core] Fixed invalid cookie contest calculation (#3212)
ethouris Aug 29, 2025
5138f37
[core] Cleanup SRT state after a fork() (issue #3177) (#3179)
cl-ment Aug 29, 2025
9b97cfa
[core] Fixed reentrancy problem of srt_strerror (#3214)
ethouris Sep 1, 2025
52ceecd
Fix SIGABRT when bonding option is too long (#3210)
SPAleksey Sep 1, 2025
bab4037
[API] raise libSRT version number to 1.5.5
Sep 3, 2025
5c5f5b5
[MAINT] Add fixes for CI configuration based on latest dev (#3232)
ethouris Oct 15, 2025
84676b5
[build] Avoid using list(PREPEND). (#3230)
cl-ment Oct 21, 2025
547688c
[core] Restored old cookie contest. Added development support for enf…
ethouris Oct 22, 2025
a26a702
[core] Reimplemented MAXREXMITBW controller basing on Token Bucket al…
ethouris Oct 22, 2025
c09532f
[docs] Added link to the blogpost with - Live Streaming using SRT wit…
mbakholdina Oct 27, 2025
f0368c6
[build] Added handling of LIBSRT_ prefix when setting cmake options f…
ethouris Nov 25, 2025
f8a53da
[build] Ubuntu 23.04 reached end-of-life in January 2024. (#3261)
fujitatomoya Dec 16, 2025
72f0c6e
[BUG] [core] Prevent blocking srt_close call from interrupting connec…
ethouris Dec 16, 2025
f5e6bb9
Old URL (404 - no longer exists) (#3271)
Jan 12, 2026
80c871e
Detec IPv6 with colon to harden the check if IPv6 is used in the test…
Jan 12, 2026
2220de5
[docs] fix bunch of typos and enable codespell via github workflow. (…
Jan 20, 2026
c47c3e3
[bug][core] Fix group data length check in handshake processing (#3272)
RostakaGmfun Feb 5, 2026
ce54b5e
[docs] Fixed SRTO_PASSWORD max length description.
maxsharabayko Feb 20, 2026
951a87a
[core] [bug] Fixed bug: interrupting a blocking connect loop must be …
ethouris Mar 4, 2026
15cb088
[core][bug] Fixed misleading error code when connecting a broken sock…
ethouris Mar 6, 2026
f04c00c
[build] Fixed use of CMP0077 policy in too old cmake (#3295)
ethouris Mar 17, 2026
44d106f
[BUG] Incorrect error code when srt_listen on closed socket (#3298)
ethouris Mar 30, 2026
c3cfa17
[doc] Update badges in README.md (#3301)
cl-ment Apr 7, 2026
b6b4ae9
[build] Add enabler variable to importing variable feature (#3307)
ethouris Apr 17, 2026
8e68635
[BUG] Fixed a heavy-logging instruction that may crash on initializat…
ethouris May 6, 2026
604a406
[BUG] Validate KMRSP wire length to prevent stack overflow (#3319)
mszatmary-netflix May 18, 2026
798f660
[core] Vulnerability fixed: unchecked buffer size for KMREQ (#3317)
ethouris May 18, 2026
d7957ac
[BUG] Fixed OOB read in DROPREQ payload parsing (#3320)
mszatmary-netflix May 19, 2026
033d1d5
[BUG] Fixed OOB read in LOSSREPORT range parsing (#3324)
mszatmary-netflix May 21, 2026
2e2ab20
[BUG] Reject CRcvBuffer::dropMessage range past buffer end (#3322)
mszatmary-netflix May 21, 2026
1e4c908
[core] Removed unnecessary post-cleaning of closed socket in the clea…
ethouris Jun 5, 2026
2dc8c18
fix: searchParameters separator (#3328)
SergioTx Jun 8, 2026
c39196c
[CI] Added configuration for Linux with various matrix combinations (…
ethouris Jun 8, 2026
e6a870e
srtla: flush partial ACK batches by age
servusrene Jul 20, 2026
6fff03d
srtla: time-gated loss reporting
servusrene Jul 20, 2026
c63c311
[core] Fix kmreq CVE (#3345)
cl-ment Jul 20, 2026
06620ec
stats: add send/receive quality percentage and confirmed-loss counter
servusrene Jul 21, 2026
d8822d7
fix(srtla): stop the loss-report feedback loop with the sender
servusrene Jul 29, 2026
9b2c649
feat(srtla): pace and prioritise loss reports for the sender's window
servusrene Jul 29, 2026
2c95222
feat(srtla): send loss reports over the best links, not all of them
servusrene Jul 29, 2026
a13859e
Fixed gcov rule. Fixed ABI compliance checker to use local installati…
ethouris Jul 30, 2026
fcae571
[core] Added checks to prevent rogue CMD MSG to sneak thru (#3323)
ethouris Aug 6, 2026
6f817b6
[core] Security improvements and enhancements (#3359)
ethouris Aug 26, 2026
d99d2e1
[doc] Update README.md (#3356)
cmollahan Aug 26, 2026
899348d
Change to version 1.5.7
cl-ment Aug 28, 2026
b052502
feat(srtla): pace loss reports for lossy bonds and document the laten…
servusrene Sep 10, 2026
d77ed3e
test: add srtla end-to-end harness with ci score
servusrene Sep 10, 2026
9a455e4
fix(srtla): keep retransmissions out of the per-link transit measurement
servusrene Sep 10, 2026
9d77d48
test(srtla-e2e): per-drop loss traces, run validity, heavy-logging bu…
servusrene Sep 10, 2026
d53e20e
Port full OpenIRL SRTLA stack onto Haivision SRT 1.5.7
github-actions[bot] Sep 17, 2026
c2405df
Port full OpenIRL SRTLA stack to Haivision SRT 1.5.7
AlexanderWagnerDev Sep 17, 2026
2547ec0
fix(ci): prevent shell injection in GitHub Actions inputs
AlexanderWagnerDev Oct 21, 2026
eb081e2
fix(srtla): keep groups with live connections and reset accounting on…
AlexanderWagnerDev Nov 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 37 additions & 0 deletions .github/blocked-workflows/ubuntu-c++11-crypto.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: Linux

on:
push:
branches: [ "master", "dev" ]
pull_request:
branches: [ "master", "dev" ]
types: [opened, synchronize, reopened]
jobs:
build:
strategy:
matrix:
crypto: [OFF, openssl, openssl-evp, gnutls, mbedtls, botan]

name: Build Crypto=${{ matrix.crypto }} C++11
runs-on: [ubuntu-latest, ubuntu-slim, ubuntu-24.04-arm]
steps:
- uses: actions/checkout@v3
- name: Configure packages and system
run: |
sudo apt install -y tcl cmake libssl-dev libgnutls28-dev libmbedtls-dev libbotan-2-dev gdb
echo "core.%e" | sudo tee /proc/sys/kernel/core_pattern
- name: Configure
run: |
mkdir _build && cd _build
if [[ ${{ matrix.crypto }} != OFF ]]; then CRYPTO_OPTIONS=-DUSE_ENCLIB=${{ matrix.crypto }}; else CRYPTO_OPTIONS=-DENABLE_ENCRYPTION=OFF; fi
cmake ../ -DCMAKE_COMPILE_WARNING_AS_ERROR=ON -DUSE_CXX_STD=11 -DENABLE_STDCXX_SYNC=ON $CRYPTO_OPTIONS -DENABLE_UNITTESTS=ON -DENABLE_BONDING=ON -DENABLE_HEAVY_LOGGING=ON -DENABLE_TESTING=ON -DENABLE_EXAMPLES=ON -DENABLE_CODE_COVERAGE=ON -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
- name: Build
run: cd _build && make -j -k
- name: test
run: |
ulimit -c unlimited
cd _build && ctest --extra-verbose
SUCCESS=$?
if [ -f core.test-srt ]; then gdb -batch ./test-srt -c core -ex bt -ex "info thread" -ex quit; else echo "NO CORE - NO CRY!"; fi;
test $SUCCESS == 0;

67 changes: 67 additions & 0 deletions .github/blocked-workflows/ubuntu-matrix.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
name: Linux

on:
push:
branches: [ "master", "dev" ]
pull_request:
branches: [ "master", "dev" ]
types: [opened, synchronize, reopened]
jobs:
build_options:
strategy:
matrix:
cxxstdsync: [OFF, ON]
logging: [OFF, ON]
bonding: [OFF, ON]
cxxstd: ["03", "11"]
exclude:
- cxxstd: "11"
logging: ON
bonding: ON
- cxxstd: "03"
cxxstdsync: ON
bonding: OFF
name: Build C++${{ matrix.cxxstd }} C++sync=${{ matrix.cxxstdsync }} Bonding=${{ matrix.bonding }} Logging=${{ matrix.logging }}
runs-on: [ubuntu-latest, ubuntu-slim, ubuntu-24.04-arm]
steps:
- uses: actions/checkout@v3
- name: Configure packages and system
run: |
sudo apt install -y tcl cmake libssl-dev libmbedtls-dev libbotan-2-dev gdb
echo "core.%e" | sudo tee /proc/sys/kernel/core_pattern
- name: Configure
run: |
mkdir _build && cd _build
# NOTE > Crypto options are default - enabled, openssl
cmake ../ -DCMAKE_COMPILE_WARNING_AS_ERROR=ON -DUSE_CXX_STD=${{ matrix.cxxstd }} -DENABLE_STDCXX_SYNC=${{ matrix.cxxstdsync }} -DENABLE_UNITTESTS=ON -DENABLE_BONDING=${{ matrix.bonding }} -DENABLE_LOGGING=${{ matrix.logging }} -DENABLE_HEAVY_LOGGING=${{ matrix.logging }} -DENABLE_TESTING=ON -DENABLE_EXAMPLES=ON -DENABLE_CODE_COVERAGE=ON -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
- name: Build
run: cd _build && make -j -k
- name: test
run: |
ulimit -c unlimited
cd _build && ctest --extra-verbose
SUCCESS=$?
if [ -f core.test-srt ]; then gdb -batch ./test-srt -c core -ex bt -ex "info thread" -ex quit; else echo "NO CORE - NO CRY!"; fi;
test $SUCCESS == 0;

- name: codecov
run: |
source ./scripts/collect-gcov.sh
bash <(curl -s https://codecov.io/bash)

build_mingw:
name: Build Mingw32
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Dependencies
run: |
sudo apt install -y g++-mingw-w64-x86-64-posix gcc-mingw-w64-x86-64-posix
- name: Configure
run: |
mkdir _build && cd _build
export CC=x86_64-w64-mingw32-gcc-posix CXX=x86_64-w64-mingw32-g++-posix
# NOTE > Temporarily blocked encryption due to problems with enclib
cmake .. -DCMAKE_COMPILE_WARNING_AS_ERROR=ON -DENABLE_ENCRYPTION=OFF -DENABLE_UNITTESTS=OFF -DUSE_OPENSSL_PC=OFF -DCMAKE_SYSTEM_NAME=Windows
- name: Build
run: cd _build && make -j -k
158 changes: 125 additions & 33 deletions .github/workflows/abi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,60 +2,152 @@ name: ABI checks

on:
push:
branches: [ master ]
branches: [ "master", "dev" ]
pull_request:
branches: [ master ]
branches: [ "master", "dev" ]

env:
SRT_BASE: v1.5.0

jobs:
build:
name: ABI checks
runs-on: ubuntu-20.04
build_pr:
name: Build current version
runs-on: ubuntu-latest

outputs:
base_version: ${{ steps.build.outputs.SRT_BASE }}
tag_version: ${{ steps.build.outputs.SRT_TAG_VERSION }}
steps:
- uses: actions/checkout@v3
with:
path: pull_request
- name: configure
path: gitview_pr
- id: configure
name: Configure (cmake)
run: |
cd pull_request
cd gitview_pr
mkdir _build && cd _build
cmake -DCMAKE_BUILD_TYPE=Debug -DENABLE_UNITTESTS=ON ../
- name: build
cmake -DCMAKE_BUILD_TYPE=Debug -DENABLE_BONDING=1 -DENABLE_PKTINFO=1 -DENABLE_MAXREXMITBW=1 ../
- id: build
name: Build and dump
run: |
sudo apt install -y abi-dumper
cd pull_request/_build && cmake --build ./
sudo apt install -y abi-dumper abi-compliance-checker tcl
cd gitview_pr
cd _build && cmake --build ./
make install DESTDIR=./installdir
SRT_TAG_VERSION=$(cat version.h |grep SRT_VERSION_MINOR |head -n1 |awk {'print $3'})
abi-dumper libsrt.so -o libsrt-pr.dump -public-headers installdir/usr/local/include/srt/ -lver 0
SRT_BASE="v1.$SRT_TAG_VERSION.0"
echo "SRT_BASE=$SRT_BASE" >> "$GITHUB_ENV"
SRT_TAG_VERSION=v$(../scripts/get-build-version.tcl full)
echo "SRT_TAG_VERSION=$SRT_TAG_VERSION" >> "$GITHUB_OUTPUT"
SRT_TAG=${SRT_TAG_VERSION}dev-$(git rev-parse --short HEAD)
echo "TAGGING PR BUILD: $SRT_TAG"
abi-dumper libsrt.so -o libsrt-pr.dump -public-headers installdir/usr/local/include/srt/ -lver $SRT_TAG
ls -ld libsrt-pr.dump
sha256sum libsrt-pr.dump
SRT_BASE=v$(../scripts/get-build-version.tcl base)
if [[ $SRT_TAG_VERSION == $SRT_BASE ]]; then
echo "NOT CHECKING ABI: base version is being built: $SRT_TAG (not emitting SRT_BASE)"
#echo "SRT_BASE=''" >> "$GITHUB_OUTPUT"
else
echo "WILL CHECK ABI changes $SRT_BASE - $SRT_TAG_VERSION"
echo "SRT_BASE=$SRT_BASE" >> "$GITHUB_OUTPUT"
fi
echo "--- GITHUB_OUTPUT ---"
cat $GITHUB_OUTPUT
echo "---------------------"
- id: upload_pr_dump
uses: actions/upload-artifact@v4
with:
name: abidump_pr
path: gitview_pr/_build/libsrt-pr.dump

build_base:
name: Build base version
runs-on: ubuntu-latest
needs: build_pr
if: ${{ needs.build_pr.outputs.base_version != '' }}

env:
SRT_BASE: ${{ needs.build_pr.outputs.base_version }}
SRT_TAG_VERSION: ${{ needs.build_pr.outputs.tag_version }}
steps:
- uses: actions/checkout@v3
with:
path: tag
path: gitview_base
ref: ${{ env.SRT_BASE }}
- name: configure_tag
- id: configure_tag
name: Configure (cmake)
run: |
echo $SRT_TAG_VERSION
cd tag
echo "TAG:$SRT_TAG_VERSION BASE:$SRT_BASE"

#This is currently a paranoid check - the if should do the job
if [[ -z $SRT_BASE ]]; then
echo "NO BASE DEFINED. NOT BUILDING"
exit 1
fi
cd gitview_base
mkdir _build && cd _build
cmake -DCMAKE_BUILD_TYPE=Debug -DENABLE_UNITTESTS=ON ../
- name: build_tag
cmake -DCMAKE_BUILD_TYPE=Debug -DENABLE_BONDING=1 -DENABLE_PKTINFO=1 -DENABLE_MAXREXMITBW=1 ../
- id: build_tag
name: Build and dump
if: ${{ success() }}
run: |
cd tag
sudo apt install -y abi-dumper
sudo apt install -y tcl
cd gitview_base
cd _build && cmake --build ./
make install DESTDIR=./installdir
abi-dumper libsrt.so -o libsrt-tag.dump -public-headers installdir/usr/local/include/srt/ -lver 1
echo "TAGGING BASE BUILD: $SRT_BASE"
abi-dumper libsrt.so -o libsrt-base.dump -public-headers installdir/usr/local/include/srt/ -lver $SRT_BASE
ls -ld libsrt-base.dump
sha256sum libsrt-base.dump
- id: upload_base_dump
uses: actions/upload-artifact@v4
with:
name: abidump_base
path: gitview_base/_build/libsrt-base.dump

check_abi:
name: Compare ABI
runs-on: ubuntu-latest
needs: [build_pr, build_base]
env:
SRT_BASE: ${{ needs.build_pr.outputs.base_version }}

steps:
- name: Download base dump
uses: actions/download-artifact@v4
with:
name: abidump_base
path: .
- name: Download pr dump
uses: actions/download-artifact@v4
with:
name: abidump_pr
path: .
- name: abi-check
run: |
git clone https://github.com/lvc/abi-compliance-checker.git
cd abi-compliance-checker && sudo make install && cd ../
abi-compliance-checker -l libsrt -old tag/_build/libsrt-tag.dump -new pull_request/_build/libsrt-pr.dump
RES=$?
if (( $RES != 0 ))
then
echo "ABI/API Compatibility check failed with value $?"
exit $RES
fi
sudo apt install -y abi-dumper abi-compliance-checker tcl
echo "FILESYSTEM state before running abi-check at $PWD"
ls -l
sha256sum libsrt-base.dump
sha256sum libsrt-pr.dump
RES=0
abi-compliance-checker -l libsrt -old libsrt-base.dump -new libsrt-pr.dump || RES=$?
# Flatten the report for download-preview
cd compat_reports
REPORT=$(find . -name *.html)
cp $REPORT compat_report.html
cd ..
if (( $RES != 0 )); then
echo "ABI/API Compatibility check failed with value $?"
echo "RES=$RES" >>$GITHUB_ENV
exit 0
fi
- name: Download report
uses: actions/upload-artifact@v7
with:
name: abi-compliance-report
path: compat_reports/compat_report.html
archive: false
- name: Final result
run: |
echo "Final result: $RES"
exit $RES
6 changes: 3 additions & 3 deletions .github/workflows/android.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@ name: Android

on:
push:
branches: [ master ]
branches: [ "master", "dev" ]
pull_request:
branches: [ master ]
branches: [ "master", "dev" ]

jobs:
build:
name: NDK-R23
runs-on: ubuntu-20.04
runs-on: ubuntu-latest

steps:
- name: Setup Android NDK R23
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ name: "CodeQL"

on:
push:
branches: [ "master", "experimental/socket-groups" ]
branches: [ "master", "dev" ]
pull_request:
branches: [ "master" ]
branches: [ "master", "dev" ]

jobs:
analyze:
Expand Down
21 changes: 21 additions & 0 deletions .github/workflows/codespell.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
name: codespell

on: pull_request

jobs:
spellcheck:
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.10'

- name: Install dependencies with pip
run: pip install --no-warn-script-location --user codespell

- name: Spellcheck
run: codespell --config scripts/codespell/codespell.cfg
25 changes: 0 additions & 25 deletions .github/workflows/cxx11-macos.yaml

This file was deleted.

Loading