Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
G
go-ipfs
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
jihao
go-ipfs
Commits
459a4b3d
提交
459a4b3d
authored
2月 03, 2017
作者:
Kevin Atkinson
提交者:
Jeromy
3月 06, 2017
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Move block verification into readDataObj.
License: MIT Signed-off-by:
Kevin Atkinson
<
k@kevina.org
>
上级
8fce0c41
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
12 行增加
和
11 行删除
+12
-11
fsrefstore.go
filestore/fsrefstore.go
+12
-11
没有找到文件。
filestore/fsrefstore.go
浏览文件 @
459a4b3d
...
...
@@ -104,24 +104,16 @@ func (f *FileManager) Get(c *cid.Cid) (blocks.Block, error) {
return
nil
,
err
}
out
,
err
:=
f
.
readDataObj
(
&
dobj
)
out
,
err
:=
f
.
readDataObj
(
c
,
&
dobj
)
if
err
!=
nil
{
return
nil
,
err
}
outcid
,
err
:=
c
.
Prefix
()
.
Sum
(
out
)
if
err
!=
nil
{
return
nil
,
err
}
if
!
c
.
Equals
(
outcid
)
{
return
nil
,
&
CorruptReferenceError
{
fmt
.
Errorf
(
"data in file did not match. %s offset %d"
,
dobj
.
GetFilePath
(),
dobj
.
GetOffset
())}
}
return
blocks
.
NewBlockWithCid
(
out
,
c
)
}
func
(
f
*
FileManager
)
readDataObj
(
d
*
pb
.
DataObj
)
([]
byte
,
error
)
{
// reads and verifies the block
func
(
f
*
FileManager
)
readDataObj
(
c
*
cid
.
Cid
,
d
*
pb
.
DataObj
)
([]
byte
,
error
)
{
p
:=
filepath
.
FromSlash
(
d
.
GetFilePath
())
abspath
:=
filepath
.
Join
(
f
.
root
,
p
)
...
...
@@ -142,6 +134,15 @@ func (f *FileManager) readDataObj(d *pb.DataObj) ([]byte, error) {
return
nil
,
&
CorruptReferenceError
{
err
}
}
outcid
,
err
:=
c
.
Prefix
()
.
Sum
(
outbuf
)
if
err
!=
nil
{
return
nil
,
err
}
if
!
c
.
Equals
(
outcid
)
{
return
nil
,
&
CorruptReferenceError
{
fmt
.
Errorf
(
"data in file did not match. %s offset %d"
,
d
.
GetFilePath
(),
d
.
GetOffset
())}
}
return
outbuf
,
nil
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论