diff options
Diffstat (limited to 'src/Network/Tox.hs')
-rw-r--r-- | src/Network/Tox.hs | 17 |
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 | ||
88 | import Crypto.Tox | 88 | import Crypto.Tox |
89 | import Data.Word64Map (fitsInInt) | 89 | import Data.Word64Map (fitsInInt) |
90 | import qualified Data.Word64Map (empty) | ||
90 | import Network.Tox.Crypto.Transport (NetCrypto) | 91 | import Network.Tox.Crypto.Transport (NetCrypto) |
91 | import qualified Network.Tox.DHT.Handlers as DHT | 92 | import qualified Network.Tox.DHT.Handlers as DHT |
92 | import qualified Network.Tox.DHT.Transport as DHT | 93 | import 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 | ||
246 | isLocalHost :: SockAddr -> Bool | 247 | isLocalHost :: SockAddr -> Bool |
247 | isLocalHost (SockAddrInet _ host32) = (fromBE32 host32 == 0x7f000001) | 248 | isLocalHost (SockAddrInet _ host32) = (fromBE32 host32 == 0x7f000001) |