+2006-05-19 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
+
+ * connected.c: (connected_add_ipv4,connected_add_ipv6) If the
+ new struct connected matches an already existing one
+ (that will consequently be removed by connected_withdraw),
+ then be sure to preserve the ZEBRA_IFC_CONFIGURED flag.
+
2006-05-17 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
* kernel_socket.c: (ifam_read_mesg) Improve debug message
/* Check same connected route. */
if ((current = connected_check (ifp, (struct prefix *) ifc->address)))
- connected_withdraw (current); /* implicit withdraw - freebsd does this */
+ {
+ if (CHECK_FLAG(current->conf, ZEBRA_IFC_CONFIGURED))
+ SET_FLAG(ifc->conf, ZEBRA_IFC_CONFIGURED);
+ connected_withdraw (current); /* implicit withdraw - freebsd does this */
+ }
connected_announce (ifp, ifc);
}
ifc->label = XSTRDUP (MTYPE_CONNECTED_LABEL, label);
if ((current = connected_check (ifp, (struct prefix *) ifc->address)))
- connected_withdraw (current); /* implicit update of existing address */
+ {
+ if (CHECK_FLAG(current->conf, ZEBRA_IFC_CONFIGURED))
+ SET_FLAG(ifc->conf, ZEBRA_IFC_CONFIGURED);
+ connected_withdraw (current); /* implicit update of existing address */
+ }
connected_announce (ifp, ifc);
}