Revert "Revert "[relay] Update GO version and QUIC version (#4736)" (#5055)" (#5071)

This reverts commit 24df442198.
This commit is contained in:
Zoltan Papp
2026-01-08 18:58:22 +01:00
committed by GitHub
parent fb71b0d04b
commit 9c9d8e17d7
78 changed files with 311 additions and 340 deletions

View File

@@ -1,5 +1,4 @@
//go:build integration
// +build integration
package rest_test

View File

@@ -161,7 +161,7 @@ func (c *Client) NewRequest(ctx context.Context, method, path string, body io.Re
func parseResponse[T any](resp *http.Response) (T, error) {
var ret T
if resp.Body == nil {
return ret, fmt.Errorf("Body missing, HTTP Error code %d", resp.StatusCode)
return ret, fmt.Errorf("body missing, HTTP Error code %d", resp.StatusCode)
}
bs, err := io.ReadAll(resp.Body)
if err != nil {
@@ -169,7 +169,7 @@ func parseResponse[T any](resp *http.Response) (T, error) {
}
err = json.Unmarshal(bs, &ret)
if err != nil {
return ret, fmt.Errorf("Error code %d, error unmarshalling body: %w", resp.StatusCode, err)
return ret, fmt.Errorf("error code %d, error unmarshalling body: %w", resp.StatusCode, err)
}
return ret, nil

View File

@@ -1,5 +1,4 @@
//go:build integration
// +build integration
package rest_test

View File

@@ -1,5 +1,4 @@
//go:build integration
// +build integration
package rest_test

View File

@@ -1,5 +1,4 @@
//go:build integration
// +build integration
package rest_test

View File

@@ -1,5 +1,4 @@
//go:build integration
// +build integration
package rest_test

View File

@@ -1,5 +1,4 @@
//go:build integration
// +build integration
package rest_test

View File

@@ -1,5 +1,4 @@
//go:build integration
// +build integration
package rest_test

View File

@@ -1,5 +1,4 @@
//go:build integration
// +build integration
package rest_test

View File

@@ -1,5 +1,4 @@
//go:build integration
// +build integration
package rest_test

View File

@@ -1,5 +1,4 @@
//go:build integration
// +build integration
package rest_test

View File

@@ -1,5 +1,4 @@
//go:build integration
// +build integration
package rest_test

View File

@@ -1,5 +1,4 @@
//go:build integration
// +build integration
package rest_test

View File

@@ -1,5 +1,4 @@
//go:build integration
// +build integration
package rest_test

View File

@@ -1,5 +1,4 @@
//go:build integration
// +build integration
package rest_test

View File

@@ -1,5 +1,4 @@
//go:build integration
// +build integration
package rest_test

View File

@@ -19,15 +19,7 @@ import (
)
var (
hmacTokenStore = &hmac.TokenStore{}
serverListenAddr = "127.0.0.1:1234"
serverURL = "rel://127.0.0.1:1234"
serverCfg = server.Config{
Meter: otel.Meter(""),
ExposedAddress: serverURL,
TLSSupport: false,
AuthValidator: &allow.Auth{},
}
hmacTokenStore = &hmac.TokenStore{}
)
func TestMain(m *testing.M) {
@@ -36,8 +28,20 @@ func TestMain(m *testing.M) {
os.Exit(code)
}
// newClientTestServerConfig creates a new server config for client testing with the given address
func newClientTestServerConfig(address string) server.Config {
return server.Config{
Meter: otel.Meter(""),
ExposedAddress: "rel://" + address,
TLSSupport: false,
AuthValidator: &allow.Auth{},
}
}
func TestClient(t *testing.T) {
ctx := context.Background()
serverListenAddr := "127.0.0.1:50001"
serverCfg := newClientTestServerConfig(serverListenAddr)
srv, err := server.NewServer(serverCfg)
if err != nil {
@@ -64,7 +68,7 @@ func TestClient(t *testing.T) {
t.Fatalf("failed to start server: %s", err)
}
t.Log("alice connecting to server")
clientAlice := NewClient(serverURL, hmacTokenStore, "alice", iface.DefaultMTU)
clientAlice := NewClient(serverCfg.ExposedAddress, hmacTokenStore, "alice", iface.DefaultMTU)
err = clientAlice.Connect(ctx)
if err != nil {
t.Fatalf("failed to connect to server: %s", err)
@@ -72,7 +76,7 @@ func TestClient(t *testing.T) {
defer clientAlice.Close()
t.Log("placeholder connecting to server")
clientPlaceHolder := NewClient(serverURL, hmacTokenStore, "clientPlaceHolder", iface.DefaultMTU)
clientPlaceHolder := NewClient(serverCfg.ExposedAddress, hmacTokenStore, "clientPlaceHolder", iface.DefaultMTU)
err = clientPlaceHolder.Connect(ctx)
if err != nil {
t.Fatalf("failed to connect to server: %s", err)
@@ -80,7 +84,7 @@ func TestClient(t *testing.T) {
defer clientPlaceHolder.Close()
t.Log("Bob connecting to server")
clientBob := NewClient(serverURL, hmacTokenStore, "bob", iface.DefaultMTU)
clientBob := NewClient(serverCfg.ExposedAddress, hmacTokenStore, "bob", iface.DefaultMTU)
err = clientBob.Connect(ctx)
if err != nil {
t.Fatalf("failed to connect to server: %s", err)
@@ -120,6 +124,8 @@ func TestClient(t *testing.T) {
func TestRegistration(t *testing.T) {
ctx := context.Background()
serverListenAddr := "127.0.0.1:50101"
serverCfg := newClientTestServerConfig(serverListenAddr)
srvCfg := server.ListenerConfig{Address: serverListenAddr}
srv, err := server.NewServer(serverCfg)
if err != nil {
@@ -138,7 +144,7 @@ func TestRegistration(t *testing.T) {
t.Fatalf("failed to start server: %s", err)
}
clientAlice := NewClient(serverURL, hmacTokenStore, "alice", iface.DefaultMTU)
clientAlice := NewClient(serverCfg.ExposedAddress, hmacTokenStore, "alice", iface.DefaultMTU)
err = clientAlice.Connect(ctx)
if err != nil {
_ = srv.Shutdown(ctx)
@@ -157,7 +163,7 @@ func TestRegistration(t *testing.T) {
func TestRegistrationTimeout(t *testing.T) {
ctx := context.Background()
fakeUDPListener, err := net.ListenUDP("udp", &net.UDPAddr{
Port: 1234,
Port: 50201,
IP: net.ParseIP("0.0.0.0"),
})
if err != nil {
@@ -168,7 +174,7 @@ func TestRegistrationTimeout(t *testing.T) {
}(fakeUDPListener)
fakeTCPListener, err := net.ListenTCP("tcp", &net.TCPAddr{
Port: 1234,
Port: 50201,
IP: net.ParseIP("0.0.0.0"),
})
if err != nil {
@@ -178,7 +184,7 @@ func TestRegistrationTimeout(t *testing.T) {
_ = fakeTCPListener.Close()
}(fakeTCPListener)
clientAlice := NewClient("127.0.0.1:1234", hmacTokenStore, "alice", iface.DefaultMTU)
clientAlice := NewClient("127.0.0.1:50201", hmacTokenStore, "alice", iface.DefaultMTU)
err = clientAlice.Connect(ctx)
if err == nil {
t.Errorf("failed to connect to server: %s", err)
@@ -192,6 +198,8 @@ func TestRegistrationTimeout(t *testing.T) {
func TestEcho(t *testing.T) {
ctx := context.Background()
serverListenAddr := "127.0.0.1:50301"
serverCfg := newClientTestServerConfig(serverListenAddr)
idAlice := "alice"
idBob := "bob"
srvCfg := server.ListenerConfig{Address: serverListenAddr}
@@ -219,7 +227,7 @@ func TestEcho(t *testing.T) {
t.Fatalf("failed to start server: %s", err)
}
clientAlice := NewClient(serverURL, hmacTokenStore, idAlice, iface.DefaultMTU)
clientAlice := NewClient(serverCfg.ExposedAddress, hmacTokenStore, idAlice, iface.DefaultMTU)
err = clientAlice.Connect(ctx)
if err != nil {
t.Fatalf("failed to connect to server: %s", err)
@@ -231,7 +239,7 @@ func TestEcho(t *testing.T) {
}
}()
clientBob := NewClient(serverURL, hmacTokenStore, idBob, iface.DefaultMTU)
clientBob := NewClient(serverCfg.ExposedAddress, hmacTokenStore, idBob, iface.DefaultMTU)
err = clientBob.Connect(ctx)
if err != nil {
t.Fatalf("failed to connect to server: %s", err)
@@ -282,6 +290,8 @@ func TestEcho(t *testing.T) {
func TestBindToUnavailabePeer(t *testing.T) {
ctx := context.Background()
serverListenAddr := "127.0.0.1:50401"
serverCfg := newClientTestServerConfig(serverListenAddr)
srvCfg := server.ListenerConfig{Address: serverListenAddr}
srv, err := server.NewServer(serverCfg)
@@ -309,7 +319,7 @@ func TestBindToUnavailabePeer(t *testing.T) {
t.Fatalf("failed to start server: %s", err)
}
clientAlice := NewClient(serverURL, hmacTokenStore, "alice", iface.DefaultMTU)
clientAlice := NewClient(serverCfg.ExposedAddress, hmacTokenStore, "alice", iface.DefaultMTU)
err = clientAlice.Connect(ctx)
if err != nil {
t.Errorf("failed to connect to server: %s", err)
@@ -328,6 +338,8 @@ func TestBindToUnavailabePeer(t *testing.T) {
func TestBindReconnect(t *testing.T) {
ctx := context.Background()
serverListenAddr := "127.0.0.1:50501"
serverCfg := newClientTestServerConfig(serverListenAddr)
srvCfg := server.ListenerConfig{Address: serverListenAddr}
srv, err := server.NewServer(serverCfg)
@@ -355,13 +367,13 @@ func TestBindReconnect(t *testing.T) {
t.Fatalf("failed to start server: %s", err)
}
clientAlice := NewClient(serverURL, hmacTokenStore, "alice", iface.DefaultMTU)
clientAlice := NewClient(serverCfg.ExposedAddress, hmacTokenStore, "alice", iface.DefaultMTU)
err = clientAlice.Connect(ctx)
if err != nil {
t.Fatalf("failed to connect to server: %s", err)
}
clientBob := NewClient(serverURL, hmacTokenStore, "bob", iface.DefaultMTU)
clientBob := NewClient(serverCfg.ExposedAddress, hmacTokenStore, "bob", iface.DefaultMTU)
err = clientBob.Connect(ctx)
if err != nil {
t.Errorf("failed to connect to server: %s", err)
@@ -383,7 +395,7 @@ func TestBindReconnect(t *testing.T) {
t.Errorf("failed to close client: %s", err)
}
clientAlice = NewClient(serverURL, hmacTokenStore, "alice", iface.DefaultMTU)
clientAlice = NewClient(serverCfg.ExposedAddress, hmacTokenStore, "alice", iface.DefaultMTU)
err = clientAlice.Connect(ctx)
if err != nil {
t.Errorf("failed to connect to server: %s", err)
@@ -429,6 +441,8 @@ func TestBindReconnect(t *testing.T) {
func TestCloseConn(t *testing.T) {
ctx := context.Background()
serverListenAddr := "127.0.0.1:50601"
serverCfg := newClientTestServerConfig(serverListenAddr)
srvCfg := server.ListenerConfig{Address: serverListenAddr}
srv, err := server.NewServer(serverCfg)
@@ -456,13 +470,13 @@ func TestCloseConn(t *testing.T) {
t.Fatalf("failed to start server: %s", err)
}
bob := NewClient(serverURL, hmacTokenStore, "bob", iface.DefaultMTU)
bob := NewClient(serverCfg.ExposedAddress, hmacTokenStore, "bob", iface.DefaultMTU)
err = bob.Connect(ctx)
if err != nil {
t.Errorf("failed to connect to server: %s", err)
}
clientAlice := NewClient(serverURL, hmacTokenStore, "alice", iface.DefaultMTU)
clientAlice := NewClient(serverCfg.ExposedAddress, hmacTokenStore, "alice", iface.DefaultMTU)
err = clientAlice.Connect(ctx)
if err != nil {
t.Errorf("failed to connect to server: %s", err)
@@ -492,6 +506,8 @@ func TestCloseConn(t *testing.T) {
func TestCloseRelayConn(t *testing.T) {
ctx := context.Background()
serverListenAddr := "127.0.0.1:50701"
serverCfg := newClientTestServerConfig(serverListenAddr)
srvCfg := server.ListenerConfig{Address: serverListenAddr}
srv, err := server.NewServer(serverCfg)
@@ -518,13 +534,13 @@ func TestCloseRelayConn(t *testing.T) {
t.Fatalf("failed to start server: %s", err)
}
bob := NewClient(serverURL, hmacTokenStore, "bob", iface.DefaultMTU)
bob := NewClient(serverCfg.ExposedAddress, hmacTokenStore, "bob", iface.DefaultMTU)
err = bob.Connect(ctx)
if err != nil {
t.Fatalf("failed to connect to server: %s", err)
}
clientAlice := NewClient(serverURL, hmacTokenStore, "alice", iface.DefaultMTU)
clientAlice := NewClient(serverCfg.ExposedAddress, hmacTokenStore, "alice", iface.DefaultMTU)
err = clientAlice.Connect(ctx)
if err != nil {
t.Fatalf("failed to connect to server: %s", err)
@@ -550,6 +566,8 @@ func TestCloseRelayConn(t *testing.T) {
func TestCloseByServer(t *testing.T) {
ctx := context.Background()
serverListenAddr := "127.0.0.1:50801"
serverCfg := newClientTestServerConfig(serverListenAddr)
srvCfg := server.ListenerConfig{Address: serverListenAddr}
srv1, err := server.NewServer(serverCfg)
@@ -572,7 +590,7 @@ func TestCloseByServer(t *testing.T) {
idAlice := "alice"
log.Debugf("connect by alice")
relayClient := NewClient(serverURL, hmacTokenStore, idAlice, iface.DefaultMTU)
relayClient := NewClient(serverCfg.ExposedAddress, hmacTokenStore, idAlice, iface.DefaultMTU)
if err = relayClient.Connect(ctx); err != nil {
log.Fatalf("failed to connect to server: %s", err)
}
@@ -607,6 +625,8 @@ func TestCloseByServer(t *testing.T) {
func TestCloseByClient(t *testing.T) {
ctx := context.Background()
serverListenAddr := "127.0.0.1:50901"
serverCfg := newClientTestServerConfig(serverListenAddr)
srvCfg := server.ListenerConfig{Address: serverListenAddr}
srv, err := server.NewServer(serverCfg)
@@ -628,7 +648,7 @@ func TestCloseByClient(t *testing.T) {
idAlice := "alice"
log.Debugf("connect by alice")
relayClient := NewClient(serverURL, hmacTokenStore, idAlice, iface.DefaultMTU)
relayClient := NewClient(serverCfg.ExposedAddress, hmacTokenStore, idAlice, iface.DefaultMTU)
err = relayClient.Connect(ctx)
if err != nil {
log.Fatalf("failed to connect to server: %s", err)
@@ -652,6 +672,8 @@ func TestCloseByClient(t *testing.T) {
func TestCloseNotDrainedChannel(t *testing.T) {
ctx := context.Background()
serverListenAddr := "127.0.0.1:51001"
serverCfg := newClientTestServerConfig(serverListenAddr)
idAlice := "alice"
idBob := "bob"
srvCfg := server.ListenerConfig{Address: serverListenAddr}
@@ -679,7 +701,7 @@ func TestCloseNotDrainedChannel(t *testing.T) {
t.Fatalf("failed to start server: %s", err)
}
clientAlice := NewClient(serverURL, hmacTokenStore, idAlice, iface.DefaultMTU)
clientAlice := NewClient(serverCfg.ExposedAddress, hmacTokenStore, idAlice, iface.DefaultMTU)
err = clientAlice.Connect(ctx)
if err != nil {
t.Fatalf("failed to connect to server: %s", err)
@@ -691,7 +713,7 @@ func TestCloseNotDrainedChannel(t *testing.T) {
}
}()
clientBob := NewClient(serverURL, hmacTokenStore, idBob, iface.DefaultMTU)
clientBob := NewClient(serverCfg.ExposedAddress, hmacTokenStore, idBob, iface.DefaultMTU)
err = clientBob.Connect(ctx)
if err != nil {
t.Fatalf("failed to connect to server: %s", err)

View File

@@ -30,11 +30,11 @@ func (a Addr) String() string {
}
type Conn struct {
session quic.Connection
session *quic.Conn
ctx context.Context
}
func NewConn(session quic.Connection) net.Conn {
func NewConn(session *quic.Conn) net.Conn {
return &Conn{
session: session,
ctx: context.Background(),

View File

@@ -13,6 +13,16 @@ import (
"github.com/netbirdio/netbird/shared/relay/auth/allow"
)
// newManagerTestServerConfig creates a new server config for manager testing with the given address
func newManagerTestServerConfig(address string) server.Config {
return server.Config{
Meter: otel.Meter(""),
ExposedAddress: address,
TLSSupport: false,
AuthValidator: &allow.Auth{},
}
}
func TestEmptyURL(t *testing.T) {
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
@@ -27,15 +37,10 @@ func TestForeignConn(t *testing.T) {
ctx := context.Background()
lstCfg1 := server.ListenerConfig{
Address: "localhost:1234",
Address: "localhost:52101",
}
srv1, err := server.NewServer(server.Config{
Meter: otel.Meter(""),
ExposedAddress: lstCfg1.Address,
TLSSupport: false,
AuthValidator: &allow.Auth{},
})
srv1, err := server.NewServer(newManagerTestServerConfig(lstCfg1.Address))
if err != nil {
t.Fatalf("failed to create server: %s", err)
}
@@ -59,14 +64,9 @@ func TestForeignConn(t *testing.T) {
}
srvCfg2 := server.ListenerConfig{
Address: "localhost:2234",
Address: "localhost:52102",
}
srv2, err := server.NewServer(server.Config{
Meter: otel.Meter(""),
ExposedAddress: srvCfg2.Address,
TLSSupport: false,
AuthValidator: &allow.Auth{},
})
srv2, err := server.NewServer(newManagerTestServerConfig(srvCfg2.Address))
if err != nil {
t.Fatalf("failed to create server: %s", err)
}
@@ -144,9 +144,9 @@ func TestForeginConnClose(t *testing.T) {
ctx := context.Background()
srvCfg1 := server.ListenerConfig{
Address: "localhost:1234",
Address: "localhost:52201",
}
srv1, err := server.NewServer(serverCfg)
srv1, err := server.NewServer(newManagerTestServerConfig(srvCfg1.Address))
if err != nil {
t.Fatalf("failed to create server: %s", err)
}
@@ -170,9 +170,9 @@ func TestForeginConnClose(t *testing.T) {
}
srvCfg2 := server.ListenerConfig{
Address: "localhost:2234",
Address: "localhost:52202",
}
srv2, err := server.NewServer(serverCfg)
srv2, err := server.NewServer(newManagerTestServerConfig(srvCfg2.Address))
if err != nil {
t.Fatalf("failed to create server: %s", err)
}
@@ -225,9 +225,9 @@ func TestForeignAutoClose(t *testing.T) {
keepUnusedServerTime = 2 * time.Second
srvCfg1 := server.ListenerConfig{
Address: "localhost:1234",
Address: "localhost:52301",
}
srv1, err := server.NewServer(serverCfg)
srv1, err := server.NewServer(newManagerTestServerConfig(srvCfg1.Address))
if err != nil {
t.Fatalf("failed to create server: %s", err)
}
@@ -252,9 +252,9 @@ func TestForeignAutoClose(t *testing.T) {
}
srvCfg2 := server.ListenerConfig{
Address: "localhost:2234",
Address: "localhost:52302",
}
srv2, err := server.NewServer(serverCfg)
srv2, err := server.NewServer(newManagerTestServerConfig(srvCfg2.Address))
if err != nil {
t.Fatalf("failed to create server: %s", err)
}
@@ -327,9 +327,9 @@ func TestAutoReconnect(t *testing.T) {
ctx := context.Background()
srvCfg := server.ListenerConfig{
Address: "localhost:1234",
Address: "localhost:52401",
}
srv, err := server.NewServer(serverCfg)
srv, err := server.NewServer(newManagerTestServerConfig(srvCfg.Address))
if err != nil {
t.Fatalf("failed to create server: %s", err)
}
@@ -397,14 +397,9 @@ func TestNotifierDoubleAdd(t *testing.T) {
ctx := context.Background()
listenerCfg1 := server.ListenerConfig{
Address: "localhost:1234",
Address: "localhost:52501",
}
srv, err := server.NewServer(server.Config{
Meter: otel.Meter(""),
ExposedAddress: listenerCfg1.Address,
TLSSupport: false,
AuthValidator: &allow.Auth{},
})
srv, err := server.NewServer(newManagerTestServerConfig(listenerCfg1.Address))
if err != nil {
t.Fatalf("failed to create server: %s", err)
}