swarm/network: check stream and pss caps in Hive.Run

This commit is contained in:
Janos Guljas 2019-01-21 14:58:06 +01:00
parent 6072822d5f
commit 3029a8289c

View file

@ -155,6 +155,17 @@ func (h *Hive) Run(p *BzzPeer) error {
defer h.untrackPeer(p)
dp := NewPeer(p, h.Kademlia)
hasCap := func(capName string) (yes bool) {
for _, c := range p.Caps() {
if c.Name == capName {
return true
}
}
return false
}
if hasCap("stream") && hasCap("pss") {
depth, changed := h.On(dp)
// if we want discovery, advertise change of depth
if h.Discovery {
@ -168,6 +179,7 @@ func (h *Hive) Run(p *BzzPeer) error {
NotifyPeer(p.BzzAddr, h.Kademlia)
}
defer h.Off(dp)
}
return dp.Run(dp.HandleMsg)
}