summaryrefslogtreecommitdiff
path: root/dht/src/Network/Tox/TCP.hs
diff options
context:
space:
mode:
Diffstat (limited to 'dht/src/Network/Tox/TCP.hs')
-rw-r--r--dht/src/Network/Tox/TCP.hs8
1 files changed, 5 insertions, 3 deletions
diff --git a/dht/src/Network/Tox/TCP.hs b/dht/src/Network/Tox/TCP.hs
index 385da35b..932b4ab3 100644
--- a/dht/src/Network/Tox/TCP.hs
+++ b/dht/src/Network/Tox/TCP.hs
@@ -221,12 +221,14 @@ getTCPNodes tcp seeking dst = do
221-} 221-}
222 222
223getUDPNodes :: TCPClient err Nonce8 -> NodeId -> UDP.NodeInfo -> IO (Maybe ([UDP.NodeInfo], [UDP.NodeInfo], Maybe ())) 223getUDPNodes :: TCPClient err Nonce8 -> NodeId -> UDP.NodeInfo -> IO (Maybe ([UDP.NodeInfo], [UDP.NodeInfo], Maybe ()))
224getUDPNodes tcp seeking dst = fmap fst <$> getUDPNodes' tcp seeking dst 224getUDPNodes tcp seeking dst = fmap fst . resultToMaybe <$> getUDPNodes' tcp seeking dst
225 225
226getUDPNodes' :: TCPClient err Nonce8 -> NodeId -> UDP.NodeInfo -> IO (Maybe (([UDP.NodeInfo], [UDP.NodeInfo], Maybe ()), NodeInfo)) 226getUDPNodes' :: TCPClient err Nonce8 -> NodeId -> UDP.NodeInfo -> IO (QR.Result (([UDP.NodeInfo], [UDP.NodeInfo], Maybe ()), NodeInfo))
227getUDPNodes' tcp seeking dst0 = do 227getUDPNodes' tcp seeking dst0 = do
228 mgateway <- atomically $ tcpGetGateway tcp dst0 228 mgateway <- atomically $ tcpGetGateway tcp dst0
229 fmap (join . fmap resultToMaybe) $ forM mgateway $ \gateway -> do 229 case mgateway of
230 Nothing -> return Canceled
231 Just gateway -> do
230 (b,c,n24) <- atomically $ do 232 (b,c,n24) <- atomically $ do
231 b <- transportNewKey (tcpCrypto tcp) 233 b <- transportNewKey (tcpCrypto tcp)
232 c <- transportNewKey (tcpCrypto tcp) 234 c <- transportNewKey (tcpCrypto tcp)