Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
G
go-ipfs
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
jihao
go-ipfs
Commits
e8b137f8
提交
e8b137f8
authored
10月 04, 2018
作者:
Łukasz Magiera
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
coreapi name: add some missing options
License: MIT Signed-off-by:
Łukasz Magiera
<
magik6k@gmail.com
>
上级
7807f575
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
31 行增加
和
0 行删除
+31
-0
name.go
core/coreapi/interface/options/name.go
+24
-0
name.go
core/coreapi/name.go
+7
-0
没有找到文件。
core/coreapi/interface/options/name.go
浏览文件 @
e8b137f8
...
...
@@ -13,6 +13,10 @@ const (
type
NamePublishSettings
struct
{
ValidTime
time
.
Duration
Key
string
TTL
*
time
.
Duration
AllowOffline
bool
}
type
NameResolveSettings
struct
{
...
...
@@ -29,6 +33,8 @@ func NamePublishOptions(opts ...NamePublishOption) (*NamePublishSettings, error)
options
:=
&
NamePublishSettings
{
ValidTime
:
DefaultNameValidTime
,
Key
:
"self"
,
AllowOffline
:
false
,
}
for
_
,
opt
:=
range
opts
{
...
...
@@ -82,6 +88,24 @@ func (nameOpts) Key(key string) NamePublishOption {
}
}
// AllowOffline is an option for Name.Publish which specifies whether to allow
// publishing when the node is offline. Default value is false
func
(
nameOpts
)
AllowOffline
(
allow
bool
)
NamePublishOption
{
return
func
(
settings
*
NamePublishSettings
)
error
{
settings
.
AllowOffline
=
allow
return
nil
}
}
// TTL is an option for Name.Publish which specifies the time duration the
// published record should be cached for (caution: experimental).
func
(
nameOpts
)
TTL
(
ttl
time
.
Duration
)
NamePublishOption
{
return
func
(
settings
*
NamePublishSettings
)
error
{
settings
.
TTL
=
&
ttl
return
nil
}
}
// Local is an option for Name.Resolve which specifies if the lookup should be
// offline. Default value is false
func
(
nameOpts
)
Local
(
local
bool
)
NameResolveOption
{
...
...
core/coreapi/name.go
浏览文件 @
e8b137f8
...
...
@@ -45,6 +45,9 @@ func (api *NameAPI) Publish(ctx context.Context, p coreiface.Path, opts ...caopt
n
:=
api
.
node
if
!
n
.
OnlineMode
()
{
if
!
options
.
AllowOffline
{
return
nil
,
coreiface
.
ErrOffline
}
err
:=
n
.
SetupOfflineRouting
()
if
err
!=
nil
{
return
nil
,
err
...
...
@@ -65,6 +68,10 @@ func (api *NameAPI) Publish(ctx context.Context, p coreiface.Path, opts ...caopt
return
nil
,
err
}
if
options
.
TTL
!=
nil
{
ctx
=
context
.
WithValue
(
ctx
,
"ipns-publish-ttl"
,
*
options
.
TTL
)
}
eol
:=
time
.
Now
()
.
Add
(
options
.
ValidTime
)
err
=
n
.
Namesys
.
PublishWithEOL
(
ctx
,
k
,
pth
,
eol
)
if
err
!=
nil
{
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论