diff options
author | Badlop <badlop@process-one.net> | 2011-03-16 20:38:44 +0300 |
---|---|---|
committer | Badlop <badlop@process-one.net> | 2011-03-16 20:38:44 +0300 |
commit | 71bfa173540b7b16a860b7e34cfa7cf93840b3da (patch) | |
tree | 6e29aca13f216ed14bc54a1639fba17a9bff4f5b /src/ejabberd_c2s.erl | |
parent | dedd2a7f59f6cf74125b1b0ceb9062070b35a811 (diff) |
Fix crash when SASL PLAIN denies auth (EJAB-1425)
Diffstat (limited to 'src/ejabberd_c2s.erl')
-rw-r--r-- | src/ejabberd_c2s.erl | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/ejabberd_c2s.erl b/src/ejabberd_c2s.erl index 64c7fa128..5b432199f 100644 --- a/src/ejabberd_c2s.erl +++ b/src/ejabberd_c2s.erl @@ -716,13 +716,13 @@ wait_for_feature_request({xmlstreamelement, #xmlel{ns = NS, name = Name} = El}, fsm_next_state(wait_for_sasl_response, StateData#state{ sasl_state = NewSASLState}); - {error, Error, Username} when is_list(Error) -> + {error, Error, Text, Username} -> ?INFO_MSG( - "(~w) Failed authentication for ~s@~s due to ~s", + "(~w) Failed authentication for ~s@~s due to ~p ~s", [StateData#state.socket, - Username, StateData#state.server, Error]), + Username, StateData#state.server, Error, Text]), send_element(StateData, - exmpp_server_sasl:failure(Error)), + exmpp_server_sasl:failure(Error, Text)), {next_state, wait_for_feature_request, StateData, ?C2S_OPEN_TIMEOUT}; {error, Error} -> @@ -834,13 +834,13 @@ wait_for_sasl_response({xmlstreamelement, #xmlel{ns = NS, name = Name} = El}, exmpp_server_sasl:challenge(ServerOut)), fsm_next_state(wait_for_sasl_response, StateData#state{sasl_state = NewSASLState}); - {error, Error, Username} -> + {error, Error, Text, Username} -> ?INFO_MSG( - "(~w) Failed authentication for ~s@~s", + "(~w) Failed authentication for ~s@~s due to ~p ~s", [StateData#state.socket, - Username, StateData#state.server]), + Username, StateData#state.server, Error, Text]), send_element(StateData, - exmpp_server_sasl:failure(Error)), + exmpp_server_sasl:failure(Error, Text)), fsm_next_state(wait_for_feature_request, StateData); {error, Error} -> send_element(StateData, |