From e9b32cb56e78c77e368f751db39f89ae1a5ffcb1 Mon Sep 17 00:00:00 2001 From: Naoto Hanaue Date: Thu, 24 Mar 2016 21:06:13 +0900 Subject: [PATCH] table: initialize the destinations when the destinations is empty In the current implementation, the destinations map management area in the table has not been initialized even if destinations removed all. Therefore, to explicitly initialize the destinations. --- table/table.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/table/table.go b/table/table.go index ecc067b4..5c19c2e4 100644 --- a/table/table.go +++ b/table/table.go @@ -122,6 +122,9 @@ func (t *Table) deleteDestByNlri(nlri bgp.AddrPrefixInterface) *Destination { dest := destinations[t.tableKey(nlri)] if dest != nil { delete(destinations, t.tableKey(nlri)) + if len(destinations) == 0 { + t.destinations = make(map[string]*Destination) + } } return dest } @@ -129,6 +132,9 @@ func (t *Table) deleteDestByNlri(nlri bgp.AddrPrefixInterface) *Destination { func (t *Table) deleteDest(dest *Destination) { destinations := t.GetDestinations() delete(destinations, t.tableKey(dest.GetNlri())) + if len(destinations) == 0 { + t.destinations = make(map[string]*Destination) + } } func (t *Table) validatePath(path *Path) {