added new 'handleOfferAnswer' method to engine.go to clean up offer answer logic and satisfy SonarQube analysis (case clause with > 6 lines)

This commit is contained in:
Ashley Mensah
2025-11-05 17:20:22 +01:00
parent 8aa1b23a22
commit 74eebeb95a

View File

@@ -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{})