diff --git a/pin.go b/pin.go index 466dfba413be7b170ff8f0ce6a854098181fa128..666e87b6f119648d5c6f1b70a59364fb4da6723b 100644 --- a/pin.go +++ b/pin.go @@ -7,7 +7,9 @@ import ( "errors" "fmt" "sync" + "time" + context "github.com/jbenet/go-ipfs/Godeps/_workspace/src/code.google.com/p/go.net/context" ds "github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/jbenet/go-datastore" nsds "github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/jbenet/go-datastore/namespace" "github.com/jbenet/go-ipfs/blocks/set" @@ -170,8 +172,10 @@ func (p *pinner) pinIndirectRecurse(node *mdag.Node) error { } func (p *pinner) pinLinks(node *mdag.Node) error { - for _, l := range node.Links { - subnode, err := l.GetNode(p.dserv) + ctx, _ := context.WithTimeout(context.Background(), time.Second*60) + for _, ng := range p.dserv.GetDAG(ctx, node) { + subnode, err := ng.Get() + //subnode, err := l.GetNode(p.dserv) if err != nil { // TODO: Maybe just log and continue? return err