diff options
Diffstat (limited to 'HTTP')
-rw-r--r-- | HTTP/Server.hs | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/HTTP/Server.hs b/HTTP/Server.hs index cce91cd..a26cd5e 100644 --- a/HTTP/Server.hs +++ b/HTTP/Server.hs @@ -10,6 +10,7 @@ module HTTP.Server (runServer) where import HTTP import Types import Types.Storage +import Tunables import Storage.Local import Serialization () import Servant @@ -65,9 +66,12 @@ getObject st i _pow = do putObject :: ServerState -> StorableObjectIdent -> Maybe ProofOfWork -> StorableObject -> Handler (ProofOfWorkRequirement StoreResult) putObject st i _pow o = do - r <- liftIO $ storeShare serverStorage i (Share dummyShareNum o) - liftIO $ requestObscure st - return (Result r) + if validObjectsize o + then do + r <- liftIO $ storeShare serverStorage i (Share dummyShareNum o) + liftIO $ requestObscure st + return (Result r) + else throwError err413 -- Request Entity Too Large countObjects :: ServerState -> Maybe ProofOfWork -> Handler (ProofOfWorkRequirement CountResult) countObjects _st _pow = liftIO $ Result <$> countShares serverStorage |