@@ -46,6 +46,7 @@ import Data.Enumerator.Binary (enumFile)
46import Blaze.ByteString.Builder (Builder, fromByteString, fromLazyByteString)
46import Blaze.ByteString.Builder (Builder, fromByteString, fromLazyByteString)
47import Network.Socket (SockAddr)
47import Network.Socket (SockAddr)
48import qualified Network.HTTP.Types as H
48import qualified Network.HTTP.Types as H
49+import Data.Text (Text)
50-- | Information on the request sent by the client. This abstracts away the
51-- | Information on the request sent by the client. This abstracts away the
51-- details of the underlying implementation.
52-- details of the underlying implementation.
@@ -56,9 +57,9 @@ data Request = Request
56 -- depending on backend; in a standalone server setting, this is most likely
57 -- depending on backend; in a standalone server setting, this is most likely
57 -- all information after the domain name. In a CGI application, this would be
58 -- all information after the domain name. In a CGI application, this would be
58 -- the information following the path to the CGI executable itself.
59 -- the information following the path to the CGI executable itself.
59− , pathInfo :: B.ByteString
60+ , rawPathInfo :: B.ByteString
60 -- | If no query string was specified, this should be empty.
61 -- | If no query string was specified, this should be empty.
61− , queryString :: B.ByteString
62+ , rawQueryString :: B.ByteString
62 , serverName :: B.ByteString
63 , serverName :: B.ByteString
63 , serverPort :: Int
64 , serverPort :: Int
64 , requestHeaders :: H.RequestHeaders
65 , requestHeaders :: H.RequestHeaders
@@ -69,6 +70,10 @@ data Request = Request
69 , errorHandler :: String -> IO ()
70 , errorHandler :: String -> IO ()
70 -- | The client\'s host information.
71 -- | The client\'s host information.
71 , remoteHost :: SockAddr
72 , remoteHost :: SockAddr
73+ -- | Path info, broken down into individual components.
75+ -- | Parsed query string information
76+ , queryString :: H.Query
73 deriving Typeable
78 deriving Typeable