aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHolger Weiss <holger@zedat.fu-berlin.de>2018-07-10 00:46:48 +0200
committerHolger Weiss <holger@zedat.fu-berlin.de>2018-07-10 00:46:48 +0200
commitb915469f5e81471879402ccc2a1bbfccc65a2860 (patch)
treeaf3e133ee0e32f4ce9fad8fc4420ce8be6c055c9
parentImprove value formatting (diff)
mod_stream_mgmt: Add descriptive text to errors
Closes #2485.
-rw-r--r--src/mod_stream_mgmt.erl9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/mod_stream_mgmt.erl b/src/mod_stream_mgmt.erl
index 6fb601817..72db06919 100644
--- a/src/mod_stream_mgmt.erl
+++ b/src/mod_stream_mgmt.erl
@@ -337,7 +337,7 @@ queue_find(Pred, Queue) ->
%%% Internal functions
%%%===================================================================
-spec negotiate_stream_mgmt(xmpp_element(), state()) -> state().
-negotiate_stream_mgmt(Pkt, State) ->
+negotiate_stream_mgmt(Pkt, #{lang := Lang} = State) ->
Xmlns = xmpp:get_ns(Pkt),
case Pkt of
#sm_enable{} ->
@@ -345,7 +345,10 @@ negotiate_stream_mgmt(Pkt, State) ->
_ when is_record(Pkt, sm_a);
is_record(Pkt, sm_r);
is_record(Pkt, sm_resume) ->
- Err = #sm_failed{reason = 'unexpected-request', xmlns = Xmlns},
+ Txt = <<"Stream management is not enabled">>,
+ Err = #sm_failed{reason = 'unexpected-request',
+ text = xmpp:mk_text(Txt, Lang),
+ xmlns = Xmlns},
send(State, Err);
_ ->
Err = #sm_failed{reason = 'bad-request', xmlns = Xmlns},
@@ -363,7 +366,9 @@ perform_stream_mgmt(Pkt, #{mgmt_xmlns := Xmlns, lang := Lang} = State) ->
handle_a(State, Pkt);
_ when is_record(Pkt, sm_enable);
is_record(Pkt, sm_resume) ->
+ Txt = <<"Stream management is already enabled">>,
send(State, #sm_failed{reason = 'unexpected-request',
+ text = xmpp:mk_text(Txt, Lang),
xmlns = Xmlns});
_ ->
send(State, #sm_failed{reason = 'bad-request',