X-Git-Url: https://git.rkrishnan.org/?p=functorrent.git;a=blobdiff_plain;f=src%2FFuncTorrent%2FTracker%2FTypes.hs;h=1c47d3191f593471457972497d490555caf549e9;hp=3adcacc8bc6ac35c24b017dc83675f37635a11a6;hb=272216c101f5f411726898f90355956ab9a105b7;hpb=ebda66bc8731a77d63ec63635473a717bc434885 diff --git a/src/FuncTorrent/Tracker/Types.hs b/src/FuncTorrent/Tracker/Types.hs index 3adcacc..1c47d31 100644 --- a/src/FuncTorrent/Tracker/Types.hs +++ b/src/FuncTorrent/Tracker/Types.hs @@ -18,15 +18,18 @@ -} {-# LANGUAGE OverloadedStrings #-} +{-# LANGUAGE DuplicateRecordFields #-} module FuncTorrent.Tracker.Types ( TrackerProtocol(..) - , TrackerResponse(..) + , HttpTrackerResponse(..) + , UdpTrackerResponse(..) , TrackerEventState(..) , TState(..) , TrackerMsg(..) ) where import Data.ByteString (ByteString) +import Data.Word (Word32) import Control.Concurrent.MVar (MVar) import FuncTorrent.PeerMsgs (Peer) @@ -51,9 +54,16 @@ data TState = TState { left :: Integer } -- | Tracker response -data TrackerResponse = TrackerResponse { +data HttpTrackerResponse = HttpTrackerResponse { interval :: Integer , peers :: [Peer] , complete :: Maybe Integer , incomplete :: Maybe Integer } deriving (Show, Eq) + +data UdpTrackerResponse = UdpTrackerResponse { + leechers :: Word32 + , seeders :: Word32 + , interval :: Word32 + , peers :: [Peer] + } deriving (Show)