From 3d53b08b7fe4a7727418670e510d826eae576f14 Mon Sep 17 00:00:00 2001 From: Sam T Date: Fri, 17 May 2013 05:06:00 +0400 Subject: ~ Reorganize modules. --- src/Network/BitTorrent/Peer/Addr.hs | 2 +- src/Network/DHT/Kademlia.hs | 21 +++++++++------------ 2 files changed, 10 insertions(+), 13 deletions(-) (limited to 'src/Network') diff --git a/src/Network/BitTorrent/Peer/Addr.hs b/src/Network/BitTorrent/Peer/Addr.hs index 0e6fcfb9..1c2ac2eb 100644 --- a/src/Network/BitTorrent/Peer/Addr.hs +++ b/src/Network/BitTorrent/Peer/Addr.hs @@ -28,7 +28,7 @@ data PeerAddr = PeerAddr { peerID :: Maybe PeerID , peerIP :: HostAddress , peerPort :: PortNumber - } deriving Show + } deriving (Show, Eq) instance BEncodable PortNumber where toBEncode = toBEncode . fromEnum diff --git a/src/Network/DHT/Kademlia.hs b/src/Network/DHT/Kademlia.hs index d5418beb..bc03ac16 100644 --- a/src/Network/DHT/Kademlia.hs +++ b/src/Network/DHT/Kademlia.hs @@ -1,4 +1,3 @@ --- TODO move to Network.DHT.Kademlia {-# LANGUAGE OverloadedStrings #-} module Network.DHT.Kademlia ( @@ -8,7 +7,8 @@ import Data.ByteString import Network import Remote.KRPC - +import Data.Kademlia.Routing.Table +{- -- | Global unique identifier of the node. Size of the identifier -- should(!) be equal to the size of DHT keys. This limitation arises @@ -32,11 +32,7 @@ type Token = ByteString ping :: Method NodeID NodeID ping = method "ping" ["id"] ["id"] -type PeerContact = () -data NodeContact = NodeContact { - peerContact :: PeerContact - , nodeID :: NodeID - } + -- | Used to lookup peer ID from node ID. -- @@ -47,16 +43,16 @@ find_node = method "find_node" ["id", "target"] ["id", "nodes"] announce_peer :: Method (NodeID, InfoHash, PortNumber, Token) NodeID announce_peer = undefined +-- WARN is the 'system' random suitable for this? +-- | Generate random NodeID used for the entire session. +-- Distribution of ID's should be as uniform as possible. +-- genNodeID :: IO NodeID -genNodeID = undefined +genNodeID = randomIO {- -type InfoHash = Int type Token = Int -ping :: Method NodeId NodeId -ping = method "ping" ["id"] ["id"] - get_peers :: Method (NodeId :*: InfoHash) (NodeId, Token, NodeAddr :|: NodeAddr) get_peers = method "get_peers" ("id", "target") @@ -65,4 +61,5 @@ get_peers = method "get_peers" +-} -} \ No newline at end of file -- cgit v1.2.3