Apache2-ASP
view release on metacpan or search on metacpan
lib/Apache2/ASP/HTTPContext.pm view on Meta::CPAN
{
my $headers_in = HTTP::Headers->new();
while( my ($k,$v) = each(%$h) )
{
$headers_in->push_header( $k => $v );
}# end while()
$s->{headers_in} = $headers_in;
}# end if()
}# end _setup_headers_in()
#==============================================================================
sub do_disable_session_state
{
my ($s) = @_;
my ($uri) = split /\?/, $s->r->uri;
my ($yes) = grep { $_->disable_session } grep {
if( my $pattern = $_->uri_match )
{
$uri =~ m/$pattern/
}
else
{
$uri eq $_->uri_equals;
}# end if()
} $s->config->web->disable_persistence;
return $yes;
}# end do_disable_session_state()
#==============================================================================
sub do_disable_application_state
{
my ($s) = @_;
my ($uri) = split /\?/, $s->r->uri;
my ($yes) = grep { $_->disable_application } grep {
if( my $pattern = $_->uri_match )
{
$uri =~ m/$pattern/
}
else
{
$uri eq $_->uri_equals;
}# end if()
} $s->config->web->disable_persistence;
return $yes;
}# end do_disable_application_state()
#==============================================================================
sub execute
{
my ($s, $args) = @_;
# local $SIG{__DIE__} = \&Carp::confess;
return 404 unless $s->handler;
if( defined(my $preinit_res = $s->do_preinit) )
{
return $preinit_res;
}# end if()
# Set up and execute any matching request filters:
my $resolver = $s->config->web->filter_resolver;
$s->_load_class( $resolver );
foreach my $filter ( $resolver->new()->resolve_request_filters( $s->r->uri ) )
{
$s->_load_class( $filter->class );
$filter->class->init_asp_objects( $s );
my $res = $s->handle_phase(sub{ $filter->class->new()->run( $s ) });
if( defined($res) && $res != -1 )
{
return $res;
}# end if()
}# end foreach()
my $start_res = $s->handle_phase( $s->global_asa->can('Script_OnStart') );
return $start_res if defined( $start_res );
$s->_load_class( $s->config->web->handler_runner );
eval {
$s->_load_class( $s->handler );
$s->config->web->handler_runner->new()->run_handler( $s->handler, $args );
};
if( $@ )
{
$s->server->{LastError} = $@;
return $s->handle_error;
}# end if()
$s->response->Flush;
my $res = $s->end_request();
# if( $s->page && $s->page->directives->{OutputCache} && defined($s->{_cache_buffer}) )
# {
# if( $res == 200 || $res == 0 )
# {
# $s->page->_write_cache( \$s->{_cache_buffer} );
# }# end if()
# }# end if()
$res = 0 if $res =~ m/^200/;
return $res;
}# end execute()
#==============================================================================
#sub _setup_inc
#{
# my $s = shift;
#
# my $www_root = $s->config->web->www_root;
# push @INC, $www_root unless grep { $_ eq $www_root } @INC;
# my %libs = map { $_ => 1 } @INC;
# push @INC, grep { ! $libs{$_} } $s->config->system->libs;
#}# end _setup_inc()
( run in 0.597 second using v1.01-cache-2.11-cpan-39bf76dae61 )