summaryrefslogtreecommitdiff
path: root/Xerl
diff options
context:
space:
mode:
Diffstat (limited to 'Xerl')
-rw-r--r--Xerl/Main/Global.pm3
-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
-rw-r--r--Xerl/Tools/FileIO.pm6
-rw-r--r--Xerl/XML/Reader.pm11
9 files changed, 41 insertions, 23 deletions
diff --git a/Xerl/Main/Global.pm b/Xerl/Main/Global.pm
index 0ca2357..e810d53 100644
--- a/Xerl/Main/Global.pm
+++ b/Xerl/Main/Global.pm
@@ -64,9 +64,6 @@ sub REDIRECT ($) {
my $location = shift;
print "Status: 301 Moved Permanantly\n";
print "Location: $location\n\n";
-
- Xerl::Main::Global::SHUTDOWN();
-
return undef;
}
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() );
diff --git a/Xerl/Tools/FileIO.pm b/Xerl/Tools/FileIO.pm
index 6117bd0..25da55e 100644
--- a/Xerl/Tools/FileIO.pm
+++ b/Xerl/Tools/FileIO.pm
@@ -60,8 +60,10 @@ sub fslurp($) {
my Xerl::Tools::FileIO $self = $_[0];
my $path = SECUREPATH( $self->get_path() );
- Xerl::Main::Global::HTTP( 404, "Not found: $path" )
- unless -f $path;
+ unless (-f $path) {
+ Xerl::Main::Global::HTTP( 404, "Not found: $path" );
+ return -1;
+ }
open my $file, $path or Xerl::Main::Global::ERROR( $!, $path, caller() );
flock $file, 2;
diff --git a/Xerl/XML/Reader.pm b/Xerl/XML/Reader.pm
index 1a9288b..9fed848 100644
--- a/Xerl/XML/Reader.pm
+++ b/Xerl/XML/Reader.pm
@@ -41,11 +41,7 @@ sub open($) {
my Xerl::Tools::FileIO $xmlfile =
Xerl::Tools::FileIO->new( path => $self->get_path() );
- $xmlfile->fslurp();
-
- # Xerl::Main::Global::PLAIN($self->get_path());
- # Xerl::Main::Global::DEBUG(@{$xmlfile->get_array()});
-
+ return -1 if -1 == $xmlfile->fslurp();
$self->set_array( $xmlfile->get_array() );
return undef;
@@ -143,7 +139,10 @@ sub parse($) {
config => $config
);
- $reader->open();
+ if (-1 == $reader->open()) {
+ $config->set_shutdown(1);
+ return undef;
+ }
$reader->parse();
my Xerl::XML::Element $starttag =