]> granicus.if.org Git - ejabberd/commitdiff
Don't call send_element/2 if previous call failed
authorHolger Weiss <holger@zedat.fu-berlin.de>
Mon, 6 Apr 2015 20:34:48 +0000 (22:34 +0200)
committerHolger Weiss <holger@zedat.fu-berlin.de>
Mon, 6 Apr 2015 20:34:48 +0000 (22:34 +0200)
Be sure not to try sending data over a TCP socket that is no longer
usable.

src/ejabberd_c2s.erl

index 812d0d0e9287e5faac22ad12956d86774b2754fe..2ac28dbb6cbe14c5e34d864229f5b4b415a63b41 100644 (file)
@@ -2841,8 +2841,12 @@ send_stanza_and_ack_req(StateData, Stanza) ->
     AckReq = #xmlel{name = <<"r">>,
                    attrs = [{<<"xmlns">>, StateData#state.mgmt_xmlns}],
                    children = []},
-    send_element(StateData, Stanza),
-    send_element(StateData, AckReq).
+    case send_element(StateData, Stanza) of
+      ok ->
+         send_element(StateData, AckReq);
+      error ->
+         error
+    end.
 
 mgmt_queue_add(StateData, El) ->
     NewNum = case StateData#state.mgmt_stanzas_out of