From 75880c7cdd6ec3eac89a04f5c473dfd4efbff012 Mon Sep 17 00:00:00 2001 From: Sam Truzjan Date: Sat, 28 Dec 2013 12:19:59 +0400 Subject: Add logging to DHT --- src/Network/BitTorrent/DHT.hs | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'src/Network/BitTorrent/DHT.hs') diff --git a/src/Network/BitTorrent/DHT.hs b/src/Network/BitTorrent/DHT.hs index bdb76c76..7cc7e803 100644 --- a/src/Network/BitTorrent/DHT.hs +++ b/src/Network/BitTorrent/DHT.hs @@ -1,3 +1,5 @@ +{-# LANGUAGE FlexibleInstances #-} +{-# LANGUAGE TemplateHaskell #-} module Network.BitTorrent.DHT ( dht , ping @@ -8,9 +10,13 @@ module Network.BitTorrent.DHT import Control.Applicative import Control.Monad -import Control.Monad.Reader +import Control.Monad.Logger import Data.List as L +import Data.Monoid +import Data.Text as T import Network.Socket (PortNumber) +import Text.PrettyPrint as PP hiding ((<>)) +import Text.PrettyPrint.Class import Data.Torrent.InfoHash import Network.BitTorrent.Core @@ -59,11 +65,16 @@ ping addr = do -- | One good node may be sufficient. bootstrap :: Address ip => [NodeAddr ip] -> DHT ip () -bootstrap = mapM_ insertClosest +bootstrap startNodes = do + $(logInfoS) "bootstrap" "Start node bootstrapping" + mapM_ insertClosest startNodes + $(logInfoS) "bootstrap" "Node bootstrapping finished" where insertClosest addr = do nid <- getNodeId NodeFound closest <- FindNode nid <@> addr + $(logDebug) ("Get a list of closest nodes: " <> + T.pack (PP.render (pretty closest))) forM_ closest insertNode -- | Get list of peers which downloading -- cgit v1.2.3