Commit b5fd9492 authored by Jeromy's avatar Jeromy Committed by Juan Batiz-Benet

fixes to make interface more usable

parent 235a7674
......@@ -103,6 +103,16 @@ func addFile(n *core.IpfsNode, fpath string, depth int) (*dag.Node, error) {
return nil, err
}
k, err := root.Key()
if err != nil {
return nil, err
}
log.Info("Adding file: %s = %s\n", fpath, k.Pretty())
for _, l := range root.Links {
log.Info("SubBlock: %s\n", l.Hash.B58String())
}
return root, addNode(n, root, fpath)
}
......
......@@ -4,6 +4,10 @@ import (
"io"
"github.com/jbenet/go-ipfs/core"
logging "github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/op/go-logging"
)
var log = logging.MustGetLogger("commands")
type CmdFunc func(*core.IpfsNode, []string, map[string]interface{}, io.Writer) error
......@@ -16,6 +16,7 @@ import (
exchange "github.com/jbenet/go-ipfs/exchange"
bitswap "github.com/jbenet/go-ipfs/exchange/bitswap"
merkledag "github.com/jbenet/go-ipfs/merkledag"
namesys "github.com/jbenet/go-ipfs/namesys"
inet "github.com/jbenet/go-ipfs/net"
mux "github.com/jbenet/go-ipfs/net/mux"
netservice "github.com/jbenet/go-ipfs/net/service"
......
......@@ -14,6 +14,8 @@ import (
"syscall"
"time"
"code.google.com/p/goprotobuf/proto"
"github.com/jbenet/go-ipfs/Godeps/_workspace/src/bazil.org/fuse"
"github.com/jbenet/go-ipfs/Godeps/_workspace/src/bazil.org/fuse/fs"
core "github.com/jbenet/go-ipfs/core"
......@@ -72,20 +74,35 @@ func (*Root) ReadDir(intr fs.Intr) ([]fuse.Dirent, fuse.Error) {
// Node is the core object representing a filesystem tree node.
type Node struct {
Ipfs *core.IpfsNode
Nd *mdag.Node
fd *mdag.DagReader
Ipfs *core.IpfsNode
Nd *mdag.Node
fd *mdag.DagReader
cached *mdag.PBData
}
func (s *Node) loadData() error {
s.cached = new(mdag.PBData)
return proto.Unmarshal(s.Nd.Data, s.cached)
}
// Attr returns the attributes of a given node.
func (s *Node) Attr() fuse.Attr {
u.DOut("Node attr.\n")
if len(s.Nd.Links) > 0 {
if s.cached == nil {
s.loadData()
}
switch s.cached.GetType() {
case mdag.PBData_Directory:
u.DOut("this is a directory.\n")
return fuse.Attr{Mode: os.ModeDir | 0555}
case mdag.PBData_File, mdag.PBData_Raw:
u.DOut("this is a file.\n")
size, _ := s.Nd.Size()
return fuse.Attr{Mode: 0444, Size: uint64(size)}
default:
u.PErr("Invalid data type.")
return fuse.Attr{}
}
size, _ := s.Nd.Size()
return fuse.Attr{Mode: 0444, Size: uint64(size)}
}
// Lookup performs a lookup under this node.
......
......@@ -3,7 +3,8 @@ package merkledag
import (
"fmt"
"github.com/jbenet/go-ipfs/Godeps/_workspace/src/code.google.com/p/goprotobuf/proto"
proto "github.com/jbenet/go-ipfs/Godeps/_workspace/src/code.google.com/p/goprotobuf/proto"
logging "github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/op/go-logging"
mh "github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/jbenet/go-multihash"
blocks "github.com/jbenet/go-ipfs/blocks"
......@@ -11,6 +12,8 @@ import (
u "github.com/jbenet/go-ipfs/util"
)
var log = logging.MustGetLogger("commands")
// NodeMap maps u.Keys to Nodes.
// We cannot use []byte/Multihash for keys :(
// so have to convert Multihash bytes to string (u.Key)
......@@ -105,7 +108,7 @@ type DAGService struct {
// Add adds a node to the DAGService, storing the block in the BlockService
func (n *DAGService) Add(nd *Node) (u.Key, error) {
k, _ := nd.Key()
u.DOut("DagService Add [%s]\n", k.Pretty())
log.Debug("DagService Add [%s]\n", k.Pretty())
if n == nil {
return "", fmt.Errorf("DAGService is nil")
}
......@@ -126,6 +129,7 @@ func (n *DAGService) Add(nd *Node) (u.Key, error) {
func (n *DAGService) AddRecursive(nd *Node) error {
_, err := n.Add(nd)
if err != nil {
log.Info("AddRecursive Error: %s\n", err)
return err
}
......
......@@ -101,6 +101,7 @@ func (dht *IpfsDHT) Provide(ctx context.Context, key u.Key) error {
dht.providers.AddProvider(key, dht.self)
peers := dht.routingTables[0].NearestPeers(kb.ConvertKey(key), PoolSize)
if len(peers) == 0 {
// Early out for no targets
return nil
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment