App-HTTP_Proxy_IMP
view release on metacpan or search on metacpan
examples/DelayRequest.pm view on Meta::CPAN
sub new_analyzer {
my ($class,%args) = @_;
my $self = $class->SUPER::new_analyzer(%args);
$self->run_callback(
# we don't need to look at response
[ IMP_PASS,1,IMP_MAXOFFSET ],
);
return $self;
}
sub validate_cfg {
my ($class,%cfg) = @_;
delete $cfg{delay};
return $class->SUPER::validate_cfg(%cfg);
}
sub data {
my ($self,$dir,$data,$offset,$type) = @_;
if ( $dir == 0 # request
&& $type == IMP_DATA_HTTPRQ_HEADER # header
&& $data =~m{\AGET ((http://[^/]+/)[^\s]*)}
) {
if(0) {
my ($base,$path) = ($2,$1);
examples/ReplaceUA.pm view on Meta::CPAN
sub new_analyzer {
my ($class,%args) = @_;
my $self = $class->SUPER::new_analyzer(%args);
$self->run_callback(
# we don't need to look at response
[ IMP_PASS,1,IMP_MAXOFFSET ],
);
return $self;
}
sub validate_cfg {
my ($class,%cfg) = @_;
delete $cfg{ua};
return $class->SUPER::validate_cfg(%cfg);
}
sub request_hdr {
my ($self,$hdr) = @_;
my $len = length($hdr) or return;
$hdr =~s{^User-Agent:\s*(.*\n( .*\n)*)}{}sg;
my $ua = $self->{factory_args}{ua} || $UA;
$hdr =~s{\n}{\nUser-Agent: $ua\r\n}img;
#warn $hdr;
$self->run_callback(
lib/App/HTTP_Proxy_IMP.pm view on Meta::CPAN
my $found;
for my $prefix ('', map { "${_}::" } @$ns) {
my $mod = $prefix.$f;
if ( eval "require $mod" ) {
$found = $mod;
last;
}
}
croak("IMP module $f could not be loaded: $@") if ! $found;
my %args = $args ? $found->str2cfg($args) :();
my @err = $found->validate_cfg(%args);
die "bad config for $found: @err" if @err;
push @mod, $found->new_factory(%args, eventlib => $ev )
}
my $logsub = $self->{logrx} && do {
my $rx = $self->{logrx};
sub {
my ($level,$msg,$dir,$off,$len) = @_;
$level =~ $rx or return;
print STDERR "[$level]($dir:$off,$len) $msg\n";
lib/App/HTTP_Proxy_IMP/IMP/FakeResponse.pm view on Meta::CPAN
sub new_factory {
my ($class,%args) = @_;
my $dir = $args{root} or croak("no root directory given");
-d $dir && -r _ && -x _ or croak("cannot use base dir $dir: $!");
my $obj = $class->SUPER::new_factory(%args);
$obj->{root} = $dir;
return $obj;
}
sub validate_cfg {
my ($class,%args) = @_;
my $dir = delete $args{root};
delete $args{ignore_parameters};
my @err = $class->SUPER::validate_cfg(%args);
if ( ! $dir ) {
push @err, "no 'root' given";
} elsif ( ! -d $dir || ! -r _ || ! -x _ ) {
push @err, "cannot access root dir $dir";
}
return @err;
}
sub request_hdr {
my ($self,$hdr) = @_;
( run in 0.500 second using v1.01-cache-2.11-cpan-beeb90c9504 )