From 6eb020b921bad6b4c7fefc35d20ca7ac50012d38 Mon Sep 17 00:00:00 2001 From: joe Date: Thu, 27 Jul 2017 22:09:12 -0400 Subject: Read instance for IPv6 NodeInfo. --- Mainline.hs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'Mainline.hs') diff --git a/Mainline.hs b/Mainline.hs index ac870a43..5996b214 100644 --- a/Mainline.hs +++ b/Mainline.hs @@ -156,11 +156,12 @@ instance Read NodeInfo where return (nid,addrstr) (nid,addrstr) <- ( nodeidAt RP.+++ ( (zeroID,) <$> parseAddr) ) let raddr = do - -- TODO: Support IPv6 - ipv4 <- RP.readS_to_P (readsPrec i) + ip <- RP.between (RP.char '[') (RP.char ']') + (IPv6 <$> RP.readS_to_P (readsPrec i)) + RP.+++ (IPv4 <$> RP.readS_to_P (readsPrec i)) _ <- RP.char ':' port <- toEnum <$> RP.readS_to_P (readsPrec i) - return (IPv4 ipv4, port) + return (ip, port) (ip,port) <- case RP.readP_to_S raddr addrstr of [] -> fail "Bad address." -- cgit v1.2.3