diff options
author | Yorhel <git@yorhel.nl> | 2008-10-22 15:19:16 +0200 |
---|---|---|
committer | Yorhel <git@yorhel.nl> | 2008-10-22 15:19:16 +0200 |
commit | 697d42c6ffcde0997dd3d8f07abb230ab414fd76 (patch) | |
tree | 7318af2f0ad2742aace0b64b96f1d8ca61c4d478 | |
parent | 48f31010500af1f2ae492968fe1780e2a2ac6cca (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.pm | 8 | ||||
-rwxr-xr-x | util/vndb.pl | 2 |
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; } |