Bug#775918: libhttp-server-simple-perl: Cannot determine client ip-address when using ssl in net_server.

Klaas Nijkes klaas at nijkes.net
Wed Jan 21 14:23:03 UTC 2015


Package: libhttp-server-simple-perl
Version: 0.44-1
Severity: normal

Dear Maintainer,

I use an overriden version of the module Net::Server::Fork as net_server.
This module uses the ssl-protocol in combination with IPv4.
In the function handle_request it is now not possible to determine the ip-address and tcp-port of the client.

This problem can be fixed with the following patch on /usr/share/perl5/HTTP/Server/Simple.pm:

@@ -386,6 +387,12 @@
         my $remote_sockaddr = getpeername( $self->stdio_handle );
         my ( $iport, $iaddr ) = $remote_sockaddr ? sockaddr_in($remote_sockaddr) : (undef,undef);
         my $peeraddr = $iaddr ? ( inet_ntoa($iaddr) || "127.0.0.1" ) : '127.0.0.1';
+        my $server = shift;
+        if ($server && $server->{'server'}) {
+            $self->{'server'} = $server->{'server'};
+            $peeraddr = $self->{'server'}->{'peeraddr'} if ($self->{'server'}->{'peeraddr'});
+            $iport = $self->{'server'}->{'peerport'} if ($self->{'server'}->{'peerport'});
+        }
         
         my ( $method, $request_uri, $proto ) = $self->parse_request;


The changes make it possible to use the peeraddr and peerport from
Net::Server, which are passed to the process_request function since version
2.000.




-- System Information:
Debian Release: 7.8
  APT prefers stable-updatee
  APT policy: (500, 'stable-updates'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 3.2.0-4-amd64 (SMP w/1 CPU core)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) (ignored: LC_ALL set to en_US.UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages libhttp-server-simple-perl depends on:
ii  perl  5.14.2-21+deb7u2

libhttp-server-simple-perl recommends no packages.

libhttp-server-simple-perl suggests no packages.

-- no debconf information



More information about the pkg-perl-maintainers mailing list