wai-extra 3.0.0.1 → 3.0.1
raw patch · 2 files changed
+28/−1 lines, 2 files
Files
- Network/Wai/Middleware/Local.hs +26/−0
- wai-extra.cabal +2/−1
+ Network/Wai/Middleware/Local.hs view
@@ -0,0 +1,26 @@+{-# LANGUAGE OverloadedStrings, CPP #-}+-- | Only allow local connections.+--+module Network.Wai.Middleware.Local+ ( local+ ) where++import Network.Wai (Middleware,remoteHost, Response)+import Network.Socket (SockAddr(..))++-- | This middleware rejects non-local connections with a specific response. +-- It is useful when supporting web-based local applications, which would+-- typically want to reject external connections.++local :: Response -> Middleware+local resp f r k = case remoteHost r of+ SockAddrInet _ h | h == fromIntegral home+ -> f r k+#if !defined(mingw32_HOST_OS) && !defined(_WIN32)+ SockAddrUnix _ -> f r k+#endif+ _ -> k $ resp+ where+ home :: Integer+ home = 127 + (256 * 256 * 256) * 1+
wai-extra.cabal view
@@ -1,5 +1,5 @@ Name: wai-extra-Version: 3.0.0.1+Version: 3.0.1 Synopsis: Provides some basic WAI handlers and middleware. Description: The goal here is to provide common features without many dependencies. License: MIT@@ -56,6 +56,7 @@ Network.Wai.Middleware.AcceptOverride Network.Wai.Middleware.Autohead Network.Wai.Middleware.CleanPath+ Network.Wai.Middleware.Local Network.Wai.Middleware.RequestLogger Network.Wai.Middleware.Gzip Network.Wai.Middleware.Jsonp