Conversation
Adapted from 5bd6542. Existing upstream C identity and explicit ICE APIs replace the earlier duplicate wrappers.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add C and C++ APIs to prepare a peer from a retained incoming ICE request, install callbacks, and then accept it. STUN integrity is verified before peer construction. Applications can also approve another authenticated source tuple for an existing peer without replacing its SDP, DTLS identity or channels.
closeAsync()exposes a shared future or callback; C callers usertcClosePeerConnectionAsync. Completion follows destruction, including externally retained transport references. Blocking waits wrap asynchronous closure; timeout retains caller ownership. C handles still require deletion after completion.Rejection and shutdown close prepared peers outside listener locks. Certificate import also runs outside the request mutex. The move-only C++ prepared-peer owner rejects and closes abandoned attempts. In C, a returned peer handle remains caller-owned even when later configuration fails. Existing certificate and ICE configuration APIs are reused, and fingerprint verification remains enabled. Constructor counters are compiled only for tests.
Validation: focused incoming-request and teardown regressions pass, covering reentrant callbacks, scoped ownership, authenticated peer reuse and destruction completion. Coordinated JNI tests exercise real UDP/DTLS/SCTP traffic. Release builds pass with diagnostic exports absent. Incoming API, cleanup contract, source attribution.
This owned aggregate draft keeps
upstreamas a mirror; independent changes remain candidates for separate external submissions.