summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Darbyshire-Bryant2023-12-30 11:32:55 +0000
committerKevin Darbyshire-Bryant2025-12-05 20:48:05 +0000
commitfd4714bb2dfec0fadf5b49f21487f37f4613dc0f (patch)
tree7015e1892f2c47c5c8bf9d1712814607b6fd2806
parent81ea5bfef775b8e2d4aae9826e84a040288864df (diff)
do not delegate ULA prefixes
-rw-r--r--src/dhcpv6-ia.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/dhcpv6-ia.c b/src/dhcpv6-ia.c
index edd7823..8011a27 100644
--- a/src/dhcpv6-ia.c
+++ b/src/dhcpv6-ia.c
@@ -674,6 +674,12 @@ static size_t build_ia(uint8_t *buf, size_t buflen, uint16_t status,
o_ia_p.addr.s6_addr32[1] |= htonl(a->assigned_subnet_id);
o_ia_p.addr.s6_addr32[2] = o_ia_p.addr.s6_addr32[3] = 0;
+ /* Awful hack: Do NOT delegate local ULA prefixes.
+ They confuse my Sky VOIP box. Should be able to do this
+ on a per interface or even per client basis. */
+ if (o_ia_p.addr.s6_addr[0] == 0xFD)
+ continue;
+
if (!valid_prefix_length(a, addrs[i].prefix_len))
continue;