mirror of
https://github.com/logos-messaging/go-multiaddr.git
synced 2026-01-02 13:03:11 +00:00
Merge pull request #159 from multiformats/remove-deprecated-netcodec
remove deprecated NetCodec
This commit is contained in:
commit
87b29417a6
@ -44,39 +44,6 @@ func NewCodecMap() *CodecMap {
|
||||
}
|
||||
}
|
||||
|
||||
// NetCodec is used to identify a network codec, that is, a network type for
|
||||
// which we are able to translate multiaddresses into standard Go net.Addr
|
||||
// and back.
|
||||
//
|
||||
// Deprecated: Unfortunately, these mappings aren't one to one. This abstraction
|
||||
// assumes that multiple "networks" can map to a single multiaddr protocol but
|
||||
// not the reverse. For example, this abstraction supports `tcp6, tcp4, tcp ->
|
||||
// /tcp/` really well but doesn't support `ip -> {/ip4/, /ip6/}`.
|
||||
//
|
||||
// Please use `RegisterFromNetAddr` and `RegisterToNetAddr` directly.
|
||||
type NetCodec struct {
|
||||
// NetAddrNetworks is an array of strings that may be returned
|
||||
// by net.Addr.Network() calls on addresses belonging to this type
|
||||
NetAddrNetworks []string
|
||||
|
||||
// ProtocolName is the string value for Multiaddr address keys
|
||||
ProtocolName string
|
||||
|
||||
// ParseNetAddr parses a net.Addr belonging to this type into a multiaddr
|
||||
ParseNetAddr FromNetAddrFunc
|
||||
|
||||
// ConvertMultiaddr converts a multiaddr of this type back into a net.Addr
|
||||
ConvertMultiaddr ToNetAddrFunc
|
||||
|
||||
// Protocol returns the multiaddr protocol struct for this type
|
||||
Protocol ma.Protocol
|
||||
}
|
||||
|
||||
// RegisterNetCodec adds a new NetCodec to the default codecs.
|
||||
func RegisterNetCodec(a *NetCodec) {
|
||||
defaultCodecs.RegisterNetCodec(a)
|
||||
}
|
||||
|
||||
// RegisterFromNetAddr registers a conversion from net.Addr instances to multiaddrs.
|
||||
func RegisterFromNetAddr(from FromNetAddrFunc, networks ...string) {
|
||||
defaultCodecs.RegisterFromNetAddr(from, networks...)
|
||||
@ -87,18 +54,6 @@ func RegisterToNetAddr(to ToNetAddrFunc, protocols ...string) {
|
||||
defaultCodecs.RegisterToNetAddr(to, protocols...)
|
||||
}
|
||||
|
||||
// RegisterNetCodec adds a new NetCodec to the CodecMap. This function is
|
||||
// thread safe.
|
||||
func (cm *CodecMap) RegisterNetCodec(a *NetCodec) {
|
||||
cm.lk.Lock()
|
||||
defer cm.lk.Unlock()
|
||||
for _, n := range a.NetAddrNetworks {
|
||||
cm.addrParsers[n] = a.ParseNetAddr
|
||||
}
|
||||
|
||||
cm.maddrParsers[a.ProtocolName] = a.ConvertMultiaddr
|
||||
}
|
||||
|
||||
// RegisterFromNetAddr registers a conversion from net.Addr instances to multiaddrs
|
||||
func (cm *CodecMap) RegisterFromNetAddr(from FromNetAddrFunc, networks ...string) {
|
||||
cm.lk.Lock()
|
||||
|
||||
@ -7,44 +7,36 @@ import (
|
||||
ma "github.com/multiformats/go-multiaddr"
|
||||
)
|
||||
|
||||
func TestRegisterSpec(t *testing.T) {
|
||||
func TestRegisterFrom(t *testing.T) {
|
||||
cm := NewCodecMap()
|
||||
myproto := &NetCodec{
|
||||
ProtocolName: "test",
|
||||
NetAddrNetworks: []string{"test", "iptest", "blahtest"},
|
||||
ConvertMultiaddr: func(a ma.Multiaddr) (net.Addr, error) { return nil, nil },
|
||||
ParseNetAddr: func(a net.Addr) (ma.Multiaddr, error) { return nil, nil },
|
||||
}
|
||||
|
||||
cm.RegisterNetCodec(myproto)
|
||||
|
||||
_, ok := cm.addrParsers["test"]
|
||||
if !ok {
|
||||
cm.RegisterFromNetAddr(
|
||||
func(a net.Addr) (ma.Multiaddr, error) { return nil, nil },
|
||||
"test", "iptest", "blahtest",
|
||||
)
|
||||
if _, ok := cm.addrParsers["test"]; !ok {
|
||||
t.Fatal("myproto not properly registered")
|
||||
}
|
||||
|
||||
_, ok = cm.addrParsers["iptest"]
|
||||
if !ok {
|
||||
if _, ok := cm.addrParsers["iptest"]; !ok {
|
||||
t.Fatal("myproto not properly registered")
|
||||
}
|
||||
|
||||
_, ok = cm.addrParsers["blahtest"]
|
||||
if !ok {
|
||||
t.Fatal("myproto not properly registered")
|
||||
}
|
||||
|
||||
_, ok = cm.maddrParsers["test"]
|
||||
if !ok {
|
||||
t.Fatal("myproto not properly registered")
|
||||
}
|
||||
|
||||
_, ok = cm.maddrParsers["iptest"]
|
||||
if ok {
|
||||
t.Fatal("myproto not properly registered")
|
||||
}
|
||||
|
||||
_, ok = cm.maddrParsers["blahtest"]
|
||||
if ok {
|
||||
if _, ok := cm.addrParsers["blahtest"]; !ok {
|
||||
t.Fatal("myproto not properly registered")
|
||||
}
|
||||
}
|
||||
|
||||
func TestRegisterTo(t *testing.T) {
|
||||
cm := NewCodecMap()
|
||||
cm.RegisterToNetAddr(
|
||||
func(a ma.Multiaddr) (net.Addr, error) { return nil, nil },
|
||||
"test", "iptest", "blahtest",
|
||||
)
|
||||
if _, ok := cm.maddrParsers["test"]; !ok {
|
||||
t.Fatal("myproto not properly registered")
|
||||
}
|
||||
if _, ok := cm.maddrParsers["iptest"]; !ok {
|
||||
t.Fatal("myproto not properly registered")
|
||||
}
|
||||
if _, ok := cm.maddrParsers["blahtest"]; !ok {
|
||||
t.Fatal("myproto not properly registered")
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user