mirror of
https://github.com/logos-messaging/go-multiaddr.git
synced 2026-07-31 19:03:18 +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.
|
// RegisterFromNetAddr registers a conversion from net.Addr instances to multiaddrs.
|
||||||
func RegisterFromNetAddr(from FromNetAddrFunc, networks ...string) {
|
func RegisterFromNetAddr(from FromNetAddrFunc, networks ...string) {
|
||||||
defaultCodecs.RegisterFromNetAddr(from, networks...)
|
defaultCodecs.RegisterFromNetAddr(from, networks...)
|
||||||
@ -87,18 +54,6 @@ func RegisterToNetAddr(to ToNetAddrFunc, protocols ...string) {
|
|||||||
defaultCodecs.RegisterToNetAddr(to, protocols...)
|
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
|
// RegisterFromNetAddr registers a conversion from net.Addr instances to multiaddrs
|
||||||
func (cm *CodecMap) RegisterFromNetAddr(from FromNetAddrFunc, networks ...string) {
|
func (cm *CodecMap) RegisterFromNetAddr(from FromNetAddrFunc, networks ...string) {
|
||||||
cm.lk.Lock()
|
cm.lk.Lock()
|
||||||
|
|||||||
@ -7,44 +7,36 @@ import (
|
|||||||
ma "github.com/multiformats/go-multiaddr"
|
ma "github.com/multiformats/go-multiaddr"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestRegisterSpec(t *testing.T) {
|
func TestRegisterFrom(t *testing.T) {
|
||||||
cm := NewCodecMap()
|
cm := NewCodecMap()
|
||||||
myproto := &NetCodec{
|
cm.RegisterFromNetAddr(
|
||||||
ProtocolName: "test",
|
func(a net.Addr) (ma.Multiaddr, error) { return nil, nil },
|
||||||
NetAddrNetworks: []string{"test", "iptest", "blahtest"},
|
"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 },
|
if _, ok := cm.addrParsers["test"]; !ok {
|
||||||
}
|
|
||||||
|
|
||||||
cm.RegisterNetCodec(myproto)
|
|
||||||
|
|
||||||
_, ok := cm.addrParsers["test"]
|
|
||||||
if !ok {
|
|
||||||
t.Fatal("myproto not properly registered")
|
t.Fatal("myproto not properly registered")
|
||||||
}
|
}
|
||||||
|
if _, ok := cm.addrParsers["iptest"]; !ok {
|
||||||
_, ok = cm.addrParsers["iptest"]
|
|
||||||
if !ok {
|
|
||||||
t.Fatal("myproto not properly registered")
|
t.Fatal("myproto not properly registered")
|
||||||
}
|
}
|
||||||
|
if _, ok := cm.addrParsers["blahtest"]; !ok {
|
||||||
_, ok = cm.addrParsers["blahtest"]
|
t.Fatal("myproto not properly registered")
|
||||||
if !ok {
|
}
|
||||||
t.Fatal("myproto not properly registered")
|
}
|
||||||
}
|
|
||||||
|
func TestRegisterTo(t *testing.T) {
|
||||||
_, ok = cm.maddrParsers["test"]
|
cm := NewCodecMap()
|
||||||
if !ok {
|
cm.RegisterToNetAddr(
|
||||||
t.Fatal("myproto not properly registered")
|
func(a ma.Multiaddr) (net.Addr, error) { return nil, nil },
|
||||||
}
|
"test", "iptest", "blahtest",
|
||||||
|
)
|
||||||
_, ok = cm.maddrParsers["iptest"]
|
if _, ok := cm.maddrParsers["test"]; !ok {
|
||||||
if ok {
|
t.Fatal("myproto not properly registered")
|
||||||
t.Fatal("myproto not properly registered")
|
}
|
||||||
}
|
if _, ok := cm.maddrParsers["iptest"]; !ok {
|
||||||
|
t.Fatal("myproto not properly registered")
|
||||||
_, ok = cm.maddrParsers["blahtest"]
|
}
|
||||||
if ok {
|
if _, ok := cm.maddrParsers["blahtest"]; !ok {
|
||||||
t.Fatal("myproto not properly registered")
|
t.Fatal("myproto not properly registered")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user