Commit 5ae34bf3 authored by Simon Kelley's avatar Simon Kelley

Fix RA when interface has more than one address on the same network.

parent 51931b88
...@@ -18,6 +18,10 @@ version 2.62 ...@@ -18,6 +18,10 @@ version 2.62
Add --dns-rr, to allow arbitrary DNS resource records. Add --dns-rr, to allow arbitrary DNS resource records.
Fixed bug which broke RA scheduling when an interface had
two addresses in the same network. Thanks to Jim Bos for
his help nailing this.
version 2.61 version 2.61
Re-write interface discovery code on *BSD to use Re-write interface discovery code on *BSD to use
......
...@@ -380,13 +380,6 @@ static int add_prefixes(struct in6_addr *local, int prefix, ...@@ -380,13 +380,6 @@ static int add_prefixes(struct in6_addr *local, int prefix,
if (context->flags & CONTEXT_DEPRECATE) if (context->flags & CONTEXT_DEPRECATE)
deprecate = 1; deprecate = 1;
/* subsequent prefixes on the same interface
and subsequent instances of this prefix don't need timers */
if (!param->first)
context->ra_time = 0;
param->first = 0;
param->found_context = 1;
/* collect dhcp-range tags */ /* collect dhcp-range tags */
if (context->netid.next == &context->netid && context->netid.net) if (context->netid.next == &context->netid && context->netid.net)
{ {
...@@ -394,11 +387,20 @@ static int add_prefixes(struct in6_addr *local, int prefix, ...@@ -394,11 +387,20 @@ static int add_prefixes(struct in6_addr *local, int prefix,
param->tags = &context->netid; param->tags = &context->netid;
} }
/* subsequent prefixes on the same interface
and subsequent instances of this prefix don't need timers.
Be careful not to find the same prefix twice with different
addresses. */
if (!(context->flags & CONTEXT_RA_DONE)) if (!(context->flags & CONTEXT_RA_DONE))
{ {
if (!param->first)
context->ra_time = 0;
context->flags |= CONTEXT_RA_DONE; context->flags |= CONTEXT_RA_DONE;
do_prefix = 1; do_prefix = 1;
} }
param->first = 0;
param->found_context = 1;
} }
if (do_prefix) if (do_prefix)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment