diff options
author | John Christopher Anderson <jchris@apache.org> | 2009-04-18 20:15:44 +0000 |
---|---|---|
committer | John Christopher Anderson <jchris@apache.org> | 2009-04-18 20:15:44 +0000 |
commit | 3e47bfd6586f42f9fe8e49cea03c4df976c781a1 (patch) | |
tree | b3ae7a8203f2d4ec99a84762ea9aedda56864d88 /src/couchdb/couch_httpd.erl | |
parent | daa9d65a53dedaac5aeeb6394d4c0b6f99fa930c (diff) |
refactor main.js into many files and improve show/list error handling
git-svn-id: https://svn.apache.org/repos/asf/couchdb/trunk@766383 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/couchdb/couch_httpd.erl')
-rw-r--r-- | src/couchdb/couch_httpd.erl | 26 |
1 files changed, 11 insertions, 15 deletions
diff --git a/src/couchdb/couch_httpd.erl b/src/couchdb/couch_httpd.erl index a16f5fdd..5e150055 100644 --- a/src/couchdb/couch_httpd.erl +++ b/src/couchdb/couch_httpd.erl @@ -422,8 +422,8 @@ error_info({Error, Reason}) -> error_info(Error) -> {500, <<"unknown_error">>, couch_util:to_binary(Error)}. -send_error(_Req, {already_sent, _Error}) -> - ok; +send_error(_Req, {already_sent, Resp, _Error}) -> + {ok, Resp}; send_error(Req, Error) -> {Code, ErrorStr, ReasonStr} = error_info(Error), @@ -447,21 +447,17 @@ send_error(Req, Code, Headers, ErrorStr, ReasonStr) -> {[{<<"error">>, ErrorStr}, {<<"reason">>, ReasonStr}]}). +% give the option for list functions to output html or other raw errors +send_chunked_error(Resp, {_Error, {[{<<"body">>, Reason}]}}) -> + send_chunk(Resp, Reason), + send_chunk(Resp, []); + send_chunked_error(Resp, Error) -> {Code, ErrorStr, ReasonStr} = error_info(Error), - CType = Resp:get_header_value("Content-Type"), - case CType of - "text/html" -> - HtmlError = ?l2b([$\n, - "<html><body><h2>Error: ", ErrorStr, "</h2>", - "<pre>Reason: ", ReasonStr, "</pre>", $\n]), - send_chunk(Resp, HtmlError); - _Else -> - JsonError = {[{<<"code">>, Code}, - {<<"error">>, ErrorStr}, - {<<"reason">>, ReasonStr}]}, - send_chunk(Resp, ?l2b([$\n,?JSON_ENCODE(JsonError),$\n])) - end, + JsonError = {[{<<"code">>, Code}, + {<<"error">>, ErrorStr}, + {<<"reason">>, ReasonStr}]}, + send_chunk(Resp, ?l2b([$\n,?JSON_ENCODE(JsonError),$\n])), send_chunk(Resp, []). send_redirect(Req, Path) -> |