refactor(gcr/c) pass host.Host into GCR client
Brian Tiger Chow committed
Jan 30, 2015 at 08:05 UTC
9e5b3b7773ec7638550ababb9a213d0f604c2d42
2 files changed
+11
-4
core/corerouting/core.go
+5
-2
@@ -29,6 +29,9 @@ func GrandCentralServer(recordSource datastore.ThreadSafeDatastore) core.Routing
29
if node.Peerstore == nil {
30
return nil, errPeerstoreMissing
31
}
32
+ if node.PeerHost == nil {
33
+ return nil, errHostMissing
34
+ }
35
if node.Identity == "" {
36
return nil, errIdentityMissing
37
}
@@ -41,7 +44,7 @@ func GrandCentralServer(recordSource datastore.ThreadSafeDatastore) core.Routing
44
Local: node.Identity,
45
}
46
node.PeerHost.SetStreamHandler(gcproxy.ProtocolGCR, proxy.HandleStream)
44
- return grandcentral.NewClient(proxy, node.Peerstore, node.Identity)
47
+ return grandcentral.NewClient(proxy, node.PeerHost, node.Peerstore, node.Identity)
48
}
49
}
50
@@ -77,6 +80,6 @@ func GrandCentralClient(remotes ...peer.PeerInfo) core.RoutingOption {
80
}
81
proxy := gcproxy.Standard(node.PeerHost, ids)
82
node.PeerHost.SetStreamHandler(gcproxy.ProtocolGCR, proxy.HandleStream)
80
- return grandcentral.NewClient(proxy, node.Peerstore, node.Identity)
83
+ return grandcentral.NewClient(proxy, node.PeerHost, node.Peerstore, node.Identity)
84
}
85
}
routing/grandcentral/client.go
+6
-2
@@ -6,6 +6,7 @@ import (
6
7
context "github.com/jbenet/go-ipfs/Godeps/_workspace/src/code.google.com/p/go.net/context"
8
proto "github.com/jbenet/go-ipfs/Godeps/_workspace/src/code.google.com/p/goprotobuf/proto"
9
+ "github.com/jbenet/go-ipfs/p2p/host"
10
peer "github.com/jbenet/go-ipfs/p2p/peer"
11
routing "github.com/jbenet/go-ipfs/routing"
12
pb "github.com/jbenet/go-ipfs/routing/dht/pb"
@@ -18,17 +19,19 @@ import (
19
var log = eventlog.Logger("grandcentral")
20
21
type Client struct {
22
+ peerhost host.Host
23
peerstore peer.Peerstore
24
proxy proxy.Proxy
25
local peer.ID
26
}
27
28
// TODO take in datastore/cache
27
-func NewClient(px proxy.Proxy, ps peer.Peerstore, local peer.ID) (*Client, error) {
29
+func NewClient(px proxy.Proxy, h host.Host, ps peer.Peerstore, local peer.ID) (*Client, error) {
30
return &Client{
31
proxy: px,
32
local: local,
33
peerstore: ps,
34
+ peerhost: h,
35
}, nil
36
}
37
@@ -79,7 +82,8 @@ func (c *Client) Provide(ctx context.Context, k u.Key) error {
82
pri := []pb.PeerRoutingInfo{
83
pb.PeerRoutingInfo{
84
PeerInfo: peer.PeerInfo{
82
- ID: c.local,
85
+ ID: c.local,
86
+ Addrs: c.peerhost.Addrs(),
87
},
88
},
89
}