summaryrefslogtreecommitdiff
path: root/Xerl/Page
diff options
context:
space:
mode:
Diffstat (limited to 'Xerl/Page')
-rw-r--r--Xerl/Page/Configure.pm8
-rw-r--r--Xerl/Page/Content.pm6
-rw-r--r--Xerl/Page/Document.pm7
-rw-r--r--Xerl/Page/Menu.pm5
-rw-r--r--Xerl/Page/Parameter.pm7
-rw-r--r--Xerl/Page/Templates.pm11
6 files changed, 32 insertions, 12 deletions
diff --git a/Xerl/Page/Configure.pm b/Xerl/Page/Configure.pm
index 7396db9..9429f25 100644
--- a/Xerl/Page/Configure.pm
+++ b/Xerl/Page/Configure.pm
@@ -42,7 +42,10 @@ sub parse($) {
my Xerl::Tools::FileIO $file =
Xerl::Tools::FileIO->new( 'path' => $self->get_config() );
- $file->fslurp();
+ if (-1 == $file->fslurp()) {
+ $self->set_shutdown(1);
+ return undef;
+ }
my $re = qr/^(.+?) *=(.+?) *\n?$/;
@@ -84,7 +87,8 @@ sub defaults($) {
Xerl::Tools::FileIO->new( 'path' => $redirect );
$file->fslurp();
my $location = $file->shift();
- Xerl::Main::Global::REDIRECT($location);
+ Xerl::Main::Global::REDIRECT( $location );
+ $self->set_shutdown(1);
}
my $alias = $self->get_hostroot() . 'alias:' . $self->get_host();
if ( -f $alias ) {
diff --git a/Xerl/Page/Content.pm b/Xerl/Page/Content.pm
index bea97c7..9100215 100644
--- a/Xerl/Page/Content.pm
+++ b/Xerl/Page/Content.pm
@@ -48,7 +48,11 @@ sub parse($) {
config => $config
);
- $xmlcontent->open();
+ if (-1 == $xmlcontent->open()) {
+ $config->set_shutdown(1);
+ return undef;
+ }
+
$xmlcontent->parse();
my Xerl::Page::Rules $rules = Xerl::Page::Rules->new( config => $config );
diff --git a/Xerl/Page/Document.pm b/Xerl/Page/Document.pm
index e2aacb1..13a8254 100644
--- a/Xerl/Page/Document.pm
+++ b/Xerl/Page/Document.pm
@@ -62,8 +62,11 @@ sub parse($) {
my Xerl::Tools::FileIO $io = Xerl::Tools::FileIO->new( path => $path );
- $io->fslurp();
- $io->print();
+ if (-1 == $io->fslurp()) {
+ $config->set_shutdown(1);
+ } else {
+ $io->print();
+ }
return undef;
}
diff --git a/Xerl/Page/Menu.pm b/Xerl/Page/Menu.pm
index b835148..326f508 100644
--- a/Xerl/Page/Menu.pm
+++ b/Xerl/Page/Menu.pm
@@ -75,7 +75,10 @@ sub get_menu($$$$) {
basename => 1,
);
- Xerl::Main::Global::REDIRECT( $config->get_404() ) unless $io->exists();
+ unless ($io->exists()) {
+ Xerl::Main::Global::REDIRECT( $config->get_404() );
+ $config->set_shutdown(1);
+ }
$io->dslurp();
my $dir = $io->get_array();
diff --git a/Xerl/Page/Parameter.pm b/Xerl/Page/Parameter.pm
index 2100323..e751de2 100644
--- a/Xerl/Page/Parameter.pm
+++ b/Xerl/Page/Parameter.pm
@@ -46,13 +46,12 @@ sub parse($) {
if ( $config->href_exists() ) {
print "Location: ", $config->get_href(), "\n\n";
- Xerl::Main::Global::SHUTDOWN();
-
+ config->set_shutdown(1);
}
elsif ( $config->env_exists() ) {
print "Content-Type: text/plain\n\n";
print "$_=", $ENV{$_}, "\n" for keys %ENV;
- Xerl::Main::Global::SHUTDOWN();
+ config->set_shutdown(1);
}
if ( $config->devel_exists() ) {
@@ -63,7 +62,7 @@ sub parse($) {
if ( $config->conf_exists() ) {
print "Content-Type: text/plain\n\n";
print "$_=", $config->{$_}, "\n" for keys %$config;
- Xerl::Main::Global::SHUTDOWN();
+ config->set_shutdown(1);
}
return $self;
diff --git a/Xerl/Page/Templates.pm b/Xerl/Page/Templates.pm
index 3f41320..84adf30 100644
--- a/Xerl/Page/Templates.pm
+++ b/Xerl/Page/Templates.pm
@@ -75,7 +75,11 @@ sub parse($) {
my Xerl::Tools::FileIO $io =
Xerl::Tools::FileIO->new( path => $cachepath . $cachefile );
- $io->fslurp();
+ if (-1 == $io->fslurp()) {
+ $config->set_shutdown(1);
+ return undef;
+ }
+
$self->set_array( $io->get_array() );
}
@@ -89,7 +93,10 @@ sub parse($) {
my Xerl::XML::Reader $xmlconfigreader =
Xerl::XML::Reader->new( path => $xmlconfigpath, config => $config );
- $xmlconfigreader->open();
+ if (-1 == $xmlconfigreader->open()) {
+ $config->set_shutdown(1);
+ return undef;
+ }
$xmlconfigreader->parse();
$config->set_xmlconfigrootobj( $xmlconfigreader->get_root() );