Skip to content
Snippets Groups Projects
Commit c76c8c86 authored by Christoph Petrausch's avatar Christoph Petrausch
Browse files

Use time.Ticker for keepalive timer

parent 1337ccc9
No related branches found
No related tags found
No related merge requests found
......@@ -84,7 +84,7 @@ type FSM struct {
holdTimer *time.Timer
keepaliveTime time.Duration
keepaliveTimer *time.Timer
keepaliveTimer *time.Ticker
msgRecvCh chan msgRecvMsg
msgRecvFailCh chan msgRecvErr
......@@ -125,7 +125,7 @@ func NewFSM(peer *Peer, c config.Peer, rib *locRIB.LocRIB) *FSM {
holdTimer: time.NewTimer(0),
keepaliveTime: time.Duration(c.KeepAlive),
keepaliveTimer: time.NewTimer(0),
keepaliveTimer: nil,
routerID: c.RouterID,
remote: c.PeerAddress,
......@@ -458,7 +458,10 @@ func (fsm *FSM) openSent() int {
if fsm.holdTime != 0 {
fsm.holdTimer.Reset(time.Second * fsm.holdTime)
fsm.keepaliveTime = fsm.holdTime / 3
fsm.keepaliveTimer.Reset(time.Second * fsm.keepaliveTime)
if fsm.keepaliveTimer != nil {
fsm.keepaliveTimer.Stop()
}
fsm.keepaliveTimer = time.NewTicker(fsm.keepaliveTime)
}
fsm.processOpenOptions(openMsg.OptParams)
......@@ -624,7 +627,6 @@ func (fsm *FSM) openConfirm() int {
fsm.connectRetryCounter++
return fsm.changeState(Idle, fmt.Sprintf("Failed to send keepalive: %v", err))
}
fsm.keepaliveTimer.Reset(time.Second * fsm.keepaliveTime)
continue
case c := <-fsm.conCh:
if fsm.con2 != nil {
......@@ -782,7 +784,6 @@ func (fsm *FSM) established() int {
fsm.connectRetryCounter++
return fsm.changeState(Idle, fmt.Sprintf("Failed to send keepalive: %v", err))
}
fsm.keepaliveTimer.Reset(time.Second * fsm.keepaliveTime)
continue
case c := <-fsm.conCh:
c.Close()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment