Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
G
go-ipfs
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
jihao
go-ipfs
Commits
36a52811
提交
36a52811
authored
6月 19, 2015
作者:
Juan Batiz-Benet
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #1395 from ipfs/fix-nil-conn-bug
update go-multiaddr-net with a nil check
上级
370df8fc
1c972fed
隐藏空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
74 行增加
和
6 行删除
+74
-6
Godeps.json
Godeps/Godeps.json
+1
-6
.gitignore
...c/github.com/jbenet/go-multiaddr-net/multiaddr/.gitignore
+1
-0
net.go
.../_workspace/src/github.com/jbenet/go-multiaddr-net/net.go
+3
-0
net_test.go
...kspace/src/github.com/jbenet/go-multiaddr-net/net_test.go
+69
-0
没有找到文件。
Godeps/Godeps.json
浏览文件 @
36a52811
...
...
@@ -155,7 +155,7 @@
},
{
"ImportPath"
:
"github.com/jbenet/go-multiaddr-net"
,
"Rev"
:
"6
2d4c740c29c00a47ef7f670208022940d245eef
"
"Rev"
:
"6
b29a00b65526d23f534813eb5bfa64dfa281e4a
"
},
{
"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"
}
]
}
Godeps/_workspace/src/github.com/jbenet/go-multiaddr-net/multiaddr/.gitignore
0 → 100644
浏览文件 @
36a52811
multiaddr
Godeps/_workspace/src/github.com/jbenet/go-multiaddr-net/net.go
浏览文件 @
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
{
...
...
Godeps/_workspace/src/github.com/jbenet/go-multiaddr-net/net_test.go
浏览文件 @
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
)
{
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论