hack2-contrib-2011.6.13: src/Hack2/Contrib/Middleware/XForwardedForToRemoteHost.hs
{-# LANGUAGE OverloadedStrings #-}
module Hack2.Contrib.Middleware.XForwardedForToRemoteHost (x_forwarded_for_to_remote_host) where
import Hack2
import Air.Env
import Prelude ()
import Data.ByteString.Lazy.Char8 ()
x_forwarded_for_to_remote_host :: Middleware
x_forwarded_for_to_remote_host app = \env ->
case env.httpHeaders.lookup "x-forwarded-for" of
Nothing -> app env
Just ip ->
let newHackHeaders = ("RemoteHost", ip) : env.hackHeaders
in
app - env {hackHeaders = newHackHeaders}