From 231d44ffa313a7bca25c7b780ff7a0efa10c63f9 Mon Sep 17 00:00:00 2001 From: Badlop Date: Wed, 27 Oct 2010 21:20:48 +0200 Subject: =?UTF-8?q?Handle=20binary=20data=20from=20SockMod:recv=20in=20eja?= =?UTF-8?q?bberd=5Fhttp:recv=5Fdata/3=20(thanks=20to=20Andreas=20K=C3=B6hl?= =?UTF-8?q?er)(EJAB-1331)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/web/ejabberd_http.erl | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/web/ejabberd_http.erl b/src/web/ejabberd_http.erl index 5bb8f3273..45a429833 100644 --- a/src/web/ejabberd_http.erl +++ b/src/web/ejabberd_http.erl @@ -473,14 +473,17 @@ recv_data(State, Len, Acc) -> case State#state.trail of [] -> case (State#state.sockmod):recv(State#state.socket, Len, 300000) of + {ok, Binary} when is_binary(Binary) -> + Data = binary_to_list(Binary), + recv_data(State, Len - length(Data), Acc ++ Data); {ok, Data} -> - recv_data(State, Len - length(Data), [Acc | Data]); + recv_data(State, Len - length(Data), Acc ++ Data); _ -> "" end; _ -> Trail = State#state.trail, - recv_data(State#state{trail = ""}, Len - length(Trail), [Acc | Trail]) + recv_data(State#state{trail = ""}, Len - length(Trail), Acc ++ Trail) end. -- cgit v1.2.3