mirror of
https://github.com/logos-messaging/go-multiaddr.git
synced 2026-01-07 07:23:06 +00:00
test ip6 conversion
This commit is contained in:
parent
2bb75c7221
commit
97da87cf8f
10
convert.go
10
convert.go
@ -112,13 +112,13 @@ func ToNetAddr(maddr ma.Multiaddr) (net.Addr, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
switch network {
|
switch network {
|
||||||
case "tcp":
|
case "tcp", "tcp4", "tcp6":
|
||||||
return net.ResolveTCPAddr(network, host)
|
return net.ResolveTCPAddr(network, host)
|
||||||
case "udp":
|
case "udp", "udp4", "udp6":
|
||||||
return net.ResolveUDPAddr(network, host)
|
return net.ResolveUDPAddr(network, host)
|
||||||
case "utp":
|
case "utp", "utp4", "utp6":
|
||||||
return utp.ResolveUTPAddr(network, host)
|
return utp.ResolveUTPAddr(network, host)
|
||||||
case "ip":
|
case "ip", "ip4", "ip6":
|
||||||
return net.ResolveIPAddr(network, host)
|
return net.ResolveIPAddr(network, host)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -158,8 +158,10 @@ func DialArgs(m ma.Multiaddr) (string, string, error) {
|
|||||||
var host string
|
var host string
|
||||||
switch parts[0] {
|
switch parts[0] {
|
||||||
case "ip4":
|
case "ip4":
|
||||||
|
network = network + "4"
|
||||||
host = strings.Join([]string{parts[1], parts[3]}, ":")
|
host = strings.Join([]string{parts[1], parts[3]}, ":")
|
||||||
case "ip6":
|
case "ip6":
|
||||||
|
network = network + "6"
|
||||||
host = fmt.Sprintf("[%s]:%s", parts[1], parts[3])
|
host = fmt.Sprintf("[%s]:%s", parts[1], parts[3])
|
||||||
}
|
}
|
||||||
return network, host, nil
|
return network, host, nil
|
||||||
|
|||||||
@ -152,7 +152,10 @@ func TestDialArgs(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
test("/ip4/127.0.0.1/udp/1234", "udp", "127.0.0.1:1234")
|
test("/ip4/127.0.0.1/udp/1234", "udp4", "127.0.0.1:1234")
|
||||||
test("/ip4/127.0.0.1/tcp/4321", "tcp", "127.0.0.1:4321")
|
test("/ip4/127.0.0.1/tcp/4321", "tcp4", "127.0.0.1:4321")
|
||||||
test("/ip4/127.0.0.1/udp/1234/utp", "utp", "127.0.0.1:1234")
|
test("/ip4/127.0.0.1/udp/1234/utp", "utp4", "127.0.0.1:1234")
|
||||||
|
test("/ip6/::1/udp/1234", "udp6", "[::1]:1234")
|
||||||
|
test("/ip6/::1/tcp/4321", "tcp6", "[::1]:4321")
|
||||||
|
test("/ip6/::1/udp/1234/utp", "utp6", "[::1]:1234")
|
||||||
}
|
}
|
||||||
|
|||||||
12
net.go
12
net.go
@ -106,12 +106,12 @@ func (d *Dialer) Dial(remote ma.Multiaddr) (Conn, error) {
|
|||||||
// ok, Dial!
|
// ok, Dial!
|
||||||
var nconn net.Conn
|
var nconn net.Conn
|
||||||
switch rnet {
|
switch rnet {
|
||||||
case "tcp":
|
case "tcp", "tcp4", "tcp6":
|
||||||
nconn, err = d.Dialer.Dial(rnet, rnaddr)
|
nconn, err = d.Dialer.Dial(rnet, rnaddr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
case "utp":
|
case "udp", "udp4", "udp6":
|
||||||
return nil, fmt.Errorf("utp is currently broken")
|
return nil, fmt.Errorf("utp is currently broken")
|
||||||
|
|
||||||
// // construct utp dialer, with options on our net.Dialer
|
// // construct utp dialer, with options on our net.Dialer
|
||||||
@ -236,6 +236,14 @@ func Listen(laddr ma.Multiaddr) (Listener, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// we need to fetch the new multiaddr from the listener, as it
|
||||||
|
// may have resolved to some other value.
|
||||||
|
nladdr, err := FromNetAddr(nl.Addr())
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
laddr = nladdr
|
||||||
|
|
||||||
return &maListener{
|
return &maListener{
|
||||||
Listener: nl,
|
Listener: nl,
|
||||||
laddr: laddr,
|
laddr: laddr,
|
||||||
|
|||||||
27
net_test.go
27
net_test.go
@ -141,7 +141,10 @@ func TestListen(t *testing.T) {
|
|||||||
|
|
||||||
func TestListenAddrs(t *testing.T) {
|
func TestListenAddrs(t *testing.T) {
|
||||||
|
|
||||||
test := func(addr string, succeed bool) {
|
test := func(addr, resaddr string, succeed bool) {
|
||||||
|
if resaddr == "" {
|
||||||
|
resaddr = addr
|
||||||
|
}
|
||||||
|
|
||||||
maddr := newMultiaddr(t, addr)
|
maddr := newMultiaddr(t, addr)
|
||||||
l, err := Listen(maddr)
|
l, err := Listen(maddr)
|
||||||
@ -152,10 +155,13 @@ func TestListenAddrs(t *testing.T) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
if succeed && err != nil {
|
if succeed && err != nil {
|
||||||
t.Fatal("failed to listen", addr, err)
|
t.Error("failed to listen", addr, err)
|
||||||
}
|
}
|
||||||
if l == nil {
|
if l == nil {
|
||||||
t.Fatal("failed to listen", addr, succeed, err)
|
t.Error("failed to listen", addr, succeed, err)
|
||||||
|
}
|
||||||
|
if l.Multiaddr().String() != resaddr {
|
||||||
|
t.Error("listen addr did not resolve properly", l.Multiaddr().String(), resaddr, succeed, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if err = l.Close(); err != nil {
|
if err = l.Close(); err != nil {
|
||||||
@ -163,9 +169,18 @@ func TestListenAddrs(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
test("/ip4/127.0.0.1/tcp/4324", true)
|
test("/ip4/127.0.0.1/tcp/4324", "", true)
|
||||||
test("/ip4/127.0.0.1/udp/4325", false)
|
test("/ip4/127.0.0.1/udp/4325", "", false)
|
||||||
test("/ip4/127.0.0.1/udp/4326/udt", false)
|
test("/ip4/127.0.0.1/udp/4326/udt", "", false)
|
||||||
|
test("/ip4/0.0.0.0/tcp/4324", "", true)
|
||||||
|
test("/ip4/0.0.0.0/udp/4325", "", false)
|
||||||
|
test("/ip4/0.0.0.0/udp/4326/udt", "", false)
|
||||||
|
test("/ip6/::1/tcp/4324", "", true)
|
||||||
|
test("/ip6/::1/udp/4325", "", false)
|
||||||
|
test("/ip6/::1/udp/4326/udt", "", false)
|
||||||
|
test("/ip6/::/tcp/4324", "", true)
|
||||||
|
test("/ip6/::/udp/4325", "", false)
|
||||||
|
test("/ip6/::/udp/4326/udt", "", false)
|
||||||
// test("/ip4/127.0.0.1/udp/4326/utp", true)
|
// test("/ip4/127.0.0.1/udp/4326/utp", true)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user