Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
dms3
go-dms3
Commits
36a52811
Commit
36a52811
authored
9 years ago
by
Juan Batiz-Benet
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #1395 from ipfs/fix-nil-conn-bug
update go-multiaddr-net with a nil check
parents
370df8fc
1c972fed
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
74 additions
and
6 deletions
+74
-6
Godeps/Godeps.json
Godeps/Godeps.json
+1
-6
Godeps/_workspace/src/github.com/jbenet/go-multiaddr-net/multiaddr/.gitignore
...c/github.com/jbenet/go-multiaddr-net/multiaddr/.gitignore
+1
-0
Godeps/_workspace/src/github.com/jbenet/go-multiaddr-net/net.go
.../_workspace/src/github.com/jbenet/go-multiaddr-net/net.go
+3
-0
Godeps/_workspace/src/github.com/jbenet/go-multiaddr-net/net_test.go
...kspace/src/github.com/jbenet/go-multiaddr-net/net_test.go
+69
-0
No files found.
Godeps/Godeps.json
View file @
36a52811
...
...
@@ -155,7 +155,7 @@
},
{
"ImportPath"
:
"github.com/jbenet/go-multiaddr-net"
,
"Rev"
:
"6
2d4c740c
29
c
00
a47ef7f670208022940d245eef
"
"Rev"
:
"6
b
29
a
00
b65526d23f534813eb5bfa64dfa281e4a
"
},
{
"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"
}
]
}
This diff is collapsed.
Click to expand it.
Godeps/_workspace/src/github.com/jbenet/go-multiaddr-net/multiaddr/.gitignore
0 → 100644
View file @
36a52811
multiaddr
This diff is collapsed.
Click to expand it.
Godeps/_workspace/src/github.com/jbenet/go-multiaddr-net/net.go
View file @
36a52811
...
...
@@ -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
{
...
...
This diff is collapsed.
Click to expand it.
Godeps/_workspace/src/github.com/jbenet/go-multiaddr-net/net_test.go
View file @
36a52811
...
...
@@ -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
)
{
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment