diff options
-rw-r--r-- | internal/pkg/table/policy.go | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/internal/pkg/table/policy.go b/internal/pkg/table/policy.go index 3ced3b96..3395863d 100644 --- a/internal/pkg/table/policy.go +++ b/internal/pkg/table/policy.go @@ -3109,9 +3109,6 @@ type RoutingPolicy struct { } func (r *RoutingPolicy) ApplyPolicy(id string, dir PolicyDirection, before *Path, options *PolicyOptions) *Path { - r.mu.RLock() - defer r.mu.RUnlock() - if before == nil { return nil } @@ -3121,6 +3118,10 @@ func (r *RoutingPolicy) ApplyPolicy(id string, dir PolicyDirection, before *Path } result := ROUTE_TYPE_NONE after := before + + r.mu.RLock() + defer r.mu.RUnlock() + for _, p := range r.getPolicy(id, dir) { result, after = p.Apply(after, options) if result != ROUTE_TYPE_NONE { |