summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--server/server.go6
1 files changed, 4 insertions, 2 deletions
diff --git a/server/server.go b/server/server.go
index a2662a4d..0bee727e 100644
--- a/server/server.go
+++ b/server/server.go
@@ -267,7 +267,9 @@ func filterpath(peer *Peer, path *table.Path) *table.Path {
for _, ext := range path.GetExtCommunities() {
for _, path := range peer.adjRibIn.PathList([]bgp.RouteFamily{bgp.RF_RTC_UC}, true) {
rt := path.GetNlri().(*bgp.RouteTargetMembershipNLRI).RouteTarget
- if ext.String() == rt.String() {
+ if rt == nil {
+ ignore = false
+ } else if ext.String() == rt.String() {
ignore = false
break
}
@@ -485,7 +487,7 @@ func (server *BgpServer) propagateUpdate(peer *Peer, pathList []*table.Path) []*
paths := make([]*table.Path, 0, len(candidates))
for _, p := range candidates {
for _, ext := range p.GetExtCommunities() {
- if ext.String() == rt.String() {
+ if rt == nil || ext.String() == rt.String() {
if path.IsWithdraw {
p = p.Clone(true)
}