|
Lines 52-65
sub call {
Link Here
|
| 52 |
my $env = shift; |
52 |
my $env = shift; |
| 53 |
|
53 |
|
| 54 |
my $reverse_proxy_ip_header = C4::Context->config('reverse_proxy_ip_header'); |
54 |
my $reverse_proxy_ip_header = C4::Context->config('reverse_proxy_ip_header'); |
| 55 |
if ( $reverse_proxy_ip_header && $env->{$reverse_proxy_ip_header} ) { |
55 |
my $header = $reverse_proxy_ip_header ? CGI->http($reverse_proxy_ip_header) : undef; |
| 56 |
my @trusted_proxy = $self->trusted_proxy ? @{ $self->trusted_proxy } : undef; |
56 |
$header ||= CGI->http('HTTP_X_FORWARDED_FOR'); # If custom header is not set, fallback to X-Forwarded-For |
| 57 |
|
57 |
if ($header) { |
| 58 |
if (@trusted_proxy) { |
58 |
my $addr = get_real_ip( $env->{REMOTE_ADDR}, $header ); |
| 59 |
my $addr = get_real_ip( $env->{REMOTE_ADDR}, $env->{$reverse_proxy_ip_header}, \@trusted_proxy ); |
59 |
$ENV{REMOTE_ADDR} = $addr; |
| 60 |
$ENV{REMOTE_ADDR} = $addr; |
60 |
$env->{REMOTE_ADDR} = $addr; |
| 61 |
$env->{REMOTE_ADDR} = $addr; |
|
|
| 62 |
} |
| 63 |
} |
61 |
} |
| 64 |
|
62 |
|
| 65 |
return $self->app->($env); |
63 |
return $self->app->($env); |
| 66 |
- |
|
|