packages feed

warp 2.0.2.1 → 2.0.3

raw patch · 6 files changed

+20/−7 lines, 6 files

Files

Network/Wai/Handler/Warp.hs view
@@ -36,6 +36,7 @@   , settingsManager   , settingsFdCacheDuration   , settingsBeforeMainLoop+  , settingsNoParsePath     -- * Data types   , HostPreference (..)   , Port
Network/Wai/Handler/Warp/Request.hs view
@@ -26,6 +26,7 @@ import Network.Wai.Handler.Warp.Header import Network.Wai.Handler.Warp.ReadInt import Network.Wai.Handler.Warp.RequestHeader+import Network.Wai.Handler.Warp.Settings (Settings, settingsNoParsePath) import qualified Network.Wai.Handler.Warp.Timeout as Timeout import Network.Wai.Handler.Warp.Types import Network.Wai.Internal@@ -41,7 +42,8 @@  -- | Receiving a HTTP request from 'Connection' and parsing its header --   to create 'Request'.-recvRequest :: Connection+recvRequest :: Settings+            -> Connection             -> InternalInfo             -> SockAddr -- ^ Peer's address.             -> Source IO ByteString -- ^ Where HTTP request comes from.@@ -52,9 +54,9 @@             -- 'IndexedHeader' of HTTP request for internal use, and             -- leftover source (i.e. body and other HTTP reqeusts in HTTP pipelining). -recvRequest conn ii addr src0 = do+recvRequest settings conn ii addr src0 = do     (src, hdrlines) <- src0 $$+ headerLines-    (method, path, query, httpversion, hdr) <- parseHeaderLines hdrlines+    (method, unparsedPath, path, query, httpversion, hdr) <- parseHeaderLines hdrlines     let idxhdr = indexRequestHeader hdr         expect = idxhdr ! idxExpect         cl = idxhdr ! idxContentLength@@ -65,7 +67,7 @@             requestMethod     = method           , httpVersion       = httpversion           , pathInfo          = H.decodePathSegments path-          , rawPathInfo       = path+          , rawPathInfo       = if settingsNoParsePath settings then unparsedPath else path           , rawQueryString    = query           , queryString       = H.parseQuery query           , requestHeaders    = hdr
Network/Wai/Handler/Warp/RequestHeader.hs view
@@ -27,6 +27,7 @@ parseHeaderLines :: [ByteString]                  -> IO (H.Method                        ,ByteString  --  Path+                       ,ByteString  --  Path, parsed                        ,ByteString  --  Query                        ,H.HttpVersion                        ,H.RequestHeaders@@ -36,7 +37,7 @@     (method, path', query, httpversion) <- parseRequestLine firstLine     let path = parsePath path'         hdr = map parseHeader otherLines-    return (method, path, query, httpversion, hdr)+    return (method, path', path, query, httpversion, hdr)  ---------------------------------------------------------------- 
Network/Wai/Handler/Warp/Run.hs view
@@ -228,7 +228,7 @@     internalError = responseLBS H.internalServerError500 [(H.hContentType, "text/plain")] "Something went wrong"      recvSendLoop fromClient = do-        (req, idxhdr, getSource) <- recvRequest conn ii addr fromClient+        (req, idxhdr, getSource) <- recvRequest settings conn ii addr fromClient         case settingsIntercept settings req of             Nothing -> do                 -- Let the application run for as long as it wants
Network/Wai/Handler/Warp/Settings.hs view
@@ -35,6 +35,14 @@       -- Default: do nothing.       --       -- Since 1.3.6+    , settingsNoParsePath :: Bool+      -- ^ Perform no parsing on the rawPathInfo.+      --+      -- This is useful for writing HTTP proxies.+      --+      -- Default: False+      --+      -- Since 2.0.3     }  -- | The default settings for the Warp server. See the individual settings for@@ -51,6 +59,7 @@     , settingsManager = Nothing     , settingsFdCacheDuration = 10     , settingsBeforeMainLoop = return ()+    , settingsNoParsePath = False     }  defaultExceptionHandler :: Maybe Request -> SomeException -> IO ()
warp.cabal view
@@ -1,5 +1,5 @@ Name:                warp-Version:             2.0.2.1+Version:             2.0.3 Synopsis:            A fast, light-weight web server for WAI applications. License:             MIT License-file:        LICENSE