@@ -1,6 +1,7 @@
1{-# LANGUAGE OverloadedStrings #-}
1{-# LANGUAGE OverloadedStrings #-}
2import Network.Wai
2import Network.Wai
3import Network.Wai.Handler.Warp
3import Network.Wai.Handler.Warp
4+import Network.HTTP.Types (status200)
4import Blaze.ByteString.Builder (copyByteString)
5import Blaze.ByteString.Builder (copyByteString)
5import Data.Monoid
6import Data.Monoid
6import Data.Enumerator (run_, enumList, ($$))
7import Data.Enumerator (run_, enumList, ($$))
@@ -8,14 +9,14 @@ import Data.Enumerator (run_, enumList, ($$))
8main = run 3000 app
9main = run 3000 app
10app req = return $
11app req = return $
11− case pathInfo req of
12+ case rawPathInfo req of
12 "/builder/withlen" -> builderWithLen
13 "/builder/withlen" -> builderWithLen
13 "/builder/nolen" -> builderNoLen
14 "/builder/nolen" -> builderNoLen
14 "/enum/withlen" -> enumWithLen
15 "/enum/withlen" -> enumWithLen
15 "/enum/nolen" -> enumNoLen
16 "/enum/nolen" -> enumNoLen
16 "/file/withlen" -> fileWithLen
17 "/file/withlen" -> fileWithLen
17 "/file/nolen" -> fileNoLen
18 "/file/nolen" -> fileNoLen
18− _ -> index $ pathInfo req
19+ x -> index x
20builderWithLen = ResponseBuilder
21builderWithLen = ResponseBuilder
@@ -36,12 +37,14 @@ fileWithLen = ResponseFile
36 , ("Content-Length", "4")
37 , ("Content-Length", "4")
38 "pong.txt"
39 "pong.txt"
40fileNoLen = ResponseFile
42fileNoLen = ResponseFile
42 [ ("Content-Type", "text/plain")
44 [ ("Content-Type", "text/plain")
44 "pong.txt"
46 "pong.txt"
46enumWithLen = ResponseEnumerator $ \f ->
49enumWithLen = ResponseEnumerator $ \f ->
47 run_ $ (enumList 1 $ map copyByteString ["P", "O", "NG"]) $$ f
50 run_ $ (enumList 1 $ map copyByteString ["P", "O", "NG"]) $$ f