From: Christian Hansen Date: Tue, 24 May 2005 18:29:14 +0000 (+0000) Subject: Fixed: don't autmoatically resolve hostnames X-Git-Tag: 5.7099_04~1367 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=commitdiff_plain;h=b4ca0ee8572ea5c33295686b7f786ab5ff43a2b7 Fixed: don't autmoatically resolve hostnames --- diff --git a/lib/Catalyst/Engine.pm b/lib/Catalyst/Engine.pm index 32a03d8..fd510b3 100644 --- a/lib/Catalyst/Engine.pm +++ b/lib/Catalyst/Engine.pm @@ -467,10 +467,9 @@ sub prepare { my $method = $c->req->method || ''; my $path = $c->req->path || ''; - my $hostname = $c->req->hostname || ''; my $address = $c->req->address || ''; - $c->log->debug(qq/"$method" request for "$path" from $hostname($address)/) + $c->log->debug(qq/"$method" request for "$path" from $address/) if $c->debug; if ( $c->request->method eq 'POST' and $c->request->content_length ) { diff --git a/lib/Catalyst/Engine/HTTP/Daemon.pm b/lib/Catalyst/Engine/HTTP/Daemon.pm index dba9ea1..92faf42 100644 --- a/lib/Catalyst/Engine/HTTP/Daemon.pm +++ b/lib/Catalyst/Engine/HTTP/Daemon.pm @@ -3,7 +3,7 @@ package Catalyst::Engine::HTTP::Daemon; use strict; use base 'Catalyst::Engine::HTTP::Base'; -use IO::Socket qw(AF_INET INADDR_ANY SOCK_STREAM SOMAXCONN ); +use IO::Socket qw( SOCK_STREAM SOMAXCONN ); =head1 NAME @@ -48,11 +48,8 @@ sub handler { $request->uri->host( $request->header('Host') || $client->sockhost ); $request->uri->port( $client->sockport ); - my $hostname = gethostbyaddr( $client->peeraddr, AF_INET ); - my $http = Catalyst::Engine::HTTP::Base::struct->new( address => $client->peerhost, - hostname => $hostname || $client->peerhost, request => $request, response => HTTP::Response->new ); @@ -84,6 +81,10 @@ sub run { ReuseAddr => 1, Type => SOCK_STREAM, ); + + unless ( defined $daemon ) { + die( qq/Failed to create daemon. Reason: '$!'/ ); + } my $base = URI->new( $daemon->url )->canonical; diff --git a/lib/Catalyst/Request.pm b/lib/Catalyst/Request.pm index 41f8d8d..dd1f312 100644 --- a/lib/Catalyst/Request.pm +++ b/lib/Catalyst/Request.pm @@ -3,9 +3,11 @@ package Catalyst::Request; use strict; use base 'Class::Accessor::Fast'; +use IO::Socket qw[AF_INET inet_aton]; + __PACKAGE__->mk_accessors( - qw/action address arguments body base cookies headers hostname match - method parameters path protocol secure snippets uploads user/ + qw/action address arguments body base cookies headers match method + parameters path protocol secure snippets uploads user/ ); *args = \&arguments; @@ -133,9 +135,25 @@ Returns an L object containing the headers. =item $req->hostname -Contains the hostname of the remote user. +Lookup the current users DNS hostname. print $c->request->hostname + +=cut + +sub hostname { + my $self = shift; + + if ( @_ ) { + $self->{hostname} = shift; + } + + unless ( $self->{hostname} ) { + $self->{hostname} = gethostbyaddr( inet_aton( $self->address ), AF_INET ); + } + + return $self->{hostname}; +} =item $req->input