提交 9e5b3b77 作者: Brian Tiger Chow

refactor(gcr/c) pass host.Host into GCR client

上级 ea9ea794
...@@ -29,6 +29,9 @@ func GrandCentralServer(recordSource datastore.ThreadSafeDatastore) core.Routing ...@@ -29,6 +29,9 @@ func GrandCentralServer(recordSource datastore.ThreadSafeDatastore) core.Routing
if node.Peerstore == nil { if node.Peerstore == nil {
return nil, errPeerstoreMissing return nil, errPeerstoreMissing
} }
if node.PeerHost == nil {
return nil, errHostMissing
}
if node.Identity == "" { if node.Identity == "" {
return nil, errIdentityMissing return nil, errIdentityMissing
} }
...@@ -41,7 +44,7 @@ func GrandCentralServer(recordSource datastore.ThreadSafeDatastore) core.Routing ...@@ -41,7 +44,7 @@ func GrandCentralServer(recordSource datastore.ThreadSafeDatastore) core.Routing
Local: node.Identity, Local: node.Identity,
} }
node.PeerHost.SetStreamHandler(gcproxy.ProtocolGCR, proxy.HandleStream) node.PeerHost.SetStreamHandler(gcproxy.ProtocolGCR, proxy.HandleStream)
return grandcentral.NewClient(proxy, node.Peerstore, node.Identity) return grandcentral.NewClient(proxy, node.PeerHost, node.Peerstore, node.Identity)
} }
} }
...@@ -77,6 +80,6 @@ func GrandCentralClient(remotes ...peer.PeerInfo) core.RoutingOption { ...@@ -77,6 +80,6 @@ func GrandCentralClient(remotes ...peer.PeerInfo) core.RoutingOption {
} }
proxy := gcproxy.Standard(node.PeerHost, ids) proxy := gcproxy.Standard(node.PeerHost, ids)
node.PeerHost.SetStreamHandler(gcproxy.ProtocolGCR, proxy.HandleStream) node.PeerHost.SetStreamHandler(gcproxy.ProtocolGCR, proxy.HandleStream)
return grandcentral.NewClient(proxy, node.Peerstore, node.Identity) return grandcentral.NewClient(proxy, node.PeerHost, node.Peerstore, node.Identity)
} }
} }
...@@ -6,6 +6,7 @@ import ( ...@@ -6,6 +6,7 @@ import (
context "github.com/jbenet/go-ipfs/Godeps/_workspace/src/code.google.com/p/go.net/context" context "github.com/jbenet/go-ipfs/Godeps/_workspace/src/code.google.com/p/go.net/context"
proto "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"
"github.com/jbenet/go-ipfs/p2p/host"
peer "github.com/jbenet/go-ipfs/p2p/peer" peer "github.com/jbenet/go-ipfs/p2p/peer"
routing "github.com/jbenet/go-ipfs/routing" routing "github.com/jbenet/go-ipfs/routing"
pb "github.com/jbenet/go-ipfs/routing/dht/pb" pb "github.com/jbenet/go-ipfs/routing/dht/pb"
...@@ -18,17 +19,19 @@ import ( ...@@ -18,17 +19,19 @@ import (
var log = eventlog.Logger("grandcentral") var log = eventlog.Logger("grandcentral")
type Client struct { type Client struct {
peerhost host.Host
peerstore peer.Peerstore peerstore peer.Peerstore
proxy proxy.Proxy proxy proxy.Proxy
local peer.ID local peer.ID
} }
// TODO take in datastore/cache // TODO take in datastore/cache
func NewClient(px proxy.Proxy, ps peer.Peerstore, local peer.ID) (*Client, error) { func NewClient(px proxy.Proxy, h host.Host, ps peer.Peerstore, local peer.ID) (*Client, error) {
return &Client{ return &Client{
proxy: px, proxy: px,
local: local, local: local,
peerstore: ps, peerstore: ps,
peerhost: h,
}, nil }, nil
} }
...@@ -79,7 +82,8 @@ func (c *Client) Provide(ctx context.Context, k u.Key) error { ...@@ -79,7 +82,8 @@ func (c *Client) Provide(ctx context.Context, k u.Key) error {
pri := []pb.PeerRoutingInfo{ pri := []pb.PeerRoutingInfo{
pb.PeerRoutingInfo{ pb.PeerRoutingInfo{
PeerInfo: peer.PeerInfo{ PeerInfo: peer.PeerInfo{
ID: c.local, ID: c.local,
Addrs: c.peerhost.Addrs(),
}, },
}, },
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论