aboutsummaryrefslogtreecommitdiff
path: root/src/cyrsasl.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/cyrsasl.erl')
-rw-r--r--src/cyrsasl.erl40
1 files changed, 10 insertions, 30 deletions
diff --git a/src/cyrsasl.erl b/src/cyrsasl.erl
index a101e1380..4b0f5a26b 100644
--- a/src/cyrsasl.erl
+++ b/src/cyrsasl.erl
@@ -73,8 +73,8 @@
-callback mech_step(any(), binary()) -> {ok, props()} |
{ok, props(), binary()} |
{continue, binary(), any()} |
- {error, binary()} |
- {error, binary(), binary()}.
+ {error, atom()} |
+ {error, atom(), binary()}.
start() ->
ets:new(sasl_mechanism,
@@ -102,35 +102,11 @@ register_mechanism(Mechanism, Module, PasswordType) ->
true
end.
-%%% TODO: use callbacks
-%%-include("ejabberd.hrl").
-%%-include("jlib.hrl").
-%%check_authzid(_State, Props) ->
-%% AuthzId = fxml:get_attr_s(authzid, Props),
-%% case jid:from_string(AuthzId) of
-%% error ->
-%% {error, "invalid-authzid"};
-%% JID ->
-%% LUser = jid:nodeprep(fxml:get_attr_s(username, Props)),
-%% {U, S, R} = jid:tolower(JID),
-%% case R of
-%% "" ->
-%% {error, "invalid-authzid"};
-%% _ ->
-%% case {LUser, ?MYNAME} of
-%% {U, S} ->
-%% ok;
-%% _ ->
-%% {error, "invalid-authzid"}
-%% end
-%% end
-%% end.
-
check_credentials(_State, Props) ->
User = proplists:get_value(authzid, Props, <<>>),
case jid:nodeprep(User) of
- error -> {error, <<"not-authorized">>};
- <<"">> -> {error, <<"not-authorized">>};
+ error -> {error, 'not-authorized'};
+ <<"">> -> {error, 'not-authorized'};
_LUser -> ok
end.
@@ -159,6 +135,8 @@ server_new(Service, ServerFQDN, UserRealm, _SecFlags,
check_password = CheckPassword,
check_password_digest = CheckPasswordDigest}.
+server_start(State, Mech, undefined) ->
+ server_start(State, Mech, <<"">>);
server_start(State, Mech, ClientIn) ->
case lists:member(Mech,
listmech(State#sasl_state.myname))
@@ -174,11 +152,13 @@ server_start(State, Mech, ClientIn) ->
server_step(State#sasl_state{mech_mod = Module,
mech_state = MechState},
ClientIn);
- _ -> {error, <<"no-mechanism">>}
+ _ -> {error, 'no-mechanism'}
end;
- false -> {error, <<"no-mechanism">>}
+ false -> {error, 'no-mechanism'}
end.
+server_step(State, undefined) ->
+ server_step(State, <<"">>);
server_step(State, ClientIn) ->
Module = State#sasl_state.mech_mod,
MechState = State#sasl_state.mech_state,