X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=src%2FNet.pl;h=035ceba84001833a50b4d58c36c0cb62fa9936ac;hb=6347aa7bd7d649273a92c66190507cc7b41a6278;hp=5a4f0a5774d9d938966593ef8762d7cbbd9b231e;hpb=b3c9a0a17c1049d3ec6130239d85f00ff80be9e6;p=infobot.git diff --git a/src/Net.pl b/src/Net.pl index 5a4f0a5..035ceba 100644 --- a/src/Net.pl +++ b/src/Net.pl @@ -5,9 +5,9 @@ # Created: 20000309 # -if (&IsParam("useStrict")) { use strict; } +use strict; -use vars qw(%ftp); +use vars qw(%ftp %param); # Usage: &ftpGet($host,$dir,$file,[$lfile]); sub ftpGet { @@ -22,10 +22,7 @@ sub ftpGet { ### 'BlockSize' => 1024, # ??? ); - if ($@) { - &ERROR("FTP: $@."); - return; - } + return if ($@); # login. if ($ftp->login()) { @@ -50,14 +47,14 @@ sub ftpGet { if ($size = $ftp->size($file)) { &status("FTP: file size is $size") if ($verbose_ftp); my $thisfile = $file || $lfile; - &DEBUG("lfile => '$lfile'."); + if ( -f $thisfile) { $lsize = -s $thisfile; if ($_ != $lsize) { &status("FTP: local size is $lsize; downloading.") if ($verbose_ftp); } else { &status("FTP: same size; skipping."); - &system("touch $thisfile"); # lame hack. + system("touch $thisfile"); # lame hack. $ftp->quit(); return 1; } @@ -68,7 +65,7 @@ sub ftpGet { return 0; } - my $start_time = &gettimeofday(); + my $start_time = &timeget(); if (defined $lfile) { &status("FTP: getting $file as $lfile.") if ($verbose_ftp); $ftp->get($file,$lfile); @@ -76,15 +73,15 @@ sub ftpGet { &status("FTP: getting $file.") if ($verbose_ftp); $ftp->get($file); } - &DEBUG("FTP: remsize => '$size'."); + if (defined $lsize) { &DEBUG("FTP: locsize => '$lsize'."); if ($size != $lsize) { - &WARN("FTP: downloaded file seems truncated. FIXME."); + &FIXME("FTP: downloaded file seems truncated."); } } - my $delta_time = &gettimeofday() - $start_time; + my $delta_time = &timedelta($start_time); if ($delta_time > 0 and $verbose_ftp) { &status(sprintf("FTP: %.02f sec to complete.", $delta_time)); my ($rateunit,$rate) = ("B", $size / $delta_time); @@ -110,10 +107,7 @@ sub ftpList { &status("FTP: opening connection to $host.") if ($verbose_ftp); my $ftp = Net::FTP->new($host,'Timeout'=>60); - if ($@) { -### &ERROR("FTP: $@."); - return; - } + return if ($@); # login. if ($ftp->login()) { @@ -151,6 +145,7 @@ sub ftpList { ### LWP. # Usage: &getURL($url, [$post]); +# TODO: rename this to getHTTP sub getURL { my ($url,$post) = @_; my ($ua,$res,$req); @@ -186,14 +181,19 @@ sub getURL { sub getURLAsFile { my ($url,$file) = @_; my ($ua,$res,$req); + my $time = time(); - return unless &loadPerlModule("LWP::Simple"); + unless (&loadPerlModule('LWP::UserAgent')) { + &::DEBUG('getURLAsFile: LWP::UserAgent not installed'); + return; + } -### PROXY NOT SUPPORTED WITH SIMPLE? -### $ua->proxy('http', $param{'httpProxy'}) if &IsParam("httpProxy"); - my $time = time(); + $ua = new LWP::UserAgent; + $ua->proxy('http', $param{'httpProxy'}) if &IsParam("httpProxy"); + $req = HTTP::Request->new('GET', $url); &status("getURLAsFile: getting '$url' as '$file'"); - my $retval = getstore($url, $file); + $res = $ua->request($req, $file); + my $delta_time = time() - $time; if ($delta_time) { my $size = -s $file || 0; @@ -201,7 +201,7 @@ sub getURLAsFile { &status("getURLAsFile: Done. ($rate kB/sec)"); } - return $retval; + return $res; } 1;