move addspec definitions and add test for RegisterAddressType

This commit is contained in:
Jeromy 2016-05-06 09:14:27 -07:00
parent 48f060edf7
commit 79cf06be20
3 changed files with 85 additions and 35 deletions

View File

@ -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 {

View File

@ -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
View 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")
}
}