diff options
author | Joey Hess <joeyh@joeyh.name> | 2016-09-13 17:36:30 -0400 |
---|---|---|
committer | Joey Hess <joeyh@joeyh.name> | 2016-09-13 17:41:00 -0400 |
commit | 86cb38c936da30910700c58353a5e716fa94e83c (patch) | |
tree | 61aca15d699c7b158fa943cadf9e13f032cd2855 /HTTP/Server.hs | |
parent | 675c405aa53868cd1246857138f91ecb51d01985 (diff) | |
download | keysafe-86cb38c936da30910700c58353a5e716fa94e83c.tar.gz |
use fast-logger for better logging
Diffstat (limited to 'HTTP/Server.hs')
-rw-r--r-- | HTTP/Server.hs | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/HTTP/Server.hs b/HTTP/Server.hs index aab3dab..e2165eb 100644 --- a/HTTP/Server.hs +++ b/HTTP/Server.hs @@ -10,6 +10,7 @@ module HTTP.Server (runServer) where import HTTP import HTTP.ProofOfWork import HTTP.RateLimit +import HTTP.Logger import Types import Types.Storage import Tunables @@ -30,13 +31,17 @@ data ServerState = ServerState { obscurerRequest :: TMVar () , storageDirectory :: Maybe LocalStorageDirectory , rateLimiter :: RateLimiter + , logger :: Logger } newServerState :: Maybe LocalStorageDirectory -> ServerConfig -> IO ServerState -newServerState d cfg = ServerState - <$> newEmptyTMVarIO - <*> pure d - <*> newRateLimiter cfg d +newServerState d cfg = do + l <- newLogger + ServerState + <$> newEmptyTMVarIO + <*> pure d + <*> newRateLimiter cfg d l + <*> pure l runServer :: Maybe LocalStorageDirectory -> ServerConfig -> IO () runServer d cfg = do @@ -66,7 +71,7 @@ motd :: Handler Motd motd = return $ Motd "Hello World!" getObject :: ServerState -> StorableObjectIdent -> Maybe ProofOfWork -> Handler (POWGuarded StorableObject) -getObject st i pow = rateLimit (rateLimiter st) pow i $ do +getObject st i pow = rateLimit (rateLimiter st) (logger st) pow i $ do r <- liftIO $ retrieveShare (serverStorage st) dummyShareNum i liftIO $ requestObscure st case r of @@ -74,7 +79,7 @@ getObject st i pow = rateLimit (rateLimiter st) pow i $ do RetrieveFailure _ -> throwError err404 putObject :: ServerState -> StorableObjectIdent -> Maybe ProofOfWork -> StorableObject -> Handler (POWGuarded StoreResult) -putObject st i pow o = rateLimit (rateLimiter st) pow i $ do +putObject st i pow o = rateLimit (rateLimiter st) (logger st) pow i $ do if validObjectsize o then do r <- liftIO $ storeShare (serverStorage st) i (Share dummyShareNum o) @@ -88,7 +93,7 @@ validObjectsize o = any (sz ==) knownObjectSizes sz = B.length (fromStorableObject o) countObjects :: ServerState -> Maybe ProofOfWork -> Handler (POWGuarded CountResult) -countObjects st pow = rateLimit (rateLimiter st) pow NoPOWIdent $ +countObjects st pow = rateLimit (rateLimiter st) (logger st) pow NoPOWIdent $ liftIO $ countShares $ serverStorage st -- | 1 is a dummy value; the server does not know the actual share numbers. @@ -101,7 +106,7 @@ dummyShareNum = 1 obscurerThread :: ServerState -> IO () obscurerThread st = do _ <- obscureShares (serverStorage st) - putStrLn "obscured shares" + logStdout (logger st) "obscured shares" delay (1000000*60*30) _ <- atomically $ takeTMVar (obscurerRequest st) obscurerThread st |