aboutsummaryrefslogtreecommitdiff
path: root/src/ejabberd_http_poll.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/ejabberd_http_poll.erl')
-rw-r--r--src/ejabberd_http_poll.erl15
1 files changed, 6 insertions, 9 deletions
diff --git a/src/ejabberd_http_poll.erl b/src/ejabberd_http_poll.erl
index 89933a595..480d04ec2 100644
--- a/src/ejabberd_http_poll.erl
+++ b/src/ejabberd_http_poll.erl
@@ -49,7 +49,7 @@
-export_type([poll_socket/0]).
-record(state,
- {id, key, socket, output = <<"">>, input = <<"">>,
+ {id, key, socket, output = [], input = <<"">>,
waiting_input = false, last_receiver, http_poll_timeout,
timer}).
@@ -253,7 +253,7 @@ handle_event({activate, From}, StateName, StateData) ->
Input ->
Receiver = From,
Receiver !
- {tcp, StateData#state.socket, iolist_to_binary(Input)},
+ {tcp, StateData#state.socket, Input},
{next_state, StateName,
StateData#state{input = <<"">>, waiting_input = false,
last_receiver = Receiver}}
@@ -272,11 +272,8 @@ handle_event(_Event, StateName, StateData) ->
%%----------------------------------------------------------------------
handle_sync_event({send, Packet}, _From, StateName,
StateData) ->
- Packet2 = if is_binary(Packet) -> (Packet);
- true -> Packet
- end,
- Output = StateData#state.output ++
- [lists:flatten(Packet2)],
+ Packet2 = iolist_to_binary(Packet),
+ Output = StateData#state.output ++ [Packet2],
Reply = ok,
{reply, Reply, StateName,
StateData#state{output = Output}};
@@ -295,7 +292,7 @@ handle_sync_event({http_put, Key, NewKey, Packet},
if Allow ->
case StateData#state.waiting_input of
false ->
- Input = [StateData#state.input | Packet],
+ Input = <<(StateData#state.input)/binary, Packet/binary>>,
Reply = ok,
{reply, Reply, StateName,
StateData#state{input = Input, key = NewKey}};
@@ -320,7 +317,7 @@ handle_sync_event(http_get, _From, StateName,
StateData) ->
Reply = {ok, StateData#state.output},
{reply, Reply, StateName,
- StateData#state{output = <<"">>}};
+ StateData#state{output = []}};
handle_sync_event(_Event, _From, StateName,
StateData) ->
Reply = ok, {reply, Reply, StateName, StateData}.