diff options
author | Paul Jakma <paul.jakma@sun.com> | 2006-06-15 18:10:47 +0000 |
---|---|---|
committer | Paul Jakma <paul.jakma@sun.com> | 2006-06-15 18:10:47 +0000 |
commit | 74ecdc9e74eb96829e342a03531ba6647ce6bb3c (patch) | |
tree | f40b1ba761f9ad9271c1951510bbd63eeaa57961 /zebra/interface.c | |
parent | 630c97ce0f87a719f678a24bd84945d4f145fdc5 (diff) |
[zebra] Fix forgetfulness wrt configured address on FreeBSD
2006-06-15 Paul Jakma <paul.jakma@sun.com>
* (general) The key fixes are actually Andrew Schorr's.
* interface.c: (ip_address_uninstall) Unset the configured flag.
* connected.c: (connected_same) new helper, check whether
two connected are same.
(connected_implicit_withdraw) new helper, consolidation of
existing code in connected_add_ipv{4,6}.
Try filter out unneeded Zserv address delete/adds when
address is exact same.
Where old address is implicitely removed, be sure to preserve
the IFC_CONFIGURED flag if set, fixes bug where configured
addresses were being lost on FreeBSD.
Diffstat (limited to 'zebra/interface.c')
-rw-r--r-- | zebra/interface.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/zebra/interface.c b/zebra/interface.c index e386047f..69124b3d 100644 --- a/zebra/interface.c +++ b/zebra/interface.c @@ -1273,6 +1273,8 @@ ip_address_uninstall (struct vty *vty, struct interface *ifp, if (! CHECK_FLAG (ifc->conf, ZEBRA_IFC_CONFIGURED)) return CMD_WARNING; + UNSET_FLAG (ifc->conf, ZEBRA_IFC_CONFIGURED); + /* This is not real address or interface is not active. */ if (! CHECK_FLAG (ifc->conf, ZEBRA_IFC_REAL) || ! CHECK_FLAG (ifp->status, ZEBRA_INTERFACE_ACTIVE)) |