Hi, I have also tried your suggestion using alarm() but as I thought, it doesn't seem to work. Have you tried it under Windows? As far as I know alarm() doesn't work under Windows.
But you gave me an idea to try using a Windows Timer event. I will see if it works that way. Teddy ----- Original Message ----- From: "Chris Boyce" <[EMAIL PROTECTED]> To: "Octavian Rasnita" <[EMAIL PROTECTED]> Cc: "Ted Behling" <[EMAIL PROTECTED]>; <libwww@perl.org> Sent: Thursday, November 09, 2006 12:22 AM Subject: Re: timeout > This is not so much a solution, as it is an alternative to the LWP > timeout... > > I've had good luck just using an eval block around the request, and then > making a simple signal catcher to do something if the alarm times out: > > use LWP::UserAgent; > use HTTP::Cookies; > use HTTP::Headers; > use HTTP::Request; > use HTTP::Response; > > $SIG{ALRM} = sub { die "timeout\n"; }; > > $timeout=5; > > eval { > # Set the alarm clock for timeout seconds > alarm($timeout); > > # Run the request... > $http_response = $agent->request($request); > > # If we're here, then the request didn't get zapped by the alarm... > # reset the alarm to nada. > alarm(0); > }; > > The word "timeout" will appear in the response if the alarm goes off. > Sorry if this is crude, but it works great. > > > -Chris > > > On Thu, 2006-11-09 at 00:09 +0200, Octavian Rasnita wrote: > > Hi, > > > > I've also tried without that "-" before "timeout", but it doesn't work. I > > have also tried with $ua->timeout(5), but it doesn't work either. > > > > Here is the test script and its result: > > > > use strict; > > use LWP::UserAgent; > > > > my $begin = time(); > > > > my $ua = LWP::UserAgent->new(); > > $ua->timeout(5); > > > > print $ua->get("http://www.presaromana.ro/")->content; > > > > print time() - $begin; > > > > And the result is: > > 500 Can't connect to www.presaromana.ro:80 (connect: Unknown error) > > 23 > > > > So it takes 23 seconds instead of timing out after 5. > > > > Is it a bug in LWP, or a limitation of Windows, or I am doing something > > wrong? > > > > Thank you. > > > > Teddy > > > > ----- Original Message ----- > > From: "Ted Behling" <[EMAIL PROTECTED]> > > To: "Octavian Rasnita" <[EMAIL PROTECTED]>; <libwww@perl.org> > > Sent: Wednesday, November 08, 2006 8:22 PM > > Subject: RE: timeout > > > > > > True. Or, Octavian, just leave out the hyphen from your timeout > > parameter, as in: > > > > my $ua = LWP::UserAgent->new(timeout => 5); > > > > Ted Behling > > ISP Systems Analyst, Hargray Communications > > [EMAIL PROTECTED] > > > > -----Original Message----- > > From: Eamon Daly [mailto:[EMAIL PROTECTED] > > Sent: Wednesday, November 08, 2006 10:36 AM > > To: libwww@perl.org > > Cc: Octavian Rasnita > > Subject: Re: timeout > > > > From the LWP::UserAgent perldoc at > > > > http://search.cpan.org/~gaas/libwww-perl-5.805/lib/LWP/UserAgent.pm > > > > $ua->timeout( $secs ) > > Get/set the timeout value in seconds. The default timeout() value is > > 180 seconds, i.e. 3 minutes. > > > > So in your first example, it should be: > > > > use strict; > > use LWP::UserAgent; > > > > my $ua = LWP::UserAgent->new; > > $ua->timeout(5); > > > > print $ua->get("http://www.presaromana.ro/")->content; > > > > ____________________________________________________________ > > Eamon Daly > > > > > > > > ----- Original Message ----- > > From: "Octavian Rasnita" <[EMAIL PROTECTED]> > > To: <libwww@perl.org> > > Sent: Wednesday, November 08, 2006 8:37 AM > > Subject: timeout > > > > > > : Hi, > > : > > : I am trying to create a very simple www client that times out after 5 > > : seconds. I have tried the 2 examples below, but none of them are > > working. > > : They don't time out even though the target site cannot be found. > > : I think they time out after some more time. > > : > > : I have ran them under Windows 2000 with ActivePerl 5.8.8. > > : Is it possible to do what I want? > > : > > : Thanks. > > : > > : use strict; > > : use LWP::UserAgent; > > : > > : my $ua = LWP::UserAgent->new(-timeout => 5); > > : > > : print $ua->get("http://www.presaromana.ro/")->content; > > : > > : __END__ > > : > > : my $req = HTTP::Request->new("GET", "http://www.presaromana.ro/"); > > : my $res = $ua->request($req); > > : > > : print $res->content(); > > : > > : > > : Teddy > > : > > > > > > > -- > Chris Boyce > >