Skip Menu |

This queue is for tickets about the libwww-perl CPAN distribution.

Report information
The Basics
Id: 94959
Status: resolved
Priority: 0/
Queue: libwww-perl

People
Owner: Nobody in particular
Requestors: ppisar [...] redhat.com
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: 6.06
Fixed in: (no value)



Subject: Run tests against localhost instead of hostname
HTTP::Daemon->new()->url() returns a hostname in the URL. There is no better domain name than the hostname in case of any address. However that does not mean the hostname is resolvable and reachable over a network. Then the local tests are skipped. In my opinion, localhost is much better identifier in this case. Attached patch changes local tests to use localhost instead of the hostname.
Subject: 0001-Connect-to-localhost-instead-of-hostname.patch
From 2d7a479b39bb20a0d61f067ba6c2df92117fcb8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com> Date: Wed, 23 Apr 2014 12:45:38 +0200 Subject: [PATCH] Connect to localhost instead of hostname MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The hostname does not have to be resolvable nor reachable. It's just a machine name. Signed-off-by: Petr Písař <ppisar@redhat.com> --- t/local/http.t | 2 +- t/robot/ua-get.t | 2 +- t/robot/ua.t | 2 +- talk-to-ourself | 3 +-- 4 files changed, 4 insertions(+), 5 deletions(-) diff --git a/t/local/http.t b/t/local/http.t index 779cc21..534b4c8 100644 --- a/t/local/http.t +++ b/t/local/http.t @@ -20,7 +20,7 @@ if ($D eq 'daemon') { require HTTP::Daemon; - my $d = HTTP::Daemon->new(Timeout => 10); + my $d = HTTP::Daemon->new(Timeout => 10, LocalAddr => 'localhost'); print "Please to meet you at: <URL:", $d->url, ">\n"; open(STDOUT, $^O eq 'VMS'? ">nl: " : ">/dev/null"); diff --git a/t/robot/ua-get.t b/t/robot/ua-get.t index 5754c4b..bf24589 100644 --- a/t/robot/ua-get.t +++ b/t/robot/ua-get.t @@ -19,7 +19,7 @@ if ($D eq 'daemon') { require HTTP::Daemon; - my $d = new HTTP::Daemon Timeout => 10; + my $d = new HTTP::Daemon Timeout => 10, LocalAddr => 'localhost'; print "Please to meet you at: <URL:", $d->url, ">\n"; open(STDOUT, $^O eq 'MSWin32' ? ">nul" : $^O eq 'VMS' ? ">NL:" : ">/dev/null"); diff --git a/t/robot/ua.t b/t/robot/ua.t index 21ad5c8..11fafa8 100644 --- a/t/robot/ua.t +++ b/t/robot/ua.t @@ -19,7 +19,7 @@ if ($D eq 'daemon') { require HTTP::Daemon; - my $d = new HTTP::Daemon Timeout => 10; + my $d = new HTTP::Daemon Timeout => 10, LocalAddr => 'localhost'; print "Please to meet you at: <URL:", $d->url, ">\n"; open(STDOUT, $^O eq 'MSWin32' ? ">nul" : $^O eq 'VMS' ? ">NL:" : ">/dev/null"); diff --git a/talk-to-ourself b/talk-to-ourself index 6c0257a..b4acda2 100644 --- a/talk-to-ourself +++ b/talk-to-ourself @@ -9,8 +9,7 @@ require IO::Socket; if (@ARGV >= 2 && $ARGV[0] eq "--port") { my $port = $ARGV[1]; - require Sys::Hostname; - my $host = Sys::Hostname::hostname(); + my $host = 'localhost'; if (my $socket = IO::Socket::INET->new(PeerAddr => "$host:$port", Timeout => 5)) { require IO::Select; if (IO::Select->new($socket)->can_read(1)) { -- 1.9.0
From: ppisar [...] redhat.com
Dne St 23.dub.2014 06:58:43, ppisar napsal(a): Show quoted text
> HTTP::Daemon->new()->url() returns a hostname in the URL. There is no > better domain name than the hostname in case of any address. > > However that does not mean the hostname is resolvable and reachable > over a network. Then the local tests are skipped. In my opinion, > localhost is much better identifier in this case. > > Attached patch changes local tests to use localhost instead of the > hostname.
This was fixed in 6.15 by using "127.0.0.1" host. Still I think "localhost" is better because now it requires IPv4 support and will fail on pure IPv6 hosts.