diff options
| -rw-r--r-- | Xerl/Main/Global.pm | 3 | ||||
| -rw-r--r-- | Xerl/Page/Configure.pm | 8 | ||||
| -rw-r--r-- | Xerl/Page/Content.pm | 6 | ||||
| -rw-r--r-- | Xerl/Page/Document.pm | 7 | ||||
| -rw-r--r-- | Xerl/Page/Menu.pm | 5 | ||||
| -rw-r--r-- | Xerl/Page/Parameter.pm | 7 | ||||
| -rw-r--r-- | Xerl/Page/Templates.pm | 11 | ||||
| -rw-r--r-- | Xerl/Tools/FileIO.pm | 6 | ||||
| -rw-r--r-- | Xerl/XML/Reader.pm | 11 |
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 = |
