diff options
author | Robert Newson <rnewson@apache.org> | 2013-01-06 21:33:36 +0000 |
---|---|---|
committer | Robert Newson <rnewson@apache.org> | 2013-01-06 21:33:36 +0000 |
commit | b2f7eaebbcb12f0f1953647c12964edcc5098d18 (patch) | |
tree | b3c84ef7efb2d26c28fe635204976b07a313c985 | |
parent | 78147f5275a73853e013168e676880a4d37ffda4 (diff) | |
download | couchdb-1637-insensitive-replicator.tar.gz |
Get headers case-insensitively1637-insensitive-replicator
-rw-r--r-- | src/couch_replicator/src/couch_replicator_api_wrap.erl | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/couch_replicator/src/couch_replicator_api_wrap.erl b/src/couch_replicator/src/couch_replicator_api_wrap.erl index dcd6ca8ca..29386a62d 100644 --- a/src/couch_replicator/src/couch_replicator_api_wrap.erl +++ b/src/couch_replicator/src/couch_replicator_api_wrap.erl @@ -169,7 +169,7 @@ open_doc_revs(#httpdb{} = HttpDb, Id, Revs, Options, Fun, Acc) -> fun(200, Headers, StreamDataFun) -> remote_open_doc_revs_streamer_start(Self), {<<"--">>, _, _} = couch_httpd:parse_multipart_request( - get_value("Content-Type", Headers), + header_value("Content-Type", Headers), StreamDataFun, fun mp_parse_mixed/1) end), @@ -510,7 +510,7 @@ receive_docs(Streamer, UserFun, Ref, UserAcc) -> {started_open_doc_revs, NewRef} -> restart_remote_open_doc_revs(Ref, NewRef); {headers, Ref, Headers} -> - case get_value("content-type", Headers) of + case header_value("content-type", Headers) of {"multipart/related", _} = ContentType -> case doc_from_multi_part_stream( ContentType, @@ -776,3 +776,15 @@ stream_doc({LenLeft, Id}) when LenLeft > 0 -> receive {data, Ref, Data} -> {ok, Data, {LenLeft - iolist_size(Data), Id}} end. + +header_value(Key, Headers) -> + header_value(Key, Headers, undefined). + +header_value(Key, Headers, Default) -> + Headers1 = [{string:to_lower(K), V} || {K, V} <- Headers], + case lists:keyfind(string:to_lower(Key), 1, Headers1) of + {_, Value} -> + Value; + _ -> + Default + end. |