summaryrefslogtreecommitdiffstats
path: root/ospf6d/ospf6_interface.c
diff options
context:
space:
mode:
authorChristian Franke <chris@opensourcerouting.org>2012-12-13 13:50:28 +0100
committerDavid Lamparter <equinox@opensourcerouting.org>2013-11-20 10:35:59 +0100
commit37531a7ec380554b18c004bcae9f5a070385d132 (patch)
treefb1893fcf7be8f613a3cd0a82f0150af4a3974f7 /ospf6d/ospf6_interface.c
parent1579a67f130ca34df9acefac14ebcdfdd8f6600a (diff)
downloadquagga-37531a7ec380554b18c004bcae9f5a070385d132.tar.bz2
quagga-37531a7ec380554b18c004bcae9f5a070385d132.tar.xz
ospf6d: clear DR info on interface_down
This fixes an issue where ospf6d would send incorrect hellos and perform wrong DR election when an interface went down and up again. Signed-off-by: Christian Franke <chris@opensourcerouting.org>
Diffstat (limited to 'ospf6d/ospf6_interface.c')
-rw-r--r--ospf6d/ospf6_interface.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/ospf6d/ospf6_interface.c b/ospf6d/ospf6_interface.c
index c692f2c7..86c0bf68 100644
--- a/ospf6d/ospf6_interface.c
+++ b/ospf6d/ospf6_interface.c
@@ -769,6 +769,10 @@ interface_down (struct thread *thread)
list_delete_all_node (oi->neighbor_list);
+ /* When interface state is reset, also reset information about
+ * DR election, as it is no longer valid. */
+ oi->drouter = oi->prev_drouter = htonl(0);
+ oi->bdrouter = oi->prev_bdrouter = htonl(0);
return 0;
}