summaryrefslogtreecommitdiff
path: root/src/Network/Tox/NodeId.hs
diff options
context:
space:
mode:
authorjoe <joe@jerkface.net>2017-10-14 16:34:24 -0400
committerjoe <joe@jerkface.net>2017-10-14 16:34:24 -0400
commit4b7f8e625d6cab8ae25074fc3339a5403ec5fb36 (patch)
tree9da87ee15ce14f6347e40b8a9491547edc281c9f /src/Network/Tox/NodeId.hs
parentf1a79aef9799176b52efb6197aaf7c2b5a8f14ad (diff)
Partitioned friend-request transport from the onion transport.
Diffstat (limited to 'src/Network/Tox/NodeId.hs')
-rw-r--r--src/Network/Tox/NodeId.hs6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/Network/Tox/NodeId.hs b/src/Network/Tox/NodeId.hs
index bba56e27..20dc1854 100644
--- a/src/Network/Tox/NodeId.hs
+++ b/src/Network/Tox/NodeId.hs
@@ -213,8 +213,10 @@ instance FromJSON NodeInfo where
213 ip <- maybe empty (return . IPv6) (ip6str >>= readMaybe) 213 ip <- maybe empty (return . IPv6) (ip6str >>= readMaybe)
214 <|> maybe empty (return . IPv4) (ip4str >>= readMaybe) 214 <|> maybe empty (return . IPv4) (ip4str >>= readMaybe)
215 let (bs,_) = Base16.decode (C8.pack nidstr) 215 let (bs,_) = Base16.decode (C8.pack nidstr)
216 guard (B.length bs == 32) 216 enid = Base64.decode (C8.pack $ 'A' : map (nmtoken64 False) nidstr)
217 return $ NodeInfo (bs2id bs) ip (fromIntegral (portnum :: Word16)) 217 idbs <- (guard (B.length bs == 32) >> return bs)
218 <|> either fail (return . B.drop 1) enid
219 return $ NodeInfo (bs2id idbs) ip (fromIntegral (portnum :: Word16))
218 220
219getIP :: Word8 -> S.Get IP 221getIP :: Word8 -> S.Get IP
220getIP 0x02 = IPv4 <$> S.get 222getIP 0x02 = IPv4 <$> S.get