%% @author Justin Sheehy %% @author Andy Gross %% @author Jeremy Latt %% @copyright 2007-2008 Basho Technologies %% %% Licensed under the Apache License, Version 2.0 (the "License"); %% you may not use this file except in compliance with the License. %% You may obtain a copy of the License at %% %% http://www.apache.org/licenses/LICENSE-2.0 %% %% Unless required by applicable law or agreed to in writing, software %% distributed under the License is distributed on an "AS IS" BASIS, %% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. %% See the License for the specific language governing permissions and %% limitations under the License. %% @doc Some fairly minimal error message formatters. -module(webmachine_error_handler). -author('Justin Sheehy '). -author('Andy Gross '). -author('Jeremy Latt '). -export([render_error/3]). render_error(Code, Req, Reason) -> case Req:has_response_body() of true -> Req:response_body(); false -> render_error_body(Code, Req, Reason) end. render_error_body(404, Req, _Reason) -> Req:add_response_header("Content-Type", "text/html"), <<"404 Not Found

Not Found

The requested document was not found on this server.


mochiweb+webmachine web server
">>; render_error_body(500, Req, Reason) -> Req:add_response_header("Content-Type", "text/html"), error_logger:error_msg("webmachine error: path=~p~n~p~n", [Req:path(), Reason]), STString = io_lib:format("~p", [Reason]), ErrorStart = "500 Internal Server Error

Internal Server Error

The server encountered an error while processing this request:
",
    ErrorEnd = "


mochiweb+webmachine web server
", ErrorIOList = [ErrorStart,STString,ErrorEnd], erlang:iolist_to_binary(ErrorIOList); render_error_body(501, Req, _Reason) -> Req:add_response_header("Content-Type", "text/html"), error_logger:error_msg("Webmachine does not support method ~p~n", [Req:method()]), ErrorStr = io_lib:format("501 Not Implemented" "

Internal Server Error

" "The server does not support the ~p method.
" "


mochiweb+webmachine web server" "
", [Req:method()]), erlang:iolist_to_binary(ErrorStr); render_error_body(503, Req, _Reason) -> Req:add_response_header("Content-Type", "text/html"), error_logger:error_msg("Webmachine cannot fulfill" " the request at this time"), ErrorStr = "503 Service Unavailable" "

Service Unavailable

" "The server is currently unable to handle " "the request due to a temporary overloading " "or maintenance of the server.
" "


mochiweb+webmachine web server" "
", list_to_binary(ErrorStr).