fix(network): disconnect peers if verify cert failed

This commit is contained in:
jzhe 2020-11-24 14:14:54 +08:00
parent 2efdd35e4a
commit 32570f1ceb
1 changed files with 12 additions and 1 deletions

View File

@ -87,7 +87,7 @@ func (swarm *Swarm) Start() error {
return err
}
if err := swarm.verifyCert(id); err != nil {
if err := swarm.verifyCertOrDisconnect(id); err != nil {
if attempt != 0 && attempt%5 == 0 {
swarm.logger.WithFields(logrus.Fields{
"node": id,
@ -126,6 +126,17 @@ func (swarm *Swarm) Stop() error {
return nil
}
func (swarm *Swarm) verifyCertOrDisconnect(id uint64) error {
if err := swarm.verifyCert(id); err != nil {
if err = swarm.p2p.Disconnect(swarm.peers[id].ID.String()); err != nil {
return err
}
return err
}
return nil
}
func (swarm *Swarm) Ping() {
ticker := time.NewTicker(swarm.pingTimeout)
for {