diff options
Diffstat (limited to 'package/network/services/dnsmasq/patches/0009-Do-unsolicited-RAs-for-interfaces-which-appear-after.patch')
-rw-r--r-- | package/network/services/dnsmasq/patches/0009-Do-unsolicited-RAs-for-interfaces-which-appear-after.patch | 44 |
1 files changed, 0 insertions, 44 deletions
diff --git a/package/network/services/dnsmasq/patches/0009-Do-unsolicited-RAs-for-interfaces-which-appear-after.patch b/package/network/services/dnsmasq/patches/0009-Do-unsolicited-RAs-for-interfaces-which-appear-after.patch deleted file mode 100644 index ed8a6e6197..0000000000 --- a/package/network/services/dnsmasq/patches/0009-Do-unsolicited-RAs-for-interfaces-which-appear-after.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 0a496f059c1e9d75c33cce4c1211d58422ba4f62 Mon Sep 17 00:00:00 2001 -From: Maarten de Vries <maarten+dnsmasq@m.de-vri.es> -Date: Fri, 11 May 2018 23:20:58 +0100 -Subject: [PATCH 09/17] Do unsolicited RAs for interfaces which appear after - dnsmasq startup. - -I noticed that dnsmasq often wasn't sending any unsolicited RAs for me. - -This turned out to happen when the interface (a bridge interface) wasn't -created yet at the time dnsmasq started. When dnsmasq is started after -the interface is created, it sends RAs as expected. I assume this also -extends to other types of virtual interfaces that are created after -dnsmasq starts. - -Digging into the source, it seems to be caused by a missing call to -ra_start_unsolicited for non-template contexts in construct_worker from -src/dhcp6.c. The attached patch adds that call, but only if the -interface index or address changed to prevent doing fast RAs for no reason. - -I tested it on my own server and it appears to work as expected. When -the interface is created and configured, dnsmasq does fast RAs for a -while and then settles into slow RAs. - -Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk> ---- - src/dhcp6.c | 7 +++++++ - 1 file changed, 7 insertions(+) - ---- a/src/dhcp6.c -+++ b/src/dhcp6.c -@@ -647,6 +647,13 @@ static int construct_worker(struct in6_a - is_same_net6(local, &template->start6, template->prefix) && - is_same_net6(local, &template->end6, template->prefix)) - { -+ /* First time found, do fast RA. */ -+ if (template->if_index != if_index || !IN6_ARE_ADDR_EQUAL(&template->local6, local)) -+ { -+ ra_start_unsolicited(param->now, template); -+ param->newone = 1; -+ } -+ - template->if_index = if_index; - template->local6 = *local; - } |