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

[WIP] DTLS: Switch to native DTLS #225

Merged
merged 12 commits into from
Dec 4, 2018
Merged

[WIP] DTLS: Switch to native DTLS #225

merged 12 commits into from
Dec 4, 2018

Conversation

backkem
Copy link
Member

@backkem backkem commented Nov 14, 2018

WIP switch to native DTLS using pions/dtls.

TODO:

  • Fix broken tests

  • Cache SRTP so we don't lose data before keying material is available (a small cache would be huge for UX)

  • Test FireFox and Chromium

  • Add alerts/error handling

  • Ensure that all examples work

    • data-channels: works on Windows & Linux!
    • data-channels-create: works on Windows & Linux!
    • gstreamer-receive: works on Linux. However we have to force PLI (we are losing some packets) TODO: Retest
    • gstreamer-send: works on Windows & Linux!
    • gstreamer-send-offer: works on Windows & Linux!
    • janus-gateway: works on Linux. TODO: Retest
    • pion-to-pion: works on Windows & Linux!
    • save-to-disk: works on Windows & Linux!
    • sfu: Not working TODO: Retest
  • Confirm that RTCTunnel and WebTTY still work

  • Tag pions/dtls and start using versioned libs for pion/webrtc (good first step before we split out SRTP)

  • Fix initial packet loss with SRTP (and possibly SCTP) Update: Fixed packet loss caused by DTLS. SCTP can be improved in a separate PR.

  • ...

Resolves #204

@coveralls
Copy link

coveralls commented Nov 25, 2018

Pull Request Test Coverage Report for Build 1225

  • 331 of 756 (43.78%) changed or added relevant lines in 17 files are covered.
  • 18 unchanged lines in 3 files lost coverage.
  • Overall coverage increased (+0.6%) to 31.062%

Changes Missing Coverage Covered Lines Changed/Added Lines %
internal/sdp/ice.go 0 1 0.0%
internal/sdp/jsep.go 7 8 87.5%
internal/sdp/media_description.go 5 6 83.33%
internal/sdp/unmarshal.go 14 16 87.5%
rtccertificate.go 12 14 85.71%
pkg/ice/util.go 3 7 42.86%
pkg/ice/candidate.go 0 6 0.0%
internal/network/receive.go 0 17 0.0%
rtcpeerconnection.go 48 66 72.73%
pkg/ice/candidatepair.go 0 32 0.0%
Files with Coverage Reduction New Missed Lines %
rtcpeerconnection.go 1 58.12%
pkg/ice/agent.go 6 38.48%
internal/network/manager.go 11 22.14%
Totals Coverage Status
Change from base Build 1223: 0.6%
Covered Lines: 2179
Relevant Lines: 7015

💛 - Coveralls

backkem and others added 12 commits December 3, 2018 23:49
DTLS Keying material is slower then OpenSSL, for now just send PLI on an
interval until we improve our DTLS implementation

Resolves #204
Instead of allocating a temporary variable, no real change. Just a tiny
bit less state to worry about.

Resolves #204
Janus now works everytime! Since we have DTLS retransmissions now we can
remove the note from the README about it

Resolves #204
Remove temporary fix that only existed when handshaking was slow

Resolves #204
@Sean-Der Sean-Der merged commit 6bf22b0 into master Dec 4, 2018
@backkem backkem deleted the dtls-native branch December 4, 2018 08:59
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.

3 participants