From a4c63436226d3ad2c29ab5f634b40d8f82307d4e Mon Sep 17 00:00:00 2001 From: Filipe David Borba Manana Date: Sun, 1 Aug 2010 23:32:04 +0000 Subject: Merge revision 981341 from trunk: Bug fix - RegExp matching the atom 'undefined'. According to the HTTP 1.1 spec, if the Accept header is not specified by a client, it means the client accepts all media types. http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html git-svn-id: https://svn.apache.org/repos/asf/couchdb/branches/1.0.x@981342 13f79535-47bb-0310-9956-ffa450edef68 --- src/couchdb/couch_httpd.erl | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'src/couchdb/couch_httpd.erl') diff --git a/src/couchdb/couch_httpd.erl b/src/couchdb/couch_httpd.erl index b531d3d6..c99251e4 100644 --- a/src/couchdb/couch_httpd.erl +++ b/src/couchdb/couch_httpd.erl @@ -754,7 +754,16 @@ error_headers(#httpd{mochi_req=MochiReq}=Req, Code, ErrorStr, ReasonStr) -> {Code, [{"WWW-Authenticate", "Basic realm=\"server\""}]}; _False -> % if the accept header matches html, then do the redirect. else proceed as usual. - case re:run(MochiReq:get_header_value("Accept"), "html", [{capture, none}]) of + Accepts = case MochiReq:get_header_value("Accept") of + undefined -> + % According to the HTTP 1.1 spec, if the Accept + % header is missing, it means the client accepts + % all media types. + "html"; + Else -> + Else + end, + case re:run(Accepts, "html", [{capture, none}, caseless]) of nomatch -> {Code, []}; match -> -- cgit v1.2.3