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