summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYorhel <git@yorhel.nl>2008-10-22 15:19:16 +0200
committerYorhel <git@yorhel.nl>2008-10-22 15:19:16 +0200
commit697d42c6ffcde0997dd3d8f07abb230ab414fd76 (patch)
tree7318af2f0ad2742aace0b64b96f1d8ca61c4d478
parent48f31010500af1f2ae492968fe1780e2a2ac6cca (diff)
Any handler can now return '404' to generate a 404 page
...that includes the error_404_handler, in that case the ugly default 404 handler will be used. The error_500_handlers can't return 404, though.
-rw-r--r--lib/YAWF.pm8
-rwxr-xr-xutil/vndb.pl2
2 files changed, 8 insertions, 2 deletions
diff --git a/lib/YAWF.pm b/lib/YAWF.pm
index eb74624..47b7706 100644
--- a/lib/YAWF.pm
+++ b/lib/YAWF.pm
@@ -147,7 +147,13 @@ sub handle_request {
}
# execute handler
- $han->($self);
+ my $ret = $han->($self);
+
+ # give 404 page if the handler returned 404...
+ if($ret && $ret eq '404') {
+ $ret = $self->{_YAWF}{error_404_handler}->($self) if $han ne $self->{_YAWF}{error_404_handler};
+ YAWF::DefaultHandlers::error_404($self) if $ret && $ret eq '404';
+ }
# execute post request handler, if any
$self->{_YAWF}{post_request_handler}->($self) if $self->{_YAWF}{post_request_handler};
diff --git a/util/vndb.pl b/util/vndb.pl
index 041e47a..943b849 100755
--- a/util/vndb.pl
+++ b/util/vndb.pl
@@ -45,6 +45,6 @@ sub page_404 {
my $self = shift;
my $fd = $self->resFd;
print $fd "Wheeeee~ output!\n";
- die "Hey, I died!\n";
+ return 404;
}