From a006394e5ff7b755052647ab47ea5348fa72b07e Mon Sep 17 00:00:00 2001 From: Alexey Khit Date: Sat, 27 Aug 2022 15:57:16 +0300 Subject: [PATCH] Fix empty webrtc remote --- pkg/webrtc/conn.go | 36 +++++++++++++++++++++++++++++++----- 1 file changed, 31 insertions(+), 5 deletions(-) diff --git a/pkg/webrtc/conn.go b/pkg/webrtc/conn.go index 67ea37ae..4a467c50 100644 --- a/pkg/webrtc/conn.go +++ b/pkg/webrtc/conn.go @@ -128,11 +128,37 @@ func (c *Conn) GetCompleteAnswer() (answer string, err error) { } func (c *Conn) remote() string { - for _, trans := range c.Conn.GetTransceivers() { - pair, _ := trans.Receiver().Transport().ICETransport().GetSelectedCandidatePair() - if pair.Remote != nil { - return pair.Remote.String() - } + if c.Conn == nil { + return "" } + + for _, trans := range c.Conn.GetTransceivers() { + if trans == nil { + continue + } + + receiver := trans.Receiver() + if receiver == nil { + continue + } + + transport := receiver.Transport() + if transport == nil { + continue + } + + iceTransport := transport.ICETransport() + if iceTransport == nil { + continue + } + + pair, _ := iceTransport.GetSelectedCandidatePair() + if pair == nil || pair.Remote == nil { + continue + } + + return pair.Remote.String() + } + return "" }