diff options
Diffstat (limited to 'package/network/services/dnsmasq/patches/0029-Fix-removal-of-DHCP_CLIENT_MAC-options-from-DHCPv6-r.patch')
-rw-r--r-- | package/network/services/dnsmasq/patches/0029-Fix-removal-of-DHCP_CLIENT_MAC-options-from-DHCPv6-r.patch | 52 |
1 files changed, 0 insertions, 52 deletions
diff --git a/package/network/services/dnsmasq/patches/0029-Fix-removal-of-DHCP_CLIENT_MAC-options-from-DHCPv6-r.patch b/package/network/services/dnsmasq/patches/0029-Fix-removal-of-DHCP_CLIENT_MAC-options-from-DHCPv6-r.patch deleted file mode 100644 index e02bd11d23..0000000000 --- a/package/network/services/dnsmasq/patches/0029-Fix-removal-of-DHCP_CLIENT_MAC-options-from-DHCPv6-r.patch +++ /dev/null @@ -1,52 +0,0 @@ -From f8c77edbdffb8ada7753ea9fa104f0f6da70cfe3 Mon Sep 17 00:00:00 2001 -From: Simon Kelley <simon@thekelleys.org.uk> -Date: Thu, 10 Jan 2019 21:58:18 +0000 -Subject: [PATCH 29/32] Fix removal of DHCP_CLIENT_MAC options from DHCPv6 - relay replies. - -Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk> ---- - src/rfc3315.c | 30 +++++++++++++++++------------- - 1 file changed, 17 insertions(+), 13 deletions(-) - ---- a/src/rfc3315.c -+++ b/src/rfc3315.c -@@ -219,21 +219,25 @@ static int dhcp6_maybe_relay(struct stat - if (opt6_ptr(opt, 0) + opt6_len(opt) > end) - return 0; - -- int o = new_opt6(opt6_type(opt)); -- if (opt6_type(opt) == OPTION6_RELAY_MSG) -+ /* Don't copy MAC address into reply. */ -+ if (opt6_type(opt) != OPTION6_CLIENT_MAC) - { -- struct in6_addr align; -- /* the packet data is unaligned, copy to aligned storage */ -- memcpy(&align, inbuff + 2, IN6ADDRSZ); -- state->link_address = &align; -- /* zero is_unicast since that is now known to refer to the -- relayed packet, not the original sent by the client */ -- if (!dhcp6_maybe_relay(state, opt6_ptr(opt, 0), opt6_len(opt), client_addr, 0, now)) -- return 0; -+ int o = new_opt6(opt6_type(opt)); -+ if (opt6_type(opt) == OPTION6_RELAY_MSG) -+ { -+ struct in6_addr align; -+ /* the packet data is unaligned, copy to aligned storage */ -+ memcpy(&align, inbuff + 2, IN6ADDRSZ); -+ state->link_address = &align; -+ /* zero is_unicast since that is now known to refer to the -+ relayed packet, not the original sent by the client */ -+ if (!dhcp6_maybe_relay(state, opt6_ptr(opt, 0), opt6_len(opt), client_addr, 0, now)) -+ return 0; -+ } -+ else -+ put_opt6(opt6_ptr(opt, 0), opt6_len(opt)); -+ end_opt6(o); - } -- else if (opt6_type(opt) != OPTION6_CLIENT_MAC) -- put_opt6(opt6_ptr(opt, 0), opt6_len(opt)); -- end_opt6(o); - } - - return 1; |