aboutsummaryrefslogtreecommitdiff
path: root/src/ejabberd_c2s.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/ejabberd_c2s.erl')
-rw-r--r--src/ejabberd_c2s.erl18
1 files changed, 7 insertions, 11 deletions
diff --git a/src/ejabberd_c2s.erl b/src/ejabberd_c2s.erl
index 82dce0f08..a6112673b 100644
--- a/src/ejabberd_c2s.erl
+++ b/src/ejabberd_c2s.erl
@@ -1912,12 +1912,7 @@ send_stanza(StateData, Stanza) when StateData#state.csi_state == inactive ->
send_stanza(StateData, Stanza) when StateData#state.mgmt_state == pending ->
mgmt_queue_add(StateData, Stanza);
send_stanza(StateData, Stanza) when StateData#state.mgmt_state == active ->
- NewStateData = case send_stanza_and_ack_req(StateData, Stanza) of
- ok ->
- StateData;
- _Error ->
- StateData#state{mgmt_state = pending}
- end,
+ NewStateData = send_stanza_and_ack_req(StateData, Stanza),
mgmt_queue_add(NewStateData, Stanza);
send_stanza(StateData, Stanza) ->
send_element(StateData, Stanza),
@@ -2830,11 +2825,12 @@ send_stanza_and_ack_req(StateData, Stanza) ->
AckReq = #xmlel{name = <<"r">>,
attrs = [{<<"xmlns">>, StateData#state.mgmt_xmlns}],
children = []},
- case send_element(StateData, Stanza) of
- ok ->
- send_element(StateData, AckReq);
- Error ->
- Error
+ case send_element(StateData, Stanza) == ok andalso
+ send_element(StateData, AckReq) == ok of
+ true ->
+ StateData;
+ false ->
+ StateData#state{mgmt_state = pending}
end.
mgmt_queue_add(StateData, El) ->