diff options
Diffstat (limited to 'pkg/server')
-rw-r--r-- | pkg/server/fsm.go | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/pkg/server/fsm.go b/pkg/server/fsm.go index abd94ed9..fedf3018 100644 --- a/pkg/server/fsm.go +++ b/pkg/server/fsm.go @@ -1019,6 +1019,13 @@ func (h *fsmHandler) recvMessageWithError() (*fsmMsg, error) { case bgp.BGP_MSG_ROUTE_REFRESH: fmsg.MsgType = fsmMsgRouteRefresh case bgp.BGP_MSG_UPDATE: + // if the length of h.holdTimerResetCh + // isn't zero, the timer will be reset + // soon anyway. + select { + case h.holdTimerResetCh <- true: + default: + } body := m.Body.(*bgp.BGPUpdate) isEBGP := h.fsm.pConf.IsEBGPPeer(h.fsm.gConf) isConfed := h.fsm.pConf.IsConfederationMember(h.fsm.gConf) |