diff options
author | Holger Weiss <holger@zedat.fu-berlin.de> | 2018-07-10 00:46:48 +0200 |
---|---|---|
committer | Holger Weiss <holger@zedat.fu-berlin.de> | 2018-07-10 00:46:48 +0200 |
commit | b915469f5e81471879402ccc2a1bbfccc65a2860 (patch) | |
tree | af3e133ee0e32f4ce9fad8fc4420ce8be6c055c9 | |
parent | Improve value formatting (diff) |
mod_stream_mgmt: Add descriptive text to errors
Closes #2485.
-rw-r--r-- | src/mod_stream_mgmt.erl | 9 |
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', |