From bc3d647d6b530e94c205d97f9908eb5fdc039089 Mon Sep 17 00:00:00 2001 From: Zoltan Papp Date: Wed, 20 Dec 2023 23:02:42 +0100 Subject: [PATCH] Update pion v3 (#1398) Update Pion related versions to the latest --------- Co-authored-by: Yury Gargay --- client/internal/engine.go | 23 ++++---- client/internal/engine_test.go | 2 +- client/internal/peer/conn.go | 7 ++- client/internal/peer/conn_test.go | 4 +- client/internal/routemanager/manager_test.go | 2 +- .../routemanager/systemops_nonandroid_test.go | 2 +- client/internal/stdnet/discover.go | 2 +- client/internal/stdnet/discover_mobile.go | 2 +- client/internal/stdnet/discover_pion.go | 2 +- client/internal/stdnet/stdnet.go | 4 +- go.mod | 18 +++--- go.sum | 59 ++++++++++--------- iface/bind/bind.go | 4 +- iface/bind/udp_mux.go | 25 ++++---- iface/bind/udp_mux_universal.go | 8 +-- iface/bind/udp_muxed_conn.go | 2 +- iface/iface_android.go | 2 +- iface/iface_nonandroid.go | 2 +- iface/iface_test.go | 2 +- iface/tun_android.go | 2 +- iface/tun_unix.go | 2 +- iface/tun_windows.go | 2 +- sharedsock/sock_linux_test.go | 2 +- 23 files changed, 91 insertions(+), 89 deletions(-) diff --git a/client/internal/engine.go b/client/internal/engine.go index 43d37e4b7..d811ad48c 100644 --- a/client/internal/engine.go +++ b/client/internal/engine.go @@ -13,7 +13,8 @@ import ( "sync" "time" - "github.com/pion/ice/v2" + "github.com/pion/ice/v3" + "github.com/pion/stun/v2" log "github.com/sirupsen/logrus" "golang.zx2c4.com/wireguard/wgctrl/wgtypes" @@ -95,9 +96,9 @@ type Engine struct { mobileDep MobileDependency // STUNs is a list of STUN servers used by ICE - STUNs []*ice.URL + STUNs []*stun.URI // TURNs is a list of STUN servers used by ICE - TURNs []*ice.URL + TURNs []*stun.URI cancel context.CancelFunc @@ -146,8 +147,8 @@ func NewEngine( syncMsgMux: &sync.Mutex{}, config: config, mobileDep: mobileDep, - STUNs: []*ice.URL{}, - TURNs: []*ice.URL{}, + STUNs: []*stun.URI{}, + TURNs: []*stun.URI{}, networkSerial: 0, sshServerFunc: nbssh.DefaultSSHServer, statusRecorder: statusRecorder, @@ -575,10 +576,10 @@ func (e *Engine) updateSTUNs(stuns []*mgmProto.HostConfig) error { if len(stuns) == 0 { return nil } - var newSTUNs []*ice.URL + var newSTUNs []*stun.URI log.Debugf("got STUNs update from Management Service, updating") - for _, stun := range stuns { - url, err := ice.ParseURL(stun.Uri) + for _, s := range stuns { + url, err := stun.ParseURI(s.Uri) if err != nil { return err } @@ -593,10 +594,10 @@ func (e *Engine) updateTURNs(turns []*mgmProto.ProtectedHostConfig) error { if len(turns) == 0 { return nil } - var newTURNs []*ice.URL + var newTURNs []*stun.URI log.Debugf("got TURNs update from Management Service, updating") for _, turn := range turns { - url, err := ice.ParseURL(turn.HostConfig.Uri) + url, err := stun.ParseURI(turn.HostConfig.Uri) if err != nil { return err } @@ -846,7 +847,7 @@ func (e *Engine) peerExists(peerKey string) bool { func (e *Engine) createPeerConn(pubKey string, allowedIPs string) (*peer.Conn, error) { log.Debugf("creating peer connection %s", pubKey) - var stunTurn []*ice.URL + var stunTurn []*stun.URI stunTurn = append(stunTurn, e.STUNs...) stunTurn = append(stunTurn, e.TURNs...) diff --git a/client/internal/engine_test.go b/client/internal/engine_test.go index 08cd29da8..2de9b29f0 100644 --- a/client/internal/engine_test.go +++ b/client/internal/engine_test.go @@ -13,7 +13,7 @@ import ( "testing" "time" - "github.com/pion/transport/v2/stdnet" + "github.com/pion/transport/v3/stdnet" log "github.com/sirupsen/logrus" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" diff --git a/client/internal/peer/conn.go b/client/internal/peer/conn.go index db37c0528..1a5f5b419 100644 --- a/client/internal/peer/conn.go +++ b/client/internal/peer/conn.go @@ -9,7 +9,8 @@ import ( "sync" "time" - "github.com/pion/ice/v2" + "github.com/pion/ice/v3" + "github.com/pion/stun/v2" log "github.com/sirupsen/logrus" "golang.zx2c4.com/wireguard/wgctrl/wgtypes" @@ -46,7 +47,7 @@ type ConnConfig struct { LocalKey string // StunTurn is a list of STUN and TURN URLs - StunTurn []*ice.URL + StunTurn []*stun.URI // InterfaceBlackList is a list of machine interfaces that should be filtered out by ICE Candidate gathering // (e.g. if eth0 is in the list, host candidate of this interface won't be used) @@ -142,7 +143,7 @@ func (conn *Conn) WgConfig() WgConfig { } // UpdateStunTurn update the turn and stun addresses -func (conn *Conn) UpdateStunTurn(turnStun []*ice.URL) { +func (conn *Conn) UpdateStunTurn(turnStun []*stun.URI) { conn.config.StunTurn = turnStun } diff --git a/client/internal/peer/conn_test.go b/client/internal/peer/conn_test.go index ac2fa5c00..5c550d0d7 100644 --- a/client/internal/peer/conn_test.go +++ b/client/internal/peer/conn_test.go @@ -6,7 +6,7 @@ import ( "time" "github.com/magiconair/properties/assert" - "github.com/pion/ice/v2" + "github.com/pion/stun/v2" "github.com/netbirdio/netbird/client/internal/stdnet" "github.com/netbirdio/netbird/client/internal/wgproxy" @@ -16,7 +16,7 @@ import ( var connConf = ConnConfig{ Key: "LLHf3Ma6z6mdLbriAJbqhX7+nM/B71lgw2+91q3LfhU=", LocalKey: "RRHf3Ma6z6mdLbriAJbqhX7+nM/B71lgw2+91q3LfhU=", - StunTurn: []*ice.URL{}, + StunTurn: []*stun.URI{}, InterfaceBlackList: nil, Timeout: time.Second, LocalWgPort: 51820, diff --git a/client/internal/routemanager/manager_test.go b/client/internal/routemanager/manager_test.go index f6f5f359e..1aa58c16b 100644 --- a/client/internal/routemanager/manager_test.go +++ b/client/internal/routemanager/manager_test.go @@ -7,7 +7,7 @@ import ( "runtime" "testing" - "github.com/pion/transport/v2/stdnet" + "github.com/pion/transport/v3/stdnet" "github.com/stretchr/testify/require" diff --git a/client/internal/routemanager/systemops_nonandroid_test.go b/client/internal/routemanager/systemops_nonandroid_test.go index 2ae1e0ec4..f43a88eec 100644 --- a/client/internal/routemanager/systemops_nonandroid_test.go +++ b/client/internal/routemanager/systemops_nonandroid_test.go @@ -11,7 +11,7 @@ import ( "strings" "testing" - "github.com/pion/transport/v2/stdnet" + "github.com/pion/transport/v3/stdnet" log "github.com/sirupsen/logrus" "github.com/stretchr/testify/require" diff --git a/client/internal/stdnet/discover.go b/client/internal/stdnet/discover.go index 2bf3d8c4d..36590ea84 100644 --- a/client/internal/stdnet/discover.go +++ b/client/internal/stdnet/discover.go @@ -1,6 +1,6 @@ package stdnet -import "github.com/pion/transport/v2" +import "github.com/pion/transport/v3" // ExternalIFaceDiscover provide an option for external services (mobile) // to collect network interface information diff --git a/client/internal/stdnet/discover_mobile.go b/client/internal/stdnet/discover_mobile.go index 3b25e675f..fc39b5bef 100644 --- a/client/internal/stdnet/discover_mobile.go +++ b/client/internal/stdnet/discover_mobile.go @@ -5,7 +5,7 @@ import ( "net" "strings" - "github.com/pion/transport/v2" + "github.com/pion/transport/v3" log "github.com/sirupsen/logrus" ) diff --git a/client/internal/stdnet/discover_pion.go b/client/internal/stdnet/discover_pion.go index 327766632..83b4a1d14 100644 --- a/client/internal/stdnet/discover_pion.go +++ b/client/internal/stdnet/discover_pion.go @@ -3,7 +3,7 @@ package stdnet import ( "net" - "github.com/pion/transport/v2" + "github.com/pion/transport/v3" ) type pionDiscover struct { diff --git a/client/internal/stdnet/stdnet.go b/client/internal/stdnet/stdnet.go index 4cc1e6bcd..2e87475a5 100644 --- a/client/internal/stdnet/stdnet.go +++ b/client/internal/stdnet/stdnet.go @@ -6,8 +6,8 @@ package stdnet import ( "fmt" - "github.com/pion/transport/v2" - "github.com/pion/transport/v2/stdnet" + "github.com/pion/transport/v3" + "github.com/pion/transport/v3/stdnet" ) // Net is an implementation of the net.Net interface diff --git a/go.mod b/go.mod index 018d7ee01..528890b6a 100644 --- a/go.mod +++ b/go.mod @@ -6,12 +6,12 @@ require ( github.com/cenkalti/backoff/v4 v4.1.3 github.com/golang-jwt/jwt v3.2.2+incompatible github.com/golang/protobuf v1.5.3 - github.com/google/uuid v1.3.0 + github.com/google/uuid v1.3.1 github.com/gorilla/mux v1.8.0 github.com/kardianos/service v1.2.1-0.20210728001519-a323c3813bc7 github.com/onsi/ginkgo v1.16.5 github.com/onsi/gomega v1.18.1 - github.com/pion/ice/v2 v2.3.1 + github.com/pion/ice/v3 v3.0.2 github.com/rs/cors v1.8.0 github.com/sirupsen/logrus v1.9.0 github.com/spf13/cobra v1.6.1 @@ -56,12 +56,13 @@ require ( github.com/okta/okta-sdk-golang/v2 v2.18.0 github.com/patrickmn/go-cache v2.1.0+incompatible github.com/pion/logging v0.2.2 - github.com/pion/stun v0.4.0 - github.com/pion/transport/v2 v2.0.2 + github.com/pion/stun/v2 v2.0.0 + github.com/pion/transport/v2 v2.2.1 + github.com/pion/transport/v3 v3.0.1 github.com/prometheus/client_golang v1.14.0 github.com/rs/xid v1.3.0 github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966 - github.com/stretchr/testify v1.8.1 + github.com/stretchr/testify v1.8.4 github.com/yusufpapurcu/wmi v1.2.3 go.opentelemetry.io/otel v1.11.1 go.opentelemetry.io/otel/exporters/prometheus v0.33.0 @@ -124,11 +125,10 @@ require ( github.com/nxadm/tail v1.4.8 // indirect github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c // indirect github.com/pegasus-kv/thrift v0.13.0 // indirect - github.com/pion/dtls/v2 v2.2.6 // indirect - github.com/pion/mdns v0.0.7 // indirect + github.com/pion/dtls/v2 v2.2.7 // indirect + github.com/pion/mdns v0.0.9 // indirect github.com/pion/randutil v0.1.0 // indirect - github.com/pion/turn/v2 v2.1.0 // indirect - github.com/pion/udp/v2 v2.0.1 // indirect + github.com/pion/turn/v3 v3.0.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/prometheus/client_model v0.3.0 // indirect github.com/prometheus/common v0.37.0 // indirect diff --git a/go.sum b/go.sum index 9ad425dfd..bd3f6051f 100644 --- a/go.sum +++ b/go.sum @@ -340,8 +340,8 @@ github.com/google/s2a-go v0.1.4/go.mod h1:Ej+mSEMGRnqRzjc7VtF+jdBwYG5fuJfiZ8ELkj github.com/google/subcommands v1.0.2-0.20190508160503-636abe8753b8/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= -github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.3.1 h1:KjJaJ9iWZ3jOFZIf1Lqf4laDRCasjl0BCmnEGxkdLb4= +github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/enterprise-certificate-proxy v0.2.3 h1:yk9/cqRKtT9wXZSsRH9aurXEpJX+U6FLtpYTdC3R06k= github.com/googleapis/enterprise-certificate-proxy v0.2.3/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= @@ -545,25 +545,24 @@ github.com/pegasus-kv/thrift v0.13.0 h1:4ESwaNoHImfbHa9RUGJiJZ4hrxorihZHk5aarYwY github.com/pegasus-kv/thrift v0.13.0/go.mod h1:Gl9NT/WHG6ABm6NsrbfE8LiJN0sAyneCrvB4qN4NPqQ= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= -github.com/pion/dtls/v2 v2.2.6 h1:yXMxKr0Skd+Ub6A8UqXTRLSywskx93ooMRHsQUtd+Z4= -github.com/pion/dtls/v2 v2.2.6/go.mod h1:t8fWJCIquY5rlQZwA2yWxUS1+OCrAdXrhVKXB5oD/wY= -github.com/pion/ice/v2 v2.3.1 h1:FQCmUfZe2Jpe7LYStVBOP6z1DiSzbIateih3TztgTjc= -github.com/pion/ice/v2 v2.3.1/go.mod h1:aq2kc6MtYNcn4XmMhobAv6hTNJiHzvD0yXRz80+bnP8= +github.com/pion/dtls/v2 v2.2.7 h1:cSUBsETxepsCSFSxC3mc/aDo14qQLMSL+O6IjG28yV8= +github.com/pion/dtls/v2 v2.2.7/go.mod h1:8WiMkebSHFD0T+dIU+UeBaoV7kDhOW5oDCzZ7WZ/F9s= +github.com/pion/ice/v3 v3.0.2 h1:dNQnKsjLvOWz+PaI4tw1VnLYTp9adihC1HIASFGajmI= +github.com/pion/ice/v3 v3.0.2/go.mod h1:q3BDzTsxbqP0ySMSHrFuw2MYGUx/AC3WQfRGC5F/0Is= github.com/pion/logging v0.2.2 h1:M9+AIj/+pxNsDfAT64+MAVgJO0rsyLnoJKCqf//DoeY= github.com/pion/logging v0.2.2/go.mod h1:k0/tDVsRCX2Mb2ZEmTqNa7CWsQPc+YYCB7Q+5pahoms= -github.com/pion/mdns v0.0.7 h1:P0UB4Sr6xDWEox0kTVxF0LmQihtCbSAdW0H2nEgkA3U= -github.com/pion/mdns v0.0.7/go.mod h1:4iP2UbeFhLI/vWju/bw6ZfwjJzk0z8DNValjGxR/dD8= +github.com/pion/mdns v0.0.9 h1:7Ue5KZsqq8EuqStnpPWV33vYYEH0+skdDN5L7EiEsI4= +github.com/pion/mdns v0.0.9/go.mod h1:2JA5exfxwzXiCihmxpTKgFUpiQws2MnipoPK09vecIc= github.com/pion/randutil v0.1.0 h1:CFG1UdESneORglEsnimhUjf33Rwjubwj6xfiOXBa3mA= github.com/pion/randutil v0.1.0/go.mod h1:XcJrSMMbbMRhASFVOlj/5hQial/Y8oH/HVo7TBZq+j8= -github.com/pion/stun v0.4.0 h1:vgRrbBE2htWHy7l3Zsxckk7rkjnjOsSM7PHZnBwo8rk= -github.com/pion/stun v0.4.0/go.mod h1:QPsh1/SbXASntw3zkkrIk3ZJVKz4saBY2G7S10P3wCw= -github.com/pion/transport/v2 v2.0.0/go.mod h1:HS2MEBJTwD+1ZI2eSXSvHJx/HnzQqRy2/LXxt6eVMHc= -github.com/pion/transport/v2 v2.0.2 h1:St+8o+1PEzPT51O9bv+tH/KYYLMNR5Vwm5Z3Qkjsywg= -github.com/pion/transport/v2 v2.0.2/go.mod h1:vrz6bUbFr/cjdwbnxq8OdDDzHf7JJfGsIRkxfpZoTA0= -github.com/pion/turn/v2 v2.1.0 h1:5wGHSgGhJhP/RpabkUb/T9PdsAjkGLS6toYz5HNzoSI= -github.com/pion/turn/v2 v2.1.0/go.mod h1:yrT5XbXSGX1VFSF31A3c1kCNB5bBZgk/uu5LET162qs= -github.com/pion/udp/v2 v2.0.1 h1:xP0z6WNux1zWEjhC7onRA3EwwSliXqu1ElUZAQhUP54= -github.com/pion/udp/v2 v2.0.1/go.mod h1:B7uvTMP00lzWdyMr/1PVZXtV3wpPIxBRd4Wl6AksXn8= +github.com/pion/stun/v2 v2.0.0 h1:A5+wXKLAypxQri59+tmQKVs7+l6mMM+3d+eER9ifRU0= +github.com/pion/stun/v2 v2.0.0/go.mod h1:22qRSh08fSEttYUmJZGlriq9+03jtVmXNODgLccj8GQ= +github.com/pion/transport/v2 v2.2.1 h1:7qYnCBlpgSJNYMbLCKuSY9KbQdBFoETvPNETv0y4N7c= +github.com/pion/transport/v2 v2.2.1/go.mod h1:cXXWavvCnFF6McHTft3DWS9iic2Mftcz1Aq29pGcU5g= +github.com/pion/transport/v3 v3.0.1 h1:gDTlPJwROfSfz6QfSi0ZmeCSkFcnWWiiR9ES0ouANiM= +github.com/pion/transport/v3 v3.0.1/go.mod h1:UY7kiITrlMv7/IKgd5eTUcaahZx5oUN3l9SzK5f5xE0= +github.com/pion/turn/v3 v3.0.1 h1:wLi7BTQr6/Q20R0vt/lHbjv6y4GChFtC33nkYbasoT8= +github.com/pion/turn/v3 v3.0.1/go.mod h1:MrJDKgqryDyWy1/4NT9TWfXWGMC7UHT6pJIv1+gMeNE= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= @@ -661,8 +660,10 @@ github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tv42/httpunix v0.0.0-20191220191345-2ba4b9c3382c/go.mod h1:hzIxponao9Kjc7aWznkXaL4U4TWaDSs8zcsY4Ka08nM= @@ -730,8 +731,10 @@ golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20211202192323-5770296d904e/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220314234659-1baeb1ce4c0b/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.5.0/go.mod h1:NK/OQwhpMQP3MwtdjgLlYHnH9ebylxKWv3e0fK+mkQU= golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= +golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE= +golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw= +golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc= golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -836,11 +839,12 @@ golang.org/x/net v0.0.0-20211209124913-491a49abca63/go.mod h1:9nx3DQGgdP8bBQD5qx golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= -golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI= +golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -961,20 +965,22 @@ golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.1-0.20230222185716-a3b23cc77e89/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU= +golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= golang.org/x/term v0.13.0 h1:bb+I9cTfFazGW51MZqBVmZy7+JEJMouUHTUSKVQLBek= golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -987,11 +993,10 @@ golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= -golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= diff --git a/iface/bind/bind.go b/iface/bind/bind.go index d090009d2..00af25f67 100644 --- a/iface/bind/bind.go +++ b/iface/bind/bind.go @@ -6,8 +6,8 @@ import ( "runtime" "sync" - "github.com/pion/stun" - "github.com/pion/transport/v2" + "github.com/pion/stun/v2" + "github.com/pion/transport/v3" log "github.com/sirupsen/logrus" "golang.org/x/net/ipv4" wgConn "golang.zx2c4.com/wireguard/conn" diff --git a/iface/bind/udp_mux.go b/iface/bind/udp_mux.go index 4e0aa6e24..12f7a8129 100644 --- a/iface/bind/udp_mux.go +++ b/iface/bind/udp_mux.go @@ -7,13 +7,12 @@ import ( "strings" "sync" - "github.com/pion/ice/v2" - "github.com/pion/stun" - "github.com/pion/transport/v2/stdnet" - log "github.com/sirupsen/logrus" - + "github.com/pion/ice/v3" "github.com/pion/logging" - "github.com/pion/transport/v2" + "github.com/pion/stun/v2" + "github.com/pion/transport/v3" + "github.com/pion/transport/v3/stdnet" + log "github.com/sirupsen/logrus" ) /* @@ -224,6 +223,10 @@ func (m *UDPMuxDefault) GetListenAddresses() []net.Addr { // GetConn returns a PacketConn given the connection's ufrag and network address // creates the connection if an existing one can't be found func (m *UDPMuxDefault) GetConn(ufrag string, addr net.Addr) (net.PacketConn, error) { + // don't check addr for mux using unspecified address + if len(m.localAddrsForUnspecified) == 0 && m.params.UDPConn.LocalAddr().String() != addr.String() { + return nil, fmt.Errorf("invalid address %s", addr.String()) + } var isIPv6 bool if udpAddr, _ := addr.(*net.UDPAddr); udpAddr != nil && udpAddr.IP.To4() == nil { @@ -282,15 +285,7 @@ func (m *UDPMuxDefault) RemoveConnByUfrag(ufrag string) { for _, c := range removedConns { addresses := c.getAddresses() for _, addr := range addresses { - if connList, ok := m.addressMap[addr]; ok { - var newList []*udpMuxedConn - for _, conn := range connList { - if conn.params.Key != ufrag { - newList = append(newList, conn) - } - } - m.addressMap[addr] = newList - } + delete(m.addressMap, addr) } } } diff --git a/iface/bind/udp_mux_universal.go b/iface/bind/udp_mux_universal.go index 772f02b35..7121f1ff4 100644 --- a/iface/bind/udp_mux_universal.go +++ b/iface/bind/udp_mux_universal.go @@ -13,8 +13,8 @@ import ( log "github.com/sirupsen/logrus" "github.com/pion/logging" - "github.com/pion/stun" - "github.com/pion/transport/v2" + "github.com/pion/stun/v2" + "github.com/pion/transport/v3" ) // UniversalUDPMuxDefault handles STUN and TURN servers packets by wrapping the original UDPConn @@ -80,13 +80,13 @@ func (m *UniversalUDPMuxDefault) ReadFromConn(ctx context.Context) { log.Debugf("stopped reading from the UDPConn due to finished context") return default: - _, a, err := m.params.UDPConn.ReadFrom(buf) + n, a, err := m.params.UDPConn.ReadFrom(buf) if err != nil { log.Errorf("error while reading packet: %s", err) continue } msg := &stun.Message{ - Raw: buf, + Raw: append([]byte{}, buf[:n]...), } err = msg.Decode() if err != nil { diff --git a/iface/bind/udp_muxed_conn.go b/iface/bind/udp_muxed_conn.go index f5390032b..7cacf1c31 100644 --- a/iface/bind/udp_muxed_conn.go +++ b/iface/bind/udp_muxed_conn.go @@ -12,7 +12,7 @@ import ( "time" "github.com/pion/logging" - "github.com/pion/transport/v2/packetio" + "github.com/pion/transport/v3/packetio" ) type udpMuxedConnParams struct { diff --git a/iface/iface_android.go b/iface/iface_android.go index 6afa2d580..4803abfe3 100644 --- a/iface/iface_android.go +++ b/iface/iface_android.go @@ -4,7 +4,7 @@ import ( "fmt" "sync" - "github.com/pion/transport/v2" + "github.com/pion/transport/v3" ) // NewWGIFace Creates a new WireGuard interface instance diff --git a/iface/iface_nonandroid.go b/iface/iface_nonandroid.go index 80a9ab769..f6862f590 100644 --- a/iface/iface_nonandroid.go +++ b/iface/iface_nonandroid.go @@ -7,7 +7,7 @@ import ( "fmt" "sync" - "github.com/pion/transport/v2" + "github.com/pion/transport/v3" ) // NewWGIFace Creates a new WireGuard interface instance diff --git a/iface/iface_test.go b/iface/iface_test.go index 5ce276b75..7debbe4fc 100644 --- a/iface/iface_test.go +++ b/iface/iface_test.go @@ -6,7 +6,7 @@ import ( "testing" "time" - "github.com/pion/transport/v2/stdnet" + "github.com/pion/transport/v3/stdnet" log "github.com/sirupsen/logrus" "github.com/stretchr/testify/assert" "golang.zx2c4.com/wireguard/wgctrl" diff --git a/iface/tun_android.go b/iface/tun_android.go index e938dc57b..3600001ba 100644 --- a/iface/tun_android.go +++ b/iface/tun_android.go @@ -6,7 +6,7 @@ package iface import ( "strings" - "github.com/pion/transport/v2" + "github.com/pion/transport/v3" log "github.com/sirupsen/logrus" "golang.org/x/sys/unix" "golang.zx2c4.com/wireguard/device" diff --git a/iface/tun_unix.go b/iface/tun_unix.go index 627814fc7..bc2d8d019 100644 --- a/iface/tun_unix.go +++ b/iface/tun_unix.go @@ -6,7 +6,7 @@ import ( "net" "os" - "github.com/pion/transport/v2" + "github.com/pion/transport/v3" "golang.zx2c4.com/wireguard/ipc" "github.com/netbirdio/netbird/iface/bind" diff --git a/iface/tun_windows.go b/iface/tun_windows.go index a81702df1..a4ddf1d85 100644 --- a/iface/tun_windows.go +++ b/iface/tun_windows.go @@ -5,7 +5,7 @@ import ( "net" "net/netip" - "github.com/pion/transport/v2" + "github.com/pion/transport/v3" log "github.com/sirupsen/logrus" "golang.org/x/sys/windows" "golang.zx2c4.com/wireguard/device" diff --git a/sharedsock/sock_linux_test.go b/sharedsock/sock_linux_test.go index 40e880572..f5c85119c 100644 --- a/sharedsock/sock_linux_test.go +++ b/sharedsock/sock_linux_test.go @@ -11,7 +11,7 @@ import ( "testing" "time" - "github.com/pion/stun" + "github.com/pion/stun/v2" log "github.com/sirupsen/logrus" "github.com/stretchr/testify/require" "golang.org/x/sync/errgroup"