@@ -26,6 +26,7 @@ module Network.Wai.Application.Static
26 -- * WAI application
26 -- * WAI application
27 , StaticSettings (..)
27 , StaticSettings (..)
28 , staticApp
28 , staticApp
31import qualified Network.Wai as W
32import qualified Network.Wai as W
@@ -233,13 +234,17 @@ data StaticSettings = StaticSettings
235staticApp :: StaticSettings -> W.Application
236staticApp :: StaticSettings -> W.Application
236−staticApp _ req
237+staticApp set req = do
238+ let pieces = decodePathInfo $ S8.unpack $ W.pathInfo req
239+ staticAppPieces set pieces req
241+staticAppPieces :: StaticSettings -> [String] -> W.Application
242+staticAppPieces _ _ req
237 | W.requestMethod req /= "GET" = return $ W.responseLBS
243 | W.requestMethod req /= "GET" = return $ W.responseLBS
238 W.status405
244 W.status405
239 [("Content-Type", "text/plain")]
245 [("Content-Type", "text/plain")]
240 "Only GET is supported"
246 "Only GET is supported"
241−staticApp (StaticSettings folder indices mlisting getmime) req = liftIO $ do
247+staticAppPieces (StaticSettings folder indices mlisting getmime) pieces _ = liftIO $ do
242− let pieces = decodePathInfo $ S8.unpack $ W.pathInfo req
243 cp <- checkPieces folder indices pieces
248 cp <- checkPieces folder indices pieces
244 case cp of
249 case cp of
245 Redirect pieces' -> do
250 Redirect pieces' -> do