summaryrefslogtreecommitdiffstats
path: root/proto/ospf/rt.c
diff options
context:
space:
mode:
authorOndrej Zajicek <santiago@crfreenet.org>2009-12-14 21:17:15 +0100
committerOndrej Zajicek <santiago@crfreenet.org>2009-12-14 21:17:15 +0100
commitf75747073e45c3129568c4936c2f34fa618db41e (patch)
tree7fcb456e58722fbd2e2fccac67832bd22363a373 /proto/ospf/rt.c
parent63542845dfb6d2277f93f77ad9ca3ad8bbaddd09 (diff)
downloadbird-f75747073e45c3129568c4936c2f34fa618db41e.tar
bird-f75747073e45c3129568c4936c2f34fa618db41e.zip
Implements route reload for OSPF.
Diffstat (limited to 'proto/ospf/rt.c')
-rw-r--r--proto/ospf/rt.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/proto/ospf/rt.c b/proto/ospf/rt.c
index ae815b3..2928326 100644
--- a/proto/ospf/rt.c
+++ b/proto/ospf/rt.c
@@ -1133,6 +1133,9 @@ rt_sync(struct proto_ospf *po)
struct area_net *anet;
int flush;
+ /* This is used for forced reload of routes */
+ int reload = (po->calcrt == 2);
+
OSPF_TRACE(D_EVENTS, "Starting routing table synchronisation");
DBG("Now syncing my rt table with nest's\n");
@@ -1142,7 +1145,7 @@ again1:
{
nf = (ort *) nftmp;
check_sum_lsa(po, nf, ORT_NET);
- if (memcmp(&nf->n, &nf->o, sizeof(orta)))
+ if (reload || memcmp(&nf->n, &nf->o, sizeof(orta)))
{ /* Some difference */
net *ne;
rta a0;