From ba9d7504080fb4e9adfb2d33290190e06d2f8773 Mon Sep 17 00:00:00 2001 From: Tom Smeding Date: Fri, 8 May 2026 18:24:34 +0100 Subject: mini-http: Fix parser --- mini-http/Network/HTTP/Server/Mini/Parser.hs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'mini-http/Network') diff --git a/mini-http/Network/HTTP/Server/Mini/Parser.hs b/mini-http/Network/HTTP/Server/Mini/Parser.hs index 97e25c1..1e968cb 100644 --- a/mini-http/Network/HTTP/Server/Mini/Parser.hs +++ b/mini-http/Network/HTTP/Server/Mini/Parser.hs @@ -110,10 +110,10 @@ readUntilTerminator maxsize recv toprevprefix = do -- now text2' has length at least 2 if available before EOF case (haveCR, BS.length text2') of (_, 0) -> return Nothing - (False, _) | text2' `BS.index` 0 == 10 -> return (Just (BS.concat (reverse revprefix))) - (False, n) | n >= 2, text2' `BS.index` 0 == 13, text2' `BS.index` 0 == 10 -> - return (Just (BS.concat (reverse revprefix))) - (True, _) | text2' `BS.index` 0 == 10 -> return (Just (BS.init (BS.concat (reverse revprefix)))) + (False, _) | text2' `BS.index` 0 == 10 -> return (Just (BS.concat (reverse (text : revprefix)))) + (False, n) | n >= 2, text2' `BS.index` 0 == 13, text2' `BS.index` 1 == 10 -> + return (Just (BS.concat (reverse (text : revprefix)))) + (True, _) | text2' `BS.index` 0 == 10 -> return (Just (BS.init (BS.concat (reverse (text : revprefix))))) (_, 1) -> return Nothing -- second recv returned EOF and no terminator found before that _ -> goFind (text : revprefix) text2' FoundTerm i -> return (Just (BS.concat (reverse (BS.take i text : revprefix)))) -- cgit v1.3.1