summaryrefslogtreecommitdiff
path: root/src/Network/BitTorrent/Core/PeerAddr.hs
diff options
context:
space:
mode:
authorSam Truzjan <pxqr.sta@gmail.com>2013-11-23 03:37:15 +0400
committerSam Truzjan <pxqr.sta@gmail.com>2013-11-23 03:37:15 +0400
commited25a297094b483dce06e14d52ced2f93f6dca41 (patch)
tree3df60d8b30af29345de021f251903a175e78c70c /src/Network/BitTorrent/Core/PeerAddr.hs
parent708938679954a5d5f9def82e1fa873c19ed662df (diff)
Use pretty-class package
Diffstat (limited to 'src/Network/BitTorrent/Core/PeerAddr.hs')
-rw-r--r--src/Network/BitTorrent/Core/PeerAddr.hs17
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
25import Control.Applicative 24import Control.Applicative
@@ -34,6 +33,7 @@ import Data.Typeable
34import Data.Word 33import Data.Word
35import Network.Socket 34import Network.Socket
36import Text.PrettyPrint 35import Text.PrettyPrint
36import Text.PrettyPrint.Class
37 37
38import Data.Torrent.Client 38import Data.Torrent.Client
39import Network.BitTorrent.Core.PeerId 39import 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
92instance 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.
93defaultPorts :: [PortNumber] 100defaultPorts :: [PortNumber]
94defaultPorts = [6881..6889] 101defaultPorts = [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.
122ppPeer :: PeerAddr -> Doc
123ppPeer p @ PeerAddr {..}
124 | Just pid <- peerID = ppClientInfo (clientInfo pid) <+> "at" <+> paddr
125 | otherwise = paddr
126 where
127 paddr = text (show (peerSockAddr p))