diff options
Diffstat (limited to 'package/network/services/dnsmasq/patches/0011-Handle-standard-and-contructed-dhcp-ranges-on-the-sa.patch')
-rw-r--r-- | package/network/services/dnsmasq/patches/0011-Handle-standard-and-contructed-dhcp-ranges-on-the-sa.patch | 70 |
1 files changed, 0 insertions, 70 deletions
diff --git a/package/network/services/dnsmasq/patches/0011-Handle-standard-and-contructed-dhcp-ranges-on-the-sa.patch b/package/network/services/dnsmasq/patches/0011-Handle-standard-and-contructed-dhcp-ranges-on-the-sa.patch deleted file mode 100644 index 5ded822..0000000 --- a/package/network/services/dnsmasq/patches/0011-Handle-standard-and-contructed-dhcp-ranges-on-the-sa.patch +++ /dev/null @@ -1,70 +0,0 @@ -From c488b68e75ee5304007eef37203c4fc10193d191 Mon Sep 17 00:00:00 2001 -From: Simon Kelley <simon@thekelleys.org.uk> -Date: Sat, 2 Jun 2018 13:06:00 +0100 -Subject: [PATCH 11/17] Handle standard and contructed dhcp-ranges on the same - interface. - -Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk> ---- - CHANGELOG | 6 ++++++ - src/dhcp6.c | 29 +++++++++++++++++------------ - 2 files changed, 23 insertions(+), 12 deletions(-) - ---- a/CHANGELOG -+++ b/CHANGELOG -@@ -23,6 +23,12 @@ version 2.80 - which packets should be dumped is given by the --dumpmask - option. - -+ Handle the case of both standard and constructed dhcp-ranges on the -+ same interface better. We don't now contruct a dhcp-range if there's -+ already one specified. This allows the specified interface to -+ have different parameters and avoids advertising the same -+ prefix twice. Thanks to Luis Marsano for spotting this case. -+ - - version 2.79 - Fix parsing of CNAME arguments, which are confused by extra spaces. ---- a/src/dhcp6.c -+++ b/src/dhcp6.c -@@ -667,23 +667,28 @@ static int construct_worker(struct in6_a - end6 = *local; - setaddr6part(&end6, addr6part(&template->end6)); - -+ /* If there's an absolute address context covering this address -+ then don't contruct one as well. */ - for (context = daemon->dhcp6; context; context = context->next) -- if ((context->flags & CONTEXT_CONSTRUCTED) && -+ if (!(context->flags & CONTEXT_TEMPLATE) && - IN6_ARE_ADDR_EQUAL(&start6, &context->start6) && - IN6_ARE_ADDR_EQUAL(&end6, &context->end6)) - { -- int flags = context->flags; -- context->flags &= ~(CONTEXT_GC | CONTEXT_OLD); -- if (flags & CONTEXT_OLD) -+ if (context->flags & CONTEXT_CONSTRUCTED) - { -- /* address went, now it's back */ -- log_context(AF_INET6, context); -- /* fast RAs for a while */ -- ra_start_unsolicited(param->now, context); -- param->newone = 1; -- /* Add address to name again */ -- if (context->flags & CONTEXT_RA_NAME) -- param->newname = 1; -+ int cflags = context->flags; -+ context->flags &= ~(CONTEXT_GC | CONTEXT_OLD); -+ if (cflags & CONTEXT_OLD) -+ { -+ /* address went, now it's back */ -+ log_context(AF_INET6, context); -+ /* fast RAs for a while */ -+ ra_start_unsolicited(param->now, context); -+ param->newone = 1; -+ /* Add address to name again */ -+ if (context->flags & CONTEXT_RA_NAME) -+ param->newname = 1; -+ } - } - break; - } |