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

Tor Bug Tracker & Wiki blackhole at torproject.org
Tue Jun 25 20:50:02 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 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.

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


More information about the tor-bugs mailing list