eth: don't wait for snap registration if we're not running snap (#22272)

Prevents a situation where we (not running snap) connects with a peer running snap, and get stalled waiting for snap registration to succeed (which will never happen), which cause a waitgroup wait to halt shutdown
This commit is contained in:
Martin Holst Swende
2021-02-05 14:15:22 +01:00
committed by GitHub
parent fba5a63afe
commit 7ed860d4f1
2 changed files with 10 additions and 11 deletions

View File

@ -158,15 +158,14 @@ func (p *Peer) Caps() []Cap {
return p.rw.caps
}
// SupportsCap returns true if the peer supports any of the enumerated versions
// of a specific protocol.
func (p *Peer) SupportsCap(protocol string, versions []uint) bool {
for _, cap := range p.rw.caps {
if cap.Name == protocol {
for _, ver := range versions {
if cap.Version == ver {
return true
}
// RunningCap returns true if the peer is actively connected using any of the
// enumerated versions of a specific protocol, meaning that at least one of the
// versions is supported by both this node and the peer p.
func (p *Peer) RunningCap(protocol string, versions []uint) bool {
if proto, ok := p.running[protocol]; ok {
for _, ver := range versions {
if proto.Version == ver {
return true
}
}
}