mirror of
https://github.com/netbirdio/netbird.git
synced 2024-11-21 23:53:14 +01:00
[client] Remove legacy forwarding rules in userspace mode (#2782)
This commit is contained in:
parent
46e37fa04c
commit
940f8b4547
@ -296,6 +296,8 @@ func (r *router) RemoveAllLegacyRouteRules() error {
|
|||||||
}
|
}
|
||||||
if err := r.iptablesClient.DeleteIfExists(tableFilter, chainRTFWD, rule...); err != nil {
|
if err := r.iptablesClient.DeleteIfExists(tableFilter, chainRTFWD, rule...); err != nil {
|
||||||
merr = multierror.Append(merr, fmt.Errorf("remove legacy forwarding rule: %v", err))
|
merr = multierror.Append(merr, fmt.Errorf("remove legacy forwarding rule: %v", err))
|
||||||
|
} else {
|
||||||
|
delete(r.rules, k)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -230,23 +230,7 @@ func (m *Manager) AllowNetbird() error {
|
|||||||
|
|
||||||
// SetLegacyManagement sets the route manager to use legacy management
|
// SetLegacyManagement sets the route manager to use legacy management
|
||||||
func (m *Manager) SetLegacyManagement(isLegacy bool) error {
|
func (m *Manager) SetLegacyManagement(isLegacy bool) error {
|
||||||
oldLegacy := m.router.legacyManagement
|
return firewall.SetLegacyManagement(m.router, isLegacy)
|
||||||
|
|
||||||
if oldLegacy != isLegacy {
|
|
||||||
m.router.legacyManagement = isLegacy
|
|
||||||
log.Debugf("Set legacy management to %v", isLegacy)
|
|
||||||
}
|
|
||||||
|
|
||||||
// client reconnected to a newer mgmt, we need to cleanup the legacy rules
|
|
||||||
if !isLegacy && oldLegacy {
|
|
||||||
if err := m.router.RemoveAllLegacyRouteRules(); err != nil {
|
|
||||||
return fmt.Errorf("remove legacy routing rules: %v", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
log.Debugf("Legacy routing rules removed")
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Reset firewall to the default state
|
// Reset firewall to the default state
|
||||||
|
@ -551,7 +551,10 @@ func (r *router) RemoveAllLegacyRouteRules() error {
|
|||||||
}
|
}
|
||||||
if err := r.conn.DelRule(rule); err != nil {
|
if err := r.conn.DelRule(rule); err != nil {
|
||||||
merr = multierror.Append(merr, fmt.Errorf("remove legacy forwarding rule: %v", err))
|
merr = multierror.Append(merr, fmt.Errorf("remove legacy forwarding rule: %v", err))
|
||||||
|
} else {
|
||||||
|
delete(r.rules, k)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
return nberrors.FormatErrorOrNil(merr)
|
return nberrors.FormatErrorOrNil(merr)
|
||||||
}
|
}
|
||||||
|
@ -237,8 +237,11 @@ func (m *Manager) DeletePeerRule(rule firewall.Rule) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// SetLegacyManagement doesn't need to be implemented for this manager
|
// SetLegacyManagement doesn't need to be implemented for this manager
|
||||||
func (m *Manager) SetLegacyManagement(_ bool) error {
|
func (m *Manager) SetLegacyManagement(isLegacy bool) error {
|
||||||
return nil
|
if m.nativeFirewall == nil {
|
||||||
|
return errRouteNotSupported
|
||||||
|
}
|
||||||
|
return m.nativeFirewall.SetLegacyManagement(isLegacy)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Flush doesn't need to be implemented for this manager
|
// Flush doesn't need to be implemented for this manager
|
||||||
|
Loading…
Reference in New Issue
Block a user