summaryrefslogtreecommitdiff
path: root/src/Network/Tox.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Network/Tox.hs')
-rw-r--r--src/Network/Tox.hs17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/Network/Tox.hs b/src/Network/Tox.hs
index c587578d..e9220fcb 100644
--- a/src/Network/Tox.hs
+++ b/src/Network/Tox.hs
@@ -87,6 +87,7 @@ import GHC.TypeLits
87 87
88import Crypto.Tox 88import Crypto.Tox
89import Data.Word64Map (fitsInInt) 89import Data.Word64Map (fitsInInt)
90import qualified Data.Word64Map (empty)
90import Network.Tox.Crypto.Transport (NetCrypto) 91import Network.Tox.Crypto.Transport (NetCrypto)
91import qualified Network.Tox.DHT.Handlers as DHT 92import qualified Network.Tox.DHT.Handlers as DHT
92import qualified Network.Tox.DHT.Transport as DHT 93import qualified Network.Tox.DHT.Transport as DHT
@@ -189,8 +190,8 @@ newClient drg net classify selfAddr handlers modifytbl modifynet = do
189 intmap_var <- atomically $ newTVar (drg, mempty) 190 intmap_var <- atomically $ newTVar (drg, mempty)
190 return $ Right (intmapT,intmap_var) 191 return $ Right (intmapT,intmap_var)
191 else do 192 else do
192 let word64mapT = transactionMethods (contramap w64key w64MapMethods) gen 193 let word64mapT = transactionMethods (contramap w64Key w64MapMethods) gen
193 map_var <- atomically $ newTVar (drg, mempty) 194 map_var <- atomically $ newTVar (drg, Data.Word64Map.empty)
194 return $ Left (word64mapT,map_var) 195 return $ Left (word64mapT,map_var)
195 let dispatch tbl var handlers = DispatchMethods 196 let dispatch tbl var handlers = DispatchMethods
196 { classifyInbound = classify 197 { classifyInbound = classify
@@ -236,12 +237,12 @@ getContactInfo Tox{toxCryptoKeys,toxRouting} = join $ atomically $ do
236 ns = filter (DHT.isGlobal . nodeIP) [n4,n6] 237 ns = filter (DHT.isGlobal . nodeIP) [n4,n6]
237 ++ concat (zipWith (\a b -> [a,b]) n4s n6s) 238 ++ concat (zipWith (\a b -> [a,b]) n4s n6s)
238 return $ do 239 return $ do
239 timestamp <- round . (* 1000000) <$> getPOSIXTime 240 timestamp <- round . (* 1000000) <$> getPOSIXTime
240 return DHT.DHTPublicKey 241 return DHT.DHTPublicKey
241 { dhtpkNonce = timestamp 242 { dhtpkNonce = timestamp
242 , dhtpk = id2key self 243 , dhtpk = id2key self
243 , dhtpkNodes = DHT.SendNodes $ take 4 ns 244 , dhtpkNodes = DHT.SendNodes $ take 4 ns
244 } 245 }
245 246
246isLocalHost :: SockAddr -> Bool 247isLocalHost :: SockAddr -> Bool
247isLocalHost (SockAddrInet _ host32) = (fromBE32 host32 == 0x7f000001) 248isLocalHost (SockAddrInet _ host32) = (fromBE32 host32 == 0x7f000001)