Skip to content

Commit

Permalink
Two changes:
Browse files Browse the repository at this point in the history
1) Set Content-Length to 0 for empty PUT and POST requests (necessary for some proxies);

2) Use iolist_size/1 instead of size/1 or length/1 because the body can be an iolist
  • Loading branch information
fdmanana committed Nov 16, 2010
1 parent d5d3f1f commit 9611896
Showing 1 changed file with 6 additions and 10 deletions.
16 changes: 6 additions & 10 deletions src/ibrowse_http_client.erl
Original file line number Diff line number Diff line change
Expand Up @@ -831,17 +831,13 @@ make_request(Method, Headers, AbsPath, RelPath, Body, Options,
Headers_0 = [Fun1(X) || X <- Headers],
Headers_1 =
case lists:keysearch("content-length", 1, Headers_0) of
false when (Body == []) orelse
(Body == <<>>) orelse
is_tuple(Body) orelse
is_function(Body) ->
Headers_0;
false when is_binary(Body) ->
[{"content-length", "content-length", integer_to_list(size(Body))} | Headers_0];
false when is_list(Body) ->
[{"content-length", "content-length", integer_to_list(length(Body))} | Headers_0];
false when (Body == [] orelse Body == <<>>) andalso
(Method == post orelse Method == put) ->
[{"content-length", "Content-Length", "0"} | Headers_0];
false when is_binary(Body) orelse is_list(Body) ->
[{"content-length", "Content-Length", integer_to_list(iolist_size(Body))} | Headers_0];
_ ->
%% Content-Length is already specified
%% Content-Length is already specified or Body is a function or function/state pair
Headers_0
end,
{Headers_2, Body_1} =
Expand Down

0 comments on commit 9611896

Please sign in to comment.