diff options
author | Filipe David Borba Manana <fdmanana@apache.org> | 2011-04-19 20:38:59 +0000 |
---|---|---|
committer | Filipe David Borba Manana <fdmanana@apache.org> | 2011-04-19 20:38:59 +0000 |
commit | 76ce001c041d6dfef1117f14a9e1e20f77f9df39 (patch) | |
tree | cf7557687aeb413bbd2c606106acdda6393d6c34 | |
parent | cd1ddcf1c5d6ce56698fb7c2e2c1f7ec21b38a14 (diff) |
Merged revision 1095200 from trunk
Don't set Content-Encoding headers with value "identity"
This is dictated by RFC 2616 and causes problems with Microsoft's ISA 2006 proxy.
Closes COUCHDB-1128.
Thanks Paul Davis and Andrew Gleave.
git-svn-id: https://svn.apache.org/repos/asf/couchdb/branches/1.1.x@1095204 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r-- | src/couchdb/couch_httpd_db.erl | 4 | ||||
-rwxr-xr-x | test/etap/140-attachment-comp.t | 16 |
2 files changed, 10 insertions, 10 deletions
diff --git a/src/couchdb/couch_httpd_db.erl b/src/couchdb/couch_httpd_db.erl index 85c439ba..0b8f891b 100644 --- a/src/couchdb/couch_httpd_db.erl +++ b/src/couchdb/couch_httpd_db.erl @@ -956,7 +956,9 @@ db_attachment_req(#httpd{method='GET',mochi_req=MochiReq}=Req, Db, DocId, FileNa {"Cache-Control", "must-revalidate"}, {"Content-Type", binary_to_list(Type)} ] ++ case ReqAcceptsAttEnc of - true -> + true when Enc =/= identity -> + % RFC 2616 says that the 'identify' encoding should not be used in + % the Content-Encoding header [{"Content-Encoding", atom_to_list(Enc)}]; _ -> [] diff --git a/test/etap/140-attachment-comp.t b/test/etap/140-attachment-comp.t index bf1b21c4..abe98432 100755 --- a/test/etap/140-attachment-comp.t +++ b/test/etap/140-attachment-comp.t @@ -19,7 +19,7 @@ test_db_name() -> main(_) -> test_util:init_code_path(), - etap:plan(86), + etap:plan(85), case (catch test()) of ok -> etap:end_tests(); @@ -254,8 +254,8 @@ test_get_1st_png_att_without_accept_encoding_header() -> [], [{sync, true}]), etap:is(Code, 200, "HTTP response code is 200"), - Gziped = lists:member({"content-encoding", "gzip"}, Headers), - etap:is(Gziped, false, "received body is not gziped"), + Encoding = couch_util:get_value("content-encoding", Headers), + etap:is(Encoding, undefined, "received body is not gziped"), etap:is( Body, test_png_data(), @@ -270,8 +270,8 @@ test_get_1st_png_att_with_accept_encoding_gzip() -> [], [{sync, true}]), etap:is(Code, 200, "HTTP response code is 200"), - Gziped = lists:member({"content-encoding", "gzip"}, Headers), - etap:is(Gziped, false, "received body is not gziped"), + Encoding = couch_util:get_value("content-encoding", Headers), + etap:is(Encoding, undefined, "received body is not gziped"), etap:is( Body, test_png_data(), @@ -286,10 +286,8 @@ test_get_1st_png_att_with_accept_encoding_deflate() -> [], [{sync, true}]), etap:is(Code, 200, "HTTP response code is 200"), - Deflated = lists:member({"content-encoding", "deflate"}, Headers), - etap:is(Deflated, false, "received body is not deflated"), - Gziped = lists:member({"content-encoding", "gzip"}, Headers), - etap:is(Gziped, false, "received body is not gziped"), + Encoding = couch_util:get_value("content-encoding", Headers), + etap:is(Encoding, undefined, "received body is in identity form"), etap:is( Body, test_png_data(), |