diff --git a/pkg/network/tls.go b/pkg/network/tls.go index 9aac89c4..544dc824 100644 --- a/pkg/network/tls.go +++ b/pkg/network/tls.go @@ -13,11 +13,6 @@ var tls, _ = multiaddr.NewMultiaddr("/" + tlsProtocolName) // IsTLSEnabled searches for wrapped TLS protocol in multiaddr. func (a Address) IsTLSEnabled() bool { - for _, protoc := range a.ma.Protocols() { - if protoc.Code == multiaddr.P_TLS { - return true - } - } - - return false + _, err := a.ma.ValueForProtocol(multiaddr.P_TLS) + return err == nil } diff --git a/pkg/network/tls_test.go b/pkg/network/tls_test.go index d93ea6a1..6c352484 100644 --- a/pkg/network/tls_test.go +++ b/pkg/network/tls_test.go @@ -27,3 +27,18 @@ func TestAddress_TLSEnabled(t *testing.T) { require.Equal(t, test.wantTLS, addr.IsTLSEnabled(), test.input) } } + +func BenchmarkAddressTLSEnabled(b *testing.B) { + var addr Address + err := addr.FromString("/dns4/localhost/tcp/8080/tls") + require.NoError(b, err) + + b.ResetTimer() + b.ReportAllocs() + + var enabled bool + for i := 0; i < b.N; i++ { + enabled = addr.IsTLSEnabled() + } + require.True(b, enabled) +}