packages feed

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 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