mirror of
https://github.com/logos-messaging/go-multiaddr.git
synced 2026-01-04 05:53:05 +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
|
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) {
|
func parseTcpNetAddr(a net.Addr) (ma.Multiaddr, error) {
|
||||||
ac, ok := a.(*net.TCPAddr)
|
ac, ok := a.(*net.TCPAddr)
|
||||||
if !ok {
|
if !ok {
|
||||||
@ -130,13 +123,6 @@ func parseTcpNetAddr(a net.Addr) (ma.Multiaddr, error) {
|
|||||||
return ipm.Encapsulate(tcpm), nil
|
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) {
|
func parseUdpNetAddr(a net.Addr) (ma.Multiaddr, error) {
|
||||||
ac, ok := a.(*net.UDPAddr)
|
ac, ok := a.(*net.UDPAddr)
|
||||||
if !ok {
|
if !ok {
|
||||||
@ -159,13 +145,6 @@ func parseUdpNetAddr(a net.Addr) (ma.Multiaddr, error) {
|
|||||||
return ipm.Encapsulate(udpm), nil
|
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) {
|
func parseUtpNetAddr(a net.Addr) (ma.Multiaddr, error) {
|
||||||
acc, ok := a.(*utp.Addr)
|
acc, ok := a.(*utp.Addr)
|
||||||
if !ok {
|
if !ok {
|
||||||
@ -194,20 +173,6 @@ func parseUtpNetAddr(a net.Addr) (ma.Multiaddr, error) {
|
|||||||
return ipm.Encapsulate(utpm), nil
|
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) {
|
func parseIpNetAddr(a net.Addr) (ma.Multiaddr, error) {
|
||||||
ac, ok := a.(*net.IPAddr)
|
ac, ok := a.(*net.IPAddr)
|
||||||
if !ok {
|
if !ok {
|
||||||
|
|||||||
35
registry.go
35
registry.go
@ -56,6 +56,41 @@ func init() {
|
|||||||
addrParsers["ip+net"] = parseIpPlusNetAddr
|
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) {
|
func getAddrParser(net string) (AddrParser, error) {
|
||||||
addrParsersLock.Lock()
|
addrParsersLock.Lock()
|
||||||
defer addrParsersLock.Unlock()
|
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