aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvgeny Khramtsov <ekhramtsov@process-one.net>2019-06-21 21:06:32 +0300
committerEvgeny Khramtsov <ekhramtsov@process-one.net>2019-06-21 21:06:32 +0300
commite9a78d0de71ce14b9f7146b2a9295315eedb23bc (patch)
tree1e70011543ab4d34e4f476920ad263e75d3cbc4e
parentDon't attempt to query 'undefined' active list (diff)
Make option 'validate_stream' global
-rw-r--r--src/ejabberd_bosh.erl2
-rw-r--r--src/ejabberd_c2s.erl2
-rw-r--r--src/ejabberd_config.erl8
-rw-r--r--src/ejabberd_option.erl7
-rw-r--r--src/ejabberd_options.erl1
-rw-r--r--src/ejabberd_s2s_in.erl2
-rw-r--r--src/ejabberd_service.erl2
-rw-r--r--src/mod_admin_extra.erl2
-rw-r--r--src/mod_announce.erl4
-rw-r--r--src/mod_delegation.erl2
-rw-r--r--src/mod_mam.erl3
-rw-r--r--src/mod_offline.erl4
-rw-r--r--src/mod_privilege.erl2
13 files changed, 19 insertions, 22 deletions
diff --git a/src/ejabberd_bosh.erl b/src/ejabberd_bosh.erl
index d119e90b8..14a0feb29 100644
--- a/src/ejabberd_bosh.erl
+++ b/src/ejabberd_bosh.erl
@@ -710,7 +710,7 @@ bounce_receivers(State, _Reason) ->
State, Receivers ++ ShapedReceivers).
bounce_els_from_obuf(State) ->
- Opts = ejabberd_config:codec_options(State#state.host),
+ Opts = ejabberd_config:codec_options(),
p1_queue:foreach(
fun({xmlstreamelement, El}) ->
try xmpp:decode(El, ?NS_CLIENT, Opts) of
diff --git a/src/ejabberd_c2s.erl b/src/ejabberd_c2s.erl
index 7caa109bb..55f3111c0 100644
--- a/src/ejabberd_c2s.erl
+++ b/src/ejabberd_c2s.erl
@@ -442,7 +442,7 @@ handle_stream_start(StreamStart, #{lserver := LServer} = State) ->
send(State#{lserver => ejabberd_config:get_myname()}, xmpp:serr_host_unknown());
true ->
State1 = change_shaper(State),
- Opts = ejabberd_config:codec_options(LServer),
+ Opts = ejabberd_config:codec_options(),
State2 = State1#{codec_options => Opts},
ejabberd_hooks:run_fold(
c2s_stream_started, LServer, State2, [StreamStart])
diff --git a/src/ejabberd_config.erl b/src/ejabberd_config.erl
index 1a6026fbf..964e84ffb 100644
--- a/src/ejabberd_config.erl
+++ b/src/ejabberd_config.erl
@@ -31,7 +31,7 @@
-export([get_myname/0, get_uri/0, get_copyright/0]).
-export([get_shared_key/0, get_node_start/0]).
-export([fsm_limit_opts/1]).
--export([codec_options/1]).
+-export([codec_options/0]).
-export([default_db/2, default_db/3, default_ram_db/2, default_ram_db/3]).
-export([beams/1, validators/1, globals/0, may_hide_data/1]).
-export([dump/0, dump/1, convert_to_yaml/1, convert_to_yaml/2]).
@@ -218,9 +218,9 @@ fsm_limit_opts(Opts) ->
end
end.
--spec codec_options(binary() | global) -> [xmpp:decode_option()].
-codec_options(Host) ->
- case get_option({validate_stream, Host}) of
+-spec codec_options() -> [xmpp:decode_option()].
+codec_options() ->
+ case get_option(validate_stream) of
true -> [];
false -> [ignore_els]
end.
diff --git a/src/ejabberd_option.erl b/src/ejabberd_option.erl
index 34659f1cc..64f178b9d 100644
--- a/src/ejabberd_option.erl
+++ b/src/ejabberd_option.erl
@@ -156,7 +156,7 @@
-export([sql_username/0, sql_username/1]).
-export([trusted_proxies/0, trusted_proxies/1]).
-export([use_cache/0, use_cache/1]).
--export([validate_stream/0, validate_stream/1]).
+-export([validate_stream/0]).
-export([version/0]).
-export([websocket_origin/0]).
-export([websocket_ping_interval/0]).
@@ -1040,10 +1040,7 @@ use_cache(Host) ->
-spec validate_stream() -> boolean().
validate_stream() ->
- validate_stream(global).
--spec validate_stream(global | binary()) -> boolean().
-validate_stream(Host) ->
- ejabberd_config:get_option({validate_stream, Host}).
+ ejabberd_config:get_option({validate_stream, global}).
-spec version() -> binary().
version() ->
diff --git a/src/ejabberd_options.erl b/src/ejabberd_options.erl
index c76d89ae1..c20339878 100644
--- a/src/ejabberd_options.erl
+++ b/src/ejabberd_options.erl
@@ -711,6 +711,7 @@ globals() ->
sm_cache_life_time,
sm_cache_missed,
sm_cache_size,
+ validate_stream,
version,
websocket_origin,
websocket_ping_interval,
diff --git a/src/ejabberd_s2s_in.erl b/src/ejabberd_s2s_in.erl
index 0eb5f2a1d..8b56d440e 100644
--- a/src/ejabberd_s2s_in.erl
+++ b/src/ejabberd_s2s_in.erl
@@ -164,7 +164,7 @@ handle_stream_start(_StreamStart, #{lserver := LServer} = State) ->
send(State, xmpp:serr_host_unknown());
true ->
ServerHost = ejabberd_router:host_of_route(LServer),
- Opts = ejabberd_config:codec_options(LServer),
+ Opts = ejabberd_config:codec_options(),
State#{server_host => ServerHost, codec_options => Opts}
end.
diff --git a/src/ejabberd_service.erl b/src/ejabberd_service.erl
index aed20a823..2662d04d0 100644
--- a/src/ejabberd_service.erl
+++ b/src/ejabberd_service.erl
@@ -133,7 +133,7 @@ handle_stream_start(_StreamStart,
HostOpts
end
end,
- CodecOpts = ejabberd_config:codec_options(global),
+ CodecOpts = ejabberd_config:codec_options(),
State#{host_opts => NewHostOpts, codec_options => CodecOpts}
end.
diff --git a/src/mod_admin_extra.erl b/src/mod_admin_extra.erl
index 7d4fe5925..abfc1c3b6 100644
--- a/src/mod_admin_extra.erl
+++ b/src/mod_admin_extra.erl
@@ -1496,7 +1496,7 @@ send_stanza(FromString, ToString, Stanza) ->
#xmlel{} = El = fxml_stream:parse_element(Stanza),
From = jid:decode(FromString),
To = jid:decode(ToString),
- CodecOpts = ejabberd_config:codec_options(From#jid.lserver),
+ CodecOpts = ejabberd_config:codec_options(),
Pkt = xmpp:decode(El, ?NS_CLIENT, CodecOpts),
ejabberd_router:route(xmpp:set_from_to(Pkt, From, To))
catch _:{xmpp_codec, Why} ->
diff --git a/src/mod_announce.erl b/src/mod_announce.erl
index 4176af95c..f4df6fe4c 100644
--- a/src/mod_announce.erl
+++ b/src/mod_announce.erl
@@ -708,7 +708,7 @@ send_motd({#presence{type = available},
Mod = gen_mod:db_mod(LServer, ?MODULE),
case get_motd(Mod, LServer) of
{ok, Packet} ->
- CodecOpts = ejabberd_config:codec_options(LServer),
+ CodecOpts = ejabberd_config:codec_options(),
try xmpp:decode(Packet, ?NS_CLIENT, CodecOpts) of
Msg ->
case is_motd_user(Mod, LUser, LServer) of
@@ -800,7 +800,7 @@ get_stored_motd(LServer) ->
Mod = gen_mod:db_mod(LServer, ?MODULE),
case get_motd(Mod, LServer) of
{ok, Packet} ->
- CodecOpts = ejabberd_config:codec_options(LServer),
+ CodecOpts = ejabberd_config:codec_options(),
try xmpp:decode(Packet, ?NS_CLIENT, CodecOpts) of
#message{body = Body, subject = Subject} ->
{xmpp:get_text(Subject), xmpp:get_text(Body)}
diff --git a/src/mod_delegation.erl b/src/mod_delegation.erl
index 5fbbe35b2..78a1345c3 100644
--- a/src/mod_delegation.erl
+++ b/src/mod_delegation.erl
@@ -267,7 +267,7 @@ process_iq(#iq{to = To, lang = Lang, sub_els = [SubEl]} = IQ, Type) ->
process_iq_result(#iq{from = From, to = To, id = ID, lang = Lang} = IQ,
#iq{type = result} = ResIQ) ->
try
- CodecOpts = ejabberd_config:codec_options(To#jid.lserver),
+ CodecOpts = ejabberd_config:codec_options(),
#delegation{forwarded = #forwarded{sub_els = [SubEl]}} =
xmpp:get_subtag(ResIQ, #delegation{}),
case xmpp:decode(SubEl, ?NS_CLIENT, CodecOpts) of
diff --git a/src/mod_mam.erl b/src/mod_mam.erl
index 8a097572f..3458a0c72 100644
--- a/src/mod_mam.erl
+++ b/src/mod_mam.erl
@@ -1218,8 +1218,7 @@ wrap_as_mucsub(Message, Requester, ReqServer) ->
msg_to_el(#archive_msg{timestamp = TS, packet = El, nick = Nick,
peer = Peer, id = ID},
MsgType, JidRequestor, #jid{lserver = LServer} = JidArchive) ->
- CodecOpts = ejabberd_config:codec_options(
- ejabberd_router:host_of_route(LServer)),
+ CodecOpts = ejabberd_config:codec_options(),
try xmpp:decode(El, ?NS_CLIENT, CodecOpts) of
Pkt1 ->
Pkt2 = case MsgType of
diff --git a/src/mod_offline.erl b/src/mod_offline.erl
index d2468e975..a3cb6d858 100644
--- a/src/mod_offline.erl
+++ b/src/mod_offline.erl
@@ -689,7 +689,7 @@ get_offline_els(LUser, LServer) ->
-spec offline_msg_to_route(binary(), #offline_msg{}) ->
{route, message()} | error.
offline_msg_to_route(LServer, #offline_msg{from = From, to = To} = R) ->
- CodecOpts = ejabberd_config:codec_options(LServer),
+ CodecOpts = ejabberd_config:codec_options(),
try xmpp:decode(R#offline_msg.packet, ?NS_CLIENT, CodecOpts) of
Pkt ->
Pkt1 = xmpp:set_from_to(Pkt, From, To),
@@ -715,7 +715,7 @@ read_messages(LUser, LServer) ->
-spec read_db_messages(binary(), binary()) -> [{binary(), message()}].
read_db_messages(LUser, LServer) ->
Mod = gen_mod:db_mod(LServer, ?MODULE),
- CodecOpts = ejabberd_config:codec_options(LServer),
+ CodecOpts = ejabberd_config:codec_options(),
lists:flatmap(
fun({Seq, From, To, TS, El}) ->
Node = integer_to_binary(Seq),
diff --git a/src/mod_privilege.erl b/src/mod_privilege.erl
index 5eb4a15e4..ae1d4ab25 100644
--- a/src/mod_privilege.erl
+++ b/src/mod_privilege.erl
@@ -281,7 +281,7 @@ get_permissions(ServerHost) ->
forward_message(#message{to = To} = Msg) ->
ServerHost = To#jid.lserver,
Lang = xmpp:get_lang(Msg),
- CodecOpts = ejabberd_config:codec_options(ServerHost),
+ CodecOpts = ejabberd_config:codec_options(),
try xmpp:try_subtag(Msg, #privilege{}) of
#privilege{forwarded = #forwarded{sub_els = [SubEl]}} ->
try xmpp:decode(SubEl, ?NS_CLIENT, CodecOpts) of