les: do not disconnect another server (#20453)

This commit is contained in:
Felföldi Zsolt
2019-12-25 02:06:00 +01:00
committed by GitHub
parent a67fe48b43
commit 3bb6815fc1
2 changed files with 20 additions and 9 deletions

View File

@ -108,10 +108,6 @@ func (h *serverHandler) runPeer(version uint, p *p2p.Peer, rw p2p.MsgReadWriter)
}
func (h *serverHandler) handle(p *peer) error {
// Reject light clients if server is not synced.
if !h.synced() {
return p2p.DiscRequested
}
p.Log().Debug("Light Ethereum peer connected", "name", p.Name())
// Execute the LES handshake
@ -125,6 +121,15 @@ func (h *serverHandler) handle(p *peer) error {
p.Log().Debug("Light Ethereum handshake failed", "err", err)
return err
}
if p.server {
// connected to another server, no messages expected, just wait for disconnection
_, err := p.rw.ReadMsg()
return err
}
// Reject light clients if server is not synced.
if !h.synced() {
return p2p.DiscRequested
}
defer p.fcClient.Disconnect()
// Disconnect the inbound peer if it's rejected by clientPool