From f08419abdf8840f09dbaff0078dfb60a87cb6a14 Mon Sep 17 00:00:00 2001
From: Maximilian Wilhelm <max@sdn.clinic>
Date: Wed, 4 Jul 2018 16:57:31 +0200
Subject: [PATCH] Fix counting bug in RoutingTable when removing paths or
 prefixes.

Signed-off-by: Maximilian Wilhelm <max@sdn.clinic>
---
 routingtable/table.go | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/routingtable/table.go b/routingtable/table.go
index 16317e6f..5fcb911c 100644
--- a/routingtable/table.go
+++ b/routingtable/table.go
@@ -71,13 +71,13 @@ func (rt *RoutingTable) RemovePath(pfx net.Prefix, p *route.Path) {
 	rt.mu.Lock()
 	defer rt.mu.Unlock()
 
-	if rt.removePath(pfx, p) {
-		atomic.AddInt64(&rt.routeCount, -1)
-	}
+	rt.removePath(pfx, p)
 }
 
-func (rt *RoutingTable) removePath(pfx net.Prefix, p *route.Path) bool {
-	return rt.root.removePath(pfx, p)
+func (rt *RoutingTable) removePath(pfx net.Prefix, p *route.Path) {
+	if rt.root.removePath(pfx, p) {
+		atomic.AddInt64(&rt.routeCount, -1)
+	}
 }
 
 func (rt *RoutingTable) removePaths(pfx net.Prefix, paths []*route.Path) {
-- 
GitLab