summaryrefslogtreecommitdiff
path: root/src/ejabberd_http.erl
diff options
context:
space:
mode:
authorHolger Weiss <holger@zedat.fu-berlin.de>2015-12-20 23:30:11 +0100
committerHolger Weiss <holger@zedat.fu-berlin.de>2015-12-20 23:30:11 +0100
commit2d22507636ea9deff5909d548d376e4cb626de13 (patch)
tree53aea577d4f1b02daac2fc497c4b89e42aff3a31 /src/ejabberd_http.erl
parentejabberd_http: Log debug message on receive errors (diff)
ejabberd_http: Cope with large POST/PUT requests
gen_tcp returns 'enomem' if we try to receive more than 64 MiB.
Diffstat (limited to 'src/ejabberd_http.erl')
-rw-r--r--src/ejabberd_http.erl4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/ejabberd_http.erl b/src/ejabberd_http.erl
index 6d54a7ed..92036101 100644
--- a/src/ejabberd_http.erl
+++ b/src/ejabberd_http.erl
@@ -513,8 +513,8 @@ recv_data(#state{trail = Trail} = State, Len, <<>>) when byte_size(Trail) > Len
recv_data(State, Len, Acc) ->
case State#state.trail of
<<>> ->
- case (State#state.sockmod):recv(State#state.socket, Len,
- 300000)
+ case (State#state.sockmod):recv(State#state.socket,
+ min(Len, 16#4000000), 300000)
of
{ok, Data} ->
recv_data(State, Len - byte_size(Data), <<Acc/binary, Data/binary>>);