summaryrefslogtreecommitdiffstats
path: root/perl-install/http.pm
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install/http.pm')
-rw-r--r--perl-install/http.pm19
1 files changed, 16 insertions, 3 deletions
diff --git a/perl-install/http.pm b/perl-install/http.pm
index fbf6c001c..eb8ca0a09 100644
--- a/perl-install/http.pm
+++ b/perl-install/http.pm
@@ -1,17 +1,19 @@
-package http;
+package http; # $Id$
use IO::Socket;
use install_any;
+use network;
my $sock;
-sub getFile($) {
+sub getFile {
local($^W) = 0;
my ($host, $port, $path) = $ENV{URLPREFIX} =~ m,^http://([^/:]+)(?::(\d+))?(/\S*)?$,;
- $path .= "/" . install_any::relGetFile($_[0]);
+ $host = network::resolv($host);
+ $path .= "/$_[0]";
$sock->close if $sock;
$sock = IO::Socket::INET->new(PeerAddr => $host,
@@ -24,6 +26,17 @@ sub getFile($) {
"Host: $host" . ($port && ":$port"),
"User-Agent: DrakX/vivelinuxabaszindozs",
"", "");
+
+ #- skip until empty line
+ local $_;
+ my ($now, $last) = 0;
+ do {
+ $last = $now;
+ sysread($sock, $_, 1) || die;
+ sysread($sock, $_, 1) || die if /\015/;
+ $now = /\012/;
+ } until ($now && $last);
+
$sock;
}