, downloaded = down
, left = sz }
--- | Deserialize tracker response
-mkTrackerResponse :: BVal -> Either ByteString TrackerResponse
-mkTrackerResponse resp =
+-- | Deserialize HTTP tracker response
+parseTrackerResponse :: BVal -> Either ByteString TrackerResponse
+parseTrackerResponse resp =
case lookup "failure reason" body of
Just (Bstr err) -> Left err
Just _ -> Left "Unknown failure"
case Benc.decode resp of
Left e -> return $ pack (show e)
Right trackerInfo ->
- case mkTrackerResponse trackerInfo of
+ case parseTrackerResponse trackerInfo of
Left e -> return e
Right tresp -> do
_ <- threadDelay $ fromIntegral (interval tresp)