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 { ...@@ -84,7 +84,7 @@ type FSM struct {
holdTimer *time.Timer holdTimer *time.Timer
keepaliveTime time.Duration keepaliveTime time.Duration
keepaliveTimer *time.Timer keepaliveTimer *time.Ticker
msgRecvCh chan msgRecvMsg msgRecvCh chan msgRecvMsg
msgRecvFailCh chan msgRecvErr msgRecvFailCh chan msgRecvErr
...@@ -125,7 +125,7 @@ func NewFSM(peer *Peer, c config.Peer, rib *locRIB.LocRIB) *FSM { ...@@ -125,7 +125,7 @@ func NewFSM(peer *Peer, c config.Peer, rib *locRIB.LocRIB) *FSM {
holdTimer: time.NewTimer(0), holdTimer: time.NewTimer(0),
keepaliveTime: time.Duration(c.KeepAlive), keepaliveTime: time.Duration(c.KeepAlive),
keepaliveTimer: time.NewTimer(0), keepaliveTimer: nil,
routerID: c.RouterID, routerID: c.RouterID,
remote: c.PeerAddress, remote: c.PeerAddress,
...@@ -458,7 +458,10 @@ func (fsm *FSM) openSent() int { ...@@ -458,7 +458,10 @@ func (fsm *FSM) openSent() int {
if fsm.holdTime != 0 { if fsm.holdTime != 0 {
fsm.holdTimer.Reset(time.Second * fsm.holdTime) fsm.holdTimer.Reset(time.Second * fsm.holdTime)
fsm.keepaliveTime = fsm.holdTime / 3 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) fsm.processOpenOptions(openMsg.OptParams)
...@@ -624,7 +627,6 @@ func (fsm *FSM) openConfirm() int { ...@@ -624,7 +627,6 @@ func (fsm *FSM) openConfirm() int {
fsm.connectRetryCounter++ fsm.connectRetryCounter++
return fsm.changeState(Idle, fmt.Sprintf("Failed to send keepalive: %v", err)) return fsm.changeState(Idle, fmt.Sprintf("Failed to send keepalive: %v", err))
} }
fsm.keepaliveTimer.Reset(time.Second * fsm.keepaliveTime)
continue continue
case c := <-fsm.conCh: case c := <-fsm.conCh:
if fsm.con2 != nil { if fsm.con2 != nil {
...@@ -782,7 +784,6 @@ func (fsm *FSM) established() int { ...@@ -782,7 +784,6 @@ func (fsm *FSM) established() int {
fsm.connectRetryCounter++ fsm.connectRetryCounter++
return fsm.changeState(Idle, fmt.Sprintf("Failed to send keepalive: %v", err)) return fsm.changeState(Idle, fmt.Sprintf("Failed to send keepalive: %v", err))
} }
fsm.keepaliveTimer.Reset(time.Second * fsm.keepaliveTime)
continue continue
case c := <-fsm.conCh: case c := <-fsm.conCh:
c.Close() 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