summaryrefslogtreecommitdiffstats
path: root/ospf6d/ospf6_zebra.c
diff options
context:
space:
mode:
authorChristian Franke <chris@opensourcerouting.org>2012-12-13 16:11:16 +0100
committerDavid Lamparter <equinox@opensourcerouting.org>2014-03-18 08:45:20 +0100
commitb13c1d9299d6426f48f074545f3e403e5a9b8a61 (patch)
treeb313288f60c8d76a16e4f9f1796e934c0c8fefc0 /ospf6d/ospf6_zebra.c
parentd9628728e0924ae13ef6e8f8a67a2c9802745184 (diff)
downloadquagga-b13c1d9299d6426f48f074545f3e403e5a9b8a61.tar.bz2
quagga-b13c1d9299d6426f48f074545f3e403e5a9b8a61.tar.xz
ospf6d: handle missing link local address more gracefully
ospf6 can't run on an interface without a link local address. Don't start the state machine when an interface comes up without such an ip and bring it up later, when a usable link local address is added. Signed-off-by: Christian Franke <chris@opensourcerouting.org> Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
Diffstat (limited to 'ospf6d/ospf6_zebra.c')
-rw-r--r--ospf6d/ospf6_zebra.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/ospf6d/ospf6_zebra.c b/ospf6d/ospf6_zebra.c
index 50ecc170..cffd7675 100644
--- a/ospf6d/ospf6_zebra.c
+++ b/ospf6d/ospf6_zebra.c
@@ -165,8 +165,10 @@ ospf6_zebra_if_address_update_add (int command, struct zclient *zclient,
buf, sizeof (buf)), c->address->prefixlen);
if (c->address->family == AF_INET6)
- ospf6_interface_connected_route_update (c->ifp);
-
+ {
+ ospf6_interface_state_update (c->ifp);
+ ospf6_interface_connected_route_update (c->ifp);
+ }
return 0;
}
@@ -188,7 +190,10 @@ ospf6_zebra_if_address_update_delete (int command, struct zclient *zclient,
buf, sizeof (buf)), c->address->prefixlen);
if (c->address->family == AF_INET6)
- ospf6_interface_connected_route_update (c->ifp);
+ {
+ ospf6_interface_connected_route_update (c->ifp);
+ ospf6_interface_state_update (c->ifp);
+ }
return 0;
}