From 2d22507636ea9deff5909d548d376e4cb626de13 Mon Sep 17 00:00:00 2001 From: Holger Weiss Date: Sun, 20 Dec 2015 23:30:11 +0100 Subject: [PATCH] ejabberd_http: Cope with large POST/PUT requests gen_tcp returns 'enomem' if we try to receive more than 64 MiB. --- src/ejabberd_http.erl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ejabberd_http.erl b/src/ejabberd_http.erl index 6d54a7eda..920361017 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), <>);