summaryrefslogtreecommitdiff
path: root/src/Network/BitTorrent/Exchange/Message/Extended.hs
diff options
context:
space:
mode:
authorSam Truzjan <pxqr.sta@gmail.com>2013-11-28 06:27:51 +0400
committerSam Truzjan <pxqr.sta@gmail.com>2013-11-28 06:27:51 +0400
commit533068e7ebbf3ae5f15bd7b65312a69ab50052e5 (patch)
treed4f41d742caf9082ba6442e905ae9d3030236910 /src/Network/BitTorrent/Exchange/Message/Extended.hs
parenta5b5c13610d2097d6541e9d0d5a118735607dfab (diff)
Add extended module for extended messages
Diffstat (limited to 'src/Network/BitTorrent/Exchange/Message/Extended.hs')
-rw-r--r--src/Network/BitTorrent/Exchange/Message/Extended.hs51
1 files changed, 51 insertions, 0 deletions
diff --git a/src/Network/BitTorrent/Exchange/Message/Extended.hs b/src/Network/BitTorrent/Exchange/Message/Extended.hs
new file mode 100644
index 00000000..5d26b582
--- /dev/null
+++ b/src/Network/BitTorrent/Exchange/Message/Extended.hs
@@ -0,0 +1,51 @@
1-- |
2-- Copyright : (c) Sam Truzjan 2013
3-- License : BSD3
4-- Maintainer : pxqr.sta@gmail.com
5-- Stability : experimental
6-- Portability : portable
7--
8-- For more info see <http://www.bittorrent.org/beps/bep_0010.html>
9--
10{-# LANGUAGE DeriveDataTypeable #-}
11module Network.BitTorrent.Exchange.Message.Extended
12 (
13 ) where
14
15import Data.BEncode
16import Data.IntMap as IM
17import Data.Text
18import Data.Typeable
19import Network
20import Network.Socket
21
22import Network.BitTorrent.Core.PeerAddr
23
24
25type Extension = ()
26
27type ExtMap = IntMap Extension
28
29data ExtendedHandshake = H
30 { extMap :: ExtMap
31 , port :: Maybe PortNumber
32 , version :: Maybe Text -- TODO ClientInfo
33 , yourip :: Maybe SockAddr
34-- , ipv6 , ipv4
35
36 -- | The number of outstanding 'Request' messages this
37 -- client supports without dropping any.
38 , requestQueueLength :: Maybe Int
39 } deriving (Show, Typeable)
40
41instance BEncode ExtendedHandshake where
42 toBEncode H {..} = toDict $
43 "p" .=? port
44 .: endDict
45
46 fromBEncode = fromDict $ do
47 undefined
48
49data ExtendedMessage
50 = ExtendedHandshake
51 deriving (Show, Eq)