diff options
author | joe <joe@jerkface.net> | 2015-03-29 01:06:34 -0400 |
---|---|---|
committer | joe <joe@jerkface.net> | 2015-03-29 01:06:34 -0400 |
commit | c88a76cb1c6ee7e54628b78a56f1a25415a39c30 (patch) | |
tree | 567ee2accc815e3f2a71c8f8434eefef82e60ef7 /src/Network/BitTorrent | |
parent | e569586521be76e0f02137e01af9375d327d461c (diff) |
Updates to build against newer libraries:
* prettyclass instead of deprecated pretty-class
* use pPrint instead of pretty
* backported to iproute-1.2.11 (convenient for debian jessie)
Diffstat (limited to 'src/Network/BitTorrent')
-rw-r--r-- | src/Network/BitTorrent/Address.hs | 48 | ||||
-rw-r--r-- | src/Network/BitTorrent/DHT/Query.hs | 4 | ||||
-rw-r--r-- | src/Network/BitTorrent/DHT/Routing.hs | 4 | ||||
-rw-r--r-- | src/Network/BitTorrent/DHT/Session.hs | 12 | ||||
-rw-r--r-- | src/Network/BitTorrent/Exchange/Block.hs | 12 | ||||
-rw-r--r-- | src/Network/BitTorrent/Exchange/Connection.hs | 32 | ||||
-rw-r--r-- | src/Network/BitTorrent/Exchange/Message.hs | 92 | ||||
-rw-r--r-- | src/Network/BitTorrent/Exchange/Session.hs | 20 | ||||
-rw-r--r-- | src/Network/BitTorrent/Internal/Progress.hs | 4 |
9 files changed, 117 insertions, 111 deletions
diff --git a/src/Network/BitTorrent/Address.hs b/src/Network/BitTorrent/Address.hs index eeb04c74..3159fab0 100644 --- a/src/Network/BitTorrent/Address.hs +++ b/src/Network/BitTorrent/Address.hs | |||
@@ -110,7 +110,7 @@ import Text.Read (readMaybe) | |||
110 | import Network.HTTP.Types.QueryLike | 110 | import Network.HTTP.Types.QueryLike |
111 | import Network.Socket | 111 | import Network.Socket |
112 | import Text.PrettyPrint as PP hiding ((<>)) | 112 | import Text.PrettyPrint as PP hiding ((<>)) |
113 | import Text.PrettyPrint.Class | 113 | import Text.PrettyPrint.HughesPJClass hiding ((<>),($$)) |
114 | import System.Locale (defaultTimeLocale) | 114 | import System.Locale (defaultTimeLocale) |
115 | import System.Entropy | 115 | import System.Entropy |
116 | 116 | ||
@@ -121,7 +121,7 @@ import System.Entropy | |||
121 | -----------------------------------------------------------------------} | 121 | -----------------------------------------------------------------------} |
122 | 122 | ||
123 | instance Pretty UTCTime where | 123 | instance Pretty UTCTime where |
124 | pretty = PP.text . show | 124 | pPrint = PP.text . show |
125 | 125 | ||
126 | class (Eq a, Serialize a, Typeable a, Hashable a, Pretty a) | 126 | class (Eq a, Serialize a, Typeable a, Hashable a, Pretty a) |
127 | => Address a where | 127 | => Address a where |
@@ -216,7 +216,7 @@ instance IsString PeerId where | |||
216 | bs = fromString str | 216 | bs = fromString str |
217 | 217 | ||
218 | instance Pretty PeerId where | 218 | instance Pretty PeerId where |
219 | pretty = text . BC.unpack . getPeerId | 219 | pPrint = text . BC.unpack . getPeerId |
220 | 220 | ||
221 | instance Convertible BS.ByteString PeerId where | 221 | instance Convertible BS.ByteString PeerId where |
222 | safeConvert bs | 222 | safeConvert bs |
@@ -373,8 +373,8 @@ instance Hashable PortNumber where | |||
373 | {-# INLINE hashWithSalt #-} | 373 | {-# INLINE hashWithSalt #-} |
374 | 374 | ||
375 | instance Pretty PortNumber where | 375 | instance Pretty PortNumber where |
376 | pretty = PP.int . fromEnum | 376 | pPrint = PP.int . fromEnum |
377 | {-# INLINE pretty #-} | 377 | {-# INLINE pPrint #-} |
378 | 378 | ||
379 | {----------------------------------------------------------------------- | 379 | {----------------------------------------------------------------------- |
380 | -- IP addr | 380 | -- IP addr |
@@ -451,16 +451,16 @@ instance Serialize IPv6 where | |||
451 | get = fromHostAddress6 <$> get | 451 | get = fromHostAddress6 <$> get |
452 | 452 | ||
453 | instance Pretty IPv4 where | 453 | instance Pretty IPv4 where |
454 | pretty = PP.text . show | 454 | pPrint = PP.text . show |
455 | {-# INLINE pretty #-} | 455 | {-# INLINE pPrint #-} |
456 | 456 | ||
457 | instance Pretty IPv6 where | 457 | instance Pretty IPv6 where |
458 | pretty = PP.text . show | 458 | pPrint = PP.text . show |
459 | {-# INLINE pretty #-} | 459 | {-# INLINE pPrint #-} |
460 | 460 | ||
461 | instance Pretty IP where | 461 | instance Pretty IP where |
462 | pretty = PP.text . show | 462 | pPrint = PP.text . show |
463 | {-# INLINE pretty #-} | 463 | {-# INLINE pPrint #-} |
464 | 464 | ||
465 | instance Hashable IPv4 where | 465 | instance Hashable IPv4 where |
466 | hashWithSalt = hashUsing toHostAddress | 466 | hashWithSalt = hashUsing toHostAddress |
@@ -569,11 +569,11 @@ instance IsString (PeerAddr IP) where | |||
569 | -- | fingerprint + "at" + dotted.host.inet.addr:port | 569 | -- | fingerprint + "at" + dotted.host.inet.addr:port |
570 | -- TODO: instances for IPv6, HostName | 570 | -- TODO: instances for IPv6, HostName |
571 | instance Pretty a => Pretty (PeerAddr a) where | 571 | instance Pretty a => Pretty (PeerAddr a) where |
572 | pretty PeerAddr {..} | 572 | pPrint PeerAddr {..} |
573 | | Just pid <- peerId = pretty (fingerprint pid) <+> "at" <+> paddr | 573 | | Just pid <- peerId = pPrint (fingerprint pid) <+> "at" <+> paddr |
574 | | otherwise = paddr | 574 | | otherwise = paddr |
575 | where | 575 | where |
576 | paddr = pretty peerHost <> ":" <> text (show peerPort) | 576 | paddr = pPrint peerHost <> ":" <> text (show peerPort) |
577 | 577 | ||
578 | instance Hashable a => Hashable (PeerAddr a) where | 578 | instance Hashable a => Hashable (PeerAddr a) where |
579 | hashWithSalt s PeerAddr {..} = | 579 | hashWithSalt s PeerAddr {..} = |
@@ -649,7 +649,7 @@ instance IsString NodeId where | |||
649 | 649 | ||
650 | -- | base16 encoded. | 650 | -- | base16 encoded. |
651 | instance Pretty NodeId where | 651 | instance Pretty NodeId where |
652 | pretty (NodeId nid) = PP.text $ BC.unpack $ Base16.encode nid | 652 | pPrint (NodeId nid) = PP.text $ BC.unpack $ Base16.encode nid |
653 | 653 | ||
654 | -- | Test if the nth bit is set. | 654 | -- | Test if the nth bit is set. |
655 | testIdBit :: NodeId -> Word -> Bool | 655 | testIdBit :: NodeId -> Word -> Bool |
@@ -675,7 +675,7 @@ newtype NodeDistance = NodeDistance BS.ByteString | |||
675 | deriving (Eq, Ord) | 675 | deriving (Eq, Ord) |
676 | 676 | ||
677 | instance Pretty NodeDistance where | 677 | instance Pretty NodeDistance where |
678 | pretty (NodeDistance bs) = foldMap bitseq $ BS.unpack bs | 678 | pPrint (NodeDistance bs) = foldMap bitseq $ BS.unpack bs |
679 | where | 679 | where |
680 | listBits w = L.map (testBit w) (L.reverse [0..bitSize w - 1]) | 680 | listBits w = L.map (testBit w) (L.reverse [0..bitSize w - 1]) |
681 | bitseq = foldMap (int . fromEnum) . listBits | 681 | bitseq = foldMap (int . fromEnum) . listBits |
@@ -721,7 +721,7 @@ instance Hashable a => Hashable (NodeAddr a) where | |||
721 | {-# INLINE hashWithSalt #-} | 721 | {-# INLINE hashWithSalt #-} |
722 | 722 | ||
723 | instance Pretty ip => Pretty (NodeAddr ip) where | 723 | instance Pretty ip => Pretty (NodeAddr ip) where |
724 | pretty NodeAddr {..} = pretty nodeHost <> ":" <> pretty nodePort | 724 | pPrint NodeAddr {..} = pPrint nodeHost <> ":" <> pPrint nodePort |
725 | 725 | ||
726 | -- | Example: | 726 | -- | Example: |
727 | -- | 727 | -- |
@@ -755,10 +755,10 @@ instance Serialize a => Serialize (NodeInfo a) where | |||
755 | put NodeInfo {..} = put nodeId >> put nodeAddr | 755 | put NodeInfo {..} = put nodeId >> put nodeAddr |
756 | 756 | ||
757 | instance Pretty ip => Pretty (NodeInfo ip) where | 757 | instance Pretty ip => Pretty (NodeInfo ip) where |
758 | pretty NodeInfo {..} = pretty nodeId <> "@(" <> pretty nodeAddr <> ")" | 758 | pPrint NodeInfo {..} = pPrint nodeId <> "@(" <> pPrint nodeAddr <> ")" |
759 | 759 | ||
760 | instance Pretty ip => Pretty [NodeInfo ip] where | 760 | instance Pretty ip => Pretty [NodeInfo ip] where |
761 | pretty = PP.vcat . PP.punctuate "," . L.map pretty | 761 | pPrint = PP.vcat . PP.punctuate "," . L.map pPrint |
762 | 762 | ||
763 | -- | Order by closeness: nearest nodes first. | 763 | -- | Order by closeness: nearest nodes first. |
764 | rank :: Eq ip => NodeId -> [NodeInfo ip] -> [NodeInfo ip] | 764 | rank :: Eq ip => NodeId -> [NodeInfo ip] -> [NodeInfo ip] |
@@ -952,9 +952,9 @@ instance IsString Software where | |||
952 | alist = L.map mk [minBound..maxBound] | 952 | alist = L.map mk [minBound..maxBound] |
953 | mk x = (L.tail $ show x, x) | 953 | mk x = (L.tail $ show x, x) |
954 | 954 | ||
955 | -- | Example: @pretty 'IBitLet' == \"IBitLet\"@ | 955 | -- | Example: @pPrint 'IBitLet' == \"IBitLet\"@ |
956 | instance Pretty Software where | 956 | instance Pretty Software where |
957 | pretty = text . L.tail . show | 957 | pPrint = text . L.tail . show |
958 | 958 | ||
959 | -- | Just the '0' version. | 959 | -- | Just the '0' version. |
960 | instance Default Version where | 960 | instance Default Version where |
@@ -972,7 +972,7 @@ instance IsString Version where | |||
972 | chunkNums = sequence . L.map readMaybe . L.linesBy ('.' ==) | 972 | chunkNums = sequence . L.map readMaybe . L.linesBy ('.' ==) |
973 | 973 | ||
974 | instance Pretty Version where | 974 | instance Pretty Version where |
975 | pretty = text . showVersion | 975 | pPrint = text . showVersion |
976 | 976 | ||
977 | -- | The all sensible infomation that can be obtained from a peer | 977 | -- | The all sensible infomation that can be obtained from a peer |
978 | -- identifier or torrent /createdBy/ field. | 978 | -- identifier or torrent /createdBy/ field. |
@@ -993,7 +993,7 @@ instance IsString Fingerprint where | |||
993 | (impl, _ver) = L.span ((/=) '-') str | 993 | (impl, _ver) = L.span ((/=) '-') str |
994 | 994 | ||
995 | instance Pretty Fingerprint where | 995 | instance Pretty Fingerprint where |
996 | pretty (Fingerprint s v) = pretty s <+> "version" <+> pretty v | 996 | pPrint (Fingerprint s v) = pPrint s <+> "version" <+> pPrint v |
997 | 997 | ||
998 | -- | Fingerprint of this (the bittorrent library) package. Normally, | 998 | -- | Fingerprint of this (the bittorrent library) package. Normally, |
999 | -- applications should introduce its own fingerprints, otherwise they | 999 | -- applications should introduce its own fingerprints, otherwise they |
@@ -1005,7 +1005,7 @@ libFingerprint = Fingerprint IlibHSbittorrent version | |||
1005 | -- | HTTP user agent of this (the bittorrent library) package. Can be | 1005 | -- | HTTP user agent of this (the bittorrent library) package. Can be |
1006 | -- used in HTTP tracker requests. | 1006 | -- used in HTTP tracker requests. |
1007 | libUserAgent :: String | 1007 | libUserAgent :: String |
1008 | libUserAgent = render (pretty IlibHSbittorrent <> "/" <> pretty version) | 1008 | libUserAgent = render (pPrint IlibHSbittorrent <> "/" <> pPrint version) |
1009 | 1009 | ||
1010 | {----------------------------------------------------------------------- | 1010 | {----------------------------------------------------------------------- |
1011 | -- For torrent file | 1011 | -- For torrent file |
diff --git a/src/Network/BitTorrent/DHT/Query.hs b/src/Network/BitTorrent/DHT/Query.hs index f7657490..ac53bd91 100644 --- a/src/Network/BitTorrent/DHT/Query.hs +++ b/src/Network/BitTorrent/DHT/Query.hs | |||
@@ -53,7 +53,7 @@ import Data.Monoid | |||
53 | import Data.Text as T | 53 | import Data.Text as T |
54 | import Network | 54 | import Network |
55 | import Text.PrettyPrint as PP hiding ((<>), ($$)) | 55 | import Text.PrettyPrint as PP hiding ((<>), ($$)) |
56 | import Text.PrettyPrint.Class | 56 | import Text.PrettyPrint.HughesPJClass hiding ((<>),($$)) |
57 | 57 | ||
58 | import Network.KRPC hiding (Options, def) | 58 | import Network.KRPC hiding (Options, def) |
59 | import Data.Torrent | 59 | import Data.Torrent |
@@ -132,7 +132,7 @@ getPeersQ topic NodeInfo {..} = do | |||
132 | GotPeers {..} <- GetPeers topic <@> nodeAddr | 132 | GotPeers {..} <- GetPeers topic <@> nodeAddr |
133 | let dist = distance (toNodeId topic) nodeId | 133 | let dist = distance (toNodeId topic) nodeId |
134 | $(logInfoS) "getPeersQ" $ T.pack | 134 | $(logInfoS) "getPeersQ" $ T.pack |
135 | $ "distance: " <> render (pretty dist) <> " , result: " | 135 | $ "distance: " <> render (pPrint dist) <> " , result: " |
136 | <> case peers of { Left _ -> "NODES"; Right _ -> "PEERS" } | 136 | <> case peers of { Left _ -> "NODES"; Right _ -> "PEERS" } |
137 | return peers | 137 | return peers |
138 | 138 | ||
diff --git a/src/Network/BitTorrent/DHT/Routing.hs b/src/Network/BitTorrent/DHT/Routing.hs index ee295125..cb3cf273 100644 --- a/src/Network/BitTorrent/DHT/Routing.hs +++ b/src/Network/BitTorrent/DHT/Routing.hs | |||
@@ -71,7 +71,7 @@ import Data.Time.Clock.POSIX | |||
71 | import Data.Word | 71 | import Data.Word |
72 | import GHC.Generics | 72 | import GHC.Generics |
73 | import Text.PrettyPrint as PP hiding ((<>)) | 73 | import Text.PrettyPrint as PP hiding ((<>)) |
74 | import Text.PrettyPrint.Class | 74 | import Text.PrettyPrint.HughesPJClass hiding ((<>),($$)) |
75 | 75 | ||
76 | import Data.Torrent | 76 | import Data.Torrent |
77 | import Network.BitTorrent.Address | 77 | import Network.BitTorrent.Address |
@@ -325,7 +325,7 @@ instance (Eq ip, Serialize ip) => Serialize (Table ip) | |||
325 | 325 | ||
326 | -- | Shape of the table. | 326 | -- | Shape of the table. |
327 | instance Pretty (Table ip) where | 327 | instance Pretty (Table ip) where |
328 | pretty t | 328 | pPrint t |
329 | | bucketCount < 6 = hcat $ punctuate ", " $ L.map PP.int ss | 329 | | bucketCount < 6 = hcat $ punctuate ", " $ L.map PP.int ss |
330 | | otherwise = brackets $ | 330 | | otherwise = brackets $ |
331 | PP.int (L.sum ss) <> " nodes, " <> | 331 | PP.int (L.sum ss) <> " nodes, " <> |
diff --git a/src/Network/BitTorrent/DHT/Session.hs b/src/Network/BitTorrent/DHT/Session.hs index 208f8ec8..0c806db2 100644 --- a/src/Network/BitTorrent/DHT/Session.hs +++ b/src/Network/BitTorrent/DHT/Session.hs | |||
@@ -90,7 +90,7 @@ import Network (PortNumber) | |||
90 | import System.Log.FastLogger | 90 | import System.Log.FastLogger |
91 | import System.Random (randomIO) | 91 | import System.Random (randomIO) |
92 | import Text.PrettyPrint as PP hiding ((<>), ($$)) | 92 | import Text.PrettyPrint as PP hiding ((<>), ($$)) |
93 | import Text.PrettyPrint.Class | 93 | import Text.PrettyPrint.HughesPJClass hiding ((<>),($$)) |
94 | 94 | ||
95 | import Data.Torrent as Torrent | 95 | import Data.Torrent as Torrent |
96 | import Network.KRPC hiding (Options, def) | 96 | import Network.KRPC hiding (Options, def) |
@@ -340,7 +340,7 @@ routing = runRouting probeNode refreshNodes getTimestamp | |||
340 | 340 | ||
341 | probeNode :: Address ip => NodeAddr ip -> DHT ip Bool | 341 | probeNode :: Address ip => NodeAddr ip -> DHT ip Bool |
342 | probeNode addr = do | 342 | probeNode addr = do |
343 | $(logDebugS) "routing.questionable_node" (T.pack (render (pretty addr))) | 343 | $(logDebugS) "routing.questionable_node" (T.pack (render (pPrint addr))) |
344 | result <- try $ Ping <@> addr | 344 | result <- try $ Ping <@> addr |
345 | let _ = result :: Either SomeException Ping | 345 | let _ = result :: Either SomeException Ping |
346 | return $ either (const False) (const True) result | 346 | return $ either (const False) (const True) result |
@@ -351,7 +351,7 @@ probeNode addr = do | |||
351 | -- FIXME do not use getClosest sinse we should /refresh/ them | 351 | -- FIXME do not use getClosest sinse we should /refresh/ them |
352 | refreshNodes :: Address ip => NodeId -> DHT ip [NodeInfo ip] | 352 | refreshNodes :: Address ip => NodeId -> DHT ip [NodeInfo ip] |
353 | refreshNodes nid = do | 353 | refreshNodes nid = do |
354 | $(logDebugS) "routing.refresh_bucket" (T.pack (render (pretty nid))) | 354 | $(logDebugS) "routing.refresh_bucket" (T.pack (render (pPrint nid))) |
355 | nodes <- getClosest nid | 355 | nodes <- getClosest nid |
356 | nss <- forM (nodeAddr <$> nodes) $ \ addr -> do | 356 | nss <- forM (nodeAddr <$> nodes) $ \ addr -> do |
357 | NodeFound ns <- FindNode nid <@> addr | 357 | NodeFound ns <- FindNode nid <@> addr |
@@ -361,7 +361,7 @@ refreshNodes nid = do | |||
361 | getTimestamp :: DHT ip Timestamp | 361 | getTimestamp :: DHT ip Timestamp |
362 | getTimestamp = do | 362 | getTimestamp = do |
363 | utcTime <- liftIO $ getCurrentTime | 363 | utcTime <- liftIO $ getCurrentTime |
364 | $(logDebugS) "routing.make_timestamp" (T.pack (render (pretty utcTime))) | 364 | $(logDebugS) "routing.make_timestamp" (T.pack (render (pPrint utcTime))) |
365 | return $ utcTimeToPOSIXSeconds utcTime | 365 | return $ utcTimeToPOSIXSeconds utcTime |
366 | 366 | ||
367 | {----------------------------------------------------------------------- | 367 | {----------------------------------------------------------------------- |
@@ -419,11 +419,11 @@ insertNode info = fork $ do | |||
419 | case result of | 419 | case result of |
420 | Nothing -> do | 420 | Nothing -> do |
421 | $(logDebugS) "insertNode" $ "Routing table is full: " | 421 | $(logDebugS) "insertNode" $ "Routing table is full: " |
422 | <> T.pack (show (pretty t)) | 422 | <> T.pack (show (pPrint t)) |
423 | return t | 423 | return t |
424 | Just t' -> do | 424 | Just t' -> do |
425 | let logMsg = "Routing table updated: " | 425 | let logMsg = "Routing table updated: " |
426 | <> pretty t <> " -> " <> pretty t' | 426 | <> pPrint t <> " -> " <> pPrint t' |
427 | $(logDebugS) "insertNode" (T.pack (render logMsg)) | 427 | $(logDebugS) "insertNode" (T.pack (render logMsg)) |
428 | return t' | 428 | return t' |
429 | 429 | ||
diff --git a/src/Network/BitTorrent/Exchange/Block.hs b/src/Network/BitTorrent/Exchange/Block.hs index ccc7a0a9..bc9a3d24 100644 --- a/src/Network/BitTorrent/Exchange/Block.hs +++ b/src/Network/BitTorrent/Exchange/Block.hs | |||
@@ -67,7 +67,7 @@ import Data.Serialize as S | |||
67 | import Data.Typeable | 67 | import Data.Typeable |
68 | import Numeric | 68 | import Numeric |
69 | import Text.PrettyPrint as PP hiding ((<>)) | 69 | import Text.PrettyPrint as PP hiding ((<>)) |
70 | import Text.PrettyPrint.Class | 70 | import Text.PrettyPrint.HughesPJClass hiding ((<>),($$)) |
71 | 71 | ||
72 | import Data.Torrent | 72 | import Data.Torrent |
73 | 73 | ||
@@ -138,7 +138,7 @@ instance Serialize BlockIx where | |||
138 | {-# INLINE put #-} | 138 | {-# INLINE put #-} |
139 | 139 | ||
140 | instance Pretty BlockIx where | 140 | instance Pretty BlockIx where |
141 | pretty BlockIx {..} = | 141 | pPrint BlockIx {..} = |
142 | ("piece = " <> int ixPiece <> ",") <+> | 142 | ("piece = " <> int ixPiece <> ",") <+> |
143 | ("offset = " <> int ixOffset <> ",") <+> | 143 | ("offset = " <> int ixOffset <> ",") <+> |
144 | ("length = " <> int ixLength) | 144 | ("length = " <> int ixLength) |
@@ -169,8 +169,8 @@ data Block payload = Block { | |||
169 | 169 | ||
170 | -- | Payload is ommitted. | 170 | -- | Payload is ommitted. |
171 | instance Pretty (Block BL.ByteString) where | 171 | instance Pretty (Block BL.ByteString) where |
172 | pretty = pretty . blockIx | 172 | pPrint = pPrint . blockIx |
173 | {-# INLINE pretty #-} | 173 | {-# INLINE pPrint #-} |
174 | 174 | ||
175 | -- | Get size of block /payload/ in bytes. | 175 | -- | Get size of block /payload/ in bytes. |
176 | blockSize :: Block BL.ByteString -> BlockSize | 176 | blockSize :: Block BL.ByteString -> BlockSize |
@@ -241,8 +241,8 @@ valid = check Nothing | |||
241 | check (Just False) xs | 241 | check (Just False) xs |
242 | 242 | ||
243 | instance Pretty Bucket where | 243 | instance Pretty Bucket where |
244 | pretty Nil = nilInvFailed | 244 | pPrint Nil = nilInvFailed |
245 | pretty bkt = go bkt | 245 | pPrint bkt = go bkt |
246 | where | 246 | where |
247 | go Nil = PP.empty | 247 | go Nil = PP.empty |
248 | go (Span sz xs) = "Span" <+> PP.int sz <+> go xs | 248 | go (Span sz xs) = "Span" <+> PP.int sz <+> go xs |
diff --git a/src/Network/BitTorrent/Exchange/Connection.hs b/src/Network/BitTorrent/Exchange/Connection.hs index 2d5f39bf..d65d322e 100644 --- a/src/Network/BitTorrent/Exchange/Connection.hs +++ b/src/Network/BitTorrent/Exchange/Connection.hs | |||
@@ -131,7 +131,7 @@ import Network | |||
131 | import Network.Socket hiding (Connected) | 131 | import Network.Socket hiding (Connected) |
132 | import Network.Socket.ByteString as BS | 132 | import Network.Socket.ByteString as BS |
133 | import Text.PrettyPrint as PP hiding ((<>)) | 133 | import Text.PrettyPrint as PP hiding ((<>)) |
134 | import Text.PrettyPrint.Class | 134 | import Text.PrettyPrint.HughesPJClass hiding ((<>),($$)) |
135 | import Text.Show.Functions () | 135 | import Text.Show.Functions () |
136 | import System.Log.FastLogger (ToLogStr(..)) | 136 | import System.Log.FastLogger (ToLogStr(..)) |
137 | import System.Timeout | 137 | import System.Timeout |
@@ -161,7 +161,7 @@ instance Default ChannelSide where | |||
161 | def = ThisPeer | 161 | def = ThisPeer |
162 | 162 | ||
163 | instance Pretty ChannelSide where | 163 | instance Pretty ChannelSide where |
164 | pretty = PP.text . show | 164 | pPrint = PP.text . show |
165 | 165 | ||
166 | -- | A protocol errors occur when a peer violates protocol | 166 | -- | A protocol errors occur when a peer violates protocol |
167 | -- specification. | 167 | -- specification. |
@@ -213,7 +213,7 @@ data ProtocolError | |||
213 | deriving Show | 213 | deriving Show |
214 | 214 | ||
215 | instance Pretty ProtocolError where | 215 | instance Pretty ProtocolError where |
216 | pretty = PP.text . show | 216 | pPrint = PP.text . show |
217 | 217 | ||
218 | errorPenalty :: ProtocolError -> Int | 218 | errorPenalty :: ProtocolError -> Int |
219 | errorPenalty (InvalidProtocol _) = 1 | 219 | errorPenalty (InvalidProtocol _) = 1 |
@@ -256,7 +256,7 @@ data WireFailure | |||
256 | instance Exception WireFailure | 256 | instance Exception WireFailure |
257 | 257 | ||
258 | instance Pretty WireFailure where | 258 | instance Pretty WireFailure where |
259 | pretty = PP.text . show | 259 | pPrint = PP.text . show |
260 | 260 | ||
261 | -- TODO | 261 | -- TODO |
262 | -- data Penalty = Ban | Penalty Int | 262 | -- data Penalty = Ban | Penalty Int |
@@ -288,9 +288,9 @@ data FlowStats = FlowStats | |||
288 | } deriving Show | 288 | } deriving Show |
289 | 289 | ||
290 | instance Pretty FlowStats where | 290 | instance Pretty FlowStats where |
291 | pretty FlowStats {..} = | 291 | pPrint FlowStats {..} = |
292 | PP.int messageCount <+> "messages" $+$ | 292 | PP.int messageCount <+> "messages" $+$ |
293 | pretty messageBytes | 293 | pPrint messageBytes |
294 | 294 | ||
295 | -- | Zeroed stats. | 295 | -- | Zeroed stats. |
296 | instance Default FlowStats where | 296 | instance Default FlowStats where |
@@ -328,10 +328,10 @@ data ConnectionStats = ConnectionStats | |||
328 | } deriving Show | 328 | } deriving Show |
329 | 329 | ||
330 | instance Pretty ConnectionStats where | 330 | instance Pretty ConnectionStats where |
331 | pretty ConnectionStats {..} = vcat | 331 | pPrint ConnectionStats {..} = vcat |
332 | [ "Recv:" <+> pretty incomingFlow | 332 | [ "Recv:" <+> pPrint incomingFlow |
333 | , "Sent:" <+> pretty outcomingFlow | 333 | , "Sent:" <+> pPrint outcomingFlow |
334 | , "Both:" <+> pretty (incomingFlow <> outcomingFlow) | 334 | , "Both:" <+> pPrint (incomingFlow <> outcomingFlow) |
335 | ] | 335 | ] |
336 | 336 | ||
337 | -- | Zeroed stats. | 337 | -- | Zeroed stats. |
@@ -493,8 +493,8 @@ data PeerStatus = PeerStatus | |||
493 | $(makeLenses ''PeerStatus) | 493 | $(makeLenses ''PeerStatus) |
494 | 494 | ||
495 | instance Pretty PeerStatus where | 495 | instance Pretty PeerStatus where |
496 | pretty PeerStatus {..} = | 496 | pPrint PeerStatus {..} = |
497 | pretty (Choking _choking) <+> "and" <+> pretty (Interested _interested) | 497 | pPrint (Choking _choking) <+> "and" <+> pPrint (Interested _interested) |
498 | 498 | ||
499 | -- | Connections start out choked and not interested. | 499 | -- | Connections start out choked and not interested. |
500 | instance Default PeerStatus where | 500 | instance Default PeerStatus where |
@@ -535,9 +535,9 @@ data ConnectionStatus = ConnectionStatus | |||
535 | $(makeLenses ''ConnectionStatus) | 535 | $(makeLenses ''ConnectionStatus) |
536 | 536 | ||
537 | instance Pretty ConnectionStatus where | 537 | instance Pretty ConnectionStatus where |
538 | pretty ConnectionStatus {..} = | 538 | pPrint ConnectionStatus {..} = |
539 | "this " PP.<+> pretty _clientStatus PP.$$ | 539 | "this " PP.<+> pPrint _clientStatus PP.$$ |
540 | "remote" PP.<+> pretty _remoteStatus | 540 | "remote" PP.<+> pPrint _remoteStatus |
541 | 541 | ||
542 | -- | Connections start out choked and not interested. | 542 | -- | Connections start out choked and not interested. |
543 | instance Default ConnectionStatus where | 543 | instance Default ConnectionStatus where |
@@ -646,7 +646,7 @@ data Connection s = Connection | |||
646 | } | 646 | } |
647 | 647 | ||
648 | instance Pretty (Connection s) where | 648 | instance Pretty (Connection s) where |
649 | pretty Connection {..} = "Connection" | 649 | pPrint Connection {..} = "Connection" |
650 | 650 | ||
651 | instance ToLogStr (Connection s) where | 651 | instance ToLogStr (Connection s) where |
652 | toLogStr Connection {..} = mconcat | 652 | toLogStr Connection {..} = mconcat |
diff --git a/src/Network/BitTorrent/Exchange/Message.hs b/src/Network/BitTorrent/Exchange/Message.hs index f8b76186..74232b47 100644 --- a/src/Network/BitTorrent/Exchange/Message.hs +++ b/src/Network/BitTorrent/Exchange/Message.hs | |||
@@ -115,7 +115,7 @@ import Data.IP | |||
115 | import Network | 115 | import Network |
116 | import Network.Socket hiding (KeepAlive) | 116 | import Network.Socket hiding (KeepAlive) |
117 | import Text.PrettyPrint as PP hiding ((<>)) | 117 | import Text.PrettyPrint as PP hiding ((<>)) |
118 | import Text.PrettyPrint.Class | 118 | import Text.PrettyPrint.HughesPJClass hiding ((<>),($$)) |
119 | 119 | ||
120 | import Data.Torrent hiding (Piece (..)) | 120 | import Data.Torrent hiding (Piece (..)) |
121 | import qualified Data.Torrent as P (Piece (..)) | 121 | import qualified Data.Torrent as P (Piece (..)) |
@@ -141,7 +141,7 @@ class Capabilities caps where | |||
141 | allowed :: Ext caps -> caps -> Bool | 141 | allowed :: Ext caps -> caps -> Bool |
142 | 142 | ||
143 | ppCaps :: Capabilities caps => Pretty (Ext caps) => caps -> Doc | 143 | ppCaps :: Capabilities caps => Pretty (Ext caps) => caps -> Doc |
144 | ppCaps = hcat . punctuate ", " . L.map pretty . fromCaps | 144 | ppCaps = hcat . punctuate ", " . L.map pPrint . fromCaps |
145 | 145 | ||
146 | {----------------------------------------------------------------------- | 146 | {----------------------------------------------------------------------- |
147 | -- Extensions | 147 | -- Extensions |
@@ -159,9 +159,9 @@ data Extension | |||
159 | 159 | ||
160 | -- | Full extension names, suitable for logging. | 160 | -- | Full extension names, suitable for logging. |
161 | instance Pretty Extension where | 161 | instance Pretty Extension where |
162 | pretty ExtDHT = "Distributed Hash Table Protocol" | 162 | pPrint ExtDHT = "Distributed Hash Table Protocol" |
163 | pretty ExtFast = "Fast Extension" | 163 | pPrint ExtFast = "Fast Extension" |
164 | pretty ExtExtended = "Extension Protocol" | 164 | pPrint ExtExtended = "Extension Protocol" |
165 | 165 | ||
166 | -- | Extension bitmask as specified by BEP 4. | 166 | -- | Extension bitmask as specified by BEP 4. |
167 | extMask :: Extension -> Word64 | 167 | extMask :: Extension -> Word64 |
@@ -180,8 +180,8 @@ newtype Caps = Caps Word64 | |||
180 | 180 | ||
181 | -- | Render set of extensions as comma separated list. | 181 | -- | Render set of extensions as comma separated list. |
182 | instance Pretty Caps where | 182 | instance Pretty Caps where |
183 | pretty = ppCaps | 183 | pPrint = ppCaps |
184 | {-# INLINE pretty #-} | 184 | {-# INLINE pPrint #-} |
185 | 185 | ||
186 | -- | The empty set. | 186 | -- | The empty set. |
187 | instance Default Caps where | 187 | instance Default Caps where |
@@ -235,7 +235,7 @@ instance Show ProtocolName where | |||
235 | show (ProtocolName bs) = show bs | 235 | show (ProtocolName bs) = show bs |
236 | 236 | ||
237 | instance Pretty ProtocolName where | 237 | instance Pretty ProtocolName where |
238 | pretty (ProtocolName bs) = PP.text $ BC.unpack bs | 238 | pPrint (ProtocolName bs) = PP.text $ BC.unpack bs |
239 | 239 | ||
240 | instance IsString ProtocolName where | 240 | instance IsString ProtocolName where |
241 | fromString str | 241 | fromString str |
@@ -287,10 +287,10 @@ instance Serialize Handshake where | |||
287 | 287 | ||
288 | -- | Show handshake protocol string, caps and fingerprint. | 288 | -- | Show handshake protocol string, caps and fingerprint. |
289 | instance Pretty Handshake where | 289 | instance Pretty Handshake where |
290 | pretty Handshake {..} | 290 | pPrint Handshake {..} |
291 | = pretty hsProtocol $$ | 291 | = pPrint hsProtocol $$ |
292 | pretty hsReserved $$ | 292 | pPrint hsReserved $$ |
293 | pretty (fingerprint hsPeerId) | 293 | pPrint (fingerprint hsPeerId) |
294 | 294 | ||
295 | -- | Get handshake message size in bytes from the length of protocol | 295 | -- | Get handshake message size in bytes from the length of protocol |
296 | -- string. | 296 | -- string. |
@@ -334,7 +334,7 @@ data ByteStats = ByteStats | |||
334 | } deriving Show | 334 | } deriving Show |
335 | 335 | ||
336 | instance Pretty ByteStats where | 336 | instance Pretty ByteStats where |
337 | pretty s @ ByteStats {..} = fsep | 337 | pPrint s @ ByteStats {..} = fsep |
338 | [ PP.int overhead, "overhead" | 338 | [ PP.int overhead, "overhead" |
339 | , PP.int control, "control" | 339 | , PP.int control, "control" |
340 | , PP.int payload, "payload" | 340 | , PP.int payload, "payload" |
@@ -408,10 +408,10 @@ data StatusUpdate | |||
408 | deriving (Show, Eq, Ord, Typeable) | 408 | deriving (Show, Eq, Ord, Typeable) |
409 | 409 | ||
410 | instance Pretty StatusUpdate where | 410 | instance Pretty StatusUpdate where |
411 | pretty (Choking False) = "not choking" | 411 | pPrint (Choking False) = "not choking" |
412 | pretty (Choking True ) = "choking" | 412 | pPrint (Choking True ) = "choking" |
413 | pretty (Interested False) = "not interested" | 413 | pPrint (Interested False) = "not interested" |
414 | pretty (Interested True ) = "interested" | 414 | pPrint (Interested True ) = "interested" |
415 | 415 | ||
416 | instance PeerMessage StatusUpdate where | 416 | instance PeerMessage StatusUpdate where |
417 | envelop _ = Status | 417 | envelop _ = Status |
@@ -439,8 +439,8 @@ data Available = | |||
439 | deriving (Show, Eq) | 439 | deriving (Show, Eq) |
440 | 440 | ||
441 | instance Pretty Available where | 441 | instance Pretty Available where |
442 | pretty (Have ix ) = "Have" <+> int ix | 442 | pPrint (Have ix ) = "Have" <+> int ix |
443 | pretty (Bitfield _ ) = "Bitfield" | 443 | pPrint (Bitfield _ ) = "Bitfield" |
444 | 444 | ||
445 | instance PeerMessage Available where | 445 | instance PeerMessage Available where |
446 | envelop _ = Available | 446 | envelop _ = Available |
@@ -472,9 +472,9 @@ data Transfer | |||
472 | deriving (Show, Eq) | 472 | deriving (Show, Eq) |
473 | 473 | ||
474 | instance Pretty Transfer where | 474 | instance Pretty Transfer where |
475 | pretty (Request ix ) = "Request" <+> pretty ix | 475 | pPrint (Request ix ) = "Request" <+> pPrint ix |
476 | pretty (Piece blk) = "Piece" <+> pretty blk | 476 | pPrint (Piece blk) = "Piece" <+> pPrint blk |
477 | pretty (Cancel i ) = "Cancel" <+> pretty i | 477 | pPrint (Cancel i ) = "Cancel" <+> pPrint i |
478 | 478 | ||
479 | instance PeerMessage Transfer where | 479 | instance PeerMessage Transfer where |
480 | envelop _ = Transfer | 480 | envelop _ = Transfer |
@@ -519,11 +519,11 @@ data FastMessage = | |||
519 | deriving (Show, Eq) | 519 | deriving (Show, Eq) |
520 | 520 | ||
521 | instance Pretty FastMessage where | 521 | instance Pretty FastMessage where |
522 | pretty (HaveAll ) = "Have all" | 522 | pPrint (HaveAll ) = "Have all" |
523 | pretty (HaveNone ) = "Have none" | 523 | pPrint (HaveNone ) = "Have none" |
524 | pretty (SuggestPiece pix) = "Suggest" <+> int pix | 524 | pPrint (SuggestPiece pix) = "Suggest" <+> int pix |
525 | pretty (RejectRequest bix) = "Reject" <+> pretty bix | 525 | pPrint (RejectRequest bix) = "Reject" <+> pPrint bix |
526 | pretty (AllowedFast pix) = "Allowed fast" <+> int pix | 526 | pPrint (AllowedFast pix) = "Allowed fast" <+> int pix |
527 | 527 | ||
528 | instance PeerMessage FastMessage where | 528 | instance PeerMessage FastMessage where |
529 | envelop _ = Fast | 529 | envelop _ = Fast |
@@ -556,7 +556,7 @@ instance IsString ExtendedExtension where | |||
556 | msg = "fromString: could not parse ExtendedExtension" | 556 | msg = "fromString: could not parse ExtendedExtension" |
557 | 557 | ||
558 | instance Pretty ExtendedExtension where | 558 | instance Pretty ExtendedExtension where |
559 | pretty ExtMetadata = "Extension for Peers to Send Metadata Files" | 559 | pPrint ExtMetadata = "Extension for Peers to Send Metadata Files" |
560 | 560 | ||
561 | fromKey :: BKey -> Maybe ExtendedExtension | 561 | fromKey :: BKey -> Maybe ExtendedExtension |
562 | fromKey "ut_metadata" = Just ExtMetadata | 562 | fromKey "ut_metadata" = Just ExtMetadata |
@@ -582,8 +582,8 @@ newtype ExtendedCaps = ExtendedCaps { extendedCaps :: ExtendedMap } | |||
582 | deriving (Show, Eq) | 582 | deriving (Show, Eq) |
583 | 583 | ||
584 | instance Pretty ExtendedCaps where | 584 | instance Pretty ExtendedCaps where |
585 | pretty = ppCaps | 585 | pPrint = ppCaps |
586 | {-# INLINE pretty #-} | 586 | {-# INLINE pPrint #-} |
587 | 587 | ||
588 | -- | The empty set. | 588 | -- | The empty set. |
589 | instance Default ExtendedCaps where | 589 | instance Default ExtendedCaps where |
@@ -738,7 +738,7 @@ getYourIp f = | |||
738 | _ -> fail "" | 738 | _ -> fail "" |
739 | 739 | ||
740 | instance Pretty ExtendedHandshake where | 740 | instance Pretty ExtendedHandshake where |
741 | pretty = PP.text . show | 741 | pPrint = PP.text . show |
742 | 742 | ||
743 | -- | NOTE: Approximated 'stats'. | 743 | -- | NOTE: Approximated 'stats'. |
744 | instance PeerMessage ExtendedHandshake where | 744 | instance PeerMessage ExtendedHandshake where |
@@ -760,7 +760,7 @@ nullExtendedHandshake caps = ExtendedHandshake | |||
760 | , ehsMetadataSize = Nothing | 760 | , ehsMetadataSize = Nothing |
761 | , ehsPort = Nothing | 761 | , ehsPort = Nothing |
762 | , ehsQueueLength = Just defaultQueueLength | 762 | , ehsQueueLength = Just defaultQueueLength |
763 | , ehsVersion = Just $ T.pack $ render $ pretty libFingerprint | 763 | , ehsVersion = Just $ T.pack $ render $ pPrint libFingerprint |
764 | , ehsYourIp = Nothing | 764 | , ehsYourIp = Nothing |
765 | } | 765 | } |
766 | 766 | ||
@@ -843,10 +843,10 @@ instance BEncode ExtendedMetadata where | |||
843 | 843 | ||
844 | -- | Piece data bytes are omitted. | 844 | -- | Piece data bytes are omitted. |
845 | instance Pretty ExtendedMetadata where | 845 | instance Pretty ExtendedMetadata where |
846 | pretty (MetadataRequest pix ) = "Request" <+> PP.int pix | 846 | pPrint (MetadataRequest pix ) = "Request" <+> PP.int pix |
847 | pretty (MetadataData p t) = "Data" <+> pretty p <+> PP.int t | 847 | pPrint (MetadataData p t) = "Data" <+> pPrint p <+> PP.int t |
848 | pretty (MetadataReject pix ) = "Reject" <+> PP.int pix | 848 | pPrint (MetadataReject pix ) = "Reject" <+> PP.int pix |
849 | pretty (MetadataUnknown bval ) = "Unknown" <+> ppBEncode bval | 849 | pPrint (MetadataUnknown bval ) = "Unknown" <+> ppBEncode bval |
850 | 850 | ||
851 | -- | NOTE: Approximated 'stats'. | 851 | -- | NOTE: Approximated 'stats'. |
852 | instance PeerMessage ExtendedMetadata where | 852 | instance PeerMessage ExtendedMetadata where |
@@ -957,9 +957,9 @@ data ExtendedMessage | |||
957 | deriving (Show, Eq, Typeable) | 957 | deriving (Show, Eq, Typeable) |
958 | 958 | ||
959 | instance Pretty ExtendedMessage where | 959 | instance Pretty ExtendedMessage where |
960 | pretty (EHandshake ehs) = pretty ehs | 960 | pPrint (EHandshake ehs) = pPrint ehs |
961 | pretty (EMetadata _ msg) = "Metadata" <+> pretty msg | 961 | pPrint (EMetadata _ msg) = "Metadata" <+> pPrint msg |
962 | pretty (EUnknown mid _ ) = "Unknown" <+> PP.text (show mid) | 962 | pPrint (EUnknown mid _ ) = "Unknown" <+> PP.text (show mid) |
963 | 963 | ||
964 | instance PeerMessage ExtendedMessage where | 964 | instance PeerMessage ExtendedMessage where |
965 | envelop _ = Extended | 965 | envelop _ = Extended |
@@ -1010,13 +1010,13 @@ instance Default Message where | |||
1010 | 1010 | ||
1011 | -- | Payload bytes are omitted. | 1011 | -- | Payload bytes are omitted. |
1012 | instance Pretty Message where | 1012 | instance Pretty Message where |
1013 | pretty (KeepAlive ) = "Keep alive" | 1013 | pPrint (KeepAlive ) = "Keep alive" |
1014 | pretty (Status m) = "Status" <+> pretty m | 1014 | pPrint (Status m) = "Status" <+> pPrint m |
1015 | pretty (Available m) = pretty m | 1015 | pPrint (Available m) = pPrint m |
1016 | pretty (Transfer m) = pretty m | 1016 | pPrint (Transfer m) = pPrint m |
1017 | pretty (Port p) = "Port" <+> int (fromEnum p) | 1017 | pPrint (Port p) = "Port" <+> int (fromEnum p) |
1018 | pretty (Fast m) = pretty m | 1018 | pPrint (Fast m) = pPrint m |
1019 | pretty (Extended m) = pretty m | 1019 | pPrint (Extended m) = pPrint m |
1020 | 1020 | ||
1021 | instance PeerMessage Message where | 1021 | instance PeerMessage Message where |
1022 | envelop _ = id | 1022 | envelop _ = id |
diff --git a/src/Network/BitTorrent/Exchange/Session.hs b/src/Network/BitTorrent/Exchange/Session.hs index 2bd275bd..ca849c23 100644 --- a/src/Network/BitTorrent/Exchange/Session.hs +++ b/src/Network/BitTorrent/Exchange/Session.hs | |||
@@ -1,7 +1,9 @@ | |||
1 | {-# LANGUAGE FlexibleInstances #-} | 1 | {-# LANGUAGE CPP #-} |
2 | {-# LANGUAGE TypeFamilies #-} | 2 | {-# LANGUAGE DeriveDataTypeable #-} |
3 | {-# LANGUAGE TemplateHaskell #-} | 3 | {-# LANGUAGE FlexibleInstances #-} |
4 | {-# LANGUAGE DeriveDataTypeable #-} | 4 | {-# LANGUAGE StandaloneDeriving #-} |
5 | {-# LANGUAGE TemplateHaskell #-} | ||
6 | {-# LANGUAGE TypeFamilies #-} | ||
5 | module Network.BitTorrent.Exchange.Session | 7 | module Network.BitTorrent.Exchange.Session |
6 | ( -- * Session | 8 | ( -- * Session |
7 | Session | 9 | Session |
@@ -43,7 +45,7 @@ import Data.Set as S | |||
43 | import Data.Text as T | 45 | import Data.Text as T |
44 | import Data.Typeable | 46 | import Data.Typeable |
45 | import Text.PrettyPrint hiding ((<>)) | 47 | import Text.PrettyPrint hiding ((<>)) |
46 | import Text.PrettyPrint.Class | 48 | import Text.PrettyPrint.HughesPJClass hiding ((<>),($$)) |
47 | import System.Log.FastLogger (LogStr, ToLogStr (..)) | 49 | import System.Log.FastLogger (LogStr, ToLogStr (..)) |
48 | 50 | ||
49 | import Data.BEncode as BE | 51 | import Data.BEncode as BE |
@@ -57,6 +59,10 @@ import Network.BitTorrent.Exchange.Download as D | |||
57 | import Network.BitTorrent.Exchange.Message as Message | 59 | import Network.BitTorrent.Exchange.Message as Message |
58 | import System.Torrent.Storage | 60 | import System.Torrent.Storage |
59 | 61 | ||
62 | #if !MIN_VERSION_iproute(1,2,12) | ||
63 | deriving instance Ord IP | ||
64 | #endif | ||
65 | |||
60 | {----------------------------------------------------------------------- | 66 | {----------------------------------------------------------------------- |
61 | -- Exceptions | 67 | -- Exceptions |
62 | -----------------------------------------------------------------------} | 68 | -----------------------------------------------------------------------} |
@@ -222,11 +228,11 @@ instance MonadLogger (Connected Session) where | |||
222 | conn <- ask | 228 | conn <- ask |
223 | ses <- asks connSession | 229 | ses <- asks connSession |
224 | addr <- asks connRemoteAddr | 230 | addr <- asks connRemoteAddr |
225 | let addrSrc = src <> " @ " <> T.pack (render (pretty addr)) | 231 | let addrSrc = src <> " @ " <> T.pack (render (pPrint addr)) |
226 | liftIO $ sessionLogger ses loc addrSrc lvl (toLogStr msg) | 232 | liftIO $ sessionLogger ses loc addrSrc lvl (toLogStr msg) |
227 | 233 | ||
228 | logMessage :: MonadLogger m => Message -> m () | 234 | logMessage :: MonadLogger m => Message -> m () |
229 | logMessage msg = logDebugN $ T.pack (render (pretty msg)) | 235 | logMessage msg = logDebugN $ T.pack (render (pPrint msg)) |
230 | 236 | ||
231 | logEvent :: MonadLogger m => Text -> m () | 237 | logEvent :: MonadLogger m => Text -> m () |
232 | logEvent = logInfoN | 238 | logEvent = logInfoN |
diff --git a/src/Network/BitTorrent/Internal/Progress.hs b/src/Network/BitTorrent/Internal/Progress.hs index 9aff9935..6ac889e2 100644 --- a/src/Network/BitTorrent/Internal/Progress.hs +++ b/src/Network/BitTorrent/Internal/Progress.hs | |||
@@ -45,7 +45,7 @@ import Data.Ratio | |||
45 | import Data.Word | 45 | import Data.Word |
46 | import Network.HTTP.Types.QueryLike | 46 | import Network.HTTP.Types.QueryLike |
47 | import Text.PrettyPrint as PP | 47 | import Text.PrettyPrint as PP |
48 | import Text.PrettyPrint.Class | 48 | import Text.PrettyPrint.HughesPJClass hiding ((<>),($$)) |
49 | 49 | ||
50 | 50 | ||
51 | -- | Progress data is considered as dynamic within one client | 51 | -- | Progress data is considered as dynamic within one client |
@@ -104,7 +104,7 @@ instance QueryLike Progress where | |||
104 | ] | 104 | ] |
105 | 105 | ||
106 | instance Pretty Progress where | 106 | instance Pretty Progress where |
107 | pretty Progress {..} = | 107 | pPrint Progress {..} = |
108 | "/\\" <+> PP.text (show _uploaded) $$ | 108 | "/\\" <+> PP.text (show _uploaded) $$ |
109 | "\\/" <+> PP.text (show _downloaded) $$ | 109 | "\\/" <+> PP.text (show _downloaded) $$ |
110 | "left" <+> PP.text (show _left) | 110 | "left" <+> PP.text (show _left) |