Skip to content
Snippets Groups Projects
Unverified Commit 340700fb authored by Christoph Petrausch's avatar Christoph Petrausch Committed by GitHub
Browse files

Merge pull request #239 from bio-routing/fix/bmpreconnect

Fix BMP reconnect
parents effb3887 979b20e1
No related branches found
No related tags found
No related merge requests found
......@@ -29,6 +29,7 @@ type Router struct {
reconnectTimeMin int
reconnectTimeMax int
reconnectTime int
dialTimeout time.Duration
reconnectTimer *time.Timer
vrfRegistry *vrf.VRFRegistry
neighborManager *neighborManager
......@@ -69,6 +70,7 @@ func newRouter(addr net.IP, port uint16) *Router {
reconnectTimeMin: 30, // Suggested by RFC 7854
reconnectTimeMax: 720, // Suggested by RFC 7854
reconnectTimer: time.NewTimer(time.Duration(0)),
dialTimeout: time.Second * 5,
vrfRegistry: vrf.NewVRFRegistry(),
neighborManager: newNeighborManager(),
logger: log.New(),
......
......@@ -56,7 +56,7 @@ func (b *BMPServer) AddRouter(addr net.IP, port uint16) {
go func(r *Router) {
for {
<-r.reconnectTimer.C
c, err := net.Dial("tcp", fmt.Sprintf("%s:%d", r.address.String(), r.port))
c, err := net.DialTimeout("tcp", fmt.Sprintf("%s:%d", r.address.String(), r.port), r.dialTimeout)
if err != nil {
log.Infof("Unable to connect to BMP router: %v", err)
if r.reconnectTime == 0 {
......@@ -68,7 +68,8 @@ func (b *BMPServer) AddRouter(addr net.IP, port uint16) {
continue
}
r.reconnectTime = 0
r.reconnectTime = r.reconnectTimeMin
r.reconnectTimer = time.NewTimer(time.Second * time.Duration(r.reconnectTime))
log.Infof("Connected to %s", r.address.String())
r.serve(c)
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment