From 533068e7ebbf3ae5f15bd7b65312a69ab50052e5 Mon Sep 17 00:00:00 2001 From: Sam Truzjan Date: Thu, 28 Nov 2013 06:27:51 +0400 Subject: Add extended module for extended messages --- .../BitTorrent/Exchange/Message/Extended.hs | 51 ++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 src/Network/BitTorrent/Exchange/Message/Extended.hs (limited to 'src/Network/BitTorrent/Exchange/Message/Extended.hs') 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 @@ +-- | +-- Copyright : (c) Sam Truzjan 2013 +-- License : BSD3 +-- Maintainer : pxqr.sta@gmail.com +-- Stability : experimental +-- Portability : portable +-- +-- For more info see +-- +{-# LANGUAGE DeriveDataTypeable #-} +module Network.BitTorrent.Exchange.Message.Extended + ( + ) where + +import Data.BEncode +import Data.IntMap as IM +import Data.Text +import Data.Typeable +import Network +import Network.Socket + +import Network.BitTorrent.Core.PeerAddr + + +type Extension = () + +type ExtMap = IntMap Extension + +data ExtendedHandshake = H + { extMap :: ExtMap + , port :: Maybe PortNumber + , version :: Maybe Text -- TODO ClientInfo + , yourip :: Maybe SockAddr +-- , ipv6 , ipv4 + + -- | The number of outstanding 'Request' messages this + -- client supports without dropping any. + , requestQueueLength :: Maybe Int + } deriving (Show, Typeable) + +instance BEncode ExtendedHandshake where + toBEncode H {..} = toDict $ + "p" .=? port + .: endDict + + fromBEncode = fromDict $ do + undefined + +data ExtendedMessage + = ExtendedHandshake + deriving (Show, Eq) -- cgit v1.2.3