Fix situation when WebRTC candidate pair changes multiple times #1282

This commit is contained in:
Alex X
2025-02-26 21:39:42 +03:00
parent 2a5355b1f8
commit 858c04bacf

View File

@@ -51,6 +51,10 @@ func NewConn(pc *webrtc.PeerConnection) *Conn {
}
pc.SCTP().Transport().ICETransport().OnSelectedCandidatePairChange(
func(pair *webrtc.ICECandidatePair) {
// fix situation when candidate pair changes multiple times
if i := strings.IndexByte(c.Protocol, '+'); i > 0 {
c.Protocol = c.Protocol[:i]
}
c.Protocol += "+" + pair.Remote.Protocol.String()
c.RemoteAddr = fmt.Sprintf(
"%s:%d %s", sanitizeIP6(pair.Remote.Address), pair.Remote.Port, pair.Remote.Typ,