From 93f767c6dba6b1353bfb852457b57a602402924f Mon Sep 17 00:00:00 2001
From: Oliver Herms <oliver.herms@exaring.de>
Date: Thu, 18 Oct 2018 16:09:27 +0200
Subject: [PATCH] Cleanup

---
 routingtable/adjRIBOut/adj_rib_out.go | 25 ++++++++++++-------------
 1 file changed, 12 insertions(+), 13 deletions(-)

diff --git a/routingtable/adjRIBOut/adj_rib_out.go b/routingtable/adjRIBOut/adj_rib_out.go
index e195ff01..7aa1eb77 100644
--- a/routingtable/adjRIBOut/adj_rib_out.go
+++ b/routingtable/adjRIBOut/adj_rib_out.go
@@ -138,29 +138,28 @@ func (a *AdjRIBOut) RemovePath(pfx bnet.Prefix, p *route.Path) bool {
 		return false
 	}
 
+	q := p
 	if a.addPathTX {
 		for _, q := range r.Paths() {
 			if q.Select(p) == 0 {
 				a.rt.RemovePath(pfx, q)
+
+				// try to find the PathID
+				pathID, err := a.pathIDManager.releasePath(p)
+				if err != nil {
+					log.Warningf("Unable to release path for prefix %s: %v", pfx.String(), err)
+					return true
+				}
+
+				p = p.Copy()
+				p.BGPPath.PathIdentifier = pathID
 			}
 		}
 	} else {
 		a.rt.RemovePath(pfx, p)
 	}
 
-	// If the neighbor has AddPath capabilities, try to find the PathID
-	if a.addPathTX {
-		pathID, err := a.pathIDManager.releasePath(p)
-		if err != nil {
-			log.Warningf("Unable to release path for prefix %s: %v", pfx.String(), err)
-			return true
-		}
-
-		p = p.Copy()
-		p.BGPPath.PathIdentifier = pathID
-	}
-
-	a.removePathFromClients(pfx, p)
+	a.removePathFromClients(pfx, q)
 	return true
 }
 
-- 
GitLab