@@ -1301,7 +1301,7 @@ listen (node@(Node _ port _ _ )) = onAll $ do
13011301
13021302 mlog <- listenNew (fromIntegral port) conn <|> listenResponses :: TransIO (StreamData NodeMSG )
13031303 execLog mlog
1304-
1304+ return () !> " AFTER LISTEN1 "
13051305
13061306
13071307-- listen incoming requests
@@ -1889,7 +1889,7 @@ servePages (method,uri, headers) = do
18891889
18901890-- counter= unsafePerformIO $ newMVar 0
18911891api :: TransIO BS. ByteString -> Cloud ()
1892- api w= Cloud $ do
1892+ api w= Cloud $ do
18931893 Log rec _ _ _ <- getSData <|> return (Log False [][] 0 )
18941894 if not rec then empty else do
18951895 conn <- getSData <|> error " api: Need a connection opened with initNode, listen, simpleWebApp"
@@ -2249,22 +2249,26 @@ rawREST node restmsg = do
22492249 liftIO $ SBS. sendMany sock $ BL. toChunks $ BS. pack $ restmsg
22502250 return () !> " after send"
22512251 str <- liftIO $ SBSL. getContents sock
2252-
2252+ return () !> ( " RECEIVED " , BS. take 50 str)
22532253 setParseString str
22542254 (method, uri, vers) <- getFirstLine
2255+ return () !> (method, uri, vers)
22552256 headers <- getHeaders
22562257 setState $ HTTPHeaders headers
22572258 return () !> (" HEADERSSSSSSS" , headers)
22582259 case lookup " Transfer-Encoding" headers of
22592260 Just " chunked" -> do
2260- -- SMore s <- dechunk
2261- -- setParseString s
2262- -- decodeIt
2261+ -- SMore s <- dechunk
2262+ -- setParseString s
2263+ -- r <- decodeIt
2264+
2265+ -- return r
2266+
22632267 -- dechunk |- decodeIt >>= async . return
22642268
22652269 -- return a stream of JSON elements
2266- ( dechunk |- decodeIt <|> ( threads 0 $ (many $ decodeIt) >>= choose) )
2267-
2270+ dechunk |- decodeIt <|> ( threads 0 $ (many $ decodeIt) >>= choose)
2271+
22682272 _ ->
22692273 case fmap (read . BC. unpack) $ lookup " Content-Length" headers of
22702274
@@ -2275,7 +2279,7 @@ rawREST node restmsg = do
22752279 where
22762280
22772281 deserialize'' msg= case deserialize msg !> (" msg" ,msg) of
2278- Nothing -> error " callRestService : type mismatch"
2282+ Nothing -> error " callRestService :response type mismatch"
22792283 Just r -> r
22802284
22812285 deserialize'= fst . deserialize''
@@ -2296,10 +2300,14 @@ rawREST node restmsg = do
22962300
22972301 -- decodeIt= withData $ \s -> (return $ deserialize'' s)
22982302
2299- hex= withData $ \ s -> if BS. null s then empty else parsehex (- 1 ) s
2303+ hex= withData $ \ s -> parsehex (- 1 ) s
23002304 where
2301- parsehex v s= do
2302- return () !> (" v,s" ,v, BS. take 15 s)
2305+ parsehex v s=
2306+ case (BS. null s,v) of
2307+ (True , - 1 ) -> empty
2308+ (True ,_) -> return (v, mempty )
2309+ _ -> do
2310+
23032311
23042312 let h= BS. head s
23052313
@@ -2326,7 +2334,7 @@ rawREST node restmsg = do
23262334 return () !> " SMORE"
23272335 return $ SMore r
23282336
2329- <|> return SDone
2337+ <|> return SDone !> " SDone in dechunk "
23302338
23312339#endif
23322340
0 commit comments