mirror of
https://github.com/pi-hole/dnsmasq.git
synced 2025-12-19 18:28:25 +00:00
Fix RA when interface has more than one address on the same network.
This commit is contained in:
@@ -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
|
||||||
|
|||||||
16
src/radv.c
16
src/radv.c
@@ -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,
|
|||||||
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)
|
||||||
|
|||||||
Reference in New Issue
Block a user