frostfs-node/pkg/network/tls.go
Leonard Lyubich e3eade619d [#607] network: Remove no longer used Address.AddTLS method
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2021-06-28 15:52:50 +03:00

56 lines
1.3 KiB
Go

package network
import (
"fmt"
"github.com/multiformats/go-multiaddr"
)
// There is implementation of TLS protocol for
// github.com/multiformats/go-multiaddr library in this file.
//
// After addition TLS protocol via `multiaddr.AddProtocol` function
// the library is ready to parse "tls" protocol with empty body, e.g.:
//
// "/dns4/localhost/tcp/8080/tls"
const (
tlsProtocolName = "tls"
// tlsProtocolCode is chosen according to its draft version's code in
// original multiaddr repository: https://github.com/multiformats/multicodec.
tlsProtocolCode = 0x01c0
)
// tls var is used for (un)wrapping other multiaddrs around TLS multiaddr.
var tls multiaddr.Multiaddr
func init() {
tlsProtocol := multiaddr.Protocol{
Name: tlsProtocolName,
Code: tlsProtocolCode,
Size: 0,
VCode: multiaddr.CodeToVarint(tlsProtocolCode),
}
err := multiaddr.AddProtocol(tlsProtocol)
if err != nil {
panic(fmt.Errorf("could not add 'TLS' protocol to multiadd library: %w", err))
}
tls, err = multiaddr.NewMultiaddr("/" + tlsProtocolName)
if err != nil {
panic(fmt.Errorf("could not init 'TLS' protocol with multiadd library: %w", err))
}
}
// TLSEnabled searches for wrapped TLS protocol in multiaddr.
func (a Address) TLSEnabled() bool {
for _, protoc := range a.ma.Protocols() {
if protoc.Code == tlsProtocolCode {
return true
}
}
return false
}