From 4a4e1222915e3d56071b1ef93ddea10127dd779f Mon Sep 17 00:00:00 2001 From: Derek Collison Date: Mon, 16 Dec 2019 17:47:22 -0600 Subject: [PATCH] Fix to testing for equal stream imports Signed-off-by: Derek Collison --- server/accounts.go | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/server/accounts.go b/server/accounts.go index e51e46e6..6596d34d 100644 --- a/server/accounts.go +++ b/server/accounts.go @@ -1543,12 +1543,13 @@ func (a *Account) checkStreamImportsEqual(b *Account) bool { if len(a.imports.streams) != len(b.imports.streams) { return false } - for subj, aim := range a.imports.streams { - bim := b.imports.streams[subj] - if bim == nil { - return false - } - if aim.acc.Name != bim.acc.Name || aim.from != bim.from || aim.prefix != bim.prefix { + // Load the b imports into a map index by what we are looking for. + bm := make(map[string]*streamImport, len(b.imports.streams)) + for _, bim := range b.imports.streams { + bm[bim.acc.Name+bim.from+bim.prefix] = bim + } + for _, aim := range a.imports.streams { + if _, ok := bm[aim.acc.Name+aim.from+aim.prefix]; !ok { return false } }