{-# LANGUAGE CPP #-}
module Network.Wai.Middleware.Local (
local,
) where
import Network.Socket (SockAddr (..))
import Network.Wai (Middleware, Response, remoteHost)
local :: Response -> Middleware
local :: Response -> Middleware
local Response
resp Application
f Request
r Response -> IO ResponseReceived
k = case Request -> SockAddr
remoteHost Request
r of
SockAddrInet PortNumber
_ HostAddress
h
| HostAddress
h HostAddress -> HostAddress -> Bool
forall a. Eq a => a -> a -> Bool
== Integer -> HostAddress
forall a b. (Integral a, Num b) => a -> b
fromIntegral Integer
home ->
Application
f Request
r Response -> IO ResponseReceived
k
#if !defined(mingw32_HOST_OS) && !defined(_WIN32)
SockAddrUnix String
_ -> Application
f Request
r Response -> IO ResponseReceived
k
#endif
SockAddr
_ -> Response -> IO ResponseReceived
k Response
resp
where
home :: Integer
home :: Integer
home = Integer
127 Integer -> Integer -> Integer
forall a. Num a => a -> a -> a
+ (Integer
256 Integer -> Integer -> Integer
forall a. Num a => a -> a -> a
* Integer
256 Integer -> Integer -> Integer
forall a. Num a => a -> a -> a
* Integer
256)