don't readd entire directories recursively
Jeromy committed
Apr 20, 2015 at 16:21 UTC
861f30cc12f87cea68f0d6ea6d48bf8c16dc281f
2 files changed
+4
-17
core/commands/add.go
+1
-10
@@ -232,15 +232,6 @@ func add(n *core.IpfsNode, readers []io.Reader) ([]*dag.Node, error) {
232
return dagnodes, nil
233
}
234
235
-func addNode(n *core.IpfsNode, node *dag.Node) error {
236
- err := n.DAG.AddRecursive(node) // add the file to the graph + local storage
237
- if err != nil {
238
- return err
239
- }
240
-
241
- return nil
242
-}
243
-
235
func addFile(n *core.IpfsNode, file files.File, out chan interface{}, progress bool, wrap bool) (*dag.Node, error) {
236
if file.IsDirectory() {
237
return addDir(n, file, out, progress)
@@ -309,7 +300,7 @@ func addDir(n *core.IpfsNode, dir files.File, out chan interface{}, progress boo
300
return nil, err
301
}
302
312
- err = addNode(n, tree)
303
+ _, err = n.DAG.Add(tree)
304
if err != nil {
305
return nil, err
306
}
core/commands/object.go
+3
-7
@@ -384,13 +384,8 @@ var ErrEmptyNode = errors.New("no data or links in this node")
384
385
// objectPut takes a format option, serializes bytes from stdin and updates the dag with that data
386
func objectPut(n *core.IpfsNode, input io.Reader, encoding string) (*Object, error) {
387
- var (
388
- dagnode *dag.Node
389
- data []byte
390
- err error
391
- )
387
393
- data, err = ioutil.ReadAll(io.LimitReader(input, inputLimit+10))
388
+ data, err := ioutil.ReadAll(io.LimitReader(input, inputLimit+10))
389
if err != nil {
390
return nil, err
391
}
@@ -399,6 +394,7 @@ func objectPut(n *core.IpfsNode, input io.Reader, encoding string) (*Object, err
394
return nil, ErrObjectTooLarge
395
}
396
397
+ var dagnode *dag.Node
398
switch getObjectEnc(encoding) {
399
case objectEncodingJSON:
400
node := new(Node)
@@ -429,7 +425,7 @@ func objectPut(n *core.IpfsNode, input io.Reader, encoding string) (*Object, err
425
return nil, err
426
}
427
432
- err = addNode(n, dagnode)
428
+ _, err = n.DAG.Add(dagnode)
429
if err != nil {
430
return nil, err
431
}