{-# 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 forall a. Eq a => a -> a -> Bool
== 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 forall a. Num a => a -> a -> a
+ (Integer
256 forall a. Num a => a -> a -> a
* Integer
256 forall a. Num a => a -> a -> a
* Integer
256)