Skip to content

Commit e806d9d

Browse files
authored
[client] Fix legacy routes when connecting to management servers older than v0.30.0 (#3854)
1 parent daa8380 commit e806d9d

File tree

2 files changed

+8
-6
lines changed

2 files changed

+8
-6
lines changed

client/internal/acl/manager.go

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -76,12 +76,6 @@ func (d *DefaultManager) ApplyFiltering(networkMap *mgmProto.NetworkMap, dnsRout
7676

7777
d.applyPeerACLs(networkMap)
7878

79-
// If we got empty rules list but management did not set the networkMap.FirewallRulesIsEmpty flag,
80-
// then the mgmt server is older than the client, and we need to allow all traffic for routes
81-
isLegacy := len(networkMap.RoutesFirewallRules) == 0 && !networkMap.RoutesFirewallRulesIsEmpty
82-
if err := d.firewall.SetLegacyManagement(isLegacy); err != nil {
83-
log.Errorf("failed to set legacy management flag: %v", err)
84-
}
8579

8680
if err := d.applyRouteACLs(networkMap.RoutesFirewallRules, dnsRouteFeatureFlag); err != nil {
8781
log.Errorf("Failed to apply route ACLs: %v", err)

client/internal/engine.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -978,6 +978,14 @@ func (e *Engine) updateNetworkMap(networkMap *mgmProto.NetworkMap) error {
978978
log.Errorf("failed to update local IPs: %v", err)
979979
}
980980
}
981+
982+
// If we got empty rules list but management did not set the networkMap.FirewallRulesIsEmpty flag,
983+
// then the mgmt server is older than the client, and we need to allow all traffic for routes.
984+
// This needs to be toggled before applying routes.
985+
isLegacy := len(networkMap.RoutesFirewallRules) == 0 && !networkMap.RoutesFirewallRulesIsEmpty
986+
if err := e.firewall.SetLegacyManagement(isLegacy); err != nil {
987+
log.Errorf("failed to set legacy management flag: %v", err)
988+
}
981989
}
982990

983991
dnsRouteFeatureFlag := toDNSFeatureFlag(networkMap)

0 commit comments

Comments
 (0)