@cryptotaxi247 / kubo / commits / 05bc3bd92

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