@@ -22,18 +22,17 @@ import (
22
22
uio "github.com/ipfs/go-ipfs/unixfs/io"
23
23
24
24
cid "gx/ipfs/QmNp85zy9RLrQ5oQD4hPyS39ezrrXpcaa7R4Y9kxdWQLLQ/go-cid"
25
- node "gx/ipfs/QmPN7cwmpcc4DWXb4KTB9dNAJgjuPY69h3npsMfhRrQL9c/go-ipld-format"
26
25
)
27
26
28
27
func Pin (n * core.IpfsNode , ctx context.Context , paths []string , recursive bool ) ([]* cid.Cid , error ) {
29
- dagnodes := make ([]node. Node , 0 )
28
+ out := make ([]* cid. Cid , len ( paths ) )
30
29
31
30
r := & path.Resolver {
32
31
DAG : n .DAG ,
33
32
ResolveOnce : uio .ResolveUnixfsOnce ,
34
33
}
35
34
36
- for _ , fpath := range paths {
35
+ for i , fpath := range paths {
37
36
p , err := path .ParsePath (fpath )
38
37
if err != nil {
39
38
return nil , err
@@ -43,20 +42,11 @@ func Pin(n *core.IpfsNode, ctx context.Context, paths []string, recursive bool)
43
42
if err != nil {
44
43
return nil , fmt .Errorf ("pin: %s" , err )
45
44
}
46
- dagnodes = append (dagnodes , dagnode )
47
- }
48
-
49
- var out []* cid.Cid
50
- for _ , dagnode := range dagnodes {
51
- c := dagnode .Cid ()
52
-
53
- ctx , cancel := context .WithCancel (ctx )
54
- defer cancel ()
55
- err := n .Pinning .Pin (ctx , dagnode , recursive )
45
+ err = n .Pinning .Pin (ctx , dagnode , recursive )
56
46
if err != nil {
57
47
return nil , fmt .Errorf ("pin: %s" , err )
58
48
}
59
- out = append ( out , c )
49
+ out [ i ] = dagnode . Cid ( )
60
50
}
61
51
62
52
err := n .Pinning .Flush ()
@@ -68,14 +58,14 @@ func Pin(n *core.IpfsNode, ctx context.Context, paths []string, recursive bool)
68
58
}
69
59
70
60
func Unpin (n * core.IpfsNode , ctx context.Context , paths []string , recursive bool ) ([]* cid.Cid , error ) {
71
- var unpinned []* cid.Cid
61
+ unpinned := make ( []* cid.Cid , len ( paths ))
72
62
73
63
r := & path.Resolver {
74
64
DAG : n .DAG ,
75
65
ResolveOnce : uio .ResolveUnixfsOnce ,
76
66
}
77
67
78
- for _ , p := range paths {
68
+ for i , p := range paths {
79
69
p , err := path .ParsePath (p )
80
70
if err != nil {
81
71
return nil , err
@@ -86,13 +76,11 @@ func Unpin(n *core.IpfsNode, ctx context.Context, paths []string, recursive bool
86
76
return nil , err
87
77
}
88
78
89
- ctx , cancel := context .WithCancel (ctx )
90
- defer cancel ()
91
79
err = n .Pinning .Unpin (ctx , k , recursive )
92
80
if err != nil {
93
81
return nil , err
94
82
}
95
- unpinned = append ( unpinned , k )
83
+ unpinned [ i ] = k
96
84
}
97
85
98
86
err := n .Pinning .Flush ()
0 commit comments