Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
G
go-ipfs
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
jihao
go-ipfs
Commits
d32177cd
提交
d32177cd
authored
8月 16, 2015
作者:
rht
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Make sure ctx in commands are derived from req.Context
License: MIT Signed-off-by:
rht
<
rhtbot@gmail.com
>
上级
a0520879
隐藏空白字符变更
内嵌
并排
正在显示
13 个修改的文件
包含
34 行增加
和
62 行删除
+34
-62
assets.go
assets/assets.go
+1
-1
client.go
commands/http/client.go
+1
-2
swarm.go
core/commands/swarm.go
+1
-2
core.go
core/core.go
+4
-1
add.go
core/coreunix/add.go
+9
-27
metadata.go
core/coreunix/metadata.go
+2
-2
common.go
fuse/ipns/common.go
+1
-1
trickledag.go
importer/trickle/trickledag.go
+1
-2
dir.go
ipnsfs/dir.go
+6
-4
system.go
ipnsfs/system.go
+1
-1
utils.go
merkledag/utils/utils.go
+1
-2
dirbuilder.go
unixfs/io/dirbuilder.go
+2
-13
dagmodifier.go
unixfs/mod/dagmodifier.go
+4
-4
没有找到文件。
assets/assets.go
浏览文件 @
d32177cd
...
...
@@ -54,7 +54,7 @@ func addAssetList(nd *core.IpfsNode, l []string) (*key.Key, error) {
fname
:=
filepath
.
Base
(
p
)
k
:=
key
.
B58KeyDecode
(
s
)
if
err
:=
dirb
.
AddChild
(
fname
,
k
);
err
!=
nil
{
if
err
:=
dirb
.
AddChild
(
nd
.
Context
(),
fname
,
k
);
err
!=
nil
{
return
nil
,
fmt
.
Errorf
(
"assets: could not add '%s' as a child: %s"
,
fname
,
err
)
}
}
...
...
commands/http/client.go
浏览文件 @
d32177cd
...
...
@@ -51,8 +51,7 @@ func (c *client) Send(req cmds.Request) (cmds.Response, error) {
if
req
.
Context
()
==
nil
{
log
.
Warningf
(
"no context set in request"
)
err
:=
req
.
SetRootContext
(
context
.
TODO
())
if
err
!=
nil
{
if
err
:=
req
.
SetRootContext
(
context
.
TODO
());
err
!=
nil
{
return
nil
,
err
}
}
...
...
core/commands/swarm.go
浏览文件 @
d32177cd
...
...
@@ -15,7 +15,6 @@ import (
ma
"github.com/ipfs/go-ipfs/Godeps/_workspace/src/github.com/jbenet/go-multiaddr"
mafilter
"github.com/ipfs/go-ipfs/Godeps/_workspace/src/github.com/whyrusleeping/multiaddr-filter"
context
"github.com/ipfs/go-ipfs/Godeps/_workspace/src/golang.org/x/net/context"
)
type
stringList
struct
{
...
...
@@ -211,7 +210,7 @@ ipfs swarm connect /ip4/104.131.131.82/tcp/4001/ipfs/QmaCpDMGvV2BGHeYERUEnRQAwe3
cmds
.
StringArg
(
"address"
,
true
,
true
,
"address of peer to connect to"
)
.
EnableStdin
(),
},
Run
:
func
(
req
cmds
.
Request
,
res
cmds
.
Response
)
{
ctx
:=
context
.
TODO
()
ctx
:=
req
.
Context
()
n
,
err
:=
req
.
InvocContext
()
.
GetNode
()
if
err
!=
nil
{
...
...
core/core.go
浏览文件 @
d32177cd
...
...
@@ -320,7 +320,7 @@ func setupDiscoveryOption(d config.Discovery) DiscoveryOption {
func
(
n
*
IpfsNode
)
HandlePeerFound
(
p
peer
.
PeerInfo
)
{
log
.
Warning
(
"trying peer info: "
,
p
)
ctx
,
_
:=
context
.
WithTimeout
(
context
.
TODO
(),
time
.
Second
*
10
)
ctx
,
_
:=
context
.
WithTimeout
(
n
.
Context
(),
time
.
Second
*
10
)
err
:=
n
.
PeerHost
.
Connect
(
ctx
,
p
)
if
err
!=
nil
{
log
.
Warning
(
"Failed to connect to peer found by discovery: "
,
err
)
...
...
@@ -367,6 +367,9 @@ func (n *IpfsNode) Close() error {
// Context returns the IpfsNode context
func
(
n
*
IpfsNode
)
Context
()
context
.
Context
{
if
n
.
ctx
==
nil
{
n
.
ctx
=
context
.
TODO
()
}
return
n
.
ctx
}
...
...
core/coreunix/add.go
浏览文件 @
d32177cd
...
...
@@ -66,8 +66,7 @@ func AddR(n *core.IpfsNode, root string) (key string, err error) {
}
n
.
Pinning
.
GetManual
()
.
RemovePinWithMode
(
k
,
pin
.
Indirect
)
err
=
n
.
Pinning
.
Flush
()
if
err
!=
nil
{
if
err
:=
n
.
Pinning
.
Flush
();
err
!=
nil
{
return
""
,
err
}
...
...
@@ -95,43 +94,28 @@ func AddWrapped(n *core.IpfsNode, r io.Reader, filename string) (string, *merkle
func
add
(
n
*
core
.
IpfsNode
,
reader
io
.
Reader
)
(
*
merkledag
.
Node
,
error
)
{
mp
:=
n
.
Pinning
.
GetManual
()
node
,
err
:=
importer
.
BuildDagFromReader
(
return
importer
.
BuildDagFromReader
(
n
.
DAG
,
chunk
.
DefaultSplitter
(
reader
),
importer
.
PinIndirectCB
(
mp
),
)
if
err
!=
nil
{
return
nil
,
err
}
return
node
,
nil
}
func
addNode
(
n
*
core
.
IpfsNode
,
node
*
merkledag
.
Node
)
error
{
err
:=
n
.
DAG
.
AddRecursive
(
node
)
// add the file to the graph + local storage
if
err
!=
nil
{
if
err
:=
n
.
DAG
.
AddRecursive
(
node
);
err
!=
nil
{
// add the file to the graph + local storage
return
err
}
ctx
,
cancel
:=
context
.
WithTimeout
(
context
.
TODO
(),
time
.
Minute
)
ctx
,
cancel
:=
context
.
WithTimeout
(
n
.
Context
(),
time
.
Minute
)
defer
cancel
()
err
=
n
.
Pinning
.
Pin
(
ctx
,
node
,
true
)
// ensure we keep it
if
err
!=
nil
{
return
err
}
return
nil
err
:=
n
.
Pinning
.
Pin
(
ctx
,
node
,
true
)
// ensure we keep it
return
err
}
func
addFile
(
n
*
core
.
IpfsNode
,
file
files
.
File
)
(
*
merkledag
.
Node
,
error
)
{
if
file
.
IsDirectory
()
{
return
addDir
(
n
,
file
)
}
dagnode
,
err
:=
add
(
n
,
file
)
if
err
!=
nil
{
return
nil
,
err
}
return
dagnode
,
nil
return
add
(
n
,
file
)
}
func
addDir
(
n
*
core
.
IpfsNode
,
dir
files
.
File
)
(
*
merkledag
.
Node
,
error
)
{
...
...
@@ -155,14 +139,12 @@ Loop:
_
,
name
:=
gopath
.
Split
(
file
.
FileName
())
err
=
tree
.
AddNodeLink
(
name
,
node
)
if
err
!=
nil
{
if
err
:=
tree
.
AddNodeLink
(
name
,
node
);
err
!=
nil
{
return
nil
,
err
}
}
err
:=
addNode
(
n
,
tree
)
if
err
!=
nil
{
if
err
:=
addNode
(
n
,
tree
);
err
!=
nil
{
return
nil
,
err
}
return
tree
,
nil
...
...
core/coreunix/metadata.go
浏览文件 @
d32177cd
...
...
@@ -14,7 +14,7 @@ import (
func
AddMetadataTo
(
n
*
core
.
IpfsNode
,
skey
string
,
m
*
ft
.
Metadata
)
(
string
,
error
)
{
ukey
:=
key
.
B58KeyDecode
(
skey
)
ctx
,
cancel
:=
context
.
WithTimeout
(
context
.
TODO
(),
time
.
Minute
)
ctx
,
cancel
:=
context
.
WithTimeout
(
n
.
Context
(),
time
.
Minute
)
defer
cancel
()
nd
,
err
:=
n
.
DAG
.
Get
(
ctx
,
ukey
)
if
err
!=
nil
{
...
...
@@ -44,7 +44,7 @@ func AddMetadataTo(n *core.IpfsNode, skey string, m *ft.Metadata) (string, error
func
Metadata
(
n
*
core
.
IpfsNode
,
skey
string
)
(
*
ft
.
Metadata
,
error
)
{
ukey
:=
key
.
B58KeyDecode
(
skey
)
ctx
,
cancel
:=
context
.
WithTimeout
(
context
.
TODO
(),
time
.
Minute
)
ctx
,
cancel
:=
context
.
WithTimeout
(
n
.
Context
(),
time
.
Minute
)
defer
cancel
()
nd
,
err
:=
n
.
DAG
.
Get
(
ctx
,
ukey
)
if
err
!=
nil
{
...
...
fuse/ipns/common.go
浏览文件 @
d32177cd
...
...
@@ -22,7 +22,7 @@ func InitializeKeyspace(n *core.IpfsNode, key ci.PrivKey) error {
return
err
}
ctx
,
cancel
:=
context
.
WithTimeout
(
context
.
TODO
(),
time
.
Minute
)
ctx
,
cancel
:=
context
.
WithTimeout
(
n
.
Context
(),
time
.
Minute
)
defer
cancel
()
err
=
n
.
Pinning
.
Pin
(
ctx
,
emptyDir
,
false
)
...
...
importer/trickle/trickledag.go
浏览文件 @
d32177cd
...
...
@@ -108,8 +108,7 @@ func TrickleAppend(base *dag.Node, db *h.DagBuilderHelper) (out *dag.Node, err_o
}
// Last child in this node may not be a full tree, lets file it up
err
=
appendFillLastChild
(
ufsn
,
n
-
1
,
layerProgress
,
db
)
if
err
!=
nil
{
if
err
:=
appendFillLastChild
(
ufsn
,
n
-
1
,
layerProgress
,
db
);
err
!=
nil
{
return
nil
,
err
}
...
...
ipnsfs/dir.go
浏览文件 @
d32177cd
...
...
@@ -26,12 +26,14 @@ type Directory struct {
lock
sync
.
Mutex
node
*
dag
.
Node
ctx
context
.
Context
name
string
}
func
NewDirectory
(
name
string
,
node
*
dag
.
Node
,
parent
childCloser
,
fs
*
Filesystem
)
*
Directory
{
func
NewDirectory
(
ctx
context
.
Context
,
name
string
,
node
*
dag
.
Node
,
parent
childCloser
,
fs
*
Filesystem
)
*
Directory
{
return
&
Directory
{
ctx
:
ctx
,
fs
:
fs
,
name
:
name
,
node
:
node
,
...
...
@@ -121,7 +123,7 @@ func (d *Directory) childDir(name string) (*Directory, error) {
switch
i
.
GetType
()
{
case
ufspb
.
Data_Directory
:
ndir
:=
NewDirectory
(
name
,
nd
,
d
,
d
.
fs
)
ndir
:=
NewDirectory
(
d
.
ctx
,
name
,
nd
,
d
,
d
.
fs
)
d
.
childDirs
[
name
]
=
ndir
return
ndir
,
nil
case
ufspb
.
Data_File
:
...
...
@@ -138,7 +140,7 @@ func (d *Directory) childDir(name string) (*Directory, error) {
func
(
d
*
Directory
)
childFromDag
(
name
string
)
(
*
dag
.
Node
,
error
)
{
for
_
,
lnk
:=
range
d
.
node
.
Links
{
if
lnk
.
Name
==
name
{
ctx
,
cancel
:=
context
.
WithTimeout
(
context
.
TODO
()
,
time
.
Minute
)
ctx
,
cancel
:=
context
.
WithTimeout
(
d
.
ctx
,
time
.
Minute
)
defer
cancel
()
return
lnk
.
GetNode
(
ctx
,
d
.
fs
.
dserv
)
...
...
@@ -244,7 +246,7 @@ func (d *Directory) AddChild(name string, nd *dag.Node) error {
switch
pbn
.
GetType
()
{
case
ft
.
TDirectory
:
d
.
childDirs
[
name
]
=
NewDirectory
(
name
,
nd
,
d
,
d
.
fs
)
d
.
childDirs
[
name
]
=
NewDirectory
(
d
.
ctx
,
name
,
nd
,
d
,
d
.
fs
)
case
ft
.
TFile
,
ft
.
TMetadata
,
ft
.
TRaw
:
nfi
,
err
:=
NewFile
(
name
,
nd
,
d
,
d
.
fs
)
if
err
!=
nil
{
...
...
ipnsfs/system.go
浏览文件 @
d32177cd
...
...
@@ -186,7 +186,7 @@ func (fs *Filesystem) newKeyRoot(parent context.Context, k ci.PrivKey) (*KeyRoot
switch
pbn
.
GetType
()
{
case
ft
.
TDirectory
:
root
.
val
=
NewDirectory
(
pointsTo
.
String
(),
mnode
,
root
,
fs
)
root
.
val
=
NewDirectory
(
ctx
,
pointsTo
.
String
(),
mnode
,
root
,
fs
)
case
ft
.
TFile
,
ft
.
TMetadata
,
ft
.
TRaw
:
fi
,
err
:=
NewFile
(
pointsTo
.
String
(),
mnode
,
root
,
fs
)
if
err
!=
nil
{
...
...
merkledag/utils/utils.go
浏览文件 @
d32177cd
...
...
@@ -48,8 +48,7 @@ func addLink(ctx context.Context, ds dag.DAGService, root *dag.Node, childname s
// ensure no link with that name already exists
_
=
root
.
RemoveNodeLink
(
childname
)
// ignore error, only option is ErrNotFound
err
=
root
.
AddNodeLinkClean
(
childname
,
childnd
)
if
err
!=
nil
{
if
err
:=
root
.
AddNodeLinkClean
(
childname
,
childnd
);
err
!=
nil
{
return
nil
,
err
}
...
...
unixfs/io/dirbuilder.go
浏览文件 @
d32177cd
package
io
import
(
"time"
"github.com/ipfs/go-ipfs/Godeps/_workspace/src/golang.org/x/net/context"
key
"github.com/ipfs/go-ipfs/blocks/key"
...
...
@@ -29,22 +27,13 @@ func NewDirectory(dserv mdag.DAGService) *directoryBuilder {
}
// AddChild adds a (name, key)-pair to the root node.
func
(
d
*
directoryBuilder
)
AddChild
(
name
string
,
k
key
.
Key
)
error
{
// TODO(cryptix): consolidate context managment
ctx
,
cancel
:=
context
.
WithTimeout
(
context
.
TODO
(),
time
.
Minute
)
defer
cancel
()
func
(
d
*
directoryBuilder
)
AddChild
(
ctx
context
.
Context
,
name
string
,
k
key
.
Key
)
error
{
cnode
,
err
:=
d
.
dserv
.
Get
(
ctx
,
k
)
if
err
!=
nil
{
return
err
}
err
=
d
.
dirnode
.
AddNodeLinkClean
(
name
,
cnode
)
if
err
!=
nil
{
return
err
}
return
nil
return
d
.
dirnode
.
AddNodeLinkClean
(
name
,
cnode
)
}
// GetNode returns the root of this directoryBuilder
...
...
unixfs/mod/dagmodifier.go
浏览文件 @
d32177cd
...
...
@@ -428,7 +428,7 @@ func (dm *DagModifier) Truncate(size int64) error {
return
dm
.
expandSparse
(
int64
(
size
)
-
realSize
)
}
nnode
,
err
:=
dagTruncate
(
dm
.
curNode
,
uint64
(
size
),
dm
.
dagserv
)
nnode
,
err
:=
dagTruncate
(
dm
.
c
tx
,
dm
.
c
urNode
,
uint64
(
size
),
dm
.
dagserv
)
if
err
!=
nil
{
return
err
}
...
...
@@ -443,7 +443,7 @@ func (dm *DagModifier) Truncate(size int64) error {
}
// dagTruncate truncates the given node to 'size' and returns the modified Node
func
dagTruncate
(
nd
*
mdag
.
Node
,
size
uint64
,
ds
mdag
.
DAGService
)
(
*
mdag
.
Node
,
error
)
{
func
dagTruncate
(
ctx
context
.
Context
,
nd
*
mdag
.
Node
,
size
uint64
,
ds
mdag
.
DAGService
)
(
*
mdag
.
Node
,
error
)
{
if
len
(
nd
.
Links
)
==
0
{
// TODO: this can likely be done without marshaling and remarshaling
pbn
,
err
:=
ft
.
FromBytes
(
nd
.
Data
)
...
...
@@ -460,7 +460,7 @@ func dagTruncate(nd *mdag.Node, size uint64, ds mdag.DAGService) (*mdag.Node, er
var
modified
*
mdag
.
Node
ndata
:=
new
(
ft
.
FSNode
)
for
i
,
lnk
:=
range
nd
.
Links
{
ctx
,
cancel
:=
context
.
WithTimeout
(
context
.
TODO
()
,
time
.
Minute
)
_ctx
,
cancel
:=
context
.
WithTimeout
(
ctx
,
time
.
Minute
)
defer
cancel
()
child
,
err
:=
lnk
.
GetNode
(
ctx
,
ds
)
...
...
@@ -475,7 +475,7 @@ func dagTruncate(nd *mdag.Node, size uint64, ds mdag.DAGService) (*mdag.Node, er
// found the child we want to cut
if
size
<
cur
+
childsize
{
nchild
,
err
:=
dagTruncate
(
child
,
size
-
cur
,
ds
)
nchild
,
err
:=
dagTruncate
(
_ctx
,
child
,
size
-
cur
,
ds
)
if
err
!=
nil
{
return
nil
,
err
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论