@@ -1,6 +1,7 @@
11{-# LANGUAGE OverloadedStrings #-}
22import Network.Wai
33import Network.Wai.Handler.Warp
4+import Network.HTTP.Types (status200)
45import Blaze.ByteString.Builder (copyByteString)
56import Data.Monoid
67import Data.Enumerator (run_, enumList, ($$))
@@ -8,14 +9,14 @@ import Data.Enumerator (run_, enumList, ($$))
89main = run 3000 app
910
1011app req = return $
11− case pathInfo req of
12+ case rawPathInfo req of
1213 "/builder/withlen" -> builderWithLen
1314 "/builder/nolen" -> builderNoLen
1415 "/enum/withlen" -> enumWithLen
1516 "/enum/nolen" -> enumNoLen
1617 "/file/withlen" -> fileWithLen
1718 "/file/nolen" -> fileNoLen
18− _ -> index $ pathInfo req
19+ x -> index x
1920
2021builderWithLen = ResponseBuilder
2122 status200
@@ -36,12 +37,14 @@ fileWithLen = ResponseFile
3637 , ("Content-Length", "4")
3738 ]
3839 "pong.txt"
40+ Nothing
3941
4042fileNoLen = ResponseFile
4143 status200
4244 [ ("Content-Type", "text/plain")
4345 ]
4446 "pong.txt"
47+ Nothing
4548
4649enumWithLen = ResponseEnumerator $ \f ->
4750 run_ $ (enumList 1 $ map copyByteString ["P", "O", "NG"]) $$ f