diff options
author | Paweł Chmielowski <pchmielowski@process-one.net> | 2016-06-27 16:40:57 +0200 |
---|---|---|
committer | Paweł Chmielowski <pchmielowski@process-one.net> | 2016-06-27 16:40:57 +0200 |
commit | 3446aba753625060af68396c6edd8e76a4950a61 (patch) | |
tree | 07b319461b8e6018664a773199903e21e408cf17 | |
parent | Inline muc access rules (diff) |
Include correct version in stream:stream when reporting errors
This fixes issue #1174
-rw-r--r-- | src/ejabberd_c2s.erl | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/ejabberd_c2s.erl b/src/ejabberd_c2s.erl index 794c04f5f..f431f6890 100644 --- a/src/ejabberd_c2s.erl +++ b/src/ejabberd_c2s.erl @@ -364,11 +364,17 @@ wait_for_stream({xmlstreamstart, _Name, Attrs}, StateData) -> %% avoid possible DoS/flood attacks <<"">> end, + StreamVersion = case fxml:get_attr_s(<<"version">>, Attrs) of + <<"1.0">> -> + <<"1.0">>; + _ -> + <<"">> + end, IsBlacklistedIP = is_ip_blacklisted(StateData#state.ip, Lang), case lists:member(Server, ?MYHOSTS) of true when IsBlacklistedIP == false -> change_shaper(StateData, jid:make(<<"">>, Server, <<"">>)), - case fxml:get_attr_s(<<"version">>, Attrs) of + case StreamVersion of <<"1.0">> -> send_header(StateData, Server, <<"1.0">>, DefaultLang), case StateData#state.authenticated of @@ -534,11 +540,11 @@ wait_for_stream({xmlstreamstart, _Name, Attrs}, StateData) -> {true, LogReason, ReasonT} = IsBlacklistedIP, ?INFO_MSG("Connection attempt from blacklisted IP ~s: ~s", [jlib:ip_to_list(IP), LogReason]), - send_header(StateData, Server, <<"">>, DefaultLang), + send_header(StateData, Server, StreamVersion, DefaultLang), send_element(StateData, ?POLICY_VIOLATION_ERR(Lang, ReasonT)), {stop, normal, StateData}; _ -> - send_header(StateData, ?MYNAME, <<"">>, DefaultLang), + send_header(StateData, ?MYNAME, StreamVersion, DefaultLang), send_element(StateData, ?HOST_UNKNOWN_ERR), {stop, normal, StateData} end; |