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

TURN client refactor #74

Closed
enobufs opened this issue Jul 11, 2019 · 0 comments · Fixed by #75
Closed

TURN client refactor #74

enobufs opened this issue Jul 11, 2019 · 0 comments · Fixed by #75
Assignees

Comments

@enobufs
Copy link
Member

enobufs commented Jul 11, 2019

Summary

Issues:

  • Current pion/turnc behaves as “port-restricted” NAT
  • If the other end is a symmetric NAT, ICE cannot find a valid candidate pair
  • Current pion/turnc is overly complex to fix this

Related Issues on Github

Motivation

We will try to implement a new TURN client in a way that would solve all the above problems, without having to modify pion/turnc (would be hard).
The pion/turn has its own client but it does not support TURN protocol. It's a clean place to try out the new implementation of TURN client, while leaving the pion/turnc as is to leave us "two-way door".

Describe alternatives you've considered

Modify pion/turnc .... I have tried, but it is really complex. Abstraction of channel as a net.Conn has been found fundamentally intervening in allowing ICE to detect prflx candidate which is necessary to traverse remote symmetric NAT even local end uses TURN.

Additional context

Details of issues I have found and my refactoring plan is described here

enobufs added a commit that referenced this issue Jul 11, 2019
Refresh and ChannelBind are not implemented yet
Resolves #74
@enobufs enobufs self-assigned this Jul 11, 2019
enobufs added a commit that referenced this issue Jul 12, 2019
Thread-safety optimization
Fixed lint errors
Fixed code per review feedback
Resolves #74
enobufs added a commit that referenced this issue Jul 12, 2019
enobufs added a commit that referenced this issue Jul 12, 2019
Further threa-safety improvements
Optimized inbound packet demuxing
Resolves #74
enobufs added a commit that referenced this issue Jul 12, 2019
Implemented allocation & permission refresh
Implemented permissions
Implemented channel binding
Threa-safety improvements
Optimized inbound packet demuxing
Resolves #74
enobufs added a commit that referenced this issue Jul 13, 2019
Implemented allocation & permission refresh
Implemented permissions
Implemented channel binding
Threa-safety improvements
Optimized inbound packet demuxing
Resolves #74
enobufs added a commit that referenced this issue Jul 13, 2019
Switched cofg.Software to a string
Fixed errors introduced by the last rebase
Resolves #74
enobufs added a commit that referenced this issue Jul 13, 2019
enobufs added a commit that referenced this issue Jul 13, 2019
enobufs added a commit that referenced this issue Jul 14, 2019
enobufs added a commit that referenced this issue Jul 15, 2019
* Requested Transport attr was add to non-allocate requests incorrectly
* Refresh request was missing username, realm, nonce and integrity
Resolves #74
enobufs added a commit that referenced this issue Jul 15, 2019
enobufs added a commit that referenced this issue Jul 15, 2019
enobufs added a commit that referenced this issue Jul 15, 2019
Implemented allocation & permission refresh
Implemented permissions
Implemented channel binding
Threa-safety improvements
Optimized inbound packet demuxing
Resolves #74
enobufs added a commit that referenced this issue Jul 15, 2019
Switched cofg.Software to a string
Fixed errors introduced by the last rebase
Resolves #74
enobufs added a commit that referenced this issue Jul 15, 2019
enobufs added a commit that referenced this issue Jul 15, 2019
enobufs added a commit that referenced this issue Jul 15, 2019
enobufs added a commit that referenced this issue Jul 15, 2019
* Requested Transport attr was add to non-allocate requests incorrectly
* Refresh request was missing username, realm, nonce and integrity
Resolves #74
enobufs added a commit that referenced this issue Jul 15, 2019
enobufs added a commit that referenced this issue Jul 15, 2019
enobufs added a commit to pion/webrtc that referenced this issue Jul 16, 2019
enobufs added a commit to pion/webrtc that referenced this issue Jul 17, 2019
Sean-Der pushed a commit to pion/webrtc that referenced this issue Jul 17, 2019
Sean-Der pushed a commit to pion/webrtc that referenced this issue Jul 17, 2019
Sean-Der added a commit to pion/webrtc that referenced this issue Jul 17, 2019
Sean-Der added a commit to pion/webrtc that referenced this issue Jul 17, 2019
ourwarmhouse added a commit to ourwarmhouse/Smart-Contract---Go that referenced this issue May 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging a pull request may close this issue.

1 participant