aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlexey Shchepin <alexey@process-one.net>2007-02-19 23:35:42 +0000
committerAlexey Shchepin <alexey@process-one.net>2007-02-19 23:35:42 +0000
commit379b0d9e54331ac05f3ff41399eb2840998f84cc (patch)
tree75c7067d95d0772d69832937d8f789a0c05355ad /src
parent* src/mod_muc/mod_muc_room.erl: Added an option set affiliations. (diff)
* src/ejabberd_c2s.erl: Init shaper with a default value first
after stream opening * src/ejabberd_c2s.erl: Log failed SASL login attempts * src/cyrsasl.erl: Updated API * src/cyrsasl_plain.erl: Likewise * src/cyrsasl_digest.erl: Likewise SVN Revision: 735
Diffstat (limited to 'src')
-rw-r--r--src/cyrsasl.erl2
-rw-r--r--src/cyrsasl_digest.erl4
-rw-r--r--src/cyrsasl_plain.erl2
-rw-r--r--src/ejabberd_c2s.erl21
4 files changed, 26 insertions, 3 deletions
diff --git a/src/cyrsasl.erl b/src/cyrsasl.erl
index f8e548826..eb2346cda 100644
--- a/src/cyrsasl.erl
+++ b/src/cyrsasl.erl
@@ -136,6 +136,8 @@ server_step(State, ClientIn) ->
{continue, ServerOut, NewMechState} ->
{continue, ServerOut,
State#sasl_state{mech_state = NewMechState}};
+ {error, Error, Username} ->
+ {error, Error, Username};
{error, Error} ->
{error, Error}
end.
diff --git a/src/cyrsasl_digest.erl b/src/cyrsasl_digest.erl
index cc44b1a95..9966bddd1 100644
--- a/src/cyrsasl_digest.erl
+++ b/src/cyrsasl_digest.erl
@@ -44,7 +44,7 @@ mech_step(#state{step = 3, nonce = Nonce} = State, ClientIn) ->
AuthzId = xml:get_attr_s("authzid", KeyVals),
case (State#state.get_password)(UserName) of
false ->
- {error, "not-authorized"};
+ {error, "not-authorized", UserName};
Passwd ->
Response = response(KeyVals, UserName, Passwd,
Nonce, AuthzId, "AUTHENTICATE"),
@@ -59,7 +59,7 @@ mech_step(#state{step = 3, nonce = Nonce} = State, ClientIn) ->
username = UserName,
authzid = AuthzId}};
_ ->
- {error, "not-authorized"}
+ {error, "not-authorized", UserName}
end
end
end;
diff --git a/src/cyrsasl_plain.erl b/src/cyrsasl_plain.erl
index 59f88bf25..a2fee76ec 100644
--- a/src/cyrsasl_plain.erl
+++ b/src/cyrsasl_plain.erl
@@ -33,7 +33,7 @@ mech_step(State, ClientIn) ->
true ->
{ok, [{username, User}, {authzid, AuthzId}]};
_ ->
- {error, "not-authorized"}
+ {error, "not-authorized", User}
end;
_ ->
{error, "bad-protocol"}
diff --git a/src/ejabberd_c2s.erl b/src/ejabberd_c2s.erl
index 0865fba5b..f1c3dddfc 100644
--- a/src/ejabberd_c2s.erl
+++ b/src/ejabberd_c2s.erl
@@ -174,6 +174,7 @@ wait_for_stream({xmlstreamstart, _Name, Attrs}, StateData) ->
case lists:member(Server, ?MYHOSTS) of
true ->
Lang = xml:get_attr_s("xml:lang", Attrs),
+ change_shaper(StateData, jlib:make_jid("", Server, "")),
case xml:get_attr_s("version", Attrs) of
"1.0" ->
Header = io_lib:format(?STREAM_HEADER,
@@ -493,6 +494,16 @@ wait_for_feature_request({xmlstreamelement, El}, StateData) ->
jlib:encode_base64(ServerOut)}]}),
{next_state, wait_for_sasl_response,
StateData#state{sasl_state = NewSASLState}};
+ {error, Error, Username} ->
+ ?INFO_MSG(
+ "(~w) Failed authentication for ~s@~s",
+ [StateData#state.socket,
+ Username, StateData#state.server]),
+ send_element(StateData,
+ {xmlelement, "failure",
+ [{"xmlns", ?NS_SASL}],
+ [{xmlelement, Error, [], []}]}),
+ {next_state, wait_for_feature_request, StateData};
{error, Error} ->
send_element(StateData,
{xmlelement, "failure",
@@ -609,6 +620,16 @@ wait_for_sasl_response({xmlstreamelement, El}, StateData) ->
jlib:encode_base64(ServerOut)}]}),
{next_state, wait_for_sasl_response,
StateData#state{sasl_state = NewSASLState}};
+ {error, Error, Username} ->
+ ?INFO_MSG(
+ "(~w) Failed authentication for ~s@~s",
+ [StateData#state.socket,
+ Username, StateData#state.server]),
+ send_element(StateData,
+ {xmlelement, "failure",
+ [{"xmlns", ?NS_SASL}],
+ [{xmlelement, Error, [], []}]}),
+ {next_state, wait_for_feature_request, StateData};
{error, Error} ->
send_element(StateData,
{xmlelement, "failure",