diff --git a/client/internal/engine.go b/client/internal/engine.go index ac559d2b4..72b1ad9b3 100644 --- a/client/internal/engine.go +++ b/client/internal/engine.go @@ -1442,16 +1442,9 @@ func (e *Engine) receiveSignalEvents() { switch msg.GetBody().Type { case sProto.Body_OFFER, sProto.Body_ANSWER: - offerAnswer, err := convertToOfferAnswer(msg) - if err != nil { + if err := e.handleOfferAnswer(msg, conn); err != nil { return err } - - if msg.Body.Type == sProto.Body_OFFER { - conn.OnRemoteOffer(*offerAnswer) - } else { - conn.OnRemoteAnswer(*offerAnswer) - } case sProto.Body_CANDIDATE: candidate, err := ice.UnmarshalCandidate(msg.GetBody().Payload) if err != nil { @@ -1479,6 +1472,20 @@ func (e *Engine) receiveSignalEvents() { e.signal.WaitStreamConnected() } +func (e *Engine) handleOfferAnswer(msg *sProto.Message, conn *peer.Conn) error { + offerAnswer, err := convertToOfferAnswer(msg) + if err != nil { + return err + } + + if msg.Body.Type == sProto.Body_OFFER { + conn.OnRemoteOffer(*offerAnswer) + } else { + conn.OnRemoteAnswer(*offerAnswer) + } + return nil +} + func (e *Engine) parseNATExternalIPMappings() []string { var mappedIPs []string var ignoredIFaces = make(map[string]interface{})