Skip to content

Commit

Permalink
support useragent, timeout, run handler
Browse files Browse the repository at this point in the history
  • Loading branch information
mala committed Apr 28, 2010
1 parent 1598768 commit 4d3a648
Showing 1 changed file with 36 additions and 1 deletion.
37 changes: 36 additions & 1 deletion lib/AnyEvent/Curl/Compat/LWP.pm
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,49 @@ use warnings;
use Guard;
use AnyEvent::Curl;
use base qw(LWP::UserAgent);
use Data::Dumper;

our $RUN_HANDLER = 1;

sub request {
my($self, $request, $arg, $size, $previous) = @_;
warn "use Curl";
my $ua = $self;
# set headers, useragent etc.
$ua->prepare_request($request);
$ua->timeout;
warn Dumper $self;
warn Dumper $request;

my $curl = AnyEvent::Curl->new;
$curl->setopt(timeout => $self->timeout);

my $cv = $curl->add($request);
$curl->start;
$cv->recv;
my $res = $cv->recv;

if ($RUN_HANDLER) {
my %skip_h;
my $response = $res->http_response;
$ua->run_handlers( "response_header", $response );

for my $h ( $ua->handlers( "response_data", $response ) ) {
next if $skip_h{$h};
unless (
$h->{callback}->( $response, $ua, $h, $response->content ) )
{
$skip_h{$h}++;
}
}
delete $response->{handlers}{response_data};
delete $response->{handlers} unless %{ $response->{handlers} };

$ua->run_handlers( "response_done", $response );
return $response;
}
else {
return $res;
}
}

sub replace_original {
Expand Down

0 comments on commit 4d3a648

Please sign in to comment.