summaryrefslogtreecommitdiffhomepage
path: root/server/server.go
diff options
context:
space:
mode:
Diffstat (limited to 'server/server.go')
-rw-r--r--server/server.go9
1 files changed, 8 insertions, 1 deletions
diff --git a/server/server.go b/server/server.go
index 9761fc28..97f9228c 100644
--- a/server/server.go
+++ b/server/server.go
@@ -683,12 +683,19 @@ func (server *BgpServer) propagateUpdate(peer *Peer, pathList []*table.Path) ([]
for _, p := range candidates {
for _, ext := range p.GetExtCommunities() {
if ext.String() == rt.String() {
+ if path.IsWithdraw {
+ p = p.Clone(true)
+ }
paths = append(paths, p)
break
}
}
}
- paths = peer.processOutgoingPaths(paths, nil)
+ if path.IsWithdraw {
+ paths = peer.processOutgoingPaths(nil, paths)
+ } else {
+ paths = peer.processOutgoingPaths(paths, nil)
+ }
msgs = append(msgs, newSenderMsg(peer, paths, nil, false))
}
}