fix(gcr/s,c) register stream handlers
Brian Tiger Chow committed
Jan 30, 2015 at 08:02 UTC
46bbd11e6b4966c0f0ecd2dac4273866cd66a04e
3 files changed
+9
-2
core/corerouting/core.go
+2
@@ -40,6 +40,7 @@ func GrandCentralServer(recordSource datastore.ThreadSafeDatastore) core.Routing
40
Handler: server,
41
Local: node.Identity,
42
}
43
+ node.PeerHost.SetStreamHandler(gcproxy.ProtocolGCR, proxy.HandleStream)
44
return grandcentral.NewClient(proxy, node.Peerstore, node.Identity)
45
}
46
}
@@ -75,6 +76,7 @@ func GrandCentralClient(remotes ...peer.PeerInfo) core.RoutingOption {
76
ids = append(ids, info.ID)
77
}
78
proxy := gcproxy.Standard(node.PeerHost, ids)
79
+ node.PeerHost.SetStreamHandler(gcproxy.ProtocolGCR, proxy.HandleStream)
80
return grandcentral.NewClient(proxy, node.Peerstore, node.Identity)
81
}
82
}
routing/grandcentral/proxy/loopback.go
+1
-1
@@ -34,7 +34,7 @@ func (lb *Loopback) SendRequest(ctx context.Context, m *dhtpb.Message) (*dhtpb.M
34
return lb.Handler.HandleRequest(ctx, lb.Local, m), nil
35
}
36
37
-func (lb *Loopback) handleNewStream(s inet.Stream) {
37
+func (lb *Loopback) HandleStream(s inet.Stream) {
38
defer s.Close()
39
pbr := ggio.NewDelimitedReader(s, inet.MessageSizeMax)
40
var incoming dhtpb.Message
routing/grandcentral/proxy/standard.go
+6
-1
@@ -13,7 +13,10 @@ import (
13
14
var log = eventlog.Logger("proxy")
15
16
+const ProtocolGCR = "/ipfs/grandcentral"
17
+
18
type Proxy interface {
19
+ HandleStream(inet.Stream)
20
SendMessage(ctx context.Context, m *dhtpb.Message) error
21
SendRequest(ctx context.Context, m *dhtpb.Message) (*dhtpb.Message, error)
22
}
@@ -27,7 +30,9 @@ func Standard(h host.Host, remotes []peer.ID) Proxy {
30
return &standard{h, remotes}
31
}
32
30
-const ProtocolGCR = "/ipfs/grandcentral"
33
+func (p *standard) HandleStream(s inet.Stream) {
34
+ panic("client received a GCR message")
35
+}
36
37
func (px *standard) SendMessage(ctx context.Context, m *dhtpb.Message) error {
38
var err error