Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
G
go-ipfs
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
jihao
go-ipfs
Commits
5f652ca9
Unverified
提交
5f652ca9
authored
8月 04, 2019
作者:
Steven Allen
提交者:
GitHub
8月 04, 2019
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #6448 from mcdee/ethlink
Allow resolution of .eth names via .eth.link
上级
cd3fcb9b
a7f322f8
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
13 行增加
和
1 行删除
+13
-1
namesys.go
namesys/namesys.go
+8
-0
namesys_test.go
namesys/namesys_test.go
+5
-1
没有找到文件。
namesys/namesys.go
浏览文件 @
5f652ca9
...
...
@@ -80,6 +80,9 @@ func (ns *mpns) ResolveAsync(ctx context.Context, name string, options ...opts.R
return
resolveAsync
(
ctx
,
ns
,
name
,
opts
.
ProcessOpts
(
options
))
}
const
ethTLD
=
".eth"
const
linkTLD
=
".link"
// resolveOnce implements resolver.
func
(
ns
*
mpns
)
resolveOnceAsync
(
ctx
context
.
Context
,
name
string
,
options
opts
.
ResolveOpts
)
<-
chan
onceResult
{
out
:=
make
(
chan
onceResult
,
1
)
...
...
@@ -87,6 +90,11 @@ func (ns *mpns) resolveOnceAsync(ctx context.Context, name string, options opts.
if
!
strings
.
HasPrefix
(
name
,
ipnsPrefix
)
{
name
=
ipnsPrefix
+
name
}
if
strings
.
HasSuffix
(
name
,
ethTLD
)
{
// This is an ENS name. As we're resolving via an arbitrary DNS server
// that may not know about .eth we need to add our link domain suffix.
name
=
name
+
linkTLD
}
segments
:=
strings
.
SplitN
(
name
,
"/"
,
4
)
if
len
(
segments
)
<
3
||
segments
[
0
]
!=
""
{
log
.
Debugf
(
"invalid name syntax for %s"
,
name
)
...
...
namesys/namesys_test.go
浏览文件 @
5f652ca9
...
...
@@ -51,6 +51,7 @@ func mockResolverOne() *mockResolver {
"QmatmE9msSfkKxoffpHwNLNKgwZG8eT9Bud6YoPab52vpy"
:
"/ipfs/Qmcqtw8FfrVSBaRmbWwHxt3AuySBhJLcvmFYi3Lbc4xnwj"
,
"QmbCMUZw6JFeZ7Wp9jkzbye3Fzp2GGcPgC3nmeUjfVF87n"
:
"/ipns/QmatmE9msSfkKxoffpHwNLNKgwZG8eT9Bud6YoPab52vpy"
,
"QmY3hE8xgFCjGcz6PHgnvJz5HZi1BaKRfPkn1ghZUcYMjD"
:
"/ipns/ipfs.io"
,
"QmQ4QZh8nrsczdUEwTyfBope4THUhqxqc1fx6qYhhzZQei"
:
"/ipfs/QmP3ouCnU8NNLsW6261pAx2pNLV2E4dQoisB1sgda12Act"
,
},
}
}
...
...
@@ -58,7 +59,8 @@ func mockResolverOne() *mockResolver {
func
mockResolverTwo
()
*
mockResolver
{
return
&
mockResolver
{
entries
:
map
[
string
]
string
{
"ipfs.io"
:
"/ipns/QmbCMUZw6JFeZ7Wp9jkzbye3Fzp2GGcPgC3nmeUjfVF87n"
,
"ipfs.io"
:
"/ipns/QmbCMUZw6JFeZ7Wp9jkzbye3Fzp2GGcPgC3nmeUjfVF87n"
,
"www.wealdtech.eth.link"
:
"/ipns/QmQ4QZh8nrsczdUEwTyfBope4THUhqxqc1fx6qYhhzZQei"
,
},
}
}
...
...
@@ -80,6 +82,8 @@ func TestNamesysResolution(t *testing.T) {
testResolution
(
t
,
r
,
"/ipns/QmY3hE8xgFCjGcz6PHgnvJz5HZi1BaKRfPkn1ghZUcYMjD"
,
1
,
"/ipns/ipfs.io"
,
ErrResolveRecursion
)
testResolution
(
t
,
r
,
"/ipns/QmY3hE8xgFCjGcz6PHgnvJz5HZi1BaKRfPkn1ghZUcYMjD"
,
2
,
"/ipns/QmbCMUZw6JFeZ7Wp9jkzbye3Fzp2GGcPgC3nmeUjfVF87n"
,
ErrResolveRecursion
)
testResolution
(
t
,
r
,
"/ipns/QmY3hE8xgFCjGcz6PHgnvJz5HZi1BaKRfPkn1ghZUcYMjD"
,
3
,
"/ipns/QmatmE9msSfkKxoffpHwNLNKgwZG8eT9Bud6YoPab52vpy"
,
ErrResolveRecursion
)
testResolution
(
t
,
r
,
"/ipns/www.wealdtech.eth"
,
1
,
"/ipns/QmQ4QZh8nrsczdUEwTyfBope4THUhqxqc1fx6qYhhzZQei"
,
ErrResolveRecursion
)
testResolution
(
t
,
r
,
"/ipns/www.wealdtech.eth"
,
2
,
"/ipfs/QmP3ouCnU8NNLsW6261pAx2pNLV2E4dQoisB1sgda12Act"
,
nil
)
}
func
TestPublishWithCache0
(
t
*
testing
.
T
)
{
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论