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 /lib | |
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.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/YAWF.pm | 8 |
1 files changed, 7 insertions, 1 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}; |