diff options
Diffstat (limited to 'dht/src/Network/Tox/TCP.hs')
-rw-r--r-- | dht/src/Network/Tox/TCP.hs | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/dht/src/Network/Tox/TCP.hs b/dht/src/Network/Tox/TCP.hs index 9f0af976..0850ce51 100644 --- a/dht/src/Network/Tox/TCP.hs +++ b/dht/src/Network/Tox/TCP.hs | |||
@@ -46,7 +46,7 @@ import DPut | |||
46 | import Network.Address (setPort,PortNumber,localhost4,fromSockAddr,nullAddress4) | 46 | import Network.Address (setPort,PortNumber,localhost4,fromSockAddr,nullAddress4) |
47 | import Network.Kademlia.Routing | 47 | import Network.Kademlia.Routing |
48 | import Network.Kademlia.Search hiding (sendQuery) | 48 | import Network.Kademlia.Search hiding (sendQuery) |
49 | import Network.QueryResponse | 49 | import Network.QueryResponse as QR |
50 | import Network.QueryResponse.TCP | 50 | import Network.QueryResponse.TCP |
51 | import Network.Tox.TCP.NodeId () | 51 | import Network.Tox.TCP.NodeId () |
52 | import Network.Tox.DHT.Transport (toxSpace) | 52 | import Network.Tox.DHT.Transport (toxSpace) |
@@ -226,7 +226,7 @@ getUDPNodes tcp seeking dst = fmap fst <$> getUDPNodes' tcp seeking dst | |||
226 | getUDPNodes' :: TCPClient err Nonce8 -> NodeId -> UDP.NodeInfo -> IO (Maybe (([UDP.NodeInfo], [UDP.NodeInfo], Maybe ()), NodeInfo)) | 226 | getUDPNodes' :: TCPClient err Nonce8 -> NodeId -> UDP.NodeInfo -> IO (Maybe (([UDP.NodeInfo], [UDP.NodeInfo], Maybe ()), NodeInfo)) |
227 | getUDPNodes' tcp seeking dst0 = do | 227 | getUDPNodes' tcp seeking dst0 = do |
228 | mgateway <- atomically $ tcpGetGateway tcp dst0 | 228 | mgateway <- atomically $ tcpGetGateway tcp dst0 |
229 | fmap join $ forM mgateway $ \gateway -> do | 229 | fmap (join . fmap resultToMaybe) $ forM mgateway $ \gateway -> do |
230 | (b,c,n24) <- atomically $ do | 230 | (b,c,n24) <- atomically $ do |
231 | b <- transportNewKey (tcpCrypto tcp) | 231 | b <- transportNewKey (tcpCrypto tcp) |
232 | c <- transportNewKey (tcpCrypto tcp) | 232 | c <- transportNewKey (tcpCrypto tcp) |
@@ -284,7 +284,7 @@ handle2route o src dst = do | |||
284 | tcpPing :: Show addr => Client err PacketNumber Nonce8 addr (Bool,RelayPacket) -> addr -> IO (Maybe ()) | 284 | tcpPing :: Show addr => Client err PacketNumber Nonce8 addr (Bool,RelayPacket) -> addr -> IO (Maybe ()) |
285 | tcpPing client dst = do | 285 | tcpPing client dst = do |
286 | dput XTCP $ "tcpPing " ++ show dst | 286 | dput XTCP $ "tcpPing " ++ show dst |
287 | sendQuery client meth () dst | 287 | resultToMaybe <$> sendQuery client meth () dst |
288 | where meth = MethodSerializer | 288 | where meth = MethodSerializer |
289 | { wrapQuery = \n8 src dst () -> (True,RelayPing n8) | 289 | { wrapQuery = \n8 src dst () -> (True,RelayPing n8) |
290 | , unwrapResponse = \_ -> () | 290 | , unwrapResponse = \_ -> () |
@@ -295,7 +295,7 @@ tcpPing client dst = do | |||
295 | tcpConnectionRequest_ :: Client err PacketNumber tid addr (Bool, RelayPacket) | 295 | tcpConnectionRequest_ :: Client err PacketNumber tid addr (Bool, RelayPacket) |
296 | -> PublicKey -> addr -> IO (Maybe ConId) | 296 | -> PublicKey -> addr -> IO (Maybe ConId) |
297 | tcpConnectionRequest_ client pubkey ni = do | 297 | tcpConnectionRequest_ client pubkey ni = do |
298 | sendQuery client meth pubkey ni | 298 | resultToMaybe <$> sendQuery client meth pubkey ni |
299 | where | 299 | where |
300 | meth = MethodSerializer | 300 | meth = MethodSerializer |
301 | { wrapQuery = \n8 src dst pubkey -> (True,RoutingRequest pubkey) | 301 | { wrapQuery = \n8 src dst pubkey -> (True,RoutingRequest pubkey) |
@@ -319,7 +319,7 @@ type RelayCache = TCPCache (SessionProtocol (SessionData,RelayPacket) RelayPacke | |||
319 | -- defaults are 'id' and 'tryPutMVar'. The resulting customized table state | 319 | -- defaults are 'id' and 'tryPutMVar'. The resulting customized table state |
320 | -- will be returned to the caller along with the new client. | 320 | -- will be returned to the caller along with the new client. |
321 | newClient :: TransportCrypto | 321 | newClient :: TransportCrypto |
322 | -> ((Maybe (Bool,RelayPacket) -> IO ()) -> a) -- ^ store mvar for relay query | 322 | -> ((QR.Result (Bool,RelayPacket) -> IO ()) -> a) -- ^ store mvar for relay query |
323 | -> (a -> RelayPacket -> IO void) -- ^ load mvar for relay query | 323 | -> (a -> RelayPacket -> IO void) -- ^ load mvar for relay query |
324 | -> (SockAddr -> Nonce8 -> IO (Maybe (OnionDestination RouteId))) -- ^ lookup sender of onion query | 324 | -> (SockAddr -> Nonce8 -> IO (Maybe (OnionDestination RouteId))) -- ^ lookup sender of onion query |
325 | -> (UDP.NodeInfo -> RouteId -> IO (Maybe OnionRoute)) -- ^ lookup OnionRoute by id | 325 | -> (UDP.NodeInfo -> RouteId -> IO (Maybe OnionRoute)) -- ^ lookup OnionRoute by id |