mirror of
https://github.com/waku-org/go-multiaddr.git
synced 2025-02-23 11:38:20 +00:00
move addspec definitions and add test for RegisterAddressType
This commit is contained in:
parent
48f060edf7
commit
79cf06be20
35
convert.go
35
convert.go
@ -101,13 +101,6 @@ func DialArgs(m ma.Multiaddr) (string, string, error) {
|
||||
return network, host, nil
|
||||
}
|
||||
|
||||
var tcpAddrSpec = &AddressSpec{
|
||||
Key: "tcp",
|
||||
NetNames: []string{"tcp", "tcp4", "tcp6"},
|
||||
ParseNetAddr: parseTcpNetAddr,
|
||||
ConvertMultiaddr: parseBasicNetMaddr,
|
||||
}
|
||||
|
||||
func parseTcpNetAddr(a net.Addr) (ma.Multiaddr, error) {
|
||||
ac, ok := a.(*net.TCPAddr)
|
||||
if !ok {
|
||||
@ -130,13 +123,6 @@ func parseTcpNetAddr(a net.Addr) (ma.Multiaddr, error) {
|
||||
return ipm.Encapsulate(tcpm), nil
|
||||
}
|
||||
|
||||
var udpAddrSpec = &AddressSpec{
|
||||
Key: "udp",
|
||||
NetNames: []string{"udp", "udp4", "udp6"},
|
||||
ParseNetAddr: parseUdpNetAddr,
|
||||
ConvertMultiaddr: parseBasicNetMaddr,
|
||||
}
|
||||
|
||||
func parseUdpNetAddr(a net.Addr) (ma.Multiaddr, error) {
|
||||
ac, ok := a.(*net.UDPAddr)
|
||||
if !ok {
|
||||
@ -159,13 +145,6 @@ func parseUdpNetAddr(a net.Addr) (ma.Multiaddr, error) {
|
||||
return ipm.Encapsulate(udpm), nil
|
||||
}
|
||||
|
||||
var utpAddrSpec = &AddressSpec{
|
||||
Key: "utp",
|
||||
NetNames: []string{"utp", "utp4", "utp6"},
|
||||
ParseNetAddr: parseUtpNetAddr,
|
||||
ConvertMultiaddr: parseBasicNetMaddr,
|
||||
}
|
||||
|
||||
func parseUtpNetAddr(a net.Addr) (ma.Multiaddr, error) {
|
||||
acc, ok := a.(*utp.Addr)
|
||||
if !ok {
|
||||
@ -194,20 +173,6 @@ func parseUtpNetAddr(a net.Addr) (ma.Multiaddr, error) {
|
||||
return ipm.Encapsulate(utpm), nil
|
||||
}
|
||||
|
||||
var ip4AddrSpec = &AddressSpec{
|
||||
Key: "ip4",
|
||||
NetNames: []string{"ip4"},
|
||||
ParseNetAddr: parseIpNetAddr,
|
||||
ConvertMultiaddr: parseBasicNetMaddr,
|
||||
}
|
||||
|
||||
var ip6AddrSpec = &AddressSpec{
|
||||
Key: "ip6",
|
||||
NetNames: []string{"ip6"},
|
||||
ParseNetAddr: parseIpNetAddr,
|
||||
ConvertMultiaddr: parseBasicNetMaddr,
|
||||
}
|
||||
|
||||
func parseIpNetAddr(a net.Addr) (ma.Multiaddr, error) {
|
||||
ac, ok := a.(*net.IPAddr)
|
||||
if !ok {
|
||||
|
35
registry.go
35
registry.go
@ -56,6 +56,41 @@ func init() {
|
||||
addrParsers["ip+net"] = parseIpPlusNetAddr
|
||||
}
|
||||
|
||||
var tcpAddrSpec = &AddressSpec{
|
||||
Key: "tcp",
|
||||
NetNames: []string{"tcp", "tcp4", "tcp6"},
|
||||
ParseNetAddr: parseTcpNetAddr,
|
||||
ConvertMultiaddr: parseBasicNetMaddr,
|
||||
}
|
||||
|
||||
var udpAddrSpec = &AddressSpec{
|
||||
Key: "udp",
|
||||
NetNames: []string{"udp", "udp4", "udp6"},
|
||||
ParseNetAddr: parseUdpNetAddr,
|
||||
ConvertMultiaddr: parseBasicNetMaddr,
|
||||
}
|
||||
|
||||
var utpAddrSpec = &AddressSpec{
|
||||
Key: "utp",
|
||||
NetNames: []string{"utp", "utp4", "utp6"},
|
||||
ParseNetAddr: parseUtpNetAddr,
|
||||
ConvertMultiaddr: parseBasicNetMaddr,
|
||||
}
|
||||
|
||||
var ip4AddrSpec = &AddressSpec{
|
||||
Key: "ip4",
|
||||
NetNames: []string{"ip4"},
|
||||
ParseNetAddr: parseIpNetAddr,
|
||||
ConvertMultiaddr: parseBasicNetMaddr,
|
||||
}
|
||||
|
||||
var ip6AddrSpec = &AddressSpec{
|
||||
Key: "ip6",
|
||||
NetNames: []string{"ip6"},
|
||||
ParseNetAddr: parseIpNetAddr,
|
||||
ConvertMultiaddr: parseBasicNetMaddr,
|
||||
}
|
||||
|
||||
func getAddrParser(net string) (AddrParser, error) {
|
||||
addrParsersLock.Lock()
|
||||
defer addrParsersLock.Unlock()
|
||||
|
50
registry_test.go
Normal file
50
registry_test.go
Normal file
@ -0,0 +1,50 @@
|
||||
package manet
|
||||
|
||||
import (
|
||||
"net"
|
||||
"testing"
|
||||
|
||||
ma "github.com/jbenet/go-multiaddr"
|
||||
)
|
||||
|
||||
func TestRegisterSpec(t *testing.T) {
|
||||
myproto := &AddressSpec{
|
||||
Key: "test",
|
||||
NetNames: []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 },
|
||||
}
|
||||
|
||||
RegisterAddressType(myproto)
|
||||
|
||||
_, ok := addrParsers["test"]
|
||||
if !ok {
|
||||
t.Fatal("myproto not properly registered")
|
||||
}
|
||||
|
||||
_, ok = addrParsers["iptest"]
|
||||
if !ok {
|
||||
t.Fatal("myproto not properly registered")
|
||||
}
|
||||
|
||||
_, ok = addrParsers["blahtest"]
|
||||
if !ok {
|
||||
t.Fatal("myproto not properly registered")
|
||||
}
|
||||
|
||||
_, ok = maddrParsers["test"]
|
||||
if !ok {
|
||||
t.Fatal("myproto not properly registered")
|
||||
}
|
||||
|
||||
_, ok = maddrParsers["iptest"]
|
||||
if ok {
|
||||
t.Fatal("myproto not properly registered")
|
||||
}
|
||||
|
||||
_, ok = maddrParsers["blahtest"]
|
||||
if ok {
|
||||
t.Fatal("myproto not properly registered")
|
||||
}
|
||||
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user