[tor-bugs] #28942 [Circumvention/Snowflake]: Evaluate pion WebRTC

Tor Bug Tracker & Wiki blackhole at torproject.org
Wed Jul 3 04:19:40 UTC 2019


#28942: Evaluate pion WebRTC
-------------------------------------+-------------------------------
 Reporter:  backkem                  |          Owner:  cohosh
     Type:  enhancement              |         Status:  accepted
 Priority:  Medium                   |      Milestone:
Component:  Circumvention/Snowflake  |        Version:
 Severity:  Normal                   |     Resolution:
 Keywords:  ex-sponsor-19            |  Actual Points:
Parent ID:                           |         Points:
 Reviewer:                           |        Sponsor:  Sponsor28-can
-------------------------------------+-------------------------------

Comment (by dcf):

 Replying to [comment:28 cohosh]:
 > Finished porting the client to pion/webrtc:
 https://github.com/cohosh/snowflake/commit/6bbb9a4b820f34aef4d45c14acff72374307da5e
 >
 > Most of the changes were small, but there were some tricky differences
 to work around:
 > - `OnNegotiationNeeded` is no longer supported, but putting the code
 from that callback into a go routine  and calling it immediately after
 creation of the PeerConnection seems to work just fine.
 > - By default, something called the
 "[https://godoc.org/github.com/pion/webrtc#SettingEngine.SetTrickle
 trickle method]" is set to false, which means the
 `OnICEGatheringStateChange` callback never gets called (see
 [https://github.com/pion/webrtc/blob/master/icegatherer.go#L262
 icegatherer.go#L262] vs
 [https://github.com/pion/webrtc/blob/master/icegatherer.go#L143
 icegatherer.go#L143]). We get around this by using a SettingEngine
 [https://github.com/cohosh/snowflake/blob/6bbb9a4b820f34aef4d45c14acff72374307da5e/client/lib/webrtc.go#L157
 here], but it was a bit confusing. The default API should probably have
 isTrickle set to `true` by default.
 > - `OnICECandidate` returns a `nil` candidate when gathering is complete.
 This isn't really a problem but I got a silent failure when i didn't check
 for it. It would be nice if this behaviour was documented in the GoDocs.

 This is great, thanks. I looked over the changes and didn't spot any
 problems.
 [https://github.com/cohosh/snowflake/commit/6bbb9a4b820f34aef4d45c14acff72374307da5e
 #diff-c49d3957b82c419cf2e915a6009fafafR218 Here] there's still a reference
 to `OnNegotiationNeeded`.

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/28942#comment:30>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list