11464 Commits

Author SHA1 Message Date
Scott Godin
e6329fb743 repro: RFC5626 Outbound fix to not remove contact registration on locally generated 408 timeouts
Locally generated 408 timeouts are now ignored to prevent premature registration teardown.
We only remove contacts on hard transport failures (local 503 or 430/410 responses), ensuring that
transient network or app-layer lag doesn't wipe our registration database
while the RFC 5626 Flow is still physically established.
2026-01-09 15:58:01 -05:00
Scott Godin
f623fbe3c8 Merge pull request #454 from szokovacs/changenameservers
expose already existing possibility to change the DNS servers to the …
2026-01-09 15:51:10 -05:00
Scott Godin
3c5d8b2b78 - sdpcontainer::Sdp - add get mediaLineAtIndex api
- sdpcontainer::SdpMediaLine - add more crypto type definitions
2026-01-08 19:15:51 -05:00
Scott Godin
c76b5b4247 -CMake: build resipmedia by default, add separate flag so not dependant on recon being enabled 2026-01-08 17:53:37 -05:00
Scott Godin
69a0751185 - complete move of sdpcontainer to resipmedia
- complete rename of SdpHelperResip to SdpHelper
2026-01-08 16:50:18 -05:00
Scott Godin
09b187e75a Move SdpContainer used in recon to resipmedia library for use in other projects 2026-01-08 16:29:54 -05:00
Scott Godin
59a66f57a2 - small cleanup of TlsConnection handshake error logs
- previous text was misleading (missing client cert it not necessarily a problem)
2026-01-08 15:40:47 -05:00
Szókovács Róbert
f736c7b7cd resolve conflict between TFM and ARES 2026-01-08 17:50:09 +01:00
Szókovács Róbert
ebd3dafba5 still 2026-01-08 17:26:07 +01:00
Szókovács Róbert
8556d886a7 typo fix 2026-01-08 17:19:03 +01:00
Szókovács Róbert
b95f15f3d8 following up missing ExternalDns change 2026-01-08 17:05:33 +01:00
Szókovács Róbert
96cd724f47 expose already existing possibility to change the DNS servers to the DnsStub API 2026-01-08 16:38:39 +01:00
Scott Godin
08e9316169 Expand WinSecurity constructors to allow setting of defaultPrivateKeyPassPhrase and DHParamsFilename 2026-01-05 17:24:36 -05:00
Scott Godin
5c5df2d625 Merge pull request #438 from Lastique/feature/add_sip_headers_iteration
Add support for iteration over SIP headers
2026-01-05 10:39:19 -05:00
Scott Godin
97595b4e30 - log filename in exception in Data::fromFile 2025-12-23 15:54:50 -05:00
Scott Godin
9e53bc4990 Merge pull request #452 from mykhailopopivniak/fqdn_log_init
rutil/Log: Selectively enable FQDN resolution upon Logger initialization
2025-12-18 18:09:35 -05:00
Mykhailo Popivniak
7fe9084ed7 rutil/Log: Selectively enable FQDN resolution upon Logger initialization
FQDN resolution uses `getaddrinfo` with `AI_CANONNAME` and may cause DNS
lookup in some cases. If the DNS server is slow or unresponsive, the
logger initialization hangs until the system network timeout occurs.

Disable FQDN resolution and use local hostname `mHostname` for JSON CEE
logging by default.

A new compilation option `USE_FQDN_FOR_JSON_CEE_HOSTNAME` is introduced
to re-enable FQDN resolution upon Logger initialization if required.
2025-12-18 17:36:37 +02:00
Scott Godin
947b8654b2 Allow remote support for Session Timers to be determined in Supported or Requires headers
- InviteSession
  - add tracking of peer RequiresOptionTags and add getPeerRequiresOptionsTags method
  - rename timerOptionSupported to sessionTimerSupportedLocalAndPeer for clarity
  - define const Token for Symbols::Timer so we don't need to create one on every use
  - add session timer headers to response even if far end doesn't support (non OPTIONs responses only)
2025-12-16 17:06:17 -05:00
Scott Godin
0bb6a29ae6 -when a new StatisticsManager poll interval is set, ensure we recalculate nNextPoll, so we don't need to wait
for the previous amount of time to pass before taking effect
2025-12-10 16:20:06 -05:00
Scott Godin
d65ca7f166 -fix CMakeLists.txt OpenSSL library linking using Nuget on VisualStudio/Windows 2025-11-26 15:09:53 -05:00
Scott Godin
21e6216e44 - repro: fix windows build when %temp% dir has spaces in it 2025-11-17 16:39:29 -05:00
Scott Godin
693eb67b6b - recon: ensure BridgeMixerWeights are recalculated when setting record channel number 2025-11-17 15:33:45 -05:00
Scott Godin
8685976356 - add change missing from last commit
- add repro.config and MOHParkServer.config to source listings
2025-11-13 10:41:23 -05:00
Scott Godin
15b9956ba8 Merge branch 'master' of https://github.com/resiprocate/resiprocate 2025-11-12 18:50:31 -05:00
Scott Godin
e8a487ac60 Deprecate old Pidf.hxx/cxx in favor of the newer and more flexible GenericPidfContents class
- update resip stacks internal uses of Pidf to GenericPidfContents
- remove Pidf.hxx/cxx and tests from build
- leave files in place (for now) to allow use if still needed
- fixes ContentsFactory ambiguity over which Contents class to use when parsing
2025-11-12 18:50:14 -05:00
Scott Godin
b8c24da52a Merge pull request #449 from Lastique/feature/fix_cxx20_comparison_ambiguity
Fix potential ambiguity of the comparison operator for `BranchParameter`
2025-11-10 15:19:55 -05:00
Scott Godin
86c19f9530 Merge pull request #448 from Lastique/feature/fix_cxx20_implicit_this_captures
Fix deprecated implicit this captures and dangling pointer captures
2025-11-10 15:18:03 -05:00
Scott Godin
2d1541405d Merge pull request #447 from Lastique/feature/fix_cxx20_different_enums_warnings
Fix C++20 warnings about operations on enums of different types
2025-11-10 15:14:45 -05:00
Scott Godin
5722cbca9e Merge pull request #446 from Lastique/feature/fix_cxx20_volatile_ops
Remove operations on volatile variables
2025-11-10 15:12:16 -05:00
Scott Godin
27fbfa7755 Merge pull request #444 from Lastique/patch-1
Fix `weak_bind` constructor definition
2025-11-10 15:10:15 -05:00
Andrey Semashev
f8d29690b9 Fix potential ambiguity of the comparison operator for BranchParameter.
C++20 introduces support for comparison operator rewriting. In particular,
the compiler is now able to synthesize comparison operators with swapped
arguments, so e.g. for operator==(A, B) it would synthesize operator==(B, A).

This poses a problem for BranchParameter::operator==, which is declared
non-const and accepts a const BranchParameter& argument. The above rewriting
would synthesize a different operator== that is marked as const but accepts
a non-const BranchParameter& argument. Invoking comparison between two
non-const BranchParameter objects would therefore be ambiguous as the original
and the synthesized overloads would both equally match. Gcc 14 gratiously
accepts such code, albeit with a warning, but other compilers may reject it.

Fix this by marking the operator== as const.
2025-11-08 03:52:57 +03:00
Andrey Semashev
9af72ec009 Fix deprecated implicit this captures and dangling pointer captures.
C++20 deprecates implicit capture of this pointer by the [=] capture clause.
Compilers generate warnings about this. Explicitly specify this, where
needed.

Furthermore, in a few methods of TurnAsyncSocket, raw pointers were captured
in the callbacks passed to asio::dispatch. Since asio::dispatch may post the
callback to the IO thread, the captured pointer could become dangling when
the callback was invoked. Avoid this by capturing Data instead. To avoid an
extra copy, move the captured Data object into the TurnAsyncSocket class
members when the callback is invoked.
2025-11-08 03:44:00 +03:00
Andrey Semashev
3e4c548a11 Fix C++20 warnings about operations on enums of different types.
C++20 deprecates support for bitwise operations where the two arguments
have different enum types. Compilers generate warnings about this.

In Headers.cxx, commaHandling is used in bitwise operations with
ParserCategory::CommasAllowedOutputMulti. Since commaHandling is defined
as an unnamed enum in each class derived from ParserCategory, each
constant constitutes a distinct enum type. To avoid the warnings,
name the enum in ParserCategory and use that name to define commaHandling
constants.

In DumFeatureChain.cxx and DialogUsageManager.cxx, DumFeature::ProcessingResult
bit masks are tested using DumFeature::ProcessingResultMask bits, which
are two different enums. To avoid the warnings, cast the enums to
unsigned int (since these are bit masks).
2025-11-08 03:32:20 +03:00
Andrey Semashev
1dbc46710b Remove operations on volatile variables.
C++20 deprecates operations other than reads and writes  performed on
volatile variables. Compilers generate warnings about this.

In the Log class, touchCount was marked as volatile in attempt to emulate
atomics in C++03 (which was incorrect; atomicity was not guaranteed).
Replace it with std::atomic. Also change it to unsigned int to increase
chances of native support for atomic operations rather than emulation.

In testRandomThread, the volatile variables need not be marked as such
as the compiler is required to reload these variables across wait() calls
since a wait call unlocks and locks the mutex, which implies release and
acquire fences.
2025-11-08 03:30:09 +03:00
Andrey Semashev
89c86cf99e Fix weak_bind constructor definition.
The constructor name should not include template parameters. Otherwise, it causes compilation errors with gcc 13.3 in C++20 mode.
2025-11-07 23:44:02 +03:00
Scott Godin
6b339db28b - ConnectionManager::gc safe guard against underflows in flowtimer connection cleanup logic 2025-10-27 10:17:51 -04:00
Scott Godin
e2eb7411fa Merge branch 'master' of https://github.com/resiprocate/resiprocate 2025-10-24 11:53:19 -04:00
Scott Godin
f677712a1a Protect against time calcuation underflows in ConnectionManager::gc
- misc: remove mostly useless log statement in Helper::getSdp
2025-10-24 11:53:07 -04:00
Scott Godin
cf01405fa3 TLS Handshake Fixes
- don't assume OpenSSL Ex Data index 0 is available - query OpenSSL for available index
- use more modern and overflow safe API's in verifyCallback for extracting the certificate subject name
2025-10-24 11:32:33 -04:00
Scott Godin
bbb8100f33 Make RRDecorator logic safer
- add error log to RRDecorator::rollbackMessage if expected condition on mAddedRecordRoute is not true
- SipMessage - check mIsDecorated directly in rollbackOutboundDecorators to help avoid coding errors
- SipMessage::clearOutboundDecorators now rolls back decorators if needed before clearing them, which will also ensure mIsDecorated is reset to false
2025-10-24 11:27:37 -04:00
dgpetrie
ef751e5c71 Disable stream player in SipXMediaResourceParticipant.cxx.
Stream Player is not supported in sipX, no one should use it.
2025-10-21 22:09:17 -04:00
Scott Godin
2ca5d11b24 - improve logging in ConnectionBase by logging out mWho tuple 2025-10-21 12:40:32 -04:00
Scott Godin
1d4cfd0944 -ignore coverity intermediate directory 2025-10-21 12:39:26 -04:00
Scott Godin
e9851ae7df Merge pull request #443 from mykhailopopivniak/str-view-config-fix
build: expose `config.h` to library users
2025-10-15 11:39:02 -04:00
Mykhailo Popivniak
839d0f350e build: expose config.h to library users
`config.h` defines macros required for correct compilation of
Resiprocate-related classes.
For example, it controls `std::string_view` support, but the header was
not previously installed, preventing users from including it.
This change installs the file so that client projects can use the same
configuration as the library.
2025-10-15 10:09:39 +03:00
Scott Godin
c730bca19e Merge pull request #440 from fnMrRice/master
- fix MSVC compile warning C4819
- fix the git command execution error when the build directory is not under the source directory
2025-09-25 11:53:09 -04:00
fnRice
f568fb8145 fix the git command execution error when the build directory is not under the source directory 2025-09-19 09:55:35 +08:00
fnRice
b50ecbe035 fix MSVC compile warning C4819 2025-09-19 09:24:15 +08:00
Scott Godin
dc76cc1ea4 Merge pull request #437 from Lastique/feature/remove_strncasecmp
Remove custom definition of `strncasecmp`
2025-09-18 11:13:44 -04:00
Scott Godin
21a91ac22c Merge pull request #436 from Lastique/feature/fix_cctype_usage
Fix usage of `<cctype>` functions
2025-09-18 11:12:05 -04:00