diff options
author | Sam Truzjan <pxqr.sta@gmail.com> | 2013-11-23 03:37:15 +0400 |
---|---|---|
committer | Sam Truzjan <pxqr.sta@gmail.com> | 2013-11-23 03:37:15 +0400 |
commit | ed25a297094b483dce06e14d52ced2f93f6dca41 (patch) | |
tree | 3df60d8b30af29345de021f251903a175e78c70c /src/Network/BitTorrent/Core/PeerAddr.hs | |
parent | 708938679954a5d5f9def82e1fa873c19ed662df (diff) |
Use pretty-class package
Diffstat (limited to 'src/Network/BitTorrent/Core/PeerAddr.hs')
-rw-r--r-- | src/Network/BitTorrent/Core/PeerAddr.hs | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/src/Network/BitTorrent/Core/PeerAddr.hs b/src/Network/BitTorrent/Core/PeerAddr.hs index 5570bfc1..b145c0d9 100644 --- a/src/Network/BitTorrent/Core/PeerAddr.hs +++ b/src/Network/BitTorrent/Core/PeerAddr.hs | |||
@@ -19,7 +19,6 @@ module Network.BitTorrent.Core.PeerAddr | |||
19 | , defaultPorts | 19 | , defaultPorts |
20 | , peerSockAddr | 20 | , peerSockAddr |
21 | , connectToPeer | 21 | , connectToPeer |
22 | , ppPeer | ||
23 | ) where | 22 | ) where |
24 | 23 | ||
25 | import Control.Applicative | 24 | import Control.Applicative |
@@ -34,6 +33,7 @@ import Data.Typeable | |||
34 | import Data.Word | 33 | import Data.Word |
35 | import Network.Socket | 34 | import Network.Socket |
36 | import Text.PrettyPrint | 35 | import Text.PrettyPrint |
36 | import Text.PrettyPrint.Class | ||
37 | 37 | ||
38 | import Data.Torrent.Client | 38 | import Data.Torrent.Client |
39 | import Network.BitTorrent.Core.PeerId | 39 | import Network.BitTorrent.Core.PeerId |
@@ -89,6 +89,13 @@ instance Serialize PeerAddr where | |||
89 | get = PeerAddr Nothing <$> get <*> get | 89 | get = PeerAddr Nothing <$> get <*> get |
90 | {-# INLINE get #-} | 90 | {-# INLINE get #-} |
91 | 91 | ||
92 | instance Pretty PeerAddr where | ||
93 | pretty p @ PeerAddr {..} | ||
94 | | Just pid <- peerID = pretty (clientInfo pid) <+> "at" <+> paddr | ||
95 | | otherwise = paddr | ||
96 | where | ||
97 | paddr = text (show (peerSockAddr p)) | ||
98 | |||
92 | -- | Ports typically reserved for bittorrent P2P listener. | 99 | -- | Ports typically reserved for bittorrent P2P listener. |
93 | defaultPorts :: [PortNumber] | 100 | defaultPorts :: [PortNumber] |
94 | defaultPorts = [6881..6889] | 101 | defaultPorts = [6881..6889] |
@@ -117,11 +124,3 @@ connectToPeer p = do | |||
117 | sock <- socket AF_INET Stream Network.Socket.defaultProtocol | 124 | sock <- socket AF_INET Stream Network.Socket.defaultProtocol |
118 | connect sock (peerSockAddr p) | 125 | connect sock (peerSockAddr p) |
119 | return sock | 126 | return sock |
120 | |||
121 | -- | Pretty print peer address in human readable form. | ||
122 | ppPeer :: PeerAddr -> Doc | ||
123 | ppPeer p @ PeerAddr {..} | ||
124 | | Just pid <- peerID = ppClientInfo (clientInfo pid) <+> "at" <+> paddr | ||
125 | | otherwise = paddr | ||
126 | where | ||
127 | paddr = text (show (peerSockAddr p)) | ||