diff options
author | Holger Weiss <holger@zedat.fu-berlin.de> | 2015-05-14 02:04:23 +0300 |
---|---|---|
committer | Holger Weiss <holger@zedat.fu-berlin.de> | 2015-05-14 02:04:23 +0300 |
commit | 6efce7f7062a6a1e16dfd0411ae9f93a593f632c (patch) | |
tree | dc1ea1d3e847d672b7a749393b32335073520f33 /src/ejabberd_c2s.erl | |
parent | 42c7205739f68757c9c5fead70faeb9add7df48a (diff) |
Cosmetic change: Simplify error checking
Let send_stanza_and_ack_req/2 update the #state instead of propagating
the value returned by send_element/2. This doesn't change the behavior.
Diffstat (limited to 'src/ejabberd_c2s.erl')
-rw-r--r-- | src/ejabberd_c2s.erl | 18 |
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) -> |