diff --git a/agent_test.go b/agent_test.go index 6ea65bb..044987a 100644 --- a/agent_test.go +++ b/agent_test.go @@ -204,7 +204,7 @@ func BenchmarkAgent_Process(b *testing.B) { } }() b.ReportAllocs() - m := MustBuild(TransactionID()) + m := MustBuild(TransactionID) for i := 0; i < b.N; i++ { if err := a.Process(m); err != nil { b.Fatal(err) diff --git a/client_test.go b/client_test.go index 2cf9941..ec2ca99 100644 --- a/client_test.go +++ b/client_test.go @@ -157,7 +157,7 @@ func TestClosedOrPanic(t *testing.T) { } func TestClient_Start(t *testing.T) { - response := MustBuild(TransactionID(), BindingSuccess) + response := MustBuild(TransactionID, BindingSuccess) response.Encode() write := make(chan struct{}, 1) read := make(chan struct{}, 1) @@ -196,7 +196,7 @@ func TestClient_Start(t *testing.T) { if err := c.Close(); err == nil { t.Error("second close should fail") } - if err := c.Do(MustBuild(TransactionID()), nil); err == nil { + if err := c.Do(MustBuild(TransactionID), nil); err == nil { t.Error("Do after Close should fail") } }() @@ -230,7 +230,7 @@ func TestClient_Start(t *testing.T) { } func TestClient_Do(t *testing.T) { - response := MustBuild(TransactionID(), BindingSuccess) + response := MustBuild(TransactionID, BindingSuccess) response.Encode() conn := &testConnection{ b: response.Raw, @@ -249,7 +249,7 @@ func TestClient_Do(t *testing.T) { if err := c.Close(); err == nil { t.Error("second close should fail") } - if err := c.Do(MustBuild(TransactionID()), nil); err == nil { + if err := c.Do(MustBuild(TransactionID), nil); err == nil { t.Error("Do after Close should fail") } }() @@ -263,7 +263,7 @@ func TestClient_Do(t *testing.T) { }); err != nil { t.Error(err) } - m = MustBuild(TransactionID()) + m = MustBuild(TransactionID) if err := c.Do(m, nil); err != nil { t.Error(err) } @@ -335,7 +335,7 @@ func (a errorAgent) Stop([TransactionIDSize]byte) error { } func TestClientAgentError(t *testing.T) { - response := MustBuild(TransactionID(), BindingSuccess) + response := MustBuild(TransactionID, BindingSuccess) response.Encode() conn := &testConnection{ b: response.Raw, @@ -384,7 +384,7 @@ func TestClientConnErr(t *testing.T) { t.Error(err) } }() - m := MustBuild(TransactionID()) + m := MustBuild(TransactionID) if err := c.Do(m, nil); err == nil { t.Error("error expected") } @@ -412,7 +412,7 @@ func TestClientConnErrStopErr(t *testing.T) { t.Error(err) } }() - m := MustBuild(TransactionID()) + m := MustBuild(TransactionID) if err := c.Do(m, NoopHandler()); err == nil { t.Error("error expected") } @@ -470,7 +470,7 @@ func TestDialError(t *testing.T) { } func TestClientCloseErr(t *testing.T) { - response := MustBuild(TransactionID(), BindingSuccess) + response := MustBuild(TransactionID, BindingSuccess) response.Encode() conn := &testConnection{ b: response.Raw, @@ -494,7 +494,7 @@ func TestClientCloseErr(t *testing.T) { } func TestWithNoConnClose(t *testing.T) { - response := MustBuild(TransactionID(), BindingSuccess) + response := MustBuild(TransactionID, BindingSuccess) response.Encode() closeErr := errClientCloseError conn := &testConnection{ @@ -548,7 +548,7 @@ func (a *gcWaitAgent) Start(id [TransactionIDSize]byte, deadline time.Time) erro } func TestClientGC(t *testing.T) { - response := MustBuild(TransactionID(), BindingSuccess) + response := MustBuild(TransactionID, BindingSuccess) response.Encode() conn := &testConnection{ b: response.Raw, @@ -614,7 +614,7 @@ func TestClientFinalizer(t *testing.T) { } clientFinalizer(c) clientFinalizer(c) - response := MustBuild(TransactionID(), BindingSuccess) + response := MustBuild(TransactionID, BindingSuccess) response.Encode() conn = &testConnection{ b: response.Raw, @@ -738,7 +738,7 @@ func (n *manualAgent) Stop(id [TransactionIDSize]byte) error { } func TestClientRetransmission(t *testing.T) { - response := MustBuild(TransactionID(), BindingSuccess) + response := MustBuild(TransactionID, BindingSuccess) response.Encode() connL, connR := net.Pipe() defer connL.Close() @@ -801,7 +801,7 @@ func TestClientRetransmission(t *testing.T) { } func testClientDoConcurrent(t *testing.T, concurrency int) { - response := MustBuild(TransactionID(), BindingSuccess) + response := MustBuild(TransactionID, BindingSuccess) response.Encode() connL, connR := net.Pipe() defer connL.Close() @@ -847,7 +847,7 @@ func testClientDoConcurrent(t *testing.T, concurrency int) { wg.Add(1) go func() { defer wg.Done() - if doErr := c.Do(MustBuild(TransactionID(), BindingRequest), func(event Event) { + if doErr := c.Do(MustBuild(TransactionID, BindingRequest), func(event Event) { if event.Error != nil { t.Error("failed") } @@ -989,7 +989,7 @@ func TestClientClosedStart(t *testing.T) { } func TestWithNoRetransmit(t *testing.T) { - response := MustBuild(TransactionID(), BindingSuccess) + response := MustBuild(TransactionID, BindingSuccess) response.Encode() connL, connR := net.Pipe() defer connL.Close() @@ -1052,7 +1052,7 @@ func (c callbackClock) Now() time.Time { } func TestClientRTOStartErr(t *testing.T) { - response := MustBuild(TransactionID(), BindingSuccess) + response := MustBuild(TransactionID, BindingSuccess) response.Encode() connL, connR := net.Pipe() defer connL.Close() @@ -1164,7 +1164,7 @@ func TestClientRTOStartErr(t *testing.T) { } func TestClientRTOWriteErr(t *testing.T) { - response := MustBuild(TransactionID(), BindingSuccess) + response := MustBuild(TransactionID, BindingSuccess) response.Encode() connL, connR := net.Pipe() defer connL.Close() @@ -1285,7 +1285,7 @@ func TestClientRTOWriteErr(t *testing.T) { } func TestClientRTOAgentErr(t *testing.T) { - response := MustBuild(TransactionID(), BindingSuccess) + response := MustBuild(TransactionID, BindingSuccess) response.Encode() connL, connR := net.Pipe() defer connL.Close() @@ -1349,7 +1349,7 @@ func TestClientRTOAgentErr(t *testing.T) { } func TestClient_HandleProcessError(t *testing.T) { - response := MustBuild(TransactionID(), BindingSuccess) + response := MustBuild(TransactionID, BindingSuccess) response.Encode() connL, connR := net.Pipe() defer connL.Close() @@ -1391,7 +1391,7 @@ func TestClient_HandleProcessError(t *testing.T) { } func TestClientImmediateTimeout(t *testing.T) { - response := MustBuild(TransactionID(), BindingSuccess) + response := MustBuild(TransactionID, BindingSuccess) connL, connR := net.Pipe() defer connL.Close() collector := new(manualCollector) diff --git a/cmd/stun-client/stun_client.go b/cmd/stun-client/stun_client.go index ad78566..5273276 100644 --- a/cmd/stun-client/stun_client.go +++ b/cmd/stun-client/stun_client.go @@ -23,7 +23,7 @@ func main() { if err != nil { log.Fatal("dial:", err) } - if err = c.Do(stun.MustBuild(stun.TransactionID(), stun.BindingRequest), func(res stun.Event) { + if err = c.Do(stun.MustBuild(stun.TransactionID, stun.BindingRequest), func(res stun.Event) { if res.Error != nil { log.Fatalln(err) } diff --git a/cmd/stun-multiplex/main.go b/cmd/stun-multiplex/main.go index 306e436..82a9405 100644 --- a/cmd/stun-multiplex/main.go +++ b/cmd/stun-multiplex/main.go @@ -25,7 +25,7 @@ func keepAlive(c *stun.Client) { // Keep-alive for NAT binding. t := time.NewTicker(time.Second * 5) for range t.C { - if err := c.Do(stun.MustBuild(stun.TransactionID(), stun.BindingRequest), func(res stun.Event) { + if err := c.Do(stun.MustBuild(stun.TransactionID, stun.BindingRequest), func(res stun.Event) { if res.Error != nil { panic(res.Error) } @@ -119,7 +119,7 @@ func main() { // This can fail if your NAT Server is strict and will use separate ports // for application data and STUN var gotAddr stun.XORMappedAddress - if err = c.Do(stun.MustBuild(stun.TransactionID(), stun.BindingRequest), func(res stun.Event) { + if err = c.Do(stun.MustBuild(stun.TransactionID, stun.BindingRequest), func(res stun.Event) { if res.Error != nil { panic(res.Error) } diff --git a/cmd/stun-nat-behaviour/main.go b/cmd/stun-nat-behaviour/main.go index 1334ef3..448a09c 100644 --- a/cmd/stun-nat-behaviour/main.go +++ b/cmd/stun-nat-behaviour/main.go @@ -79,7 +79,7 @@ func MappingTests(addrStr string) error { // Test I: Regular binding request log.Info("Mapping Test I: Regular binding request") - request := stun.MustBuild(stun.TransactionID(), stun.BindingRequest) + request := stun.MustBuild(stun.TransactionID, stun.BindingRequest) resp, err := mapTestConn.roundTrip(request, mapTestConn.RemoteAddr) if err != nil { @@ -153,7 +153,7 @@ func FilteringTests(addrStr string) error { // Test I: Regular binding request log.Info("Filtering Test I: Regular binding request") - request := stun.MustBuild(stun.TransactionID(), stun.BindingRequest) + request := stun.MustBuild(stun.TransactionID, stun.BindingRequest) resp, err := mapTestConn.roundTrip(request, mapTestConn.RemoteAddr) if err != nil || errors.Is(err, ErrTimedOut) { diff --git a/cmd/stun-traversal/main.go b/cmd/stun-traversal/main.go index a829fb2..dc6bf85 100644 --- a/cmd/stun-traversal/main.go +++ b/cmd/stun-traversal/main.go @@ -165,7 +165,7 @@ func listen(conn *net.UDPConn) <-chan []byte { } func sendBindingRequest(conn *net.UDPConn, addr *net.UDPAddr) error { - m := stun.MustBuild(stun.TransactionID(), stun.BindingRequest) + m := stun.MustBuild(stun.TransactionID, stun.BindingRequest) err := send(m.Raw, conn, addr) if err != nil { diff --git a/e2e/main.go b/e2e/main.go index a0f665a..bcfdfe7 100644 --- a/e2e/main.go +++ b/e2e/main.go @@ -36,7 +36,7 @@ func test(network string) { log.Fatal(err) // nolint } // First request should error. - request, err := stun.Build(stun.BindingRequest, stun.TransactionID(), stun.Fingerprint) + request, err := stun.Build(stun.BindingRequest, stun.TransactionID, stun.Fingerprint) if err != nil { log.Fatalln("failed to build:", err) // nolint } @@ -64,7 +64,7 @@ func test(network string) { } // Authenticating and sending second request. - request, err = stun.Build(stun.TransactionID(), stun.BindingRequest, + request, err = stun.Build(stun.TransactionID, stun.BindingRequest, stun.NewUsername(username), nonce, realm, stun.NewLongTermIntegrity(username, realm.String(), password), stun.Fingerprint, diff --git a/helpers_test.go b/helpers_test.go index edba4d8..e695f44 100644 --- a/helpers_test.go +++ b/helpers_test.go @@ -49,7 +49,7 @@ func TestMessage_Apply(t *testing.T) { integrity = NewShortTermIntegrity("password") decoded = new(Message) ) - m, err := Build(BindingRequest, TransactionID(), + m, err := Build(BindingRequest, TransactionID, NewUsername("username"), NewNonce("nonce"), NewRealm("example.org"), diff --git a/message_test.go b/message_test.go index 46d3b06..f8bf593 100644 --- a/message_test.go +++ b/message_test.go @@ -752,7 +752,7 @@ func TestAllocations(t *testing.T) { // Not testing AttrMessageIntegrity because it allocates. setters := []Setter{ BindingRequest, - TransactionID(), + TransactionID, Fingerprint, NewNonce("nonce"), NewUsername("username"), @@ -788,7 +788,7 @@ func TestAllocationsGetters(t *testing.T) { // Not testing AttrMessageIntegrity because it allocates. setters := []Setter{ BindingRequest, - TransactionID(), + TransactionID, NewNonce("nonce"), NewUsername("username"), XORMappedAddress{ diff --git a/stun.go b/stun.go index b14900b..52f0c47 100644 --- a/stun.go +++ b/stun.go @@ -48,6 +48,4 @@ func (transactionIDSetter) AddTo(m *Message) error { } // TransactionID is Setter for m.TransactionID. -func TransactionID() Setter { - return transactionIDSetter{} -} +var TransactionID Setter = transactionIDSetter{} //nolint:gochecknoglobals