aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey Shchepin <alexey@process-one.net>2005-05-09 19:12:41 +0000
committerAlexey Shchepin <alexey@process-one.net>2005-05-09 19:12:41 +0000
commit7cb79cd4826fbd505fa29e77326a573974c5a814 (patch)
tree4236f0ab18283f052aa8cf5a66843d43fbef74eb
parent* src/web/ejabberd_web_admin.erl: Images now specified via CSS, (diff)
* src/ejabberd_c2s.erl: Fixed starttls_required behaviour for
legacy connections (thanks to Brian Campbell) SVN Revision: 345
-rw-r--r--ChangeLog3
-rw-r--r--src/ejabberd_c2s.erl26
2 files changed, 23 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index 195db8b22..137c36d60 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
2005-05-09 Alexey Shchepin <alexey@sevcom.net>
+ * src/ejabberd_c2s.erl: Fixed starttls_required behaviour for
+ legacy connections (thanks to Brian Campbell)
+
* src/web/ejabberd_web_admin.erl: Images now specified via CSS,
design slightly updated, added last activity statistics (thanks to
Sergei Golovan)
diff --git a/src/ejabberd_c2s.erl b/src/ejabberd_c2s.erl
index 43a8a1084..361751f66 100644
--- a/src/ejabberd_c2s.erl
+++ b/src/ejabberd_c2s.erl
@@ -256,16 +256,30 @@ wait_for_stream({xmlstreamstart, _Name, Attrs}, StateData) ->
_ ->
Header = io_lib:format(
?STREAM_HEADER,
- [StateData#state.streamid, Server, "", DefaultLang]),
- send_text(StateData, Header),
- {next_state, wait_for_auth,
- StateData#state{server = Server,
- lang = Lang}}
+ [StateData#state.streamid, Server, "",
+ DefaultLang]),
+ if
+ (not StateData#state.tls_enabled) and
+ StateData#state.tls_required ->
+ send_text(StateData,
+ Header ++
+ ?POLICY_VIOLATION_ERR(
+ Lang,
+ "Use of STARTTLS required") ++
+ ?STREAM_TRAILER),
+ {stop, normal, StateData};
+ true ->
+ send_text(StateData, Header),
+ {next_state, wait_for_auth,
+ StateData#state{server = Server,
+ lang = Lang}}
+ end
end;
_ ->
Header = io_lib:format(
?STREAM_HEADER,
- [StateData#state.streamid, ?MYNAME, "", DefaultLang]),
+ [StateData#state.streamid, ?MYNAME, "",
+ DefaultLang]),
send_text(StateData,
Header ++ ?HOST_UNKNOWN_ERR ++ ?STREAM_TRAILER),
{stop, normal, StateData}