Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
739 commits
Select commit Hold shift + click to select a range
643de95
Fixed CI build break (incorrect keyword)
Apr 11, 2025
7458efe
Changed default values to track test problems
Apr 11, 2025
a455e54
Eliminated m_vNewEntry as unnecessary
Apr 11, 2025
d447c94
Removed CRendezvousQueue, dissolved in CRcvQueue. Preparation for in-…
Apr 14, 2025
292ba6e
Multiplexer rework. Removed volatile pHash list. (TODO: design hash f…
May 8, 2025
d68264b
Removed shared pointer fields
May 13, 2025
3eac746
Improved encapsulation in CMultiplexer
May 14, 2025
df7cf7c
Changed m_SocketMap type to hash_map
May 15, 2025
bb6aa5c
Improved logging for sender update
May 19, 2025
0b85b03
Replaced CSndQueue::worker with a new loop that does not withdraw soc…
May 21, 2025
417e63e
Cosmetic fixes and bot-reported issues
Jun 16, 2025
d219d1f
Fixed build break on conditionals
Jun 16, 2025
05aa956
Fixed clang reported build break
Jun 16, 2025
03e4efd
Fixed the use of atomic clock with operators
Jun 16, 2025
a2a1394
Fixed invalid type
Jun 16, 2025
4c1aeec
Some CI fixes
Jun 16, 2025
b02fc21
Cosmetix
Jun 16, 2025
f9209ee
Added more info for failing test
Jun 16, 2025
00181e4
[core] Fix incorrectly updated epoll flags in case of group accept
Jun 19, 2025
941231b
Fixed build break
Jun 19, 2025
edbccde
Merged-in 3181
Jun 19, 2025
f96ae5a
Removed mistakenly left debug logs
Jun 19, 2025
6b2af84
Merge branch 'dev-fix-pending-group' into dev-rework-multiplexer
Jun 20, 2025
8ecbd16
Fixed CI entries for Mac/iOS
Jun 20, 2025
19fa2c9
Changed the muxer removal. Withdrawn locking GlobControlLock from wor…
Jun 25, 2025
7b0061e
Updated missing comments. Removed unused commented-out code.
Jun 25, 2025
2864e3c
Finished lacking comment
Jun 25, 2025
5710926
Fixed CI ubuntu version
Jun 25, 2025
393c122
Merge branch 'dev-fix-pending-group' into dev-rework-multiplexer
Jun 25, 2025
dca84db
Updated from latest master
Jul 1, 2025
12961d1
Fixed remaining thread-san reported bugs. Fixed bug: not removing soc…
Jul 4, 2025
baaaf20
Updated to latest dev; fixed.
Jul 4, 2025
2a3d9b3
Attempting to fix CI-reported problems
Jul 4, 2025
de925ea
Added more fixes to prevent deadlocks and data races. Improved tests.…
Jul 9, 2025
aa3160b
Added updates from master
Jul 17, 2025
68747b7
Merge branch 'master' into dev-epoll-listener-init
Jul 17, 2025
df6dd48
Updated to latest upstream
Jul 18, 2025
f4781d4
Fixed Clang TSA to be only turned on on demand
Jul 18, 2025
d6f9e70
Merge branch 'master' into dev-update-build-and-attr
Jul 23, 2025
376723a
Enabled C++17 version of shared mutex when compiling in C++17 mode
Jul 23, 2025
4748c93
[core] Rework m_bListening to lock-free and m_GlobControlLock to use …
Jul 24, 2025
a98d325
Added UT discovery option to configure
Jul 24, 2025
ae1e0d1
Changed enabled std::shared_mutex only if compiling with stdc++-sync
Jul 24, 2025
d6b3446
Fixed problem with not updated sync.cpp SharedMutex
Jul 24, 2025
bd01399
Merge branch 'dev-update-build-and-attr' into dev-rework-mutex-to-shared
Jul 24, 2025
5b9873f
Removed dead code
Jul 24, 2025
3c9678e
Fixed review findings
Jul 24, 2025
493dfe8
Merge branch 'dev-update-build-and-attr' into dev-rework-mutex-to-shared
Jul 24, 2025
14495bf
Demoted some locks on m_GlobControlLock to shared. Added false positi…
Jul 25, 2025
c94369c
Merge remote-tracking branch 'ethouris/dev-fix-ipv6-payloadsize' into…
Jul 25, 2025
b721f5d
Merged dev-fix-2029
Jul 25, 2025
ffb41fa
Merge remote-tracking branch 'ethouris/dev-add-obtaining-network-id' …
Jul 25, 2025
0b38d76
Merge remote-tracking branch 'ethouris/dev-add-script-for-abi-check' …
Jul 25, 2025
5f967df
Merged dev-fix-2980
Jul 25, 2025
548c78b
Merged dev-epoll-listener-init. Checking reports
Jul 25, 2025
c215e6f
Fixed data race
Jul 28, 2025
771661d
Merge branch 'dev-fix-2029' into dev-retrospect-1.6.0
Jul 28, 2025
1ecf670
[MAINT][core] Fixed data race in CTimer
Jul 28, 2025
017b120
Fixed non-waiting-nop version with busy waiting version
Jul 28, 2025
a748ad6
Merged dev-fix-ctimer-race
Jul 28, 2025
9dd2f83
Premature merge of dev-update-build-and-attr
Jul 28, 2025
9eec41c
Merged dev-rework-attributes
Jul 28, 2025
3d3242c
Merged dev-restore-logger-changes
Jul 28, 2025
49017e5
Merged dev-fix-1667. Post-fixed for a detected TSAN.
Jul 28, 2025
18d46d2
Merged dev-fix-unsubscribed-epoll and post-fixed
Jul 29, 2025
db14eeb
Distilled changes for using the right constants
Jul 29, 2025
9f469fa
Merged dev-fix-implicit-int-purge (distilled changes)
Jul 29, 2025
e7e496e
Merged dev-fix-connection-dispatch-to-accepted and post-fixed
Jul 29, 2025
6cf79f2
Merge branch 'master' into dev-remote-api-header-config-dependency-purge
Jul 29, 2025
ab70c58
Merged dev-remote-api-header-config-dependency (purged version)
Jul 29, 2025
b6299da
Further fixes per dev-fix-implicit-int #2595
Jul 30, 2025
9cd2476
Merge remote-tracking branch 'gou4shi1/overrideSndSeqNo' into dev-ret…
Jul 30, 2025
3d34460
Merge remote-tracking branch 'ethouris/dev-make-sid-len-in-api' into …
Jul 30, 2025
f0d2a86
Purged off changes of buggy #3009
Jul 30, 2025
25ff937
Completed remaining changes from dev-fix-implicit-int and dev-add-rej…
Jul 31, 2025
7b702b6
Updated from the current dev line. Removed #3009.
Jul 31, 2025
7e706fe
Updated from dev ongoing branch
Aug 1, 2025
1f8e74a
Removed merger-duplicated code. Restored cleaner version for close re…
Aug 1, 2025
fdf7a48
Updated and purged from unnecessary code
Aug 1, 2025
3d42137
Merged dev-refax-buffer-tsbpd-triggers
Aug 1, 2025
54b7394
Merged dev-doc-update-balancing and post-fixed
Aug 1, 2025
8b9c882
Merged dev-refax-socket-close
Aug 1, 2025
cbcae71
Merged dev-fix-abi-bump-1.6
Aug 1, 2025
fdd3ad9
Fixed problems in Travis CI
Aug 1, 2025
cce04c5
Merge branch 'master' into dev
Aug 1, 2025
74fc1c6
Added some previous dev/CI changes and cosmetic fixes
Aug 1, 2025
767f589
Merged fixed state branch dev-retrospect-1.6.0 to stabilize dev
Aug 4, 2025
43aef45
[BUG/MAINT] Make non-managed sockets forever persistent until manuall…
ethouris Aug 4, 2025
f03b5c9
Updated to latest dev and fixed problems
Aug 5, 2025
47bf67f
[core] Fix incorrectly updated epoll flags in case of group accept (#…
ethouris Aug 6, 2025
31c9063
Added locking for group pointer check in handshake process. Switch so…
Aug 6, 2025
8a85c23
Updated to latest dev and fixed
Aug 8, 2025
cfa02b5
Updated to latest dev
Aug 8, 2025
3e4ab20
Renamed ofmtstream to ofmtbufstream. Added ofmtrefstream. Some cosmetics
Aug 8, 2025
ab3edd4
Applied last changes from 2964
Aug 11, 2025
4f3f90c
Merged dev-add-custom-fmt-for-logging 2964 with fixes
Aug 11, 2025
6f7baf9
Demote non-erroneous log in findPeer
Aug 11, 2025
97c2d82
[MAINT] Refax namespace usage and removed deprecated API (#3197)
ethouris Aug 12, 2025
31a3c78
Updated to dev and fixed
Aug 12, 2025
f36830b
Updated to dev and fixed
Aug 14, 2025
df805b2
Added a single-argument overload for fmt for simple use of iomanips
Aug 14, 2025
ea02931
Merged changes for ofmt from the base
Aug 14, 2025
1d9036a
Updated and fixed
Aug 14, 2025
51c2e30
Changed the tm/put_time application for ofmt
Aug 14, 2025
1481baa
Changed the tm/put_time application for ofmt
Aug 14, 2025
893901f
Fixed: newly added group requires exclusive locking. Fixed some TSA a…
Aug 21, 2025
bdbc76f
Cosmetics
Aug 21, 2025
c8baf68
Updated to latest master
Aug 22, 2025
6fbd81c
Merge branch 'dev' into development
Aug 22, 2025
679f83a
Fixed log-conditional build problem
Aug 22, 2025
bcbae53
Merge branch 'dev' into development
Aug 22, 2025
e51bad6
Fixed unused commented-out code and wrong markers
Aug 22, 2025
0d56c7a
[MAINT] Rework queuing functionality around multiplexer and snd/rcv q…
ethouris Aug 22, 2025
d3282b8
Some more fixes in comments and TSA
Aug 22, 2025
e1d172d
Fixed some findings by codeql (#3202)
ethouris Aug 22, 2025
8e33a80
Updated to latest dev and fixed
Aug 22, 2025
e7c78e8
Merge branch 'dev-add-custom-fmt-for-logging' into development
Aug 25, 2025
d5f9330
Merged dev-add-custom-fmt-for-logging
Aug 25, 2025
d09f6e4
Updated and fixed
Aug 25, 2025
735627a
[MAINT] Fixed wrong solutions for compat C++03 compilation mode (#3205)
ethouris Aug 25, 2025
66ea78d
Merge branch 'dev' into development
Aug 25, 2025
92c7a8b
Merge branch 'dev' into dev-extract-logging-system
Aug 25, 2025
1d93cd0
Merge branch 'dev' into dev-extract-logging-system
Aug 25, 2025
48f61b4
Merge branch 'dev-extract-logging-system' into development
Aug 25, 2025
022aa81
[core] Setting up fmt with custom config structure for logging system…
ethouris Aug 26, 2025
148e2f0
[BUILD][CORE] Extract the logging system into a subproject. (#3119)
ethouris Aug 26, 2025
53efd23
Applied changes from the lastest dev branch
Aug 26, 2025
89ea4dc
Updated and fixed. Changes in CMakefile provided by distillation to t…
Aug 26, 2025
9b20937
CMakeLists.txt cleanup. Changed handling of the C++ standard. Renamed…
Aug 28, 2025
f40a70c
Fixes for Windows and Travis
Aug 28, 2025
6e2ebd8
Fixing Travis syntax
Aug 28, 2025
dfa49cf
Fixing Travis errors
Aug 28, 2025
b3c2866
Fixed Travis script
Aug 28, 2025
7263e90
Set AEAD default ON and only warning if enclib doesn't support
Aug 28, 2025
abfb076
Fixed travis syntax
Aug 28, 2025
cdd6d9f
Extended time to late-break to minimize chance of too early check in …
Aug 28, 2025
5adc39e
Some distinct build error fixes
Aug 28, 2025
b755ddb
Fixed crypto library for MinGW Travis
Aug 28, 2025
59f9432
Tracking problem on MinGW
Aug 29, 2025
3d26b92
Fixed Travis Openssl specification (removed extra quotes)
Aug 29, 2025
c2b65c1
Travis: MinGW changed to stdc++ sync
Aug 29, 2025
b100432
Allowed SYNC=posix for MingW with gcc as well
Aug 29, 2025
902aa17
Disabled SYNC=stdc++ for MinGW on Travis
Aug 29, 2025
432fdbd
Travis/MinGW: --disable-localif-win32 (the required library not found)
Aug 29, 2025
9c2a621
Added debug output to cmake to trace a problem on Travis
Sep 1, 2025
b03296f
Increasing verbosity of cmake in Travis
Sep 1, 2025
13ee6bf
More detailed error grabbing for cmake in Travis
Sep 1, 2025
ceb1ace
Fixed incompatible cmake option for Travis
Sep 1, 2025
da4f38e
Attempt to ensure cmake >= 3.10 on Travis
Sep 1, 2025
d15706a
Fixed googletest version spec in cxx11-macos
Sep 1, 2025
0075151
Added satisfy and install on Travis
Sep 1, 2025
9b3f25e
Added version check and breakup if too old
Sep 1, 2025
e88ad8c
Fixed syntax errors in Travis
Sep 1, 2025
7703ae1
Trying to lift up system version for PowerPC
Sep 1, 2025
e706f03
General upgrade to Focal on Travis
Sep 1, 2025
4ad8ff2
Restoring Xenial, setting Focal only for PPC - Travis
Sep 1, 2025
52c28d1
Added more tracing to EnforcedEncryption tests
Sep 3, 2025
92fa95c
Added extra sleep to check late-rejection to EnforcedEncryption tests
Sep 3, 2025
3016f62
Checking a failed InitialBonding test on PowerPC/monotonic
Sep 3, 2025
4ea6e13
Renamed tests in EnforcedEncryption for better readability
Sep 3, 2025
5af3455
Added extra wait for blocking mode to not check broken accept on forc…
Sep 3, 2025
fb82add
Added more verbose for ABI Checks
Sep 4, 2025
305ef7a
Attempting to fix ABI Checks configuration
Sep 4, 2025
3827f40
Checkup: changed condition for ABI Checks into failure
Sep 4, 2025
f3b4951
Fixed some literals. Turned off UT
Sep 4, 2025
c9726a2
Fixes for ABI checks workflow syntax
Sep 4, 2025
5679d59
Disabled UT for ABI base. Restored condition
Sep 4, 2025
67242b7
Added deps to abi checks base
Sep 4, 2025
19b4966
ABI checks: check what we have
Sep 4, 2025
0b16a8b
Added uploading of dump files as artifacts for ABI Checks
Sep 4, 2025
dbbaf52
Verbose checks for errors in ABI Check
Sep 4, 2025
7bf2ebb
Added integrity checks for dump files in ABI Checks
Sep 4, 2025
02a075a
Changing download path to a directory for ABI Checks
Sep 4, 2025
8670a40
Bump version 1.6.0
Sep 4, 2025
8d46662
ABI Checks: not emitting SRT_BASE output if zero base
Sep 4, 2025
fa16e86
ABI Checks: wrong condition blocked
Sep 4, 2025
448f2e9
Fixing wrong checks for TestIPv6.v6_calls_v4
Sep 4, 2025
45b860b
Merged from dev
Sep 4, 2025
ced4386
Merge branch 'development' into dev-fix-3133
Sep 4, 2025
90681d3
Merged last changes from master, 1.5.5 candidate
Sep 5, 2025
f8db557
Merged dev to propagate updates from master
Sep 5, 2025
2b09e2c
Prevent warning against a heavy-log-only variable
Sep 5, 2025
4e88cb8
[MAINT] Fix, cleanup and simplify CMakeLists.txt (#3135)
ethouris Sep 8, 2025
17be276
Updated to latest dev
Sep 8, 2025
06b048a
Post-fix for #3119 - wrong macro name for conditional heavy logging
Sep 12, 2025
464383f
[core] Rendezvous with pure comparison resolution and adaptive for wr…
ethouris Oct 22, 2025
e9eeb67
[MAINT] Update CI bot configurations (#3238)
ethouris Oct 29, 2025
aaafec4
[BUG] Fixed setting in-transfer IP version on accepted (#3240)
ethouris Oct 29, 2025
0ca90b1
Completed utilities. Extracted comments into docs (#3241)
ethouris Oct 29, 2025
3e027c9
[MAINT] Improvements in logging code, prevents macro dependency. (#3239)
ethouris Oct 29, 2025
44f9255
Improved concurrency in srt_accept (#3242)
ethouris Oct 29, 2025
1b08ad3
[MAINT] Fixes for IP Address handling in sockaddr_any and CIPAddress …
ethouris Oct 31, 2025
f25bc8f
Cosmetic changes. SRTT -> avgRTT. Added some more TSA markers (#3244)
ethouris Oct 31, 2025
a646b09
[MAINT][code] Removed use of pthread_once. Fixed #3115 (#3235)
ethouris Nov 4, 2025
fe9cbf1
[MAINT] Concurrency improvements.
ethouris Nov 4, 2025
1fd2cd6
[MAINT] Improvements for ofmt/logging. Blocked CV thread debug. (#3250)
ethouris Nov 5, 2025
01a5060
Reimplemented CRcvUList/CSndUList as UpdateNode/SendNode using HeapSe…
ethouris Nov 6, 2025
cfe10ff
Merge branch 'dev' into development
Nov 6, 2025
89e15f2
Updated from latest master and fixed
Nov 6, 2025
22c3b50
Merge branch 'dev' into development
Nov 6, 2025
e60baea
Merge post-fix
Nov 6, 2025
bad2331
Merged master again (formally)
Nov 6, 2025
766ad0d
[BUG] Logging system handled FA-off incorrectly. Removed wrong old co…
ethouris Dec 4, 2025
52eb8b2
[BUG] Fixed std::shared_mutex usage for C++17. Removed external clone…
ethouris Dec 11, 2025
5a97a90
Merge branch 'dev' into development
Dec 19, 2025
cb5a0d0
Updated from latest master. BlockingInterruptsd left failing until fix.
Dec 19, 2025
68aef3c
[BUG] srt_close hangup while srt_connect is still blocking (#3260)
ethouris Dec 19, 2025
6f27e74
Integrated fix for close blocking
Dec 19, 2025
1ff80d6
[build] Use "--parallel" argument to cmake build. (#3269)
fujitatomoya Jan 19, 2026
5270836
[build] fix bunch of typos and enable codespell (copy of #3263) (#3274)
cl-ment Jan 21, 2026
aa97a74
Updated from latest master
Jan 21, 2026
770fb02
Updated from master and fixed
Jan 21, 2026
5be7315
Updated from latest master
Feb 13, 2026
8e5844f
Common receiver buffer for groups
Feb 13, 2026
160f012
Applied partial changes (refax) from dev-rework-receiver-unit. Still …
Feb 24, 2026
40b4dfa
[build] add docker and devcontainer consistent build environment. (#3…
fujitatomoya Feb 25, 2026
7672394
[docs] several cosmetic fixes. (#3278)
fujitatomoya Feb 25, 2026
fa775c2
Applied changes for the new Receiver Unit Pool (dead now). Minor comm…
Feb 26, 2026
97b6f2e
Changed condensation to two-pointers. Extracted comments into docs
Mar 5, 2026
a4bb952
fix description for on srt_recv* functions. (#3281)
fujitatomoya Mar 5, 2026
f79fff1
[BUG] Fixed close time record unit for close reason. Extra minor fixe…
ethouris Mar 5, 2026
3f30e4d
Fixed: the incoming data packet is passed after removal from the pool…
Mar 6, 2026
8a0fe8d
Cleanup CodeQL findings
Mar 6, 2026
78dafda
Codespell fixes
Mar 6, 2026
eab00e1
Improvements for BONDING enabler, Windows compiling and portability
ethouris Mar 9, 2026
86f9c7e
Improved fixes for Windows
ethouris Mar 9, 2026
e62bb92
Added document for new unit pool
Mar 9, 2026
2723224
Added intermediate treats-based type for MSVC intrinsics
ethouris Mar 9, 2026
985dc2e
Fixed const pointer cast problem for intrinsics for pointers
ethouris Mar 9, 2026
6f4239a
Minor fixes + codespell ignore tests
Mar 9, 2026
8a73e00
Fixed unused warning. Fixed one more const in windows intrinsics
Mar 9, 2026
33cc111
Fixed usage of unused variable
Mar 9, 2026
d35969e
Fixed usage of unused static function. Configured POSIX-based CI to k…
Mar 9, 2026
6071d49
Minor fixes. Forced using unit pool if bonding enabled
Mar 9, 2026
8663024
Moved read-side CPacketUnitPool container as 'hand' container inside.…
Mar 12, 2026
5ed5e9e
Cleared warnings reported in CI
Mar 12, 2026
b8999e3
Fixed incorrectly fixed API docs
Mar 12, 2026
2528259
Merge branch 'dev' into dev-groups-common-receiver
Mar 12, 2026
d141a75
Added some data race prevention
Mar 12, 2026
c6ecef3
Fixed bug: resize condenser only to the number of copied units. Fixed…
Mar 13, 2026
ce23e3a
Fixed Windows and Mac build break
Mar 13, 2026
cc0671c
Attempting to fix sign-compare-error on Mac
Mar 13, 2026
27186d8
Update receiver-buffer.md
ethouris Mar 13, 2026
9cfcbca
Reviewed CPacketUnitPool description and adjusting to new design
Mar 13, 2026
2e4bc90
Spellcheck fixes. Fixes for C++03 compatibility
Mar 16, 2026
cd62dfb
Merged from master
Mar 16, 2026
b7756e1
Merge branch 'dev' into development
Mar 16, 2026
3046f87
Common receiver buffer for groups (#3286)
ethouris Mar 16, 2026
691a182
[core] Implemented a new sender buffer. (#3255)
ethouris Apr 8, 2026
70cd4ae
Updated to latest dev
Apr 8, 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
1 change: 0 additions & 1 deletion .appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ configuration:
image:
- Visual Studio 2022
- Visual Studio 2019
- Visual Studio 2015

platform:
- x64
Expand Down
19 changes: 19 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"name": "SRT Development",
"dockerFile": "../docker/Dockerfile",
"workspaceFolder": "/srt_build_env",
"workspaceMount": "source=${localWorkspaceFolder},target=/srt_build_env,type=bind",
"customizations": {
"vscode": {
"settings": {
"terminal.integrated.defaultProfile.linux": "bash"
},
"extensions": [
"ms-vscode.cpptools",
"ms-vscode.cmake-tools",
"twxs.cmake"
]
}
},
"remoteUser": "srt-dev"
}
4 changes: 2 additions & 2 deletions .github/workflows/abi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ jobs:
run: |
sudo apt install -y abi-dumper
sudo apt install -y tcl
cd gitview_pr/_build && cmake --build ./
cd gitview_pr/_build && cmake --build ./ --parallel
make install DESTDIR=./installdir
SRT_TAG_VERSION=v$(../scripts/get-build-version.tcl full)
echo "SRT_TAG_VERSION=$SRT_TAG_VERSION" >> "$GITHUB_OUTPUT"
Expand Down Expand Up @@ -89,7 +89,7 @@ jobs:
sudo apt install -y abi-dumper
sudo apt install -y tcl
cd gitview_base
cd _build && cmake --build ./
cd _build && cmake --build ./ --parallel
make install DESTDIR=./installdir
echo "TAGGING BASE BUILD: $SRT_BASE"
abi-dumper libsrt.so -o libsrt-base.dump -public-headers installdir/usr/local/include/srt/ -lver $SRT_BASE
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/cxx03-ubuntu.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
- name: build
# That below is likely SonarQube remains, which was removed earlier.
#run: cd _build && build-wrapper-linux-x86-64 --out-dir ${{ env.BUILD_WRAPPER_OUT_DIR }} cmake --build .
run: cd _build && cmake --build .
run: cd _build && make -j -k
- name: test
run: |
cd _build && ctest --extra-verbose
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 @@ -24,8 +24,8 @@ jobs:
- name: configure
run: |
mkdir _build && cd _build
cmake ../ -DCMAKE_COMPILE_WARNING_AS_ERROR=ON -DENABLE_STDCXX_SYNC=ON -DENABLE_ENCRYPTION=OFF -DENABLE_UNITTESTS=ON -DENABLE_BONDING=ON -DUSE_CXX_STD=17
cmake ../ -DCMAKE_COMPILE_WARNING_AS_ERROR=ON -DENABLE_STDCXX_SYNC=ON -DENABLE_ENCRYPTION=OFF -DENABLE_UNITTESTS=ON -DENABLE_BONDING=ON -DUSE_CXX_STD=17 -DENABLE_HEAVY_LOGGING=ON
- name: build
run: cd _build && cmake --build ./
run: cd _build && make -j -k
- name: test
run: cd _build && ctest --extra-verbose
2 changes: 1 addition & 1 deletion .github/workflows/cxx11-ubuntu.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
mkdir _build && cd _build
cmake ../ -DCMAKE_COMPILE_WARNING_AS_ERROR=ON -DENABLE_STDCXX_SYNC=ON -DENABLE_ENCRYPTION=ON -DENABLE_UNITTESTS=ON -DENABLE_BONDING=ON -DENABLE_TESTING=ON -DENABLE_EXAMPLES=ON -DENABLE_CODE_COVERAGE=ON -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
- name: build
run: cd _build && cmake --build .
run: cd _build && cmake --build . --parallel
- name: test
run: |
cd _build && ctest --extra-verbose
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/cxx11-win.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,6 @@ jobs:
md _build && cd _build
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
run: cd _build && cmake --build ./ --parallel --config Release --verbose
- name: test
run: cd _build && ctest -E "TestIPv6.v6_calls_v4|TestConnectionTimeout.BlockingLoop" --extra-verbose -C Release
4 changes: 2 additions & 2 deletions .github/workflows/iOS.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:
build:
strategy:
matrix:
cxxstdsync: [OFF, ON]
cxxstdsync: [ON] #[OFF, ON] # cxxsync=off is Linux-gcc-only.

name: iOS-cxxsync${{ matrix.cxxstdsync }}
runs-on: macos-latest
Expand All @@ -26,4 +26,4 @@ jobs:
export PATH="/opt/homebrew/opt/llvm/bin:$PATH" CC=clang CXX=clang++
cmake .. -DCMAKE_MAKE_PROGRAM=gmake -DENABLE_ENCRYPTION=OFF -DENABLE_STDCXX_SYNC=${{matrix.cxxstdsync}} -DENABLE_MONOTONIC_CLOCK=OFF -DENABLE_UNITTESTS=OFF -DUSE_CXX_STD=c++11 -DENABLE_BONDING=ON --toolchain scripts/iOS.cmake
- name: build
run: cd _build && cmake --build ./
run: cd _build && cmake --build ./ --parallel
6 changes: 3 additions & 3 deletions .github/workflows/s390x-focal.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@ jobs:
apt-get -y install tzdata &&
uname -a &&
lscpu | grep Endian &&
apt-get -y install cmake g++ libssl-dev git &&
apt-get -y install cmake g++ libssl-dev git python &&
mkdir _build && cd _build &&
cmake ../ -DENABLE_ENCRYPTION=ON -DENABLE_UNITTESTS=ON -DENABLE_BONDING=ON -DENABLE_TESTING=ON -DENABLE_EXAMPLES=ON &&
cmake --build ./ &&
cmake --debug-output ../ -DENABLE_ENCRYPTION=ON -DENABLE_UNITTESTS=ON -DENABLE_BONDING=ON -DENABLE_TESTING=ON -DENABLE_EXAMPLES=ON &&
cmake --build ./ --parallel &&
./test-srt -disable-ipv6"
10 changes: 8 additions & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
# - COLON characters (in freestanding strings) not allowed in the script

language: cpp
dist: xenial
dist: trusty

addons:
apt:
Expand All @@ -32,6 +32,11 @@ jobs:
- env:
- BUILD_TYPE=Debug CFG="nologging mbedtls monotonic werror"
- CMAKE_OPTS='-DENABLE_LOGGING=OFF -DUSE_ENCLIB=mbedtls -DENABLE_MONOTONIC_CLOCK=ON -DENABLE_BONDING=ON -DCMAKE_CXX_FLAGS="-Werror"'
- os: linux
dist: xenial
env:
- BUILD_TYPE=Release CFG="old-distro notests werror"
- CMAKE_OPTS='-DUSE_CXX_STD=C++98 -DCMAKE_CXX_FLAGS="-Werror"'
- os: linux
env: BUILD_TYPE=Release CFG=default
# - os: osx
Expand Down Expand Up @@ -60,7 +65,7 @@ jobs:
- ./Configure --cross-compile-prefix=x86_64-w64-mingw32- mingw64
- make
- cd ..
env: BUILD_TYPE=Release CFG=no-UT
env: BUILD_TYPE=Release CFG=notests

# Power jobs
# Forcing Focal distro because Xenial
Expand All @@ -84,6 +89,7 @@ script:
exit 1;
fi;
- export REQUIRE_UNITTESTS=1
- if [[ $CFG == *"notests"* ]]; then REQUIRE_UNITTESTS=0; fi
- if [ "$TRAVIS_COMPILER" == "x86_64-w64-mingw32-g++" ]; then
CMAKE_OPTS+=" -DCMAKE_C_COMPILER=x86_64-w64-mingw32-gcc";
CMAKE_OPTS+=" -DCMAKE_CXX_COMPILER=x86_64-w64-mingw32-g++";
Expand Down
File renamed without changes.
31 changes: 13 additions & 18 deletions apps/logsupport.cpp → ATTIC/logsupport.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,20 @@
#include "logsupport.hpp"
#include "../srtcore/srt.h"
#include "../srtcore/utilities.h"
#include "ofmt.h"

using namespace std;
using namespace srt;

namespace hvu
{

// This is based on codes taken from <sys/syslog.h>
// This is POSIX standard, so it's not going to change.
// Haivision standard only adds one more severity below
// DEBUG named DEBUG_TRACE to satisfy all possible needs.

map<string, int> srt_level_names
map<string, int> level_names
{
{ "alert", LOG_ALERT },
{ "crit", LOG_CRIT },
Expand All @@ -46,17 +51,17 @@ map<string, int> srt_level_names



srt_logging::LogLevel::type SrtParseLogLevel(string level)
hvu::logging::LogLevel::type ParseLogLevel(string level)
{
using namespace srt_logging;
using namespace hvu::logging;

if ( level.empty() )
return LogLevel::fatal;

if ( isdigit(level[0]) )
{
long lev = strtol(level.c_str(), 0, 10);
if ( lev >= SRT_LOG_LEVEL_MIN && lev <= SRT_LOG_LEVEL_MAX )
if ( lev >= HVU_LOG_LEVEL_MIN && lev <= HVU_LOG_LEVEL_MAX )
return LogLevel::type(lev);

cerr << "ERROR: Invalid loglevel number: " << level << " - fallback to FATAL\n";
Expand Down Expand Up @@ -91,24 +96,13 @@ struct ToLowerFormat
}
};

void LogFANames::Install(string upname, int value)
{
string id;
transform(upname.begin(), upname.end(), back_inserter(id), ToLowerFormat());
namemap[id] = value;
}

// See logsupport_appdefs.cpp for log FA definitions
LogFANames srt_transmit_logfa_names;

const map<string, int> SrtLogFAList()
set<hvu::logging::LogFA> ParseLogFA(string fa, set<string>* punknown)
{
return srt_transmit_logfa_names.namemap;
}

set<srt_logging::LogFA> SrtParseLogFA(string fa, set<string>* punknown)
{
using namespace srt_logging;
using namespace hvu::logging;

set<LogFA> fas;

Expand Down Expand Up @@ -173,7 +167,7 @@ set<srt_logging::LogFA> SrtParseLogFA(string fa, set<string>* punknown)

void ParseLogFASpec(const vector<string>& speclist, string& w_on, string& w_off)
{
std::ostringstream son, soff;
hvu::ofmtbufstream son, soff;

for (auto& s: speclist)
{
Expand Down Expand Up @@ -202,4 +196,5 @@ void ParseLogFASpec(const vector<string>& speclist, string& w_on, string& w_off)
w_off = soffs.empty() ? string() : soffs.substr(1);
}

}

19 changes: 7 additions & 12 deletions apps/logsupport.hpp → ATTIC/logsupport.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,21 +14,16 @@
#include <string>
#include <map>
#include <vector>
#include "../srtcore/srt.h"
#include "../srtcore/logging_api.h"
#include "logging_api.h"

srt_logging::LogLevel::type SrtParseLogLevel(std::string level);
std::set<srt_logging::LogFA> SrtParseLogFA(std::string fa, std::set<std::string>* punknown = nullptr);
namespace hvu
{

hvu::logging::LogLevel::type ParseLogLevel(std::string level);
std::set<hvu::logging::LogFA> ParseLogFA(std::string fa, std::set<std::string>* punknown = nullptr);
void ParseLogFASpec(const std::vector<std::string>& speclist, std::string& w_on, std::string& w_off);
const std::map<std::string, int> SrtLogFAList();

SRT_API extern std::map<std::string, int> srt_level_names;

struct LogFANames
{
std::map<std::string, int> namemap;
void Install(std::string upname, int value);
LogFANames();
};
}

#endif
File renamed without changes.
126 changes: 126 additions & 0 deletions ATTIC/sync_timer.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
#include "sync_timer.h"

namespace srt
{
namespace sync
{


////////////////////////////////////////////////////////////////////////////////
//
// Timer
//
////////////////////////////////////////////////////////////////////////////////

CTimer::CTimer()
{
}


CTimer::~CTimer()
{
}

// This function sleeps up to the given time, then exits.
// Meanwhile it can be influenced from another thread by calling:
// - tick(): exit waiting, but re-check the end time and fall back to sleep if not reached
// - interrupt(): exit waiting with setting wait time to now() so that it exits immediately
//
// This function returns true if it has exit on the originally set time.
// If the time was changed due to being interrupted and it did really exit before
// that time, false is returned.
bool CTimer::sleep_until(TimePoint<steady_clock> tp)
{
// The class member m_sched_time can be used to interrupt the sleep.
// Refer to Timer::interrupt().
enterCS(m_event.mutex());
m_tsSchedTime = tp;
leaveCS(m_event.mutex());

#if SRT_BUSY_WAITING
wait_busy();
#else
wait_stalled();
#endif

// Returning false means that sleep was early interrupted
return m_tsSchedTime.load() >= tp;
}

void CTimer::wait_stalled()
{
TimePoint<steady_clock> cur_tp = steady_clock::now();
{
UniqueLock elk (m_event.mutex());
while (cur_tp < m_tsSchedTime.load())
{
m_event.wait_until(elk, m_tsSchedTime);
cur_tp = steady_clock::now();
}
}
}

void srt::sync::CTimer::wait_busy()
{
#if defined(_WIN32)
// 10 ms on Windows: bad accuracy of timers
const steady_clock::duration
td_threshold = milliseconds_from(10);
#else
// 1 ms on non-Windows platforms
const steady_clock::duration
td_threshold = milliseconds_from(1);
#endif

TimePoint<steady_clock> cur_tp = steady_clock::now();
{
UniqueLock elk (m_event.mutex());
while (cur_tp < m_tsSchedTime.load())
{
steady_clock::duration td_wait = m_tsSchedTime.load() - cur_tp;
if (td_wait <= 2 * td_threshold)
break;

td_wait -= td_threshold;
m_event.wait_for(elk, td_wait);

cur_tp = steady_clock::now();
}

while (cur_tp < m_tsSchedTime.load())
{
InvertedLock ulk (m_event.mutex());
#ifdef IA32
__asm__ volatile ("pause; rep; nop; nop; nop; nop; nop;");
#elif IA64
__asm__ volatile ("nop 0; nop 0; nop 0; nop 0; nop 0;");
#elif AMD64
__asm__ volatile ("nop; nop; nop; nop; nop;");
#elif defined(_WIN32) && !defined(__MINGW32__)
__nop();
__nop();
__nop();
__nop();
__nop();
#endif
cur_tp = steady_clock::now();
}
}
}


void CTimer::interrupt()
{
UniqueLock lck(m_event.mutex());
m_tsSchedTime = steady_clock::now();
m_event.notify_all();
}


void CTimer::tick()
{
m_event.notify_one();
}

}
}
Loading