aboutsummaryrefslogtreecommitdiff
path: root/src/ejabberd_c2s.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/ejabberd_c2s.erl')
-rw-r--r--src/ejabberd_c2s.erl23
1 files changed, 16 insertions, 7 deletions
diff --git a/src/ejabberd_c2s.erl b/src/ejabberd_c2s.erl
index 222436da6..fa7d8f726 100644
--- a/src/ejabberd_c2s.erl
+++ b/src/ejabberd_c2s.erl
@@ -201,13 +201,22 @@ wait_for_auth({xmlstreamelement, El}, StateData) ->
{next_state, wait_for_auth, StateData};
{auth, ID, get, {U, _, _, _}} ->
{xmlelement, Name, Attrs, Els} = jlib:make_result_iq_reply(El),
- Res = {xmlelement, Name, Attrs,
- [{xmlelement, "query", [{"xmlns", ?NS_AUTH}],
- [{xmlelement, "username", [], [{xmlcdata, U}]},
- {xmlelement, "password", [], []},
- {xmlelement, "digest", [], []},
- {xmlelement, "resource", [], []}
- ]}]},
+ Res = case ejabberd_auth:plain_password_required() of
+ false ->
+ {xmlelement, Name, Attrs,
+ [{xmlelement, "query", [{"xmlns", ?NS_AUTH}],
+ [{xmlelement, "username", [], [{xmlcdata, U}]},
+ {xmlelement, "password", [], []},
+ {xmlelement, "digest", [], []},
+ {xmlelement, "resource", [], []}
+ ]}]};
+ true ->
+ {xmlelement, Name, Attrs,
+ [{xmlelement, "query", [{"xmlns", ?NS_AUTH}],
+ [{xmlelement, "username", [], [{xmlcdata, U}]},
+ {xmlelement, "password", [], []}
+ ]}]}
+ end,
send_element(StateData, Res),
{next_state, wait_for_auth, StateData};
{auth, ID, set, {U, P, D, ""}} ->