From: Arran Cudbard-Bell Date: Thu, 7 Dec 2023 15:11:17 +0000 (-0600) Subject: It's fine/useful to be able to cast to combo ip addr/prefix attributes and back again X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8bd88b43be182e9fb6f9fc5b8fb39cade1d1724a;p=thirdparty%2Ffreeradius-server.git It's fine/useful to be able to cast to combo ip addr/prefix attributes and back again We usually don't care what address family an IP is unless we're putting it on the wire. --- diff --git a/src/lib/util/types.c b/src/lib/util/types.c index 77be3744efd..a8f8fd4113d 100644 --- a/src/lib/util/types.c +++ b/src/lib/util/types.c @@ -196,18 +196,40 @@ static const bool type_cast_table[FR_TYPE_MAX][FR_TYPE_MAX] = { O(IPV4_PREFIX), O(IPV6_ADDR), O(IPV6_PREFIX), - O(UINT32), /* ipv4 addresses are uint32 */ + O(COMBO_IP_ADDR), + O(COMBO_IP_PREFIX), + O(UINT32), /* ipv4 addresses are uint32 */ }, [FR_TYPE_IPV4_PREFIX] = { - O(IPV4_ADDR), /* if the prefix is /32 */ + O(IPV4_ADDR), /* if the prefix is /32 */ O(IPV6_ADDR), O(IPV6_PREFIX), + O(COMBO_IP_ADDR), + O(COMBO_IP_PREFIX) }, [FR_TYPE_IPV6_ADDR] = { O(IPV6_PREFIX), + O(COMBO_IP_ADDR), + O(COMBO_IP_PREFIX) }, [FR_TYPE_IPV6_PREFIX] = { - O(IPV6_ADDR), /* if the prefix is /128 */ + O(IPV6_ADDR), /* if the prefix is /128 */ + O(COMBO_IP_ADDR), + O(COMBO_IP_PREFIX) + }, + [FR_TYPE_COMBO_IP_ADDR] = { + O(IPV4_ADDR), + O(IPV4_PREFIX), + O(IPV6_ADDR), + O(IPV6_PREFIX), + O(COMBO_IP_PREFIX) + }, + [FR_TYPE_COMBO_IP_PREFIX] = { + O(IPV4_ADDR), + O(IPV4_PREFIX), + O(IPV6_ADDR), + O(IPV6_PREFIX), + O(COMBO_IP_ADDR) /* if the prefix is /128 or /32 */ }, [FR_TYPE_ETHERNET] = {