Merge pull request #62 from Start9Labs/bugfix/eos-img-content-length

fixes lack of content length in eos image download
This commit is contained in:
Lucy C
2021-10-14 12:50:02 -06:00
committed by GitHub

View File

@@ -108,6 +108,7 @@ import Network.HTTP.Types ( status400
) )
import Protolude.Unsafe ( unsafeFromJust ) import Protolude.Unsafe ( unsafeFromJust )
import Settings ( AppSettings(registryHostname, resourcesDir) ) import Settings ( AppSettings(registryHostname, resourcesDir) )
import System.Directory ( getFileSize )
import System.FilePath ( (</>) ) import System.FilePath ( (</>) )
import UnliftIO.Async ( concurrently import UnliftIO.Async ( concurrently
, mapConcurrently , mapConcurrently
@@ -124,6 +125,7 @@ import Yesod.Core ( HandlerFor
, ToTypedContent(..) , ToTypedContent(..)
, TypedContent , TypedContent
, YesodRequest(..) , YesodRequest(..)
, addHeader
, getRequest , getRequest
, getsYesod , getsYesod
, logWarn , logWarn
@@ -321,6 +323,7 @@ getEosR = do
Nothing -> sendResponseStatus status404 (NotFoundE [i|EOS version satisfying #{spec}|]) Nothing -> sendResponseStatus status404 (NotFoundE [i|EOS version satisfying #{spec}|])
Just r -> do Just r -> do
let imgPath = root </> show r </> "eos.img" let imgPath = root </> show r </> "eos.img"
liftIO (getFileSize imgPath) >>= addHeader "Content-Length" . show
respondSource typeOctet (sourceFile imgPath .| awaitForever sendChunkBS) respondSource typeOctet (sourceFile imgPath .| awaitForever sendChunkBS)
getVersionLatestR :: Handler VersionLatestRes getVersionLatestR :: Handler VersionLatestRes