diff options
-rw-r--r-- | server/fsm.go | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/server/fsm.go b/server/fsm.go index d70d0f8b..0c3c2efb 100644 --- a/server/fsm.go +++ b/server/fsm.go @@ -325,7 +325,15 @@ func (fsm *FSM) connectLoop() error { } if err == nil { - fsm.connCh <- conn + select { + case fsm.connCh <- conn: + default: + conn.Close() + log.WithFields(log.Fields{ + "Topic": "Peer", + "Key": fsm.pConf.Config.NeighborAddress, + }).Warn("active conn is closed to avoid being blocked") + } } else { log.WithFields(log.Fields{ "Topic": "Peer", |