p2p: simplify remote handler matching
License: MIT Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
Łukasz Magiera committed
Sep 6, 2018 at 11:09 UTC
05bc3bd92495b8406d0ee46bf91287f553f4715f
1 file changed
+5
-17
p2p/listener.go
+5
-17
@@ -44,31 +44,19 @@ func newListenersP2P(id peer.ID, host p2phost.Host) *Listeners {
44
starting: map[string]struct{}{},
45
}
46
47
- addr, err := ma.NewMultiaddr(maPrefix + id.Pretty())
48
- if err != nil {
49
- panic(err)
50
- }
51
-
47
host.SetStreamHandlerMatch("/x/", func(p string) bool {
48
reg.RLock()
49
defer reg.RUnlock()
50
56
- for _, l := range reg.Listeners {
57
- if l.ListenAddress().Equal(addr) && string(l.Protocol()) == p {
58
- return true
59
- }
60
- }
61
-
62
- return false
51
+ _, ok := reg.Listeners[p]
52
+ return ok
53
}, func(stream net.Stream) {
54
reg.RLock()
55
defer reg.RUnlock()
56
67
- for _, l := range reg.Listeners {
68
- if l.ListenAddress().Equal(addr) && l.Protocol() == stream.Protocol() {
69
- go l.(*remoteListener).handleStream(stream)
70
- return
71
- }
57
+ l := reg.Listeners[string(stream.Protocol())]
58
+ if l != nil {
59
+ go l.(*remoteListener).handleStream(stream)
60
}
61
})
62