From 73ce8f14a938326975050691042b93ad5eedca66 Mon Sep 17 00:00:00 2001 From: Sam Truzjan Date: Wed, 8 Jan 2014 07:01:19 +0400 Subject: Add some options TODOs --- src/Network/KRPC/Manager.hs | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'src/Network/KRPC') diff --git a/src/Network/KRPC/Manager.hs b/src/Network/KRPC/Manager.hs index e2b60b6a..22bfe477 100644 --- a/src/Network/KRPC/Manager.hs +++ b/src/Network/KRPC/Manager.hs @@ -202,6 +202,7 @@ withManager opts addr hs = bracket (newManager opts addr hs) closeManager -- Logging -----------------------------------------------------------------------} +-- TODO prettify log messages querySignature :: MethodName -> TransactionId -> SockAddr -> Text querySignature name transaction addr = T.concat [ "&", T.decodeUtf8 name @@ -311,10 +312,12 @@ query addr params = do -- -- * ErrorCode(MethodUnknown) in the 'dispatchHandler'; -- --- * ErrorCode(ServerError) in the 'runHandler'; (those can be +-- * ErrorCode(ServerError) in the 'runHandler'; +-- +-- * ErrorCode(GenericError) in the 'runHandler' (those can be -- async exception too) -- --- * ErrorCode(GenericError) on +-- so HandlerFailure should cover *only* 'ProtocolError's. -- | Used to signal protocol errors. data HandlerFailure @@ -396,6 +399,13 @@ dispatchHandler q @ KQuery {..} addr = do -- Listener -----------------------------------------------------------------------} +-- TODO bound amount of parallel handler *threads*: +-- +-- peer A flooding with find_node +-- peer B trying to ping peer C +-- peer B fork too many threads +-- ... space leak +-- handleQuery :: MonadKRPC h m => KQuery -> SockAddr -> m () handleQuery q addr = void $ fork $ do Manager {..} <- getManager -- cgit v1.2.3