From b9ec2de787beb068c6a8cebb807e4dd80b62bd14 Mon Sep 17 00:00:00 2001
From: Oliver Herms <oliver.herms@exaring.de>
Date: Wed, 20 Jun 2018 15:07:47 +0200
Subject: [PATCH] Adding unregistration of filters

---
 protocols/bgp/server/fsm_established.go | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/protocols/bgp/server/fsm_established.go b/protocols/bgp/server/fsm_established.go
index e54e6453..f1195dad 100644
--- a/protocols/bgp/server/fsm_established.go
+++ b/protocols/bgp/server/fsm_established.go
@@ -80,9 +80,16 @@ func (s *establishedState) init() {
 }
 
 func (s *establishedState) uninit() {
-	s.fsm.adjRIBOut.Unregister(s.fsm.updateSender)
-	s.fsm.rib.Unregister(s.fsm.adjRIBOut)
-	s.fsm.adjRIBIn.Unregister(s.fsm.rib)
+	s.fsm.adjRIBIn.Unregister(s.fsm.peer.importFilter)
+	s.fsm.peer.importFilter.Unregister(s.fsm.rib)
+
+	s.fsm.rib.Unregister(s.fsm.peer.exportFilter)
+	s.fsm.peer.exportFilter.Unregister(s.fsm.adjRIBOut)
+	s.fsm.updateSender.Unregister(s.fsm.adjRIBOut)
+
+	s.fsm.adjRIBIn = nil
+	s.fsm.adjRIBOut = nil
+
 	s.fsm.ribsInitialized = false
 }
 
-- 
GitLab