diff options
author | Ondrej Zajicek (work) <santiago@crfreenet.org> | 2021-12-18 00:58:47 +0100 |
---|---|---|
committer | Ondrej Zajicek (work) <santiago@crfreenet.org> | 2021-12-18 01:09:52 +0100 |
commit | b21104c97e59128973501fc23570e2d929f48923 (patch) | |
tree | 149b63dfbe3483c9ee65553d05ebf5c75938f2c4 /nest | |
parent | f772afc525156498900770ffe5a98349df89a45c (diff) |
Nest: Do not ignore secondary flag changes in ifa updates
Compare all IA_* flags that are set by sysdep iface code.
The old code ignores IA_SECONDARY flag when comparing whether iface
address updates from kernel changed anything. This is usually not an
issue as kernel removes all secondary addresses due to removal of the
primary one, but it breaks when sysctl 'promote_secondaries' is enabled
and kernel promotes secondary addresses to primary ones.
Thanks to 'Alexander' for the bugreport.
Diffstat (limited to 'nest')
-rw-r--r-- | nest/iface.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/nest/iface.c b/nest/iface.c index 83a633a3..682340c5 100644 --- a/nest/iface.c +++ b/nest/iface.c @@ -591,7 +591,7 @@ ifa_update(struct ifa *a) if (ipa_equal(b->brd, a->brd) && ipa_equal(b->opposite, a->opposite) && b->scope == a->scope && - !((b->flags ^ a->flags) & IA_PEER)) + !((b->flags ^ a->flags) & (IA_SECONDARY | IA_PEER | IA_HOST))) { b->flags |= IA_UPDATED; return b; |