Skip to content

Conversation

sirknightj
Copy link
Contributor

Issue #, if available:

  • N/A

What was changed?

  • See the individual pull requests for the reasoning. All commits in this pull request from develop->main have already been reviewed.

Important changes:

Why was it changed?

  • See the original pull requests

How was it changed?

  • See the original pull requests

What testing was done for the changes?

  • See the original pull requests

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

vikramdattu and others added 22 commits May 13, 2025 19:38
- This allows devices using embedded cert to be passed to mbedtls API
 - In cases where, readFile is not actually fread, avoids making mbedtls use fread
 - Moved cert parsing logic to new `readAndParseCACertificate` static API
* Skip hostname parsing for stun servers

* Clang-format

* Fix unit test
Fix H265 FMTP issue with kvsWebrtcClientViewer
* Updated .h265 frames and improved the looping logic

* Revert "Updated .h265 frames and improved the looping logic" except kvsWebRTCClientMaster.c

This reverts commit d852593.

---------

Co-authored-by: Varunaditya1 <varunaditya.singhal42@gmail.com>
* Add log for socket creation fd

* Clang-format
* Fix undefined sanitizer reports for SDP

* Clang-format
* Move the ICE config parser to its own method and add tests

* Add cases for invalid JSONs

* Exit parsing ice servers early if the array if we requested less configs

Co-authored-by: Vikram Dattu <vikram.dattu@espressif.com>

---------

Co-authored-by: Vikram Dattu <vikram.dattu@espressif.com>
* crypto/mbedtls: Add support for mbedtls 3.x

 - mbedtls 2.8.x is getting out of support: https://github.com/Mbed-TLS/mbedtls/releases/tag/mbedtls-2.28.10
 - Clone mbedtls 3.6.x instead of 2.8.x via CMake dependencies
 - Add related code to mbedtls usage keeping the 2.8.x support intact under mbedtls version macros

* Modify mbedtls tests to consider private members in 3.6.x versions

* Update libwebsockets to the latest release

 - This release handles mbedtls_3.x version support and has some fixes
 - Cleanup: removed libwebsocket patches as they are not needed anymore

* mbedtls: suppress false-positive array bound error from Mac gcc14

* mbedtls: Set hostname for TURN connections

 - New API tlsSessionStartWithHostname can receive optional hostname and set the same
 - It is recommened to set the hostname and is on by default for mbedtls v3.6.3 and above
 - Since we receive ICE server credentials via secure API and anyway are use DTLS as WebRTC standard,
 we could skip this, but let's follow the recommendation as precaution

* CI: gcc4.4 mbedtls test for older mbedtls versions

 - Newer(3.6.x) mbedtls versions does not test builds on GCC versions as old as 4.4
 - We keep this test for older mbedtls version (2.28.x)

* CI: Temporarily downgrade macos version 14 to avoid `_bounds.h` not found

 - latest toolchain on MacOS version 15 is causing `_bounds.h` not found
   errors
 - Downgrade the version to 14 for now to get away with these errors
 - We can update it to 15 once we have solution
…bsockets (#2141)

- This way, one could write a new CMakeLists.txt, with ApiCalls using different websocket implementation
 - One should simply remove existing Signaling.c and LwsApiCalls.c from compilation and add their own
* bugfix(kvspicUtils): Implicit declaration error on pthread_getname_np

Following error was observed while building sources with gcc14:
```
 kvspic-src/CMakeFiles/kvspicUtils.dir/src/utils/src/Thread.c:155:16: error: implicit declaration of function 'pthread_getname_np' [-Wimplicit-function-declaration]
  155 |     retValue = pthread_getname_np((pthread_t) thread, name, len);
      |                ^~~~~~~~~~~~~~~~~~
gmake[5]: *** [dependency/libkvspic/kvspic-src/CMakeFiles/kvspicUtils.dir/build.make:426:
```

 - Fixed by explicitly passing `-D_GNU_SOURCE` flag to make
   `pthread_getname_np` visible from `pthread.h`

* Move ifaddrs.h and poll.h under macro checks

 - Check in CMake if these headers available and set pass HAVE_<header>_H flag
 - Wrap the header includes under this flag

* Check in CMake, if socketpair available on the platform and use the flag

 - Instead of assuming that socketpair functionality available on
non-windows platforms, check if the function exists via CMakeList and
use flag to guard the kicksocket code under the macro
* Enhance the signaling message parsing

* Address comments
- Avoids libwebsockets taking control over using raw fread/nvs APIs
 - The SDK, hence, do not need to rely on libwebsockets method
- The code path traces and tries to take lock on `pSenderTranceiver` even if it is NULL
 - This makes the code crash if pSenderTranceiver is NULL

FIX: Check if pSenderTranceiver is NULL before dereferencing
- The variable is uint32_t, printing it using llu format specifier is wrong
 - Use PRIu32 format specifier for the same
@sirknightj sirknightj requested a review from YPandas October 9, 2025 16:33
@sirknightj sirknightj merged commit 84f9430 into main Oct 9, 2025
156 of 157 checks passed
@sirknightj sirknightj deleted the develop branch October 9, 2025 16:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants