Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
274 commits
Select commit Hold shift + click to select a range
96e92dd
Adjusted to the latest changes in the group branch, per changes in ma…
Oct 25, 2022
bdc6fff
Updated and post-fixed
Oct 25, 2022
a68d5cf
Updated for latest master
Oct 26, 2022
d2d1c90
Merge branch 'master' into dev-processdata-refax
Oct 26, 2022
89e927f
Added lacking fix for AEAD
Oct 26, 2022
a56c84d
Fixed: block static variable that might be unused when no logging (tr…
Oct 27, 2022
0168c5e
Fixed after PR comments
Nov 1, 2022
870509f
Renamed getPacketPTS. Moved call to obtain PTS under belated condition
Nov 3, 2022
9f5174c
Merge branch 'dev-processdata-refax' into dev-refax-buffer-tsbpd-trig…
Nov 7, 2022
652e35d
Applied changes for improved TSBPD and receiver buffer
Nov 7, 2022
6295cb9
Updated and fixed
Nov 8, 2022
36c1f67
Updated usage of shortcuts and new names
Nov 8, 2022
1fbd754
Merge branch 'master' into dev-refax-buffer-tsbpd-triggers
Nov 9, 2022
478ca41
Merge branch 'master' into dev-refax-buffer-tsbpd-triggers
Nov 10, 2022
8335cbe
Fixed some logs formatting
ethouris Nov 10, 2022
df46c57
Updated to latest upstream
Nov 23, 2022
1df7e40
Updated and fixed
Dec 6, 2022
2424c99
Fixing implicit integer and wrong use of SRT_ERROR and SRT_INVALID_SO…
Dec 22, 2022
6ad1041
[MAINT] Fixed example buildbreaks. Added examples for message mode tr…
ethouris Dec 22, 2022
340f0b5
Updated
ethouris Dec 22, 2022
29e8c19
Fixed wrong assertion for drop snd buf sequence check
Dec 23, 2022
31b3a78
Updated
Dec 23, 2022
ce98b8a
[MAINT] Refax for CSndBuffer::readData to make the call form clearer
Dec 23, 2022
333eaf2
[MAINT] Removed reference fields from CPacket pinned to the SRT header
Dec 23, 2022
43c0883
Updated and fixed
Dec 23, 2022
6e2280d
Updated with the fixes
Dec 23, 2022
0b515e8
Updated
Dec 23, 2022
124ec2b
[BUG] Fixed default reject reason for a listener callback
ethouris Jan 9, 2023
f14c349
Added extended reject reason string API
Jan 9, 2023
09d480d
Fixed testing app to set unauthorized rejection code for a better exa…
ethouris Jan 9, 2023
512e548
Merge branch 'master' into dev-fix-implicit-int
Jan 11, 2023
08d1e5c
Minor fixes
Jan 11, 2023
4888873
Merge branch 'master' into dev-refax-readdata-rexmit
Jan 11, 2023
b92e259
Merge branch 'master' into dev-add-rejectreasonx-str
ethouris Jan 12, 2023
dba39ef
Merge branch 'master' into dev-refax-readdata-rexmit
Jan 24, 2023
addefb3
Merge branch 'master' into dev-fix-implicit-int
Jan 25, 2023
03c19ac
Merge branch 'master' into dev-refax-readdata-rexmit
Feb 20, 2023
b0e681f
Updated and fixed
Feb 20, 2023
f636ce7
Updated and fixed
Feb 22, 2023
b53a091
[FIX] Calculate correctly max payload size per UDP packet
Mar 1, 2023
a8b9104
Applied verification of the payload size fit. Added tests. Updated do…
Mar 3, 2023
56fdfdb
Withdrawn quotes for option names
Mar 3, 2023
d7f32d0
Fixed links in the socket option table
Mar 3, 2023
70de763
Fixed minimum MSS to 116. Fixed some other bux
Mar 6, 2023
2eb1159
Replaced rand_r with std c++ random
Mar 6, 2023
9f48d3c
Fixed usage of C++14 literals in the test (build failures)
Mar 6, 2023
edbb608
[MAINT] Upgraded CI: ubuntu to version 20.04
Mar 6, 2023
26a7be6
Fixed test logics (printing after closing)
Mar 6, 2023
3d387a2
Attempted fix for a deadlock in test, added some tracking
Mar 6, 2023
03717f3
Merge branch 'dev-upgrade-ci-ubuntu' into dev-fix-ipv6-payloadsize
Mar 6, 2023
3eef592
Added expect and tracking to close socket in ReuseAddr test (Travis p…
Mar 6, 2023
e2ab5f6
Used relaxed signaling for the sake of Travis
Mar 6, 2023
d081e50
Lock debug fix for tests
ethouris Mar 7, 2023
ba5f962
Added timeout for lock-CV to avoid Travis problem
ethouris Mar 7, 2023
320a79b
Attempted more debug for test ipv6 for Travis
ethouris Mar 7, 2023
1b3ccd7
More debug for Travis
ethouris Mar 7, 2023
90b13b1
Fixed test ipv6 to use promise-future for synchronization
Mar 7, 2023
bc4059c
Fixed filtering-out IPv6 tests for Travis
Mar 7, 2023
11574a0
Fixed wrong comment
Mar 9, 2023
fabb85f
Updated with upstream and fixed
Apr 28, 2023
3781775
Merge branch 'master' into dev-refax-readdata-rexmit
May 4, 2023
d126e64
Merge branch 'master' into dev-refax-remove-cpacket-refs
May 8, 2023
380e12f
Updated to latest upstream through #2594
May 8, 2023
88b9f33
Fixed build break on Android
May 10, 2023
397dc7c
[core] Fixed overrideSndSeqNo() not clear buffer.
gou4shi1 Jun 15, 2023
7cc801f
Updated and fixed
Sep 8, 2023
7658145
Fixed a bug introduced during upstream merge
Sep 11, 2023
41a86bf
Fixed tests that should require IPv6 enabled
Sep 11, 2023
084c9c5
Merge branch 'master' into dev-refax-remove-cpacket-refs
Sep 14, 2023
185276c
Merged and fixed
Sep 14, 2023
45809bd
Pre-refax of change-independent parts for 2677
Sep 18, 2023
c782bf7
Merge branch 'dev-fix-ipv6-payloadsize-prefax' into dev-fix-ipv6-payl…
Sep 18, 2023
848857b
Merge branch 'master' into dev-fix-ipv6-payloadsize
Sep 18, 2023
0c3abe0
A fix from code review
Sep 18, 2023
ce2a043
Apply SOME suggestions from the doc review (others pending)
ethouris Sep 19, 2023
ae914e5
Merged and stabilized
Sep 19, 2023
519cb7e
Merge branch 'master' into dev-refax-buffer-tsbpd-triggers
Sep 19, 2023
4bb7b47
Added mutex spec to a function
Sep 19, 2023
ccfb0b6
Updated and fixed
Sep 19, 2023
d179878
Added more thread check entries
Sep 19, 2023
422cbed
Merge branch 'master' into dev-fix-ipv6-payloadsize
Sep 19, 2023
fa40417
Some more explanatory comments to enforce checkin
Sep 19, 2023
5c2c876
Apply suggestions from doc review (still pending)
ethouris Sep 19, 2023
0403820
Update doc review (still pending)
ethouris Sep 19, 2023
e02d85a
Apply suggestions from doc review (complete)
ethouris Sep 19, 2023
6074f21
Added extra v6-to-v6 test to check correct payload size
Oct 2, 2023
200e3c5
Updated and fixed
Oct 9, 2023
1ffde27
Merge branch 'master' into dev-refax-readdata-rexmit
Oct 10, 2023
58fbf27
Updated and fixed
Oct 10, 2023
a0de6ff
Merge branch 'dev-refax-remove-cpacket-refs' into dev-fix-implicit-int
Oct 10, 2023
920969b
Synchronized and improved
Oct 10, 2023
7a4e00c
Fixed clang warnings (build break on some CI)
Oct 10, 2023
a1c4e70
Merge branch 'master' into dev-epoll-listener-init
Oct 10, 2023
6827df7
Added tests for more cases and fixed remaining failures. STILL mutex …
Oct 11, 2023
039291c
Fixed the problem with locking
Oct 11, 2023
bd9c4de
Fixed a problem: invalid per-listener report of member connections. A…
Oct 13, 2023
8d3c5ca
Updated documentation
Oct 13, 2023
ab96b4d
Weird warning/error on Mac
Oct 13, 2023
9b93a3a
Some cosmetic fixes. Fixes for CI build breaks
Oct 16, 2023
33de3eb
Fixed rejection code naming
Oct 16, 2023
6eafd0f
Updated
Oct 16, 2023
dc7f437
Added an API function to control the payload size
Oct 17, 2023
49346a2
Removed BytesPacketsCount. Shifted header size to a function parameter
Oct 18, 2023
7644107
Updated
Oct 18, 2023
f34776d
Remaining bugfix
Oct 19, 2023
e1262cc
Added documentation for srt_getmaxpayloadsize
Oct 19, 2023
f91f75a
Added group contents check and configurable sleep for group/listener …
Oct 30, 2023
8072420
Fixed warn-error build break on mac
Oct 30, 2023
188cbd1
Fixed build break on more pedantic compilers
Oct 30, 2023
cf3850c
Updated and postfixed
Jan 19, 2024
122d8a2
Merge branch 'master' into dev-epoll-listener-init
Jan 23, 2024
e8cd37d
Further fixes for OptionProxy. Some cosmetics in the docs
Jan 23, 2024
94fb676
Updated to latest upstream
Feb 15, 2024
8ad69ed
Fixed a suggested uninitialized variable
Feb 15, 2024
bbced79
Renamed eclipsed variable
Feb 16, 2024
5136ca2
Added doxy description for some functions. Applied NonOrder in names …
Feb 16, 2024
f6e0271
Removed wrong fix. Fixed C++11 style initialization of PacketInfo
Feb 16, 2024
072a8c4
Refax: CRcvBuffer extracted some parts of insert() to separate functions
Feb 16, 2024
8c0102a
Updated and fixed
Feb 19, 2024
d28e3b2
Introduced SRTRUNSTATUS to cover all cases of srt_startup(). Fixed do…
Feb 19, 2024
be302ca
Removed srt::isgroup. Reused CUDT::isgroup where applicable. Added mi…
Feb 20, 2024
1830e3a
Merge branch 'master' into dev-refax-buffer-tsbpd-triggers
Feb 22, 2024
283021e
Apply suggestions from code review
ethouris Feb 28, 2024
b969a83
Remaining post-review fixes
Feb 28, 2024
df237d6
Merge branch 'master' into dev-refax-buffer-tsbpd-triggers
Feb 29, 2024
6ebf94f
Withdrawn changes from #2858 as they break ABI compat
Mar 5, 2024
3601861
[core] Restored logger perf improvements that were blocked up to 1.6.0
Mar 5, 2024
d8f485a
Merge branch 'master' into dev-refax-buffer-tsbpd-triggers
Mar 11, 2024
d9f079a
Turned integer-based values to strong types. CHECKPOINT: tests passed
Jun 3, 2024
ab469d6
Fixed previous problems with receiver buffer
Jun 10, 2024
a2b1b44
First working version with end/drop as offset
ethouris Jun 17, 2024
ff16e68
Blocked development support types and fixed the test
Jun 17, 2024
1f6ac3d
Updated to latest upstream
Jun 18, 2024
fa70fda
Merged changes
Jun 18, 2024
1bf93ff
Cleanup of the commented-out code
Jun 18, 2024
f4f22ba
Cleaning up other temporary development entries
Jun 18, 2024
9967d1d
Fixed the old test. Added one more test to close during connection
Jun 25, 2024
0a88fdf
Updated and fixed
Aug 14, 2024
db0d8a1
[core] Average values for sent/recv bitrate are now over last second.
npanhaleux Aug 19, 2024
5e98108
Auto stash before merge of "NPA" and "origin/NPA"
npanhaleux Aug 19, 2024
78b3412
[core] Adding packet header size in average measure
npanhaleux Aug 19, 2024
cd42a9b
[core] Fixing auto merge removed methode
npanhaleux Aug 19, 2024
ba41815
[core] Refactoring pull request
npanhaleux Aug 22, 2024
768db18
[core] Compiler warning fix
npanhaleux Aug 22, 2024
1d3e608
[core] Removing inheritance and fixing issue in rate compute
npanhaleux Aug 22, 2024
a3c8a82
[core] Changing stats var name
npanhaleux Aug 22, 2024
0eb1cf7
[core] Restoring CSndRateEstimator
npanhaleux Aug 22, 2024
85161cf
[core] Refactoring rate compute and variables name
npanhaleux Aug 26, 2024
ba78d54
Merge branch 'master' into dev-fix-2029
Aug 26, 2024
1fb7fab
[core] Fixing division by 0.
npanhaleux Aug 26, 2024
a46819b
[core] Removing unused variable (copy/paste from mother class)
npanhaleux Aug 26, 2024
cb44223
[core] Removing unused variable from c file too...
npanhaleux Aug 26, 2024
50da652
Fixed unnecessary condition. Added more atomics (data race fix)
Aug 26, 2024
0d78572
Fixes for atomic field
Aug 26, 2024
74a27ed
Updated and fixed
Aug 29, 2024
7aa87a5
Merge branch 'master' into dev-restore-logger-changes
Sep 2, 2024
fc9482b
Really restored changes
Sep 2, 2024
cb00cce
Added option to disable test discovery (off by default)
Sep 3, 2024
5bc71e9
BUGFIX: the buffer info extraction function wasn't mutex-protected
Sep 4, 2024
d1e2540
Updated and fixed
Sep 6, 2024
f26a087
Updated and fixed
Sep 6, 2024
291c6c2
Updated and fixed
Sep 9, 2024
97c96fa
Merge branch 'master' into dev-epoll-listener-init
Sep 10, 2024
90c2888
Updated. Added new test from #1891. Added doc info
Sep 10, 2024
a516140
Fixed right types for EXPECT_EQ calls in new tests
Sep 10, 2024
461def5
Added setting UPDATE event on group on new connection. Fixed test wit…
Sep 11, 2024
c18940b
Updated and fixed
Sep 24, 2024
51b2555
Fixed build break in log
Sep 24, 2024
739adf0
Changed blocked test code to conditionally-enabled
Sep 25, 2024
3376247
Updated and fixed
Sep 27, 2024
1e57db3
[BUG] Fixed desynch between deleted socket and unsubscribing from epo…
Dec 18, 2024
6bbd31d
Merge branch 'master' into dev-refax-buffer-tsbpd-triggers
Dec 18, 2024
5cba144
Reworked attributes. Put inc() method of CSeqNo in use for clarity
Dec 19, 2024
89d008a
[API] Set up length limits for STREAMID and PACKETFILTER in the API
Jan 9, 2025
90b1876
Merge branch 'master' into dev-refax-buffer-tsbpd-triggers
Mar 3, 2025
9c11019
Cosmetics. Added MSVC version of [[nodiscard]].
Mar 4, 2025
04e6e49
[MAINT] Added optional test discovery. Added improvements for attributes
Mar 4, 2025
7ed0cdb
Updated to latest upstream
Mar 11, 2025
f15beec
Updated to latest upstream
Mar 11, 2025
6875d7f
Merge branch 'master' into dev-restore-logger-changes
Mar 12, 2025
9982596
Merge branch 'master' into dev-add-rejectreasonx-str
Mar 12, 2025
e5c9b20
Merge branch 'master' into overrideSndSeqNo
ethouris Mar 12, 2025
1fe9a3f
Updated to latest upstream
Mar 12, 2025
f7e2706
Merge branch 'master' into dev-fix-2029
Mar 12, 2025
da0d2df
Minimized changes. Fixed incorrect test initialization
Mar 12, 2025
c8800a4
Fixed pedantic C++
Mar 12, 2025
ed4b6cf
Fixed pedantic C++ v2
Mar 12, 2025
e50864b
Merge branch 'master' into dev-fix-connection-dispatch-to-accepted
Mar 12, 2025
8cfd3de
Fixed pedantic error in a test
Mar 13, 2025
67ad151
Again
Mar 13, 2025
9190f11
Wrong fix
Mar 13, 2025
9e16dfc
Merge branch 'dev-fix-ipv6-payloadsize' into development
Mar 13, 2025
31b9a78
Fixed after merge dev-fix-implicit-int
Mar 13, 2025
f333e19
Merge branch 'dev-restore-logger-changes' into development
Mar 13, 2025
136ff1e
Fixed after merging dev-add-rejectreasonx-str
Mar 13, 2025
dbf9b1d
Merge branch 'dev-refax-buffer-tsbpd-triggers' into development
Mar 13, 2025
6b966f7
Fixed after merge dev-epoll-listener-init
Mar 13, 2025
bbd6dc3
Merge remote-tracking branch 'remotes/gou4shi1/overrideSndSeqNo' into…
Mar 13, 2025
ae19cbf
Merge remote-tracking branch 'npa/NPA' into development
Mar 13, 2025
f4613ab
Fixed after merge: dev-fix-connection-dispatch-to-accepted
Mar 13, 2025
f2fd31b
Fixed after merge dev-fix-unsubscribed-epoll
Mar 13, 2025
0179dc6
Merge branch 'dev-make-sid-len-in-api' into development
Mar 13, 2025
db5e967
Fixed after merge dev-update-build-and-attr
Mar 13, 2025
d8debf2
Removed unreachable code
Mar 13, 2025
2be1f03
Merge branch 'dev-fix-implicit-int' into development
Mar 13, 2025
5518f1d
Updated from master and fixed
Mar 14, 2025
79cd032
TESTING CI: ABI Checks with displayable HTML
Mar 14, 2025
912125e
Moved accept wait before epoll in ConnectNonBlocking
Mar 14, 2025
205bc94
Withdrawn HTML preview for ABI (doesn't work)
Mar 14, 2025
e017b14
TEST: Check if ConnectNonBlocking can prevent connection by delaying …
Mar 14, 2025
8fc42a6
Merged and fixed dev-fix-2980
Mar 14, 2025
0edccb3
Changed paths to checked code by Sonar
Mar 14, 2025
42dc6a8
[MAINT] Added information about the CM process as a marker change in …
Mar 18, 2025
85373e8
[MAINT] Added information about the CM process as first change in dev…
Mar 18, 2025
7148e85
[FIX] Calculate correctly max payload size per UDP packet (#2677)
ethouris Mar 18, 2025
aa91b88
[MAINT] Updated github actions to work on dev branch (#3147)
ethouris Mar 18, 2025
ddc5d0a
[MAINT] Added script for manual ABI checks (#3148)
ethouris Mar 19, 2025
53a09f3
[core] Fixed: closing socket should mark and signal so that srt_conne…
ethouris Mar 19, 2025
c879cc2
[core] Carry over also the interface number with PKTINFO (#2982)
ethouris Mar 19, 2025
881c513
[core][API] Obtaining local interfaces to allow getting connected dev…
ethouris Mar 19, 2025
55216a2
[core] Restored logger perf improvements that were blocked up to 1.6.…
ethouris Mar 19, 2025
3a7b359
Fixed bug: initial state of an epoll eid for listener socket not set …
ethouris Mar 19, 2025
75f56d9
[core] Fixed overrideSndSeqNo() not clear buffer. (#2753)
gou4shi1 Mar 19, 2025
b397bc6
[core] New moving average value for sent/recv rates over last second …
npanhaleux Mar 19, 2025
178a82b
[core] Fixed final HS dispatch to already accepted socket with the la…
ethouris Mar 19, 2025
3d4b117
[BUG] Fixed desynch between deleted socket and unsubscribing from epo…
ethouris Mar 19, 2025
b890a1d
[API] Set up length limits for STREAMID and PACKETFILTER in the API (…
ethouris Mar 19, 2025
4ce1757
[MAINT] Added optional test discovery. Added improvements for attribu…
ethouris Mar 19, 2025
8330296
Post-fix for invalidly resolved merge conflict
Mar 19, 2025
314b6d2
[API] Removed setting +W for a listener socket after accept ready (#2…
maxsharabayko Mar 19, 2025
20cef08
Added messages for access control rejection messages (#2606)
ethouris Mar 19, 2025
1b050ad
[BUG] Fixed the use of the right error constant (#2595)
ethouris Mar 19, 2025
9746d34
[MAINT] Removed compile option dependencies in the API. (#3146)
ethouris Mar 19, 2025
d971dd4
[DOC] Hotfix: #2585 already done through another PR, removed irreleva…
Mar 20, 2025
27dd2bc
Logic refax: new rules for the receiver buffer and TSBPD (#2527)
ethouris Mar 20, 2025
695302d
[MAINT] Sonar: changed definition of the directories
Mar 20, 2025
5528685
Updated from 'dev' branch for checking
Mar 20, 2025
58a68dd
Updated balancing documentation (#1226)
ethouris Mar 20, 2025
f60773c
[core][apps][doc] Implemented the socket close reason feature (#2747)
ethouris Mar 21, 2025
23169ce
Merge branch 'master' into dev
Mar 21, 2025
294f696
Merge branch 'dev' into development
Mar 21, 2025
44d4e79
Added fixes to sync with dev
Mar 21, 2025
68e7442
[HOTFIX] Formalize initialization of CloseInfo structure, per Sonar f…
Mar 21, 2025
3c159ed
[CI] Upgraded Ubuntu version for cxx11-ubuntu over deprecated 20.04
Apr 8, 2025
2201f56
[REFAX] Refactored function calls at close socket for preparing a cha…
ethouris Apr 8, 2025
02b2cc4
Downgraded Ubuntu in cxx11-ubuntu to 22.04 (gtest failure)
Apr 8, 2025
e01ec7c
Merge remote-tracking branch 'origin/dev' into dev
Apr 8, 2025
acb56b8
[CI] Uplifted GTest download version to 1.12 (1.10 was buggy)
Apr 8, 2025
64b6ac1
[DEV] Updated ABI checker to use correct version ABI checks. (#3156)
ethouris Apr 9, 2025
1f8a82b
Merge branch 'patch-dev' into dev
cruex-de May 5, 2025
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
82 changes: 58 additions & 24 deletions .github/workflows/abi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,60 +2,94 @@ 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
build_pr:
name: Build current version
runs-on: ubuntu-20.04

outputs:
SRT_BASE: ${{ steps.commands.outputs.SRT_BASE }}
steps:
- uses: actions/checkout@v3
with:
path: pull_request
path: gitview_pr
- name: configure
run: |
cd pull_request
cd gitview_pr
mkdir _build && cd _build
cmake -DCMAKE_BUILD_TYPE=Debug -DENABLE_UNITTESTS=ON ../
- name: build
run: |
sudo apt install -y abi-dumper
cd pull_request/_build && cmake --build ./
sudo apt install -y tcl
cd gitview_pr/_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)
SRT_TAG=${SRT_TAG_VERSION}dev-$(git rev-parse --short HEAD)
abi-dumper libsrt.so -o libsrt-pr.dump -public-headers installdir/usr/local/include/srt/ -lver $SRT_TAG
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"
echo "SRT_BASE=''" >> "$GITHUB_OUTPUT"
exit 0
fi
echo "SRT_BASE=$SRT_BASE" >> "$GITHUB_OUTPUT"

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

env:
SRT_BASE: ${{ needs.build_pr.outputs.SRT_BASE }}
steps:
- uses: actions/checkout@v3
with:
path: tag
path: gitview_base
ref: ${{ env.SRT_BASE }}
- name: configure_tag
run: |
echo $SRT_TAG_VERSION
cd tag
cd gitview_base
mkdir _build && cd _build
cmake -DCMAKE_BUILD_TYPE=Debug -DENABLE_UNITTESTS=ON ../
- name: build_tag
run: |
cd tag
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
abi-dumper libsrt.so -o libsrt-base.dump -public-headers installdir/usr/local/include/srt/ -lver $SRT_BASE

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

steps:
- 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
#git clone https://github.com/lvc/abi-compliance-checker.git
cd gitview_pr/submodules
git submodule update --init abi-compliance-checker
cd abi-compliance-checker && sudo make install && cd ../
cd ../..
abi-compliance-checker -l libsrt -old gitview_base/_build/libsrt-base.dump -new gitview_pr/_build/libsrt-pr.dump
RES=$?
if (( $RES != 0 )); then
echo "ABI/API Compatibility check failed with value $?"
exit $RES
fi
- name: Download report
uses: actions/download-artifact@v4
with:
path: compat_reports
4 changes: 2 additions & 2 deletions .github/workflows/android.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ name: Android

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

jobs:
build:
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
4 changes: 2 additions & 2 deletions .github/workflows/cxx11-macos.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ name: cxx11

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

jobs:
build:
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/cxx11-ubuntu.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@ name: cxx11

on:
push:
branches: [ master ]
branches: [ "master", "dev" ]
pull_request:
branches: [ master ]
branches: [ "master", "dev" ]
types: [opened, synchronize, reopened]
jobs:
build:
name: ubuntu
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
env:
BUILD_WRAPPER_OUT_DIR: sonar-output # Directory where build-wrapper output will be placed
steps:
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/cxx11-win.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ name: cxx11

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

jobs:
build:
Expand All @@ -17,7 +17,7 @@ jobs:
- name: configure
run: |
md _build && cd _build
cmake ../ -DENABLE_STDCXX_SYNC=ON -DENABLE_ENCRYPTION=OFF -DENABLE_UNITTESTS=ON -DENABLE_BONDING=ON -DUSE_CXX_STD=c++11
cmake ../ -DENABLE_STDCXX_SYNC=ON -DENABLE_ENCRYPTION=OFF -DENABLE_UNITTESTS=ON -DENABLE_BONDING=ON -DENABLE_LOCALIF_WIN32=ON -DUSE_CXX_STD=c++11
- name: build
run: cd _build && cmake --build ./ --config Release --verbose
- name: test
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/iOS.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ name: iOS

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

jobs:
build:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/s390x-focal.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ name: QEMU to run s390x-focal

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

jobs:
Tests:
Expand Down
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "submodules/abi-compliance-checker"]
path = submodules/abi-compliance-checker
url = https://github.com/lvc/abi-compliance-checker.git
22 changes: 19 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
#

cmake_minimum_required (VERSION 2.8.12 FATAL_ERROR)
set (SRT_VERSION 1.0.2)
set (SRT_VERSION 1.6.0)

set (CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/scripts")
include(haiUtil) # needed for set_version_variables
Expand Down Expand Up @@ -173,6 +173,7 @@ option(ENABLE_PKTINFO "Enable using IP_PKTINFO to allow the listener extracting
option(ENABLE_RELATIVE_LIBPATH "Should application contain relative library paths, like ../lib" OFF)
option(ENABLE_GETNAMEINFO "In-logs sockaddr-to-string should do rev-dns" OFF)
option(ENABLE_UNITTESTS "Enable unit tests" OFF)
option(ENABLE_UNITTESTS_DISCOVERY "Do not discover unit tests when enabled" ON)
option(ENABLE_ENCRYPTION "Enable encryption in SRT" ON)
option(ENABLE_AEAD_API_PREVIEW "Enable AEAD API preview in SRT" Off)
option(ENABLE_MAXREXMITBW "Enable SRTO_MAXREXMITBW (v1.6.0 API preview)" Off)
Expand All @@ -186,6 +187,7 @@ option(USE_OPENSSL_PC "Use pkg-config to find OpenSSL libraries" ON)
option(SRT_USE_OPENSSL_STATIC_LIBS "Link OpenSSL libraries statically." OFF)
option(USE_BUSY_WAITING "Enable more accurate sending times at a cost of potentially higher CPU load" OFF)
option(USE_GNUSTL "Get c++ library/headers from the gnustl.pc" OFF)
option(ENABLE_LOCALIF_WIN32 "Enable local interface check ability on Windows (adds Iphlpapi.lib dep)" OFF)
option(ENABLE_SOCK_CLOEXEC "Enable setting SOCK_CLOEXEC on a socket" ON)
option(ENABLE_SHOW_PROJECT_CONFIG "Enable show Project Configuration" OFF)

Expand Down Expand Up @@ -739,7 +741,7 @@ if (FORCE_CXX_STANDARD)
endif()

# add extra warning flags for gccish compilers
if (HAVE_COMPILER_GNU_COMPAT)
if ((HAVE_COMPILER_GNU_COMPAT) AND (NOT DEFINED SRT_GCC_WARN))
set (SRT_GCC_WARN "-Wall -Wextra")
if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 7.0 AND CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
set (SRT_GCC_WARN "${SRT_GCC_WARN} -Wshadow=local")
Expand Down Expand Up @@ -1113,6 +1115,10 @@ if (srt_libspec_shared)
if (ENABLE_ENCRYPTION)
target_link_libraries(${TARGET_srt}_shared PRIVATE ${SSL_LIBRARIES})
endif()
if (WIN32 AND ENABLE_LOCALIF_WIN32)
target_link_libraries(${TARGET_srt}_shared PRIVATE Iphlpapi)
add_definitions(-DSRT_ENABLE_LOCALIF_WIN32)
endif()
if (MICROSOFT)
target_link_libraries(${TARGET_srt}_shared PRIVATE ws2_32.lib)
if (NOT (ENABLE_ENCRYPTION AND "${USE_ENCLIB}" STREQUAL "botan"))
Expand All @@ -1134,6 +1140,10 @@ endif()

if (srt_libspec_static)
add_library(${TARGET_srt}_static STATIC ${OBJECT_LIB_SUPPORT} ${VIRTUAL_srt})
if (WIN32 AND ENABLE_LOCALIF_WIN32)
target_link_libraries(${TARGET_srt}_static PRIVATE Iphlpapi)
add_definitions(-DSRT_ENABLE_LOCALIF_WIN32)
endif()

# For Windows, leave the name to be "srt_static.lib".
# Windows generates two different library files:
Expand Down Expand Up @@ -1333,6 +1343,10 @@ macro(srt_add_program_dont_install name)
add_executable(${name} ${ARGN})
target_include_directories(${name} PRIVATE apps)
target_include_directories(${name} PRIVATE common)
if (WIN32 AND ENABLE_LOCALIF_WIN32)
target_link_libraries(${name} Iphlpapi)
add_definitions(-DSRT_ENABLE_LOCALIF_WIN32)
endif()
endmacro()

macro(srt_add_program name)
Expand Down Expand Up @@ -1580,7 +1594,9 @@ if (ENABLE_UNITTESTS AND ENABLE_CXX11)
#set_tests_properties(test-srt PROPERTIES RUN_SERIAL TRUE)
else()
set_tests_properties(${tests_srt} PROPERTIES RUN_SERIAL TRUE)
gtest_discover_tests(test-srt)
if (ENABLE_UNITTESTS_DISCOVERY)
gtest_discover_tests(test-srt)
endif()
endif()

enable_testing()
Expand Down
38 changes: 38 additions & 0 deletions apps/apputil.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
#include <memory>

#include "srt.h" // Required for SRT_SYNC_CLOCK_* definitions.
#include "common.h"
#include "apputil.hpp"
#include "netinet_any.h"
#include "srt_compat.h"
Expand Down Expand Up @@ -389,3 +390,40 @@ void PrintLibVersion()
const int patch = srtver % 0x100;
cerr << "SRT Library version: " << major << "." << minor << "." << patch << ", clock type: " << SRTClockTypeStr() << endl;
}

bool IsTargetAddrSelf(const sockaddr* boundaddr, const sockaddr* targetaddr)
{
sockaddr_any bound = boundaddr;
sockaddr_any target = targetaddr;

if (!bound.isany())
{
// Bound to a specific local address, so only check if
// this isn't the same address as 'target'.
if (target.equal_address(bound))
{
return true;
}
}
else
{
// Bound to INADDR_ANY, so check matching with any local IP address
const vector<srt::LocalInterface>& locals = srt::GetLocalInterfaces();

// If any of the above function fails, it will collect
// no local interfaces, so it's impossible to check anything.
// OTOH it should also mean that the network isn't working,
// so it's unlikely, as well as no address should match the
// local address anyway.
for (size_t i = 0; i < locals.size(); ++i)
{
if (locals[i].addr.equal_address(target))
{
return true;
}
}
}

return false;
}

5 changes: 3 additions & 2 deletions apps/apputil.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -336,6 +336,7 @@ std::string OptionHelpItem(const OptionName& o);

const char* SRTClockTypeStr();
void PrintLibVersion();
bool IsTargetAddrSelf(const sockaddr* boundaddr, const sockaddr* targetaddr);


namespace srt
Expand All @@ -344,7 +345,7 @@ namespace srt
struct OptionSetterProxy
{
SRTSOCKET s;
int result = -1;
SRTSTATUS result = SRT_ERROR;

OptionSetterProxy(SRTSOCKET ss): s(ss) {}

Expand Down Expand Up @@ -384,7 +385,7 @@ struct OptionSetterProxy
return OptionProxy {*this, opt};
}

operator int() { return result; }
operator SRTSTATUS() { return result; }
};

inline OptionSetterProxy setopt(SRTSOCKET socket)
Expand Down
Loading