diff options
Diffstat (limited to 'mini-http')
| -rw-r--r-- | mini-http/Network/HTTP/Server/Mini/Parser.hs | 8 |
1 files changed, 4 insertions, 4 deletions
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)))) |
