Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/processone/ejabberd.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvgeniy Khramtsov <ekhramtsov@process-one.net>2018-02-09 18:12:50 +0300
committerEvgeniy Khramtsov <ekhramtsov@process-one.net>2018-02-09 18:12:50 +0300
commit672c2f75d3ebd659c514b0ce1ecc70ecaa99f31f (patch)
tree92111588ed1c5d5877dac12d348652cb87b44f6c /src/ejabberd_c2s.erl
parent5c85106a41cffd52f68471597a1eb597e38bfdcd (diff)
Introduce option 'validate_stream'
If set to `true`, all incoming XML packets are fully validated against known schemas. If an error occurs, the packet will be bounced with the corresponding error reason. The default value is `false`. The option might be useful to protect client software from sofisticated bugs related to XML validation as well as for client developers who want to catch validation errors at early stage of development. Note that the option might have slight performance impact, so use it with care on loaded machines.
Diffstat (limited to 'src/ejabberd_c2s.erl')
-rw-r--r--src/ejabberd_c2s.erl4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/ejabberd_c2s.erl b/src/ejabberd_c2s.erl
index e7ce7b910..1e81f4d1a 100644
--- a/src/ejabberd_c2s.erl
+++ b/src/ejabberd_c2s.erl
@@ -418,8 +418,10 @@ handle_stream_start(StreamStart, #{lserver := LServer} = State) ->
send(State#{lserver => ?MYNAME}, xmpp:serr_host_unknown());
true ->
State1 = change_shaper(State),
+ Opts = ejabberd_config:codec_options(LServer),
+ State2 = State1#{codec_options => Opts},
ejabberd_hooks:run_fold(
- c2s_stream_started, LServer, State1, [StreamStart])
+ c2s_stream_started, LServer, State2, [StreamStart])
end.
handle_stream_end(Reason, #{lserver := LServer} = State) ->