diff options
author | Christian Franke <chris@opensourcerouting.org> | 2012-12-13 13:50:28 +0100 |
---|---|---|
committer | David Lamparter <equinox@opensourcerouting.org> | 2013-11-20 10:35:59 +0100 |
commit | 37531a7ec380554b18c004bcae9f5a070385d132 (patch) | |
tree | fb1893fcf7be8f613a3cd0a82f0150af4a3974f7 /ospf6d/ospf6_interface.c | |
parent | 1579a67f130ca34df9acefac14ebcdfdd8f6600a (diff) | |
download | quagga-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.c | 4 |
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; } |