X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=webtorrent%2Ftransport.go;h=856625874c8becc00be22a6ee600d401c260b13a;hb=e7087fde568c36b9e3951d0fd3c9114d8f40d437;hp=610301db2c8a71cef7007d69d7287715c5174f67;hpb=1c1f47555b4d90957482df0e1e5ff67b5c8d5bf7;p=btrtrc.git diff --git a/webtorrent/transport.go b/webtorrent/transport.go index 610301db..85662587 100644 --- a/webtorrent/transport.go +++ b/webtorrent/transport.go @@ -29,7 +29,6 @@ var ( s.DetachDataChannels() return webrtc.NewAPI(webrtc.WithSettingEngine(s)) }() - config = webrtc.Configuration{ICEServers: []webrtc.ICEServer{{URLs: []string{"stun:stun.l.google.com:19302"}}}} newPeerConnectionMu sync.Mutex ) @@ -49,11 +48,14 @@ func (me *wrappedPeerConnection) Close() error { return err } -func newPeerConnection(logger log.Logger) (*wrappedPeerConnection, error) { +func newPeerConnection(logger log.Logger, iceServers []string) (*wrappedPeerConnection, error) { newPeerConnectionMu.Lock() defer newPeerConnectionMu.Unlock() ctx, span := otel.Tracer(tracerName).Start(context.Background(), "PeerConnection") - pc, err := api.NewPeerConnection(config) + + pcConfig := webrtc.Configuration{ICEServers: []webrtc.ICEServer{{URLs: iceServers}}} + + pc, err := api.NewPeerConnection(pcConfig) if err != nil { span.SetStatus(codes.Error, err.Error()) span.RecordError(err) @@ -99,7 +101,7 @@ func (tc *TrackerClient) newOffer( offer webrtc.SessionDescription, err error, ) { - peerConnection, err = newPeerConnection(logger) + peerConnection, err = newPeerConnection(logger, tc.ICEServers) if err != nil { return } @@ -191,7 +193,7 @@ func (tc *TrackerClient) newAnsweringPeerConnection( ) ( peerConn *wrappedPeerConnection, answer webrtc.SessionDescription, err error, ) { - peerConn, err = newPeerConnection(tc.Logger) + peerConn, err = newPeerConnection(tc.Logger, tc.ICEServers) if err != nil { err = fmt.Errorf("failed to create new connection: %w", err) return