From b4ed738d17183d431fc1c23ec1d0c312c1875af7 Mon Sep 17 00:00:00 2001 From: Alex X Date: Mon, 30 Oct 2023 21:04:38 +0300 Subject: [PATCH] Add IPv6 support to WebRTC #721 --- pkg/webrtc/api.go | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/pkg/webrtc/api.go b/pkg/webrtc/api.go index 5a3343f9..edb2daf6 100644 --- a/pkg/webrtc/api.go +++ b/pkg/webrtc/api.go @@ -1,11 +1,12 @@ package webrtc import ( + "net" + "strings" + "github.com/pion/ice/v2" "github.com/pion/interceptor" "github.com/pion/webrtc/v3" - "net" - "strings" ) // ReceiveMTU = Ethernet MTU (1500) - IP Header (20) - UDP Header (8) @@ -40,6 +41,7 @@ func NewAPI(address string) (*webrtc.API, error) { // UDP6 may have problems with DNS resolving for STUN servers s.SetNetworkTypes([]webrtc.NetworkType{ webrtc.NetworkTypeUDP4, webrtc.NetworkTypeTCP4, + webrtc.NetworkTypeUDP6, webrtc.NetworkTypeTCP6, }) // fix https://github.com/pion/webrtc/pull/2407 @@ -50,13 +52,13 @@ func NewAPI(address string) (*webrtc.API, error) { if address != "" { address, network, _ := strings.Cut(address, "/") if network == "" || network == "udp" { - if ln, err := net.ListenPacket("udp4", address); err == nil { + if ln, err := net.ListenPacket("udp", address); err == nil { udpMux := webrtc.NewICEUDPMux(nil, ln) s.SetICEUDPMux(udpMux) } } if network == "" || network == "tcp" { - if ln, err := net.Listen("tcp4", address); err == nil { + if ln, err := net.Listen("tcp", address); err == nil { tcpMux := webrtc.NewICETCPMux(nil, ln, 8) s.SetICETCPMux(tcpMux) }