From ec2ac2b4d7a1783e6deca2f73a57faabb4b25cd7 Mon Sep 17 00:00:00 2001 From: Félix Sipma Date: Wed, 16 Sep 2015 10:00:44 +0200 Subject: Types.Dns: simplify canonicalGroup Signed-off-by: Félix Sipma --- src/Propellor/Types/Dns.hs | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/Propellor/Types/Dns.hs b/src/Propellor/Types/Dns.hs index 4a0dd805..3497b3ed 100644 --- a/src/Propellor/Types/Dns.hs +++ b/src/Propellor/Types/Dns.hs @@ -109,12 +109,11 @@ canonicalIP :: IPAddr -> IPAddr canonicalIP (IPv4 addr) = IPv4 addr canonicalIP (IPv6 addr) = IPv6 $ intercalate ":" $ map canonicalGroup $ split ":" $ replaceImplicitGroups addr where - canonicalGroup g = case length g of - 0 -> "0000" - 1 -> "000" ++ g - 2 -> "00" ++ g - 3 -> "0" ++ g - _ -> g + canonicalGroup g + | l <= 4 = replicate (4 - l) '0' ++ g + | otherwise = error $ "IPv6 group " ++ g ++ "as more than 4 hex digits" + where + l = length g emptyGroups n = iterate (++ ":") "" !! n numberOfImplicitGroups a = 8 - length (split ":" $ replace "::" "" a) replaceImplicitGroups a = concat $ aux $ split "::" a -- cgit v1.2.3