X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=lib%2FPublicInbox%2FHTTP.pm;h=6c4c20d7cf801663af01beb71d3676bc941c6479;hb=b38de6f02fa04e36b881d2aad9c7f792beb0b6a1;hp=17e7447545ca145a262bc055d60c338dcbcf050a;hpb=b8e30717b529d6461190b54efa8c6402197cdd4e;p=public-inbox.git diff --git a/lib/PublicInbox/HTTP.pm b/lib/PublicInbox/HTTP.pm index 17e74475..6c4c20d7 100644 --- a/lib/PublicInbox/HTTP.pm +++ b/lib/PublicInbox/HTTP.pm @@ -11,7 +11,7 @@ package PublicInbox::HTTP; use strict; use warnings; use base qw(Danga::Socket); -use fields qw(httpd env rbuf input_left); +use fields qw(httpd env rbuf input_left remote_addr remote_port); use Fcntl qw(:seek); use HTTP::Parser::XS qw(parse_http_request); # supports pure Perl fallback use HTTP::Status qw(status_message); @@ -38,6 +38,8 @@ sub new ($$$) { $self->SUPER::new($sock); $self->{httpd} = $httpd; $self->{rbuf} = ''; + ($self->{remote_addr}, $self->{remote_port}) = + PublicInbox::Daemon::host_with_port($addr); $self->watch_read(1); $self; } @@ -113,8 +115,8 @@ sub app_dispatch ($) { my ($self) = @_; $self->watch_read(0); my $env = $self->{env}; - $env->{REMOTE_ADDR} = $self->peer_ip_string; # Danga::Socket - $env->{REMOTE_PORT} = $self->{peer_port}; # set by peer_ip_string + $env->{REMOTE_ADDR} = $self->{remote_addr}; + $env->{REMOTE_PORT} = $self->{remote_port}; if (my $host = $env->{HTTP_HOST}) { $host =~ s/:(\d+)\z// and $env->{SERVER_PORT} = $1; $env->{SERVER_NAME} = $host;