diff options
author | Filipe David Borba Manana <fdmanana@apache.org> | 2010-08-01 23:30:15 +0000 |
---|---|---|
committer | Filipe David Borba Manana <fdmanana@apache.org> | 2010-08-01 23:30:15 +0000 |
commit | 69360c426a49286b8d32cc9022af3c02a362cdf2 (patch) | |
tree | 3128321f58dacdc691532545645b3c37881734de /src | |
parent | 8817952cec3cfd6b3da949437f78c5caa7c70566 (diff) |
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/trunk@981341 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src')
-rw-r--r-- | src/couchdb/couch_httpd.erl | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/couchdb/couch_httpd.erl b/src/couchdb/couch_httpd.erl index 23ff7f99..4d1bd2ea 100644 --- a/src/couchdb/couch_httpd.erl +++ b/src/couchdb/couch_httpd.erl @@ -777,7 +777,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 -> |