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:
Diffstat (limited to 'src/ejabberd_c2s.erl')
-rw-r--r--src/ejabberd_c2s.erl18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/ejabberd_c2s.erl b/src/ejabberd_c2s.erl
index 065a58ebb..2ee4e0a22 100644
--- a/src/ejabberd_c2s.erl
+++ b/src/ejabberd_c2s.erl
@@ -348,11 +348,27 @@ wait_for_stream({xmlstreamstart, #xmlel{ns = NS} = Opening}, StateData) ->
U, Server, P, D, DG)
end,
StateData#state.socket),
- Mechs = [exmpp_server_sasl:feature(
+ MechsPrepared = [exmpp_server_sasl:feature(
cyrsasl:listmech(Server))],
SockMod =
(StateData#state.sockmod):get_sockmod(
StateData#state.socket),
+ TLSRequired = StateData#state.tls_required,
+ Mechs =
+ case TLSRequired of
+ true ->
+ case (SockMod == gen_tcp) of
+ true ->
+ [];
+ false ->
+ MechsPrepared
+ end;
+ false ->
+ MechsPrepared
+ end,
+ SockMod =
+ (StateData#state.sockmod):get_sockmod(
+ StateData#state.socket),
Zlib = StateData#state.zlib,
CompressFeature =
case Zlib andalso