Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Only collect single fingerprints and ICE credentials #2950

Merged
merged 1 commit into from
Nov 14, 2024

Conversation

nils-ohlmeier
Copy link

Description

The way currently DTLS fingerprints and ICE credentials are picked is causing interop issues as described in #2621

Peers which don't use Bundle can use different fingerprints and credentials in each media section. Even though is not (yet) supported by Pion, receiving an SDP offer from such a peer is valid.

Additionally if Bundle is being used the group attribute determines which media section is the master bundle section, which establishes the transport. Currently Pion always just uses the first credentials/fingerprint it can find in the SDP, which results in not spec compliant behavior.

This PR attempts to fix the above issues and make Pion more spec compliant and interoperable.

Reference issue

Fixes #2621

Copy link

codecov bot commented Nov 13, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 63.56%. Comparing base (363e017) to head (e071119).
Report is 1 commits behind head on master.

❗ There is a different number of reports uploaded between BASE (363e017) and HEAD (e071119). Click for more details.

HEAD has 2 uploads less than BASE
Flag BASE (363e017) HEAD (e071119)
go 2 0
Additional details and impacted files
@@             Coverage Diff             @@
##           master    #2950       +/-   ##
===========================================
- Coverage   77.74%   63.56%   -14.18%     
===========================================
  Files          89       67       -22     
  Lines       10462     3928     -6534     
===========================================
- Hits         8134     2497     -5637     
+ Misses       1840     1305      -535     
+ Partials      488      126      -362     
Flag Coverage Δ
go ?
wasm 63.56% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@Sean-Der
Copy link
Member

Amazing! I can fix lint issues, you can reproduce them locally using ‘golangci-lint run’

@Sean-Der
Copy link
Member

I will merge tonight!

@nils-ohlmeier
Copy link
Author

@Sean-Der should I put the errors back in, to avoid a breaking change (even if the errors are no longer used)?

@Sean-Der
Copy link
Member

@nils-ohlmeier yea mind putting them back :(

downstream users I bet are using them. Breaks always hurt

@nils-ohlmeier
Copy link
Author

Done. I think this should be ready for review now.

@Sean-Der is there a way to flag the errors as deprecated, since they aren't used any more? Should this get mentioned in release notes to minimize surprises?

@Sean-Der
Copy link
Member

@nils-ohlmeier lets get this merged :) I will squash and fix lints! Thank you so much for taking this on, not an easy first bug!

@stephanrotolante
Copy link
Contributor

Wow nice work, I learned a lot from your explanation 🫡

The way currently DTLS fingerprints and ICE credentials
are picked is causing interop issues as described in pion#2621

Peers which don't use Bundle can use different fingerprints
and credentials in each media section. Even though is
not (yet) supported by Pion, receiving an SDP offer from
such a peer is valid.

Additionally if Bundle is being used the group attribute
determines which media section is the master bundle section,
which establishes the transport. Currently Pion always
just uses the first credentials/fingerprint it can find
in the SDP, which results in not spec compliant behavior.

This PR attempts to fix the above issues and make
Pion more spec compliant and interoperable.

Fixes pion#2621
@Sean-Der Sean-Der merged commit 2fd3640 into pion:master Nov 14, 2024
14 of 17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

RFC8843 : Accept offer with a=group:BUNDLE line even if it has conflicting ice-ufrag values
3 participants