mirror of
https://github.com/ipfs/kubo.git
synced 2025-06-19 18:05:32 +08:00
Merge pull request #1395 from ipfs/fix-nil-conn-bug
update go-multiaddr-net with a nil check
This commit is contained in:
7
Godeps/Godeps.json
generated
7
Godeps/Godeps.json
generated
@ -155,7 +155,7 @@
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/jbenet/go-multiaddr-net",
|
||||
"Rev": "62d4c740c29c00a47ef7f670208022940d245eef"
|
||||
"Rev": "6b29a00b65526d23f534813eb5bfa64dfa281e4a"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/jbenet/go-multihash",
|
||||
@ -271,11 +271,6 @@
|
||||
{
|
||||
"ImportPath": "gopkg.in/tomb.v1",
|
||||
"Rev": "dd632973f1e7218eb1089048e0798ec9ae7dceb8"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/chriscool/go-sleep",
|
||||
"Rev": "743ab5f1bb487edf1772bc29ca0bdf572b40785e"
|
||||
}
|
||||
|
||||
]
|
||||
}
|
||||
|
1
Godeps/_workspace/src/github.com/jbenet/go-multiaddr-net/multiaddr/.gitignore
generated
vendored
Normal file
1
Godeps/_workspace/src/github.com/jbenet/go-multiaddr-net/multiaddr/.gitignore
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
multiaddr
|
3
Godeps/_workspace/src/github.com/jbenet/go-multiaddr-net/net.go
generated
vendored
3
Godeps/_workspace/src/github.com/jbenet/go-multiaddr-net/net.go
generated
vendored
@ -26,6 +26,9 @@ type Conn interface {
|
||||
// WrapNetConn wraps a net.Conn object with a Multiaddr
|
||||
// friendly Conn.
|
||||
func WrapNetConn(nconn net.Conn) (Conn, error) {
|
||||
if nconn == nil {
|
||||
return nil, fmt.Errorf("failed to convert nconn.LocalAddr: nil")
|
||||
}
|
||||
|
||||
laddr, err := FromNetAddr(nconn.LocalAddr())
|
||||
if err != nil {
|
||||
|
69
Godeps/_workspace/src/github.com/jbenet/go-multiaddr-net/net_test.go
generated
vendored
69
Godeps/_workspace/src/github.com/jbenet/go-multiaddr-net/net_test.go
generated
vendored
@ -365,6 +365,75 @@ func TestIP6LinkLocal(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestConvertNetAddr(t *testing.T) {
|
||||
m1 := newMultiaddr(t, "/ip4/1.2.3.4/tcp/4001")
|
||||
|
||||
n1, err := ToNetAddr(m1)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
m2, err := FromNetAddr(n1)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
if m1.String() != m2.String() {
|
||||
t.Fatal("ToNetAddr + FromNetAddr did not work")
|
||||
}
|
||||
}
|
||||
|
||||
func TestWrapNetConn(t *testing.T) {
|
||||
// test WrapNetConn nil
|
||||
if _, err := WrapNetConn(nil); err == nil {
|
||||
t.Error("WrapNetConn(nil) should return an error")
|
||||
}
|
||||
|
||||
checkErr := func(err error, s string) {
|
||||
if err != nil {
|
||||
t.Fatal(s, err)
|
||||
}
|
||||
}
|
||||
|
||||
listener, err := net.Listen("tcp", "127.0.0.1:0")
|
||||
checkErr(err, "failed to listen")
|
||||
|
||||
var wg sync.WaitGroup
|
||||
defer wg.Wait()
|
||||
wg.Add(1)
|
||||
go func() {
|
||||
defer wg.Done()
|
||||
cB, err := listener.Accept()
|
||||
checkErr(err, "failed to accept")
|
||||
cB.Close()
|
||||
}()
|
||||
|
||||
cA, err := net.Dial("tcp", listener.Addr().String())
|
||||
checkErr(err, "failed to dial")
|
||||
defer cA.Close()
|
||||
|
||||
lmaddr, err := FromNetAddr(cA.LocalAddr())
|
||||
checkErr(err, "failed to get local addr")
|
||||
rmaddr, err := FromNetAddr(cA.RemoteAddr())
|
||||
checkErr(err, "failed to get remote addr")
|
||||
|
||||
mcA, err := WrapNetConn(cA)
|
||||
checkErr(err, "failed to wrap conn")
|
||||
|
||||
if mcA.LocalAddr().String() != cA.LocalAddr().String() {
|
||||
t.Error("wrapped conn local addr differs")
|
||||
}
|
||||
if mcA.RemoteAddr().String() != cA.RemoteAddr().String() {
|
||||
t.Error("wrapped conn remote addr differs")
|
||||
}
|
||||
if mcA.LocalMultiaddr().String() != lmaddr.String() {
|
||||
t.Error("wrapped conn local maddr differs")
|
||||
}
|
||||
if mcA.RemoteMultiaddr().String() != rmaddr.String() {
|
||||
t.Error("wrapped conn remote maddr differs")
|
||||
}
|
||||
}
|
||||
|
||||
func TestAddrMatch(t *testing.T) {
|
||||
|
||||
test := func(m ma.Multiaddr, input, expect []ma.Multiaddr) {
|
||||
|
Reference in New Issue
Block a user