on master help sign in
Fix xhr body truncation in jhsaddle-warp
e5a5537Hamish Mackenzie
jsaddle-warp/src/Language/Javascript/JSaddle/WebSockets.hs+3−3
@@ -28,7 +28,7 @@ import Data.Monoid ((<>))
28import Data.Aeson (encode, decode)
28import Data.Aeson (encode, decode)
29
29
30import Network.Wai
30import Network.Wai
31− (requestBody, Application, Request, Response, ResponseReceived)
31+ (lazyRequestBody, Application, Request, Response, ResponseReceived)
32import Network.WebSockets
32import Network.WebSockets
33 (ConnectionOptions(..), sendTextData, receiveDataMessage,
33 (ConnectionOptions(..), sendTextData, receiveDataMessage,
34 acceptRequest, ServerApp, sendPing)
34 acceptRequest, ServerApp, sendPing)
@@ -87,8 +87,8 @@ jsaddleOr opts entryPoint otherApp = do
87 syncHandler :: Application
87 syncHandler :: Application
88 syncHandler req sendResponse = case (W.requestMethod req, W.pathInfo req) of
88 syncHandler req sendResponse = case (W.requestMethod req, W.pathInfo req) of
89 ("POST", ["sync", syncKey]) -> do
89 ("POST", ["sync", syncKey]) -> do
90− body <- requestBody req
90+ body <- lazyRequestBody req
91− case decode $ fromStrict body of
91+ case decode body of
92 Nothing -> error $ "jsaddle sync message decode failed : " <> show body
92 Nothing -> error $ "jsaddle sync message decode failed : " <> show body
93 Just result ->
93 Just result ->
94 M.lookup syncKey <$> readIORef syncHandlers >>= \case
94 M.lookup syncKey <$> readIORef syncHandlers >>= \case