diff options
author | Alexey Shchepin <alexey@process-one.net> | 2005-05-09 19:12:41 +0000 |
---|---|---|
committer | Alexey Shchepin <alexey@process-one.net> | 2005-05-09 19:12:41 +0000 |
commit | 7cb79cd4826fbd505fa29e77326a573974c5a814 (patch) | |
tree | 4236f0ab18283f052aa8cf5a66843d43fbef74eb | |
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-- | ChangeLog | 3 | ||||
-rw-r--r-- | src/ejabberd_c2s.erl | 26 |
2 files changed, 23 insertions, 6 deletions
@@ -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} |