summaryrefslogtreecommitdiff
path: root/src/Network/BitTorrent/Peer.hs
diff options
context:
space:
mode:
authorSam T <pxqr.sta@gmail.com>2013-07-04 05:34:30 +0400
committerSam T <pxqr.sta@gmail.com>2013-07-04 05:34:30 +0400
commit5d390922115b28c010410481e751cea06d5bb693 (patch)
tree81582ea808268ea3fc7e9c8141796143bab715c9 /src/Network/BitTorrent/Peer.hs
parentd7442733400a010f48bb9d3f59c4b116a852f453 (diff)
~ Rename PeerID to PeerId.
Diffstat (limited to 'src/Network/BitTorrent/Peer.hs')
-rw-r--r--src/Network/BitTorrent/Peer.hs44
1 files changed, 22 insertions, 22 deletions
diff --git a/src/Network/BitTorrent/Peer.hs b/src/Network/BitTorrent/Peer.hs
index 80f47eac..68771052 100644
--- a/src/Network/BitTorrent/Peer.hs
+++ b/src/Network/BitTorrent/Peer.hs
@@ -34,16 +34,16 @@
34{-# OPTIONS -fno-warn-orphans #-} 34{-# OPTIONS -fno-warn-orphans #-}
35module Network.BitTorrent.Peer 35module Network.BitTorrent.Peer
36 ( -- * Peer identificators 36 ( -- * Peer identificators
37 PeerID (getPeerID), ppPeerID 37 PeerId (getPeerId), ppPeerId
38 38
39 -- ** Encoding styles 39 -- ** Encoding styles
40 , azureusStyle, shadowStyle 40 , azureusStyle, shadowStyle
41 41
42 -- ** Defaults 42 -- ** Defaults
43 , defaultClientID, defaultVersionNumber 43 , defaultClientId, defaultVersionNumber
44 44
45 -- ** Generation 45 -- ** Generation
46 , newPeerID, timestampByteString 46 , newPeerId, timestampByteString
47 47
48 -- ** Extra 48 -- ** Extra
49 , byteStringPadded 49 , byteStringPadded
@@ -104,19 +104,19 @@ version = Version [0, 10, 0, 0] []
104-----------------------------------------------------------------------} 104-----------------------------------------------------------------------}
105 105
106-- | Peer identifier is exactly 20 bytes long bytestring. 106-- | Peer identifier is exactly 20 bytes long bytestring.
107newtype PeerID = PeerID { getPeerID :: ByteString } 107newtype PeerId = PeerId { getPeerId :: ByteString }
108 deriving (Show, Eq, Ord, BEncodable) 108 deriving (Show, Eq, Ord, BEncodable)
109 109
110instance Serialize PeerID where 110instance Serialize PeerId where
111 put = putByteString . getPeerID 111 put = putByteString . getPeerId
112 get = PeerID <$> getBytes 20 112 get = PeerId <$> getBytes 20
113 113
114instance URLShow PeerID where 114instance URLShow PeerId where
115 urlShow = BC.unpack . getPeerID 115 urlShow = BC.unpack . getPeerId
116 116
117-- | Format peer id in human readable form. 117-- | Format peer id in human readable form.
118ppPeerID :: PeerID -> Doc 118ppPeerId :: PeerId -> Doc
119ppPeerID = text . BC.unpack . getPeerID 119ppPeerId = text . BC.unpack . getPeerId
120 120
121 121
122-- | Azureus-style encoding have the following layout: 122-- | Azureus-style encoding have the following layout:
@@ -134,8 +134,8 @@ ppPeerID = text . BC.unpack . getPeerID
134azureusStyle :: ByteString -- ^ 2 character client ID, padded with 'H'. 134azureusStyle :: ByteString -- ^ 2 character client ID, padded with 'H'.
135 -> ByteString -- ^ Version number, padded with 'X'. 135 -> ByteString -- ^ Version number, padded with 'X'.
136 -> ByteString -- ^ Random number, padded with '0'. 136 -> ByteString -- ^ Random number, padded with '0'.
137 -> PeerID -- ^ Azureus-style encoded peer ID. 137 -> PeerId -- ^ Azureus-style encoded peer ID.
138azureusStyle cid ver rnd = PeerID $ BL.toStrict $ B.toLazyByteString $ 138azureusStyle cid ver rnd = PeerId $ BL.toStrict $ B.toLazyByteString $
139 B.char8 '-' <> 139 B.char8 '-' <>
140 byteStringPadded cid 2 'H' <> 140 byteStringPadded cid 2 'H' <>
141 byteStringPadded ver 4 'X' <> 141 byteStringPadded ver 4 'X' <>
@@ -155,16 +155,16 @@ azureusStyle cid ver rnd = PeerID $ BL.toStrict $ B.toLazyByteString $
155shadowStyle :: Char -- ^ Client ID. 155shadowStyle :: Char -- ^ Client ID.
156 -> ByteString -- ^ Version number. 156 -> ByteString -- ^ Version number.
157 -> ByteString -- ^ Random number. 157 -> ByteString -- ^ Random number.
158 -> PeerID -- ^ Shadow style encoded peer ID. 158 -> PeerId -- ^ Shadow style encoded peer ID.
159shadowStyle cid ver rnd = PeerID $ BL.toStrict $ B.toLazyByteString $ 159shadowStyle cid ver rnd = PeerId $ BL.toStrict $ B.toLazyByteString $
160 B.char8 cid <> 160 B.char8 cid <>
161 byteStringPadded ver 4 '-' <> 161 byteStringPadded ver 4 '-' <>
162 byteStringPadded rnd 15 '0' 162 byteStringPadded rnd 15 '0'
163 163
164 164
165-- | "HS" - 2 bytes long client identifier. 165-- | "HS" - 2 bytes long client identifier.
166defaultClientID :: ByteString 166defaultClientId :: ByteString
167defaultClientID = "HS" 167defaultClientId = "HS"
168 168
169-- | Gives exactly 4 bytes long version number for any version of the 169-- | Gives exactly 4 bytes long version number for any version of the
170-- package. Version is taken from .cabal. 170-- package. Version is taken from .cabal.
@@ -199,8 +199,8 @@ timestampByteString = (BC.pack . format) <$> getCurrentTime
199-- 199--
200-- * UTC time day ++ day time for the random number. 200-- * UTC time day ++ day time for the random number.
201-- 201--
202newPeerID :: IO PeerID 202newPeerId :: IO PeerId
203newPeerID = azureusStyle defaultClientID defaultVersionNumber 203newPeerId = azureusStyle defaultClientId defaultVersionNumber
204 <$> timestampByteString 204 <$> timestampByteString
205 205
206-- | Pad bytestring so it's becomes exactly request length. Conversion 206-- | Pad bytestring so it's becomes exactly request length. Conversion
@@ -398,9 +398,9 @@ unknownClient = ClientInfo unknownImpl unknownVersion
398-- peer id uses unknown coding style then client info returned is 398-- peer id uses unknown coding style then client info returned is
399-- 'unknownClient'. 399-- 'unknownClient'.
400-- 400--
401clientInfo :: PeerID -> ClientInfo 401clientInfo :: PeerId -> ClientInfo
402clientInfo pid = either (const unknownClient) id $ 402clientInfo pid = either (const unknownClient) id $
403 runGet getCI (getPeerID pid) 403 runGet getCI (getPeerId pid)
404 where -- TODO other styles 404 where -- TODO other styles
405 getCI = do 405 getCI = do
406 _ <- getWord8 406 _ <- getWord8
@@ -489,7 +489,7 @@ nameMap =
489-- | Peer address info normally extracted from peer list or peer 489-- | Peer address info normally extracted from peer list or peer
490-- compact list encoding. 490-- compact list encoding.
491data PeerAddr = PeerAddr { 491data PeerAddr = PeerAddr {
492 peerID :: Maybe PeerID 492 peerID :: Maybe PeerId
493 , peerIP :: HostAddress 493 , peerIP :: HostAddress
494 , peerPort :: PortNumber 494 , peerPort :: PortNumber
495 } deriving (Show, Eq, Ord) 495 } deriving (Show, Eq, Ord)