diff options
31 files changed, 57 insertions, 33 deletions
diff --git a/Connection/Tcp.hs b/Connection/Tcp.hs index 97b78eda..a59f35d1 100644 --- a/Connection/Tcp.hs +++ b/Connection/Tcp.hs | |||
@@ -82,6 +82,7 @@ import Network.SocketLike hiding (sClose) | |||
82 | import qualified Connection as G | 82 | import qualified Connection as G |
83 | ;import Connection (Manager (..), PeerAddress (..), Policy (..)) | 83 | ;import Connection (Manager (..), PeerAddress (..), Policy (..)) |
84 | import DPut | 84 | import DPut |
85 | import DebugTag | ||
85 | 86 | ||
86 | 87 | ||
87 | type Microseconds = Int | 88 | type Microseconds = Int |
diff --git a/HandshakeCache.hs b/HandshakeCache.hs index c4dd090c..61735e8a 100644 --- a/HandshakeCache.hs +++ b/HandshakeCache.hs | |||
@@ -15,6 +15,7 @@ import Crypto.Tox | |||
15 | import qualified Data.MinMaxPSQ as MM | 15 | import qualified Data.MinMaxPSQ as MM |
16 | ;import Data.MinMaxPSQ (MinMaxPSQ') | 16 | ;import Data.MinMaxPSQ (MinMaxPSQ') |
17 | import DPut | 17 | import DPut |
18 | import DebugTag | ||
18 | import Network.Tox.Crypto.Transport (Handshake, HandshakeData (..)) | 19 | import Network.Tox.Crypto.Transport (Handshake, HandshakeData (..)) |
19 | import Network.Tox.DHT.Handlers (createCookieSTM) | 20 | import Network.Tox.DHT.Handlers (createCookieSTM) |
20 | import Network.Tox.DHT.Transport (Cookie (..), CookieData (..), NodeInfo, | 21 | import Network.Tox.DHT.Transport (Cookie (..), CookieData (..), NodeInfo, |
diff --git a/Presence/ConfigFiles.hs b/Presence/ConfigFiles.hs index 27a65bbf..d0164e33 100644 --- a/Presence/ConfigFiles.hs +++ b/Presence/ConfigFiles.hs | |||
@@ -17,6 +17,7 @@ import Data.List (partition) | |||
17 | import Data.Maybe (catMaybes,isJust) | 17 | import Data.Maybe (catMaybes,isJust) |
18 | 18 | ||
19 | import DPut | 19 | import DPut |
20 | import DebugTag | ||
20 | 21 | ||
21 | type User = ByteString | 22 | type User = ByteString |
22 | type Profile = String | 23 | type Profile = String |
diff --git a/Presence/ConsoleWriter.hs b/Presence/ConsoleWriter.hs index 7c377d83..c6e1871a 100644 --- a/Presence/ConsoleWriter.hs +++ b/Presence/ConsoleWriter.hs | |||
@@ -36,6 +36,7 @@ import qualified Data.Text as Text | |||
36 | import qualified Network.BSD as BSD | 36 | import qualified Network.BSD as BSD |
37 | 37 | ||
38 | import DPut | 38 | import DPut |
39 | import DebugTag | ||
39 | import UTmp ( users2, utmp_file, UtmpRecord(..), UT_Type(..) ) | 40 | import UTmp ( users2, utmp_file, UtmpRecord(..), UT_Type(..) ) |
40 | import FGConsole ( forkTTYMonitor ) | 41 | import FGConsole ( forkTTYMonitor ) |
41 | import XMPPServer ( Stanza, makePresenceStanza, JabberShow(..), stanzaType | 42 | import XMPPServer ( Stanza, makePresenceStanza, JabberShow(..), stanzaType |
diff --git a/Presence/DNSCache.hs b/Presence/DNSCache.hs index c5154e34..e28655c5 100644 --- a/Presence/DNSCache.hs +++ b/Presence/DNSCache.hs | |||
@@ -53,6 +53,7 @@ import ControlMaybe ( handleIO_ ) | |||
53 | import GetHostByAddr ( getHostByAddr ) | 53 | import GetHostByAddr ( getHostByAddr ) |
54 | import InterruptibleDelay | 54 | import InterruptibleDelay |
55 | import DPut | 55 | import DPut |
56 | import DebugTag | ||
56 | 57 | ||
57 | type TimeStamp = UTCTime | 58 | type TimeStamp = UTCTime |
58 | 59 | ||
diff --git a/Presence/Presence.hs b/Presence/Presence.hs index cc3f488b..0ae9653f 100644 --- a/Presence/Presence.hs +++ b/Presence/Presence.hs | |||
@@ -53,6 +53,7 @@ import qualified Connection | |||
53 | import Network.Tox.NodeId (key2id,parseNoSpamId,nospam64,NoSpamId(..),ToxProgress,ToxContact(..)) | 53 | import Network.Tox.NodeId (key2id,parseNoSpamId,nospam64,NoSpamId(..),ToxProgress,ToxContact(..)) |
54 | import Crypto.Tox (decodeSecret) | 54 | import Crypto.Tox (decodeSecret) |
55 | import DPut | 55 | import DPut |
56 | import DebugTag | ||
56 | 57 | ||
57 | {- | 58 | {- |
58 | isPeerKey :: ClientAddress -> Bool | 59 | isPeerKey :: ClientAddress -> Bool |
diff --git a/Presence/XMPPServer.hs b/Presence/XMPPServer.hs index 2345cb67..42425c5e 100644 --- a/Presence/XMPPServer.hs +++ b/Presence/XMPPServer.hs | |||
@@ -105,6 +105,7 @@ import Data.String ( IsString(..) ) | |||
105 | import qualified System.Random | 105 | import qualified System.Random |
106 | import Data.Void (Void) | 106 | import Data.Void (Void) |
107 | import DPut | 107 | import DPut |
108 | import DebugTag | ||
108 | 109 | ||
109 | -- peerport :: PortNumber | 110 | -- peerport :: PortNumber |
110 | -- peerport = 5269 | 111 | -- peerport = 5269 |
diff --git a/ToxManager.hs b/ToxManager.hs index 4ea6736d..40377b62 100644 --- a/ToxManager.hs +++ b/ToxManager.hs | |||
@@ -28,6 +28,7 @@ import qualified Data.Text as T | |||
28 | import Data.Time.Clock.POSIX | 28 | import Data.Time.Clock.POSIX |
29 | import Data.Word | 29 | import Data.Word |
30 | import DPut | 30 | import DPut |
31 | import DebugTag | ||
31 | import Foreign.Storable | 32 | import Foreign.Storable |
32 | import HandshakeCache | 33 | import HandshakeCache |
33 | import Network.Address | 34 | import Network.Address |
diff --git a/dht-client.cabal b/dht-client.cabal index da9e5366..38f4b8c6 100644 --- a/dht-client.cabal +++ b/dht-client.cabal | |||
@@ -70,6 +70,7 @@ library | |||
70 | , NondecreasingIndentation | 70 | , NondecreasingIndentation |
71 | hs-source-dirs: src, ., Presence | 71 | hs-source-dirs: src, ., Presence |
72 | exposed-modules: DPut | 72 | exposed-modules: DPut |
73 | DebugTag | ||
73 | Network.SocketLike | 74 | Network.SocketLike |
74 | Data.Digest.CRC32C | 75 | Data.Digest.CRC32C |
75 | Data.Bits.ByteString | 76 | Data.Bits.ByteString |
diff --git a/examples/dhtd.hs b/examples/dhtd.hs index 7c66fd73..27403971 100644 --- a/examples/dhtd.hs +++ b/examples/dhtd.hs | |||
@@ -113,6 +113,7 @@ import ToxToXMPP | |||
113 | import XMPPToTox | 113 | import XMPPToTox |
114 | import qualified Connection.Tcp as Tcp (ConnectionEvent(..),noCleanUp,TCPStatus) | 114 | import qualified Connection.Tcp as Tcp (ConnectionEvent(..),noCleanUp,TCPStatus) |
115 | import DPut | 115 | import DPut |
116 | import DebugTag | ||
116 | 117 | ||
117 | 118 | ||
118 | pshow :: Show a => a -> B.ByteString | 119 | pshow :: Show a => a -> B.ByteString |
@@ -361,6 +362,7 @@ clientSession s@Session{..} sock cnum h = do | |||
361 | case B.unsnoc x of | 362 | case B.unsnoc x of |
362 | Just (str,c) | isSpace c -> (str,False) | 363 | Just (str,c) | isSpace c -> (str,False) |
363 | _ -> (x,True) | 364 | _ -> (x,True) |
365 | allDebugTags :: [DebugTag] | ||
364 | allDebugTags = [minBound .. maxBound] | 366 | allDebugTags = [minBound .. maxBound] |
365 | showDebugTags = do | 367 | showDebugTags = do |
366 | vs <- mapM getVerbose allDebugTags | 368 | vs <- mapM getVerbose allDebugTags |
@@ -1535,7 +1537,7 @@ main = do | |||
1535 | announcer <- forkAnnouncer | 1537 | announcer <- forkAnnouncer |
1536 | 1538 | ||
1537 | -- Default: quiet all tags (except XMisc). | 1539 | -- Default: quiet all tags (except XMisc). |
1538 | forM [minBound .. maxBound] setQuiet | 1540 | forM ([minBound .. maxBound]::[DebugTag]) setQuiet |
1539 | forM (verboseTags opts) setVerbose | 1541 | forM (verboseTags opts) setVerbose |
1540 | 1542 | ||
1541 | (quitBt,btdhts,btips,baddrs) <- case portbt opts of | 1543 | (quitBt,btdhts,btips,baddrs) <- case portbt opts of |
diff --git a/examples/testTox.hs b/examples/testTox.hs index cc8bd45f..e82ca2d3 100644 --- a/examples/testTox.hs +++ b/examples/testTox.hs | |||
@@ -17,6 +17,7 @@ import qualified Data.IntMap.Strict as IntMap | |||
17 | import Data.Function | 17 | import Data.Function |
18 | import DebugUtil | 18 | import DebugUtil |
19 | import DPut | 19 | import DPut |
20 | import DebugTag | ||
20 | import HandshakeCache | 21 | import HandshakeCache |
21 | import Network.QueryResponse | 22 | import Network.QueryResponse |
22 | import Network.Socket | 23 | import Network.Socket |
@@ -81,7 +82,7 @@ netCrypto tox me ni them = do | |||
81 | 82 | ||
82 | main :: IO () | 83 | main :: IO () |
83 | main = do | 84 | main = do |
84 | mapM_ setVerbose [ minBound .. maxBound ] | 85 | mapM_ setVerbose ([ minBound .. maxBound ]::[DebugTag]) |
85 | setQuiet XRoutes | 86 | setQuiet XRoutes |
86 | 87 | ||
87 | (udpA,udpB) <- testPairTransport | 88 | (udpA,udpB) <- testPairTransport |
diff --git a/src/Control/Concurrent/Lifted/Instrument.hs b/src/Control/Concurrent/Lifted/Instrument.hs index 680b264f..fc3b6369 100644 --- a/src/Control/Concurrent/Lifted/Instrument.hs +++ b/src/Control/Concurrent/Lifted/Instrument.hs | |||
@@ -21,6 +21,7 @@ import qualified GHC.Conc as GHC | |||
21 | import Data.Time() | 21 | import Data.Time() |
22 | import Data.Time.Clock | 22 | import Data.Time.Clock |
23 | import DPut | 23 | import DPut |
24 | import DebugTag | ||
24 | 25 | ||
25 | 26 | ||
26 | data PerThread = PerThread | 27 | data PerThread = PerThread |
diff --git a/src/DPut.hs b/src/DPut.hs index 6fd69040..38e532d0 100644 --- a/src/DPut.hs +++ b/src/DPut.hs | |||
@@ -1,3 +1,5 @@ | |||
1 | {-# LANGUAGE ConstraintKinds #-} | ||
2 | {-# LANGUAGE ScopedTypeVariables #-} | ||
1 | module DPut where | 3 | module DPut where |
2 | 4 | ||
3 | import Control.Monad.IO.Class | 5 | import Control.Monad.IO.Class |
@@ -10,26 +12,10 @@ import qualified Data.ByteString.Char8 as B | |||
10 | import qualified Data.Text as T | 12 | import qualified Data.Text as T |
11 | import qualified Data.Text.Encoding as T | 13 | import qualified Data.Text.Encoding as T |
12 | import Debug.Trace | 14 | import Debug.Trace |
15 | import Data.Typeable | ||
16 | import Data.Dynamic | ||
13 | 17 | ||
14 | -- | Debug Tags, add more as needed, but ensure XAnnounce is always first, XMisc last | 18 | type IsDebugTag t = (Eq t, Ord t, Show t, Read t, Enum t, Bounded t,Typeable t) |
15 | data DebugTag | ||
16 | = XAnnounce | ||
17 | | XBitTorrent | ||
18 | | XDHT | ||
19 | | XLan | ||
20 | | XMan | ||
21 | | XNetCrypto | ||
22 | | XNetCryptoOut | ||
23 | | XOnion | ||
24 | | XRoutes | ||
25 | | XPing | ||
26 | | XRefresh | ||
27 | | XJabber | ||
28 | | XMisc | ||
29 | | XNodeinfoSearch | ||
30 | | XUnexpected -- Used only for special anomalous errors that we didn't expect to happen. | ||
31 | | XUnused -- Never commit code that uses XUnused. | ||
32 | deriving (Eq, Ord, Show, Read, Enum, Bounded) | ||
33 | 19 | ||
34 | appName :: String | 20 | appName :: String |
35 | appName = "toxmpp" | 21 | appName = "toxmpp" |
@@ -37,43 +23,50 @@ appName = "toxmpp" | |||
37 | (<.>) :: String -> String -> String | 23 | (<.>) :: String -> String -> String |
38 | a <.> b = a ++ "." ++ b | 24 | a <.> b = a ++ "." ++ b |
39 | 25 | ||
40 | dput :: MonadIO m => DebugTag -> String -> m () | 26 | dput :: (MonadIO m, IsDebugTag tag) => tag -> String -> m () |
41 | dput tag msg = liftIO $ debugM (appName <.> show tag) msg | 27 | dput tag msg = liftIO $ debugM (appName <.> show tag) msg |
42 | 28 | ||
43 | dputB :: MonadIO m => DebugTag -> B.ByteString -> m () | 29 | dputB :: (MonadIO m, IsDebugTag tag) => tag -> B.ByteString -> m () |
44 | dputB tag msg = liftIO $ debugM (appName <.> show tag) (T.unpack . T.decodeUtf8 $ msg) | 30 | dputB tag msg = liftIO $ debugM (appName <.> show tag) (T.unpack . T.decodeUtf8 $ msg) |
45 | 31 | ||
46 | {-# NOINLINE verbosityMap #-} | 32 | {-# NOINLINE verbosityMap #-} |
47 | verbosityMap :: IORef (Map.Map DebugTag Bool) | 33 | verbosityMap :: IORef (Map.Map TypeRep Dynamic) |
48 | verbosityMap = unsafePerformIO $ newIORef (Map.empty) | 34 | verbosityMap = unsafePerformIO $ newIORef (Map.empty) |
49 | 35 | ||
50 | -- | Trace version of 'dput' works in arbitrary monad, using unsafePerformIO. | 36 | -- | Trace version of 'dput' works in arbitrary monad, using unsafePerformIO. |
51 | tput :: Applicative m => DebugTag -> String -> m () | 37 | tput :: (Applicative m, IsDebugTag tag) => tag -> String -> m () |
52 | tput tag msg = | 38 | tput tag msg = |
53 | let mp = unsafePerformIO $ readIORef verbosityMap | 39 | let mp = unsafePerformIO $ readIORef verbosityMap |
54 | in if fromMaybe True (Map.lookup tag mp) | 40 | in if maybe True (fromMaybe True . Map.lookup tag . flip fromDyn Map.empty) (Map.lookup (typeOf tag) mp) |
55 | then trace msg (pure ()) | 41 | then trace msg (pure ()) |
56 | else pure () | 42 | else pure () |
57 | 43 | ||
58 | -- | like 'trace' but parameterized with 'DebugTag' | 44 | -- | like 'trace' but parameterized with 'DebugTag' |
59 | dtrace :: DebugTag -> String -> a -> a | 45 | dtrace :: forall a tag. IsDebugTag tag => tag -> String -> a -> a |
60 | dtrace tag msg result = let mp = unsafePerformIO $ readIORef verbosityMap | 46 | dtrace tag msg result = let mp = unsafePerformIO $ readIORef verbosityMap |
61 | in if fromMaybe True (Map.lookup tag mp) | 47 | mp' :: Map.Map tag Bool |
48 | mp' = maybe Map.empty (flip fromDyn Map.empty) (Map.lookup (typeOf tag) mp) | ||
49 | in if fromMaybe True (Map.lookup tag mp') | ||
62 | then trace msg result | 50 | then trace msg result |
63 | else result | 51 | else result |
64 | 52 | ||
65 | setTagLevel :: Priority -> DebugTag -> IO () | 53 | setTagLevel :: forall tag. IsDebugTag tag => Priority -> tag -> IO () |
66 | setTagLevel level tag = do | 54 | setTagLevel level tag = do |
67 | updateGlobalLogger (appName <.> show tag) (setLevel level) | 55 | updateGlobalLogger (appName <.> show tag) (setLevel level) |
68 | modifyIORef verbosityMap (Map.insert tag (level <= DEBUG)) | 56 | modifyIORef verbosityMap $ \mpByType -> do |
57 | case Map.lookup (typeOf tag) mpByType of | ||
58 | Nothing -> Map.insert (typeOf tag) (toDyn $ Map.fromList [(tag,(level <= DEBUG))]) mpByType | ||
59 | Just dyn -> let mpByTag :: Map.Map tag Bool | ||
60 | mpByTag = fromDyn dyn Map.empty | ||
61 | in Map.insert (typeOf tag) (toDyn $ Map.insert tag (level <= DEBUG) mpByTag) mpByType | ||
69 | 62 | ||
70 | setQuiet :: DebugTag -> IO () | 63 | setQuiet :: forall tag. IsDebugTag tag => tag -> IO () |
71 | setQuiet = setTagLevel WARNING | 64 | setQuiet = setTagLevel WARNING |
72 | 65 | ||
73 | setVerbose :: DebugTag -> IO () | 66 | setVerbose :: forall tag. IsDebugTag tag => tag -> IO () |
74 | setVerbose = setTagLevel DEBUG | 67 | setVerbose = setTagLevel DEBUG |
75 | 68 | ||
76 | getVerbose :: DebugTag -> IO Bool | 69 | getVerbose :: forall tag. IsDebugTag tag => tag -> IO Bool |
77 | getVerbose tag = do | 70 | getVerbose tag = do |
78 | logger <- getLogger (appName <.> show tag) | 71 | logger <- getLogger (appName <.> show tag) |
79 | case getLevel logger of | 72 | case getLevel logger of |
diff --git a/src/Data/PacketBuffer.hs b/src/Data/PacketBuffer.hs index 343cb04e..17745664 100644 --- a/src/Data/PacketBuffer.hs +++ b/src/Data/PacketBuffer.hs | |||
@@ -19,6 +19,7 @@ module Data.PacketBuffer | |||
19 | 19 | ||
20 | import Data.PacketQueue as Q | 20 | import Data.PacketQueue as Q |
21 | import DPut | 21 | import DPut |
22 | import DebugTag | ||
22 | 23 | ||
23 | import Control.Concurrent.STM | 24 | import Control.Concurrent.STM |
24 | import Control.Monad | 25 | import Control.Monad |
diff --git a/src/Network/Address.hs b/src/Network/Address.hs index 3adfdc91..246463c0 100644 --- a/src/Network/Address.hs +++ b/src/Network/Address.hs | |||
@@ -130,6 +130,7 @@ import System.Locale (defaultTimeLocale) | |||
130 | #endif | 130 | #endif |
131 | import System.Entropy | 131 | import System.Entropy |
132 | import DPut | 132 | import DPut |
133 | import DebugTag | ||
133 | 134 | ||
134 | -- import Paths_bittorrent (version) | 135 | -- import Paths_bittorrent (version) |
135 | 136 | ||
diff --git a/src/Network/BitTorrent/MainlineDHT.hs b/src/Network/BitTorrent/MainlineDHT.hs index c5b99234..573efcba 100644 --- a/src/Network/BitTorrent/MainlineDHT.hs +++ b/src/Network/BitTorrent/MainlineDHT.hs | |||
@@ -83,6 +83,7 @@ import Text.Read | |||
83 | import System.Global6 | 83 | import System.Global6 |
84 | import Control.TriadCommittee | 84 | import Control.TriadCommittee |
85 | import DPut | 85 | import DPut |
86 | import DebugTag | ||
86 | 87 | ||
87 | newtype NodeId = NodeId ByteString | 88 | newtype NodeId = NodeId ByteString |
88 | deriving (Eq,Ord,ByteArrayAccess, Bits, Hashable) | 89 | deriving (Eq,Ord,ByteArrayAccess, Bits, Hashable) |
diff --git a/src/Network/Kademlia/Bootstrap.hs b/src/Network/Kademlia/Bootstrap.hs index 1a70a9c5..aad8a81e 100644 --- a/src/Network/Kademlia/Bootstrap.hs +++ b/src/Network/Kademlia/Bootstrap.hs | |||
@@ -32,6 +32,7 @@ import Data.Ord | |||
32 | import System.Entropy | 32 | import System.Entropy |
33 | import System.Timeout | 33 | import System.Timeout |
34 | import DPut | 34 | import DPut |
35 | import DebugTag | ||
35 | 36 | ||
36 | import qualified Data.Wrapper.PSQInt as Int | 37 | import qualified Data.Wrapper.PSQInt as Int |
37 | ;import Data.Wrapper.PSQInt (pattern (:->)) | 38 | ;import Data.Wrapper.PSQInt (pattern (:->)) |
diff --git a/src/Network/Lossless.hs b/src/Network/Lossless.hs index 4d5521fd..861792ab 100644 --- a/src/Network/Lossless.hs +++ b/src/Network/Lossless.hs | |||
@@ -18,6 +18,7 @@ import System.IO.Error | |||
18 | 18 | ||
19 | import Data.PacketBuffer as PB | 19 | import Data.PacketBuffer as PB |
20 | import DPut | 20 | import DPut |
21 | import DebugTag | ||
21 | import Network.QueryResponse | 22 | import Network.QueryResponse |
22 | 23 | ||
23 | #ifdef THREAD_DEBUG | 24 | #ifdef THREAD_DEBUG |
diff --git a/src/Network/QueryResponse.hs b/src/Network/QueryResponse.hs index fdfbdbae..4e110ec3 100644 --- a/src/Network/QueryResponse.hs +++ b/src/Network/QueryResponse.hs | |||
@@ -38,6 +38,7 @@ import System.IO | |||
38 | import System.IO.Error | 38 | import System.IO.Error |
39 | import System.Timeout | 39 | import System.Timeout |
40 | import DPut | 40 | import DPut |
41 | import DebugTag | ||
41 | 42 | ||
42 | -- | Three methods are required to implement a datagram based query\/response protocol. | 43 | -- | Three methods are required to implement a datagram based query\/response protocol. |
43 | data TransportA err addr x y = Transport | 44 | data TransportA err addr x y = Transport |
diff --git a/src/Network/StreamServer.hs b/src/Network/StreamServer.hs index 2734f0cd..afa35675 100644 --- a/src/Network/StreamServer.hs +++ b/src/Network/StreamServer.hs | |||
@@ -44,6 +44,7 @@ import Control.Concurrent.MVar (newMVar) | |||
44 | 44 | ||
45 | import Network.SocketLike | 45 | import Network.SocketLike |
46 | import DPut | 46 | import DPut |
47 | import DebugTag | ||
47 | 48 | ||
48 | data ServerHandle = ServerHandle Socket (Weak ThreadId) | 49 | data ServerHandle = ServerHandle Socket (Weak ThreadId) |
49 | 50 | ||
diff --git a/src/Network/Tox.hs b/src/Network/Tox.hs index 88228c50..ddb22d50 100644 --- a/src/Network/Tox.hs +++ b/src/Network/Tox.hs | |||
@@ -61,6 +61,7 @@ import OnionRouter | |||
61 | import Network.Tox.ContactInfo | 61 | import Network.Tox.ContactInfo |
62 | import Text.XXD | 62 | import Text.XXD |
63 | import DPut | 63 | import DPut |
64 | import DebugTag | ||
64 | import Network.Tox.Avahi | 65 | import Network.Tox.Avahi |
65 | import Network.Tox.Session | 66 | import Network.Tox.Session |
66 | import Network.SessionTransports | 67 | import Network.SessionTransports |
diff --git a/src/Network/Tox/AggregateSession.hs b/src/Network/Tox/AggregateSession.hs index 2323673a..b248c96f 100644 --- a/src/Network/Tox/AggregateSession.hs +++ b/src/Network/Tox/AggregateSession.hs | |||
@@ -41,6 +41,7 @@ import Connection (Status (..)) | |||
41 | import Crypto.Tox (PublicKey, toPublic) | 41 | import Crypto.Tox (PublicKey, toPublic) |
42 | import Data.Wrapper.PSQInt as PSQ | 42 | import Data.Wrapper.PSQInt as PSQ |
43 | import DPut | 43 | import DPut |
44 | import DebugTag | ||
44 | import Network.QueryResponse | 45 | import Network.QueryResponse |
45 | import Network.Tox.Crypto.Transport (CryptoMessage (..), pattern KillPacket, | 46 | import Network.Tox.Crypto.Transport (CryptoMessage (..), pattern KillPacket, |
46 | pattern ONLINE, pattern PING, | 47 | pattern ONLINE, pattern PING, |
diff --git a/src/Network/Tox/ContactInfo.hs b/src/Network/Tox/ContactInfo.hs index 387a6e47..e7cb48c1 100644 --- a/src/Network/Tox/ContactInfo.hs +++ b/src/Network/Tox/ContactInfo.hs | |||
@@ -15,6 +15,7 @@ import Network.Tox.DHT.Transport as DHT | |||
15 | import Network.Tox.NodeId (id2key) | 15 | import Network.Tox.NodeId (id2key) |
16 | import Network.Tox.Onion.Transport as Onion | 16 | import Network.Tox.Onion.Transport as Onion |
17 | import DPut | 17 | import DPut |
18 | import DebugTag | ||
18 | 19 | ||
19 | newtype ContactInfo extra = ContactInfo | 20 | newtype ContactInfo extra = ContactInfo |
20 | -- | Map our toxid public key to an Account record. | 21 | -- | Map our toxid public key to an Account record. |
diff --git a/src/Network/Tox/Crypto/Handlers.hs b/src/Network/Tox/Crypto/Handlers.hs index bf01e1b5..94dde8e3 100644 --- a/src/Network/Tox/Crypto/Handlers.hs +++ b/src/Network/Tox/Crypto/Handlers.hs | |||
@@ -51,6 +51,7 @@ import qualified Data.IntMap.Strict as IntMap | |||
51 | import Control.Concurrent.Supply | 51 | import Control.Concurrent.Supply |
52 | import Data.InOrOut | 52 | import Data.InOrOut |
53 | import DPut | 53 | import DPut |
54 | import DebugTag | ||
54 | import Text.Printf | 55 | import Text.Printf |
55 | import Data.Bool | 56 | import Data.Bool |
56 | import Network.Tox.Handshake | 57 | import Network.Tox.Handshake |
diff --git a/src/Network/Tox/Crypto/Transport.hs b/src/Network/Tox/Crypto/Transport.hs index 84929e63..555164f2 100644 --- a/src/Network/Tox/Crypto/Transport.hs +++ b/src/Network/Tox/Crypto/Transport.hs | |||
@@ -87,6 +87,7 @@ import Data.Text.Encoding as T | |||
87 | import Data.Serialize as S | 87 | import Data.Serialize as S |
88 | import Control.Arrow | 88 | import Control.Arrow |
89 | import DPut | 89 | import DPut |
90 | import DebugTag | ||
90 | import Data.PacketBuffer as PB | 91 | import Data.PacketBuffer as PB |
91 | 92 | ||
92 | showCryptoMsg :: Word32 -> CryptoMessage -> [Char] | 93 | showCryptoMsg :: Word32 -> CryptoMessage -> [Char] |
diff --git a/src/Network/Tox/DHT/Handlers.hs b/src/Network/Tox/DHT/Handlers.hs index b1db9044..d7f05dbc 100644 --- a/src/Network/Tox/DHT/Handlers.hs +++ b/src/Network/Tox/DHT/Handlers.hs | |||
@@ -40,6 +40,7 @@ import Data.Maybe | |||
40 | import Data.Serialize (Serialize) | 40 | import Data.Serialize (Serialize) |
41 | import Data.Word | 41 | import Data.Word |
42 | import DPut | 42 | import DPut |
43 | import DebugTag | ||
43 | 44 | ||
44 | data TransactionId = TransactionId | 45 | data TransactionId = TransactionId |
45 | { transactionKey :: Nonce8 -- ^ Used to lookup pending query. | 46 | { transactionKey :: Nonce8 -- ^ Used to lookup pending query. |
diff --git a/src/Network/Tox/Handshake.hs b/src/Network/Tox/Handshake.hs index 0ca99fe2..6df9edab 100644 --- a/src/Network/Tox/Handshake.hs +++ b/src/Network/Tox/Handshake.hs | |||
@@ -23,6 +23,7 @@ import Control.Concurrent | |||
23 | import GHC.Conc (labelThread) | 23 | import GHC.Conc (labelThread) |
24 | #endif | 24 | #endif |
25 | import DPut | 25 | import DPut |
26 | import DebugTag | ||
26 | 27 | ||
27 | 28 | ||
28 | anyRight :: Monad m => a -> [t] -> (t -> m (Either b b1)) -> m (Either a b1) | 29 | anyRight :: Monad m => a -> [t] -> (t -> m (Either b b1)) -> m (Either a b1) |
diff --git a/src/Network/Tox/Onion/Handlers.hs b/src/Network/Tox/Onion/Handlers.hs index 80a6ae3a..0d8a9151 100644 --- a/src/Network/Tox/Onion/Handlers.hs +++ b/src/Network/Tox/Onion/Handlers.hs | |||
@@ -38,6 +38,7 @@ import Data.IP | |||
38 | import Data.Maybe | 38 | import Data.Maybe |
39 | import Data.Functor.Identity | 39 | import Data.Functor.Identity |
40 | import DPut | 40 | import DPut |
41 | import DebugTag | ||
41 | 42 | ||
42 | type Client r = QR.Client String PacketKind TransactionId (OnionDestination r) Message | 43 | type Client r = QR.Client String PacketKind TransactionId (OnionDestination r) Message |
43 | type Message = OnionMessage Identity | 44 | type Message = OnionMessage Identity |
diff --git a/src/Network/Tox/Onion/Transport.hs b/src/Network/Tox/Onion/Transport.hs index 7ed9702a..10bd5a44 100644 --- a/src/Network/Tox/Onion/Transport.hs +++ b/src/Network/Tox/Onion/Transport.hs | |||
@@ -82,6 +82,7 @@ import Network.Socket | |||
82 | import qualified Text.ParserCombinators.ReadP as RP | 82 | import qualified Text.ParserCombinators.ReadP as RP |
83 | import Data.Hashable | 83 | import Data.Hashable |
84 | import DPut | 84 | import DPut |
85 | import DebugTag | ||
85 | 86 | ||
86 | type HandleLo a = Maybe (Either String (ByteString, SockAddr)) -> IO a | 87 | type HandleLo a = Maybe (Either String (ByteString, SockAddr)) -> IO a |
87 | 88 | ||
diff --git a/src/Network/Tox/Session.hs b/src/Network/Tox/Session.hs index 968b3503..18e17fb6 100644 --- a/src/Network/Tox/Session.hs +++ b/src/Network/Tox/Session.hs | |||
@@ -20,6 +20,7 @@ import Crypto.Tox | |||
20 | import Data.PacketBuffer (PacketInboundEvent (..)) | 20 | import Data.PacketBuffer (PacketInboundEvent (..)) |
21 | import Data.Tox.Message | 21 | import Data.Tox.Message |
22 | import DPut | 22 | import DPut |
23 | import DebugTag | ||
23 | import Network.Lossless | 24 | import Network.Lossless |
24 | import Network.QueryResponse | 25 | import Network.QueryResponse |
25 | import Network.SessionTransports | 26 | import Network.SessionTransports |
diff --git a/src/Network/UPNP.hs b/src/Network/UPNP.hs index e89471c2..01d222bf 100644 --- a/src/Network/UPNP.hs +++ b/src/Network/UPNP.hs | |||
@@ -6,6 +6,7 @@ import Network.Socket | |||
6 | import System.Directory | 6 | import System.Directory |
7 | import System.Process as Process | 7 | import System.Process as Process |
8 | import DPut | 8 | import DPut |
9 | import DebugTag | ||
9 | 10 | ||
10 | protocols :: SocketType -> [String] | 11 | protocols :: SocketType -> [String] |
11 | protocols Stream = ["tcp"] | 12 | protocols Stream = ["tcp"] |