[Catalyst] Testserver dies under IE - patch
Jesper Krogh
jesper at krogh.cc
Tue Oct 3 11:51:51 CEST 2006
Hi all.
This is a small patch that makes the testserver survive Internet Explorer..
This is probably not the correct fix.. since that would be to find out
what the problem is.. Somehow it seems that the socket dissapears earlier
when IE it in the other end.
patch
--- /usr/share/perl5/Catalyst/Engine/HTTP.pm 2006-07-19
23:45:16.000000000 +0200
+++ lib/Catalyst/Engine/HTTP.pm 2006-10-03 11:43:42.000000000 +0200
@@ -305,13 +305,14 @@
my ( $self, $handle ) = @_;
my $remote_sockaddr = getpeername($handle);
- my ( undef, $iaddr ) = sockaddr_in($remote_sockaddr);
+ my $iaddr;
+ ( undef, $iaddr ) = sockaddr_in($remote_sockaddr) if $remote_sockaddr;
my $local_sockaddr = getsockname($handle);
my ( undef, $localiaddr ) = sockaddr_in($local_sockaddr);
my $data = {
- peername => gethostbyaddr( $iaddr, AF_INET ) || "localhost",
- peeraddr => inet_ntoa($iaddr) || "127.0.0.1",
+ peername => $iaddr ? gethostbyaddr( $iaddr, AF_INET ) ||
"localhost/Uknown",
+ peeraddr => $iaddr ? inet_ntoa($iaddr) : "127.0.0.1/Unknown",
localname => gethostbyaddr( $localiaddr, AF_INET ) || "localhost",
localaddr => inet_ntoa($localiaddr) || "127.0.0.1",
};
Stacktrace:
Use of uninitialized value in subroutine entry
at Socket::sockaddr_in(/usr/lib/perl/5.8/Socket.pm:198)
at
Catalyst::Engine::HTTP::_socket_data(/usr/share/perl5/Catalyst/Engine/HTTP.pm:308)
at
Catalyst::Engine::HTTP::_handler(/usr/share/perl5/Catalyst/Engine/HTTP.pm:220)
at
Catalyst::Engine::HTTP::run(/usr/share/perl5/Catalyst/Engine/HTTP.pm:172)
at Catalyst::run(/usr/share/perl5/Catalyst.pm:1754)
at main::(./script/nzdb_server.pl:54)
Bad arg length for Socket::unpack_sockaddr_in, length is 0, should be 16
at Socket::sockaddr_in(/usr/lib/perl/5.8/Socket.pm:198)
at
Catalyst::Engine::HTTP::_socket_data(/usr/share/perl5/Catalyst/Engine/HTTP.pm:308)
at
Catalyst::Engine::HTTP::_handler(/usr/share/perl5/Catalyst/Engine/HTTP.pm:220)
at
Catalyst::Engine::HTTP::run(/usr/share/perl5/Catalyst/Engine/HTTP.pm:172)
at Catalyst::run(/usr/share/perl5/Catalyst.pm:1754)
at main::(./script/nzdb_server.pl:54)
--
Jesper Krogh
More information about the Catalyst
mailing list