diff options
| author | Kevin Darbyshire-Bryant | 2023-12-30 11:32:55 +0000 |
|---|---|---|
| committer | Kevin Darbyshire-Bryant | 2025-12-05 20:48:05 +0000 |
| commit | fd4714bb2dfec0fadf5b49f21487f37f4613dc0f (patch) | |
| tree | 7015e1892f2c47c5c8bf9d1712814607b6fd2806 | |
| parent | 81ea5bfef775b8e2d4aae9826e84a040288864df (diff) | |
do not delegate ULA prefixes
| -rw-r--r-- | src/dhcpv6-ia.c | 6 |
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; |